SURFEX v7.3
General documentation of Surfex
 All Classes Files Functions Variables Typedefs
/home/dasprezs/EXPORT_v7_3/src/SURFEX/vegetation_evol.F90
Go to the documentation of this file.
00001 !     #########
00002     SUBROUTINE VEGETATION_EVOL(HISBA, HPHOTO, HRESPSL, HALBEDO, OAGRIP,   &
00003                                OTR_ML, PTSTEP, KMONTH, KDAY, KSPINW,      &
00004                                PTIME, PLAT, PRHOA,                        &
00005                                PDG, PDZG, KWG_LAYER,                      &
00006                                PTG, PALBNIR_VEG, PALBVIS_VEG, PALBUV_VEG, &
00007                                PALBNIR_SOIL, PALBVIS_SOIL, PALBUV_SOIL,   &
00008                                PVEGTYPE, PSEFOLD, PANMAX, PH_TREE, PBSLAI,& 
00009                                PLAIMIN, P_CO2, PCE_NITRO, PCF_NITRO,      &
00010                                PCNA_NITRO, PBSLAI_NITRO, PGMES, PTAU_WOOD,&
00011                                TPSEED, TPREAP, PAOSIP, PAOSIM, PAOSJP,    &
00012                                PAOSJM, PHO2IP, PHO2IM, PHO2JP, PHO2JM,    &
00013                                PZ0EFFIP, PZ0EFFIM, PZ0EFFJP, PZ0EFFJM,    &
00014                                PLAI, PVEG, PZ0, PALBNIR, PALBVIS, PALBUV, &
00015                                PEMIS, PANFM, PANDAY, PBIOMASS, PRESP_BIOMASS,&
00016                                PRESP_BIOMASS_INST, PINCREASE, PTURNOVER )  
00017 !   ###############################################################
00018 !!****  *VEGETATION EVOL*
00019 !!
00020 !!    PURPOSE
00021 !!    -------
00022 !
00023 !     performs the time evolution of vegetation parameters
00024 !     at solar midnight in the case of interactive vegetation (ISBA-Ags)
00025 !              
00026 !!**  METHOD
00027 !!    ------
00028 !!
00029 !!    EXTERNAL
00030 !!    --------
00031 !!    none
00032 !!
00033 !!    IMPLICIT ARGUMENTS
00034 !!    ------------------
00035 !!      
00036 !!    none
00037 !!
00038 !!    REFERENCE
00039 !!    ---------
00040 !!
00041 !!      
00042 !!    AUTHOR
00043 !!    ------
00044 !!
00045 !!      V. Masson          * Meteo-France *
00046 !!
00047 !!    MODIFICATIONS
00048 !!    -------------
00049 !!      Original    01/03/03 
00050 !!      P. Le Moigne 12/2004 : NIT version 
00051 !!      P Le Moigne  09/2005 : AGS modifs of L. Jarlan
00052 !!      A.L. Gibelin 04/2009 : BIOMASS and RESP_BIOMASS arrays
00053 !!      A.L. Gibelin 04/2009 : Add NCB option 
00054 !!      D. Carrer    01/2012 : representation of nitrogen dilution fct of CO2 (from Calvet et al. 2008)
00055 !!      B. Decharme  05/2012 : Optimization and ISBA-DIF coupling
00056 !-------------------------------------------------------------------------------
00057 !
00058 !*       0.     DECLARATIONS
00059 !               ------------
00060 !
00061 USE MODD_CO2V_PAR,       ONLY : XMC, XMCO2, XPCCO2, XRESPFACTOR_NIT, &
00062                                 XCOEFF_MAINT_RESP_ZERO, XSLOPE_MAINT_RESP, &
00063                                 XCNAREF, XPARAM                   
00064 USE MODD_CSTS,           ONLY : XDAY, XTT, XMD
00065 !
00066 USE MODI_ALBEDO
00067 USE MODI_LAIGAIN
00068 USE MODI_LAILOSS
00069 USE MODI_NITRO_DECLINE
00070 USE MODI_EMIS_FROM_VEG
00071 USE MODI_VEG_FROM_LAI
00072 USE MODI_Z0V_FROM_LAI
00073 USE MODI_SUBSCALE_Z0EFF
00074 USE MODD_TYPE_DATE_SURF
00075 USE MODD_SURF_PAR
00076 !
00077 USE YOMHOOK   ,ONLY : LHOOK,   DR_HOOK
00078 USE PARKIND1  ,ONLY : JPRB
00079 !
00080 IMPLICIT NONE
00081 !
00082 !*      0.1    declarations of arguments
00083 !
00084 !
00085  CHARACTER(LEN=3),     INTENT(IN)    :: HISBA   ! type of ISBA version:
00086 !                                              ! '2-L' (default)
00087 !                                              ! '3-L'
00088 !                                              ! 'DIF'
00089  CHARACTER(LEN=3),     INTENT(IN)    :: HPHOTO  ! type of photosynthesis
00090 !                                              ! 'NON'
00091 !                                              ! 'AGS'
00092 !                                              ! 'LAI'
00093  CHARACTER(LEN=3),     INTENT(IN)    :: HRESPSL ! Soil Respiration
00094 !                                              ! 'DEF' = Norman 1992
00095 !                                              ! 'PRM' = Rivalland PhD Thesis (2003)
00096 !                                              ! 'CNT' = CENTURY model (Gibelin 2008)
00097  CHARACTER(LEN=4),     INTENT(IN)    :: HALBEDO ! albedo type
00098 !                                              ! 'DRY ' 
00099 !                                              ! 'EVOL' 
00100 !                                              ! 'WET ' 
00101 !                                              ! 'USER'
00102 LOGICAL,              INTENT(IN)    :: OAGRIP  ! agricultural practices
00103 LOGICAL,              INTENT(IN)    :: OTR_ML  ! new radiative transfert
00104 !
00105 REAL,                 INTENT(IN)    :: PTSTEP  ! time step
00106 INTEGER,              INTENT(IN)    :: KMONTH  ! current month
00107 INTEGER,              INTENT(IN)    :: KDAY    ! current day
00108 INTEGER,              INTENT(IN)    :: KSPINW ! spinup wood
00109 REAL,                 INTENT(IN)    :: PTIME   ! current time since midnight
00110 REAL,   DIMENSION(:), INTENT(IN)    :: PLAT    ! latitude of each grid point
00111 REAL,   DIMENSION(:), INTENT(IN)    :: PRHOA   ! air density
00112 !
00113 REAL, DIMENSION(:,:), INTENT(IN)    :: PDG           ! Depth of Bottom of Soil layers       (m)
00114 REAL, DIMENSION(:,:), INTENT(IN)    :: PDZG          ! soil layers thicknesses (DIF option) (m)
00115 INTEGER, DIMENSION(:),INTENT(IN)    :: KWG_LAYER     ! Number of soil moisture layers (DIF option)
00116 !
00117 REAL, DIMENSION(:,:), INTENT(IN)    :: PTG     ! soil layer average temperatures (K)
00118 REAL,   DIMENSION(:), INTENT(IN)    :: PALBVIS_VEG ! visible, near infra-red and UV
00119 REAL,   DIMENSION(:), INTENT(IN)    :: PALBNIR_VEG ! albedo of the vegetation
00120 REAL,   DIMENSION(:), INTENT(IN)    :: PALBUV_VEG  !
00121 REAL,   DIMENSION(:), INTENT(IN)    :: PALBVIS_SOIL! visible, near infra-red and UV
00122 REAL,   DIMENSION(:), INTENT(IN)    :: PALBNIR_SOIL! soil albedo
00123 REAL,   DIMENSION(:), INTENT(IN)    :: PALBUV_SOIL !
00124 !
00125 REAL, DIMENSION(:,:), INTENT(IN)    :: PVEGTYPE! fraction of each vegetation type
00126 REAL,   DIMENSION(:), INTENT(IN)    :: PSEFOLD ! e-folding time for senescence (s)
00127 REAL,   DIMENSION(:), INTENT(IN)    :: PANMAX  ! maximum photosynthesis rate
00128 REAL,   DIMENSION(:), INTENT(IN)    :: PH_TREE ! height of trees
00129 REAL,   DIMENSION(:), INTENT(IN)    :: PBSLAI  ! ratio of biomass to LAI
00130 REAL,   DIMENSION(:), INTENT(IN)    :: PLAIMIN ! minimum LAI
00131 !
00132 REAL,   DIMENSION(:), INTENT(IN)    :: P_CO2 ! CO2 concentration [ppmm]
00133 !
00134 REAL,   DIMENSION(:), INTENT(IN)    :: PCE_NITRO    ! leaf aera ratio sensibility to nitrogen 
00135 !                                                     concentration (10**2 m2 kg-1)
00136 REAL,   DIMENSION(:), INTENT(IN)    :: PCF_NITRO    ! lethal minimum value of leaf aera ratio 
00137 !                                                     (m2 kg-1)
00138 REAL,   DIMENSION(:), INTENT(IN)    :: PCNA_NITRO   ! nitrogen concentration of active biomass (%)
00139 REAL,   DIMENSION(:), INTENT(IN)    :: PBSLAI_NITRO ! ratio of biomass to LAI
00140 !
00141 REAL,   DIMENSION(:), INTENT(IN)    :: PGMES      ! mesophyll conductance (m s-1)
00142 REAL,   DIMENSION(:), INTENT(IN)    :: PTAU_WOOD  ! residence time in wood (s)
00143 !
00144 !
00145 TYPE (DATE_TIME),   DIMENSION(:), INTENT(IN) :: TPSEED ! seeding date
00146 TYPE (DATE_TIME),   DIMENSION(:), INTENT(IN) :: TPREAP ! reaping date
00147 !
00148 REAL, DIMENSION(:), INTENT(IN)  :: PAOSIP  ! A/S for increasing x
00149 REAL, DIMENSION(:), INTENT(IN)  :: PAOSIM  ! A/S for decreasing x
00150 REAL, DIMENSION(:), INTENT(IN)  :: PAOSJP  ! A/S for increasing y
00151 REAL, DIMENSION(:), INTENT(IN)  :: PAOSJM  ! A/S for decreasing y
00152 REAL, DIMENSION(:), INTENT(IN)  :: PHO2IP  ! h/2 for increasing x
00153 REAL, DIMENSION(:), INTENT(IN)  :: PHO2IM  ! h/2 for decreasing x
00154 REAL, DIMENSION(:), INTENT(IN)  :: PHO2JP  ! h/2 for increasing y
00155 REAL, DIMENSION(:), INTENT(IN)  :: PHO2JM  ! h/2 for decreasing y
00156 !
00157 REAL, DIMENSION(:), INTENT(INOUT) :: PZ0EFFIP! roughness length for increasing x
00158 REAL, DIMENSION(:), INTENT(INOUT) :: PZ0EFFIM! roughness length for decreasing x
00159 REAL, DIMENSION(:), INTENT(INOUT) :: PZ0EFFJP! roughness length for increasing y
00160 REAL, DIMENSION(:), INTENT(INOUT) :: PZ0EFFJM! roughness length for decreasing y
00161 !
00162 REAL,   DIMENSION(:), INTENT(INOUT) :: PLAI    ! leaf area index (LAI) 
00163 REAL,   DIMENSION(:), INTENT(INOUT) :: PVEG    ! vegetation fraction
00164 REAL,   DIMENSION(:), INTENT(INOUT) :: PZ0     ! roughness length: momentum
00165 REAL,   DIMENSION(:), INTENT(INOUT) :: PALBNIR ! snow-free near-infra-red albedo
00166 REAL,   DIMENSION(:), INTENT(INOUT) :: PALBVIS ! snow-free visible albedo
00167 REAL,   DIMENSION(:), INTENT(INOUT) :: PALBUV  ! snow-free UV albedo
00168 REAL,   DIMENSION(:), INTENT(INOUT) :: PEMIS   ! snow-free emissivity
00169 !
00170 REAL,   DIMENSION(:), INTENT(INOUT) :: PANFM              ! maximum leaf assimilation
00171 REAL,   DIMENSION(:), INTENT(INOUT) :: PANDAY             ! daily net CO2 assimilation
00172 REAL, DIMENSION(:,:), INTENT(INOUT) :: PBIOMASS           ! biomass of day-1
00173 REAL, DIMENSION(:,:), INTENT(INOUT) :: PRESP_BIOMASS      ! daily cumulated respiration of biomass (kgDM/m2/day)
00174 REAL, DIMENSION(:,:), INTENT(INOUT) :: PRESP_BIOMASS_INST ! instantaneous respiration of biomass (kgCO2/kgair m/s)
00175 !
00176 REAL, DIMENSION(:,:), INTENT(OUT)   :: PINCREASE          ! increment of biomass (gC m-2 s-1)
00177 REAL, DIMENSION(:,:), INTENT(OUT)   :: PTURNOVER          ! biomass turnover going into litter (gC m-2 s-1)
00178 !
00179 !*      0.2    declarations of local variables
00180 !
00181 REAL, DIMENSION(SIZE(PRESP_BIOMASS,1),SIZE(PRESP_BIOMASS,2)) :: ZRESP_BIOMASS_LAST ! biomass at t-1 (kg/m2/s)
00182 REAL,    DIMENSION(SIZE(PLAI))    :: ZBIOMASS_LEAF   ! temporary leaf biomass 
00183 REAL,    DIMENSION(SIZE(PLAI))    :: ZBSLAI_NITRO    ! (Calvet et al. 2008) ratio of biomass to LAI
00184                                                      ! with representation of nitrogen dilution
00185 REAL,    DIMENSION(SIZE(PLAI)) :: ZCO2, ZCNA_NITRO   ! fct of CO2        
00186 REAL,    DIMENSION(SIZE(PLAI)) ::  ZCNAREF, ZPARAM
00187 INTEGER, DIMENSION(1)          :: IDMAX
00188 !
00189 REAL, PARAMETER                   :: ZCOEF1 = 10.0
00190 REAL, PARAMETER                   :: ZCOEF2 = 25.0
00191 REAL, PARAMETER                   :: ZDEPTH = 1.0   !Temp depth m
00192 REAL                              :: ZLOG2
00193 !
00194 REAL, DIMENSION(SIZE(PTG,1))      :: ZTG_VEG      ! surface temperature   (C)
00195 REAL, DIMENSION(SIZE(PTG,1))      :: ZTG_SOIL     ! soil temperature   (C)
00196 REAL, DIMENSION(SIZE(PTG,1))      :: ZDG_SOIL     ! soil depth for DIF (m)
00197 REAL                              :: ZWGHT_SOIL   ! Weight for DIF (m)
00198 !
00199 LOGICAL, DIMENSION(SIZE(PLAI))    :: GMASK_AGRI
00200 LOGICAL                           :: GMASK
00201 INTEGER                           :: INI, INL, JI, JL, IDEPTH
00202 !
00203 REAL(KIND=JPRB) :: ZHOOK_HANDLE
00204 !
00205 !-----------------------------------------------------------------
00206 !
00207 !*      1.     Preliminaries
00208 !              -------------
00209 !
00210 IF (LHOOK) CALL DR_HOOK('VEGETATION_EVOL',0,ZHOOK_HANDLE)
00211 !
00212 INI=SIZE(PTG,1)
00213 INL=SIZE(PTG,2)
00214 !
00215 ZLOG2 = LOG(2.0)
00216 !
00217 ZTG_SOIL (:) = 0.0
00218 !
00219 ! Mask where vegetation evolution is performed (just before solar midnight)
00220 GMASK = ( PTIME - PTSTEP < 0. ) .AND. ( PTIME >= 0. )
00221 !
00222 ! Save RESP_BIOMASS at t-1
00223 IF (GMASK) THEN
00224   PRESP_BIOMASS     (:,1) = 0.0
00225   ZRESP_BIOMASS_LAST(:,:) = 0.0
00226 ELSE
00227   PRESP_BIOMASS     (:,1) = PRESP_BIOMASS(:,1) + PRESP_BIOMASS_INST(:,1) * (PTSTEP*PRHOA(:)*XMC)/(XPCCO2*XMCO2)
00228   ZRESP_BIOMASS_LAST(:,:) = PRESP_BIOMASS(:,:)
00229 ENDIF
00230 !
00231 !*      2.     Interactive vegetation
00232 !              ----------------------
00233 !
00234 !  LAI daily mortality and assimilation
00235 !
00236 ZBIOMASS_LEAF(:) = PBIOMASS(:,1)
00237 !
00238 IF (GMASK) THEN
00239   IF (HPHOTO=='LAI' .OR. HPHOTO=='LST') THEN
00240     CALL LAILOSS(PVEG, PSEFOLD, PANMAX, PANDAY, PANFM, ZBIOMASS_LEAF)  
00241     CALL LAIGAIN(PBSLAI, PLAIMIN, PVEG, ZBIOMASS_LEAF, PLAI, PANDAY)
00242     PBIOMASS(:,1) = ZBIOMASS_LEAF(:)
00243   ELSE IF (HPHOTO=='NIT' .OR. HPHOTO=='NCB') THEN
00244     ! ratio of biomass to LAI with representation of nitrogen dilution fct of CO2
00245     DO JI = 1,INI
00246       IDMAX = MAXLOC(PVEGTYPE(JI,:))
00247       ZCNAREF(JI) = XCNAREF(IDMAX(1))
00248       ZPARAM (JI) = XPARAM (IDMAX(1))
00249       !--------representation of nitrogen dilution fct of CO2 (Calvet et al. 2008)-------------
00250       IF ( (PCE_NITRO (JI)*PCNA_NITRO(JI)+PCF_NITRO (JI))/=0. .AND. ZCNAREF(JI).NE.0. ) THEN 
00251         ZCO2        (JI) = P_CO2(JI)/1.e-6/XMCO2*XMD  ! (ppmm ->  ppm)
00252         ZCNA_NITRO  (JI) = ZCNAREF(JI)*EXP(-0.048*EXP(ZPARAM(JI)-ZCNAREF(JI)/6.3)*ALOG(ZCO2(JI)/371.))
00253         ZBSLAI_NITRO(JI) = 1. / (PCE_NITRO(JI)*PCNA_NITRO(JI)+PCF_NITRO(JI))
00254       ELSE
00255         ZBSLAI_NITRO(JI) = PBSLAI_NITRO(JI)
00256       ENDIF
00257     ENDDO   
00258     PINCREASE(:,:)=0.0
00259     PTURNOVER(:,:)=0.0
00260     IF(ANY(PLAI(:)/=XUNDEF))THEN
00261       CALL NITRO_DECLINE(HPHOTO, HRESPSL, OTR_ML, KSPINW,                     &
00262                          ZBSLAI_NITRO, PSEFOLD, PGMES, PANMAX, PANDAY,        &
00263                          PLAT, PLAIMIN, PVEGTYPE, PTAU_WOOD,                  &
00264                          PANFM, PLAI, PBIOMASS, PRESP_BIOMASS, ZBIOMASS_LEAF, &
00265                          PINCREASE, PTURNOVER                               )
00266       CALL LAIGAIN(ZBSLAI_NITRO, PLAIMIN, PVEG, ZBIOMASS_LEAF, PLAI, PANDAY)
00267     ENDIF
00268   ENDIF
00269   ! CASE CPHOTO=AST reinitialise  PANDAY and PANFM 
00270   PANDAY=0.0
00271   PANFM =0.0    
00272 ENDIF
00273 !
00274 !
00275 IF (HPHOTO == 'NIT' .OR. HPHOTO=='NCB') THEN
00276   !
00277   ! * convert soil temperature from K to C (over 1m depth for DIF)
00278   !
00279   ZTG_VEG(:) = PTG(:,1)-XTT
00280   !
00281   IF(HISBA/='DIF')THEN        
00282     ZTG_SOIL(:) = PTG(:,2)-XTT   
00283   ELSE       
00284     DO JI=1,INI
00285        IDEPTH=KWG_LAYER(JI)
00286        ZDG_SOIL(JI)=MIN(ZDEPTH,PDG(JI,IDEPTH))
00287     ENDDO  
00288     DO JL=1,INL
00289        DO JI=1,INI     
00290           ZWGHT_SOIL=MIN(PDZG(JI,JL),MAX(0.0,ZDG_SOIL(JI)-PDG(JI,JL)+PDZG(JI,JL)))        
00291           ZTG_SOIL(JI)=ZTG_SOIL(JI)+(PTG(JI,JL)-XTT)*ZWGHT_SOIL/ZDG_SOIL(JI)
00292        ENDDO
00293     ENDDO 
00294   ENDIF
00295   !
00296   !
00297   ! * Respiration of structural biomass pools
00298   !
00299   PRESP_BIOMASS(:,2) = PRESP_BIOMASS(:,2) + PBIOMASS(:,2) * XRESPFACTOR_NIT    &
00300                                           * EXP((ZLOG2/ZCOEF1)*(ZTG_VEG(:)-ZCOEF2)) * PTSTEP  
00301   ! before optimization                   * 2.0**((PTG(:,2)-XTT-ZCOEF2)/ZCOEF1) * PTSTEP               
00302   !
00303   IF (HPHOTO == 'NIT') THEN
00304     !
00305     PRESP_BIOMASS(:,3) = PRESP_BIOMASS(:,3) + PBIOMASS(:,3) * XRESPFACTOR_NIT &
00306                                             * EXP((ZLOG2/ZCOEF1)*(ZTG_SOIL(:)-ZCOEF2)) * PTSTEP  
00307   ! before optimization                     * 2.0**((PTG(:,2)-XTT-ZCOEF2)/ZCOEF1) * PTSTEP               
00308     !
00309   ELSEIF (HPHOTO == 'NCB') THEN
00310     !
00311     PRESP_BIOMASS(:,2) = MIN(PRESP_BIOMASS(:,2), PBIOMASS(:,2))
00312     ! 
00313     PRESP_BIOMASS(:,3) = PRESP_BIOMASS(:,3) + PBIOMASS(:,3) * MAX( 0., &
00314         XCOEFF_MAINT_RESP_ZERO * (1. + XSLOPE_MAINT_RESP*ZTG_VEG(:))) * PTSTEP  
00315     PRESP_BIOMASS(:,3) = MIN(PRESP_BIOMASS(:,3), PBIOMASS(:,3))
00316     ! 
00317     PRESP_BIOMASS(:,4) = PRESP_BIOMASS(:,4) + PBIOMASS(:,4) * MAX( 0., &
00318         XCOEFF_MAINT_RESP_ZERO * (1. + XSLOPE_MAINT_RESP*ZTG_SOIL(:))) * PTSTEP  
00319     PRESP_BIOMASS(:,4) = MIN(PRESP_BIOMASS(:,4), PBIOMASS(:,4))
00320     !
00321   ENDIF
00322   !
00323   ! * Instantaneous respiration (kgCO2/kgair m/s)
00324   !
00325   DO JL=2,SIZE(PRESP_BIOMASS,2)
00326       PRESP_BIOMASS_INST(:,JL) = (PRESP_BIOMASS(:,JL) - ZRESP_BIOMASS_LAST(:,JL)) &
00327                                      * XPCCO2*XMCO2/(PTSTEP*PRHOA(:)*XMC)  
00328   ENDDO
00329 !  
00330 ENDIF
00331 
00332 !*      3.     Agricultural practices
00333 !              ----------------------
00334 !
00335 IF (OAGRIP) THEN
00336   !
00337   GMASK_AGRI(:) = .FALSE.
00338   WHERE ( TPSEED(:)%TDATE%MONTH /= NUNDEF .AND. ( KMONTH < TPSEED(:)%TDATE%MONTH .OR. &
00339          (KMONTH == TPSEED(:)%TDATE%MONTH .AND. KDAY < TPSEED(:)%TDATE%DAY) ) )  GMASK_AGRI(:) = .TRUE.
00340   WHERE ( TPREAP(:)%TDATE%MONTH /= NUNDEF .AND. ( KMONTH > TPREAP(:)%TDATE%MONTH .OR. &
00341          (KMONTH == TPREAP(:)%TDATE%MONTH .AND. KDAY >= TPREAP(:)%TDATE%DAY) ) ) GMASK_AGRI(:) = .TRUE. 
00342   !
00343   WHERE (GMASK_AGRI(:))
00344     PLAI(:)             = PLAIMIN(:)
00345     ZBIOMASS_LEAF(:)    = PLAI(:) * ZBSLAI_NITRO(:)
00346   END WHERE
00347 
00348   IF (HPHOTO == 'NIT' .OR. HPHOTO == 'NCB') THEN
00349     !
00350     WHERE (GMASK_AGRI(:))
00351       PBIOMASS(:,1)       = 0.0
00352       PBIOMASS(:,2)       = 0.0
00353       PBIOMASS(:,3)       = 0.0
00354       PRESP_BIOMASS(:,2)  = 0.0
00355       PRESP_BIOMASS(:,3)  = 0.0
00356     END WHERE
00357     !
00358     IF (HPHOTO == 'NCB') THEN
00359       !
00360       WHERE (GMASK_AGRI(:)) 
00361         PBIOMASS(:,4)       = 0.0
00362         PBIOMASS(:,5)       = 0.0
00363         PBIOMASS(:,6)       = 0.0
00364         PRESP_BIOMASS(:,4)  = 0.0
00365       END WHERE
00366       !
00367     ENDIF
00368     !
00369   ENDIF
00370   !
00371 ENDIF
00372 !
00373 !*      4.     Physical parameters depending on vegetation
00374 !              -------------------------------------------
00375 !
00376 IF (GMASK) THEN
00377   !
00378   WHERE( PVEG(:) > 0. )
00379     ! Evolution of vegetation fraction and roughness length due to LAI change
00380     PZ0 (:) = Z0V_FROM_LAI(PLAI(:),PH_TREE(:),PVEGTYPE(:,:)) 
00381     PVEG(:) = VEG_FROM_LAI(PLAI(:),PVEGTYPE(:,:))
00382     !
00383     ! Evolution of radiative parameters due to vegetation fraction change
00384     PEMIS(:)= EMIS_FROM_VEG(PVEG(:),PVEGTYPE(:,:))
00385   END WHERE
00386   !
00387   CALL ALBEDO(HALBEDO,                                  &
00388               PALBVIS_VEG,PALBNIR_VEG,PALBUV_VEG,PVEG,  &
00389               PALBVIS_SOIL,PALBNIR_SOIL,PALBUV_SOIL,    &
00390               PALBVIS,PALBNIR,PALBUV                    )  
00391   !
00392   ! Evolution of effective roughness length due to new surface roughness length
00393   !
00394   IF (SIZE(PAOSIP)>0) &
00395   CALL SUBSCALE_Z0EFF(PAOSIP,PAOSIM,PAOSJP,PAOSJM,         &
00396                       PHO2IP,PHO2IM,PHO2JP,PHO2JM,PZ0,     &
00397                       PZ0EFFIP,PZ0EFFIM,PZ0EFFJP,PZ0EFFJM  ) 
00398   !
00399 ENDIF
00400 !
00401 IF (LHOOK) CALL DR_HOOK('VEGETATION_EVOL',1,ZHOOK_HANDLE)
00402 !-----------------------------------------------------------------
00403 !
00404 END SUBROUTINE VEGETATION_EVOL