MOM6
MOM_forcing_type.F90 File Reference
#include <MOM_memory.h>
Include dependency graph for MOM_forcing_type.F90:

Go to the source code of this file.

Data Types

type  mom_forcing_type::forcing
 Structure that contains pointers to the boundary forcing used to drive the liquid ocean simulated by MOM. More...
 
type  mom_forcing_type::mech_forcing
 Structure that contains pointers to the mechanical forcing at the surface used to drive the liquid ocean simulated by MOM. Data in this type is allocated in the module MOM_surface_forcing.F90, of which there are three versions: solo, coupled, and ice-shelf. More...
 
type  mom_forcing_type::forcing_diags
 Structure that defines the id handles for the forcing type. More...
 

Modules

module  mom_forcing_type
 This module implements boundary forcing for MOM6.
 

Functions/Subroutines

subroutine, public mom_forcing_type::extractfluxes1d (G, GV, US, fluxes, optics, nsw, j, dt_in_T, FluxRescaleDepth, useRiverHeatContent, useCalvingHeatContent, h, T, netMassInOut, netMassOut, net_heat, net_salt, pen_SW_bnd, tv, aggregate_FW, nonpenSW, netmassInOut_rate, net_Heat_Rate, net_salt_rate, pen_sw_bnd_Rate, skip_diags)
 This subroutine extracts fluxes from the surface fluxes type. It works on a j-row for optimization purposes. The 2d (i,j) wrapper is the next subroutine below. This routine multiplies fluxes by dt, so that the result is an accumulation of fluxes over a time step. More...
 
subroutine, public mom_forcing_type::extractfluxes2d (G, GV, US, fluxes, optics, nsw, dt_in_T, FluxRescaleDepth, useRiverHeatContent, useCalvingHeatContent, h, T, netMassInOut, netMassOut, net_heat, Net_salt, Pen_SW_bnd, tv, aggregate_FW)
 2d wrapper for 1d extract fluxes from surface fluxes type. This subroutine extracts fluxes from the surface fluxes type. It multiplies the fluxes by dt, so that the result is an accumulation of the fluxes over a time step. More...
 
subroutine, public mom_forcing_type::calculatebuoyancyflux1d (G, GV, US, fluxes, optics, nsw, h, Temp, Salt, tv, j, buoyancyFlux, netHeatMinusSW, netSalt, skip_diags)
 This routine calculates surface buoyancy flux by adding up the heat, FW & salt fluxes. These are actual fluxes, with units of stuff per time. Setting dt=1 in the call to extractFluxes routine allows us to get "stuf per time" rather than the time integrated fluxes needed in other routines that call extractFluxes. More...
 
subroutine, public mom_forcing_type::calculatebuoyancyflux2d (G, GV, US, fluxes, optics, h, Temp, Salt, tv, buoyancyFlux, netHeatMinusSW, netSalt, skip_diags)
 Calculates surface buoyancy flux by adding up the heat, FW and salt fluxes, for 2d arrays. This is a wrapper for calculateBuoyancyFlux1d. More...
 
subroutine, public mom_forcing_type::mom_forcing_chksum (mesg, fluxes, G, US, haloshift)
 Write out chksums for thermodynamic fluxes. More...
 
subroutine, public mom_forcing_type::mom_mech_forcing_chksum (mesg, forces, G, US, haloshift)
 Write out chksums for the driving mechanical forces. More...
 
subroutine mom_forcing_type::mech_forcing_singlepointprint (forces, G, i, j, mesg)
 Write out values of the mechanical forcing arrays at the i,j location. This is a debugging tool. More...
 
subroutine locmsg (array, aname)
 Format and write a message depending on associated state of array. More...
 
subroutine, public mom_forcing_type::forcing_singlepointprint (fluxes, G, i, j, mesg)
 Write out values of the fluxes arrays at the i,j location. This is a debugging tool. More...
 
