cdm/src/main/java/ucar/nc2/dataset/conv/Cosmic1Convention.java
public double togreenw(double rectt, double utco, double gmst) {

    double pi = Math.acos(-1.00);
    //
    // For each occultation ID, its TU and GMST are the same.  However, every
    // occultation event takes place at gmst+uts, uts is progressively increasing
    // with every occultation event.
    double utc = (utco + rectt) * 1.0027379093;
    gmst = gmst + utc;  //in seconds, without eoe correction.
    //  gmst may be a positive number or may be a negative number.
    while (gmst < 0.0) {
      gmst = gmst + 86400.00;
    }


    while (gmst > 86400.00) {
      gmst = gmst - 86400.00;
    }

    // gmst = the Greenwich mean sidereal time.
    // This gmst is without the corrections from the equation of equinoxes.  For
    // GPS/MET applications, the corrections from equation of equinoxes is not
    // necessary because of the accurary needed.
    return gmst * 2.0 * pi / 86400.0;  //!*** This is the THETA in radian.
  }
public double togreenw(double rectt, double utco, double gmst) {

    double pi = Math.acos(-1.00);
    //
    // For each occultation ID, its TU and GMST are the same.  However, every
    // occultation event takes place at gmst+uts, uts is progressively increasing
    // with every occultation event.
    double utc = (utco + rectt) * 1.0027379093;
    gmst = gmst + utc;  //in seconds, without eoe correction.
    //  gmst may be a positive number or may be a negative number.
    while (gmst < 0.0) {
      gmst = gmst + 86400.00;
    }


    while (gmst > 86400.00) {
      gmst = gmst - 86400.00;
    }

    // gmst = the Greenwich mean sidereal time.
    // This gmst is without the corrections from the equation of equinoxes.  For
    // GPS/MET applications, the corrections from equation of equinoxes is not
    // necessary because of the accurary needed.
    return gmst * 2.0 * pi / 86400.0;  //!*** This is the THETA in radian.
  }
public double togreenw ( double rectt , double utco , double gmst ) { double pi = Math . acos ( - 1.00 ) ; //
 // For each occultation ID, its TU and GMST are the same.  However, every
 // occultation event takes place at gmst+uts, uts is progressively increasing
 // with every occultation event.
 double utc = ( utco + rectt ) * 1.0027379093 ; gmst = gmst + utc ; //in seconds, without eoe correction.
 //  gmst may be a positive number or may be a negative number.
 while ( gmst < 0.0 ) { gmst = gmst + 86400.00 ; } while ( gmst > 86400.00 ) { gmst = gmst - 86400.00 ; } // gmst = the Greenwich mean sidereal time.
 // This gmst is without the corrections from the equation of equinoxes.  For
 // GPS/MET applications, the corrections from equation of equinoxes is not
 // necessary because of the accurary needed.
 return gmst * 2.0 * pi / 86400.0 ; //!*** This is the THETA in radian.
 }
This subroutine is to transform the locations and velocities of the GPS and
LEO satellites from the celestial inertial reference frame to the Earth
centered Greenwich reference frame.
The dummy arguments iyear, month and iday are the calender year, month and
day of the occultation event.  The dummy arguments ihour, minute and sec
are the UTC time.
Reference: Astronomical Alamanus, 1993
<p/>
Modified subroutine from Dasheng's code.

@param rectt _more_
@param utco  _more_
@param gmst  _more_
@return _more_
This subroutine is to transform the locations and velocities of the GPS and LEO satellites from the celestial inertial reference frame to the Earth centered Greenwich reference frame . The dummy arguments iyear month and iday are the calender year month and day of the occultation event . The dummy arguments ihour minute and sec are the UTC time . Reference : Astronomical Alamanus 1993 <p / > Modified subroutine from Dasheng s code .