The TELEMAC-MASCARET system  trunk
jultim.f
Go to the documentation of this file.
1 ! ********************************
2  DOUBLE PRECISION FUNCTION jultim
3 ! ********************************
4 !
5  &(year,month,day,hour,minu,sec,at)
6 !
7 !***********************************************************************
8 ! BIEF V6P2 21/08/2010
9 !***********************************************************************
10 !
11 !brief COMPUTES THE TIME ELAPSED SINCE 31/12/1899.
12 !+ EXPRESSES IT IN JULIAN CENTURIES.
13 !
14 !history E. DAVID (LHF)
15 !+ 12/07/1995
16 !+ V5P1
17 !+
18 !
19 !history JMH (EDF-LNHE)
20 !+ 03/09/2010
21 !+ V6P0
22 !+ For consistency, YEAR is now INTENT(IN) only
23 !
24 !history N.DURAND (HRW), S.E.BOURBAN (HRW)
25 !+ 13/07/2010
26 !+ V6P0
27 !+ Translation of French comments within the FORTRAN sources into
28 !+ English comments
29 !
30 !history N.DURAND (HRW), S.E.BOURBAN (HRW)
31 !+ 21/08/2010
32 !+ V6P0
33 !+ Creation of DOXYGEN tags for automated documentation and
34 !+ cross-referencing of the FORTRAN sources
35 !
36 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
37 !| AT |-->| TIME IN SECONDS
38 !| DAY |-->| DAY
39 !| HOUR |-->| HOUR IN UNIVERSAL TIME
40 !| MIN |-->| MINUTE IN UNIVERSAL TIME
41 !| MONTH |-->| MONTH
42 !| SEC |-->| SECOND IN UNIVERSAL TIME
43 !| YEAR |-->| YEAR
44 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
45 !
47  IMPLICIT NONE
48 !
49 !
50 !+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
51 !
52  INTEGER, INTENT(IN) :: MONTH,DAY,HOUR,MINU,SEC,YEAR
53  DOUBLE PRECISION, INTENT(IN) :: AT
54 !
55 !+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
56 !
57  INTEGER Y,M,YEAR2
58  DOUBLE PRECISION J
59 !
60  INTRINSIC int
61 !
62  INTEGER, PARAMETER :: GREG=15+31*(10+12*1582)
63 !
64 !-----------------------------------------------------------------------
65 !
66  year2=year
67  IF(year2.EQ.0) THEN
68  WRITE (lu,101)
69  CALL plante(1)
70  stop
71  ENDIF
72  IF(year2.LT.0) year2=year2+1
73 !
74  IF (month.GT.2) THEN
75  y=year2
76  m=month+1
77  ELSE
78  y=year2-1
79  m=month+13
80  ENDIF
81 !
82  j=int(365.25d0*y)+int(30.6001d0*m)+day+1720995.d0
83  IF(day+31*(month+12*year2).GE.greg) THEN
84  j=j+2-int(0.01d0*y)+int(0.25d0*int(0.01d0*y))
85  ENDIF
86  j=j-2415020.5d0
87  jultim=(j+(hour+(minu+(sec+at)/60.d0)/60.d0)/24.d0)/36525.d0
88 !
89 !---------------------------------------------------------------
90 !
91 101 FORMAT (//,10x,'**********************************',
92  & /,10x,' JULTIM FUNCTION',
93  & /,10x,' THE VALUE FOR THE YEAR IS ZERO',
94  & /,10x,' COMPUTATION NOT POSSIBLE ...'
95  & /,10x,'**********************************')
96 !
97 !---------------------------------------------------------------
98 !
99  RETURN
100  END
double precision function jultim(YEAR, MONTH, DAY, HOUR, MINU, SEC, AT)
Definition: jultim.f:7