subroutine, public mom_forcing_type::register_forcing_type_diags (Time, diag, US, use_temperature, handles, use_berg_fluxes)
 Register members of the forcing type for diagnostics. More...
 
subroutine, public mom_forcing_type::forcing_accumulate (flux_tmp, forces, fluxes, G, wt2)
 Accumulate the forcing over time steps, taking input from a mechanical forcing type and a temporary forcing-flux type. More...
 
subroutine, public mom_forcing_type::fluxes_accumulate (flux_tmp, fluxes, G, wt2, forces)
 Accumulate the thermodynamic fluxes over time steps. More...
 
subroutine, public mom_forcing_type::copy_common_forcing_fields (forces, fluxes, G, skip_pres)
 This subroutine copies the computational domains of common forcing fields from a mech_forcing type to a (thermodynamic) forcing type. More...
 
subroutine, public mom_forcing_type::set_derived_forcing_fields (forces, fluxes, G, US, Rho0)
 This subroutine calculates certain derived forcing fields based on information from a mech_forcing type and stores them in a (thermodynamic) forcing type. More...
 
subroutine, public mom_forcing_type::set_net_mass_forcing (fluxes, forces, G, US)
 This subroutine determines the net mass source to the ocean from a (thermodynamic) forcing type and stores it in a mech_forcing type. More...
 
subroutine, public mom_forcing_type::get_net_mass_forcing (fluxes, G, US, net_mass_src)
 This subroutine calculates determines the net mass source to the ocean from a (thermodynamic) forcing type and stores it in a provided array. More...
 
subroutine, public mom_forcing_type::copy_back_forcing_fields (fluxes, forces, G)
 This subroutine copies the computational domains of common forcing fields from a mech_forcing type to a (thermodynamic) forcing type. More...
 
subroutine, public mom_forcing_type::mech_forcing_diags (forces, dt, G, time_end, diag, handles)
 Offer mechanical forcing fields for diagnostics for those fields registered as part of register_forcing_type_diags. More...
 
subroutine, public mom_forcing_type::forcing_diagnostics (fluxes, sfc_state, G, US, time_end, diag, handles)
 Offer buoyancy forcing fields for diagnostics for those fields registered as part of register_forcing_type_diags. More...
 
subroutine, public mom_forcing_type::allocate_forcing_type (G, fluxes, water, heat, ustar, press, shelf, iceberg, salt)
 Conditionally allocate fields within the forcing type. More...
 
subroutine, public mom_forcing_type::allocate_mech_forcing (G, forces, stress, ustar, shelf, press, iceberg)
 Conditionally allocate fields within the mechanical forcing type. More...
 
subroutine mom_forcing_type::myalloc (array, is, ie, js, je, flag)
 Allocates and zeroes-out array. More...
 
subroutine, public mom_forcing_type::deallocate_forcing_type (fluxes)
 Deallocate the forcing type. More...
 
subroutine, public mom_forcing_type::deallocate_mech_forcing (forces)
 Deallocate the mechanical forcing type. More...
 

Function/Subroutine Documentation

◆ locmsg()

subroutine locmsg ( real, dimension(:,:), pointer  array,
character(len=*)  aname 
)
private

Format and write a message depending on associated state of array.

Parameters
arrayArray to write element from
anameName of array

Definition at line 1147 of file MOM_forcing_type.F90.

1147  real, dimension(:,:), pointer :: array !< Array to write element from
1148  character(len=*) :: aname !< Name of array
1149 
1150  if (associated(array)) then
1151  write(0,'(3a,es15.3)') 'MOM_forcing_type, mech_forcing_SinglePointPrint: ',trim(aname),' = ',array(i,j)
1152  else
1153  write(0,'(4a)') 'MOM_forcing_type, mech_forcing_SinglePointPrint: ',trim(aname),' is not associated.'
1154  endif

Referenced by mom_forcing_type::forcing_singlepointprint(), and mom_forcing_type::mech_forcing_singlepointprint().

Here is the caller graph for this function: