FV3DYCORE  Version 2.0.0
fv_mapz_mod Module Reference

The module 'fv_mapz' contains the vertical mapping routines [lin2004vertically]. More...

Functions/Subroutines

subroutine, public lagrangian_to_eulerian (last_step, consv, ps, pe, delp, pkz, pk, mdt, pdt, npx, npy, km, is, ie, js, je, isd, ied, jsd, jed, nq, nwat, sphum, q_con, u, v, w, delz, pt, q, hs, r_vir, cp, akap, cappa, kord_mt, kord_wz, kord_tr, kord_tm, peln, te0_2d, ng, ua, va, omga, te, ws, fill, reproduce_sum, out_dt, dtdt, ptop, ak, bk, pfull, gridstruct, domain, do_sat_adj, hydrostatic, hybrid_z, do_omega, adiabatic, do_adiabatic_init, c2l_ord, bd, fv_debug, moist_phys)
 The subroutine 'Lagrangian_to_Eulerian' remaps deformed Lagrangian layers back to the reference Eulerian coordinate. More...
 
subroutine, public compute_total_energy (is, ie, js, je, isd, ied, jsd, jed, km, u, v, w, delz, pt, delp, q, qc, pe, peln, hs, rsin2_l, cosa_s_l, r_vir, cp, rg, hlv, te_2d, ua, va, teq, moist_phys, nwat, sphum, liq_wat, rainwat, ice_wat, snowwat, graupel, hydrostatic, id_te)
 The subroutine 'compute_total_energy' performs the FV3-consistent computation of the global total energy. More...
 
subroutine pkez (km, ifirst, ilast, jfirst, jlast, j, pe, pk, akap, peln, pkz, ptop)
 
subroutine remap_z (km, pe1, q1, kn, pe2, q2, i1, i2, iv, kord)
 
subroutine map_scalar (km, pe1, q1, qs, kn, pe2, q2, i1, i2, j, ibeg, iend, jbeg, jend, iv, kord, q_min)
 
subroutine map1_ppm (km, pe1, q1, qs, kn, pe2, q2, i1, i2, j, ibeg, iend, jbeg, jend, iv, kord)
 
subroutine mapn_tracer (nq, km, pe1, pe2, q1, dp2, kord, j, i1, i2, isd, ied, jsd, jed, q_min, fill)
 
subroutine map1_q2 (km, pe1, q1, kn, pe2, q2, dp2, i1, i2, iv, kord, j, ibeg, iend, jbeg, jend, q_min)
 
subroutine, public remap_2d (km, pe1, q1, kn, pe2, q2, i1, i2, iv, kord)
 
subroutine scalar_profile (qs, a4, delp, km, i1, i2, iv, kord, qmin)
 
subroutine cs_profile (qs, a4, delp, km, i1, i2, iv, kord)
 
subroutine cs_limiters (im, extm, a4, iv)
 
subroutine ppm_profile (a4, delp, km, i1, i2, iv, kord)
 
subroutine ppm_limiters (dm, a4, itot, lmt)
 
subroutine steepz (i1, i2, km, a4, df2, dm, dq, dp, d4)
 
subroutine, public rst_remap (km, kn, is, ie, js, je, isd, ied, jsd, jed, nq, ntp, delp_r, u_r, v_r, w_r, delz_r, pt_r, q_r, qdiag_r, delp, u, v, w, delz, pt, q, qdiag, ak_r, bk_r, ptop, ak, bk, hydrostatic, make_nh, domain, square_domain)
 The subroutine 'rst_remap' remaps all variables required for a restart. More...
 
subroutine, public mappm (km, pe1, q1, kn, pe2, q2, i1, i2, iv, kord, ptop)
 The subroutine 'mappm' is a general-purpose routine for remapping one set of vertical levels to another. More...
 
subroutine, public moist_cv (is, ie, isd, ied, jsd, jed, km, j, k, nwat, sphum, liq_wat, rainwat, ice_wat, snowwat, graupel, q, qd, cvm, t1)
 The subroutine 'moist_cv' computes the FV3-consistent moist heat capacity under constant volume, including the heating capacity of water vapor and condensates. More...
 
