*IF DEF,RECON                                                              SCONTROL.2      
C *****************************COPYRIGHT******************************     SCONTROL.3      
C (c) CROWN COPYRIGHT 1998, METEOROLOGICAL OFFICE, All Rights Reserved.    SCONTROL.4      
C                                                                          SCONTROL.5      
C Use, duplication or disclosure of this code is subject to the            SCONTROL.6      
C restrictions as set forth in the contract.                               SCONTROL.7      
C                                                                          SCONTROL.8      
C                Meteorological Office                                     SCONTROL.9      
C                London Road                                               SCONTROL.10     
C                BRACKNELL                                                 SCONTROL.11     
C                Berkshire UK                                              SCONTROL.12     
C                RG12 2SZ                                                  SCONTROL.13     
C                                                                          SCONTROL.14     
C If no contract has been raised with this copy of the code, the use,      SCONTROL.15     
C duplication or disclosure of it is strictly prohibited.  Permission      SCONTROL.16     
C to do so must first be obtained in writing from the Head of Numerical    SCONTROL.17     
C Modelling at the above address.                                          SCONTROL.18     
C ******************************COPYRIGHT******************************    SCONTROL.19     
!+                                                                         SCONTROL.20     
!                                                                          SCONTROL.21     
! Subroutine Interface:                                                    SCONTROL.22     

      SUBROUTINE SUPERCONTROL(LEN_FIXHD_IN,LEN_INTHD_IN,LEN_REALHD_IN,      1,12SCONTROL.23     
     &  LEN1_LEVDEPC_IN,LEN2_LEVDEPC_IN,LEN1_ROWDEPC_IN,                   SCONTROL.24     
     &  LEN2_ROWDEPC_IN,LEN1_COLDEPC_IN,LEN2_COLDEPC_IN,                   SCONTROL.25     
     &  LEN1_FLDDEPC_IN,LEN2_FLDDEPC_IN,LEN_EXTCNST_IN,OZONE_LEVELS_IN,    SCONTROL.26     
     &  LEN_DUMPHIST_IN,LEN_CFI1_IN,LEN_CFI2_IN,LEN_CFI3_IN,               SCONTROL.27     
     &  LEN1_LOOKUP_IN,LEN2_LOOKUP_IN,LEN_DATA_IN,BL_LEVELS_IN             SCONTROL.28     
     & ,ROW_LENGTH_IN,P_ROWS_IN,P_LEVELS_IN,Q_LEVELS_IN                    SCONTROL.29     
     & ,ST_LEVELS_IN,SM_LEVELS_IN                                          SCONTROL.30     
     & ,MAX_VARIABLES_IN,P_FIELD_IN,U_ROWS_IN,U_FIELD_IN                   SCONTROL.31     
     & ,LEN_FIXHD_OUT,LEN_INTHD_OUT,LEN_REALHD_OUT,TR_LEVELS_ADV_OUT,      SCONTROL.32     
     &  LEN1_LEVDEPC_OUT,LEN2_LEVDEPC_OUT,LEN1_ROWDEPC_OUT,                SCONTROL.33     
     &  LEN2_ROWDEPC_OUT,LEN1_COLDEPC_OUT,LEN2_COLDEPC_OUT,                SCONTROL.34     
     &  LEN1_FLDDEPC_OUT,LEN2_FLDDEPC_OUT,LEN_EXTCNST_OUT,                 SCONTROL.35     
     &  LEN_DUMPHIST_OUT,LEN_CFI1_OUT,LEN_CFI2_OUT,LEN_CFI3_OUT,           SCONTROL.36     
     &  LEN1_LOOKUP_OUT,LEN2_LOOKUP_OUT,LEN_DATA_OUT                       SCONTROL.37     
     & ,ROW_LENGTH_OUT,P_ROWS_OUT,P_LEVELS_OUT,Q_LEVELS_OUT                SCONTROL.38     
     & ,MAX_VARIABLES_OUT,P_FIELD_OUT,U_ROWS_OUT,U_FIELD_OUT               SCONTROL.39     
     & ,TR_LEVELS_OUT,ST_LEVELS_OUT,SM_LEVELS_OUT,BL_LEVELS_OUT            SCONTROL.40     
     & ,OZONE_LEVELS_OUT,TR_VARS_OUT                                       SCONTROL.41     
     & ,LEN_INTHD_UARS,LEN_REALHD_UARS,LEN1_LEVDEPC_UARS                   SCONTROL.42     
     & ,LEN2_LEVDEPC_UARS,LEN2_LOOKUP_UARS,LEN_DATA_UARS,UARS              SCONTROL.43     
     & ,GRIB,NFTIN,NFTOUT,NFTUARS,NLOOKUPS,LEN_ANCIL,STRAT_Q               SCONTROL.44     
     &,RESET,OCEAN,NFTTRACER,NFTTRANS,TRANS                                SCONTROL.45     
     & ,LEN_INTHD_TRANS,LEN_REALHD_TRANS,LEN1_LEVDEPC_TRANS                SCONTROL.46     
     & ,LEN2_LEVDEPC_TRANS,LEN2_LOOKUP_TRANS,LEN_DATA_TRANS                SCONTROL.47     
     & ,LEN_INTHD_TRACER,LEN_REALHD_TRACER,LEN1_LEVDEPC_TRACER             SCONTROL.48     
     & ,LEN2_LEVDEPC_TRACER,LEN2_LOOKUP_TRACER,LEN_DATA_TRACER             SCONTROL.49     
     & ,NDATASETS,FTN_ANCIL,TITLE,PER_ARGS,PER_LEN,NFTPER                  SCONTROL.50     
     & ,PERTURBATION,C_GRID_IN,C_GRID_OUT,H_INT_TYPE,LPOLARCHK             SCONTROL.51     
     & ,ANVIL_FACTOR,TOWER_FACTOR,SCALE                                    SCONTROL.52     
     & ,POINTS_PER_OCEAN_LEVEL,DUMP_PACK,LAND_POINTS_UMUI,                 SCONTROL.53     
     & RadialGridIn,RadialGridOut,NFTIN2,NFTIN3,RM_CP,                     SCONTROL.54     
     & len1_lookup_um,len2_lookup_um,fixhd_um,                             SCONTROL.55     
     & len1_lookup_ls,len2_lookup_ls,fixhd_ls,                             SCONTROL.56     
*CALL ARGPPX                                                               SCONTROL.57     
     & LAMIPII_IN,                                                         SCONTROL.58     
     & LCAL360,LSPIRAL_S,LOZONE_ZONAL,L_MP_PRECIP)                         SCONTROL.59     
                                                                           SCONTROL.60     
      IMPLICIT NONE                                                        SCONTROL.61     
