C PROTEIN DATA BANK SOURCE CODE TOTALS TOTALS11 C AUTHOR. L.ANDREWS,F.BERNSTEIN TOTALS12 C ENTRY DATE. 5/78 SUPPORTED TOTALS13 C LAST REVISION. 4/82 TOTALS21 C PURPOSE. VALIDATION OF MASTER RECORD TOTALS15 C LANGUAGE. FORTRAN IV TOTALS16 C TOTALS17 C TOTALS18 C TOTALS19 C TOTALS10 PROGRAM TOTALS(TAPE5,OUTPUT,PUNCH,TAPE6=OUTPUT,TAPE7=PUNCH) TOTALS 3 C TOTALS 4 C PURPOSE. TO COUNT VARIOUS TYPES OF RECORDS IN PROTEIN DATA BANK TOTALS 5 C ENTRIES FOR COMPARISON WITH MASTER RECORD. TOTALS 6 C TOTALS 7 C ORIGINALLY PROGRAMMED BY LAWRENCE C. ANDREWS TOTALS 8 C IN THE LABORATORY OF WARNER E.LOVE TOTALS 9 C THOMAS C. JENKINS DEPT. OF BIOPHYSICS TOTALS10 C THE JOHNS HOPKINS UNIVERSITY TOTALS11 C HOMEWOOD TOTALS12 C BALTIMORE, MD 21218 TOTALS13 C WORK FUNDED BY NATIONAL INSTITUTES OF HEALTH GRANTS-- TOTALS14 C AM02528 AND AM16446 TOTALS15 C HEAVILY MODIFIED BY FRANCES C. BERNSTEIN TOTALS16 C DEPT. OF CHEMISTRY, BROOKHAVEN NATIONAL LABORATORY, TOTALS17 C UPTON, NEW YORK 11973. TOTALS18 C WORK FUNDED BY THE NATIONAL SCIENCE FOUNDATION UNDER TOTALS19 C GRANT PCM77-16811 TOTALS20 C TOTALS21 C PROTEIN DATA BANK TOTALS22 C CHEMISTRY DEPARTMENT. TOTALS23 C BROOKHAVEN NATIONAL LABORATORY TOTALS24 C UPTON, NEW YORK 11973 TOTALS25 C TOTALS26 C TOTALS27 C THIS PROGRAM EXPECTS TO READ PROTEIN DATA BANK ENTRIES FROM TAPE5.TOTALS28 C EACH ENTRY MUST BE TERMINATED BY A RECORD WITH *END* IN COLUMNS TOTALS29 C 1-3. TOTALS30 C END-OF-FILE INDICATORS BETWEEN ENTRIES ARE OPTIONAL(NORMAL PROTEINTOTALS31 C DATA BANK DISTRIBUTION TAPES HAVE END-OF-FILE INDICATORS). TOTALS32 C THE PROGRAM WILL TERMINATE AT AN EMPTY FILE (DOUBLE END-OF-FILE). TOTALS33 C IF A *MASTER* RECORD IS ENCOUNTERED IN THE DATA ENTRY IT WILL BE TOTALS34 C PRINTED ON OUTPUT. IT IS FOLLOWED BY THE *MASTER* RECORD AS TOTALS35 C GENERATED BY THIS PROGRAM. IN ADDITION, ALL *MASTER* RECORDS TOTALS36 C GENERATED BY THIS PROGRAM ARE WRITTEN ON THE PUNCH FILE. TOTALS37 C TOTALS11 C CORRECTION. INSERT COMMENT CARDS AT BEGINNING FOR USE BY TOTALS12 C DIRECTORY PROGRAM. 20-SEP-79. TOTALS13 C TOTALS14 C TOTALS22 C CORRECTION. COMPARE THE COMPUTED TOTALS TO THOSE ON MASTER TOTALS23 C RECORD. PRINT ERROR MESSAGE FOR DISCREPANCY. 26-MAR-82. TOTALS24 C TOTALS25 DIMENSION LINE(80), ITOTS(12) TOTALS38 DIMENSION ITOTSF(12),LIN(8) TOTALS26 DIMENSION ICRYST(4), IREMRK(4), IEND(4), IMASTE(4), IATOM(4) TOTALS39 DIMENSION IHETAT(4), IFTNOT(4), IHET(4), IHELIX(4), ISHEET(4) TOTALS40 DIMENSION ITURN(4), ISITE(4), IMTRIX(4), ISCALE(4), IORIGX(4) TOTALS41 DIMENSION ITER(4), ICONEC(4), ISEQRE(4) TOTALS42 DATA IDISCR/0/ TOTALS27 DATA ICRYST/1HC,1HR,1HY,1HS/ TOTALS43 DATA IREMRK/1HR,1HE,1HM,1HA/ TOTALS44 DATA IEND/1HE,1HN,1HD,1H / TOTALS45 DATA IMASTE/1HM,1HA,1HS,1HT/ TOTALS46 DATA IATOM/1HA,1HT,1HO,1HM/ TOTALS47 DATA IHETAT/1HH,1HE,1HT,1HA/ TOTALS48 DATA IFTNOT/1HF,1HT,1HN,1HO/ TOTALS49 DATA IHET/1HH,1HE,1HT,1H / TOTALS50 DATA IHELIX/1HH,1HE,1HL,1HI/ TOTALS51 DATA ISHEET/1HS,1HH,1HE,1HE/ TOTALS52 DATA ITURN/1HT,1HU,1HR,1HN/ TOTALS53 DATA ISITE/1HS,1HI,1HT,1HE/ TOTALS54 DATA IMTRIX/1HM,1HT,1HR,1HI/ TOTALS55 DATA ISCALE/1HS,1HC,1HA,1HL/ TOTALS56 DATA IORIGX/1HO,1HR,1HI,1HG/ TOTALS57 DATA ITER/1HT,1HE,1HR,1H / TOTALS58 DATA ICONEC/1HC,1HO,1HN,1HE/ TOTALS59 DATA ISEQRE/1HS,1HE,1HQ,1HR/ TOTALS60 WRITE (6,190) TOTALS61 NSETS=0 TOTALS62 NOTEOF=0 TOTALS63 10 CONTINUE TOTALS64 DO 20 I=1,12 TOTALS65 ITOTS(I)=0 TOTALS66 20 CONTINUE TOTALS67 IF (NOTEOF.EQ.1) GO TO 50 TOTALS68 30 READ (5,200) LINE TOTALS69 C TOTALS70 C THE STATEMENT BELOW WILL TRANSFER CONTROL TO STATEMENT 40 IF AN TOTALS71 C END-OF-FILE WAS ENCOUNTERED ON THE INPUT DEVICE. IF NO END-OF- TOTALS72 C FILE IS SENSED CONTROL IS ASSUMED BY STATEMENT 50. TOTALS73 C TESTING FOR AN END-OF-FILE CLEARS THE END-OF-FILE INDICATOR IF TOTALS74 C IT IS SET. TOTALS75 C TOTALS76 IF (EOF(5)) 40,50 TOTALS77 40 WRITE (6,210) NSETS TOTALS78 STOP 1 TOTALS79 50 CONTINUE TOTALS80 NOTEOF=0 TOTALS81 IF (IDENT(LINE,IATOM,4).EQ.0) GO TO 150 TOTALS82 IF (IDENT(LINE,IREMRK,4).EQ.0) GO TO 70 TOTALS83 IF (IDENT(LINE,IFTNOT,4).EQ.0) GO TO 80 TOTALS84 IF (IDENT(LINE,IHETAT,4).EQ.0) GO TO 150 TOTALS85 IF (IDENT(LINE,ICONEC,4).EQ.0) GO TO 170 TOTALS86 IF (IDENT(LINE,ISEQRE,4).EQ.0) GO TO 180 TOTALS87 IF (IDENT(LINE,IMTRIX,4).EQ.0) GO TO 140 TOTALS88 IF (IDENT(LINE,ISCALE,4).EQ.0) GO TO 140 TOTALS89 IF (IDENT(LINE,IORIGX,4).EQ.0) GO TO 140 TOTALS90 IF (IDENT(LINE,IHELIX,4).EQ.0) GO TO 100 TOTALS91 IF (IDENT(LINE,ISHEET,4).EQ.0) GO TO 110 TOTALS92 IF (IDENT(LINE,ITURN,4).EQ.0) GO TO 120 TOTALS93 IF (IDENT(LINE,ISITE,4).EQ.0) GO TO 130 TOTALS94 IF (IDENT(LINE,IHET,4).EQ.0) GO TO 90 TOTALS95 IF (IDENT(LINE,ITER,4).EQ.0) GO TO 160 TOTALS96 IF(IDENT(LINE,IMASTE,4).NE.0) GO TO 55 TOTALS28 WRITE (6,220) LINE TOTALS29 ENCODE (80,200,LIN) LINE TOTALS10 DECODE (80,250,LIN) ITOTSF TOTALS11 55 CONTINUE TOTALS12 C TOTALS98 C LOOK FOR END RECORD TOTALS99 C TOTAL100 IF (IDENT(LINE,IEND,4).NE.0) GO TO 30 TOTAL101 WRITE (6,230) ITOTS TOTAL102 WRITE (7,240) ITOTS TOTAL103 DO 56 I=1,12 TOTALS13 IF(ITOTS(I).NE.ITOTSF(I)) IDISCR=IDISCR+1 TOTALS14 56 CONTINUE TOTALS15 IF(IDISCR.NE.0) WRITE (6,260) IDISCR TOTALS16 NSETS=NSETS+1 TOTAL104 IDISCR=0 TOTALS17 C TOTAL105 C HAVE REACHED END OF DATA. READ NEXT RECORD. IF IT IS AN TOTAL106 C END-OF-FILE CLEAR IT BY TESTING FOR IT AND GO BACK TO START. TOTAL107 C IT IT IS NOT AN END-OF-FILE THEN IT IS THE FIRST RECORD OF THE TOTAL108 C NEXT DATA ENTRY. IN THAT CASE SET A FLAG TO FORCE SKIPPING THE TOTAL109 C INITIAL READ OF THIS NEW DATA ENTRY. TOTAL110 C TOTAL111 READ (5,200) LINE TOTAL112 C TOTAL113 C THE STATEMENT BELOW WILL TRANSFER CONTROL TO STATEMENT 10 IF AN TOTAL114 C END-OF-FILE WAS ENCOUNTERED ON THE INPUT DEVICE. IF NO END-OF- TOTAL115 C FILE IS SENSED CONTROL IS ASSUMED BY STATEMENT 60. TOTAL116 C TESTING FOR AN END-OF-FILE CLEARS THE END-OF-FILE INDICATOR IF TOTAL117 C IT IS SET. TOTAL118 C TOTAL119 IF (EOF(5)) 10,60 TOTAL120 60 NOTEOF=1 TOTAL121 GO TO 10 TOTAL122 70 ITOTS(1)=ITOTS(1)+1 TOTAL123 GO TO 30 TOTAL124 80 ITOTS(2)=ITOTS(2)+1 TOTAL125 GO TO 30 TOTAL126 90 ITOTS(3)=ITOTS(3)+1 TOTAL127 GO TO 30 TOTAL128 100 ITOTS(4)=ITOTS(4)+1 TOTAL129 GO TO 30 TOTAL130 110 ITOTS(5)=ITOTS(5)+1 TOTAL131 GO TO 30 TOTAL132 120 ITOTS(6)=ITOTS(6)+1 TOTAL133 GO TO 30 TOTAL134 130 ITOTS(7)=ITOTS(7)+1 TOTAL135 GO TO 30 TOTAL136 140 ITOTS(8)=ITOTS(8)+1 TOTAL137 GO TO 30 TOTAL138 150 ITOTS(9)=ITOTS(9)+1 TOTAL139 GO TO 30 TOTAL140 160 ITOTS(10)=ITOTS(10)+1 TOTAL141 GO TO 30 TOTAL142 170 ITOTS(11)=ITOTS(11)+1 TOTAL143 GO TO 30 TOTAL144 180 ITOTS(12)=ITOTS(12)+1 TOTAL145 GO TO 30 TOTAL146 C TOTAL147 C TOTAL148 190 FORMAT (44H1 OUTPUT OF PROTEIN DATA BANK PROGRAM TOTALS/) TOTAL149 200 FORMAT (80A1) TOTAL150 210 FORMAT (1H0,I5,18H ENTRIES PROCESSED/40H END OF PROTEIN DATA BANK TOTAL151 1PROGRAM TOTALS) TOTAL152 220 FORMAT (11H0FOUND ,80A1) TOTAL153 230 FORMAT (21H SHOULD BE MASTER ,T22,12I5) TOTAL154 240 FORMAT (6HMASTER,T11,12I5) TOTAL155 250 FORMAT (10X,12I5) TOTALS18 260 FORMAT(100X,12H DISCREPANCY,I5) TOTALS19 END TOTAL156 FUNCTION IDENT (I,J,N) TOTAL157 DIMENSION I(N), J(N) TOTAL158 IDENT=1 TOTAL159 DO 10 NN=1,N TOTAL160 IF (I(NN).NE.J(NN)) GO TO 20 TOTAL161 10 CONTINUE TOTAL162 IDENT=0 TOTAL163 20 CONTINUE TOTAL164 RETURN TOTAL165 END TOTAL166