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

      SUBROUTINE SOILCARB (LAND_FIELD,TRIF_PTS,TRIF_INDEX                   1,1ABX1F405.1673   
     &,                    FORW,GAMMA,LIT_C_T,RESP_S,CS)                   SOILC2A.31     
                                                                           SOILC2A.32     
      IMPLICIT NONE                                                        SOILC2A.33     
                                                                           SOILC2A.34     
      INTEGER                                                              SOILC2A.35     
     & LAND_FIELD                 ! IN Total number of land points.        SOILC2A.36     
     &,TRIF_PTS                   ! IN Number of points on which           ABX1F405.1674   
!                                 !    TRIFFID may operate                 ABX1F405.1675   
     &,TRIF_INDEX(LAND_FIELD)     ! IN Indices of land points on           ABX1F405.1676   
!                                 !    which TRIFFID may operate           ABX1F405.1677   
     &,L,T                        ! WORK Loop counters                     ABX1F405.1678   
                                                                           SOILC2A.41     
      REAL                                                                 SOILC2A.42     
     & FORW                       ! IN Forward timestep weighting.         SOILC2A.43     
     &,GAMMA                      ! IN Inverse timestep (/360days).        ABX1F405.1679   
     &,LIT_C_T(LAND_FIELD)        ! IN Total carbon litter                 ABX1F405.1680   
C                                 !    (kg C/m2/360days).                  ABX1F405.1681   
     &,RESP_S(LAND_FIELD)         ! INOUT Soil respiration                 ABX1F405.1682   
C                                 !    (kg C/m2/360days).                  ABX1F405.1683   
     &,CS(LAND_FIELD)             ! INOUT Soil carbon (kg C/m2).           SOILC2A.47     
     &,DCS(LAND_FIELD)            ! WORK Increment to the soil carbon      SOILC2A.48     
C                                 !      (kg C/m2).                        SOILC2A.49     
     &,DPC_DCS(LAND_FIELD)        ! WORK Rate of change of PC with         SOILC2A.50     
C                                 !      soil carbon (/360days).           ABX1F405.1684   
     &,PC(LAND_FIELD)             ! WORK Net carbon accumulation in        SOILC2A.52     
C                                 !      the soil (kg C/m2/360days).       ABX1F405.1685   
                                                                           SOILC2A.54     
                                                                           SOILC2A.55     
                                                                           SOILC2A.56     
      DO T=1,TRIF_PTS                                                      ABX1F405.1686   
        L=TRIF_INDEX(T)                                                    ABX1F405.1687   
                                                                           SOILC2A.58     
C----------------------------------------------------------------------    SOILC2A.59     
C Diagnose the net local carbon flux into the soil                         SOILC2A.60     
C----------------------------------------------------------------------    SOILC2A.61     
        PC(L) = LIT_C_T(L)-RESP_S(L)                                       SOILC2A.62     
                                                                           SOILC2A.63     
C----------------------------------------------------------------------    SOILC2A.64     
C Variables required for the implicit and equilibrium calculations         SOILC2A.65     
C----------------------------------------------------------------------    SOILC2A.66     
        DPC_DCS(L) = RESP_S(L)/CS(L)                                       SOILC2A.67     
                                                                           SOILC2A.68     
C----------------------------------------------------------------------    SOILC2A.69     
C Save current value of soil carbon                                        SOILC2A.70     
C----------------------------------------------------------------------    SOILC2A.71     
        DCS(L) = CS(L)                                                     SOILC2A.72     
                                                                           SOILC2A.73     
      ENDDO                                                                SOILC2A.74     
                                                                           SOILC2A.75     
                                                                           SOILC2A.76     
C----------------------------------------------------------------------    SOILC2A.77     
C Update soil carbon                                                       SOILC2A.78     
C----------------------------------------------------------------------    SOILC2A.79     
      CALL DECAY (LAND_FIELD,TRIF_PTS,TRIF_INDEX                           ABX1F405.1688   
     &,           DPC_DCS,FORW,GAMMA,PC,CS)                                SOILC2A.81     
                                                                           SOILC2A.82     
C----------------------------------------------------------------------    SOILC2A.83     
C Apply implicit correction to the soil respiration rate.                  SOILC2A.84     
C----------------------------------------------------------------------    SOILC2A.85     
      DO T=1,TRIF_PTS                                                      ABX1F405.1689   
        L=TRIF_INDEX(T)                                                    ABX1F405.1690   
                                                                           SOILC2A.87     
        DCS(L) = CS(L) - DCS(L)                                            SOILC2A.88     
        RESP_S(L) = RESP_S(L) + FORW*DPC_DCS(L)*DCS(L)                     SOILC2A.89     
                                                                           SOILC2A.90     
      ENDDO                                                                SOILC2A.91     
                                                                           SOILC2A.92     
      RETURN                                                               SOILC2A.93     
      END                                                                  SOILC2A.94     
*ENDIF                                                                     SOILC2A.95