*IF DEF,CONTROL                                                            INACCTL1.2      
*IF DEF,ATMOS,OR,DEF,OCNASSM                                               ORH6F401.3      
C ******************************COPYRIGHT******************************    GTS2F400.4465   
C (c) CROWN COPYRIGHT 1995, METEOROLOGICAL OFFICE, All Rights Reserved.    GTS2F400.4466   
C                                                                          GTS2F400.4467   
C Use, duplication or disclosure of this code is subject to the            GTS2F400.4468   
C restrictions as set forth in the contract.                               GTS2F400.4469   
C                                                                          GTS2F400.4470   
C                Meteorological Office                                     GTS2F400.4471   
C                London Road                                               GTS2F400.4472   
C                BRACKNELL                                                 GTS2F400.4473   
C                Berkshire UK                                              GTS2F400.4474   
C                RG12 2SZ                                                  GTS2F400.4475   
C                                                                          GTS2F400.4476   
C If no contract has been raised with this copy of the code, the use,      GTS2F400.4477   
C duplication or disclosure of it is strictly prohibited.  Permission      GTS2F400.4478   
C to do so must first be obtained in writing from the Head of Numerical    GTS2F400.4479   
C Modelling at the above address.                                          GTS2F400.4480   
C ******************************COPYRIGHT******************************    GTS2F400.4481   
C                                                                          GTS2F400.4482   
CLL--------------- SUBROUTINE IN_ACCTL --------------------------------    INACCTL1.3      
CLL                                                                        INACCTL1.4      
CLL Purpose : Calls the initialisation program for the data assimilation   INACCTL1.5      
CLL assimilation section (P3)                                              INACCTL1.6      
CLL                                                                        INACCTL1.7      
CLL  Control routine for CRAY YMP                                          INACCTL1.8      
CLL                                                                        INACCTL1.9      
CLL M.Bell      <- programmer of some or all of previous code or changes   INACCTL1.10     
CLL                                                                        INACCTL1.11     
CLL  Model            Modification history from model version 3.0:         INACCTL1.12     
CLL version  Date                                                          INACCTL1.13     
CLL  3.1    2/02/93 : added comdeck CHSUNITS to define NUNITS for i/o      RS030293.105    
CLL 3.2    27/03/93 Dynamic allocation of main data arrays. R. Rawlins     @DYALLOC.1207   
CLL  3.4   03/08/94 : Pass TR_LEVELS for setting defaults for tracers      ARSAF304.341    
CLL                                                         R Swinbank     ARSAF304.342    
CLL  3.4   20/06/94   Argument LCAL360 passed to OC_AC_INIT                GSS1F304.338    
CLL                                                    S.J.Swarbrick       GSS1F304.339    
CLL 3.4     1/8/94 Initialise VAR processing within UM        S. Bell      VSB1F304.111    
CLL 3.5    30/03/95  Sub-model changes : Remove run time constants         ADR1F305.93     
CLL                  from Atmos dump headers. D. Robinson.                 ADR1F305.94     
CLL  3.5  16.01.95  Use call to CNTLOCN in CCONTROL to ensure dimensions   ORH1F305.5623   
CLL                 are available for Ocean Model arrays. R.Hill.          ORH1F305.5624   
!    4.1  18/06/96  Changes to cope with changes in STASH addressing       GDG0F401.736    
!                   Author D.M. Goddard.                                   GDG0F401.737    
CLL   4.1   O_FIXHD(11) removed from call to OC_AC_INIT                    OFR1F401.64     
CLL   4.4  01/06/97  OC_AC_INIT argument list change:                      OFR6f404.1      
CLL                  OFIXHD(4) replaced by L_OGLOBAL and L_OCYCLIC         OFR6f404.2      
CLL   4.4   Pass ARGOINDX into OC_AC_INIT                                  OFR1F404.7      
CLL                                                                        INACCTL1.14     
CLL Programming standard; U M Documentation Paper No. 3 version 1          INACCTL1.15     
CLL dated 15/01/90                                                         INACCTL1.16     
CLL                                                                        INACCTL1.17     
CLL System components covered P0                                           INACCTL1.18     
CLL                                                                        INACCTL1.19     
CLL Documentation : UM documentation paper  no P0                          INACCTL1.20     
CLL                                                                        INACCTL1.21     
CLL END                                                                    INACCTL1.22     
C----------------------------------------------------------------------    INACCTL1.23     
                                                                           INACCTL1.24     

      SUBROUTINE IN_ACCTL(                                                  1,1@DYALLOC.1208   
*CALL ARGSIZE                                                              @DYALLOC.1209   
*CALL ARGDUMA                                                              @DYALLOC.1210   
*CALL ARGDUMO                                                              @DYALLOC.1211   
*CALL ARGPTRA                                                              @DYALLOC.1212   
*CALL ARGPTRO                                                              @DYALLOC.1213   
*CALL ARGOCALL                                                             @DYALLOC.1214   
*CALL ARGPPX                                                               GDG0F401.738    
     &                  ICODE,CMESSAGE)                                    @DYALLOC.1215   
                                                                           INACCTL1.26     
      IMPLICIT NONE                                                        INACCTL1.27     
                                                                           INACCTL1.28     
