The module 'dyn_core' peforms the Lagrangian acoustic dynamics described by [lin2004vertically]. More...
Functions/Subroutines | |
subroutine, public | dyn_core (npx, npy, npz, ng, sphum, nq, bdt, n_map, n_split, zvir, cp, akap, cappa, grav, hydrostatic, u, v, w, delz, pt, q, delp, pe, pk, phis, ws, omga, ptop, pfull, ua, va, uc, vc, mfx, mfy, cx, cy, pkz, peln, q_con, ak, bk, ks, gridstruct, flagstruct, neststruct, idiag, bd, domain, init_step, i_pack, end_step, diss_est, time_total) |
subroutine | pk3_halo (is, ie, js, je, isd, ied, jsd, jed, npz, ptop, akap, pk3, delp) |
subroutine | pln_halo (is, ie, js, je, isd, ied, jsd, jed, npz, ptop, pk3, delp) |
subroutine | pe_halo (is, ie, js, je, isd, ied, jsd, jed, npz, ptop, pe, delp) |
subroutine | adv_pe (ua, va, pem, om, gridstruct, bd, npx, npy, npz, ng) |
subroutine | p_grad_c (dt2, npz, delpc, pkc, gz, uc, vc, bd, rdxc, rdyc, hydrostatic) |
subroutine | nh_p_grad (u, v, pp, gz, delp, pk, dt, ng, gridstruct, bd, npx, npy, npz, use_logp) |
subroutine | split_p_grad (u, v, pp, gz, delp, pk, beta, dt, ng, gridstruct, bd, npx, npy, npz, use_logp) |
subroutine | one_grad_p (u, v, pk, gz, divg2, delp, dt, ng, gridstruct, bd, npx, npy, npz, ptop, hydrostatic, a2b_ord, d_ext) |
subroutine | grad1_p_update (divg2, u, v, pk, gz, dt, ng, gridstruct, bd, npx, npy, npz, ptop, beta, a2b_ord) |
subroutine | mix_dp (hydrostatic, w, delp, pt, km, ak, bk, CG, fv_debug, bd) |
subroutine | geopk (ptop, pe, peln, delp, pk, gz, hs, pt, ifdef MULTI_GASES |
The subroutine 'geopk' calculates geopotential and pressure to the kappa. More... | |
subroutine, public | del2_cubed (q, cd, gridstruct, domain, npx, npy, km, nmax, bd) |
The subroutine 'del2-cubed' filters the omega field for the physics. More... | |
subroutine, public | init_ijk_mem (i1, i2, j1, j2, km, array, var) |
subroutine | ray_fast (dt, npx, npy, npz, pfull, tau, u, v, w, ks, dp, ptop, hydrostatic, rf_cutoff, bd) |
The subroutine 'Ray_fast' computes a simple "inline" version of the Rayleigh friction (EXPERIMENTAL - NOT FOR GENERAL USE). More... | |
subroutine | gz_bc (gz, delzBC, bd, npx, npy, npz, step, split) |
Variables | |
real | ptk |
real | peln1 |
real | rgrav |
real | d3_damp |
real, dimension(:,:,:), allocatable | ut |
real, dimension(:,:,:), allocatable | vt |
real, dimension(:,:,:), allocatable | crx |
real, dimension(:,:,:), allocatable | cry |
real, dimension(:,:,:), allocatable | xfx |
real, dimension(:,:,:), allocatable | yfx |
real, dimension(:,:,:), allocatable | divgd |
real, dimension(:,:,:), allocatable | zh |
real, dimension(:,:,:), allocatable | du |
real, dimension(:,:,:), allocatable | dv |
real, dimension(:,:,:), allocatable | pkc |
real, dimension(:,:,:), allocatable | delpc |
real, dimension(:,:,:), allocatable | pk3 |
real, dimension(:,:,:), allocatable | ptc |
real, dimension(:,:,:), allocatable | gz |
real(kind=r_grid), parameter | cnst_0p20 =0.20d0 |
real, dimension(:), allocatable | rf |
integer | k_rf = 0 |
logical | rff_initialized = .false. |
logical | first_call = .true. |
integer | kmax =1 |
The module 'dyn_core' peforms the Lagrangian acoustic dynamics described by [lin2004vertically].
The forward timestep is handled by routines in 'sw_core.F90'. The backwards-in-time PGF is evaluated in one_grad_p or split_p_grad (hydrostatic) and nh_p_grad (nonhydrostatic) see [lin1997explicit]. The nonhydrostatic components are handled by 'nh_core.F90'.
|
private |
Definition at line 1594 of file dyn_core.F90.
subroutine, public dyn_core_mod::del2_cubed | ( | real, dimension(bd%isd:bd%ied,bd%jsd:bd%jed,km), intent(inout) | q, |
real(kind=r_grid), intent(in) | cd, | ||
type(fv_grid_type), intent(in), target | gridstruct, | ||
type(domain2d), intent(inout) | domain, | ||
integer, intent(in) | npx, | ||
integer, intent(in) | npy, | ||
integer, intent(in) | km, | ||
integer, intent(in) | nmax, | ||
type(fv_grid_bounds_type), intent(in) | bd | ||
) |
The subroutine 'del2-cubed' filters the omega field for the physics.
[in] | cd | cd = K * da_min; 0 < K < 0.25 |
Definition at line 2461 of file dyn_core.F90.
subroutine, public dyn_core_mod::dyn_core | ( | integer, intent(in) | npx, |
integer, intent(in) | npy, | ||
integer, intent(in) | npz, | ||
integer, intent(in) | ng, | ||
integer, intent(in) | sphum, | ||
integer, intent(in) | nq, | ||
real, intent(in) | bdt, | ||
integer, intent(in) | n_map, | ||
integer, intent(in) | n_split, | ||
real, intent(in) | zvir, | ||
real, intent(in) | cp, | ||
real, intent(in) | akap, | ||
real, dimension(bd%isd:,bd%jsd:,1:), intent(inout) | cappa, | ||
real, intent(in) | grav, | ||
logical, intent(in) | hydrostatic, | ||
real, dimension(bd%isd:bd%ied ,bd%jsd:bd%jed+1,npz), intent(inout) | u, | ||
real, dimension(bd%isd:bd%ied+1,bd%jsd:bd%jed ,npz), intent(inout) | v, | ||
real, dimension( bd%isd:,bd%jsd:,1:), intent(inout) | w, | ||
real, dimension(bd%is:,bd%js:,1:), intent(inout) | delz, | ||
real, dimension( bd%isd:bd%ied ,bd%jsd:bd%jed ,npz), intent(inout) | pt, | ||
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) | delp, | ||
real, dimension(bd%is-1:bd%ie+1, npz+1,bd%js-1:bd%je+1), intent(inout) | pe, | ||
real, dimension(bd%is:bd%ie,bd%js:bd%je, npz+1), intent(inout) | pk, | ||
real, dimension(bd%isd:bd%ied,bd%jsd:bd%jed), intent(inout) | phis, | ||
real, dimension(bd%is:bd%ie,bd%js:bd%je), intent(out) | ws, | ||
real, dimension(bd%isd:bd%ied,bd%jsd:bd%jed,npz), intent(inout) | omga, | ||
real, intent(in) | ptop, | ||
real, dimension(npz), intent(in) | pfull, | ||
real, dimension(bd%isd:bd%ied,bd%jsd:bd%jed,npz), intent(inout) | ua, | ||
real, dimension(bd%isd:bd%ied,bd%jsd:bd%jed,npz), intent(inout) | va, | ||
real, dimension(bd%isd:bd%ied+1,bd%jsd:bd%jed ,npz), intent(inout) | uc, | ||
real, dimension(bd%isd:bd%ied ,bd%jsd:bd%jed+1,npz), intent(inout) | vc, | ||
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, | ||
real, dimension(bd%is:bd%ie,bd%js:bd%je,npz), intent(inout) | pkz, | ||
real, dimension(bd%is:bd%ie,npz+1,bd%js:bd%je), intent(inout) | peln, | ||
real, dimension(bd%isd:, bd%jsd:, 1:), intent(inout) | q_con, | ||
real, dimension(npz+1), intent(in) | ak, | ||
real, dimension(npz+1), intent(in) | bk, | ||
integer, intent(in) | ks, | ||
type(fv_grid_type), intent(inout), target | gridstruct, | ||
type(fv_flags_type), intent(in), target | flagstruct, | ||
type(fv_nest_type), intent(inout) | neststruct, | ||
type(fv_diag_type), intent(in) | idiag, | ||
type(fv_grid_bounds_type), intent(in) | bd, | ||
type(domain2d), intent(inout) | domain, | ||
logical, intent(in) | init_step, | ||
type(group_halo_update_type), dimension(*), intent(inout) | i_pack, | ||
logical, intent(in) | end_step, | ||
real, dimension(bd%isd:bd%ied ,bd%jsd:bd%jed ,npz), intent(inout) | diss_est, | ||
real, intent(in), optional | time_total | ||
) |
[in,out] | u | D grid zonal wind (m/s) |
[in,out] | v | D grid meridional wind (m/s) |
[in,out] | w | vertical vel. (m/s) |
[in,out] | delz | delta-height (m, negative) |
[in,out] | cappa | moist kappa |
[in,out] | pt | potential temperature (K) |
[in,out] | delp | pressure thickness (pascal) |
[in] | time_total | total time (seconds) since start |
[in,out] | diss_est | skeb dissipation estimate |
[in,out] | phis | Surface geopotential (g*Z_surf) |
[in,out] | pe | edge pressure (pascal) |
[in,out] | peln | ln(pe) |
[in,out] | pk | pe**kappa |
[out] | ws | w at surface |
[in,out] | omga | Vertical pressure velocity (pa/s) |
[in,out] | uc | (uc, vc) are mostly used as the C grid winds |
Definition at line 181 of file dyn_core.F90.
|
private |
The subroutine 'geopk' calculates geopotential and pressure to the kappa.
[out] | peln | ln(pe) |
Definition at line 2284 of file dyn_core.F90.
|
private |
Definition at line 2110 of file dyn_core.F90.
|
private |
Definition at line 2708 of file dyn_core.F90.
subroutine, public dyn_core_mod::init_ijk_mem | ( | integer, intent(in) | i1, |
integer, intent(in) | i2, | ||
integer, intent(in) | j1, | ||
integer, intent(in) | j2, | ||
integer, intent(in) | km, | ||
real, dimension(i1:i2,j1:j2,km), intent(inout) | array, | ||
real, intent(in) | var | ||
) |
Definition at line 2572 of file dyn_core.F90.
|
private |
Definition at line 2204 of file dyn_core.F90.
|
private |
[in,out] | pp | perturbation pressure |
[in,out] | pk | p**kappa |
[in,out] | gz | g * h |
Definition at line 1762 of file dyn_core.F90.
|
private |
Definition at line 1975 of file dyn_core.F90.
|
private |
[in] | pkc | pkc is pe**cappa if hydrostatic pkc is full pressure if non-hydrostatic |
[in] | gz | pkc is pe**cappa if hydrostatic pkc is full pressure if non-hydrostatic |
Definition at line 1700 of file dyn_core.F90.
|
private |
Definition at line 1563 of file dyn_core.F90.
|
private |
Definition at line 1460 of file dyn_core.F90.
|
private |
Definition at line 1514 of file dyn_core.F90.
|
private |
The subroutine 'Ray_fast' computes a simple "inline" version of the Rayleigh friction (EXPERIMENTAL - NOT FOR GENERAL USE).
[in] | tau | time scale (days) |
[in,out] | u | D grid zonal wind (m/s) |
[in,out] | v | D grid meridional wind (m/s) |
[in,out] | w | cell center vertical wind (m/s) |
Definition at line 2591 of file dyn_core.F90.
|
private |
[in,out] | pp | perturbation pressure |
[in,out] | pk | p**kappa |
[in,out] | gz | g * h |
Definition at line 1860 of file dyn_core.F90.
|
private |
Definition at line 158 of file dyn_core.F90.
|
private |
Definition at line 154 of file dyn_core.F90.
|
private |
Definition at line 154 of file dyn_core.F90.
|
private |
Definition at line 153 of file dyn_core.F90.
|
private |
Definition at line 154 of file dyn_core.F90.
|
private |
Definition at line 154 of file dyn_core.F90.
|
private |
Definition at line 154 of file dyn_core.F90.
|
private |
Definition at line 154 of file dyn_core.F90.
|
private |
Definition at line 163 of file dyn_core.F90.
|
private |
Definition at line 154 of file dyn_core.F90.
|
private |
Definition at line 161 of file dyn_core.F90.
|
private |
Definition at line 164 of file dyn_core.F90.
|
private |
Definition at line 152 of file dyn_core.F90.
|
private |
Definition at line 154 of file dyn_core.F90.
|
private |
Definition at line 154 of file dyn_core.F90.
|
private |
Definition at line 154 of file dyn_core.F90.
|
private |
Definition at line 152 of file dyn_core.F90.
|
private |
Definition at line 160 of file dyn_core.F90.
|
private |
Definition at line 162 of file dyn_core.F90.
|
private |
Definition at line 152 of file dyn_core.F90.
|
private |
Definition at line 154 of file dyn_core.F90.
|
private |
Definition at line 154 of file dyn_core.F90.
|
private |
Definition at line 154 of file dyn_core.F90.
|
private |
Definition at line 154 of file dyn_core.F90.
|
private |
Definition at line 154 of file dyn_core.F90.