FV3DYCORE  Version1.0.0
nh_utils_mod Module Reference

The module 'nh_utils' peforms non-hydrostatic computations. More...

Functions/Subroutines

subroutine, public update_dz_c (is, ie, js, je, km, ng, dt, dp0, zs, area, ut, vt, gz, ws, npx, npy, sw_corner, se_corner, ne_corner, nw_corner, bd, grid_type)
 
subroutine, public update_dz_d (ndif, damp, hord, is, ie, js, je, km, ng, npx, npy, area, rarea, dp0, zs, zh, crx, cry, xfx, yfx, delz, ws, rdt, gridstruct, bd, lim_fac, regional)
 
subroutine, public riem_solver_c (ms, dt, is, ie, js, je, km, ng, akap, cappa, cp, ptop, hs, w3, pt, q_con, delp, gz, pef, ws, p_fac, a_imp, scale_m)
 
subroutine riem_solver3test (ms, dt, is, ie, js, je, km, ng, isd, ied, jsd, jed, akap, cappa, cp, ptop, zs, q_con, w, delz, pt, delp, zh, pe, ppe, pk3, pk, peln, ws, scale_m, p_fac, a_imp, use_logp, last_call, fp_out)
 GFDL - This routine will not give absoulte reproducibility when compiled with -fast-transcendentals. GFDL - It is now inside of nh_core.F90 and being compiled without -fast-transcendentals. More...
 
subroutine imp_diff_w (j, is, ie, js, je, ng, km, cd, delz, ws, w, w3)
 
subroutine, public rim_2d (ms, bdt, is, ie, km, rgas, gama, gm2, pe2, dm2, pm2, w2, dz2, pt2, ws, c_core)
 
subroutine, public sim3_solver (dt, is, ie, km, rgas, gama, kappa, pe2, dm, pem, w2, dz2, pt2, ws, alpha, p_fac, scale_m)
 
subroutine, public sim3p0_solver (dt, is, ie, km, rgas, gama, kappa, pe2, dm, pem, w2, dz2, pt2, ws, p_fac, scale_m)
 
subroutine, public sim1_solver (dt, is, ie, km, rgas, gama, gm2, cp2, kappa, pe, dm2, pm2, pem, w2, dz2, pt2, ws, p_fac)
 
subroutine, public sim_solver (dt, is, ie, km, rgas, gama, gm2, cp2, kappa, pe2, dm2, pm2, pem, w2, dz2, pt2, ws, alpha, p_fac, scale_m)
 
subroutine edge_scalar (q1, qe, i1, i2, km, id)
 
subroutine edge_profile (q1, q2, q1e, q2e, i1, i2, j1, j2, j, km, dp0, uniform_grid, limiter)
 
subroutine, public nest_halo_nh (ptop, grav, kappa, cp, delp, delz, pt, phis, pkc, gz, pk3, npx, npy, npz, nested, pkc_pertn, computepk3, fullhalo, bd, regional)
 

Variables

real, parameter dz_min = 2.
 
real, parameter r3 = 1./3.
 

Detailed Description

The module 'nh_utils' peforms non-hydrostatic computations.

Author
S. J. Lin, NOAA/GFDL

Function/Subroutine Documentation

◆ edge_profile()

subroutine nh_utils_mod::edge_profile ( real, dimension(i1:i2,j1:j2,km), intent(in)  q1,
real, dimension(i1:i2,j1:j2,km), intent(in)  q2,
real, dimension(i1:i2,j1:j2,km+1), intent(out)  q1e,
real, dimension(i1:i2,j1:j2,km+1), intent(out)  q2e,
integer, intent(in)  i1,
integer, intent(in)  i2,
integer, intent(in)  j1,
integer, intent(in)  j2,
integer, intent(in)  j,
integer, intent(in)  km,
real, dimension(km), intent(in)  dp0,
logical, intent(in)  uniform_grid,
integer, intent(in)  limiter 
)
private

Definition at line 1791 of file nh_utils.F90.

◆ edge_scalar()

subroutine nh_utils_mod::edge_scalar ( real, dimension(i1:i2,km), intent(in)  q1,
real, dimension(i1:i2,km+1), intent(out)  qe,
integer, intent(in)  i1,
integer, intent(in)  i2,
integer, intent(in)  km,
integer, intent(in)  id 
)
private

Definition at line 1741 of file nh_utils.F90.

◆ imp_diff_w()

