nw2_tracers module reference

Ideal tracers designed to help diagnose a tracer diffusivity tensor in NeverWorld2.

More…

Data Types

nw2_tracers_cs

The control structure for the nw2_tracers() package.

Functions/Subroutines

register_nw2_tracers()

Register the NW2 tracer fields to be used with MOM.

initialize_nw2_tracers()

Sets the NW2 traces to their initial values and sets up the tracer output.

nw2_tracer_column_physics()

Applies diapycnal diffusion, aging and regeneration at the surface to the NW2 tracers.

nw2_tracer_dist()

The target value of a NeverWorld2 tracer label m at non-dimensional position x=lon/Lx, y=lat/Ly, z=eta/H.

nw2_tracers_end()

Deallocate any memory associated with this tracer package.

Detailed Description

TBD.

Type Documentation

type nw2_tracers/nw2_tracers_cs

The control structure for the nw2_tracers() package. package.

Type fields:
  • % ntr [integer] :: The number of tracers that are actually used.

  • % 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?

  • % restore_rate [real(:),allocatable] :: The rate at which the tracer is damped toward its target profile [T-1 ~> s-1].

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

  • % restart_csp [type( mom_restart_cs ),pointer] :: A pointer to the restart controls structure.

Function/Subroutine Documentation

function nw2_tracers/register_nw2_tracers(HI, GV, US, param_file, CS, tr_Reg, restart_CS) [logical]

Register the NW2 tracer fields to be used with MOM.

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

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

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

  • param_file :: [in] A structure to parse for run-time parameters

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

  • tr_reg :: A pointer that is set to point to the control structure for the tracer advection and diffusion module

  • restart_cs :: [inout] MOM restart control struct

Call to:

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

subroutine nw2_tracers/initialize_nw2_tracers(restart, day, G, GV, US, h, tv, diag, CS)

Sets the NW2 traces to their initial values and sets up the tracer output.

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

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

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

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

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

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

  • tv :: [in] A structure pointing to various thermodynamic variables

  • diag :: [in] A structure that is used to regulate diagnostic output.

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

Call to:

mom_error_handler::mom_error nw2_tracer_dist

Called from:

mom_tracer_flow_control::tracer_flow_control_init

subroutine nw2_tracers/nw2_tracer_column_physics(h_old, h_new, ea, eb, fluxes, dt, G, GV, US, tv, CS, evap_CFL_limit, minimum_forcing_depth)

Applies diapycnal diffusion, aging and regeneration at the surface to the NW2 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 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

  • tv :: [in] A structure pointing to various thermodynamic variables

  • cs :: The control structure returned by a previous call to register_nw2_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:

mom_tracer_diabatic::applytracerboundaryfluxesinout mom_error_handler::mom_error nw2_tracer_dist mom_tracer_diabatic::tracer_vertdiff

function nw2_tracers/nw2_tracer_dist(m, G, GV, eta, i, j, k) [real]

The target value of a NeverWorld2 tracer label m at non-dimensional position x=lon/Lx, y=lat/Ly, z=eta/H.

Parameters:
  • m :: [in] Indicates the NW2 tracer

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

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

  • eta :: [in] Interface position [Z ~> m]

  • i :: [in] Cell index i

  • j :: [in] Cell index j

  • k :: [in] Layer index k

Called from:

initialize_nw2_tracers nw2_tracer_column_physics

subroutine nw2_tracers/nw2_tracers_end(CS)

Deallocate any memory associated with this tracer package.

Parameters:

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

Called from:

mom_tracer_flow_control::tracer_flow_control_end