*IF DEF,A03_5A                                                             SFSTOM5A.2      
C *****************************COPYRIGHT******************************     SFSTOM5A.3      
C (c) CROWN COPYRIGHT 1996, METEOROLOGICAL OFFICE, All Rights Reserved.    SFSTOM5A.4      
C                                                                          SFSTOM5A.5      
C Use, duplication or disclosure of this code is subject to the            SFSTOM5A.6      
C restrictions as set forth in the contract.                               SFSTOM5A.7      
C                                                                          SFSTOM5A.8      
C                Meteorological Office                                     SFSTOM5A.9      
C                London Road                                               SFSTOM5A.10     
C                BRACKNELL                                                 SFSTOM5A.11     
C                Berkshire UK                                              SFSTOM5A.12     
C                RG12 2SZ                                                  SFSTOM5A.13     
C                                                                          SFSTOM5A.14     
C If no contract has been raised with this copy of the code, the use,      SFSTOM5A.15     
C duplication or disclosure of it is strictly prohibited.  Permission      SFSTOM5A.16     
C to do so must first be obtained in writing from the Head of Numerical    SFSTOM5A.17     
C Modelling at the above address.                                          SFSTOM5A.18     
C ******************************COPYRIGHT******************************    SFSTOM5A.19     
C Routine to calculate the bulk stomatal resistance and the canopy         SFSTOM5A.20     
C CO2 fluxes                                                               SFSTOM5A.21     
C                                                                          SFSTOM5A.22     
C Written by Peter Cox (Nov 1995)                                          SFSTOM5A.23     
C**********************************************************************    SFSTOM5A.24     

      SUBROUTINE SF_STOM  (LAND_PTS,LAND_INDEX,P1,P_POINTS                  3,10SFSTOM5A.25     
     +,                    FT,CO2,HT,IPAR,LAI,NL0,PSTAR                    SFSTOM5A.26     
     +,                    Q1,RA,ROOT,TSTAR,V_CRIT,V_ROOT,V_WILT           SFSTOM5A.27     
     +,                    VEGF,GPP,NPP,RESP_P,GC,LTIMER,FSMC)             ANG1F405.165    
                                                                           SFSTOM5A.29     
                                                                           SFSTOM5A.30     
      IMPLICIT NONE                                                        SFSTOM5A.31     
                                                                           SFSTOM5A.32     
      INTEGER                                                              SFSTOM5A.33     
     + LAND_PTS                   ! IN Number of land points to be         SFSTOM5A.34     
C                                 !    processed.                          SFSTOM5A.35     
     +,LAND_INDEX(LAND_PTS)       ! IN Index of land points.               SFSTOM5A.36     
     +,P1                         ! IN First P point to be processed.      SFSTOM5A.37     
     +,P_POINTS                   ! IN Number of P points to be            SFSTOM5A.38     
C                                 !    processed.                          SFSTOM5A.39     
                                                                           SFSTOM5A.40     
      INTEGER                                                              SFSTOM5A.41     
     + FT(LAND_PTS)               ! IN Plant functional type.              SFSTOM5A.42     
                                                                           SFSTOM5A.43     
      REAL                                                                 SFSTOM5A.44     
     + CO2                        ! IN Atmospheric CO2 concentration       SFSTOM5A.45     
C                                 !    (kg CO2/kg air).                    SFSTOM5A.46     
     +,HT(LAND_PTS)               ! IN Canopy height (m).                  SFSTOM5A.47     
     +,IPAR(P_POINTS)             ! IN Incident PAR (W/m2).                SFSTOM5A.48     
     +,LAI(LAND_PTS)              ! IN Leaf area index.                    SFSTOM5A.49     
     +,NL0(LAND_PTS)              ! IN Nitrogen concentration              SFSTOM5A.50     
C                                 !    of top leaf (kg N/kg C).            SFSTOM5A.51     
     +,PSTAR(P_POINTS)            ! IN Surface pressure (Pa).              SFSTOM5A.52     
     +,Q1(P_POINTS)               ! IN Specific humidity of level 1        SFSTOM5A.53     
C                                 !    (kg H2O/kg air).                    SFSTOM5A.54     
     +,RA(P_POINTS)               ! IN Aerodynamic resistance (s/m).       SFSTOM5A.55     
     +,ROOT(LAND_PTS)             ! IN Root biomass (kg C/m2).             SFSTOM5A.56     
     +,TSTAR(P_POINTS)            ! IN Surface temperature (K).            SFSTOM5A.57     
     +,V_CRIT(LAND_PTS)           ! IN Volumetric soil moisture            SFSTOM5A.58     
