home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 9 / 09.iso / e / e003 / 9.ddi / EIGENT1.FOR next >
Encoding:
Text File  |  1987-06-23  |  105.7 KB  |  1,322 lines

  1.       SUBROUTINE EIGEN                                                  00067990
  2.       IMPLICIT REAL*8 (A-H,O-Z)                                         00068000
  3.       COMMON A(1)                                                       00068010
  4.       COMMON /ELPAR/ XP(14),NUMNP,MBAND,NELTYP,N1,N2,N3,N4,N5,MTOT,NEQ  00068020
  5.      & ,RRELPA(24)                                                      R0068021
  6.       COMMON /DYN2/IFPR,IFSS,NITEM,NFO,RTOL,COFQ,DT,ALFA,BETA,NFN,NGM,  00068030
  7.      $NAT,NTTT,NOT,NRDYN2(9)                                            R0068040
  8.       COMMON/DYN3/ NEIG,NAD,ANORM,NVV,NFQ                               00068050
  9.       COMMON /DYN4/KDYN,NRESS,NCRD,NCWT,NRESS1                          00068060
  10.       COMMON/SLVE/NSLAVE                                                00068070
  11.        COMMON /TAPES/NSTIF,NRED,NL,NR,NT,NMASS                          00068080
  12.       COMMON /DYN5/FRSHFT,FRINIT,FREND,MODEFR,NOSS                      R0068090
  13.       COMMON / MISC / NBLOCK,NEQB,LL,NF,LB                              R0068100
  14.       COMMON /QTSARG/ AT(400),RRQTSA(600)                               R0068110
  15.       COMMON /EXTRA/ MODEX,NT8,NREXTR(24)                               R0068120
  16.       COMMON /OUT/IDUMM(4),IOSIG,IODISP,NROUT(4)                        R0068130
  17.       COMMON /HEADIN/TITLE1(20),TITLE2(5),TITLE3(10)                    00068140
  18.       DIMENSION TT(3)                                                   00068150
  19.         CALL FILES(13)                                                  00068160
  20.       CALL SECOND (TT(1))                                               00068170
  21.       WRITE (6,190)                                                     00068180
  22.       IF(IABS(KDYN).EQ.11) WRITE(6,270)                                 00068190
  23.   100 IF (MODEX.EQ.1) RETURN                                            00068200
  24.       TPI=6.2831853E0                                                   00068210
  25.       NFQ=NFO                                                           00068220
  26.       IF (IFPR.GT.0) IFPR=1                                             00068230
  27.       IF (IFSS.GT.0) IFSS=1                                             00068240
  28.       IF (NITEM.EQ.0) NITEM=16                                          00068250
  29.       IF (RTOL.EQ.0.E0) RTOL=1.E-05                                     00068260
  30.       IF (COFQ.EQ.0.E0) COFQ=1.E08                                      00068270
  31.       IF(NEIG.EQ.0) WRITE(6, 170)                                       00068280
  32.       IF(NEIG.GT.0) WRITE(6, 180)                                       00068290
  33.       CALL MODE4 (NEQ,MBAND,NBLOCK,NEQB,NF,MTOT,IFPR,IFSS,RTOL,NITEM,   00068300
  34.      $COFQ)                                                             00068310
  35.       IF(MODEX.EQ.1) RETURN                                             00068320
  36.       IF(MODEFR.EQ.1) RETURN                                            00068330
  37.       CALL SECOND (TT(2))                                               00068340
  38.       NZ=NR                                                             00068350
  39.       IF(NEIG.EQ.0)NZ=NT                                                00068360
  40.       IF(NCWT.LE.0)GO TO 105                                            00068370
  41.       IF(NRESS1.EQ.0)REWIND NCWT                                        00068380
  42.       WRITE (NCWT) NEQ,NBLOCK,NEQB,MBAND,N1,NF,(AT(I),I=1,NF)           00068390
  43.       REWIND NZ                                                         00068400
  44.       NWW=NEQB*NF                                                       00068410
  45.       READ(NZ) (A(I),I=1,NF)                                            00068420
  46.       WRITE(NCWT) (A(I),I=1,NF)                                         00068430
  47.       DO 103 I=1,NBLOCK                                                 00068440
  48.       CALL RDWRT(NZ,A,NWW,14,I)                                         00068450
  49.       CALL RDWRT(NCWT,A,NWW,13,I)                                       00068460
  50.   103 CONTINUE                                                          00068470
  51.       WRITE(6,104)NCWT,NF                                               00068480
  52.   104 FORMAT(46H   THE CURRENT EIGENSOLUTIONS HAVE BEEN STORED/         00068490
  53.      X       25H   ON TAPE, UNIT NUMBER =,I5/                           00068500
  54.      X       25H   NUMBER OF FREQUENCIES=,I5//)                         00068510
  55.   105 CONTINUE                                                          00068520
  56.       REWIND NZ                                                         00068530
  57.       READ (NZ) (A(I),I=1,NF)                                           00068540
  58.       IF(IABS(KDYN).EQ.11) GO TO 1120                                   00068550
  59.       K=NF+1                                                            00068560
  60.       DO 110 I=1,NF                                                     00068570
  61.       K=K-1                                                             00068580
  62.       KK=(K-1)*3+1                                                      00068590
  63.       A(KK)=A(K)                                                        00068600
  64.       A(KK+1)=A(K)/TPI                                                  00068610
  65.   110 A(KK+2)=TPI/A(K)                                                  00068620
  66.       IF (NEIG.GT.0) GO TO 130                                          00068630
  67.       WRITE (6,200)                                                     00068640
  68.       DO 120 I=1,NF                                                     00068650
  69.       K1=3*I-2                                                          00068660
  70.       K2=3*I                                                            00068670
  71.   120 WRITE (6,220) I,(A(J),J=K1,K2)                                    00068680
  72.       GO TO 150                                                         00068690
  73.   130 WRITE (6,210)                                                     00068700
  74.       DO 140 I=1,NF                                                     00068710
  75.       K1=3*I-2                                                          00068720
  76.       K2=3*I                                                            00068730
  77.   140 WRITE (6,220) I,(A(J),J=K1,K2),AT(NF+I)                           00068740
  78.       GO TO 150                                                         00068750
  79.  1120 WRITE(6,280)                                                      00068760
  80.       DO 1130 I=1,NF                                                    00068770
  81.  1130 WRITE(6,290) I,A(I),AT(NF+I)                                      00068780
  82.   150 N2=N1+NUMNP*3                                                     00068790
  83.       N3=N2+6*NF                                                        00068800
  84.       N4=N3+NEQB*NF                                                     00068810
  85.       N5=N4+NSLAVE*4                                                    00068820
  86.       IF(N5.GT.MTOT) CALL ERROR(N5-MTOT)                                00068830
  87.       NSLDM=NSLAVE                                                      00068840
  88.       IF(NSLDM.LE.0) NSLDM=1                                            00068850
  89.       IF(IODISP.EQ.1) CALL FCOPY(L5TP6,L6TP50)                          00068860
  90.       IF(IODISP.EQ.1) TITHOL=TITLE3(3)                                  00068870
  91.       WRITE (6,230)                                                     00068880
  92.       CALL PRINT4 (A(N1),A(N2),A(N3),NEQB,NUMNP,NF,NBLOCK,NEQ,NZ,NF,A(1)00068890
  93.      $,A(N4),NSLDM)                                                     00068900
  94.       IF(IODISP.EQ.1) WRITE(6,260)                                      00068910
  95.       IF(IODISP.EQ.1) WRITE(6,250)                                      00068920
  96.       IF(IODISP.EQ.1) TITLE3(3)= TITHOL                                 00068930
  97.       CALL SECOND (TT(3))                                               00068940
  98.       DO 160 K=1,2                                                      00068950
  99.   160 TT(K) = TT(K+1)-TT(K)                                             00068960
  100.       WRITE (6,240) (TT(L),L=1,2)                                       00068970
  101.       XP(1)=TT(1)+TT(2)                                                 00068980
  102.   170 FORMAT (44H0DETERMINANT SEARCH SOLUTION IS CARRIED OUT  )         00068990
  103.   180 FORMAT (44H0SUBSPACE ITERATION SOLUTION IS CARRIED OUT  )         00069000
  104.   190 FORMAT (1X ,//41H E I G E N V A L U E   A N A L Y S I S   )       00069010
  105.   200 FORMAT (1X ,20HPRINT OF FREQUENCIES  //                           00069020
  106.      $            23H MODE       CIRCULAR     /                         00069030
  107.      $            49H NUMBER     FREQUENCY    FREQUENCY    PERIOD      /00069040
  108.      $            49H           (RAD/SEC)  (CYCLES/SEC)    (SEC)       )00069050
  109.   210 FORMAT (1X ,20HPRINT OF FREQUENCIES  //                           00069060
  110.      $            23H MODE       CIRCULAR    /                          00069070
  111.      $            58H NUMBER     FREQUENCY    FREQUENCY    PERIOD    TOL00069080
  112.      $ERANCE    /                                                       00069090
  113.      $            49H           (RAD/SEC)  (CYCLES/SEC)    (SEC)       )00069100
  114.   220 FORMAT (1H0,I4,6X,4(E10.4,2X))                                    00069110
  115.   230 FORMAT (/// 22H PRINT OF EIGENVECTORS, // 1X)                     00069120
  116.   240 FORMAT (//// 44H E I G E N S O L U T I O N   T I M E   L O G,     00069130
  117.      $        //5X,15HEIGENSOLUTION =, F8.2 /                           00069140
  118.      $          5X,15HPRINTING      =, F8.2 /)                          00069150
  119.   250 FORMAT(///20X,32(1H')/20X,32HMODE SHAPES WILL NOT BE PRINTED./20X,00069160
  120.      1 31(1H')//)                                                       00069170
  121. 260   FORMAT (/)                                                        00069180
  122.   270 FORMAT(1H+,42X,39HF O R   B U C K L I N G   P R O B L E M//)      00069190
  123.   280 FORMAT (1X ,22H PRINT OF EIGENVALUES //                           00069200
  124.      $            39H MODE       EIGENVALUE        TOLERANCE)           00069210
  125.   290 FORMAT (1H0,I4,6X,E10.4,8X,E10.4)                                 00069220
  126.       RETURN                                                            00069230
  127.       END                                                               00069240
  128.       SUBROUTINE WRDIS4(NORD,A,B,NUMNP,LL,NDPBLK,NDIS,NBLK              00326130
  129.      &  ,AD,XXK,ARE,NREL,ISL,NSLDM)                                     00326140
  130.       IMPLICIT REAL*8(A-H,O-Z)                                          00326150
  131.       DIMENSION NORD(NUMNP),A(6,LL),B(NDPBLK,6,LL)                      00326160
  132.      &  ,AD(NUMNP,3),XXK(NREL,6,LL),ARE(51,NREL),DX(3),ISL(NSLDM,4)     00326170
  133.       COMMON /OUT/ KDUMMY(9),KROT                                       00326180
  134.       COMMON /BAND/ KOPT,NRBAND(7)                                      R0326190
  135.       COMMON/SLVE/NSLAVE                                                00326200
  136.         COMMON /RIGID/ IIA(20),NREX                                     00326210
  137.       NT1=17                                                            00326220
  138.       NT2=18                                                            00326230
  139.       IF(NSLAVE.NE.0) REWIND 30                                         00326240
  140.       IF(NSLAVE.NE.0) READ(30)((ISL(I,J),J=1,4),I=1,NSLAVE)             00326250
  141.         NT40=40                                                         00326260
  142.         REWIND 8                                                        00326270
  143.         READ(8)AD                                                       00326280
  144.       IF(KOPT.GT.0) READ (NT1) NORD                                     00326290
  145.         IF(NREX.LE.0)GO TO 10                                           00326300
  146.         REWIND NT40                                                     00326310
  147.         READ(NT40)ARE                                                   00326320
  148.         REWIND NT2                                                      00326330
  149.         K=NUMNP+1                                                       00326340
  150.         DO 8 JJ=1,NUMNP                                                 00326350
  151.         K=K-1                                                           00326360
  152.         KK=K                                                            00326370
  153.         IF(KOPT.GT.0)KK=NORD(K)                                         00326380
  154.         DO 7 J=1,NREX                                                   00326390
  155.         NN=ARE(2,J)                                                     00326400
  156.         IF(KK.NE.NN)GO TO 7                                             00326410
  157.         READ(NT2)A                                                      00326420
  158.         DO 5 M=1,6                                                      00326430
  159.         DO 5 L=1,LL                                                     00326440
  160. 5       XXK(J,M,L)=A(M,L)                                               00326450
  161.         GO TO 8                                                         00326460
  162. 7       CONTINUE                                                        00326470
  163.         READ(NT2)                                                       00326480
  164. 8       CONTINUE                                                        00326490
  165. 10      CONTINUE                                                        00326500
  166.       KSHF2=0                                                           00326510
  167.       KSHF=1-NDPBLK                                                     00326520
  168.       KNT=0                                                             00326530
  169.       DO 140 I=1,NBLK                                                   00326540
  170.       REWIND NT2                                                        00326550
  171.       KOUNT=0                                                           00326560
  172.       KK=NUMNP+1                                                        00326570
  173.       KSHF=KSHF+NDPBLK                                                  00326580
  174.       KSHF2=KSHF2+NDPBLK                                                00326590
  175.       DO 110 JJ=1,NUMNP                                                 00326600
  176.       KK=KK-1                                                           00326610
  177.       READ (NT2) A                                                      00326620
  178.       KCH= KK                                                           00326630
  179.       IF(KOPT.GT.0) KCH=NORD(KK)                                        00326640
  180.       IF(KCH.LT.KSHF.OR.KCH.GT.KSHF2)  GO TO 110                        00326650
  181.       KNT=KNT+1                                                         00326660
  182.       KOUNT=KOUNT+1                                                     00326670
  183.       NSHFT=KCH-KSHF+1                                                  00326680
  184.       DO 100 K=1,6                                                      00326690
  185.       DO 100 M=1,LL                                                     00326700
  186.   100 B(NSHFT,K,M)=A(K,M)                                               00326710
  187.         IF(NREX.LE.0)GO TO 109                                          00326720
  188.         DO 108 J=1,NREX                                                 00326730
  189.         NN=ARE(1,J)+1                                                   00326740
  190.         NK=ARE(2,J)                                                     00326750
  191.         DO 107 K=3,NN                                                   00326760
  192.         N=ARE(K,J)                                                      00326770
  193.         IF(N.NE.NSHFT)GO TO 107                                         00326780
  194.         DO 101 M=4,6                                                    00326790
  195.         DO 101 L=1,LL                                                   00326800
  196. 101     B(NSHFT,M,L)=XXK(J,M,L)                                         00326810
  197.         NQA=NSHFT                                                       00326820
  198.         NQB=NK                                                          00326830
  199.         IF(KOPT.LE.0)GO TO 1015                                         00326840
  200.         DO 1010 L=1,NUMNP                                               00326850
  201.         IF(NORD(L).NE.NSHFT)GO TO 1009                                  00326860
  202.         NQA=L                                                           00326870
  203. 1009    IF(NORD(L).NE.NK)GO TO 1010                                     00326880
  204.         NQB=L                                                           00326890
  205. 1010    CONTINUE                                                        00326900
  206. 1015    CONTINUE                                                        00326910
  207.         DO 102 M=1,3                                                    00326920
  208.         CALL UNPKID(AD,NUMNP,X,XJ,1,NQA,M)                              00326930
  209.         CALL UNPKID(AD,NUMNP,X,XK,1,NQB,M)                              00326940
  210. 102     DX(M)=XK-XJ                                                     00326950
  211.         DO 104 L=1,LL                                                   00326960
  212.         B(NSHFT,1,L)=XXK(J,1,L)-XXK(J,5,L)*DX(3)+XXK(J,6,L)*DX(2)       00326970
  213.         B(NSHFT,2,L)=XXK(J,2,L)+XXK(J,4,L)*DX(3)-XXK(J,6,L)*DX(1)       00326980
  214.         B(NSHFT,3,L)=XXK(J,3,L)-XXK(J,4,L)*DX(2)+XXK(J,5,L)*DX(1)       00326990
  215. 104     CONTINUE                                                        00327000
  216.         GO TO 109                                                       00327010
  217. 107     CONTINUE                                                        00327020
  218. 108     CONTINUE                                                        00327030
  219. 109     CONTINUE                                                        00327040
  220.       IF(NSLAVE.EQ.0) GO TO 1200                                        00327050
  221.       DO 1120 J=1,NSLAVE                                                00327060
  222.       IF(KK.EQ.ISL(J,1)) GO TO 1130                                     00327070
  223.  1120 CONTINUE                                                          00327080
  224.       GO TO 1200                                                        00327090
  225.  1130 CONTINUE                                                          00327100
  226.       ISLRF=J                                                           00327110
  227.       DO 1180 J=1,3                                                     00327120
  228.       NMAST=MOD(ISL(ISLRF,J+1),10000)                                   00327130
  229.       IF(NMAST.EQ.0) GO TO 1180                                         00327140
  230.       DO 1160 M=1,3                                                     00327150
  231.       CALL UNPKID(AD,NUMNP,X,XJ,1,NMAST,M)                              00327160
  232.       CALL UNPKID(AD,NUMNP,X,XK,1,KK,M)                                 00327170
  233.  1160 DX(M)=XK-XJ                                                       00327180
  234.       DO 1170 L=1,LL                                                    00327190
  235.       IF(J.EQ.1) B(NSHFT,1,L)=B(NSHFT,1,L)+DX(3)*B(NSHFT,5,L)           00327200
  236.      1                                    -DX(2)*B(NSHFT,6,L)           00327210
  237.       IF(J.EQ.2) B(NSHFT,2,L)=B(NSHFT,2,L)-DX(3)*B(NSHFT,4,L)           00327220
  238.      1                                    +DX(1)*B(NSHFT,6,L)           00327230
  239.       IF(J.EQ.3) B(NSHFT,3,L)=B(NSHFT,3,L)+DX(2)*B(NSHFT,4,L)           00327240
  240.      1                                    -DX(1)*B(NSHFT,5,L)           00327250
  241.  1170 CONTINUE                                                          00327260
  242.  1180 CONTINUE                                                          00327270
  243.  1200 CONTINUE                                                          00327280
  244.       IF(KOUNT.EQ.NDPBLK.OR.KNT.EQ.NUMNP)  GO TO 120                    00327290
  245.   110 CONTINUE                                                          00327300
  246.   120 KNT1=(I-1)*NDPBLK                                                 00327310
  247.       DO 130 J=1,NDPBLK                                                 00327320
  248.       KNT1=KNT1+1                                                       00327330
  249.       IF(KNT1.GT.NUMNP) GO TO 150                                       00327340
  250.       WRITE(6,160)KNT1,(M,(B(J,K,M),K=1,6),M=1,LL)                      00327350
  251.       IF(NDIS.GT.0) WRITE (NDIS,170) KNT1,(  (B(J,K,M),K=1,3),M=1,LL)   00327360
  252.       IF(NDIS.GT.0.AND.KROT.EQ.2) WRITE (NDIS,170) KNT1,(  (B(J,K,M),K=400327370
  253.      $,6),M=1,LL)                                                       00327380
  254.         DO 125 M=1,LL                                                   00327390
  255. 125     WRITE(32,200)KNT1,M,(B(J,K,M),K=1,6)                            00327400
  256. 200     FORMAT(2I5,6F20.10)                                             00327410
  257.   130 CONTINUE                                                          00327420
  258.   140 CONTINUE                                                          00327430
  259.   150 IF(KOPT.GT.0) WRITE(6,180)                                        00327440
  260.   160 FORMAT(1H0,I4,I5,1P3E12.3,3E11.2/(I10,3E12.3,3E11.2))             00327450
  261.   170 FORMAT(I10,7E10.4/(8E10.4))                                       00327460
  262.   180 FORMAT(// 3X,46H*** NOTE *** NODE NUMBERS ARE ORIGINAL NUMBERS //)00327470
  263.       RETURN                                                            00327480
  264.       END                                                               00327490
  265.       SUBROUTINE PRINT4(ID,D,B,NEQB,NUMNP,LL,NBLOCK,NEQ,NT,NF,DIS,ISL,  00175920
  266.      1NSLDM)                                                            00175930
  267.       IMPLICIT REAL*8(A-H,O-Z)                                          00175940
  268.       REAL*8  ID                                                        00175950
  269.       COMMON/PREP/XMX,XAD,KSKIP,NDYN,I1,RRPREP(7)                       R0175960
  270.       COMMON /OUT/NRES,NSTR,NDIS,NROUT(7)                               R0175970
  271.       DIMENSION DIS(10,LL),ISL(NSLDM,4)                                 00175980
  272.       COMMON /QTSARG/ NEQ3(10),RRQTSA(995)                              R0175990
  273.       COMMON /GPS/ NEQ4(10),NRGPS(10)                                   R0176000
  274.       COMMON/SLVE/NSLAVE                                                00176010
  275.       COMMON /ELPAR/ XPAR(14),NDUM(8),MTOT                              00176020
  276.      $,IZX(6),NUMEL,NUMEL2,NRELPA(41)                                   R0176030
  277.         COMMON/RIGID/IIA(20),NREX                                       00176040
  278.       COMMON A(1)                                                       00176050
  279.       DIMENSION ID(NUMNP,3),B(NEQB,LL),D(6,LL)                          00176060
  280.       IF(NDIS.LT.0) RETURN                                              00176070
  281.       REWIND NT                                                         00176080
  282.       IF(NF.GT.0) READ (NT)                                             00176090
  283.       REWIND 8                                                          00176100
  284.       READ (8) ID                                                       00176110
  285.       IF(NSLAVE.NE.0) REWIND 30                                         00176120
  286.       IF(NSLAVE.NE.0) READ(30)((ISL(I,J),J=1,4),I=1,NSLAVE)             00176130
  287.       REWIND 17                                                         00176140
  288.       REWIND 18                                                         00176150
  289.         NREL=NREX                                                       00176160
  290.         IF(NREL.LE.0)NREL=1                                             00176170
  291.       NDPBLK=(MTOT-(16*LL)-4*NUMNP-(6*LL+51)*NREL-NSLDM*4)/(6*LL)       00176180
  292.       NBLK= (NUMNP-1)/NDPBLK+1                                          00176190
  293.       KK=1                                                              00176200
  294.       NFIL=1                                                            00176210
  295.       IF(NDIS.GT.0) WRITE(NDIS,7123)NFIL,LL,NDYN,NDIS,NSTR,NUMNP,NUMEL,N00176220
  296.      $UMEL2                                                             00176230
  297. 7123  FORMAT(2I5,5X,7I5)                                                00176240
  298.       M=NEQ                                                             00176250
  299.       NN=NEQB*NBLOCK                                                    00176260
  300.       IF(NF.EQ.0) WRITE (6,220)                                         00176270
  301.       IF(NF.GT.0) WRITE (6,240)                                         00176280
  302.       N=NUMNP                                                           00176290
  303.       DO 100 I=1,10                                                     00176300
  304.   100 NEQ3(I)=0                                                         00176310
  305.       DO 210 KK=1,NUMNP                                                 00176320
  306.       I=6                                                               00176330
  307.       DO 190 II=1,6                                                     00176340
  308.       DO 110 L=1,LL                                                     00176350
  309.   110 D(I,L)=0.                                                         00176360
  310.       IF(M.GT.NN) GO TO 120                                             00176370
  311.       IF (M.EQ.0) GO TO 120                                             00176380
  312.       READ (NT) B                                                       00176390
  313.       NN=NN-NEQB                                                        00176400
  314.       K=M-NN                                                            00176410
  315.       ND=0                                                              00176420
  316.   120 CALL UNPKID ( ID  ,NUMNP,W      ,WX      ,2,N,I)                  00176430
  317.       NNN=W                                                             00176440
  318.       IF(NNN.LT.1) GO TO 190                                            00176450
  319.       K=M-NN                                                            00176460
  320.       KI=0                                                              00176470
  321.       DO 130 L=1,10                                                     00176480
  322.       IF(NNN.EQ.NEQ4(L)) KI=L                                           00176490
  323.   130 CONTINUE                                                          00176500
  324.       IF(KI.EQ.0) GO TO 160                                             00176510
  325.       IF(NEQ3(KI).GT.0) GO TO 140                                       00176520
  326.       K=K-M+NNN                                                         00176530
  327.       IF(K.LT.0) GO TO 140                                              00176540
  328.          NEQ3(KI)=1                                                     00176550
  329.       IF(NNN.EQ.M)  M=M-1                                               00176560
  330.       GO TO 170                                                         00176570
  331.   140 DO 150 L=1,LL                                                     00176580
  332.   150 D(I,L)=DIS(KI,L)                                                  00176590
  333.       IF(NNN.EQ.M)  M=M-1                                               00176600
  334.       GO TO 190                                                         00176610
  335.   160 CONTINUE                                                          00176620
  336.       IF(NSLAVE.EQ.0) GO TO 168                                         00176630
  337.       DO 163 J=1,NSLAVE                                                 00176640
  338.       IF(N.EQ.ISL(J,1)) GO TO 164                                       00176650
  339.   163 CONTINUE                                                          00176660
  340.       GO TO 168                                                         00176670
  341.   164 CONTINUE                                                          00176680
  342.       IRK=I                                                             00176690
  343.       IF(IRK.LE.3) NMAST=MOD(ISL(J,IRK+1),10000)                        00176700
  344.       IF(IRK.GT.3) NMAST=ISL(J,IRK-2)/10000                             00176710
  345.       IF(NMAST.EQ.0) GO TO 168                                          00176720
  346.       NEND=NN+NEQB+1                                                    00176730
  347.       IF(NNN.LE.NN) GO TO 1170                                          00176740
  348.       IF(NNN.GE.NEND) GO TO 1195                                        00176750
  349.       KI=NNN-NN                                                         00176760
  350.       DO 165 L=1,LL                                                     00176770
  351.   165 D(I,L)=B(KI,L)                                                    00176780
  352.       GO TO 190                                                         00176790
  353.  1170 NNRK=NN                                                           00176800
  354.  1175 NNRK=NNRK-NEQB                                                    00176810
  355.       NENDRK=NNRK+NEQB+1                                                00176820
  356.       READ (NT) B                                                       00176830
  357.       IF (NNN.LE.NNRK) GO TO 1175                                       00176840
  358.       KI=NNN-NNRK                                                       00176850
  359.       DO 1180 L=1,LL                                                    00176860
  360.  1180 D(I,L)=B(KI,L)                                                    00176870
  361.       IF(NN.EQ.NNRK) GO TO 190                                          00176880
  362.       REWIND NT                                                         00176890
  363.       NNRK=NEQB*NBLOCK                                                  00176891
  364.       READ (NT)                                                         00176900
  365.       GO TO 1230                                                        00176910
  366.  1195 REWIND NT                                                         00176920
  367.       READ (NT)                                                         00176930
  368.       NNRK=NEQB*NBLOCK                                                  00176940
  369.  1200 NNRK=NNRK-NEQB                                                    00176950
  370.       READ(NT) B                                                        00176960
  371.       IF(NNN.LE.NNRK) GO TO 1200                                        00176970
  372.       KI=NNN-NNRK                                                       00176980
  373.       DO 1220 L=1,LL                                                    00176990
  374.  1220 D(I,L)=B(KI,L)                                                    00177000
  375.       IF(NN.EQ.NNRK) GO TO 190                                          00177010
  376.  1230 NNRK=NNRK-NEQB                                                    00177020
  377.       NENDRK=NNRK+NEQB+1                                                00177030
  378.       READ (NT)                                                         00177040
  379.       IF(NN.EQ.NNRK) GO TO 190                                          00177050
  380.       GO TO 1230                                                        00177060
  381.   168 CONTINUE                                                          00177070
  382.       M=M-1                                                             00177080
  383.   170 KND=K-ND                                                          00177090
  384.       DO 180 L=1,LL                                                     00177100
  385.       IF(KI.EQ.0) GO TO 180                                             00177110
  386.       DIS(KI,L)=B(KND,L)                                                00177120
  387.   180 D(I,L)=B(KND,L)                                                   00177130
  388.   190 I=I-1                                                             00177140
  389.   200 FORMAT (2I5)                                                      00177150
  390.       WRITE (18) D                                                      00177160
  391.   210 N=N-1                                                             00177170
  392.       K=1+10*LL                                                         00177180
  393.       N2=K+NUMNP                                                        00177190
  394.       N3=N2+6*LL                                                        00177200
  395.       N4=N3+6*LL*NDPBLK                                                 00177210
  396.         N5=N4+NUMNP*3                                                   00177220
  397.         N6=N5+NREL*6*LL                                                 00177230
  398.         N7=N6+51*NREL                                                   00177240
  399.       N8=N7+NSLAVE*4                                                    00177250
  400.       IF(N8.GT.MTOT) CALL ERROR(N8-MTOT)                                00177260
  401.       CALL WRDIS4(A(K),A(N2),A(N3),NUMNP,LL,NDPBLK,NDIS,NBLK            00177270
  402.      &  ,A(N4),A(N5),A(N6),NREL,A(N7),NSLDM)                            00177280
  403.       RETURN                                                            00177290
  404.   220 FORMAT (40H1.......NODE DISPLACEMENTS AND ROTATIONS//             00177300
  405.      $  5H NODE, 5H LOAD ,11X, 1HX, 11X, 1HY, 11X ,1HZ ,9X, 2HXX,       00177310
  406.      $  9X, 2HYY, 9X, 2HZZ)                                             00177320
  407.   230 FORMAT (1H0,I4,I5,1P3E12.3,3E11.2/(I10,3E12.3,3E11.2))            00177330
  408.   240 FORMAT (19H1.......MODE SHAPES  //                                00177340
  409.      $  5H0NODE, 5H MODE, 11X, 1HX, 11X, 1HY, 11X, 1HZ, 9X ,2HXX,       00177350
  410.      $   9X, 2HYY, 9X, 2HZZ)                                            00177360
  411.   250 FORMAT (I10,7E10.4/(8E10.4))                                      00177370
  412.       END                                                               00177380
  413.       SUBROUTINE MODE4 (NEQ,MBAND,NBLOCK,NEQB,NF,MTOT,IFPR,IFSS,RTOL,   00137150
  414.      $NITEM,COFQ)                                                       00137160
  415.       IMPLICIT REAL*8 (A-H,O-Z)                                         00137170
  416.       COMMON /EXTRA/ MODEX,NREXTR(25)                                   R0137180
  417.       COMMON/DYN3/ NEIG,NAD,ANORM,NVV,NFO                               00137190
  418.       COMMON /DYN4/KDYN,NRESS,NCRD,NCWT,NRESS1                          R0137200
  419.       COMMON/MASS/LMASS                                                 00137210
  420.        COMMON /TAPES/NSTIF,NRED,NL,NR,NT,NMASS                          00137220
  421.       COMMON /SSIT/ NV                                                  00137230
  422. CC    COMMON /AAA1/AAR(8000)                                            R0137231
  423.        COMMON A(1)                                                      00137240
  424.        IF (NEIG.GT.0) GO TO 120                                         00137250
  425.       IF(NVV.GE.NF) GO TO 100                                           00137260
  426.       WRITE (6,160) NF,NVV                                              00137270
  427.       MODEX=1                                                           00137280
  428.       RETURN                                                            00137290
  429.   100 CONTINUE                                                          00137300
  430.        NIM=3                                                            00137310
  431.        NVM=6                                                            00137320
  432.        NC=NF+NIM                                                        00137330
  433.        NCA=NEQ*MAX0(MBAND,NC)                                           00137340
  434.        N2=1 + NCA                                                       R0137350
  435.        N3=N2+NEQ                                                        00137360
  436.        IF(LMASS.EQ.1) N3=N2+NEQ*MBAND                                   00137370
  437.        N4=N3+NEQ                                                        00137380
  438.        N5=N4+NEQ                                                        00137390
  439.        N6=N5+NEQ                                                        00137400
  440.        N7=N6+NEQ*NVM                                                    00137410
  441.        N8=N7+NEQ*NVM                                                    00137420
  442.        N9=N8+NC                                                         00137430
  443.        N10=N9+NC                                                        00137440
  444.        N11=N10+NC                                                       00137450
  445.        N12=N11+NC                                                       00137460
  446.   110 CONTINUE                                                          00137470
  447.        CALL SECANT  (A(1),A(N2),A(N3),A(N4),A(N5),A(N6),A(N7),A(N8),A(N900137480
  448.      $),A(N10),A(N11),A(N12),NEQ,MBAND,NF,NC,IFPR,ANORM,COFQ)           00137490
  449.       IF(MODEX.EQ.1) RETURN                                             00137500
  450.        GO TO 150                                                        00137510
  451.   120  NWA=NEQB*MBAND                                                   00137520
  452.        NV=2*NF                                                          00137530
  453.        IF (NF.GT.8) NV=NF+8                                             00137540
  454.        IF (NAD.NE.0) NV=NAD                                             00137550
  455.        IF(NV.GT.NVV.AND.IABS(KDYN).EQ.11) NV=NVV                        00137560
  456.       IF(NF.EQ.1.AND.IABS(KDYN).EQ.11) NV=NF                            00137570
  457.        IF (NVV.GE.NV) GO TO 130                                         00137580
  458.        WRITE (6,160) NV,NVV                                             00137590
  459.       MODEX=1                                                           00137600
  460.       RETURN                                                            00137610
  461.   130  NWV=NV*NEQB                                                      00137620
  462.        NTB=(MBAND-2)/NEQB+1                                             00137630
  463.        IF (NTB.GE.NBLOCK) NTB=NBLOCK-1                                  00137640
  464.        NWVV=NWV*(NTB+1)                                                 00137650
  465.       IF(NCRD.LE.0)GO TO 140                                            00137660
  466.       IF(NRESS.EQ.0)REWIND NCRD                                         00137670
  467.       READ (NCRD) NEQO,MBLOCK ,NEQBO,MBANDO,N1O,NFO                     00137680
  468.       MMA=1                                                             00137690
  469.       IF(LMASS.EQ.1) MMA=MBAND                                          00137700
  470.       N2=1+NEQBO*NFO                                                    00137710
  471.       N3=N2+NEQB*NV                                                     00137720
  472.       N4=N3+NEQB*MMA                                                    00137730
  473.       CALL SBLOCK(A(1),A(N2),A(N3),A(N4),NFO,NV,NEQBO,NEQB,MBLOCK,NBLOCK00137740
  474.      $,MMA,NEQ,NEQO)                                                    00137750
  475.   140  CONTINUE                                                         00137760
  476.        CALL SSPACE  (NEQ,MBAND,NBLOCK,NEQB,NF,NV,NWA,NWV,NWVV,NTB,IFPR, 00137770
  477.      $IFSS,NITEM,RTOL,ANORM,COFQ)                                       00137780
  478.   150  RETURN                                                           00137790
  479.   160 FORMAT (/// 32H0***ERROR   SOLUTION TERMINATED., /                00137800
  480.      $        12X,40HNUMBER OF NON-ZERO MASSES REQUIRED     =, I5 /     00137810
  481.      $        12X,40HNUMBER OF EXISTING MASSES IN THE MODEL =, I5 )     00137820
  482.       END                                                               00137830
  483.       DOUBLE PRECISION FUNCTION MODUE (T,M)                             00150250
  484.       IMPLICIT REAL*8(A-H,O-Z)                                          00150260
  485.       COMMON/MATL/MATLCO                                                00150270
  486.       DATA NHIGH/4HHIGH/                                                R0150280
  487.       IF(MATLCO.NE.NHIGH)GO TO 10                                       00150290
  488.       CALL MODUE2 (T,M,X)                                               00150300
  489.       MODUE=X*1.0D6                                                     00150310
  490.       RETURN                                                            00150320
  491.    10 CALL MODUE1 (T,M,X)                                               00150330
  492.       MODUE=X*1.0D6                                                     00150340
  493.       RETURN                                                            00150350
  494.       END                                                               00150360
  495.       SUBROUTINE BANDET (A,B,V,MAXA,NN,NWA,RA,NSCH,DET,ISCALE,KK)       0021770 
  496.       IMPLICIT REAL*8 (A-H,O-Z)                                         00021780
  497.       COMMON /EXTRA/ MODEX,NREXTR(25)                                   R0021790
  498.       COMMON /MASS/ LMASS                                               00021800
  499.       COMMON /TAPES/NSTIF,NRTAPE(5)                                     R0021810
  500.        DIMENSION A(NWA),B(1),V(1),MAXA(1)                               00021820
  501.        NR=NN-1                                                          00021830
  502.        IF (KK-2) 100,360,400                                            00021840
  503.   100  TOL=1.0E+07                                                      00021850
  504.        RTOL=1.0E-10                                                     00021860
  505.       IPOW=80                                                           00021870
  506.       USCALE=2.D0**IPOW                                                 00021880
  507.       BSCALE=2.D0**(-IPOW)                                              00021890
  508.       DET=1.0D0                                                         00021900
  509.       ISCALE=0                                                          00021910
  510.        NTF=3                                                            00021920
  511.        IS=1                                                             00021930
  512.   110 CALL RDWRT(NSTIF,A,1,6,I)                                         00021940
  513. CC    CALL EXPAND(A,NWA,NSTIF)                                          00021950
  514.       READ (NSTIF) (A(IIR),IIR=1,NWA)                                   R0021951
  515.       IF(LMASS.EQ.1) GO TO 120                                          00021960
  516.       CALL QMR2(A(1),A(1),RA,B(1),NN,1,1,1)                             00021970
  517.       GO TO 130                                                         00021980
  518.   120 CALL QMR3(A(1),A(1),RA,B(1),NN,1,1,1,NWA)                         00021990
  519.   130  IF (NWA.EQ.NN) GO TO 280                                         00022000
  520.        DO 270 N=1,NR                                                    00022010
  521.        IH=N+NWA-NN                                                      00022020
  522.   140  IF (A(IH)) 160,150,160                                           00022030
  523.   150  IH=IH-NN                                                         00022040
  524.        GO TO 140                                                        00022050
  525.   160  MAXA(N)=IH                                                       00022060
  526.        PIV=A(N)                                                         00022070
  527.       IF(PIV) 200,170,200                                               00022080
  528.   170 IS = IS+1                                                         00022090
  529.       IF(IS.LE.NTF) GO TO 190                                           00022100
  530.   180 WRITE (6,450) NTF,RA                                              00022110
  531.       MODEX=1                                                           00022120
  532.       RETURN                                                            00022130
  533.   190 RA = RA*(1.0E0-RTOL)                                              00022140
  534.       GO TO 110                                                         00022150
  535.   200  IL=N+NN                                                          00022160
  536.        L=N                                                              00022170
  537.        DO 260 I=IL,IH,NN                                                00022180
  538.        L=L+1                                                            00022190
  539.        C=A(I)                                                           00022200
  540.        IF (C) 210,260,210                                               00022210
  541.   210  C=C/PIV                                                          00022220
  542.        IF ( DABS(C).LT.TOL) GO TO 240                                   00022230
  543.   220  IS=IS+1                                                          00022240
  544.        IF (IS.LE.NTF) GO TO 230                                         00022250
  545.       GO TO 180                                                         00022260
  546.   230  RA=RA*(1.0E0-RTOL)                                               00022270
  547.        GO TO 110                                                        00022280
  548.   240  J=L-I                                                            00022290
  549.       CALL QMR2(A(L),A(L),C,A(I),(IH-I)/NN+1,NN,NN,NN)                  00022300
  550.        A(I)=C                                                           00022310
  551.   260  CONTINUE                                                         00022320
  552.   270  CONTINUE                                                         00022330
  553.   280  IF (A(NN).NE.0.0E0) GO TO 300                                    00022340
  554.        AA= DABS(A(1))                                                   00022350
  555.        DO 290 I=2,NR                                                    00022360
  556.   290  AA=AA+ DABS(A(I))                                                00022370
  557.        A(NN)=-(AA/NR)*1.0D-14                                           00022380
  558.   300  NSCH=0                                                           00022390
  559.        ISC=0                                                            00022400
  560.        DET=1.0E0                                                        00022410
  561.        DO 320 I=1,NN                                                    00022420
  562.   310  DET=DET*A(I)                                                     00022430
  563.       IF(DET.LT.USCALE.AND.DET.GE.BSCALE) GO TO 320                     00022440
  564.       CALL RSC(DET,ISCALE)                                              00022450
  565.   320  IF (A(I).LT.0.E0) NSCH=NSCH+1                                    00022460
  566.       RETURN                                                            00022470
  567.   360  IL=NN                                                            00022480
  568.        DO 390 N=1,NR                                                    00022490
  569.        C=V(N)                                                           00022500
  570.        V(N)=C/A(N)                                                      00022510
  571.        IF (NWA-NN) 370,390,370                                          00022520
  572.   370  IL=IL+1                                                          00022530
  573.        IH=MAXA(N)                                                       00022540
  574.        K=N                                                              00022550
  575.       NP1=N+1                                                           00022560
  576.       CALL QMR2(V(NP1),V(NP1),C,A(IL),(IH-IL)/NN+1,1,1,NN)              00022570
  577.   390  CONTINUE                                                         00022580
  578.        V(NN)=V(NN)/A(NN)                                                00022590
  579.   400  IF (NWA-NN) 410,440,410                                          00022600
  580.   410  N=NN                                                             00022610
  581.        DO 430 L=2,NN                                                    00022620
  582.        N=N-1                                                            00022630
  583.        IL=N+NN                                                          00022640
  584.        IH=MAXA(N)                                                       00022650
  585.        K=N                                                              00022660
  586.        DO 420 I=IL,IH,NN                                                00022670
  587.        K=K+1                                                            00022680
  588.   420  V(N)=V(N)-A(I)*V(K)                                              00022690
  589.   430  CONTINUE                                                         00022700
  590.   440  RETURN                                                           00022710
  591.   450 FORMAT (37H0***ERROR   SOLUTION STOP IN *BANDET*, / 12X,          00022720
  592.      $        1H(,I3,37H) TRIANGULAR FACTORIZATIONS ATTEMPTED, / 12X,   00022730
  593.      $        16HCURRENT SHIFT = ,E20.14 / 1X)                          00022740
  594.       END                                                               00022750
  595.       SUBROUTINE SBLOCK(VOLD,VNEW,XM,VR,NFO,NV,NEQBO,NEQB,MBLOCK,NBLOCK,00221890
  596.      $MMA,NEQ,NEQO)                                                     00221900
  597.       IMPLICIT REAL*8 (A-H,O-Z)                                         00221910
  598.       COMMON /TAPES/ NSTIF,NRED,NL,NR,NT,NMASS                          00221920
  599.       COMMON /DYN4/KDYN,NRESS,NCRD,NCWT,NRESS1                          R0221930
  600.       COMMON/MASS/LMASS                                                 00221940
  601. CC    COMMON /AAA1/ VOLD(200,40)                                        R0221941
  602.       DIMENSION VOLD(NEQBO,NFO),VNEW(NEQB,NV),XM(NEQB,MMA)              R0221950
  603.       DIMENSION VR(NEQB,NV)                                             00221960
  604.       LRDS=NEQB*4*(MMA+1)                                               00221970
  605.       LBKS=NEQB*4*MMA                                                   00221980
  606.       LNCRDR=NEQBO*NFO*4                                                00221990
  607.       NWDSV=NEQB*NV                                                     00222000
  608.       NWDSV=NEQB*NV                                                     00222010
  609.       NWMA=NEQB*MMA                                                     00222020
  610.       IF(LMASS.NE.1) GO TO 50                                           00222030
  611.       WRITE(6,998)                                                      00222040
  612.   998 FORMAT(5X,14HVOLD IN SBLOCK)                                      00222050
  613.       JJO=0                                                             00222060
  614.       JJ=0                                                              00222070
  615.       INO=0                                                             00222080
  616.       NEQBLN=NEQ-NEQB*(NBLOCK-1)                                        00222090
  617.       NEQBLO=NEQO-NEQBO*(MBLOCK-1)                                      00222100
  618.  1120 RRSB = 0.0D0                                                      R0222101
  619.       CALL MEMSET(RRSB ,VNEW(1,1),NWDS)                                 R0222110
  620.       INN=NEQB                                                          00222120
  621.  1150 IF(INO.EQ.0) GO TO 1180                                           00222130
  622.       GO TO 1200                                                        00222140
  623.  1180 CONTINUE                                                          00222150
  624.  1190 CONTINUE                                                          00222160
  625.       JJ0=JJ0+1                                                         00222170
  626.       IF(JJO.GT.MBLOCK) GO TO 1300                                      00222180
  627.       READ(NCRD) VOLD                                                   00222190
  628.       INO=NEQBO                                                         00222200
  629.       IF(JJO.NE.1) GO TO 1220                                           00222210
  630.       NN1=INO-NEQBLO                                                    00222220
  631.       NN2=INN-NEQBLN                                                    00222230
  632.       INO=INO-NN1+NN2                                                   00222240
  633.  1220 CONTINUE                                                          00222250
  634.  1230 IF(INN.EQ.0) GO TO 1250                                           00222260
  635.       IF(INO.GT.NEQBO) GO TO 1245                                       00222270
  636.  1200 DO 1240 J=1,NFO                                                   00222280
  637.       VNEW(INN,J)=VOLD(INO,J)                                           00222290
  638.  1240 CONTINUE                                                          00222300
  639.  1245 INN=INN-1                                                         00222310
  640.       INO=INO-1                                                         00222320
  641.       IF(INO.EQ.0.AND.INN.NE.0) GO TO 1190                              00222330
  642.       GO TO 1230                                                        00222340
  643.  1250 WRITE(NL)VNEW                                                     00222350
  644.       JJ=JJ+1                                                           00222360
  645.       GO TO 1120                                                        00222370
  646.  1300 CONTINUE                                                          00222380
  647.       CALL GDYNIN(VNEW,NV,NBLOCK,NEQB,18,NL)                            00222390
  648.       CALL QMBAND(XM,VNEW,VR(1,1),VR(1,1),VR(1,1),NEQB,MMA,NV,NBLOCK,   00222400
  649.      1NWMA,NEQ,NMASS,18,23,24,NT)                                       00222410
  650.       RETURN                                                            00222420
  651.    50 CONTINUE                                                          00222430
  652.       DO 100 L=1,MBLOCK                                                 00222440
  653.       READ (NCRD)                                                       00222450
  654.   100 CONTINUE                                                          00222460
  655.       KBLOCK=1                                                          00222470
  656.       LBLOCK=0                                                          00222480
  657.       I=0                                                               00222490
  658.       K=0                                                               00222500
  659.       REWIND NMASS                                                      00222510
  660.       READ (NMASS) XM                                                   00222520
  661.       REWIND NT                                                         00222530
  662.       BACKSPACE NCRD                                                    00222540
  663.       READ (NCRD) VOLD                                                  00222550
  664.       BACKSPACE NCRD                                                    00222560
  665.       GO TO 160                                                         00222570
  666.   110 K=K+1                                                             00222580
  667.       I=I+1                                                             00222590
  668.       XMM=XM(I,1)                                                       00222600
  669.       DO 120 J=1,NFO                                                    00222610
  670.   120 VNEW(I,J)=VOLD(K,J)*XMM                                           00222620
  671.       IF (K.LT.NEQBO) GO TO 140                                         00222630
  672.       K=0                                                               00222640
  673.       KBLOCK=1+KBLOCK                                                   00222650
  674.       IF(KBLOCK -MBLOCK ) 130,130,150                                   00222660
  675.   130 BACKSPACE NCRD                                                    00222670
  676.       READ (NCRD) VOLD                                                  00222680
  677.       BACKSPACE NCRD                                                    00222690
  678.   140 IF (I.LT.NEQB) GO TO 110                                          00222700
  679.       I=0                                                               00222710
  680.       READ (NMASS) XM                                                   00222720
  681.   150 LBLOCK=LBLOCK+1                                                   00222730
  682.       WRITE (NT) VNEW                                                   00222740
  683.       IF (LBLOCK.EQ.NBLOCK) RETURN                                      00222750
  684.   160 RRSB = 0.0D0                                                      R0222751
  685.       CALL MEMSET(RRSB ,VNEW(1,1),NWDSV)                                R0222760
  686.       GO TO 110                                                         00222770
  687.       END                                                               00222780
  688.       SUBROUTINE GDYNIN(VL,NV,NBLOCK,NEQB,N18,NL)                       00104670
  689.       IMPLICIT REAL*8 (A-H,O-Z)                                         00104680
  690.       DIMENSION VL(NEQB,NV)                                             00104690
  691.       LNLRC=NEQB*NV*4                                                   00104700
  692.       REWIND NL                                                         00104710
  693.       REWIND N18                                                        00104720
  694.       DO 90 I=1,NBLOCK                                                  00104730
  695.    90 READ (NL)                                                         00104740
  696.       DO 100 I=1,NBLOCK                                                 00104750
  697.       BACKSPACE NL                                                      00104760
  698.       READ (NL) VL                                                      00104770
  699.       BACKSPACE NL                                                      00104780
  700.   100 WRITE (N18) VL                                                    00104790
  701.       RETURN                                                            00104800
  702.       END                                                               00104810
  703.       SUBROUTINE QMBAND(B,V,A,C,D,NEQB,MBAND,NF,NBLOCK,NWMA,NEQ         00185790
  704.      1,NMASS,NL,MM1,MM2,NT)                                             00185800
  705.       IMPLICIT REAL*8(A-H,O-Z)                                          00185810
  706.       DIMENSION B(NEQB,MBAND),V(NEQB,NF),A(NEQB,NF)                     00185820
  707.      $,C(NEQB,NF),D(NEQB,NF)                                            00185830
  708.       NUM=NWMA                                                          00185840
  709.       N1=MM1                                                            00185850
  710.       N2=MM2                                                            00185860
  711.       CALL RDWRT(N1   ,A,1,6,I)                                         00185870
  712.       CALL RDWRT(N2   ,A,1,6,I)                                         00185880
  713.       CALL RDWRT(NMASS,A,1,6,I)                                         00185890
  714.       REWIND NL                                                         00185900
  715.       NEQBL=NEQ-(NBLOCK-1)*NEQB                                         00185910
  716.       NTB=(MBAND-2)/NEQB+1                                              00185920
  717.       IF (NTB.GE.NBLOCK) NTB=NBLOCK-1                                   00185930
  718.       DO 1000 N=1,NBLOCK                                                00185940
  719.       NEQBB=NEQB                                                        00185950
  720.       DO 90 I=1,NEQBB                                                   00185960
  721.       DO 90 J=1,NF                                                      00185970
  722.       C(I,J)=0.0E0                                                      00185980
  723.       D(I,J)=0.0E0                                                      00185990
  724.    90 A(I,J)=0.0E0                                                      00186000
  725.       IF(N.EQ.1) GO TO 500                                              00186010
  726.   100 IF(NTB.LT.1) GO TO 300                                            00186020
  727.       NMBEG=N-NTB                                                       00186030
  728.       IF(NMBEG.LE.0) NMBEG=1                                            00186040
  729.       NMEND=N-1                                                         00186050
  730.       NTEMP=NMBEG-1                                                     00186060
  731.       IF(NTEMP.EQ.0) GO TO 230                                          00186070
  732.       DO 220 J=1,NTEMP                                                  00186080
  733.       READ(NL) V                                                        00186090
  734.   220 CONTINUE                                                          00186100
  735.   230 CONTINUE                                                          00186110
  736.       MM=NMEND-NMBEG+1                                                  00186120
  737.       DO 260 NN=NMBEG,NMEND                                             00186130
  738.       READ(NL)V                                                         00186140
  739.       READ (N1) B                                                       00186150
  740.       DO 250 I=1,NEQBB                                                  00186160
  741.       DO 250 J=1,NF                                                     00186170
  742.       M=MM*NEQBB+I                                                      00186180
  743.       DO 240 K=1,NEQBB                                                  00186190
  744.       IF(M.GT.MBAND) GO TO 240                                          00186200
  745.       A(I,J)=A(I,J)+B(K,M)*V(K,J)                                       00186210
  746.   240 M=M-1                                                             00186220
  747.   250 CONTINUE                                                          00186230
  748.       MM=MM-1                                                           00186240
  749.       NTEMP=N-NN                                                        00186250
  750.  1992 FORMAT(5X,10E12.5)                                                00186260
  751.       IF(NTEMP.GE.NTB) GO TO 260                                        00186270
  752.       WRITE (N2) B                                                      00186280
  753.   260 CONTINUE                                                          00186290
  754.   300 CONTINUE                                                          00186300
  755.   500 CONTINUE                                                          00186310
  756.       READ(NMASS) B                                                     00186320
  757.       READ(NL) V                                                        00186330
  758.       DO 570 I=1,NEQBB                                                  00186340
  759.       DO 570 J=1,NF                                                     00186350
  760.       DO 550 K=1,NEQBB                                                  00186360
  761.       IF(K.GT.MBAND) GO TO 550                                          00186370
  762.       KK=I+K-1                                                          00186380
  763.       IF(KK.GT.NEQBB) GO TO 550                                         00186390
  764.       C(I,J)=C(I,J)+B(I,K)*V(KK,J)                                      00186400
  765.   550 CONTINUE                                                          00186410
  766.       IF(I.EQ.1) GO TO 570                                              00186420
  767.       IF(NEQBB.EQ.1) GO TO 570                                          00186430
  768.       KK=I-1                                                            00186440
  769.       L=I-NEQBB+1                                                       00186450
  770.       IF(L.LT.1) L=1                                                    00186460
  771.       M=I                                                               00186470
  772.       DO 560 K=L,KK                                                     00186480
  773.       IF(M.GT.MBAND) GO TO 560                                          00186490
  774.       C(I,J)=C(I,J)+B(K,M)*V(K,J)                                       00186500
  775.   560 M=M-1                                                             00186510
  776.   570 CONTINUE                                                          00186520
  777.       IF(NTB.LT.1) GO TO 900                                            00186530
  778.       IF(N.EQ.NBLOCK) GO TO 930                                         00186540
  779.       NTBB=NTB                                                          00186550
  780.       NTEMP=NTB+N                                                       00186560
  781.       IF(NTEMP.LE.NBLOCK) GO TO 580                                     00186570
  782.       NTBB=NBLOCK-N                                                     00186580
  783.   580 CONTINUE                                                          00186590
  784.       DO 650 NN=1,NTBB                                                  00186600
  785.       READ (NL) V                                                       00186610
  786.       DO 600 I=1,NEQBB                                                  00186620
  787.       DO 600 J=1,NF                                                     00186630
  788.       DO 590 K=1,NEQBB                                                  00186640
  789.       KK=NN*NEQBB+K-I+1                                                 00186650
  790.       IF(KK.GT.MBAND) GO TO 590                                         00186660
  791.       D(I,J)=D(I,J)+B(I,KK)*V(K,J)                                      00186670
  792.   590 CONTINUE                                                          00186680
  793.   600 CONTINUE                                                          00186690
  794.   650 CONTINUE                                                          00186700
  795.   900 CONTINUE                                                          00186710
  796.       REWIND NL                                                         00186720
  797.       WRITE (N2) B                                                      00186730
  798.   930 CONTINUE                                                          00186740
  799.       WRITE (NT) A                                                      00186750
  800.       M=N2                                                              00186760
  801.       N2=N1                                                             00186770
  802.       N1=M                                                              00186780
  803.       CALL RDWRT(N1,A,1,6,I)                                            00186790
  804.       CALL RDWRT(N2,A,1,6,I)                                            00186800
  805.  1000 CONTINUE                                                          00186810
  806.       RETURN                                                            00186820
  807.       END                                                               00186830
  808.       SUBROUTINE SECANT  (A,B,V,MAXA,W,VV,WW,ROOT,TIM,ERRVL,ERRVR,      00229210
  809.      $NITE,N,MA,NROOT,NC,IFPR,ANORM,COFQ)                               00229220
  810.       IMPLICIT REAL*8 (A-H,O-Z)                                         00229230
  811.       COMMON /EXTRA/ MODEX,NREXTR(25)                                   R0229240
  812.       COMMON/DYN4/KDYN,NRESS,NCRD,NCWT,NRESS1                           R0229250
  813.       COMMON /DYN5/ FRSHFT,RRDYN5(3)                                    R0229260
  814.       COMMON/MASS/LMASS                                                 00229270
  815. CC    COMMON /AAA1/ A(200,40)                                           R0229271
  816.        COMMON /TAPES/NSTIF,NRED,NL,NR,NT,NMASS                          00229280
  817.        DIMENSION A(N,NC),B(N,NC),V(N),W(N),VV(N,6),WW(N,6),ROOT(NC),    00229290
  818.      $TIM(NC),ERRVL(NC),ERRVR(NC)                                       R0229300
  819.        INTEGER NITE(200),MAXA(N)                                        R0229310
  820.       COMMON /QTSARG/ AT(400),RRQTSA(600)                               R0229320
  821.        IFPR = 1                                                         R0229321
  822.        ACTOL=1.0D-04                                                    00229330
  823.        RCBTOL=1.D-05                                                    00229340
  824.        RTOL=1.0D-10                                                     00229350
  825.       FACT=1.0D-3                                                       00229360
  826.        RQTOL=1.0D-12                                                    00229370
  827.       RITOL=1.0D-6                                                      00229380
  828.       NC1=NC+1                                                          00229390
  829.        NTF=5                                                            00229400
  830.        IITEM=10                                                         00229410
  831.        NITEM=20                                                         00229420
  832.       NITEMM=59                                                         00229430
  833.        NVM=6                                                            00229440
  834.        REWIND NT                                                        00229450
  835.        REWIND NMASS                                                     00229460
  836.       IF(LMASS.EQ.1) GO TO 50                                           00229470
  837.       READ (NMASS)(B(I,1),I=1,N)                                        00229480
  838.       GO TO 60                                                          00229490
  839.    50 READ (NMASS) ((B(I,J),I=1,N),J=1,MA)                              00229500
  840.    60 CONTINUE                                                          00229510
  841.        ETA=2.0E0                                                        00229520
  842.        NOV=0                                                            00229530
  843.        JR=1                                                             00229540
  844.        NSK=0                                                            00229550
  845.        NWA=N*MA                                                         00229560
  846.        ISC=1000                                                         00229570
  847.       MMA=1                                                             00229580
  848.       IF(LMASS.EQ.1) MMA=MA                                             00229590
  849.        NMWA=N*MMA                                                       00229600
  850.        IF (N.GT.1) GO TO 110                                            00229610
  851.       IF(B(1,1).GT.0.E0) GO TO 100                                      00229620
  852.       WRITE(6,1000)                                                     00229630
  853.       STOP                                                              00229640
  854.   100 CALL RDWRT(NSTIF,A,1,6,I)                                         00229650
  855. CC    CALL EXPAND(A,2  ,NSTIF)                                          00229660
  856.       READ (NSTIF) (A(II,1),II=1,2)                                     R0229661
  857.       ROOT(1)=A(1,1)/B(1,1)                                             00229670
  858.       NSCH=1                                                            00229680
  859.       IF(IABS(KDYN).EQ.11) A(1,1)=1.0D0/DSQRT(DABS(B(1,1)))             00229690
  860.       IF(IABS(KDYN).EQ.11) GO TO 760                                    00229700
  861.       A(1,1)= 1.E0/ DSQRT(B(1,1))                                       00229710
  862.       GO TO 760                                                         00229720
  863.   110 CALL SECOND(TIM1)                                                 00229730
  864.        RA=0.0E0                                                         00229740
  865.        RR=0.0E0                                                         00229750
  866.       CALL RDWRT(NSTIF,A,1,6,I)                                         00229760
  867. CC    CALL EXPAND(A,NWA,NSTIF)                                          00229770
  868.       WRITE (6,1001) N,NC,NSTIF
  869.  1001 FORMAT (5X,'*** N NC NSTIF IN SECANT ***',3I5/)
  870.       READ (NSTIF) ((A(II,JJ),II=1,N),JJ=1,MA)                          R0229771
  871.       DO 115 I=1,N                                                      00229780
  872.       IF(A(I,1).NE.0.0) GO TO 115                                       00229790
  873.       WRITE(6,114)I                                                     00229800
  874. 114   FORMAT(20X,8HEQUATION,I5,13H IS SINGULAR.//)                      00229810
  875.       MODEX=1                                                           00229820
  876.       A(I,1)=1.0                                                        00229830
  877. 115   V(I)=B(I,1)/A(I,1)                                                00229840
  878.       IF(MODEX.EQ.1) RETURN                                             00229850
  879.       DO 118 J=3,NC1                                                    00229860
  880.       IMAX=0.0                                                          00229870
  881.       RMAX=0.0                                                          00229880
  882.       DO 117 I=1,N                                                      00229890
  883.       IF(V(I).LT.RMAX) GO TO 117                                        00229900
  884.       RMAX=V(I)                                                         00229910
  885.       IMAX=I                                                            00229920
  886. 117   CONTINUE                                                          00229930
  887.       NITE(J)=IMAX                                                      00229940
  888. 118   V(IMAX)=0.0                                                       00229950
  889.       CALL BANDET(A,B,V,MAXA,N,NWA,RA,NSCH,DETA,IDETA,1)                00229960
  890.       IF(MODEX.EQ.1) RETURN                                             00229970
  891.        FA=DETA                                                          00229980
  892.       IFA=IDETA                                                         00229990
  893.       IFR=IFA                                                           00230000
  894.       IDETR=IDETA                                                       00230010
  895.        FR=FA                                                            00230020
  896.        DETR=DETA                                                        00230030
  897.       IF(A(N,1).GT.ANORM) GO TO 120                                     00230040
  898.        WRITE (6,820)                                                    00230050
  899.       MODEX=1                                                           00230060
  900.       RETURN                                                            00230070
  901.   120  IF (IFPR.EQ.1)                                                   00230080
  902.      $ WRITE(6,830)                                                     00230090
  903.       CALL QVCPY1(B,W,N)                                                00230100
  904.        RT=0.0E0                                                         00230110
  905.        IITE=0                                                           00230120
  906.        KK=2                                                             00230130
  907.   140  IITE=IITE+1                                                      00230140
  908.       CALL QVCOPY(W,V,N)                                                00230150
  909.        CALL BANDET (A,B,V,MAXA,N,NWA,RA,NSCH,DETA,IDETA,KK)             00230160
  910.       IF(MODEX.EQ.1) RETURN                                             00230170
  911.        KK=2                                                             00230180
  912.       CALL QVDOT(RQT,W,V,N,1,1)                                         00230190
  913.       CALL QVMPY2(W,B,V,N,MMA)                                          00230200
  914.       CALL QVDOT(RQB,W,V,N,1,1)                                         00230210
  915.        RQ=RQT/RQB                                                       00230220
  916.        IF (IFPR.EQ.1)                                                   00230230
  917.      $ WRITE (6,790) RQ                                                 00230240
  918.        IF(IABS(KDYN).EQ.11) BS=DSQRT(DABS(RQB))                         00230250
  919.        IF(IABS(KDYN).EQ.11) GO TO 1190                                  00230260
  920.        BS= DSQRT(RQB)                                                   00230270
  921.  1190 CONTINUE                                                          00230280
  922.       BSI=1.0E0/BS                                                      00230290
  923.        TOL= DABS(RQ-RT)/RQ                                              00230300
  924.        IF (TOL.LT.RCBTOL) GO TO 200                                     00230310
  925.       CALL QVMPY1(W,W,BSI,N,1,1,0)                                      00230320
  926.        RT=RQ                                                            00230330
  927.        IF (IITE.LT.IITEM) GO TO 140                                     00230340
  928.   200 CALL QVMPY1(V,V,BSI,N,1,1,0)                                      00230350
  929.       TOLI=100*TOL                                                      00230360
  930.       RB=RQ*(1.0D0-DMIN1(0.1D0,TOLI))                                   00230370
  931.        IS=0                                                             00230380
  932.   220  CALL BANDET (A,B,V,MAXA,N,NWA,RB,NSCH,DETB,IDETB,1)              00230390
  933.       IF(MODEX.EQ.1) RETURN                                             00230400
  934.        IF (IFPR.EQ.1)                                                   00230410
  935.      $ WRITE (6,850) RB,NSCH                                            00230420
  936.        FB=DETB                                                          00230430
  937.       IFB=IDETB                                                         00230440
  938.        IF (NSCH.EQ.0) GO TO 240                                         00230450
  939.        IS=IS+1                                                          00230460
  940.        IF (IS.LE.NTF) GO TO 230                                         00230470
  941.       WRITE (6,860) NTF                                                 00230480
  942.       MODEX=1                                                           00230490
  943.       RETURN                                                            00230500
  944.   230  RB=RB/(NSCH+1)                                                   00230510
  945.        GO TO 220                                                        00230520
  946.   240  IF (IFPR.EQ.1)                                                   00230530
  947.      $ WRITE (6,870)                                                    00230540
  948.        NITE(JR)=-1                                                      00230550
  949.        IF (IFPR.EQ.1)                                                   00230560
  950.      $ WRITE (6,880) JR,NITE(JR),RA,DETA,FA,ETA,ISC                     00230570
  951.        NITE(JR)=0                                                       00230580
  952.        IF (IFPR.EQ.1)                                                   00230590
  953.      $ WRITE (6,880) JR,NITE(JR),RB,DETB,FB,ETA,ISC                     00230600
  954.       RX=-0.05E0*RB                                                     00230610
  955.   250  IF (NSCH.GE.NROOT) GO TO 660                                     00230620
  956.        IF (RB.GT.COFQ) GO TO 660                                        00230630
  957.        DIF=FB-FA                                                        00230640
  958.       SHIFT=0.0                                                         00230650
  959.       I=IFA-IFB                                                         00230660
  960.       FA=FA*2.0**I                                                      00230670
  961.       IFA=IFB                                                           00230680
  962.        IF (DIF.NE.0.0E0) GO TO 260                                      00230690
  963.       WRITE (6,890)                                                     00230700
  964.        GO TO 660                                                        00230710
  965.   260  DEL=FB*(RB-RA)/DIF                                               00230720
  966.       IP=MOD(NITE(JR),3)                                                00230730
  967.       DEL=DEL*2.0**IP                                                   00230740
  968.       IF(DEL.GT.RX) DEL=RX                                              00230750
  969.        RC=RB-ETA*DEL                                                    00230760
  970.        TOL=RCBTOL*RC                                                    00230770
  971.        IF ( DABS(RC-RB).GT.TOL) GO TO 270                               00230780
  972.        IF (IFPR.EQ.1)                                                   00230790
  973.      $ WRITE (6,900)                                                    00230800
  974.        ROOT(JR)=RB                                                      00230810
  975.        GO TO 330                                                        00230820
  976.   270  CALL BANDET (A,B,V,MAXA,N,NWA,RC,NSCH,DETC,IDETC,1)              00230830
  977.       IF(MODEX.EQ.1) RETURN                                             00230840
  978.        FC=DETC                                                          00230850
  979.       IFC=IDETC                                                         00230860
  980.        NITE(JR)=NITE(JR)+1                                              00230870
  981.        IF (JR.EQ.1) GO TO 290                                           00230880
  982.        JJ=JR-1                                                          00230890
  983.        DO 280 K=1,JJ                                                    00230900
  984.       FC=FC/(RC-ROOT(K))                                                00230910
  985. 280   CALL RSC(FC,IFC)                                                  00230920
  986.   290  IF (IFPR.EQ.1)                                                   00230930
  987.      $ WRITE (6,880) JR,NITE(JR),RC,DETC,FC,ETA,ISC                     00230940
  988.        NES=0                                                            00230950
  989.        IF (JR.EQ.1) GO TO 310                                           00230960
  990.        DO 300 I=1,JJ                                                    00230970
  991.   300  IF (ROOT(I).LT.RC) NES=NES+1                                     00230980
  992.   310  NOV=NSCH-NES                                                     00230990
  993.        IF (NOV.EQ.0) GO TO 320                                          00231000
  994.        IF (IFPR.EQ.1)                                                   00231010
  995.      $ WRITE (6,910) NOV                                                00231020
  996.        ROOT(JR)=RC                                                      00231030
  997.       RCORIG=RC                                                         00231040
  998.        IF (NOV.GT.1) NSK=1                                              00231050
  999.        GO TO 330                                                        00231060
  1000.   320  RR=RA                                                            00231070
  1001.        FR=FA                                                            00231080
  1002.        DETR=DETA                                                        00231090
  1003.        RA=RB                                                            00231100
  1004.        FA=FB                                                            00231110
  1005.        DETA=DETB                                                        00231120
  1006.        RB=RC                                                            00231130
  1007.        FB=FC                                                            00231140
  1008.        DETB=DETC                                                        00231150
  1009.       IFR=IFA                                                           00231160
  1010.       IDETR=IDETA                                                       00231170
  1011.       IFA=IFB                                                           00231180
  1012.       IDETA=IDETB                                                       00231190
  1013.       IFB=IFC                                                           00231200
  1014.       IDETB=IDETC                                                       00231210
  1015.        TOL=RB*ACTOL                                                     00231220
  1016.        IF ( DABS(RA-RB).LT.TOL) ETA=ETA*2                               00231230
  1017.        IF (NITE(JR).LE.NITEM) GO TO 250                                 00231240
  1018.       WRITE (6,840) JR,NITE(JR)                                         00231250
  1019.        GO TO 660                                                        00231260
  1020.   330  IF (JR.LE.NC) GO TO 340                                          00231270
  1021.        WRITE (6,920)                                                    00231280
  1022.        GO TO 660                                                        00231290
  1023.   340  NOR=JR-1                                                         00231300
  1024.       SHIFT=0.0                                                         00231310
  1025.        IF (NOR.GT.NVM) NOR=NVM                                          00231320
  1026.        CALL SECOND (TIM3)                                               00231330
  1027.        IF (IFPR.EQ.1)                                                   00231340
  1028.      $ WRITE (6,930) NOR                                                00231350
  1029.        IF (JR.EQ.1) GO TO 360                                           00231360
  1030.       RRCC = 1.0D0                                                      R0231361
  1031.       CALL QVSET(RRCC,V,N)                                              R0231370
  1032.        KK=2                                                             00231380
  1033.       IF(JR.EQ.NC) GO TO 360                                            00231390
  1034.       I=NITE(JR+1)                                                      00231400
  1035.       V(I)=-1.0D0                                                       00231410
  1036.   360 CONTINUE                                                          R0231411
  1037.       CALL QVMPY2(W,B,V,N,MMA)                                          00231420
  1038.        IS=0                                                             00231430
  1039.       RT=ROOT(JR)                                                       00231440
  1040.        GO TO 430                                                        00231450
  1041.   380  NITE(JR)=NITE(JR)+1                                              00231460
  1042.       CALL QVCOPY(W,V,N)                                                00231470
  1043.        CALL BANDET (A,B,V,MAXA,N,NWA,RC,NSCH,DETC,IDETC,KK)             00231480
  1044.        IF (IS.EQ.1) GO TO 490                                           00231490
  1045.       IF(MODEX.EQ.1) RETURN                                             00231500
  1046.       ERRT=RQB                                                          00231510
  1047.        KK=2                                                             00231520
  1048.       CALL QVDOT(RQT,W,V,N,1,1)                                         00231530
  1049.       CALL QVMPY2(W,B,V,N,MMA  )                                        00231540
  1050.       CALL QVDOT(RQB,W,V,N,1,1)                                         00231550
  1051.        RQ=RQT/RQB                                                       00231560
  1052.        RT=ROOT(JR)+RQ                                                   00231570
  1053.        IF (IFPR.EQ.1)                                                   00231580
  1054.      $ WRITE (6,940) JR,NITE(JR),RT,RQ                                  00231590
  1055.        TOL=RT*RQTOL                                                     00231600
  1056.        IF ( DABS(RT-RTA).GT.TOL) GO TO 430                              00231610
  1057.        IS=1                                                             00231620
  1058.        GO TO 490                                                        00231630
  1059.   430  RTA=RT                                                           00231640
  1060.       IF(IABS(KDYN).EQ.11) BS=DSQRT(DABS(RQB))                          00231650
  1061.       IF(IABS(KDYN).EQ.11) GO TO 1430                                   00231660
  1062.        BS= DSQRT(RQB)                                                   00231670
  1063.  1430 CONTINUE                                                          00231680
  1064.       BSI=1.0E0/BS                                                      00231690
  1065.       CALL QVMPY1(W,W,BSI,N,1,1,0)                                      00231700
  1066.        IF (NOR.EQ.0) GO TO 480                                          00231710
  1067.        DO 470 K=1,NOR                                                   00231720
  1068.       CALL QVDOT(AL,VV(1,K),W,N,1,1)                                    00231730
  1069.       CALL QMR2(W,W,AL,WW(1,K),N,1,1,1)                                 00231740
  1070.   470  CONTINUE                                                         00231750
  1071. 480   IF(NITE(JR).EQ.0) GO TO 380                                       00231760
  1072.       IF(MOD(NITE(JR),NITEM).NE.0) GO TO 482                            00231770
  1073.       TOL=RT*RITOL                                                      00231780
  1074.       RT=RT+TOL                                                         00231790
  1075.       CALL BANDET(A,B,V,MAXA,N,NWA,RT,NSCHT,DETT,IDETT,1)               00231800
  1076.       SHIFT=RT                                                          00231810
  1077.       IF(IFPR.EQ.1) WRITE(6,483)SHIFT                                   00231820
  1078. 483   FORMAT(10X,17HSHIFT APPLIED AT ,E22.14)                           00231830
  1079.       ROOT(JR)=RT                                                       00231840
  1080. 482   IF(NITE(JR).LE.NITEMM) GO TO 380                                  00231850
  1081.       WRITE (6,840) JR,NITE(JR)                                         00231860
  1082.        GO TO 660                                                        00231870
  1083.   490  CONTINUE                                                         00231880
  1084.        ROOT(JR)=ROOT(JR)+RQ                                             00231890
  1085.        ERR= DSQRT(ERRT/RQB)                                             00231900
  1086.        ERRVL(JR)=ROOT(JR)-ERR                                           00231910
  1087.        ERRVR(JR)=ROOT(JR)+ERR                                           00231920
  1088.       IF(IABS(KDYN).EQ.11) BS=DSQRT(DABS(RQB))                          00231930
  1089.       IF(IABS(KDYN).EQ.11) GO TO 1490                                   00231940
  1090.        BS= DSQRT(RQB)                                                   00231950
  1091.  1490  CONTINUE                                                         00231960
  1092.       BSI=1.0E0/BS                                                      00231970
  1093.       CALL QVMPY1(V,V,BSI,N,1,1,0)                                      00231990
  1094.       CALL QVMPY1(W,W,BSI,N,1,1,0)                                      00231980
  1095.        JJ=JR                                                            00232000
  1096.        IF (JJ.LE.NVM) GO TO 550                                         00232010
  1097.        WRITE (NT) (VV(J,1),J=1,N)                                       00232020
  1098.        DO 540 K=1,N                                                     00232030
  1099.        DO 540 L=2,NVM                                                   00232040
  1100.        WW(K,L-1)=WW(K,L)                                                00232050
  1101.   540  VV(K,L-1)=VV(K,L)                                                00232060
  1102.        JJ=NVM                                                           00232070
  1103.   550 CALL QVCOPY(V,VV(1,JJ),N)                                         00232090
  1104.       CALL QVCOPY(W,WW(1,JJ),N)                                         00232080
  1105.        CALL SECOND (TIM2)                                               00232100
  1106.        TIM3=TIM2-TIM3                                                   00232110
  1107.        IF (IFPR.EQ.1)                                                   00232120
  1108.      $ WRITE (6,950) TIM3                                               00232130
  1109.        TIM(JR)=TIM2-TIM1                                                00232140
  1110.        TIM1=TIM2                                                        00232150
  1111.        TOL=RTOL*ROOT(JR)                                                00232160
  1112.        IF (NOV.GT.0) GO TO 580                                          00232170
  1113.        IF ( DABS(ROOT(JR)-RB).GT.TOL) GO TO 620                         00232180
  1114.        IF (RA.GT.0.0E0) GO TO 570                                       00232190
  1115.        RA=RB/2.E0                                                       00232200
  1116.        CALL BANDET (A,B,V,MAXA,N,NWA,RA,NSCH,DETA,IDETA,1)              00232210
  1117.       IF(MODEX.EQ.1) RETURN                                             00232220
  1118.        FA=DETA                                                          00232230
  1119.       IFA=IDETA                                                         00232240
  1120.   570  RB=RA                                                            00232250
  1121.        FB=FA                                                            00232260
  1122.        DETB=DETA                                                        00232270
  1123.        RA=RR                                                            00232280
  1124.        FA=FR                                                            00232290
  1125.        DETA=DETR                                                        00232300
  1126.       IFB=IFA                                                           00232310
  1127.       IDETB=IDETA                                                       00232320
  1128.       IFA=IFR                                                           00232330
  1129.       IDETA=IDETR                                                       00232340
  1130.        GO TO 620                                                        00232350
  1131.   580  IF (ROOT(JR).GT.RC) NSK=1                                        00232360
  1132.        IF (NSK.EQ.1) GO TO 630                                          00232370
  1133.        IF ( DABS(RC-ROOT(JR)).LT.TOL) GO TO 600                         00232380
  1134.        IF ( DABS(ROOT(JR)-RB).LT.TOL) GO TO 590                         00232390
  1135.        RA=RB                                                            00232400
  1136.        FA=FB                                                            00232410
  1137.        DETA=DETB                                                        00232420
  1138.        IFA=IFB                                                          00232430
  1139.        IDETA=IDETB                                                      00232440
  1140.   590  RB=RC                                                            00232450
  1141.        FB=FC                                                            00232460
  1142.        DETB=DETC                                                        00232470
  1143.       IFB=IFC                                                           00232480
  1144.       IDETB=IDETC                                                       00232490
  1145.        GO TO 620                                                        00232500
  1146.   600  IF ( DABS(ROOT(JR)-RB).GT.TOL) GO TO 620                         00232510
  1147.        IF (RA.GT.0.0E0) GO TO 610                                       00232520
  1148.        RA=RB/2.E0                                                       00232530
  1149.        CALL BANDET (A,B,V,MAXA,N,NWA,RA,NSCH,DETA,IDETA,1)              00232540
  1150.       IF(MODEX.EQ.1) RETURN                                             00232550
  1151.        FA=DETA                                                          00232560
  1152.       IFA=IDETA                                                         00232570
  1153.   610  RB=RA                                                            00232580
  1154.        FB=FA                                                            00232590
  1155.        DETB=DETA                                                        00232600
  1156.        RA=RR                                                            00232610
  1157.        FA=FR                                                            00232620
  1158.        DETA=DETR                                                        00232630
  1159.       IFB=IFA                                                           00232640
  1160.       IDETB=IDETA                                                       00232650
  1161.       IFA=IFR                                                           00232660
  1162.       IDETA=IDETR                                                       00232670
  1163.   620  FA=FA/(RA-ROOT(JR))                                              00232680
  1164.        FB=FB/(RB-ROOT(JR))                                              00232690
  1165.       CALL RSC(FA,IFA)                                                  00232700
  1166.       CALL RSC(FB,IFB)                                                  00232710
  1167.       NOV=0                                                             00232720
  1168.        JR=JR+1                                                          00232730
  1169.        ETA=2.0E0                                                        00232740
  1170.        GO TO 240                                                        00232750
  1171.   630  IF (RA.GT.0.0E0) GO TO 640                                       00232760
  1172.        RA=RB/2.E0                                                       00232770
  1173.        CALL BANDET (A,B,V,MAXA,N,NWA,RA,NSCH,DETA,IDETA,1)              00232780
  1174.       IF(MODEX.EQ.1) RETURN                                             00232790
  1175.        FA=DETA                                                          00232800
  1176.        IFA=IDETA                                                        00232810
  1177. 640   IF(SHIFT.LT.ROOT(JR)) SHIFT=0.0                                   00232820
  1178.       IF(SHIFT.EQ.0.0) GO TO 645                                        00232830
  1179.       RC=SHIFT                                                          00232840
  1180. 645   IF(DABS(ROOT(JR)-RB).GT.TOL) GO TO 650                            00232850
  1181.        RB=RA                                                            00232860
  1182.        FB=FA                                                            00232870
  1183.        DETB=DETA                                                        00232880
  1184.        RA=RR                                                            00232890
  1185.        FA=FR                                                            00232900
  1186.        DETA=DETR                                                        00232910
  1187.       IFB=IFA                                                           00232920
  1188.       IDETB=IDETA                                                       00232930
  1189.       IFA=IFR                                                           00232940
  1190.       IDETA=IDETR                                                       00232950
  1191.   650  FA=FA/(RA-ROOT(JR))                                              00232960
  1192.        FB=FB/(RB-ROOT(JR))                                              00232970
  1193.        FR=FR/(RR-ROOT(JR))                                              00232980
  1194.       CALL RSC(FA,IFA)                                                  00232990
  1195.       CALL RSC(FB,IFB)                                                  00233000
  1196.       CALL RSC(FR,IFR)                                                  00233010
  1197.       IF(ROOT(JR).LE.RCORIG) NOV=NOV-1                                  00233020
  1198.       IF(NOV.EQ.0) GO TO 655                                            00233030
  1199.       IF(SHIFT.NE.0.0) GO TO 655                                        00233040
  1200.       IF(JR.EQ.1) GO TO 653                                             00233050
  1201.       IF(DABS(ROOT(JR)-ROOT(JR-1)).LT.RITOL*ROOT(JR-1)) GO TO 655       00233060
  1202. 653   CONTINUE                                                          00233070
  1203.       IF(DABS(RC-ROOT(JR)).LT.FACT*ROOT(JR)) GO TO 655                  00233080
  1204.       RC=FACT*(RC-ROOT(JR))+ROOT(JR)                                    00233090
  1205.       IF(IFPR.EQ.1) WRITE(6,1055)RC                                     00233100
  1206. 1055  FORMAT(/10X,4HRC= ,E20.8/)                                        00233110
  1207.       CALL BANDET(A,B,V,MAXA,N,NWA,RC,NSCHT,DETT,IDETT,1)               00233120
  1208.  655   CONTINUE                                                         00233130
  1209.        JR=JR+1                                                          00233140
  1210.        NITE(JR)=0                                                       00233150
  1211.        ROOT(JR)=RC                                                      00233160
  1212.        IF (NOV.GT.0) GO TO 330                                          00233170
  1213.        NSK=0                                                            00233180
  1214.        ETA=2.0E0                                                        00233190
  1215.        GO TO 240                                                        00233200
  1216. 660   IF((JR-1).LT.NROOT) NROOT=JR-1                                    00233210
  1217.       IF(NROOT.GT.0) GO TO 670                                          00233220
  1218.       WRITE (6,1000)                                                    00233230
  1219.       MODEX=1                                                           00233240
  1220.       RETURN                                                            00233250
  1221.   670 CONTINUE                                                          00233260
  1222.        IF (IFPR.EQ.0) GO TO 680                                         00233270
  1223.        WRITE (6,960)                                                    00233280
  1224.        WRITE (6,800) (NITE(J),J=1,NROOT)                                00233290
  1225.        WRITE (6,970)                                                    00233300
  1226.        WRITE (6,810) (TIM(J),J=1,NROOT)                                 00233310
  1227.        WRITE (6,980)                                                    00233320
  1228.        WRITE (6,790) (ERRVL(J),J=1,NROOT)                               00233330
  1229.        WRITE (6,790) (ERRVR(J),J=1,NROOT)                               00233340
  1230.   680  IF (JR-1 .LE.NVM) GO TO 700                                      00233350
  1231.        NDIF=JR-1  - NVM                                                 00233360
  1232.        REWIND NT                                                        00233370
  1233.        DO 690 L=1,NDIF                                                  00233380
  1234.        READ (NT) (A(I,L),I=1,N)                                         00233390
  1235.   690  CONTINUE                                                         00233400
  1236.        GO TO 710                                                        00233410
  1237.   700  NDIF=0                                                           00233420
  1238.   710  JJR=JR-1    - NDIF                                               00233430
  1239.        DO 720 L=1,JJR                                                   00233440
  1240.        LNDIF=L+NDIF                                                     00233450
  1241.   720 CALL QVCOPY(VV(1,L),A(1,LNDIF),N)                                 00233460
  1242.        IF (JR.EQ.2) GO TO 760                                           00233470
  1243.        JR=JR-2                                                          00233480
  1244.   730  IS=0                                                             00233490
  1245.        DO 750 I=1,JR                                                    00233500
  1246.       IF(IABS(KDYN).EQ.11) GO TO 1730                                   00233510
  1247.        IF (ROOT(I+1).GE.ROOT(I)) GO TO 750                              00233520
  1248.       GO TO 1740                                                        00233530
  1249.  1730 IF(DABS(ROOT(I+1)).GE.DABS(ROOT(I))) GO TO 750                    00233540
  1250.  1740 CONTINUE                                                          00233550
  1251.        IS=IS+1                                                          00233560
  1252.        RT=ROOT(I+1)                                                     00233570
  1253.        ROOT(I+1)=ROOT(I)                                                00233580
  1254.        ROOT(I)=RT                                                       00233590
  1255.        DO 740 K=1,N                                                     00233600
  1256.        RT=A(K,I+1)                                                      00233610
  1257.        A(K,I+1)=A(K,I)                                                  00233620
  1258.   740  A(K,I)=RT                                                        00233630
  1259.   750  CONTINUE                                                         00233640
  1260.        IF (IS.GT.0) GO TO 730                                           00233650
  1261.   760  WRITE (6,990)                                                    00233660
  1262.       IF(NSCH.LT.NROOT) NROOT=NSCH                                      00233670
  1263.         DO 765 J=1,NROOT                                                00233680
  1264. 765     ROOT(J)=ROOT(J)+FRSHFT                                          00233690
  1265.        WRITE (6,790) (ROOT(J),J=1,NROOT)                                00233700
  1266.        REWIND NT                                                        00233710
  1267.       IF(IABS(KDYN).EQ.11) GO TO 1770                                   00233720
  1268.        DO 770 I=1,NROOT                                                 00233730
  1269.       IF(ROOT(I).GE.0) GO TO 770                                        00233740
  1270.       ROOT(I)=DABS(ROOT(I))                                             00233750
  1271.       WRITE(6,995)I                                                     00233760
  1272.   770  ROOT(I)= DSQRT(ROOT(I))                                          00233770
  1273.  1770 CONTINUE                                                          00233780
  1274.       CALL RDWRT(NT,ROOT,NROOT,13,J)                                    00233790
  1275.        NWA=N*NROOT                                                      00233800
  1276.       CALL RDWRT(NT,A,NWA,13,J)                                         00233810
  1277.        PI2=8.D0* DATAN(1.0D0)                                           00233820
  1278.        DO 780 I=1,NROOT                                                 00233830
  1279.   780  AT(I)=PI2/ROOT(I)                                                00233840
  1280.        RETURN                                                           00233850
  1281.   790  FORMAT (1H0,6E20.12)                                             00233860
  1282.   800  FORMAT (1H0,6I20)                                                00233870
  1283.   810  FORMAT (1H0,6F20.2)                                              00233880
  1284.   820 FORMAT (44H0***ERROR   SOLUTION TERMINATED IN *SECANT *, /        00233890
  1285.      $        12X,25HRIGID BODY MODE(S) FOUND., / 1X)                   00233900
  1286.   830 FORMAT (51H INVERSE ITERATION GIVES FOLLOWING APPROXIMATION TO,   00233910
  1287.      $        18H LOWEST EIGENVALUE, 1X)                                00233920
  1288.   840 FORMAT (42H0***ERROR   PRE-MATURE EXIT FROM *SECANT *, / 12X,     00233930
  1289.      $        37HITERATION ABANDONED FOR ROOT NUMBER =, I4 / 12X,       00233940
  1290.      $        37HNUMBER OF ITERATIONS PERFORMED      =, I4 / 1X)        00233950
  1291.   850  FORMAT (5H0RB =,E20.12,7H NSCH =,I4)                             00233960
  1292.   860 FORMAT (38H0***ERROR   SOLUTION STOP IN *SECANT *, / 12X, 1H(,    00233970
  1293.      $        I3,48H) FACTORIZATIONS PERFORMED IN AN ATTEMPT TO FIND,   00233980
  1294.      $        32H LOWER BOUND ON FIRST EIGENVALUE, / 12X,               00233990
  1295.      $        16HCHECK THE MODEL., / 1X)                                00234000
  1296.   870  FORMAT (1X ,4X,4HROOT,4X,4HNITE,18X,2HRC,15X,12HDET (A-RC*B),15X,00234010
  1297.      $2HFC,13X,3HETA,4X,3HISC)                                          00234020
  1298.   880  FORMAT (1H0,4X,I4,4X,I4,8X,3E22.14,F7.2,I6)                      00234030
  1299.   890  FORMAT (42H0THE DEFLATED POLYNOMIAL HAS NO MORE ROOTS  )         00234040
  1300.   900  FORMAT (29H0(RC-RB) IS SMALLER THAN TOL )                        00234050
  1301.   910  FORMAT (16H0WE JUMPED OVER ,I4,16H UNKNOWN ROOT(S)  )            00234060
  1302.   920 FORMAT (42H0***ERROR   PRE-MATURE EXIT FROM *SECANTD*,            00234070
  1303.      $        34H CAUSED BY EITHER OF THE FOLLOWING, / 12X,             00234080
  1304.      $        22H(1) BAD MODEL DATA, OR, / 12X,                         00234090
  1305.      $        52H(2) ROOT CLUSTER (I.E., NEAR EQUAL OR REPEATED EIGEN,  00234100
  1306.      $        36HVALUES) ENCOUNTERED AT CURRENT SHIFT, / 16X,           00234110
  1307.      $        25HCAUSING STORAGE OVER-FLOW, 1X)                         00234120
  1308.   930  FORMAT (1H0,34X,4HROOT,18X,2HRQ,18X,4HNOR=,I2)                   00234130
  1309.   940  FORMAT (1H0,4X,I4,4X,I4,8X,2E22.14)                              00234140
  1310.   950  FORMAT (20H0TIME FOR INV ITERN ,F5.2)                            00234150
  1311.   960  FORMAT (42H0NO OF ITERATIONS FOR EACH EIGENVALUE ARE   /)        00234160
  1312.   970  FORMAT (30H0TIME USED FOR EACH EIGENVALUE /)                     00234170
  1313.   980  FORMAT (43H0FOLLOWING ARE ERROR BOUNDS ON EIGENVALUES )          00234180
  1314.   990  FORMAT (///  40H WE SOLVED FOR THE FOLLOWING EIGENVALUES    )    00234190
  1315.   995  FORMAT(//5X,24H***NOTE: THE ROOT NUMBER,3X,I5,5X,8HIS NEGAT,     00234200
  1316.      158HIVE.  ITS ABSOLUTE VALUE IS TAKEN FOR FURTHER CALCULATIONS)    00234210
  1317.  1000 FORMAT (38H0***ERROR   SOLUTION STOP IN *SECANT *, / 12X,         00234220
  1318.      $        23HNO EIGENVALUES COMPUTED, / 1X)                         00234230
  1319.  1010 FORMAT (44H ***ERROR    NEG OR ZERO DIAGONAL ELEMENT A(,I4,4H) = ,00234240
  1320.      X       E11.4,21HBEFORE DECOMPOSITION            )                 00234250
  1321.       END                                                               00234260
  1322.