CCPP Scientific Documentation
v5.0.0
fv_sat_adj Module Reference

This module contains the GFDL in-core fast saturation adjustment called in FV3 dynamics solver.

Functions/Subroutines

subroutine, public fv_sat_adj_init (do_sat_adj, kmp, nwat, ngas, rilist, cpilist, mpirank, mpiroot, errmsg, errflg)
 The subroutine 'fv_sat_adj_init' initializes lookup tables for the saturation mixing ratio. More...
 
subroutine, public fv_sat_adj_finalize (errmsg, errflg)
 The subroutine 'fv_sat_adj_finalize' deallocates lookup tables for the saturation mixing ratio. More...
 
subroutine, public fv_sat_adj_run (mdt, zvir, is, ie, isd, ied, kmp, km, kmdelz, js, je, jsd, jed, ng, hydrostatic, fast_mp_consv, te0_2d, te0, ngas, qvi, qv, ql, qi, qr, qs, qg, hs, peln, delz, delp, pt, pkz, q_con, akap, cappa, area, dtdt, out_dt, last_step, do_qa, qa, nthreads, errmsg, errflg)
 
real(kind=kind_dyn) function wqs1 (ta, den)
 the function 'wqs1' computes the saturated specific humidity for table ii. More...
 
real(kind=kind_dyn) function iqs1 (ta, den)
 the function 'wqs1' computes the saturated specific humidity for table iii More...
 
real(kind=kind_dyn) function wqs2 (ta, den, dqdt)
 The function 'wqs2'computes the gradient of saturated specific humidity for table ii. More...
 
subroutine wqs2_vect (is, ie, ta, den, wqsat, dqdt)
 The function wqs2_vect computes the gradient of saturated specific humidity for table ii. It is the same as "wqs2", but written as vector function. More...
 
real(kind=kind_dyn) function iqs2 (ta, den, dqdt)
 The function 'iqs2' computes the gradient of saturated specific humidity for table iii. More...
 
subroutine qs_table (n)
 saturation water vapor pressure table i More...
 
subroutine qs_tablew (n)
 saturation water vapor pressure table ii. More...
 
subroutine qs_table2 (n)
 saturation water vapor pressure table iii. More...
 
subroutine fv_sat_adj_work (mdt, zvir, is, ie, js, je, ng, hydrostatic, consv_te, te0, ifdef MULTI_GASES
 This subroutine includes the entity of the fast saturation adjustment processes. More...
 

Variables

logical is_initialized = .false.
 
real(kind=kind_dyn), parameter rrg = -rdgas/grav
 
real(kind=kind_dyn), parameter cp_vap = 4.0 * rvgas
 1846.0, heat capacity of water vapor at constant pressure More...
 
real(kind=kind_dyn), parameter cv_air = cp_air - rdgas
 717.55, heat capacity of dry air at constant volume More...
 
real(kind=kind_dyn), parameter cv_vap = 3.0 * rvgas
 1384.5, heat capacity of water vapor at constant volume More...
 
real(kind=kind_dyn), parameter c_ice = 1972.0
 gfdl: heat capacity of ice at - 15 deg c More...
 
real(kind=kind_dyn), parameter c_liq = 4185.5
 gfdl: heat capacity of liquid at 15 deg c More...
 
real(kind=kind_dyn), parameter dc_vap = cp_vap - c_liq
 
real(kind=kind_dyn), parameter dc_ice = c_liq - c_ice
 2213.5, isobaric heating / colling More...
 
real(kind=kind_dyn), parameter tice = 273.16
 freezing temperature More...
 
real(kind=kind_dyn), parameter t_wfr = tice - 40.
 homogeneous freezing temperature More...
 
real(kind=kind_dyn), parameter lv0 = hlv - dc_vap * tice
 3.13905782e6, evaporation latent heat coefficient at 0 deg k More...
 
real(kind=kind_dyn), parameter li00 = hlf - dc_ice * tice
 
real(kind_grid), parameter e00 = 611.21
 ifs: saturation vapor pressure at 0 deg c More...
 
real(kind_grid), parameter d2ice = dc_vap + dc_ice
 
real(kind_grid), parameter li2 = lv0 + li00
 2.86799816e6, sublimation latent heat coefficient at 0 deg k More...
 
real(kind=kind_dyn), parameter lat2 = (hlv + hlf) ** 2
 used in bigg mechanism More...
 
real(kind=kind_dyn) d0_vap
 the same as dc_vap, except that cp_vap can be cp_vap or cv_vap More...
 
real(kind=kind_dyn) lv00
 the same as lv0, except that cp_vap can be cp_vap or cv_vap More...
 
real(kind=kind_dyn), dimension(:), allocatable table
 
real(kind=kind_dyn), dimension(:), allocatable table2
 
real(kind=kind_dyn), dimension(:), allocatable tablew
 
real(kind=kind_dyn), dimension(:), allocatable des2
 
real(kind=kind_dyn), dimension(:), allocatable desw