namespace rgc_tracer

Overview

This module contains the routines used to set up a dynamically passive tracer. Set up and use passive tracers requires the following: (1) register_RGC_tracer (2) apply diffusion, physics/chemistry and advect the tracer. More…

namespace rgc_tracer {

// global functions

logical function, public register_rgc_tracer(
    HI HI,
    GV GV,
    param_file param_file,
    CS CS,
    tr_Reg tr_Reg,
    restart_CS restart_CS
    );

subroutine, public initialize_rgc_tracer(
    restart restart,
    day day,
    G G,
    GV GV,
    h h,
    diag diag,
    OBC OBC,
    CS CS,
    layer_CSp layer_CSp,
    sponge_CSp sponge_CSp
    );

subroutine, public rgc_tracer_column_physics(
    h_old h_old,
    h_new h_new,
    ea ea,
    eb eb,
    fluxes fluxes,
    dt dt,
    G G,
    GV GV,
    CS CS,
    evap_CFL_limit evap_CFL_limit,
    minimum_forcing_depth minimum_forcing_depth
    );

subroutine, public rgc_tracer_end(CS CS);

} // namespace rgc_tracer

Detailed Documentation

This module contains the routines used to set up a dynamically passive tracer. Set up and use passive tracers requires the following: (1) register_RGC_tracer (2) apply diffusion, physics/chemistry and advect the tracer.

Global Functions

logical function, public register_rgc_tracer(
    HI HI,
    GV GV,
    param_file param_file,
    CS CS,
    tr_Reg tr_Reg,
    restart_CS restart_CS
    )

This subroutine is used to register tracer fields.

Parameters:

hi

A horizontal index type structure.

gv

The ocean’s vertical grid structure.

param_file

A structure indicating the open file to parse for model parameter values.

cs

A pointer that is set to point to the control structure for this module (in/out).

tr_reg

A pointer to the tracer registry.

restart_cs

A pointer to the restart control structure.

subroutine, public initialize_rgc_tracer(
    restart restart,
    day day,
    G G,
    GV GV,
    h h,
    diag diag,
    OBC OBC,
    CS CS,
    layer_CSp layer_CSp,
    sponge_CSp sponge_CSp
    )

Initializes the NTR tracer fields in tr(:,:,:,:) and it sets up the tracer output.

Parameters:

g

Grid structure.

gv

The ocean’s vertical grid structure.

restart

.true. if the fields have already been read from a restart file.

day

Time of the start of the run.

h

Layer thickness, in m or kg m-2.

diag

Structure used to regulate diagnostic output.

obc

This open boundary condition type specifies whether, where, and what open boundary conditions are used. This is not being used for now.

cs

The control structure returned by a previous call to RGC_register_tracer.

layer_csp

A pointer to the control structure

sponge_csp

A pointer to the control structure for the sponges, if they are in use. Otherwise this may be unassociated.

subroutine, public rgc_tracer_column_physics(
    h_old h_old,
    h_new h_new,
    ea ea,
    eb eb,
    fluxes fluxes,
    dt dt,
    G G,
    GV GV,
    CS CS,
    evap_CFL_limit evap_CFL_limit,
    minimum_forcing_depth minimum_forcing_depth
    )

This subroutine applies diapycnal diffusion and any other column tracer physics or chemistry to the tracers from this file. This is a simple example of a set of advected passive tracers.

Parameters:

g

The ocean’s grid structure.

gv

The ocean’s vertical grid structure.

h_old

Layer thickness before entrainment [H ~> m or kg m-2].

h_new

Layer thickness after entrainment [H ~> m or kg m-2].

ea

an array to which the amount of fluid entrained

eb

an array to which the amount of fluid entrained

fluxes

A structure containing pointers to any possible forcing fields. Unused fields have NULL ptrs.

dt

The amount of time covered by this call [s].

cs

The control structure returned by a previous call.

evap_cfl_limit

Limit on the fraction of the water that can be fluxed out of the top layer in a timestep [nondim].

minimum_forcing_depth

The smallest depth over which fluxes can be applied [m].

subroutine, public rgc_tracer_end(CS CS)

Parameters:

cs

The control structure returned by a previous call to RGC_register_tracer.