FE-IAPWS-IF97-DLL (felib.iapwsif97) is a component of felib.dll.
Given pressure and temperature, felib.iapwsif97 determines the water/steam region and calculates specific volume, mass density, saturation pressure and temperature, boundary pressure and temperature (between regions 2 and 3), specific internal energy, specific isobaric and isochoric heat capacities, speed of sound, thermal conductivity, viscosity, isentropic exponent and dielectric constant, completely in accordance with:

IAPWS-IF97: Release on the IAPWS, Industrial Formulation 1997 for the Thermodynamic Properties of Water and Steam
Description of felib.iapwsif97 class interface: properties (variables), method (function) and error status flags.

Description Set property value Get property value
Pressure [MPa] void Set­Pressure­MPa­(double newP) double Get­Pressure­MPa()
Temperature [K] void Set­Temperature­K­(double newT) double Get­Temperature­K­()
Protection key void Set­Key­Code(long nNew­Value) n/a
Error status n/a long Get­Error­Flag()
Error report n/a BSTR Get­Error­Report()
Specific volume [m3/kg] n/a double Get­Specific­Volume­()
Density [kg/m3] n/a double Get­Mass­Density­()
Saturation pressure [MPa] n/a double Get­Saturation­Pressure()
Saturation temperature [K] n/a double Get­Saturation­Temperature­()
Boundary pressure [MPa] (Between regions 2&3) n/a double Get­Boundary­Pressure­()
Boundary temperature [K] (Between regions 2&3) n/a double Get­Boundary­Temperature­()
Specific internal energy [kJ/kg] n/a double Get­Specific­Internal­Energy­()
Specific isobaric heat capacity [kJ/(kg⋅K)] n/a double Get­Specific­Isobaric­HC()
Specific isochoric heat capacity [kJ/(kg⋅K)] n/a double Get­Specific­Isochoric­HC()
Speed of sound [m/s] n/a double Get­Speed­Of­Sound()
Thermal conductivity [mW/(m*K)] n/a double Get­Thermal­Conductivity()
Viscosity [Pa⋅s] n/a double Get­Viscosity()
Isentropic exponent n/a double Get­Isentropic­Exponent()
Dielectric constant n/a double Get­Dielectric­Constant()
Specific enthalpy [kJ/kg] n/a double Get­Specific­Enthalpy()
Specific entropy [kJ/(kg⋅K)] n/a double Get­Specific­Entropy­()
Water/steam region n/a short Get­Region­()
long Calculate­Properties(); calculates water/steam properties, determines the corresponding water/steam region and returns long representing error status flags.
Upon completion the function Calculate­Properties­() returns "long" representing Error status. Error status property can also be read out by Get­Error­Flag­().
long Get­Error­Flag­() Description of Error flags.
Bit 0 =1 (0000001H) Pressure ≤0 or >100 MPa, or pressure >10 MPa for temperatures above 1073.15 K.
Bit 1 =1 (0000002H) Temperature <273.15 or >1073.15 K.
Bit 2 =1 (000004H) d>(0.55+0.97⋅mfrCO2-0.45⋅mfrH2)
d - density
mfrCO2 - mole fraction of carbon dioxide
mfrH2 - mole fraction of hydrogen
Bit 24 =1 (1000000H) Incorrect key-code entered.
Bits: 2....,23,25,....31 Unused.
The output parameters do have the corresponding pressure/temperature (p,t) range of validity. The parameter will be set to "-1" if the corresponding (p,t) range of validity was not satisfied. The result is valid only if it is not equal to "-1" and if the error flags are equal to zero.