meso_surface_forcing module reference

Sets forcing for the MESO configuration.

More…

Data Types

meso_surface_forcing_cs

This control structure is used to store parameters associated with the MESO forcing.

Functions/Subroutines

meso_buoyancy_forcing()

This subroutine sets up the MESO buoyancy forcing, which uses control-theory style specification restorative buoyancy fluxes at large scales.

meso_surface_forcing_init()

Initialize the MESO surface forcing module.

Detailed Description

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.

Type Documentation

type meso_surface_forcing/meso_surface_forcing_cs

This control structure is used to store parameters associated with the MESO forcing.

Type fields:
  • % use_temperature [logical] :: If true, temperature and salinity are used as state variables.

  • % restorebuoy [logical] :: If true, use restoring surface buoyancy forcing.

  • % rho0 [real] :: The density used in the Boussinesq approximation [R ~> kg m-3].

  • % g_earth [real] :: The gravitational acceleration [L2 Z-1 T-2 ~> m s-2].

  • % flux_const [real] :: The restoring rate at the surface [Z T-1 ~> m s-1].

  • % rho_restore [real] :: The density that is used to convert piston velocities into salt or heat fluxes with salinity or temperature restoring [R ~> kg m-3].

  • % gust_const [real] :: A constant unresolved background gustiness that contributes to ustar [R L Z T-2 ~> Pa].

  • % t_restore [real(:,:),pointer] :: The temperature to restore the SST toward [C ~> degC].

  • % s_restore [real(:,:),pointer] :: The salinity to restore the sea surface salnity toward [S ~> ppt].

  • % pme [real(:,:),pointer] :: The prescribed precip minus evap [Z T-1 ~> m s-1].

  • % solar [real(:,:),pointer] :: The shortwave forcing into the ocean [Q R Z T-1 ~> W m-2].

  • % heat [real(:,:),pointer] :: The prescribed longwave, latent and sensible heat flux into the ocean [Q R Z T-1 ~> W m-2].

  • % inputdir [character (len=200)] :: The directory where NetCDF input files are.

  • % salinityrestore_file [character (len=200)] :: The file with the target sea surface salinity.

  • % sstrestore_file [character (len=200)] :: The file with the target sea surface temperature.

  • % solar_file [character (len=200)] :: The file with the shortwave forcing.

  • % heating_file [character (len=200)] :: The file with the longwave, latent, and sensible heating.

  • % pme_file [character (len=200)] :: The file with precipitation minus evaporation.

  • % diag [type( diag_ctrl ),pointer] :: A structure that is used to regulate the timing of diagnostic output.

Function/Subroutine Documentation

subroutine meso_surface_forcing/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.

Parameters:
  • sfc_state :: [inout] A structure containing fields that describe the surface state of the ocean.

  • fluxes :: [inout] A structure containing thermodynamic forcing fields

  • day :: [in] The time of the fluxes

  • 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 :: A pointer to the control structure returned by a previous call to MESO_surface_forcing_init

Call to:

first_call mom_error_handler::mom_error

subroutine meso_surface_forcing/meso_surface_forcing_init(Time, G, US, param_file, diag, CS)

Initialize the MESO 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 :: [in] A structure to parse for run-time parameters

  • diag :: [inout] structure used to regulate diagnostic output

  • cs :: A pointer that is set to point to the control structure for this module

Call to:

mom_error_handler::mom_error

Called from:

mom_surface_forcing::surface_forcing_init