*IF DEF,A03_7A                                                             PHYSIO7A.2      
C *****************************COPYRIGHT******************************     PHYSIO7A.3      
C (c) CROWN COPYRIGHT 1997, METEOROLOGICAL OFFICE, All Rights Reserved.    PHYSIO7A.4      
C                                                                          PHYSIO7A.5      
C Use, duplication or disclosure of this code is subject to the            PHYSIO7A.6      
C restrictions as set forth in the contract.                               PHYSIO7A.7      
C                                                                          PHYSIO7A.8      
C                Meteorological Office                                     PHYSIO7A.9      
C                London Road                                               PHYSIO7A.10     
C                BRACKNELL                                                 PHYSIO7A.11     
C                Berkshire UK                                              PHYSIO7A.12     
C                RG12 2SZ                                                  PHYSIO7A.13     
C                                                                          PHYSIO7A.14     
C If no contract has been raised with this copy of the code, the use,      PHYSIO7A.15     
C duplication or disclosure of it is strictly prohibited.  Permission      PHYSIO7A.16     
C to do so must first be obtained in writing from the Head of Numerical    PHYSIO7A.17     
C Modelling at the above address.                                          PHYSIO7A.18     
C ******************************COPYRIGHT******************************    PHYSIO7A.19     
!**********************************************************************    PHYSIO7A.20     
! Subroutine to calculate gridbox mean values of surface conductance       PHYSIO7A.21     
! and carbon fluxes. Also returns net primary productivity, leaf           PHYSIO7A.22     
! turnover and wood respiration of each plant functional type for          PHYSIO7A.23     
! driving TRIFFID.                                                         PHYSIO7A.24     
!                                                                          PHYSIO7A.25     
! Written by Peter Cox (June 1997)                                         PHYSIO7A.26     
! Adapted for MOSES II tile model by Richard Essery (July 1997)            PHYSIO7A.27     
! 4.5    Jul. 98  Kill the IBM specific lines (JCThil)                     AJC1F405.129    
!**********************************************************************    PHYSIO7A.28     

      SUBROUTINE PHYSIOL (LAND_FIELD,LAND_PTS,LAND1                         1,8PHYSIO7A.29     
     &,                   LAND_INDEX                                       PHYSIO7A.31     
     &,                   P_FIELD,NSHYD,TILE_PTS,TILE_INDEX                PHYSIO7A.33     
     &,                   CO2,CO2_3D,CO2_DIM,L_CO2_INTERACTIVE             ACN1F405.120    
     &,                   CS,FRAC,HT,IPAR,LAI,PSTAR,Q1                     ACN1F405.121    
     &,                   STHU,TIMESTEP,TSOIL,TSTAR_TILE                   PHYSIO7A.35     
     &,                   V_CRIT,V_SAT,V_WILT,WIND,Z0V,Z1                  PHYSIO7A.36     
     &,                   G_LEAF,GS,GS_TILE,GPP,GPP_FT,NPP,NPP_FT          ABX1F405.838    
     &,                   RESP_P,RESP_P_FT,RESP_S,RESP_W_FT,SMCT,WT_EXT)   ABX1F405.839    
                                                                           PHYSIO7A.39     
      IMPLICIT NONE                                                        PHYSIO7A.40     
                                                                           PHYSIO7A.41     
*CALL NSTYPES                                                              PHYSIO7A.42     
                                                                           PHYSIO7A.43     
      INTEGER                                                              PHYSIO7A.44     
     & LAND_FIELD                 ! IN Total number of land points.        PHYSIO7A.45     
     &,LAND_PTS                   ! IN Number of land points to be         PHYSIO7A.46     
!                                 !    processed.                          PHYSIO7A.47     
     &,LAND1                      ! IN First land point to be              PHYSIO7A.48     
!                                 !    processed.                          PHYSIO7A.49     
     &,LAND_INDEX(LAND_FIELD)     ! IN Index of land points on the         PHYSIO7A.51     
!                                 !    P-grid.                             PHYSIO7A.52     
     &,P_FIELD                    ! IN Total number of P-gridpoints.       PHYSIO7A.54     
     &,CO2_DIM           ! dimension of CO2 field                          ACN1F405.122    
     &,NSHYD                      ! IN Number of soil moisture             PHYSIO7A.55     
!                                 !    levels.                             PHYSIO7A.56     
     &,TILE_PTS(NTYPE)            ! IN Number of land points which         PHYSIO7A.57     
