The usthht subroutine is used to encapsulate a simple enthalpy-temperature conversion law and its inverse.
Introduction
The usthht function allows one to define a simple enthalpy-temperature conversion law and its inverse. The parameters mode
allows one to know in which direction the conversion will be made.
Examples
The following code blocks show two examples of entahlpy-temperature conversion law.
Example 1
The first example corresponds to a simple law :
if (mode .eq. 1) then
temper = enthal / 4000.d0
else
enthal = temper * 4000.d0
endif
Example 2
The second example corresponds to a simple interpolation based on a tabulation defined hereafter and declared as a variable :
integer ntab
parameter(ntab=5)
double precision ht(ntab), th(ntab)
data ht /100000.d0,200000.d0,300000.d0, &
400000.d0,500000.d0 /
data th / 100.d0, 200.d0, 300.d0, &
400.d0, 500.d0 /
The enthalpy-temperature conversion law is then defined :
if (mode .eq. 1) then
temper = 0.d0
if (enthal.le.ht(1)) then
temper = th(1)
else if (enthal.ge.ht(ntab)) then
temper = th(ntab)
else
do it = 2, ntab
if(enthal.le.ht(it)) then
temper = th(it-1) &
+(enthal-ht(it-1))*(th(it)-th(it-1))/(ht(it)-ht(it-1))
endif
enddo
endif
else
enthal = 0.d0
if (temper.le.th(1)) then
enthal = ht(1)
else if (temper.ge.th(ntab)) then
enthal = ht(ntab)
else
do it = 2, ntab
if(temper.le.th(it)) then
enthal = ht(it-1) &
+(temper-th(it-1))*(ht(it)-ht(it-1))/(th(it)-th(it-1))
endif
enddo
endif
endif