user_surface_forcing module reference

Template for user to code up surface forcing.

More…

Data Types

user_surface_forcing_cs

This control structure should be used to store any run-time variables associated with the user-specified forcing.

Functions/Subroutines

user_wind_forcing()

This subroutine sets the surface wind stresses, forcestaux and forcestauy, in [R Z L T-2 ~> Pa].

user_buoyancy_forcing()

This subroutine specifies the current surface fluxes of buoyancy or temperature and fresh water.

user_surface_forcing_init()

This subroutine initializes the USER_surface_forcing module.

Detailed Description

Template for user to code up surface forcing.

Type Documentation

type user_surface_forcing/user_surface_forcing_cs

This control structure should be used to store any run-time variables associated with the user-specified 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].

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

Function/Subroutine Documentation

subroutine user_surface_forcing/user_wind_forcing(sfc_state, forces, day, G, US, CS)

This subroutine sets the surface wind stresses, forcestaux and forcestauy, in [R Z L T-2 ~> Pa]. These are the stresses in the direction of the model grid (i.e. the same direction as the u- and v- velocities).

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

  • forces :: [inout] A structure with the driving mechanical forces

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

  • g :: [inout] 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 user_surface_forcing_init

Call to:

mom_error_handler::mom_error

subroutine user_surface_forcing/user_buoyancy_forcing(sfc_state, fluxes, day, dt, G, US, CS)

This subroutine specifies the current surface fluxes of buoyancy or temperature and fresh water. It may also be modified to add surface fluxes of user provided tracers.

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 user_surface_forcing_init

Call to:

mom_error_handler::mom_error

subroutine user_surface_forcing/user_surface_forcing_init(Time, G, US, param_file, diag, CS)

This subroutine initializes the USER_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 :: [in] A structure that is 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