Changeset 7251


Ignore:
Timestamp:
2021-07-20T19:14:19+02:00 (3 years ago)
Author:
agnes.ducharne
Message:

Same correction as in r6465 in the trunk: Correct the adjustments to evap_bare_lim_ns in diffuco_bare.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/ORCHIDEE_2_2/ORCHIDEE/src_sechiba/diffuco.f90

    r6393 r7251  
    391391    ! 
    392392 
    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) 
    394394 
    395395  !! 6. Combine the alpha and beta coefficients 
     
    11941194!_ ================================================================================================================================ 
    11951195 
    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) 
    11971197 
    11981198    !! 0. Variable and parameter declaration 
     
    12001200    !! 0.1 Input variables 
    12011201    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)  
    12021204    REAL(r_std),DIMENSION (kjpindex,nvm), INTENT (in)  :: vbeta2         !! Beta for Interception  
    12031205    REAL(r_std),DIMENSION (kjpindex,nvm), INTENT (in)  :: vbeta3         !! Beta for Transpiration  
     
    12131215    !! 0.4 Local variables 
    12141216    INTEGER(i_std)                                     :: ji 
    1215  
     1217    REAL(r_std), DIMENSION(kjpindex)                   :: vegtot 
     1218     
    12161219!_ ================================================================================================================================ 
    12171220 
     
    12341237            (un - SUM(vbeta2(ji,:)+vbeta3(ji,:)) .GT. min_sechiba) ) THEN  
    12351238          ! 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 
    12391259           
    12401260       ELSE ! instead of having very small vbeta4, we set everything to zero 
Note: See TracChangeset for help on using the changeset viewer.