mom_surface_forcing module reference
Functions that calculate the surface wind stresses and fluxes of buoyancy or temperature/salinity and fresh water, in ocean-only (solo) mode.
Data Types
Structure containing pointers to the forcing fields that may be used to drive MOM. |
Functions/Subroutines
Calls subroutines in this file to get surface forcing fields. |
|
Sets the surface wind stresses to constant values. |
|
Sets the surface wind stresses to set up two idealized gyres. |
|
Sets the surface wind stresses to set up a single idealized gyre. |
|
Sets the surface wind stresses to set up idealized gyres. |
|
Sets the surface wind stresses, forcestaux and forcestauy for the Neverworld forcing configuration. |
|
Sets the zonal wind stresses to a piecewise series of s-curves. |
|
Returns the value of a cosine-bell function evaluated at x/L. |
|
Translate the wind stresses into the friction velocity, including effects of background gustiness. |
|
Specifies zero surface buoyancy fluxes from input files. |
|
Specifies zero surface buoyancy fluxes from data over-ride. |
|
This subroutine specifies zero surface buoyancy fluxes. |
|
Sets up spatially and temporally constant surface heat fluxes. |
|
Sets surface fluxes of heat and salinity by restoring to temperature and salinity profiles that vary linearly with latitude. |
|
Return a time record to read from a file based on the model time, the number of time records in that file and the number of time records per model day. |
|
Sets the necessary MARBL forcings via the data override facility. |
|
Save a restart file for the forcing fields. |
|
Initialize the surface forcing module. |
|
Deallocate memory associated with the surface forcing module. |
Detailed Description
These functions are called every time step, even if the wind stresses or buoyancy fluxes are constant in time - in that case these routines return quickly without doing anything. In addition, any I/O of forcing fields is controlled by surface_forcing_init, located in this file.
Type Documentation
- type mom_surface_forcing/surface_forcing_cs
Structure containing pointers to the forcing fields that may be used to drive MOM. All fluxes are positive into the ocean.
- Type fields:
% urf_cs ::
type(user_revise_forcing_cs), pointerControl structures for named forcing packages.% user_forcing_csp ::
type(user_surface_forcing_cs), pointerControl structures for named forcing packages.% bfb_forcing_csp ::
type(bfb_surface_forcing_cs), pointerControl structures for named forcing packages.% dumbbell_forcing_csp ::
type(dumbbell_surface_forcing_cs), pointerControl structures for named forcing packages.% meso_forcing_csp ::
type(meso_surface_forcing_cs), pointerControl structures for named forcing packages.% idealized_hurricane_csp ::
type(idealized_hurricane_cs), pointerControl structures for named forcing packages.% scm_cvmix_tests_csp ::
type(scm_cvmix_tests_cs), pointerControl structures for named forcing packages.% marbl_forcing_csp ::
type(marbl_forcing_cs), pointerControl structures for named forcing packages.% use_temperature ::
logicalif true, temp & salinity used as state variables% restorebuoy ::
logicalif true, use restoring surface buoyancy forcing% adiabatic ::
logicalif true, no diapycnal mass fluxes or surface buoyancy forcing% nonbous ::
logicalIf true, this run is fully non-Boussinesq.% variable_winds ::
logicalif true, wind stresses vary with time% variable_buoyforce ::
logicalif true, buoyancy forcing varies with time.% south_lat ::
realsouthern latitude of the domain [degrees_N] or [km] or [m]% len_lat ::
realdomain length in latitude [degrees_N] or [km] or [m]% rho0 ::
realBoussinesq reference density [R ~> kg m-3].% g_earth ::
realgravitational acceleration [L2 Z-1 T-2 ~> m s-2]% flux_const ::
realpiston velocity for surface restoring [Z T-1 ~> m s-1]% flux_const_t ::
realpiston velocity for surface temperature restoring [Z T-1 ~> m s-1]% flux_const_s ::
realpiston velocity for surface salinity restoring [Z T-1 ~> m s-1]% rho_restore ::
realThe density that is used to convert piston velocities into salt or heat fluxes with salinity or temperature restoring [R ~> kg m-3].% latent_heat_fusion ::
reallatent heat of fusion times [Q ~> J kg-1]% latent_heat_vapor ::
reallatent heat of vaporization [Q ~> J kg-1]% tau_x0 ::
realConstant zonal wind stress used in the WIND_CONFIG=”const” forcing [R L Z T-2 ~> Pa].% tau_y0 ::
realConstant meridional wind stress used in the WIND_CONFIG=”const” forcing [R L Z T-2 ~> Pa].% taux_mag ::
realPeak magnitude of the zonal wind stress for several analytic profiles [R L Z T-2 ~> Pa].% gust_const ::
realconstant unresolved background gustiness for ustar [R Z2 T-2 ~> Pa]% read_gust_2d ::
logicalif true, use 2-dimensional gustiness supplied from a file% gust ::
real, dimension(:,:), pointerspatially varying unresolved background gustiness [R L Z T-2 ~> Pa] gust is used when read_gust_2d is true.% t_restore ::
real, dimension(:,:), pointertemperature to damp (restore) the SST to [C ~> degC]% s_restore ::
real, dimension(:,:), pointersalinity to damp (restore) the SSS [S ~> ppt]% dens_restore ::
real, dimension(:,:), pointerdensity to damp (restore) surface density [R ~> kg m-3]% gyres_taux_const ::
realA constant wind stress [R L Z T-2 ~> Pa].% gyres_taux_sin_amp ::
realThe amplitude of cosine wind stress gyres [R L Z T-2 ~> Pa], if WIND_CONFIG==’gyres’.% gyres_taux_cos_amp ::
realThe amplitude of cosine wind stress gyres [R L Z T-2 ~> Pa], if WIND_CONFIG==’gyres’.% gyres_taux_n_pis ::
realThe number of sine lobes in the basin if WIND_CONFIG==’gyres’ [nondim].% answer_date ::
integerThis 8-digit integer gives the approximate date with which the order of arithmetic and expressions were added to the code. Dates before 20190101 use original answers. Dates after 20190101 use a form of the gyre wind stresses that are rotationally invariant and more likely to be the same between compilers.% ustar_gustless_bug ::
logicalIf true, include a bug in the time-averaging of the gustless wind friction velocity.% use_marbl_tracers ::
logicalIf true, allocate memory for forcing needed by MARBL.% scurves_ydata ::
real, dimension(20)Latitudes of scurve nodes [degreesN].% scurves_taux ::
real, dimension(20)Zonal wind stress values at scurve nodes [R L Z T-2 ~> Pa].% t_north ::
realTarget temperatures at north used in buoyancy_forcing_linear [C ~> degC].% t_south ::
realTarget temperatures at south used in buoyancy_forcing_linear [C ~> degC].% s_north ::
realTarget salinity at north used in buoyancy_forcing_linear [S ~> ppt].% s_south ::
realTarget salinity at south used in buoyancy_forcing_linear [S ~> ppt].% first_call_set_forcing ::
logicalTrue until after the first call to set_forcing.% archaic_omip_file ::
logicalIf true use the variable names and data fields from a very old version of the OMIP forcing.% dataoverrideisinitialized ::
logicalIf true, data override has been initialized.% wind_scale ::
realvalue by which wind-stresses are scaled [nondim]% constantheatforcing ::
realvalue used for sensible heat flux when buoy_config=”const” [Q R Z T-1 ~> W m-2]% wind_stagger ::
character(len=8)A character indicating how the wind stress components are staggered in WIND_FILE. Valid values are A or C for now.% tracer_flow_csp ::
type(tracer_flow_control_cs), pointerA pointer to the structure that is used to orchestrate the calling of tracer packages.% restart_csp ::
type(mom_restart_cs), pointerA pointer to the restart control structure.% diag ::
type(diag_ctrl), pointerstructure used to regulate timing of diagnostic output% inputdir ::
character(len=200)directory where NetCDF input files are.% wind_config ::
character(len=200)indicator for wind forcing type (2gyre, USER, FILE..)% wind_file ::
character(len=200)if wind_config is “file”, file to use% buoy_config ::
character(len=200)indicator for buoyancy forcing type% longwave_file ::
character(len=200)The file from which the longwave heat flux is read.% shortwave_file ::
character(len=200)The file from which the shortwave heat flux is read.% evaporation_file ::
character(len=200)The file from which the evaporation is read.% sensibleheat_file ::
character(len=200)The file from which the sensible heat flux is read.% latentheat_file ::
character(len=200)The file from which the latent heat flux is read.% rain_file ::
character(len=200)The file from which the rainfall is read.% snow_file ::
character(len=200)The file from which the snowfall is read.% runoff_file ::
character(len=200)The file from which the runoff is read.% longwaveup_file ::
character(len=200)The file from which the upward longwave heat flux is read.% shortwaveup_file ::
character(len=200)The file from which the upward shortwave heat flux is read.% sstrestore_file ::
character(len=200)The file from which to read the sea surface temperature to restore toward.% salinityrestore_file ::
character(len=200)The file from which to read the sea surface salinity to restore toward.% stress_x_var ::
character(len=80)X-wind stress variable name in the input file.% stress_y_var ::
character(len=80)Y-wind stress variable name in the input file.% ustar_var ::
character(len=80)ustar variable name in the input file% lw_var ::
character(len=80)longwave heat flux variable name in the input file% sw_var ::
character(len=80)shortwave heat flux variable name in the input file% latent_var ::
character(len=80)latent heat flux variable name in the input file% sens_var ::
character(len=80)sensible heat flux variable name in the input file% evap_var ::
character(len=80)evaporation variable name in the input file% rain_var ::
character(len=80)rainfall variable name in the input file% snow_var ::
character(len=80)snowfall variable name in the input file% lrunoff_var ::
character(len=80)liquid runoff variable name in the input file% frunoff_var ::
character(len=80)frozen runoff variable name in the input file% sst_restore_var ::
character(len=80)target sea surface temperature variable name in the input file% sss_restore_var ::
character(len=80)target sea surface salinity variable name in the input file% wind_days_per_rec ::
integerIf positive the number of days of wind stress per forcing file time level, or if negative the number of time levels per day. If 31 change forcing monthly, or if 0 the model will guess the right value based on the file size.% sw_days_per_rec ::
integerIf positive the number of days shortwave heat flux per forcing file time level, or if negative the number of time levels per day. If 31 change forcing monthly, or if 0 the model will guess the right value based on the file size.% lw_days_per_rec ::
integerIf positive the number of days longwave heat flux per forcing file time level, or if negative the number of time levels per day. If 31 change forcing monthly, or if 0 the model will guess the right value based on the file size.% latent_days_per_rec ::
integerIf positive the number of days latent heat flux per forcing file time level, or if negative the number of time levels per day. If 31 change forcing monthly, or if 0 the model will guess the right value based on the file size.% sens_days_per_rec ::
integerIf positive the number of days sensible heat flux per forcing file time level, or if negative the number of time levels per day. If 31 change forcing monthly, or if 0 the model will guess the right value based on the file size.% evap_days_per_rec ::
integerIf positive the number of days evaporation per forcing file time level, or if negative the number of time levels per day. If 31 change forcing monthly, or if 0 the model will guess the right value based on the file size.% precip_days_per_rec ::
integerIf positive the number of days precipitation per forcing file time level, or if negative the number of time levels per day. If 31 change forcing monthly, or if 0 the model will guess the right value based on the file size.% runoff_days_per_rec ::
integerIf positive the number of days runoff per forcing file time level, or if negative the number of time levels per day. If 31 change forcing monthly, or if 0 the model will guess the right value based on the file size.% sst_days_per_rec ::
integerIf positive the number of days target SST per forcing file time level, or if negative the number of time levels per day. If 31 change forcing monthly, or if 0 the model will guess the right value based on the file size.% sss_days_per_rec ::
integerIf positive the number of days target SSS per forcing file time level, or if negative the number of time levels per day. If 31 change forcing monthly, or if 0 the model will guess the right value based on the file size.% wind_nlev ::
integerThe number of time levels in the file of wind stress.% sw_nlev ::
integerThe number of time levels in the file of shortwave heat flux.% lw_nlev ::
integerThe number of time levels in the file of longwave heat flux.% latent_nlev ::
integerThe number of time levels in the file of latent heat flux.% sens_nlev ::
integerThe number of time levels in the file of sensible heat flux.% evap_nlev ::
integerThe number of time levels in the file of evaporation.% precip_nlev ::
integerThe number of time levels in the file of precipitation.% runoff_nlev ::
integerThe number of time levels in the file of runoff.% sst_nlev ::
integerThe number of time levels in the file of target SST.% sss_nlev ::
integerThe number of time levels in the file of target SSS.% wind_last_lev ::
integerThe last time level read of wind stress.% sw_last_lev ::
integerThe last time level read of shortwave heat flux.% lw_last_lev ::
integerThe last time level read of longwave heat flux.% latent_last_lev ::
integerThe last time level read of latent heat flux.% sens_last_lev ::
integerThe last time level read of sensible heat flux.% evap_last_lev ::
integerThe last time level read of evaporation.% precip_last_lev ::
integerThe last time level read of precipitation.% runoff_last_lev ::
integerThe last time level read of runoff.% sst_last_lev ::
integerThe last time level read of target SST.% sss_last_lev ::
integerThe last time level read of target SSS.% handles ::
type(forcing_diags), publicA structure with diagnostics handles.
Function/Subroutine Documentation
- subroutine mom_surface_forcing/set_forcing(sfc_state, forces, fluxes, day_start, day_interval, G, US, CS)
Calls subroutines in this file to get surface forcing fields.
It also allocates and initializes the fields in the forcing and mech_forcing types the first time it is called.
- Parameters:
sfc_state ::
sfc_state[inout] A structure containing fields that describe the surface state of the ocean.forces ::
forces[inout] A structure with the driving mechanical forcesfluxes ::
fluxes[inout] A structure containing thermodynamic forcing fieldsday_start ::
day_start[in] The start time of the fluxesday_interval ::
day_interval[in] Length of time over which these fluxes appliedg :: [inout] The ocean’s grid structure
us :: [in] A dimensional unit scaling type
cs :: pointer to control structure returned by a previous surface_forcing_init call
- Call to:
buoyancy_forcing_constbuoyancy_forcing_from_data_overridebuoyancy_forcing_from_filesbuoyancy_forcing_linearbuoyancy_forcing_zeromom_tracer_flow_control::call_tracer_set_forcingmom_error_handler::calltree_entermom_error_handler::calltree_leavedumbbell_surface_forcing::dumbbell_buoyancy_forcingid_clock_forcingmarbl_forcing_from_data_overrideneverworld_wind_forcingscurve_wind_forcingwind_forcing_1gyrewind_forcing_2gyrewind_forcing_by_data_overridewind_forcing_constwind_forcing_from_filewind_forcing_gyres- Called from:
mom6
- subroutine mom_surface_forcing/wind_forcing_const(sfc_state, forces, tau_x0, tau_y0, day, G, US, CS)
Sets the surface wind stresses to constant values.
- Parameters:
sfc_state ::
sfc_state[inout] A structure containing fields that describe the surface state of the ocean.forces ::
forces[inout] A structure with the driving mechanical forcestau_x0 ::
tau_x0[in] The zonal wind stress [R Z L T-2 ~> Pa]tau_y0 ::
tau_y0[in] The meridional wind stress [R Z L T-2 ~> Pa]day ::
day[in] The time of the fluxesg :: [in] The ocean’s grid structure
us :: [in] A dimensional unit scaling type
cs :: pointer to control structure returned by a previous surface_forcing_init call
- Call to:
mom_error_handler::calltree_entermom_error_handler::calltree_leave- Called from:
- subroutine mom_surface_forcing/wind_forcing_2gyre(sfc_state, forces, day, G, US, CS)
Sets the surface wind stresses to set up two idealized gyres.
- Parameters:
sfc_state ::
sfc_state[inout] A structure containing fields that describe the surface state of the ocean.forces ::
forces[inout] A structure with the driving mechanical forcesday ::
day[in] The time of the fluxesg :: [in] The ocean’s grid structure
us :: [in] A dimensional unit scaling type
cs :: pointer to control structure returned by a previous surface_forcing_init call
- Call to:
mom_error_handler::calltree_entermom_error_handler::calltree_leavestresses_to_ustar- Called from:
- subroutine mom_surface_forcing/wind_forcing_1gyre(sfc_state, forces, day, G, US, CS)
Sets the surface wind stresses to set up a single idealized gyre.
- Parameters:
sfc_state ::
sfc_state[inout] A structure containing fields that describe the surface state of the ocean.forces ::
forces[inout] A structure with the driving mechanical forcesday ::
day[in] The time of the fluxesg :: [in] The ocean’s grid structure
us :: [in] A dimensional unit scaling type
cs :: pointer to control structure returned by a previous surface_forcing_init call
- Call to:
mom_error_handler::calltree_entermom_error_handler::calltree_leavestresses_to_ustar- Called from:
- subroutine mom_surface_forcing/wind_forcing_gyres(sfc_state, forces, day, G, US, CS)
Sets the surface wind stresses to set up idealized gyres.
- Parameters:
sfc_state ::
sfc_state[inout] A structure containing fields that describe the surface state of the ocean.forces ::
forces[inout] A structure with the driving mechanical forcesday ::
day[in] The time of the fluxesg :: [in] The ocean’s grid structure
us :: [in] A dimensional unit scaling type
cs :: pointer to control structure returned by a previous surface_forcing_init call
- Call to:
mom_error_handler::calltree_entermom_error_handler::calltree_leavestresses_to_ustar- Called from:
- subroutine mom_surface_forcing/neverworld_wind_forcing(sfc_state, forces, day, G, US, CS)
Sets the surface wind stresses, forcestaux and forcestauy for the Neverworld forcing configuration.
- Parameters:
sfc_state ::
sfc_state[inout] A structure containing fields that describe the surface state of the ocean.forces ::
forces[inout] A structure with the driving mechanical forcesday ::
day[in] Time used for determining the fluxes.g :: [inout] Grid structure.
us :: [in] A dimensional unit scaling type
cs :: pointer to control structure returned by a previous surface_forcing_init call
- Call to:
- Called from:
- subroutine mom_surface_forcing/scurve_wind_forcing(sfc_state, forces, day, G, US, CS)
Sets the zonal wind stresses to a piecewise series of s-curves.
- Parameters:
sfc_state ::
sfc_state[inout] A structure containing fields that describe the surface state of the ocean.forces ::
forces[inout] A structure with the driving mechanical forcesday ::
day[in] Time used for determining the fluxes.g :: [inout] Grid structure.
us :: [in] A dimensional unit scaling type
cs :: pointer to control structure returned by a previous surface_forcing_init call
- Call to:
- Called from:
- function mom_surface_forcing/scurve(x, L)
Returns the value of a cosine-bell function evaluated at x/L.
- Parameters:
x ::
x[in] non-dimensional position [nondim]l :: [in] non-dimensional width [nondim]
- Called from:
- subroutine mom_surface_forcing/wind_forcing_from_file(sfc_state, forces, day, G, US, CS)
- Parameters:
sfc_state ::
sfc_state[inout] A structure containing fields that describe the surface state of the ocean.forces ::
forces[inout] A structure with the driving mechanical forcesday ::
day[in] The time of the fluxesg :: [inout] The ocean’s grid structure
us :: [in] A dimensional unit scaling type
cs :: pointer to control structure returned by a previous surface_forcing_init call
- Call to:
mom_error_handler::calltree_entermom_error_handler::calltree_leaveget_file_time_levelmom_string_functions::uppercase- Called from:
- subroutine mom_surface_forcing/wind_forcing_by_data_override(sfc_state, forces, day, G, US, CS)
- Parameters:
sfc_state ::
sfc_state[inout] A structure containing fields that describe the surface state of the ocean.forces ::
forces[inout] A structure with the driving mechanical forcesday ::
day[in] The time of the fluxesg :: [inout] The ocean’s grid structure
us :: [in] A dimensional unit scaling type
cs :: pointer to control structure returned by a previous surface_forcing_init call
- Call to:
mom_error_handler::calltree_entermom_error_handler::calltree_leave- Called from:
- subroutine mom_surface_forcing/stresses_to_ustar(forces, G, US, CS)
Translate the wind stresses into the friction velocity, including effects of background gustiness.
- Parameters:
forces ::
forces[inout] A structure with the driving mechanical forcesg :: [in] Grid structure.
us :: [in] A dimensional unit scaling type
cs :: pointer to control structure returned by a previous surface_forcing_init call
- Called from:
neverworld_wind_forcingscurve_wind_forcingwind_forcing_1gyrewind_forcing_2gyrewind_forcing_gyres
- subroutine mom_surface_forcing/buoyancy_forcing_from_files(sfc_state, fluxes, day, dt, G, US, CS)
Specifies zero surface buoyancy fluxes from input files.
- Parameters:
sfc_state ::
sfc_state[inout] A structure containing fields that describe the surface state of the ocean.fluxes ::
fluxes[inout] A structure containing thermodynamic forcing fieldsday ::
day[in] The time of the fluxesdt ::
dt[in] The amount of time over which the fluxes apply [T ~> s]g :: [inout] The ocean’s grid structure
us :: [in] A dimensional unit scaling type
cs :: pointer to control structure returned by a previous surface_forcing_init call
- Call to:
mom_error_handler::calltree_entermom_error_handler::calltree_leaveget_file_time_level- Called from:
- subroutine mom_surface_forcing/buoyancy_forcing_from_data_override(sfc_state, fluxes, day, dt, G, US, CS)
Specifies zero surface buoyancy fluxes from data over-ride.
- Parameters:
sfc_state ::
sfc_state[inout] A structure containing fields that describe the surface state of the ocean.fluxes ::
fluxes[inout] A structure containing thermodynamic forcing fieldsday ::
day[in] The time of the fluxesdt ::
dt[in] The amount of time over which the fluxes apply [T ~> s]g :: [inout] The ocean’s grid structure
us :: [in] A dimensional unit scaling type
cs :: pointer to control structure returned by a previous surface_forcing_init call
- Call to:
mom_error_handler::calltree_entermom_error_handler::calltree_leave- Called from:
- subroutine mom_surface_forcing/buoyancy_forcing_zero(sfc_state, fluxes, day, dt, G, CS)
This subroutine specifies zero surface buoyancy fluxes.
- Parameters:
sfc_state ::
sfc_state[inout] A structure containing fields that describe the surface state of the ocean.fluxes ::
fluxes[inout] A structure containing thermodynamic forcing fieldsday ::
day[in] The time of the fluxesdt ::
dt[in] The amount of time over which the fluxes apply [T ~> s]g :: [in] The ocean’s grid structure
cs :: pointer to control structure returned by a previous surface_forcing_init call
- Call to:
mom_error_handler::calltree_entermom_error_handler::calltree_leave- Called from:
- subroutine mom_surface_forcing/buoyancy_forcing_const(sfc_state, fluxes, day, dt, G, US, CS)
Sets up spatially and temporally constant surface heat fluxes.
- Parameters:
sfc_state ::
sfc_state[inout] A structure containing fields that describe the surface state of the ocean.fluxes ::
fluxes[inout] A structure containing thermodynamic forcing fieldsday ::
day[in] The time of the fluxesdt ::
dt[in] The amount of time over which the fluxes apply [T ~> s]g :: [in] The ocean’s grid structure
us :: [in] A dimensional unit scaling type
cs :: pointer to control structure returned by a previous surface_forcing_init call
- Call to:
mom_error_handler::calltree_entermom_error_handler::calltree_leave- Called from:
- subroutine mom_surface_forcing/buoyancy_forcing_linear(sfc_state, fluxes, day, dt, G, US, CS)
Sets surface fluxes of heat and salinity by restoring to temperature and salinity profiles that vary linearly with latitude.
- Parameters:
sfc_state ::
sfc_state[inout] A structure containing fields that describe the surface state of the ocean.fluxes ::
fluxes[inout] A structure containing thermodynamic forcing fieldsday ::
day[in] The time of the fluxesdt ::
dt[in] The amount of time over which the fluxes apply [T ~> s]g :: [in] The ocean’s grid structure
us :: [in] A dimensional unit scaling type
cs :: pointer to control structure returned by a previous surface_forcing_init call
- Call to:
mom_error_handler::calltree_entermom_error_handler::calltree_leave- Called from:
- function mom_surface_forcing/get_file_time_level(Time, nlev_file, days_per_rec)
Return a time record to read from a file based on the model time, the number of time records in that file and the number of time records per model day.
- Parameters:
time :: [in] The time of the fluxes
nlev_file ::
nlev_file[in] The number of time records in a forcing filedays_per_rec ::
days_per_rec[in] If positive, the number of days spanned by each time record in a file, if negative the number time records per day, or if 0 determine this by guessing based on the number of records in the file. If this is 31, the time levels will be based on the months of the calendar. Setting this larger than 1000000 will always cause the time level to be set to 1.
- Return:
undefined :: The time level in a file that will be read.
- Called from:
- subroutine mom_surface_forcing/marbl_forcing_from_data_override(fluxes, day, G, US, CS)
Sets the necessary MARBL forcings via the data override facility.
- Parameters:
fluxes ::
fluxes[inout] A structure containing thermodynamic forcing fieldsday ::
day[in] The time of the fluxesg :: [inout] The ocean’s grid structure
us :: [in] A dimensional unit scaling type
cs :: pointer to control structure returned by a previous surface_forcing_init call
- Call to:
mom_error_handler::calltree_entermom_error_handler::calltree_leavemarbl_forcing_mod::convert_driver_fields_to_forcings- Called from:
- subroutine mom_surface_forcing/forcing_save_restart(CS, G, Time, directory, time_stamped, filename_suffix)
Save a restart file for the forcing fields.
- Parameters:
cs :: pointer to control structure returned by a previous surface_forcing_init call
g :: [inout] The ocean’s grid structure
time :: [in] model time at this call; needed for mpp_write calls
directory ::
directory[in] directory into which to write these restart filestime_stamped ::
time_stamped[in] If true, the restart file names include a unique time stamp; the default is false.filename_suffix ::
filename_suffix[in] optional suffix (e.g., a time-stamp) to append to the restart file name
- Call to:
- Called from:
mom6
- subroutine mom_surface_forcing/surface_forcing_init(Time, G, US, param_file, diag, CS, tracer_flow_CSp)
Initialize the surface forcing module.
- Parameters:
time :: [in] The current model time
g :: [in] The ocean’s grid structure
us :: [in] A dimensional unit scaling type
param_file ::
param_file[in] A structure to parse for run-time parametersdiag ::
diag[inout] structure used to regulate diagnostic outputcs :: pointer to control structure returned by a previous surface_forcing_init call
tracer_flow_csp :: Forcing for tracers?
- Call to:
bfb_surface_forcing::bfb_surface_forcing_initmom_get_input::get_mom_inputid_clock_forcingidealized_hurricane::idealized_hurricane_wind_initmeso_surface_forcing::meso_surface_forcing_initmom_io::num_timelevelsmom_restart::restart_init_endmom_restart::restore_stateuser_surface_forcing::user_surface_forcing_init- Called from:
mom6
- subroutine mom_surface_forcing/surface_forcing_end(CS, fluxes)
Deallocate memory associated with the surface forcing module.
- Parameters:
cs :: pointer to control structure returned by a previous surface_forcing_init call
fluxes ::
fluxes[inout] A structure containing thermodynamic forcing fields
- Call to: