*IF DEF,C80_1A,OR,DEF,UTILIO,OR,DEF,RECON UIE3F404.4
C ******************************COPYRIGHT****************************** GTS2F400.883
C (c) CROWN COPYRIGHT 1995, METEOROLOGICAL OFFICE, All Rights Reserved. GTS2F400.884
C GTS2F400.885
C Use, duplication or disclosure of this code is subject to the GTS2F400.886
C restrictions as set forth in the contract. GTS2F400.887
C GTS2F400.888
C Meteorological Office GTS2F400.889
C London Road GTS2F400.890
C BRACKNELL GTS2F400.891
C Berkshire UK GTS2F400.892
C RG12 2SZ GTS2F400.893
C GTS2F400.894
C If no contract has been raised with this copy of the code, the use, GTS2F400.895
C duplication or disclosure of it is strictly prohibited. Permission GTS2F400.896
C to do so must first be obtained in writing from the Head of Numerical GTS2F400.897
C Modelling at the above address. GTS2F400.898
C ******************************COPYRIGHT****************************** GTS2F400.899
C GTS2F400.900
CLL SUBROUTINE CHK_LOOK--------------------------------------- CHKLOO1A.3
CLL CHKLOO1A.4
CLL Written by A. Dickinson CHKLOO1A.5
CLL CHKLOO1A.6
CLL Purpose: Cross checks pointers in PP LOOKUP records with CHKLOO1A.7
CLL model parameters CHKLOO1A.8
CLL CHKLOO1A.9
CLL Model Modification history from model version 3.0: CHKLOO1A.10
CLL version Date CHKLOO1A.11
CLL 3.2 13/07/93 Changed CHARACTER*(*) to CHARACTER*(80) for TS150793.32
CLL portability. Author: Tracey Smith. TS150793.33
CLL 3.3 22/07/93 Applies a different consistency check for GO151293.1
CLL boundary files because the value stored in GO151293.2
CLL FIXHD(161) is half the correct value. This is a GO151293.3
CLL temporary fix. A permanent fix will follow in GO151293.4
CLL version 3.3. GO151293.5
CLL Author: D.M.Goddard GO151293.6
CLL 3.4 24/12/93 Removes fix included at version 3.3 as GENINTF1 GDG2F304.6
CLL now sets FIXHD(161) correctly for boundary files GDG2F304.7
CLL Author D.M.Goddard GDG2F304.8
!LL 4.1 20/05/96 Remove check on length of data for MPP code GPB0F401.150
!LL P.Burton GPB0F401.151
! 4.1 18/06/96 Changes to cope with changes in STASH addressing GDG0F401.126
! Author D.M. Goddard. GDG0F401.127
! 4.2 10/05/96 Bypass checks in cumf, pumf and ieee UDG2F403.1
! Author Bob Carruthers UDG2F403.2
! 4.3 12/03/97 Bypass checks in convpp UDG2F403.3
! Author D.M.Goddard UDG2F403.4
! 4.3 20/03/97 Bypass checks in camdump UDG2F403.5
! Author A Brady UDG2F403.6
! 4.4 15/09/97 Add helpful message. RTHBarnes ARB1F404.138
! 4.4 14/10/97 Skip check for Pre 3.4 Boundary Datasets. D. Robinson UDR1F404.1
CLL CHKLOO1A.12
CLL Programming standard: Unified Model Documentation Paper No 3 CHKLOO1A.13
CLL Version No 1 15/1/90 CHKLOO1A.14
CLL CHKLOO1A.15
CLL System component: C25 CHKLOO1A.16
CLL CHKLOO1A.17
CLL System task: F3 CHKLOO1A.18
CLL CHKLOO1A.19
CLL Documentation: Unified Model Documentation Paper No F3 CHKLOO1A.20
CLL Version No 5 9/2/90 CHKLOO1A.21
CLL CHKLOO1A.22
CLL------------------------------------------------------------ CHKLOO1A.23
C*L Arguments:------------------------------------------------- CHKLOO1A.24
SUBROUTINE CHK_LOOK(FIXHD,LOOKUP,LEN1_LOOKUP, ! Intent (In) 4,1GDG0F401.128
& LEN_DATA, ! GDG0F401.129
*CALL ARGPPX
GDG0F401.130
& ICODE,CMESSAGE) ! Intent (Out) GDG0F401.131
CHKLOO1A.27
IMPLICIT NONE CHKLOO1A.28
CHKLOO1A.29
INTEGER CHKLOO1A.30
* LEN_DATA !IN Length of model data CHKLOO1A.31
*,LEN1_LOOKUP !IN First dimension for LOOKUP CHKLOO1A.32
*,LOOKUP(LEN1_LOOKUP,*) !IN Integer equivalence of PP LOOKUP CHKLOO1A.33
*,FIXHD(*) !IN Fixed length header CHKLOO1A.34
*,ICODE !OUT Return code; successful=0 CHKLOO1A.35
* ! error > 0 CHKLOO1A.36
CHKLOO1A.37
CHARACTER*80 TS150793.34
* CMESSAGE !OUT Error message if ICODE > 0 CHKLOO1A.39
CHKLOO1A.40
! Comdecks:---------------------------------------------------------- GDG0F401.132
*CALL CSUBMODL
GDG0F401.133
*CALL CPPXREF
GDG0F401.134
*CALL PPXLOOK
GDG0F401.135
*CALL CLOOKADD
CHKLOO1A.41
CHKLOO1A.42
C ------------------------------------------------------------- CHKLOO1A.43
C Workspace usage:--------------------------------------------- CHKLOO1A.44
C None CHKLOO1A.45
C ------------------------------------------------------------- CHKLOO1A.46
C*L External subroutines called:------------------------------- CHKLOO1A.47
EXTERNAL PR_LOOK CHKLOO1A.48
C-------------------------------------------------------------- CHKLOO1A.49
C Local variables:--------------------------------------------- CHKLOO1A.50
INTEGER CHKLOO1A.51
* K ! Loop count CHKLOO1A.52
*,LEN_D ! Cumulative length of data CHKLOO1A.53
*,N1 CHKLOO1A.54
C-------------------------------------------------------------- CHKLOO1A.55
CHKLOO1A.56
CL Internal structure: None CHKLOO1A.57
CHKLOO1A.58
ICODE=0 CHKLOO1A.59
CMESSAGE=' ' CHKLOO1A.60
CHKLOO1A.61
! CHK_LOOK falls over with Boundary Datasets if pre-3.4 UDR1F404.2
IF (FIXHD(5).EQ.5 .and. FIXHD(12).LT.304) THEN UDR1F404.3
write (6,*) ' CHK_LOOK skipped for Boundary Dataset (Pre 3.4)' UDR1F404.4
ELSE UDR1F404.5
UDR1F404.6
LEN_D=0 CHKLOO1A.62
CHKLOO1A.63
DO 100 K=1,FIXHD(152) CHKLOO1A.64
CHKLOO1A.65
*IF DEF,CONVIEEE,OR,DEF,CUMF,OR,DEF,PUMF,OR,DEF,CONVPP,OR,DEF,CAMDUMP UDG2F403.7
if(lookup(1,k).eq.-99) goto 9986 UBC1F402.142
*ENDIF UBC1F402.143
C Check that data_type is valid no: 1 to 3 or -1 to -3 CHKLOO1A.66
IF((LOOKUP(DATA_TYPE,K).GE.1.AND.LOOKUP(DATA_TYPE,K).LE.3) .OR. CHKLOO1A.67
+ (LOOKUP(DATA_TYPE,K).LE.-1.AND.LOOKUP(DATA_TYPE,K).GE.-3)) CHKLOO1A.68
+ THEN CHKLOO1A.69
LEN_D=LEN_D+LOOKUP(LBLREC,K) CHKLOO1A.70
ELSE CHKLOO1A.71
WRITE(6,'('' *ERROR* Wrong value of'',I9,'' in LOOKUP(DATA_'', CHKLOO1A.72
*''TYPE'',I4,'')'')')LOOKUP(DATA_TYPE,K),K CHKLOO1A.73
CALL PR_LOOK
( GDG0F401.136
*CALL ARGPPX
GDG0F401.137
& LOOKUP,LOOKUP,LEN1_LOOKUP,K) GDG0F401.138
ICODE=1 CHKLOO1A.75
CMESSAGE='CHK_LOOK: Consistency check' CHKLOO1A.76
RETURN CHKLOO1A.77
ENDIF CHKLOO1A.78
CHKLOO1A.79
100 CONTINUE CHKLOO1A.80
CHKLOO1A.81
*IF -DEF,MPP GPB0F401.152
IF(LEN_DATA.NE.LEN_D.OR.FIXHD(161).NE.LEN_DATA.OR. GDG2F304.9
&FIXHD(161).NE.LEN_D)THEN GDG2F304.10
GO151293.12
WRITE(6,'('' *ERROR* Length of model data specified wrongly CHKLOO1A.84
* : PARAMETER='',I9,''FILE='',I9,''FIXHD(161)'',I9)') CHKLOO1A.85
* LEN_DATA,LEN_D,FIXHD(161) CHKLOO1A.86
WRITE(6,*)' Your initial dump may need reconfiguring.' ARB1F404.139
ICODE=2 CHKLOO1A.87
CMESSAGE='CHK_LOOK: Consistency check - try reconfiguring your in ARB1F404.140
&itial dump' ARB1F404.141
RETURN CHKLOO1A.89
ENDIF CHKLOO1A.90
*ENDIF GPB0F401.153
CHKLOO1A.91
*IF DEF,CONVIEEE,OR,DEF,CUMF,OR,DEF,PUMF,OR,DEF,CONVPP,OR,DEF,CAMDUMP UDG2F403.8
9986 continue UBC1F402.145
*ENDIF UBC1F402.146
UDR1F404.7
ENDIF ! Check on pre-3.4 Boundary Datasets UDR1F404.8
RETURN CHKLOO1A.92
END CHKLOO1A.93
CHKLOO1A.94
*ENDIF CHKLOO1A.95