rgc_tracer module reference

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…

Data Types

rgc_tracer_cs

tracer control structure

Functions/Subroutines

register_rgc_tracer()

This subroutine is used to register tracer fields.

initialize_rgc_tracer()

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

rgc_tracer_column_physics()

This subroutine applies diapycnal diffusion and any other column tracer physics or chemistry to the tracers from this file.

rgc_tracer_end()

Detailed Description

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.

Type Documentation

type rgc_tracer/rgc_tracer_cs

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.

  • % tr_aux [real(:,:,:,:),pointer] :: The masked tracer concentration.

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

  • % lenlat [real] :: the latitudinal or y-direction length of the domain.

  • % lenlon [real] :: the longitudinal or x-direction length of the domain.

  • % csl [real] :: The length of the continental shelf (x dir, km)

  • % lensponge [real] :: the length of the sponge layer.

  • % mask_tracers [logical] :: If true, tracers are masked out in massless layers.

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

  • % 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 rgc_tracer/register_rgc_tracer(HI, GV, param_file, CS, tr_Reg, restart_CS) [logical]

This subroutine is used to register tracer fields.

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

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

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

Call to

mom_error_handler::mom_error ntr mom_tracer_registry::register_tracer mom_io::var_desc

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

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

Parameters
  • g :: [in] Grid structure.

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

  • 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 thickness, in m or kg m-2.

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

Call to

mom_ale_sponge::get_ale_sponge_nz_data mom_error_handler::mom_error ntr mom_io::query_vardesc mom_sponge::set_up_sponge_field

subroutine rgc_tracer/rgc_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.

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 any possible 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.

  • 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

mom_tracer_diabatic::applytracerboundaryfluxesinout ntr mom_tracer_diabatic::tracer_vertdiff

subroutine rgc_tracer/rgc_tracer_end(CS)
Parameters

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