*IF DEF,A03_5A                                                             BL_IC5A.2      
C *****************************COPYRIGHT******************************     BL_IC5A.3      
C (c) CROWN COPYRIGHT 1996, METEOROLOGICAL OFFICE, All Rights Reserved.    BL_IC5A.4      
C                                                                          BL_IC5A.5      
C Use, duplication or disclosure of this code is subject to the            BL_IC5A.6      
C restrictions as set forth in the contract.                               BL_IC5A.7      
C                                                                          BL_IC5A.8      
C                Meteorological Office                                     BL_IC5A.9      
C                London Road                                               BL_IC5A.10     
C                BRACKNELL                                                 BL_IC5A.11     
C                Berkshire UK                                              BL_IC5A.12     
C                RG12 2SZ                                                  BL_IC5A.13     
C                                                                          BL_IC5A.14     
C If no contract has been raised with this copy of the code, the use,      BL_IC5A.15     
C duplication or disclosure of it is strictly prohibited.  Permission      BL_IC5A.16     
C to do so must first be obtained in writing from the Head of Numerical    BL_IC5A.17     
C Modelling at the above address.                                          BL_IC5A.18     
C ******************************COPYRIGHT******************************    BL_IC5A.19     
CLL Subroutine BL_INTCT -------------------------------------------        BL_IC5A.20     
CLL                                                                        BL_IC5A.21     
CLL Purpose : Intermediate control level to call requested version of      BL_IC5A.22     
CLL           BDY_LAYR with the appropriate arguments.                     BL_IC5A.23     
CLL                                                                        BL_IC5A.24     
CLL Level 3 control routine                                                BL_IC5A.25     
CLL version for CRAY YMP                                                   BL_IC5A.26     
CLL                                                                        BL_IC5A.27     
CLL  Model            Modification history:                                BL_IC5A.28     
CLL version  Date                                                          BL_IC5A.29     
CLL  4.1   5/6/96  new deck. C.Bunton                                      BL_IC5A.30     
CLL                                                                        BL_IC5A.31     
CLL  4.3  04/02/97 Logical switches L_MOM and L_MIXLEN passed down         ARN1F403.16     
CLL                to BDY_LYR.                                             ARN1F403.17     
CLL                                                     R.N.B.Smith        ARN1F403.18     
CLL                                                                        ARN1F403.19     
CLL  4.4  08/09/97 Logical switch L_BL_LSPICE specifies mixed phase        ADM3F404.47     
CLL                precipitation scheme.       D.Wilson                    ADM3F404.48     
CLL                                                                        ADM3F404.49     
!!!  4.4  18/09/97 Extra arguments RAD_HR and RADHR_DIM1 for BDYLYR6A      ARN1F404.162    
!!!                                                     Cyndy Bunton       ARN1F404.163    
!!!  4.5   24/4/98 New diagnostics ZHT and BL_TYPE_1 to _6 for             ARN0F405.128    
!!!                BDYLYR6A                             R.N.B.Smith        ARN0F405.129    
!!!  4.5    Jul. 98  Kill the IBM specific lines. (JCThil)                 AJC1F405.343    
!!!  4.5  27/04/98 Add dummy arguments LAND_FIELD_TRIF, NPFT_TRIF,         ABX1F405.697    
!!!                GPP_FT, RESP_P_FT, TILE_FRAC, L_PHENOL and L_TRIFFID    ABX1F405.698    
!!!                and change TILE_INDEX and TILE_PTS from IN to OUT,      ABX1F405.699    
!!!                consistent with changes to BL_CTL required for          ABX1F405.700    
!!!                TRIFFID.                                                ABX1F405.701    
!!!                                                     Richard Betts      ABX1F405.702    
CLL Programming standard : unified model documentation paper No 3          BL_IC5A.32     
CLL                                                                        BL_IC5A.33     
CLL System components covered : P24                                        BL_IC5A.34     
CLL                                                                        BL_IC5A.35     
CLL System task : P0                                                       BL_IC5A.36     
CLL                                                                        BL_IC5A.37     
CLLEND -----------------------------------------------------------------   BL_IC5A.38     
C    Arguments :-                                                          BL_IC5A.39     

      SUBROUTINE BL_INTCT(                                                  2,8BL_IC5A.40     
                                                                           BL_IC5A.41     
C IN values defining field dimensions and subset to be processed :         BL_IC5A.42     
     + P_FIELD,U_FIELD,LAND_FIELD,LAND_FIELD_TRIF,NPFT_TRIF,               ABX1F405.703    
     + P_ROWS,FIRST_ROW,N_ROWS,ROW_LENGTH,                                 BL_IC5A.44     
                                                                           BL_IC5A.45     
C IN values defining vertical grid of model atmosphere :                   BL_IC5A.46     
     + BL_LEVELS,P_LEVELS,AK,BK,AKH,BKH,DELTA_AK,DELTA_BK,                 BL_IC5A.47     
     + EXNER,                                                              BL_IC5A.48     
                                                                           BL_IC5A.49     
C IN soil/vegetation/land surface data :                                   BL_IC5A.50     
     + LAND_MASK,GATHER,LAND_INDEX,                                        BL_IC5A.55     
     + ST_LEVELS,SM_LEVELS,CANHT,CANOPY,CATCH,HCAP,                        BL_IC5A.56     
     + HCON,LAI,LAYER_DEPTH,                                               BL_IC5A.57     
     + LYING_SNOW,RESIST,ROOTD,SMC,SMVCCL,SMVCST,SMVCWT,                   BL_IC5A.59     
     + VFRAC,Z0V,SIL_OROG_LAND,L_Z0_OROG,                                  BL_IC5A.60     
     + HO2R2_OROG,                                                         BL_IC5A.61     
                                                                           BL_IC5A.62     
C IN sea/sea-ice data :                                                    BL_IC5A.63     
     + DI,ICE_FRACT,U_0,V_0,                                               BL_IC5A.64     
                                                                           BL_IC5A.65     
C IN cloud data :                                                          BL_IC5A.66     
     + CF,QCF,QCL,                                                         BL_IC5A.67     
     + CCA,CCB,CCT,                                                        BL_IC5A.68     
                                                                           BL_IC5A.69     
C IN everything not covered so far :                                       BL_IC5A.70     
     & RAD_HR,RADHR_DIM1,                                                  ARN1F404.164    
     + CO2_MMR,PHOTOSYNTH_ACT_RAD,PSTAR,RADNET,TIMESTEP,                   BL_IC5A.71     
     + L_RMBL,L_BL_LSPICE,L_MOM,L_MIXLEN,                                  ADM3F404.50     
                                                                           BL_IC5A.73     
C INOUT data :                                                             BL_IC5A.74     
     + GS,Q,STHF,STHU,T,T_DEEP_SOIL,TI,TSTAR,U,V,Z0MSEA,                   BL_IC5A.75     
                                                                           BL_IC5A.76     
C OUT Diagnostic not requiring STASH flags :                               BL_IC5A.77     
     + CD,CH,E_SEA,ETRAN,FQW,FTL,GPP,H_SEA,                                BL_IC5A.78     
     + NPP,RESP_P,RHOKH,RHOKM,RIB,SEA_ICE_HTF,                             BL_IC5A.79     
     + TAUX,TAUY,VSHR,ZHT,                                                 ARN0F405.130    
     + EPOT,FSMC,                                                          ANG1F405.51     
                                                                           BL_IC5A.81     
C OUT diagnostic requiring STASH flags :                                   BL_IC5A.82     
     + FME,SICE_MLT_HTF,SNOMLT_SURF_HTF,LATENT_HEAT,                       BL_IC5A.83     
     + Q1P5M,T1P5M,U10M,V10M,                                              BL_IC5A.84     
C (IN) STASH flags :-                                                      BL_IC5A.85     
     + SFME,SIMLT,SMLT,SLH,SQ1P5,ST1P5,SU10,SV10,                          BL_IC5A.86     
                                                                           BL_IC5A.87     
C OUT data required for tracer mixing :                                    BL_IC5A.88     
     & RHO_ARESIST,ARESIST,RESIST_B,                                       BL_IC5A.89     
     & NRML,                                                               BL_IC5A.90     
                                                                           BL_IC5A.91     
C OUT data required for 4D_VAR :                                           BL_IC5A.92     
     & RHO_CD_MODV1,RHO_KM,                                                BL_IC5A.93     
                                                                           BL_IC5A.94     
C OUT data required elsewhere in UM system :                               BL_IC5A.95     
     & BL_TYPE_1,BL_TYPE_2,BL_TYPE_3,BL_TYPE_4,BL_TYPE_5,BL_TYPE_6,        ARN0F405.131    
     + ECAN,EI,ES,EXT,SNOWMELT,                                            BL_IC5A.96     
     + SURF_HT_FLUX,ZH,T1_SD,Q1_SD,ERROR,                                  BL_IC5A.97     
                                                                           BL_IC5A.98     
! Additional arguments for 7A boundary layer (MOSES II)                    ARE1F404.205    
! IN                                                                       ARE1F404.206    
     & L_PHENOL,L_TRIFFID,L_NEG_TSTAR,                                     ABX1F405.704    
     & CANHT_FT,CANOPY_TILE,CATCH_TILE,CS,LAI_FT,                          ARE1F404.208    
     & FRAC,SNOW_FRAC,RAD_NO_SNOW,RAD_SNOW,TSNOW,Z0V_TILE,                 ARE1F404.209    
     & CO2_3D,CO2_DIM,L_CO2_INTERACTIVE,                                   ACN1F405.106    
! INOUT                                                                    ARE1F404.210    
     & TSTAR_TILE,                                                         ARE1F404.211    
     & G_LEAF_ACC,NPP_FT_ACC,RESP_W_FT_ACC,RESP_S_ACC,                     ARE1F404.212    
! OUT                                                                      ARE1F404.213    
     & ECAN_TILE,ESOIL_TILE,FTL_TILE,                                      ARE1F404.214    
     & G_LEAF,GPP_FT,NPP_FT,RESP_P_FT,RESP_S,RESP_W_FT,                    ABX1F405.705    
     & RHO_ARESIST_TILE,ARESIST_TILE,RESIST_B_TILE,                        ARE1F404.216    
     & RIB_TILE,SNOW_SURF_HTF,SOIL_SURF_HTF,                               ARE1F404.217    
     & TILE_INDEX,TILE_PTS,TILE_FRAC,                                      ABX1F405.706    
                                                                           ARE1F404.218    
C LOGICAL LTIMER                                                           BL_IC5A.99     
     + LTIMER                                                              BL_IC5A.100    
*IF DEF,SCMA                                                               AJC0F405.28     
     &  ,FACTOR_RHOKH,OBS                                                  AJC0F405.29     
*ENDIF                                                                     AJC0F405.30     
     +)                                                                    BL_IC5A.101    
      IMPLICIT NONE                                                        BL_IC5A.102    
