7 KYEARI, KMONTHI, KDAYI, PSECI, &
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
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)