| jul2gr | 
| 
        Table of contents 
       Procedure
     JUL2GR (Julian to Gregorian Calendar)
     SUBROUTINE JUL2GR (  YEAR, MONTH, DAY, DOY )
Abstract
     Convert Year Month and Day on the Julian Calendar
     to the Gregorian Calendar
Required_Reading
     None.
Keywords
     TIME
Declarations
     IMPLICIT NONE
     INTEGER               YEAR
     INTEGER               MONTH
     INTEGER               DAY
     INTEGER               DOY
Brief_I/O
     VARIABLE  I/O  DESCRIPTION
     --------  ---  --------------------------------------------------
     YEAR      I-O  Year  of Julian Calendar/Gregorian Calendar
     MONTH     I-O  Month of Julian Calendar/Gregorian Calendar
     DAY       I-O  Day of Month in Julian Calendar/Gregorian Calendar
     DOY        O   Day of Year in Gregorian Calendar
Detailed_Input
     YEAR     is an integer representing the year of an epoch, E, in
              the Julian proleptic calendar. Note that the year 0
              and negative values are required to represent
              years in the pre-Christian era (B.C.) A year, Y B.C.,
              should be represented as -(Y-1).  For example the year
              435 B.C. should be input as -434.
     MONTH    is an integer representing the month of some epoch, E,
              in the Julian proleptic calendar. Months
              outside the usual range from 1 to 12 are converted
              to the standard range using modular arithmetic and
              the input year is adjusted appropriately.
     DAY      is the day of the month of some epoch, E, in the Julian
              proleptic calendar.
              Note to input an epoch as the day of a year, set MONTH
              to 1 and DAY to the day of the year.
Detailed_Output
     YEAR     is an integer representing the year of the epoch, E,
              above in the Gregorian calendar. Note that the year
              0 (zero) and negative values are used to represent
              years in the pre-Christian era (B.C.) A year, Y B.C.,
              is be represented as -(Y-1).  For example the year
              435 B.C. will be returned as -434.
     MONTH    is an integer representing the month of the epoch, E,
              above in the Gregorian Calendar calendar.
     DAY      is the day of the month of the epoch, E, above in the
              Gregorian Calendar
     DOY      is the day of the year of the epoch, E, above in the
              Gregorian Calendar.
Parameters
     None.
Exceptions
     None.
Files
     None.
Particulars
     This is a mid-level utility routine to assist in the assignment
     and presentation of ancient epochs.
     The SPICE software deals primarily with epochs represented on
     in the Gregorian Calendar. However, the Gregorian calendar
     was not adopted until October 15, 1582. As a result, epochs
     prior to that time are usually represented in the Julian
     proleptic calendar.
     Formally, both calendars can be extended indefinitely forward
     and backward in time due the algorithmic nature of the
     determination of calendar representation.
     When converting "parsed" calendar epochs in the SPICE system,
     you need to first convert to the Gregorian Calendar. From that
     point the SPICE toolkit can easily convert the epoch to Julian
     date or seconds past the J2000 epoch.
     This routine allows you to take a numeric representation of
     an epoch represented in the Julian proleptic calendar and
     convert that to an epoch in the Gregorian calendar.
     To convert from Gregorian Calendar to Julian proleptic
     calendar, use the entry point GR2JUL.
Examples
     Suppose you need to find the epoch (in seconds past the
     J2000) of some ancient epoch that occurred at
     3:00 on March 4 of the year 121 B.C. And that this epoch
     is based on the Julian proleptic calendar. We first need
     to convert the Julian Calendar date to the Gregorian Calendar.
     Here's the declarations we'll need
        INTEGER               YEAR
        INTEGER               MONTH
        INTEGER               DAY
        INTEGER               DOY
        DOUBLE PRECISION      TVEC ( 6 )
        DOUBLE PRECISION      TDB
     You first need to convert the calendar date of this epoch
     integers. (We don't need to worry about the hours for a moment).
        YEAR  = -120
        MONTH =  3
        DAY   =  4
     Convert this Year, Month and Day to the Gregorian Calendar.
        CALL JUL2GR ( YEAR, MONTH, DAY, DOY )
     Now construct a time vector for use in the routine TTRANS.
     Note now we use the hour component of the epoch (the fourth
     component of the time vector TVEC).
        TVEC(1) = DBLE( YEAR )
        TVEC(2) = DBLE( MONTH )
        TVEC(3) = DBLE( DAY )
        TVEC(4) = 3.0D0
        TVEC(5) = 0.0D0
        TVEC(6) = 0.0D0
     Now the routine TTRANS can convert the time vector from
     the input YMD format to barycentric dynamical time.
        CALL TTRANS ( 'YDM', 'TDB', TVEC )
        TDB = TVEC(1)
Restrictions
     None.
Literature_References
     None.
Author_and_Institution
     N.J. Bachman       (JPL)
     J. Diaz del Rio    (ODC Space)
     W.L. Taber         (JPL)
Version
    SPICELIB Version 1.2.1, 02-OCT-2021 (JDR)
        Edited the header to comply with NAIF standard.
    SPICELIB Version 1.2.0, 26-AUG-2005 (NJB)
        Updated to remove non-standard use of duplicate arguments
        in RMAINI calls.
    SPICELIB Version 1.1.1, 23-SEP-1999 (WLT)
        Removed the unused variable DPMON.
    SPICELIB Version 1.1.0, 23-FEB-1998 (WLT)
        The routine was upgraded so that it will handle without
        error months that are outside the range from 1 to 12.
    SPICELIB Version 1.0.0, 13-MAR-1996 (WLT)
       | 
    
Fri Dec 31 18:36:29 2021