!                                                                          SCONTROL.62     
! Description:                                                             SCONTROL.63     
!   This routine controls the reconfiguration module. It calls the         SCONTROL.64     
!   main reconfguration routine CONTROL and the VAR processing routines    SCONTROL.65     
!   INIT_LS and PFinc2UM depending an namelist settings made in the        SCONTROL.66     
!   reconfiguration top level.                                             SCONTROL.67     
!                                                                          SCONTROL.68     
! Method:                                                                  SCONTROL.69     
!   <Say how it does it: include references to external documentation>     SCONTROL.70     
!   <If this routine is very complex, then include a "pseudo code"         SCONTROL.71     
!    description of it to make its structure and method clear>             SCONTROL.72     
!                                                                          SCONTROL.73     
! Current Code Owner: D.M. Goddard                                         SCONTROL.74     
!                                                                          SCONTROL.75     
! History:                                                                 SCONTROL.76     
! Version   Date     Comment                                               SCONTROL.77     
! -------   ----     -------                                               SCONTROL.78     
!  vn4.5  14/04/98  Original code. D.M. Goddard                            SCONTROL.79     
!                                                                          SCONTROL.80     
! Code Description:                                                        SCONTROL.81     
!   Language: FORTRAN 77 + common extensions.                              SCONTROL.82     
!   This code is written to UMDP3 v6 programming standards.                SCONTROL.83     
!                                                                          SCONTROL.84     
! Declarations:                                                            SCONTROL.85     
!   These are of the form:-                                                SCONTROL.86     
!     INTEGER      ExampleVariable      !Description of variable           SCONTROL.87     
!                                                                          SCONTROL.88     
! Global variables (*CALLed COMDECKs etc...):                              SCONTROL.89     
                                                                           SCONTROL.90     
! Subroutine arguments                                                     SCONTROL.91     
!   Scalar arguments with intent(in):                                      SCONTROL.92     
      INTEGER      DUMP_PACK        !  Packing indicator for Dump. See     SCONTROL.93     
                                    !  deck RECONF1 for details.           SCONTROL.94     
      INTEGER      LAND_POINTS_UMUI ! No of land points from               SCONTROL.95     
                                    ! namelist RECON                       SCONTROL.96     
      INTEGER      PER_LEN          !Dim of PER_ARGS                       SCONTROL.97     
      REAL         PERTURBATION     ! Switch for transplanting data        SCONTROL.98     
      LOGICAL      LCAL360                                                 SCONTROL.99     
      LOGICAL      LAMIPII_IN       ! T= AMIP II run ice updating          SCONTROL.100    
      LOGICAL      LSPIRAL_S        ! Switch for SPIRAL_S routine          SCONTROL.101    
                                    ! defining unresolved coastal points   SCONTROL.102    
      LOGICAL      LOZONE_ZONAL     ! T= Zonal ozone field                 SCONTROL.103    
                                    ! ozone field                          SCONTROL.104    
      LOGICAL      L_MP_PRECIP      ! T=Mixed phase precipitation chosen   SCONTROL.105    
                                    ! F=Standard precipitation chosen      SCONTROL.106    
      LOGICAL      H_INT_TYPE       !=T Area weighted interpolation;       SCONTROL.107    
                                    !=F Bi-linear interpolation            SCONTROL.108    
      LOGICAL      LPOLARCHK        ! True if polar rows to be             SCONTROL.109    
                                    ! averaged after horizontal            SCONTROL.110    
                                    ! interpolation                        SCONTROL.111    
      LOGICAL      UARS             ! Switch for UARS data                 SCONTROL.112    
      LOGICAL      TRANS            ! Switch for transplanting data        SCONTROL.113    
      LOGICAL      STRAT_Q          ! Switch to reset stratospheric Q      SCONTROL.114    
      LOGICAL      RESET            ! Switch to reset fc time info in      SCONTROL.115    
                                    ! FIXHD                                SCONTROL.116    
      LOGICAL      GRIB             ! =T GRIB data on A grid               SCONTROL.117    
      LOGICAL      OCEAN            ! =T Ocean reconfiguration             SCONTROL.118    
      LOGICAL      C_GRID_IN        ! =T C-grid; =F B-grid input grid      SCONTROL.119    
      LOGICAL      C_GRID_OUT       ! =T Vert co-ord radius =F hybrid      SCONTROL.120    
      LOGICAL      RadialGridIN     ! =T Vert co-ord radius =F hybrid      SCONTROL.121    
      LOGICAL      RadialGridOut    ! =T Vert co-ord radius =F hybrid      SCONTROL.122    
      LOGICAL      RM_CP                                                   SCONTROL.123    
      LOGICAL      CYCLIC           ! Switch for overlapping LAM fields    SCONTROL.124    
                                                                           SCONTROL.125    
