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

      SUBROUTINE HYD_INTCTL(                                                2,3HYD_IC5A.49     
     &     LAND,LICE_PTS,LICE_INDEX,ST_LEVELS,SM_LEVELS,                   HYD_IC5A.50     
     &     SOIL_PTS,SOIL_INDEX,                                            HYD_IC5A.51     
     &     B_EXP,CAN_CPY,CANOPY_EVAPORATION,                               HYD_IC5A.52     
     &     CONV_RAIN,CONV_SNOW,EXT,                                        HYD_IC5A.53     
     &     HCAP,HCON,INFIL_FAC,                                            HYD_IC5A.54     
     &     LAYER_DEPTH,LS_RAIN,LS_SNOW,                                    HYD_IC5A.55     
     &     ROOTD,SATCON,SATHH,SNOW_SUBLIMATION,                            HYD_IC5A.56     
     &     SOILB,SOIL_EVAPORATION,SURF_HT_FLUX,                            HYD_IC5A.57     
     &     VFRAC,VSAT,VWILT,TIMESTEP,                                      HYD_IC5A.58     
     &     CAN_WCNT,RGRAIN,L_SNOW_ALBEDO,SNODEP,STHF,STHU,                 ARE2F404.428    
     &     TSTAR,T_DEEP_SOIL,                                              HYD_IC5A.60     
     &     INFIL,STF_HF_SNOW_MELT,                                         HYD_IC5A.61     
     &     HF_SNOW_MELT,SMC,SMCL,                                          HYD_IC5A.62     
     &     SNOW_MELT,STF_HF_SNOMLT_SUB,                                    HYD_IC5A.63     
     &     SNOMLT_SUB_HTF,                                                 HYD_IC5A.64     
     &     STF_SUB_SURF_ROFF,SUB_SURF_ROFF,SURF_ROFF,                      HYD_IC5A.65     
     &     TOT_TFALL                                                       HYD_IC5A.66     
! Additional arguments for 7A hydrology (MOSES II)                         ARE1F404.325    
     &    ,TILE_PTS,TILE_INDEX                                             ARE1F404.326    
     &    ,CAN_CPY_TILE,CAN_EVAP_TILE                                      ARE1F404.327    
     &    ,FRAC,SNOW_FRAC,SOIL_SURF_HTF,SNOW_SURF_HTF,TSTAR_SNOW           ARE1F404.328    
     &    ,CAN_WCNT_TILE,TSNOW                                             ARE1F404.329    
C LOGICAL LTIMER                                                           HYD_IC5A.67     
     +,LTIMER                                                              HYD_IC5A.68     
     +)                                                                    HYD_IC5A.69     
                                                                           HYD_IC5A.70     
      IMPLICIT NONE                                                        HYD_IC5A.71     
                                                                           HYD_IC5A.72     
!----------------------------------------------------------------------    HYD_IC5A.73     
! Some of the following variables are 'dummy' as they are used by          HYD_IC5A.74     
! other HYDROL versions                                                    HYD_IC5A.75     
!---------------------------------------------------------------------     HYD_IC5A.76     
!---------------------------------------------------------------------     HYD_IC5A.77     
! IN Variables                                                             HYD_IC5A.78     
!----------------------------------------------------------------------    HYD_IC5A.79     
      INTEGER                                                              HYD_IC5A.80     
     &   LAND,                    ! IN No. land only points                HYD_IC5A.81     
     &   LICE_PTS,                ! IN No. of land-ice points              HYD_IC5A.82     
     &   LICE_INDEX(LAND),        ! IN Index of land-ice pts.              HYD_IC5A.83     
!                                 !    on land grid                        HYD_IC5A.84     
     &   SM_LEVELS,               ! IN No. of soil moisture levels         HYD_IC5A.85     
     &   ST_LEVELS,               ! IN No. deep soil temp. levels          HYD_IC5A.86     
     &   SOIL_PTS,                ! IN No. of soil points                  HYD_IC5A.87     
