gregorian_day_number Function

public pure function gregorian_day_number(y, m, d) result(jdn)

Proleptic-Gregorian Julian Day Number (integer, at 00:00 UT). Fliegel & Van Flandern algorithm.

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: y
integer, intent(in) :: m
integer, intent(in) :: d

Return Value integer(kind=int64)


Called by

proc~~gregorian_day_number~~CalledByGraph proc~gregorian_day_number gregorian_day_number proc~days_since_1900 days_since_1900 proc~days_since_1900->proc~gregorian_day_number proc~configure_ocean_bc configure_ocean_bc proc~configure_ocean_bc->proc~days_since_1900 proc~configure_ocean_tides configure_ocean_tides proc~configure_ocean_tides->proc~days_since_1900 proc~engine_setup engine_setup proc~engine_setup->proc~configure_ocean_bc proc~engine_setup->proc~configure_ocean_tides proc~complete_ocean_create complete_ocean_create proc~complete_ocean_create->proc~engine_setup proc~driver_run_ocean driver_run_ocean proc~driver_run_ocean->proc~engine_setup proc~driver_validate driver_validate proc~driver_validate->proc~engine_setup proc~driver_run driver_run proc~driver_run->proc~driver_run_ocean proc~rdb_ocean_create_finalize rdb_ocean_create_finalize proc~rdb_ocean_create_finalize->proc~complete_ocean_create proc~rdb_ocean_create_from_string rdb_ocean_create_from_string proc~rdb_ocean_create_from_string->proc~complete_ocean_create

Variables

Type Visibility Attributes Name Initial
integer(kind=int64), private :: a
integer(kind=int64), private :: mm
integer(kind=int64), private :: yy

Source Code

   pure function gregorian_day_number(y, m, d) result(jdn)
      !! Proleptic-Gregorian Julian Day Number (integer, at 00:00 UT).
      !! Fliegel & Van Flandern algorithm.
      integer, intent(in) :: y, m, d
      integer(int64) :: jdn
      integer(int64) :: a, yy, mm
      a = int((14 - m)/12, int64)
      yy = int(y, int64) + 4800_int64 - a
      mm = int(m, int64) + 12_int64*a - 3_int64
      jdn = int(d, int64) + (153_int64*mm + 2_int64)/5_int64 + 365_int64*yy &
            + yy/4_int64 - yy/100_int64 + yy/400_int64 - 32045_int64
   end function gregorian_day_number