//======================================================
// Thermodynamic Package in java
// Class Gas Properties of perfect gases
// Dr. Turhan Coban
// Ege University, School of Engineering, 
// Department of Mechanical Engineering
// Bornova İZMİR - TURKEY
// 
// email : turhan.coban
//======================================================
// File Name   : Gas.java
// This file contains the Gas class
// this class sets basic properties of perfect gases
// required data is read from Gas.dat.
// =====================================================
// Description  : This file contains the gas class
//               class gas calculates thermophysical properties of
//               perfect gasses
//               following properties can be calculated
//               T()     : Temperature degree K
//               h(T)    : enthalpy  KJ/kmol
//               hf      : formation enthalpy KJ/kg
//               ht(T)   : total enthalpy KJ/kg (h+hf)
//               M       : molar mass kg/kmol
//               HT(T)   : total enthalpy KJ : M*ht(T)
//               P()     : presuure bar
//               s(T,P)  : entropy KJ/kmol K
//               Cp(T)   : specific heat at constant pressure KJ/kmol K
//               Cv(T)   : specific heat at constant volume KJ/kg K
//               gamma(T): adiabatic constant Cp/Cv
//               u(T)    : Internal energy KJ/kmol
//               c(T)    : speed of sound m/s
//               vis(T)  : viscosity      Ns/m^2
//               k(T)    : thermal conductivity KJ/kg K
// DATA FILE DEFINATION
// gas datas are written in the data file "Gas.dat"
// if gas data is not given in the data file, it can be curve fitted
// and added to the data file. Additional curve fitting programs supplied
// in Numerical Analysis package. Each data has the following form :
//------------------
// gasName
// n_equation M h0 hf sf
// xa[0] xb[0] xc[0] xd[0] tl[0] th[0]
// .........
// xa[n_equation-1] xb[n_equation-1]......th[n_equation-1]
// n_vis
// xvis[0]
// .........
// xvis[n_vis-1]
// n_k
// xk[0]
// .........
// xk[n_k-1]
//-------------------
// unit of the xa :  kcal/kmol
// note : if any curvefitting applied for a new gas temperature values
// in K nad enthalpy values in the unit of Kcal.kmol should be supply
// for the Cp curve fitting
//============================================================
//  VARIABLE IDENTIFICATION
// all the variables that type is not defined is a double variable
// PROTECTED VARIABLES :
// xa,xb,xc,xd ,tl,th : double pointers. This values used to calculate
// specific heat at constant pressure  from the following equation :
// Cp(T) = xa[i]+xb[i]*1e-3*T+xc[i]*1.0e5/T^2+xd[i]*1e-6*T^3
// where tl[i] <= T <= th[i]
// n_equation : number of equations (xa,xb,xc,xd,tl,th) for a gas
// xvis : real pointers to define viscosity according to formula :
// vis(T)=sum(xvis(i)*T^i) , for(i=0;i<n_vis;i++)
// n_vis : number of coefficients in polynomial viscosity curve fitting
// xk :real pointers to define thermal conductivity according to formula
// k(t)=sum(xk(i)*T^i) ,  for(i=0;i<n_k;i++)
// PUBLIC VARIABLES :
// gasName : name of the gas example : H2O   :variable class str
// (class str is defined at file cstr.h and str.cpp, written by Timotyhy A. Budd)
// M : mol number of the gas example mol number of H2O is 18.016 kg/kmol
// h0 : value of enthalpy at 298 K in the unit of Kcal/kmol
// hf : formation enthalpy at 298 K in the unit of Kcal/kmol
// sf : value of enthalpy at 298 K and 1 bar pressure
// N  : molar weight of the gas, kmol
// ierror : integer variable, error flag
//============================================================
import java.io.*;
import java.net.*;
import java.util.*;
import javax.swing.*;

class Gas1 extends absfluid
{
boolean mole=true; //switch for mole/mass basis
boolean SI=true;   //switch for SI/EN units
URL gn;
double xa[],xb[],xc[],xd[],tl[],th[];
int n_equation;
int n_vis;
int n_k;
double xvis[];
double xk[];
int natom;
String gasName;
Atom atomList[];
double M;  // molar mass of atom kg/kmol
double h0; // enthalpy at T=298 K
double s0; // enthrophy at 298 K
double hf; // enthalpy of formation  KJ/kmol
double sf; // entropy of formation    kJ/kmol K
double gf; // gibbs free energy of formation KJ/kmol 
double N;  // moles of gas kmol
int ierror;
BufferedReader fin;
File gasDir;
// definations of class functions
// constructors
//===================================================================
public Gas1()
{
//empty constructor
int i;
gasName="******************************";
natom=1;
atomList=new Atom[natom];
M=0;
N=1.0;
h0=0;
s0=0;
hf=0;
sf=0;
gf=0;
n_equation=6;
n_vis=10;
n_k=10;
xa=new double[6];
xb=new double[6];
xc=new double[6];
xd=new double[6];
tl=new double[6];
th=new double[6];
xvis=new double[10];
xk=new double[10];
for(i=0;i<n_equation;i++)
{xa[i]=0.0;xb[i]=0.0;xc[i]=0.0;xd[i]=0.0;tl[i]=293.0;th[i]=293.0;}
for(i=0;i<n_vis;i++)
{xvis[i]=0.0;}
for(i=0;i<n_k;i++)
{xk[i]=0.0;}
}
//===================================================================

public Gas1(String gName,double Nnew)
{
readgas(gName,Nnew);
}

public Gas1(String gName)
{
readgas(gName,1.0);
}

public Gas1(Gas1 g) throws IOException
{
int i;
gasName=g.gasName;
natom=g.natom;
atomList=new Atom[natom];
for(i=0;i<natom;i++)
{
atomList[i]=g.atomList[i];
}
M=g.M;
N=g.N;
h0=g.h0;
hf=g.hf;
sf=g.sf;
gf=hf-298.0*sf;
n_equation=g.n_equation;
n_vis=g.n_vis;
n_k=g.n_k;
xa=new double[n_equation];
xb=new double[n_equation];
xc=new double[n_equation];
xd=new double[n_equation];
tl=new double[n_equation];
th=new double[n_equation];
xvis=new double[n_vis];
xk=new double[n_k];
for(i=0;i<n_equation;i++)
{xa[i]=g.xa[i];xb[i]=g.xb[i];xc[i]=g.xc[i];xd[i]=g.xd[i];tl[i]=g.tl[i];th[i]=g.th[i];}
for(i=0;i<n_vis;i++)
{xvis[i]=g.xvis[i];}
for(i=0;i<n_k;i++)
{xk[i]=g.xk[i];}

}

public String toString()
{
//return the chemical symbol of the gas
String s="";
for(int i=0;i<natom;i++)
  s=s+atomList[i].toString();
return s;
}
//===================================================================

public void changeN(double Nnew)
{
N=Nnew;
}
//===================================================================

public double vis(double T)
{
// SI Ns/m^2
// EN lbm/(ft.s)
if(!SI) T/=1.8;
// dynamic viscosity of the gas
double visg=0;
if(n_vis!=0.0)
{
  visg=xvis[n_vis-1];
  for(int i=n_vis-2;i>=0;i--)
   { visg=visg*T+xvis[i]; }
  visg*=1.0e-7;
}
else
  visg=0;
if(!SI) visg/=1.488;
return visg;
}
//===================================================================

public double k(double T)
{
// thermal conductivity of the gas
if(!SI) T/=1.8;
double kg;
if(n_k!=0.0)
{
  int nk=n_k-1;
  kg=xk[nk];
  for(int i=n_k-2;i>=0;i--)
   { kg+=kg*T+xk[i]; }
	kg*=1.0e-3;
}
else
  kg=0;
if(!SI) kg/=1.731;
return kg;
}
//===================================================================

   public double h(double T)
   {
   if(!SI) T/=1.8;
   //  enthalpy KJ/kmol
   //integration of function dh=Cp(T)*dT
   double hh = h0;
     for(int i=0;i<n_equation;i++)
     {
	     if(((T>th[i]) && (i== (n_equation-1) ) )
		|| ((T<tl[i]) && (i== 0 ) ) )
             {
	     hh+=   xa[i]*(T- tl[i])
	          + xb[i]*1.0e-3/2.0*(T*T-tl[i]*tl[i])
		  - xc[i]*1e5*(1/T-1/tl[i])
		  + xd[i]*1e-6*(T*T*T-tl[i]*tl[i]*tl[i])/3.0;
      }
             else if((T<= th[i]) && (T> tl[i]))
				 {
	     hh+=   xa[i]*(T- tl[i])
	          + xb[i]*1.0e-3/2.0*(T*T-tl[i]*tl[i])
		  - xc[i]*1e5*(1/T-1/tl[i])
		  + xd[i]*1e-6*(T*T*T-tl[i]*tl[i]*tl[i])/3.0;
             }
             else if(T>th[i])
				 {
	     hh+=   xa[i]*(th[i]- tl[i])
	          + xb[i]*1.0e-3/2.0*(th[i]*th[i] - tl[i]*tl[i])
		  - xc[i]*1e5*(1/th[i]-1/tl[i])
		  + xd[i]*1e-6*(th[i]*th[i]*th[i]-tl[i]*tl[i]*tl[i])/3.0;
             }
	  }
   if(!SI) hh*=0.42992;
   if(!mole) hh/=M;
   return hh;
   }   
   public double T(double h){	
		//Ridder Metodu ile lineer olmayan denklemlerin köklerinin bulunmas?
		//referans : Numerical Recipes in C, second edition, William H. Press, 
		//Saul A. Teukolsky, William T. Vetterling, Brian P. Flannery
		//cambridge university press	
		  double[][] x_bracket=new double[2][1]; 
		  x_bracket=T_bracket(h);	
		  double x1=x_bracket[0][0];
		  double x2=x_bracket[1][0];
		  //System.out.println("x1= "+x1+" x2= "+x2);
		  int MAXIT=50;
		    double xacc=1.0e-4;int j;
			double fl,fh,xl,xh,swap,dx,del,ff;
			double rtf=x1;
			fl=h(x1)-h;
			fh=h(x2)-h;
			//System.out.println("fl= "+fl+" fh= "+fh);
		    if (fl*fh > 0.0)System.out.println("Kök s?n?rlar? do?ru olarak seçilmemi? \n sonuç hatal? olabilir"); 
			if (fl < 0.0) {
				xl=x1;
				xh=x2;
			} else {
				xl=x2;
				xh=x1;
				swap=fl;
				fl=fh;
				fh=swap;
			}
			//System.out.println("xl= "+xl+" xh= "+xh);
			//System.out.println("fl= "+fl+" fh= "+fh);
			dx=xh-xl;
			for (j=1;j<=MAXIT;j++) {
				rtf=xl+dx*fl/(fl-fh);
				ff=h(rtf)-h;
				if (ff < 0.0) {
					del=xl-rtf;
					xl=rtf;
					fl=ff;
				} else {
					del=xh-rtf;
					xh=rtf;
					fh=ff;
				}
				//System.out.println("rtf= "+rtf);
				dx=xh-xl;
				//System.out.println("xl= "+xl+" xh= "+xh);
			//System.out.println("fl= "+fl+" fh= "+fh);
				if (Math.abs(del) < xacc || ff == 0.0) return rtf;
			}
			System.out.println("Uyar? maximum iterasyon say?s? a??ld? \n"+
		   " çözüm geçerli olm?yabilir");			
		    return rtf; 		
   }
   public double[][]  T_bracket(double h){
		// koklerin yer ald??? alt bölgeleri saptar
		// n : verilen bölgeyi böldü?ümüz alt bölge say?s?
		// x1,x2 : s?n?r de?erleri
		// nbb = aranan bölgedeki köksay?s?	
			int n=10;
			int nbb=1; 
			int nb;			
			int i;
			double x,fp,fc,dx;
			double x1=273.15;
			double x2=3000;
			double xb[][]=new double[2][nbb];
			nb=0;
			dx=(x2-x1)/n;
			x=x1;
			//System.out.println("===========================bracket basladi===================================");
			fp=h(x1)-h;
			//System.out.println("x1= "+x1+" fp= "+fp);
			for (i=1;i<=n;i++) 
			{
				x+=dx;
				fc=h(x)-h;
				//System.out.println("x= "+x+" fc= "+fc);
				// e?er kök olan bölge bulunduysa.....
				if (fc*fp < 0.0 || fp==0) {
					xb[0][nb]=x-dx;
					xb[1][nb]=x;
					nb++;
				}
				fp=fc;
				if (nbb == nb){
					//System.out.println("===========================bracket bitti===================================");
					 return xb;				 	 
				 }
			}	
		if( nb == 0)
		System.out.println("arama tamamland? kök olan bölge bulunamad?");			
		else if(nb<nbb){
			System.out.println("arama tamamland? sadece "+nb+" adet kök bulundu \n"+
		    "siz "+nbb+" adet kök için arama yapt?rd?n?z");			
		   double xc[][]=new double[2][nb];
		   for (i=0;i<nb;i++) {xc[0][i]=xb[0][i];xc[1][i]=xb[1][i];}
		   //System.out.println("===========================bracket bitti===================================");
		   return xc;
		  }
		return xb;	   
   }
//===================================================================