subroutine, public moist_cp (is, ie, isd, ied, jsd, jed, km, j, k, nwat, sphum, liq_wat, rainwat, ice_wat, snowwat, graupel, q, qd, cpm, t1)
 The subroutine 'moist_cp' computes the FV3-consistent moist heat capacity under constant pressure, including the heating capacity of water vapor and condensates. More...
 

Variables

real, parameter consv_min = 0.001
 below which no correction applies More...
 
real, parameter t_min = 184.
 below which applies stricter constraint More...
 
real, parameter r3 = 1./3.
 
real, parameter r23 = 2./3.
 
real, parameter r12 = 1./12.
 
real, parameter cv_vap = 3.*rvgas
 1384.5 More...
 
real, parameter cv_air = cp_air - rdgas
 = rdgas * (7/2-1) = 2.5*rdgas=717.68 More...
 
real, parameter c_ice = 1972.
 heat capacity of ice at -15.C More...
 
real, parameter c_liq = 4.1855e+3
 GFS: heat capacity of water at 0C. More...
 
real, parameter cp_vap = cp_vapor
 
real, parameter tice = 273.16
 
real, parameter w_max = 60.
 
real, parameter w_min = -30.
 
logical, parameter w_limiter = .false.
 
real(kind=4), public e_flux = 0.
 

Detailed Description

The module 'fv_mapz' contains the vertical mapping routines [lin2004vertically].

Note
April 12, 2012 -SJL: This revision may actually produce rounding level differences due to the elimination of KS to compute pressure level for remapping.

Function/Subroutine Documentation

◆ compute_total_energy()

subroutine, public fv_mapz_mod::compute_total_energy ( integer, intent(in)  is,
integer, intent(in)  ie,
integer, intent(in)  js,
integer, intent(in)  je,
integer, intent(in)  isd,
integer, intent(in)  ied,
integer, intent(in)  jsd,
integer, intent(in)  jed,
integer, intent(in)  km,
real, dimension(isd:ied, jsd:jed+1,km), intent(inout)  u,
real, dimension(isd:ied+1,jsd:jed, km), intent(inout)  v,
real, dimension(isd:,jsd:,1:), intent(in)  w,
real, dimension(is:,js:,1:), intent(in)  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,*), intent(in)  q,
real, dimension(isd:ied,jsd:jed,km), intent(in)  qc,
real, dimension(is-1:ie+1,km+1,js-1:je+1), intent(in)  pe,
real, dimension(is:ie,km+1,js:je), intent(in)  peln,
real, dimension(isd:ied,jsd:jed), intent(in)  hs,
real, dimension(isd:ied, jsd:jed), intent(in)  rsin2_l,
real, dimension(isd:ied, jsd:jed), intent(in)  cosa_s_l,
real, intent(in)  r_vir,
real, intent(in)  cp,
real, intent(in)  rg,
real, intent(in)  hlv,
real, dimension(is:ie,js:je), intent(out)  te_2d,
real, dimension(isd:ied,jsd:jed,km), intent(inout)  ua,
real, dimension(isd:ied,jsd:jed,km), intent(inout)  va,
real, dimension(is:ie,js:je), intent(out)  teq,
logical, intent(in)  moist_phys,
integer, intent(in)  nwat,
integer, intent(in)  sphum,
integer, intent(in)  liq_wat,
integer, intent(in)  rainwat,
integer, intent(in)  ice_wat,
integer, intent(in)  snowwat,
integer, intent(in)  graupel,
logical, intent(in)  hydrostatic,
integer, intent(in)  id_te 
)

The subroutine 'compute_total_energy' performs the FV3-consistent computation of the global total energy.

It includes the potential, internal (latent and sensible heat), kinetic terms.

Parameters
[in]wvertical velocity (m/s)
[in]hssurface geopotential
[in]pepressure at layer edges
[in]pelnlog(pe)
[out]te_2dvertically integrated TE
[out]teqMoist TE Local

Definition at line 960 of file fv_mapz.F90.

◆ cs_limiters()

subroutine fv_mapz_mod::cs_limiters ( integer, intent(in)  im,
logical, dimension(im), intent(in)  extm,
real, dimension(4,im), intent(inout)  a4,
integer, intent(in)  iv 
)
private
Parameters
[in,out]a4PPM array

