*IF DEF,A03_3A                                                             AJS1F401.991    
CLL Subroutine BL_INTCT -------------------------------------------        BL_IC3A.3      
CLL                                                                        BL_IC3A.4      
CLL Purpose : Intermediate control level to call requested version of      BL_IC3A.5      
CLL           BDY_LAYR with the appropriate arguments.                     BL_IC3A.6      
CLL                                                                        BL_IC3A.7      
CLL Level 3 control routine                                                BL_IC3A.8      
CLL version for CRAY YMP                                                   BL_IC3A.9      
CLL                                                                        BL_IC3A.10     
CLL C.Bunton    <- programmer of some or all of previous code or changes   BL_IC3A.11     
CLL                                                                        BL_IC3A.12     
CLL  Model            Modification history from model version 3.0:         BL_IC3A.13     
CLL version  Date                                                          BL_IC3A.14     
CLL  4.0  22/05/95  Original code to introduce intermediate control        BL_IC3A.15     
CLL                 level-all arguments for every version                  BL_IC3A.16     
CLL                 are passed from BL_CTL and then this routine           BL_IC3A.17     
CLL                 calls appropriate version of BDY_LAYR with a           BL_IC3A.18     
CLL                 subset of these                                        BL_IC3A.19     
CLL                 (Outlined in proposal by S. Foreman 22/08/94)          BL_IC3A.20     
CLL                 C.Bunton                                               BL_IC3A.21     
CLL  4.0  24/4/95   Diagnostics for 4D-Var project added                   BL_IC3A.25     
CLL                           Simon Jackson                                BL_IC3A.26     
CLL  4.1  07/05/96  3 surface resistance coefficients to argument list     AJS1F401.992    
CLL                 for use in Sulphur Cycle      M. Woodage.              AJS1F401.993    
CLL  4.1  20/5/96   Correct stash flags for sea-ice melt and snow melt     ASJ1F401.1      
CLL                 heat fluxes      Simon Jackson                         ASJ1F401.2      
CLL  4.3  04/02/97  Logical switches L_MOM and L_MIXLEN passed down        ARN1F403.4      
CLL                 to BDY_LYR                                             ARN1F403.5      
CLL                                                     R.N.B.Smith        ARN1F403.6      
CLL  4.4  08/09/97 L_BL_LSPICE specifies mixed phase precipitation         ADM3F404.194    
CLL                scheme.                        D.Wilson                 ADM3F404.195    
CLL                                                                        ADM3F404.196    
CLL                                                                        ARN1F403.7      
!!!  4.4  18/09/97 Extra arguments RAD_HR and RADHR_DIM1 for BDYLYR6A      ARN1F404.155    
!!!                                                     Cyndy Bunton       ARN1F404.156    
!!!  4.5   24/4/98 New diagnostics ZHT and BL_TYPE_1 to _6 for             ARN0F405.114    
!!!                BDYLYR6A                             R.N.B.Smith        ARN0F405.115    
!!!  4.5    Jul. 98  Kill the IBM specific lines. (JCThil)                 AJC1F405.344    
!!!  4.5  27/04/98 Add dummy arguments LAND_FIELD_TRIF, NPFT_TRIF,         ABX1F405.678    
!!!                GPP_FT, RESP_P_FT, TILE_FRAC, L_PHENOL and L_TRIFFID    ABX1F405.679    
!!!                and change TILE_INDEX and TILE_PTS from IN to OUT,      ABX1F405.680    
!!!                consistent with changes to BL_CTL required for          ABX1F405.681    
!!!                TRIFFID.                                                ABX1F405.682    
!!!                                                     Richard Betts      ABX1F405.683    
CLL Programming standard : unified model documentation paper No 3          BL_IC3A.27     
CLL                                                                        BL_IC3A.28     
CLL System components covered : P24                                        BL_IC3A.29     
CLL                                                                        BL_IC3A.30     
CLL System task : P0                                                       BL_IC3A.31     
CLL                                                                        BL_IC3A.32     
CLLEND -----------------------------------------------------------------   BL_IC3A.33     
C    Arguments :-                                                          BL_IC3A.34     

      SUBROUTINE BL_INTCT(                                                  2,8BL_IC3A.35     
                                                                           BL_IC3A.36     
C IN values defining field dimensions and subset to be processed :         BL_IC3A.37     
     & P_FIELD,U_FIELD,LAND_FIELD,LAND_FIELD_TRIF,NPFT_TRIF,               ABX1F405.684    
     + P_ROWS,FIRST_ROW,N_ROWS,ROW_LENGTH,                                 AJS1F401.995    
                                                                           BL_IC3A.39     
C IN values defining vertical grid of model atmosphere :                   BL_IC3A.40     
     + BL_LEVELS,P_LEVELS,AK,BK,AKH,BKH,DELTA_AK,DELTA_BK,                 AJS1F401.996    
     + EXNER,                                                              AJS1F401.997    
                                                                           BL_IC3A.43     
C IN soil/vegetation/land surface data :                                   BL_IC3A.44     
     + LAND_MASK,GATHER,LAND_INDEX,                                        AJS1F401.1000   
     + ST_LEVELS,SM_LEVELS,CANHT,CANOPY,CATCH,HCAP,                        AJS1F401.1001   
     + HCON,LAI,LAYER_DEPTH,                                               AJS1F401.1002   
     + LYING_SNOW,RESIST,ROOTD,SMC,SMVCCL,SMVCST,SMVCWT,                   AJS1F401.1003   
     + VFRAC,Z0V,SIL_OROG_LAND,L_Z0_OROG,                                  AJS1F401.1004   
     + HO2R2_OROG,                                                         AJS1F401.1005   
                                                                           BL_IC3A.53     
C IN sea/sea-ice data :                                                    BL_IC3A.54     
     + DI,ICE_FRACT,U_0,V_0,                                               AJS1F401.1006   
                                                                           BL_IC3A.56     
C IN cloud data :                                                          BL_IC3A.57     
     + CF,QCF,QCL,                                                         AJS1F401.1007   
     + CCA,CCB,CCT,                                                        AJS1F401.1008   
                                                                           BL_IC3A.60     
C IN everything not covered so far :                                       BL_IC3A.61     
     & RAD_HR,RADHR_DIM1,                                                  ARN1F404.157    
     + CO2_MMR,PHOTOSYNTH_ACT_RAD,PSTAR,RADNET,TIMESTEP,                   AJS1F401.1009   
     + L_RMBL,L_BL_LSPICE,L_MOM,L_MIXLEN,                                  ADM3F404.197    
                                                                           BL_IC3A.63     
C INOUT data :                                                             BL_IC3A.64     
     + GS,Q,STHF,STHU,T,T_DEEP_SOIL,TI,TSTAR,U,V,Z0MSEA,                   AJS1F401.1011   
                                                                           BL_IC3A.66     
C OUT Diagnostic not requiring STASH flags :                               BL_IC3A.67     
     + CD,CH,E_SEA,ETRAN,FQW,FTL,GPP,H_SEA,                                AJS1F401.1012   
     + NPP,RESP_P,RHOKH,RHOKM,RIB,SEA_ICE_HTF,                             AJS1F401.1013   
     + TAUX,TAUY,VSHR,ZHT,                                                 ARN0F405.116    
     + EPOT,FSMC,                                                          ANG1F405.45     
                                                                           BL_IC3A.70     
C OUT diagnostic requiring STASH flags :                                   BL_IC3A.71     
     + FME,SICE_MLT_HTF,SNOMLT_SURF_HTF,LATENT_HEAT,                       AJS1F401.1015   
     + Q1P5M,T1P5M,U10M,V10M,                                              AJS1F401.1016   
C (IN) STASH flags :-                                                      BL_IC3A.74     
     + SFME,SIMLT,SMLT,SLH,SQ1P5,ST1P5,SU10,SV10,                          AJS1F401.1017   
                                                                           BL_IC3A.76     
C OUT data required for tracer mixing :                                    BL_IC3A.77     
     & RHO_ARESIST,ARESIST,RESIST_B,                                       AJS1F401.1018   
     & NRML,                                                               AJS1F401.1019   
                                                                           BL_IC3A.79     
C OUT data required for 4D_VAR :                                           BL_IC3A.80     
     & RHO_CD_MODV1,RHO_KM,                                                AJS1F401.1020   
                                                                           BL_IC3A.82     
C OUT data required elsewhere in UM system :                               BL_IC3A.83     
     & BL_TYPE_1,BL_TYPE_2,BL_TYPE_3,BL_TYPE_4,BL_TYPE_5,BL_TYPE_6,        ARN0F405.117    
     + ECAN,EI,ES,EXT,SNOWMELT,                                            AJS1F401.1021   
*IF DEF,SCMA                                                               AJC0F405.247    
     + SOIL_HT_FLUX,ZH,T1_SD,Q1_SD,ERROR,                                  AJC0F405.248    
*ELSE                                                                      AJC0F405.249    
     + SURF_HT_FLUX,ZH,T1_SD,Q1_SD,ERROR,                                  AJS1F401.1022   
*ENDIF                                                                     AJC0F405.250    
                                                                           BL_IC3A.85     
! Additional arguments for 7A boundary layer (MOSES II)                    ARE1F404.155    
! IN                                                                       ARE1F404.156    
     & L_PHENOL,L_TRIFFID,L_NEG_TSTAR,                                     ABX1F405.685    
     & CANHT_FT,CANOPY_TILE,CATCH_TILE,CS,LAI_FT,                          ARE1F404.158    
     & FRAC,SNOW_FRAC,RAD_NO_SNOW,RAD_SNOW,TSNOW,Z0V_TILE,                 ARE1F404.159    
     & CO2_3D,CO2_DIM,L_CO2_INTERACTIVE,                                   ACN1F405.102    
! INOUT                                                                    ARE1F404.160    
     & TSTAR_TILE,                                                         ARE1F404.161    
     & G_LEAF_ACC,NPP_FT_ACC,RESP_W_FT_ACC,RESP_S_ACC,                     ARE1F404.162    
! OUT                                                                      ARE1F404.163    
     & ECAN_TILE,ESOIL_TILE,FTL_TILE,                                      ARE1F404.164    
     & G_LEAF,GPP_FT,NPP_FT,RESP_P_FT,RESP_S,RESP_W_FT,                    ABX1F405.686    
     & RHO_ARESIST_TILE,ARESIST_TILE,RESIST_B_TILE,                        ARE1F404.166    
     & RIB_TILE,SNOW_SURF_HTF,SOIL_SURF_HTF,                               ARE1F404.167    
     & TILE_INDEX,TILE_PTS,TILE_FRAC,                                      ABX1F405.687    
                                                                           ARE1F404.168    
C LOGICAL LTIMER                                                           BL_IC3A.86     
     + LTIMER                                                              AJS1F401.1023   
*IF DEF,SCMA                                                               AJC0F405.14     
     &  ,FACTOR_RHOKH,OBS                                                  AJC0F405.15     
*ENDIF                                                                     AJC0F405.16     
     +)                                                                    BL_IC3A.88     
      IMPLICIT NONE                                                        BL_IC3A.89     
