1      SUBROUTINE CONERR
2C
3C***  EXECUTIVE FOR INPUT ERROR DIAGNOSTICS
4C
5      COMMON /CONSNT/ PI,DEG,UNUSED,RAD,KAND
6C
7      DIMENSION KOL(80), NUM(10)
8      DIMENSION NLNAME(138), LOC(24), LEN(24)
9      LOGICAL NMTEST
10C
11      DATA NNAME / 24 /, IBLANK / 4H     /
12      DATA NUM /4H0   ,4H1   ,4H2   ,4H3   ,4H4   ,4H5   ,4H6   ,
13     1          4H7   ,4H8   ,4H9   /
14      DATA LOC /1,4,10,16,20,26,32,38,44,50,56,62,68,74,79,85,91,97,
15     1          103,109,115,121,127,133/
16      DATA LEN /3,2*6,4,9*6,5,2*6,4,7*6/
17      DATA NLNAME /
18     1 4HE   ,4HN   ,4HD   ,4HF   ,4HL   ,4HT   ,4HC   ,4HO   ,
19     2 4HN   ,4HO   ,4HP   ,4HT   ,4HI   ,4HN   ,4HS   ,4HB   ,4HO   ,
20     3 4HD   ,4HY   ,4HW   ,4HG   ,4HP   ,4HL   ,4HN   ,4HF   ,4HW   ,
21     4 4HG   ,4HS   ,4HC   ,4HH   ,4HR   ,4HS   ,4HY   ,4HN   ,4HT   ,
22     5 4HH   ,4HS   ,4HH   ,4HT   ,4HP   ,4HL   ,4HN   ,4HF   ,4HH   ,
23     6 4HT   ,4HS   ,4HC   ,4HH   ,4HR   ,4HV   ,4HT   ,4HP   ,4HL   ,
24     7 4HN   ,4HF   ,4HV   ,4HT   ,4HS   ,4HC   ,4HH   ,4HR   ,4HP   ,
25     8 4HR   ,4HO   ,4HP   ,4HW   ,4HR   ,4HJ   ,4HE   ,4HT   ,4HP   ,
26     9 4HW   ,4HR   ,4HL   ,4HA   ,4HR   ,4HW   ,4HB   ,4HG   ,4HR   ,
27     A 4HN   ,4HD   ,4HE   ,4HF   ,4HT   ,4HV   ,4HT   ,4HP   ,
28     B 4HA   ,4HN   ,4HE   ,4HX   ,4HP   ,4HR   ,4H    ,4H    ,4HS   ,
29     C 4HY   ,4HM   ,4HF   ,4HL   ,4HP   ,4HA   ,4HS   ,4HY   ,4HF   ,
30     D 4HL   ,4HP   ,4HH   ,4HY   ,4HP   ,4HE   ,4HF   ,4HF   ,4HT   ,
31     E 4HR   ,4HN   ,4HJ   ,4HE   ,4HT   ,4HC   ,4HO   ,4HN   ,4HT   ,
32     F 4HA   ,4HB   ,4HV   ,4HF   ,4HS   ,4HC   ,4HH   ,4HR   ,4HV   ,
33     G 4HF   ,4HP   ,4HL   ,4HN   ,4HF   /
34C
35C***  READ ONE CARD AND CHECK TYPE -
36C***           K = 1 FIRST CARD OF NAMELIST
37C***           K = 2 CONTINUATION CARD IN NAMELIST
38C***           K = 3 CONTROL CARD
39C
40      WRITE(6,1120)
41C
42C***  THE FOLLOWING TWO CARDS ARE FOR FORTRAN-IV
43C
44C1000 READ(5,1020) (KOL(I),I=1,80)
45C     IF(EOF(5)) 1110,1030
46C
47C***  THE FOLLOWING CARD IS FOR FORTRAN-V
48C
49 1000 READ(5,1020,END=1110) (KOL(I),I=1,80)
50 1020 FORMAT(80A1)
51 1030 K = 2
52      IF(KOL(2) .EQ. KAND)   K = 1
53      IF(KOL(1) .NE. IBLANK) K = 3
54C
55C***  CHECK NAMELIST NAME IF K = 1
56C
57      L = 2
58      IF(K .NE. 1) GO TO 1100
59        IERR = 0
60        DO 1080 NAME = 1,NNAME
61           I = LOC(NAME)
62           L = LEN(NAME)
63           IF(.NOT. NMTEST(KOL(3),NLNAME(I),L)) GO TO 1080
64           IF(NAME .NE. 17) GO TO 1070
65           L=L+2
66           M=L+1
67           MNUM = 0
68 1040      DO 1050 J=1,10
69              IF(KOL(M) .EQ. NUM(J)) GO TO 1060
70 1050      CONTINUE
71           IERR = 1
72           GO TO 1080
73 1060      M=M+1
74           MNUM = 10*MNUM + J
75           IF(M .EQ. (L+2)) GO TO 1040
76           IF(MNUM .LT. 1 .OR. MNUM .GT. 20) IERR=1
77 1070      CONTINUE
78           IF(KOL(L+3) .EQ. IBLANK) GO TO 1090
79 1080   CONTINUE
80        IERR = 1
81 1090   L = L+3
82 1100 CONTINUE
83C
84C***  CHECK NAMELIST VARIABLES IF K = 1 OR 2
85C***  CHECK CONTROL CARD IF K = 3
86C
87      IF(K .LE. 2) CALL NMLIST(KOL,L,NAME,K,IERR)
88      IF(K .EQ. 3) CALL CCARD (KOL)
89      GO TO 1000
90 1110 CONTINUE
91      REWIND 11
92 1120 FORMAT(1H1,25X,29HCONERR - INPUT ERROR CHECKING/
93     1    1H0,39H ERROR CODES - N* DENOTES THE NUMBER OF,
94     2        25H OCCURENCES OF EACH ERROR/
95     3    1H0,26H A - UNKNOWN VARIABLE NAME/
96     4    1H0,47H B - MISSING EQUAL SIGN FOLLOWING VARIABLE NAME/
97     5    1H0,44H C - NON-ARRAY VARIABLE HAS AN ARRAY ELEMENT,
98     6        18H DESIGNATION - (N)/
99     7    1H0,52H D - NON-ARRAY VARIABLE HAS MULTIPLE VALUES ASSIGNED/
100     8    1H0,43H E - ASSIGNED VALUES EXCEED ARRAY DIMENSION/
101     9    1H0,17H F - SYNTAX ERROR//
102     A    1H0,30H******************************,
103     B        20H  INPUT DATA CARDS  ,
104     C        30H******************************/)
105      RETURN
106      END
107