Definition at line 2523 of file fv_mapz.F90.

◆ cs_profile()

subroutine fv_mapz_mod::cs_profile ( real, dimension(i1:i2), intent(in)  qs,
real, dimension(4,i1:i2,km), intent(inout)  a4,
real, dimension(i1:i2,km), intent(in)  delp,
integer, intent(in)  km,
integer, intent(in)  i1,
integer, intent(in)  i2,
integer, intent(in)  iv,
integer, intent(in)  kord 
)
private
Parameters
[in]kmvertical dimension
[in]iviv =-1: winds iv = 0: positive definite scalars iv = 1: others
[in]delplayer pressure thickness
[in,out]a4Interpolated values

Definition at line 2120 of file fv_mapz.F90.

◆ lagrangian_to_eulerian()

subroutine, public fv_mapz_mod::lagrangian_to_eulerian ( logical, intent(in)  last_step,
real, intent(in)  consv,
real, dimension(isd:ied,jsd:jed), intent(inout)  ps,
real, dimension(is-1:ie+1,km+1,js-1:je+1), intent(inout)  pe,
real, dimension(isd:ied,jsd:jed,km), intent(inout)  delp,
real, dimension(is:ie,js:je,km), intent(out)  pkz,
real, dimension(is:ie,js:je,km+1), intent(inout)  pk,
real, intent(in)  mdt,
real, intent(in)  pdt,
integer, intent(in)  npx,
integer, intent(in)  npy,
integer, intent(in)  km,
integer, intent(in)  is,
integer, intent(in)  ie,
integer, intent(in)  js,
integer, intent(in)  je,
integer, intent(in)  isd,
integer, intent(in)  ied,
integer, intent(in)  jsd,
integer, intent(in)  jed,
integer, intent(in)  nq,
integer, intent(in)  nwat,
integer, intent(in)  sphum,
real, dimension(isd:,jsd:,1:), intent(inout)  q_con,
real, dimension(isd:ied ,jsd:jed+1,km), intent(inout)  u,
real, dimension(isd:ied+1,jsd:jed ,km), intent(inout)  v,
real, dimension(isd: ,jsd: ,1:), intent(inout)  w,
real, dimension(is:,js:,1:), intent(inout)  delz,
real, dimension(isd:ied ,jsd:jed ,km), intent(inout)  pt,
real, dimension(isd:ied,jsd:jed,km,*), intent(inout)  q,
real, dimension(isd:ied,jsd:jed), intent(in)  hs,
real, intent(in)  r_vir,
real, intent(in)  cp,
real, intent(in)  akap,
real, dimension(isd:,jsd:,1:), intent(inout)  cappa,
integer, intent(in)  kord_mt,
integer, intent(in)  kord_wz,
integer, dimension(nq), intent(in)  kord_tr,
integer, intent(in)  kord_tm,
real, dimension(is:ie,km+1,js:je), intent(inout)  peln,
real, dimension(is:ie,js:je), intent(inout)  te0_2d,
integer, intent(in)  ng,
real, dimension(isd:ied,jsd:jed,km), intent(inout)  ua,
real, dimension(isd:ied,jsd:jed,km), intent(inout)  va,
real, dimension(isd:ied,jsd:jed,km), intent(inout)  omga,
real, dimension(isd:ied,jsd:jed,km), intent(out)  te,
real, dimension(is:ie,js:je), intent(in)  ws,
logical, intent(in)  fill,
logical, intent(in)  reproduce_sum,
logical, intent(in)  out_dt,
real, dimension(is:ie,js:je,km), intent(inout)  dtdt,
real, intent(in)  ptop,
real, dimension(km+1), intent(in)  ak,
real, dimension(km+1), intent(in)  bk,
real, dimension(km), intent(in)  pfull,
type(fv_grid_type), intent(in), target  gridstruct,
type(domain2d), intent(inout)  domain,
logical, intent(in)  do_sat_adj,
logical, intent(in)  hydrostatic,
logical, intent(in)  hybrid_z,
logical, intent(in)  do_omega,
logical, intent(in)  adiabatic,
logical, intent(in)  do_adiabatic_init,
integer, intent(in)  c2l_ord,
type(fv_grid_bounds_type), intent(in)  bd,
logical, intent(in)  fv_debug,
logical, intent(in)  moist_phys 
)