!                                 !    include the nth surface type.       PHYSIO7A.58     
     &,TILE_INDEX(LAND_FIELD,NTYPE)                                        PHYSIO7A.59     
!                                 ! IN Indices of land points which        PHYSIO7A.60     
!                                 !    include the nth surface type.       PHYSIO7A.61     
      LOGICAL L_CO2_INTERACTIVE   ! switch for 3D CO2 field                ACN1F405.123    
                                                                           PHYSIO7A.62     
      REAL                                                                 PHYSIO7A.63     
     & CO2                        ! IN Atmospheric CO2 concentration       PHYSIO7A.64     
     &,CO2_3D(CO2_DIM)            ! IN 3D atmos CO2 concentration          ACN1F405.124    
!                                 !    (kg CO2/kg air).                    PHYSIO7A.65     
     &,CS(LAND_FIELD)             ! IN Soil carbon (kg C/m2).              PHYSIO7A.66     
     &,FRAC(LAND_FIELD,NTYPE)     ! IN Tile fractions.                     PHYSIO7A.67     
     &,HT(LAND_FIELD,NPFT)        ! IN Canopy height (m).                  PHYSIO7A.68     
     &,IPAR(P_FIELD)              ! IN Incident PAR (W/m2).                PHYSIO7A.69     
     &,LAI(LAND_FIELD,NPFT)       ! IN Leaf area index.                    PHYSIO7A.70     
     &,PSTAR(P_FIELD)             ! IN Surface pressure (Pa).              PHYSIO7A.71     
     &,Q1(P_FIELD)                ! IN Specific humidity at level 1        PHYSIO7A.72     
!                                 !    (kg H2O/kg air).                    PHYSIO7A.73     
     &,STHU(LAND_FIELD,NSHYD)     ! IN Soil moisture content in each       PHYSIO7A.74     
!                                 !    layer as a fraction of saturation   PHYSIO7A.75     
     &,TIMESTEP                   ! IN Timestep (s).                       PHYSIO7A.76     
     &,TSOIL(LAND_FIELD)          ! IN Soil temperature (K).               PHYSIO7A.77     
     &,TSTAR_TILE(LAND_FIELD,NTYPE)                                        PHYSIO7A.78     
!                                 ! IN Tile surface temperatures (K).      PHYSIO7A.79     
     &,V_CRIT(LAND_FIELD)         ! IN Volumetric soil moisture            PHYSIO7A.80     
!                                 !    concentration above which           PHYSIO7A.81     
!                                 !    stomata are not sensitive           PHYSIO7A.82     
!                                 !    to soil water (m3 H2O/m3 soil).     PHYSIO7A.83     
     &,V_SAT(LAND_FIELD)          ! IN Volumetric soil moisture            PHYSIO7A.84     
!                                 !    concentration at saturation         PHYSIO7A.85     
!                                 !    (m3 H2O/m3 soil).                   PHYSIO7A.86     
     &,V_WILT(LAND_FIELD)         ! IN Volumetric soil moisture            PHYSIO7A.87     
!                                 !    concentration below which           PHYSIO7A.88     
!                                 !    stomata close (m3 H2O/m3 soil).     PHYSIO7A.89     
     &,WIND(P_FIELD)              ! IN Windspeed (m/s).                    PHYSIO7A.90     
     &,Z0V(LAND_FIELD,NTYPE)      ! IN Tile roughness lengths (m).         PHYSIO7A.91     
     &,Z1(P_FIELD)                ! IN Windspeed reference height(m).      PHYSIO7A.92     
     &,GS(LAND_FIELD)             ! INOUT Gridbox mean surface             PHYSIO7A.93     
!                                 !       conductance (m/s).               PHYSIO7A.94     
                                                                           PHYSIO7A.95     
      REAL                                                                 PHYSIO7A.96     
     & G_LEAF(LAND_FIELD,NPFT)    ! OUT Leaf turnover rate (/360days).     ABX1F405.840    
     &,GS_TILE(LAND_FIELD,NTYPE)  ! OUT Surface conductance for            PHYSIO7A.98     
!                                 !     land tiles (m/s).                  PHYSIO7A.99     
     &,GPP(LAND_FIELD)            ! OUT Gridbox mean gross primary         PHYSIO7A.100    
!                                 !     productivity (kg C/m2/s).          PHYSIO7A.101    
     &,GPP_FT(LAND_FIELD,NPFT)    ! OUT Gross primary productivity         ABX1F405.841    