!     Input file                                                           SCONTROL.126    
      INTEGER      LEN_FIXHD_IN     ! Length of fixed length header        SCONTROL.127    
      INTEGER      LEN_INTHD_IN     ! Length of integer header             SCONTROL.128    
      INTEGER      LEN_REALHD_IN    ! Length of real header                SCONTROL.129    
      INTEGER      LEN1_LEVDEPC_IN  ! 1st dim of lev dependent consts      SCONTROL.130    
      INTEGER      LEN2_LEVDEPC_IN  ! 2nd dim of lev dependent consts      SCONTROL.131    
      INTEGER      LEN1_ROWDEPC_IN  ! 1st dim of row dependent consts      SCONTROL.132    
      INTEGER      LEN2_ROWDEPC_IN  ! 2nd dim of row dependent consts      SCONTROL.133    
      INTEGER      LEN1_COLDEPC_IN  ! 1st dim of col dependent consts      SCONTROL.134    
      INTEGER      LEN2_COLDEPC_IN  ! 2nd dim of col dependent consts      SCONTROL.135    
      INTEGER      LEN1_FLDDEPC_IN  ! 1st dim of field dependent consts    SCONTROL.136    
      INTEGER      LEN2_FLDDEPC_IN  ! 2nd dim of field dependent consts    SCONTROL.137    
      INTEGER      LEN_EXTCNST_IN   ! Length of extra consts               SCONTROL.138    
      INTEGER      LEN_DUMPHIST_IN  ! Length of history header             SCONTROL.139    
      INTEGER      LEN_CFI1_IN      ! Length of index1                     SCONTROL.140    
      INTEGER      LEN_CFI2_IN      ! Length of index2                     SCONTROL.141    
      INTEGER      LEN_CFI3_IN      ! Length of index3                     SCONTROL.142    
      INTEGER      LEN1_LOOKUP_IN   ! 1st dim of LOOKUP                    SCONTROL.143    
      INTEGER      LEN2_LOOKUP_IN   ! 2nd dim of LOOKUP                    SCONTROL.144    
      INTEGER      LEN_DATA_IN      ! Length of data                       SCONTROL.145    
      INTEGER      ROW_LENGTH_IN    ! No of points E-W                     SCONTROL.146    
      INTEGER      P_ROWS_IN        ! No of p-rows                         SCONTROL.147    
      INTEGER      P_LEVELS_IN      ! No of levels                         SCONTROL.148    
      INTEGER      Q_LEVELS_IN      ! No of wet levels                     SCONTROL.149    
      INTEGER      MAX_VARIABLES_IN ! Maximum varaiables                   SCONTROL.150    
      INTEGER      ST_LEVELS_IN     ! No of deep soil temp levels          SCONTROL.151    
      INTEGER      SM_LEVELS_IN     ! No of soil moisture levels           SCONTROL.152    
      INTEGER      BL_LEVELS_IN     ! No of b.l. levels                    SCONTROL.153    
      INTEGER      OZONE_LEVELS_IN  ! No of ozone levels                   SCONTROL.154    
      INTEGER      P_FIELD_IN       ! No of p-points per level             SCONTROL.155    
      INTEGER      U_ROWS_IN        ! No of uv-rows                        SCONTROL.156    
      INTEGER      U_FIELD_IN       ! No of uv-points per level            SCONTROL.157    
      INTEGER      SCALE            ! Constant used in VAR to calculate    SCONTROL.158    
                                    ! aerosol increment.                   SCONTROL.159    
                                                                           SCONTROL.160    
      INTEGER      NFTIN                                                   SCONTROL.161    
      INTEGER      NFTOUT                                                  SCONTROL.162    
      INTEGER      NFTIN2                                                  SCONTROL.163    
      INTEGER      NFTIN3                                                  SCONTROL.164    
      INTEGER      NFTUARS                                                 SCONTROL.165    
      INTEGER      NFTTRANS                                                SCONTROL.166    
      INTEGER      NFTTRACER                                               SCONTROL.167    
      INTEGER      NFTPER                                                  SCONTROL.168    
      INTEGER      NLOOKUPS                                                SCONTROL.169    
      INTEGER      LEN_ANCIL                                               SCONTROL.170    
                                                                           SCONTROL.171    
                                                                           SCONTROL.172    
      REAL         ANVIL_FACTOR                                            SCONTROL.173    
      REAL         TOWER_FACTOR                                            SCONTROL.174    
                                                                           SCONTROL.175    