C                                                                          BL_IC3A.90     
C  Inputs :-                                                               BL_IC3A.91     
C                                                                          BL_IC3A.92     
C (a) Defining horizontal grid and subset thereof to be processed.         BL_IC3A.93     
C                                                                          BL_IC3A.94     
      INTEGER                                                              BL_IC3A.95     
     + P_FIELD                    ! IN No. of P-points in whole grid       BL_IC3A.96     
C                                 !    (for dimensioning only).            BL_IC3A.97     
     +,RADHR_DIM1                 ! IN Dimension for RAD_HR                ARN1F404.158    
     +,U_FIELD                    ! IN No. of UV-points in whole grid.     BL_IC3A.101    
C                                 !    (Checked for consistency with       BL_IC3A.103    
C                                 !    P_FIELD and P_ROWS; there must      BL_IC3A.104    
C                                 !    be 1 less UV than P row.)           BL_IC3A.105    
     +,LAND_FIELD                 ! IN No.of land points in whole grid.    BL_IC3A.109    
C                                 !    (Checked for consistency with       BL_IC3A.111    
C                                 !    P_FIELD )                           BL_IC3A.112    
     +,P_ROWS                     ! IN No. of P-rows in whole grid         BL_IC3A.117    
C                                 !    (for dimensioning only).            BL_IC3A.118    
     +,FIRST_ROW                  ! IN First row of data to be treated,    BL_IC3A.122    
