*IF DEF,C80_1A,OR,DEF,RECON                                                UIE3F404.44     
C ******************************COPYRIGHT******************************    GTS2F400.7579   
C (c) CROWN COPYRIGHT 1995, METEOROLOGICAL OFFICE, All Rights Reserved.    GTS2F400.7580   
C                                                                          GTS2F400.7581   
C Use, duplication or disclosure of this code is subject to the            GTS2F400.7582   
C restrictions as set forth in the contract.                               GTS2F400.7583   
C                                                                          GTS2F400.7584   
C                Meteorological Office                                     GTS2F400.7585   
C                London Road                                               GTS2F400.7586   
C                BRACKNELL                                                 GTS2F400.7587   
C                Berkshire UK                                              GTS2F400.7588   
C                RG12 2SZ                                                  GTS2F400.7589   
C                                                                          GTS2F400.7590   
C If no contract has been raised with this copy of the code, the use,      GTS2F400.7591   
C duplication or disclosure of it is strictly prohibited.  Permission      GTS2F400.7592   
C to do so must first be obtained in writing from the Head of Numerical    GTS2F400.7593   
C Modelling at the above address.                                          GTS2F400.7594   
C ******************************COPYRIGHT******************************    GTS2F400.7595   
C                                                                          GTS2F400.7596   
CLL  SUBROUTINE PR_INHDA---------------------------------------            PRIHDA1A.3      
CLL                                                                        PRIHDA1A.4      
CLL  Purpose: Prints out integer constants record and checks               PRIHDA1A.5      
CLL           validity of information.                                     PRIHDA1A.6      
CLL                                                                        PRIHDA1A.7      
CLL  Written by A. Dickinson                                               PRIHDA1A.8      
CLL                                                                        PRIHDA1A.9      
CLL  Model            Modification history from model version 3.0:         PRIHDA1A.10     
CLL version  date                                                          PRIHDA1A.11     
CLL   3.2    13/07/93 Changed CHARACTER*(*) to CHARACTER*(80) for          TS150793.126    
CLL                   portability.  Author Tracey Smith.                   TS150793.127    
CLL   4.5    19/01/98 Remove SOIL_VARS and VEG_VARS. D. Robinson           GDR6F405.37     
CLL                                                                        PRIHDA1A.12     
CLL  Programming standard:  Unified Model Documentation Paper No 3         PRIHDA1A.13     
CLL                         Version No 1 15/1/90                           PRIHDA1A.14     
CLL                                                                        PRIHDA1A.15     
CLL  System component: C25                                                 PRIHDA1A.16     
CLL                                                                        PRIHDA1A.17     
CLL  System task: F3                                                       PRIHDA1A.18     
CLL                                                                        PRIHDA1A.19     
CLL  Documentation: Unified Model Documentation Paper No F3                PRIHDA1A.20     
CLL                 Version No 5 9/2/90                                    PRIHDA1A.21     
CLL------------------------------------------------------------            PRIHDA1A.22     
C*L Arguments:-------------------------------------------------            PRIHDA1A.23     

      SUBROUTINE PR_INHDA                                                   2PRIHDA1A.24     
     *(INTHD,LEN_INTHD,ROW_LENGTH,P_ROWS                                   PRIHDA1A.25     
     &,P_LEVELS,Q_LEVELS,TR_LEVELS                                         AJS1F401.1578   
     &,ST_LEVELS,SM_LEVELS,BL_LEVELS                                       AJS1F401.1579   
     & , TR_VARS                                                           GDR6F405.38     
     *,ICODE,CMESSAGE)                                                     PRIHDA1A.28     
                                                                           PRIHDA1A.29     
      IMPLICIT NONE                                                        PRIHDA1A.30     
                                                                           PRIHDA1A.31     
      INTEGER                                                              PRIHDA1A.32     
     * LEN_INTHD      !IN Length of integer header                         PRIHDA1A.33     
     *,ROW_LENGTH     !IN No of points along a model row                   PRIHDA1A.34     
     *,P_ROWS         !IN No of model rows                                 PRIHDA1A.35     
     *,P_LEVELS       !IN No of model levels                               PRIHDA1A.36     
     *,Q_LEVELS       !IN No of moist levels                               PRIHDA1A.37     
     *,TR_LEVELS      !IN No of tracer levels                              PRIHDA1A.38     
     &,ST_LEVELS      !IN No of soil temperature levels                    AJS1F401.1580   
     &,SM_LEVELS      !IN No of soil moisture levels                       AJS1F401.1581   
     *,BL_LEVELS      !IN No of b. layer levels                            PRIHDA1A.40     
     *,TR_VARS        !IN No of tracer variables                           PRIHDA1A.41     
                                                                           PRIHDA1A.44     
      INTEGER                                                              PRIHDA1A.45     
     & INTHD(LEN_INTHD) !IN Integer header                                 PRIHDA1A.46     
     *,ICODE          !OUT Return code; successful=0                       PRIHDA1A.47     
     *                !                 error > 0                          PRIHDA1A.48     
                                                                           PRIHDA1A.49     
      CHARACTER*(80)                                                       TS150793.128    
     * CMESSAGE       !OUT Error message if ICODE > 0                      PRIHDA1A.51     
                                                                           PRIHDA1A.52     