!                                 !    excludes land-ice points            HYD_IC5A.88     
     &   SOIL_INDEX(LAND)         ! IN Index of soil points on land        HYD_IC5A.89     
!                                 !    grid excludes land-ice pts.         HYD_IC5A.90     
      REAL                                                                 HYD_IC5A.91     
     &  B_EXP(LAND),              ! IN Exponent used in calculation        HYD_IC5A.92     
!                                 !    of soil water suction and           HYD_IC5A.93     
!                                 !    hydraulic conductivity              HYD_IC5A.94     
     &  CAN_CPY(LAND),            ! IN Canopy Capacity (Kg/m2)             HYD_IC5A.95     
     &  CANOPY_EVAPORATION(LAND), ! IN Canopy evaporation (Kg/m2/s)        HYD_IC5A.96     
     &  CONV_RAIN(LAND),          ! IN Convective rain (Kg/m2/s)           HYD_IC5A.97     
     &  CONV_SNOW(LAND),          ! IN Convective snow(Kg/m2/s)            HYD_IC5A.98     
     &  EXT(LAND,SM_LEVELS),      ! IN Extraction of water from each       HYD_IC5A.99     
!                                 !    soil layer (kg/m2/s)                HYD_IC5A.100    
     &  HCAP(LAND),               ! IN Soil heat capacity (J/K/m3)         HYD_IC5A.101    
     &  HCON(LAND),               ! IN Soil thermal conductivity (W/M/K)   HYD_IC5A.102    
     &  INFIL_FAC(LAND),          ! IN Infiltration enhancement factor     HYD_IC5A.103    
     &  LAYER_DEPTH(SM_LEVELS),   ! IN Layer depths                        HYD_IC5A.104    
     &  LS_RAIN(LAND),            ! IN large scale rain (Kg/m2/s)          HYD_IC5A.105    
     &  LS_SNOW(LAND),            ! IN large scale snow (Kg/m2/s)          HYD_IC5A.106    
     &  ROOTD(LAND),              ! IN Root depth (m)                      HYD_IC5A.107    
     &  SATCON(LAND),             ! IN Saturated hydraulic conductivity    HYD_IC5A.108    
!                                 !    (Kg/m2/s)                           HYD_IC5A.109    
     &  SATHH(LAND),              ! IN Soil water suction (m)              HYD_IC5A.110    
     &  SNOW_SUBLIMATION(LAND),   ! IN Sublimation of snow (Kg/m2/s)       HYD_IC5A.111    
     &  SOILB,                    ! IN Dummy                               HYD_IC5A.112    
     &  SOIL_EVAPORATION(LAND),   ! IN Surface evaporation (Kg/m2/s)       HYD_IC5A.113    
     &  SURF_HT_FLUX(LAND),       ! IN Net downward surface heat flux      HYD_IC5A.114    
!                                 !    (W/m2)                              HYD_IC5A.115    
     &  TSTAR(LAND),              ! IN Surface temperature (K)             ARE2F404.429    
     &  VFRAC(LAND),              ! IN Vegetated fraction                  HYD_IC5A.116    
     &  VSAT(LAND),               ! IN Volumetric soil moisture content    HYD_IC5A.117    
!                                 !    at saturation (m3/m3 soil)          HYD_IC5A.118    
     &  VWILT(LAND),              ! IN Volumetric soil moisture at         HYD_IC5A.119    
!                                 !     wilting point (m3/m3 soil)         HYD_IC5A.120    
     &  TIMESTEP                  ! IN seconds between                     HYD_IC5A.121    
!                                 !    physics routines call               HYD_IC5A.122    
                                                                           HYD_IC5A.123    
      LOGICAL                                                              HYD_IC5A.124    
     &   L_SNOW_ALBEDO,           ! IN Flag for prognostic snow albedo     ARE2F404.430    
     &   STF_HF_SNOW_MELT,        ! IN Stash flag for snow melt heat       HYD_IC5A.125    
!                                 !    flux                                HYD_IC5A.126    
     &   STF_HF_SNOMLT_SUB,       ! IN Stash flag for sub-surface          HYD_IC5A.127    