C                                 !    referred to P-grid (must be > 1     BL_IC3A.124    
C                                 !    since "polar" rows are never        BL_IC3A.125    
C                                 !    treated).                           BL_IC3A.126    
     +,N_ROWS                     ! IN No. of rows of data to be           BL_IC3A.130    
C                                 !    treated, referred to P-grid.        BL_IC3A.131    
C                                 !    FIRST_ROW+N_ROWS-1 must be less     BL_IC3A.133    
C                                 !    than P_ROWS, since "polar" rows     BL_IC3A.134    
C                                 !    are never treated.                  BL_IC3A.135    
     +,ROW_LENGTH                 ! IN No. of points in one row.           BL_IC3A.139    
C                                 !    (Checked for consistency with       BL_IC3A.141    
C                                 !    P_FIELD and N_ROWS.)                BL_IC3A.142    
C                                                                          BL_IC3A.146    
C (b) Defining vertical grid of model atmosphere.                          BL_IC3A.147    
C                                                                          BL_IC3A.148    
      INTEGER                                                              BL_IC3A.149    
     + BL_LEVELS                  ! IN Max. no. of "boundary" levels       BL_IC3A.150    
C                                 !    allowed.Assumed <= 30 for dim-      BL_IC3A.151    
C                                 !    sioning of GAMMA in common deck     BL_IC3A.152    
C                                 !    C_GAMMA used in SF_EXCH and KMKH    BL_IC3A.153    
     +,P_LEVELS                   ! IN Total no. of vertical levels in     BL_IC3A.154    
C                                 !    the model atmosphere.               BL_IC3A.155    
      REAL                                                                 BL_IC3A.156    
     + AK(P_LEVELS)                ! IN Hybrid 'A' for all levels.         BL_IC3A.157    
     +,BK(P_LEVELS)                ! IN Hybrid 'B' for all levels.         BL_IC3A.158    
     +,AKH(P_LEVELS+1)             ! IN Hybrid 'A' for layer interfaces.   BL_IC3A.159    
     +,BKH(P_LEVELS+1)             ! IN Hybrid 'B' for layer interfaces.   BL_IC3A.160    
     +,DELTA_AK(P_LEVELS)          ! IN Difference of hybrid 'A' across    BL_IC3A.161    
C                                  !    layers (K-1/2 to K+1/2).           BL_IC3A.162    
C                                  !    NB: Upper minus lower.             BL_IC3A.163    
     +,DELTA_BK(P_LEVELS)          ! IN Difference of hybrid 'B' across    BL_IC3A.164    
C                                  !    layers (K-1/2 to K+1/2).           BL_IC3A.165    
C                                  !    NB: Upper minus lower.             BL_IC3A.166    
     +,EXNER(P_FIELD,BL_LEVELS+1)  ! IN Exner function.  EXNER(,K) is      BL_IC3A.167    
C                                  !    value for LOWER BOUNDARY of        BL_IC3A.168    
C                                  !    level K.                           BL_IC3A.169    
C                                                                          BL_IC3A.170    
C (c) Soil/vegetation/land surface parameters (mostly constant).           BL_IC3A.171    
C                                                                          BL_IC3A.172    
      LOGICAL                                                              BL_IC3A.173    
     + LAND_MASK(P_FIELD)        ! IN T if land, F elsewhere.              BL_IC3A.174    
     &,L_CO2_INTERACTIVE   ! dummy CO2 variable - not used with A03_3A.    ACN1F405.103    
     +,GATHER                    ! IN T if gather to sea-ice points        BL_IC3A.175    
C                                !    in SF_EXCH. Saves a lot of un-       BL_IC3A.176    
C                                !    necessary calculations if there      BL_IC3A.177    
C                                !    are relatively few sea-ice points    BL_IC3A.178    
     +,L_RMBL                    ! IN T to use rapidly mixing              AJS1F401.1024   
C     !    boundary scheme in IMPL_CAL          AJS                        GJC0F405.44     
     +,L_BL_LSPICE           ! IN                                          ADM3F404.198    
!                              TRUE  Use scientific treatment of mixed     ADM3F404.199    
!                                    phase precip scheme.                  ADM3F404.200    
!                              FALSE Do not use mixed phase precip         ADM3F404.201    
!                                    considerations                        ADM3F404.202    
     +,L_Z0_OROG                 ! IN T to use simple orog.roughness       BL_IC3A.179    
     &,L_MOM                     ! IN Switch for convective momentum       ARN1F403.10     
C                                !    transport.                           ARN1F403.11     
     &,L_MIXLEN                  ! IN Switch for reducing the turbulent    ARN1F403.12     
C                                !    mixing length above the top of the   ARN1F403.13     
C                                !    boundary layer.                      ARN1F403.14     
C                                !    treatment in SF_EXCH                 BL_IC3A.180    
      INTEGER                                                              BL_IC3A.182    
     + LAND_INDEX(P_FIELD)       ! IN LAND_INDEX(I)=J => the Jth           BL_IC3A.183    
C                                !    point in P_FIELD is the Ith          BL_IC3A.184    
C                                !    land point.                          BL_IC3A.185    
      INTEGER                                                              BL_IC3A.187    
     + ST_LEVELS                 ! IN No. of deep soil temp levls          AJS1F401.1026   
     +,SM_LEVELS                 ! IN No. of soil moisture levls           AJS1F401.1027   
     &,CO2_DIM       ! dummy CO2 variable - field not used with A03_3A.    ACN1F405.104    
C                                !                                         AJS1F401.1028   
      REAL                                                                 BL_IC3A.190    
     + CANHT(LAND_FIELD)         ! IN Canopy height (m)                    AJS1F401.1029   
     +,CANOPY(LAND_FIELD)        ! IN Surface/canopy water (kg per sq m)   AJS1F401.1030   
     +,CATCH(LAND_FIELD)         ! IN Surface/canopy water capacity        BL_IC3A.192    
