6 SUBROUTINE bld_occ_calendar(TPTIME, PTSUN, T, B, PQIN_FRAC, PTCOOL_TARGET, PTHEAT_TARGET, PQIN)
40 REAL,
DIMENSION(:) ,
INTENT(IN) :: PTSUN
42 TYPE(
teb_t),
INTENT(INOUT) :: T
43 TYPE(
bem_t),
INTENT(INOUT) :: B
45 REAL,
INTENT(IN) :: PQIN_FRAC
47 REAL,
DIMENSION(:) ,
INTENT(OUT) :: PTCOOL_TARGET
48 REAL,
DIMENSION(:) ,
INTENT(OUT) :: PTHEAT_TARGET
49 REAL,
DIMENSION(:) ,
INTENT(OUT) :: PQIN
53 CHARACTER(LEN = 6) :: CTIME
57 REAL,
DIMENSION(SIZE(PQIN)) :: ZTOD_BEG
58 REAL,
DIMENSION(SIZE(PQIN)) :: ZTOD_END
59 REAL,
DIMENSION(SIZE(PQIN)) :: ZDT
61 REAL(KIND=JPRB) :: ZTODOOK_HANDLE
63 IF (
lhook)
CALL dr_hook(
'BLD_OCC_CALENDAR',0,ztodook_handle)
69 CALL day_of_week(tptime%TDATE%YEAR, tptime%TDATE%MONTH, tptime%TDATE%DAY, jdow)
72 IF (tptime%TDATE%MONTH >= 4 .AND. tptime%TDATE%MONTH <= 10) ctime =
'SUMMER' 80 ptheat_target(:) = b%XTHEAT_TARGET(:)
82 ptcool_target(:) = b%XTCOOL_TARGET(:)
95 IF (t%XRESIDENTIAL(jj) > 0.5)
THEN 97 IF (jdow >= 2 .AND. jdow <=6)
THEN 98 ztod_beg(jj) = 9. * 3600.
99 ztod_end(jj) = 17. * 3600.
105 IF (jdow >= 2 .AND. jdow <=7)
THEN 106 ztod_beg(jj) = 17. * 3600.
107 ztod_end(jj) = 7. * 3600.
109 ztod_beg(jj) = 0. * 3600.
110 ztod_end(jj) = 24. * 3600.
116 IF (ctime ==
'SUMMER')
THEN 117 ztod_beg(jj) = ztod_beg(jj) - 3600.
118 ztod_end(jj) = ztod_end(jj) - 3600.
129 IF (( (ztod_beg(jj) < ztod_end(jj)) .AND. (ptsun(jj) > ztod_beg(jj) .AND. ptsun(jj) < ztod_end(jj)) ) &
131 ( (ztod_beg(jj) > ztod_end(jj)) .AND. ((ptsun(jj) > 0 .AND. ptsun(jj) < ztod_end(jj)) .OR. &
132 (ptsun(jj) > ztod_beg(jj) .AND. ptsun(jj) < 24 * 3600.))))
THEN 134 ptheat_target(jj) = b%XTHEAT_TARGET(jj) - zdt(jj)
135 ptcool_target(jj) = b%XTCOOL_TARGET(jj) + zdt(jj)
136 pqin(jj) = pqin_frac * pqin(jj)
143 IF (
lhook)
CALL dr_hook(
'BLD_OCC_CALENDAR',1,ztodook_handle)
subroutine bld_occ_calendar(TPTIME, PTSUN, T, B, PQIN_FRAC, PTCOOL_TARGET, PTHEAT_TARGET, PQIN)
subroutine day_of_week(PYEAR, PMONTH, PDAY, PDOW)