C -------------------------------------------------------------            PRIHDA1A.53     
C Workspace usage:---------------------------------------------            PRIHDA1A.54     
C None                                                                     PRIHDA1A.55     
C -------------------------------------------------------------            PRIHDA1A.56     
C*L External subroutines called:-------------------------------            PRIHDA1A.57     
C None                                                                     PRIHDA1A.58     
C*-------------------------------------------------------------            PRIHDA1A.59     
                                                                           PRIHDA1A.60     
CL Internal structure: None                                                PRIHDA1A.61     
      ICODE=0                                                              PRIHDA1A.62     
      CMESSAGE=' '                                                         PRIHDA1A.63     
                                                                           PRIHDA1A.64     
      WRITE(6,'('' '')')                                                   PRIHDA1A.65     
      WRITE(6,'('' INTEGER CONSTANTS'')')                                  PRIHDA1A.66     
      WRITE(6,'('' -----------------'')')                                  PRIHDA1A.67     
      WRITE(6,'('' Number of timesteps since start of run -'',I7)')        PRIHDA1A.68     
     *INTHD(1)                                                             PRIHDA1A.69     
      WRITE(6,'('' Meaning interval for mean fields (hrs) -'',I7)')        PRIHDA1A.70     
     *INTHD(2)                                                             PRIHDA1A.71     
      WRITE(6,'('' Number of dumps used to generate mean  -'',I7)')        PRIHDA1A.72     
     *INTHD(3)                                                             PRIHDA1A.73     
      WRITE(6,'('' No of hrs between neighbouring contiguous sections of   PRIHDA1A.74     
     * means -'',I7)')INTHD(4)                                             PRIHDA1A.75     
      WRITE(6,'('' No of hrs between end of one contiguous section and s   PRIHDA1A.76     
     *tart of next -'',I7)')INTHD(5)                                       PRIHDA1A.77     
                                                                           PRIHDA1A.78     
      IF(ROW_LENGTH.NE.INTHD(6).OR.P_ROWS.NE.INTHD(7))THEN                 PRIHDA1A.79     
      WRITE(6,'('' **FATAL ERROR** specifying model dimensions'')')        PRIHDA1A.80     
      WRITE(6,'('' Program dimensions ='',I7,'' x'',I7)')                  PRIHDA1A.81     
     *ROW_LENGTH,P_ROWS                                                    PRIHDA1A.82     
      WRITE(6,'('' File dimensions ='',I7,'' x'',I7)')                     PRIHDA1A.83     
     *INTHD(6),INTHD(7)                                                    PRIHDA1A.84     
      WRITE(6,'('' ***************'')')                                    PRIHDA1A.85     
        ICODE=4                                                            PRIHDA1A.86     
        CMESSAGE='PR_INHDA: Consistency check'                             PRIHDA1A.87     
        RETURN                                                             PRIHDA1A.88     
      ELSE                                                                 PRIHDA1A.89     
      WRITE(6,'('' Number of E-W x N-S points -'',I7,'' x'',I7)')          PRIHDA1A.90     
     *INTHD(6),INTHD(7)                                                    PRIHDA1A.91     
      ENDIF                                                                PRIHDA1A.92     
                                                                           PRIHDA1A.93     
      IF(P_LEVELS.NE.INTHD(8).OR.Q_LEVELS.NE.INTHD(9))THEN                 PRIHDA1A.94     
      WRITE(6,'('' **FATAL ERROR** specifying no of model levels'')')      PRIHDA1A.95     
      WRITE(6,'('' Programmed levels (wet) ='',I2,''('',I2,'')'')')        PRIHDA1A.96     
     *P_LEVELS,Q_LEVELS                                                    PRIHDA1A.97     
      WRITE(6,'('' File levels (wet) ='',I2,''('',I2,'')'')')              PRIHDA1A.98     
     *INTHD(8),INTHD(9)                                                    PRIHDA1A.99     
      WRITE(6,'('' ***************'')')                                    PRIHDA1A.100    
        ICODE=4                                                            PRIHDA1A.101    
        CMESSAGE='PR_INHDA: Consistency check'                             PRIHDA1A.102    
        RETURN                                                             PRIHDA1A.103    
      ELSE                                                                 PRIHDA1A.104    
      WRITE(6,'('' Number of levels -'',I7)')                              PRIHDA1A.105    
     *INTHD(8)                                                             PRIHDA1A.106    
      WRITE(6,'('' Number of wet levels -'',I7)')                          PRIHDA1A.107    
     *INTHD(9)                                                             PRIHDA1A.108    
      ENDIF                                                                PRIHDA1A.109    
      IF((TR_LEVELS.NE.INTHD(12).AND.INTHD(14).NE.0)                       AJS1F401.1582   
     &    .OR.ST_LEVELS.NE.INTHD(10).OR.SM_LEVELS.NE.INTHD(28)             AJS1F401.1583   
     &    .OR.BL_LEVELS.NE.INTHD(13))THEN                                  AJS1F401.1584   
      WRITE(6,'('' **FATAL ERROR** specifying model level info'')')        AJS1F401.1585   
      WRITE(6,'('' Programmed tracer, soil temperature,'',                 AJS1F401.1586   
     &            '' soil moisture,  b.l. levels ='',4I3)')                AJS1F401.1587   
     &          TR_LEVELS,ST_LEVELS,SM_LEVELS,BL_LEVELS                    AJS1F401.1588   
      WRITE(6,'('' File tracer, soil temperature, soil moisture,'',        AJS1F401.1589   
     &          ''  b.l. levels ='',4I3)')                                 AJS1F401.1590   
     &          INTHD(12),INTHD(10),INTHD(28),INTHD(13)                    AJS1F401.1591   
      WRITE(6,'('' ***************'')')                                    PRIHDA1A.121    
        ICODE=4                                                            PRIHDA1A.122    
        CMESSAGE='PR_INHDA: Consistency check'                             PRIHDA1A.123    
        RETURN                                                             PRIHDA1A.124    
      ELSE                                                                 PRIHDA1A.125    
      WRITE(6,'('' Number of soil temperature levels -'',I7)')             AJS1F401.1592   
     &INTHD(10)                                                            AJS1F401.1593   
      WRITE(6,'('' Number of soil moisture levels -'',I7)')                AJS1F401.1594   
     &INTHD(28)                                                            AJS1F401.1595   
      WRITE(6,'('' Number of tracer levels -'',I7)')                       PRIHDA1A.128    
     *INTHD(12)                                                            PRIHDA1A.129    
      WRITE(6,'('' Number of boundary layer levels -'',I7)')               PRIHDA1A.130    
     *INTHD(13)                                                            PRIHDA1A.131    
      ENDIF                                                                PRIHDA1A.132    
                                                                           PRIHDA1A.133    
      IF (TR_VARS.NE.INTHD(14)) THEN                                       GDR6F405.39     
      WRITE(6,'('' **FATAL ERROR** specifying number of variables'')')     PRIHDA1A.136    
      WRITE (6,'('' Programmed TR_VARS = '',I3)') TR_VARS                  GDR6F405.40     
      WRITE (6,'('' File       TR_VARS = '',I3)') INTHD(14)                GDR6F405.41     
      WRITE(6,'('' ***************'')')                                    PRIHDA1A.141    
        ICODE=4                                                            PRIHDA1A.142    
        CMESSAGE='PR_INHDA: Consistency check'                             PRIHDA1A.143    
        RETURN                                                             PRIHDA1A.144    
      ELSE                                                                 PRIHDA1A.145    
      WRITE(6,'('' Number of passive tracers advected -'',I7)')            PRIHDA1A.146    
     *INTHD(14)                                                            PRIHDA1A.147    
      ENDIF                                                                PRIHDA1A.152    
                                                                           PRIHDA1A.153    
      RETURN                                                               PRIHDA1A.154    
      END                                                                  PRIHDA1A.155    
*ENDIF                                                                     PRIHDA1A.156