*IF DEF,A19_2A VEGCB2A.2 C *****************************COPYRIGHT****************************** VEGCB2A.3 C (c) CROWN COPYRIGHT 1997, METEOROLOGICAL OFFICE, All Rights Reserved. VEGCB2A.4 C VEGCB2A.5 C Use, duplication or disclosure of this code is subject to the VEGCB2A.6 C restrictions as set forth in the contract. VEGCB2A.7 C VEGCB2A.8 C Meteorological Office VEGCB2A.9 C London Road VEGCB2A.10 C BRACKNELL VEGCB2A.11 C Berkshire UK VEGCB2A.12 C RG12 2SZ VEGCB2A.13 C VEGCB2A.14 C If no contract has been raised with this copy of the code, the use, VEGCB2A.15 C duplication or disclosure of it is strictly prohibited. Permission VEGCB2A.16 C to do so must first be obtained in writing from the Head of Numerical VEGCB2A.17 C Modelling at the above address. VEGCB2A.18 C ******************************COPYRIGHT****************************** VEGCB2A.19 !!! Subroutine VEGCARB ------------------------------------------------ VEGCB2A.20 !!! VEGCB2A.21 !!! Purpose : Updates carbon contents of the vegetation. VEGCB2A.22 !!! VEGCB2A.23 !!! VEGCB2A.24 !!! Model Modification history: VEGCB2A.25 !!! version Date VEGCB2A.26 !!! 4.4 10/97 New Deck. Peter Cox VEGCB2A.27 !!! 4.5 12/05/98 Operate only on points indexed with TRIF_INDEX. ABX1F405.1556 !!! Richard Betts ABX1F405.1557 !!! VEGCB2A.28 !!!END ---------------------------------------------------------------- VEGCB2A.29SUBROUTINE VEGCARB (LAND_FIELD,TRIF_PTS,TRIF_INDEX 1,1ABX1F405.1558 &, N,FORW,GAMMA,G_LEAF,NPP,RESP_W ABX1F405.1559 &, LEAF,ROOT,WOOD,DCVEG,PC_S) VEGCB2A.32 VEGCB2A.33 IMPLICIT NONE VEGCB2A.34 VEGCB2A.35 INTEGER VEGCB2A.36 & LAND_FIELD ! IN Total number of land points. VEGCB2A.37 &,TRIF_PTS ! IN Number of points on which ABX1F405.1560 ! ! TRIFFID may operate ABX1F405.1561 &,TRIF_INDEX(LAND_FIELD) ! IN Indices of land points on ABX1F405.1562 ! ! which TRIFFID may operate ABX1F405.1563 &,N ! IN Plant functional type. VEGCB2A.41 &,L,T ! WORK Loop counters ABX1F405.1564 VEGCB2A.43 REAL VEGCB2A.44 & FORW ! IN Forward timestep weighting. VEGCB2A.45 &,GAMMA ! IN Inverse timestep (/360days). ABX1F405.1565 &,G_LEAF(LAND_FIELD) ! IN Turnover rate for leaf and VEGCB2A.47 ! ! fine root biomass (/360days). ABX1F405.1566 &,NPP(LAND_FIELD) ! INOUT Net primary productivity VEGCB2A.49 ! ! (kg C/m2/360days). ABX1F405.1567 &,RESP_W(LAND_FIELD) ! INOUT Wood maintenance respiration VEGCB2A.51 ! ! (kg C/m2/360days). ABX1F405.1568 &,LEAF(LAND_FIELD) ! INOUT Leaf biomass (kg C/m2). VEGCB2A.53 &,ROOT(LAND_FIELD) ! INOUT Root biomass (kg C/m2). VEGCB2A.54 &,WOOD(LAND_FIELD) ! INOUT Woody biomass (kg C/m2). VEGCB2A.55 &,DCVEG(LAND_FIELD) ! OUT Change in vegetation carbon VEGCB2A.56 C ! during the timestep VEGCB2A.57 C ! (kg C/m2/timestep). VEGCB2A.58 &,PC_S(LAND_FIELD) ! OUT Net carbon flux available VEGCB2A.59 ! ! for spreading (kg C/m2/360days). ABX1F405.1569 &,DFPAR_DLAI ! WORK Rate of change of FPAR VEGCB2A.61 C ! with leaf area index. VEGCB2A.62 &,DLAI ! WORK Increment to the leaf area VEGCB2A.63 C ! index. VEGCB2A.64 &,DLAMG_DLAI,DLIT_DLAI ! WORK Required for calculation VEGCB2A.65 C ! of the equilibrium increments. VEGCB2A.66 &,DNPP_DLAI(LAND_FIELD) ! WORK Rate of change of NPP VEGCB2A.67 C ! with leaf area index VEGCB2A.68 ! ! (kg C/m2/360days/LAI). ABX1F405.1570 &,DPC_DLAI(LAND_FIELD) ! WORK Rate of change of PC VEGCB2A.70 C ! with leaf area index VEGCB2A.71 ! ! (kg C/m2/360days/LAI). ABX1F405.1571 &,DPCG_DLAI(LAND_FIELD) ! WORK Rate of change of PC_G VEGCB2A.73 C ! with leaf area index VEGCB2A.74 ! ! (kg C/m2/360days/LAI). ABX1F405.1572 &,DRESPW_DLAI ! WORK Rate of change of RESP_W VEGCB2A.76 C ! with leaf area index VEGCB2A.77 &,FPAR ! WORK PAR interception factor. VEGCB2A.78 &,LAI(LAND_FIELD) ! WORK Leaf area index. VEGCB2A.79 &,LAMBDA_G ! WORK Fraction of NPP available VEGCB2A.80 C ! for spreading. VEGCB2A.81 &,LIT_C_L(LAND_FIELD) ! WORK Local rate of Carbon Litter VEGCB2A.82 ! ! production (kg C/m2/360days). ABX1F405.1573 &,PC(LAND_FIELD) ! WORK Net carbon flux available VEGCB2A.84 ! ! to vegetation (kg C/m2/360days) ABX1F405.1574 &,PC_G(LAND_FIELD) ! WORK Net carbon flux available VEGCB2A.86 ! ! for growth (kg C/m2/360days). ABX1F405.1575 VEGCB2A.88 *CALL NSTYPES
VEGCB2A.89 *CALL TRIF
VEGCB2A.90 VEGCB2A.91 VEGCB2A.92 DO T=1,TRIF_PTS ABX1F405.1576 L=TRIF_INDEX(T) ABX1F405.1577 VEGCB2A.94 LAI(L) = LEAF(L)/SIGL(N) VEGCB2A.95 C---------------------------------------------------------------------- VEGCB2A.96 C Calculate the local production rate for carbon litter VEGCB2A.97 C---------------------------------------------------------------------- VEGCB2A.98 LIT_C_L(L) = G_LEAF(L)*LEAF(L)+G_ROOT(N)*ROOT(L) VEGCB2A.99 & + G_WOOD(N)*WOOD(L) VEGCB2A.100 VEGCB2A.101 C---------------------------------------------------------------------- VEGCB2A.102 C Diagnose the net local carbon flux into the vegetation VEGCB2A.103 C---------------------------------------------------------------------- VEGCB2A.104 PC(L) = NPP(L) - LIT_C_L(L) VEGCB2A.105 VEGCB2A.106 C---------------------------------------------------------------------- VEGCB2A.107 C Variables required for the implicit and equilibrium calculations VEGCB2A.108 C---------------------------------------------------------------------- VEGCB2A.109 DLIT_DLAI = (G_LEAF(L)*LEAF(L)+G_ROOT(N)*ROOT(L))/LAI(L) VEGCB2A.110 & + B_WL(N)*G_WOOD(N)*WOOD(L)/LAI(L) VEGCB2A.111 VEGCB2A.112 FPAR = (1 - EXP(-KPAR(N)*LAI(L)))/KPAR(N) VEGCB2A.113 DFPAR_DLAI = EXP(-KPAR(N)*LAI(L)) VEGCB2A.114 VEGCB2A.115 DNPP_DLAI(L) = NPP(L)*DFPAR_DLAI/FPAR VEGCB2A.116 & + (1-R_GROW(N))*RESP_W(L) VEGCB2A.117 & *(DFPAR_DLAI/FPAR-B_WL(N)/LAI(L)) VEGCB2A.118 VEGCB2A.119 LAMBDA_G = 1 - (LAI(L) - LAI_MIN(N)) VEGCB2A.120 & /(LAI_MAX(N) - LAI_MIN(N)) VEGCB2A.121 DLAMG_DLAI = -1.0/(LAI_MAX(N) - LAI_MIN(N)) VEGCB2A.122 VEGCB2A.123 PC_G(L) = LAMBDA_G * NPP(L) - LIT_C_L(L) VEGCB2A.124 DPCG_DLAI(L) = LAMBDA_G*DNPP_DLAI(L) VEGCB2A.125 & + DLAMG_DLAI*NPP(L) VEGCB2A.126 & - DLIT_DLAI VEGCB2A.127 DPC_DLAI(L) = DNPP_DLAI(L) - DLIT_DLAI VEGCB2A.128 VEGCB2A.129 ENDDO VEGCB2A.130 VEGCB2A.131 C---------------------------------------------------------------------- VEGCB2A.132 C Update vegetation carbon contents VEGCB2A.133 C---------------------------------------------------------------------- VEGCB2A.134 DO T=1,TRIF_PTS ABX1F405.1578 L=TRIF_INDEX(T) ABX1F405.1579 DCVEG(L) = LEAF(L)+ROOT(L)+WOOD(L) VEGCB2A.136 ENDDO VEGCB2A.137 VEGCB2A.138 CALL GROWTH
(LAND_FIELD,TRIF_PTS,TRIF_INDEX ABX1F405.1580 &, N,DPCG_DLAI,FORW,GAMMA,PC_G,LEAF,ROOT,WOOD) ABX1F405.1581 VEGCB2A.141 DO T=1,TRIF_PTS ABX1F405.1582 L=TRIF_INDEX(T) ABX1F405.1583 DCVEG(L) = LEAF(L)+ROOT(L)+WOOD(L)-DCVEG(L) VEGCB2A.143 ENDDO VEGCB2A.144 VEGCB2A.145 C---------------------------------------------------------------------- VEGCB2A.146 C Diagnose the carbon available for spreading and apply implicit VEGCB2A.147 C corrections to the driving fluxes. VEGCB2A.148 C---------------------------------------------------------------------- VEGCB2A.149 DO T=1,TRIF_PTS ABX1F405.1584 L=TRIF_INDEX(T) ABX1F405.1585 DLAI = LEAF(L)/SIGL(N) - LAI(L) VEGCB2A.151 PC_S(L) = PC(L) + FORW*DPC_DLAI(L)*DLAI - DCVEG(L)*GAMMA VEGCB2A.152 VEGCB2A.153 FPAR = (1 - EXP(-KPAR(N)*LAI(L)))/KPAR(N) VEGCB2A.154 DFPAR_DLAI = EXP(-KPAR(N)*LAI(L)) VEGCB2A.155 DRESPW_DLAI = RESP_W(L)*B_WL(N)/LAI(L) VEGCB2A.156 VEGCB2A.157 NPP(L) = NPP(L) + FORW*DNPP_DLAI(L)*DLAI VEGCB2A.158 RESP_W(L) = RESP_W(L) + FORW*DRESPW_DLAI*DLAI VEGCB2A.159 ENDDO VEGCB2A.160 VEGCB2A.161 RETURN VEGCB2A.162 END VEGCB2A.163 *ENDIF VEGCB2A.164