C                                 !    concentration above which           SFSTOM5A.59     
C                                 !    stomata are not sensitive           SFSTOM5A.60     
C                                 !    to soil water (m3 H2O/m3 soil).     SFSTOM5A.61     
     +,V_ROOT(LAND_PTS)           ! IN Volumetric soil moisture            SFSTOM5A.62     
C                                 !    concentration in the rootzone       SFSTOM5A.63     
C                                 !    (m3 H2O/m3 soil).                   SFSTOM5A.64     
     +,V_WILT(LAND_PTS)           ! IN Volumetric soil moisture            SFSTOM5A.65     
C                                 !    concentration below which           SFSTOM5A.66     
C                                 !    stomata close (m3 H2O/m3 soil).     SFSTOM5A.67     
     +,VEGF(LAND_PTS)             ! IN Vegetated fraction.                 SFSTOM5A.68     
     +,GPP(LAND_PTS)              ! OUT Gross Primary Productivity         SFSTOM5A.69     
C                                 !     (kg C/m2/s).                       SFSTOM5A.70     
     +,NPP(LAND_PTS)              ! OUT Net Primary Productivity           SFSTOM5A.71     
C                                 !     (kg C/m2/s).                       SFSTOM5A.72     
     +,RESP_P(LAND_PTS)           ! OUT Plant respiration rate             SFSTOM5A.73     
C                                 !     (kg C/m2/sec).                     SFSTOM5A.74     
     +,GC(LAND_PTS)               ! INOUT Canopy resistance to H2O         SFSTOM5A.75     
C                                 !       (m/s).                           SFSTOM5A.76     
                                                                           SFSTOM5A.77     
      REAL                                                                 SFSTOM5A.78     
     + ANETC(LAND_PTS)            ! WORK Net canopy photosynthesis         SFSTOM5A.79     
C                                 !     (mol CO2/m2/s).                    SFSTOM5A.80     
     +,CO2C(LAND_PTS)             ! WORK Canopy level CO2 concentration    SFSTOM5A.81     
C                                 !      (kg CO2/kg air).                  SFSTOM5A.82     
     +,CI(LAND_PTS)               ! WORK Internal CO2 pressure (Pa).       SFSTOM5A.83     
     +,DQ(P_POINTS)               ! WORK Specific humidity deficit         SFSTOM5A.84     
C                                 !      (kg H2O/kg air).                  SFSTOM5A.85     
     +,DQC(LAND_PTS)              ! WORK Canopy level specific humidity    SFSTOM5A.86     
C                                 !      deficit (kg H2O/kg air).          SFSTOM5A.87     
     +,FPAR(LAND_PTS)             ! WORK PAR absorption factor.            SFSTOM5A.88     
     +,FSMC(LAND_PTS)             ! OUT Soil water factor.                 ANG1F405.166    
     +,NL(LAND_PTS)               ! WORK Mean leaf nitrogen                SFSTOM5A.90     
C                                 !      concentration (kg N/kg C).        SFSTOM5A.91     
     +,N_LEAF(LAND_PTS)           ! WORK Nitrogen contents of the leaf,    SFSTOM5A.92     
     +,N_ROOT(LAND_PTS)           !      root,                             SFSTOM5A.93     
     +,N_STEM(LAND_PTS)           !      and stem (kg N/m2).               SFSTOM5A.94     
     +,QS(P_POINTS)               ! WORK Saturated specific humidity       SFSTOM5A.95     
C                                 !      (kg H2O/kg air).                  SFSTOM5A.96     
     +,RA_RC(LAND_PTS)            ! WORK Ratio of aerodynamic resistance   SFSTOM5A.97     
C                                 !      to canopy resistance.             SFSTOM5A.98     
     +,RDC(LAND_PTS)              ! WORK Canopy dark respiration,          SFSTOM5A.99     
C                                 !      without soil water dependence     SFSTOM5A.100    
C                                 !      (mol CO2/m2/s).                   SFSTOM5A.101    
     +,RESP_P_G(LAND_PTS)         ! WORK Plant growth respiration rate     SFSTOM5A.102    
C                                 !      (kg C/m2/sec).                    SFSTOM5A.103    
     +,RESP_P_M(LAND_PTS)         ! WORK Plant maintenance respiration     SFSTOM5A.104    