The subroutine 'Lagrangian_to_Eulerian' remaps deformed Lagrangian layers back to the reference Eulerian coordinate.

It also includes the entry point for calling fast microphysical processes. This is typically calle on the k_split loop.

Parameters
[in]mdtremap time step
[in]pdtphys time step
[in]nqnumber of tracers (including h2o)
[in]sphumindex for water vapor (specific humidity)
[in]iedstarting & ending X-Dir index
[in]jedstarting & ending Y-Dir index
[in]kord_mtMapping order for the vector winds
[in]kord_wzMapping order/option for w
[in]kord_trMapping order for tracers
[in]kord_tmMapping order for thermodynamics
[in]consvfactor for TE conservation
[in]hssurface geopotential
[in]fillfill negative tracers
[in,out]pkpe to the kappa
[in,out]delppressure thickness
[in,out]pepressure at layer edges
[in,out]pssurface pressure
[in,out]uu-wind (m/s)
[in,out]vv-wind (m/s)
[in,out]wvertical velocity (m/s)
[in,out]ptcp*virtual potential temperature as input; output: temperature
[in,out]uau-wind (m/s) on physics grid
[in,out]vav-wind (m/s) on physics grid
[in,out]omgavertical press. velocity (pascal/sec)
[in,out]pelnlog(pe)
[out]pkzlayer-mean pk for converting t to pt

Definition at line 143 of file fv_mapz.F90.

◆ map1_ppm()

subroutine fv_mapz_mod::map1_ppm ( integer, intent(in)  km,
real, dimension(i1:i2,km+1), intent(in)  pe1,
real, dimension(ibeg:iend,jbeg:jend,km), intent(in)  q1,
real, dimension(i1:i2), intent(in)  qs,
integer, intent(in)  kn,
real, dimension(i1:i2,kn+1), intent(in)  pe2,
real, dimension(ibeg:iend,jbeg:jend,kn), intent(inout)  q2,
integer, intent(in)  i1,
integer, intent(in)  i2,
integer, intent(in)  j,
integer, intent(in)  ibeg,
integer, intent(in)  iend,
integer, intent(in)  jbeg,
integer, intent(in)  jend,
integer, intent(in)  iv,
integer, intent(in)  kord 
)
private
Parameters
[in]i1Starting longitude
[in]i2Finishing longitude
[in]ivMode: 0 == constituents 1 == ??? 2 == remap temp with cs scheme
[in]kordMethod order
[in]jCurrent latitude
[in]kmOriginal vertical dimension
[in]knTarget vertical dimension
[in]qsbottom BC
[in]pe1pressure at layer edges from model top to bottom surface in the original vertical coordinate
[in]pe2pressure at layer edges from model top to bottom surface in the new vertical coordinate
[in]q1Field input
[in,out]q2Field output

Definition at line 1333 of file fv_mapz.F90.

◆ map1_q2()

subroutine fv_mapz_mod::map1_q2 ( integer, intent(in)  km,
real, dimension(i1:i2,km+1), intent(in)  pe1,
real, dimension(ibeg:iend,jbeg:jend,km), intent(in)  q1,
integer, intent(in)  kn,
real, dimension(i1:i2,kn+1), intent(in)  pe2,
real, dimension(i1:i2,kn), intent(inout)  q2,
real, dimension(i1:i2,kn), intent(in)  dp2,
integer, intent(in)  i1,
integer, intent(in)  i2,
integer, intent(in)  iv,
integer, intent(in)  kord,
integer, intent(in)  j,
integer, intent(in)  ibeg,
integer, intent(in)  iend,
integer, intent(in)  jbeg,
integer, intent(in)  jend,
real, intent(in)  q_min 
)
private
Parameters
[in]ivMode: 0 == constituents 1 == ???
[in]kmOriginal vertical dimension
[in]knTarget vertical dimension
[in]pe1pressure at layer edges from model top to bottom surface in the original vertical coordinate
[in]pe2pressure at layer edges from model top to bottom surface in the new vertical coordinate
[in]q1Field input
[in,out]q2Field output

