*IF DEF,A19_2A                                                             GROWT2A.2      
C *****************************COPYRIGHT******************************     GROWT2A.3      
C (c) CROWN COPYRIGHT 1997, METEOROLOGICAL OFFICE, All Rights Reserved.    GROWT2A.4      
C                                                                          GROWT2A.5      
C Use, duplication or disclosure of this code is subject to the            GROWT2A.6      
C restrictions as set forth in the contract.                               GROWT2A.7      
C                                                                          GROWT2A.8      
C                Meteorological Office                                     GROWT2A.9      
C                London Road                                               GROWT2A.10     
C                BRACKNELL                                                 GROWT2A.11     
C                Berkshire UK                                              GROWT2A.12     
C                RG12 2SZ                                                  GROWT2A.13     
C                                                                          GROWT2A.14     
C If no contract has been raised with this copy of the code, the use,      GROWT2A.15     
C duplication or disclosure of it is strictly prohibited.  Permission      GROWT2A.16     
C to do so must first be obtained in writing from the Head of Numerical    GROWT2A.17     
C Modelling at the above address.                                          GROWT2A.18     
C ******************************COPYRIGHT******************************    GROWT2A.19     
!!! Subroutine GROWTH -------------------------------------------------    GROWT2A.20     
!!!                                                                        GROWT2A.21     
!!! Purpose : Increments leaf, root and wood carbon.                       GROWT2A.22     
!!!                                                                        GROWT2A.23     
!!!                                                                        GROWT2A.24     
!!!  Model            Modification history:                                GROWT2A.25     
!!! version  Date                                                          GROWT2A.26     
!!!  4.4     10/97     New Deck. Peter Cox                                 GROWT2A.27     
!!!  4.5   12/05/98    Operate only on points indexed with TRIF_INDEX.     ABX1F405.1625   
!!!                    Richard Betts                                       ABX1F405.1626   
!!!                                                                        GROWT2A.28     
!!!END ----------------------------------------------------------------    GROWT2A.29     

      SUBROUTINE GROWTH (LAND_FIELD,TRIF_PTS,TRIF_INDEX                     1ABX1F405.1627   
     &,                  N,DPCG_DLAI,FORW,GAMMA,PC_G                       ABX1F405.1628   
                                                                           ABX1F405.1629   
     &,                  LEAF,ROOT,WOOD)                                   GROWT2A.32     
                                                                           GROWT2A.33     
      IMPLICIT NONE                                                        GROWT2A.34     
                                                                           GROWT2A.35     
      INTEGER                                                              GROWT2A.36     
     & LAND_FIELD                 ! IN Total number of land points.        GROWT2A.37     
     &,TRIF_PTS                   ! IN Number of points on which           ABX1F405.1630   
!                                 !    TRIFFID may operate                 ABX1F405.1631   
     &,TRIF_INDEX(LAND_FIELD)     ! IN Indices of land points on           ABX1F405.1632   
!                                 !    which TRIFFID may operate           ABX1F405.1633   
     &,N                          ! IN Vegetation type.                    GROWT2A.41     
     &,L,T                        ! WORK Loop counters                     ABX1F405.1638   
                                                                           GROWT2A.43     
      REAL                                                                 GROWT2A.44     
     & DPCG_DLAI(LAND_FIELD)      ! IN Rate of change of PC_G with         GROWT2A.45     
C                                 !    leaf area index                     ABX1F405.1634   
C                                 !    (kg C/m2/360days/LAI).              ABX1F405.1635   
     &,FORW                       ! IN Forward timestep weighting.         GROWT2A.47     
     &,GAMMA                      ! IN Inverse timestep (/360days).        ABX1F405.1636   
     &,PC_G(LAND_FIELD)           ! IN Net carbon flux available           GROWT2A.49     
C                                 !    for growth (kg C/m2/360days).       ABX1F405.1637   
     &,LEAF(LAND_FIELD)           ! INOUT Leaf biomass (kg C/m2).          GROWT2A.51     
     &,ROOT(LAND_FIELD)           ! INOUT Root biomass (kg C/m2).          GROWT2A.52     
     &,WOOD(LAND_FIELD)           ! INOUT Woody biomass (kg C/m2).         GROWT2A.53     
                                                                           GROWT2A.54     
      REAL                                                                 GROWT2A.55     
     & DENOM                      ! WORK Denominator of update             GROWT2A.56     
C                                 !      equation.                         GROWT2A.57     
     &,DENOM_MIN                  ! WORK Minimum value for the             GROWT2A.58     
