cdm/src/main/java/ucar/unidata/geoloc/projection/Utm_To_Gdc_Converter.java
private void init(double a, double f, int zone, boolean hemisphere_north) {
    A = a;
    F = 1.0 / f; // F is flattening
    this.zone = zone;
    this.hemisphere_north = hemisphere_north;

    //  Create the ERM constants.
    Eps2 = (F) * (2.0 - F);
    Eps25 = .25 * (Eps2);
    EF = F / (2.0 - F);
    Con2 = 2 / (1.0 - Eps2);
    Con6 = .166666666666667;
    Con24 = 4 * .0416666666666667 / (1 - Eps2);
    Con120 = .00833333333333333;
    Con720 = 4 * .00138888888888888 / (1 - Eps2);
    double polx1a = 1.0 - Eps2 / 4.0 - 3.0 / 64.0 * Math.pow(Eps2, 2)
        - 5.0 / 256.0 * Math.pow(Eps2, 3)
        - 175.0 / 16384.0 * Math.pow(Eps2, 4);

    conap = A * polx1a;

    double polx2a = 3.0 / 2.0 * EF - 27.0 / 32.0 * Math.pow(EF, 3);

    double polx4a = 21.0 / 16.0 * Math.pow(EF, 2)
        - 55.0 / 32.0 * Math.pow(EF, 4);

    double polx6a = 151.0 / 96.0 * Math.pow(EF, 3);

    double polx8a = 1097.0 / 512.0 * Math.pow(EF, 4);

    polx2b = polx2a * 2.0 + polx4a * 4.0 + polx6a * 6.0 + polx8a * 8.0;

    polx3b = polx4a * -8.0 - polx6a * 32.0 - 80.0 * polx8a;
    polx4b = polx6a * 32.0 + 192.0 * polx8a;
    polx5b = -128.0 * polx8a;
  }
private void init(double a, double f, int zone, boolean hemisphere_north) {
    A = a;
    F = 1.0 / f; // F is flattening
    this.zone = zone;
    this.hemisphere_north = hemisphere_north;

    //  Create the ERM constants.
    Eps2 = (F) * (2.0 - F);
    Eps25 = .25 * (Eps2);
    EF = F / (2.0 - F);
    Con2 = 2 / (1.0 - Eps2);
    Con6 = .166666666666667;
    Con24 = 4 * .0416666666666667 / (1 - Eps2);
    Con120 = .00833333333333333;
    Con720 = 4 * .00138888888888888 / (1 - Eps2);
    double polx1a = 1.0 - Eps2 / 4.0 - 3.0 / 64.0 * Math.pow(Eps2, 2)
        - 5.0 / 256.0 * Math.pow(Eps2, 3)
        - 175.0 / 16384.0 * Math.pow(Eps2, 4);

    conap = A * polx1a;

    double polx2a = 3.0 / 2.0 * EF - 27.0 / 32.0 * Math.pow(EF, 3);

    double polx4a = 21.0 / 16.0 * Math.pow(EF, 2)
        - 55.0 / 32.0 * Math.pow(EF, 4);

    double polx6a = 151.0 / 96.0 * Math.pow(EF, 3);

    double polx8a = 1097.0 / 512.0 * Math.pow(EF, 4);

    polx2b = polx2a * 2.0 + polx4a * 4.0 + polx6a * 6.0 + polx8a * 8.0;

    polx3b = polx4a * -8.0 - polx6a * 32.0 - 80.0 * polx8a;
    polx4b = polx6a * 32.0 + 192.0 * polx8a;
    polx5b = -128.0 * polx8a;
  }
initialize

@param a                major axis
@param f                inverse flattening
@param zone             UTM zone
@param hemisphere_north is in northern hemisphere