FMS  2024.03
Flexible Modeling System
sat_vapor_pres_k_mod

Kernel module to be used by sat_vapor_pres_mod for table lookups and calculations. More...

Data Types

interface  compute_es_k
 
interface  compute_mrs_k
 
interface  compute_qs_k
 
interface  lookup_des2_k
 
interface  lookup_des3_k
 
interface  lookup_des_k
 
interface  lookup_es2_des2_k
 
interface  lookup_es2_k
 
interface  lookup_es3_des3_k
 
interface  lookup_es3_k
 
interface  lookup_es_des_k
 
interface  lookup_es_k
 
interface  sat_vapor_pres_init_k
 

Functions/Subroutines

real(kind=fms_svp_kind_) function, dimension(size(tem, 1)) compute_es_k_ (tem, TFREEZE)
 
real(kind=fms_svp_kind_) function, dimension(size(tem, 1)) compute_es_liq_ice_k_ (tem, TFREEZE)
 
real(kind=fms_svp_kind_) function, dimension(size(tem, 1)) compute_es_liq_k_ (tem, TFREEZE)
 
subroutine compute_mrs_k_0d_ (temp, press, eps, zvir, mrs, nbad, mr, hc, dmrsdT, esat, es_over_liq, es_over_liq_and_ice)
 
subroutine compute_mrs_k_1d_ (temp, press, eps, zvir, mrs, nbad, mr, hc, dmrsdT, esat, es_over_liq, es_over_liq_and_ice)
 
subroutine compute_mrs_k_2d_ (temp, press, eps, zvir, mrs, nbad, mr, hc, dmrsdT, esat, es_over_liq, es_over_liq_and_ice)
 
subroutine compute_mrs_k_3d_ (temp, press, eps, zvir, mrs, nbad, mr, hc, dmrsdT, esat, es_over_liq, es_over_liq_and_ice)
 
subroutine compute_qs_k_0d_ (temp, press, eps, zvir, qs, nbad, q, hc, dqsdT, esat, es_over_liq, es_over_liq_and_ice)
 
subroutine compute_qs_k_1d_ (temp, press, eps, zvir, qs, nbad, q, hc, dqsdT, esat, es_over_liq, es_over_liq_and_ice)
 
subroutine compute_qs_k_2d_ (temp, press, eps, zvir, qs, nbad, q, hc, dqsdT, esat, es_over_liq, es_over_liq_and_ice)
 
subroutine compute_qs_k_3d_ (temp, press, eps, zvir, qs, nbad, q, hc, dqsdT, esat, es_over_liq, es_over_liq_and_ice)
 
subroutine lookup_des2_k_0d_ (temp, desat, nbad)
 
subroutine lookup_des2_k_1d_ (temp, desat, nbad)
 
subroutine lookup_des2_k_2d_ (temp, desat, nbad)
 
subroutine lookup_des2_k_3d_ (temp, desat, nbad)
 
subroutine lookup_des3_k_0d_ (temp, desat, nbad)
 
subroutine lookup_des3_k_1d_ (temp, desat, nbad)
 
subroutine lookup_des3_k_2d_ (temp, desat, nbad)
 
subroutine lookup_des3_k_3d_ (temp, desat, nbad)
 
subroutine lookup_des_k_0d_ (temp, desat, nbad)
 
subroutine lookup_des_k_1d_ (temp, desat, nbad)
 
subroutine lookup_des_k_2d_ (temp, desat, nbad)
 
subroutine lookup_des_k_3d_ (temp, desat, nbad)
 
subroutine lookup_es2_des2_k_0d_ (temp, esat, desat, nbad)
 
subroutine lookup_es2_des2_k_1d_ (temp, esat, desat, nbad)
 
subroutine lookup_es2_des2_k_2d_ (temp, esat, desat, nbad)
 
subroutine lookup_es2_des2_k_3d_ (temp, esat, desat, nbad)
 
subroutine lookup_es2_k_0d_ (temp, esat, nbad)
 
subroutine lookup_es2_k_1d_ (temp, esat, nbad)
 
subroutine lookup_es2_k_2d_ (temp, esat, nbad)
 
subroutine lookup_es2_k_3d_ (temp, esat, nbad)
 
subroutine lookup_es3_des3_k_0d_ (temp, esat, desat, nbad)
 
subroutine lookup_es3_des3_k_1d_ (temp, esat, desat, nbad)
 
subroutine lookup_es3_des3_k_2d_ (temp, esat, desat, nbad)
 
subroutine lookup_es3_des3_k_3d_ (temp, esat, desat, nbad)
 
subroutine lookup_es3_k_0d_ (temp, esat, nbad)
 
subroutine lookup_es3_k_1d_ (temp, esat, nbad)
 
subroutine lookup_es3_k_2d_ (temp, esat, nbad)
 
subroutine lookup_es3_k_3d_ (temp, esat, nbad)
 
subroutine lookup_es_des_k_0d_ (temp, esat, desat, nbad)
 
subroutine lookup_es_des_k_1d_ (temp, esat, desat, nbad)
 
subroutine lookup_es_des_k_2d_ (temp, esat, desat, nbad)
 
subroutine lookup_es_des_k_3d_ (temp, esat, desat, nbad)
 
subroutine lookup_es_k_0d_ (temp, esat, nbad)
 
subroutine lookup_es_k_1d_ (temp, esat, nbad)
 
subroutine lookup_es_k_2d_ (temp, esat, nbad)
 
subroutine lookup_es_k_3d_ (temp, esat, nbad)
 
subroutine sat_vapor_pres_init_k_ (table_size, tcmin, tcmax, TFREEZE, HLV, RVGAS, ES0, err_msg, use_exact_qs_input, do_simple, construct_table_wrt_liq, construct_table_wrt_liq_and_ice, teps, tmin, dtinv)
 This routine has been generalized to return tables for any temperature range and resolution The TABLEs for saturation vapor pressure are computed with r8_kind precision since these TABLES are module level variables that are decared as r8_kind. The subroutines compute_es_k, compute_es_k, compute_es_liq_k, and compute_es_liq_ice_k seem to be mostly used to compute the TABLE values (and thus all variables within them can be declared as r8_kind). However, these compute* subroutines have been modified to accept both r4_kind and r8_kind arguments for general usage and the math can be conducted in either r4_kind and r8_kind. In this initialization routine, r8_kind arguments are passed to these compute* subroutines. This routine does not assume the passed in arguments are in r8_precision. Thus all variables used for the computation of the TABLES (e.g. TABLE, DTABLE*, D2TABLE*) are promoted to r8_kind precision. All local variables used for computation are in r8_kind precision Thus the TABLEs are constructed as accurately as possible and are promoted down to r4_kind when users pass in r4_kind arguments to the LOOKUP* subroutines. More...
 

Variables

real(kind=r8_kind), dimension(:), allocatable d2table
 
real(kind=r8_kind), dimension(:), allocatable d2table2
 
real(kind=r8_kind), dimension(:), allocatable d2table3
 
real(kind=r8_kind), dimension(:), allocatable dtable
 
real(kind=r8_kind), dimension(:), allocatable dtable2
 
real(kind=r8_kind), dimension(:), allocatable dtable3
 
real(kind=r8_kind) dtinvl
 
real(kind=r8_kind) dtres
 
logical module_is_initialized = .false.
 
real(kind=r8_kind), dimension(:), allocatable table
 
real(kind=r8_kind), dimension(:), allocatable table2
 
real(kind=r8_kind), dimension(:), allocatable table3
 
