*IF DEF,CONTROL,AND,DEF,ATMOS                                              HYDR_CT1.2      
C ******************************COPYRIGHT******************************    GTS2F400.4123   
C (c) CROWN COPYRIGHT 1995, METEOROLOGICAL OFFICE, All Rights Reserved.    GTS2F400.4124   
C                                                                          GTS2F400.4125   
C Use, duplication or disclosure of this code is subject to the            GTS2F400.4126   
C restrictions as set forth in the contract.                               GTS2F400.4127   
C                                                                          GTS2F400.4128   
C                Meteorological Office                                     GTS2F400.4129   
C                London Road                                               GTS2F400.4130   
C                BRACKNELL                                                 GTS2F400.4131   
C                Berkshire UK                                              GTS2F400.4132   
C                RG12 2SZ                                                  GTS2F400.4133   
C                                                                          GTS2F400.4134   
C If no contract has been raised with this copy of the code, the use,      GTS2F400.4135   
C duplication or disclosure of it is strictly prohibited.  Permission      GTS2F400.4136   
C to do so must first be obtained in writing from the Head of Numerical    GTS2F400.4137   
C Modelling at the above address.                                          GTS2F400.4138   
C ******************************COPYRIGHT******************************    GTS2F400.4139   
C                                                                          GTS2F400.4140   
CLL Subroutine HYDR_CTL----------------------------------------------      HYDR_CT1.3      
CLL                                                                        HYDR_CT1.4      
CLL Purpose: Calls HYDROL to calculate and add hydrology increments.       HYDR_CT1.5      
CLL                                                                        HYDR_CT1.6      
CLL Level 2 control routine                                                HYDR_CT1.7      
CLL                                                                        HYDR_CT1.8      
CLL Version for CRAY YMP                                                   HYDR_CT1.9      
CLL                                                                        HYDR_CT1.10     
CLL  Model            Modification history from model version 3.0:         HYDR_CT1.11     
CLL version  Date                                                          HYDR_CT1.12     
CLL  3.1    2/02/93 : added comdeck CHSUNITS to define NUNITS for i/o.     RS030293.103    
CLL   3.2    13/07/93 Changed CHARACTER*(*) to CHARACTER*(80) for          TS150793.66     
CLL                   portability.  Author Tracey Smith.                   TS150793.67     
CLL  3.2  13/04/93  Dynamic allocation of main arrays. R T H Barnes.       @DYALLOC.1063   
CLL  3.4  19/10/94  Introduction of 2nd control level HYD_INTCTL to        ACB1F304.5      
CLL                 avoid *IF DEF around HYDROL calls for single or        ACB1F304.6      
CLL                 multilayer hydrology. The call to HYDROL is            ACB1F304.7      
CLL                 replaced by a call to the appropriate HYD_INTCTL       ACB1F304.8      
CLL                 which then calls the appropriate HYDROL routine.       ACB1F304.9      
CLL                 Also extra diagnostics soil moisture in levels         ACB1F304.10     
CLL                 and soil water suction stored in STASHWORK.            ACB1F304.11     
CLL                   Author: C.Bunton    Reviewer J.Lean                  ACB1F304.12     
CLL  3.5  30/03/95  Sub-model chnages : Remove run time constants          ADR1F305.85     
CLL                 from Atmos dump headers. D. Robinson                   ADR1F305.86     
CLL  3.5  05/06/95  Chgs to SI & STINDEX arrays.  RTHBarnes                GRB4F305.181    
CLL  4.0  11/05/95  Penman-Monteith version with extra diagnostic          AJS1F400.243    
CLL                 Deep soil temperature after Hydrology.                 AJS1F400.244    
CLL  4.1  06/02/96  Added extra prognostics and diagnostics                AJS1F401.753    
CLL                 required by MOSES scheme J.Smith                       AJS1F401.754    
CLL  4.1   5/6/96   DS_LEVELS replaced by ST_LEVELS and SM_LEVELS          AJS1F401.755    
CLL                 C.Bunton                                               AJS1F401.756    
!    4.1  23/05/96  MPP Changes. D. Robinson.                              APBFF401.2      
!LL  4.3  19/02/97  Skip hydrology code if in MPP mode and                 ARB2F403.63     
!LL                 no land points.  RTHBarnes.                            ARB2F403.64     
CLL  4.4  29/10/97  Extra arguments added for MOSES II.     R. Essery      ARE1F404.112    
CLL  4.4  29/10/97  Modified for prognostic snow albedo scheme             ARE2F404.411    
CLL                                                  R. Essery             ARE2F404.412    
!LL  4.5  17/04/98  Move call to TIMER outside of landpoint IF test        GPB8F405.23     
!LL                 as it now contains sync.               P.Burton        GPB8F405.24     
CLL  4.5  18/02/98  Make snow melt, throughfall and runoff diagnostics     ABX1F405.934    
CLL                 available as rates (kg/m2/s)           R.A.Betts       ABX1F405.935    
                                                                           ABX1F405.936    
!    4.5  22/04/98  Remove references to Van-Genuchten 'B' parameter       GDG2F405.37     
!                   No longer used. D.M. Goddard                           GDG2F405.38     
CLL  4.5  19/01/98  Replace JVEG_FLDS & JSOIL_FLDS pointers with new       GDR6F405.95     
CLL                 pointers. D. Robinson.                                 GDR6F405.96     
CLL Programming standard : unified model documentation paper No 3          HYDR_CT1.14     
CLL                                                                        HYDR_CT1.15     
CLL System components covered : P25                                        HYDR_CT1.16     
CLL                                                                        HYDR_CT1.17     
CLL System task : P0                                                       HYDR_CT1.18     
CLL                                                                        HYDR_CT1.19     
CLL Documentation: Unified Model documentation paper P0                    HYDR_CT1.20     
CLL                version No 11 dated (26/11/90)                          HYDR_CT1.21     
CLLEND -----------------------------------------------------------------   HYDR_CT1.22     
C*L Arguments                                                              HYDR_CT1.23     
                                                                           HYDR_CT1.24     

      SUBROUTINE HYDR_CTL(SNOW_SUBLIMATION,SNOW_MELT,                       1,14AJS1F401.757    
     &           CANOPY_EVAPORATION,EXT,SOIL_EVAPORATION,                  AJS1F401.758    
     &           SURF_HT_FLUX,LS_RAIN,LS_SNOW,                             AJS1F401.759    
     &           CONV_RAIN,CONV_SNOW,LAND_FIELDDA,INT8,                    AJS1F401.760    
     &           ST_LEVELSDA,SM_LEVELSDA,                                  AJS1F401.761    
     &           TILE_FIELDDA,TILE_PTS,TILE_INDEX,                         ARE1F404.113    
     &           CAN_EVAP_TILE,SNOW_FRAC,SOIL_SURF_HTF,SNOW_SURF_HTF,      ARE1F404.114    
                                                                           AJS1F400.254    
*CALL ARGSIZE                                                              @DYALLOC.1066   
*CALL ARGD1                                                                @DYALLOC.1067   
*CALL ARGDUMA                                                              @DYALLOC.1068   
*CALL ARGDUMO                                                              @DYALLOC.1069   
*CALL ARGDUMW                                                              GKR1F401.206    
*CALL ARGSTS                                                               @DYALLOC.1070   
*CALL ARGPTRA                                                              @DYALLOC.1071   
*CALL ARGPTRO                                                              @DYALLOC.1072   
*CALL ARGCONA                                                              @DYALLOC.1073   
*CALL ARGPPX                                                               GKR0F305.931    
*CALL ARGFLDPT                                                             APBFF401.3      
     &           ICODE,CMESSAGE)                                           @DYALLOC.1074   
                                                                           HYDR_CT1.28     
      IMPLICIT NONE                                                        HYDR_CT1.29     
                                                                           HYDR_CT1.30     