C                                                                          BL_IC5A.103    
C  Inputs :-                                                               BL_IC5A.104    
C                                                                          BL_IC5A.105    
C (a) Defining horizontal grid and subset thereof to be processed.         BL_IC5A.106    
C                                                                          BL_IC5A.107    
      INTEGER                                                              BL_IC5A.108    
     + P_FIELD                    ! IN No. of P-points in whole grid       BL_IC5A.109    
C                                 !    (for dimensioning only).            BL_IC5A.110    
     +,RADHR_DIM1                 ! IN Dimension for RAD_HR                ARN1F404.165    
     +,U_FIELD                    ! IN No. of UV-points in whole grid.     BL_IC5A.114    
C                                 !    (Checked for consistency with       BL_IC5A.116    
C                                 !    P_FIELD and P_ROWS; there must      BL_IC5A.117    
C                                 !    be 1 less UV than P row.)           BL_IC5A.118    
     +,LAND_FIELD                 ! IN No.of land points in whole grid.    BL_IC5A.122    
C                                 !    (Checked for consistency with       BL_IC5A.124    
C                                 !    P_FIELD )                           BL_IC5A.125    
     +,P_ROWS                     ! IN No. of P-rows in whole grid         BL_IC5A.130    
C                                 !    (for dimensioning only).            BL_IC5A.131    
     +,FIRST_ROW                  ! IN First row of data to be treated,    BL_IC5A.135    
