*IF DEF,CONTROL                                                            INITMOS1.2      
*IF DEF,ATMOS                                                              GSH1F403.21     
C ******************************COPYRIGHT******************************    GTS2F400.4807   
C (c) CROWN COPYRIGHT 1995, METEOROLOGICAL OFFICE, All Rights Reserved.    GTS2F400.4808   
C                                                                          GTS2F400.4809   
C Use, duplication or disclosure of this code is subject to the            GTS2F400.4810   
C restrictions as set forth in the contract.                               GTS2F400.4811   
C                                                                          GTS2F400.4812   
C                Meteorological Office                                     GTS2F400.4813   
C                London Road                                               GTS2F400.4814   
C                BRACKNELL                                                 GTS2F400.4815   
C                Berkshire UK                                              GTS2F400.4816   
C                RG12 2SZ                                                  GTS2F400.4817   
C                                                                          GTS2F400.4818   
C If no contract has been raised with this copy of the code, the use,      GTS2F400.4819   
C duplication or disclosure of it is strictly prohibited.  Permission      GTS2F400.4820   
C to do so must first be obtained in writing from the Head of Numerical    GTS2F400.4821   
C Modelling at the above address.                                          GTS2F400.4822   
C ******************************COPYRIGHT******************************    GTS2F400.4823   
C                                                                          GTS2F400.4824   
CLL  Subroutine INITMOS ------------------------------------------------   INITMOS1.4      
CLL                                                                        INITMOS1.5      
CLL Purpose: Control routine for initialisation of MOS grid information.   INITMOS1.6      
CLL          Called from model initialisation routine INITIAL.             INITMOS1.7      
CLL                                                                        INITMOS1.8      
CLL Version 1 Author:   T.Johns                                            INITMOS1.9      
CLL                                                                        INITMOS1.10     
CLL  Model            Modification history from model version 3.0:         INITMOS1.11     
CLL version  date                                                          INITMOS1.12     
CLL   3.2    13/07/93 Changed CHARACTER*(*) to CHARACTER*(80) for          TS150793.90     
CLL                   portability.  Author Tracey Smith.                   TS150793.91     
CLL  3.2  13/04/93  Dynamic allocation of main arrays. R T H Barnes.       @DYALLOC.2041   
!    4.2  10/01/97  For MPP runs, skip call to MOSGRID and initialise      GDR1F402.1      
!                   MOS_OUTPUT_LENGTH. Problem to be addressed at 4.3.     GDR1F402.2      
!                   D.Robinson                                             GDR1F402.3      
!LL  4.3  25/02/97  Modset GDR1F402 removed, MPP MOS code now operative    GPB0F403.17     
!LL                 Supply global sizes to MOS_GRID          P.Burton      GPB0F403.18     
CLL                                                                        INITMOS1.13     
CLL Programming standard : UM Doc Paper no 3                               INITMOS1.14     
CLL                                                                        INITMOS1.15     
CLL Logical components covered : C4                                        INITMOS1.16     
CLL                                                                        INITMOS1.17     
CLL Project task : C4                                                      INITMOS1.18     
CLL                                                                        INITMOS1.19     
CLL External documentation : UMDP no C4                                    INITMOS1.20     
CLL                                                                        INITMOS1.21     
CL* Interface and arguments --------------------------------------------   INITMOS1.22     
C                                                                          INITMOS1.23     

      SUBROUTINE INITMOS(                                                   1,1@DYALLOC.2042   
*CALL ARGSIZE                                                              @DYALLOC.2043   
*CALL ARGDUMA                                                              @DYALLOC.2044   
*CALL ARGSTS                                                               @DYALLOC.2045   
*CALL ARGCONA                                                              @DYALLOC.2046   
     &                   ICODE,CMESSAGE)                                   @DYALLOC.2047   
C                                                                          INITMOS1.25     
      IMPLICIT NONE                                                        INITMOS1.26     
C                                                                          INITMOS1.27     
*CALL CMAXSIZE                                                             @DYALLOC.2048   
*CALL CSUBMODL                                                             GSS1F305.930    
*CALL TYPSIZE                                                              @DYALLOC.2049   
*CALL TYPDUMA                                                              @DYALLOC.2050   
*CALL TYPSTS                                                               @DYALLOC.2051   
*CALL TYPCONA                                                              @DYALLOC.2052   
                                                                           @DYALLOC.2053   
      INTEGER                                                              INITMOS1.28     
     &    ICODE          !OUT     RETURN CODE                              INITMOS1.29     
      CHARACTER*80                                                         TS150793.92     
     &    CMESSAGE       !OUT     ANY ERROR MESSAGE PASSED BACK            INITMOS1.31     
C*---------------------------------------------------------------------    INITMOS1.32     
C Common blocks and PARAMETERs                                             INITMOS1.33     
C                                                                          INITMOS1.34     
*IF DEF,MPP                                                                GPB0F403.19     
*CALL PARVARS                                                              GPB0F403.20     
*ENDIF                                                                     GPB0F403.21     
C                                                                          INITMOS1.38     
C Subroutines called                                                       INITMOS1.39     
C                                                                          INITMOS1.40     
      EXTERNAL MOSGRID                                                     INITMOS1.41     
C                                                                          INITMOS1.42     
C Local variables.                                                         INITMOS1.43     
C                                                                          INITMOS1.44     
      LOGICAL GLOBAL   ! TRUE if global model                              INITMOS1.45     
CL                                                                         INITMOS1.46     
CL  Set up indicator for GLOBAL model from dump header information         INITMOS1.47     
CL  NB: ELF is already set in INITDUMP.                                    INITMOS1.48     
CL                                                                         INITMOS1.49     
      GLOBAL=(A_FIXHD(4).EQ.0)                                             INITMOS1.50     
CL                                                                         INITMOS1.51     
CL  Set up masking array for MOS OUTPUT Ie MOS_OUTPUT                      INITMOS1.52     
CL                                                                         INITMOS1.53     
      CALL MOSGRID(GLOBAL,ELF,A_REALHD(5),A_REALHD(6),-A_REALHD(2),        INITMOS1.54     
     *             A_REALHD(1),A_REALHD(3),A_REALHD(4),                    INITMOS1.55     
*IF -DEF,MPP                                                               GPB0F403.22     
     *             P_ROWS,ROW_LENGTH,                                      INITMOS1.56     
*ELSE                                                                      GPB0F403.23     
     &             glsize(2),glsize(1),                                    GPB0F403.24     
*ENDIF                                                                     GPB0F403.25     
     *             MOS_MASK,MOS_OUTPUT_LENGTH,ICODE,CMESSAGE)              INITMOS1.57     
                                                                           INITMOS1.58     
      WRITE(6,*)'INITMOS : MOS_OUTPUT_LENGTH = ',MOS_OUTPUT_LENGTH         GIE0F403.328    
                                                                           INITMOS1.60     
      RETURN                                                               INITMOS1.61     
      END                                                                  INITMOS1.62     
*ENDIF                                                                     INITMOS1.63     
*ENDIF                                                                     INITMOS1.64