*IF DEF,A08_7A                                                             HYD_IC7A.2      
C *****************************COPYRIGHT******************************     HYD_IC7A.3      
C (c) CROWN COPYRIGHT 1997, METEOROLOGICAL OFFICE, All Rights Reserved.    HYD_IC7A.4      
C                                                                          HYD_IC7A.5      
C Use, duplication or disclosure of this code is subject to the            HYD_IC7A.6      
C restrictions as set forth in the contract.                               HYD_IC7A.7      
C                                                                          HYD_IC7A.8      
C                Meteorological Office                                     HYD_IC7A.9      
C                London Road                                               HYD_IC7A.10     
C                BRACKNELL                                                 HYD_IC7A.11     
C                Berkshire UK                                              HYD_IC7A.12     
C                RG12 2SZ                                                  HYD_IC7A.13     
C                                                                          HYD_IC7A.14     
C If no contract has been raised with this copy of the code, the use,      HYD_IC7A.15     
C duplication or disclosure of it is strictly prohibited.  Permission      HYD_IC7A.16     
C to do so must first be obtained in writing from the Head of Numerical    HYD_IC7A.17     
C Modelling at the above address.                                          HYD_IC7A.18     
C ******************************COPYRIGHT******************************    HYD_IC7A.19     
!   Subroutine HYD_INTCTL------------------------------------------        HYD_IC7A.20     
!                                                                          HYD_IC7A.21     
!   Level 3 control routine                                                HYD_IC7A.22     
!                                                                          HYD_IC7A.23     
!   Purpose: Calls HYDROL to calculate and add hydrology increments.       HYD_IC7A.24     
!            Avoids the need for *IF DEF around calls to different         HYD_IC7A.25     
!            versions of HYDROL.                                           HYD_IC7A.26     
!            Multilayer Version.                                           HYD_IC7A.27     
!                                                                          HYD_IC7A.28     
!   Written for the CRAY YMP                                               HYD_IC7A.29     
!                                                                          HYD_IC7A.30     
!      Author C.Bunton      Reviewer J.Lean 4/10/94                        HYD_IC7A.31     
!                                                                          HYD_IC7A.32     
!   Modification history:                                                  HYD_IC7A.33     
!                                                                          HYD_IC7A.34     
!   version  Date                                                          HYD_IC7A.35     
!   4.1     5/6/96  New deck.                                              HYD_IC7A.36     
!   4.4    25/6/97  Modified for MOSES II tile model. R Essery             HYD_IC7A.37     
!   4.4    9/12/97  Change gridbox mean canopy water from prognostic       HYD_IC7A.38     
!                   to diagnostic.                    R.A.Betts            HYD_IC7A.39     
!                                                                          HYD_IC7A.40     
!   Programming standard : unified model documentation paper No 3          HYD_IC7A.41     
!                                                                          HYD_IC7A.42     
!   System components covered : P25                                        HYD_IC7A.43     
!                                                                          HYD_IC7A.44     
!   System task : P0                                                       HYD_IC7A.45     
!                                                                          HYD_IC7A.46     
!   Documentation: Unified Model documentation paper P0                    HYD_IC7A.47     
!                  version No 11 dated (26/11/90)                          HYD_IC7A.48     
!  END -----------------------------------------------------------------   HYD_IC7A.49     
!   Arguments                                                              HYD_IC7A.50     
                                                                           HYD_IC7A.51     

      SUBROUTINE HYD_INTCTL (                                               2,3HYD_IC7A.52     
     &     LAND,LICE_PTS,LICE_INDEX,ST_LEVELS,SM_LEVELS,                   HYD_IC7A.53     
     &     SOIL_PTS,SOIL_INDEX,                                            HYD_IC7A.54     
     &     B_EXP,CAN_CPY,CANOPY_EVAPORATION,                               HYD_IC7A.55     
     &     CONV_RAIN,CONV_SNOW,EXT,                                        HYD_IC7A.56     
     &     HCAP,HCON,INFIL_FAC,                                            HYD_IC7A.57     
     &     LAYER_DEPTH,LS_RAIN,LS_SNOW,                                    HYD_IC7A.58     
     &     ROOTD,SATCON,SATHH,SNOW_SUBLIMATION,                            HYD_IC7A.59     
     &     SOILB,SOIL_EVAPORATION,SURF_HT_FLUX,                            HYD_IC7A.60     
     &     VFRAC,VSAT,VWILT,TIMESTEP,                                      HYD_IC7A.61     
     &     CAN_WCNT,RGRAIN,L_SNOW_ALBEDO,SNODEP,STHF,STHU,                 HYD_IC7A.62     
     &     TSTAR,T_DEEP_SOIL,                                              HYD_IC7A.63     
     &     INFIL,STF_HF_SNOW_MELT,                                         HYD_IC7A.64     
     &     HF_SNOW_MELT,SMC,SMCL,                                          HYD_IC7A.65     
     &     SNOW_MELT,STF_HF_SNOMLT_SUB,                                    HYD_IC7A.66     
     &     SNOMLT_SUB_HTF,                                                 HYD_IC7A.67     
     &     STF_SUB_SURF_ROFF,SUB_SURF_ROFF,SURF_ROFF,                      HYD_IC7A.68     
     &     TOT_TFALL,                                                      HYD_IC7A.69     
! Additional arguments for 7A hydrology (MOSES II)                         HYD_IC7A.70     
     &     TILE_PTS,TILE_INDEX,                                            HYD_IC7A.71     
     &     CAN_CPY_TILE,CAN_EVAP_TILE,                                     HYD_IC7A.72     
     &     FRAC,SNOW_FRAC,SOIL_SURF_HTF,SNOW_SURF_HTF,TSTAR_SNOW,          HYD_IC7A.73     
     &     CAN_WCNT_TILE,TSNOW,                                            HYD_IC7A.74     
!                                                                          HYD_IC7A.75     
     &     LTIMER                                                          HYD_IC7A.76     
     & )                                                                   HYD_IC7A.77     
                                                                           HYD_IC7A.78     
      IMPLICIT NONE                                                        HYD_IC7A.79     
                                                                           HYD_IC7A.80     
