jul2gr |
Table of contents
ProcedureJUL2GR (Julian to Gregorian Calendar) SUBROUTINE JUL2GR ( YEAR, MONTH, DAY, DOY ) AbstractConvert Year Month and Day on the Julian Calendar to the Gregorian Calendar Required_ReadingNone. KeywordsTIME DeclarationsIMPLICIT NONE INTEGER YEAR INTEGER MONTH INTEGER DAY INTEGER DOY Brief_I/OVARIABLE 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_InputYEAR 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_OutputYEAR 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. ParametersNone. ExceptionsNone. FilesNone. ParticularsThis 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. ExamplesSuppose 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) RestrictionsNone. Literature_ReferencesNone. Author_and_InstitutionN.J. Bachman (JPL) J. Diaz del Rio (ODC Space) W.L. Taber (JPL) VersionSPICELIB 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