subroutine nh_utils_mod::imp_diff_w ( integer, intent(in)  j,
integer, intent(in)  is,
integer, intent(in)  ie,
integer, intent(in)  js,
integer, intent(in)  je,
integer, intent(in)  ng,
integer, intent(in)  km,
real, intent(in)  cd,
real, dimension(is-ng:ie+ng, km), intent(in)  delz,
real, dimension(is:ie), intent(in)  ws,
real, dimension(is:ie, km), intent(in)  w,
real, dimension(is-ng:ie+ng,js-ng:je+ng,km), intent(out)  w3 
)
private
Parameters
[in]delzdelta-height (m)
[in]wvertical vel. (m/s)

Definition at line 680 of file nh_utils.F90.

◆ nest_halo_nh()

subroutine, public nh_utils_mod::nest_halo_nh ( real, intent(in)  ptop,
real, intent(in)  grav,
real, intent(in)  kappa,
real, intent(in)  cp,
real, dimension(bd%isd:bd%ied,bd%jsd:bd%jed,npz), intent(in)  delp,
real, dimension(bd%isd:bd%ied,bd%jsd:bd%jed,npz), intent(in)  delz,
real, dimension(bd%isd:bd%ied,bd%jsd:bd%jed,npz), intent(in)  pt,
real, dimension(bd%isd:bd%ied,bd%jsd:bd%jed), intent(in)  phis,
real, dimension(bd%isd:bd%ied,bd%jsd:bd%jed,npz+1), intent(inout)  pkc,
real, dimension(bd%isd:bd%ied,bd%jsd:bd%jed,npz+1), intent(inout)  gz,
real, dimension(bd%isd:bd%ied,bd%jsd:bd%jed,npz+1), intent(inout)  pk3,
integer, intent(in)  npx,
integer, intent(in)  npy,
integer, intent(in)  npz,
logical, intent(in)  nested,
logical, intent(in)  pkc_pertn,
logical, intent(in)  computepk3,
logical, intent(in)  fullhalo,
type(fv_grid_bounds_type), intent(in)  bd,
logical, intent(in)  regional 
)

Definition at line 1910 of file nh_utils.F90.

◆ riem_solver3test()

subroutine nh_utils_mod::riem_solver3test ( integer, intent(in)  ms,
real, intent(in)  dt,
integer, intent(in)  is,
integer, intent(in)  ie,
integer, intent(in)  js,
integer, intent(in)  je,
integer, intent(in)  km,
integer, intent(in)  ng,
integer, intent(in)  isd,
integer, intent(in)  ied,
integer, intent(in)  jsd,
integer, intent(in)  jed,
real, intent(in)  akap,
real, dimension(isd:,jsd:,1:), intent(in)  cappa,
real, intent(in)  cp,
real, intent(in)  ptop,
real, dimension(isd:ied,jsd:jed), intent(in)  zs,
real, dimension(isd:,jsd:,1:), intent(in)  q_con,
real, dimension(isd:ied,jsd:jed,km), intent(inout)  w,
real, dimension(is-ng:ie+ng,js-ng:je+ng,km), intent(out)  delz,
real, dimension(isd:ied,jsd:jed,km), intent(in)  pt,
real, dimension(isd:ied,jsd:jed,km), intent(in)  delp,
real, dimension(isd:ied,jsd:jed,km+1), intent(inout)  zh,
real, dimension(is-1:ie+1,km+1,js-1:je+1), intent(inout)  pe,
real, dimension(isd:ied,jsd:jed,km+1), intent(out)  ppe,
real, dimension(isd:ied,jsd:jed,km+1), intent(out)  pk3,
real, dimension(is:ie,js:je,km+1), intent(out)  pk,
real, dimension(is:ie,km+1,js:je), intent(out)  peln,
real, dimension(is:ie,js:je), intent(in)  ws,
real, intent(in)  scale_m,
real, intent(in)  p_fac,
real, intent(in)  a_imp,
logical, intent(in)  use_logp,
logical, intent(in)  last_call,
logical, intent(in)  fp_out 
)
private

GFDL - This routine will not give absoulte reproducibility when compiled with -fast-transcendentals. GFDL - It is now inside of nh_core.F90 and being compiled without -fast-transcendentals.

Definition at line 483 of file nh_utils.F90.

◆ riem_solver_c()