integer table_siz
 
real(kind=r8_kind) tepsl
 
real(kind=r8_kind) tminl
 
logical use_exact_qs
 

Detailed Description

Kernel module to be used by sat_vapor_pres_mod for table lookups and calculations.

Kernel module to be used by sat_vapor_pres_mod for.


Data Type Documentation

◆ sat_vapor_pres_k_mod::compute_es_k

interface sat_vapor_pres_k_mod::compute_es_k

Definition at line 79 of file sat_vapor_pres_k.F90.

Private Member Functions

 compute_es_k_r4
 
 compute_es_k_r8
 

◆ sat_vapor_pres_k_mod::compute_mrs_k

interface sat_vapor_pres_k_mod::compute_mrs_k

Definition at line 214 of file sat_vapor_pres_k.F90.

Private Member Functions

 compute_mrs_k_0d_r4
 
 compute_mrs_k_0d_r8
 
 compute_mrs_k_1d_r4
 
 compute_mrs_k_1d_r8
 
 compute_mrs_k_2d_r4
 
 compute_mrs_k_2d_r8
 
 compute_mrs_k_3d_r4
 
 compute_mrs_k_3d_r8
 

◆ sat_vapor_pres_k_mod::compute_qs_k

interface sat_vapor_pres_k_mod::compute_qs_k

Definition at line 203 of file sat_vapor_pres_k.F90.

Private Member Functions

 compute_qs_k_0d_r4
 
 compute_qs_k_0d_r8
 
 compute_qs_k_1d_r4
 
 compute_qs_k_1d_r8
 
 compute_qs_k_2d_r4
 
 compute_qs_k_2d_r8
 
 compute_qs_k_3d_r4
 
 compute_qs_k_3d_r8
 

◆ sat_vapor_pres_k_mod::lookup_des2_k

interface sat_vapor_pres_k_mod::lookup_des2_k

Definition at line 143 of file sat_vapor_pres_k.F90.

Private Member Functions

 lookup_des2_k_0d_r4
 
 lookup_des2_k_0d_r8
 
 lookup_des2_k_1d_r4
 
 lookup_des2_k_1d_r8
 
 lookup_des2_k_2d_r4
 
 lookup_des2_k_2d_r8
 
 lookup_des2_k_3d_r4
 
 lookup_des2_k_3d_r8
 

◆ sat_vapor_pres_k_mod::lookup_des3_k

interface sat_vapor_pres_k_mod::lookup_des3_k

Definition at line 179 of file sat_vapor_pres_k.F90.

Private Member Functions

 lookup_des3_k_0d_r4
 
 lookup_des3_k_0d_r8
 
 lookup_des3_k_1d_r4
 
 lookup_des3_k_1d_r8
 
 lookup_des3_k_2d_r4
 
 lookup_des3_k_2d_r8
 
 lookup_des3_k_3d_r4
 
 lookup_des3_k_3d_r8
 

◆ sat_vapor_pres_k_mod::lookup_des_k

interface sat_vapor_pres_k_mod::lookup_des_k

Definition at line 107 of file sat_vapor_pres_k.F90.

Private Member Functions

 lookup_des_k_0d_r4
 
 lookup_des_k_0d_r8
 
 lookup_des_k_1d_r4
 
 lookup_des_k_1d_r8
 
 lookup_des_k_2d_r4
 
 lookup_des_k_2d_r8
 
 lookup_des_k_3d_r4
 
 lookup_des_k_3d_r8
 

◆ sat_vapor_pres_k_mod::lookup_es2_des2_k

interface sat_vapor_pres_k_mod::lookup_es2_des2_k

Definition at line 155 of file sat_vapor_pres_k.F90.

Private Member Functions

 lookup_es2_des2_k_0d_r4
 
 lookup_es2_des2_k_0d_r8
 
 lookup_es2_des2_k_1d_r4
 
 lookup_es2_des2_k_1d_r8
 
 lookup_es2_des2_k_2d_r4
 
 lookup_es2_des2_k_2d_r8
 
 lookup_es2_des2_k_3d_r4
 
 lookup_es2_des2_k_3d_r8
 

◆ sat_vapor_pres_k_mod::lookup_es2_k

interface sat_vapor_pres_k_mod::lookup_es2_k

Definition at line 131 of file sat_vapor_pres_k.F90.

Private Member Functions

 lookup_es2_k_0d_r4
 
 lookup_es2_k_0d_r8
 
 lookup_es2_k_1d_r4
 
 lookup_es2_k_1d_r8
 
 lookup_es2_k_2d_r4
 
 lookup_es2_k_2d_r8
 
 lookup_es2_k_3d_r4
 
 lookup_es2_k_3d_r8
 

◆ sat_vapor_pres_k_mod::lookup_es3_des3_k

interface sat_vapor_pres_k_mod::lookup_es3_des3_k

Definition at line 191 of file sat_vapor_pres_k.F90.

Private Member Functions

 lookup_es3_des3_k_0d_r4
 
 lookup_es3_des3_k_0d_r8
 
 lookup_es3_des3_k_1d_r4
 
 lookup_es3_des3_k_1d_r8
 
 lookup_es3_des3_k_2d_r4
 
 lookup_es3_des3_k_2d_r8
 
 lookup_es3_des3_k_3d_r4
 
 lookup_es3_des3_k_3d_r8
 

◆ sat_vapor_pres_k_mod::lookup_es3_k

interface sat_vapor_pres_k_mod::lookup_es3_k

Definition at line 167 of file sat_vapor_pres_k.F90.

Private Member Functions

 lookup_es3_k_0d_r4
 
 lookup_es3_k_0d_r8
 
 lookup_es3_k_1d_r4
 
 lookup_es3_k_1d_r8
 
 lookup_es3_k_2d_r4
 
 lookup_es3_k_2d_r8
 
 lookup_es3_k_3d_r4
 
 lookup_es3_k_3d_r8
 

◆ sat_vapor_pres_k_mod::lookup_es_des_k

interface sat_vapor_pres_k_mod::lookup_es_des_k

Definition at line 119 of file sat_vapor_pres_k.F90.

Private Member Functions

 lookup_es_des_k_0d_r4
 
 lookup_es_des_k_0d_r8
 
 lookup_es_des_k_1d_r4
 
 lookup_es_des_k_1d_r8
 
 lookup_es_des_k_2d_r4
 
 lookup_es_des_k_2d_r8
 
 lookup_es_des_k_3d_r4
 
 lookup_es_des_k_3d_r8
 

◆ sat_vapor_pres_k_mod::lookup_es_k

interface sat_vapor_pres_k_mod::lookup_es_k

Definition at line 95 of file sat_vapor_pres_k.F90.

Private Member Functions

 lookup_es_k_0d_r4
 
 lookup_es_k_0d_r8
 
 lookup_es_k_1d_r4
 
 lookup_es_k_1d_r8
 
 lookup_es_k_2d_r4
 
 lookup_es_k_2d_r8
 
 lookup_es_k_3d_r4
 
 lookup_es_k_3d_r8
 

◆ sat_vapor_pres_k_mod::sat_vapor_pres_init_k

interface sat_vapor_pres_k_mod::sat_vapor_pres_init_k

Definition at line 73 of file sat_vapor_pres_k.F90.

Private Member Functions

 sat_vapor_pres_init_k_r4
 
 sat_vapor_pres_init_k_r8
 

Function/Subroutine Documentation

◆ compute_es_k_()