!     Output File                                                          SCONTROL.176    
      INTEGER      ROW_LENGTH_OUT    !  No of points E-W                   SCONTROL.177    
      INTEGER      P_ROWS_OUT        !  No of P-points N-S                 SCONTROL.178    
      INTEGER      P_LEVELS_OUT      !  No of levels                       SCONTROL.179    
      INTEGER      Q_LEVELS_OUT      !  No of wet levels                   SCONTROL.180    
      INTEGER      ST_LEVELS_OUT     !  No of deep soil temp levels        SCONTROL.181    
      INTEGER      SM_LEVELS_OUT     !  No of soil moisture levels         SCONTROL.182    
      INTEGER      TR_LEVELS_OUT     !  No of tracer levels                SCONTROL.183    
      INTEGER      TR_LEVELS_ADV_OUT !  No of tracer levels to be          SCONTROL.184    
                                     !  advected                           SCONTROL.185    
      INTEGER      BL_LEVELS_OUT     !  No of boundary layer levels        SCONTROL.186    
      INTEGER      OZONE_LEVELS_OUT  !  No of ozone levels                 SCONTROL.187    
      INTEGER      TR_VARS_OUT       !  No of tracer variables             SCONTROL.188    
      INTEGER      MAX_VARIABLES_OUT !  Maximum no of variables            SCONTROL.189    
      INTEGER      SOIL_VARS_OUT     !  No of soil variables               SCONTROL.190    
      INTEGER      VEG_VARS_OUT      !  No of vegetation variables         SCONTROL.191    
      INTEGER      LEN_FIXHD_OUT     !  Length of fixed length header      SCONTROL.192    
      INTEGER      LEN_INTHD_OUT     !  Length of integer header           SCONTROL.193    
      INTEGER      LEN_REALHD_OUT    !  Length of real header              SCONTROL.194    
      INTEGER      LEN2_LEVDEPC_OUT  !  2nd dim of lev dep consts          SCONTROL.195    
      INTEGER      LEN1_LEVDEPC_OUT  !  ist dim of lev dep consts          SCONTROL.196    
      INTEGER      LEN1_ROWDEPC_OUT  !  1st dim of row dep consts          SCONTROL.197    
      INTEGER      LEN2_ROWDEPC_OUT  !  2nd dim of row dep consts          SCONTROL.198    
      INTEGER      LEN1_COLDEPC_OUT  !  1st dim of col dep consts          SCONTROL.199    
      INTEGER      LEN2_COLDEPC_OUT  !  2nd dim of col dep consts          SCONTROL.200    
      INTEGER      LEN1_FLDDEPC_OUT  !  1st dim of field dep consts        SCONTROL.201    
      INTEGER      LEN2_FLDDEPC_OUT  !  2nd dim of field dep consts        SCONTROL.202    
      INTEGER      LEN_EXTCNST_OUT   !  Length of extra constants          SCONTROL.203    
      INTEGER      LEN_DUMPHIST_OUT  !  Length of history header           SCONTROL.204    
      INTEGER      LEN_CFI1_OUT      !  Length of index1 on output file    SCONTROL.205    
      INTEGER      LEN_CFI2_OUT      !  Length of index2 on output file    SCONTROL.206    
      INTEGER      LEN_CFI3_OUT      !  Length of index3 on output file    SCONTROL.207    
      INTEGER      LEN1_LOOKUP_OUT   !  1st dim of lookup header           SCONTROL.208    
      INTEGER      LEN2_LOOKUP_OUT   !  2nd dim of lookup header           SCONTROL.209    
      INTEGER      U_FIELD_OUT       !  No of UV-points per level          SCONTROL.210    
      INTEGER      P_FIELD_OUT       !  No of p-points per level           SCONTROL.211    
      INTEGER      U_ROWS_OUT        !  No of uv-points N-S                SCONTROL.212    
      INTEGER      LEN_DATA_OUT      !  Length of output data              SCONTROL.213    
                                                                           SCONTROL.214    
!     input UM dump                                                        SCONTROL.215    
      INTEGER      LEN1_LOOKUP_UM    ! 1st dim of lookup header            SCONTROL.216    
      INTEGER      LEN2_LOOKUP_UM    ! 2nd dim of lookup header            SCONTROL.217    
                                                                           SCONTROL.218    
!     input LS dump                                                        SCONTROL.219    
      INTEGER      LEN1_LOOKUP_LS    ! 1st dim of lookup header            SCONTROL.220    
      INTEGER      LEN2_LOOKUP_LS    ! 2nd dim of lookup header            SCONTROL.221    
                                                                           SCONTROL.222    
!     UARS file                                                            SCONTROL.223    
      INTEGER      LEN_INTHD_UARS    !Length of integer header             SCONTROL.224    
      INTEGER      LEN_REALHD_UARS   !Length of real header                SCONTROL.225    
      INTEGER      LEN1_LEVDEPC_UARS !1st dim of lev dependent consts      SCONTROL.226    
      INTEGER      LEN2_LEVDEPC_UARS !2nd dim of lev dependent consts      SCONTROL.227    
      INTEGER      LEN2_LOOKUP_UARS  !2nd dim of LOOKUP                    SCONTROL.228    
      INTEGER      LEN_DATA_UARS     !Length of data                       SCONTROL.229    
                                                                           SCONTROL.230    