Definition at line 1535 of file fv_mapz.F90.

◆ map_scalar()

subroutine fv_mapz_mod::map_scalar ( integer, intent(in)  km,
real, dimension(i1:i2,km+1), intent(in)  pe1,
real, dimension(ibeg:iend,jbeg:jend,km), intent(in)  q1,
real, dimension(i1:i2), intent(in)  qs,
integer, intent(in)  kn,
real, dimension(i1:i2,kn+1), intent(in)  pe2,
real, dimension(ibeg:iend,jbeg:jend,kn), intent(inout)  q2,
integer, intent(in)  i1,
integer, intent(in)  i2,
integer, intent(in)  j,
integer, intent(in)  ibeg,
integer, intent(in)  iend,
integer, intent(in)  jbeg,
integer, intent(in)  jend,
integer, intent(in)  iv,
integer, intent(in)  kord,
real, intent(in)  q_min 
)
private
Parameters
[in]i1Starting longitude
[in]i2Finishing longitude
[in]ivMode: 0 == constituents 1 == temp 2 == remap temp with cs scheme
[in]kordMethod order
[in]jCurrent latitude
[in]kmOriginal vertical dimension
[in]knTarget vertical dimension
[in]qsbottom BC
[in]pe1pressure at layer edges from model top to bottom surface in the original vertical coordinate
[in]pe2pressure at layer edges from model top to bottom surface in the new vertical coordinate
[in]q1Field input
[in,out]q2Field output

Definition at line 1243 of file fv_mapz.F90.

◆ mapn_tracer()

subroutine fv_mapz_mod::mapn_tracer ( integer, intent(in)  nq,
integer, intent(in)  km,
real, dimension(i1:i2,km+1), intent(in)  pe1,
real, dimension(i1:i2,km+1), intent(in)  pe2,
real, dimension(isd:ied,jsd:jed,km,nq), intent(inout)  q1,
real, dimension(i1:i2,km), intent(in)  dp2,
integer, dimension(nq), intent(in)  kord,
integer, intent(in)  j,
integer, intent(in)  i1,
integer, intent(in)  i2,
integer, intent(in)  isd,
integer, intent(in)  ied,
integer, intent(in)  jsd,
integer, intent(in)  jed,
real, intent(in)  q_min,
logical, intent(in)  fill 
)
private
Parameters
[in]kmvertical dimension
[in]pe1pressure at layer edges from model top to bottom surface in the original vertical coordinate
[in]pe2pressure at layer edges from model top to bottom surface in the new vertical coordinate

Definition at line 1421 of file fv_mapz.F90.

◆ mappm()

subroutine, public fv_mapz_mod::mappm ( integer, intent(in)  km,
real, dimension(i1:i2,km+1), intent(in)  pe1,
real, dimension(i1:i2,km), intent(in)  q1,
integer, intent(in)  kn,
real, dimension(i1:i2,kn+1), intent(in)  pe2,
real, dimension(i1:i2,kn), intent(out)  q2,
integer, intent(in)  i1,
integer, intent(in)  i2,
integer, intent(in)  iv,
integer, intent(in)  kord,
real, intent(in)  ptop 
)

The subroutine 'mappm' is a general-purpose routine for remapping one set of vertical levels to another.

Parameters
[in]pe2pe1: pressure at layer edges from model top to bottom surface in the ORIGINAL vertical coordinate pe2: pressure at layer edges from model top to bottom surface in the NEW vertical coordinate

Definition at line 3281 of file fv_mapz.F90.

◆ moist_cp()

subroutine, public fv_mapz_mod::moist_cp ( integer, intent(in)  is,
integer, intent(in)  ie,
integer, intent(in)  isd,
integer, intent(in)  ied,
integer, intent(in)  jsd,
integer, intent(in)  jed,
integer, intent(in)  km,
integer, intent(in)  j,
integer, intent(in)  k,
integer, intent(in)  nwat,
integer, intent(in)  sphum,
integer, intent(in)  liq_wat,
integer, intent(in)  rainwat,
integer, intent(in)  ice_wat,
integer, intent(in)  snowwat,
integer, intent(in)  graupel,
real, dimension(isd:ied,jsd:jed,km,nwat), intent(in)  q,
real, dimension(is:ie), intent(out)  qd,
real, dimension(is:ie), intent(out)  cpm,
real, dimension(is:ie), intent(in), optional  t1 
)