real(kind=fms_svp_kind_) function, dimension(size(tem,1)) compute_es_k_ ( real(kind=fms_svp_kind_), dimension(:), intent(in)  tem,
real(kind=fms_svp_kind_), intent(in)  TFREEZE 
)
Parameters
[in]temtemperature
[in]tfreezeconversion to Kelvin
Returns
saturation vapor pressure

one and ten are declared for code readability. For example, one is easier to read then 1.0_lkind where lkind=FMS_SVP_KIND_ throughout the code

compute es over ice

x = -9.09718(TBASI/tem-1) - 3.56654log(TBASI/tem) + 0.876793(1-tem/TBASI) + log(ESBASI) the coded equation below is the commented equation above

compute es over water greater than -20 c. values over 100 c may not be valid see smithsonian meteorological tables page 350.

x = -7.90298(TBASW/tem-1) + 5.02808log(TBASW/tem) -1.3816d-07*10^[11.344(1-tem/TBASW)-1] +8.1328d-03*10^[-3.49149(TBASW/tem-1)-1] + log(ESBASW) the coded equation below is the commented equation above

derive blended es over ice and supercooled water between -20c and 0c

es = 0.05*[esice*(TBASI-10)+esh2o*(tem-TBASI+20)] the coded equation below is the commented equation above

Definition at line 216 of file sat_vapor_pres_k.inc.

◆ compute_es_liq_ice_k_()

real(kind=fms_svp_kind_) function, dimension(size(tem,1)) compute_es_liq_ice_k_ ( real(kind=fms_svp_kind_), dimension(:), intent(in)  tem,
real(kind=fms_svp_kind_), intent(in)  TFREEZE 
)
Parameters
[in]temtemperature
[in]tfreezeconversion to Kelvin
Returns
saturation vapor pressure

one and ten are declared for code readability. For example, one is easier to read then 1.0_lkind where lkind=FMS_SVP_KIND_ throughout the code

compute es over ice x= -9.09718(TBASI/tem-1) -3.56654log(TBASI/tem) +0.87679(1-tem/TBASI)+log(EBASI) the coded equation below is the commented equation above

compute es over water values over 100 c may not be valid see smithsonian meteorological tables page 350. x = -7.90298(TBASW/tem-1) + 5.02808log(TBASW/tem) -1.3816d-07*10^[11.344(1-tem/TBASW)-1] +8.1328d-03*10^[-3.49149(TBASW/tem-1)-1] + log(ESBASW) the coded equation below is the commented equation above

Definition at line 338 of file sat_vapor_pres_k.inc.

◆ compute_es_liq_k_()

real(kind=fms_svp_kind_) function, dimension(size(tem,1)) compute_es_liq_k_ ( real(kind=fms_svp_kind_), dimension(:), intent(in)  tem,
real(kind=fms_svp_kind_), intent(in)  TFREEZE 
)
Parameters
[in]temtemperature
[in]tfreezeconversion to Kelvin
Returns
saturation vapor pressure

local kind variable one and ten are declared for code readability. For example, one is easier to read then 1.0_lkind where lkind=FMS_SVP_KIND_ throughout the code

compute es over water for all temps. values over 100 c may not be valid see smithsonian meteorological tables page 350.

x = -7.90298(TBASW/tem-1) + 5.02808log(TBASW/tem) -1.3816d-07*10^[11.344(1-tem/TBASW)-1] +8.1328d-03*10^[-3.49149(TBASW/tem-1)-1] + log(ESBASW) the coded equation below is the commented equation above

Definition at line 293 of file sat_vapor_pres_k.inc.

◆ compute_mrs_k_0d_()

subroutine compute_mrs_k_0d_ ( real(kind=fms_svp_kind_), intent(in)  temp,
real(kind=fms_svp_kind_), intent(in)  press,
real(kind=fms_svp_kind_), intent(in)  eps,
real(kind=fms_svp_kind_), intent(in)  zvir,
real(kind=fms_svp_kind_), intent(out)  mrs,
integer, intent(out)  nbad,
real(kind=fms_svp_kind_), intent(in), optional  mr,
real(kind=fms_svp_kind_), intent(in), optional  hc,
real(kind=fms_svp_kind_), intent(out), optional  dmrsdT,
real(kind=fms_svp_kind_), intent(out), optional  esat,
logical, intent(in), optional  es_over_liq,
logical, intent(in), optional  es_over_liq_and_ice 
)
Parameters
[in]temptemperature
[in]presspressure
[in]epsEPSILO
[out]mrsmixing ratio at relative humidity
[out]nbadif temperature is out of range
[in]mrvapor mixing ratio
[in]hcrelative humidity
[out]dmrsdtd(mrs)/dT
[out]esatsaturation vapor pressure

Definition at line 1030 of file sat_vapor_pres_k.inc.

◆ compute_mrs_k_1d_()

subroutine compute_mrs_k_1d_ ( real(kind=fms_svp_kind_), dimension(:), intent(in)  temp,
real(kind=fms_svp_kind_), dimension(:), intent(in)  press,
real(kind=fms_svp_kind_), intent(in)  eps,
real(kind=fms_svp_kind_), intent(in)  zvir,
real(kind=fms_svp_kind_), dimension(:), intent(out)  mrs,
integer, intent(out)  nbad,
real(kind=fms_svp_kind_), dimension(:), intent(in), optional  mr,
real(kind=fms_svp_kind_), intent(in), optional  hc,
real(kind=fms_svp_kind_), dimension(:), intent(out), optional  dmrsdT,
real(kind=fms_svp_kind_), dimension(:), intent(out), optional  esat,
logical, intent(in), optional  es_over_liq,
logical, intent(in), optional  es_over_liq_and_ice 
)
Parameters
[in]temptemperature
[in]presspressure
[in]epsEPSILO
[out]mrsmixing ratio at relative humidity
[out]nbadif temperature is out of range
[in]mrvapor mixing ratio
[in]hcrelative humidity
[out]dmrsdtd(mrs)/dT
[out]esatsaturation vapor pressure

Definition at line 940 of file sat_vapor_pres_k.inc.

◆ compute_mrs_k_2d_()

subroutine compute_mrs_k_2d_ ( real(kind=fms_svp_kind_), dimension(:,:), intent(in)  temp,
real(kind=fms_svp_kind_), dimension(:,:), intent(in)  press,
real(kind=fms_svp_kind_), intent(in)  eps,
real(kind=fms_svp_kind_), intent(in)  zvir,
real(kind=fms_svp_kind_), dimension(:,:), intent(out)  mrs,
integer, intent(out)  nbad,
real(kind=fms_svp_kind_), dimension(:,:), intent(in), optional  mr,
real(kind=fms_svp_kind_), intent(in), optional  hc,
real(kind=fms_svp_kind_), dimension(:,:), intent(out), optional  dmrsdT,
real(kind=fms_svp_kind_), dimension(:,:), intent(out), optional  esat,
logical, intent(in), optional  es_over_liq,
logical, intent(in), optional  es_over_liq_and_ice 
)
Parameters
[in]temptemperature
[in]presspressure
[in]epsEPSILO
[out]mrsmixing ratio at relative humidity
[out]nbadif temperature is out of range
[in]mrvapor mixing ratio
[in]hcrelative humidity
[out]dmrsdtd(mrs)/dT
[out]esatsaturation vapor pressure

Definition at line 848 of file sat_vapor_pres_k.inc.

◆ compute_mrs_k_3d_()

