namespace mom_surface_forcing

Overview

Functions that calculate the surface wind stresses and fluxes of buoyancy or temperature/salinity andfresh water, in ocean-only (solo) mode. More…

namespace mom_surface_forcing {

// global variables

integer id_clock_forcing;

// global functions

subroutine, public set_forcing(
    sfc_state sfc_state,
    forces forces,
    fluxes fluxes,
    day_start day_start,
    day_interval day_interval,
    G G,
    US US,
    CS CS
    );

subroutine, public forcing_save_restart(
    CS CS,
    G G,
    Time Time,
    directory directory,
    time_stamped time_stamped,
    filename_suffix filename_suffix
    );

subroutine, public surface_forcing_init(
    Time Time,
    G G,
    US US,
    param_file param_file,
    diag diag,
    CS CS,
    tracer_flow_CSp tracer_flow_CSp
    );

} // namespace mom_surface_forcing

Detailed Documentation

Functions that calculate the surface wind stresses and fluxes of buoyancy or temperature/salinity andfresh water, in ocean-only (solo) mode.

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.

Global Variables

integer id_clock_forcing

A CPU time clock.

Global Functions

subroutine, public set_forcing(
    sfc_state sfc_state,
    forces forces,
    fluxes fluxes,
    day_start day_start,
    day_interval day_interval,
    G G,
    US US,
    CS 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

A structure containing fields that describe the surface state of the ocean.

forces

A structure with the driving mechanical forces

fluxes

A structure containing thermodynamic forcing fields

day_start

The start time of the fluxes

day_interval

Length of time over which these fluxes applied

g

The ocean’s grid structure

us

A dimensional unit scaling type

cs

pointer to control struct returned by a previous surface_forcing_init call

subroutine, public forcing_save_restart(
    CS CS,
    G G,
    Time Time,
    directory directory,
    time_stamped time_stamped,
    filename_suffix filename_suffix
    )

Save a restart file for the forcing fields.

Parameters:

cs

pointer to control struct returned by a previous surface_forcing_init call

g

The ocean’s grid structure

time

model time at this call; needed for mpp_write calls

directory

directory into which to write these restart files

time_stamped

If true, the restart file names include a unique time stamp; the default is false.

filename_suffix

optional suffix (e.g., a time-stamp) to append to the restart fname

subroutine, public surface_forcing_init(
    Time Time,
    G G,
    US US,
    param_file param_file,
    diag diag,
    CS CS,
    tracer_flow_CSp tracer_flow_CSp
    )

Initialize the surface forcing module.

Parameters:

time

The current model time

g

The ocean’s grid structure

us

A dimensional unit scaling type

param_file

A structure to parse for run-time parameters

diag

structure used to regulate diagnostic output

cs

pointer to control struct returned by a previous surface_forcing_init call

tracer_flow_csp

Forcing for tracers?