C                                                                          @DYALLOC.1216   
      INTEGER       ICODE             ! OUT: Error return code             @DYALLOC.1217   
      CHARACTER*256 CMESSAGE          ! OUT: Error return message          @DYALLOC.1218   
C                                                                          @DYALLOC.1219   
*IF DEF,OCEAN                                                              ORH6F401.4      
*CALL OARRYSIZ                                                             ORH6F401.5      
*ENDIF                                                                     ORH6F401.6      
*CALL TYPSIZE                                                              @DYALLOC.1220   
*CALL TYPDUMA                                                              @DYALLOC.1221   
*CALL TYPDUMO                                                              @DYALLOC.1222   
*CALL TYPPTRA                                                              @DYALLOC.1223   
*CALL TYPPTRO                                                              @DYALLOC.1224   
*CALL COCNINDX                                                             ORH7F402.308    
*CALL TYPOCALL                                                             @DYALLOC.1225   
                                                                           INACCTL1.32     
C*                                                                         INACCTL1.33     
C*L Subroutines called                                                     INACCTL1.34     
*IF DEF,ATMOS                                                              INACCTL1.35     
      EXTERNAL AC_INIT, Var_UMSetup                                        VSB1F304.112    
*ENDIF ATMOS                                                               INACCTL1.37     
                                                                           VSB1F304.113    
*IF DEF,OCNASSM                                                            INACCTL1.38     
      EXTERNAL OC_AC_INIT                                                  INACCTL1.39     
*ENDIF OCNASSM                                                             INACCTL1.40     
C*                                                                         INACCTL1.41     
                                                                           INACCTL1.42     
*CALL CMAXSIZE                                                             ADR1F305.95     
*CALL CSUBMODL                                                             ADR1F305.96     
*CALL CPPXREF                                                              GDG0F401.739    
*CALL PPXLOOK                                                              GDG0F401.740    
*CALL CTIME                                                                INACCTL1.44     
*CALL CHSUNITS                                                             RS030293.106    
*CALL CCONTROL                                                             ORH1F305.5625   
                                                                           INACCTL1.45     
*IF DEF,ATMOS                                                              INACCTL1.46     
*CALL CSIZEOBS                                                             INACCTL1.48     
*CALL CHISTORY                                                             GDR3F305.100    
*ENDIF ATMOS                                                               INACCTL1.50     
                                                                           INACCTL1.51     
                                                                           ORH1F305.5629   
*IF DEF,OCNASSM                                                            INACCTL1.52     
*CALL POCACNST                                                             @DYALLOC.1226   
*CALL COCGM                                                                @DYALLOC.1227   
*ENDIF OCNASSM                                                             INACCTL1.54     
                                                                           INACCTL1.55     
