public function init()
    {
        // Place parameters in static storage for common use

        if (! isset($this->mode)) {
            //chosen default mode
            $this->mode = 0;
        }

        $this->temp = $this->b / $this->a;
        $this->es = 1.0 - pow( $this->temp, 2 );

        $this->e = sqrt( $this->es );

        $this->e0 = Common::e0fn( $this->es );
        $this->e1 = Common::e1fn( $this->es );
        $this->e2 = Common::e2fn( $this->es );
        $this->e3 = Common::e3fn( $this->es );

        $this->sinphi = sin( $this->lat1 );
        $this->cosphi = cos( $this->lat1 );

        $this->ms1 = Common::msfnz( $this->e, $this->sinphi, $this->cosphi );
        $this->ml1 = Common::mlfn( $this->e0, $this->e1, $this->e2, $this->e3, $this->lat1 );

        // format B

        if ($this->mode != 0) {
            if (abs($this->lat1 + $this->lat2) < Common::EPSLN) {
                Proj4php::reportError( "eqdc:Init:EqualLatitudes" );
                //return(81);
            }

            $this->sinphi = sin($this->lat2);
            $this->cosphi = cos($this->lat2);

            $this->ms2 = Common::msfnz( $this->e, $this->sinphi, $this->cosphi );
            $this->ml2 = Common::mlfn( $this->e0, $this->e1, $this->e2, $this->e3, $this->lat2 );

            if (abs($this->lat1 - $this->lat2) >= Common::EPSLN) {
                $this->ns = ($this->ms1 - $this->ms2) / ($this->ml2 - $this->ml1);
            } else {
                $this->ns = $this->sinphi;
            }
        } else {
            $this->ns = $this->sinphi;
        }

        $this->g = $this->ml1 + $this->ms1 / $this->ns;
        $this->ml0 = Common::mlfn( $this->e0, $this->e1, $this->e2, $this->e3, $this->lat0 );
        $this->rh = $this->a * ($this->g - $this->ml0);
    }