FMS
2024.03
Flexible Modeling System
|
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... | |
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.
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 | |
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 | |
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 | |
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 | |
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 | |
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 | |
interface sat_vapor_pres_k_mod::lookup_es2_des2_k |
Definition at line 155 of file sat_vapor_pres_k.F90.
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 | |
interface sat_vapor_pres_k_mod::lookup_es3_des3_k |
Definition at line 191 of file sat_vapor_pres_k.F90.
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 | |
interface sat_vapor_pres_k_mod::lookup_es_des_k |
Definition at line 119 of file sat_vapor_pres_k.F90.
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 | |
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 | |
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 | ||
) |
[in] | tem | temperature |
[in] | tfreeze | conversion to Kelvin |
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.
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 | ||
) |
[in] | tem | temperature |
[in] | tfreeze | conversion to Kelvin |
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.
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 | ||
) |
[in] | tem | temperature |
[in] | tfreeze | conversion to Kelvin |
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.
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 | ||
) |
[in] | temp | temperature |
[in] | press | pressure |
[in] | eps | EPSILO |
[out] | mrs | mixing ratio at relative humidity |
[out] | nbad | if temperature is out of range |
[in] | mr | vapor mixing ratio |
[in] | hc | relative humidity |
[out] | dmrsdt | d(mrs)/dT |
[out] | esat | saturation vapor pressure |
Definition at line 1030 of file sat_vapor_pres_k.inc.
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 | ||
) |
[in] | temp | temperature |
[in] | press | pressure |
[in] | eps | EPSILO |
[out] | mrs | mixing ratio at relative humidity |
[out] | nbad | if temperature is out of range |
[in] | mr | vapor mixing ratio |
[in] | hc | relative humidity |
[out] | dmrsdt | d(mrs)/dT |
[out] | esat | saturation vapor pressure |
Definition at line 940 of file sat_vapor_pres_k.inc.
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 | ||
) |
[in] | temp | temperature |
[in] | press | pressure |
[in] | eps | EPSILO |
[out] | mrs | mixing ratio at relative humidity |
[out] | nbad | if temperature is out of range |
[in] | mr | vapor mixing ratio |
[in] | hc | relative humidity |
[out] | dmrsdt | d(mrs)/dT |
[out] | esat | saturation vapor pressure |
Definition at line 848 of file sat_vapor_pres_k.inc.
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 | ||
) |
[in] | temp | temperature |
[in] | press | pressure |
[in] | eps | EPSILO |
[out] | mrs | mixing ratio at relative humidity |
[out] | nbad | if temperature is out of range |
[in] | mr | vapor mixing ratio |
[in] | hc | relative humidity |
[out] | dmrsdt | d(mrs)/dT |
[out] | esat | saturation vapor pressure |
Definition at line 754 of file sat_vapor_pres_k.inc.
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 | ||
) |
[in] | temp | temperature |
[in] | press | pressure |
[in] | eps | EPSILO |
[out] | qs | specific humidity |
[out] | nbad | if temperature is out of range |
[in] | q | vapor specific humidity |
[in] | hc | relative humidity |
[out] | dqsdt | d(qs)/dT |
[out] | esat | saturation vapor pressure |
Definition at line 667 of file sat_vapor_pres_k.inc.
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 | ||
) |
[in] | temp | temperature |
[in] | press | pressure |
[in] | eps | EPSILO |
[out] | qs | specific humidity |
[out] | nbad | if temperature is out of range |
[in] | q | vapor specific humidity |
[in] | hc | relative humidity |
[out] | dqsdt | d(qs)/dt |
[out] | esat | saturation vapor pressure |
Definition at line 577 of file sat_vapor_pres_k.inc.
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 | ||
) |
[in] | temp | temperature |
[in] | press | pressure |
[in] | eps | EPSILO |
[out] | qs | specific humidity |
[out] | nbad | if temperature is out of range |
[in] | q | vapor specific humidty |
[in] | hc | relative humidity |
[out] | dqsdt | d(qs)/dT |
[out] | esat | saturation vapor pressure |
Definition at line 485 of file sat_vapor_pres_k.inc.
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 | ||
) |
[in] | temp | temperature |
[in] | press | pressure |
[in] | eps | EPSILO |
[out] | qs | specific humidity |
[out] | nbad | if temperature is out of range |
[in] | q | vapor relative humidity |
[in] | hc | relative humidity |
[out] | dqsdt | d(qs)/dT |
[out] | esat | saturation vapor pressure |
[in] | es_over_liq | use es table wrt liquid only |
Definition at line 392 of file sat_vapor_pres_k.inc.
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 | ||
) |
[in] | temp | temperature |
[out] | desat | derivative of sat vapor pressure |
[out] | nbad | if 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.
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 | ||
) |
[in] | temp | temperature |
[out] | desat | derivative of sat vapor pressure |
[out] | nbad | if 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.
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 | ||
) |
[in] | temp | temperature |
[out] | desat | derivative of sat vapor pressure |
[out] | nbad | if 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.
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 | ||
) |
[in] | temp | temperature |
[out] | desat | derivative of sat vapor pressure |
[out] | nbad | if 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.
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 | ||
) |
[in] | temp | temperature |
[out] | desat | derivative of sat vapor pressure |
[out] | nbad | if 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.
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 | ||
) |
[in] | temp | temperature |
[out] | desat | derivative of sat vapor pressure |
[out] | nbad | if 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.
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 | ||
) |
[in] | temp | temperature |
[out] | desat | derivative of sat vapor pressure |
[out] | nbad | if 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.
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 | ||
) |
[in] | temp | temperature |
[out] | desat | derivatove of saturation vap pressure |
[out] | nbad | if 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.
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 | ||
) |
[in] | temp | temperature |
[out] | desat | derivative of sat vapor pressure |
[out] | nbad | if 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.
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 | ||
) |
[in] | temp | temperature |
[out] | desat | derivative of sat vapor pressure |
[out] | nbad | if 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.
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 | ||
) |
[in] | temp | temperature |
[out] | desat | derivative of sat vapor pressure |
[out] | nbad | if 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.
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 | ||
) |
[in] | temp | temperature |
[out] | desat | derivative of sat vapor pressure |
[out] | nbad | if 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.
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 | ||
) |
[in] | temp | temperature |
[out] | esat | saturation vapor pressure |
[out] | desat | derivative of sat vapor pressure |
[out] | nbad | if 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.
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 | ||
) |
[in] | temp | temperature |
[out] | esat | saturation vapor pressure |
[out] | desat | derivative of sat vapor pressure |
[out] | nbad | if 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.
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 | ||
) |
[in] | temp | temperature |
[out] | esat | saturation vapor pressure |
[out] | desat | derivative of sat vapor pressure |
[out] | nbad | if 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.
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 | ||
) |
[in] | temp | temperature |
[out] | esat | saturation vapor pressure |
[out] | desat | derivative of sat vapor pressure |
[out] | nbad | if 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.
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 | ||
) |
[in] | temp | temperature |
[out] | esat | saturation vapor pressure |
[out] | nbad | if 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.
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 | ||
) |
[in] | temp | temperature |
[out] | esat | saturation vapor pressure |
[out] | nbad | if 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.
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 | ||
) |
[in] | temp | temperature |
[out] | esat | saturation vapor pressure |
[out] | nbad | if 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.
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 | ||
) |
[in] | temp | temperature |
[out] | esat | saturation vapor pressure |
[out] | nbad | if 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.
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 | ||
) |
[in] | temp | temperature |
[out] | esat | saturation vapor pressure |
[out] | desat | derivative of esat |
[out] | nbad | if 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.
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 | ||
) |
[in] | temp | temperature |
[out] | esat | saturation vapor pressure |
[out] | desat | derivative of esat |
[out] | nbad | if 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.
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 | ||
) |
[in] | temp | temperature |
[out] | esat | saturation vapor pressure |
[out] | desat | derivative of desat |
[out] | nbad | if 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.
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 | ||
) |
[in] | temp | temperature |
[out] | esat | saturation vapor pressure |
[out] | desat | derivative of esat |
[out] | nbad | if 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.
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 | ||
) |
[in] | temp | temperature |
[out] | esat | saturation vapor pressure |
[out] | nbad | if 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.
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 | ||
) |
[in] | temp | temperature |
[out] | esat | saturation vapor pressure |
[out] | nbad | if 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.
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 | ||
) |
[in] | temp | temperature |
[out] | esat | saturation vapor pressure |
[out] | nbad | if 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.
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 | ||
) |
[in] | temp | temperature |
[out] | esat | saturation vapor pressure |
[out] | nbad | if 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.
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 | ||
) |
[in] | temp | temperature |
[out] | esat | saturation vapor pressure |
[out] | desat | derivative of the saturation vapor pressure |
[out] | nbad | if 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.
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 | ||
) |
[in] | temp | temperature |
[out] | esat | saturation vapor pressure |
[out] | desat | derivative of the saturation vapor pressure |
[out] | nbad | if 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.
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 | ||
) |
[in] | temp | temperature |
[out] | esat | saturation vapor pressure |
[out] | desat | derivative of the saturation vapor pressure |
[out] | nbad | if 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.
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 | ||
) |
[in] | temp | temperature |
[out] | esat | saturation vapor pressure |
[out] | desat | derivative of saturation vapor pressure |
[out] | nbad | if 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.
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 | ||
) |
[in] | temp | temperature |
[out] | esat | saturation vapor pressure |
[out] | nbad | if 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.
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 | ||
) |
[in] | temp | temperature |
[out] | esat | saturation vapor pressure |
[out] | nbad | if 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.
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 | ||
) |
[in] | temp | temperature |
[out] | esat | saturation vapor pressure |
[out] | nbad | if 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.
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 | ||
) |
[in] | temp | temperature |
[out] | esat | saturavation vapor pressure |
[out] | nbad | if 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.
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.
[in] | tcmin | TABLE(1) = sat vapor pressure at temperature tcmin (deg C) |
[in] | tcmax | TABLE(table_size) = sat vapor pressure at temperature tcmax (deg C) |
[in] | tfreeze | Conversion to Kelvin |
[in] | hlv | Latent heat of evaporation [J/kg] |
[in] | rvgas | Gas constant for water vapor |
[in] | es0 | Humidity 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.