source: flexpart.git/src/juldate.f90 @ 3481cc1

10.4.1_peseiGFS_025bugfixes+enhancementsdevrelease-10release-10.4.1scaling-bug
Last change on this file since 3481cc1 was 3481cc1, checked in by Ignacio Pisso <ip@…>, 4 years ago

move license from headers to a different file

  • Property mode set to 100644
File size: 2.7 KB
Line 
1function juldate(yyyymmdd,hhmiss)
2
3  !*****************************************************************************
4  !                                                                            *
5  !     Calculates the Julian date                                             *
6  !                                                                            *
7  !     AUTHOR: Andreas Stohl (15 October 1993)                                *
8  !                                                                            *
9  !     Variables:                                                             *
10  !     dd             Day                                                     *
11  !     hh             Hour                                                    *
12  !     hhmiss         Hour, minute + second                                   *
13  !     ja,jm,jy       help variables                                          *
14  !     juldate        Julian Date                                             *
15  !     julday         help variable                                           *
16  !     mi             Minute                                                  *
17  !     mm             Month                                                   *
18  !     ss             Second                                                  *
19  !     yyyy           Year                                                    *
20  !     yyyymmddhh     Date and Time                                           *
21  !                                                                            *
22  !     Constants:                                                             *
23  !     igreg          help constant                                           *
24  !                                                                            *
25  !*****************************************************************************
26
27  use par_mod, only: dp
28
29  implicit none
30
31  integer           :: yyyymmdd,yyyy,mm,dd,hh,mi,ss,hhmiss
32  integer           :: julday,jy,jm,ja
33  integer,parameter :: igreg=15+31*(10+12*1582)
34  real(kind=dp)     :: juldate
35
36  yyyy=yyyymmdd/10000
37  mm=(yyyymmdd-10000*yyyy)/100
38  dd=yyyymmdd-10000*yyyy-100*mm
39  hh=hhmiss/10000
40  mi=(hhmiss-10000*hh)/100
41  ss=hhmiss-10000*hh-100*mi
42
43  if (yyyy.eq.0) then
44     print*, 'there is no year zero.'
45     stop
46  end if
47  if (yyyy.lt.0) yyyy=yyyy+1
48  if (mm.gt.2) then
49    jy=yyyy
50    jm=mm+1
51  else
52    jy=yyyy-1
53    jm=mm+13
54  endif
55  julday=int(365.25*jy)+int(30.6001*jm)+dd+1720995
56  if (dd+31*(mm+12*yyyy).ge.igreg) then
57    ja=int(0.01*jy)
58    julday=julday+2-ja+int(0.25*ja)
59  endif
60
61  juldate=real(julday,kind=dp)   + real(hh,kind=dp)/24._dp + &
62       real(mi,kind=dp)/1440._dp  + real(ss,kind=dp)/86400._dp
63
64end function juldate
Note: See TracBrowser for help on using the repository browser.
hosted by ZAMG