dome_tracer module reference¶

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

More…

Data Types¶

 dome_tracer_cs The DOME_tracer control structure.

Functions/Subroutines¶

 register_dome_tracer() Register tracer fields and subroutines to be used with MOM. initialize_dome_tracer() Initializes the NTR tracer fields in tr(:,:,:,:) and sets up the tracer output. dome_tracer_column_physics() This subroutine applies diapycnal diffusion and any other column tracer physics or chemistry to the tracers from this file. dome_tracer_surface_state() This subroutine extracts the surface fields from this tracer package that are to be shared with the atmosphere in coupled configurations. dome_tracer_end() Clean up memory allocations, if any.

Detailed Description¶

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).

Type Documentation¶

type dome_tracer/dome_tracer_cs

The DOME_tracer control structure.

Type fields
• % coupled_tracers [logical] :: These tracers are not offered to the coupler.

• % tracer_ic_file [character (len=200)] :: The full path to the IC file, or ” ” to initialize internally.

• % time [type(time_type),pointer] :: A pointer to the ocean model’s clock.

• % tr_reg [type(tracer_registry_type),pointer] :: A pointer to the tracer registry.

• % tr [real(:,:,:,:),pointer] :: The array of tracers used in this package, in g m-3?

• % land_val [real( ntr )] :: The value of tr used where land is masked out.

• % use_sponge [logical] :: If true, sponges may be applied somewhere in the domain.

• % ind_tr [integer( ntr )] :: Indices returned by atmos_ocn_coupler_flux if it is used and the surface tracer concentrations are to be provided to the coupler.

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

• % tr_desc [type(vardesc)( ntr )] :: Descriptions and metadata for the tracers.

Function/Subroutine Documentation¶

function dome_tracer/register_dome_tracer(HI, GV, param_file, CS, tr_Reg, restart_CS) [logical]

Register tracer fields and subroutines to be used with MOM.

Parameters
• hi :: [in] A horizontal index type structure.

• gv :: [in] The ocean’s vertical grid structure

• param_file :: [in] 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.

Call to
subroutine dome_tracer/initialize_dome_tracer(restart, day, G, GV, US, h, diag, OBC, CS, sponge_CSp, param_file)

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

Parameters
• g :: [in] The ocean’s grid structure

• gv :: [in] The ocean’s vertical grid structure

• us :: [in] A dimensional unit scaling type

• restart :: [in] .true. if the fields have already been read from a restart file.

• day :: [in] Time of the start of the run.

• h :: [in] Layer thicknesses [H ~> m or kg m-2]

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

Call to
subroutine dome_tracer/dome_tracer_column_physics(h_old, h_new, ea, eb, fluxes, dt, G, GV, US, CS, evap_CFL_limit, 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 :: [in] The ocean’s grid structure

• gv :: [in] The ocean’s vertical grid structure

• h_old :: [in] Layer thickness before entrainment [H ~> m or kg m-2].

• h_new :: [in] Layer thickness after entrainment [H ~> m or kg m-2].

• ea :: [in] an array to which the amount of fluid entrained

• eb :: [in] an array to which the amount of fluid entrained

• fluxes :: [in] A structure containing pointers to thermodynamic and tracer forcing fields. Unused fields have NULL ptrs.

• dt :: [in] The amount of time covered by this call [T ~> s]

• us :: [in] A dimensional unit scaling type

• cs :: The control structure returned by a previous call to DOME_register_tracer.

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

• minimum_forcing_depth :: [in] The smallest depth over which fluxes can be applied [H ~> m or kg m-2]

Call to
subroutine dome_tracer/dome_tracer_surface_state(sfc_state, h, G, GV, 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 :: [in] The ocean’s grid structure.

• gv :: [in] The ocean’s vertical grid structure

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

• h :: [in] Layer thickness [H ~> m or kg m-2].

• cs :: The control structure returned by a previous call to DOME_register_tracer.

Call to

ntr mom_coupler_types::set_coupler_type_data

subroutine dome_tracer/dome_tracer_end(CS)

Clean up memory allocations, if any.

Parameters

cs :: The control structure returned by a previous call to DOME_register_tracer.