*IF DEF,A03_7A                                                             SMCEXT7A.2      
C *****************************COPYRIGHT******************************     SMCEXT7A.3      
C (c) CROWN COPYRIGHT 1997, METEOROLOGICAL OFFICE, All Rights Reserved.    SMCEXT7A.4      
C                                                                          SMCEXT7A.5      
C Use, duplication or disclosure of this code is subject to the            SMCEXT7A.6      
C restrictions as set forth in the contract.                               SMCEXT7A.7      
C                                                                          SMCEXT7A.8      
C                Meteorological Office                                     SMCEXT7A.9      
C                London Road                                               SMCEXT7A.10     
C                BRACKNELL                                                 SMCEXT7A.11     
C                Berkshire UK                                              SMCEXT7A.12     
C                RG12 2SZ                                                  SMCEXT7A.13     
C                                                                          SMCEXT7A.14     
C If no contract has been raised with this copy of the code, the use,      SMCEXT7A.15     
C duplication or disclosure of it is strictly prohibited.  Permission      SMCEXT7A.16     
C to do so must first be obtained in writing from the Head of Numerical    SMCEXT7A.17     
C Modelling at the above address.                                          SMCEXT7A.18     
C ******************************COPYRIGHT******************************    SMCEXT7A.19     
!    SUBROUTINE SMC_EXT-----------------------------------------------     SMCEXT7A.20     
!                                                                          SMCEXT7A.21     
! Subroutine Interface:                                                    SMCEXT7A.22     

      SUBROUTINE SMC_EXT (NPNTS,NSHYD,TILE_PTS,TILE_INDEX                   2SMCEXT7A.23     
     &,                   F_ROOT,FRAC,STHU,V_CRIT,V_SAT,V_WILT             SMCEXT7A.24     
     &,                   WT_EXT,FSMC)                                     SMCEXT7A.25     
                                                                           SMCEXT7A.26     
      IMPLICIT NONE                                                        SMCEXT7A.27     
!                                                                          SMCEXT7A.28     
! Description:                                                             SMCEXT7A.29     
!     Calculates the soil moisture availability factor and                 SMCEXT7A.30     
!     the fraction of the transpiration which is extracted from each       SMCEXT7A.31     
!     soil layer.                                                          SMCEXT7A.32     
!                                                                          SMCEXT7A.33     
!                                                                          SMCEXT7A.34     
! Documentation : UM Documentation Paper 25                                SMCEXT7A.35     
!                                                                          SMCEXT7A.36     
! Current Code Owner : David Gregory                                       SMCEXT7A.37     
!                                                                          SMCEXT7A.38     
! History:                                                                 SMCEXT7A.39     
! Version   Date     Comment                                               SMCEXT7A.40     
! -------   ----     -------                                               SMCEXT7A.41     
!  4.4               New deck   Peter Cox                                  SMCEXT7A.42     
!                                                                          SMCEXT7A.43     
! Code Description:                                                        SMCEXT7A.44     
!   Language: FORTRAN 77 + common extensions.                              SMCEXT7A.45     
!                                                                          SMCEXT7A.46     
! System component covered: P25                                            SMCEXT7A.47     
! System Task: P25                                                         SMCEXT7A.48     
!                                                                          SMCEXT7A.49     
                                                                           SMCEXT7A.50     
! Subroutine arguments:                                                    SMCEXT7A.51     
!   Scalar arguments with intent(IN) :                                     SMCEXT7A.52     
      INTEGER                                                              SMCEXT7A.53     
     & NPNTS                ! IN Number of gridpoints.                     SMCEXT7A.54     
     &,NSHYD                ! IN Number of soil moisture layers.           SMCEXT7A.55     
     &,TILE_PTS             ! IN Number of points containing the           SMCEXT7A.56     
C                           !    given surface type.                       SMCEXT7A.57     
     &,TILE_INDEX(NPNTS)    ! IN Indices on the land grid of the           SMCEXT7A.58     
C                           !    points containing the given               SMCEXT7A.59     
C                           !    surface type.                             SMCEXT7A.60     
                                                                           SMCEXT7A.61     
                                                                           SMCEXT7A.62     
!   Array arguments with intent(IN) :                                      SMCEXT7A.63     
      REAL                                                                 SMCEXT7A.64     
     & F_ROOT(NSHYD)        ! IN Fraction of roots in each soil            SMCEXT7A.65     
!                           !    layer.                                    SMCEXT7A.66     
     &,FRAC(NPNTS)          ! IN Tile fraction.                            SMCEXT7A.67     
     &,STHU(NPNTS,NSHYD)    ! IN Unfrozen soil moisture content of         SMCEXT7A.68     
!                           !    each layer as a fraction of               SMCEXT7A.69     
!                           !    saturation.                               SMCEXT7A.70     
     &,V_CRIT(NPNTS)        ! IN Volumetric soil moisture                  SMCEXT7A.71     
