*IF DEF,A03_6A                                                             BL_IC6A.2      
C *****************************COPYRIGHT******************************     BL_IC6A.3      
C (c) CROWN COPYRIGHT 1997, METEOROLOGICAL OFFICE, All Rights Reserved.    BL_IC6A.4      
C                                                                          BL_IC6A.5      
C Use, duplication or disclosure of this code is subject to the            BL_IC6A.6      
C restrictions as set forth in the contract.                               BL_IC6A.7      
C                                                                          BL_IC6A.8      
C                Meteorological Office                                     BL_IC6A.9      
C                London Road                                               BL_IC6A.10     
C                BRACKNELL                                                 BL_IC6A.11     
C                Berkshire UK                                              BL_IC6A.12     
C                RG12 2SZ                                                  BL_IC6A.13     
C                                                                          BL_IC6A.14     
C If no contract has been raised with this copy of the code, the use,      BL_IC6A.15     
C duplication or disclosure of it is strictly prohibited.  Permission      BL_IC6A.16     
C to do so must first be obtained in writing from the Head of Numerical    BL_IC6A.17     
C Modelling at the above address.                                          BL_IC6A.18     
C ******************************COPYRIGHT******************************    BL_IC6A.19     
!!! Subroutine BL_INTCT -------------------------------------------        BL_IC6A.20     
!!!                                                                        BL_IC6A.21     
!!! Purpose : Intermediate control level to call requested version of      BL_IC6A.22     
!!!           BDY_LAYR with the appropriate arguments.                     BL_IC6A.23     
!!!                                                                        BL_IC6A.24     
!!! Level 3 control routine                                                BL_IC6A.25     
!!! version for CRAY YMP                                                   BL_IC6A.26     
!!!                                                                        BL_IC6A.27     
!!!  Model            Modification history:                                BL_IC6A.28     
!!! version  Date                                                          BL_IC6A.29     
!!!  4.4    10/09/97  New deck.  R.N.B.Smith                               BL_IC6A.30     
!!!  4.5   24/04/98   New diagnostics ZHT and BL_TYPE_1 to _6.             ARN0F405.141    
!!!                   R.N.B.Smith                                          ARN0F405.142    
!!!  4.5    Jul. 98  Kill the IBM specific lines. (JCThil)                 AJC1F405.342    
!!!  4.5  27/04/98 Add dummy arguments LAND_FIELD_TRIF, NPFT_TRIF,         ABX1F405.716    
!!!                GPP_FT, RESP_P_FT, TILE_FRAC_OUT, L_PHENOL and          ABX1F405.717    
!!!                L_TRIFFID and change TILE_INDEX and TILE_PTS from       ABX1F405.718    
!!!                IN to OUT, consistent with changes to BL_CTL            ABX1F405.719    
!!!                required for TRIFFID.   Richard Betts                   ABX1F405.720    
!!!                                                                        BL_IC6A.31     
!!! Programming standard : unified model documentation paper No 3          BL_IC6A.32     
!!!                                                                        BL_IC6A.33     
!!! System components covered : P24                                        BL_IC6A.34     
!!!                                                                        BL_IC6A.35     
!!! System task : P0                                                       BL_IC6A.36     
!!!                                                                        BL_IC6A.37     
!!!END -----------------------------------------------------------------   BL_IC6A.38     
!    Arguments :-                                                          BL_IC6A.39     

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