*IF DEF,ATMOS                                                              INACCTL1.56     
                                                                           VSB1F304.115    
      IF(L_AC) THEN                                                        VSB1F304.116    
                                                                           VSB1F304.117    
      CALL AC_INIT (P_LEVELS, Q_LEVELS, BL_LEVELS, TR_LEVELS,              GDG0F401.742    
     &              P_ROWS, U_ROWS, ROW_LENGTH,                            GDG0F401.743    
     &              A_MAX_OBS_SIZE, A_MAX_NO_OBS,                          GDG0F401.744    
     &              SECS_PER_STEPim(atmos_im),                             GDG0F401.745    
     &              MODEL_BASIS_TIME(1), MODEL_BASIS_TIME(2),              GDG0F401.746    
     &              MODEL_BASIS_TIME(3), MODEL_BASIS_TIME(4),              GDG0F401.747    
     &              MODEL_BASIS_TIME(5),                                   GDG0F401.748    
     &              A_REALHD(1), A_REALHD(2), A_REALHD(3),                 GDG0F401.749    
     &              A_REALHD(4), A_REALHD(5), A_REALHD(6),                 GDG0F401.750    
     &              A_LEVDEPC(JAK), A_LEVDEPC(JBK),                        GDG0F401.751    
*CALL ARGPPX                                                               GDG0F401.752    
     &              ICODE,CMESSAGE)                                        GDG0F401.753    
                                                                           VSB1F304.118    
      END IF                                                               VSB1F304.119    
                                                                           VSB1F304.120    
      IF(L_3DVAR.OR.L_4DVAR) THEN                                          VSB1F304.121    
                                                                           VSB1F304.122    
      CALL Var_UMSetup(                                                    VSB1F304.123    
     &        P_LEVELS, Q_LEVELS, P_ROWS, ROW_LENGTH,                      VSB1F304.124    
     &        MODEL_BASIS_TIME(1),                                         VSB1F304.125    
     &        A_REALHD(1),                                                 VSB1F304.126    
     &        A_LEVDEPC(JAK), A_LEVDEPC(JBK),                              VSB1F304.127    
*CALL ARGPPX                                                               GDG0F401.741    
     &        ICODE,CMESSAGE)                                              VSB1F304.128    
                                                                           VSB1F304.129    
      END IF                                                               VSB1F304.130    
                                                                           INACCTL1.67     
*ENDIF ATMOS                                                               INACCTL1.68     
C                                                                          INACCTL1.69     
*IF DEF,OCNASSM                                                            INACCTL1.70     
C                                                                          INACCTL1.71     
      CALL OC_AC_INIT (ICODE, CMESSAGE, LTIMER,                            INACCTL1.72     
*CALL AOCACSZE                                                             @DYALLOC.1228   
*CALL ARGOINDX                                                             OFR1F404.8      
*CALL AOCGM                                                                @DYALLOC.1229   
*CALL ARGPPX                                                               GDG0F401.754    
     & O_OBS, O_COV, LEN_FIXHD,                                            @DYALLOC.1230   
     & O_INTHD(6), O_INTHD(7), O_INTHD(8),                                 INACCTL1.74     
     & O_REALHD(1), O_REALHD(2),                                           INACCTL1.75     
     & O_REALHD(5), O_REALHD(6),                                           INACCTL1.76     
     & O_REALHD(3), O_REALHD(4),                                           INACCTL1.77     
     & O_LEVDEPC, O_ROWDEPC, O_COLDEPC, L_OGLOBAL, L_OCYCLIC, LCAL360      OFR6f404.3      
     & )                                                                   OFR6f404.4      
C                                                                          INACCTL1.79     
*ENDIF OCNASSM                                                             INACCTL1.80     
                                                                           INACCTL1.81     
      RETURN                                                               INACCTL1.82     
      END                                                                  INACCTL1.83     
                                                                           INACCTL1.84     
*ENDIF                                                                     ORH6F401.7      
*ENDIF CONTROL                                                             INACCTL1.85