C                                 !      denominator of the update         GROWT2A.59     
C                                 !      equation. Ensures that            GROWT2A.60     
C                                 !      gradient descent does not         GROWT2A.61     
C                                 !      lead to an unstable solution.     GROWT2A.62     
     &,DLEAF,DROOT,DWOOD          ! WORK Increments to leaf, root          GROWT2A.63     
C                                 !      and woody biomass (kg C/m2).      GROWT2A.64     
     &,DL_DW                      ! WORK Rate of change of leaf            GROWT2A.65     
C                                 !      carbon with wood carbon.          GROWT2A.66     
     &,DLAI_DW                    ! WORK Rate of change of leaf area       GROWT2A.67     
C                                 !      index with wood carbon            GROWT2A.68     
C                                 !      (LAI m2/kg C).                    GROWT2A.69     
     &,DR_DW                      ! WORK Rate of change of root            GROWT2A.70     
C                                 !      carbon with wood carbon.          GROWT2A.71     
     &,NUMER                      ! WORK Numerator of the update           GROWT2A.72     
C                                 !      equation.                         GROWT2A.73     
     &,WOOD_MAX                   ! WORK Maximum wood carbon (kg C/m2).    GROWT2A.74     
     &,WOOD_MIN                   ! WORK Minimum wood carbon (kg C/m2).    GROWT2A.75     
                                                                           GROWT2A.76     
*CALL NSTYPES                                                              GROWT2A.77     
*CALL TRIF                                                                 GROWT2A.78     
*CALL DESCENT                                                              GROWT2A.79     
                                                                           GROWT2A.80     
      DO T=1,TRIF_PTS                                                      ABX1F405.1639   
        L=TRIF_INDEX(T)                                                    ABX1F405.1640   
                                                                           GROWT2A.82     
C----------------------------------------------------------------------    GROWT2A.83     
C Calculate the increment to the wood carbon                               GROWT2A.84     
C----------------------------------------------------------------------    GROWT2A.85     
        DL_DW = LEAF(L)/(B_WL(N)*WOOD(L))                                  GROWT2A.86     
        DR_DW = DL_DW                                                      GROWT2A.87     
        DLAI_DW = DL_DW/SIGL(N)                                            GROWT2A.88     
                                                                           GROWT2A.89     
        NUMER = PC_G(L)                                                    GROWT2A.90     
        DENOM = (1+DL_DW+DR_DW)*GAMMA-FORW*DLAI_DW*DPCG_DLAI(L)            GROWT2A.91     
        DENOM_MIN = (1+DL_DW+DR_DW)*GAMMA_EQ                               GROWT2A.92     
        DENOM = MAX(DENOM,DENOM_MIN)                                       GROWT2A.93     
                                                                           GROWT2A.94     
        DWOOD = NUMER/DENOM                                                GROWT2A.95     
                                                                           GROWT2A.96     
C----------------------------------------------------------------------    GROWT2A.97     
C Ensure that the local leaf area index does not drop below its            GROWT2A.98     
C minimum value or exceed its maximum value.                               GROWT2A.99     
C----------------------------------------------------------------------    GROWT2A.100    
        WOOD_MIN = A_WL(N)*LAI_MIN(N)**B_WL(N)                             GROWT2A.101    
        WOOD_MAX = A_WL(N)*LAI_MAX(N)**B_WL(N)                             GROWT2A.102    
        DWOOD = MAX((WOOD_MIN-WOOD(L)),DWOOD)                              GROWT2A.103    
        DWOOD = MIN((WOOD_MAX-WOOD(L)),DWOOD)                              GROWT2A.104    
                                                                           GROWT2A.105    
C----------------------------------------------------------------------    GROWT2A.106    
C Diagnose the increments to leaf and root carbon                          GROWT2A.107    
C----------------------------------------------------------------------    GROWT2A.108    
        DLEAF = SIGL(N)*((WOOD(L)+DWOOD)/A_WL(N))**(1.0/B_WL(N))           GROWT2A.109    
     &         -LEAF(L)                                                    GROWT2A.110    
        DROOT = DLEAF                                                      GROWT2A.111    
                                                                           GROWT2A.112    
C----------------------------------------------------------------------    GROWT2A.113    
C Update carbon contents                                                   GROWT2A.114    
C----------------------------------------------------------------------    GROWT2A.115    
        LEAF(L) = LEAF(L)+DLEAF                                            GROWT2A.116    
        ROOT(L) = ROOT(L)+DROOT                                            GROWT2A.117    
        WOOD(L) = WOOD(L)+DWOOD                                            GROWT2A.118    
                                                                           GROWT2A.119    
      ENDDO                                                                GROWT2A.120    
                                                                           GROWT2A.121    
      RETURN                                                               GROWT2A.122    
      END                                                                  GROWT2A.123    
*ENDIF                                                                     GROWT2A.124