subroutine, public nh_utils_mod::riem_solver_c ( integer, intent(in)  ms,
real, intent(in)  dt,
integer, intent(in)  is,
integer, intent(in)  ie,
integer, intent(in)  js,
integer, intent(in)  je,
integer, intent(in)  km,
integer, intent(in)  ng,
real, intent(in)  akap,
real, dimension(is-ng:,js-ng:,1:), intent(in)  cappa,
real, intent(in)  cp,
real, intent(in)  ptop,
real, dimension(is-ng:ie+ng,js-ng:je+ng), intent(in)  hs,
real, dimension(is-ng:ie+ng,js-ng:je+ng,km), intent(in)  w3,
real, dimension(is-ng:ie+ng,js-ng:je+ng,km), intent(in)  pt,
real, dimension(is-ng:,js-ng:,1:), intent(in)  q_con,
real, dimension(is-ng:ie+ng,js-ng:je+ng,km), intent(in)  delp,
real, dimension(is-ng:ie+ng,js-ng:je+ng,km+1), intent(inout)  gz,
real, dimension(is-ng:ie+ng,js-ng:je+ng,km+1), intent(out)  pef,
real, dimension(is-ng:ie+ng,js-ng:je+ng), intent(in)  ws,
real, intent(in)  p_fac,
real, intent(in)  a_imp,
real, intent(in)  scale_m 
)

Definition at line 338 of file nh_utils.F90.

◆ rim_2d()

subroutine, public nh_utils_mod::rim_2d ( integer, intent(in)  ms,
real, intent(in)  bdt,
integer, intent(in)  is,
integer, intent(in)  ie,
integer, intent(in)  km,
real, intent(in)  rgas,
real, intent(in)  gama,
real, dimension(is:ie,km), intent(in)  gm2,
real, dimension(is:ie,km+1), intent(out)  pe2,
real, dimension(is:ie,km), intent(in)  dm2,
real, dimension(is:ie,km), intent(in)  pm2,
real, dimension(is:ie,km), intent(inout)  w2,
real, dimension(is:ie,km), intent(inout)  dz2,
real, dimension(is:ie,km), intent(in)  pt2,
real, dimension(is:ie), intent(in)  ws,
logical, intent(in)  c_core 
)

Definition at line 747 of file nh_utils.F90.

◆ sim1_solver()

subroutine, public nh_utils_mod::sim1_solver ( real, intent(in)  dt,
integer, intent(in)  is,
integer, intent(in)  ie,
integer, intent(in)  km,
real, intent(in)  rgas,
real, intent(in)  gama,
real, dimension(is:ie,km), intent(in)  gm2,
real, dimension(is:ie,km), intent(in)  cp2,
real, intent(in)  kappa,
real, dimension(is:ie,km+1), intent(out)  pe,
real, dimension(is:ie,km), intent(in)  dm2,
real, dimension(is:ie,km), intent(in)  pm2,
real, dimension(is:ie,km+1), intent(in)  pem,
real, dimension(is:ie,km), intent(inout)  w2,
real, dimension(is:ie,km), intent(inout)  dz2,
real, dimension(is:ie,km), intent(in)  pt2,
real, dimension(is:ie), intent(in)  ws,
real, intent(in)  p_fac 
)

Definition at line 1379 of file nh_utils.F90.

◆ sim3_solver()

subroutine, public nh_utils_mod::sim3_solver ( real, intent(in)  dt,
integer, intent(in)  is,
integer, intent(in)  ie,
integer, intent(in)  km,
real, intent(in)  rgas,
real, intent(in)  gama,
real, intent(in)  kappa,
real, dimension(is:ie,km+1), intent(out)  pe2,
real, dimension(is:ie,km), intent(in)  dm,
real, dimension(is:ie,km+1), intent(in)  pem,
real, dimension(is:ie,km), intent(inout)  w2,
real, dimension(is:ie,km), intent(inout)  dz2,
real, dimension(is:ie,km), intent(in)  pt2,
real, dimension(is:ie), intent(in)  ws,
real, intent(in)  alpha,
real, intent(in)  p_fac,
real, intent(in)  scale_m 
)

Definition at line 1012 of file nh_utils.F90.

◆ sim3p0_solver()

subroutine, public nh_utils_mod::sim3p0_solver ( real, intent(in)  dt,
integer, intent(in)  is,
integer, intent(in)  ie,
integer, intent(in)  km,
real, intent(in)  rgas,
real, intent(in)  gama,
real, intent(in)  kappa,
real, dimension(is:ie,km+1), intent(out)  pe2,
real, dimension(is:ie,km), intent(in)  dm,
real, dimension(is:ie,km+1), intent(in)  pem,
real, dimension(is:ie,km), intent(inout)  w2,
real, dimension(is:ie,km), intent(inout)  dz2,
real, dimension(is:ie,km), intent(in)  pt2,
real, dimension(is:ie), intent(in)  ws,
real, intent(in)  p_fac,
real, intent(in)  scale_m 
)

