function ion_aerosolsink {s-1}
           (Z {ion mobility : cm2 V-1 s-1},
            p {polarity of ions +1 or -1},
   n_particle {cm-3, number concentration of background aerosol particles},
   d_particle {nm, mean diameter of background aerosol particles},
   q_particle {e, algebraic mean charge number of background aerosol particles},
            T {air temperature : K} : real) : real;
   var pi2D, dq, c, s : real;
   begin
      pi2D := 5.414e-8 * T * Z; {2*pi*D : SI}
      dq := 1.671e4 / T;        {Coulomb length : nm}
      c := (d_particle + 9) / (d_particle + 23);
      s := pi2D * ((d_particle - 1.5) - c * p * q_particle * dq) * 1e-9 *
                    n_particle * 1e6;
      if s > 0 then ion_aerosolsink := s else ion_aerosolsink := 0;
   end;