C                                !    (kg per sq m).                       BL_IC3A.193    
     +,HCAP(LAND_FIELD)          ! IN Soil heat capacity (J/K/m**3)        AJS1F401.1031   
     +,HCON(LAND_FIELD)          ! IN Soil thermal conductivity (W/m/K).   BL_IC3A.195    
     +,HO2R2_OROG(LAND_FIELD)    ! IN Dummy used only in version 3A.       AJS1F401.1032   
                                                                           AJS1F401.1033   
     +,LAI(LAND_FIELD)           ! IN Leaf area index                      AJS1F401.1034   
     +,LAYER_DEPTH(SM_LEVELS)    !    Dummy Variable not used              AJS1F401.1035   
C                                !    in this version                      AJS1F401.1036   
     +,LYING_SNOW(P_FIELD)       ! IN Lying snow (kg per sq m).            BL_IC3A.204    
C                                !    Must be global for coupled model,    BL_IC3A.206    
C                                !    ie dimension P_FIELD not LAND_FIEL   BL_IC3A.207    
     +,RESIST(LAND_FIELD)        ! IN "Stomatal" resistance to             BL_IC3A.209    
C                                !    evaporation (seconds per metre).     BL_IC3A.210    
     +,ROOTD(LAND_FIELD)         ! IN Depth of active soil layer ("root    BL_IC3A.211    
C                                !    depth") (metres).                    BL_IC3A.212    
     +,SMC(LAND_FIELD)           ! IN Soil moisture content (kg / sq m).   BL_IC3A.213    
     +,SMVCCL(LAND_FIELD)        ! IN Critical volumetric SMC (cubic m     BL_IC3A.214    
C                                !    per cubic m of soil).                BL_IC3A.215    
     +,SMVCST(LAND_FIELD)        ! IN Volumetric saturation point (cubic   AJS1F401.1037   
C                                !    per cubic m of soil).                AJS1F401.1038   
     +,SMVCWT(LAND_FIELD)        ! IN Volumetric wilting point (cubic m    BL_IC3A.216    
C                                !    per cubic m of soil).                BL_IC3A.217    
     +,VFRAC(LAND_FIELD)         ! IN Vegetation fraction.                 AJS1F401.1039   
     +,Z0V(P_FIELD)              ! IN Vegetative roughness length (m).     BL_IC3A.218    
C                                !    NB:UM uses same storage for Z0MSEA   BL_IC3A.219    
C                                !    so for sea points this is INOUT.     BL_IC3A.220    
     +,SIL_OROG_LAND(LAND_FIELD) ! IN Dummy used only in version 3A.       AJS1F401.1040   
C                                                                          BL_IC3A.226    
C (d) Sea/sea-ice data.                                                    BL_IC3A.227    
C                                                                          BL_IC3A.228    
      REAL                                                                 BL_IC3A.229    
     + DI(P_FIELD)               ! IN "Equivalent thickness" of sea-ice    BL_IC3A.230    
C                                !    (m).                                 BL_IC3A.231    
     +,ICE_FRACT(P_FIELD)        ! IN Fraction of gridbox covered by       BL_IC3A.232    
C                                !    sea-ice (decimal fraction).          BL_IC3A.233    
     +,U_0(U_FIELD)              ! IN W'ly component of surface current    BL_IC3A.234    
C                                !    (metres per second).                 BL_IC3A.235    
     +,V_0(U_FIELD)              ! IN S'ly component of surface current    BL_IC3A.236    
C                                !    (metres per second).                 BL_IC3A.237    
C                                                                          BL_IC3A.238    
C (e) Cloud data.                                                          BL_IC3A.239    
C                                                                          BL_IC3A.240    
      REAL                                                                 BL_IC3A.241    
     + CF(P_FIELD,BL_LEVELS)     ! IN Cloud fraction (decimal).            BL_IC3A.242    
     +,QCF(P_FIELD,BL_LEVELS)    ! IN Cloud ice (kg per kg air)            BL_IC3A.243    
     +,QCL(P_FIELD,BL_LEVELS)    ! IN Cloud liquid water (kg               BL_IC3A.244    
C                                !       per kg air).                      BL_IC3A.245    
     +,CCA(P_FIELD)              ! IN Convective Cloud Amount (decimal).   BL_IC3A.246    
      INTEGER                                                              BL_IC3A.247    
     + CCB(P_FIELD)              ! IN Convective Cloud Base                BL_IC3A.248    
     +,CCT(P_FIELD)              ! IN Convective Cloud Top                 BL_IC3A.249    
C                                                                          BL_IC3A.250    
C (f) Atmospheric + any other data not covered so far, incl control.       BL_IC3A.251    
C                                                                          BL_IC3A.252    
      REAL                                                                 BL_IC3A.253    
     + CO2_MMR                   ! IN CO2 Mass Mixing Ratio                AJS1F401.1041   
     &,CO2_3D        ! dummy CO2 variable - field not used with A03_3A.    ACN1F405.105    
     +,PHOTOSYNTH_ACT_RAD(P_FIELD) ! IN Net downward shortwave radiation   AJS1F401.1042   
C                                !    in band 1 (w/m2).                    AJS1F401.1043   
     +,PSTAR(P_FIELD)            ! IN Surface pressure (Pascals).          AJS1F401.1044   
     +,RADNET(P_FIELD)           ! IN Surface net radiation (W/sq m,       BL_IC3A.255    
C                                !    positive downwards).                 BL_IC3A.256    
     &,RAD_HR(RADHR_DIM1,BL_LEVELS)                                        ARN1F404.159    
!                                 ! IN Radiative heating rates             ARN1F404.160    
!                                 !    - not used in A03_3A.               ARN1F404.161    
     +,TIMESTEP                  ! IN Timestep (seconds).                  BL_IC3A.257    
C                                                                          BL_IC3A.258    
      LOGICAL LTIMER             ! Logical switch for TIMER diags          BL_IC3A.259    
*IF DEF,SCMA                                                               AJC0F405.17     
      LOGICAL OBS               ! IN flag for Observational                AJC0F405.18     
                                !  diagnostics for SCM                     AJC0F405.19     
*ENDIF                                                                     AJC0F405.20     
C                                                                          BL_IC3A.260    
C  STASH flags :-                                                          BL_IC3A.261    
C                                                                          BL_IC3A.262    
      LOGICAL                                                              BL_IC3A.263    
     + SFME    ! IN Flag for FME (q.v.).                                   BL_IC3A.264    
     +,SIMLT   ! IN Flag for SICE_MLT_HTF (q.v.)                           ASJ1F401.4      
     +,SMLT    ! IN Flag for SNOWMLT_SURF_HTF (q.v.)                       ASJ1F401.5      
     +,SLH     ! IN Flag for LATENT_HEAT (q.v.)                            BL_IC3A.267    
     +,SQ1P5   ! IN Flag for Q1P5M (q.v.)                                  BL_IC3A.268    
     +,ST1P5   ! IN Flag for T1P5M (q.v.)                                  BL_IC3A.269    
     +,SU10    ! IN Flag for U10M (q.v.)                                   BL_IC3A.270    
     +,SV10    ! IN Flag for V10M (q.v.)                                   BL_IC3A.271    
C                                                                          BL_IC3A.272    
C  In/outs :-                                                              BL_IC3A.273    
C                                                                          BL_IC3A.274    
      REAL                                                                 BL_IC3A.275    
     + GS(LAND_FIELD)                  ! INOUT "Stomatal" conductance to   AJS1F401.1045   
C                                      !       evaporation (m/s).          AJS1F401.1046   
     +,Q(P_FIELD,BL_LEVELS)            ! INOUT Input:specific humidity     AJS1F401.1047   
C                                      !       ( kg water per kg air).     BL_IC3A.277    
C                                      !      Output:total water content   BL_IC3A.278    
C                                      !      (Q)(kg water per kg air).    BL_IC3A.279    
     +,STHF(LAND_FIELD,SM_LEVELS)      ! INOUT Frozen soil moisture        AJS1F401.1048   
C                                      !       content of each layer       AJS1F401.1049   
C                                      !       as a fraction of            AJS1F401.1050   
C                                      !       saturation.                 AJS1F401.1051   
     +,STHU(LAND_FIELD,SM_LEVELS)      ! INOUT UNfrozen soil moisture      AJS1F401.1052   
C                                      !       content of each layer       AJS1F401.1053   
C                                      !       as a fraction of            AJS1F401.1054   
C                                      !       saturation.                 AJS1F401.1055   
     +,T(P_FIELD,BL_LEVELS)            ! INOUT Input:atmospheric temp(K)   BL_IC3A.280    
C                                      !      Output:liquid/frozen water   BL_IC3A.281    
C                                      !       temperature (TL) (K)        BL_IC3A.282    
     +,T_DEEP_SOIL(LAND_FIELD,ST_LEVELS) ! INOUT Deep soil temperatures    AJS1F401.1056   
C                                        !       (K).                      BL_IC3A.284    
     +,TI(P_FIELD)                     ! INOUT Sea-ice surface layer       AJS1F401.1057   
C                                      ! temperature (K)                   AJS1F401.1058   
     +,TSTAR(P_FIELD)                  ! INOUT Surface temperature         BL_IC3A.286    
C                                      !       (= top soil layer           BL_IC3A.287    
C                                      !       temperature) (K).           BL_IC3A.288    
     +,U(U_FIELD,BL_LEVELS)            ! INOUT W'ly wind component         BL_IC3A.289    
C                                      !       (metres per second).        BL_IC3A.290    
     +,V(U_FIELD,BL_LEVELS)            ! INOUT S'ly wind component         BL_IC3A.291    
C                                      !       (metres per second).        BL_IC3A.292    
     +,Z0MSEA(P_FIELD)                 ! INOUT Sea-surface roughness       BL_IC3A.293    
C                                      !       length for momentum (m).    BL_IC3A.294    
C                                      !       NB: same storage is used    BL_IC3A.295    
C                                      !       for Z0V, so the intent is   BL_IC3A.296    
C                                      !       IN for land points.         BL_IC3A.297    
C                                                                          BL_IC3A.298    
C  Outputs :-                                                              BL_IC3A.299    
C                                                                          BL_IC3A.300    
C-1 Diagnostic (or effectively so - includes coupled model requisites):-   BL_IC3A.301    
C                                                                          BL_IC3A.302    
C  (a) Calculated anyway (use STASH space from higher level) :-            BL_IC3A.303    
C                                                                          BL_IC3A.304    
      REAL                                                                 BL_IC3A.305    
     & BL_TYPE_1(P_FIELD)        ! OUT Dummy (diagnostics for BDYLYR6A)    ARN0F405.118    
     &,BL_TYPE_2(P_FIELD)        ! OUT Dummy (diagnostics for BDYLYR6A)    ARN0F405.119    
     &,BL_TYPE_3(P_FIELD)        ! OUT Dummy (diagnostics for BDYLYR6A)    ARN0F405.120    
     &,BL_TYPE_4(P_FIELD)        ! OUT Dummy (diagnostics for BDYLYR6A)    ARN0F405.121    
     &,BL_TYPE_5(P_FIELD)        ! OUT Dummy (diagnostics for BDYLYR6A)    ARN0F405.122    
     &,BL_TYPE_6(P_FIELD)        ! OUT Dummy (diagnostics for BDYLYR6A)    ARN0F405.123    
     +,CD(P_FIELD)               ! OUT Turbulent surface exchange (bulk    ARN0F405.124    
C                                !     transfer) coefficient for           BL_IC3A.307    
C                                !     momentum.                           BL_IC3A.308    
     +,CH(P_FIELD)               ! OUT Turbulent surface exchange (bulk    BL_IC3A.309    
C                                !     transfer) coefficient for heat      BL_IC3A.310    
C                                !     and/or moisture.                    BL_IC3A.311    
     +,E_SEA(P_FIELD)            ! OUT Evaporation from sea times leads    BL_IC3A.312    
C                                !     fraction. Zero over land.           BL_IC3A.313    
C                                !     (kg per square metre per sec).      BL_IC3A.314    
     +,EPOT(P_FIELD)             ! Dummy.                                  ANG1F405.46     
*IF DEF,SCMA                                                               AJC0F405.21     
     &  ,FACTOR_RHOKH(P_FIELD)  ! IN Factor for modifying surface          AJC0F405.22     
                                !  fluxes if OBS forcing used              AJC0F405.23     
*ENDIF                                                                     AJC0F405.24     
     +,ETRAN(P_FIELD)            ! OUT Transpiration (kg/m2/s).            AJS1F401.1059   
     +,EXT(LAND_FIELD,SM_LEVELS)                                           AJS1F401.1060   
C                                ! OUT Extraction of water from            AJS1F401.1061   
C                                !     each soil layer (kg/m2/s)           AJS1F401.1062   
     +,FQW(P_FIELD,BL_LEVELS)    ! OUT Moisture flux between layers        BL_IC3A.315    
C                                !     (kg per square metre per sec).      BL_IC3A.316    
C                                !     FQW(,1) is total water flux         BL_IC3A.317    
C                                !     from surface, 'E'.                  BL_IC3A.318    
     +,FSMC(LAND_FIELD)          ! Dummy.                                  ANG1F405.47     
     +,FTL(P_FIELD,BL_LEVELS)    ! OUT FTL(,K) contains net turbulent      BL_IC3A.319    
C                                !     sensible heat flux into layer K     BL_IC3A.320    
C                                !     from below; so FTL(,1) is the       BL_IC3A.321    
C                                !     surface sensible heat, H.  (W/m2)   BL_IC3A.322    
     +,GPP(LAND_FIELD)           ! OUT Gross primary productivity          AJS1F401.1063   
C                                !     (kg C/m2/s).                        AJS1F401.1064   
     +,H_SEA(P_FIELD)            ! OUT Surface sensible heat flux over     BL_IC3A.323    
C                                !     sea times leads fraction. (W/m2)    BL_IC3A.324    
     +,NPP(LAND_FIELD)           ! OUT Net primary productivity            AJS1F401.1065   
C                               !      (kg C/m2/s).                        AJS1F401.1066   
     +,RESP_P(LAND_FIELD)        ! OUT Plant respiration (kg C/m2/s).      AJS1F401.1067   
                                                                           AJS1F401.1068   
     +,RHOKH(P_FIELD,BL_LEVELS)  ! OUT Exchange coeffs for moisture.       BL_IC3A.325    
C                                !     Surface:out of SF_EXCH containing   BL_IC3A.326    
C                                !     GAMMA(1)*RHOKH,after IMPL_CAL       BL_IC3A.327    
C                                !     contains only RHOKH.                BL_IC3A.328    
C                                !     Above surface:out of KMKH cont-     BL_IC3A.329    
C                                !     aining GAMMA(1)*RHOKH(,1)*RDZ(,1)   BL_IC3A.330    
     +,RHOKM(U_FIELD,BL_LEVELS)  ! OUT Exchange coefficients for           BL_IC3A.331    
C                                !     momentum (on UV-grid, with 1st      BL_IC3A.332    
C                                !     and last rows undefined (or, at     BL_IC3A.333    
C                                !     present, set to "missing data")).   BL_IC3A.334    
C                                !     Surface:out of SF_EXCH containing   BL_IC3A.335    
C                                !     GAMMA(1)*RHOKH,after IMPL_CAL       BL_IC3A.336    
C                                !     contains only RHOKH.                BL_IC3A.337    
C                                !     Above surface:out of KMKH cont-     BL_IC3A.338    
C                                !     aining GAMMA(1)*RHOKH(,1)*RDZ(,1)   BL_IC3A.339    
     +,RIB(P_FIELD)              ! OUT Bulk Richardson number for lowest   BL_IC3A.340    
C                                !     layer.                              BL_IC3A.341    
     +,SEA_ICE_HTF(P_FIELD)      ! OUT Heat flux through sea-ice (W per    BL_IC3A.342    
C                                !     sq m, positive downwards).          BL_IC3A.343    
*IF DEF,SCMA                                                               AJC0F405.251    
     +,SOIL_HT_FLUX(P_FIELD)     ! OUT HT FLUX FROM SURF TO DEEP SOIL LE   AJC0F405.252    
*ELSE                                                                      AJC0F405.253    
     +,SOIL_HT_FLUX(P_FIELD)     ! OUT Dummy                               AJS1F401.1069   
     +,SURF_HT_FLUX(P_FIELD)     ! OUT Net downward heat flux at surface   AJS1F401.1070   
!                                !     over land or sea-ice fraction of    AJS1F401.1071   
!                                !     gridbox (W/m2)                      AJS1F401.1072   
*ENDIF                                                                     AJC0F405.254    
     +,TAUX(U_FIELD,BL_LEVELS)   ! OUT W'ly component of surface wind      BL_IC3A.348    
C                                !     stress (N/sq m).(On UV-grid with    BL_IC3A.349    
C                                !     first and last rows undefined or    BL_IC3A.350    
C                                !     at present, set to 'missing data'   BL_IC3A.351    
     +,TAUY(U_FIELD,BL_LEVELS)   ! OUT S'ly component of surface wind      BL_IC3A.352    
C                                !     stress (N/sq m).  On UV-grid;       BL_IC3A.353    
C                                !     comments as per TAUX.               BL_IC3A.354    
     +,VSHR(P_FIELD)             ! OUT Magnitude of surface-to-lowest      BL_IC3A.355    
C                                !     atm level wind shear (m per s).     BL_IC3A.356    
C                                                                          BL_IC3A.357    
     &,ZHT(P_FIELD)              ! OUT Dummy (diagnostics for BDYLYR6A)    ARN0F405.125    
     +,RHO_CD_MODV1(P_FIELD)     ! OUT Surface air density * drag coef.    BL_IC3A.358    
C                                ! mod(v1 - v0) before interpolation.      BL_IC3A.359    
                                                                           BL_IC3A.360    
     +,RHO_KM(P_FIELD,2:BL_LEVELS)! OUT Air density * turbulent mixing     BL_IC3A.361    
C                                ! coef. for momentum before               BL_IC3A.362    
     +,RHO_ARESIST(P_FIELD)       ! OUT, RHOSTAR*CD_STD*VSHR for SCYCLE    AJS1F401.1073   
     +,ARESIST(P_FIELD)           ! OUT, 1/(CD_STD*VSHR)    for SCYCLE     AJS1F401.1074   
     +,RESIST_B(P_FIELD)          ! OUT,(1/CH-1/CD_STD)/VSHR for SCYCLE    AJS1F401.1075   
C                                                                          AJS1F401.1076   
      INTEGER                                                              BL_IC3A.363    
     + NRML(P_FIELD)             ! OUT Number of model layers in the       BL_IC3A.364    
C                                !     Rapidly Mixing Layer; diagnosed     BL_IC3A.365    
C                                !     in SF_EXCH and KMKH and used in     BL_IC3A.366    
C                                !     IMPL_CAL, SF_EVAP and TR_MIX.       BL_IC3A.367    
C                                                                          BL_IC3A.368    
C  (b) Not passed between lower-level routines (not in workspace at this   BL_IC3A.369    
C      level) :-                                                           BL_IC3A.370    
C                                                                          BL_IC3A.371    
      REAL                                                                 BL_IC3A.372    
     + FME(P_FIELD)             ! OUT Wind mixing "power" (W per sq m).    BL_IC3A.373    
     +,SICE_MLT_HTF(P_FIELD)    ! OUT Heat flux due to melting of sea-     BL_IC3A.374    
C                               !     ice (Watts per sq metre).            BL_IC3A.375    
     +,SNOMLT_SURF_HTF(P_FIELD)                                            BL_IC3A.376    
     +,LATENT_HEAT(P_FIELD)     ! OUT Surface latent heat flux, +ve        BL_IC3A.377    
C                               !     upwards (Watts per sq m).            BL_IC3A.378    
     +,Q1P5M(P_FIELD)           ! OUT Q at 1.5 m (kg water per kg air).    BL_IC3A.379    
     +,T1P5M(P_FIELD)           ! OUT T at 1.5 m (K).                      BL_IC3A.380    
     +,U10M(U_FIELD)            ! OUT U at 10 m (m per s).                 BL_IC3A.381    
     +,V10M(U_FIELD)            ! OUT V at 10 m (m per s).                 BL_IC3A.382    
                                                                           ARN0F405.126    
                                                                           ARN0F405.127    
C                                                                          BL_IC3A.383    
C-2 Genuinely output, needed by other atmospheric routines :-              BL_IC3A.384    
C                                                                          BL_IC3A.385    
      REAL                                                                 BL_IC3A.386    
     + ECAN(P_FIELD)  ! OUT Gridbox mean evaporation from canopy/surface   AJS1F401.1077   
C                     !     store (kg per sq m per s).  Zero over sea.     BL_IC3A.389    
     +,EI(P_FIELD)    ! OUT Sublimation from lying snow or sea-ice (kg     BL_IC3A.390    
C                     !     per sq m per sec).                             BL_IC3A.391    
     +,ES(P_FIELD)    ! OUT Surface evapotranspiration through a           BL_IC3A.392    
C                     !     resistance which is not entirely aerodynamic   BL_IC3A.393    
C                     !     i.e. "soil evaporation".  Always non-          BL_IC3A.394    
C                     !     negative.  Kg per sq m per sec.                BL_IC3A.395    
     +,SNOWMELT(P_FIELD) ! OUT Snowmelt (kg/m/s)                           AJS1F401.1078   
     +,ZH(P_FIELD)    ! OUT Height above surface of top of boundary        BL_IC3A.397    
C                     !     layer (metres).                                BL_IC3A.398    
     &,T1_SD(P_FIELD) ! OUT Standard deviation of turbulent fluctuations   BL_IC3A.399    
C                     !     of layer 1 temperature; for use in             BL_IC3A.400    
C                     !     initiating convection.                         BL_IC3A.401    
     &,Q1_SD(P_FIELD) ! OUT Standard deviation of turbulent fluctuations   BL_IC3A.402    
C                     !     of layer 1 humidity; for use in initiating     BL_IC3A.403    
C                     !     convection.                                    BL_IC3A.404    
! Additional arguments for 7A boundary layer (MOSES II)                    ARE1F404.169    
*CALL NSTYPES                                                              ARE1F404.170    
      INTEGER                                                              ARE1F404.171    
     & TILE_INDEX(NTYPE)                                                   ARE1F404.172    
     &,TILE_PTS(NTYPE)                                                     ARE1F404.173    
     &,LAND_FIELD_TRIF                                                     ABX1F405.688    
     &,NPFT_TRIF                                                           ABX1F405.689    
      REAL                                                                 ARE1F404.174    
     & ARESIST_TILE(NTYPE)                                                 ARE1F404.175    
     &,CANHT_FT(NPFT)                                                      ARE1F404.176    
     &,CANOPY_TILE(NTYPE-1)                                                ARE1F404.177    
     &,CATCH_TILE(NTYPE-1)                                                 ARE1F404.178    
     &,CS                                                                  ARE1F404.179    
     &,ECAN_TILE(NTYPE-1)                                                  ARE1F404.180    
     &,ESOIL_TILE(NTYPE-1)                                                 ARE1F404.181    
     &,FRAC(NTYPE)                                                         ARE1F404.182    
     &,FTL_TILE(NTYPE)                                                     ARE1F404.183    
     &,G_LEAF(NPFT)                                                        ARE1F404.184    
     &,G_LEAF_ACC(NPFT)                                                    ARE1F404.185    
     &,GPP_FT(NPFT)                                                        ABX1F405.690    
     &,LAI_FT(NPFT)                                                        ARE1F404.186    
     &,NPP_FT(NPFT)                                                        ARE1F404.187    
     &,NPP_FT_ACC(NPFT)                                                    ARE1F404.188    
     &,RAD_NO_SNOW(P_FIELD)                                                ARE1F404.189    
     &,RAD_SNOW(P_FIELD)                                                   ARE1F404.190    
     &,RESIST_B_TILE(NTYPE)                                                ARE1F404.191    
     &,RESP_P_FT(NPFT)                                                     ABX1F405.691    
     &,RESP_S                                                              ARE1F404.192    
     &,RESP_S_ACC                                                          ARE1F404.193    
     &,RESP_W_FT(NPFT)                                                     ARE1F404.194    
     &,RESP_W_FT_ACC(NPFT)                                                 ARE1F404.195    
     &,RHO_ARESIST_TILE(NTYPE)                                             ARE1F404.196    
     &,RIB_TILE(NTYPE)                                                     ARE1F404.197    
     &,SNOW_FRAC                                                           ARE1F404.198    
     &,SNOW_SURF_HTF                                                       ARE1F404.199    
     &,SOIL_SURF_HTF                                                       ARE1F404.200    
     &,TILE_FRAC(NPFT)                                                     ABX1F405.692    
     &,TSNOW                                                               ARE1F404.201    
     &,TSTAR_TILE(NTYPE)                                                   ARE1F404.202    
     &,Z0V_TILE(NTYPE)                                                     ARE1F404.203    
      LOGICAL                                                              ABX1F405.693    
     & L_PHENOL                                                            ABX1F405.694    
     &,L_TRIFFID                                                           ABX1F405.695    
     &,L_NEG_TSTAR                                                         ABX1F405.696    
                                                                           ARE1F404.204    
      INTEGER                                                              BL_IC3A.405    
     + ERROR          ! OUT 0 - AOK;                                       BL_IC3A.406    
     +,I                                                                   AJS1F401.1079   
C                     !     1 to 7  - bad grid definition detected;        BL_IC3A.408    
C                     !     11 - error in SF_EXCH;                         BL_IC3A.412    
C                     !     21 - error in KMKH;                            BL_IC3A.413    
C                     !     31 - error in IMPL_CAL;                        BL_IC3A.414    
*IF -DEF,CRAY                                                              BL_IC3A.415    
C                     !     41 - error in SOIL_HTF.                        BL_IC3A.416    
*ENDIF                                                                     BL_IC3A.417    
C*----------------------------------------------------------------------   BL_IC3A.418    
                                                                           BL_IC3A.419    
      CALL BDY_LAYR (                                                      BL_IC3A.420    
                                                                           BL_IC3A.421    
C IN values defining field dimensions and subset to be processed :         BL_IC3A.422    
     + P_FIELD,U_FIELD,LAND_FIELD,P_ROWS,FIRST_ROW,N_ROWS,ROW_LENGTH       BL_IC3A.423    
                                                                           BL_IC3A.424    
C IN values defining vertical grid of model atmosphere :                   BL_IC3A.425    
     +,BL_LEVELS,P_LEVELS,AK,BK,AKH,BKH,DELTA_AK,DELTA_BK                  BL_IC3A.426    
     +,EXNER                                                               BL_IC3A.427    
                                                                           BL_IC3A.428    
C IN soil/vegetation/land surface data :                                   BL_IC3A.429    
     +,LAND_MASK,GATHER,LAND_INDEX,ST_LEVELS                               AJS1F401.1082   
     +,SM_LEVELS,CANOPY,CATCH,HCAP,HCON,LAYER_DEPTH                        AJS1F401.1083   
     +,LYING_SNOW,RESIST,ROOTD,SMC,SMVCCL,SMVCWT,Z0V,SIL_OROG_LAND         BL_IC3A.436    
     +,L_Z0_OROG,HO2R2_OROG                                                BL_IC3A.437    
                                                                           BL_IC3A.438    
C IN sea/sea-ice data :                                                    BL_IC3A.439    
     +,DI,ICE_FRACT,U_0,V_0                                                BL_IC3A.440    
                                                                           BL_IC3A.441    
C IN cloud data :                                                          BL_IC3A.442    
     +,CF,QCF,QCL                                                          BL_IC3A.443    
     +,CCA,CCB,CCT                                                         BL_IC3A.444    
                                                                           BL_IC3A.445    
C IN everything not covered so far :                                       BL_IC3A.446    
     +,PSTAR,RADNET,TIMESTEP,L_RMBL,L_BL_LSPICE,L_MOM,L_MIXLEN             ADM3F404.203    
                                                                           BL_IC3A.448    
C INOUT data :                                                             BL_IC3A.449    
     +,Q,T,T_DEEP_SOIL,TSTAR,U,V,Z0MSEA                                    BL_IC3A.450    
                                                                           BL_IC3A.451    
C OUT Diagnostic not requiring STASH flags :                               BL_IC3A.452    
     +,CD,CH,E_SEA,FQW,FTL,H_SEA,RHOKH,RHOKM,RIB                           BL_IC3A.453    
     +,SEA_ICE_HTF,SOIL_HT_FLUX,TAUX,TAUY,VSHR                             BL_IC3A.454    
                                                                           BL_IC3A.455    
C OUT diagnostic requiring STASH flags :                                   BL_IC3A.456    
     +,FME,SICE_MLT_HTF,LATENT_HEAT,Q1P5M,T1P5M,U10M,V10M                  BL_IC3A.457    
C (IN) STASH flags :-                                                      BL_IC3A.458    
     +,SFME,SIMLT,SLH,SQ1P5,ST1P5,SU10,SV10                                ASJ1F401.6      
                                                                           BL_IC3A.460    
C OUT data required for tracer mixing :                                    BL_IC3A.461    
     &,NRML                                                                BL_IC3A.462    
                                                                           BL_IC3A.463    
C OUT data required for 4D-VAR :                                           BL_IC3A.464    
     &,RHO_CD_MODV1,RHO_KM                                                 BL_IC3A.465    
                                                                           BL_IC3A.466    
C OUT data required elsewhere in UM system :                               BL_IC3A.467    
     +,ECAN,EI,ES,ZH,T1_SD,Q1_SD,ERROR                                     BL_IC3A.468    
                                                                           BL_IC3A.469    
C LOGICAL LTIMER                                                           BL_IC3A.470    
     +,LTIMER                                                              BL_IC3A.471    
*IF DEF,SCMA                                                               AJC0F405.25     
     &  ,FACTOR_RHOKH,OBS                                                  AJC0F405.26     
*ENDIF                                                                     AJC0F405.27     
     +)                                                                    BL_IC3A.472    
                                                                           BL_IC3A.473    
      RETURN                                                               BL_IC3A.474    
      END                                                                  BL_IC3A.475    
                                                                           BL_IC3A.476    
*ENDIF                                                                     BL_IC3A.477