C                                 !    referred to P-grid (must be > 1     BL_IC5A.137    
C                                 !    since "polar" rows are never        BL_IC5A.138    
C                                 !    treated).                           BL_IC5A.139    
     +,N_ROWS                     ! IN No. of rows of data to be           BL_IC5A.143    
C                                 !    treated, referred to P-grid.        BL_IC5A.144    
C                                 !    FIRST_ROW+N_ROWS-1 must be less     BL_IC5A.146    
C                                 !    than P_ROWS, since "polar" rows     BL_IC5A.147    
C                                 !    are never treated.                  BL_IC5A.148    
     +,ROW_LENGTH                 ! IN No. of points in one row.           BL_IC5A.152    
C                                 !    (Checked for consistency with       BL_IC5A.154    
C                                 !    P_FIELD and N_ROWS.)                BL_IC5A.155    
C                                                                          BL_IC5A.159    
C (b) Defining vertical grid of model atmosphere.                          BL_IC5A.160    
C                                                                          BL_IC5A.161    
      INTEGER                                                              BL_IC5A.162    
     + BL_LEVELS                  ! IN Max. no. of "boundary" levels       BL_IC5A.163    
C                                 !    allowed.Assumed <= 30 for dim-      BL_IC5A.164    
C                                 !    sioning of GAMMA in common deck     BL_IC5A.165    
C                                 !    C_GAMMA used in SF_EXCH and KMKH    BL_IC5A.166    
     +,P_LEVELS                   ! IN Total no. of vertical levels in     BL_IC5A.167    
C                                 !    the model atmosphere.               BL_IC5A.168    
      REAL                                                                 BL_IC5A.169    
     + AK(P_LEVELS)                ! IN Hybrid 'A' for all levels.         BL_IC5A.170    
     +,BK(P_LEVELS)                ! IN Hybrid 'B' for all levels.         BL_IC5A.171    
     +,AKH(P_LEVELS+1)             ! IN Hybrid 'A' for layer interfaces.   BL_IC5A.172    
     +,BKH(P_LEVELS+1)             ! IN Hybrid 'B' for layer interfaces.   BL_IC5A.173    
     +,DELTA_AK(P_LEVELS)          ! IN Difference of hybrid 'A' across    BL_IC5A.174    
C                                  !    layers (K-1/2 to K+1/2).           BL_IC5A.175    
C                                  !    NB: Upper minus lower.             BL_IC5A.176    
     +,DELTA_BK(P_LEVELS)          ! IN Difference of hybrid 'B' across    BL_IC5A.177    
C                                  !    layers (K-1/2 to K+1/2).           BL_IC5A.178    
C                                  !    NB: Upper minus lower.             BL_IC5A.179    
     +,EXNER(P_FIELD,BL_LEVELS+1)  ! IN Exner function.  EXNER(,K) is      BL_IC5A.180    
C                                  !    value for LOWER BOUNDARY of        BL_IC5A.181    
C                                  !    level K.                           BL_IC5A.182    
C                                                                          BL_IC5A.183    
C (c) Soil/vegetation/land surface parameters (mostly constant).           BL_IC5A.184    
C                                                                          BL_IC5A.185    
      LOGICAL                                                              BL_IC5A.186    
     + LAND_MASK(P_FIELD)        ! IN T if land, F elsewhere.              BL_IC5A.187    
     &,L_CO2_INTERACTIVE   ! dummy CO2 variable - not used with A03_5A.    ACN1F405.107    
     +,GATHER                    ! IN T if gather to sea-ice points        BL_IC5A.188    
C                                !    in SF_EXCH. Saves a lot of un-       BL_IC5A.189    
C                                !    necessary calculations if there      BL_IC5A.190    
C                                !    are relatively few sea-ice points    BL_IC5A.191    
     +,L_RMBL                    ! IN T to use rapidly mixing              BL_IC5A.192    
C                                !    boundary scheme in IMPL_CAL          BL_IC5A.193    
     +,L_BL_LSPICE           ! IN                                          ADM3F404.51     
!                              TRUE  Use scientific treatment of mixed     ADM3F404.52     
!                                    phase precip scheme.                  ADM3F404.53     
!                              FALSE Do not use mixed phase precip         ADM3F404.54     
!                                    considerations                        ADM3F404.55     
     &,L_MOM                     ! IN Switch for convective momentum       ARN1F403.21     
C                                !    transport.                           ARN1F403.22     
     &,L_MIXLEN                  ! IN Switch for reducing the turbulent    ARN1F403.23     
C                                !    mixing length above the top of the   ARN1F403.24     
C                                !    boundary layer.                      ARN1F403.25     
     +,L_Z0_OROG                 ! IN T to use simple orog.roughness       BL_IC5A.194    
C                                !    treatment in SF_EXCH                 BL_IC5A.195    
      INTEGER                                                              BL_IC5A.197    
     + LAND_INDEX(P_FIELD)       ! IN LAND_INDEX(I)=J => the Jth           BL_IC5A.198    
C                                !    point in P_FIELD is the Ith          BL_IC5A.199    
C                                !    land point.                          BL_IC5A.200    
      INTEGER                                                              BL_IC5A.202    
     + ST_LEVELS                 ! IN No. of deep soil temp. levels        BL_IC5A.203    
     +,SM_LEVELS                 ! IN No. of soil moisture levels          BL_IC5A.204    
     &,CO2_DIM       ! dummy CO2 variable - field not used with A03_5A.    ACN1F405.108    
C                                                                          BL_IC5A.205    
      REAL                                                                 BL_IC5A.206    
     + CANHT(LAND_FIELD)         ! IN Canopy height (m)                    BL_IC5A.207    
     +,CANOPY(LAND_FIELD)        ! IN Surface/canopy water (kg per sq m)   BL_IC5A.208    
     +,CATCH(LAND_FIELD)         ! IN Surface/canopy water capacity        BL_IC5A.209    