The subroutine 'moist_cp' computes the FV3-consistent moist heat capacity under constant pressure, including the heating capacity of water vapor and condensates.

Definition at line 3539 of file fv_mapz.F90.

◆ moist_cv()

subroutine, public fv_mapz_mod::moist_cv ( integer, intent(in)  is,
integer, intent(in)  ie,
integer, intent(in)  isd,
integer, intent(in)  ied,
integer, intent(in)  jsd,
integer, intent(in)  jed,
integer, intent(in)  km,
integer, intent(in)  j,
integer, intent(in)  k,
integer, intent(in)  nwat,
integer, intent(in)  sphum,
integer, intent(in)  liq_wat,
integer, intent(in)  rainwat,
integer, intent(in)  ice_wat,
integer, intent(in)  snowwat,
integer, intent(in)  graupel,
real, dimension(isd:ied,jsd:jed,km,nwat), intent(in)  q,
real, dimension(is:ie), intent(out)  qd,
real, dimension(is:ie), intent(out)  cvm,
real, dimension(is:ie), intent(in), optional  t1 
)

The subroutine 'moist_cv' computes the FV3-consistent moist heat capacity under constant volume, including the heating capacity of water vapor and condensates.

See [emanuel1994atmospheric] for information on variable heat capacities.

Definition at line 3418 of file fv_mapz.F90.

◆ pkez()

subroutine fv_mapz_mod::pkez ( integer, intent(in)  km,
integer, intent(in)  ifirst,
integer, intent(in)  ilast,
integer, intent(in)  jfirst,
integer, intent(in)  jlast,
integer, intent(in)  j,
real, dimension(ifirst-1:ilast+1,km+1,jfirst-1:jlast+1), intent(in)  pe,
real, dimension(ifirst:ilast,jfirst:jlast,km+1), intent(in)  pk,
real, intent(in)  akap,
real, dimension(ifirst:ilast, km+1, jfirst:jlast), intent(inout)  peln,
real, dimension(ifirst:ilast,jfirst:jlast,km), intent(out)  pkz,
real, intent(in)  ptop 
)
private
Parameters
[in]ilastLatitude strip
[in]jlastLatitude strip
[in,out]pelnlog (pe)

Definition at line 1101 of file fv_mapz.F90.

◆ ppm_limiters()

subroutine fv_mapz_mod::ppm_limiters ( real, dimension(*), intent(in)  dm,
real, dimension(4,*), intent(inout)  a4,
integer, intent(in)  itot,
integer, intent(in)  lmt 
)
private
Parameters
[in]dmLinear slope
[in]itotTotal Longitudes
[in]lmt0: Standard PPM constraint 1: Improved full monotonicity constraint (Lin) 2: Positive definite constraint 3: do nothing (return immediately)
[in,out]a4PPM array AA <– a4(1,i) AL <– a4(2,i) AR <– a4(3,i) A6 <– a4(4,i)

Definition at line 2859 of file fv_mapz.F90.

◆ ppm_profile()

subroutine fv_mapz_mod::ppm_profile ( real, dimension(4,i1:i2,km), intent(inout)  a4,
real, dimension(i1:i2,km), intent(in)  delp,
integer, intent(in)  km,
integer, intent(in)  i1,
integer, intent(in)  i2,
integer, intent(in)  iv,
integer, intent(in)  kord 
)
private
Parameters
[in]iviv =-1: winds iv = 0: positive definite scalars iv = 1: others iv = 2: temp (if remap_t) and w (iv=-2)
[in]i1Starting longitude
[in]i2Finishing longitude
[in]kmVertical dimension
[in]kordOrder (or more accurately method no.):
[in]delpLayer pressure thickness
[in,out]a4Interpolated values

Definition at line 2602 of file fv_mapz.F90.

◆ remap_2d()

