C Library Functions  - modified_julian_to_date (3)

NAME

modified_julian_to_date(3f) - [M_time:MODIFIED_JULIAN] converts a MJD(Modified Julian Date) to a DAT date-time array. (LICENSE:MIT)

CONTENTS

Synopsis
Description
Options
Returns
Example
Author
License

SYNOPSIS

subroutine modified_julian_to_date(modified_julian,dat,ierr)

    real(kind=realtime),intent(in) :: modified_julian
    integer,intent(out)            :: dat(8)
    integer,intent(out)            :: ierr

DESCRIPTION

Converts a Modified Julian Date(MJD) value to a DAT date-time array.

Modified Julian Date (MJD) = Julian Date (JD) - 2400000.5

Modified Julian Date (MJD) measures days (and fractional days) since the start of 17 Nov 1858 CE in Universal Time (UTC). Julian Date (JD) measures days (and fractional days) since noon on 1 January, 4713 BCE in Universal Time (UTC).

MJD starts at midnight (00:00:00) so truncating the fractional component of MJD always gives the same Civil Calendar day whatever the time of day (unlike JD).

OPTIONS

modified_julian
  A Modified Julian Date (MJD) measures days (and fractional days) since the start of 17 Nov 1858 CE in Universal Time (UTC).

RETURNS

dat Integer array holding a "DAT" array, similar in structure to the array returned by the intrinsic DATE_AND_TIME(3f):
             dat=[ year,month,day,timezone,hour,&
              & minutes,seconds,milliseconds]

ierr Error code. If 0 no error occurred.

EXAMPLE

Sample program:

     program demo_modified_julian_to_date
     use M_time, only : modified_julian_to_date, fmtdate, realtime
     implicit none
     integer,parameter   :: dp=kind(0.0d0)
     real(kind=realtime) :: modified_juliandate, tomorrow, yesterday
     integer             :: dat(8)
     integer             :: ierr
        ! set sample Modified Julian Date
        modified_juliandate=60700.503682349771_dp
        ! create DAT array for this date
        call modified_julian_to_date(modified_juliandate,dat,ierr)
        write(*,*)’Sample Date=’,fmtdate(dat)
        !
        ! go back one day
        yesterday= modified_juliandate-1.0
        call modified_julian_to_date(yesterday,dat,ierr)
        write(*,*)’Day Before =’,fmtdate(dat)
        !
        ! go forward one day
        tomorrow= modified_juliandate+1
        call modified_julian_to_date(tomorrow,dat,ierr)
        write(*,*)’Day After  =’,fmtdate(dat)
        !
     end program demo_modified_julian_to_date

Results:

     >  Sample Date=Saturday, January 25th, 2025 7:05:18 AM UTC-05:00
     >  Day Before =Friday, January 24th, 2025 7:05:18 AM UTC-05:00
     >  Day After  =Sunday, January 26th, 2025 7:05:18 AM UTC-05:00

AUTHOR

John S. Urban, 2025

LICENSE

    MIT


Nemo Release 3.1 modified_julian_to_date (3) February 23, 2025
Generated by manServer 1.08 from f9aeacc9-04b2-4f04-83e2-f31df0b0a91f using man macros.