7 OWATER_BUDGET, OSURF_MISC_BUDGET, OPROSNOW, &
8 OMEB_PATCH, PSLOPECOS )
42 TYPE(
diag_t),
INTENT(INOUT) :: DK
47 LOGICAL,
INTENT(IN) :: OSURF_BUDGET
48 LOGICAL,
INTENT(IN) :: OSURF_EVAP_BUDGET
49 LOGICAL,
INTENT(IN) :: OWATER_BUDGET
50 LOGICAL,
INTENT(IN) :: OSURF_MISC_BUDGET
51 LOGICAL,
INTENT(IN) :: OPROSNOW
53 LOGICAL,
INTENT(IN) :: OMEB_PATCH
55 REAL,
DIMENSION(:),
INTENT(IN) :: PSLOPECOS
59 REAL,
DIMENSION(SIZE(PEK%XPSN)) :: ZCORR_SLOPE
60 REAL,
DIMENSION(SIZE(PEK%TSNOW%WSNOW,1),SIZE(PEK%TSNOW%WSNOW,2)) :: ZCORR_SLOPE_2D
63 REAL(KIND=JPRB) :: ZHOOK_HANDLE
67 IF (
lhook)
CALL dr_hook(
'REPROJ_DIAG_ISBA_N',0,zhook_handle)
72 zcorr_slope(:) = 1. / pslopecos(:)
73 DO jl = 1,
SIZE(pek%TSNOW%WSNOW,2)
74 WHERE (pek%TSNOW%WSNOW(:,jl)>0.)
75 zcorr_slope_2d(:,jl) = zcorr_slope(:)
77 zcorr_slope_2d(:,jl) = 1.
81 IF ( osurf_budget )
THEN 83 dk%XRN (:) = dk%XRN (:) * zcorr_slope(:)
84 dk%XH (:) = dk%XH (:) * zcorr_slope(:)
85 dk%XGFLUX (:) = dk%XGFLUX (:) * zcorr_slope(:)
86 dk%XLEI (:) = dk%XLEI (:) * zcorr_slope(:)
87 dk%XSWD (:) = dk%XSWD (:) * zcorr_slope(:)
88 dk%XSWU (:) = dk%XSWU (:) * zcorr_slope(:)
89 dk%XLWD (:) = dk%XLWD (:) * zcorr_slope(:)
90 dk%XLWU (:) = dk%XLWU (:) * zcorr_slope(:)
91 dk%XFMU (:) = dk%XFMU (:) * zcorr_slope(:)
92 dk%XFMV (:) = dk%XFMV (:) * zcorr_slope(:)
94 DO jsw=1,
SIZE(dk%XSWBD,2)
95 dk%XSWBD (:, jsw) = dk%XSWBD (:,jsw) * zcorr_slope(:)
96 dk%XSWBU (:, jsw) = dk%XSWBU (:,jsw) * zcorr_slope(:)
101 IF ( osurf_evap_budget )
THEN 103 dk%XEVAP (:) = dk%XEVAP (:) * zcorr_slope(:)
104 dk%XSUBL (:) = dk%XSUBL (:) * zcorr_slope(:)
106 dek%XLEG (:) = dek%XLEG (:) * zcorr_slope(:)
107 dek%XLEGI (:) = dek%XLEGI (:) * zcorr_slope(:)
108 dek%XLEV (:) = dek%XLEV (:) * zcorr_slope(:)
109 dek%XLES (:) = dek%XLES (:) * zcorr_slope(:)
110 dek%XLER (:) = dek%XLER (:) * zcorr_slope(:)
111 dek%XLETR (:) = dek%XLETR (:) * zcorr_slope(:)
112 dek%XDRAIN (:) = dek%XDRAIN (:) * zcorr_slope(:)
113 dek%XQSB (:) = dek%XQSB (:) * zcorr_slope(:)
114 dek%XRUNOFF (:) = dek%XRUNOFF (:) * zcorr_slope(:)
115 dek%XHORT (:) = dek%XHORT (:) * zcorr_slope(:)
116 dek%XDRIP (:) = dek%XDRIP (:) * zcorr_slope(:)
117 dek%XRRVEG (:) = dek%XRRVEG (:) * zcorr_slope(:)
118 dek%XMELT (:) = dek%XMELT (:) * zcorr_slope(:)
119 dek%XIFLOOD (:) = dek%XIFLOOD (:) * zcorr_slope(:)
120 dek%XPFLOOD (:) = dek%XPFLOOD (:) * zcorr_slope(:)
121 dek%XLE_FLOOD (:) = dek%XLE_FLOOD (:) * zcorr_slope(:)
122 dek%XLEI_FLOOD (:) = dek%XLEI_FLOOD (:) * zcorr_slope(:)
123 dek%XIRRIG_FLUX(:) = dek%XIRRIG_FLUX (:) * zcorr_slope(:)
125 IF ( omeb_patch )
THEN 127 dek%XLEV_CV (:) = dek%XLEV_CV (:) * zcorr_slope(:)
128 dek%XLES_CV (:) = dek%XLES_CV (:) * zcorr_slope(:)
129 dek%XLETR_CV (:) = dek%XLETR_CV (:) * zcorr_slope(:)
130 dek%XLELITTER (:) = dek%XLELITTER (:) * zcorr_slope(:)
131 dek%XLELITTERI(:) = dek%XLELITTERI(:) * zcorr_slope(:)
132 dek%XDRIPLIT (:) = dek%XDRIPLIT (:) * zcorr_slope(:)
133 dek%XRRLIT (:) = dek%XRRLIT (:) * zcorr_slope(:)
134 dek%XLER_CV (:) = dek%XLER_CV (:) * zcorr_slope(:)
135 dek%XLE_CA (:) = dek%XLE_CA (:) * zcorr_slope(:)
136 dek%XLE_CV (:) = dek%XLE_CV (:) * zcorr_slope(:)
137 dek%XLE_GV (:) = dek%XLE_GV (:) * zcorr_slope(:)
138 dek%XLE_GN (:) = dek%XLE_GN (:) * zcorr_slope(:)
140 dek%XSWNET_V (:) = dek%XSWNET_V (:) * zcorr_slope(:)
141 dek%XSWNET_G (:) = dek%XSWNET_G (:) * zcorr_slope(:)
142 dek%XSWNET_N (:) = dek%XSWNET_N (:) * zcorr_slope(:)
143 dek%XSWNET_NS (:) = dek%XSWNET_NS (:) * zcorr_slope(:)
144 dek%XLWNET_V (:) = dek%XLWNET_V (:) * zcorr_slope(:)
145 dek%XLWNET_G (:) = dek%XLWNET_G (:) * zcorr_slope(:)
146 dek%XLWNET_N (:) = dek%XLWNET_N (:) * zcorr_slope(:)
147 dek%XSWDOWN_GN(:) = dek%XSWDOWN_GN(:) * zcorr_slope(:)
148 dek%XLWDOWN_GN(:) = dek%XLWDOWN_GN(:) * zcorr_slope(:)
149 dek%XH_CV (:) = dek%XH_CV (:) * zcorr_slope(:)
150 dek%XH_GV (:) = dek%XH_GV (:) * zcorr_slope(:)
151 dek%XH_CA (:) = dek%XH_CA (:) * zcorr_slope(:)
152 dek%XH_GN (:) = dek%XH_GN (:) * zcorr_slope(:)
153 dek%XSR_GN (:) = dek%XSR_GN (:) * zcorr_slope(:)
154 dek%XMELT_CV (:) = dek%XMELT_CV (:) * zcorr_slope(:)
155 dek%XFRZ_CV (:) = dek%XFRZ_CV (:) * zcorr_slope(:)
159 IF ( pek%TSNOW%SCHEME==
'3-L' .OR. pek%TSNOW%SCHEME==
'CRO')
THEN 161 dek%XLESL (:) = dek%XLESL (:) * zcorr_slope(:)
162 dek%XSNDRIFT (:) = dek%XSNDRIFT (:) * zcorr_slope(:)
166 IF ( owater_budget )
THEN 168 dek%XDWG (:) = dek%XDWG (:) * zcorr_slope(:)
169 dek%XDWGI (:) = dek%XDWGI (:) * zcorr_slope(:)
170 dek%XDWR (:) = dek%XDWR (:) * zcorr_slope(:)
171 dek%XDSWE (:) = dek%XDSWE (:) * zcorr_slope(:)
172 dek%XWATBUD(:) = dek%XWATBUD(:) * zcorr_slope(:)
178 IF (osurf_misc_budget)
THEN 180 dmk%XTWSNOW(:) = dmk%XTWSNOW(:) * zcorr_slope(:)
181 dmk%XTDSNOW(:) = dmk%XTDSNOW(:) * zcorr_slope(:)
183 IF ( pek%TSNOW%SCHEME==
'3-L' .OR. pek%TSNOW%SCHEME==
'CRO' )
THEN 185 WHERE(dmk%XSNOWDZ/=
xundef)
186 dmk%XSNOWLIQ(:,:) = dmk%XSNOWLIQ(:,:) * zcorr_slope_2d(:,:)
187 dmk%XSNOWDZ (:,:) = dmk%XSNOWDZ (:,:) * zcorr_slope_2d(:,:)
190 IF ( pek%TSNOW%SCHEME==
'CRO' )
THEN 195 WHERE(dmk%XTWSNOW>0.)
196 dmk%XSNDPT_1DY (:) = dmk%XSNDPT_1DY (:) * zcorr_slope(:)
197 dmk%XSNDPT_3DY (:) = dmk%XSNDPT_3DY (:) * zcorr_slope(:)
198 dmk%XSNDPT_5DY (:) = dmk%XSNDPT_5DY (:) * zcorr_slope(:)
199 dmk%XSNDPT_7DY (:) = dmk%XSNDPT_7DY (:) * zcorr_slope(:)
200 dmk%XSNSWE_1DY (:) = dmk%XSNSWE_1DY (:) * zcorr_slope(:)
201 dmk%XSNSWE_3DY (:) = dmk%XSNSWE_3DY (:) * zcorr_slope(:)
202 dmk%XSNSWE_5DY (:) = dmk%XSNSWE_5DY (:) * zcorr_slope(:)
203 dmk%XSNSWE_7DY (:) = dmk%XSNSWE_7DY (:) * zcorr_slope(:)
204 dmk%XSNRAM_SONDE (:) = dmk%XSNRAM_SONDE (:) * zcorr_slope(:)
205 dmk%XSN_REFRZNTHCKN(:) = dmk%XSN_REFRZNTHCKN(:) * zcorr_slope(:)
206 dmk%XSN_WETTHCKN (:) = dmk%XSN_WETTHCKN (:) * zcorr_slope(:)
216 IF (
lhook)
CALL dr_hook(
'REPROJ_DIAG_ISBA_N',1,zhook_handle)
subroutine reproj_diag_isba_n(DK, DEK, DMK, PEK, OSURF_BUDGET, OSURF_EVAP_BUDGET, OWATER_BUDGET, OSURF_MISC_BUDGET, OPROSNOW, OMEB_PATCH, PSLOPECOS)