   public double ht(double t)
   {
   double hf1=hf;
   double h1,href;
   double Tref=298.2;
   if(!SI) {Tref=536.67;hf1=hf*0.42992;}
   h1=h(t);
   href=h(Tref);
   double ht= h(t)-h(Tref)+hf1;
   //System.out.println("h1="+h1+"href="+href+"hf1="+hf1+"ht="+ht);
   if(!mole) ht/=M;
   return ht;
   }

   public double s0t( double t)
   {
   double sf1=sf;
   double Tref=298.2;
   if(!SI) {Tref=536.67;sf1*=0.238846;}
   double st=s(t)-s(Tref)+sf;
   if(!mole) st/=M;
   return st;
   }

   public double st( double t,double p)
   {
   double sf1=sf;
   double s1,sref;
   double Tref=298.0,Pref=1.0;
   if(!SI) {Tref=536.67;sf1*=0.238846;Pref=14.503684;}
   s1=s(t,p);
   sref=s(Tref,Pref);
   double sst=s1-sref+sf1;
   if(!mole) sst/=M;
   //System.out.println("s1="+s1+"sref="+sref+"sf1="+sf1+"sst="+sst+"P="+p+"Pref="+Pref);
   return sst;
   }

//===================================================================

   public double H(double t)
   {
   return h(t)*N;
   }
//===================================================================

   public double HT(double t)
   {
   return ht(t)*N;
   }
//===================================================================

   public double u(double T)
   {
   // internal energy KJ/kmol
   // Integration of function du = Cv(T)*dT
   double ht=h(T);
   double R=8.3145;
   if(!SI) {R=1.986;}
   double at= R*T;
   if(!mole) at/=M;
   return ht-at;
   }
//===================================================================

   public double v(double T,double P)
   {
   // specific volume of the gas m^3/kmol
   if(!SI) {T/=1.8;P/=14.503684;}
   double vt= 8314.5*T/(P*1e5);
   if(!mole) vt/=M;
   if(!SI) vt*=16.016949;
   return vt;
   }

   public double v(double T)
   {
   if(!SI) {T/=1.8;}
   double P=1.0;
   // specific volume of the gas m^3/kmol
   double vt=8314.5*T/(P*1e5);
   if(!mole) vt/=M;
   if(!SI) vt*=16.016949;
   return vt;
   }

//===================================================================
   public double c(double t)
   {
   double g=gamma(t);
   if(!SI) t/=1.8;
   // speed of sound m/s
   double ct=Math.sqrt(8314.5/M*t*g);
   if(!SI) ct/=0.3048;
   return ct;
   }
//===================================================================

   public double si(double T, double P)
   {
   // entropy KJ/kmol K
   // integration of function
   // ds = Cp(T) * dt/T - R dP/P
   // 0 point at 298 K
   // si=s(t,P)-s0(298)
   if(!SI) {T/=1.8;P/=14.503684;}
   double sot=s0;
   if(!mole) sot/=M;
   if(!SI) sot*=0.2388444444;
   return s(T,P)-sot;
   }

   public double s(double T, double P)
   {
   //entropy KJ/kmol K
   //integration of function
   // ds = Cp(T) * dt/T - R dP/P
   // 0 point at 0 K (so is added up at 298 K)
   if(!SI) {T/=1.8;P/=14.503684;}
   double ss=s0;
   for(int i=0;i<n_equation;i++)
		{
           if( ( T > th[i]  && i==n_equation - 1 )
	     ||( T < tl[i]  && i==0              ))
		       {
	       ss+=xa[i]*Math.log(T/tl[i])
	       + xb[i]*1.0E-3*(T-tl[i])
	       - xc[i]*1e5/2.0*(1.0/(T*T) - 1.0/(tl[i]*tl[i]))
	       + xd[i]*1e-6/2.0*(T*T-tl[i]*tl[i]);
               }
	   else if((T <= th[i]) && (T > tl[i]))
	       {
	       ss+=xa[i]*Math.log(T/tl[i])
	       + xb[i]*1.0E-3*(T-tl[i])
	       - xc[i]*1e5/2.0*(1.0/(T*T) - 1.0/(tl[i]*tl[i]))
               + xd[i]*1e-6/2.0*(T*T-tl[i]*tl[i]);
					}
	   else if( T > th[i] )
	       {
	       ss+=xa[i]*Math.log(th[i]/tl[i])
	       + xb[i]*1.0E-3*(th[i]-tl[i])
	       - xc[i]*1e5/2.0*(1.0/(th[i]*th[i]) - 1.0/(tl[i]*tl[i]))
	       + xd[i]*1e-6/2.0*(th[i]*th[i] - tl[i]*tl[i]);
					}
	   }
   double sst= (ss-8.3145*Math.log(P));
   if(!mole) sst/=M;
   if(!SI) sst*=0.238846;
   //System.out.println("sst="+sst+"s0="+s0+"sf="+sf);
   return sst;
   }

   public double S(double T, double P)
   {
   return s(T,P)*N;
   }

   public double Si(double T, double P)
   {
   return si(T,P)*N;
   }

   public double s(double T)
   {
   //entropy KJ/kmol K
   //integration of function
   // ds = Cp(T) * dt/T - R dP/P
   double P=1;
   if(!SI) {T/=1.8;}
   double ss=s0;
   for(int i=0;i<n_equation;i++)
		{
           if( ( T > th[i]  && i==n_equation - 1 )
	     ||( T < tl[i]  && i==0              ))
		       {
	       ss+=xa[i]*Math.log(T/tl[i])
	       + xb[i]*1.0E-3*(T-tl[i])
	       - xc[i]*1e5/2.0*(1.0/(T*T) - 1.0/(tl[i]*tl[i]))
	       + xd[i]*1e-6/2.0*(T*T-tl[i]*tl[i]);
               }
	   else if((T <= th[i]) && (T > tl[i]))
	       {
	       ss+=xa[i]*Math.log(T/tl[i])
	       + xb[i]*1.0E-3*(T-tl[i])
	       - xc[i]*1e5/2.0*(1.0/(T*T) - 1.0/(tl[i]*tl[i]))
               + xd[i]*1e-6/2.0*(T*T-tl[i]*tl[i]);
					}
	   else if( T > th[i] )
	       {
	       ss+=xa[i]*Math.log(th[i]/tl[i])
	       + xb[i]*1.0E-3*(th[i]-tl[i])
	       - xc[i]*1e5/2.0*(1.0/(th[i]*th[i]) - 1.0/(tl[i]*tl[i]))
	       + xd[i]*1e-6/2.0*(th[i]*th[i] - tl[i]*tl[i]);
					}
	   }
   if(!mole) ss/=M;
   if(!SI) ss*=0.238846;
   return ss;
   }

