namespace dyed_obc_tracer¶
Overview¶
This tracer package dyes flow through open boundaries. More…
namespace dyed_obc_tracer { // global functions logical function, public register_dyed_obc_tracer( HI HI, GV GV, param_file param_file, CS CS, tr_Reg tr_Reg, restart_CS restart_CS ); subroutine, public initialize_dyed_obc_tracer( restart restart, day day, G G, GV GV, h h, diag diag, OBC OBC, CS CS ); subroutine, public dyed_obc_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 dyed_obc_tracer_end(CS CS); } // namespace dyed_obc_tracer
Detailed Documentation¶
This tracer package dyes flow through open boundaries.
By Kate Hedstrom, 2017, copied from DOME tracers and also dye_example.
This file contains an example of the code that is needed to set up and use a set of dynamically passive tracers. These tracers dye the inflowing water, one per open boundary segment.
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_dyed_obc_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_dyed_obc_tracer( restart restart, day day, G G, GV GV, h h, diag diag, OBC OBC, CS CS )
Initializes the CSntr tracer fields in tr(:,:,:,:) and sets up the tracer output.
Parameters:
g |
The ocean’s 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 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 dyed_obc_register_tracer. |
subroutine, public dyed_obc_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 dyed_obc_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 dyed_obc_tracer_end(CS CS)
Clean up memory allocations, if any.
Parameters:
cs |
The control structure returned by a previous call to dyed_obc_register_tracer. |