!*********************************************************************************************************************************** ! ! G R E G 2 J D ! ! ! Program: GREG2JD ! ! Programmer: Dr. David G. Simpson ! Prince George's Community College ! Largo, Maryland 20774 ! ! Date: November 20, 2001 ! ! Language: Fortran-90 ! ! Version: 1.00b (October 25, 2004) ! ! Description: This program converts a date on the Gregorian or Julian calendars to a Julian day. ! !*********************************************************************************************************************************** !*********************************************************************************************************************************** ! Main program !*********************************************************************************************************************************** PROGRAM GREG2JD IMPLICIT NONE INTEGER :: A, B ! intermediate variables DOUBLE PRECISION :: D ! day of month (+ fraction) DOUBLE PRECISION :: JD ! Julian day INTEGER :: M ! month (1-12) INTEGER :: Y ! year WRITE (UNIT=*, FMT='(A)', ADVANCE='NO') ' Enter month (1-12): ' ! prompt for month READ (UNIT=*, FMT=*) M WRITE (UNIT=*, FMT='(A)', ADVANCE='NO') ' Enter day: ' ! prompt for day of month READ (UNIT=*, FMT=*) D WRITE (UNIT=*, FMT='(A)', ADVANCE='NO') ' Enter year: ' ! prompt for year READ (UNIT=*, FMT=*) Y IF (M .LE. 2) THEN ! begin algorithm Y = Y - 1 M = M + 12 END IF A = Y/100 B = 2 - A + A/4 JD = INT(365.25D0*(Y+4716)) + INT(30.6001D0*(M+1)) + D + B - 1524.5D0 ! end of algorithm WRITE (UNIT=*, FMT='(/,A, F15.6)') ' Julian day = ', JD ! print result END PROGRAM GREG2JD