C                                !    (kg per sq m).                       BL_IC5A.210    
     +,HCAP(LAND_FIELD)          ! IN Soil heat capacity (J/K/m**3)        BL_IC5A.211    
     +,HCON(LAND_FIELD)          ! IN Soil thermal conductivity (W/m/K).   BL_IC5A.212    
     +,HO2R2_OROG(LAND_FIELD)    ! IN Dummy used only in version 3A.       BL_IC5A.213    
                                                                           BL_IC5A.214    
     +,LAI(LAND_FIELD)           ! IN Leaf area index                      BL_IC5A.215    
     +,LAYER_DEPTH(SM_LEVELS)    !    Dummy Variable not used              BL_IC5A.216    
C                                !    in this version                      BL_IC5A.217    
     +,LYING_SNOW(P_FIELD)       ! IN Lying snow (kg per sq m).            BL_IC5A.218    
C                                !    Must be global for coupled model,    BL_IC5A.220    
C                                !    ie dimension P_FIELD not LAND_FIEL   BL_IC5A.221    
     +,RESIST(LAND_FIELD)        ! IN "Stomatal" resistance to             BL_IC5A.223    
C                                !    evaporation (seconds per metre).     BL_IC5A.224    
     +,ROOTD(LAND_FIELD)         ! IN Depth of active soil layer ("root    BL_IC5A.225    
C                                !    depth") (metres).                    BL_IC5A.226    
     +,SMC(LAND_FIELD)           ! IN Soil moisture content (kg / sq m).   BL_IC5A.227    
     +,SMVCCL(LAND_FIELD)        ! IN Critical volumetric SMC (cubic m     BL_IC5A.228    
C                                !    per cubic m of soil).                BL_IC5A.229    
     +,SMVCST(LAND_FIELD)        ! IN Volumetric saturation point (cubic   BL_IC5A.230    
C                                !    per cubic m of soil).                BL_IC5A.231    
     +,SMVCWT(LAND_FIELD)        ! IN Volumetric wilting point (cubic m    BL_IC5A.232    
C                                !    per cubic m of soil).                BL_IC5A.233    
     +,VFRAC(LAND_FIELD)         ! IN Vegetation fraction.                 BL_IC5A.234    
     +,Z0V(P_FIELD)              ! IN Vegetative roughness length (m).     BL_IC5A.235    
C                                !    NB:UM uses same storage for Z0MSEA   BL_IC5A.236    
C                                !    so for sea points this is INOUT.     BL_IC5A.237    
     +,SIL_OROG_LAND(LAND_FIELD) ! IN Dummy used only in version 3A.       BL_IC5A.238    
C                                                                          BL_IC5A.239    
C (d) Sea/sea-ice data.                                                    BL_IC5A.240    
C                                                                          BL_IC5A.241    
      REAL                                                                 BL_IC5A.242    
     + DI(P_FIELD)               ! IN "Equivalent thickness" of sea-ice    BL_IC5A.243    
C                                !    (m).                                 BL_IC5A.244    
     +,ICE_FRACT(P_FIELD)        ! IN Fraction of gridbox covered by       BL_IC5A.245    
C                                !    sea-ice (decimal fraction).          BL_IC5A.246    
     +,U_0(U_FIELD)              ! IN W'ly component of surface current    BL_IC5A.247    
C                                !    (metres per second).                 BL_IC5A.248    
     +,V_0(U_FIELD)              ! IN S'ly component of surface current    BL_IC5A.249    
C                                !    (metres per second).                 BL_IC5A.250    
C                                                                          BL_IC5A.251    
C (e) Cloud data.                                                          BL_IC5A.252    
C                                                                          BL_IC5A.253    
      REAL                                                                 BL_IC5A.254    
     + CF(P_FIELD,BL_LEVELS)     ! IN Cloud fraction (decimal).            BL_IC5A.255    
     +,QCF(P_FIELD,BL_LEVELS)    ! IN Cloud ice (kg per kg air)            BL_IC5A.256    
     +,QCL(P_FIELD,BL_LEVELS)    ! IN Cloud liquid water (kg               BL_IC5A.257    
C                                !       per kg air).                      BL_IC5A.258    
     +,CCA(P_FIELD)              ! IN Convective Cloud Amount (decimal).   BL_IC5A.259    
      INTEGER                                                              BL_IC5A.260    
     + CCB(P_FIELD)              ! IN Convective Cloud Base                BL_IC5A.261    
     +,CCT(P_FIELD)              ! IN Convective Cloud Top                 BL_IC5A.262    
C                                                                          BL_IC5A.263    
C (f) Atmospheric + any other data not covered so far, incl control.       BL_IC5A.264    
C                                                                          BL_IC5A.265    
      REAL                                                                 BL_IC5A.266    
     + CO2_MMR                   ! IN CO2 Mass Mixing Ratio                BL_IC5A.267    
*IF DEF,SCMA                                                               AJC0F405.31     
     &  ,FACTOR_RHOKH(P_FIELD)  ! IN Factor for modifying surface          AJC0F405.32     
                                !  fluxes if OBS forcing used              AJC0F405.33     
*ENDIF                                                                     AJC0F405.34     
     &,CO2_3D        ! dummy CO2 variable - field not used with A03_5A.    ACN1F405.109    
     +,PHOTOSYNTH_ACT_RAD(P_FIELD) ! IN Net downward shortwave radiation   BL_IC5A.268    
C                                !    in band 1 (w/m2).                    BL_IC5A.269    
     +,PSTAR(P_FIELD)            ! IN Surface pressure (Pascals).          BL_IC5A.270    
     +,RADNET(P_FIELD)           ! IN Surface net radiation (W/sq m,       BL_IC5A.271    
C                                !    positive downwards).                 BL_IC5A.272    
     +,RAD_HR(RADHR_DIM1,BL_LEVELS)                                        ARN1F404.166    
!                                 ! IN Radiative heating rates             ARN1F404.167    
!                                 !    - not used in A03_5A.               ARN1F404.168    
     +,TIMESTEP                  ! IN Timestep (seconds).                  BL_IC5A.273    
C                                                                          BL_IC5A.274    
      LOGICAL LTIMER             ! Logical switch for TIMER diags          BL_IC5A.275    
*IF DEF,SCMA                                                               AJC0F405.35     
      LOGICAL OBS               ! IN flag for Observational                AJC0F405.36     
                                !  diagnostics for SCM                     AJC0F405.37     
*ENDIF                                                                     AJC0F405.38     
C                                                                          BL_IC5A.276    
C  STASH flags :-                                                          BL_IC5A.277    
C                                                                          BL_IC5A.278    
      LOGICAL                                                              BL_IC5A.279    
     + SFME    ! IN Flag for FME (q.v.).                                   BL_IC5A.280    
     +,SMLT    ! IN Flag for SICE_MLT_HTF (q.v.)                           BL_IC5A.281    
     +,SIMLT   ! IN Flag                                                   BL_IC5A.282    
     +,SLH     ! IN Flag for LATENT_HEAT (q.v.)                            BL_IC5A.283    
     +,SQ1P5   ! IN Flag for Q1P5M (q.v.)                                  BL_IC5A.284    
     +,ST1P5   ! IN Flag for T1P5M (q.v.)                                  BL_IC5A.285    
     +,SU10    ! IN Flag for U10M (q.v.)                                   BL_IC5A.286    
     +,SV10    ! IN Flag for V10M (q.v.)                                   BL_IC5A.287    
C                                                                          BL_IC5A.288    
C  In/outs :-                                                              BL_IC5A.289    
C                                                                          BL_IC5A.290    
      REAL                                                                 BL_IC5A.291    
     + GS(LAND_FIELD)                  ! INOUT "Stomatal" conductance to   BL_IC5A.292    
C                                      !       evaporation (m/s).          BL_IC5A.293    
     +,Q(P_FIELD,BL_LEVELS)            ! INOUT Input:specific humidity     BL_IC5A.294    
C                                      !       ( kg water per kg air).     BL_IC5A.295    
C                                      !      Output:total water content   BL_IC5A.296    
C                                      !      (Q)(kg water per kg air).    BL_IC5A.297    
     +,STHF(LAND_FIELD,SM_LEVELS)      ! INOUT Frozen soil moisture        BL_IC5A.298    
C                                      !       content of each layer       BL_IC5A.299    
C                                      !       as a fraction of            BL_IC5A.300    
C                                      !       saturation.                 BL_IC5A.301    
     +,STHU(LAND_FIELD,SM_LEVELS)      ! INOUT UNfrozen soil moisture      BL_IC5A.302    
C                                      !       content of each layer       BL_IC5A.303    
C                                      !       as a fraction of            BL_IC5A.304    
C                                      !       saturation.                 BL_IC5A.305    
     +,T(P_FIELD,BL_LEVELS)            ! INOUT Input:atmospheric temp(K)   BL_IC5A.306    
C                                      !      Output:liquid/frozen water   BL_IC5A.307    
C                                      !       temperature (TL) (K)        BL_IC5A.308    
     +,T_DEEP_SOIL(LAND_FIELD,ST_LEVELS) ! INOUT Deep soil temperatures    BL_IC5A.309    
C                                        !       (K).                      BL_IC5A.310    
     +,TI(P_FIELD)                     ! INOUT Sea-ice surface layer       BL_IC5A.311    
C                                      ! temperature (K)                   BL_IC5A.312    
     +,TSTAR(P_FIELD)                  ! INOUT Surface temperature         BL_IC5A.313    
C                                      !       (= top soil layer           BL_IC5A.314    
C                                      !       temperature) (K).           BL_IC5A.315    
     +,U(U_FIELD,BL_LEVELS)            ! INOUT W'ly wind component         BL_IC5A.316    
C                                      !       (metres per second).        BL_IC5A.317    
     +,V(U_FIELD,BL_LEVELS)            ! INOUT S'ly wind component         BL_IC5A.318    
C                                      !       (metres per second).        BL_IC5A.319    
     +,Z0MSEA(P_FIELD)                 ! INOUT Sea-surface roughness       BL_IC5A.320    
C                                      !       length for momentum (m).    BL_IC5A.321    
C                                      !       NB: same storage is used    BL_IC5A.322    
C                                      !       for Z0V, so the intent is   BL_IC5A.323    
C                                      !       IN for land points.         BL_IC5A.324    
C                                                                          BL_IC5A.325    
C  Outputs :-                                                              BL_IC5A.326    
C                                                                          BL_IC5A.327    
C-1 Diagnostic (or effectively so - includes coupled model requisites):-   BL_IC5A.328    
C                                                                          BL_IC5A.329    
C  (a) Calculated anyway (use STASH space from higher level) :-            BL_IC5A.330    
C                                                                          BL_IC5A.331    
      REAL                                                                 BL_IC5A.332    
     & BL_TYPE_1(P_FIELD)        ! OUT Dummy (diagnostics for BDYLYR6A)    ARN0F405.132    
     &,BL_TYPE_2(P_FIELD)        ! OUT Dummy (diagnostics for BDYLYR6A)    ARN0F405.133    
     &,BL_TYPE_3(P_FIELD)        ! OUT Dummy (diagnostics for BDYLYR6A)    ARN0F405.134    
     &,BL_TYPE_4(P_FIELD)        ! OUT Dummy (diagnostics for BDYLYR6A)    ARN0F405.135    
     &,BL_TYPE_5(P_FIELD)        ! OUT Dummy (diagnostics for BDYLYR6A)    ARN0F405.136    
     &,BL_TYPE_6(P_FIELD)        ! OUT Dummy (diagnostics for BDYLYR6A)    ARN0F405.137    
     +,CD(P_FIELD)               ! OUT Turbulent surface exchange (bulk    ARN0F405.138    
C                                !     transfer) coefficient for           BL_IC5A.334    
C                                !     momentum.                           BL_IC5A.335    
     +,CH(P_FIELD)               ! OUT Turbulent surface exchange (bulk    BL_IC5A.336    
C                                !     transfer) coefficient for heat      BL_IC5A.337    
C                                !     and/or moisture.                    BL_IC5A.338    
     +,E_SEA(P_FIELD)            ! OUT Evaporation from sea times leads    BL_IC5A.339    
C                                !     fraction. Zero over land.           BL_IC5A.340    
C                                !     (kg per square metre per sec).      BL_IC5A.341    
     +,EPOT(P_FIELD)             ! OUT potential evaporation (kg/m2/s).    ANG1F405.52     
     +,ETRAN(P_FIELD)            ! OUT Transpiration (kg/m2/s).            BL_IC5A.342    
     +,EXT(LAND_FIELD,SM_LEVELS)                                           BL_IC5A.343    
C                                ! OUT Extraction of water from            BL_IC5A.344    
C                                !     each soil layer (kg/m2/s)           BL_IC5A.345    
     +,FQW(P_FIELD,BL_LEVELS)    ! OUT Moisture flux between layers        BL_IC5A.346    
C                                !     (kg per square metre per sec).      BL_IC5A.347    
C                                !     FQW(,1) is total water flux         BL_IC5A.348    
C                                !     from surface, 'E'.                  BL_IC5A.349    
     +,FSMC(LAND_FIELD)          ! OUT soil moisture availability.         ANG1F405.53     
     +,FTL(P_FIELD,BL_LEVELS)    ! OUT FTL(,K) contains net turbulent      BL_IC5A.350    
C                                !     sensible heat flux into layer K     BL_IC5A.351    
C                                !     from below; so FTL(,1) is the       BL_IC5A.352    
C                                !     surface sensible heat, H.  (W/m2)   BL_IC5A.353    
     +,GPP(LAND_FIELD)           ! OUT Gross primary productivity          BL_IC5A.354    
C                                !     (kg C/m2/s).                        BL_IC5A.355    
     +,H_SEA(P_FIELD)            ! OUT Surface sensible heat flux over     BL_IC5A.356    
C                                !     sea times leads fraction. (W/m2)    BL_IC5A.357    
     +,NPP(LAND_FIELD)           ! OUT Net primary productivity            BL_IC5A.358    
C                               !      (kg C/m2/s).                        BL_IC5A.359    
     +,RESP_P(LAND_FIELD)        ! OUT Plant respiration (kg C/m2/s).      BL_IC5A.360    
                                                                           BL_IC5A.361    
     +,RHOKH(P_FIELD,BL_LEVELS)  ! OUT Exchange coeffs for moisture.       BL_IC5A.362    
C                                !     Surface:out of SF_EXCH containing   BL_IC5A.363    
C                                !     GAMMA(1)*RHOKH,after IMPL_CAL       BL_IC5A.364    
C                                !     contains only RHOKH.                BL_IC5A.365    
C                                !     Above surface:out of KMKH cont-     BL_IC5A.366    
C                                !     aining GAMMA(1)*RHOKH(,1)*RDZ(,1)   BL_IC5A.367    
     +,RHOKM(U_FIELD,BL_LEVELS)  ! OUT Exchange coefficients for           BL_IC5A.368    
C                                !     momentum (on UV-grid, with 1st      BL_IC5A.369    
C                                !     and last rows undefined (or, at     BL_IC5A.370    
C                                !     present, set to "missing data")).   BL_IC5A.371    
C                                !     Surface:out of SF_EXCH containing   BL_IC5A.372    
C                                !     GAMMA(1)*RHOKH,after IMPL_CAL       BL_IC5A.373    
C                                !     contains only RHOKH.                BL_IC5A.374    
C                                !     Above surface:out of KMKH cont-     BL_IC5A.375    
C                                !     aining GAMMA(1)*RHOKH(,1)*RDZ(,1)   BL_IC5A.376    
     +,RIB(P_FIELD)              ! OUT Bulk Richardson number for lowest   BL_IC5A.377    
C                                !     layer.                              BL_IC5A.378    
     +,SEA_ICE_HTF(P_FIELD)      ! OUT Heat flux through sea-ice (W per    BL_IC5A.379    
C                                !     sq m, positive downwards).          BL_IC5A.380    
     +,SOIL_HT_FLUX(P_FIELD)     ! OUT Dummy                               BL_IC5A.381    
     +,SURF_HT_FLUX(P_FIELD)     ! OUT Net downward heat flux at surface   BL_IC5A.382    
!                                !     over land or sea-ice fraction of    BL_IC5A.383    
!                                !     gridbox (W/m2)                      BL_IC5A.384    
     +,TAUX(U_FIELD,BL_LEVELS)   ! OUT W'ly component of surface wind      BL_IC5A.385    
C                                !     stress (N/sq m).(On UV-grid with    BL_IC5A.386    
C                                !     first and last rows undefined or    BL_IC5A.387    
C                                !     at present, set to 'missing data'   BL_IC5A.388    
     +,TAUY(U_FIELD,BL_LEVELS)   ! OUT S'ly component of surface wind      BL_IC5A.389    
C                                !     stress (N/sq m).  On UV-grid;       BL_IC5A.390    
C                                !     comments as per TAUX.               BL_IC5A.391    
     +,VSHR(P_FIELD)             ! OUT Magnitude of surface-to-lowest      BL_IC5A.392    
     &,ZHT(P_FIELD)              ! OUT Dummy (diagnostics for BDYLYR6A)    ARN0F405.139    
                                                                           ARN0F405.140    
C                                !     atm level wind shear (m per s).     BL_IC5A.393    
C                                                                          BL_IC5A.394    
     +,RHO_CD_MODV1(P_FIELD)     ! OUT Surface air density * drag coef.    BL_IC5A.395    
C                                ! mod(v1 - v0) before interpolation.      BL_IC5A.396    
                                                                           BL_IC5A.397    
     +,RHO_KM(P_FIELD,2:BL_LEVELS)! OUT Air density * turbulent mixing     BL_IC5A.398    
C                                ! coef. for momentum before               BL_IC5A.399    
     +,RHO_ARESIST(P_FIELD)       ! OUT, RHOSTAR*CD_STD*VSHR for SCYCLE    BL_IC5A.400    
     +,ARESIST(P_FIELD)           ! OUT, 1/(CD_STD*VSHR)    for SCYCLE     BL_IC5A.401    
     +,RESIST_B(P_FIELD)          ! OUT,(1/CH-1/CD_STD)/VSHR for SCYCLE    BL_IC5A.402    
C                                                                          BL_IC5A.403    
      INTEGER                                                              BL_IC5A.404    
     + NRML(P_FIELD)             ! OUT Number of model layers in the       BL_IC5A.405    
C                                !     Rapidly Mixing Layer; diagnosed     BL_IC5A.406    
C                                !     in SF_EXCH and KMKH and used in     BL_IC5A.407    
C                                !     IMPL_CAL, SF_EVAP and TR_MIX.       BL_IC5A.408    
C                                                                          BL_IC5A.409    
C  (b) Not passed between lower-level routines (not in workspace at this   BL_IC5A.410    
C      level) :-                                                           BL_IC5A.411    
C                                                                          BL_IC5A.412    
      REAL                                                                 BL_IC5A.413    
     + FME(P_FIELD)             ! OUT Wind mixing "power" (W per sq m).    BL_IC5A.414    
     +,SICE_MLT_HTF(P_FIELD)    ! OUT Heat flux due to melting of sea-     BL_IC5A.415    
C                               !     ice (Watts per sq metre).            BL_IC5A.416    
     +,SNOMLT_SURF_HTF(P_FIELD)                                            BL_IC5A.417    
     +,LATENT_HEAT(P_FIELD)     ! OUT Surface latent heat flux, +ve        BL_IC5A.418    
C                               !     upwards (Watts per sq m).            BL_IC5A.419    
     +,Q1P5M(P_FIELD)           ! OUT Q at 1.5 m (kg water per kg air).    BL_IC5A.420    
     +,T1P5M(P_FIELD)           ! OUT T at 1.5 m (K).                      BL_IC5A.421    
     +,U10M(U_FIELD)            ! OUT U at 10 m (m per s).                 BL_IC5A.422    
     +,V10M(U_FIELD)            ! OUT V at 10 m (m per s).                 BL_IC5A.423    
C                                                                          BL_IC5A.424    
C-2 Genuinely output, needed by other atmospheric routines :-              BL_IC5A.425    
C                                                                          BL_IC5A.426    
      REAL                                                                 BL_IC5A.427    
     + ECAN(P_FIELD)  ! OUT Gridbox mean evaporation from canopy/surface   BL_IC5A.428    
C                     !     store (kg per sq m per s).  Zero over sea.     BL_IC5A.429    
     +,EI(P_FIELD)    ! OUT Sublimation from lying snow or sea-ice (kg     BL_IC5A.430    
C                     !     per sq m per sec).                             BL_IC5A.431    
     +,ES(P_FIELD)    ! OUT Surface evapotranspiration through a           BL_IC5A.432    
C                     !     resistance which is not entirely aerodynamic   BL_IC5A.433    
C                     !     i.e. "soil evaporation".  Always non-          BL_IC5A.434    
C                     !     negative.  Kg per sq m per sec.                BL_IC5A.435    
     +,SNOWMELT(P_FIELD) ! OUT Snowmelt (kg/m/s)                           BL_IC5A.436    
     +,ZH(P_FIELD)    ! OUT Height above surface of top of boundary        BL_IC5A.437    
C                     !     layer (metres).                                BL_IC5A.438    
     &,T1_SD(P_FIELD) ! OUT Standard deviation of turbulent fluctuations   BL_IC5A.439    
C                     !     of layer 1 temperature; for use in             BL_IC5A.440    
C                     !     initiating convection.                         BL_IC5A.441    
     &,Q1_SD(P_FIELD) ! OUT Standard deviation of turbulent fluctuations   BL_IC5A.442    
C                     !     of layer 1 humidity; for use in initiating     BL_IC5A.443    
C                     !     convection.                                    BL_IC5A.444    
! Additional arguments for 7A boundary layer (MOSES II)                    ARE1F404.219    
*CALL NSTYPES                                                              ARE1F404.220    
      INTEGER                                                              ARE1F404.221    
     & TILE_INDEX(NTYPE)                                                   ARE1F404.222    
     &,TILE_PTS(NTYPE)                                                     ARE1F404.223    
     &,LAND_FIELD_TRIF                                                     ABX1F405.707    
     &,NPFT_TRIF                                                           ABX1F405.708    
      REAL                                                                 ARE1F404.224    
     & ARESIST_TILE(NTYPE)                                                 ARE1F404.225    
     &,CANHT_FT(NPFT)                                                      ARE1F404.226    
     &,CANOPY_TILE(NTYPE-1)                                                ARE1F404.227    
     &,CATCH_TILE(NTYPE-1)                                                 ARE1F404.228    
     &,CS                                                                  ARE1F404.229    
     &,ECAN_TILE(NTYPE-1)                                                  ARE1F404.230    
     &,ESOIL_TILE(NTYPE-1)                                                 ARE1F404.231    
     &,FRAC(NTYPE)                                                         ARE1F404.232    
     &,FTL_TILE(NTYPE)                                                     ARE1F404.233    
     &,G_LEAF(NPFT)                                                        ARE1F404.234    
     &,G_LEAF_ACC(NPFT)                                                    ARE1F404.235    
     &,GPP_FT(NPFT)                                                        ABX1F405.709    
     &,LAI_FT(NPFT)                                                        ARE1F404.236    
     &,NPP_FT(NPFT)                                                        ARE1F404.237    
     &,NPP_FT_ACC(NPFT)                                                    ARE1F404.238    
     &,RAD_NO_SNOW(P_FIELD)                                                ARE1F404.239    
     &,RAD_SNOW(P_FIELD)                                                   ARE1F404.240    
     &,RESIST_B_TILE(NTYPE)                                                ARE1F404.241    
     &,RESP_P_FT(NPFT)                                                     ABX1F405.710    
     &,RESP_S                                                              ARE1F404.242    
     &,RESP_S_ACC                                                          ARE1F404.243    
     &,RESP_W_FT(NPFT)                                                     ARE1F404.244    
     &,RESP_W_FT_ACC(NPFT)                                                 ARE1F404.245    
     &,RHO_ARESIST_TILE(NTYPE)                                             ARE1F404.246    
     &,RIB_TILE(NTYPE)                                                     ARE1F404.247    
     &,SNOW_FRAC                                                           ARE1F404.248    
     &,SNOW_SURF_HTF                                                       ARE1F404.249    
     &,SOIL_SURF_HTF                                                       ARE1F404.250    
     &,TILE_FRAC(NPFT)                                                     ABX1F405.711    
     &,TSNOW                                                               ARE1F404.251    
     &,TSTAR_TILE(NTYPE)                                                   ARE1F404.252    
     &,Z0V_TILE(NTYPE)                                                     ARE1F404.253    
      LOGICAL                                                              ABX1F405.712    
     & L_PHENOL                                                            ABX1F405.713    
     &,L_TRIFFID                                                           ABX1F405.714    
     &,L_NEG_TSTAR                                                         ABX1F405.715    
                                                                           ARE1F404.254    
      INTEGER                                                              BL_IC5A.445    
     + ERROR          ! OUT 0 - AOK;                                       BL_IC5A.446    
     +,I                                                                   BL_IC5A.447    
C                     !     1 to 7  - bad grid definition detected;        BL_IC5A.449    
C                     !     11 - error in SF_EXCH;                         BL_IC5A.453    
C                     !     21 - error in KMKH;                            BL_IC5A.454    
C                     !     31 - error in IMPL_CAL;                        BL_IC5A.455    
*IF -DEF,CRAY                                                              BL_IC5A.456    
C                     !     41 - error in SOIL_HTF.                        BL_IC5A.457    
*ENDIF                                                                     BL_IC5A.458    
C*----------------------------------------------------------------------   BL_IC5A.459    
                                                                           BL_IC5A.460    
      CALL BDY_LAYR (                                                      BL_IC5A.461    
                                                                           BL_IC5A.462    
C IN values defining field dimensions and subset to be processed :         BL_IC5A.463    
     + P_FIELD,U_FIELD,LAND_FIELD,                                         BL_IC5A.464    
     + P_ROWS,FIRST_ROW,N_ROWS,ROW_LENGTH                                  BL_IC5A.465    
                                                                           BL_IC5A.466    
C IN values defining vertical grid of model atmosphere :                   BL_IC5A.467    
     +,BL_LEVELS,P_LEVELS,AK,BK,AKH,BKH,DELTA_AK,DELTA_BK                  BL_IC5A.468    
     +,EXNER                                                               BL_IC5A.469    
                                                                           BL_IC5A.470    
C IN soil/vegetation/land surface data :                                   BL_IC5A.471    
     +,LAND_MASK,GATHER,LAND_INDEX                                         BL_IC5A.475    
     +,ST_LEVELS,SM_LEVELS,CANOPY,CATCH,HCON                               BL_IC5A.476    
     +,LYING_SNOW,RESIST,ROOTD,SMVCCL,SMVCST,SMVCWT                        BL_IC5A.478    
     +,STHF,STHU,VFRAC,Z0V,SIL_OROG_LAND                                   BL_IC5A.479    
     +,L_Z0_OROG,HO2R2_OROG                                                BL_IC5A.480    
     +,CANHT,LAI                                                           BL_IC5A.481    
                                                                           BL_IC5A.482    
C IN sea/sea-ice data :                                                    BL_IC5A.483    
     +,DI,ICE_FRACT,U_0,V_0                                                BL_IC5A.484    
                                                                           BL_IC5A.485    
C IN cloud data :                                                          BL_IC5A.486    
     +,CF,QCF,QCL                                                          BL_IC5A.487    
     +,CCA,CCB,CCT                                                         BL_IC5A.488    
                                                                           BL_IC5A.489    
C IN everything not covered so far :                                       BL_IC5A.490    
     +,CO2_MMR,PHOTOSYNTH_ACT_RAD,PSTAR,RADNET,TIMESTEP                    BL_IC5A.491    
     +,L_RMBL,L_BL_LSPICE,L_MOM,L_MIXLEN                                   ADM3F404.56     
                                                                           BL_IC5A.493    
C INOUT data :                                                             BL_IC5A.494    
     +,Q,GS,T,T_DEEP_SOIL,TI,TSTAR,U,V,Z0MSEA                              BL_IC5A.495    
                                                                           BL_IC5A.496    
C OUT Diagnostic not requiring STASH flags :                               BL_IC5A.497    
     +,CD,CH,E_SEA,EPOT,ETRAN,FQW,FSMC,FTL,H_SEA,RHOKH,RHOKM,RIB           ANG1F405.54     
     +,SEA_ICE_HTF,SURF_HT_FLUX,TAUX,TAUY,VSHR                             BL_IC5A.499    
                                                                           BL_IC5A.500    
C OUT diagnostic requiring STASH flags :                                   BL_IC5A.501    
     +,FME,SICE_MLT_HTF,SNOMLT_SURF_HTF,LATENT_HEAT                        BL_IC5A.502    
     +,Q1P5M,T1P5M,U10M,V10M                                               BL_IC5A.503    
C (IN) STASH flags :-                                                      BL_IC5A.504    
     +,SFME,SIMLT,SMLT,SLH,SQ1P5,ST1P5,SU10,SV10                           BL_IC5A.505    
                                                                           BL_IC5A.506    
C OUT data required for tracer mixing :                                    BL_IC5A.507    
     &,RHO_ARESIST,ARESIST,RESIST_B                                        BL_IC5A.508    
     &,NRML                                                                BL_IC5A.509    
                                                                           BL_IC5A.510    
C OUT data required for 4D_VAR :                                           BL_IC5A.511    
     &,RHO_CD_MODV1,RHO_KM                                                 BL_IC5A.512    
                                                                           BL_IC5A.513    
C OUT data required elsewhere in UM system :                               BL_IC5A.514    
     +,ECAN,EI,ES,EXT,SNOWMELT,ZH                                          BL_IC5A.515    
     +,GPP,NPP,RESP_P                                                      BL_IC5A.516    
     +,T1_SD,Q1_SD,ERROR                                                   BL_IC5A.517    
                                                                           BL_IC5A.518    
C LOGICAL LTIMER                                                           BL_IC5A.519    
     +,LTIMER                                                              BL_IC5A.520    
*IF DEF,SCMA                                                               AJC0F405.39     
     &  ,FACTOR_RHOKH,OBS                                                  AJC0F405.40     
*ENDIF                                                                     AJC0F405.41     
     +)                                                                    BL_IC5A.521    
      RETURN                                                               BL_IC5A.522    
      END                                                                  BL_IC5A.523    
                                                                           BL_IC5A.524    
*ENDIF                                                                     BL_IC5A.525