C PROGRAM SEL98.FOR C PROGRAM TO EXTRACT BASE STEP PARAMETERS AND THEN BASE PAIR PARAMETERS C FROM NEWHELIX OUTPUT FILES. READS NUMBER OF BASE PAIRS FROM FREEHELIX C OUTPUT FILE, WHICH IS USED AS INPUT FOR SELECT. 1 June 1998 C C........1.........2.........3.........4.........5.........6.........712 DIMENSION AS(30,200),AB(31,200),TITL(115),IRST(3,300),ARST(3,300), *TRST(3,300),VALL(200),VTIL(200),VROL(200),VSLI(200),VTWI(200),VRIS *(200),VSLP(200),NJAY(200),IANGALL(200,200),LAB(50) CHARACTER*12 TNAME CHARACTER*5 TTITL CHARACTER*1 TITL CHARACTER*5 TCODE CHARACTER*2 TRST CHARACTER*2 TZR CHARACTER*2 TZS CHARACTER*2 TZT C C CLEAR AS AND AB STORAGE LOCATIONS C DO 42 I=1,30 DO 42 J=1,30 AS(I,J)=0. AB(I,J)=0. 42 CONTINUE TZR='R:' TZS='S:' TZT='T:' C C READ TITLE C 70 READ(*,71)TTITL,TCODE,TITL 71 FORMAT(2A5,115A1) IF(TTITL.NE.' TITL')GO TO 70 WRITE(*,3) WRITE(*,3) WRITE(*,100) 100 FORMAT(' SELECTED OUTPUT TABLES') WRITE(*,3) WRITE(*,72)TCODE,TITL 72 FORMAT(A5,115A1) 272 FORMAT(5X,115A1) WRITE(*,3) WRITE(*,73) 73 FORMAT(' Table 1. Base step parameters') WRITE(*,3) C C READ NUMBER OF BASE PAIRS AND BASE STEPS IN HELIX C 40 READ(*,41)TNAME 41 FORMAT(A12) IF(TNAME.NE.' NUMBER BASE')GO TO 40 READ(*,99)NBPR 99 FORMAT(5X,I5) C NBST=NBPR-1 C C READ TO START OF NORMAL VECTOR COSINES C 102 READ(*,1)TNAME IF(TNAME.NE.' BASE PAIR N')GO TO 102 READ(*,3) READ(*,3) READ(*,3) C C READ IN X,Y NORMAL COSINES C DO 103 J=1,NBPR READ(*,104)AB(20,J),AB(21,J),AB(31,J) 104 FORMAT(3F10.5) 103 CONTINUE C IF(NBPR.GT.25)GO TO 820 C C READ TO START OF NORMAL ANGLE MATRIX C 450 READ(*,451)TNAME 451 FORMAT(A12) IF(TNAME.NE.' ANGLES BET')GO TO 450 CONTINUE C C READ IN NORMAL ANGLE MATRIX C READ(*,3) READ(*,3) READ(*,3) READ(*,452)(NJAY(J),J=1,NBPR) 452 FORMAT(8X,50I4) READ(*,3) DO 453 I=1,NBPR READ(*,452)(IANGALL(I,J),J=1,NBPR) 453 CONTINUE GO TO 821 C C READ TO START OF 1ST HALF OF NORMAL ANGLE MATRIX C 820 READ(*,851)TNAME 851 FORMAT(A12) IF(TNAME.NE.' ANGLES BET')GO TO 820 CONTINUE C C READ IN 1ST HALF OF NORMAL ANGLE MATRIX C READ(*,3) READ(*,3) READ(*,3) READ(*,852)(NJAY(J),J=1,25) 852 FORMAT(8X,50I4) READ(*,3) DO 853 I=1,NBPR READ(*,852)(IANGALL(I,J),J=1,25) 853 CONTINUE C C READ TO START OF 2ND HALF OF NORMAL ANGLE MATRIX C 950 READ(*,951)TNAME 951 FORMAT(A12) IF(TNAME.NE.' ANGLES BET')GO TO 950 CONTINUE C C READ IN 2ND HALF OF NORMAL ANGLE MATRIX C READ(*,3) READ(*,3) READ(*,3) READ(*,952)(NJAY(J),J=26,NBPR) 952 FORMAT(8X,50I4) READ(*,3) DO 953 I=1,NBPR READ(*,952)(IANGALL(I,J),J=26,NBPR) 953 CONTINUE C 821 CONTINUE C C READ TO START OF BROLL OUTPUT C 2 READ(*,1)TNAME 1 FORMAT(A12) IF(TNAME.NE.' BEST PLANE')GO TO 2 DO 10 J=1,3 10 READ(*,3) 3 FORMAT(1H ) C C READ IN TABLES OF BASE STEPS AND BASE PAIRS FROM BROLL C DO 4 J=1,NBST C........1.........2.........3.........4.........5.........6.........712 READ(*,5)VALL(J),VTIL(J),VROL(J),VSLI(J),VTWI(J),VRIS(J),VSLP(J),A *B(2,J),AB(1,J),AS(2,J),AS(1,J),AS(4,J),AS(3,J),AB(3,J),AB(4,J),AB( *5,J),AB(6,J) 5 FORMAT(1X,7F7.2,2X,10F7.2) 4 CONTINUE READ(*,43)AB(2,J),AB(1,J),AB(3,J),AB(4,J),AB(5,J),AB(6,J) 43 FORMAT(1X,51X,2F7.2,28X,4F7.2) C C READ TO START OF CYLIN OUTPUT C 6 READ(*,1)TNAME IF(TNAME.NE.' ROTATION ')GO TO 6 DO 7 K=1,5 7 READ(*,3) C C READ IN FIRST TABLES FROM CYLIN C DO 9 J=1,NBST READ(*,8)AS(7,J),AS(11,J),AS(5,J),AS(13,J),AS(6,J),AS(9,J) 8 FORMAT(14X,5F7.2,21X,F7.2) 9 CONTINUE C C READ TO START OF SECOND CYLIN TABLES C 11 READ(*,1)TNAME IF(TNAME.NE.' STRAND 2')GO TO 11 READ(*,3) C C READ IN SECOND TABLES FROM CYLIN C DO 12 J=1,NBST READ(*,13)AS(8,J),AS(12,J),AS(14,J),AS(10,J) 13 FORMAT(14X,2F7.2,7X,F7.2,28X,F7.2) AS(8,J)=ABS(AS(8,J)) AS(10,J)=ABS(AS(10,J)) 12 CONTINUE C C READ TO START OF DTORAN TABLES C 14 READ(*,1)TNAME IF(TNAME.NE.' ALPHA ')GO TO 14 READ(*,3) C C READ FIRST TORAN LIST C DO 45 J=1,NBPR READ(*,46)(AB(I,J),I=7,15) 46 FORMAT(9F8.1) 45 CONTINUE C C READ TO START OF SECOND TORAN LIST C 47 READ(*,1)TNAME IF(TNAME.NE.' ALPHA ')GO TO 47 READ(*,3) C C READ SECOND TORAN LIST C DO 48 J=1,NBPR M=J+NBPR READ(*,46)(AB(I,M),I=7,15) 48 CONTINUE C C READ TO START OF FIRST PSEUDO TABLES C 50 READ(*,1)TNAME IF(TNAME.NE.' V0 ')GO TO 50 READ(*,3) C C READ FIRST PSEUDO VALUES C DO 51 J=1,NBPR READ(*,52)AB(16,J) 52 FORMAT(40X,F8.1) 51 CONTINUE C C READ TO SECOND PSEUDO TABLES C 60 READ(*,1)TNAME IF(TNAME.NE.' V0 ')GO TO 60 READ(*,3) C C READ SECOND PSEUDO VALUES C DO 61 J=1,NBPR M=J+NBPR READ(*,52)AB(16,M) 61 CONTINUE C C WRITE OUT EXTRACTED BASE STEP TABLES C 34 FORMAT(I5) WRITE(*,32) C........1.........2.........3.........4.........5.........6.........712 32 FORMAT(' VALL VTIL VROL VSLI VTWI VRIS VSLP * Tilt Roll Slide Twist Rise Cup') WRITE(*,33) 33 FORMAT(1H ) C DO 20 J=1,NBST J1=J+1 C........1.........2.........3.........4.........5.........6.........712 WRITE(*,21)J,J1,VALL(J),VTIL(J),VROL(J),VSLI(J),VTWI(J),VRIS(J),VS *LP(J),AS(2,J),AS(1,J),AS(4,J),AS(5,J),AS(6,J),AS(3,J) 21 FORMAT(2I3,1X,7F7.2,2X,6F7.2) 20 CONTINUE C C WRITE OUT R-S-T TABLE C WRITE(*,3) WRITE(*,3) KBST=NBST/5 DO 302 K=1,KBST LAB(K)=5*K 302 CONTINUE C WRITE(*,301)(LAB(K),K=1,KBST) 301 FORMAT(5X,10I10) C WRITE(*,272)TITL C DO 120 J=1,NBST ARST(1,J)=0.20*VROL(J) ARST(2,J)=4.0*VSLI(J) ARST(3,J)=0.40*(VTWI(J)-35.) IRST(1,J)=ARST(1,J) IRST(2,J)=ARST(2,J) IRST(3,J)=ARST(3,J) DO 130 I=1,3 IF (IRST(I,J)-9) 123,123,124 124 IRST(I,J)=9 GO TO 125 123 IF(IRST(I,J)+9) 126,125,125 126 IRST(I,J)=-9 125 IF(IRST(I,J)+9)201,200,201 200 TRST(I,J)='-9' GO TO 300 201 IF(IRST(I,J)+8)203,202,203 202 TRST(I,J)='-8' GO TO 300 203 IF(IRST(I,J)+7)205,204,205 204 TRST(I,J)='-7' GO TO 300 205 IF(IRST(I,J)+6)207,206,207 206 TRST(I,J)='-6' GO TO 300 207 IF(IRST(I,J)+5)209,208,209 208 TRST(I,J)='-5' GO TO 300 209 IF(IRST(I,J)+4)211,210,211 210 TRST(I,J)='-4' GO TO 300 211 IF(IRST(I,J)+3)213,212,213 212 TRST(I,J)='-3' GO TO 300 213 IF(IRST(I,J)+2)215,214,215 214 TRST(I,J)='-2' GO TO 300 215 IF(IRST(I,J)+1)217,216,217 216 TRST(I,J)='-1' GO TO 300 217 IF(IRST(I,J)-1)219,218,219 218 TRST(I,J)=' 1' GO TO 300 219 IF(IRST(I,J)-2)221,220,221 220 TRST(I,J)=' 2' GO TO 300 221 IF(IRST(I,J)-3)223,222,223 222 TRST(I,J)=' 3' GO TO 300 223 IF(IRST(I,J)-4)225,224,225 224 TRST(I,J)=' 4' GO TO 300 225 IF(IRST(I,J)-5)227,226,227 226 TRST(I,J)=' 5' GO TO 300 227 IF(IRST(I,J)-6)229,228,229 228 TRST(I,J)=' 6' GO TO 300 229 IF(IRST(I,J)-7)231,230,231 230 TRST(I,J)=' 7' GO TO 300 231 IF(IRST(I,J)-8)233,232,233 232 TRST(I,J)=' 8' GO TO 300 233 IF(IRST(I,J)-9)235,234,235 234 TRST(I,J)=' 9' GO TO 300 235 IF(IRST(I,J))300,236,300 236 IF(ARST(I,J))239,238,238 239 TRST(I,J)='-0' GO TO 300 238 TRST(I,J)=' 0' 300 CONTINUE 130 CONTINUE 120 CONTINUE C WRITE(*,138)TZR,(TRST(1,J),J=1,NBST) WRITE(*,138)TZS,(TRST(2,J),J=1,NBST) WRITE(*,138)TZT,(TRST(3,J),J=1,NBST) 138 FORMAT(4X,A2,50A2) C C C WRITE OUT EXTRACTED BASE PAIR TABLES C WRITE(*,77) 77 FORMAT(1H1) WRITE(*,3) WRITE(*,3) WRITE(*,100) WRITE(*,3) WRITE(*,72)TCODE,TITL WRITE(*,3) WRITE(*,98) 98 FORMAT(' Table 2. Base pair parameters') WRITE(*,3) C 84 FORMAT(I5) WRITE(*,74) C........1.........2.........3.........4.........5.........6.........712 74 FORMAT(' Cos(X) Cos(Y) Cos(Z) Tip Incl Prop Buck X *Dsp Y Dsp') WRITE(*,3) C DO 75 J=1,NBPR WRITE(*,76)J,AB(20,J),AB(21,J),AB(31,J),(AB(I,J),I=1,6) 76 FORMAT(I3,2X,3F7.3,6F7.2) 75 CONTINUE C C WRITE OUT EXTRACTED NORMAL ANGLE MATRIX C IF(NBPR.GT.25)GO TO 805 WRITE(*,77) WRITE(*,3) WRITE(*,3) WRITE(*,100) WRITE(*,3) WRITE(*,72)TCODE,TITL WRITE(*,3) WRITE(*,455) 455 FORMAT(' Table 3. Angles between all normal vector pairs') WRITE(*,3) WRITE(*,456)(NJAY(J),J=1,NBPR) 456 FORMAT(4X,'J=',2X,50I4) WRITE(*,3) DO 457 I=1,NBPR WRITE(*,458)I,(IANGALL(I,J),J=1,NBPR) 458 FORMAT(1X,'I=',I3,2X,50I4) 457 CONTINUE GO TO 806 C 805 WRITE(*,77) WRITE(*,3) WRITE(*,3) WRITE(*,100) WRITE(*,3) WRITE(*,72)TCODE,TITL WRITE(*,3) WRITE(*,459) 459 FORMAT(' Table 3. Angles between all normal vector pairs') WRITE(*,3) WRITE(*,460)(NJAY(J),J=1,25) 460 FORMAT(4X,'J=',2X,50I4) WRITE(*,3) DO 462 I=1,NBPR WRITE(*,461)I,(IANGALL(I,J),J=1,25) 461 FORMAT(1X,'I=',I3,2X,50I4) 462 CONTINUE C WRITE(*,77) WRITE(*,3) WRITE(*,3) WRITE(*,100) WRITE(*,3) WRITE(*,72)TCODE,TITL WRITE(*,3) WRITE(*,463) 463 FORMAT(' Table 3. Angles between all normal vector pairs') WRITE(*,3) WRITE(*,464)(NJAY(J),J=26,NBPR) 464 FORMAT(4X,'J=',2X,50I4) WRITE(*,3) DO 466 I=1,NBPR WRITE(*,465)I,(IANGALL(I,J),J=26,NBPR) 465 FORMAT(1X,'I=',I3,2X,50I4) 466 CONTINUE 806 CONTINUE C STOP END