!                                 !     (kg C/m2/s).                       ABX1F405.842    
     &,NPP(LAND_FIELD)            ! OUT Gridbox mean net primary           PHYSIO7A.102    
!                                 !     productivity (kg C/m2/s).          PHYSIO7A.103    
     &,NPP_FT(LAND_FIELD,NPFT)    ! OUT Net primary productivity           PHYSIO7A.104    
!                                 !     (kg C/m2/s).                       PHYSIO7A.105    
     &,RESP_P(LAND_FIELD)         ! OUT Gridbox mean plant respiration     PHYSIO7A.106    
!                                 !     (kg C/m2/s).                       PHYSIO7A.107    
     &,RESP_P_FT(LAND_FIELD,NPFT) ! OUT Plant respiration (kg C/m2/s).     ABX1F405.843    
     &,RESP_S(LAND_FIELD)         ! OUT Soil respiration (kg C/m2/s).      PHYSIO7A.108    
     &,RESP_W_FT(LAND_FIELD,NPFT) ! OUT Wood maintenance respiration       PHYSIO7A.109    
!                                 !     (kg C/m2/s).                       PHYSIO7A.110    
     &,SMCT(LAND_FIELD)           ! OUT Available moisture in the          PHYSIO7A.111    
!                                 !     soil profile (mm).                 PHYSIO7A.112    
     &,WT_EXT(LAND_FIELD,NSHYD)   ! OUT Fraction of evapotranspiration     PHYSIO7A.113    
!                                 !     which is extracted from each       PHYSIO7A.114    
!                                 !     soil layer.                        PHYSIO7A.115    
                                                                           PHYSIO7A.116    
      REAL                                                                 PHYSIO7A.117    
     & F_ROOT(NSHYD)              ! WORK Fraction of roots in each soil    PHYSIO7A.118    
!                                 !      layer.                            PHYSIO7A.119    
     &,FSMC(LAND_FIELD)           ! WORK Moisture availability factor.     PHYSIO7A.120    
     &,PSTAR_LAND(LAND_FIELD)     ! WORK Surface pressure (Pa).            PHYSIO7A.123    
     &,RA(LAND_FIELD)             ! WORK Aerodynamic resistance (s/m).     PHYSIO7A.124    
     &,RIB(P_FIELD)               ! WORK Bulk Richardson Number.           PHYSIO7A.126    
                                                                           PHYSIO7A.127    
      INTEGER                                                              PHYSIO7A.128    
     & I,J,K,L,N                  ! Loop indices                           PHYSIO7A.129    
                                                                           PHYSIO7A.130    
*CALL PFTPARM                                                              PHYSIO7A.131    
*CALL NVEGPARM                                                             PHYSIO7A.132    
*CALL C_DENSTY                                                             PHYSIO7A.133    
*CALL SOIL_THICK                                                           PHYSIO7A.134    
                                                                           PHYSIO7A.135    
                                                                           PHYSIO7A.142    