C                                 !      rate (kg C/m2/sec).               SFSTOM5A.105    
     +,RHOSTAR(P_POINTS)          ! WORK Surface air density (kg/m3).      SFSTOM5A.106    
                                                                           SFSTOM5A.107    
      LOGICAL                                                              SFSTOM5A.108    
     + LTIMER                                                              SFSTOM5A.109    
                                                                           SFSTOM5A.110    
      INTEGER                                                              SFSTOM5A.111    
     + I,J,K,L                    ! WORK Loop counters.                    SFSTOM5A.112    
     +,VEG_PTS                    ! WORK Number of vegetated points.       SFSTOM5A.113    
     +,VEG_INDEX(LAND_PTS)        ! WORK Index of vegetated points         SFSTOM5A.114    
C                                 !      on the land grid.                 SFSTOM5A.115    
                                                                           SFSTOM5A.116    
C-----------------------------------------------------------------------   SFSTOM5A.117    
C Parameters                                                               SFSTOM5A.118    
C-----------------------------------------------------------------------   SFSTOM5A.119    
      REAL                                                                 SFSTOM5A.120    
     + RAIR                       ! Gas constant for dry air (J/kg/K).     SFSTOM5A.121    
      PARAMETER (RAIR = 287.05)                                            SFSTOM5A.122    
                                                                           SFSTOM5A.123    
      REAL                                                                 SFSTOM5A.124    
     + O2                         ! Atmospheric concentration of           SFSTOM5A.125    
C                                 ! oxygen (kg O2/kg air).                 SFSTOM5A.126    
      PARAMETER (O2 = 0.23)                                                SFSTOM5A.127    
                                                                           SFSTOM5A.128    
      INTEGER                                                              SFSTOM5A.129    
     + ITER                       ! Number of iterations to                SFSTOM5A.130    
C                                 ! determine the canopy climate.          SFSTOM5A.131    
      PARAMETER (ITER = 2)                                                 SFSTOM5A.132    
                                                                           SFSTOM5A.133    
C-----------------------------------------------------------------------   SFSTOM5A.134    
C Functional Type dependent parameters                                     SFSTOM5A.135    
C-----------------------------------------------------------------------   SFSTOM5A.136    
      REAL                                                                 SFSTOM5A.137    
     + ETA_SL(4)                  ! Live stemwood coefficient              SFSTOM5A.138    
C                                 ! (kg C/m/LAI).                          SFSTOM5A.139    
     +,KPAR(4)                    ! PAR Extinction coefficient.            SFSTOM5A.140    
     +,NR_NL(4)                   ! Ratio of root nitrogen                 SFSTOM5A.141    
C                                 ! concentration to leaf                  SFSTOM5A.142    
C                                 ! nitrogen concentration.                SFSTOM5A.143    
     +,NS_NL(4)                   ! Ratio of stem nitrogen                 SFSTOM5A.144    
C                                 ! concentration to leaf                  SFSTOM5A.145    
C                                 ! nitrogen concentration.                SFSTOM5A.146    
     +,R_GROW(4)                  ! Growth respiration fraction.           SFSTOM5A.147    
     +,SIGL(4)                    ! Specific leaf density                  SFSTOM5A.148    
C                                 ! (kg C/projected LAI).                  SFSTOM5A.149    
C----------------------------------------------------------------------    SFSTOM5A.150    
C                       BT    NT   C3G   C4G                               SFSTOM5A.151    
C----------------------------------------------------------------------    SFSTOM5A.152    
      DATA ETA_SL  /  0.01, 0.01, 0.01, 0.01 /  ! Friend et al. (1995)     SFSTOM5A.153    
      DATA KPAR    /  0.50, 0.50, 0.50, 0.50 /  ! Friend et al. (1995)     SFSTOM5A.154    
      DATA NR_NL   /  1.00, 1.00, 1.00, 1.00 /  !                          SFSTOM5A.155    
      DATA NS_NL   /  0.04, 0.10, 1.00, 1.00 /  !                          SFSTOM5A.156    
      DATA R_GROW  /  0.25, 0.25, 0.25, 0.25 /  ! Bonan (1995)             SFSTOM5A.157    
      DATA SIGL    /  0.04, 0.10, 0.04, 0.04 /  ! Schulze et al. (1994)    SFSTOM5A.158    
                                                                           SFSTOM5A.159    
                                                                           SFSTOM5A.160    
      IF (LTIMER) THEN                                                     SFSTOM5A.161    
        CALL TIMER('SFSTOM  ',103)                                         GPB8F405.156    
      ENDIF                                                                SFSTOM5A.163    
                                                                           SFSTOM5A.164    
