*IF DEF,A19_1A                                                             VEG_IC1A.2      
C *****************************COPYRIGHT******************************     VEG_IC1A.3      
C (c) CROWN COPYRIGHT 1997, METEOROLOGICAL OFFICE, All Rights Reserved.    VEG_IC1A.4      
C                                                                          VEG_IC1A.5      
C Use, duplication or disclosure of this code is subject to the            VEG_IC1A.6      
C restrictions as set forth in the contract.                               VEG_IC1A.7      
C                                                                          VEG_IC1A.8      
C                Meteorological Office                                     VEG_IC1A.9      
C                London Road                                               VEG_IC1A.10     
C                BRACKNELL                                                 VEG_IC1A.11     
C                Berkshire UK                                              VEG_IC1A.12     
C                RG12 2SZ                                                  VEG_IC1A.13     
C                                                                          VEG_IC1A.14     
C If no contract has been raised with this copy of the code, the use,      VEG_IC1A.15     
C duplication or disclosure of it is strictly prohibited.  Permission      VEG_IC1A.16     
C to do so must first be obtained in writing from the Head of Numerical    VEG_IC1A.17     
C Modelling at the above address.                                          VEG_IC1A.18     
C ******************************COPYRIGHT******************************    VEG_IC1A.19     
! Version 1A of vegetation section: models leaf phenology                  VEG_IC1A.20     
!                                                                          VEG_IC1A.21     
! Subroutine Interface:                                                    VEG_IC1A.22     

      SUBROUTINE VEG_IC(P_FIELD,FIRST_POINT,LAST_POINT,LAND_FIELD           1,2VEG_IC1A.23     
     &,                 LAND1,LAND_PTS,LAND_INDEX,P_ROWS,ROW_LENGTH        ABX3F405.13     
*IF DEF,MPP                                                                ABX3F405.14     
     &,                 EW_Halo,NS_Halo                                    ABX3F405.15     
*ENDIF                                                                     ABX3F405.16     
     &,                 A_STEP,ASTEPS_SINCE_TRIFFID                        VEG_IC1A.25     
     &,                 PHENOL_PERIOD,TRIFFID_PERIOD                       VEG_IC1A.26     
     &,                 L_PHENOL,L_TRIFFID,L_TRIF_EQ                       VEG_IC1A.27     
     &,                 ALB_SOIL,ATIMESTEP,FRAC_DISTURB                    VEG_IC1A.28     
     &,                 G_LEAF_AC,G_LEAF_PHEN_AC,NPP_AC                    VEG_IC1A.29     
     &,                 RESP_S_AC,RESP_W_AC                                VEG_IC1A.30     
     &,                 CS,FRAC,LAI,HT                                     VEG_IC1A.31     
     &,                 ALBSNC,ALBSNF,CATCH_T,Z0_P,Z0_T                    VEG_IC1A.32     
     &,                 C_VEG,CV,LIT_C,LIT_C_MN,G_LEAF_DAY,G_LEAF_PHEN     ABX1F405.1311   
     &,                 LAI_PHEN,G_LEAF_DR_OUT,NPP_DR_OUT,RESP_W_DR_OUT    ABX1F405.1312   
     &,                 RESP_S_DR_OUT                                      ABX1F405.1313   
     &                  )                                                  ABX1F405.1314   
                                                                           VEG_IC1A.34     
                                                                           VEG_IC1A.35     
      IMPLICIT NONE                                                        VEG_IC1A.36     
