6 SUBROUTINE teb_irrig(OIRRIG, PTSTEP, KMONTH, PSOLAR_TIME, &
7 PSTART_MONTH, PEND_MONTH, PSTART_HOUR, PEND_HOUR,&
56 LOGICAL,
INTENT(IN) :: OIRRIG
57 REAL,
INTENT(IN) :: PTSTEP
58 INTEGER,
INTENT(IN) :: KMONTH
59 REAL,
DIMENSION(:),
INTENT(IN) :: PSOLAR_TIME
60 REAL,
DIMENSION(:),
INTENT(IN) :: PSTART_MONTH
61 REAL,
DIMENSION(:),
INTENT(IN) :: PEND_MONTH
62 REAL,
DIMENSION(:),
INTENT(IN) :: PSTART_HOUR
63 REAL,
DIMENSION(:),
INTENT(IN) :: PEND_HOUR
64 REAL,
DIMENSION(:),
INTENT(IN) :: P24H_IRRIG
65 REAL,
DIMENSION(:),
INTENT(OUT) :: PIRRIG
67 REAL(KIND=JPRB) :: ZHOOK_HANDLE
71 LOGICAL,
DIMENSION(SIZE(PIRRIG)):: GMONTH
72 LOGICAL,
DIMENSION(SIZE(PIRRIG)):: GHOUR
73 REAL,
DIMENSION(SIZE(PIRRIG)):: ZDURATION
83 IF (.NOT. oirrig)
THEN 93 WHERE (pstart_month <= pend_month)
94 gmonth = kmonth>=pstart_month .AND. kmonth<= pend_month
97 gmonth = kmonth>=pstart_month .OR. kmonth<= pend_month
108 WHERE (pstart_hour <= pend_hour)
109 ghour = psolar_time+ptstep>=pstart_hour*3600. .AND. psolar_time<=pend_hour*3600.
110 zduration = 3600.* (pend_hour-pstart_hour)
113 ghour = psolar_time+ptstep>=pstart_hour*3600. .OR. psolar_time< pend_hour*3600.
114 zduration = 3600.* (pend_hour + 24.-pstart_hour)
123 zduration = max(zduration, ptstep)
126 WHERE(gmonth(:) .AND. ghour(:)) pirrig(:) = p24h_irrig(:) / zduration(:)
subroutine teb_irrig(OIRRIG, PTSTEP, KMONTH, PSOLAR_TIME, PSTART_MONTH, PEND_MONTH, PSTART_HOUR, PEND_HOUR, P24H_IRRIG, PIRRIG)