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