C-----------------------------------------------------------------------   SFSTOM5A.165    
C Create index of vegetated points on the land grid                        SFSTOM5A.166    
C-----------------------------------------------------------------------   SFSTOM5A.167    
      VEG_PTS=0                                                            SFSTOM5A.168    
      DO L=1,LAND_PTS                                                      SFSTOM5A.169    
        I = LAND_INDEX(L)-(P1-1)                                           SFSTOM5A.170    
        IF (VEGF(L).GT.0.0 .AND. LAI(L).GT.0.0) THEN                       SFSTOM5A.171    
          VEG_PTS = VEG_PTS + 1                                            SFSTOM5A.172    
          VEG_INDEX(VEG_PTS) = L                                           SFSTOM5A.173    
        ELSE                                                               SFSTOM5A.174    
          GC(L) = 0.0                                                      SFSTOM5A.175    
          NPP(L) = 0.0                                                     SFSTOM5A.176    
          GPP(L) = 0.0                                                     SFSTOM5A.177    
          RESP_P(L) = 0.0                                                  SFSTOM5A.178    
        ENDIF                                                              SFSTOM5A.179    
      ENDDO                                                                SFSTOM5A.180    
                                                                           SFSTOM5A.181    
C-----------------------------------------------------------------------   SFSTOM5A.182    
C Calculate the surface to level 1 humidity deficit and the surface        SFSTOM5A.183    
C density of the air                                                       SFSTOM5A.184    
C-----------------------------------------------------------------------   SFSTOM5A.185    
      CALL QSAT(QS,TSTAR,PSTAR,P_POINTS)                                   SFSTOM5A.186    
      DO I=1,P_POINTS                                                      SFSTOM5A.187    
        DQ(I) = MAX(0.0,(QS(I) - Q1(I)))                                   SFSTOM5A.188    
        RHOSTAR(I) = PSTAR(I) / (RAIR * TSTAR(I))                          SFSTOM5A.189    
      ENDDO                                                                SFSTOM5A.190    
                                                                           SFSTOM5A.191    
C-----------------------------------------------------------------------   SFSTOM5A.192    
C Calculate the soil water factor (Cox and Huntingford, 1995)              SFSTOM5A.193    
C-----------------------------------------------------------------------   SFSTOM5A.194    
      DO L=1,LAND_PTS                                                      ANG1F405.167    
                                                                           SFSTOM5A.197    
        IF (V_ROOT(L) .GT. V_CRIT(L)) THEN                                 SFSTOM5A.198    
          FSMC(L) = 1.0                                                    SFSTOM5A.199    
        ELSEIF (V_ROOT(L) .LE. V_WILT(L)) THEN                             SFSTOM5A.200    
          FSMC(L) = 0.0                                                    SFSTOM5A.201    
        ELSE                                                               SFSTOM5A.202    
          FSMC(L) = (V_ROOT(L) - V_WILT(L))                                SFSTOM5A.203    
     &            / (V_CRIT(L) - V_WILT(L))                                SFSTOM5A.204    
        ENDIF                                                              SFSTOM5A.205    
                                                                           SFSTOM5A.206    
      ENDDO                                                                SFSTOM5A.207    
                                                                           SFSTOM5A.208    
C-----------------------------------------------------------------------   SFSTOM5A.209    
C Calculate the PAR absorption factor                                      SFSTOM5A.210    
C-----------------------------------------------------------------------   SFSTOM5A.211    
      DO J=1,VEG_PTS                                                       SFSTOM5A.212    
        L = VEG_INDEX(J)                                                   SFSTOM5A.213    
                                                                           SFSTOM5A.214    
        FPAR(L) = (1 - EXP(-KPAR(FT(L))*LAI(L))) / KPAR(FT(L))             SFSTOM5A.215    
                                                                           SFSTOM5A.216    
      ENDDO                                                                SFSTOM5A.217    
                                                                           SFSTOM5A.218    
                                                                           SFSTOM5A.219    
C-----------------------------------------------------------------------   SFSTOM5A.220    
C Iterate to ensure that the canopy humidity deficit is consistent with    SFSTOM5A.221    
C the H2O flux. Ignore the (small) difference between the canopy and       SFSTOM5A.222    
C reference level CO2 concentration. Intially set the canopy humidity      SFSTOM5A.223    
C deficit using the previous value of GC.                                  SFSTOM5A.224    
C-----------------------------------------------------------------------   SFSTOM5A.225    
      DO K=1,ITER                                                          SFSTOM5A.226    
                                                                           SFSTOM5A.227    