subroutine, public fv_mapz_mod::remap_2d ( integer, intent(in)  km,
real, dimension(i1:i2,km+1), intent(in)  pe1,
real, dimension(i1:i2,km), intent(in)  q1,
integer, intent(in)  kn,
real, dimension(i1:i2,kn+1), intent(in)  pe2,
real, dimension(i1:i2,kn), intent(out)  q2,
integer, intent(in)  i1,
integer, intent(in)  i2,
integer, intent(in)  iv,
integer, intent(in)  kord 
)
Parameters
[in]ivMode: 0 == constituents 1 ==others
[in]kmOriginal vertical dimension
[in]knTarget vertical dimension
[in]pe1Pressure at layer edges from model top to bottom surface in the original vertical coordinate
[in]pe2Pressure at layer edges from model top to bottom surface in the new vertical coordinate
[in]q1Field input
[out]q2Field output

Definition at line 1624 of file fv_mapz.F90.

◆ remap_z()

subroutine fv_mapz_mod::remap_z ( integer, intent(in)  km,
real, dimension(i1:i2,km+1), intent(in)  pe1,
real, dimension(i1:i2,km), intent(in)  q1,
integer, intent(in)  kn,
real, dimension(i1:i2,kn+1), intent(in)  pe2,
real, dimension(i1:i2,kn), intent(inout)  q2,
integer, intent(in)  i1,
integer, intent(in)  i2,
integer, intent(in)  iv,
integer, intent(in)  kord 
)
private
Parameters
[in]i1Starting longitude
[in]i2Finishing longitude
[in]kordMethod order
[in]kmOriginal vertical dimension
[in]knTarget vertical dimension
[in]pe1height at layer edges from model top to bottom surface
[in]pe2height at layer edges from model top to bottom surface
[in]q1Field input
[in,out]q2Field output

Definition at line 1159 of file fv_mapz.F90.

◆ rst_remap()

subroutine, public fv_mapz_mod::rst_remap ( integer, intent(in)  km,
integer, intent(in)  kn,
integer, intent(in)  is,
integer, intent(in)  ie,
integer, intent(in)  js,
integer, intent(in)  je,
integer, intent(in)  isd,
integer, intent(in)  ied,
integer, intent(in)  jsd,
integer, intent(in)  jed,
integer, intent(in)  nq,
integer, intent(in)  ntp,
real, dimension(is:ie,js:je,km), intent(in)  delp_r,
real, dimension(is:ie, js:je+1,km), intent(in)  u_r,
real, dimension(is:ie+1,js:je ,km), intent(in)  v_r,
real, dimension(is:ie,js:je,km), intent(in)  w_r,
real, dimension(is:ie,js:je,km), intent(inout)  delz_r,
real, dimension(is:ie,js:je,km), intent(inout)  pt_r,
real, dimension(is:ie,js:je,km,1:ntp), intent(in)  q_r,
real, dimension(is:ie,js:je,km,ntp+1:nq), intent(in)  qdiag_r,
real, dimension(isd:ied,jsd:jed,kn), intent(out)  delp,
real, dimension(isd:ied ,jsd:jed+1,kn), intent(out)  u,
real, dimension(isd:ied+1,jsd:jed ,kn), intent(out)  v,
real, dimension(isd: ,jsd: ,1:), intent(out)  w,
real, dimension(is:,js:,1:), intent(out)  delz,
real, dimension(isd:ied ,jsd:jed ,kn), intent(out)  pt,
real, dimension(isd:ied,jsd:jed,kn,1:ntp), intent(out)  q,
real, dimension(isd:ied,jsd:jed,kn,ntp+1:nq), intent(out)  qdiag,
real, dimension(km+1), intent(in)  ak_r,
real, dimension(km+1), intent(in)  bk_r,
real, intent(in)  ptop,
real, dimension(kn+1), intent(in)  ak,
real, dimension(kn+1), intent(in)  bk,
logical, intent(in)  hydrostatic,
logical, intent(in)  make_nh,
type(domain2d), intent(inout)  domain,
logical, intent(in)  square_domain 
)

The subroutine 'rst_remap' remaps all variables required for a restart.

npz_restart /= npz (i.e., when the number of vertical levels is changed at restart)