subroutine compute_mrs_k_3d_ ( real(kind=fms_svp_kind_), dimension(:,:,:), intent(in)  temp,
real(kind=fms_svp_kind_), dimension(:,:,:), intent(in)  press,
real(kind=fms_svp_kind_), intent(in)  eps,
real(kind=fms_svp_kind_), intent(in)  zvir,
real(kind=fms_svp_kind_), dimension(:,:,:), intent(out)  mrs,
integer, intent(out)  nbad,
real(kind=fms_svp_kind_), dimension(:,:,:), intent(in), optional  mr,
real(kind=fms_svp_kind_), intent(in), optional  hc,
real(kind=fms_svp_kind_), dimension(:,:,:), intent(out), optional  dmrsdT,
real(kind=fms_svp_kind_), dimension(:,:,:), intent(out), optional  esat,
logical, intent(in), optional  es_over_liq,
logical, intent(in), optional  es_over_liq_and_ice 
)
Parameters
[in]temptemperature
[in]presspressure
[in]epsEPSILO
[out]mrsmixing ratio at relative humidity
[out]nbadif temperature is out of range
[in]mrvapor mixing ratio
[in]hcrelative humidity
[out]dmrsdtd(mrs)/dT
[out]esatsaturation vapor pressure

Definition at line 754 of file sat_vapor_pres_k.inc.

◆ compute_qs_k_0d_()

subroutine compute_qs_k_0d_ ( real(kind=fms_svp_kind_), intent(in)  temp,
real(kind=fms_svp_kind_), intent(in)  press,
real(kind=fms_svp_kind_), intent(in)  eps,
real(kind=fms_svp_kind_), intent(in)  zvir,
real(kind=fms_svp_kind_), intent(out)  qs,
integer, intent(out)  nbad,
real(kind=fms_svp_kind_), intent(in), optional  q,
real(kind=fms_svp_kind_), intent(in), optional  hc,
real(kind=fms_svp_kind_), intent(out), optional  dqsdT,
real(kind=fms_svp_kind_), intent(out), optional  esat,
logical, intent(in), optional  es_over_liq,
logical, intent(in), optional  es_over_liq_and_ice 
)
Parameters
[in]temptemperature
[in]presspressure
[in]epsEPSILO
[out]qsspecific humidity
[out]nbadif temperature is out of range
[in]qvapor specific humidity
[in]hcrelative humidity
[out]dqsdtd(qs)/dT
[out]esatsaturation vapor pressure

Definition at line 667 of file sat_vapor_pres_k.inc.

◆ compute_qs_k_1d_()

subroutine compute_qs_k_1d_ ( real(kind=fms_svp_kind_), dimension(:), intent(in)  temp,
real(kind=fms_svp_kind_), dimension(:), intent(in)  press,
real(kind=fms_svp_kind_), intent(in)  eps,
real(kind=fms_svp_kind_), intent(in)  zvir,
real(kind=fms_svp_kind_), dimension(:), intent(out)  qs,
integer, intent(out)  nbad,
real(kind=fms_svp_kind_), dimension(:), intent(in), optional  q,
real(kind=fms_svp_kind_), intent(in), optional  hc,
real(kind=fms_svp_kind_), dimension(:), intent(out), optional  dqsdT,
real(kind=fms_svp_kind_), dimension(:), intent(out), optional  esat,
logical, intent(in), optional  es_over_liq,
logical, intent(in), optional  es_over_liq_and_ice 
)
Parameters
[in]temptemperature
[in]presspressure
[in]epsEPSILO
[out]qsspecific humidity
[out]nbadif temperature is out of range
[in]qvapor specific humidity
[in]hcrelative humidity
[out]dqsdtd(qs)/dt
[out]esatsaturation vapor pressure

Definition at line 577 of file sat_vapor_pres_k.inc.

◆ compute_qs_k_2d_()

subroutine compute_qs_k_2d_ ( real(kind=fms_svp_kind_), dimension(:,:), intent(in)  temp,
real(kind=fms_svp_kind_), dimension(:,:), intent(in)  press,
real(kind=fms_svp_kind_), intent(in)  eps,
real(kind=fms_svp_kind_), intent(in)  zvir,
real(kind=fms_svp_kind_), dimension(:,:), intent(out)  qs,
integer, intent(out)  nbad,
real(kind=fms_svp_kind_), dimension(:,:), intent(in), optional  q,
real(kind=fms_svp_kind_), intent(in), optional  hc,
real(kind=fms_svp_kind_), dimension(:,:), intent(out), optional  dqsdT,
real(kind=fms_svp_kind_), dimension(:,:), intent(out), optional  esat,
logical, intent(in), optional  es_over_liq,
logical, intent(in), optional  es_over_liq_and_ice 
)
Parameters
[in]temptemperature
[in]presspressure
[in]epsEPSILO
[out]qsspecific humidity
[out]nbadif temperature is out of range
[in]qvapor specific humidty
[in]hcrelative humidity
[out]dqsdtd(qs)/dT
[out]esatsaturation vapor pressure

Definition at line 485 of file sat_vapor_pres_k.inc.

◆ compute_qs_k_3d_()

subroutine compute_qs_k_3d_ ( real(kind=fms_svp_kind_), dimension(:,:,:), intent(in)  temp,
real(kind=fms_svp_kind_), dimension(:,:,:), intent(in)  press,
real(kind=fms_svp_kind_), intent(in)  eps,
real(kind=fms_svp_kind_), intent(in)  zvir,
real(kind=fms_svp_kind_), dimension(:,:,:), intent(out)  qs,
integer, intent(out)  nbad,
real(kind=fms_svp_kind_), dimension(:,:,:), intent(in), optional  q,
real(kind=fms_svp_kind_), intent(in), optional  hc,
real(kind=fms_svp_kind_), dimension(:,:,:), intent(out), optional  dqsdT,
real(kind=fms_svp_kind_), dimension(:,:,:), intent(out), optional  esat,
logical, intent(in), optional  es_over_liq,
logical, intent(in), optional  es_over_liq_and_ice 
)
Parameters
[in]temptemperature
[in]presspressure
[in]epsEPSILO
[out]qsspecific humidity
[out]nbadif temperature is out of range
[in]qvapor relative humidity
[in]hcrelative humidity
[out]dqsdtd(qs)/dT
[out]esatsaturation vapor pressure
[in]es_over_liquse es table wrt liquid only

Definition at line 392 of file sat_vapor_pres_k.inc.

◆ lookup_des2_k_0d_()

subroutine lookup_des2_k_0d_ ( real(kind=fms_svp_kind_), intent(in)  temp,
real(kind=fms_svp_kind_), intent(out)  desat,
integer, intent(out)  nbad 
)
Parameters
[in]temptemperature
[out]desatderivative of sat vapor pressure
[out]nbadif temperature is out of range

dtres, tminl, tepsl, dtinvl are module level variables declared in r8_kind precision for precision consistency and for code readability, the *ll variables are declared and used

desat = DTABLE + 2del*D2TABLE the coded equation below is the commented equation above

Definition at line 2064 of file sat_vapor_pres_k.inc.

◆ lookup_des2_k_1d_()

subroutine lookup_des2_k_1d_ ( real(kind=fms_svp_kind_), dimension(:), intent(in)  temp,
real(kind=fms_svp_kind_), dimension(:), intent(out)  desat,
integer, intent(out)  nbad 
)
Parameters
[in]temptemperature
[out]desatderivative of sat vapor pressure
[out]nbadif temperature is out of range

dtres, tminl, tepsl, dtinvl are module level variables declared in r8_kind precision for precision consistency and for code readability, the *ll variables are declared and used

