Changeset 7251
- Timestamp:
- 2021-07-20T19:14:19+02:00 (3 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/ORCHIDEE_2_2/ORCHIDEE/src_sechiba/diffuco.f90
r6393 r7251 391 391 ! 392 392 393 CALL diffuco_bare (kjpindex, evap_bare_lim, evap_bare_lim_ns, vbeta2, vbeta3, vbeta4)393 CALL diffuco_bare (kjpindex, tot_bare_soil, veget_max, evap_bare_lim, evap_bare_lim_ns, vbeta2, vbeta3, vbeta4) 394 394 395 395 !! 6. Combine the alpha and beta coefficients … … 1194 1194 !_ ================================================================================================================================ 1195 1195 1196 SUBROUTINE diffuco_bare (kjpindex, evap_bare_lim, evap_bare_lim_ns, vbeta2, vbeta3, vbeta4)1196 SUBROUTINE diffuco_bare (kjpindex, tot_bare_soil, veget_max, evap_bare_lim, evap_bare_lim_ns, vbeta2, vbeta3, vbeta4) 1197 1197 1198 1198 !! 0. Variable and parameter declaration … … 1200 1200 !! 0.1 Input variables 1201 1201 INTEGER(i_std), INTENT(in) :: kjpindex !! Domain size (-) 1202 REAL(r_std),DIMENSION (kjpindex), INTENT(in) :: tot_bare_soil !! Total evaporating bare soil fraction 1203 REAL(r_std),DIMENSION (kjpindex,nvm), INTENT (in) :: veget_max !! Max. fraction of vegetation type (LAI->infty) 1202 1204 REAL(r_std),DIMENSION (kjpindex,nvm), INTENT (in) :: vbeta2 !! Beta for Interception 1203 1205 REAL(r_std),DIMENSION (kjpindex,nvm), INTENT (in) :: vbeta3 !! Beta for Transpiration … … 1213 1215 !! 0.4 Local variables 1214 1216 INTEGER(i_std) :: ji 1215 1217 REAL(r_std), DIMENSION(kjpindex) :: vegtot 1218 1216 1219 !_ ================================================================================================================================ 1217 1220 … … 1234 1237 (un - SUM(vbeta2(ji,:)+vbeta3(ji,:)) .GT. min_sechiba) ) THEN 1235 1238 ! eventually, none of the left-hand term is close to zero 1236 1237 vbeta4(ji) = MIN(evap_bare_lim(ji), un - SUM(vbeta2(ji,:)+vbeta3(ji,:))) 1238 ! so that vbeta does not exceed 1 1239 1240 vegtot(ji) = SUM(veget_max(ji,:)) 1241 IF (evap_bare_lim(ji) < (un - SUM(vbeta2(ji,:)+vbeta3(ji,:)))) THEN 1242 ! Standard case 1243 vbeta4(ji) = evap_bare_lim(ji) 1244 ELSE 1245 vbeta4(ji) = un - SUM(vbeta2(ji,:)+vbeta3(ji,:)) 1246 1247 ! We now have to redefine evap_bare_lim & evap_bare_lim_ns 1248 IF (evap_bare_lim(ji) .GT. min_sechiba) THEN 1249 evap_bare_lim_ns(ji,:) = evap_bare_lim_ns(ji,:) * vbeta4(ji) / evap_bare_lim(ji) 1250 ELSE ! we must re-invent evap_bare_lim_ns => uniform across soiltiles 1251 evap_bare_lim_ns(ji,:) = tot_bare_soil(ji)/vegtot(ji) 1252 ENDIF 1253 1254 evap_bare_lim(ji) = vbeta4(ji) 1255 ! consistent with evap_bare_lim(ji) = 1256 ! SUM(evap_bare_lim_ns(ji,:)*soiltile(ji,:)*vegtot(ji)) 1257 ! as SUM(soiltile(ji,:)) = 1 1258 END IF 1239 1259 1240 1260 ELSE ! instead of having very small vbeta4, we set everything to zero
Note: See TracChangeset
for help on using the changeset viewer.