code: private double variogram( double c0, double a, double sill, double rx, double ry, double rz ) {
          if (isNovalue(rz)) {
              rz = 0;
          }
          double value = 0;
          double h2 = Math.sqrt(rx * rx + rz * rz + ry * ry);
          if (pSemivariogramType == 0) {
              value = c0 + sill * (1 - Math.exp(-(h2 * h2) / (a * a)));
          }
          if (pSemivariogramType == 1) {
              // primotest semivariogram
              value = c0 + sill * (1 - Math.exp(-(h2) / (a)));
          }
          return value;
      }
docs: The gaussian variogram
  
  @param c0
  nugget.
  @param a
  range.
  @param sill
  sill.
  @param rx
  x distance.
  @param ry
  y distance.
  @param rz
  z distance.
  @return the variogram value