7 kyeari, kmonthi, kdayi, pseci, &
58 USE yomhook
,ONLY : lhook, dr_hook
59 USE parkind1
,ONLY : jprb
65 INTEGER,
INTENT(IN) :: kyearf
66 INTEGER,
INTENT(IN) :: kmonthf
67 INTEGER,
INTENT(IN) :: kdayf
68 REAL,
INTENT(IN) :: psecf
70 INTEGER,
INTENT(IN) :: kyeari
71 INTEGER,
INTENT(IN) :: kmonthi
72 INTEGER,
INTENT(IN) :: kdayi
73 REAL,
INTENT(IN) :: pseci
75 REAL,
INTENT(OUT):: pdist
82 INTEGER :: jmonth,jyear
83 REAL(KIND=JPRB) :: zhook_handle
90 IF (lhook) CALL dr_hook(
'TEMPORAL_DISTS',0,zhook_handle)
91 IF ( (kyearf==kyeari) .AND. (kmonthf==kmonthi) )
THEN
92 pdist = ( kdayf-kdayi) * 86400. + psecf - pseci
94 IF (pdist < 0.) pdist=xundef
102 IF ( (kyearf==kyeari) .AND. (kmonthf/=kmonthi) )
THEN
104 IF ( kmonthf < kmonthi )
THEN
106 IF (lhook) CALL dr_hook(
'TEMPORAL_DISTS',1,zhook_handle)
113 DO jmonth = kmonthi, kmonthf-1
117 CASE(1,3,5,7:8,10,12)
120 IF (mod(kyeari,4)==0)
THEN
129 pdist = ( idays + kdayf - kdayi) * 86400. + psecf - pseci
138 IF ( (kyearf/=kyeari) .AND. (kmonthf/=kmonthi) )
THEN
140 IF ( kyearf < kyeari )
THEN
142 IF (lhook) CALL dr_hook(
'TEMPORAL_DISTS',1,zhook_handle)
149 DO jmonth = kmonthi, 12
153 CASE(1,3,5,7:8,10,12)
156 IF (mod(kyeari,4)==0)
THEN
163 DO jmonth = 1,kmonthf-1
167 CASE(1,3,5,7:8,10,12)
170 IF (mod(kyearf,4)==0)
THEN
178 DO jyear=kyeari+1, kyearf-1
179 IF (mod(jyear,4)==0)
THEN
187 pdist = ( idays + kdayf - kdayi) * 86400. + psecf - pseci
194 IF ( (kyearf/=kyeari) .AND. (kmonthf==kmonthi) )
THEN
196 IF ( kyearf < kyeari )
THEN
198 IF (lhook) CALL dr_hook(
'TEMPORAL_DISTS',1,zhook_handle)
206 DO jyear=kyeari+1, kyearf-1
207 IF (mod(jyear,4)==0)
THEN
215 pdist = ( idays + kdayf - kdayi) * 86400. + psecf - pseci
218 IF (lhook) CALL dr_hook(
'TEMPORAL_DISTS',1,zhook_handle)
subroutine temporal_dists(KYEARF, KMONTHF, KDAYF, PSECF, KYEARI, KMONTHI, KDAYI, PSECI, PDIST)