SUBROUTINE DAYMON( JDATE, MNTH, MDAY ) INTEGER, INTENT(IN ) :: JDATE ! Julian date, format YYYYDDD = 1000*Year + Day INTEGER, INTENT( OUT) :: MNTH ! month (1...12) INTEGER, INTENT( OUT) :: MDAY ! day-of-month (1...28,29,30,31)
daymonc() is a C wrapper calling the Fortran DAYMON()
void daymonc( int jdate , int * month , int * mday )
This routine determines the month MNTH (1...12) and day-of-month MDAY (1...31) for the indicated Julian date JDATE (represented as an integer YYYYDDD).For Fortran-90 declarations and interface checking:
USE M3UTILIOSee also subroutines ISDSTIME(), JULIAN(), WKDAY(), MMDDYY(), and DT2STR() as well as EDSS/ Models-3 date-time manipulation programs gregdate and juldate.
For Fortran-90 declarations and interface checking:USE M3UTILIO
, or#include "iodecl3.h"
if called from C.JDATE must be expressed in terms of Models-3 date and time conventions .
JDATE = YEAR*1000 + DAY 1 ≤ DAY ≤ 365,366
JDATE should be after the Gregorian-calendar transition, which happened 1582 and after—in 1752 in the US and Great Britain.
... USE M3UTILIO ... INTEGER MDAY, MONTH ... CALL DAYMON( 1988033, MONTH, MDAY ) !! ==> MONTH and MDAY are now 2 (February) and 2. ...
... #include "iodecl3.h" ... int month, mday ... daymonc( 1988034, &month, &mday ) /* month and mday are now 2 (Feb), and 3 (=34 - 31) */ ...
Up: Date-Time Manipulation Routines
To: Models-3/EDSS I/O API: The Help Pages