*CALL CMAXSIZE                                                             @DYALLOC.1075   
*CALL CSUBMODL                                                             GSS1F305.928    
*CALL TYPSIZE                                                              @DYALLOC.1076   
*CALL TYPD1                                                                @DYALLOC.1077   
*CALL TYPDUMA                                                              @DYALLOC.1078   
*CALL TYPDUMO                                                              @DYALLOC.1079   
*CALL TYPDUMW                                                              GKR1F401.207    
*CALL TYPSTS                                                               @DYALLOC.1080   
*CALL TYPPTRA                                                              @DYALLOC.1081   
*CALL TYPPTRO                                                              @DYALLOC.1082   
*CALL TYPCONA                                                              @DYALLOC.1083   
*CALL PPXLOOK                                                              GKR0F305.932    
! NB TYPFLDPT variables not currently used, but just here for              APBFF401.4      
! consistency with other _ctl routines.                                    APBFF401.5      
*CALL TYPFLDPT                                                             APBFF401.6      
                                                                           @DYALLOC.1084   
      INTEGER                                                              HYDR_CT1.31     
     &       ST_LEVELSDA, ! dynamic allocation for ST_LEVELS               AJS1F401.762    
     &       SM_LEVELSDA, ! dynamic allocation for SM_LEVELS               AJS1F401.763    
     &       LAND_FIELDDA, ! Extra copy of LAND_FIELD                      @DYALLOC.1085   
     &       TILE_FIELDDA,! LAND_FIELD for tile diags (7A only)            ARE1F404.115    
     &       INT8,        ! Dummy variable for STASH_MAXLEN(8)             HYDR_CT1.34     
     &       ICODE        ! Return code : 0 Normal Exit                    HYDR_CT1.35     
C                         !             : >0 Error                         HYDR_CT1.36     
                                                                           HYDR_CT1.37     
      REAL                                                                 HYDR_CT1.38     
     &       EXT(LAND_FIELD,SM_LEVELS),                                    AJS1F401.764    
     &       SNOW_SUBLIMATION(P_FIELD),                                    @DYALLOC.1086   
     &       SNOW_MELT(P_FIELD),                                           AJS1F400.256    
     &       SURF_HT_FLUX(P_FIELD),                                        AJS1F401.765    
     &       CANOPY_EVAPORATION(P_FIELD),                                  @DYALLOC.1087   
     &       SOIL_EVAPORATION(P_FIELD),                                    @DYALLOC.1088   
     &       LS_RAIN(P_FIELD),                                             @DYALLOC.1089   
     &       LS_SNOW(P_FIELD),                                             @DYALLOC.1090   
     &       CONV_RAIN(P_FIELD),                                           @DYALLOC.1091   
     &       CONV_SNOW(P_FIELD)                                            @DYALLOC.1092   
                                                                           HYDR_CT1.46     
      CHARACTER*80                                                         TS150793.68     
     &       CMESSAGE     ! Error message if return code >0                HYDR_CT1.48     
                                                                           HYDR_CT1.49     
! Additional arguments for 7A boundary layer (MOSES II)                    ARE1F404.116    
*CALL NSTYPES                                                              ARE1F404.117    
      INTEGER                                                              ARE1F404.118    
     &       TILE_PTS(NTYPE),                                              ARE1F404.119    
     &       TILE_INDEX(TILE_FIELDDA,NTYPE)                                ARE1F404.120    
      REAL                                                                 ARE1F404.121    
     &       CAN_EVAP_TILE(TILE_FIELDDA,NTYPE-1),                          ARE1F404.122    
     &       SNOW_FRAC(TILE_FIELDDA),                                      ARE1F404.123    
     &       SNOW_SURF_HTF(TILE_FIELDDA),                                  ARE1F404.124    
     &       SOIL_SURF_HTF(TILE_FIELDDA)                                   ARE1F404.125    
                                                                           ARE1F404.126    
*CALL CHSUNITS                                                             RS030293.104    
*CALL CCONTROL                                                             HYDR_CT1.51     
*CALL CHISTORY                                                             GDR3F305.99     
*CALL CTIME                                                                ADR1F305.87     
*CALL C_MDI                                                                AJS1F401.766    
                                                                           HYDR_CT1.56     
CL External subroutines called                                             HYDR_CT1.57     
                                                                           HYDR_CT1.58     
      EXTERNAL                                                             HYDR_CT1.59     
     &      HYD_INTCTL,TIMER,STASH                                         ACB1F304.14     
     &     ,SET_LEVELS_LIST,FROM_LAND_POINTS                               ACB1F304.15     
                                                                           HYDR_CT1.61     
C Local variables                                                          HYDR_CT1.62     
                                                                           HYDR_CT1.63     