desat = DTABLE + 2del*D2TABLE the coded equation below is the commented equation above

Definition at line 1988 of file sat_vapor_pres_k.inc.

◆ lookup_des2_k_2d_()

subroutine lookup_des2_k_2d_ ( real(kind=fms_svp_kind_), dimension(:,:), intent(in)  temp,
real(kind=fms_svp_kind_), dimension(:,:), intent(out)  desat,
integer, intent(out)  nbad 
)
Parameters
[in]temptemperature
[out]desatderivative of sat vapor pressure
[out]nbadif temperature is out of range

dtres, tminl, tepsl, dtinvl are module level variables declared in r8_kind precision for precision consistency and for code readability, the *ll variables are declared and used

desat = DTABLE + 2del*D2TABLE the coded equation below is the commented equation above

Definition at line 1908 of file sat_vapor_pres_k.inc.

◆ lookup_des2_k_3d_()

subroutine lookup_des2_k_3d_ ( real(kind=fms_svp_kind_), dimension(:,:,:), intent(in)  temp,
real(kind=fms_svp_kind_), dimension(:,:,:), intent(out)  desat,
integer, intent(out)  nbad 
)
Parameters
[in]temptemperature
[out]desatderivative of sat vapor pressure
[out]nbadif temperature is out of range

dtres, tminl, tepsl, dtinvl are module level variables declared in r8_kind precision for precision consistency and for code readability, the *ll variables are declared and used

desat = DTABLE + 2del*D2TABLE the coded equation below is the commented equation above

Definition at line 1865 of file sat_vapor_pres_k.inc.

◆ lookup_des3_k_0d_()

subroutine lookup_des3_k_0d_ ( real(kind=fms_svp_kind_), intent(in)  temp,
real(kind=fms_svp_kind_), intent(out)  desat,
integer, intent(out)  nbad 
)
Parameters
[in]temptemperature
[out]desatderivative of sat vapor pressure
[out]nbadif temperature is out of range

dtres, tminl, tepsl, dtinvl are module level variables declared in r8_kind precision for precision consistency and for code readability, the *ll variables are declared and used

desat = DTABLE + 2del*D2TABLE the coded equation below is the commented equation above

Definition at line 2574 of file sat_vapor_pres_k.inc.

◆ lookup_des3_k_1d_()

subroutine lookup_des3_k_1d_ ( real(kind=fms_svp_kind_), dimension(:), intent(in)  temp,
real(kind=fms_svp_kind_), dimension(:), intent(out)  desat,
integer, intent(out)  nbad 
)
Parameters
[in]temptemperature
[out]desatderivative of sat vapor pressure
[out]nbadif temperature is out of range

dtres, tminl, tepsl, dtinvl are module level variables declared in r8_kind precision for precision consistency and for code readability, the *ll variables are declared and used

desat = DTABLE + 2del*D2TABLE the coded equation below is the commented equation above

Definition at line 2498 of file sat_vapor_pres_k.inc.

◆ lookup_des3_k_2d_()

subroutine lookup_des3_k_2d_ ( real(kind=fms_svp_kind_), dimension(:,:), intent(in)  temp,
real(kind=fms_svp_kind_), dimension(:,:), intent(out)  desat,
integer, intent(out)  nbad 
)
Parameters
[in]temptemperature
[out]desatderivative of sat vapor pressure
[out]nbadif temperature is out of range

dtres, tminl, tepsl, dtinvl are module level variables declared in r8_kind precision for precision consistency and for code readability, the *ll variables are declared and used

desat = DTABLE + 2del*D2TABLE the coded equation below is the commented equation above

Definition at line 2418 of file sat_vapor_pres_k.inc.

◆ lookup_des3_k_3d_()

subroutine lookup_des3_k_3d_ ( real(kind=fms_svp_kind_), dimension(:,:,:), intent(in)  temp,
real(kind=fms_svp_kind_), dimension(:,:,:), intent(out)  desat,
integer, intent(out)  nbad 
)
Parameters
[in]temptemperature
[out]desatderivatove of saturation vap pressure
[out]nbadif temperature is out of range

dtres, tminl, tepsl, dtinvl are module level variables declared in r8_kind precision for precision consistency and for code readability, the *ll variables are declared and used

desat = DTABLE + 2del*D2TABLE the coded equation below is the commented equation above

Definition at line 2375 of file sat_vapor_pres_k.inc.

◆ lookup_des_k_0d_()

subroutine lookup_des_k_0d_ ( real(kind=fms_svp_kind_), intent(in)  temp,
real(kind=fms_svp_kind_), intent(out)  desat,
integer, intent(out)  nbad 
)
Parameters
[in]temptemperature
[out]desatderivative of sat vapor pressure
[out]nbadif temperature is out of range

dtres, tminl, tepsl, dtinvl are module level variables declared in r8_kind precision for precision consistency and for code readability, the *ll variables are declared and used

desat = DTABLE + 2del*D2TABLE the coded equation below is the commented equation above

Definition at line 1556 of file sat_vapor_pres_k.inc.

◆ lookup_des_k_1d_()

subroutine lookup_des_k_1d_ ( real(kind=fms_svp_kind_), dimension(:), intent(in)  temp,
real(kind=fms_svp_kind_), dimension(:), intent(out)  desat,
integer, intent(out)  nbad 
)
Parameters
[in]temptemperature
[out]desatderivative of sat vapor pressure
[out]nbadif temperature is out of range

dtres, tminl, tepsl, dtinvl are module level variables declared in r8_kind precision for precision consistency and for code readability, the *ll variables are declared and used

desat = DTABLE + 2del*D2TABLE the coded equation below is the commented equation above

Definition at line 1480 of file sat_vapor_pres_k.inc.

◆ lookup_des_k_2d_()

subroutine lookup_des_k_2d_ ( real(kind=fms_svp_kind_), dimension(:,:), intent(in)  temp,
real(kind=fms_svp_kind_), dimension(:,:), intent(out)  desat,
integer, intent(out)  nbad 
)
Parameters
[in]temptemperature
[out]desatderivative of sat vapor pressure
[out]nbadif temperature is out of range

dtres, tminl, tepsl, dtinvl are module level variables declared in r8_kind precision for precision consistency and for code readability, the *ll variables are declared and used

desat = DTABLE + 2del*D2TABLE the coded equation below is the commented equation above

Definition at line 1398 of file sat_vapor_pres_k.inc.

◆ lookup_des_k_3d_()

subroutine lookup_des_k_3d_ ( real(kind=fms_svp_kind_), dimension(:,:,:), intent(in)  temp,
real(kind=fms_svp_kind_), dimension(:,:,:), intent(out)  desat,
integer, intent(out)  nbad 
)
Parameters
[in]temptemperature
[out]desatderivative of sat vapor pressure
[out]nbadif temperature is out of range

dtres, tminl, tepsl, dtinvl are module level variables declared in r8_kind precision for precision consistency and for code readability, the *ll variables are declared and used

desat = DTABLE + 2del*D2TABLE the coded equation below is the commented equation above

Definition at line 1355 of file sat_vapor_pres_k.inc.

◆ lookup_es2_des2_k_0d_()

subroutine lookup_es2_des2_k_0d_ ( real(kind=fms_svp_kind_), intent(in)  temp,
real(kind=fms_svp_kind_), intent(out)  esat,
real(kind=fms_svp_kind_), intent(out)  desat,
integer, intent(out)  nbad 
)
Parameters
[in]temptemperature
[out]esatsaturation vapor pressure
[out]desatderivative of sat vapor pressure
[out]nbadif temperature is out of range