!                                                                          VEG_IC1A.37     
! Description:                                                             VEG_IC1A.38     
!   Updates Leaf Area Index for Plant Functional Types (PFTs) and uses     VEG_IC1A.39     
!   this to derive new vegetation parameters for PFTs along with gridbox   VEG_IC1A.40     
!   mean values where appropriate.                                         VEG_IC1A.41     
!                                                                          VEG_IC1A.42     
! Method:                                                                  VEG_IC1A.43     
!   Calls PHENOL which models phenology and updates Leaf Area Index        VEG_IC1A.44     
!   (LAI), then passes new LAI into SPARM along with canopy height         VEG_IC1A.45     
!   and fractional cover of Plant Functional Types.  SPARM uses this to    VEG_IC1A.46     
!   derive the vegetation parameters for each PFT, and also derives        VEG_IC1A.47     
!   gridbox means where this is required.                                  VEG_IC1A.48     
!                                                                          VEG_IC1A.49     
! Current Code Owner:  Richard Betts                                       VEG_IC1A.50     
!                                                                          VEG_IC1A.51     
! History:                                                                 VEG_IC1A.52     
! Version   Date     Comment                                               VEG_IC1A.53     
! -------   ----     -------                                               VEG_IC1A.54     
!   4.4    8/10/97   Original code.  Richard Betts                         VEG_IC1A.55     
!   4.5    5/8/98    Pass info on grid and halo dimensions into VEG.       ABX3F405.17     
!                    Richard Betts                                         ABX3F405.18     
!   4.5   23/11/98   Output G_LEAF_DAY, G_LEAF_PHEN and LAI_PHEN as        ABX1F405.1315   
!                    diagnostics, and include G_LEAF_DR_OUT, NPP_DR_OUT,   ABX1F405.1316   
!                    RESP_W_DR_OUT and RESP_S_DR_OUT as dummy              ABX1F405.1317   
!                    arguments.  Richard Betts                             ABX1F405.1318   
!                                                                          VEG_IC1A.56     
! Code Description:                                                        VEG_IC1A.57     
!   Language: FORTRAN 77 + common extensions.                              VEG_IC1A.58     
!   This code is written to UMDP3 v6 programming standards.                VEG_IC1A.59     
                                                                           VEG_IC1A.60     
      INTEGER                                                              VEG_IC1A.61     
     & P_FIELD               ! IN Number of P-points.                      VEG_IC1A.62     
     &,FIRST_POINT           ! IN First P-point to be processed.           VEG_IC1A.63     
     &,LAST_POINT            ! IN Last P-point to be processed.            VEG_IC1A.64     
     &,LAND_FIELD            ! IN Number of land points.                   VEG_IC1A.65     
     &,LAND1                 ! IN First land point to be processed.        VEG_IC1A.66     
     &,LAND_PTS              ! IN Number of land points to be processed.   VEG_IC1A.67     
     &,P_ROWS                       ! IN Number of rows on P grid.         ABX3F405.19     
     &,ROW_LENGTH                   ! IN Number of P points in a row.      ABX3F405.20     
*IF DEF,MPP                                                                ABX3F405.21     
     &,EW_Halo                      ! IN Halo size in the EW direction.    ABX3F405.22     
     &,NS_Halo                      ! IN Halo size in the NS direction.    ABX3F405.23     
*ENDIF                                                                     ABX3F405.24     
     &,A_STEP                ! IN Atmospheric timestep number.             VEG_IC1A.68     
     &,ASTEPS_SINCE_TRIFFID  ! INOUT Number of atmospheric                 VEG_IC1A.69     
!                            !       timesteps since last call             VEG_IC1A.70     
!                            !       to TRIFFID.                           VEG_IC1A.71     
     &,PHENOL_PERIOD         ! IN Phenology period (days).                 VEG_IC1A.72     
     &,TRIFFID_PERIOD        ! IN TRIFFID period (days).                   VEG_IC1A.73     
                                                                           VEG_IC1A.74     
*CALL NSTYPES                                                              VEG_IC1A.75     
                                                                           VEG_IC1A.76     
      INTEGER                                                              VEG_IC1A.77     
     & LAND_INDEX(LAND_FIELD)       ! IN I=LAND_INDEX(L) => the Ith        VEG_IC1A.78     
!                                   !    point in P_FIELD is the Lth       VEG_IC1A.79     
!                                   !    land point.                       VEG_IC1A.80     
      LOGICAL                                                              VEG_IC1A.81     
     & L_PHENOL                     ! IN .T. for interactive leaf          VEG_IC1A.82     
!                                   !    phenology.                        VEG_IC1A.83     
     &,L_TRIFFID                    ! IN .T. for interactive vegetation.   VEG_IC1A.84     
     &,L_TRIF_EQ                    ! IN .T. for vegetation equilibrium.   VEG_IC1A.85     
                                                                           VEG_IC1A.86     
      REAL                                                                 VEG_IC1A.87     
     & ALB_SOIL(LAND_FIELD)         ! IN snow-free albedo of soil.         VEG_IC1A.88     
     &,ATIMESTEP                    ! IN Atmospheric timestep (s).         VEG_IC1A.89     
     &,FRAC_DISTURB(LAND_FIELD)     ! IN Fraction of gridbox in which      VEG_IC1A.90     
!                                   !    vegetation is disturbed.          VEG_IC1A.91     
     &,G_LEAF_AC(LAND_FIELD,NPFT)   ! INOUT Accumulated leaf turnover      VEG_IC1A.92     
!                                   !       rate.                          VEG_IC1A.93     
     &,G_LEAF_PHEN_AC(LAND_FIELD,NPFT)! INOUT Accumulated leaf turnover    VEG_IC1A.94     
!                                   !         rate including phenology.    VEG_IC1A.95     
     &,NPP_AC(LAND_FIELD,NPFT)      ! INOUT Accumulated NPP (kg C/m2).     VEG_IC1A.96     
     &,RESP_W_AC(LAND_FIELD,NPFT)   ! INOUT Accumulated wood respiration   VEG_IC1A.97     
!                                   !       (kg C/m2).                     VEG_IC1A.98     
     &,RESP_S_AC(LAND_FIELD)        ! INOUT Accumulated soil respiration   VEG_IC1A.99     