CL Dynamically allocated area for stash processing                         HYDR_CT1.64     
                                                                           HYDR_CT1.65     
      REAL                                                                 HYDR_CT1.66     
     &      STASHWORK(INT8)                                                HYDR_CT1.67     
     &     ,DUMMYR            ! dummy real argument                        ACB1F304.16     
                                                                           HYDR_CT1.68     
      REAL                                                                 HYDR_CT1.69     
     &       CONV_RAIN_LAND(LAND_FIELDDA),                                 AJS1F401.767    
     &       CONV_SNOW_LAND(LAND_FIELDDA),                                 AJS1F401.768    
     &       CANOPY_EVAPORATION_LAND(LAND_FIELDDA),                        @DYALLOC.1094   
     &       HF_SNOW_MELT_LAND(LAND_FIELDDA),                              AJS1F401.769    
     &       INFIL_LAND(LAND_FIELDDA),                                     AJS1F401.770    
     &       LS_RAIN_LAND(LAND_FIELDDA),                                   @DYALLOC.1096   
     &       LS_SNOW_LAND(LAND_FIELDDA),                                   @DYALLOC.1097   
     &       SNOW_MELT_LAND(LAND_FIELDDA),                                 @DYALLOC.1100   
     &       TOT_TFALL_LAND(LAND_FIELDDA),                                 @DYALLOC.1101   
     &       SURF_ROFF_LAND(LAND_FIELDDA),                                 @DYALLOC.1102   
     &       TSTAR_LAND(LAND_FIELDDA),                                     AJS1F401.771    
     &       RGRAIN_LAND(LAND_FIELDDA),                                    ARE2F404.413    
     &       SNOMLT_SUB_HTF_LAND(LAND_FIELDDA),                            AJS1F401.772    
     &       SUB_SURF_ROFF_LAND(LAND_FIELDDA),                             AJS1F401.773    
     &       SOIL_EVAPORATION_LAND(LAND_FIELDDA),                          AJS1F401.774    
     &       SNODEP_LAND(LAND_FIELDDA),                                    @DYALLOC.1103   
     &       SNOW_SUBLIMATION_LAND(LAND_FIELDDA),                          AJS1F401.775    
     &       SURF_HT_FLUX_LAND(LAND_FIELDDA)                               AJS1F401.776    
                                                                           HYDR_CT1.85     
      INTEGER                                                              HYDR_CT1.86     
     &       J1,                                                           HYDR_CT1.87     
     &       I,                                                            HYDR_CT1.88     
     &       J                                                             HYDR_CT1.89     
     &     ,DUMMYI            ! dummy integer argument                     ACB1F304.17     
     &     ,LEVEL                                                          ACB1F304.19     
     &     ,LEVEL_OUT                                                      ACB1F304.20     
     &      ,IM_IDENT   ! internal model identifier                        GRB4F305.182    
     &      ,IM_INDEX   ! internal model index for STASH arrays            GRB4F305.183    
     &     ,LICE_PTS                  ! Number of land ice points.         AJS1F401.777    
     &     ,SOIL_PTS                  ! Number of soil points.             AJS1F401.778    
     &     ,LICE_INDEX(LAND_FIELDDA)! Indices of land ice points on        AJS1F401.779    
C                                     ! the land grid                      AJS1F401.780    
     &     ,SOIL_INDEX(LAND_FIELDDA)! Indices of soil points on the        AJS1F401.781    
C                                     ! land grid excludes land-ice        AJS1F401.782    
     &     ,SMCL_PTR                  ! D1 pointer for SMCL                AJS1F401.783    
     &     ,STHU_PTR                  ! D1 pointer for STHU                AJS1F401.784    
     &     ,STHF_PTR                  ! D1 pointer for STHF                AJS1F401.785    
     &     ,JEXP_PTR                  ! D1 pointer for Eagleson Exp        GDR6F405.97     
                                      ! or Clapp Hornberger B Coeff        GDR6F405.98     
      LOGICAL                                                              ACB1F304.21     
     &      DUMMYL            ! dummy logical argument                     ACB1F304.22     
     &,     LIST(SM_LEVELSDA) ! SM_LEVELS >=ST_LEVELS                      AJS1F401.786    
     &      ,STF_SUB_SURF_ROFF    ! IN STASH flag for sub-surface runoff   ABX1F405.937    
                                                                           HYDR_CT1.90     
CL ------------- SECTION 8 HYDROLOGY -----------------------------------   HYDR_CT1.91     
CL 8.0 Initialisation                                                      HYDR_CT1.92     
!                                                                          AJS1F401.787    
!----------------------------------------------------------------------    AJS1F401.788    
! Set up indices used in surface hydrology routines                        AJS1F401.789    
!----------------------------------------------------------------------    AJS1F401.790    
!                                                                          AJS1F401.791    
      INTEGER P_POINTS,P1,LAND1,LAND_PTS                                   ARE1F404.127    
      P_POINTS = P_ROWS * ROW_LENGTH                                       ARE1F404.128    
      P1 = 1 + (FIRST_ROW-1)*ROW_LENGTH                                    ARE1F404.129    
      LAND1 = 1                                                            ARE1F404.130    
      LAND_PTS = 0                                                         ARE1F404.131    
      DO I=1,LAND_FIELD                                                    ARE1F404.132    
        IF ( LAND_LIST(I) .LT. P1 ) THEN                                   ARE1F404.133    
          LAND1 = LAND1 + 1                                                ARE1F404.134    
        ELSEIF ( LAND_LIST(I) .LE. P1+P_POINTS-1 ) THEN                    ARE1F404.135    
          LAND_PTS = LAND_PTS + 1                                          ARE1F404.136    
        ENDIF                                                              ARE1F404.137    
      ENDDO                                                                ARE1F404.138    
                                                                           ARE1F404.139    
      SOIL_PTS=0                                                           AJS1F401.792    
      LICE_PTS=0                                                           AJS1F401.793    
      DO I=1,LAND_FIELD                                                    AJS1F401.794    
        SOIL_INDEX(I)=IMDI                                                 AJS1F401.795    
        LICE_INDEX(I)=IMDI                                                 AJS1F401.796    
      ENDDO                                                                AJS1F401.797    
      DO I=LAND1,LAND1+LAND_PTS-1                                          ARE1F404.140    
! Test on soil moisture concentration at saturation                        AJS1F401.799    
        IF (D1(JVOL_SMC_SAT+I-1).NE. 0.0) THEN       ! Soil points         GDR6F405.99     
          SOIL_PTS=SOIL_PTS+1                                              AJS1F401.801    
          SOIL_INDEX(SOIL_PTS)=I                                           AJS1F401.802    
       ELSEIF (D1(JVOL_SMC_SAT+I-1).EQ. 0.0) THEN   ! Land-ice points      GDR6F405.100    
          LICE_PTS=LICE_PTS+1                                              AJS1F401.804    
          LICE_INDEX(LICE_PTS)=I                                           AJS1F401.805    
        ENDIF                                                              AJS1F401.806    
      ENDDO                                                                AJS1F401.807    
                                                                           HYDR_CT1.93     
C  Set up internal model identifier and STASH index                        GRB4F305.184    
      im_ident = atmos_im                                                  GRB4F305.185    
      im_index = internal_model_index(im_ident)                            GRB4F305.186    
                                                                           HYDR_CT1.94     
CL Set all dynamically allocated input or output files to zero             HYDR_CT1.95     
                                                                           HYDR_CT1.96     
      DO I=1,INT8                                                          HYDR_CT1.97     
        STASHWORK(I)=0                                                     HYDR_CT1.98     
      END DO                                                               HYDR_CT1.99     
                                                                           HYDR_CT1.100    
      IF(LTIMER) THEN                                                      GPB8F405.25     
        CALL TIMER('HYD_INTCTL  ',3)                                       GPB8F405.26     
      ENDIF                                                                GPB8F405.27     
