namespace dome_tracer

Overview

A tracer package that is used as a diagnostic in the DOME experiments. More…

namespace dome_tracer {

// global functions

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

subroutine, public initialize_dome_tracer(
    restart restart,
    day day,
    G G,
    GV GV,
    US US,
    h h,
    diag diag,
    OBC OBC,
    CS CS,
    sponge_CSp sponge_CSp,
    param_file param_file
    );

subroutine, public dome_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 dome_tracer_surface_state(state state, h h, G G, CS CS);
subroutine, public dome_tracer_end(CS CS);

} // namespace dome_tracer

Detailed Documentation

A tracer package that is used as a diagnostic in the DOME experiments.

By Robert Hallberg, 2002

This file contains an example of the code that is needed to set up and use a set (in this case eleven) of dynamically passive tracers. These tracers dye the inflowing water or water initially within a range of latitudes or water initially in a range of depths.

A single subroutine is called from within each file to register each of the tracers for reinitialization and advection and to register the subroutine that initializes the tracers and set up their output and the subroutine that does any tracer physics or chemistry along with diapycnal mixing (included here because some tracers may float or swim vertically or dye diapycnal processes).

Global Functions

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

Register tracer fields and subroutines to be used with MOM.

Parameters:

hi

A horizontal index type structure.

gv

The ocean’s vertical grid structure

param_file

A structure to parse for run-time parameters

cs

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

tr_reg

A pointer to the tracer registry.

restart_cs

A pointer to the restart control structure.

subroutine, public initialize_dome_tracer(
    restart restart,
    day day,
    G G,
    GV GV,
    US US,
    h h,
    diag diag,
    OBC OBC,
    CS CS,
    sponge_CSp sponge_CSp,
    param_file param_file
    )

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

Parameters:

g

The ocean’s grid structure

gv

The ocean’s vertical grid structure

us

A dimensional unit scaling type

restart

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

day

Time of the start of the run.

h

Layer thicknesses [H ~> m or kg m-2]

diag

Structure used to regulate diagnostic output.

obc

Structure specifying open boundary options.

cs

The control structure returned by a previous call to DOME_register_tracer.

sponge_csp

A pointer to the control structure for the sponges, if they are in use.

param_file

A structure to parse for run-time parameters

subroutine, public dome_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.

The arguments to this subroutine are redundant in that h_new(k) = h_old(k) + ea(k) - eb(k-1) + eb(k) - ea(k+1)

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 thermodynamic and tracer 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 to DOME_register_tracer.

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 dome_tracer_surface_state(state state, h h, G G, CS CS)

This subroutine extracts the surface fields from this tracer package that are to be shared with the atmosphere in coupled configurations. This particular tracer package does not report anything back to the coupler.

Parameters:

g

The ocean’s grid structure.

state

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

h

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

cs

The control structure returned by a previous call to DOME_register_tracer.

subroutine, public dome_tracer_end(CS CS)

Clean up memory allocations, if any.

Parameters:

cs

The control structure returned by a previous call to DOME_register_tracer.