MOM6
|
Sets forcing for the MESO configuration.
Rewritten by Robert Hallberg, June 2009
This file contains the subroutines that a user should modify to to set the surface wind stresses and fluxes of buoyancy or temperature and fresh water. They are called when the run-time parameters WIND_CONFIG or BUOY_CONFIG are set to "USER". The standard version has simple examples, along with run-time error messages that will cause the model to abort if this code has not been modified. This code is intended for use with relatively simple specifications of the forcing. For more complicated forms, it is probably a good idea to read the forcing from input files using "file" for WIND_CONFIG and BUOY_CONFIG.
MESO_buoyancy forcing is used to set the surface buoyancy forcing, which may include a number of fresh water flux fields (evap, liq_precip, froz_precip, liq_runoff, froz_runoff, and vprec) and the surface heat fluxes (sw, lw, latent and sens) if temperature and salinity are state variables, or it may simply be the buoyancy flux if it is not. This routine also has coded a restoring to surface values of temperature and salinity.
Data Types | |
type | meso_surface_forcing_cs |
This control structure is used to store parameters associated with the MESO forcing. More... | |
Functions/Subroutines | |
subroutine, public | meso_buoyancy_forcing (sfc_state, fluxes, day, dt, G, US, CS) |
This subroutine sets up the MESO buoyancy forcing, which uses control-theory style specification restorative buoyancy fluxes at large scales. More... | |
subroutine, public | meso_surface_forcing_init (Time, G, US, param_file, diag, CS) |
Initialize the MESO surface forcing module. More... | |
Variables | |
logical | first_call = .true. |
True until after the first call to the MESO forcing routines. More... | |
subroutine, public meso_surface_forcing::meso_buoyancy_forcing | ( | type(surface), intent(inout) | sfc_state, |
type(forcing), intent(inout) | fluxes, | ||
type(time_type), intent(in) | day, | ||
real, intent(in) | dt, | ||
type(ocean_grid_type), intent(in) | G, | ||
type(unit_scale_type), intent(in) | US, | ||
type(meso_surface_forcing_cs), pointer | CS | ||
) |
This subroutine sets up the MESO buoyancy forcing, which uses control-theory style specification restorative buoyancy fluxes at large scales.
[in,out] | sfc_state | A structure containing fields that describe the surface state of the ocean. |
[in,out] | fluxes | A structure containing thermodynamic forcing fields |
[in] | day | The time of the fluxes |
[in] | dt | The amount of time over which the fluxes apply [s] |
[in] | g | The ocean's grid structure |
[in] | us | A dimensional unit scaling type |
cs | A pointer to the control structure returned by a previous call to MESO_surface_forcing_init |
Definition at line 59 of file MESO_surface_forcing.F90.
References first_call, and mom_error_handler::mom_error().
subroutine, public meso_surface_forcing::meso_surface_forcing_init | ( | type(time_type), intent(in) | Time, |
type(ocean_grid_type), intent(in) | G, | ||
type(unit_scale_type), intent(in) | US, | ||
type(param_file_type), intent(in) | param_file, | ||
type(diag_ctrl), intent(inout), target | diag, | ||
type(meso_surface_forcing_cs), pointer | CS | ||
) |
Initialize the MESO surface forcing module.
[in] | time | The current model time |
[in] | g | The ocean's grid structure |
[in] | us | A dimensional unit scaling type |
[in] | param_file | A structure to parse for run-time parameters |
[in,out] | diag | structure used to regulate diagnostic output |
cs | A pointer that is set to point to the control structure for this module |
Definition at line 210 of file MESO_surface_forcing.F90.
References mom_error_handler::mom_error().
Referenced by mom_surface_forcing::surface_forcing_init().
logical meso_surface_forcing::first_call = .true. |
True until after the first call to the MESO forcing routines.
Definition at line 52 of file MESO_surface_forcing.F90.
Referenced by meso_buoyancy_forcing().