!     Tracer file                                                          SCONTROL.231    
      INTEGER      LEN_INTHD_TRACER    !Length of integer header           SCONTROL.232    
      INTEGER      LEN_REALHD_TRACER   !Length of real header              SCONTROL.233    
      INTEGER      LEN1_LEVDEPC_TRACER !1st dim of lev dependent consts    SCONTROL.234    
      INTEGER      LEN2_LEVDEPC_TRACER !2nd dim of lev dependent consts    SCONTROL.235    
      INTEGER      LEN2_LOOKUP_TRACER  !2nd dim of LOOKUP                  SCONTROL.236    
      INTEGER      LEN_DATA_TRACER     !Length of data                     SCONTROL.237    
                                                                           SCONTROL.238    
!     Transplant file                                                      SCONTROL.239    
      INTEGER      LEN_INTHD_TRANS    !Length of integer header            SCONTROL.240    
      INTEGER      LEN_REALHD_TRANS   !Length of real header               SCONTROL.241    
      INTEGER      LEN1_LEVDEPC_TRANS !1st dim of lev dependent consts     SCONTROL.242    
      INTEGER      LEN2_LEVDEPC_TRANS !2nd dim of lev dependent consts     SCONTROL.243    
      INTEGER      LEN2_LOOKUP_TRANS  !2nd dim of LOOKUP                   SCONTROL.244    
      INTEGER      LEN_DATA_TRANS     !Length of data                      SCONTROL.245    
                                                                           SCONTROL.246    
!     User prognostic file                                                 SCONTROL.247    
      INTEGER     LEN_INTHD_UPROG    !Length of integer header             SCONTROL.248    
      INTEGER     LEN_REALHD_UPROG   !Length of real    header             SCONTROL.249    
      INTEGER     LEN1_LEVDEPC_UPROG !1st dim of lev depdnt consts         SCONTROL.250    
      INTEGER     LEN2_LEVDEPC_UPROG !2nd dim of lev depdnt consts         SCONTROL.251    
      INTEGER     LEN2_LOOKUP_UPROG  !2nd dim of LOOKUP                    SCONTROL.252    
      INTEGER     LEN_DATA_UPROG     !Length of data                       SCONTROL.253    
                                                                           SCONTROL.254    
!   Array  arguments with intent(in):                                      SCONTROL.255    
      INTEGER      POINTS_PER_OCEAN_LEVEL(99)                              SCONTROL.256    
      INTEGER      PER_ARGS(PER_LEN)! Lengths used to dim arrays           SCONTROL.257    
! ppxref look-up arrays                                                    SCONTROL.258    
!!!!!!!!!!!!Already dimensioned above and below                            SCONTROL.259    
      INTEGER      PPXI(*)                                                 SCONTROL.260    
      CHARACTER    PPXC(*)                                                 SCONTROL.261    
      INTEGER      NDATASETS                                               PXSCONT.1      
      INTEGER      FTN_ANCIL(NDATASETS)                                    SCONTROL.262    
      CHARACTER*80 TITLE(NDATASETS)                                        SCONTROL.263    
                                                                           SCONTROL.264    
!   ErrorStatus <Delete if ErrorStatus not used>                           SCONTROL.265    
      INTEGER      ErrorStatus          ! Error flag (0 = OK)              SCONTROL.266    
                                                                           SCONTROL.267    
! Local parameters:                                                        SCONTROL.268    
                                                                           SCONTROL.269    
! Local scalars:                                                           SCONTROL.270    
      INTEGER      FIND_NAMELIST                                           SCONTROL.271    
      INTEGER      LAND_POINTS_OUT                                         SCONTROL.272    
      INTEGER      ppxRecs                                                 SCONTROL.273    
      INTEGER      N_TYPES_OUT      ! Passed back from CONTROL             SCONTROL.275    
                                                                           SCONTROL.276    
      INTEGER      ICODE           ! Return code from INIT_LS and          SCONTROL.277    
                                   ! PFinc2UM; successful=0                SCONTROL.278    
                                   !           error > 0                   SCONTROL.279    
      CHARACTER*256 CMESSAGE       ! Error message if ICODE > 0            SCONTROL.280    
      LOGICAL      VERT            ! Switch for vertical interpolation     SCONTROL.281    
      LOGICAL      HORIZ           ! Switch for horizontal interpolation   SCONTROL.282    
      LOGICAL      GH_TO_LAM       ! Switch signifying global to           SCONTROL.283    
                                   ! Limited area                          SCONTROL.284    
      LOGICAL      MASK            ! Switch for land/sea mask              SCONTROL.285    
      LOGICAL      SSTANOM         ! Switch for SST anomaly                SCONTROL.286    
      LOGICAL      LOG_ICE_FRAC    ! Switch for ice frac update            SCONTROL.287    
      LOGICAL      LSM             ! Logical set if ancillary              SCONTROL.288    
                                   ! land-sea mask requested               SCONTROL.289    
      LOGICAL      LOZONE          ! Logical set if vert int of ozone      SCONTROL.290    
                                   ! required                              SCONTROL.291    
      LOGICAL      ROT_IN          ! Logical set if input grid rotated     SCONTROL.292    
      LOGICAL      ROT_OUT         ! Logical set if output grid rotated    SCONTROL.293    
                                                                           SCONTROL.294    