!                           !    concentration above which                 SMCEXT7A.72     
!                           !    evapotranspiration is not sensitive       SMCEXT7A.73     
!                           !    to soil water (m3 H2O/m3 soil).           SMCEXT7A.74     
     &,V_SAT(NPNTS)         ! IN Volumetric soil moisture                  SMCEXT7A.75     
!                           !    concentration at saturation               SMCEXT7A.76     
!                           !    (m3 H2O/m3 soil).                         SMCEXT7A.77     
     &,V_WILT(NPNTS)        ! IN Volumetric soil moisture                  SMCEXT7A.78     
!                           !    concentration below which                 SMCEXT7A.79     
!                           !    stomata close (m3 H2O/m3 soil).           SMCEXT7A.80     
                                                                           SMCEXT7A.81     
!   Array arguments with intent(INOUT) :                                   SMCEXT7A.82     
      REAL                                                                 SMCEXT7A.83     
     & WT_EXT(NPNTS,NSHYD)  ! OUT Cummulative fraction of transpiration    SMCEXT7A.84     
!                           !     extracted from each soil layer           SMCEXT7A.85     
!                           !     (kg/m2/s).                               SMCEXT7A.86     
                                                                           SMCEXT7A.87     
                                                                           SMCEXT7A.88     
!   Array arguments with intent(OUT) :                                     SMCEXT7A.89     
      REAL                                                                 SMCEXT7A.90     
     & FSMC(NPNTS)          ! OUT Soil moisture availability               SMCEXT7A.91     
!                           !     factor.                                  SMCEXT7A.92     
                                                                           SMCEXT7A.93     
! Local scalars:                                                           SMCEXT7A.94     
      INTEGER                                                              SMCEXT7A.95     
     & I,J,N                ! WORK Loop counters                           SMCEXT7A.96     
                                                                           SMCEXT7A.97     
! Local arrays:                                                            SMCEXT7A.98     
      REAL                                                                 SMCEXT7A.99     
     & FSMC_L(NPNTS,NSHYD)  ! WORK Soil moisture availability              SMCEXT7A.100    
!                           !      factor for each soil layer.             SMCEXT7A.101    
                                                                           SMCEXT7A.102    
!----------------------------------------------------------------------    SMCEXT7A.103    
! Initialisations                                                          SMCEXT7A.104    
!----------------------------------------------------------------------    SMCEXT7A.105    
      DO I=1,NPNTS                                                         SMCEXT7A.106    
        FSMC(I)=0.0                                                        SMCEXT7A.107    
      ENDDO                                                                SMCEXT7A.108    
                                                                           SMCEXT7A.109    
!----------------------------------------------------------------------    SMCEXT7A.110    
! Calculate the soil moisture availability factor for each layer and       SMCEXT7A.111    
! weight with the root fraction to calculate the total availability        SMCEXT7A.112    
! factor.                                                                  SMCEXT7A.113    
!----------------------------------------------------------------------    SMCEXT7A.114    
      DO N=1,NSHYD                                                         SMCEXT7A.115    
        DO J=1,TILE_PTS                                                    SMCEXT7A.116    
          I=TILE_INDEX(J)                                                  SMCEXT7A.117    
                                                                           SMCEXT7A.118    
          FSMC_L(I,N)=(STHU(I,N)*V_SAT(I)-V_WILT(I))                       SMCEXT7A.119    
     &               /(V_CRIT(I)-V_WILT(I))                                SMCEXT7A.120    
          FSMC_L(I,N)=MAX(FSMC_L(I,N),0.0)                                 SMCEXT7A.121    
          FSMC_L(I,N)=MIN(FSMC_L(I,N),1.0)                                 SMCEXT7A.122    
                                                                           SMCEXT7A.123    
          FSMC(I)=FSMC(I)+F_ROOT(N)*FSMC_L(I,N)                            SMCEXT7A.124    
                                                                           SMCEXT7A.125    
        ENDDO                                                              SMCEXT7A.126    
      ENDDO                                                                SMCEXT7A.127    
                                                                           SMCEXT7A.128    
!----------------------------------------------------------------------    SMCEXT7A.129    
! Calculate the fraction of the tranpiration which is extracted from       SMCEXT7A.130    
! each soil layer.                                                         SMCEXT7A.131    
!----------------------------------------------------------------------    SMCEXT7A.132    
      DO N=1,NSHYD                                                         SMCEXT7A.133    
        DO J=1,TILE_PTS                                                    SMCEXT7A.134    
          I=TILE_INDEX(J)                                                  SMCEXT7A.135    
          IF (FSMC(I) .GT. 0.0)                                            SMCEXT7A.136    
     &      WT_EXT(I,N) = WT_EXT(I,N) +                                    SMCEXT7A.137    
     &                            FRAC(I)*F_ROOT(N)*FSMC_L(I,N)/FSMC(I)    SMCEXT7A.138    
        ENDDO                                                              SMCEXT7A.139    
      ENDDO                                                                SMCEXT7A.140    
                                                                           SMCEXT7A.141    
      RETURN                                                               SMCEXT7A.142    
      END                                                                  SMCEXT7A.143    
*ENDIF                                                                     SMCEXT7A.144