SUBROUTINE CHK3(IDUM, IACT, IDUM8, IACT8, IE, R, NO) C C CHECKS PROC ARGUMENTS FOR PROPER USAGE AND TYPE C IDUM LAT INDEX DUMY PROC ARG C IACT LAT INDEX ACTUAL PROC C IDUM8 USAGE DUMMY FROM DSA ATTRIBUTES C IACT8 USAGE ACTUAL FROM LAT ENTRY C IE CALLED RTNE C R STMT NO OF CALL C NO CONTAINS THE NUMBER OF PARAMETER BEING CHECKED BY THIS CALL C INTEGER PLAT, R(1), SYMLEN, NO(1) COMMON /PARAMS/ I1, I2, I3, SYMLEN, I4, I5, I6 COMMON /GRAPH/ LLAT, PLAT, LAT(6000) C SEPARATE OUT EXTERNAL ENTITIES IF (IDUM8.NE.13) GO TO 20 L = IGATT2(IDUM,1)/8 IF (L.NE.1) GO TO 50 C FURTHER CHECK THAT EPLICITLY TYPED EXTERNAL ENTITIES C MATCH FCNS IF (IACT8.NE.1 .AND. IACT8.NE.6) GO TO 30 C CHECK FCN HAS SAME TYPE ACROSS REF BNDRY 10 L = IACT + SYMLEN + 6 IF (MOD(IGATT2(IDUM,1),8).EQ.LAT(L)/8) GO TO 50 CALL ERROR2(40H INCONSISTENT FCN TYPES IN REFERENCE TO , 40, * LAT(IE), 1, 1, 0) CALL ERROR2(1H1, 0, R(1), -1, 0, 1) GO TO 50 C CHECK SUBROUTINES 20 IF (IDUM8.EQ.6 .AND. IACT8.EQ.0) GO TO 50 C CHECK OUT FCNS IF (IDUM8.EQ.5 .AND. IACT8.EQ.1) GO TO 10 C SEPARATE OUT BASIC EXTERNALS BECAUSE THEY ARE CONSIDERED C TYPED BY THE FORTRAN. IF (IDUM8.EQ.5 .AND. IACT8.EQ.6) GO TO 40 30 CALL ERROR2( * 50H INCOMPATIBLE PROCEDURE PARAMETER ASSOCIATED WITH ,50, * NO, -2, 1, 0) CALL ERROR2(17H IN REFERENCE TO ,17, LAT(IE), 1, 0, 0) CALL ERROR2(1H1, 0, R(1), -1, 0, 1) GO TO 50 C CHECK BASIC EXTER HAS NOT BEEN EXPLICITLY TYPED C OR ELSE IT HAS TO AGREE WITH THE ACTUAL TYPE 40 L = IACT + SYMLEN + 6 IF (LAT(L)/8.EQ.1) GO TO 10 50 RETURN END