!----------------------------------------------------------------------    HYD_IC7A.81     
! Some of the following variables are 'dummy' as they are used by          HYD_IC7A.82     
! other HYDROL versions                                                    HYD_IC7A.83     
!---------------------------------------------------------------------     HYD_IC7A.84     
                                                                           HYD_IC7A.85     
*CALL NSTYPES                                                              HYD_IC7A.86     
                                                                           HYD_IC7A.87     
!---------------------------------------------------------------------     HYD_IC7A.88     
! IN Variables                                                             HYD_IC7A.89     
!----------------------------------------------------------------------    HYD_IC7A.90     
      INTEGER                                                              HYD_IC7A.91     
     &   LAND,                    ! IN No. land only points                HYD_IC7A.92     
     &   LICE_PTS,                ! IN No. of land-ice points              HYD_IC7A.93     
     &   LICE_INDEX(LAND),        ! IN Index of land-ice pts.              HYD_IC7A.94     
!                                 !    on land grid                        HYD_IC7A.95     
     &   SM_LEVELS,               ! IN No. of soil moisture levels         HYD_IC7A.96     
     &   ST_LEVELS,               ! IN No. deep soil temp. levels          HYD_IC7A.97     
     &   SOIL_PTS,                ! IN No. of soil points.                 HYD_IC7A.98     
!                                 !    Excludes land-ice points            HYD_IC7A.99     
     &   SOIL_INDEX(LAND),        ! IN Index of soil points on land        HYD_IC7A.100    
!                                 !    grid. Excludes land-ice pts.        HYD_IC7A.101    
     &   TILE_PTS(NTYPE),         ! IN Number of tile points.              HYD_IC7A.102    
     &   TILE_INDEX(LAND,NTYPE)   ! IN Index of tile points.               HYD_IC7A.103    
                                                                           HYD_IC7A.104    
      REAL                                                                 HYD_IC7A.105    
     &  B_EXP(LAND),              ! IN Exponent used in calculation        HYD_IC7A.106    
!                                 !    of soil water suction and           HYD_IC7A.107    
!                                 !    hydraulic conductivity              HYD_IC7A.108    
     &  CAN_CPY_TILE(LAND,NTYPE-1),                                        HYD_IC7A.109    
