6 SUBROUTINE bld_occ_calendar(KYEAR, KMONTH, KDAY, PTSUN, PRESIDENTIAL, PTCOOL_TARGET_IN, PTHEAT_TARGET_IN, &
7 pqin_in, pdt_res, pdt_off, pqin_frac, ptcool_target, ptheat_target, pqin)
28 USE yomhook
,ONLY : lhook, dr_hook
29 USE parkind1
,ONLY : jprb
35 INTEGER,
INTENT(IN) :: kyear
36 INTEGER,
INTENT(IN) :: kmonth
37 INTEGER,
INTENT(IN) :: kday
38 REAL,
DIMENSION(:) ,
INTENT(IN) :: ptsun
40 REAL,
DIMENSION(:) ,
INTENT(IN) :: presidential
41 REAL,
DIMENSION(:) ,
INTENT(IN) :: ptcool_target_in
42 REAL,
DIMENSION(:) ,
INTENT(IN) :: ptheat_target_in
43 REAL,
DIMENSION(:) ,
INTENT(IN) :: pqin_in
44 REAL,
INTENT(IN) :: pdt_res
45 REAL,
INTENT(IN) :: pdt_off
46 REAL,
INTENT(IN) :: pqin_frac
48 REAL,
DIMENSION(:) ,
INTENT(OUT) :: ptcool_target
49 REAL,
DIMENSION(:) ,
INTENT(OUT) :: ptheat_target
50 REAL,
DIMENSION(:) ,
INTENT(OUT) :: pqin
54 CHARACTER(LEN = 6) :: ctime
58 REAL,
DIMENSION(SIZE(PQIN)) :: ztod_beg
59 REAL,
DIMENSION(SIZE(PQIN)) :: ztod_end
60 REAL,
DIMENSION(SIZE(PQIN)) :: zdt
62 REAL(KIND=JPRB) :: ztodook_handle
64 IF (lhook) CALL dr_hook(
'BLD_OCC_CALENDAR',0,ztodook_handle)
73 IF (kmonth >= 4 .AND. kmonth <= 10) ctime =
'SUMMER'
81 ptheat_target(:) = ptheat_target_in(:)
83 ptcool_target(:) = ptcool_target_in(:)
96 IF (presidential(jj) > 0.5)
THEN
98 IF (jdow >= 2 .AND. jdow <=6)
THEN
99 ztod_beg(jj) = 9. * 3600.
100 ztod_end(jj) = 17. * 3600.
106 IF (jdow >= 2 .AND. jdow <=7)
THEN
107 ztod_beg(jj) = 17. * 3600.
108 ztod_end(jj) = 7. * 3600.
110 ztod_beg(jj) = 0. * 3600.
111 ztod_end(jj) = 24. * 3600.
117 IF (ctime ==
'SUMMER')
THEN
118 ztod_beg(jj) = ztod_beg(jj) - 3600.
119 ztod_end(jj) = ztod_end(jj) - 3600.
130 IF (( (ztod_beg(jj) < ztod_end(jj)) .AND. (ptsun(jj) > ztod_beg(jj) .AND. ptsun(jj) < ztod_end(jj)) ) &
132 ( (ztod_beg(jj) > ztod_end(jj)) .AND. ((ptsun(jj) > 0 .AND. ptsun(jj) < ztod_end(jj)) .OR. &
133 (ptsun(jj) > ztod_beg(jj) .AND. ptsun(jj) < 24 * 3600.))))
THEN
135 ptheat_target(jj) = ptheat_target_in(jj) - zdt(jj)
136 ptcool_target(jj) = ptcool_target_in(jj) + zdt(jj)
137 pqin(jj) = pqin_frac * pqin(jj)
144 IF (lhook) CALL dr_hook(
'BLD_OCC_CALENDAR',1,ztodook_handle)
subroutine day_of_week(DATE, MONTH, YEAR, DOW)
subroutine bld_occ_calendar(KYEAR, KMONTH, KDAY, PTSUN, PRESIDENTIAL, PTCOOL_TARGET_IN, PTHEAT_TARGET_IN, PQIN_IN, PDT_RES, PDT_OFF, PQIN_FRAC, PTCOOL_TARGET, PTHEAT_TARGET, PQIN)