FV3DYCORE  Version1.0.0
fv_tracer2d_mod Module Reference

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
 

Detailed Description

The module 'fv_tracer2d.F90' performs sub-cycled tracer advection.

See also
[lin2004vertically]

Function/Subroutine Documentation

◆ tracer_2d()

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.

Parameters
[in]nqnumber of tracers to be advected
[in,out]qTracers
[in,out]dp1DELP before dyn_core
[in,out]mfxMass Flux X-Dir
[in,out]mfyMass Flux Y-Dir
[in,out]cxCourant Number X-Dir
[in,out]cyCourant Number Y-Dir

Definition at line 319 of file fv_tracer2d.F90.

◆ tracer_2d_1l()

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).

Parameters
[in]nqnumber of tracers to be advected
[in,out]qTracers
[in,out]dp1DELP before dyn_core
[in,out]mfxMass Flux X-Dir
[in,out]mfyMass Flux Y-Dir
[in,out]cxCourant Number X-Dir
[in,out]cyCourant Number Y-Dir

Definition at line 94 of file fv_tracer2d.F90.

◆ tracer_2d_nested()

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 
)
Parameters
[in]nqnumber of tracers to be advected
[in,out]qTracers
[in,out]dp1DELP before dyn_core
[in,out]mfxMass Flux X-Dir
[in,out]mfyMass Flux Y-Dir
[in,out]cxCourant Number X-Dir
[in,out]cyCourant Number Y-Dir

Definition at line 561 of file fv_tracer2d.F90.

Variable Documentation

◆ nest_fx_east_accum

real, dimension(:,:,:), allocatable fv_tracer2d_mod::nest_fx_east_accum
private

Definition at line 83 of file fv_tracer2d.F90.

◆ nest_fx_north_accum

real, dimension(:,:,:), allocatable fv_tracer2d_mod::nest_fx_north_accum
private

Definition at line 83 of file fv_tracer2d.F90.

◆ nest_fx_south_accum

real, dimension(:,:,:), allocatable fv_tracer2d_mod::nest_fx_south_accum
private

Definition at line 83 of file fv_tracer2d.F90.

◆ nest_fx_west_accum

real, dimension(:,:,:), allocatable fv_tracer2d_mod::nest_fx_west_accum
private

Definition at line 83 of file fv_tracer2d.F90.