The Reynolds number is an important parameter in Transport Phenomena.  It is used extensively in many calculations dealing with fluid flow, mass transfer and heat transfer.  It is the ratio of the inertial forces to the viscous forces and depends on a characteristic length, velocity, density and viscosity of the fluid.  Low Reynolds numbers imply viscous forces are large compared to the inertial forces and this is associated with laminar flow which has a well-defined velocity profile. High Reynolds numbers indicate turbulent flow and erratic velocity profiles.

The program 'recalc' calculates the Reynolds number for an Ideal gas at a specified pressure, temperature, characteristic length and the mainstream velocity.  The characteristic length depends on the object around which the fluid is flowing.  The mainstream velocity is the velocity outside of the boundary layer.  Since the Reynolds number depends on the density of the ideal gas, the same assumptions for ideality apply in our calculations.  The program 'recalc' uses rhocalc and mucalc to determine the density and viscosity respectively which are then used to calculate the Reynolds number. The matlab code for recalc is specified below-

function recalc(P,T,l,v,index)

global mw % loads molecular weights
global nc %load number of compounds

%define constants
R=82.0578/(10^3); %gas constant with units of m^3*atm/kg-mol/K

if nargin >4
i=index;
mu(i)=mucalc(T,index);
T=at(T);
%check to see if all the necessary data is contained in database
if mw(i)==NaN,
fprintf('Molecular weight data for compound *%s* is not available .\n',cnms(i,:))

elseif (T<TbpK(i))
fprintf('The temperature for compound *%s* is below the boiling point.\n',cnms(i,:))

elseif (T<0)
fprintf('The temperature for compound *%s* is below absolute zero,enter a higher temperature.\n',cnms(i,:))

elseif (P> 10)
fprintf('The entered pressure value is too high, the gas may not behave ideally')

elseif (P<0)
fprintf('The entered pressure is below zero,try again')

elseif (l<0)
fprintf('The entered length is negative,try a different length')

elseif (v<0)
fprintf('The entered velocity is below zero,try again')

else %if all data is specified
Rho(i)=mw(i)*P/R/T;
Re(i)=Rho(i).*v.*l./mu(i);

end
Re(i)

else %if index not specified, calculate data for all compounds
mu=mucalc(T); % this calls the program 'mucalc' to calculate the viscosity
T=at(T);
for i=1:nc,
if mw(i)==NaN,
fprintf('Molecular weight data for compound *%s* is not available .\n',cnms(i,:))

elseif (T<TbpK(i))
fprintf('The temperature for compound *%s* is below the boiling point.\n',cnms(i,:))

elseif (T<0)
fprintf('The temperature for compound *%s* is below absolute zero,enter a higher temperature.\n',cnms(i,:))

elseif (P> 10)
fprintf('The entered pressure value is too high, the gas may not behave ideally')

elseif (P<0)
fprintf('The entered pressure is below zero,try again')

elseif (l<0)
fprintf('The entered length is negative,try a different length')

elseif (v<0)
fprintf('The entered velocity is below zero,try again')

else %if all data is specified
Rho(i)=mw(i)*P/R/T;
Re(i)=Rho(i)*v*l/mu(i);
end

end
Re
end