!-----------------------------------------------------------------------   PHYSIO7A.143    
! Initialisations                                                          PHYSIO7A.144    
!-----------------------------------------------------------------------   PHYSIO7A.145    
      DO K=1,NSHYD                                                         PHYSIO7A.146    
        F_ROOT(K)=0.0                                                      PHYSIO7A.147    
        DO L=1,LAND_FIELD                                                  ABX1F405.844    
          WT_EXT(L,K)=0.0                                                  PHYSIO7A.149    
        ENDDO                                                              PHYSIO7A.150    
      ENDDO                                                                PHYSIO7A.151    
                                                                           PHYSIO7A.152    
      DO L=1,LAND_FIELD                                                    ABX1F405.845    
        I = LAND_INDEX(L)                                                  PHYSIO7A.154    
        PSTAR_LAND(L) = PSTAR(I)                                           PHYSIO7A.155    
      ENDDO                                                                PHYSIO7A.156    
                                                                           PHYSIO7A.157    
      DO I=1,P_FIELD                                                       PHYSIO7A.158    
        RIB(I)=0.0                                                         PHYSIO7A.159    
      ENDDO                                                                PHYSIO7A.160    
                                                                           PHYSIO7A.161    
      DO N=1,NPFT                                                          PHYSIO7A.162    
        DO L=1,LAND_FIELD                                                  ABX1F405.846    
          G_LEAF(L,N)=0.0                                                  PHYSIO7A.164    
          GPP_FT(L,N)=0.0                                                  PHYSIO7A.165    
          NPP_FT(L,N)=0.0                                                  PHYSIO7A.166    
          RESP_P_FT(L,N)=0.0                                               PHYSIO7A.167    
          RESP_W_FT(L,N)=0.0                                               PHYSIO7A.168    
        ENDDO                                                              PHYSIO7A.169    
      ENDDO                                                                PHYSIO7A.170    
                                                                           PHYSIO7A.171    
      DO N=1,NTYPE                                                         PHYSIO7A.172    
        DO L=1,LAND_FIELD                                                  ABX1F405.847    
          GS_TILE(L,N)=GS(L)                                               PHYSIO7A.174    
        ENDDO                                                              PHYSIO7A.175    
      ENDDO                                                                PHYSIO7A.176    
                                                                           PHYSIO7A.177    
      DO L=1,LAND_FIELD                                                    ABX1F405.848    
        GPP(L)=0.0                                                         PHYSIO7A.179    
        NPP(L)=0.0                                                         PHYSIO7A.180    
        RESP_P(L)=0.0                                                      PHYSIO7A.181    
        RESP_S(L)=0.0                                                      ABX1F405.849    
        SMCT(L)=0.0                                                        PHYSIO7A.182    
        GS(L)=0.0                                                          PHYSIO7A.183    
        FSMC(L)=0.0                                                        PHYSIO7A.184    
        RA(L)=0.0                                                          PHYSIO7A.185    
      ENDDO                                                                PHYSIO7A.186    
                                                                           PHYSIO7A.187    
!-----------------------------------------------------------------------   PHYSIO7A.188    
! Loop over Plant Functional Types to calculate the available moisture     PHYSIO7A.189    
! and the values of canopy conductance, the carbon fluxes and the leaf     PHYSIO7A.190    
! turnover rate                                                            PHYSIO7A.191    
!-----------------------------------------------------------------------   PHYSIO7A.192    
      DO N=1,NPFT                                                          PHYSIO7A.193    
                                                                           PHYSIO7A.194    
        CALL ROOT_FRAC(NSHYD,DZSOIL,ROOTD_FT(N),F_ROOT)                    PHYSIO7A.195    
                                                                           PHYSIO7A.196    
        CALL SMC_EXT (LAND_FIELD,NSHYD,TILE_PTS(N),TILE_INDEX(1,N)         PHYSIO7A.197    
     &,               F_ROOT,FRAC(1,N),STHU,V_CRIT,V_SAT,V_WILT            PHYSIO7A.198    
     &,               WT_EXT,FSMC)                                         PHYSIO7A.199    
                                                                           PHYSIO7A.200    
        CALL RAERO (LAND_FIELD,LAND_INDEX,P_FIELD                          PHYSIO7A.201    
     &,             TILE_PTS(N),TILE_INDEX(1,N)                            PHYSIO7A.202    
     &,             RIB,WIND,Z0V(1,N),Z0V(1,N),Z1,RA)                      PHYSIO7A.203    
                                                                           PHYSIO7A.204    
        CALL SF_STOM (LAND_FIELD,LAND_INDEX,P_FIELD                        PHYSIO7A.205    
     &,               TILE_PTS(N),TILE_INDEX(1,N),N                        PHYSIO7A.206    
     &,               CO2,CO2_3D,CO2_DIM,L_CO2_INTERACTIVE                 ACN1F405.125    
     &,               FSMC,HT(1,N),IPAR,LAI(1,N),PSTAR_LAND                ACN1F405.126    
     &,               Q1,RA,TSTAR_TILE(1,N)                                PHYSIO7A.208    
     &,               GPP_FT(1,N),NPP_FT(1,N),RESP_P_FT(1,N)               PHYSIO7A.209    
     &,               RESP_W_FT(1,N),GS_TILE(1,N))                         PHYSIO7A.210    
                                                                           PHYSIO7A.211    
        CALL LEAF_LIT (LAND_FIELD,TILE_PTS(N),TILE_INDEX(1,N)              PHYSIO7A.212    
     &,                N,FSMC,TSTAR_TILE(1,N),G_LEAF(1,N))                 PHYSIO7A.213    
                                                                           PHYSIO7A.214    
      ENDDO                                                                PHYSIO7A.215    
                                                                           PHYSIO7A.216    