! Local dynamic arrays:                                                    SCONTROL.295    
      INTEGER      FIXHD_OUT(256)                                          SCONTROL.296    
      INTEGER      FIXHD_LS(256)                                           SCONTROL.297    
      INTEGER      FIXHD_UM(256)                                           SCONTROL.298    
      INTEGER      INTHD_OUT(LEN_INTHD_OUT)                                SCONTROL.299    
      INTEGER      CFI1_OUT(LEN_CFI1_OUT+1)                                SCONTROL.300    
      INTEGER      CFI2_OUT(LEN_CFI2_OUT+1)                                SCONTROL.301    
      INTEGER      CFI3_OUT(LEN_CFI3_OUT+1)                                SCONTROL.302    
      INTEGER      LOOKUP_OUT(LEN1_LOOKUP_OUT,LEN2_LOOKUP_OUT)             SCONTROL.303    
      INTEGER      ID1_OUT(P_FIELD_OUT)                                    SCONTROL.304    
      INTEGER      PP_LEN_OUT(LEN2_LOOKUP_OUT)   !Length       |For each   SCONTROL.305    
      INTEGER      PP_NUM_OUT(LEN2_LOOKUP_OUT)   !No of fields |field      SCONTROL.306    
      INTEGER      PP_POS_OUT(LEN2_LOOKUP_OUT)   !Position     |type on    SCONTROL.307    
      INTEGER      PP_TYPE_OUT(LEN2_LOOKUP_OUT)  !Real,int,log |output     SCONTROL.308    
      INTEGER      PP_ITEMC_OUT(LEN2_LOOKUP_OUT) !Item code    |file       SCONTROL.309    
      REAL         REALHD_OUT(LEN_REALHD_OUT)                              SCONTROL.310    
      REAL         LEVDEPC_OUT(1+LEN1_LEVDEPC_OUT*LEN2_LEVDEPC_OUT)        SCONTROL.311    
      REAL         ROWDEPC_OUT(1+LEN1_ROWDEPC_OUT*LEN2_ROWDEPC_OUT)        SCONTROL.312    
      REAL         COLDEPC_OUT(1+LEN1_COLDEPC_OUT*LEN2_COLDEPC_OUT)        SCONTROL.313    
      REAL         FLDDEPC_OUT(1+LEN1_FLDDEPC_OUT*LEN2_FLDDEPC_OUT)        SCONTROL.314    
      REAL         EXTCNST_OUT(LEN_EXTCNST_OUT+1)                          SCONTROL.315    
      REAL         DUMPHIST_OUT(LEN_DUMPHIST_OUT+1)                        SCONTROL.316    
      REAL         AKH_OUT(P_LEVELS_OUT+1)                                 SCONTROL.317    
      REAL         BKH_OUT(P_LEVELS_OUT+1)                                 SCONTROL.318    
                                                                           SCONTROL.319    
! Function & Subroutine calls:                                             SCONTROL.320    
      External     CONTROL,INIT_LS,PFinc_2UM                               SCONTROL.321    
                                                                           SCONTROL.322    
