7 ocanopy, pta, pts, pqa, ppa, pps, prhoa, &
8 pzona, pmera, pwind, pht, phw, &
9 pcd, pcdn, pri, pch, pz0, &
10 ptrad, pemis, pdir_alb, psca_alb, &
11 plw, pdir_sw, psca_sw, &
12 psfth, psftq, psfzon, psfmer, psfco2, &
13 prn, ph, ple, pgflux )
51 USE modi_diag_surf_budget_teb
57 USE yomhook
,ONLY : lhook, dr_hook
58 USE parkind1
,ONLY : jprb
67 TYPE(teb_t),
INTENT(INOUT) :: t
69 LOGICAL,
INTENT(IN) :: ocanopy
70 REAL,
DIMENSION(:),
INTENT(IN) :: pta
71 REAL,
DIMENSION(:),
INTENT(IN) :: pts
72 REAL,
DIMENSION(:),
INTENT(IN) :: pqa
73 REAL,
DIMENSION(:),
INTENT(IN) :: ppa
74 REAL,
DIMENSION(:),
INTENT(IN) :: pps
75 REAL,
DIMENSION(:),
INTENT(IN) :: prhoa
76 REAL,
DIMENSION(:),
INTENT(IN) :: pzona
77 REAL,
DIMENSION(:),
INTENT(IN) :: pmera
78 REAL,
DIMENSION(:),
INTENT(IN) :: pwind
79 REAL,
DIMENSION(:),
INTENT(IN) :: pht
80 REAL,
DIMENSION(:),
INTENT(IN) :: phw
81 REAL,
DIMENSION(:),
INTENT(IN) :: pcd
82 REAL,
DIMENSION(:),
INTENT(IN) :: pcdn
83 REAL,
DIMENSION(:),
INTENT(IN) :: psfzon
84 REAL,
DIMENSION(:),
INTENT(IN) :: psfmer
85 REAL,
DIMENSION(:),
INTENT(IN) :: psfco2
86 REAL,
DIMENSION(:),
INTENT(IN) :: psfth
87 REAL,
DIMENSION(:),
INTENT(IN) :: psftq
88 REAL,
DIMENSION(:),
INTENT(IN) :: pri
89 REAL,
DIMENSION(:),
INTENT(IN) :: pch
90 REAL,
DIMENSION(:),
INTENT(IN) :: pz0
91 REAL,
DIMENSION(:),
INTENT(IN) :: prn
92 REAL,
DIMENSION(:),
INTENT(IN) :: ph
93 REAL,
DIMENSION(:),
INTENT(IN) :: ple
94 REAL,
DIMENSION(:),
INTENT(IN) :: pgflux
95 REAL,
DIMENSION(:,:),
INTENT(IN) :: pdir_sw
97 REAL,
DIMENSION(:,:),
INTENT(IN) :: psca_sw
99 REAL,
DIMENSION(:),
INTENT(IN) :: plw
100 REAL,
DIMENSION(:),
INTENT(IN) :: ptrad
101 REAL,
DIMENSION(:,:),
INTENT(IN) :: pdir_alb
102 REAL,
DIMENSION(:,:),
INTENT(IN) :: psca_alb
103 REAL,
DIMENSION(:),
INTENT(IN) :: pemis
108 REAL,
DIMENSION(SIZE(PTA)) :: zh
109 REAL,
DIMENSION(SIZE(PTA)) :: zu10
110 REAL,
DIMENSION(SIZE(PTA)) :: zwind10m_max
111 REAL,
DIMENSION(SIZE(PTA)) :: zt2m_min
112 REAL,
DIMENSION(SIZE(PTA)) :: zt2m_max
113 REAL,
DIMENSION(SIZE(PTA)) :: zhu2m_min
114 REAL,
DIMENSION(SIZE(PTA)) :: zhu2m_max
117 REAL(KIND=JPRB) :: zhook_handle
120 IF (lhook) CALL dr_hook(
'DIAG_INLINE_TEB_N',0,zhook_handle)
129 dgt%XDIAG_TS(:) = pts(:)
140 zhu2m_min(:) = xundef
141 zhu2m_max(:) = xundef
142 zwind10m_max(:) = xundef
143 IF (dgt%N2M>0) CALL
init_2m_10m( tcp%XP(:,2), tcp%XT(:,2), tcp%XQ(:,2), tcp%XU, tcp%XZ, &
144 pzona, pmera, pwind, prhoa, &
145 dgt%XT2M, dgt%XQ2M, dgt%XHU2M, dgt%XZON10M, dgt%XMER10M,&
146 zu10, zwind10m_max, zt2m_min, &
147 zt2m_max, zhu2m_min, zhu2m_max )
151 CALL
param_cls(pta, pts, pqa, ppa, prhoa, pzona, pmera, pht, phw, &
152 psfth, psftq, psfzon, psfmer, &
153 dgt%XT2M, dgt%XQ2M, dgt%XHU2M, dgt%XZON10M, dgt%XMER10M )
157 dgt%XT2M = t%CUR%XT_CANYON
158 dgt%XQ2M = t%CUR%XQ_CANYON
163 dgt%XHU2M = min(t%CUR%XQ_CANYON /
qsat(t%CUR%XT_CANYON,ppa),1.)
164 ELSE IF (dgt%N2M==2)
THEN
167 pcd, pcdn, pri, zh, &
168 dgt%XZON10M, dgt%XMER10M )
169 dgt%XT2M = t%CUR%XT_CANYON
170 dgt%XQ2M = t%CUR%XQ_CANYON
172 dgt%XHU2M = min(t%CUR%XQ_CANYON /
qsat(t%CUR%XT_CANYON,ppa),1.)
178 dgt%XT2M_MIN(:) = min(dgt%XT2M_MIN(:),dgt%XT2M(:))
179 dgt%XT2M_MAX(:) = max(dgt%XT2M_MAX(:),dgt%XT2M(:))
181 dgt%XHU2M_MIN(:) = min(dgt%XHU2M_MIN(:),dgt%XHU2M(:))
182 dgt%XHU2M_MAX(:) = max(dgt%XHU2M_MAX(:),dgt%XHU2M(:))
184 dgt%XWIND10M (:) = sqrt(dgt%XZON10M**2+dgt%XMER10M**2)
185 dgt%XWIND10M_MAX(:) = max(dgt%XWIND10M_MAX(:),dgt%XWIND10M(:))
190 IF (dgt%LSURF_BUDGET)
THEN
194 dgt%XSWD, dgt%XSWU, dgt%XSWBD, dgt%XSWBU, dgt%XLWD, dgt%XLWU )
211 dgt%XZ0H = pz0 / zz0_o_z0h
214 IF (dgt%LSURF_VARS)
THEN
215 dgt%XQS = t%CUR%XQ_CANYON
217 IF (lhook) CALL dr_hook(
'DIAG_INLINE_TEB_N',1,zhook_handle)
subroutine cls_wind(PZONA, PMERA, PHW, PCD, PCDN, PRI, PHV, PZON10M, PMER10M)
subroutine param_cls(PTA, PTS, PQA, PPA, PRHOA, PZONA, PMERA, PH, PHW, PSFTH, PSFTQ, PSFZON, PSFMER, PT2M, PQ2M, PHU2M, PZON10M, PMER10M)
subroutine diag_surf_budget_teb(PDIR_SW, PSCA_SW, PDIR_ALB, PSCA_ALB, PLW, PEMIS, PTRAD, PSWD, PSWU, PSWBD, PSWBU, PLWD, PLWU)
subroutine init_2m_10m(PP, PT, PQ, PXU, PXZ, PU, PV, PWIND, PRHOA, PT2M, PQ2M, PHU2M, PZON10M, PMER10M, PWIND10M, PWIND10M_MAX, PT2M_MIN, PT2M_MAX, PHU2M_MIN, PHU2M_MAX)
subroutine diag_inline_teb_n(DGT, TCP, T, OCANOPY, PTA, PTS, PQA, PPA, PPS, PRHOA, PZONA, PMERA, PWIND, PHT, PHW, PCD, PCDN, PRI, PCH, PZ0, PTRAD, PEMIS, PDIR_ALB, PSCA_ALB, PLW, PDIR_SW, PSCA_SW, PSFTH, PSFTQ, PSFZON, PSFMER, PSFCO2, PRN, PH, PLE, PGFLUX)