The module 'fv_tracer2d.F90' performs sub-cycled tracer advection. More...
Functions/Subroutines | |
subroutine, public | tracer_2d_1l (q, dp1, mfx, mfy, cx, cy, gridstruct, bd, domain, npx, npy, npz, nq, hord, q_split, dt, id_divg, q_pack, nord_tr, trdm, lim_fac, regional) |
The subroutine 'tracer_2d_1L' performs 2-D horizontal-to-lagrangian transport. More... | |
subroutine, public | tracer_2d (q, dp1, mfx, mfy, cx, cy, gridstruct, bd, domain, npx, npy, npz, nq, hord, q_split, dt, id_divg, q_pack, nord_tr, trdm, lim_fac, regional) |
The subroutine 'tracer_2d' is the standard routine for sub-cycled tracer advection. More... | |
subroutine, public | tracer_2d_nested (q, dp1, mfx, mfy, cx, cy, gridstruct, bd, domain, npx, npy, npz, nq, hord, q_split, dt, id_divg, q_pack, nord_tr, trdm, k_split, neststruct, parent_grid, lim_fac, regional) |
Variables | |
real, dimension(:,:,:), allocatable | nest_fx_west_accum |
real, dimension(:,:,:), allocatable | nest_fx_east_accum |
real, dimension(:,:,:), allocatable | nest_fx_south_accum |
real, dimension(:,:,:), allocatable | nest_fx_north_accum |
The module 'fv_tracer2d.F90' performs sub-cycled tracer advection.
subroutine, public fv_tracer2d_mod::tracer_2d | ( | real, dimension(bd%isd:bd%ied,bd%jsd:bd%jed,npz,nq), intent(inout) | q, |
real, dimension(bd%isd:bd%ied,bd%jsd:bd%jed,npz), intent(inout) | dp1, | ||
real, dimension(bd%is:bd%ie+1,bd%js:bd%je, npz), intent(inout) | mfx, | ||
real, dimension(bd%is:bd%ie ,bd%js:bd%je+1,npz), intent(inout) | mfy, | ||
real, dimension(bd%is:bd%ie+1,bd%jsd:bd%jed ,npz), intent(inout) | cx, | ||
real, dimension(bd%isd:bd%ied,bd%js :bd%je +1,npz), intent(inout) | cy, | ||
type(fv_grid_type), intent(in), target | gridstruct, | ||
type(fv_grid_bounds_type), intent(in) | bd, | ||
type(domain2d), intent(inout) | domain, | ||
integer, intent(in) | npx, | ||
integer, intent(in) | npy, | ||
integer, intent(in) | npz, | ||
integer, intent(in) | nq, | ||
integer, intent(in) | hord, | ||
integer, intent(in) | q_split, | ||
real, intent(in) | dt, | ||
integer, intent(in) | id_divg, | ||
type(group_halo_update_type), intent(inout) | q_pack, | ||
integer, intent(in) | nord_tr, | ||
real, intent(in) | trdm, | ||
real, intent(in) | lim_fac, | ||
logical, intent(in) | regional | ||
) |
The subroutine 'tracer_2d' is the standard routine for sub-cycled tracer advection.
[in] | nq | number of tracers to be advected |
[in,out] | q | Tracers |
[in,out] | dp1 | DELP before dyn_core |
[in,out] | mfx | Mass Flux X-Dir |
[in,out] | mfy | Mass Flux Y-Dir |
[in,out] | cx | Courant Number X-Dir |
[in,out] | cy | Courant Number Y-Dir |
Definition at line 319 of file fv_tracer2d.F90.
subroutine, public fv_tracer2d_mod::tracer_2d_1l | ( | real, dimension(bd%isd:bd%ied,bd%jsd:bd%jed,npz,nq), intent(inout) | q, |
real, dimension(bd%isd:bd%ied,bd%jsd:bd%jed,npz), intent(inout) | dp1, | ||
real, dimension(bd%is:bd%ie+1,bd%js:bd%je, npz), intent(inout) | mfx, | ||
real, dimension(bd%is:bd%ie ,bd%js:bd%je+1,npz), intent(inout) | mfy, | ||
real, dimension(bd%is:bd%ie+1,bd%jsd:bd%jed ,npz), intent(inout) | cx, | ||
real, dimension(bd%isd:bd%ied,bd%js :bd%je +1,npz), intent(inout) | cy, | ||
type(fv_grid_type), intent(in), target | gridstruct, | ||
type(fv_grid_bounds_type), intent(in) | bd, | ||
type(domain2d), intent(inout) | domain, | ||
integer, intent(in) | npx, | ||
integer, intent(in) | npy, | ||
integer, intent(in) | npz, | ||
integer, intent(in) | nq, | ||
integer, intent(in) | hord, | ||
integer, intent(in) | q_split, | ||
real, intent(in) | dt, | ||
integer, intent(in) | id_divg, | ||
type(group_halo_update_type), intent(inout) | q_pack, | ||
integer, intent(in) | nord_tr, | ||
real, intent(in) | trdm, | ||
real, intent(in) | lim_fac, | ||
logical, intent(in) | regional | ||
) |
The subroutine 'tracer_2d_1L' performs 2-D horizontal-to-lagrangian transport.
This subroutine is called if 'z_tracer = .true.' It modifies 'tracer_2d' so that each layer uses a different diagnosed number of split tracer timesteps. This potentially accelerates tracer advection when there is a large difference in layer-maximum wind speeds (cf. polar night jet).
[in] | nq | number of tracers to be advected |
[in,out] | q | Tracers |
[in,out] | dp1 | DELP before dyn_core |
[in,out] | mfx | Mass Flux X-Dir |
[in,out] | mfy | Mass Flux Y-Dir |
[in,out] | cx | Courant Number X-Dir |
[in,out] | cy | Courant Number Y-Dir |
Definition at line 94 of file fv_tracer2d.F90.
subroutine, public fv_tracer2d_mod::tracer_2d_nested | ( | real, dimension(bd%isd:bd%ied,bd%jsd:bd%jed,npz,nq), intent(inout) | q, |
real, dimension(bd%isd:bd%ied,bd%jsd:bd%jed,npz), intent(inout) | dp1, | ||
real, dimension(bd%is:bd%ie+1,bd%js:bd%je, npz), intent(inout) | mfx, | ||
real, dimension(bd%is:bd%ie ,bd%js:bd%je+1,npz), intent(inout) | mfy, | ||
real, dimension(bd%is:bd%ie+1,bd%jsd:bd%jed ,npz), intent(inout) | cx, | ||
real, dimension(bd%isd:bd%ied,bd%js :bd%je +1,npz), intent(inout) | cy, | ||
type(fv_grid_type), intent(in), target | gridstruct, | ||
type(fv_grid_bounds_type), intent(in) | bd, | ||
type(domain2d), intent(inout) | domain, | ||
integer, intent(in) | npx, | ||
integer, intent(in) | npy, | ||
integer, intent(in) | npz, | ||
integer, intent(in) | nq, | ||
integer, intent(in) | hord, | ||
integer, intent(in) | q_split, | ||
real, intent(in) | dt, | ||
integer, intent(in) | id_divg, | ||
type(group_halo_update_type), intent(inout) | q_pack, | ||
integer, intent(in) | nord_tr, | ||
real, intent(in) | trdm, | ||
integer, intent(in) | k_split, | ||
type(fv_nest_type), intent(inout) | neststruct, | ||
type(fv_atmos_type), intent(in), pointer | parent_grid, | ||
real, intent(in) | lim_fac, | ||
logical, intent(in) | regional | ||
) |
[in] | nq | number of tracers to be advected |
[in,out] | q | Tracers |
[in,out] | dp1 | DELP before dyn_core |
[in,out] | mfx | Mass Flux X-Dir |
[in,out] | mfy | Mass Flux Y-Dir |
[in,out] | cx | Courant Number X-Dir |
[in,out] | cy | Courant Number Y-Dir |
Definition at line 561 of file fv_tracer2d.F90.
|
private |
Definition at line 83 of file fv_tracer2d.F90.
|
private |
Definition at line 83 of file fv_tracer2d.F90.
|
private |
Definition at line 83 of file fv_tracer2d.F90.
|
private |
Definition at line 83 of file fv_tracer2d.F90.