   public double si(double T)
   {
   return s(T)*N;
   }

//===================================================================

public double s0(double T)
{
  return s(T);
}

public double pr(double T)
{
double Tref, Rref;
  if(!SI) {Tref=491.67;Rref=1.986;}
  else {Tref=273.15;Rref=8.3145;}
  if(!mole) Rref/=M;
  return Math.exp((s(T)-s(Tref))/Rref);
}

public double vr(double T)
{
  double Rref;
  if(!SI) {Rref=1.986;}
  else {Rref=8.3145;}
  return (Rref/M)*T/pr(T)*10;
}

//===================================================================
public double g(double T,double P)
{
  return h(T)-T*s(T,P);
}

public double gt(double T,double P)
{
  return ht(T)-T*s(T,P);
}

public double gt(double T)
{
  double Pref;
  double Tref=298.2;
  if(!SI) {Pref=14.503684;}
  else {Pref=1.0;}
 // System.out.println(""+gasName);
 // System.out.println("gf= "+(hf-298*sf));
 // System.out.println("delh "+(h(T)-h(Tref)));
 // System.out.println("dels "+(298*s(298,Pref)-T*s(T,Pref)));
  return h(T)-h(Tref)+hf-T*s(T,Pref)-298*(sf-s(298,Pref));
  
}

public double g(double T)
{
  double Pref;
  if(!SI) {Pref=14.503684;}
  else {Pref=1.0;}
  return h(T)-T*s(T,Pref);
}

public double G(double T,double P)
{
 return g(T,P)*N;
}

public double G(double T)
{
 return g(T)*N;
}

public double GT(double T)
{
 return gt(T)*N;
}

public double GT(double T,double P)
{
 return gt(T,P)*N;
}


//===================================================================
public double g0(double T)
{
  return h(T)-T*s0(T);
}
//===================================================================
public double Cp(double T)
{
   //specific heat at constant pressure KJ/kmol K
   if(!SI) {T/=1.8;}
   double cp=0.0;
   for (int i=0;i<n_equation;i++)
     {
        if( ( T > th[i]  && i==n_equation - 1 )
		  ||( T < tl[i]  && i==0              ))
		{
        cp=xa[i]+xb[i]*1.0e-3*T+xc[i]*1.0e5/T/T+xd[i]*1.0e-6*T*T;
	break;
	}
	else if((T <= th[i]) && (T >= tl[i]) )
	{
	cp=xa[i]+xb[i]*1.0e-3*T+xc[i]*1.0e5/T/T+xd[i]*1.0e-6*T*T;
		  break;
	}
}
if(!mole) cp/=M;
if(!SI) cp*=0.2388444444;
return cp;
}

//===================================================================
public double Cv(double T)
{
//specific heat at constant volume KJ/kmol K
double Rref;
if(!SI) {Rref=1.986;}
else {Rref=8.3145;}
if(!mole) Rref/=M;
double cv;
cv=Cp(T) - Rref;
return cv;
}
//===================================================================
public double gamma(double T)
{
//adiabatic constant
return Cp(T)/Cv(T);
}
//===================================================================
public double T( char name,double y0,double p)
{
// name can have values h : for enthalpy
//                      u : for internal energy
//                      s : for entropy
//                      v : specific volume
// yo : the value of the variable given by variable name
double t;
if(!SI) {t=540;}
else {t=300;}
if(name=='v') {
  double R;
  if(!SI) {R=1545/144;}  //R
  else    {R=8.3145e3/1e5;} //K
  if(!mole) R/=M;
  t= p*y0/R;
              }
  else
  {
  double dt=0;
  int nmax=400;
  double tolerance=1.0e-8;
  for(int i=0;i<nmax;i++)
    {
// apply newtons method for finding roots of equation
    if     (name=='h') dt=-( h(t)   - y0 ) /Cp(t);
    else if(name=='u') dt=-( u(t)   - y0 ) /Cv(t);
    else if(name=='s') dt=-( s(t,p) - y0 ) /(Cp(t)/t);
    else { System.out.println("wrong name defined please try h,u,s ot v");}
	 t+=dt;
//   if error range is less than tolerance, exit
    if(Math.abs(dt)<tolerance) break;
    }
  }
return t;
}

public double T( char name,double y0)
{
// name can have values h : for enthalpy
//                      u : for internal energy
//                      s : for entropy
//                      v : specific volume
// yo : the value of the variable given by variable name
double t,p=1.0;
  double R;
  if(!SI) {R=1545/144;p=14.503684;t=540;}  //R
  else    {R=8.3145e3/1e5;p=1.0;t=300;} //K
  if(!mole) {R/=M;}
if(name=='v') { t= p*y0/R; }
else
  {
  double dt=0;
  int nmax=400;
  double tolerance=1.0e-8;
  for(int i=0;i<nmax;i++)
    {
// apply newtons method for finding roots of equation
    if     (name=='h') dt=-( h(t)   - y0 ) /Cp(t);
    else if(name=='u') dt=-( u(t)   - y0 ) /Cv(t);
    else if(name=='s') dt=-( s(t,p) - y0 ) /(Cp(t)/t);
    else { System.out.println("wrong name defined please try h,u,s ot v");}
	 t+=dt;
//   if error range is less than tolerance, exit
    if(Math.abs(dt)<tolerance) break;
    }
  }
return t;
}

//===================================================================
public double P( char name,double y0,double t1)
{
// name can have values v : for specific volume
//                      s : for entropy
// note : for a perfect gas enthalpy and internal energy
// is not function of pressure
// yo : the value of the variable given by variable name
  double R,R1;
  if(!SI) {R=1545;R1=1.986;}  //R
  else    {R=8.3145e3/1e5;R1=8.3145;} //K
  if(!mole) {R/=M;R1/=M;}

if(name=='v')       return R*t1/y0;
else if (name=='s') return Math.exp((s(t1,1.0)-y0)/R1);
else { System.out.println("wrong name defined please try s or v"); return 1.0;}
}
//===================================================================
public double Prandtl(double t)
{
// Prandtl number
double cp;
if(mole) {cp=Cp(t)/M;}
else {cp=Cp(t);}
double pr=0;
if(SI) pr=cp*vis(t)/k(t)*1e3;
else pr=cp*vis(t)/k(t)*3600;
return pr;
}
//===================================================================
public void assign(Gas g1) throws IOException
{
// assign operator (assigning a new gas to the gas variable)
int i;
ierror=1;
gasName=g1.gasName;
N=g1.N;
n_equation=g1.n_equation;
n_k=g1.n_k;
n_vis=g1.n_vis;
M=g1.M;
h0=g1.h0;
hf=g1.hf;
sf=g1.sf;
natom=g1.natom;
atomList=new Atom[natom];
M=0;
for(i=0;i<natom;i++)
 {
 atomList[i]=new Atom(g1.atomList[i].name,g1.atomList[i].N);
 }
xa=new double[n_equation];
xb=new double[n_equation];
xc=new double[n_equation];
xd=new double[n_equation];
tl=new double[n_equation];
th=new double[n_equation];
xvis=new double[n_vis];
xk=new double[n_k];
for(i=0;i<n_equation;i++)
  { xa[i]=g1.xa[i];
    xb[i]=g1.xb[i];
    xc[i]=g1.xc[i];
    xd[i]=g1.xd[i];
    tl[i]=g1.tl[i];
    th[i]=g1.th[i];
  }
for(i=0;i<n_vis;i++)
  { xvis[i]=g1.xvis[i];}
for(i=0;i<n_k;i++)
  {xk[i]=g1.xk[i];}
}

//===================================================================
public Gas multiply(double Nnew, Gas g1) throws IOException
{
Gas g2=new Gas(g1);
g2.N*=Nnew;
return g2;
}

public boolean equals(Gas g)
{
if(gasName.equals(g.gasName))
    return true;
else
    return false;
}

public boolean base(String s)
{
if(s.equals("mole")) {mole=true;}
else                 {mole=false;}
return mole;
}

public boolean unit(String s)
{
if(s.equals("SI")) {SI=true;}
else               {SI=false;}
return SI;
}

public double[] property(double t, double p)
{
double pp[]=new double[19];
pp[0]=p;
pp[1]=t;
pp[2]=v(t,p);
pp[3]=h(t);
pp[4]=u(t);
pp[5]=s(t,p);
pp[6]=g(t,p);
pp[7]=ht(t);
pp[8]=gt(t,p);
pp[9]=Cp(t);
pp[10]=Cv(t);
pp[11]=gamma(t);
pp[12]=c(t);
pp[13]=vis(t);
pp[14]=k(t);
pp[15]=M;
pp[16]=Prandtl(t);
pp[17]=pr(t);
pp[18]=vr(t);
return pp;
}

public String[][] toString1(double v1, double v2)
{
  String s1[][]=new String[19][3];
   s1[0][0]="P, pressure                  ";
   s1[1][0]="T, temperature               ";
   s1[2][0]="v, specific volume           ";
   s1[3][0]="h, enthalpy                  ";
   s1[4][0]="u, internal energy           ";
   s1[5][0]="s, entropy                   ";
   s1[6][0]="g, qibbs free energy         ";
   s1[7][0]="ht,chemical entropy          ";
   s1[8][0]="gt,chemical gibbs f.e.       ";
   s1[9][0]="Cp, specific heat at const P ";
   s1[10][0]="Cv, specific heat at const v";
   s1[11][0]="Cp/Cv, adiabatic constant   ";
   s1[12][0]="c, speed of sound           ";
   s1[13][0]="viscosity                   ";
   s1[14][0]="thermal conductivity        ";
   s1[15][0]="M, molecular weight         ";
   s1[16][0]="Prandtl number              ";
   s1[17][0]="Pr, reduced pressure        ";
   s1[18][0]="vr, reduced volume          ";

   if(SI && !mole)
   {
   s1[0][2]=" bars          ";
   s1[1][2]=" deg K         ";
   s1[2][2]=" m^3/kg        ";
   s1[3][2]=" KJ/kg         ";
   s1[4][2]=" KJ/kg         ";
   s1[5][2]=" KJ/kg K       ";
   s1[6][2]=" KJ/kg         ";
   s1[7][2]=" KJ/kg         ";
   s1[8][2]=" KJ/kg         ";
   s1[9][2]=" KJ/kg K        ";
   s1[10][2]=" KJ/kg K       ";
   s1[11][2]="               ";
   s1[12][2]=" m/s           ";
   s1[13][2]=" Ns/m^2        ";
   s1[14][2]=" W/m K         ";
   s1[15][2]=" kg/kmol       ";
   s1[16][2]="               ";
   s1[17][2]="               ";
   s1[18][2]="               ";
   }
   else if(SI && mole)
   {
   s1[0][2]=" bars          ";
   s1[1][2]=" deg K         ";
   s1[2][2]=" m^3/kmole     ";
   s1[3][2]=" KJ/kmole      ";
   s1[4][2]=" KJ/kmole      ";
   s1[5][2]=" KJ/kmole K    ";
   s1[6][2]=" KJ/kmole      ";
   s1[7][2]=" KJ/kmole      ";
   s1[8][2]=" KJ/kmole      ";
   s1[9][2]=" KJ/kmole K    ";
   s1[10][2]=" KJ/kmole K   ";
   s1[11][2]="               ";
   s1[12][2]=" m/s           ";
   s1[13][2]=" Ns/m^2        ";
   s1[14][2]=" W/m K         ";
   s1[15][2]=" kg/kmol       ";
   s1[16][2]="               ";
   s1[17][2]="               ";
   s1[18][2]="               ";
   }
   else if(!SI && mole)
   {
   s1[0][2]=" lbf/in^2, psia  ";
   s1[1][2]=" deg R           ";
   s1[2][2]=" ft^3/lbmole     ";
   s1[3][2]=" BTU/lbmole      ";
   s1[4][2]=" BTU/lbmole      ";
   s1[5][2]=" BTU/lbmole K    ";
   s1[6][2]=" BTU/lbmole      ";
   s1[7][2]=" BTU/lbmole      ";
   s1[8][2]=" BTU/lbmole      ";
   s1[9][2]=" BTU/lbmole K    ";
   s1[10][2]=" BTU/lbmole K   ";
   s1[11][2]="                ";
   s1[12][2]=" ft/s           ";
   s1[13][2]=" lbm/(ft.s)     ";
   s1[14][2]=" BTU/(hr ft R)  ";
   s1[15][2]=" lbm/lbmole     ";
   s1[16][2]="                ";
   s1[17][2]="                ";
   s1[18][2]="                ";
   }
   else if(!SI && !mole)
   {
   s1[0][2]=" lbf/in^2, psia  ";
   s1[1][2]=" deg R           ";
   s1[2][2]=" ft^3/lbm     ";
   s1[3][2]=" BTU/lbm      ";
   s1[4][2]=" BTU/lbm      ";
   s1[5][2]=" BTU/lbm K    ";
   s1[6][2]=" BTU/lbm      ";
   s1[7][2]=" BTU/lbm      ";
   s1[8][2]=" BTU/lbm      ";
   s1[9][2]=" BTU/lbm K    ";
   s1[10][2]=" BTU/lbm K   ";
   s1[11][2]="                ";
   s1[12][2]=" ft/s           ";
   s1[13][2]=" lbm/(ft.s)     ";
   s1[14][2]=" BTU/(hr ft R)  ";
   s1[15][2]=" lbm/lbmole     ";
   s1[16][2]="                ";
   s1[17][2]="                ";
   s1[18][2]="                ";
   }
   double pp[]=property(v1,v2);
   for(int i=0;i<19;i++)
   {s1[i][1]=""+pp[i];}
return s1;
}

/*
*Implemented methods from fluidInterface class
*/ 	
 	public static absfluid getInstance(String fluidName) throws java.io.IOException {	 	
	 	return new Gas1(fluidName);	
 	}
	public double h_TP(double T,double P) throws GException {
			return h(T);            
	}
	public double h_TV(double T,double V) throws GException {
			return h(T);            
	}
	public double T(double h,double P) throws GException {
			return T(h);            
	}
	public double x(double T,double V)throws GException{
			return 2;  
	}
	public double k(double T,double P) throws GException {
			return k(T);
	}
	public double vis(double T,double P) throws GException {
			return vis(T);       
	}
	public double ro(double T,double P)throws GException{					                             
            return 1/v(T,P);			
	}
	public double cp(double T,double P)throws GException{					                             
            return Cp(T);			
	}
	public double sigma(double T,double P) throws GException {
			return Double.NaN;
	}
	//sıfırlamak istediğim fonksiyon
double fp(double Pri,double ti,double pi)
{ double a[]=property(ti,pi);
	return a[17]-Pri;
}

public double Ti(double Pri,double Pi)
{
double a=100.;
double b=3000.0;

// brent metodu ile kök değerini bulur
double test;
double p=0;
double es,ea;
double f1,f2,f3,fp;
int maxit=500,iter=0;
double tol=1.0e-8;
es=0.0000001;
double x1=a;f1=fp(Pri,x1,Pi);
double x2=b;f2=fp(Pri,x2,Pi);
double x3=(x1+x2)/2.0;f3=fp(Pri,x3,Pi);
if(f1==0) return x1;
else if(f2==0) return x2;
else if(f3==0) return x3; 
//if(f1*f2>0) System.out.println("verilen bölgede kök yok");
p=-(f2*f3*x1*(f2-f3)+f3*f1*x2*(f3-f1)+f1*f2*x3*(f1-f2))/((f1-f2)*(f2-f3)*(f3-f1));
fp=fp(Pri,p,Pi);  
ea=Math.abs(x3-p);
while((ea>es)&&(iter<maxit))
{	if(Math.abs(f3)<tol) return x3; 
    if((p<x1) && (p>x2)) 
    {p=(x1+x2)/2.0;    
     if(p>x3) {x1=x3;f1=f3;x3=p;f3=fp;}
     else if(p<x3) {x2=x3;f2=f3;x3=p;f3=fp;}
    }
    else
    {        
    if(p>x3) {x1=x3;f1=f3;x3=p;f3=fp;}
    else if(p<x3) {x2=x3;f2=f3;x3=p;f3=fp;}
    p=-(f2*f3*x1*(f2-f3)+f3*f1*x2*(f3-f1)+f1*f2*x3*(f1-f2))/((f1-f2)*(f2-f3)*(f3-f1));
    fp=fp(Pri,p,Pi); 
    ea=Math.abs(x3-p);
    }
    iter++;
} 
if(iter>=maxit) JOptionPane.showMessageDialog(null,"Uyarı maximum iterasyon sayısı aşıldı \n"+
   " çözüm geçerli olmıyabilir","MAKSİMUM ITERASYON SAYISI UYARISI",JOptionPane.WARNING_MESSAGE); 
return p;
}
//=================================================================
public String readGasNames()
{ return readgas("null",1.0);}
public String[] readAllGasNames(){
	int l=0;
	StringTokenizer	st=new StringTokenizer(readGasNames());
	String[] gasNames=new String[st.countTokens()];
	while(st.hasMoreTokens()){
		gasNames[l]=new String(st.nextToken());	
		l++;
	}
	return gasNames;
}
public  String readgas(String gName,double Nnew)
{
String s="";
Vector<GasData> gi=new Vector<GasData>();
GasData gasd=new GasData("air" ,
4,
"O", 0.419642,
"N", 1.561756,
"Ar", 0.009301,
"C", 3.0E-4,
"H", 0.0,
6, 8636.3959339, 49.101193319821995, 0.0, 198.80314681500002,
29.047161313839506, -0.43371335025080826, -2.343236717719044E-6, 1.817719223910556, 298.0, 300.0,
27.20780497541416, 2.8276984595694374, 0.6595318864407734, 3.7301589438982408, 300.0, 700.0,
23.15288750543204, 13.572045181332097, 1.771257639934518, -3.861913952255692, 700.0, 1200.0,
32.626365620764005, 2.9056540369496924, -21.594928841101986, -0.42617207915981165, 1200.0, 2000.0,
34.281872995945605, 1.6639456440528924, -30.46167281154786, -0.16319414801840157, 2000.0, 3000.0,
40.90907696143238, -0.8892861768207257, -166.78890105869, 0.11814251617430788, 3000.0, 6000.0,
9,
-2.38415012075939,0.82111025123783,-9.49337890000368E-4,1.33257503776619E-6,-1.54716975155988E-9,1.17980137733499E-12,-5.18811998522266E-16,1.18604274010578E-19,-1.08956009555919E-23,
0.0,
9,
3.33810572833366,0.0482978175578467,1.90767765775771E-4,-4.21971965063242E-7,3.47090522198294E-10,-9.22604545578376E-14,-2.27692987436094E-17,1.61710748897197E-20,-2.2021447261239E-24,
0.0 );
gi.addElement(gasd);

gasd=new GasData("hava",
4,
"O", 0.419642,
"N", 1.561756,
"Ar", 0.009301,
"C", 3.0E-4,
"H", 0.0,
6, 8636.3959339, 49.101193319821995, 0.0, 198.80314681500002,
29.047161313839506, -0.43371335025080826, -2.343236717719044E-6, 1.817719223910556, 298.0, 300.0,
27.20780497541416, 2.8276984595694374, 0.6595318864407734, 3.7301589438982408, 300.0, 700.0,
23.15288750543204, 13.572045181332097, 1.771257639934518, -3.861913952255692, 700.0, 1200.0,
32.626365620764005, 2.9056540369496924, -21.594928841101986, -0.42617207915981165, 1200.0, 2000.0,
34.281872995945605, 1.6639456440528924, -30.46167281154786, -0.16319414801840157, 2000.0, 3000.0,
40.90907696143238, -0.8892861768207257, -166.78890105869, 0.11814251617430788, 3000.0, 6000.0,
9,
-2.38415012075939,0.82111025123783,-9.49337890000368E-4,1.33257503776619E-6,-1.54716975155988E-9,1.17980137733499E-12,-5.18811998522266E-16,1.18604274010578E-19,-1.08956009555919E-23,
0.0,
9,
3.33810572833366,0.0482978175578467,1.90767765775771E-4,-4.21971965063242E-7,3.47090522198294E-10,-9.22604545578376E-14,-2.27692987436094E-17,1.61710748897197E-20,-2.2021447261239E-24,
0.0 );
gi.addElement(gasd);

gasd=new GasData("c9h20" ,
2,
"C", 9.0,
"H", 20.0,
"H", 0.0,
"H", 0.0,
"H", 0.0,
1, 0.0, 506.79672960035003, -228920.532441993, -851.8779343,
-107.02456734534267, 203.3938534194742, 88.14664171553596, -96.37363943645977, 298.0, 1500.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,0.0,
5,
-1.7167959014585676E-4,0.1341173896651071,1.4111770592362127E-4,-1.5523703146991946E-7,6.040662038191801E-11,
0.0,0.0,0.0,0.0,0.0,
5,
-8.655726801976016E-9,0.005104868738271762,1.196160384893119E-4,-3.2012539563641695E-8,1.2776708076950305E-11,
0.0,0.0,0.0,0.0,0.0 );
gi.addElement(gasd);

gasd=new GasData("c9h20g" ,
2,
"C", 9.0,
"H", 20.0,
"H", 0.0,
"H", 0.0,
"H", 0.0,
1, 0.0, 506.79672960035003, -228920.532441993, -851.8779343,
49.4491137, 669.9264271000001, -14.9800126, -231.94736670000003, 298.0, 1500.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,0.0,
5,
-1.7167959014585676E-4,0.1341173896651071,1.4111770592362127E-4,-1.5523703146991946E-7,6.040662038191801E-11,
0.0,0.0,0.0,0.0,0.0,
5,
-8.655726801976016E-9,0.005104868738271762,1.196160384893119E-4,-3.2012539563641695E-8,1.2776708076950305E-11,
0.0,0.0,0.0,0.0,0.0 );
gi.addElement(gasd);

gasd=new GasData("c10h22" ,
2,
"C", 10.0,
"H", 22.0,
"H", 0.0,
"H", 0.0,
"H", 0.0,
1, 0.0, 546.09087224398, -249644.188213672, -949.1616365,
-117.78766671618585, 223.80472752761688, 97.23612442549552, -106.08575592953291, 298.0, 1500.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,0.0,
5,
-1.2415898784823298E-4,0.13014958895269046,1.387983209686361E-4,-1.5655305177653817E-7,6.064888438115443E-11,
0.0,0.0,0.0,0.0,0.0,
5,
2.3842200835844096E-7,0.0013572938266861456,1.1047390756502296E-4,-1.2635045806494438E-8,3.684013065717888E-12,
0.0,0.0,0.0,0.0,0.0 );
gi.addElement(gasd);

gasd=new GasData("c11h24" ,
2,
"C", 11.0,
"H", 24.0,
"H", 0.0,
"H", 0.0,
"H", 0.0,
1, 0.0, 585.3798769693701, -270636.820034063, -1046.48008,
-132.2334265775063, 251.4947012108614, 108.1163494781612, -119.08118948543044, 298.0, 1500.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,0.0,
5,
-5.307324698833327E-6,0.1053162909488492,2.117879433338743E-4,-2.654551951863926E-7,1.1754388242877134E-10,
0.0,0.0,0.0,0.0,0.0,
5,
-3.9143118346629535E-7,0.0013023111241636798,1.0089268097246418E-4,-7.025041989100478E-10,-6.848503062461858E-13,
0.0,0.0,0.0,0.0,0.0 );
gi.addElement(gasd);

gasd=new GasData("c12h26" ,
2,
"C", 12.0,
"H", 26.0,
"H", 0.0,
"H", 0.0,
"H", 0.0,
1, 0.0, 637.88468045925, -291111.87010401295, -1144.097921,
-143.87011626489692, 273.54058176516355, 117.69203303871448, -129.49478998482647, 298.0, 1500.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,0.0,
5,
-2.537586357753696E-5,0.08323074161023669,2.7202121104785704E-4,-3.4521495865039165E-7,1.534843577840139E-10,
0.0,0.0,0.0,0.0,0.0,
5,
4.587016810830846E-8,-0.007398911760901683,1.2842245825517296E-4,-3.345195290216374E-8,5.437482159240711E-12,
0.0,0.0,0.0,0.0,0.0 );
gi.addElement(gasd);

gasd=new GasData("c13h28" ,
2,
"C", 13.0,
"H", 28.0,
"H", 0.0,
"H", 0.0,
"H", 0.0,
1, 0.0, 663.83654161937, -311731.730883972, -1241.415158,
-147.04798990988903, 279.7075996155644, 122.60419807754981, -132.98362082989038, 298.0, 1500.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,0.0,
5,
-1.5806620776714908E-5,0.07844201352963864,2.4811448477723985E-4,-3.0880775256890425E-7,1.381246539856922E-10,
0.0,0.0,0.0,0.0,0.0,
5,
2.412136268503673E-8,-0.007395079295747564,1.2217837625705386E-4,-2.988450404153853E-8,4.513719152742933E-12,
0.0,0.0,0.0,0.0,0.0 );
gi.addElement(gasd);

gasd=new GasData("c14h30" ,
2,
"C", 14.0,
"H", 30.0,
"H", 0.0,
"H", 0.0,
"H", 0.0,
1, 0.0, 703.2275892025301, -332297.39052013005, -1436.2173,
-161.68897918318777, 307.61301273498935, 133.73904834072442, -146.09039920941305, 298.0, 1500.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,0.0,
5,
-9.003127189544102E-6,0.07467382870311212,2.3469734708037038E-4,-2.8342254229651864E-7,1.246358630078916E-10,
0.0,0.0,0.0,0.0,0.0,
5,
-2.3469779897311582E-8,0.001944896412169328,9.12733549895961E-5,-9.158508784690156E-9,2.0938492740596015E-12,
0.0,0.0,0.0,0.0,0.0 );
gi.addElement(gasd);

gasd=new GasData("c15h32" ,
2,
"C", 15.0,
"H", 32.0,
"H", 0.0,
"H", 0.0,
"H", 0.0,
1, 0.0, 738.328, -353010.46537050005, -1436.2173,
-168.4149250349249, 320.1635340289247, 140.73052575181347, -152.21195486596596, 298.0, 1500.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,0.0,
5,
-8.877835721676774E-6,0.06762049771236889,2.462267657818984E-4,-2.945573520131417E-7,1.2782136270990938E-10,
0.0,0.0,0.0,0.0,0.0,
5,
3.0828593011733574E-8,-0.0072043263744490105,1.1045531313058632E-4,-2.3045664720305892E-8,2.783087669217389E-12,
0.0,0.0,0.0,0.0,0.0 );
gi.addElement(gasd);

gasd=new GasData("c16h34" ,
2,
"C", 16.0,
"H", 34.0,
"H", 0.0,
"H", 0.0,
"H", 0.0,
1, 0.0, 777.138, -373610.0, -1533.668679,
-179.15121917467042, 340.4724275512689, 149.83679756708537, -161.85853951201057, 298.0, 1500.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,0.0,
5,
-9.785964763864285E-6,0.054910602227437266,2.8689284291072426E-4,-3.479843229837326E-7,1.5011205062111818E-10,
0.0,0.0,0.0,0.0,0.0,
5,
3.323337338656529E-8,-0.007385429136775201,1.0505347543343646E-4,-1.8764269832383107E-8,1.6429192651912531E-12,
0.0,0.0,0.0,0.0,0.0 );
gi.addElement(gasd);

gasd=new GasData("c17h36" ,
2,
"C", 17.0,
"H", 36.0,
"H", 0.0,
"H", 0.0,
"H", 0.0,
1, 0.0, 816.115, -394211.0, -1630.952381,
-189.93850520227898, 360.8704744072048, 158.96271883542983, -171.534560090663, 298.0, 1500.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,0.0,
5,
1.860989584656636E-9,0.09140362363541499,1.0828361109815887E-4,-9.269567824432556E-8,3.62497638243392E-11,
0.0,0.0,0.0,0.0,0.0,
5,
-2.382654074040147E-9,-8.558101235394133E-4,7.244869168232526E-5,5.664579326436492E-9,-1.274266899409151E-12,
0.0,0.0,0.0,0.0,0.0 );
gi.addElement(gasd);

gasd=new GasData("c18h38" ,
2,
"C", 18.0,
"H", 38.0,
"H", 0.0,
"H", 0.0,
"H", 0.0,
1, 0.0, 854.924, -414852.0, -1728.370221,
-200.53439207215337, 380.95713597443296, 167.97147271845677, -181.099174807337, 298.0, 1500.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,0.0,
5,
5.862456298189045E-9,0.0823469014139846,1.2462206132113351E-4,-1.0614261825026006E-7,4.109460731774317E-11,
0.0,0.0,0.0,0.0,0.0,
5,
2.5100961309476588E-8,-0.003753002145458595,7.26909443287127E-5,7.450245899376373E-9,-4.587917072212131E-12,
0.0,0.0,0.0,0.0,0.0 );
gi.addElement(gasd);

gasd=new GasData("c19h40" ,
2,
"C", 19.0,
"H", 40.0,
"H", 0.0,
"H", 0.0,
"H", 0.0,
1, 0.0, 893.902, -435453.0, -1825.620389,
-210.56080226464033, 399.9401526645353, 176.66541391632833, -190.15785859418344, 298.0, 1500.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,0.0,
5,
-2.70880207153823E-9,0.08591406443156302,8.454637099930551E-5,-3.7732409197133165E-8,6.707195562838386E-12,
0.0,0.0,0.0,0.0,0.0,
5,
2.367205098607883E-8,-8.684554268256761E-4,6.361434943613631E-5,7.065014628881983E-9,-1.6539249590925061E-12,
0.0,0.0,0.0,0.0,0.0 );
gi.addElement(gasd);

gasd=new GasData("c20h42" ,
2,
"C", 20.0,
"H", 42.0,
"H", 0.0,
"H", 0.0,
"H", 0.0,
1, 0.0, 932.711, -456094.0, -1923.205902,
-221.71485776705995, 421.0643904827715, 185.97272309803503, -200.1692370361124, 298.0, 1500.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,0.0,
5,
2.027293888318127E-9,0.07673612097278237,1.0889165787375532E-4,-7.006877211779283E-8,2.2267453506086277E-11,
0.0,0.0,0.0,0.0,0.0,
5,
2.9608840712569418E-8,-6.626591712119989E-4,5.971525760628538E-5,7.704066565250578E-9,-1.903339688820189E-12,
0.0,0.0,0.0,0.0,0.0 );
gi.addElement(gasd);

gasd=new GasData("c11h16" ,
2,
"C", 11.0,
"H", 16.0,
"H", 0.0,
"H", 0.0,
"H", 0.0,
1, 0.0, 479.8, -33780.0, -626.4750168,
-101.87443721359665, 194.5584757839112, 83.86363136310875, -92.47793661224132, 298.0, 1500.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,0.0,
5,
-3.723628998955064E-4,0.1699363669990248,8.962193124051332E-5,-1.8212936103018107E-7,8.205944495576686E-11,
0.0,0.0,0.0,0.0,0.0,
5,
-3.714095884177482E-7,0.006011547089428859,1.2097896044771517E-4,-7.213983643263033E-8,1.9048980420794488E-11,
0.0,0.0,0.0,0.0,0.0 );
gi.addElement(gasd);

gasd=new GasData("c12h18" ,
2,
"C", 12.0,
"H", 18.0,
"H", 0.0,
"H", 0.0,
"H", 0.0,
1, 0.0, 518.3084820137, -55059.0, -417.70954,
-113.10638151593328, 215.64238453037586, 93.16665244905325, -102.35104108227932, 298.0, 1500.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,0.0,
5,
-1.2368441471011238E-6,0.17913390102057747,1.0115532589338727E-5,-6.17730557608831E-8,2.5545042481051744E-114,
0.0,0.0,0.0,0.0,0.0,
5,
4.6385104113255693E-7,-0.003456824235854583,1.3299412384704112E-4,-6.486914094251672E-8,5.721342574746926E-12,
0.0,0.0,0.0,0.0,0.0 );
gi.addElement(gasd);

gasd=new GasData("c13h20" ,
2,
"C", 13.0,
"H", 20.0,
"H", 0.0,
"H", 0.0,
"H", 0.0,
1, 0.0, 557.2483, -75700.96, -823.499497,
-124.73220629937317, 237.69233713070446, 102.72291778309005, -112.77894560617881, 298.0, 1500.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,0.0,
5,
-1.83855,2295509.9987,0.16632954944617495,3.5510802031568645E-5,-1.1732211572905438E-7,
0.0,0.0,0.0,0.0,0.0,
5,
-1.5646217654818884E-7,0.006244123944270541,1.0947162356345075E-4,-6.269256034446835E-8,1.586138488567356E-11,
0.0,0.0,0.0,0.0,0.0 );
gi.addElement(gasd);

gasd=new GasData("c14h22" ,
2,
"C", 14.0,
"H", 22.0,
"H", 0.0,
"H", 0.0,
"H", 0.0,
1, 0.0, 596.46580766178, -96301.0, -920.9434272,
-136.3861850281647, 259.7824332489235, 112.30103789153657, -123.21927641097706, 298.0, 1500.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,0.0,
5,
-1.379090102382463E-4,0.16242894003306674,2.4836668568894993E-5,-1.0407295462401545E-7,5.039042962531729E-11,
0.0,0.0,0.0,0.0,0.0,
5,
-5.287996351910351E-8,0.005930251558311284,1.0725024204560896E-4,-6.174347497514554E-8,1.5745451182098036E-11,
0.0,0.0,0.0,0.0,0.0 );
gi.addElement(gasd);

gasd=new GasData("c15h24" ,
2,
"C", 15.0,
"H", 24.0,
"H", 0.0,
"H", 0.0,
"H", 0.0,
1, 0.0, 636.5471700637, -116576.143451152, -1018.243897,
-146.04303664657388, 277.9382786768979, 121.0611356890927, -131.957813850854, 298.0, 1500.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,0.0,
5,
-1.1943272989611842E-4,0.1523719997119315,4.9743829136028594E-5,-1.212927015583655E-7,5.4502187931546994E-11,
0.0,0.0,0.0,0.0,0.0,
5,
-3.317063779206819E-8,0.005858146537320863,1.0518854551833101E-4,-6.02655131701213E-8,1.529999858971014E-11,
0.0,0.0,0.0,0.0,0.0 );
gi.addElement(gasd);

gasd=new GasData("c16h26" ,
2,
"C", 16.0,
"H", 26.0,
"H", 0.0,
"H", 0.0,
"H", 0.0,
1, 0.0, 674.1259677089, -137605.25227209603, -1115.690879,
-159.59177663405035, 303.8243644515633, 131.36936448139474, -144.05479621496536, 298.0, 1500.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,0.0,
5,
-1.02313567968082E-4,0.14250986809344113,6.941877067379032E-5,-1.3738484788954758E-7,5.954032518144174E-11,
0.0,0.0,0.0,0.0,0.0,
5,
-3.5633065387230545E-8,0.00606489018900902,1.0148839174561886E-4,-5.7159591282385236E-8,1.4234882451382921E-11,
0.0,0.0,0.0,0.0,0.0 );
gi.addElement(gasd);

gasd=new GasData("c17h28" ,
2,
"C", 17.0,
"H", 28.0,
"H", 0.0,
"H", 0.0,
"H", 0.0,
1, 0.0, 713.2149620525299, -158184.84, -1213.134742,
-168.08222117449924, 319.54279274628567, 139.63052216841658, -151.6577736106907, 298.0, 1500.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,0.0,
5,
-7.504601106234077E-5,0.14482845529727228,4.584419555597741E-5,-1.1367520762976119E-7,5.123128632489878E-11,
0.0,0.0,0.0,0.0,0.0,
5,
-2.633790785466772E-8,0.005800148408525274,1.0051700960644894E-4,-5.71515351086016E-8,1.4395536090348058E-11,
0.0,0.0,0.0,0.0,0.0 );
gi.addElement(gasd);

gasd=new GasData("c18h30" ,
2,
"C", 18.0,
"H", 30.0,
"H", 0.0,
"H", 0.0,
"H", 0.0,
1, 0.0, 751.591, -178826.77, -1310.43833,
-182.32000093794747, 347.2922237515519, 150.05895936654395, -164.8907298378947, 298.0, 1500.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,0.0,
5,
-1.5315152346317973E-7,0.16058856997187831,-2.9596620805705243E-5,-1.1147830283886329E-8,7.0895192860287275E-12,
0.0,0.0,0.0,0.0,0.0,
5,
-1.3906354290327272E-8,0.005092640323709929,9.715711183844178E-5,-5.129457656544156E-8,1.2174753240469125E-11,
0.0,0.0,0.0,0.0,0.0 );
gi.addElement(gasd);

gasd=new GasData("c19h32" ,
2,
"C", 19.0,
"H", 32.0,
"H", 0.0,
"H", 0.0,
"H", 0.0,
1, 0.0, 790.98053064555, -199853.02275648498, -1579.59,
-194.35537225688876, 369.7884299144695, 159.95529294315696, -175.25912326850195, 298.0, 1500.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,0.0,
5,
-6.95171387121718E-9,0.15644693399008247,-2.3144793189544544E-5,-2.010226754500799E-8,1.1308973614336526E-11,
0.0,0.0,0.0,0.0,0.0,
5,
2.8641303551069086E-8,0.005088085446914192,8.627790778348299E-5,-2.5318675253571676E-8,-4.806046474014518E-12,
0.0,0.0,0.0,0.0,0.0 );
gi.addElement(gasd);

gasd=new GasData("c10h8" ,
2,
"C", 10.0,
"H", 8.0,
"H", 0.0,
"H", 0.0,
"H", 0.0,
1, 0.0, 333.326, 151100.0, -243.4607646,
-68.41110737166014, 130.91398911547844, 57.09368198926505, -62.421864574586436, 298.0, 1500.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,0.0,
5,
-2.57758514656814E-5,0.14550103251121982,2.1679718189648867E-4,-2.5084616397594295E-7,9.043802019204468E-11,
0.0,0.0,0.0,0.0,0.0,
5,
4.00485968530262E-5,-0.014340565607028566,1.631724662182199E-4,-9.390826428957132E-8,1.5793254149120795E-11,
0.0,0.0,0.0,0.0,0.0 );
gi.addElement(gasd);

gasd=new GasData("c11h10" ,
2,
"C", 11.0,
"H", 10.0,
"H", 0.0,
"H", 0.0,
"H", 0.0,
1, 0.0, 377.718865661466, 116950.420447574, -338.3635144,
-80.94104625088359, 154.39020537018783, 67.41254604675534, -73.45891020942402, 298.0, 1500.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,0.0,
5,
-6.867882156313954E-7,0.16644920641010685,6.459646735379465E-5,-1.02226914495962E-7,3.6310020033812184E-11,
0.0,0.0,0.0,0.0,0.0,
5,
1.1252457365884538E-7,-0.0024059310926531907,1.1567360926356685E-4,-6.053727539395704E-8,8.213003339044452E-12,
0.0,0.0,0.0,0.0,0.0 );
gi.addElement(gasd);

gasd=new GasData("c12h12" ,
2,
"C", 12.0,
"H", 12.0,
"H", 0.0,
"H", 0.0,
"H", 0.0,
1, 0.0, 418.418798, 96712.77, -434.0045942,
-88.01567405186167, 165.08759970872012, 75.37552639852512, -77.2256410050037, 298.0, 1500.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,0.0,
5,
-9.52155989786263E-5,0.15628268325122008,8.114118471214127E-5,-1.4711331646150363E-7,6.051462492706506E-11,
0.0,0.0,0.0,0.0,0.0,
5,
-2.5254297320032038E-8,0.006452688081481028,9.885440756107755E-5,-5.612413577285591E-8,1.4002260608926413E-11,
0.0,0.0,0.0,0.0,0.0 );
gi.addElement(gasd);

gasd=new GasData("ch4" ,
2,
"C", 1.0,
"H", 4.0,
"H", 0.0,
"H", 0.0,
"H", 0.0,
6, 0.0, 186.16, -74850.0, -80.73825503,
23.84714140943968, 96.66498566647063, 0.0010760736367160086, -215.40592838501598, 298.0, 300.0,
2.300251994764936, 97.75423750050999, 6.021005752958587, -28.84719920017566, 300.0, 1000.0,
49.752364582215684, 38.54169273776169, -89.71780375605466, -7.546493905523134, 1000.0, 2000.0,
96.45232342772108, 4.6178705358802254, -364.7273719234068, -0.5317973909932162, 2000.0, 3000.0,
92.42819373172176, 5.6940312306073775, -248.92054538463236, -0.5870147755123044, 3000.0, 4000.0,
108.21428710327861, -0.0881832237672698, -605.5388089673631, 0.010638807119818735, 4000.0, 6000.0,
4,
-3.17434898401931,0.455271007474814,-2.73399388607163E-4,8.95312831114117E-8,
0.0,0.0,0.0,0.0,0.0,0.0,
4,
3.99296677905716,0.0551053536678452,1.72999763063988E-4,-6.5721336346547E-8,
0.0,0.0,0.0,0.0,0.0,0.0 );
gi.addElement(gasd);

gasd=new GasData("c2h6" ,
2,
"C", 2.0,
"H", 6.0,
"H", 0.0,
"H", 0.0,
"H", 0.0,
3, 0.0, 229.49, -84680.02, -173.7919463,
22.002336582655335, 124.52953801429311, -4.726635412204065, -17.110023473191674, 298.15, 600.0,
16.143686814429774, 150.49656382241375, -6.299762090450083, -43.24904796006514, 600.0, 1000.0,
87.99255245197601, 63.075262037904665, -144.8371021522287, -13.537079988569763, 1000.0, 1473.15,
0.0,0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,0.0,
3,
-4.92854013060778,0.379062761757185,-1.48297458234132E-4,
0.0,0.0,0.0,0.0,0.0,0.0,0.0,
3,
-17.3496859087276,0.117899036192513,3.9952428877858E-5,
0.0,0.0,0.0,0.0,0.0,0.0,0.0 );
gi.addElement(gasd);

gasd=new GasData("c2h4" ,
2,
"C", 2.0,
"H", 4.0,
"H", 0.0,
"H", 0.0,
"H", 0.0,
5, 0.0, 219.3663332, -52501.218, -53.15436242,
17.985730793550967, 142.23766305177696, 8.987002670072351E-4, -232.0116334161493, 298.0, 300.0,
24.555540306804648, 97.29294282865281, -9.051236869580203, -26.95424976869147, 300.0, 1500.0,
110.81694964244996, 10.341969591475246, -297.01150871056245, -1.4028194538090075, 1500.0, 3000.0,
135.04661138195388, -0.9486618529333133, -654.4070902696243, 0.11090982357109765, 3000.0, 4500.0,
132.2346718818374, 0.16189390780752472, -610.3866488699273, -0.00815821790259584, 4500.0, 6000.0,
0.0,0.0,0.0,0.0,0.0,0.0,
2,
0.986661744712989,0.0305279456193354,
0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,
2,
-32.963796,0.20984,
0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 );
gi.addElement(gasd);

gasd=new GasData("c3h8" ,
2,
"C", 3.0,
"H", 8.0,
"H", 0.0,
"H", 0.0,
"H", 0.0,
3, 0.0, 269.91, -103850.0, -269.6644295,
-3.0254338120284023, 291.88950251744706, 0.41963902408606885, -119.49421908824642, 298.15, 600.0,
38.22001198694175, 200.09504665335731, -26.459448251559852, -60.24847920688976, 600.0, 1000.0,
153.50146875641366, 52.633258329935245, -239.92959900787577, -6.760646801711672, 1000.0, 1500.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,0.0,
4,
-4.54983515889651,0.322705572359441,-1.38531691344012E-4,6.96141593360938E-8,
0.0,0.0,0.0,0.0,0.0,0.0,
5,
-8.26855601111686,0.0560941709538814,1.09756835344882E-4,-1.07698643777443E-8,3.47288739672947E-13,
0.0,0.0,0.0,0.0,0.0 );
gi.addElement(gasd);

gasd=new GasData("c4h10" ,
2,
"C", 4.0,
"H", 10.0,
"H", 0.0,
"H", 0.0,
"H", 0.0,
4, 0.0, 310.03, -126150.0, -370.6040268,
16.926834962061566, 309.6505202231249, -2.3441507141265943, -95.46266206707682, 298.15, 600.0,
8.101471771130502, 336.39195699268583, -4.842312961811863E-6, -117.49720004937018, 600.0, 1000.0,
-179.39967265028955, -121.91062945335402, 2631.841172185087, 271.7148211732176, 1000.0, 1200.0,
-1077.732729509404, 1414.8288658645686, 3250.3294199305783, -418.64631076547516, 1200.0, 1500.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,0.0,
4,
-10.9225757759111,0.336549374980963,-1.71216151492883E-4,8.72630571179885E-8,
0.0,0.0,0.0,0.0,0.0,0.0,
4,
-7.94288037583272,0.0428886800695864,1.3719405594499E-4,-4.37062937071256E-8,
0.0,0.0,0.0,0.0,0.0,0.0 );
gi.addElement(gasd);

gasd=new GasData("c5h12" ,
2,
"C", 5.0,
"H", 12.0,
"H", 0.0,
"H", 0.0,
"H", 0.0,
2, 0.0, 348.4, -146440.0, -463.8926174,
-2.951115055168111, 467.05123596996555, 1.1862120913975343, -195.8806702080899, 298.15, 600.0,
65.19177977433426, 314.59245970349843, -42.838973267475964, -96.99767594686811, 600.0, 1000.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,0.0,
2,
1.98741044938128,0.0191403140603517,
0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,
2,
-17.9919177472529,0.10888021978022,
0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 );
gi.addElement(gasd);

gasd=new GasData("ch3oh" ,
3,
"C", 1.0,
"H", 4.0,
"O", 1.0,
"H", 0.0,
"H", 0.0,
1, 0.0, 236.18430709999998, -202004.0883, -130.033557,
4.312301000000001, 128.8080122, 4.538382800000001, -44.1320047, 298.0, 1000.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,0.0,
2,
-0.516332857142899,0.0340285714285715,
0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,
2,
-6.08281828193834,0.0747356828193833,
0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 );
gi.addElement(gasd);

gasd=new GasData("c8h18" ,
2,
"C", 8.0,
"H", 18.0,
"H", 0.0,
"H", 0.0,
"H", 0.0,
1, 0.0, 463.67, -208450.0, -860.8053691,
43.5039997, 596.9648062000001, -12.840608900000001, -204.5830955, 298.0, 1100.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0,

0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,
0,

0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 );
gi.addElement(gasd);

gasd=new GasData("so2" ,
2,
"S", 1.0,
"O", 2.0,
"H", 0.0,
"H", 0.0,
"H", 0.0,
2, 0.0, 248.212, -296842.0, 0.0,
26.246422300000003, 52.1830288, 0.23026850000000001, -23.6171747, 298.0, 600.0,
56.1980741, 1.5323322, -28.8296162, -0.10048080000000001, 600.0, 6000.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0,

0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,
0,

0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 );
gi.addElement(gasd);

gasd=new GasData("so3" ,
2,
"S", 1.0,
"O", 3.0,
"H", 0.0,
"H", 0.0,
"H", 0.0,
1, 0.0, 256.812178, -396019.953, -83.5955,
57.1819486, 27.364271199999997, -12.9201562, -7.7328349, 298.0, 2000.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0,

0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,
0,

0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 );
gi.addElement(gasd);

gasd=new GasData("c2h2" ,
2,
"C", 2.0,
"H", 2.0,
"H", 0.0,
"H", 0.0,
"H", 0.0,
1, 0.0, 200.9783468, 226877.27300000002, 58.9261745,
43.6547209, 31.6723855, -7.5109398, -6.3135436, 298.0, 2000.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0,

0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,
0,

0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 );
gi.addElement(gasd);

gasd=new GasData("c6h6" ,
2,
"C", 6.0,
"H", 6.0,
"H", 0.0,
"H", 0.0,
"H", 0.0,
1, 0.0, 269.2, 82930.0, -156.8120805,
5.9911677, 333.99399250000005, -10.3327756, -128.6321708, 298.0, 1100.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,0.0,
3,
1.23300588215128,0.0184121136424449,9.93835432861289E-6,
0.0,0.0,0.0,0.0,0.0,0.0,0.0,
3,
-3.40024196295058,0.0147238437229216,1.10679653679683E-4,
0.0,0.0,0.0,0.0,0.0,0.0,0.0 );
gi.addElement(gasd);

gasd=new GasData("h2o2" ,
2,
"H", 2.0,
"O", 2.0,
"H", 0.0,
"H", 0.0,
"H", 0.0,
1, 0.0, 233.031722, -136193.351, -103.0536913,
52.33375, -11.890228, -11.890228, 0.0, 298.0, 1500.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0,

0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,
0,

0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 );
gi.addElement(gasd);

gasd=new GasData("nh3" ,
2,
"N", 1.0,
"H", 3.0,
"H", 0.0,
"H", 0.0,
"H", 0.0,
2, 0.0, 192.33, -46190.0, -99.32885906,
25.8110055, 31.6430786, 0.3516828, 0.0, 298.0, 800.0,
52.756606700000006, 10.466750000000001, -63.7676277, 0.0, 800.0, 2000.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0,

0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,
0,

0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 );
gi.addElement(gasd);

gasd=new GasData("h2" ,
1,
"H", 2.0,
"H", 0.0,
"H", 0.0,
"H", 0.0,
"H", 0.0,
6, 0.0, 130.57, 0.0, 0.0,
22.266965129253645, 31.951887458581393, 0.138096933410555, -34.94969557085485, 298.0, 300.0,
37.217721012966734, -22.510027965424406, -2.9131384243581167, 17.533522154618762, 300.0, 700.0,
27.6229673039468, 0.8358949677415266, 2.144501594690325, 1.5560870432305676, 700.0, 1200.0,
20.703280535014777, 9.277964611458763, 16.019246676914577, -1.3471520939736048, 1200.0, 2000.0,
29.239536132733917, 3.602312369478657, -42.651978542137094, -0.276586706461502, 2000.0, 3000.0,
25.061605994931867, 4.499440053495609, 102.48583263721228, -0.2861196166401747, 3000.0, 6000.0,
9,
2.20821838055369,0.506980026395776,-0.00138019011996754,3.33648388844839E-6,-4.91516640898999E-9,4.34474801305987E-12,-2.25000324346063E-15,6.28027257836331E-19,-7.28348681229068E-23,
0.0,
9,
-20.9811386435507,1.0769371545451,-0.00238706110811684,5.26186077214256E-6,-7.66004998358933E-9,6.96248035011081E-12,-3.72842468870476E-15,1.0718592543995E-18,-1.27416628164376E-22,
0.0 );
gi.addElement(gasd);

gasd=new GasData("h2o" ,
2,
"H", 2.0,
"O", 1.0,
"H", 0.0,
"H", 0.0,
"H", 0.0,
6, 9904.0, 188.72, -241820.0, -103.0536913,
34.13143511704553, -7.0035033209390845, -0.027548020767061775, 17.459534596118807, 298.0, 300.0,
28.664306465395104, 11.863219601465666, 1.1892711067395365, 0.5969778202741736, 300.0, 700.0,
23.89346355609052, 19.349597448834118, 6.704659495901513, -2.6468226968632718, 700.0, 1200.0,
21.94853672531246, 22.737841775634376, 6.373289422311678, -4.110662446647995, 1200.0, 2000.0,
44.26560128674481, 6.404075719040555, -121.43575579367644, -0.7095548394302542, 2000.0, 3000.0,
61.42038357458597, -0.5816664952955567, -443.3074145876631, 0.10664078644541224, 3000.0, 6000.0,
5,
0.620039710415251,0.236733467320225,3.34578658760477E-4,-2.81676758094982E-7,8.57370742701562E-11,
0.0,0.0,0.0,0.0,0.0,
5,
9.79578978098437,-0.00571790459190282,1.36242662282321E-4,-4.13488699966119E-8,-1.06237803964109E-12,
0.0,0.0,0.0,0.0,0.0 );
gi.addElement(gasd);

gasd=new GasData("h2ol" ,
2,
"H", 2.0,
"O", 1.0,
"H", 0.0,
"H", 0.0,
"H", 0.0,
6, 9904.0, 69.95, -285830.0, -163.2550336,
34.13143511704553, -7.0035033209390845, -0.027548020767061775, 17.459534596118807, 298.0, 300.0,
28.664306465395104, 11.863219601465666, 1.1892711067395365, 0.5969778202741736, 300.0, 700.0,
23.89346355609052, 19.349597448834118, 6.704659495901513, -2.6468226968632718, 700.0, 1200.0,
21.94853672531246, 22.737841775634376, 6.373289422311678, -4.110662446647995, 1200.0, 2000.0,
44.26560128674481, 6.404075719040555, -121.43575579367644, -0.7095548394302542, 2000.0, 3000.0,
61.42038357458597, -0.5816664952955567, -443.3074145876631, 0.10664078644541224, 3000.0, 6000.0,
5,
0.620039710415251,0.236733467320225,3.34578658760477E-4,-2.81676758094982E-7,8.57370742701562E-11,
0.0,0.0,0.0,0.0,0.0,
5,
9.79578978098437,-0.00571790459190282,1.36242662282321E-4,-4.13488699966119E-8,-1.06237803964109E-12,
0.0,0.0,0.0,0.0,0.0 );
gi.addElement(gasd);

gasd=new GasData("Ar" ,
1,
"Ar", 1.0,
"H", 0.0,
"H", 0.0,
"H", 0.0,
"H", 0.0,
1, 0.0, 154.94558030000002, 0.0, 0.0,
20.8037123, 0.0, 0.0, 0.0, 298.15, 6000.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,0.0,
7,
-3.18196130354671,0.912979667301308,-4.9458253595015E-4,-1.50390325050073E-8,2.9107533786233E-10,-1.67317587422196E-13,2.72871020857401E-17,
0.0,0.0,0.0,
7,
-0.181860764533386,0.073693472353814,-6.22084816348664E-5,6.17941855036906E-8,-4.39139416841999E-11,1.70463594300145E-14,-2.63924366820744E-18,
0.0,0.0,0.0 );
gi.addElement(gasd);

gasd=new GasData("co" ,
2,
"C", 1.0,
"O", 1.0,
"H", 0.0,
"H", 0.0,
"H", 0.0,
6, 8669.0, 197.54, -110530.0, 89.32885906,
29.259448813549206, -1.1662168912579691, -0.004306368063103435, 2.7405369268954614, 298.0, 300.0,
27.4390897625333, 1.5715870925308888, 0.7346552020221107, 5.102782550565665, 300.0, 700.0,
22.450737997889412, 14.866162443709094, 2.088061501897829, -4.343831480287922, 700.0, 1200.0,
32.62104133621912, 3.4041728336958887, -22.604004371380118, -0.6630557723426365, 1200.0, 2000.0,
44.29375605294364, -4.286743234603387, -104.88005502784839, 0.7785883782235277, 2000.0, 3000.0,
36.72695948182189, 0.3709866383588868, -44.86426355189633, -0.013436493040165714, 3000.0, 6000.0,
3,
32.9320014410821,0.540487664029441,-1.94231975194201E-4,
0.0,0.0,0.0,0.0,0.0,0.0,0.0,
4,
-0.703939786390105,0.0979611147468075,-4.74566421217897E-5,1.63643716760022E-8,
0.0,0.0,0.0,0.0,0.0,0.0 );
gi.addElement(gasd);

gasd=new GasData("co2" ,
2,
"C", 1.0,
"O", 2.0,
"H", 0.0,
"H", 0.0,
"H", 0.0,
6, 9364.0, 213.69, -393520.0, 2.885090604,
19.319604344923114, 64.43735681908882, 0.38452737720579017, -19.796555010271167, 298.0, 300.0,
26.44448999527023, 48.06916946497013, -1.6291415144843837, -20.859177945563555, 300.0, 700.0,
39.518536968308354, 22.607146499420345, -12.62264055145059, -6.5576741742800015, 700.0, 1200.0,
54.67599173062469, 5.314072590134873, -48.5547589411788, -0.9372312306373235, 1200.0, 2000.0,
59.64108561865302, 1.6316606569315262, -76.20164730180075, -0.1640352770142824, 2000.0, 3000.0,
66.28538842057536, -1.039215516375803, -211.05695123976804, 0.15257805703059443, 3000.0, 6000.0,
9,
-1.76629106344796,0.565126210250838,-1.88532276569092E-4,-7.70475550981309E-8,2.30189515042086E-10,-1.99872708748364E-13,8.45339311929731E-17,-1.70181078916019E-20,1.30133178850726E-24,
0.0,
9,
-0.486468351507844,0.0201726161151732,2.43958455766759E-4,-6.07514098761129E-7,8.97577413703562E-10,-7.57474509212984E-13,3.4138182475368E-16,-7.42167095733084E-20,6.10863784559108E-24,
0.0 );
gi.addElement(gasd);

gasd=new GasData("h" ,
1,
"H", 1.0,
"H", 0.0,
"H", 0.0,
"H", 0.0,
"H", 0.0,
1, 0.0, 114.61, 218800.0, 49.36241611,
20.8037123, 0.0, 0.0, 0.0, 298.15, 6000.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0,

0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,
0,

0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 );
gi.addElement(gasd);

gasd=new GasData("ho" ,
2,
"H", 1.0,
"O", 1.0,
"H", 0.0,
"H", 0.0,
"H", 0.0,
1, 0.0, 183.754263, 38978.177, 0.0,
26.711146, 3.935498, 1.8421480000000001, 0.0, 298.15, 3000.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0,

0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,
0,

0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 );
gi.addElement(gasd);

gasd=new GasData("oh" ,
2,
"O", 1.0,
"H", 1.0,
"H", 0.0,
"H", 0.0,
"H", 0.0,
1, 0.0, 183.754263, 38978.177, 0.0,
26.711146, 3.935498, 1.8421480000000001, 0.0, 298.15, 3000.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0,

0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,
0,

0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 );
gi.addElement(gasd);

gasd=new GasData("n" ,
1,
"N", 1.0,
"H", 0.0,
"H", 0.0,
"H", 0.0,
"H", 0.0,
2, 0.0, 153.2963386892, 472984.0591, 57.61744966,
20.8037123, 0.0, 0.0, 0.0, 298.15, 1700.0,
22.3360445, -1.4318514000000002, -0.5484577, 0.3307493, 1700.0, 6000.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0,

0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,
0,

0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 );
gi.addElement(gasd);

gasd=new GasData("n2" ,
1,
"N", 2.0,
"H", 0.0,
"H", 0.0,
"H", 0.0,
"H", 0.0,
6, 8669.0, 191.5, 0.0, 0.0,
18.21226773498585, 119.16102544204345, 0.0, -297.8537415387046, 298.0, 300.0,
28.749827798325306, -2.164596581405358, 0.36569392936310996, 7.085501036160734, 300.0, 700.0,
21.431754624803116, 15.188081580515014, 3.930743831749243, -4.315685538517268, 700.0, 1200.0,
31.840819864338826, 3.649597868605378, -22.586117210390437, -0.6524953833138761, 1200.0, 2000.0,
35.88194033919692, 0.7860540980421791, -47.2029753875936, -0.0763076304976458, 2000.0, 3000.0,
38.290012922577084, -0.19975992244748172, -91.99156968096221, 0.039516744124456556, 3000.0, 6000.0,
9,
-7.01963701225759,0.858327699273598,-0.00112340740644438,1.4031330184525E-6,-1.2471558843147E-9,7.37784281928769E-13,-2.73840279340566E-16,5.73795735055663E-20,-5.15666835382267E-24,
0.0,
9,
2.74464219691575,0.032560938823238,5.61143449732873E-4,-2.65097510427981E-6,6.32147739080813E-9,-8.64030177972148E-12,6.79049143882341E-15,-2.84261270585969E-18,4.90168626035256E-22,
0.0 );
gi.addElement(gasd);

gasd=new GasData("n2o" ,
2,
"N", 2.0,
"O", 1.0,
"H", 0.0,
"H", 0.0,
"H", 0.0,
2, 0.0, 219.969218, 81600.0, 0.0,
6.7447737, 100.7361887, 6.196316, -55.3858543, 298.15, 800.0,
56.3487953, 2.4575929, -33.9708838, -0.1800281, 800.0, 3000.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0,

0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,
0,

0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 );
gi.addElement(gasd);

gasd=new GasData("no" ,
2,
"N", 1.0,
"O", 1.0,
"H", 0.0,
"H", 0.0,
"H", 0.0,
1, 0.0, 210.80034500000002, 90348.986, -158.8195842,
27.6992072, 7.4439526, -0.1507212, -1.4318514000000002, 298.15, 3000.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0,

0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,
0,

0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 );
gi.addElement(gasd);

gasd=new GasData("no2" ,
2,
"N", 1.0,
"O", 2.0,
"H", 0.0,
"H", 0.0,
"H", 0.0,
2, 0.0, 239.9432, 33116.797, -60.79812207,
35.7083643, 22.922182499999998, -4.7058508, -6.3386638, 298.15, 1500.0,
53.790721600000005, 1.2769435, 0.0, 0.0, 1500.0, 3000.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0,

0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,
0,

0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 );
gi.addElement(gasd);

gasd=new GasData("o2" ,
1,
"O", 2.0,
"H", 0.0,
"H", 0.0,
"H", 0.0,
"H", 0.0,
6, 8682.0, 205.0385, 0.0, 0.0,
29.826953447500415, -6.786695796246881, -0.028205030147057306, 18.05841593668088, 298.0, 300.0,
21.75979118471078, 21.520794180311807, 1.7829441836371815, -8.573338025374113, 300.0, 700.0,
29.69086840210612, 8.133575690837514, -6.234215657017148, -2.33080124680095, 700.0, 1200.0,
36.013584201277915, 0.334364484905839, -18.645288786405324, 0.38101250561228533, 1200.0, 2000.0,
28.882268523174716, 5.0331749053731425, 31.234230886156734, -0.4972652645251848, 2000.0, 3000.0,
51.55840036336393, -3.4918574206902933, -452.39144079852906, 0.41573184049886386, 3000.0, 6000.0,
9,
-15.2819046089901,1.05385147522418,-0.00162349107208735,2.77516859994582E-6,-3.58520001415248E-9,3.10021571553767E-12,-1.65985810687716E-15,4.93745323575399E-19,-6.2166840764683E-23,
0.0,
9,
-2.03305576203544,0.123232902604801,-1.32156973422579E-4,1.04767440853954E-7,1.6553201252612E-10,-5.17627201737314E-13,5.42871301595178E-16,-2.63481619947786E-19,4.95504765460086E-23,
0.0 );
gi.addElement(gasd);

gasd=new GasData("c13h14" ,
2,
"C", 13.0,
"H", 14.0,
"H", 0.0,
"H", 0.0,
"H", 0.0,
1, 0.0, 458.652985, 74734.95, -530.0544936,
-88.31529408682678, 165.66543787164608, 77.8608819804265, -78.97214484658718, 298.0, 1500.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,0.0,
5,
-9.52155989786263E-5,0.15628268325122008,8.114118471214127E-5,-1.4711331646150363E-7,6.051462492706506E-11,
0.0,0.0,0.0,0.0,0.0,
5,
-2.5254297320032038E-8,0.006452688081481028,9.885440756107755E-5,-5.612413577285591E-8,1.4002260608926413E-11,
0.0,0.0,0.0,0.0,0.0 );
gi.addElement(gasd);

gasd=new GasData("c14h16" ,
2,
"C", 14.0,
"H", 16.0,
"H", 0.0,
"H", 0.0,
"H", 0.0,
1, 0.0, 497.61521653438, 53091.261437494, -627.6287726,
-116.9412128116458, 222.35898099153994, 97.04327375888522, -105.48554284478324, 298.0, 1500.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,0.0,
5,
-9.52155989786263E-5,0.15628268325122008,8.114118471214127E-5,-1.4711331646150363E-7,6.051462492706506E-11,
0.0,0.0,0.0,0.0,0.0,
5,
-2.5254297320032038E-8,0.006452688081481028,9.885440756107755E-5,-5.612413577285591E-8,1.4002260608926413E-11,
0.0,0.0,0.0,0.0,0.0 );
gi.addElement(gasd);

gasd=new GasData("e-" ,
0,
"H", 0.0,
"H", 0.0,
"H", 0.0,
"H", 0.0,
"H", 0.0,
1, 0.0, 0.0, 0.0, 0.0,
0.0, 0.0, 0.0, 0.0, 298.0, 9000.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,0.0,0.0,
1,
0.0,
0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,
1,
0.0,
0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 );
gi.addElement(gasd);

int i;
String aName;
double aN;
ierror=1;
N=Nnew;
Enumeration n1=gi.elements();
while(n1.hasMoreElements())
{
   gasd=(GasData)n1.nextElement();
   s+=gasd.gasName+" ";
   if (gasd.gasName.equals(gName)) {ierror=0;break;}
}
gasName=gasd.gasName;
natom=gasd.natom;
atomList=new Atom[natom];
M=0;
for(i=0;i<natom;i++)
 {
 aName=gasd.aName[i];
 aN=gasd.aN[i];
 atomList[i]=new Atom(aName,aN);
 M+=atomList[i].mass;
 }
n_equation=gasd.n_equation;
h0=gasd.h0;
s0=gasd.s0;
hf=gasd.hf;
sf=gasd.sf;
gf=hf-298.0*sf;
xa=new double[n_equation];
xb=new double[n_equation];
xc=new double[n_equation];
xd=new double[n_equation];
tl=new double[n_equation];
th=new double[n_equation];
for(i=0;i<n_equation;i++)
  {
    xa[i]=gasd.xa[i];
    xb[i]=gasd.xb[i];
    xc[i]=gasd.xc[i];
    xd[i]=gasd.xd[i];
    tl[i]=gasd.tl[i];
    th[i]=gasd.th[i];
  }
n_vis=gasd.n_vis;
xvis=new double[n_vis];
for(i=0;i<n_vis;i++)
  {
  xvis[i]=gasd.xvis[i];
  }
n_k=gasd.n_k;
xk=new double[n_k];
for(i=0;i<n_k;i++)
  {
  xk[i]=gasd.xk[i];
  }
return s;
}
//===================================================================
}

//=================================================================