C-----------------------------------------------------------------------   SFSTOM5A.228    
C Diagnose the canopy level humidity deficit and CO2 concentration         SFSTOM5A.229    
C-----------------------------------------------------------------------   SFSTOM5A.230    
CDIR$ IVDEP                                                                SFSTOM5A.231    
! Fujitsu vectorization directive                                          GRB0F405.519    
!OCL NOVREC                                                                GRB0F405.520    
        DO J=1,VEG_PTS                                                     SFSTOM5A.232    
          L = VEG_INDEX(J)                                                 SFSTOM5A.233    
          I = LAND_INDEX(L) - (P1-1)                                       SFSTOM5A.234    
                                                                           SFSTOM5A.235    
          RA_RC(L) = RA(I) * GC(L)                                         SFSTOM5A.236    
          DQC(L) = DQ(I) / (1 + RA_RC(L))                                  SFSTOM5A.237    
          CO2C(L) = CO2                                                    SFSTOM5A.238    
                                                                           SFSTOM5A.239    
        ENDDO                                                              SFSTOM5A.240    
                                                                           SFSTOM5A.241    
C-----------------------------------------------------------------------   SFSTOM5A.242    
C Call CANOPY to calculate the canopy resistance and photosynthesis        SFSTOM5A.243    
C-----------------------------------------------------------------------   SFSTOM5A.244    
        CALL CANOPY (LAND_PTS,LAND_INDEX,P1,P_POINTS                       SFSTOM5A.245    
     +,              VEG_PTS,VEG_INDEX                                     SFSTOM5A.246    
     +,              FT,DQC,IPAR,TSTAR,CO2C,O2,PSTAR                       SFSTOM5A.247    
     +,              NL0,FPAR,FSMC,LAI                                     SFSTOM5A.248    
     +,              GC,ANETC,CI,RDC,LTIMER)                               SFSTOM5A.249    
                                                                           SFSTOM5A.250    
      ENDDO ! LOOP OVER ITER                                               SFSTOM5A.251    
                                                                           SFSTOM5A.252    
CDIR$ IVDEP                                                                SFSTOM5A.253    
! Fujitsu vectorization directive                                          GRB0F405.521    
!OCL NOVREC                                                                GRB0F405.522    
      DO J=1,VEG_PTS                                                       SFSTOM5A.254    
        L = VEG_INDEX(J)                                                   SFSTOM5A.255    
                                                                           SFSTOM5A.256    
C-----------------------------------------------------------------------   SFSTOM5A.257    
C Calculate the mean leaf nitrogen concentration assuming perfect          SFSTOM5A.258    
C light acclimation                                                        SFSTOM5A.259    
C-----------------------------------------------------------------------   SFSTOM5A.260    
        NL(L) = (FPAR(L) / LAI(L)) * NL0(L)                                SFSTOM5A.261    
                                                                           SFSTOM5A.262    
C-----------------------------------------------------------------------   SFSTOM5A.263    
C Calculate the total nitrogen content of the leaf, root and stem          SFSTOM5A.264    
C-----------------------------------------------------------------------   SFSTOM5A.265    
        N_LEAF(L) = NL(L) * SIGL(FT(L)) * LAI(L)                           SFSTOM5A.266    
        N_ROOT(L) = NR_NL(FT(L)) * NL(L) * ROOT(L)                         SFSTOM5A.267    
        N_STEM(L) = NS_NL(FT(L)) * NL(L)                                   SFSTOM5A.268    
     &            * ETA_SL(FT(L)) * HT(L) * LAI(L)                         SFSTOM5A.269    
                                                                           SFSTOM5A.270    
C-----------------------------------------------------------------------   SFSTOM5A.271    
C Calculate the Gross Primary Productivity and the plant maintenance       SFSTOM5A.272    
C respiration rate in kg C/m2/sec                                          SFSTOM5A.273    
C-----------------------------------------------------------------------   SFSTOM5A.274    
        GPP(L) = 12.0E-3 * (ANETC(L) + RDC(L)*FSMC(L))                     SFSTOM5A.275    
        RESP_P_M(L) = 12.0E-3 * RDC(L)                                     SFSTOM5A.276    
     &     * (N_LEAF(L)*FSMC(L) + N_STEM(L) + N_ROOT(L)) / N_LEAF(L)       SFSTOM5A.277    
                                                                           SFSTOM5A.278    
