Fortran AutoDoc#
Modules#
iapws (module)#
Main module for the IAPWS library.
iapws__api (module)#
API.
Variables
- version_fcharacter(len=:), allocatable, target
- f_gasestype(gas_type), allocatable, target, dimension(:)
- f_gases_strcharacter(len=:), allocatable, target
Procedures
get_version (function)#
-
function get_version() -> fptr Return the version
- Returns:
- fptrcharacter(len=:), pointer
Fortran pointer to a string indicating the version.
kh (subroutine)#
-
pure subroutine kh(T, gas, heavywater, k) Compute the henry constant kH in MPa for a given temperature (x_2=1/kH).
- Arguments:
- Treal(dp), intent(in), contiguous, dimension(:)
Temperature in K.
- gascharacter(len=*), intent(in)
Gas.
- heavywaterinteger(int32), intent(in)
Flag if D2O (1) is used or H2O(0).
- kreal(dp), intent(out), contiguous, dimension(:)
Henry constant in MPa. Filled with NaNs if gas not found.
kd (subroutine)#
-
pure subroutine kd(T, gas, heavywater, k) Compute the vapor-liquid constant kd for a given temperature (kd=y_2/x_2).
- Arguments:
- Treal(dp), intent(in), contiguous, dimension(:)
Temperature in K.
- gascharacter(len=*), intent(in)
Gas.
- heavywaterinteger(int32), intent(in)
Flag if D2O (1) is used or H2O(0).
- kreal(dp), intent(out), contiguous, dimension(:)
Vapor-liquid constant (adimensional). Filled with NaNs if gas not found.
ngases (function)#
-
pure function ngases(heavywater) -> n Returns the number of gases.
- Arguments:
- heavywaterinteger(int32), intent(in)
Flag if D2O (1) is used or H2O(0).
- Returns:
- ninteger(int32)
Number of gases.
gases (function)#
-
function gases(heavywater) -> list_gases Returns the list of available gases.
- Arguments:
- heavywaterinteger(int32), intent(in)
Flag if D2O (1) is used or H2O(0).
- Returns:
- list_gasestype(gas_type), pointer, dimension(:)
Available gases.
gases2 (function)#
-
function gases2(heavywater) -> str_gases Returns the available gases as a string.
- Arguments:
- heavywaterinteger(int32), intent(in)
Flag if D2O (1) is used or H2O(0).
- Returns:
- str_gasescharacter(len=:), pointer
Available gases
psat (subroutine)#
-
pure subroutine psat(Ts, ps) - Arguments:
- Tsreal(dp), intent(in), contiguous, dimension(:)
Saturation temperature in K.
- psreal(dp), intent(out), contiguous, dimension(:)
Saturation pressure in MPa. Filled with nan if out of validity range.
Tsat (subroutine)#
-
pure subroutine Tsat(ps, Ts) - Arguments:
- psreal(dp), intent(in), contiguous, dimension(:)
Saturation pressure in MPa.
- Tsreal(dp), intent(out), contiguous, dimension(:)
Saturation temperature in K. Filled with nan if out of validity range.
wp (subroutine)#
-
pure subroutine wp(p, T, prop, res) Compute water properties at pressure p in MPa and temperature T in Kelvin.
- Arguments:
- preal(dp), intent(in), dimension(:)
Pressure in MPa.
- Treal(dp), intent(in), dimension(:)
Pressure in K.
- propcharacter(len=*), intent(in)
Property (v, u, s, h, cp, cv, w)
- resreal(dp), intent(out), dimension(:)
Filled with NaN if no adequate region is found.
wr (subroutine)#
-
pure subroutine wr(p, T, res) Get the water region corresponding to p and T.
- Arguments:
- preal(dp), intent(in), dimension(:)
Pressure in MPa.
- Treal(dp), intent(in), dimension(:)
Temperature in K.
- resinteger(int32), intent(out), dimension(:)
Region 1 to 5 if found or -1.
wph (subroutine)#
-
pure subroutine wph(p, T, res) Get the water phase corresponding to p and T.
- Arguments:
- preal(dp), intent(in), dimension(:)
pressure in MPa.
- Treal(dp), intent(in), dimension(:)
Temperature in K.
- rescharacter(len=1), intent(out), dimension(:)
Phases: l(liquid), v(VAPOR), c(SUPER CRITICAL), s(SATURATION), n(UNKNOWN).
Kw (subroutine)#
-
pure subroutine Kw(T, rhow, k) Compute the ionization constant of water Kw (273.13 K <= T <= 1273.15 K and 0 <= p <= 1000 MPa).
- Arguments:
- Treal(dp), intent(in), dimension(:)
Temperature in K.
- rhowreal(dp), intent(in), dimension(:)
Mass density in g.cm^{-3}.
- kreal(dp), intent(out), dimension(:)
Ionization constant. Filled with NaN if out of validity range.
iapws__capi (module)#
C API.
Variables
- version_ccharacter(len=:), allocatable, target
- c_gasestype(cgas_type), allocatable, target, dimension(:)
- char_pptype(c_char_p), allocatable, target, dimension(:)
- c_gases_strcharacter(len=:), allocatable, target
- capi_Tc_H2Oreal(c_double), protected, bind(C, name=”iapws_r283_Tc_H2O”), Default = Tc_H2O
Critical temperature for H2O in K
- capi_Tc_D2Oreal(c_double), protected, bind(C, name=”iapws_r283_Tc_D2O”), Default = Tc_D2O
Critical temperature for D2O in K
- capi_pc_H2Oreal(c_double), protected, bind(C, name=”iapws_r283_pc_H2O”), Default = pc_H2O
Critical pressure for H2O in MPa
- capi_pc_D2Oreal(c_double), protected, bind(C, name=”iapws_r283_pc_D2O”), Default = pc_D2O
Critical pressure for D2O in MPa
- capi_rhoc_H2Oreal(c_double), protected, bind(C, name=”iapws_r283_rhoc_H2O”), Default = rhoc_H2O
Critical density for H2O in kg.m-3
- capi_rhoc_D2Oreal(c_double), protected, bind(C, name=”iapws_r283_rhoc_D2O”), Default = rhoc_D2O
Critical density for D2O in kg.m-3
Types
c_char_p (type)#
-
c_char_p (type)
cgas_type (type)#
-
cgas_type (type) - Attributes:
- gascharacter(kind=c_char, len=1), allocatable, dimension(:)
Procedures
capi_get_version (function)#
-
function capi_get_version()bind(c,name="iapws_get_version") -> cptr C API
- Returns:
- cptrtype(c_ptr)
Pointer to version string.
capi_kh (subroutine)#
-
subroutine capi_kh(T, gas, heavywater, k, size_gas, size_T)bind(C,name="iapws_g704_kh") C API.
- Arguments:
- Treal(c_double), intent(in), dimension(size_T)
Temperature in °C.
- gastype(c_ptr), intent(in), value
Gas.
- heavywaterinteger(c_int), intent(in), value
Flag if D2O (1) is used or H2O(0).
- kreal(c_double), intent(inout), dimension(size_T)
Henry constant. Filled with NaNs if gas not found.
- size_gasinteger(c_int), intent(in), value
Size of the gas string.
- size_Tinteger(c_size_t), intent(in), value
Size of T and k.
capi_kd (subroutine)#
-
subroutine capi_kd(T, gas, heavywater, k, size_gas, size_T)bind(C,name="iapws_g704_kd") C API.
- Arguments:
- Treal(c_double), intent(in), dimension(size_T)
Temperature in °C.
- gastype(c_ptr), intent(in), value
Gas.
- heavywaterinteger(c_int), intent(in), value
Flag if D2O (1) is used or H2O(0).
- kreal(c_double), intent(inout), dimension(size_T)
Vapor-liquid constant. Filled with NaNs if gas not found.
- size_gasinteger(c_int), intent(in), value
Size of the gas string.
- size_Tinteger(c_size_t), intent(in), value
Size of T and k.
capi_ngases (function)#
-
function capi_ngases(heavywater)bind(C, name="iapws_g704_ngases") -> n C API.
- Arguments:
- heavywaterinteger(c_int), intent(in), value
- Returns:
- ninteger(c_int)
Flag if D2O (1) is used or H2O(0).
capi_gases (function)#
-
function capi_gases(heavywater)bind(C, name="iapws_g704_gases") -> list_gases C API.
- Arguments:
- heavywaterinteger(c_int), intent(in), value
- Returns:
- list_gasestype(c_ptr)
Flag if D2O (1) is used or H2O(0).
capi_gases2 (function)#
-
function capi_gases2(heavywater)bind(C, name="iapws_g704_gases2") -> str_gases C API.
- Arguments:
- heavywaterinteger(c_int), intent(in), value
- Returns:
- str_gasestype(c_ptr)
Flag if D2O (1) is used or H2O(0).
capi_psat (subroutine)#
-
subroutine capi_psat(N, Ts, ps)bind(C, name="iapws_r797_psat") - Arguments:
- Ninteger(c_size_t), intent(in), value
Size of Ts and ps.
- Tsreal(c_double), intent(in), dimension(N)
Saturation temperature in K.
- psreal(c_double), intent(out), dimension(N)
Saturation pressure in MPa. Filled with nan if out of validity range.
capi_Tsat (subroutine)#
-
subroutine capi_Tsat(N, ps, Ts)bind(C, name="iapws_r797_Tsat") - Arguments:
- Ninteger(c_size_t), intent(in), value
Size of ps and Ts.
- psreal(c_double), intent(in), dimension(N)
Saturation pressure in MPa.
- Tsreal(c_double), intent(out), dimension(N)
Saturation temperature in K. Filled with nan if out of validity range.
capi_wp (subroutine)#
-
subroutine capi_wp(p, T, prop, res, N, len)bind(C, name="iapws_r797_wp") C API.
Available properties: * v: specific volume in m3/kg * u: specific internal energy in kJ/kg * s: specific entropy in kJ/kg * h: specific enthalpy in kJ/kg/K * cp: specific isobaric heat capacity in kJ/kg/K * cv: specific isochoric heat capacity in kJ/kg/K * w: speed of sound in m/s
- Arguments:
- preal(c_double), intent(in), dimension(N)
Pressure in MPa.
- Treal(c_double), intent(in), dimension(N)
Temperature in K.
- proptype(c_ptr), intent(in), value
Water property.
- resreal(c_double), intent(out), dimension(N)
Result. Filled with NaNs if gas not found.
- Ninteger(c_size_t), intent(in), value
Size of T and p.
- leninteger(c_int), intent(in), value
Size of the prop string.
capi_wr (subroutine)#
-
subroutine capi_wr(p, T, res, N)bind(C, name="iapws_r797_wr") C API.
- Arguments:
- preal(c_double), intent(in), dimension(N)
Pressure in MPa.
- Treal(c_double), intent(in), dimension(N)
Temperature in K.
- resinteger(c_int), intent(out), dimension(N)
Regions.
- Ninteger(c_size_t), intent(in), value
Size of T and p.
capi_wph (subroutine)#
-
subroutine capi_wph(p, T, res, N)bind(C, name="iapws_r797_wph") C API.
- Arguments:
- preal(c_double), intent(in), dimension(N)
Pressure in MPa.
- Treal(c_double), intent(in), dimension(N)
Temperature in K.
- rescharacter(len=1, kind=c_char), intent(out), dimension(N)
Regions.
- Ninteger(c_size_t), intent(in), value
Size of T and p.
capi_Kw (subroutine)#
-
subroutine capi_Kw(N, T, rhow, k)bind(C, name="iapws_r1124_Kw") C API.
- Arguments:
- Ninteger(c_size_t), intent(in), value
Size of T, rhow and k.
- Treal(c_double), intent(in), dimension(N)
Temperature in K.
- rhowreal(c_double), intent(in), dimension(N)
Mass density in g.cm^{-3}.
- kreal(c_double), intent(out), dimension(N)
Ionization constant. Filled with NaN if out of validity range.
iapwscli (program)#
program iapwscli
use iso_fortran_env, only: output_unit, error_unit
use M_CLI2, only: set_args, iget, lget, get_args, dgets
use M_CLI2, only: args=>unnamed, get_subcommand, set_mode
use stdlib_optval
use stdlib_codata, only: Mu=>MOLAR_MASS_CONSTANT
use iapws
use iapws__common
use ciaaw, only: get_saw, get_naw
character(len=*), parameter :: name="iapws"
character(len=:),allocatable, target :: help_text(:)
character(len=:),allocatable, target :: version_text(:)
character(len=32) :: cmd
character(len=124) :: msg
integer :: i, ierr
real(dp), allocatable :: T(:), f(:), x2(:), p(:)
character(len=:), allocatable :: gas(:)
integer :: heavywater
type(gas_type), pointer :: list_gases(:)
real(dp) :: M_H, M_O, M_C, M_N, M_S, M_F, M_D
real(dp) :: M_He, M_Ne, M_Ar, M_Kr, M_Xe
real(dp) :: M_H2, M_D2, M_N2, M_O2, M_CO, M_CO2
real(dp) :: M_H2S, M_CH4, M_C2H6, M_SF6
real(dp) :: M_H2O, M_D2O
real(dp) :: M_solvent
M_H = get_saw('H')
M_O = get_saw('O')
M_C = get_saw('C')
M_N = get_saw('N')
M_S = get_saw('S')
M_F = get_saw('F')
M_D = get_naw('H', A=2)
M_He = get_saw('He') * Mu%value*1d3
M_Ne = get_saw('Ne') * Mu%value*1d3
M_Ar = get_saw('Ar') * Mu%value*1d3
M_Kr = get_saw('Kr') * Mu%value*1d3
M_Xe = get_saw('Xe') * Mu%value*1d3
M_H2 = 2*M_H * Mu%value*1d3
M_D2 = 2*M_D * Mu%value*1d3
M_N2 = 2*M_N * Mu%value*1d3
M_O2 = 2*M_O * Mu%value*1d3
M_CO2 = (M_C + 2*M_O) * Mu%value*1d3
M_H2S = (2*M_H + M_S) * Mu%value*1d3
M_CH4 = (M_C + 4*M_H) * Mu%value*1d3
M_C2H6 = (2*M_C + 6*M_H) * Mu%value*1d3
M_SF6 = (M_S + 6*M_F) * Mu%value*1d3
M_H2O = (2*M_H+M_O) * Mu%value*1d3
M_D2O = (2*M_D+M_O) * Mu%value*1d3
version_text=[character(len=80) :: &
'PROGRAM: '//name//' ', &
'DESCRIPTION: Compute light and heavy water properties. ', &
'VERSION: '//get_version()//' ', &
'AUTHOR: M. Skocic ', &
'LICENSE: MIT ', &
'' ]
help_text=[character(len=80) :: &
'NAME ', &
' '//name//' - Compute light and heavy water properties. ', &
' ', &
'SYNOPSIS ', &
' '//name//' SUBCOMMAND [OPTION...] ', &
' ', &
'DESCRIPTION ', &
' '//name//' is a command line interface for computing properties', &
' of light and heavy water according to IAPWS. ', &
' ', &
'SUBCOMMANDS ', &
' Valid subcommands are: ', &
" +kh Compute the Henry's constant for gases in H2O or D2O. ", &
' The default behavior is to compute the constant kH for O2 at 25°C.', &
' See options.', &
' +kd Compute the vapor-liquid distribution constant for gases in H2O or D2O. ', &
' The default behavior is to compute the constant kD for H2 at 25°C.', &
' See options.', &
' +psat Compute the saturation pressure.', &
' The default behavior is to compute psat at 25°C. ', &
' See options.',&
' +Tsat Compute the saturation temperature.', &
' The default behavior is to compute Tsat at 1 bar. ', &
' See options.',&
' ', &
' Their syntax is: ', &
' +kh [OPTION...] ', &
' +kd [OPTION...] ', &
' +psat [OPTION...] ', &
' +Tsat [OPTION...] ', &
' ', &
'OPTIONS ', &
' ', &
'kh: ', &
' --temperature, -T TEMPERATURE... Temperature in °C. Default to 25°C.', &
' --fugacity, -f FUGACITY... Liquid-phase fugacity in MPa. Default to 0.1 MPa.', &
' --gases, -g GAS... Gases for which to compute kH. Default to O2.', &
' --D2O Set heavywater as the solvent.', &
' --listgases Display available gases for computing kH.', &
' ', &
'kd: ', &
' --temperature, -T TEMPERATURE... Temperature in °C. Default to 25°C.', &
' --x2, -x x2... Molar fraction of gas in water. Default to 1e-9.', &
' --gases, -g GAS... Gases for which to compute kD. Default to H2.', &
' --D2O, Set heavywater as the solvent.', &
' --listgases Display available gases for computing kD.', &
' ', &
'psat: ', &
' --temperature, -T TEMPERATURE... Temperature in °C. Default to 25°C.', &
' ', &
'Tsat: ', &
' --pressure, -p PRESSURE... Pressure in bar. Default to 1 bar.', &
' ', &
'all: ', &
' --usage, -u Show usage text and exit. ', &
' --help, -h Show help text and exit. ', &
' --verbose, -V Display additional information when available.', &
' --version, -v Show version information and exit. ', &
' ', &
'EXAMPLE ', &
' Minimal example ', &
' ', &
' iapws kh -T 25,100 -f 0.1,0.02 -g O2,H2 ', &
' ', &
' iapws kd -T 25,100 -x2 1d-9,1d-6 -g O2,H2 ', &
' ', &
'SEE ALSO ', &
' ciaaw(3), codata(3) ', &
'' ]
call set_mode('strict')
cmd = get_subcommand()
select case (cmd)
case ("kh")
call set_args('--temperature:T 25.0 --fugacity:f 0.1 --gas:g O2 --D2O --listgases', &
help_text, version_text)
heavywater = 0
call get_args('g', gas)
call get_args('f', f)
call get_args('T', T)
if(lget('D2O'))then
heavywater = 1
else
heavywater = 0
end if
call print_kh(T, f, gas, heavywater)
if(lget('listgases')) then
write(output_unit, '(A)') gases2(heavywater)
end if
case ('kd')
call set_args('--temperature:T 25.0 --x2:x 1.0d-9 --gas:g H2 --D2O --listgases', &
help_text, version_text)
heavywater = 0
call get_args('g', gas)
call get_args('x', x2)
call get_args('T', T)
if(lget('D2O'))then
heavywater = 1
else
heavywater = 0
end if
call print_kd(T, x2, gas, heavywater)
if(lget('listgases')) then
write(output_unit, '(A)') gases2(heavywater)
end if
case ('psat')
call set_args('--temperature:T 25.0', help_text, version_text)
call get_args('T', T)
call print_psat(T)
case ('Tsat')
call set_args('--pressure:p 1.0', help_text, version_text)
call get_args('p', p)
call print_Tsat(p)
case default
call set_args('', help_text, version_text)
write(output_unit, '(A)') 'Enter a valid command. See --help.'
stop
end select
contains
function get_mm(x)result(r)
character(len=*), intent(in) :: x
real(dp) :: r
select case (trim(x))
case ('He')
r = M_He
case ('Ne')
r = M_Ne
case ('Ar')
r = M_Ar
case ('Kr')
r = M_Kr
case ('Xe')
r = M_Xe
case ('H2')
r = M_H2
case ('D2')
r = M_D2
case ('N2')
r = M_N2
case ('O2')
r = M_O2
case ('CO2')
r = M_CO2
case ('H2S')
r = M_H2S
case ('CH4')
r = M_CH4
case ('C2H6')
r = M_C2H6
case ('SF6')
r = M_SF6
case ('H2O')
r = M_H2O
case ('D2O')
r = M_D2O
case default
r = 0.0_dp
end select
end function
subroutine print_kh(T, f, gas, heavywater)
real(dp), intent(in), contiguous :: T(:), f(:)
character(len=*), intent(in), contiguous :: gas(:)
integer, intent(in) :: heavywater
real(dp), allocatable :: kr(:)
real(dp) :: M_solvent
integer :: i,j,k
character(len=16) :: headers(6)
character(len=32) :: fmt
character(len=15) :: s1, s2, s3, s4, s5, s6
M_solvent = M_H2O
if(heavywater == 1) then
M_solvent = M_D2O
end if
headers = [character(len=15) :: 'gas', 'T-degC', 'f-MPa', 'kH-MPa', 'x2-a.u.', 's-ppm']
fmt = '(A5, 5A15)'
write(output_unit, fmt) headers
allocate(kr(size(T)))
do k=1, size(gas)
call kh(T+273.15_dp, trim(gas(k)), heavywater, kr)
do i=1, size(T)
do j=1, size(f)
write(s1, '(A5)') gas(k)
write(s2, '(F14.2)') T(i)
write(s3, '(F14.3)') f(j)
write(s4, '(SP, EN14.2)') kr(i)
write(s5, '(SP, EN14.2)') 1/kr(i) * f(j) ! x2
write(s6, '(SP, F14.2)') 1/kr(i) * get_mm(gas(k)) / M_solvent * 1d6 * f(j) ! solubility in liquid
write(output_unit, fmt) &
adjustl(s1), &
adjustl(s2), &
adjustl(s3), &
adjustl(s4), &
adjustl(s5), &
adjustl(s6)
end do
end do
end do
deallocate(kr)
end subroutine
subroutine print_kd(T, x2, gas, heavywater)
real(dp), intent(in), contiguous :: T(:), x2(:)
character(len=*), intent(in), contiguous :: gas(:)
integer, intent(in) :: heavywater
real(dp), allocatable :: kr(:)
real(dp) :: M_solvent
integer :: i,j,k
character(len=16) :: headers(5)
character(len=32) :: fmt
character(len=15) :: s1, s2, s3, s4, s5
M_solvent = M_H2O
if(heavywater == 1) then
M_solvent = M_D2O
end if
headers = [character(len=15) :: 'gas', 'T-degC', 'x2-a.u.', 'kD', 'y2-a.u.']
fmt = '(A5, 4A15)'
write(output_unit, fmt) headers
allocate(kr(size(T)))
do k=1, size(gas)
call kd(T+273.15_dp, trim(gas(k)), heavywater, kr)
do i=1, size(T)
do j=1, size(x2)
write(s1, '(A5)') gas(k)
write(s2, '(SP, F14.2)') T(i)
write(s3, '(SP, ES14.3)') x2(j)
write(s4, '(SP, ES14.2)') kr(i)
write(s5, '(SP, ES14.2)') x2(j) * kr(i)
write(output_unit, fmt) &
adjustl(s1), &
adjustl(s2), &
adjustl(s3), &
adjustl(s4), &
adjustl(s5)
end do
end do
end do
deallocate(kr)
end subroutine
subroutine print_psat(T)
real(dp), intent(in), contiguous :: T(:)
real(dp), allocatable :: p(:)
integer :: i
character(len=20) :: headers(2)
character(len=32) :: fmt
character(len=20) :: s1, s2
headers = [character(len=15) :: 'T-degC', 'psat-bar']
fmt = '(A20, A20)'
write(output_unit, fmt) headers
allocate(p(size(T)))
call psat(T+273.15_dp, p)
do i=1, size(T)
write(s1, '(SP, F14.2)') T(i)
write(s2, '(SP, F20.6)') p(i)*10.0_dp
write(output_unit, fmt) adjustl(s1), adjustl(s2)
end do
deallocate(p)
end subroutine
subroutine print_Tsat(p)
real(dp), intent(in), contiguous :: p(:)
real(dp), allocatable :: T(:)
integer :: i
character(len=20) :: headers(2)
character(len=32) :: fmt
character(len=20) :: s1, s2
headers = [character(len=15) :: 'psat-bar', 'T-degC']
fmt = '(A20, A20)'
write(output_unit, fmt) headers
allocate(T(size(p)))
call Tsat(p/10.0_dp,T)
do i=1, size(p)
write(s1, '(SP, F20.6)') p(i)
write(s2, '(SP, F14.2)') T(i) - 273.15_dp
write(output_unit, fmt) adjustl(s1), adjustl(s2)
end do
deallocate(T)
end subroutine
end program
Dependencies
M_CLI2ciaawiapws__commoniso_fortran_envstdlib_codatastdlib_optval
Procedures
get_mm (function)#
-
function get_mm(x) -> r - Arguments:
- xcharacter(len=*), intent(in)
- Returns:
- rreal(dp)
print_kh (subroutine)#
-
subroutine print_kh(T, f, gas, heavywater) - Arguments:
- Treal(dp), intent(in), contiguous, dimension(:)
- freal(dp), intent(in), contiguous, dimension(:)
- gascharacter(len=*), intent(in), contiguous, dimension(:)
- heavywaterinteger, intent(in)
print_kd (subroutine)#
-
subroutine print_kd(T, x2, gas, heavywater) - Arguments:
- Treal(dp), intent(in), contiguous, dimension(:)
- x2real(dp), intent(in), contiguous, dimension(:)
- gascharacter(len=*), intent(in), contiguous, dimension(:)
- heavywaterinteger, intent(in)
print_psat (subroutine)#
-
subroutine print_psat(T) - Arguments:
- Treal(dp), intent(in), contiguous, dimension(:)
print_Tsat (subroutine)#
-
subroutine print_Tsat(p) - Arguments:
- preal(dp), intent(in), contiguous, dimension(:)