
<!--
//average of three air methods added 4-16-2006
function EstimateDiffusion(data,CurrentDate)
{

  var f = document.Diffusion;
  var date = new Date();
  var Ent = new Array();
  var elements = new Array();
  var condition = new Array();
  var number = new Array();

  var pressureATM = 1;
  var temperatureC = 15;
  var diffusion01 = 0;
  var diffusion02 = 0;
  var diffusion03 = 0;
  var diffusion04 = 0;
  var diffusionW01 = 0; 
  var bpC = 0;

  var numberElements=16;

  for (i=0 ; i<numberElements ; i++)
  {
    elements[i] = "";
    condition[i] = "n/a";
    number[i] = 0;
  }  
  
  elements[0] = "carbon";
  elements[1] = "hydrogen";
  elements[2] = "oxygen";
  elements[3] = "nitrogen";
  elements[4] = "chlorine";
  elements[5] = "sulfur";
  elements[6] = "bromium";
  elements[7] = "fluorine";
  elements[8] = "iodine";
  //elements[9] gives the total number of aromatic and heterocyclic rings
  elements[9] = "rings"
  //individual number of rings
  elements[10] = "ring3";
  elements[11] = "ring4";
  elements[12] = "ring5";
  elements[13] = "ring6";
  elements[14] = "ring-naphthalene";
  elements[15] = "ring-anthracene";

  

  if (data=="noexample")
    {
      //get name of chemical
      ChemicalName = f.Chemical.options[f.Chemical.selectedIndex].value;

      temperatureC = Input(f.temperatureC.value);
      pressureATM = Input(f.pressureATM.value);
    
      if (CurrentDate==true) {ChemicalDate=ShortDate(date); f.date.value = ChemicalDate;}
      else {ChemicalDate = f.date.value;}
    }

  if (data=="example")
     {
       //create an example data set
  

       temperatureC = 15;
       pressureATM = 1;
   
       ChemicalName = "MTBE";
       ChemicalDate = ShortDate(date);

       f.Chemical.value = ChemicalName;
       f.date.value = ChemicalDate;
       f.pressureATM.value = pressureATM;
       f.temperatureC.value = temperatureC;
     }
 
  
 

  if (data=="clear") {clearAll(f); return;}

  //create the prototype object
  new GetDiffusionParameters("","");

  //create a new GetDiffusionParameters object
  gdp = new GetDiffusionParameters(ChemicalName);

  //determine if the chemical is in the Washington data set
  boolContinue = gdp.cPresent();

 
  
  //use FSG method with FSG estimates of molal volumes
  f.edcAir01.value = "Not Determined";
  f.edcAir02.value = "Not Determined";
  f.edcAir03.value = "Not Determined";
  f.edcAir04.value = "Not Determined";
  f.edcWater.value = "Not Determined";
  f.edcQACheck171.value = "Not Determined";
  f.edcQACheck172.value = "Not Determined";
  f.edcQACheck173.value = "Not Determined";
  f.edcQACheck174.value = "Not Determined";
  f.edcQACheck175.value = "Not Determined";
  f.edcQACheck176.value = "Not Determined";
  f.err171.value = "Not Determined";
  f.err172.value = "Not Determined";
  f.err173.value = "Not Determined";
  f.err174.value = "Not Determined";
  f.err175.value = "Not Determined";
  f.err176.value = "Not Determined";


  if (boolContinue)
  {
    //get the boiling point
    bpC = gdp.getBoilingPointC();

    for (j=0;j<numberElements;j++)
    {
      condition[j] = gdp.getConditions(elements[j]);
      number[j] = gdp.getNumber(elements[j]);
    }

    //number[9] must be the total number of rings
    number[9] = 0;
    for (j=10;j<numberElements;j++) {number[9] = number[9] + number[j];}

    //fsg method has data for C, H, O, N, Cl, S and rings (no data for Br, F, I which are numbers 6, 7 and 8)
    if (number[6]<=0 && number[7]<=0 && number[8]<=0) 
    {
      diffusion01 = DetermineDiffusionCoefficientAirFSG("fsg",temperatureC+273,pressureATM,elements,condition,number);
      f.edcAir01.value = Num2String(diffusion01,3,-7,7,-4,4);
    }

    //use FSG method with LaBas estimates of molal volume
    diffusion02 = DetermineDiffusionCoefficientAirFSG("fsgLaBas",temperatureC+273,pressureATM,elements,condition,number);
    f.edcAir02.value = Num2String(diffusion02,3,-7,7,-4,4);

    //use WL method (LaBas estimates of molal volume)
    diffusion03 = DetermineDiffusionCoefficientAirWL("wl",temperatureC+273,pressureATM,bpC+273,elements,condition,number);
    f.edcAir03.value = Num2String(diffusion03,3,-7,7,-4,4);

    if (diffusion01 > 0 && diffusion02 > 0 && diffusion03 > 0)
    {
      //average results for air
      diffusion04 = (diffusion01 + diffusion02 + diffusion03)/3;
      f.edcAir04.value = Num2String(diffusion04,3,-7,7,-4,4);
    }

    //diffusion of chemical into water with Hayduk and Laudie method
    diffusionW01 = DetermineDiffusionCoefficientWater(temperatureC,elements,condition,number);
    f.edcWater.value = Num2String(diffusionW01,3,-7,7,-4,4);
  }

  //display outputs for QA/QC check
  f.cN.value = ChemicalName;
  f.bpC.value = bpC;


  f.e0.value = elements[0];
  f.c0.value = condition[0];
  f.n0.value = number[0];

  f.e1.value = elements[1];
  f.c1.value = condition[1];
  f.n1.value = number[1];
  f.e2.value = elements[2];
  f.c2.value = condition[2];
  f.n2.value = number[2];

  /*
  f.e3.value = elements[3];
  f.c3.value = condition[3];
  f.n3.value = number[3];
  f.e4.value = elements[4];
  f.c4.value = condition[4];
  f.n4.value = number[4];
  f.e5.value = elements[5];
  f.c5.value = condition[5];
  f.n5.value = number[5];
  f.e6.value = elements[6];
  f.c6.value = condition[6];
  f.n6.value = number[6];
  f.e7.value = elements[7];
  f.c7.value = condition[7];
  f.n7.value = number[7];
  f.e8.value = elements[8];
  f.c8.value = condition[8];
  f.n8.value = number[8];
  */
  f.e9.value = elements[9];
  f.c9.value = condition[9];
  f.n9.value = number[9];

  //QA checks:  comparisons with examples from Tucker and Nelken

  //results from the 6 example problems in Tucker and Nelken
  var r171 = 0.0731;
  var r172 = 0.0815;
  var r173 = 0.0758;
  var r174 = 0.0857;
  var r175 = 0.95e-5;
  var r176 = 0.96e-5;
 

  //example 17-1, m-chlorotoluene (C7H7Cl) using the FSG method
  var exPressure = 1;    //ATM
  var exTemperature = 25;   // C
  var bpCTest;

  for (j=0;j<numberElements;j++)
  {
    condition[j] = "n/a";
    number[j] = 0;
  }

  //m-chlorotoluene props:
  number[0] = 7;  //carbon
  number[1] = 7;  //hydrogen
  number[4] = 1;  //chlorine
  number[9] = 1;  //rings

  diffusion01 = DetermineDiffusionCoefficientAirFSG("fsg",exTemperature+273,exPressure,elements,condition,number);
  f.edcQACheck171.value = Num2String(diffusion01,3,-7,7,-4,4);
  f.err171.value = Num2String(100*(diffusion01-r171)/r171,3,-7,7,-4,4);

  //WL method, example 17-3 
  number[13] = 1;  //rings - 6
  bpCTest = 435 - 273;
  diffusion03 = DetermineDiffusionCoefficientAirWL("wl",exTemperature+273,exPressure,bpCTest+273,elements,condition,number);
  f.edcQACheck173.value = Num2String(diffusion03,3,-7,7,-4,4);
  f.err173.value = Num2String(100*(diffusion03-r173)/r173,3,-7,7,-4,4);


  //example 17-2, isopropyl iodide ((CH3)2 CHI)  using the FSG-LaBas method
  exPressure = 1;    // ATM
  exTemperature = 25;  // C

  for (j=0;j<numberElements;j++)
  {
    condition[j] = "n/a";
    number[j] = 0;
  }

  number[0] = 3;
  number[1] = 7;
  number[8] = 1;

  diffusion01 = DetermineDiffusionCoefficientAirFSG("fsgLaBas",exTemperature+273,exPressure,elements,condition,number);
  f.edcQACheck172.value = Num2String(diffusion01,3,-7,7,-4,4);
  f.err172.value = Num2String(100*(diffusion01-r172)/r172,3,-7,7,-4,4);

  //WL method, example 17-4
  bpCTest = 362.45 - 273;
  diffusion03 = DetermineDiffusionCoefficientAirWL("wl",exTemperature+273,exPressure,bpCTest+273,elements,condition,number);
  f.edcQACheck174.value = Num2String(diffusion03,3,-7,7,-4,4);
  f.err174.value = Num2String(100*(diffusion03-r174)/r174,3,-7,7,-4,4);


  //Diffusion coefficients in water Hayduk and Laudie method
  //example 17-5, aniline  (C6H5NH2)
  exTemperature = 25;  // C

  for (j=0;j<numberElements;j++)
  {
    condition[j] = "n/a";
    number[j] = 0;
  }
  number[0] = 6;  //carbon
  number[1] = 7;  //hydrogen
  number[3] = 1;  //nitrogen
  condition[3] = "PrimaryAmine";
  number[13] = 1;  //ring --6 

  //diffusion of chemical into water with Hayduk and Laudie method
  diffusion04 = DetermineDiffusionCoefficientWater(exTemperature,elements,condition,number);
  f.edcQACheck175.value = Num2String(diffusion04,3,-7,7,-4,4);
  f.err175.value = Num2String(100*(diffusion04-r175)/r175,3,-7,7,-4,4);



  //example 17-6, ethyl acetate (CH3C02CH2CH3)
  exTemperature = 25;  // C

  for (j=0;j<numberElements;j++)
  {
    condition[j] = "n/a";
    number[j] = 0;
  }
  number[0] = 4 //carbon
  number[1] = 8 //hydrogen
  number[2] = 2  //oxygen
  condition[2] = "EthylEstersEthers";

  //diffusion of chemical into water with Hayduk and Laudie method
  diffusion04 = DetermineDiffusionCoefficientWater(exTemperature,elements,condition,number);
  f.edcQACheck176.value = Num2String(diffusion04,3,-7,7,-4,4);
  f.err176.value = Num2String(100*(diffusion04-r176)/r176,3,-7,7,-4,4);


 

}



//  -->
<!-- end estdiffusion_1.js -->