*IF DEF,MPP                                                                ARB2F403.65     
!  Skip hydrology if LAND_FIELD=0 for this PE.                             ARB2F403.66     
      IF (LAND_FIELD .gt. 0) THEN                                          ARB2F403.67     
*ENDIF                                                                     ARB2F403.68     
CL 8.1 Compress fields to land points and set INFIL                        AJS1F401.808    
                                                                           HYDR_CT1.102    
CDIR$ IVDEP                                                                HYDR_CT1.103    
! Fujitsu vectorization directive                                          GRB0F405.345    
!OCL NOVREC                                                                GRB0F405.346    
      DO I=1,LAND_FIELD                                                    HYDR_CT1.104    
                                                                           AJS1F400.263    
        LS_RAIN_LAND(I)=LS_RAIN(LAND_LIST(I))                              HYDR_CT1.106    
                                                                           HYDR_CT1.107    
        CONV_RAIN_LAND(I)=CONV_RAIN(LAND_LIST(I))                          HYDR_CT1.108    
                                                                           HYDR_CT1.109    
        CONV_SNOW_LAND(I)=CONV_SNOW(LAND_LIST(I))                          HYDR_CT1.110    
                                                                           HYDR_CT1.111    
        LS_SNOW_LAND(I)=LS_SNOW(LAND_LIST(I))                              HYDR_CT1.112    
                                                                           HYDR_CT1.113    
        CANOPY_EVAPORATION_LAND(I)=CANOPY_EVAPORATION(LAND_LIST(I))        HYDR_CT1.114    
                                                                           HYDR_CT1.115    
        RGRAIN_LAND(I)=D1(JRGRAIN+LAND_LIST(I)-1)                          ARE2F404.414    
                                                                           ARE2F404.415    
        SNOW_SUBLIMATION_LAND(I)=SNOW_SUBLIMATION(LAND_LIST(I))            HYDR_CT1.116    
                                                                           HYDR_CT1.117    
        SNOW_MELT_LAND(I)=SNOW_MELT(LAND_LIST(I))                          AJS1F400.264    
                                                                           AJS1F400.265    
        SOIL_EVAPORATION_LAND(I)=SOIL_EVAPORATION(LAND_LIST(I))            HYDR_CT1.118    
                                                                           HYDR_CT1.119    
        SNODEP_LAND(I)=D1(JSNODEP+LAND_LIST(I)-1)                          HYDR_CT1.120    
                                                                           HYDR_CT1.121    
        SURF_HT_FLUX_LAND(I)=SURF_HT_FLUX(LAND_LIST(I))                    AJS1F401.809    
                                                                           AJS1F401.810    
        TSTAR_LAND(I)=D1(JTSTAR+LAND_LIST(I)-1)                            HYDR_CT1.122    
                                                                           HYDR_CT1.123    
        INFIL_LAND(I)=D1(JSAT_SOIL_COND+I-1)*D1(JINFILT+I-1)               GDR6F405.101    
                                                                           HYDR_CT1.125    
      END DO                                                               HYDR_CT1.126    
                                                                           HYDR_CT1.127    
C Set up local pointers for D1 stores as for Single layer Hydrology        AJS1F401.812    
C SM_LEVELS will be 0 and so JSMCL(1) etc. will not exist                  AJS1F401.813    
C                                                                          AJS1F401.814    
      IF (LSINGLE_HYDROL) THEN                                             AJS1F401.815    
        SMCL_PTR = 1                                                       AJS1F401.816    
        STHU_PTR = 1                                                       AJS1F401.817    
        STHF_PTR = 1                                                       AJS1F401.818    
      ELSE                                                                 AJS1F401.819    
        SMCL_PTR = JSMCL(1)                                                AJS1F401.820    
        STHU_PTR = JSTHU(1)                                                AJS1F401.821    
        STHF_PTR = JSTHF(1)                                                AJS1F401.822    
      ENDIF                                                                AJS1F401.823    
                                                                           ABX1F405.938    
! Set STASH flag for sub-surface runoff to TRUE if either the rate or      ABX1F405.939    
! amount diagnostic is required                                            ABX1F405.940    
        STF_SUB_SURF_ROFF=.FALSE.                                          ABX1F405.941    
        IF (SF(205,8).OR.SF(235,8)) THEN                                   ABX1F405.942    
          STF_SUB_SURF_ROFF=.TRUE.                                         ABX1F405.943    
        ENDIF                                                              ABX1F405.944    
                                                                           ABX1F405.945    
C                                                                          AJS1F401.824    
CL 8.2 Call HYD_INCTL to calculate and add hydrology increments            ACB1F304.24     
                                                                           HYDR_CT1.129    
      IF (LSINGLE_HYDROL) THEN                                             GDR6F405.102    
        JEXP_PTR = JEAGLE_EXP    !  Eagleson's Exponent                    GDR6F405.103    
      ENDIF                                                                GDR6F405.104    
      IF (LMOSES) THEN                                                     GDR6F405.105    
        JEXP_PTR = JCLAPP_HORN   !  Clapp-Hornberger B Coefficient         GDR6F405.106    
      ENDIF                                                                GDR6F405.107    
                                                                           GDR6F405.108    
                                                                           HYDR_CT1.133    
