6 SUBROUTINE bld_e_budget( OTI_EVOL, PTSTEP, PBLD, PWALL_O_HOR, &
7 prhoa, pt_roof, pt_wall, pti_bld, pts_floor )
71 USE yomhook
,ONLY : lhook, dr_hook
72 USE parkind1
,ONLY : jprb
78 LOGICAL,
INTENT(IN) :: oti_evol
81 REAL,
INTENT(IN) :: ptstep
82 REAL,
DIMENSION(:),
INTENT(IN) :: pbld
83 REAL,
DIMENSION(:),
INTENT(IN) :: pwall_o_hor
84 REAL,
DIMENSION(:),
INTENT(IN) :: prhoa
86 REAL,
DIMENSION(:,:),
INTENT(IN) :: pt_roof
87 REAL,
DIMENSION(:,:),
INTENT(IN) :: pt_wall
88 REAL,
DIMENSION(:),
INTENT(INOUT):: pti_bld
90 REAL,
DIMENSION(:),
INTENT(IN) :: pts_floor
99 REAL(KIND=JPRB) :: zhook_handle
101 IF (lhook) CALL dr_hook(
'BLD_E_BUDGET',0,zhook_handle)
106 iroof =
SIZE(pt_roof,2)
107 iwall =
SIZE(pt_wall,2)
116 IF (.NOT. oti_evol .AND. lhook) CALL dr_hook(
'BLD_E_BUDGET',1,zhook_handle)
117 IF (.NOT. oti_evol)
RETURN
124 WHERE (pbld(:) .GT. 0.)
125 pti_bld(:) = pti_bld(:) * (ztau-ptstep)/ztau &
126 + ( pt_roof(:,iroof) * pbld(:) &
127 + pt_wall(:,iwall) * pwall_o_hor(:) &
128 + pts_floor(:) * pbld(:) ) &
129 / ( 2. * pbld(:) + pwall_o_hor(:) ) * ptstep / ztau
131 pti_bld(:) = pts_floor(:)
138 pti_bld(:) = max( pti_bld(:) , pts_floor(:) )
140 IF (lhook) CALL dr_hook(
'BLD_E_BUDGET',1,zhook_handle)
subroutine bld_e_budget(OTI_EVOL, PTSTEP, PBLD, PWALL_O_HOR, PRHOA, PT_ROOF, PT_WALL, PTI_BLD, PTS_FLOOR)