The module 'tp_core' is a collection of routines to support FV transport. More...
Functions/Subroutines | |
subroutine, public | fv_tp_2d (q, crx, cry, npx, npy, hord, fx, fy, xfx, yfx, gridstruct, bd, ra_x, ra_y, lim_fac, regional, mfx, mfy, mass, nord, damp_c) |
The subroutine 'fv_tp_2d' contains the FV advection scheme [putman2007finite] [lin1996multiflux]. More... | |
subroutine, public | copy_corners (q, npx, npy, dir, nested, bd, sw_corner, se_corner, nw_corner, ne_corner) |
subroutine | xppm (flux, q, c, iord, is, ie, isd, ied, jfirst, jlast, jsd, jed, npx, npy, dxa, nested, grid_type, lim_fac, regional) |
subroutine | yppm (flux, q, c, jord, ifirst, ilast, isd, ied, js, je, jsd, jed, npx, npy, dya, nested, grid_type, lim_fac, regional) |
subroutine | mp_ghost_ew (im, jm, km, nq, ifirst, ilast, jfirst, jlast, kfirst, klast, ng_w, ng_e, ng_s, ng_n, q_ghst, q) |
subroutine, public | pert_ppm (im, a0, al, ar, iv) |
subroutine | deln_flux (nord, is, ie, js, je, npx, npy, damp, q, fx, fy, gridstruct, regional, bd, mass) |
Variables | |
real, parameter | ppm_fac = 1.5 |
nonlinear scheme limiter: between 1 and 2 More... | |
real, parameter | r3 = 1./3. |
real, parameter | near_zero = 1.E-25 |
real, parameter | ppm_limiter = 2.0 |
real, parameter | b1 = 1./30. |
real, parameter | b2 = -13./60. |
real, parameter | b3 = -13./60. |
real, parameter | b4 = 0.45 |
real, parameter | b5 = -0.05 |
real, parameter | t11 = 27./28. |
real, parameter | t12 = -13./28. |
real, parameter | t13 =3./7. |
real, parameter | s11 = 11./14. |
real, parameter | s14 = 4./7. |
real, parameter | s15 =3./14. |
real, parameter | c1 = -2./14. |
real, parameter | c2 = 11./14. |
real, parameter | c3 = 5./14. |
real, parameter | p1 = 7./12. |
real, parameter | p2 = -1./12. |
The module 'tp_core' is a collection of routines to support FV transport.
The module contains the scalar advection scheme and PPM operators.
subroutine, public tp_core_mod::copy_corners | ( | real, dimension(bd%isd:bd%ied,bd%jsd:bd%jed), intent(inout) | q, |
integer, intent(in) | npx, | ||
integer, intent(in) | npy, | ||
integer, intent(in) | dir, | ||
logical, intent(in) | nested, | ||
type(fv_grid_bounds_type), intent(in) | bd, | ||
logical, intent(in) | sw_corner, | ||
logical, intent(in) | se_corner, | ||
logical, intent(in) | nw_corner, | ||
logical, intent(in) | ne_corner | ||
) |
Definition at line 248 of file tp_core.F90.
|
private |
[in] | bd | nord = 0: del-2 nord = 1: del-4 nord = 2: del-6 nord = 3: del-8 –> requires more ghosting than current |
[in] | nord | del-n |
Definition at line 1090 of file tp_core.F90.
subroutine, public tp_core_mod::fv_tp_2d | ( | real, dimension(bd%isd:bd%ied,bd%jsd:bd%jed), intent(inout) | q, |
real, dimension(bd%is:bd%ie+1,bd%jsd:bd%jed), intent(in) | crx, | ||
real, dimension(bd%isd:bd%ied,bd%js:bd%je+1 ), intent(in) | cry, | ||
integer, intent(in) | npx, | ||
integer, intent(in) | npy, | ||
integer, intent(in) | hord, | ||
real, dimension(bd%is:bd%ie+1 ,bd%js:bd%je), intent(out) | fx, | ||
real, dimension(bd%is:bd%ie, bd%js:bd%je+1 ), intent(out) | fy, | ||
real, dimension(bd%is:bd%ie+1,bd%jsd:bd%jed), intent(in) | xfx, | ||
real, dimension(bd%isd:bd%ied,bd%js:bd%je+1 ), intent(in) | yfx, | ||
type(fv_grid_type), intent(in), target | gridstruct, | ||
type(fv_grid_bounds_type), intent(in) | bd, | ||
real, dimension(bd%is:bd%ie,bd%jsd:bd%jed), intent(in) | ra_x, | ||
real, dimension(bd%isd:bd%ied,bd%js:bd%je), intent(in) | ra_y, | ||
real, intent(in) | lim_fac, | ||
logical, intent(in) | regional, | ||
real, dimension(bd%is:bd%ie+1,bd%js:bd%je ), intent(in), optional | mfx, | ||
real, dimension(bd%is:bd%ie ,bd%js:bd%je+1), intent(in), optional | mfy, | ||
real, dimension(bd%isd:bd%ied,bd%jsd:bd%jed), intent(in), optional | mass, | ||
integer, intent(in), optional | nord, | ||
real, intent(in), optional | damp_c | ||
) |
The subroutine 'fv_tp_2d' contains the FV advection scheme [putman2007finite] [lin1996multiflux].
It performs 1 time step of the forward advection.
[in,out] | q | transported scalar |
[out] | fx | Flux in x ( E ) |
[out] | fy | Flux in y ( N ) |
[in] | mfx | Mass Flux X-Dir |
[in] | mfy | Mass Flux Y-Dir |
[in] | nord | order of divergence damping |
Definition at line 110 of file tp_core.F90.
|
private |
[in] | ng_e | eastern zones to ghost |
[in] | ng_w | western zones to ghost |
[in] | ng_s | southern zones to ghost |
[in] | ng_n | northern zones to ghost |
Definition at line 979 of file tp_core.F90.
subroutine, public tp_core_mod::pert_ppm | ( | integer, intent(in) | im, |
real, dimension(im), intent(in) | a0, | ||
real, dimension(im), intent(inout) | al, | ||
real, dimension(im), intent(inout) | ar, | ||
integer, intent(in) | iv | ||
) |
Definition at line 1028 of file tp_core.F90.
|
private |
[in] | jlast | compute domain |
[in] | c | Courant N (like FLUX) |
Definition at line 324 of file tp_core.F90.
|
private |
[in] | ilast | Compute domain |
[in] | c | Courant number |
Definition at line 633 of file tp_core.F90.
|
private |
Definition at line 76 of file tp_core.F90.
|
private |
Definition at line 77 of file tp_core.F90.
|
private |
Definition at line 78 of file tp_core.F90.
|
private |
Definition at line 79 of file tp_core.F90.
|
private |
Definition at line 80 of file tp_core.F90.
|
private |
Definition at line 88 of file tp_core.F90.
|
private |
Definition at line 89 of file tp_core.F90.
|
private |
Definition at line 90 of file tp_core.F90.
|
private |
Definition at line 63 of file tp_core.F90.
|
private |
Definition at line 94 of file tp_core.F90.
|
private |
Definition at line 95 of file tp_core.F90.
|
private |
nonlinear scheme limiter: between 1 and 2
Definition at line 61 of file tp_core.F90.
|
private |
Definition at line 64 of file tp_core.F90.
|
private |
Definition at line 62 of file tp_core.F90.
|
private |
Definition at line 83 of file tp_core.F90.
|
private |
Definition at line 83 of file tp_core.F90.
|
private |
Definition at line 83 of file tp_core.F90.
|
private |
Definition at line 82 of file tp_core.F90.
|
private |
Definition at line 82 of file tp_core.F90.
|
private |
Definition at line 82 of file tp_core.F90.