CL Call the lower level control for different versions of Hydrology.       ACB1F304.27     
CL                                                                         ACB1F304.28     
      CALL HYD_INTCTL(                                                     ACB1F304.29     
     &   LAND_FIELD,LICE_PTS,LICE_INDEX,ST_LEVELS,SM_LEVELS,               AJS1F401.825    
     &   SOIL_PTS,SOIL_INDEX,                                              AJS1F401.826    
     &   D1(JEXP_PTR),D1(JSURF_CAP),                                       GDR6F405.109    
     &   CANOPY_EVAPORATION_LAND,                                          AJS1F401.828    
     &   CONV_RAIN_LAND,CONV_SNOW_LAND,                                    AJS1F401.829    
     &   EXT,D1(JTHERM_CAP),D1(JTHERM_COND),                               GDR6F405.110    
     &   D1(JINFILT),A_LEVDEPC(JSOIL_THICKNESS),                           GDR6F405.111    
     &   LS_RAIN_LAND,LS_SNOW_LAND,                                        AJS1F401.832    
     &   D1(JROOT_DEPTH),D1(JSAT_SOIL_COND),                               GDR6F405.112    
     &   D1(JSAT_SOILW_SUCTION),                                           AJS1F401.834    
     &   SNOW_SUBLIMATION_LAND,                                            AJS1F401.835    
     &   SOILB,SOIL_EVAPORATION_LAND,                                      AJS1F401.836    
     &   SURF_HT_FLUX_LAND,D1(JVEG_FRAC),D1(JVOL_SMC_SAT),                 GDR6F405.113    
     &   D1(JVOL_SMC_WILT),SECS_PER_STEPim(atmos_im),                      GDR6F405.114    
     &   D1(JCANOPY_WATER),RGRAIN_LAND,L_SNOW_ALBEDO,SNODEP_LAND,          ARE2F404.416    
     &   D1(STHF_PTR),D1(STHU_PTR),                                        AJS1F401.840    
     &   TSTAR_LAND,D1(J_DEEP_SOIL_TEMP(1)),INFIL_LAND,                    AJS1F401.841    
     &   SF(202,8),HF_SNOW_MELT_LAND,                                      AJS1F401.842    
     &   D1(JSMC),D1(SMCL_PTR),                                            AJS1F401.843    
     &   SNOW_MELT_LAND,SF(226,8),                                         AJS1F401.844    
     &   SNOMLT_SUB_HTF_LAND,                                              AJS1F401.845    
     &   STF_SUB_SURF_ROFF,SUB_SURF_ROFF_LAND,                             ABX1F405.946    
     &   SURF_ROFF_LAND,TOT_TFALL_LAND,                                    AJS1F401.847    
! Additional arguments for 7A hydrology (MOSES II)                         ARE1F404.141    
     &   TILE_PTS,TILE_INDEX,                                              ARE1F404.142    
     &   D1(JCATCH_NIT),CAN_EVAP_TILE,                                     ARE1F404.143    
     &   D1(JFRAC_TYP),SNOW_FRAC,SOIL_SURF_HTF,SNOW_SURF_HTF,              ARE1F404.144    
     &   D1(JTSTAR_TYP+(NTYPE-1)*LAND_FIELD),                              ARE1F404.145    
     &   D1(JCAN_WATER_NIT),D1(JTSNOW),                                    ARE1F404.146    
!                                                                          ARE1F404.147    
     &   LTIMER)                                                           AJS1F401.848    
                                                                           AJS1F401.849    
                                                                           HYDR_CT1.150    
                                                                           HYDR_CT1.154    
CL 8.3 Extend output fields to land points                                 HYDR_CT1.155    
                                                                           HYDR_CT1.156    
CDIR$ IVDEP                                                                HYDR_CT1.157    
! Fujitsu vectorization directive                                          GRB0F405.347    
!OCL NOVREC                                                                GRB0F405.348    
      DO I=1,LAND_FIELD                                                    HYDR_CT1.158    
        D1(JSNODEP+LAND_LIST(I)-1) =                                       HYDR_CT1.159    
     &  SNODEP_LAND(I)                                                     HYDR_CT1.160    
                                                                           ARE2F404.417    
        D1(JRGRAIN+LAND_LIST(I)-1) =                                       ARE2F404.418    
     &  RGRAIN_LAND(I)                                                     ARE2F404.419    
                                                                           HYDR_CT1.161    
        D1(JTSTAR+LAND_LIST(I)-1) =                                        HYDR_CT1.162    
     &  TSTAR_LAND(I)                                                      HYDR_CT1.163    
C                                     ! This is not meaningful for         AJS1F401.850    
C                                     ! Penman-Monteith code.              AJS1F401.851    
      END DO                                                               HYDR_CT1.164    
                                                                           HYDR_CT1.165    
CL Diagnostic processing                                                   HYDR_CT1.166    
CL Extend diagnostic information to full area for STASH processing         HYDR_CT1.167    
                                                                           HYDR_CT1.168    
CDIR$ IVDEP                                                                AJS1F401.852    
! Fujitsu vectorization directive                                          GRB0F405.349    
!OCL NOVREC                                                                GRB0F405.350    
      DO I=1,LAND_FIELD                                                    HYDR_CT1.169    
        IF (SF(201,8)) THEN                                                HYDR_CT1.170    
          STASHWORK(si(201,8,im_index)+LAND_LIST(I)-1) =                   GRB4F305.187    
     &    SNOW_MELT_LAND(I)*SECS_PER_STEPim(atmos_im)                      ADR1F305.89     
        END IF                                                             HYDR_CT1.173    
                                                                           HYDR_CT1.174    
        IF (SF(202,8)) THEN                                                HYDR_CT1.175    
          STASHWORK(si(202,8,im_index)+LAND_LIST(I)-1) =                   GRB4F305.188    
     &    HF_SNOW_MELT_LAND(I)                                             HYDR_CT1.177    
        END IF                                                             HYDR_CT1.178    
                                                                           HYDR_CT1.179    
        IF (SF(226,8)) THEN                                                AJS1F400.270    
          STASHWORK(SI(226,8,im_index)+LAND_LIST(I)-1) =                   AJS1F400.271    
                                                                           AJS1F400.272    
     &    SNOMLT_SUB_HTF_LAND(I)                                           AJS1F400.273    
        END IF                                                             AJS1F400.274    
                                                                           AJS1F400.275    
        IF (SF(203,8)) THEN                                                HYDR_CT1.180    
          STASHWORK(si(203,8,im_index)+LAND_LIST(I)-1) =                   GRB4F305.189    
     &    TOT_TFALL_LAND(I)*SECS_PER_STEPim(atmos_im)                      ADR1F305.90     
        END IF                                                             HYDR_CT1.183    
                                                                           HYDR_CT1.184    
        IF (SF(204,8)) THEN                                                HYDR_CT1.185    
          STASHWORK(si(204,8,im_index)+LAND_LIST(I)-1) =                   GRB4F305.190    
     &    SURF_ROFF_LAND(I)*SECS_PER_STEPim(atmos_im)                      ADR1F305.91     
        END IF                                                             HYDR_CT1.188    
                                                                           HYDR_CT1.189    
        IF (SF(205,8)) THEN                                                HYDR_CT1.190    
          STASHWORK(si(205,8,im_index)+LAND_LIST(I)-1) =                   GRB4F305.191    
     &    SUB_SURF_ROFF_LAND(I)*SECS_PER_STEPim(atmos_im)                  ADR1F305.92     
        END IF                                                             HYDR_CT1.193    
                                                                           HYDR_CT1.194    
        IF (SF(206,8)) THEN                                                HYDR_CT1.195    
          STASHWORK(si(206,8,im_index)+LAND_LIST(I)-1)=SOILB(I)            GRB4F305.192    
        ENDIF                                                              HYDR_CT1.197    
                                                                           HYDR_CT1.198    
        IF (SF(207,8)) THEN                                                HYDR_CT1.199    
          STASHWORK(si(207,8,im_index)+LAND_LIST(I)-1)=INFIL_LAND(I)       AJS1F401.853    
        ENDIF                                                              HYDR_CT1.201    
                                                                           HYDR_CT1.202    
        IF(SF(208,8))THEN                                                  HYDR_CT1.203    
          STASHWORK(si(208,8,im_index)+LAND_LIST(I)-1) = D1(JSMC+I-1)      GRB4F305.194    
        END IF                                                             HYDR_CT1.205    
                                                                           HYDR_CT1.206    
        IF(SF(209,8))THEN                                                  HYDR_CT1.207    
          STASHWORK(si(209,8,im_index)+LAND_LIST(I)-1) =                   GRB4F305.195    
     &                                          D1(JCANOPY_WATER+I-1)      GRB4F305.196    
        END IF                                                             HYDR_CT1.209    
                                                                           ABX1F405.947    
        IF (SF(231,8)) THEN                                                ABX1F405.948    
          STASHWORK(si(231,8,im_index)+LAND_LIST(I)-1) =                   ABX1F405.949    
     &    SNOW_MELT_LAND(I)                                                ABX1F405.950    
        END IF                                                             ABX1F405.951    
                                                                           ABX1F405.952    
        IF (SF(233,8)) THEN                                                ABX1F405.953    
          STASHWORK(si(233,8,im_index)+LAND_LIST(I)-1) =                   ABX1F405.954    
     &    TOT_TFALL_LAND(I)                                                ABX1F405.955    
        END IF                                                             ABX1F405.956    
                                                                           ABX1F405.957    
        IF (SF(234,8)) THEN                                                ABX1F405.958    
          STASHWORK(si(234,8,im_index)+LAND_LIST(I)-1) =                   ABX1F405.959    
     &    SURF_ROFF_LAND(I)                                                ABX1F405.960    
        END IF                                                             ABX1F405.961    
                                                                           ABX1F405.962    
        IF (SF(235,8)) THEN                                                ABX1F405.963    
          STASHWORK(si(235,8,im_index)+LAND_LIST(I)-1) =                   ABX1F405.964    
     &    SUB_SURF_ROFF_LAND(I)                                            ABX1F405.965    
        END IF                                                             ABX1F405.966    
                                                                           AJS1F401.855    
      END DO                                                               HYDR_CT1.210    