!                                   !       (kg C/m2).                     VEG_IC1A.100    
     &,CS(LAND_FIELD)               ! INOUT Soil carbon content            VEG_IC1A.101    
!                                   !       (kg C/m2).                     VEG_IC1A.102    
     &,FRAC(LAND_FIELD,NTYPE)       ! INOUT Fractions of surface types.    VEG_IC1A.103    
     &,LAI(LAND_FIELD,NPFT)         ! INOUT LAI of plant functional        VEG_IC1A.104    
!                                   !       types.                         VEG_IC1A.105    
     &,HT(LAND_FIELD,NPFT)          ! INOUT Height of plant functional     VEG_IC1A.106    
!                                   !       types (m).                     VEG_IC1A.107    
     &,ALBSNC(LAND_FIELD)           ! OUT Snow-covered albedo.             VEG_IC1A.108    
     &,ALBSNF(LAND_FIELD)           ! OUT Snow-free albedo.                VEG_IC1A.109    
     &,CATCH_T(LAND_FIELD,NTYPE-1)  ! OUT Canopy capacity for each type    VEG_IC1A.110    
!                                   !     aside from ice (kg/m2).          VEG_IC1A.111    
     &,G_LEAF_DAY(LAND_FIELD,NPFT)    ! OUT Mean leaf turnover rate for    ABX1F405.1319   
!                                     !     input to PHENOL (/360days).    ABX1F405.1320   
     &,G_LEAF_PHEN(LAND_FIELD,NPFT)   ! OUT Mean leaf turnover rate over   ABX1F405.1321   
!                                     !     phenology period (/360days).   ABX1F405.1322   
     &,LAI_PHEN(LAND_FIELD,NPFT)      ! OUT LAI of PFTs after phenology.   ABX1F405.1323   
     &,Z0_P(P_FIELD)                ! OUT Effective roughness length       VEG_IC1A.112    
!                                   !     on full grid (m).                VEG_IC1A.113    
     &,Z0_T(LAND_FIELD,NTYPE)       ! OUT Roughness length for each type   VEG_IC1A.114    
!                                   !     (m).                             VEG_IC1A.115    
     &,C_VEG(LAND_FIELD,NPFT)       ! OUT Total carbon content of          VEG_IC1A.116    
!                                   !     the vegetation (kg C/m2).        VEG_IC1A.117    
     &,CV(LAND_FIELD)               ! OUT Gridbox mean vegetation          VEG_IC1A.118    
!                                   !     carbon (kg C/m2).                VEG_IC1A.119    
     &,LIT_C(LAND_FIELD,NPFT)       ! OUT Carbon Litter                    ABX1F405.1324   
!                                   !     (kg C/m2/360days).               ABX1F405.1325   
     &,LIT_C_MN(LAND_FIELD)         ! OUT Gridbox mean carbon litter       VEG_IC1A.121    
!                                   !     (kg C/m2/360days).               ABX1F405.1326   
                                                                           VEG_IC1A.123    
! DUMMY ARGUMENTS                                                          ABX1F405.1327   
      REAL                                                                 ABX1F405.1328   
     & G_LEAF_DR_OUT(LAND_FIELD,NPFT)                                      ABX1F405.1329   
     &,NPP_DR_OUT(LAND_FIELD,NPFT)                                         ABX1F405.1330   
     &,RESP_W_DR_OUT(LAND_FIELD,NPFT)                                      ABX1F405.1331   
     &,RESP_S_DR_OUT(LAND_FIELD)                                           ABX1F405.1332   
                                                                           ABX1F405.1333   
      CALL VEG(P_FIELD,FIRST_POINT,LAST_POINT,LAND_FIELD                   VEG_IC1A.124    
     &,        LAND1,LAND_PTS,LAND_INDEX,P_ROWS,ROW_LENGTH                 ABX3F405.25     
*IF DEF,MPP                                                                ABX3F405.26     
     &,        EW_Halo,NS_Halo                                             ABX3F405.27     
*ENDIF                                                                     ABX3F405.28     
     &,        A_STEP,PHENOL_PERIOD,L_PHENOL                               VEG_IC1A.126    
     &,        ALB_SOIL,ATIMESTEP                                          VEG_IC1A.127    
     &,        G_LEAF_AC,FRAC,LAI,HT                                       VEG_IC1A.128    
     &,        ALBSNC,ALBSNF,CATCH_T,Z0_P,Z0_T                             ABX1F405.1334   
     &,        G_LEAF_DAY,G_LEAF_PHEN,LAI_PHEN                             ABX1F405.1335   
     &         )                                                           ABX1F405.1336   
                                                                           VEG_IC1A.130    
      RETURN                                                               VEG_IC1A.131    
      END                                                                  VEG_IC1A.132    
*ENDIF                                                                     VEG_IC1A.133