6 SUBROUTINE teb_canopy(KI, SB, PBLD, PBLD_HEIGHT, PWALL_O_HOR, PPA, PRHOA, PDUWDU_ROAD, PUW_ROOF, &
7 PDUWDU_ROOF, PH_WALL, PH_ROOF, PE_ROOF, PAC_ROAD, PAC_ROAD_WAT, PFORC_U, &
8 PDFORC_UDU, PFORC_E, PDFORC_EDE, PFORC_T, PDFORC_TDT, PFORC_Q, PDFORC_QDQ)
46 INTEGER,
INTENT(IN) :: KI
49 REAL,
DIMENSION(KI),
INTENT(IN) :: PBLD
50 REAL,
DIMENSION(KI),
INTENT(IN) :: PBLD_HEIGHT
51 REAL,
DIMENSION(KI),
INTENT(IN) :: PWALL_O_HOR
53 REAL,
DIMENSION(KI),
INTENT(IN) :: PPA
54 REAL,
DIMENSION(KI),
INTENT(IN) :: PRHOA
56 REAL,
DIMENSION(KI),
INTENT(IN) :: PDUWDU_ROAD
57 REAL,
DIMENSION(KI),
INTENT(IN) :: PUW_ROOF
58 REAL,
DIMENSION(KI),
INTENT(IN) :: PDUWDU_ROOF
59 REAL,
DIMENSION(KI),
INTENT(IN) :: PH_WALL
60 REAL,
DIMENSION(KI),
INTENT(IN) :: PH_ROOF
61 REAL,
DIMENSION(KI),
INTENT(IN) :: PE_ROOF
62 REAL,
DIMENSION(KI),
INTENT(IN) :: PAC_ROAD
63 REAL,
DIMENSION(KI),
INTENT(IN) :: PAC_ROAD_WAT
65 REAL,
DIMENSION(KI,SB%NLVL),
INTENT(OUT) :: PFORC_U
66 REAL,
DIMENSION(KI,SB%NLVL),
INTENT(OUT) :: PDFORC_UDU
68 REAL,
DIMENSION(KI,SB%NLVL),
INTENT(OUT) :: PFORC_E
69 REAL,
DIMENSION(KI,SB%NLVL),
INTENT(OUT) :: PDFORC_EDE
71 REAL,
DIMENSION(KI,SB%NLVL),
INTENT(OUT) :: PFORC_T
72 REAL,
DIMENSION(KI,SB%NLVL),
INTENT(OUT) :: PDFORC_TDT
74 REAL,
DIMENSION(KI,SB%NLVL),
INTENT(OUT) :: PFORC_Q
75 REAL,
DIMENSION(KI,SB%NLVL),
INTENT(OUT) :: PDFORC_QDQ
82 REAL,
DIMENSION(KI,SB%NLVL) :: ZCDRAG
83 REAL,
DIMENSION(KI,SB%NLVL) :: ZSH
85 REAL,
DIMENSION(KI,SB%NLVL) :: ZSV
87 REAL,
DIMENSION(KI,SB%NLVL) :: ZFORC
88 REAL,
DIMENSION(KI,SB%NLVL) :: ZDENSITY
89 REAL,
DIMENSION(KI,SB%NLVL) :: ZAIRVOL
90 REAL,
DIMENSION(KI,SB%NLVL) :: ZP
91 REAL,
DIMENSION(KI,SB%NLVL) :: ZEXN
92 REAL(KIND=JPRB) :: ZHOOK_HANDLE
104 zsh(:,1) = (1.-pbld(:))
106 WHERE( sb%XZF(:,2)>=pbld_height(:) ) zsh(:,2) = pbld(:)
107 DO jlayer = 2,sb%NLVL-1
108 WHERE( sb%XZF(:,jlayer)<pbld_height(:) .AND. &
109 sb%XZF(:,jlayer+1)>=pbld_height(:) ) zsh(:,jlayer) = pbld(:)
111 WHERE( sb%XZF(:,sb%NLVL)<pbld_height(:) ) zsh(:,sb%NLVL) = pbld(:)
118 zcdrag(:,:) = zcdrag(:,:) /
xpi 133 zdensity(:,jlayer) = pwall_o_hor(:)
136 CALL canopy(ki, sb, pbld_height, zdensity, zcdrag, zairvol, &
137 zsv, zforc, pforc_u, pdforc_udu, pforc_e, pdforc_ede )
155 zforc(:,:) = zsh(:,:)/zairvol(:,:)/sb%XDZ(:,:)
163 pforc_u(:,jlayer) = pforc_u(:,jlayer) + puw_roof(:) * zforc(:,jlayer)
164 pdforc_udu(:,jlayer) = pdforc_udu(:,jlayer) + pduwdu_roof(:) * zforc(:,jlayer)
171 pforc_u(:,1) = pforc_u(:,1)
172 pdforc_udu(:,1) = pdforc_udu(:,1) + pduwdu_road(:) * zsh(:,1)/sb%XDZ(:,1)
187 pdforc_tdt(:,1) = pdforc_tdt(:,1) - pac_road(:)
203 zforc(:,jlayer) = 1. / zairvol(:,jlayer) / sb%XDZ(:,jlayer) / prhoa(:) /
xcpd 204 pforc_t(:,jlayer) = pforc_t(:,jlayer) + ph_wall * zsv(:,jlayer) * zforc(:,jlayer)
205 pdforc_tdt(:,jlayer) = pdforc_tdt(:,jlayer) + 0.
212 pforc_t(:,jlayer) = pforc_t(:,jlayer) + ph_roof * zsh(:,jlayer) * zforc(:,jlayer)
213 pdforc_tdt(:,jlayer) = pdforc_tdt(:,jlayer) + 0.
222 zp(:,jlayer) = ppa(:) +
xg * prhoa(:) * (sb%XZ(:,sb%NLVL) - sb%XZ(:,jlayer))
226 pforc_t = pforc_t * zexn
227 pdforc_tdt = pdforc_tdt * zexn
245 pdforc_qdq(:,1) = pdforc_qdq(:,1) - pac_road_wat(:)
260 pforc_q(:,jlayer) = pforc_q(:,jlayer) + pe_roof * zsh(:,jlayer)/zairvol(:,jlayer)/sb%XDZ(:,jlayer)
261 pdforc_qdq(:,jlayer) = pdforc_qdq(:,jlayer) + 0.
subroutine canopy(KI, SB, PHEIGHT, PDENSITY, PCDRAG, PAIRVOL, PSV, PFORC, PFORC_U, PDFORC_UDU, PFORC_E, PDFORC_EDE)
subroutine teb_canopy(KI, SB, PBLD, PBLD_HEIGHT, PWALL_O_HOR, PPA, PRHOA, PDUWDU_ROAD, PUW_ROOF, PDUWDU_ROOF, PH_WALL, PH_ROOF, PE_ROOF, PAC_ROAD, PAC_ROAD_WAT, PFORC_U, PDFORC_UDU, PFORC_E, PDFORC_EDE, PFORC_T, PDFORC_TDT, PFORC_Q, PDFORC_QDQ)