!                                 ! IN Canopy/surface capacity of          HYD_IC7A.110    
!                                 !    snow-free land tiles (kg/m2)        HYD_IC7A.111    
     &  CAN_EVAP_TILE(LAND,NTYPE-1),                                       HYD_IC7A.112    
!                                 ! IN Canopy evaporation from snow-free   HYD_IC7A.113    
!                                 !    land tiles (kg/m2/s)                HYD_IC7A.114    
     &  CONV_RAIN(LAND),          ! IN Convective rain (kg/m2/s)           HYD_IC7A.115    
     &  CONV_SNOW(LAND),          ! IN Convective snow(kg/m2/s)            HYD_IC7A.116    
     &  EXT(LAND,SM_LEVELS),      ! IN Extraction of water from each       HYD_IC7A.117    
!                                 !    soil layer (kg/m2/s)                HYD_IC7A.118    
     &  FRAC(LAND,NTYPE),         ! IN Tile fractions                      HYD_IC7A.119    
     &  HCAP(LAND),               ! IN Soil heat capacity (J/K/m3)         HYD_IC7A.120    
     &  HCON(LAND),               ! IN Soil thermal conductivity (W/M/K)   HYD_IC7A.121    
     &  LS_RAIN(LAND),            ! IN large scale rain (kg/m2/s)          HYD_IC7A.122    
     &  LS_SNOW(LAND),            ! IN large scale snow (kg/m2/s)          HYD_IC7A.123    
     &  SATCON(LAND),             ! IN Saturated hydraulic conductivity    HYD_IC7A.124    
!                                 !    (kg/m2/s)                           HYD_IC7A.125    
     &  SATHH(LAND),              ! IN Soil water suction (m)              HYD_IC7A.126    
     &  SNOW_FRAC(LAND),          ! IN Fraction of snow cover.             HYD_IC7A.127    
     &  SNOW_SUBLIMATION(LAND),   ! IN Sublimation of snow (kg/m2/s)       HYD_IC7A.128    
     &  SOIL_SURF_HTF(LAND),      ! IN Net downward surface heat flux      HYD_IC7A.129    
!                                 !    (W/m2)  - snow-free land.           HYD_IC7A.130    
     &  SNOW_SURF_HTF(LAND),      ! IN Net downward surface heat flux      HYD_IC7A.131    
!                                 !    (W/m2)  - snow.                     HYD_IC7A.132    
     &  TSTAR_SNOW(LAND),         ! IN Snow surface temperature (K)        HYD_IC7A.133    
     &  VSAT(LAND),               ! IN Volumetric soil moisture content    HYD_IC7A.134    
!                                 !    at saturation (m3/m3 soil)          HYD_IC7A.135    
     &  VWILT(LAND),              ! IN Volumetric soil moisture at         HYD_IC7A.136    
!                                 !     wilting point (m3/m3 soil)         HYD_IC7A.137    
     &  TIMESTEP                  ! IN seconds between                     HYD_IC7A.138    
!                                 !    physics routines call               HYD_IC7A.139    
                                                                           HYD_IC7A.140    
      LOGICAL                                                              HYD_IC7A.141    
     &   L_SNOW_ALBEDO,           ! IN Flag for prognostic snow albedo     HYD_IC7A.142    
     &   STF_HF_SNOW_MELT,        ! IN Stash flag for snow melt heat       HYD_IC7A.143    
!                                 !    flux                                HYD_IC7A.144    
     &   STF_HF_SNOMLT_SUB,       ! IN Stash flag for sub-surface          HYD_IC7A.145    
!                                 !    snow melt heat flux                 HYD_IC7A.146    
     &   STF_SUB_SURF_ROFF        ! IN Stash flag for sub-surface runoff   HYD_IC7A.147    
!---------------------------------------------------------------------     HYD_IC7A.148    
! INOUT Variables                                                          HYD_IC7A.149    
!----------------------------------------------------------------------    HYD_IC7A.150    
      REAL                                                                 HYD_IC7A.151    
     &  CAN_WCNT_TILE(LAND,NTYPE-1),                                       HYD_IC7A.152    