C                                                                          AJS1F401.856    
C  Soil parameters except which need to be copied to                       GDR6F405.115    
C  different STASH addresses                                               GDR6F405.116    
C                                                                          GDR6F405.117    
      IF (SF(210,8)) THEN                                                  GDR6F405.118    
CDIR$ IVDEP                                                                GDR6F405.119    
! Fujitsu vectorization directive                                          GDR6F405.120    
!OCL NOVREC                                                                GDR6F405.121    
        DO I=1,LAND_FIELD                                                  GDR6F405.122    
          STASHWORK(SI(210,8,im_index)+LAND_LIST(I)-1) =                   GDR6F405.123    
     &    D1(JVOL_SMC_WILT+I-1)                                            GDR6F405.124    
        ENDDO                                                              GDR6F405.125    
      ENDIF                                                                GDR6F405.126    
      IF (SF(211,8)) THEN                                                  GDR6F405.127    
CDIR$ IVDEP                                                                GDR6F405.128    
! Fujitsu vectorization directive                                          GDR6F405.129    
!OCL NOVREC                                                                GDR6F405.130    
        DO I=1,LAND_FIELD                                                  GDR6F405.131    
          STASHWORK(SI(211,8,im_index)+LAND_LIST(I)-1) =                   GDR6F405.132    
     &    D1(JVOL_SMC_CRIT+I-1)                                            GDR6F405.133    
        ENDDO                                                              GDR6F405.134    
      ENDIF                                                                GDR6F405.135    
      IF (SF(212,8)) THEN                                                  GDR6F405.136    
CDIR$ IVDEP                                                                GDR6F405.137    
! Fujitsu vectorization directive                                          GDR6F405.138    
!OCL NOVREC                                                                GDR6F405.139    
        DO I=1,LAND_FIELD                                                  GDR6F405.140    
          STASHWORK(SI(212,8,im_index)+LAND_LIST(I)-1) =                   GDR6F405.141    
     &    D1(JVOL_SMC_FCAP+I-1)                                            GDR6F405.142    
        ENDDO                                                              GDR6F405.143    
      ENDIF                                                                GDR6F405.144    
      IF (SF(213,8)) THEN                                                  GDR6F405.145    
CDIR$ IVDEP                                                                GDR6F405.146    
! Fujitsu vectorization directive                                          GDR6F405.147    
!OCL NOVREC                                                                GDR6F405.148    
        DO I=1,LAND_FIELD                                                  GDR6F405.149    
          STASHWORK(SI(213,8,im_index)+LAND_LIST(I)-1) =                   GDR6F405.150    
     &    D1(JVOL_SMC_SAT+I-1)                                             GDR6F405.151    
        ENDDO                                                              GDR6F405.152    
      ENDIF                                                                GDR6F405.153    
      IF (SF(214,8)) THEN                                                  GDR6F405.154    
CDIR$ IVDEP                                                                GDR6F405.155    
! Fujitsu vectorization directive                                          GDR6F405.156    
!OCL NOVREC                                                                GDR6F405.157    
        DO I=1,LAND_FIELD                                                  GDR6F405.158    
          STASHWORK(SI(214,8,im_index)+LAND_LIST(I)-1) =                   GDR6F405.159    
     &    D1(JSAT_SOIL_COND+I-1)                                           GDR6F405.160    
        ENDDO                                                              GDR6F405.161    
      ENDIF                                                                GDR6F405.162    
      IF (SF(216,8)) THEN                                                  GDR6F405.163    
CDIR$ IVDEP                                                                GDR6F405.164    
! Fujitsu vectorization directive                                          GDR6F405.165    
!OCL NOVREC                                                                GDR6F405.166    
        DO I=1,LAND_FIELD                                                  GDR6F405.167    
          STASHWORK(SI(216,8,im_index)+LAND_LIST(I)-1) =                   GDR6F405.168    
     &    D1(JTHERM_CAP+I-1)                                               GDR6F405.169    
        ENDDO                                                              GDR6F405.170    
      ENDIF                                                                GDR6F405.171    
      IF (SF(217,8)) THEN                                                  GDR6F405.172    
CDIR$ IVDEP                                                                GDR6F405.173    
! Fujitsu vectorization directive                                          GDR6F405.174    
!OCL NOVREC                                                                GDR6F405.175    
        DO I=1,LAND_FIELD                                                  GDR6F405.176    
          STASHWORK(SI(217,8,im_index)+LAND_LIST(I)-1) =                   GDR6F405.177    
     &    D1(JTHERM_COND+I-1)                                              GDR6F405.178    
        ENDDO                                                              GDR6F405.179    
      ENDIF                                                                GDR6F405.180    
C                                                                          AJS1F401.870    
C Eagleson Exponent                                                        AJS1F401.871    
C                                                                          AJS1F401.872    
      IF (LSINGLE_HYDROL) THEN                                             AJS1F401.873    
        IF(SF(215,8)) THEN                                                 AJS1F401.874    
