MOM6
|
This program contains the subroutines that advect tracers along coordinate surfaces.
This program contains the subroutines that advect tracers horizontally (i.e. along layers).
Data Types | |
type | tracer_advect_cs |
Control structure for this module. More... | |
Functions/Subroutines | |
subroutine, public | advect_tracer (h_end, uhtr, vhtr, OBC, dt, G, GV, CS, Reg, h_prev_opt, max_iter_in, x_first_in, uhr_out, vhr_out, h_out) |
This routine time steps the tracer concentration using a monotonic, conservative, weakly diffusive scheme. More... | |
subroutine | advect_x (Tr, hprev, uhr, uh_neglect, OBC, domore_u, ntr, Idt, is, ie, js, je, k, G, GV, usePPM, useHuynh) |
This subroutine does 1-d flux-form advection in the zonal direction using a monotonic piecewise linear scheme. More... | |
subroutine | advect_y (Tr, hprev, vhr, vh_neglect, OBC, domore_v, ntr, Idt, is, ie, js, je, k, G, GV, usePPM, useHuynh) |
This subroutine does 1-d flux-form advection using a monotonic piecewise linear scheme. More... | |
subroutine, public | tracer_advect_init (Time, G, param_file, diag, CS) |
Initialize lateral tracer advection module. More... | |
subroutine, public | tracer_advect_end (CS) |
Close the tracer advection module. More... | |
Variables | |
integer | id_clock_advect |
integer | id_clock_pass |
integer | id_clock_sync |
subroutine, public mom_tracer_advect::advect_tracer | ( | real, dimension( g %isd: g %ied, g %jsd: g %jed, g %ke), intent(in) | h_end, |
real, dimension( g %isdb: g %iedb, g %jsd: g %jed, g %ke), intent(in) | uhtr, | ||
real, dimension( g %isd: g %ied, g %jsdb: g %jedb, g %ke), intent(in) | vhtr, | ||
type(ocean_obc_type), pointer | OBC, | ||
real, intent(in) | dt, | ||
type(ocean_grid_type), intent(inout) | G, | ||
type(verticalgrid_type), intent(in) | GV, | ||
type(tracer_advect_cs), pointer | CS, | ||
type(tracer_registry_type), pointer | Reg, | ||
real, dimension( g %isd: g %ied, g %jsd: g %jed, g %ke), optional | h_prev_opt, | ||
integer, optional | max_iter_in, | ||
logical, optional | x_first_in, | ||
real, dimension( g %isdb: g %iedb, g %jsd: g %jed, g %ke), intent(out), optional | uhr_out, | ||
real, dimension( g %isd: g %ied, g %jsdb: g %jedb, g %ke), intent(out), optional | vhr_out, | ||
real, dimension( g %isd: g %ied, g %jsd: g %jed, g %ke), optional | h_out | ||
) |
This routine time steps the tracer concentration using a monotonic, conservative, weakly diffusive scheme.
[in,out] | g | ocean grid structure |
[in] | gv | ocean vertical grid structure |
[in] | h_end | layer thickness after advection (m or kg m-2) |
[in] | uhtr | accumulated volume/mass flux through zonal face (m3 or kg) |
[in] | vhtr | accumulated volume/mass flux through merid face (m3 or kg) |
obc | specifies whether, where, and what OBCs are used | |
[in] | dt | time increment (seconds) |
cs | control structure for module | |
reg | pointer to tracer registry | |
h_prev_opt | layer thickness before advection (m or kg m-2) | |
[out] | uhr_out | accumulated volume/mass flux through zonal face (m3 or kg) |
[out] | vhr_out | accumulated volume/mass flux through merid face (m3 or kg) |
h_out | layer thickness before advection (m or kg m-2) |
Definition at line 49 of file MOM_tracer_advect.F90.
References advect_x(), advect_y(), mom_domains::do_group_pass(), id_clock_advect, id_clock_pass, id_clock_sync, and mom_error_handler::mom_error().
Referenced by mom_offline_main::offline_advection_ale(), and mom_offline_main::offline_redistribute_residual().
|
private |
This subroutine does 1-d flux-form advection in the zonal direction using a monotonic piecewise linear scheme.
[in,out] | g | The ocean's grid structure |
[in] | gv | The ocean's vertical grid structure |
Definition at line 318 of file MOM_tracer_advect.F90.
Referenced by advect_tracer().
|
private |
This subroutine does 1-d flux-form advection using a monotonic piecewise linear scheme.
[in,out] | g | The ocean's grid structure |
[in] | gv | The ocean's vertical grid structure |
Definition at line 582 of file MOM_tracer_advect.F90.
Referenced by advect_tracer().
subroutine, public mom_tracer_advect::tracer_advect_end | ( | type(tracer_advect_cs), pointer | CS | ) |
Close the tracer advection module.
Definition at line 912 of file MOM_tracer_advect.F90.
subroutine, public mom_tracer_advect::tracer_advect_init | ( | type(time_type), intent(in), target | Time, |
type(ocean_grid_type), intent(in) | G, | ||
type(param_file_type), intent(in) | param_file, | ||
type(diag_ctrl), intent(inout), target | diag, | ||
type(tracer_advect_cs), pointer | CS | ||
) |
Initialize lateral tracer advection module.
[in] | time | current model time |
[in] | g | ocean grid structure |
[in] | param_file | open file to parse for model parameters |
[in,out] | diag | regulates diagnostic output |
cs | module control structure |
Definition at line 858 of file MOM_tracer_advect.F90.
References id_clock_advect, id_clock_pass, id_clock_sync, and mom_error_handler::mom_error().
integer mom_tracer_advect::id_clock_advect |
Definition at line 39 of file MOM_tracer_advect.F90.
Referenced by advect_tracer(), and tracer_advect_init().
|
private |
Definition at line 40 of file MOM_tracer_advect.F90.
Referenced by advect_tracer(), and tracer_advect_init().
|
private |
Definition at line 41 of file MOM_tracer_advect.F90.
Referenced by advect_tracer(), and tracer_advect_init().