function derive(form) {

  prec = 5;

  epsilon = parseFloat(form.epsilon.value);
  sigma = parseFloat(form.sigma.value);
  mass = parseFloat(form.mass.value);
  charge = parseFloat(form.charge.value);

  jperkcal = 4184;
  mol = 6.02214e23;
  kB = 1.38066e-23;
  amu = 1.66054e-27;
  epsilon0 = 8.85419e-12;
  electron = 1.6021765e-19;
  nanometer = 0.000000001;

  // Conversion to kcal/mol
  epsilon = epsilon/jperkcal*1e3;

  tau = 1000*sigma*Math.sqrt((mass*amu)/(epsilon*jperkcal/mol));
  temperature = (epsilon*jperkcal/mol)/kB;
  massrho = (1/(sigma*sigma*sigma))*1e24*mass/mol;
  partrho = 1/(sigma*sigma*sigma);
  pressure = (epsilon*jperkcal/mol)/Math.pow((sigma*nanometer),3)/1e5;
  epsicharge = Math.pow((charge*electron),2)/((epsilon*jperkcal/mol)*(sigma*nanometer));

  form.tau.value = tau.toPrecision(prec);
  form.temperature.value = temperature.toPrecision(prec);
  form.massrho.value = massrho.toPrecision(prec);
  form.partrho.value = partrho.toPrecision(prec);
  form.pressure.value = pressure.toPrecision(prec);
  form.epsicharge.value = epsicharge.toPrecision(prec);
}