CDIR$ IVDEP                                                                HYDR_CT1.214    
! Fujitsu vectorization directive                                          GRB0F405.351    
!OCL NOVREC                                                                GRB0F405.352    
          DO I=1,LAND_FIELD                                                HYDR_CT1.215    
              STASHWORK(si(215,8,im_index)+LAND_LIST(I)-1)=                AJS1F401.875    
     &        D1(JEAGLE_EXP+I-1)                                           GDR6F405.181    
            END DO                                                         AJS1F401.877    
        END IF                                                             HYDR_CT1.219    
      END IF                                                               AJS1F401.878    
C                                                                          AJS1F401.891    
C Clapp-Hornberger "B" parameter                                           AJS1F401.892    
C                                                                          AJS1F401.893    
      IF (LMOSES) THEN                                                     AJS1F401.894    
        IF(SF(228,8)) THEN                                                 AJS1F401.895    
CDIR$ IVDEP                                                                AJS1F401.896    
! Fujitsu vectorization directive                                          GRB0F405.353    
!OCL NOVREC                                                                GRB0F405.354    
          DO I=1,LAND_FIELD                                                AJS1F401.897    
              STASHWORK(si(228,8,im_index)+LAND_LIST(I)-1)=                AJS1F401.898    
     &        D1(JCLAPP_HORN+I-1)                                          GDR6F405.182    
            END DO                                                         AJS1F401.900    
        END IF                                                             AJS1F401.901    
      END IF                                                               AJS1F401.902    
C                                                                          AJS1F401.903    
      IF (SF(218,8)) THEN                                                  GDR6F405.183    
CDIR$ IVDEP                                                                GDR6F405.184    
! Fujitsu vectorization directive                                          GDR6F405.185    
!OCL NOVREC                                                                GDR6F405.186    
        DO I=1,LAND_FIELD                                                  GDR6F405.187    
          STASHWORK(SI(218,8,im_index)+LAND_LIST(I)-1) =                   GDR6F405.188    
     &    D1(JVEG_FRAC+I-1)                                                GDR6F405.189    
        ENDDO                                                              GDR6F405.190    
      ENDIF                                                                GDR6F405.191    
      IF (SF(219,8)) THEN                                                  GDR6F405.192    
CDIR$ IVDEP                                                                GDR6F405.193    
! Fujitsu vectorization directive                                          GDR6F405.194    
!OCL NOVREC                                                                GDR6F405.195    
        DO I=1,LAND_FIELD                                                  GDR6F405.196    
          STASHWORK(SI(219,8,im_index)+LAND_LIST(I)-1) =                   GDR6F405.197    
     &    D1(JROOT_DEPTH+I-1)                                              GDR6F405.198    
        ENDDO                                                              GDR6F405.199    
      ENDIF                                                                GDR6F405.200    
      IF (SF(220,8)) THEN                                                  GDR6F405.201    
CDIR$ IVDEP                                                                GDR6F405.202    
! Fujitsu vectorization directive                                          GDR6F405.203    
!OCL NOVREC                                                                GDR6F405.204    
        DO I=1,LAND_FIELD                                                  GDR6F405.205    
          STASHWORK(SI(220,8,im_index)+LAND_LIST(I)-1) =                   GDR6F405.206    
     &    D1(JSURF_RESIST+I-1)                                             GDR6F405.207    
        ENDDO                                                              GDR6F405.208    
      ENDIF                                                                GDR6F405.209    
      IF (SF(221,8)) THEN                                                  GDR6F405.210    
CDIR$ IVDEP                                                                GDR6F405.211    
! Fujitsu vectorization directive                                          GDR6F405.212    
!OCL NOVREC                                                                GDR6F405.213    
        DO I=1,LAND_FIELD                                                  GDR6F405.214    
          STASHWORK(SI(221,8,im_index)+LAND_LIST(I)-1) =                   GDR6F405.215    
     &    D1(JSURF_CAP+I-1)                                                GDR6F405.216    
        ENDDO                                                              GDR6F405.217    
      ENDIF                                                                GDR6F405.218    
      IF (SF(222,8)) THEN                                                  GDR6F405.219    
CDIR$ IVDEP                                                                GDR6F405.220    
! Fujitsu vectorization directive                                          GDR6F405.221    
!OCL NOVREC                                                                GDR6F405.222    
        DO I=1,LAND_FIELD                                                  GDR6F405.223    
          STASHWORK(SI(222,8,im_index)+LAND_LIST(I)-1) =                   GDR6F405.224    
     &    D1(JINFILT+I-1)                                                  GDR6F405.225    
        ENDDO                                                              GDR6F405.226    
      ENDIF                                                                GDR6F405.227    
                                                                           HYDR_CT1.234    
CL ITEM 223 SOIL MOISTURE IN EACH LAYER                                    ACB1F304.49     
       IF(SF(223,8)) THEN                                                  ACB1F304.50     
         CALL SET_LEVELS_LIST(SM_LEVELS,LEN_STLIST,                        AJS1F401.904    
     &       STLIST(1,STINDEX(1,223,8,im_index)),                          GRB4F305.199    
     &       LIST,STASH_LEVELS,NUM_STASH_LEVELS+1,ICODE,CMESSAGE)          ACB1F304.53     
C                                                                          AJS1F400.276    
C                                                                          AJS1F400.286    
         IF(ICODE.GT.0) THEN                                               AJS1F401.905    
           RETURN                                                          AJS1F401.906    
         ENDIF                                                             AJS1F401.907    
                                                                           AJS1F400.290    
         LEVEL_OUT=0                                                       ACB1F304.57     
         DO LEVEL=1,SM_LEVELS                                              AJS1F401.908    
           IF(LIST(LEVEL)) THEN                                            ACB1F304.59     
             LEVEL_OUT=LEVEL_OUT+1                                         ACB1F304.60     
             CALL FROM_LAND_POINTS(STASHWORK(si(223,8,im_index)+           GRB4F305.200    
     &           (LEVEL_OUT-1)*P_FIELD),D1(JSMCL(LEVEL)),LD1(JLAND),       GRB4F305.201    
     &           P_FIELD,LAND_FIELD)                                       ACB1F304.63     
           ENDIF                                                           ACB1F304.64     
         ENDDO                                                             ACB1F304.65     
       ENDIF                                                               ACB1F304.66     
                                                                           AJS1F400.291    
