*IF DEF,A19_2A TRIFD2A.2 C *****************************COPYRIGHT****************************** TRIFD2A.3 C (c) CROWN COPYRIGHT 1997, METEOROLOGICAL OFFICE, All Rights Reserved. TRIFD2A.4 C TRIFD2A.5 C Use, duplication or disclosure of this code is subject to the TRIFD2A.6 C restrictions as set forth in the contract. TRIFD2A.7 C TRIFD2A.8 C Meteorological Office TRIFD2A.9 C London Road TRIFD2A.10 C BRACKNELL TRIFD2A.11 C Berkshire UK TRIFD2A.12 C RG12 2SZ TRIFD2A.13 C TRIFD2A.14 C If no contract has been raised with this copy of the code, the use, TRIFD2A.15 C duplication or disclosure of it is strictly prohibited. Permission TRIFD2A.16 C to do so must first be obtained in writing from the Head of Numerical TRIFD2A.17 C Modelling at the above address. TRIFD2A.18 C ******************************COPYRIGHT****************************** TRIFD2A.19 !!! Subroutine TRIFFID ------------------------------------------------ TRIFD2A.20 !!! TRIFD2A.21 !!! Top-down TRIFD2A.22 !!! Representation of TRIFD2A.23 !!! Interactive TRIFD2A.24 !!! Foliage and TRIFD2A.25 !!! Flora TRIFD2A.26 !!! Including TRIFD2A.27 !!! Dynamics TRIFD2A.28 !!! TRIFD2A.29 !!! Purpose : Simulates changes in vegetation structure, areal TRIFD2A.30 !!! coverage and the carbon contents of vegetation and soil. TRIFD2A.31 !!! can be used to advance these variables dynamically TRIFD2A.32 !!! (GAMMA=1/TIMESTEP) or to iterate towards equilibrium TRIFD2A.33 !!! (GAMMA --> 0.0, FORW=1.0). ABX1F405.1587 !!! TRIFD2A.35 !!! TRIFD2A.36 !!! Model Modification history: TRIFD2A.37 !!! version Date TRIFD2A.38 !!! 4.4 10/97 New Deck. Peter Cox TRIFD2A.39 !!! 4.5 12/05/98 Operate only on points indexed with TRIF_INDEX. ABX1F405.1588 !!! Richard Betts ABX1F405.1589 !!! TRIFD2A.40 !!!END ---------------------------------------------------------------- TRIFD2A.41SUBROUTINE TRIFFID (LAND_FIELD,TRIF_PTS,TRIF_INDEX,FORW,GAMMA 1,3ABX1F405.1590 &, FRAC_VS,G_ANTH,G_LEAF,NPP,RESP_S,RESP_W ABX1F405.1591 &, CS,FRAC,HT,LAI,C_VEG,CV,LIT_C,LIT_C_T) TRIFD2A.44 TRIFD2A.45 TRIFD2A.46 IMPLICIT NONE TRIFD2A.47 TRIFD2A.48 *CALL NSTYPES
TRIFD2A.49 TRIFD2A.50 INTEGER TRIFD2A.51 & LAND_FIELD ! IN Total number of land points. TRIFD2A.52 &,TRIF_PTS ! IN Number of points on which ABX1F405.1592 ! ! TRIFFID may operate ABX1F405.1593 &,TRIF_INDEX(LAND_FIELD) ! IN Indices of land points on ABX1F405.1594 ! ! which TRIFFID may operate ABX1F405.1595 &,L,N,T ! WORK Loop counters ABX1F405.1596 TRIFD2A.57 REAL TRIFD2A.58 & FORW ! IN Forward timestep weighting. TRIFD2A.59 &,FRAC_VS(LAND_FIELD) ! IN Total fraction of gridbox ABX1F405.1597 ! ! covered by veg or soil. ABX1F405.1598 &,GAMMA ! IN Inverse timestep (/360days). ABX1F405.1599 &,G_ANTH(LAND_FIELD) ! IN Anthropogenic disturbance rate TRIFD2A.61 C ! (/360days). ABX1F405.1600 &,G_LEAF(LAND_FIELD,NPFT) ! IN Turnover rate for leaf and TRIFD2A.63 C ! fine root biomass (/360days). ABX1F405.1601 &,NPP(LAND_FIELD,NPFT) ! INOUT Net primary productivity TRIFD2A.65 C ! (kg C/m2/360days). ABX1F405.1602 &,RESP_S(LAND_FIELD) ! INOUT Soil respiration ABX1F405.1603 C ! (kg C/m2/360days). ABX1F405.1604 &,RESP_W(LAND_FIELD,NPFT) ! INOUT Wood maintenance respiration TRIFD2A.68 C ! (kg C/m2/360days). ABX1F405.1605 &,CS(LAND_FIELD) ! INOUT Soil carbon (kg C/m2). TRIFD2A.70 &,FRAC(LAND_FIELD,NTYPE) ! INOUT Fractional cover of each TRIFD2A.71 C ! Functional Type. TRIFD2A.72 &,HT(LAND_FIELD,NPFT) ! INOUT Vegetation height (m). TRIFD2A.73 &,LAI(LAND_FIELD,NPFT) ! INOUT Leaf area index. TRIFD2A.74 &,C_VEG(LAND_FIELD,NPFT) ! OUT Total carbon content of TRIFD2A.75 C ! the vegetation (kg C/m2). TRIFD2A.76 &,CV(LAND_FIELD) ! OUT Gridbox mean vegetation TRIFD2A.77 C ! carbon (kg C/m2). TRIFD2A.78 &,LIT_C(LAND_FIELD,NPFT) ! OUT Carbon Litter (kg C/m2/360days). ABX1F405.1606 &,LIT_C_T(LAND_FIELD) ! OUT Gridbox mean carbon litter TRIFD2A.80 C ! (kg C/m2/360days). ABX1F405.1607 TRIFD2A.82 REAL TRIFD2A.83 & DCVEG(LAND_FIELD,NPFT) ! WORK Change in vegetation carbon TRIFD2A.84 C ! during the timestep TRIFD2A.85 C ! (kg C/m2/timestep). TRIFD2A.86 &,DFRAC(LAND_FIELD,NPFT) ! WORK Change in areal fraction TRIFD2A.87 C ! during the timestep TRIFD2A.88 C ! (/timestep). TRIFD2A.89 &,LAI_BAL(LAND_FIELD,NPFT) ! WORK Leaf area index in balanced TRIFD2A.90 C ! growth state. TRIFD2A.91 &,LEAF(LAND_FIELD,NPFT) ! WORK Leaf biomass (kg C/m2). TRIFD2A.92 &,PC_S(LAND_FIELD,NPFT) ! WORK Net carbon flux available TRIFD2A.93 C ! for spreading ABX1F405.1608 C ! (kg C/m2/yr). ABX1F405.1609 &,PHEN(LAND_FIELD,NPFT) ! WORK Phenological state. TRIFD2A.95 &,ROOT(LAND_FIELD,NPFT) ! WORK Root biomass (kg C/m2). TRIFD2A.96 &,WOOD(LAND_FIELD,NPFT) ! WORK Woody biomass (kg C/m2). TRIFD2A.97 TRIFD2A.98 *CALL TRIF
TRIFD2A.99 TRIFD2A.100 C---------------------------------------------------------------------- TRIFD2A.101 C Loop through Functional Types TRIFD2A.102 C---------------------------------------------------------------------- TRIFD2A.103 DO N=1,NPFT TRIFD2A.104 TRIFD2A.105 C---------------------------------------------------------------------- TRIFD2A.106 C Loop through TRIFFID points ABX1F405.1610 C---------------------------------------------------------------------- TRIFD2A.108 DO T=1,TRIF_PTS ABX1F405.1611 L=TRIF_INDEX(T) ABX1F405.1612 TRIFD2A.110 C---------------------------------------------------------------------- TRIFD2A.111 C Diagnose the balanced-growth leaf area index and the associated leaf, TRIFD2A.112 C wood, root and total vegetation carbon TRIFD2A.113 C---------------------------------------------------------------------- TRIFD2A.114 LAI_BAL(L,N) = (A_WS(N)*ETA_SL(N)*HT(L,N) TRIFD2A.115 & /A_WL(N))**(1.0/(B_WL(N)-1)) TRIFD2A.116 LEAF(L,N) = SIGL(N)*LAI_BAL(L,N) TRIFD2A.117 ROOT(L,N) = LEAF(L,N) TRIFD2A.118 WOOD(L,N) = A_WL(N)*(LAI_BAL(L,N)**B_WL(N)) TRIFD2A.119 C_VEG(L,N) = LEAF(L,N) + ROOT(L,N) + WOOD(L,N) TRIFD2A.120 C---------------------------------------------------------------------- TRIFD2A.121 C Diagnose the phenological state TRIFD2A.122 C---------------------------------------------------------------------- TRIFD2A.123 PHEN(L,N) = LAI(L,N)/LAI_BAL(L,N) TRIFD2A.124 TRIFD2A.125 ENDDO TRIFD2A.126 TRIFD2A.127 C---------------------------------------------------------------------- TRIFD2A.128 C Update vegetation carbon contents TRIFD2A.129 C---------------------------------------------------------------------- TRIFD2A.130 CALL VEGCARB
(LAND_FIELD,TRIF_PTS,TRIF_INDEX,N,FORW ABX1F405.1613 &, GAMMA,G_LEAF(1,N),NPP(1,N),RESP_W(1,N) ABX1F405.1614 &, LEAF(1,N),ROOT(1,N),WOOD(1,N) TRIFD2A.133 &, DCVEG(1,N),PC_S(1,N)) TRIFD2A.134 TRIFD2A.135 ENDDO TRIFD2A.136 TRIFD2A.137 C----------------------------------------------------------------------- TRIFD2A.138 C Diagnose the new value of Canopy Height, Leaf Area Index and Total TRIFD2A.139 C Vegetation Carbon TRIFD2A.140 C----------------------------------------------------------------------- TRIFD2A.141 DO N=1,NPFT TRIFD2A.142 TRIFD2A.143 DO T=1,TRIF_PTS ABX1F405.1615 L=TRIF_INDEX(T) ABX1F405.1616 TRIFD2A.145 HT(L,N) = WOOD(L,N) / (A_WS(N) * ETA_SL(N)) TRIFD2A.146 & * (A_WL(N)/WOOD(L,N))**(1.0/B_WL(N)) TRIFD2A.147 LAI_BAL(L,N) = LEAF(L,N) / SIGL(N) TRIFD2A.148 LAI(L,N) = PHEN(L,N) * LAI_BAL(L,N) TRIFD2A.149 C_VEG(L,N) = LEAF(L,N) + ROOT(L,N) + WOOD(L,N) TRIFD2A.150 TRIFD2A.151 ENDDO TRIFD2A.152 TRIFD2A.153 ENDDO TRIFD2A.154 TRIFD2A.155 C---------------------------------------------------------------------- TRIFD2A.156 C Update the areal coverage of each functional type TRIFD2A.157 C---------------------------------------------------------------------- TRIFD2A.158 CALL LOTKA
(LAND_FIELD,TRIF_PTS,TRIF_INDEX ABX1F405.1617 &, C_VEG,FORW,FRAC_VS,GAMMA,G_ANTH,LAI_BAL,PC_S ABX1F405.1618 &, FRAC,DFRAC) TRIFD2A.161 TRIFD2A.162 C---------------------------------------------------------------------- TRIFD2A.163 C Diagnose the litterfall from the carbon balance of each vegetation TRIFD2A.164 C type (assumes explicit update). TRIFD2A.165 C---------------------------------------------------------------------- TRIFD2A.166 DO T=1,TRIF_PTS ABX1F405.1619 L=TRIF_INDEX(T) ABX1F405.1620 TRIFD2A.168 LIT_C_T(L) = 0.0 TRIFD2A.169 TRIFD2A.170 DO N=1,NPFT TRIFD2A.171 LIT_C(L,N) = NPP(L,N)-GAMMA*(C_VEG(L,N)*FRAC(L,N) TRIFD2A.172 & -(C_VEG(L,N)-DCVEG(L,N))*(FRAC(L,N)-DFRAC(L,N)))/FRAC(L,N) TRIFD2A.173 LIT_C_T(L) = LIT_C_T(L)+FRAC(L,N)*LIT_C(L,N) TRIFD2A.174 ENDDO TRIFD2A.175 ENDDO TRIFD2A.176 TRIFD2A.177 C---------------------------------------------------------------------- TRIFD2A.178 C Call SOIL_C to update the soil carbon content TRIFD2A.179 C---------------------------------------------------------------------- TRIFD2A.180 CALL SOILCARB
(LAND_FIELD,TRIF_PTS,TRIF_INDEX ABX1F405.1621 &, FORW,GAMMA,LIT_C_T,RESP_S,CS) ABX1F405.1622 TRIFD2A.183 C---------------------------------------------------------------------- TRIFD2A.184 C Diagnose the gridbox mean vegetation carbon TRIFD2A.185 C---------------------------------------------------------------------- TRIFD2A.186 DO T=1,TRIF_PTS ABX1F405.1623 L=TRIF_INDEX(T) ABX1F405.1624 CV(L) = 0.0 TRIFD2A.188 DO N=1,NPFT TRIFD2A.189 CV(L) = CV(L)+FRAC(L,N)*C_VEG(L,N) TRIFD2A.190 ENDDO TRIFD2A.191 ENDDO TRIFD2A.192 TRIFD2A.193 RETURN TRIFD2A.194 END TRIFD2A.195 *ENDIF TRIFD2A.196