I just stumbled across something peculiar in the function DynamicViscosityWater() in Viscosity.cpp (applies equally well to ViscosityFromTemperatureAndDensity() in DynamicViscosity.cpp)

Using

tstar = 647.27e0;

the function caclulates the following two values

trat = (t+273.15e0)/tstar; trat1 = 1.0e0/trat-1.0e0;

Now, if the external CSMP temperature, t, is exactly t = 374.12, then obviously one obtains

trat = 1.0e0; trat1 = 0.0e0

which causes the viscosity, n, to be not a number because it is computed as

for(i=0;i<6;++i){ for(j=0;j<5;++j){ n += (b[i][j]*pow(trat1,i)*pow(rhorat1,j)); } }

where now pow(trat1,i) = nan if trat1 = 0 and i = 0

Am I missing some vital physics here (we are close to the critical temperature of pure water but t = 374.12 is not equal to tcrit 373.976) or am I just unlucky having encountered this value?