CL ITEM 225 DEEP SOIL TEMPERATURES                                         AJS1F400.292    
                                                                           AJS1F400.293    
      IF (SF(225,8)) THEN                                                  AJS1F400.294    
        CALL SET_LEVELS_LIST(ST_LEVELS,LEN_STLIST,                         AJS1F401.909    
     &       STLIST(1,STINDEX(1,225,8,im_index)),                          AJS1F400.296    
                                                                           AJS1F400.297    
     &       LIST,STASH_LEVELS,NUM_STASH_LEVELS+1,ICODE,CMESSAGE)          AJS1F400.298    
        IF (ICODE.GT.0) THEN                                               AJS1F400.299    
          RETURN                                                           AJS1F400.300    
        END IF                                                             AJS1F400.301    
        LEVEL_OUT=0                                                        AJS1F400.302    
        DO LEVEL=1,ST_LEVELS                                               AJS1F401.910    
          IF(LIST(LEVEL)) THEN                                             AJS1F400.304    
            LEVEL_OUT=LEVEL_OUT+1                                          AJS1F400.305    
            CALL FROM_LAND_POINTS(STASHWORK(SI(225,8,im_index)             AJS1F400.306    
     &          +(LEVEL_OUT-1) *P_FIELD),D1(J_DEEP_SOIL_TEMP(LEVEL)),      AJS1F400.307    
     &          LD1(JLAND),P_FIELD,LAND_FIELD)                             AJS1F400.308    
                                                                           AJS1F400.309    
          END IF                                                           AJS1F400.310    
        END DO                                                             AJS1F400.311    
      END IF                                                               AJS1F400.312    
C                                                                          AJS1F400.313    
                                                                           AJS1F401.911    
CL ITEM 224 SATURATED SOIL WATER SUCTION                                   ACB1F304.67     
       IF(SF(224,8))THEN                                                   ACB1F304.68     
CDIR$ IVDEP                                                                ACB1F304.69     
! Fujitsu vectorization directive                                          GRB0F405.355    
!OCL NOVREC                                                                GRB0F405.356    
         DO I= 1,LAND_FIELD                                                ACB1F304.70     
           STASHWORK (si(224,8,im_index) + LAND_LIST(I)-1)=                GRB4F305.202    
     &         D1 (JSAT_SOILW_SUCTION + I -1)                              ACB1F304.72     
         ENDDO                                                             ACB1F304.73     
       ENDIF                                                               ACB1F304.74     
                                                                           AJS1F401.912    
CL ITEM 229 UNFROZEN SOIL MOISTURE FRACTION                                AJS1F401.913    
                                                                           AJS1F401.914    
      IF (SF(229,8)) THEN                                                  AJS1F401.915    
        CALL SET_LEVELS_LIST(SM_LEVELS,LEN_STLIST,                         AJS1F401.916    
     &       STLIST(1,STINDEX(1,229,8,im_index)),                          AJS1F401.917    
     &       LIST,STASH_LEVELS,NUM_STASH_LEVELS+1,ICODE,CMESSAGE)          AJS1F401.918    
        IF (ICODE.GT.0) THEN                                               AJS1F401.919    
          RETURN                                                           AJS1F401.920    
        END IF                                                             AJS1F401.921    
        LEVEL_OUT=0                                                        AJS1F401.922    
        DO LEVEL=1,SM_LEVELS                                               AJS1F401.923    
          IF(LIST(LEVEL)) THEN                                             AJS1F401.924    
            LEVEL_OUT=LEVEL_OUT+1                                          AJS1F401.925    
            CALL FROM_LAND_POINTS(STASHWORK(SI(229,8,im_index)             AJS1F401.926    
     &      +(LEVEL_OUT-1)*P_FIELD),D1(JSTHU(LEVEL)),LD1(JLAND),           AJS1F401.927    
     &           P_FIELD,LAND_FIELD)                                       AJS1F401.928    
          END IF                                                           AJS1F401.929    
        END DO                                                             AJS1F401.930    
      END IF                                                               AJS1F401.931    
                                                                           AJS1F401.932    
CL ITEM 230 FROZEN SOIL MOISTURE FRACTION                                  AJS1F401.933    
                                                                           AJS1F401.934    
      IF (SF(230,8)) THEN                                                  AJS1F401.935    
        CALL SET_LEVELS_LIST(SM_LEVELS,LEN_STLIST,                         AJS1F401.936    
     &       STLIST(1,STINDEX(1,230,8,im_index)),                          AJS1F401.937    
     &       LIST,STASH_LEVELS,NUM_STASH_LEVELS+1,ICODE,CMESSAGE)          AJS1F401.938    
        IF (ICODE.GT.0) THEN                                               AJS1F401.939    
          RETURN                                                           AJS1F401.940    
        END IF                                                             AJS1F401.941    
        LEVEL_OUT=0                                                        AJS1F401.942    
        DO LEVEL=1,SM_LEVELS                                               AJS1F401.943    
          IF(LIST(LEVEL)) THEN                                             AJS1F401.944    
            LEVEL_OUT=LEVEL_OUT+1                                          AJS1F401.945    
            CALL FROM_LAND_POINTS(STASHWORK(SI(230,8,im_index)             AJS1F401.946    
     &      +(LEVEL_OUT-1)*P_FIELD),D1(JSTHF(LEVEL)),LD1(JLAND),           AJS1F401.947    
     &           P_FIELD,LAND_FIELD)                                       AJS1F401.948    
          END IF                                                           AJS1F401.949    
        END DO                                                             AJS1F401.950    
      END IF                                                               AJS1F401.951    
*IF DEF,MPP                                                                ARB2F403.69     
      ELSE                                                                 ARB2F403.70     
      write(6,*)' HYDR_CTL; skip HYDROL, LAND_FIELD=0 for this PE'         ARB2F403.71     
      END IF                                                               ARB2F403.72     
*ENDIF                                                                     ARB2F403.73     
      IF(LTIMER) THEN                                                      GPB8F405.28     
        CALL TIMER('HYD_INTCTL  ',4)                                       GPB8F405.29     
      ENDIF                                                                GPB8F405.30     
      IF(LTIMER) THEN                                                      HYDR_CT1.235    
        CALL TIMER('STASH   ',3)                                           HYDR_CT1.236    
      END IF                                                               HYDR_CT1.237    
                                                                           HYDR_CT1.238    
      CALL STASH(a_sm,a_im,8,STASHWORK,                                    GKR0F305.933    
*CALL ARGSIZE                                                              @DYALLOC.1109   
*CALL ARGD1                                                                @DYALLOC.1110   
*CALL ARGDUMA                                                              @DYALLOC.1111   
*CALL ARGDUMO                                                              @DYALLOC.1112   
*CALL ARGDUMW                                                              GKR1F401.208    
*CALL ARGSTS                                                               @DYALLOC.1113   
*CALL ARGPPX                                                               GKR0F305.934    
     &           ICODE,CMESSAGE)                                           @DYALLOC.1117   
                                                                           HYDR_CT1.240    
      IF(LTIMER) THEN                                                      HYDR_CT1.241    
        CALL TIMER('STASH   ',4)                                           HYDR_CT1.242    
      END IF                                                               HYDR_CT1.243    
                                                                           HYDR_CT1.244    
      RETURN                                                               HYDR_CT1.245    
      END                                                                  HYDR_CT1.246    
*ENDIF                                                                     HYDR_CT1.247