!                                 ! INOUT Canopy water content for         HYD_IC7A.153    
!                                 !       snow-free land tiles (Kg/m2)     HYD_IC7A.154    
     &  RGRAIN(LAND),             ! INOUT Snow grain size (microns)        HYD_IC7A.155    
     &  SNODEP(LAND),             ! INOUT Snow depth (Kg of water)         HYD_IC7A.156    
     &  STHF(LAND,SM_LEVELS),     ! INOUT Frozen soil moisture content     HYD_IC7A.157    
!                                 !       of each layer as a fraction      HYD_IC7A.158    
!                                 !       of saturation                    HYD_IC7A.159    
     &  STHU(LAND,SM_LEVELS),     ! INOUT UNfrozen soil moisture cont      HYD_IC7A.160    
!                                 !       of each layer as a fraction      HYD_IC7A.161    
!                                 !       of saturation                    HYD_IC7A.162    
     &  T_DEEP_SOIL(LAND,ST_LEVELS),! INOUT Deep soil temps. (K)           HYD_IC7A.163    
     &  TSNOW(LAND)               ! INOUT Snow layer temperature (K)       HYD_IC7A.164    
!----------------------------------------------------------------------    HYD_IC7A.165    
! OUT Variables                                                            HYD_IC7A.166    
!----------------------------------------------------------------------    HYD_IC7A.167    
      REAL                                                                 HYD_IC7A.168    
     &  INFIL(LAND),              ! OUT Maximum surface infiltration       HYD_IC7A.169    
!                                 !     rate (kg/m2/s)                     HYD_IC7A.170    
     &  HF_SNOW_MELT(LAND),       ! OUT Total snow melt heat flux (W/m2)   HYD_IC7A.171    
     &  SMC(LAND),                ! OUT Available soil moisture            HYD_IC7A.172    
!                                       (Kg/m2/s)                          HYD_IC7A.173    
     &  SMCL(LAND,SM_LEVELS),     ! OUT Soil moisture content of each      HYD_IC7A.174    
!                                 !     layer (Kg/Kg)                      HYD_IC7A.175    
                                                                           HYD_IC7A.176    
     &  SNOW_MELT(LAND),          ! OUT Snow melt (Kg/m2/s)                HYD_IC7A.177    
     &  SNOMLT_SUB_HTF(LAND),     ! OUT Sub-surface snow melt heat flux    HYD_IC7A.178    
!                                 !    (W/m2)                              HYD_IC7A.179    
     &  SUB_SURF_ROFF(LAND),      ! OUT Subsurface runoff (Kg/m2/s)        HYD_IC7A.180    
     &  SURF_ROFF(LAND),          ! OUT Surface runoff (Kg/m2/s)           HYD_IC7A.181    
     &  TOT_TFALL(LAND)           ! OUT Total throughfall (Kg/m2/s)        HYD_IC7A.182    
!                                                                          HYD_IC7A.183    
!----------------------------------------------------------------------    HYD_IC7A.184    
! Local variable requiring inclusion in STASH in a future release          HYD_IC7A.185    
! (so will become intent OUT when fixed)                                   HYD_IC7A.186    
!----------------------------------------------------------------------    HYD_IC7A.187    
      REAL                                                                 HYD_IC7A.188    
     &  CAN_WCNT_GB(LAND)         ! Gridbox canopy water content           HYD_IC7A.189    
!                                 ! (Kg/m2)                                HYD_IC7A.190    
                                                                           HYD_IC7A.191    
!                                                                          HYD_IC7A.192    
      LOGICAL LTIMER             ! Logical switch for TIMER diags          HYD_IC7A.193    
!                                                                          HYD_IC7A.194    
!      CHARACTER*80                                                        HYD_IC7A.195    
!     &       CMESSAGE     ! Error message if return code >0               HYD_IC7A.196    
                                                                           HYD_IC7A.197    