C-----------------------------------------------------------------------   SFSTOM5A.279    
C Calculate the total plant respiration and the Net Primary Productivity   SFSTOM5A.280    
C-----------------------------------------------------------------------   SFSTOM5A.281    
        RESP_P_G(L) = R_GROW(FT(L)) * (GPP(L) - RESP_P_M(L))               SFSTOM5A.282    
        RESP_P(L) = RESP_P_M(L) + RESP_P_G(L)                              SFSTOM5A.283    
        NPP(L) = GPP(L) - RESP_P(L)                                        SFSTOM5A.284    
                                                                           SFSTOM5A.285    
      ENDDO                                                                SFSTOM5A.286    
                                                                           SFSTOM5A.287    
      IF (LTIMER) THEN                                                     SFSTOM5A.288    
        CALL TIMER('SFSTOM  ',104)                                         GPB8F405.157    
      ENDIF                                                                SFSTOM5A.290    
                                                                           SFSTOM5A.291    
      RETURN                                                               SFSTOM5A.292    
      END                                                                  SFSTOM5A.293    
                                                                           SFSTOM5A.294    
C***********************************************************************   SFSTOM5A.295    
C Calculates the canopy resistance, net photosynthesis and transpiration   SFSTOM5A.296    
C by scaling-up the leaf level response using the "Big-Leaf" approach      SFSTOM5A.297    
C of Sellers et al. (1994)                                                 SFSTOM5A.298    
C                                                                          SFSTOM5A.299    
C Written by Peter Cox (May 1995)                                          SFSTOM5A.300    
C***********************************************************************   SFSTOM5A.301    

      SUBROUTINE CANOPY (LAND_PTS,LAND_INDEX,P1,P_POINTS                    3,10SFSTOM5A.302    
     +,                  VEG_PTS,VEG_INDEX                                 SFSTOM5A.303    
     +,                  FT,DQC,IPAR,TSTAR,CO2C,O2,PSTAR,NL0               SFSTOM5A.304    
     +,                  FPAR,FSMC,LAI                                     SFSTOM5A.305    
     +,                  GC,ANETC,CI,RDC,LTIMER)                           SFSTOM5A.306    
                                                                           SFSTOM5A.307    
      IMPLICIT NONE                                                        SFSTOM5A.308    
                                                                           SFSTOM5A.309    
      INTEGER                                                              SFSTOM5A.310    
     + LAND_PTS                   ! IN Number of land points to be         SFSTOM5A.311    
C                                 !    processed.                          SFSTOM5A.312    
     +,LAND_INDEX(LAND_PTS)       ! IN Index of land points.               SFSTOM5A.313    
     +,P1                         ! IN First P point to be processed.      SFSTOM5A.314    
     +,P_POINTS                   ! IN Number of P points to be            SFSTOM5A.315    
C                                 !    processed.                          SFSTOM5A.316    
     +,VEG_PTS                    ! IN Number of vegetated points.         SFSTOM5A.317    
     +,VEG_INDEX(LAND_PTS)        ! IN Index of vegetated points           SFSTOM5A.318    
C                                 !    on the land grid.                   SFSTOM5A.319    
                                                                           SFSTOM5A.320    
      INTEGER                                                              SFSTOM5A.321    
     + FT(LAND_PTS)               ! IN Plant functional type.              SFSTOM5A.322    
                                                                           SFSTOM5A.323    
      REAL                                                                 SFSTOM5A.324    
     + CO2C(LAND_PTS)             ! IN Canopy level CO2 concentration      SFSTOM5A.325    
C                                 !    (kg CO2/kg air).                    SFSTOM5A.326    
     +,DQC(LAND_PTS)              ! IN Canopy level specific humidity      SFSTOM5A.327    
C                                 !    deficit (kg H2O/kg air).            SFSTOM5A.328    
     +,O2                         ! IN Atmospheric O2 concentration        SFSTOM5A.329    
C                                 !    (kg O2/kg air).                     SFSTOM5A.330    
     +,PSTAR(P_POINTS)            ! IN Surface pressure (Pa).              SFSTOM5A.331    
     +,IPAR(P_POINTS)             ! IN Incident PAR (W/m2).                SFSTOM5A.332    
     +,TSTAR(P_POINTS)            ! IN Surface temperature (K).            SFSTOM5A.333    
     +,NL0(LAND_PTS)              ! IN Nitrogen concentration of           SFSTOM5A.334    
