7 pirrig, ptstep, kmonth, kday, &
8 ptime,tseedmonth,tseedday,treapmonth,treapday)
47 USE yomhook
,ONLY : lhook, dr_hook
48 USE parkind1
,ONLY : jprb
52 TYPE(agri_t),
INTENT(INOUT) :: ag
54 INTEGER,
DIMENSION(:,:),
INTENT(IN) :: tseedmonth
55 INTEGER,
DIMENSION(:,:),
INTENT(IN) :: tseedday
56 INTEGER,
DIMENSION(:,:),
INTENT(IN) :: treapmonth
57 INTEGER,
DIMENSION(:,:),
INTENT(IN) :: treapday
58 REAL ,
DIMENSION(:,:),
INTENT(IN) :: pirrig
59 REAL,
INTENT(IN) :: ptstep, ptime
60 INTEGER,
INTENT(IN) :: kmonth, kday
63 REAL(KIND=JPRB) :: zhook_handle
70 IF (lhook) CALL dr_hook(
'MODI_IRRIGATION_UPDATE:IRRIGATION_UPDATE',0,zhook_handle)
71 gmask = ( ptime - ptstep < 0. ) .AND. ( ptime >= 0. )
75 WHERE( (pirrig(:,:).GT.0.).AND.(ag%LIRRIDAY(:,:)) .AND.(ag%NIRRINUM(:,:).LT.jpstage))
76 ag%NIRRINUM (:,:) = ag%NIRRINUM(:,:) + 1
77 ag%LIRRIDAY (:,:) = .false.
80 DO il=1,
SIZE(pirrig,1)
81 DO jl=1,
SIZE(pirrig,2)
82 ag%XTHRESHOLDSPT(il,jl)=xthreshold(ag%NIRRINUM(il,jl))
90 IF((kmonth==1).AND.(kday==1))
THEN
94 ag%LIRRIGATE(:,:) = .false.
95 DO il=1,
SIZE(pirrig,1)
96 DO jl=1,
SIZE(pirrig,2)
100 IF (kmonth == tseedmonth(il,jl) .AND. kday .GE. tseedday(il,jl))
THEN
101 ag%LIRRIGATE(il,jl) = .true.
103 IF (kmonth > tseedmonth(il,jl))
THEN
104 ag%LIRRIGATE(il,jl) = .true.
109 IF (kmonth == treapmonth(il,jl) .AND. kday .GT. treapday(il,jl))
THEN
110 ag%LIRRIGATE(il,jl) = .false.
112 IF (kmonth > treapmonth(il,jl))
THEN
113 ag%LIRRIGATE(il,jl) = .false.
117 IF (lhook) CALL dr_hook(
'MODI_IRRIGATION_UPDATE:IRRIGATION_UPDATE',1,zhook_handle)
subroutine irrigation_update(AG, PIRRIG, PTSTEP, KMONTH, KDAY, PTIME, TSEEDMONTH, TSEEDDAY, TREAPMONTH, TREAPDAY)