!                                 !    snow melt heat flux                 HYD_IC5A.128    
     &   STF_SUB_SURF_ROFF        ! IN Stash flag for sub-surface runoff   HYD_IC5A.129    
!---------------------------------------------------------------------     HYD_IC5A.130    
! INOUT Variables                                                          HYD_IC5A.131    
!----------------------------------------------------------------------    HYD_IC5A.132    
      REAL                                                                 HYD_IC5A.133    
     &  CAN_WCNT(LAND),           ! INOUT Canopy water content (Kg/m2)     HYD_IC5A.134    
     &  RGRAIN(LAND),             ! INOUT Snow grain size (microns)        ARE2F404.431    
     &  SNODEP(LAND),             ! INOUT Snow depth (Kg of water)         HYD_IC5A.135    
     &  STHF(LAND,SM_LEVELS),     ! INOUT Frozen soil moisture content     HYD_IC5A.136    
!                                 !       of each layer as a fraction      HYD_IC5A.137    
!                                 !       of saturation                    HYD_IC5A.138    
     &  STHU(LAND,SM_LEVELS),     ! INOUT UNfrozen soil moisture cont      HYD_IC5A.139    
!                                 !       of each layer as a fraction      HYD_IC5A.140    
!                                 !       of saturation                    HYD_IC5A.141    
     &  T_DEEP_SOIL(LAND,ST_LEVELS) ! INOUT Deep soil temps. (K)           HYD_IC5A.143    
!---------------------------------------------------------------------     HYD_IC5A.144    
! OUT Variables                                                            HYD_IC5A.145    
!----------------------------------------------------------------------    HYD_IC5A.146    
      REAL                                                                 HYD_IC5A.147    
     &  INFIL(LAND),              ! OUT Maximum surface infiltration       HYD_IC5A.148    
!                                 !     rate (kg/m2/s)                     HYD_IC5A.149    
     &  HF_SNOW_MELT(LAND),       ! OUT Total snow melt heat flux (W/m2)   HYD_IC5A.150    
     &  SMC(LAND),                ! OUT Available soil moisture            HYD_IC5A.151    
!                                       (Kg/m2/s)                          HYD_IC5A.152    
     &  SMCL(LAND,SM_LEVELS),     ! OUT Soil moisture content of each      HYD_IC5A.153    
!                                 !     layer (Kg/Kg)                      HYD_IC5A.154    
                                                                           HYD_IC5A.155    
     &  SNOW_MELT(LAND),          ! OUT Snow melt (Kg/m2/s)                HYD_IC5A.156    
     &  SNOMLT_SUB_HTF(LAND),     ! OUT Sub-surface snow melt heat flux    HYD_IC5A.157    
!                                 !    (W/m2)                              HYD_IC5A.158    
     &  SUB_SURF_ROFF(LAND),      ! OUT Subsurface runoff (Kg/m2/s)        HYD_IC5A.159    
     &  SURF_ROFF(LAND),          ! OUT Surface runoff (Kg/m2/s)           HYD_IC5A.160    
     &  TOT_TFALL(LAND)           ! OUT Total throughfall (Kg/m2/s)        HYD_IC5A.161    
!                                                                          HYD_IC5A.162    
! Additional arguments for 7A hydrology (MOSES II)                         ARE1F404.330    
*CALL NSTYPES                                                              ARE1F404.331    
      INTEGER                                                              ARE1F404.332    
     &   TILE_PTS(NTYPE),                                                  ARE1F404.333    
     &   TILE_INDEX(NTYPE)                                                 ARE1F404.334    
      REAL                                                                 ARE1F404.335    
     &   CAN_CPY_TILE(NTYPE-1),                                            ARE1F404.336    
     &   CAN_EVAP_TILE(NTYPE-1),                                           ARE1F404.337    
     &   CAN_WCNT_TILE(NTYPE-1),                                           ARE1F404.338    
     &   FRAC(NTYPE),                                                      ARE1F404.339    
     &   SNOW_FRAC,                                                        ARE1F404.340    
     &   SOIL_SURF_HTF,                                                    ARE1F404.341    
     &   SNOW_SURF_HTF,                                                    ARE1F404.342    
     &   TSTAR_SNOW,                                                       ARE1F404.343    
     &   TSNOW                                                             ARE1F404.344    
                                                                           ARE1F404.345    