Parameters
[in]kmRestart z-dimension
[in]knRun time dimension
[in]ntpNumber of tracers (including H2O)
[in]iedStarting & ending X-Dir index
[in]jedStarting & ending Y-Dir index
[in]delp_rPressure thickness
[in]u_ru-wind (m/s)
[in]v_rv-wind (m/s)
[out]delpPressure thickness
[out]uu-wind (m/s)
[out]vv-wind (m/s)
[out]wVertical velocity (m/s)
[out]ptTemperature
[out]delzDelta-height (m)

Definition at line 2999 of file fv_mapz.F90.

◆ scalar_profile()

subroutine fv_mapz_mod::scalar_profile ( real, dimension(i1:i2), intent(in)  qs,
real, dimension(4,i1:i2,km), intent(inout)  a4,
real, dimension(i1:i2,km), intent(in)  delp,
integer, intent(in)  km,
integer, intent(in)  i1,
integer, intent(in)  i2,
integer, intent(in)  iv,
integer, intent(in)  kord,
real, intent(in)  qmin 
)
private
Parameters
[in]kmvertical dimension
[in]iviv =-1: winds iv = 0: positive definite scalars iv = 1: others
[in]delpLayer pressure thickness
[in,out]a4Interpolated values

Definition at line 1713 of file fv_mapz.F90.

◆ steepz()

subroutine fv_mapz_mod::steepz ( integer, intent(in)  i1,
integer, intent(in)  i2,
integer, intent(in)  km,
real, dimension(4,i1:i2,km), intent(inout)  a4,
real, dimension(i1:i2,km), intent(in)  df2,
real, dimension(i1:i2,km), intent(in)  dm,
real, dimension(i1:i2,km), intent(in)  dq,
real, dimension(i1:i2,km), intent(in)  dp,
real, dimension(i1:i2,km), intent(in)  d4 
)
private
Parameters
[in]dpGrid size
[in]dqBackward diff of q
[in]d4Backward sum: dp(k)+ dp(k-1)
[in]df2First guess mismatch
[in]dmMonotonic mismatch
[in,out]a4First guess/steepened

Definition at line 2939 of file fv_mapz.F90.

Variable Documentation

◆ c_ice

real, parameter fv_mapz_mod::c_ice = 1972.

heat capacity of ice at -15.C

Definition at line 114 of file fv_mapz.F90.

◆ c_liq

real, parameter fv_mapz_mod::c_liq = 4.1855e+3

GFS: heat capacity of water at 0C.

Definition at line 115 of file fv_mapz.F90.

◆ consv_min

real, parameter fv_mapz_mod::consv_min = 0.001

below which no correction applies

Definition at line 108 of file fv_mapz.F90.

◆ cp_vap

real, parameter fv_mapz_mod::cp_vap = cp_vapor

Definition at line 117 of file fv_mapz.F90.

◆ cv_air

real, parameter fv_mapz_mod::cv_air = cp_air - rdgas

= rdgas * (7/2-1) = 2.5*rdgas=717.68

Definition at line 112 of file fv_mapz.F90.

◆ cv_vap

real, parameter fv_mapz_mod::cv_vap = 3.*rvgas

1384.5

Definition at line 111 of file fv_mapz.F90.

◆ e_flux

real(kind=4), public fv_mapz_mod::e_flux = 0.

Definition at line 124 of file fv_mapz.F90.

◆ r12

real, parameter fv_mapz_mod::r12 = 1./12.

Definition at line 110 of file fv_mapz.F90.

◆ r23

real, parameter fv_mapz_mod::r23 = 2./3.

Definition at line 110 of file fv_mapz.F90.

◆ r3

real, parameter fv_mapz_mod::r3 = 1./3.

Definition at line 110 of file fv_mapz.F90.

◆ t_min

real, parameter fv_mapz_mod::t_min = 184.

below which applies stricter constraint

Definition at line 109 of file fv_mapz.F90.

◆ tice

real, parameter fv_mapz_mod::tice = 273.16

Definition at line 118 of file fv_mapz.F90.

◆ w_limiter

logical, parameter fv_mapz_mod::w_limiter = .false.

Definition at line 122 of file fv_mapz.F90.

◆ w_max

real, parameter fv_mapz_mod::w_max = 60.

Definition at line 120 of file fv_mapz.F90.

◆ w_min

real, parameter fv_mapz_mod::w_min = -30.

Definition at line 121 of file fv_mapz.F90.