function growthfactor0 {dimensionless}
              (d1, {diameter of small neutral particle : nm}
               d2, {diameter of large charged or neutral particle : nm}
             gcm3, {small particle density : g cm-3, typically 1.5-2}
                q, {large particle charge : e}
               aa, {small particle polarizability : angstrom^3}
                T, {air temperature : K}
               mb  {air pressure : mb} : real) : real;
                   {Uses external function "electrical_mobility_air"
    Presumption: condensing substance is expected not to evaporate
    Growthfactor1 = (Growth rate) / (Plain Knudsen growth rate), see
    "Tools for air ion and aerosol calculations" and (Tammet, Kulmala, 2005)
    Applicable for growth units of d < 0.7 nm, e.g. sulphuric acid

    This function is an impementation of the method of effective polarizability.
    Polarizability aa in angstrom^3 is often estimated as equal to the number
    of atoms in a cluster or as equal to r^3 for large particles. Polarizability
    of a molecule of sulphuric acid is extra high: about 149 angstrom^3.

    Alternative methods are used in functions growthfactor1 and growthfactor2}

   const {that could be edited or moved to the list of parameters}
      h = 0.115; {extra distance : nm}
      d0 = 2.5; {critical diameter of quantum rebound : nm}
      T0 = 300; {extra temperature of quantum rebound: K}
   var x, y, d, b, m1, m2, g, p, a, fe, pp, qq, k, u : real;
   begin
      x := 8.674e-23 * T; {2*pi*k*T : SI}
      d := 1e-9 * (d1 + d2 + 2 * h); {2 * delta : SI}
      m1 := 5.236e-25 * gcm3 * d1 * d1 * d1; {SI}
      m2 := 5.236e-25 * gcm3 * d2 * d2 * d2; {SI}
      b := 6.2414e14 *                {B1 + B2 : SI, 0.62414 = 1/1.6022}
           (electrical_mobility_air (mb, T, gcm3, 0, d1) +
            electrical_mobility_air (mb, T, gcm3, 0, d2));
      g := 2 * (b / d) * sqrt (x * m1 * m2 / (m1 + m2)); {gamma = Kc / Kk}
      y := (273 / (T + T0)) * exp (3 * ln (d0 / d2)); {quantum effect}
      p := sqr (y) * exp (y) / sqr (exp (y) - 1); {sticking probability}
      if (q = 0) or (aa = 0) then fe := 1 else begin
         a := aa * 1e-30; {polarizability : m^3}
         y := 119700 * T * sqr (sqr (d / 2)) / (a * sqr (q));
           {y = T* = kT/Upol, 119700 = 8 * pi * eps0 * k / e^2}
         if y > 1 then fe := 1 + 0.106 / y + 0.263 / exp ((4/3) * ln (y))
         else begin pp := sqrt (y); qq := sqrt (pp);
           fe := 1.4691 / pp - 0.341 / qq + 0.182 * y * qq + 0.059;
         end;
      end;
      k {m3/s} := fe * x * b * d /
         (1 + g - 0.299 * g / (exp (1.1 * ln (g)) + 0.64) + g * (1 - p) / p);
      u := sqrt (3.516e-23 * T / m1);
      growthfactor0 := 1.273e18 * k / (d2 * d2 * u);
   end;