!                                                                          HYD_IC5A.163    
      LOGICAL LTIMER             ! Logical switch for TIMER diags          HYD_IC5A.164    
!                                                                          HYD_IC5A.165    
!      CHARACTER*80                                                        HYD_IC5A.166    
!     &       CMESSAGE     ! Error message if return code >0               HYD_IC5A.167    
                                                                           HYD_IC5A.168    
!  External subroutines called                                             HYD_IC5A.169    
                                                                           HYD_IC5A.170    
      EXTERNAL                                                             HYD_IC5A.171    
     &      HYDROL                                                         HYD_IC5A.172    
                                                                           HYD_IC5A.173    
                                                                           HYD_IC5A.174    
!--------------- SECTION 8 HYDROLOGY -----------------------------------   HYD_IC5A.175    
                                                                           HYD_IC5A.176    
!  8.2 Call HYDROL to calculate and add hydrology increments               HYD_IC5A.177    
                                                                           HYD_IC5A.178    
! As ST_LEVELS = SM_LEVELS in the MOSES scheme (HYDROL5A) only             HYD_IC5A.179    
! SM_LEVELS is input to HYDROL5A to avoid changing the variable NSHYD      HYD_IC5A.180    
! in HYDROL and below.                                                     HYD_IC5A.181    
!                                                                          HYD_IC5A.182    
      CALL HYDROL(                                                         HYD_IC5A.183    
     &     LICE_PTS,LICE_INDEX,SOIL_PTS,SOIL_INDEX,                        HYD_IC5A.184    
     &     LAND,SM_LEVELS,                                                 HYD_IC5A.185    
     &     B_EXP,CAN_CPY,                                                  HYD_IC5A.186    
     &     CONV_RAIN,CONV_SNOW,CANOPY_EVAPORATION,                         HYD_IC5A.187    
     &     EXT,HCAP,HCON,INFIL_FAC,LS_RAIN,LS_SNOW,                        HYD_IC5A.188    
     &     ROOTD,SATCON,SATHH,SNOW_SUBLIMATION,                            HYD_IC5A.189    
     &     SURF_HT_FLUX,TIMESTEP,                                          HYD_IC5A.190    
     &     VFRAC,VSAT,VWILT,                                               HYD_IC5A.191    
     &     TSTAR,RGRAIN,L_SNOW_ALBEDO,                                     ARE2F404.432    
     &     CAN_WCNT,                                                       HYD_IC5A.192    
     &     HF_SNOW_MELT,                                                   HYD_IC5A.193    
     &     STF_HF_SNOW_MELT,SMCL,                                          HYD_IC5A.194    
     &     STHF,STHU,SNODEP,T_DEEP_SOIL,                                   HYD_IC5A.195    
     &     INFIL,SMC,SNOW_MELT,                                            HYD_IC5A.196    
     &     SNOMLT_SUB_HTF,                                                 HYD_IC5A.197    
     &     STF_SUB_SURF_ROFF,                                              HYD_IC5A.198    
     &     SUB_SURF_ROFF,SURF_ROFF,                                        HYD_IC5A.199    
     &     TOT_TFALL                                                       HYD_IC5A.200    
C LOGICAL LTIMER                                                           HYD_IC5A.201    
     +,LTIMER                                                              HYD_IC5A.202    
     +)                                                                    HYD_IC5A.203    
                                                                           HYD_IC5A.204    
                                                                           HYD_IC5A.205    
      RETURN                                                               HYD_IC5A.206    
      END                                                                  HYD_IC5A.207    
*ENDIF                                                                     HYD_IC5A.208