*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.29SUBROUTINE 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