dtres, tminl, tepsl, dtinvl are module level variables declared in r8_kind precision for precision consistency and for code readability, the *ll variables are declared and used

esat = TABLE + del*(TABLE + del*D2TABLE) the coded equation below is the commented equation above

desat = DTABLE + 2del*D2TABLE the coded equation below is the commented equation above

Definition at line 1775 of file sat_vapor_pres_k.inc.

◆ lookup_es2_des2_k_1d_()

subroutine lookup_es2_des2_k_1d_ ( real(kind=fms_svp_kind_), dimension(:), intent(in)  temp,
real(kind=fms_svp_kind_), dimension(:), intent(out)  esat,
real(kind=fms_svp_kind_), dimension(:), intent(out)  desat,
integer, intent(out)  nbad 
)
Parameters
[in]temptemperature
[out]esatsaturation vapor pressure
[out]desatderivative of sat vapor pressure
[out]nbadif temperature is out of range

dtres, tminl, tepsl, dtinvl are module level variables declared in r8_kind precision for precision consistency and for code readability, the *ll variables are declared and used

esat = TABLE + del*(TABLE + del*D2TABLE) the coded equation below is the commented equation above

desat = DTABLE + 2del*D2TABLE

Definition at line 1729 of file sat_vapor_pres_k.inc.

◆ lookup_es2_des2_k_2d_()

subroutine lookup_es2_des2_k_2d_ ( real(kind=fms_svp_kind_), dimension(:,:), intent(in)  temp,
real(kind=fms_svp_kind_), dimension(:,:), intent(out)  esat,
real(kind=fms_svp_kind_), dimension(:,:), intent(out)  desat,
integer, intent(out)  nbad 
)
Parameters
[in]temptemperature
[out]esatsaturation vapor pressure
[out]desatderivative of sat vapor pressure
[out]nbadif temperature is out of range

dtres, tminl, tepsl, dtinvl are module level variables declared in r8_kind precision for precision consistency and for code readability, the *ll variables are declared and used

esat = TABLE + del*(TABLE + del*D2TABLE) the coded equation below is the commented equation above

desat = DTABLE + 2del*D2TABLE the coded equation below is the commented equation above

Definition at line 1680 of file sat_vapor_pres_k.inc.

◆ lookup_es2_des2_k_3d_()

subroutine lookup_es2_des2_k_3d_ ( real(kind=fms_svp_kind_), dimension(:,:,:), intent(in)  temp,
real(kind=fms_svp_kind_), dimension(:,:,:), intent(out)  esat,
real(kind=fms_svp_kind_), dimension(:,:,:), intent(out)  desat,
integer, intent(out)  nbad 
)
Parameters
[in]temptemperature
[out]esatsaturation vapor pressure
[out]desatderivative of sat vapor pressure
[out]nbadif temperature is out of range

dtres, tminl, tepsl, dtinvl are module level variables declared in r8_kind precision for precision consistency and for code readability, the *ll variables are declared and used

esat = TABLE + del*(TABLE + del*D2TABLE) the coded equation below is the commented equation above

desat = DTABLE + 2del*D2TABLE the coded equation below is the commented equation above

Definition at line 1629 of file sat_vapor_pres_k.inc.

◆ lookup_es2_k_0d_()

subroutine lookup_es2_k_0d_ ( real(kind=fms_svp_kind_), intent(in)  temp,
real(kind=fms_svp_kind_), intent(out)  esat,
integer, intent(out)  nbad 
)
Parameters
[in]temptemperature
[out]esatsaturation vapor pressure
[out]nbadif temperature is out of range

dtres, tminl, tepsl, dtinvl are module level variables declared in r8_kind precision for precision consistency and for code readability, the *ll variables are declared and used

esat = TABLE + del*(TABLE + del*D2TABLE) the coded equation below is the commented equation above

Definition at line 2100 of file sat_vapor_pres_k.inc.

◆ lookup_es2_k_1d_()

subroutine lookup_es2_k_1d_ ( real(kind=fms_svp_kind_), dimension(:), intent(in)  temp,
real(kind=fms_svp_kind_), dimension(:), intent(out)  esat,
integer, intent(out)  nbad 
)
Parameters
[in]temptemperature
[out]esatsaturation vapor pressure
[out]nbadif temperature is out of range

dtres, tminl, tepsl, dtinvl are module level variables declared in r8_kind precision for precision consistency and for code readability, the *ll variables are declared and used

esat = TABLE + del*(TABLE + del*D2TABLE) the coded equation below is the commented equation above

Definition at line 2026 of file sat_vapor_pres_k.inc.

◆ lookup_es2_k_2d_()

subroutine lookup_es2_k_2d_ ( real(kind=fms_svp_kind_), dimension(:,:), intent(in)  temp,
real(kind=fms_svp_kind_), dimension(:,:), intent(out)  esat,
integer, intent(out)  nbad 
)
Parameters
[in]temptemperature
[out]esatsaturation vapor pressure
[out]nbadif temperature is out of range

dtres, tminl, tepsl, dtinvl are module level variables declared in r8_kind precision for precision consistency and for code readability, the *ll variables are declared and used

esat = TABLE + del*(TABLE + del*D2TABLE) the coded equation below is the commented equation above

Definition at line 1948 of file sat_vapor_pres_k.inc.

◆ lookup_es2_k_3d_()

subroutine lookup_es2_k_3d_ ( real(kind=fms_svp_kind_), dimension(:,:,:), intent(in)  temp,
real(kind=fms_svp_kind_), dimension(:,:,:), intent(out)  esat,
integer, intent(out)  nbad 
)
Parameters
[in]temptemperature
[out]esatsaturation vapor pressure
[out]nbadif temperature is out of range

dtres, tminl, tepsl, dtinvl are module level variables declared in r8_kind precision for precision consistency and for code readability, the *ll variables are declared and used

esat = TABLE + del*(TABLE + del*D2TABLE) the coded equation below is the commented equation above

Definition at line 1821 of file sat_vapor_pres_k.inc.

◆ lookup_es3_des3_k_0d_()

subroutine lookup_es3_des3_k_0d_ ( real(kind=fms_svp_kind_), intent(in)  temp,
real(kind=fms_svp_kind_), intent(out)  esat,
real(kind=fms_svp_kind_), intent(out)  desat,
integer, intent(out)  nbad 
)
Parameters
[in]temptemperature
[out]esatsaturation vapor pressure
[out]desatderivative of esat
[out]nbadif temperature is out of range

dtres, tminl, tepsl, dtinvl are module level variables declared in r8_kind precision for precision consistency and for code readability, the *ll variables are declared and used

esat = TABLE + del*(TABLE + del*D2TABLE) the coded equation below is the commented equation above

desat = DTABLE + 2del*D2TABLE the coded equation below is the commented equation above

Definition at line 2286 of file sat_vapor_pres_k.inc.

◆ lookup_es3_des3_k_1d_()

subroutine lookup_es3_des3_k_1d_ ( real(kind=fms_svp_kind_), dimension(:), intent(in)  temp,
real(kind=fms_svp_kind_), dimension(:), intent(out)  esat,
real(kind=fms_svp_kind_), dimension(:), intent(out)  desat,
integer, intent(out)  nbad 
)
Parameters
[in]temptemperature
[out]esatsaturation vapor pressure
[out]desatderivative of esat
[out]nbadif temperature is out of range