C                                 !    top leaf (kg N/kg C).               SFSTOM5A.335    
     +,FPAR(LAND_PTS)             ! IN PAR absorption factor.              SFSTOM5A.336    
     +,FSMC(LAND_PTS)             ! IN Soil water factor.                  SFSTOM5A.337    
     +,LAI(LAND_PTS)              ! IN Leaf area index                     SFSTOM5A.338    
C                                 !    (m2 leaf/m2 ground).                SFSTOM5A.339    
                                                                           SFSTOM5A.340    
                                                                           SFSTOM5A.341    
      REAL                                                                 SFSTOM5A.342    
     + ANETC(LAND_PTS)            ! OUT Net canopy photosynthesis          SFSTOM5A.343    
C                                 !     (mol CO2/m2/s).                    SFSTOM5A.344    
     +,CI(LAND_PTS)               ! OUT Internal CO2 concentration         SFSTOM5A.345    
C                                 !     (mol CO2/m3).                      SFSTOM5A.346    
     +,GC(LAND_PTS)               ! OUT Canopy conductance for H2O         SFSTOM5A.347    
C                                 !     (m/s).                             SFSTOM5A.348    
     +,RDC(LAND_PTS)              ! OUT Canopy dark respiration            SFSTOM5A.349    
C                                 !     (mol CO2/m2/s).                    SFSTOM5A.350    
     +,ANETL(LAND_PTS)            ! WORK Net leaf photosynthesis           SFSTOM5A.351    
C                                 !      (mol CO2/m2/s/LAI).               SFSTOM5A.352    
     +,APAR(LAND_PTS)             ! WORK PAR absorbed by the top leaf      SFSTOM5A.353    
C                                 !      (W/m2).                           SFSTOM5A.354    
     +,CA(LAND_PTS)               ! WORK Canopy level CO2 pressure         SFSTOM5A.355    
C                                 !      (Pa).                             SFSTOM5A.356    
     +,DQM(LAND_PTS)              ! WORK Canopy level humidity             SFSTOM5A.357    
C                                 !      deficit (mol H2O/m3).             SFSTOM5A.358    
     +,GL(LAND_PTS)               ! WORK Leaf conductance for H2O          SFSTOM5A.359    
C                                 !      (m/s).                            SFSTOM5A.360    
     +,OA(LAND_PTS)               ! WORK Atmospheric O2 pressure           SFSTOM5A.361    
C                                 !      (Pa).                             SFSTOM5A.362    
     +,RD(LAND_PTS)               ! WORK Dark respiration of top leaf      SFSTOM5A.363    
C                                 !      (mol CO2/m2/s).                   SFSTOM5A.364    
                                                                           SFSTOM5A.365    
      LOGICAL                                                              SFSTOM5A.366    
     + LTIMER                                                              SFSTOM5A.367    
                                                                           SFSTOM5A.368    
      INTEGER                                                              SFSTOM5A.369    
     + I,J,L                      ! WORK Loop counters.                    SFSTOM5A.370    
                                                                           SFSTOM5A.371    
C-----------------------------------------------------------------------   SFSTOM5A.372    
C Functional Type dependent parameters                                     SFSTOM5A.373    
C-----------------------------------------------------------------------   SFSTOM5A.374    
      REAL                                                                 SFSTOM5A.375    
     + OMEGA(4)                   ! Leaf scattering coefficient for PAR.   SFSTOM5A.376    
C-----------------------------------------------------------------------   SFSTOM5A.377    
C                       BT    NT   C3G   C4G                               SFSTOM5A.378    
C-----------------------------------------------------------------------   SFSTOM5A.379    
      DATA OMEGA   /  0.15, 0.15, 0.15, 0.17 /  ! Sellers et al. (1994)    SFSTOM5A.380    
                                                                           SFSTOM5A.381    
C-----------------------------------------------------------------------   SFSTOM5A.382    
C Parameters                                                               SFSTOM5A.383    
C-----------------------------------------------------------------------   SFSTOM5A.384    
      REAL                                                                 SFSTOM5A.385    
     + R                          ! Gas constant (J/K/mol)                 SFSTOM5A.386    
      PARAMETER (R = 8.3144)                                               SFSTOM5A.387    
                                                                           SFSTOM5A.388    
      REAL                                                                 SFSTOM5A.389    
     + EPSILON                    ! Ratio of molecular weights of water    SFSTOM5A.390    
C                                 ! and dry air.                           SFSTOM5A.391    
     +,EPCO2                      ! Ratio of molecular weights of CO2      SFSTOM5A.392    
C                                 ! and dry air.                           SFSTOM5A.393    
     +,EPO2                       ! Ratio of molecular weights of O2       SFSTOM5A.394    