Definition at line 1199 of file nh_utils.F90.

◆ sim_solver()

subroutine, public nh_utils_mod::sim_solver ( real, intent(in)  dt,
integer, intent(in)  is,
integer, intent(in)  ie,
integer, intent(in)  km,
real, intent(in)  rgas,
real, intent(in)  gama,
real, dimension(is:ie,km), intent(in)  gm2,
real, dimension(is:ie,km), intent(in)  cp2,
real, intent(in)  kappa,
real, dimension(is:ie,km+1), intent(out)  pe2,
real, dimension(is:ie,km), intent(in)  dm2,
real, dimension(is:ie,km), intent(in)  pm2,
real, dimension(is:ie,km+1), intent(in)  pem,
real, dimension(is:ie,km), intent(inout)  w2,
real, dimension(is:ie,km), intent(inout)  dz2,
real, dimension(is:ie,km), intent(in)  pt2,
real, dimension(is:ie), intent(in)  ws,
real, intent(in)  alpha,
real, intent(in)  p_fac,
real, intent(in)  scale_m 
)

Definition at line 1550 of file nh_utils.F90.

◆ update_dz_c()

subroutine, public nh_utils_mod::update_dz_c ( integer, intent(in)  is,
integer, intent(in)  ie,
integer, intent(in)  js,
integer, intent(in)  je,
integer, intent(in)  km,
integer, intent(in)  ng,
real, intent(in)  dt,
real, dimension(km), intent(in)  dp0,
real, dimension(is-ng:ie+ng, js-ng:je+ng), intent(in)  zs,
real, dimension(is-ng:ie+ng,js-ng:je+ng), intent(in)  area,
real, dimension(is-ng:ie+ng,js-ng:je+ng,km), intent(in)  ut,
real, dimension(is-ng:ie+ng,js-ng:je+ng,km), intent(in)  vt,
real, dimension(is-ng:ie+ng,js-ng:je+ng,km+1), intent(inout)  gz,
real, dimension(is-ng:ie+ng, js-ng:je+ng), intent(out)  ws,
integer, intent(in)  npx,
integer, intent(in)  npy,
logical, intent(in)  sw_corner,
logical, intent(in)  se_corner,
logical, intent(in)  ne_corner,
logical, intent(in)  nw_corner,
type(fv_grid_bounds_type), intent(in)  bd,
integer, intent(in)  grid_type 
)

Definition at line 76 of file nh_utils.F90.

◆ update_dz_d()

subroutine, public nh_utils_mod::update_dz_d ( integer, dimension(km+1), intent(inout)  ndif,
real, dimension(km+1), intent(inout)  damp,
integer, intent(in)  hord,
integer, intent(in)  is,
integer, intent(in)  ie,
integer, intent(in)  js,
integer, intent(in)  je,
integer, intent(in)  km,
integer, intent(in)  ng,
integer, intent(in)  npx,
integer, intent(in)  npy,
real, dimension(is-ng:ie+ng,js-ng:je+ng), intent(in)  area,
real, dimension(is-ng:ie+ng,js-ng:je+ng), intent(in)  rarea,
real, dimension(km), intent(in)  dp0,
real, dimension(is-ng:ie+ng,js-ng:je+ng), intent(in)  zs,
real, dimension(is-ng:ie+ng,js-ng:je+ng,km+1), intent(inout)  zh,
real, dimension(is:ie+1,js-ng:je+ng,km), intent(inout)  crx,
real, dimension(is-ng:ie+ng,js:je+1,km), intent(inout)  cry,
real, dimension(is:ie+1,js-ng:je+ng,km), intent(inout)  xfx,
real, dimension(is-ng:ie+ng,js:je+1,km), intent(inout)  yfx,
real, dimension(is-ng:ie+ng,js-ng:je+ng,km), intent(out)  delz,
real, dimension(is:ie,js:je), intent(out)  ws,
real, intent(in)  rdt,
type(fv_grid_type), intent(in), target  gridstruct,
type(fv_grid_bounds_type), intent(in)  bd,
real, intent(in)  lim_fac,
logical, intent(in)  regional 
)

Definition at line 216 of file nh_utils.F90.

Variable Documentation

◆ dz_min

real, parameter nh_utils_mod::dz_min = 2.
private

Definition at line 69 of file nh_utils.F90.

◆ r3

real, parameter nh_utils_mod::r3 = 1./3.
private

Definition at line 70 of file nh_utils.F90.