dtres, tminl, tepsl, dtinvl are module level variables declared in r8_kind precision for precision consistency and for code readability, the *ll variables are declared and used

esat = TABLE + del*(TABLE + del*D2TABLE) the coded equation below is the commented equation above

desat = DTABLE + 2del*D2TABLE the coded equation below is the commented equation above

Definition at line 2239 of file sat_vapor_pres_k.inc.

◆ lookup_es3_des3_k_2d_()

subroutine lookup_es3_des3_k_2d_ ( real(kind=fms_svp_kind_), dimension(:,:), intent(in)  temp,
real(kind=fms_svp_kind_), dimension(:,:), intent(out)  esat,
real(kind=fms_svp_kind_), dimension(:,:), intent(out)  desat,
integer, intent(out)  nbad 
)
Parameters
[in]temptemperature
[out]esatsaturation vapor pressure
[out]desatderivative of desat
[out]nbadif temperature is out of range

dtres, tminl, tepsl, dtinvl are module level variables declared in r8_kind precision for precision consistency and for code readability, the *ll variables are declared and used

esat = TABLE + del*(TABLE + del*D2TABLE) the coded equation below is the commented equation above

desat = DTABLE + 2del*D2TABLE the coded equation below is the commented equation above

Definition at line 2190 of file sat_vapor_pres_k.inc.

◆ lookup_es3_des3_k_3d_()

subroutine lookup_es3_des3_k_3d_ ( real(kind=fms_svp_kind_), dimension(:,:,:), intent(in)  temp,
real(kind=fms_svp_kind_), dimension(:,:,:), intent(out)  esat,
real(kind=fms_svp_kind_), dimension(:,:,:), intent(out)  desat,
integer, intent(out)  nbad 
)
Parameters
[in]temptemperature
[out]esatsaturation vapor pressure
[out]desatderivative of esat
[out]nbadif temperature is out of range

dtres, tminl, tepsl, dtinvl are module level variables declared in r8_kind precision for precision consistency and for code readability, the *ll variables are declared and used

esat = TABLE + del*(TABLE + del*D2TABLE) the coded equation below is the commented equation above

desat = DTABLE + 2del*D2TABLE the coded equation below is the commented equation above

Definition at line 2139 of file sat_vapor_pres_k.inc.

◆ lookup_es3_k_0d_()

subroutine lookup_es3_k_0d_ ( real(kind=fms_svp_kind_), intent(in)  temp,
real(kind=fms_svp_kind_), intent(out)  esat,
integer, intent(out)  nbad 
)
Parameters
[in]temptemperature
[out]esatsaturation vapor pressure
[out]nbadif temperature is out of range

dtres, tminl, tepsl, dtinvl are module level variables declared in r8_kind precision for precision consistency and for code readability, the *ll variables are declared and used

esat = TABLE + del*(TABLE + del*D2TABLE) the coded equation below is the commented equation above

Definition at line 2610 of file sat_vapor_pres_k.inc.

◆ lookup_es3_k_1d_()

subroutine lookup_es3_k_1d_ ( real(kind=fms_svp_kind_), dimension(:), intent(in)  temp,
real(kind=fms_svp_kind_), dimension(:), intent(out)  esat,
integer, intent(out)  nbad 
)
Parameters
[in]temptemperature
[out]esatsaturation vapor pressure
[out]nbadif temperature is out of range

dtres, tminl, tepsl, dtinvl are module level variables declared in r8_kind precision for precision consistency and for code readability, the *ll variables are declared and used

esat = TABLE + del*(TABLE + del*D2TABLE) the coded equation below is the commented equation above

Definition at line 2536 of file sat_vapor_pres_k.inc.

◆ lookup_es3_k_2d_()

subroutine lookup_es3_k_2d_ ( real(kind=fms_svp_kind_), dimension(:,:), intent(in)  temp,
real(kind=fms_svp_kind_), dimension(:,:), intent(out)  esat,
integer, intent(out)  nbad 
)
Parameters
[in]temptemperature
[out]esatsaturation vapor pressure
[out]nbadif temperature is out of range

dtres, tminl, tepsl, dtinvl are module level variables declared in r8_kind precision for precision consistency and for code readability, the *ll variables are declared and used

esat = TABLE + del*(TABLE + del*D2TABLE) the coded equation below is the commented equation above

Definition at line 2458 of file sat_vapor_pres_k.inc.

◆ lookup_es3_k_3d_()

subroutine lookup_es3_k_3d_ ( real(kind=fms_svp_kind_), dimension(:,:,:), intent(in)  temp,
real(kind=fms_svp_kind_), dimension(:,:,:), intent(out)  esat,
integer, intent(out)  nbad 
)
Parameters
[in]temptemperature
[out]esatsaturation vapor pressure
[out]nbadif temperature is out of range

dtres, tminl, tepsl, dtinvl are module level variables declared in r8_kind precision for precision consistency and for code readability, the *ll variables are declared and used

esat = TABLE + del*(TABLE + del*D2TABLE) the coded equation below is the commented equation above

Definition at line 2331 of file sat_vapor_pres_k.inc.

◆ lookup_es_des_k_0d_()

subroutine lookup_es_des_k_0d_ ( real(kind=fms_svp_kind_), intent(in)  temp,
real(kind=fms_svp_kind_), intent(out)  esat,
real(kind=fms_svp_kind_), intent(out)  desat,
integer, intent(out)  nbad 
)
Parameters
[in]temptemperature
[out]esatsaturation vapor pressure
[out]desatderivative of the saturation vapor pressure
[out]nbadif temperature is out of range

dtres, tminl, tepsl, dtinvl are module level variables declared in r8_kind precision for precision consistency and for code readability, the *ll variables are declared and used

esat = TABLE + del*(TABLE + del*D2TABLE) the coded equation below is the commented equation above

desat = DTABLE + 2del*D2TABLE the coded equation below is the commented equation above

Definition at line 1266 of file sat_vapor_pres_k.inc.

◆ lookup_es_des_k_1d_()

subroutine lookup_es_des_k_1d_ ( real(kind=fms_svp_kind_), dimension(:), intent(in)  temp,
real(kind=fms_svp_kind_), dimension(:), intent(out)  esat,
real(kind=fms_svp_kind_), dimension(:), intent(out)  desat,
integer, intent(out)  nbad 
)
Parameters
[in]temptemperature
[out]esatsaturation vapor pressure
[out]desatderivative of the saturation vapor pressure
[out]nbadif temperature is out of range

dtres, tminl, tepsl, dtinvl are module level variables declared in r8_kind precision for precision consistency and for code readability, the *ll variables are declared and used

esat = TABLE + del*(TABLE + del*D2TABLE) the coded equation below is the commented equation above

desat = DTABLE + 2del*D2TABLE the coded equation below is the commented equation above

Definition at line 1218 of file sat_vapor_pres_k.inc.

◆ lookup_es_des_k_2d_()

subroutine lookup_es_des_k_2d_ ( real(kind=fms_svp_kind_), dimension(:,:), intent(in)  temp,
real(kind=fms_svp_kind_), dimension(:,:), intent(out)  esat,
real(kind=fms_svp_kind_), dimension(:,:), intent(out)  desat,
integer, intent(out)  nbad 
)
Parameters
[in]temptemperature
[out]esatsaturation vapor pressure
[out]desatderivative of the saturation vapor pressure
[out]nbadif temperature is out of range

dtres, tminl, tepsl, dtinvl are module level variables declared in r8_kind precision for precision consistency and for code readability, the *ll variables are declared and used