!----------------------------------------------------------------------    HYD_IC7A.198    
! Dummy variables not used by MOSES II                                     HYD_IC7A.199    
!----------------------------------------------------------------------    HYD_IC7A.200    
       REAL                                                                HYD_IC7A.201    
     &  CAN_CPY(LAND),                                                     HYD_IC7A.202    
     &  CAN_WCNT(LAND), ! Ex-prognostic is now diagnostic CAN_WCNT_GB      HYD_IC7A.203    
     &  CANOPY_EVAPORATION(LAND),                                          HYD_IC7A.204    
     &  INFIL_FAC(LAND),                                                   HYD_IC7A.205    
     &  LAYER_DEPTH(SM_LEVELS),                                            HYD_IC7A.206    
     &  ROOTD(LAND),                                                       HYD_IC7A.207    
     &  SOILB,                                                             HYD_IC7A.208    
     &  SOIL_EVAPORATION(LAND),                                            HYD_IC7A.209    
     &  SURF_HT_FLUX(LAND),                                                HYD_IC7A.210    
     &  TSTAR(LAND),                                                       HYD_IC7A.211    
     &  VFRAC(LAND)                                                        HYD_IC7A.212    
                                                                           HYD_IC7A.213    
!  External subroutines called                                             HYD_IC7A.214    
                                                                           HYD_IC7A.215    
      EXTERNAL                                                             HYD_IC7A.216    
     &      HYDROL                                                         HYD_IC7A.217    
                                                                           HYD_IC7A.218    
                                                                           HYD_IC7A.219    
!--------------- SECTION 8 HYDROLOGY -----------------------------------   HYD_IC7A.220    
                                                                           HYD_IC7A.221    
!  8.2 Call HYDROL to calculate and add hydrology increments               HYD_IC7A.222    
                                                                           HYD_IC7A.223    
! As ST_LEVELS = SM_LEVELS in the MOSES scheme (HYDROL5A) only             HYD_IC7A.224    
! SM_LEVELS is input to HYDROL5A to avoid changing the variable NSHYD      HYD_IC7A.225    
! in HYDROL and below.                                                     HYD_IC7A.226    
!                                                                          HYD_IC7A.227    
      CALL HYDROL(                                                         HYD_IC7A.228    
     &     LICE_PTS,LICE_INDEX,SOIL_PTS,NTYPE,SOIL_INDEX,                  HYD_IC7A.229    
     &     TILE_PTS,TILE_INDEX,LAND,SM_LEVELS,                             HYD_IC7A.230    
     &     B_EXP,CAN_CPY_TILE,                                             HYD_IC7A.231    
     &     CONV_RAIN,CONV_SNOW,CAN_EVAP_TILE,                              HYD_IC7A.232    
     &     EXT,HCAP,HCON,LS_RAIN,LS_SNOW,                                  HYD_IC7A.233    
     &     SATCON,SATHH,SNOW_SUBLIMATION,                                  HYD_IC7A.234    
     &     SOIL_SURF_HTF,SNOW_SURF_HTF,TSTAR_SNOW,                         HYD_IC7A.235    
     &     FRAC,SNOW_FRAC,TIMESTEP,VSAT,VWILT,                             HYD_IC7A.236    
     &     CAN_WCNT_TILE,                                                  HYD_IC7A.237    
     &     HF_SNOW_MELT,                                                   HYD_IC7A.238    
     &     STF_HF_SNOW_MELT,RGRAIN,L_SNOW_ALBEDO,SMCL,                     HYD_IC7A.239    
     &     STHF,STHU,SNODEP,T_DEEP_SOIL,TSNOW,                             HYD_IC7A.240    
     &     CAN_WCNT_GB,INFIL,SMC,SNOW_MELT,                                HYD_IC7A.241    
     &     SNOMLT_SUB_HTF,                                                 HYD_IC7A.242    
     &     STF_SUB_SURF_ROFF,                                              HYD_IC7A.243    
     &     SUB_SURF_ROFF,SURF_ROFF,                                        HYD_IC7A.244    
     &     TOT_TFALL                                                       HYD_IC7A.245    
C LOGICAL LTIMER                                                           HYD_IC7A.246    
     +,LTIMER                                                              HYD_IC7A.247    
     +)                                                                    HYD_IC7A.248    
                                                                           HYD_IC7A.249    
                                                                           HYD_IC7A.250    
      RETURN                                                               HYD_IC7A.251    
      END                                                                  HYD_IC7A.252    
*ENDIF                                                                     HYD_IC7A.253