diff options
Diffstat (limited to 'math/slalib/calyd.f')
-rw-r--r-- | math/slalib/calyd.f | 83 |
1 files changed, 83 insertions, 0 deletions
diff --git a/math/slalib/calyd.f b/math/slalib/calyd.f new file mode 100644 index 00000000..0f65cb98 --- /dev/null +++ b/math/slalib/calyd.f @@ -0,0 +1,83 @@ + SUBROUTINE slCAYD (IY, IM, ID, NY, ND, J) +*+ +* - - - - - - +* C A Y D +* - - - - - - +* +* Gregorian calendar date to year and day in year (in a Julian +* calendar aligned to the 20th/21st century Gregorian calendar). +* +* (Includes century default feature: use slCLYD for years +* before 100AD.) +* +* Given: +* IY,IM,ID int year, month, day in Gregorian calendar +* (year may optionally omit the century) +* Returned: +* NY int year (re-aligned Julian calendar) +* ND int day in year (1 = January 1st) +* J int status: +* 0 = OK +* 1 = bad year (before -4711) +* 2 = bad month +* 3 = bad day (but conversion performed) +* +* Notes: +* +* 1 This routine exists to support the low-precision routines +* slERTH, slMOON and slECOR. +* +* 2 Between 1900 March 1 and 2100 February 28 it returns answers +* which are consistent with the ordinary Gregorian calendar. +* Outside this range there will be a discrepancy which increases +* by one day for every non-leap century year. +* +* 3 Years in the range 50-99 are interpreted as 1950-1999, and +* years in the range 00-49 are interpreted as 2000-2049. +* +* Called: slCLYD +* +* P.T.Wallace Starlink 23 November 1994 +* +* Copyright (C) 1995 Rutherford Appleton Laboratory +* +* License: +* This program is free software; you can redistribute it and/or modify +* it under the terms of the GNU General Public License as published by +* the Free Software Foundation; either version 2 of the License, or +* (at your option) any later version. +* +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License +* along with this program (see SLA_CONDITIONS); if not, write to the +* Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, +* Boston, MA 02110-1301 USA +* +* Copyright (C) 1995 Association of Universities for Research in Astronomy Inc. +*- + + IMPLICIT NONE + + INTEGER IY,IM,ID,NY,ND,J + + INTEGER I + + + +* Default century if appropriate + IF (IY.GE.0.AND.IY.LE.49) THEN + I=IY+2000 + ELSE IF (IY.GE.50.AND.IY.LE.99) THEN + I=IY+1900 + ELSE + I=IY + END IF + +* Perform the conversion + CALL slCLYD(I,IM,ID,NY,ND,J) + + END |