esat = TABLE + del*(TABLE + del*D2TABLE) the coded equation below is the commented equation above

desat = DTABLE + 2del*D2TABLE the coded equation below is the commented equation above

Definition at line 1169 of file sat_vapor_pres_k.inc.

◆ lookup_es_des_k_3d_()

subroutine lookup_es_des_k_3d_ ( real(kind=fms_svp_kind_), dimension(:,:,:), intent(in)  temp,
real(kind=fms_svp_kind_), dimension(:,:,:), intent(out)  esat,
real(kind=fms_svp_kind_), dimension(:,:,:), intent(out)  desat,
integer, intent(out)  nbad 
)
Parameters
[in]temptemperature
[out]esatsaturation vapor pressure
[out]desatderivative of saturation vapor pressure
[out]nbadif temperature is out of range

dtres, tminl, tepsl, dtinvl are module level variables declared in r8_kind precision for precision consistency and for code readability, the *ll variables are declared and used

esat = TABLE + del*(TABLE + del*D2TABLE) the coded equation below is the commented equation above

desat = DTABLE + 2del*D2TABLE the coded equation below is the commented equation above

Definition at line 1118 of file sat_vapor_pres_k.inc.

◆ lookup_es_k_0d_()

subroutine lookup_es_k_0d_ ( real(kind=fms_svp_kind_), intent(in)  temp,
real(kind=fms_svp_kind_), intent(out)  esat,
integer, intent(out)  nbad 
)
Parameters
[in]temptemperature
[out]esatsaturation vapor pressure
[out]nbadif temperature is out of range

dtres, tminl, tepsl, dtinvl are module level variables declared in r8_kind precision for precision consistency and for code readability, the *ll variables are declared and used

esat = TABLE + del*(TABLE + del*D2TABLE) the coded equation below is the commented equation above

Definition at line 1592 of file sat_vapor_pres_k.inc.

◆ lookup_es_k_1d_()

subroutine lookup_es_k_1d_ ( real(kind=fms_svp_kind_), dimension(:), intent(in)  temp,
real(kind=fms_svp_kind_), dimension(:), intent(out)  esat,
integer, intent(out)  nbad 
)
Parameters
[in]temptemperature
[out]esatsaturation vapor pressure
[out]nbadif temperature is out of range

dtres, tminl, tepsl, dtinvl are module level variables declared in r8_kind precision for precision consistency and for code readability, the *ll variables are declared and used

esat = TABLE + del*(TABLE + del*D2TABLE) the coded equation below is the commented equation above

Definition at line 1518 of file sat_vapor_pres_k.inc.

◆ lookup_es_k_2d_()

subroutine lookup_es_k_2d_ ( real(kind=fms_svp_kind_), dimension(:,:), intent(in)  temp,
real(kind=fms_svp_kind_), dimension(:,:), intent(out)  esat,
integer, intent(out)  nbad 
)
Parameters
[in]temptemperature
[out]esatsaturation vapor pressure
[out]nbadif temperature is out of range

dtres, tminl, tepsl, dtinvl are module level variables declared in r8_kind precision for precision consistency and for code readability, the *ll variables are declared and used

esat = TABLE + del*(TABLE + del*D2TABLE) the coded equation below is the commented equation above

Definition at line 1439 of file sat_vapor_pres_k.inc.

◆ lookup_es_k_3d_()

subroutine lookup_es_k_3d_ ( real(kind=fms_svp_kind_), dimension(:,:,:), intent(in)  temp,
real(kind=fms_svp_kind_), dimension(:,:,:), intent(out)  esat,
integer, intent(out)  nbad 
)
Parameters
[in]temptemperature
[out]esatsaturavation vapor pressure
[out]nbadif temperature is out of range

dtres, tminl, tepsl, dtinvl are module level variables declared in r8_kind precision for precision consistency and for code readability, the *ll variables are declared and used

esat = TABLE + del*(TABLE + del*D2TABLE) the coded equation below is the commented equation above

Definition at line 1311 of file sat_vapor_pres_k.inc.

◆ sat_vapor_pres_init_k_()

subroutine sat_vapor_pres_init_k_ ( integer, intent(in)  table_size,
real(kind=fms_svp_kind_), intent(in)  tcmin,
real(kind=fms_svp_kind_), intent(in)  tcmax,
real(kind=fms_svp_kind_), intent(in)  TFREEZE,
real(kind=fms_svp_kind_), intent(in)  HLV,
real(kind=fms_svp_kind_), intent(in)  RVGAS,
real(kind=fms_svp_kind_), intent(in)  ES0,
character(len=*), intent(out)  err_msg,
logical, intent(in)  use_exact_qs_input,
logical, intent(in)  do_simple,
logical, intent(in)  construct_table_wrt_liq,
logical, intent(in)  construct_table_wrt_liq_and_ice,
real(kind=fms_svp_kind_), intent(out), optional  teps,
real(kind=fms_svp_kind_), intent(out), optional  tmin,
real(kind=fms_svp_kind_), intent(out), optional  dtinv 
)

This routine has been generalized to return tables for any temperature range and resolution The TABLEs for saturation vapor pressure are computed with r8_kind precision since these TABLES are module level variables that are decared as r8_kind. The subroutines compute_es_k, compute_es_k, compute_es_liq_k, and compute_es_liq_ice_k seem to be mostly used to compute the TABLE values (and thus all variables within them can be declared as r8_kind). However, these compute* subroutines have been modified to accept both r4_kind and r8_kind arguments for general usage and the math can be conducted in either r4_kind and r8_kind. In this initialization routine, r8_kind arguments are passed to these compute* subroutines. This routine does not assume the passed in arguments are in r8_precision. Thus all variables used for the computation of the TABLES (e.g. TABLE, DTABLE*, D2TABLE*) are promoted to r8_kind precision. All local variables used for computation are in r8_kind precision Thus the TABLEs are constructed as accurately as possible and are promoted down to r4_kind when users pass in r4_kind arguments to the LOOKUP* subroutines.

Parameters
[in]tcminTABLE(1) = sat vapor pressure at temperature tcmin (deg C)
[in]tcmaxTABLE(table_size) = sat vapor pressure at temperature tcmax (deg C)
[in]tfreezeConversion to Kelvin
[in]hlvLatent heat of evaporation [J/kg]
[in]rvgasGas constant for water vapor
[in]es0Humidity factor [dimensionless]

increment used to generate derivative table the following variables are used in the computation of the TABLES (which is defined in r8_kind in sat_vapor_pres_mod) Thus these variables are declared with r8_kind

To be able to compute tables for any temperature range and resolution, and at the same time exactly reproduce answers from memphis revision, it is necessary to compute ftact differently than it is in memphis.

compute es tables from tcmin to tcmax estimate es derivative with small +/- difference

TABLE = 610.78ES0*exp(-HLV/RGAS[1/tem - 1.TFREEZE]) DTABLE = HLV(TABLE/RVGAS)^2

compute one-half second derivative using centered differences differencing des values in the table

one-sided derivatives at boundaries

compute es tables from tcmin to tcmax estimate es derivative with small +/- difference

pass in flag to force all values to be wrt liquid

compute one-half second derivative using centered differences differencing des values in the table

one-sided derivatives at boundaries

compute es tables from tcmin to tcmax estimate es derivative with small +/- difference

pass in flag to force all values to be wrt liquid

compute one-half second derivative using centered differences differencing des values in the table

one-sided derivatives at boundaries

Definition at line 38 of file sat_vapor_pres_k.inc.