!- End of header                                                           SCONTROL.323    
      CALL TIMER('SUPERCONTROL',1)                                         SCONTROL.324    
                                                                           SCONTROL.325    
      CALL TIMER('CONTROL ',3)                                             SCONTROL.326    
                                                                           SCONTROL.327    
      CALL CONTROL(LEN_FIXHD_IN,LEN_INTHD_IN,LEN_REALHD_IN,                SCONTROL.328    
     &  LEN1_LEVDEPC_IN,LEN2_LEVDEPC_IN,LEN1_ROWDEPC_IN,                   SCONTROL.329    
     &  LEN2_ROWDEPC_IN,LEN1_COLDEPC_IN,LEN2_COLDEPC_IN,                   SCONTROL.330    
     &  LEN1_FLDDEPC_IN,LEN2_FLDDEPC_IN,LEN_EXTCNST_IN,OZONE_LEVELS_IN,    SCONTROL.331    
     &  LEN_DUMPHIST_IN,LEN_CFI1_IN,LEN_CFI2_IN,LEN_CFI3_IN,               SCONTROL.332    
     &  LEN1_LOOKUP_IN,LEN2_LOOKUP_IN,LEN_DATA_IN,BL_LEVELS_IN             SCONTROL.333    
     & ,ROW_LENGTH_IN,P_ROWS_IN,P_LEVELS_IN,Q_LEVELS_IN                    SCONTROL.334    
     & ,ST_LEVELS_IN,SM_LEVELS_IN                                          SCONTROL.335    
     & ,MAX_VARIABLES_IN,P_FIELD_IN,U_ROWS_IN,U_FIELD_IN                   SCONTROL.336    
     & ,LEN_FIXHD_OUT,LEN_INTHD_OUT,LEN_REALHD_OUT,TR_LEVELS_ADV_OUT,      SCONTROL.337    
     &  LEN1_LEVDEPC_OUT,LEN2_LEVDEPC_OUT,LEN1_ROWDEPC_OUT,                SCONTROL.338    
     &  LEN2_ROWDEPC_OUT,LEN1_COLDEPC_OUT,LEN2_COLDEPC_OUT,                SCONTROL.339    
     &  LEN1_FLDDEPC_OUT,LEN2_FLDDEPC_OUT,LEN_EXTCNST_OUT,                 SCONTROL.340    
     &  LEN_DUMPHIST_OUT,LEN_CFI1_OUT,LEN_CFI2_OUT,LEN_CFI3_OUT,           SCONTROL.341    
     &  LEN1_LOOKUP_OUT,LEN2_LOOKUP_OUT,LEN_DATA_OUT                       SCONTROL.342    
     & ,ROW_LENGTH_OUT,P_ROWS_OUT,P_LEVELS_OUT,Q_LEVELS_OUT                SCONTROL.343    
     & ,MAX_VARIABLES_OUT,P_FIELD_OUT,U_ROWS_OUT,U_FIELD_OUT               SCONTROL.344    
C                                                                          SCONTROL.345    
     & ,FIXHD_OUT,INTHD_OUT,REALHD_OUT,LEVDEPC_OUT,ROWDEPC_OUT             SCONTROL.346    
     & ,COLDEPC_OUT,FLDDEPC_OUT,EXTCNST_OUT,DUMPHIST_OUT,CFI1_OUT          SCONTROL.347    
     & ,CFI2_OUT,CFI3_OUT,LOOKUP_OUT,                                      SCONTROL.348    
     &  PP_ITEMC_OUT,PP_POS_OUT,N_TYPES_OUT,                               SCONTROL.349    
     &  PP_LEN_OUT,PP_NUM_OUT,PP_TYPE_OUT,                                 SCONTROL.350    
     &  AKH_OUT,BKH_OUT,LAND_POINTS_OUT                                    SCONTROL.351    
C                                                                          SCONTROL.352    
     & ,TR_LEVELS_OUT,ST_LEVELS_OUT,SM_LEVELS_OUT,BL_LEVELS_OUT            SCONTROL.353    
     & ,OZONE_LEVELS_OUT,TR_VARS_OUT                                       SCONTROL.354    
     & ,LEN_INTHD_UARS,LEN_REALHD_UARS,LEN1_LEVDEPC_UARS                   SCONTROL.355    
     & ,LEN2_LEVDEPC_UARS,LEN2_LOOKUP_UARS,LEN_DATA_UARS,UARS              SCONTROL.356    
     & ,GRIB,NFTIN,NFTOUT,NFTUARS,NLOOKUPS,LEN_ANCIL,STRAT_Q               SCONTROL.357    
     &,RESET,OCEAN,NFTTRACER,NFTTRANS,TRANS                                SCONTROL.358    
     & ,LEN_INTHD_TRANS,LEN_REALHD_TRANS,LEN1_LEVDEPC_TRANS                SCONTROL.359    
     & ,LEN2_LEVDEPC_TRANS,LEN2_LOOKUP_TRANS,LEN_DATA_TRANS                SCONTROL.360    
     & ,LEN_INTHD_TRACER,LEN_REALHD_TRACER,LEN1_LEVDEPC_TRACER             SCONTROL.361    
     & ,LEN2_LEVDEPC_TRACER,LEN2_LOOKUP_TRACER,LEN_DATA_TRACER             SCONTROL.362    
     & ,NDATASETS,FTN_ANCIL,TITLE,PER_ARGS,PER_LEN,NFTPER                  SCONTROL.363    
     & ,PERTURBATION,C_GRID_IN,C_GRID_OUT,H_INT_TYPE,LPOLARCHK             SCONTROL.364    
     & ,ANVIL_FACTOR,TOWER_FACTOR                                          SCONTROL.365    
     & ,POINTS_PER_OCEAN_LEVEL,DUMP_PACK,LAND_POINTS_UMUI,                 SCONTROL.366    
     & RadialGridIn,RadialGridOut,NFTIN2,NFTIN3,RM_CP,                     SCONTROL.367    
     & len1_lookup_um,len2_lookup_um,fixhd_um,                             SCONTROL.368    
     & len1_lookup_ls,len2_lookup_ls,fixhd_ls,                             SCONTROL.369    
*CALL ARGPPX                                                               SCONTROL.370    
     & LAMIPII_IN,                                                         SCONTROL.371    
     & LCAL360,LSPIRAL_S,LOZONE_ZONAL,L_MP_PRECIP)                         SCONTROL.372    
                                                                           SCONTROL.373    
      CALL TIMER('CONTROL ',4)                                             SCONTROL.374    
                                                                           SCONTROL.375    
      ! Call to subroutine to reconfigure from standard UM dump            SCONTROL.376    
      ! to new dynamics grid for the variational assimilation              SCONTROL.377    
      IF (RadialGridOut.AND..NOT.RadialGridIn) THEN                        SCONTROL.378    
                                                                           SCONTROL.379    
      CALL TIMER('INIT_LS ',3)                                             SCONTROL.380    
                                                                           SCONTROL.381    
      CALL INIT_LS(NFTOUT,FIXHD_OUT,LEN_FIXHD_OUT,                         SCONTROL.382    
     &  INTHD_OUT,LEN_INTHD_OUT,                                           SCONTROL.383    
     &  REALHD_OUT,LEN_REALHD_OUT,                                         SCONTROL.384    
     &  LEVDEPC_OUT,LEN1_LEVDEPC_OUT,LEN2_LEVDEPC_OUT,                     SCONTROL.385    
     &  ROWDEPC_OUT,LEN1_ROWDEPC_OUT,LEN2_ROWDEPC_OUT,                     SCONTROL.386    
     &  COLDEPC_OUT,LEN1_COLDEPC_OUT,LEN2_COLDEPC_OUT,                     SCONTROL.387    
     &  FLDDEPC_OUT,LEN1_FLDDEPC_OUT,LEN2_FLDDEPC_OUT,                     SCONTROL.388    
     &  EXTCNST_OUT,LEN_EXTCNST_OUT,                                       SCONTROL.389    
     &  DUMPHIST_OUT,LEN_DUMPHIST_OUT,                                     SCONTROL.390    
     &  CFI1_OUT,LEN_CFI1_OUT,                                             SCONTROL.391    
     &  CFI2_OUT,LEN_CFI2_OUT,                                             SCONTROL.392    
     &  CFI3_OUT,LEN_CFI3_OUT,                                             SCONTROL.393    
     &  LOOKUP_OUT,LEN1_LOOKUP_OUT,LEN2_LOOKUP_OUT,                        SCONTROL.394    
     &  P_LEVELS_OUT,Q_LEVELS_OUT,BL_LEVELS_OUT,                           SCONTROL.395    
     &  P_FIELD_OUT,P_ROWS_OUT,ROW_LENGTH_OUT,                             SCONTROL.396    
     &  N_TYPES_OUT,PP_ITEMC_OUT,PP_POS_OUT,                               SCONTROL.397    
     &  PP_LEN_OUT,PP_NUM_OUT,PP_TYPE_OUT,                                 SCONTROL.398    
     &  AKH_OUT,BKH_OUT,                                                   SCONTROL.399    
     &  LEN_DATA_OUT,                                                      SCONTROL.400    
*CALL ARGPPX                                                               SCONTROL.401    
     & ICODE,CMESSAGE)                                                     SCONTROL.402    
                                                                           SCONTROL.403    
      CALL TIMER('INIT_LS ',4)                                             SCONTROL.404    
                                                                           SCONTROL.405    
       IF (ICODE.NE.0) CALL ABORT_IO('INIT_CVARS',CMESSAGE,ICODE,NFTOUT)   SCONTROL.406    
                                                                           SCONTROL.407    
      ELSE IF (RadialGridIn.AND..NOT.RadialGridOut)THEN                    SCONTROL.408    
                                                                           SCONTROL.409    
      ! Read in the fixed header information for the initial UM            SCONTROL.410    
      ! dump and corresponding LS dump.                                    SCONTROL.411    
                                                                           SCONTROL.412    
      CALL TIMER('PFinc2UM',3)                                             SCONTROL.413    
                                                                           SCONTROL.414    
      CALL PFinc_2UM(NFTOUT,FIXHD_OUT,LEN_FIXHD_OUT,                       SCONTROL.415    
     &  INTHD_OUT,LEN_INTHD_OUT,                                           SCONTROL.416    
     &  REALHD_OUT,LEN_REALHD_OUT,                                         SCONTROL.417    
     &  LEVDEPC_OUT,LEN1_LEVDEPC_OUT,LEN2_LEVDEPC_OUT,                     SCONTROL.418    
     &  ROWDEPC_OUT,LEN1_ROWDEPC_OUT,LEN2_ROWDEPC_OUT,                     SCONTROL.419    
     &  COLDEPC_OUT,LEN1_COLDEPC_OUT,LEN2_COLDEPC_OUT,                     SCONTROL.420    
     &  FLDDEPC_OUT,LEN1_FLDDEPC_OUT,LEN2_FLDDEPC_OUT,                     SCONTROL.421    
     &  EXTCNST_OUT,LEN_EXTCNST_OUT,                                       SCONTROL.422    
     &  DUMPHIST_OUT,LEN_DUMPHIST_OUT,                                     SCONTROL.423    
     &  CFI1_OUT,LEN_CFI1_OUT,                                             SCONTROL.424    
     &  CFI2_OUT,LEN_CFI2_OUT,                                             SCONTROL.425    
     &  CFI3_OUT,LEN_CFI3_OUT,                                             SCONTROL.426    
     &  LOOKUP_OUT,LEN1_LOOKUP_OUT,LEN2_LOOKUP_OUT,                        SCONTROL.427    
     &  P_LEVELS_OUT,P_FIELD_OUT,P_ROWS_OUT,                               SCONTROL.428    
     &  ROW_LENGTH_OUT,LEN_DATA_OUT,                                       SCONTROL.429    
     &  PP_ITEMC_OUT,PP_POS_OUT,N_TYPES_OUT,                               SCONTROL.430    
     &  PP_LEN_OUT,PP_NUM_OUT,PP_TYPE_OUT,                                 SCONTROL.431    
     &  BL_LEVELS_OUT,Q_LEVELS_OUT,                                        SCONTROL.432    
     &  LEN1_LOOKUP_UM,LEN2_LOOKUP_UM,FIXHD_UM,                            SCONTROL.433    
     &  LEN1_LOOKUP_LS,LEN2_LOOKUP_LS,FIXHD_LS,                            SCONTROL.434    
     &  AKH_OUT,BKH_OUT,LAND_POINTS_OUT,                                   SCONTROL.435    
     &  SCALE,                                                             SCONTROL.436    
*CALL ARGPPX                                                               SCONTROL.437    
     &  ICODE,CMESSAGE,NFTIN2,NFTIN3)                                      SCONTROL.438    
                                                                           SCONTROL.439    
      CALL TIMER('PFinc2UM',4)                                             SCONTROL.440    
                                                                           SCONTROL.441    
      ENDIF ! Test for new dynamics grid from standard UM dump             SCONTROL.442    
                                                                           SCONTROL.443    
      CALL TIMER('SUPERCONTROL ',2)                                        SCONTROL.444    
                                                                           SCONTROL.445    
      RETURN                                                               SCONTROL.446    
      END                                                                  SCONTROL.447    
*ENDIF                                                                     SCONTROL.448    
                                                                           SCONTROL.449