!----------------------------------------------------------------------    PHYSIO7A.217    
! Loop over non-vegetated surface types to calculate the available         PHYSIO7A.218    
! moisture and the surface conductance. Land-ice (tile NTYPE) excluded.    PHYSIO7A.219    
!----------------------------------------------------------------------    PHYSIO7A.220    
      DO N=NPFT+1,NTYPE-1                                                  PHYSIO7A.221    
                                                                           PHYSIO7A.222    
        CALL ROOT_FRAC(NSHYD,DZSOIL,ROOTD_NVG(N-NPFT),F_ROOT)              PHYSIO7A.223    
                                                                           PHYSIO7A.224    
        CALL SMC_EXT (LAND_FIELD,NSHYD,TILE_PTS(N),TILE_INDEX(1,N)         PHYSIO7A.225    
     &,               F_ROOT,FRAC(1,N),STHU,V_CRIT,V_SAT,V_WILT            PHYSIO7A.226    
     &,               WT_EXT,FSMC)                                         PHYSIO7A.227    
                                                                           PHYSIO7A.228    
        DO J=1,TILE_PTS(N)                                                 PHYSIO7A.229    
          L=TILE_INDEX(J,N)                                                PHYSIO7A.230    
          GS_TILE(L,N)=FSMC(L)*GS_NVG(N-NPFT)                              PHYSIO7A.231    
        ENDDO                                                              PHYSIO7A.232    
                                                                           PHYSIO7A.233    
      ENDDO                                                                PHYSIO7A.234    
                                                                           PHYSIO7A.235    
!----------------------------------------------------------------------    PHYSIO7A.236    
! Calculate the rate of soil respiration                                   PHYSIO7A.237    
!----------------------------------------------------------------------    PHYSIO7A.238    
      CALL MICROBE (LAND_FIELD,LAND_PTS,LAND1                              PHYSIO7A.239    
     &,             CS,STHU,V_SAT,V_WILT,TSOIL,RESP_S)                     PHYSIO7A.240    
                                                                           PHYSIO7A.241    
!----------------------------------------------------------------------    PHYSIO7A.242    
! Form gridbox mean values                                                 PHYSIO7A.243    
!----------------------------------------------------------------------    PHYSIO7A.244    
      DO N=1,NTYPE-1                                                       PHYSIO7A.245    
        DO J=1,TILE_PTS(N)                                                 PHYSIO7A.246    
          L=TILE_INDEX(J,N)                                                PHYSIO7A.247    
          GS(L)=GS(L)+FRAC(L,N)*GS_TILE(L,N)                               PHYSIO7A.248    
        ENDDO                                                              PHYSIO7A.249    
      ENDDO                                                                PHYSIO7A.250    
                                                                           PHYSIO7A.251    
      DO N=1,NPFT                                                          PHYSIO7A.252    
        DO J=1,TILE_PTS(N)                                                 PHYSIO7A.253    
          L=TILE_INDEX(J,N)                                                PHYSIO7A.254    
                                                                           PHYSIO7A.255    
          GPP(L)=GPP(L)+FRAC(L,N)*GPP_FT(L,N)                              PHYSIO7A.256    
          NPP(L)=NPP(L)+FRAC(L,N)*NPP_FT(L,N)                              PHYSIO7A.257    
          RESP_P(L)=RESP_P(L)+FRAC(L,N)*RESP_P_FT(L,N)                     PHYSIO7A.258    
                                                                           PHYSIO7A.259    
        ENDDO                                                              PHYSIO7A.260    
      ENDDO                                                                PHYSIO7A.261    
                                                                           PHYSIO7A.262    
!----------------------------------------------------------------------    PHYSIO7A.263    
! Diagnose the available moisture in the soil profile                      PHYSIO7A.264    
!----------------------------------------------------------------------    PHYSIO7A.265    
      DO N=1,NSHYD                                                         PHYSIO7A.266    
        DO L=LAND1,LAND1+LAND_PTS-1                                        PHYSIO7A.267    
          SMCT(L) = SMCT(L) + MAX( 0. ,                                    PHYSIO7A.268    
     &             RHO_WATER*DZSOIL(N)*(STHU(L,N)*V_SAT(L)-V_WILT(L)))     PHYSIO7A.269    
        ENDDO                                                              PHYSIO7A.270    
      ENDDO                                                                PHYSIO7A.271    
                                                                           PHYSIO7A.272    
      RETURN                                                               PHYSIO7A.273    
      END                                                                  PHYSIO7A.274    
*ENDIF                                                                     PHYSIO7A.275