C                                 ! and dry air.                           SFSTOM5A.395    
      PARAMETER (EPSILON = 0.62198, EPCO2 = 1.5194, EPO2 = 1.106)          SFSTOM5A.396    
                                                                           SFSTOM5A.397    
      IF (LTIMER) THEN                                                     SFSTOM5A.398    
        CALL TIMER('CANOPY  ',103)                                         GPB8F405.158    
      ENDIF                                                                SFSTOM5A.400    
                                                                           SFSTOM5A.401    
C-----------------------------------------------------------------------   SFSTOM5A.402    
C Calculate the atmospheric pressures of CO2 and O2                        SFSTOM5A.403    
C-----------------------------------------------------------------------   SFSTOM5A.404    
      DO J=1,VEG_PTS                                                       SFSTOM5A.405    
        L = VEG_INDEX(J)                                                   SFSTOM5A.406    
        I = LAND_INDEX(L) - (P1-1)                                         SFSTOM5A.407    
                                                                           SFSTOM5A.408    
        CA(L) = CO2C(L) / EPCO2 * PSTAR(I)                                 SFSTOM5A.409    
        OA(L) = O2 / EPO2 * PSTAR(I)                                       SFSTOM5A.410    
        DQM(L) = DQC(L) / EPSILON * PSTAR(I) / (R * TSTAR(I))              SFSTOM5A.411    
                                                                           SFSTOM5A.412    
C-----------------------------------------------------------------------   SFSTOM5A.413    
C Calculate the PAR absorbed by the top leaf                               SFSTOM5A.414    
C-----------------------------------------------------------------------   SFSTOM5A.415    
        APAR(L) = (1 - OMEGA(FT(L))) * IPAR(I)                             SFSTOM5A.416    
                                                                           SFSTOM5A.417    
      ENDDO                                                                SFSTOM5A.418    
                                                                           SFSTOM5A.419    
C-----------------------------------------------------------------------   SFSTOM5A.420    
C Call the leaf level model for the top leaf of the C3 and C4 plants       SFSTOM5A.421    
C-----------------------------------------------------------------------   SFSTOM5A.422    
      CALL LEAF_C3 (LAND_PTS,LAND_INDEX,P1,P_POINTS                        SFSTOM5A.423    
     +,             VEG_PTS,VEG_INDEX                                      SFSTOM5A.424    
     +,             FT,DQC,APAR,TSTAR,CA,OA,PSTAR                          SFSTOM5A.425    
     +,             NL0,FSMC                                               SFSTOM5A.426    
     +,             GL,ANETL,CI,RD,LTIMER)                                 SFSTOM5A.427    
                                                                           SFSTOM5A.428    
      CALL LEAF_C4 (LAND_PTS,LAND_INDEX,P1,P_POINTS                        SFSTOM5A.429    
     +,             VEG_PTS,VEG_INDEX                                      SFSTOM5A.430    
     +,             FT,DQC,APAR,TSTAR,CA,OA,PSTAR                          SFSTOM5A.431    
     +,             NL0,FSMC                                               SFSTOM5A.432    
     +,             GL,ANETL,CI,RD,LTIMER)                                 SFSTOM5A.433    
                                                                           SFSTOM5A.434    
C-----------------------------------------------------------------------   SFSTOM5A.435    
C Scale-up to the canopy level                                             SFSTOM5A.436    
C-----------------------------------------------------------------------   SFSTOM5A.437    
      DO J=1,VEG_PTS                                                       SFSTOM5A.438    
        L = VEG_INDEX(J)                                                   SFSTOM5A.439    
                                                                           SFSTOM5A.440    
        ANETC(L) = ANETL(L) * FPAR(L)                                      SFSTOM5A.441    
        GC(L) = FPAR(L) * GL(L)                                            SFSTOM5A.442    
        RDC(L) = RD(L) * FPAR(L)                                           SFSTOM5A.443    
                                                                           SFSTOM5A.444    
      ENDDO                                                                SFSTOM5A.445    
                                                                           SFSTOM5A.446    
      IF (LTIMER) THEN                                                     SFSTOM5A.447    
        CALL TIMER('CANOPY  ',104)                                         GPB8F405.159    
      ENDIF                                                                SFSTOM5A.449    
                                                                           SFSTOM5A.450    
      RETURN                                                               SFSTOM5A.451    
                                                                           SFSTOM5A.452    
      END                                                                  SFSTOM5A.453    
*ENDIF                                                                     SFSTOM5A.454