SUBROUTINE CHKSUM(TYPE,VERIFY) CC C CHKSUM - COMPUTES THE CHECKSUMS NECCESARY FOR A FILE HEADER C OR THE HOME BLOCK DEPENDING ON TYPE. C C ENTRY: TYPE = 0 HOME BLOCK STYLE CHECKSUM C = 1 FILE HEADER STYLE CHECKSUM C VERIFY = .TRUE. TO JUST VERIFY C = .FALSE. TO WRITE CHECKSUMS INTO BUFFER C INTEGER*2 TYPE,CHK1,CHK2 LOGICAL VERIFY INCLUDE '[214,10]BUFCOM.COM' C CALL ERRSET(70,.TRUE.,.FALSE.,.FALSE.,.FALSE.) ! TURN OFF INT OVFLW CHK1 = 0 ! INITIALIZE THE CHECKSUMS CHK2 = 0 IF(TYPE.EQ.1) GOTO 100 ! SKIP FIRST CHECKSUM FOR FILE HEADERS DO 10 I=1,29 ! CHECKSUM FIRST 29 WORDS OF HOME BLOCK 10 CHK1 = CHK1 + BUFF(I) ! ADD IN NEXT ENTRY IF(.NOT.VERIFY) BUFF(30) = CHK1 ! SET IT IF NOT VERIFYING 100 DO 110 I=1,255 110 CHK2 = CHK2 + BUFF(I) ! ADD IN NEXT ENTRY IF(VERIFY) GOTO 120 BUFF(256) = CHK2 ! SET IT IF NOT VERIFYING GOTO 1000 120 IF(TYPE.EQ.1) GOTO 140 ! SKIP VERIFYING FIRST CHECKSUM FOR HEADERS TYPE 9000,CHK1,BUFF(30) 9000 FORMAT(' CHECKSUM1 SB ',O6,' IS ',O6) 140 TYPE 9001,CHK2,BUFF(256) 9001 FORMAT(' CHECKSUM2 SB ',O6,' IS ',O6) C 1000 CALL ERRSET(70,.TRUE.,.TRUE.,.FALSE.,.TRUE.) ! TURN ON INT OVFLW RETURN !---EXIT END