home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 9 / 09.iso / e / e003 / 7.ddi / STIDYN2.FOR < prev   
Encoding:
Text File  |  1980-01-04  |  76.1 KB  |  959 lines

  1.       SUBROUTINE SLOWR (                           BB,B,DIAG,JF,JFACTS,JR0242720
  2.      1DIAG,JHIGH,RDELT,NLC,NBLKS,NEQ,MTB,MCB,MAXVT,MLT,NRESLT,NSTIF,N1,N00242730
  3.      22,KFN,KSUM,JSUM,NEQB,NBLK2,DISP,BLDIS,GDISP)                      00242740
  4.       IMPLICIT REAL*8(A-H,O-Z)                                          00242750
  5.       REAL*8 KF,KFACTS,KDIAG,KHIGH,JF,JFACTS,JDIAG,JHIGH,JFACTR         R0242760
  6.       DIMENSION                                           BB(JSUM), B(ML00242770
  7.      1T), DIAG(1), JDIAG(1), JHIGH(1), RDELT(1), DISP(NEQ), BLDIS(NEQB,N00242780
  8.      2LC)                                                               00242790
  9.       DIMENSION FOLD(4),          JFACTS(4),        JF(KFN),JFACTR(4)   R0242800
  10.       DIMENSION GDISP(10,NLC)                                           00242810
  11.       COMMON/EQUILB/NEQIL,ITX2                                          00242820
  12.       COMMON /GPS/ NEQ4(10),NRGPS(10)                                   R0242830
  13.       COMMON /SUPEL/NSELEM,NEQL,NRSUPE(4)                               R0242840
  14.       COMMON /PREP / XQ(2),KSKIP,RRPREP(8)                              R0242850
  15.       COMMON /SQZ/ ISQZ,NRSQZ(5),NRC1                                   R0242860
  16.       COMMON /AAA1/ A(8000)                                             R0242861
  17.       COMMON /AAA2/ KFACTS(4),KDIAG(300),KHIGH(300)                     R0242862
  18.       NRC2 = 0
  19.       NRC3 = 1
  20.         CALL FILES(4)                                                   00242870
  21.       CALL SECOND(TIM1)                                                 00242880
  22.       CALL RDWRT (NRESLT,A,1,6,INUM)                                    00242890
  23.       CALL RDWRT (NSTIF,A,1,6,INUM)                                     00242900
  24.       REWIND N1                                                         00242910
  25.       REWIND N2                                                         00242920
  26.       NGP=0                                                             00242930
  27.       IF(ITX2.LE.0) KSKIP=1                                             00242940
  28.       DO 100 I=1,10                                                     00242950
  29.          IF (NEQ4(I).GT.0) NGP=I                                        00242960
  30. 100   CONTINUE                                                          00242970
  31.       DIAGCK=1.0D-08                                                    00242980
  32.       X=NBLKS                                                           00242990
  33.       KINC=NBLKS*20/100                                                 00243000
  34.       IF (KINC.LT.1) KINC=1                                             00243010
  35.       ZER=0.0D0                                                         00243020
  36.       KFIRST=1                                                          00243030
  37.         IF(NEQIL.EQ.1) REWIND 41                                        00243040
  38.       DO 320 N=1,NBLKS                                                  00243050
  39. CC       CALL EXPAND (AA,KSUM,NSTIF)                                    00243060
  40.        READ (4) KFACTS,(KDIAG(IR),IR=1,MCB),(KHIGH(IR),IR=1,MCB)        R0243061
  41.        READ (4) (A(IR),IR=1,MLT)                                        R0243062
  42.         IF(NEQIL.EQ.1) WRITE(41)AA                                      00243070
  43.             DO 101 I=1,4                                                00243071
  44.  101        JFACTR(I)=KFACTS(I)                                         00243072
  45.          KSTART = JFACTR(3)                                             R0243080
  46.          KEND = JFACTR(4)                                               R0243090
  47.          JFIRST=KFIRST                                                  00243100
  48.          DO 280 NBOPR=JFIRST,N                                          00243110
  49.             IF (N.EQ.1) GO TO 110                                       00243120
  50.             READ (N1) JF,B                                              R0243131
  51.             IF (NBOPR.NE.N) GO TO 130                                   00243140
  52. 110         DO 120 I=1,4                                                00243150
  53. 120         JFACTS(I)=KFACTS(I)                                         00243160
  54.  130        IF (KFACTS(2).GT.JFACTS(4)) GO TO 260                       00243170
  55.                JFCT3=JFACTS(3)                                          00243180
  56.                JFCT4=JFACTS(4)                                          00243190
  57.             DO 250 NCOL=KSTART,KEND                                     00243200
  58.                KCOL=NCOL-KSTART+1                                       00243210
  59.                DO 140 LC=1,NLC                                          00243220
  60. 140            RDELT(LC)=0.0D0                                          00243230
  61.                RRNC1 = KHIGH(KCOL)                                      R0243240
  62.                KHI = RRNC1                                              R0243241
  63.                RRNC2 = KDIAG(KCOL)                                      R0243250
  64.                KD = RRNC2                                               R0243251
  65.                NSTART=NCOL-KHI+1                                        00243260
  66.                IF (NSTART.GT.JFCT4) GO TO 250                           00243270
  67.                JSTART=MAX0(JFCT3,NSTART)                                00243280
  68.                JEND=MIN0(JFCT4,NCOL-1)                                  00243290
  69.                IF (JSTART.GT.JEND.OR.KHI.EQ.1) GO TO 190                00243300
  70.                MCHNG=KD-NCOL+JSTART                                     00243310
  71.       IF(NBOPR.NE.N) GO TO 149                                          00243320
  72.       DO 146 NOPER=JSTART,JEND                                          00243330
  73.       JOPER=NOPER-JFACTS(3)+1                                           00243340
  74.       RRNC3 = KDIAG(JOPER)                                              R0243350
  75.       JD = RRNC3                                                        R0243351
  76.       RRNC4 = KHIGH(JOPER)                                              R0243360
  77.       JHJ = RRNC4                                                       R0243361
  78.       NTERMS=MIN0(JHJ-1,NOPER-NSTART)                                   R0243370
  79.       IF(NTERMS.EQ.0) GO TO 144                                         00243380
  80.       MNRR = MCHNG - NTERMS                                             R0243381
  81.       JNRR = JD - NTERMS                                                R0243382
  82.       IF (JNRR .LE. MTB) GO TO 141                                      R0243384
  83.       JN1 = JNRR - MTB                                                  R0243383
  84.       CALL QVDOT1 (DELT,MNRR,           B(JN1)      ,NTERMS,1,1)        R0243390
  85.       GO TO 143                                                         R0243391
  86.  141  CONTINUE                                                          R0243392
  87.       CALL QVDOT(DELT,A(MCHNG-NTERMS),A(JD-NTERMS),NTERMS,1,1)          R0243393
  88.  143  CONTINUE                                                          R0243394
  89.       A(MCHNG)=A(MCHNG)-DELT                                            00243400
  90.   144 DO 145 LC=1,NLC                                                   00243410
  91.   145 RDELT(LC)=RDELT(LC)+A(JD+LC)*A(MCHNG)                             00243420
  92.   146 MCHNG=MCHNG+1                                                     00243430
  93.       GO TO 210                                                         00243440
  94.   149 DO 180 NOPER=JSTART,JEND                                          00243450
  95.                   JOPER=NOPER-JFACTS(3)+1                               00243460
  96.                   RRNC5 = JDIAG(JOPER)                                  R0243470
  97.                   JD = RRNC5                                            R0243471
  98.                   RRNC6 = JHIGH(JOPER)                                  R0243480
  99.                   JHJ = RRNC6                                           R0243481
  100.                   NTERMS=MIN0(JHJ-1,NOPER-NSTART)                       00243490
  101.       MNRR = MCHNG - NTERMS                                             R0243491
  102.       JNRR = JD - NTERMS                                                R0243492
  103.       JN1 = JNRR - MTB                                                  R0243493
  104.                   IF (NTERMS.EQ.0) GO TO 160                            00243500
  105.       CALL QVDOT1(DELT,MNRR,           B(JN1)      ,NTERMS,1,1)         R0243510
  106.                   A(MCHNG)=A(MCHNG)-DELT                                00243520
  107.   160 CONTINUE                                                          00243530
  108.                   DO 170 LC=1,NLC                                       00243540
  109.        JLRR = JD + LC                                                   R0243541
  110.        IF(JLRR .LE. MTB) RDELT(LC)=RDELT(LC)+A(JD+LC)*A(MCHNG)          R0243550
  111.        IF(JLRR .LE. MTB) GO TO 170                                      R0243551
  112.        JLRR = JLRR - MTB                                                R0243552
  113.         RDELT(LC)=RDELT(LC)+B(JLRR)*A(MCHNG)                            R0243552
  114.  170   CONTINUE                                                         R0243552
  115. 180            MCHNG=MCHNG+1                                            00243560
  116. 190            IF (NBOPR.EQ.N) GO TO 210                                00243570
  117.                IF (KHI.EQ.1) GO TO 250                                  00243580
  118.                DO 200 LC=1,NLC                                          00243590
  119.  200           A(KD+LC)=A(KD+LC)-RDELT(LC)                              00243600
  120.                GO TO 250                                                00243610
  121. 210            DELT=0.0D0                                               00243620
  122.                IF (KHI.EQ.1) GO TO 230                                  00243630
  123.                II=KD-KHI+1                                              00243640
  124.         III=KD-1                                                        00243650
  125.                NSM=NSTART-II                                            00243660
  126.                DO 220 I=II,III                                          00243670
  127.                   RMULT=A(I)                                            00243680
  128.       A(I)=RMULT*DIAG(NSM+I)                                            00243690
  129. 220            DELT=DELT+RMULT*A(I)                                     00243700
  130.                A(KD)=A(KD)-DELT                                         00243710
  131.  230    IF(A(KD).EQ.0.0)A(KD)=1.E-20                                    00243720
  132.       DIAG(NCOL)=1.00D0/A(KD)                                           00243730
  133.       IF(A(KD).LT.DIAGCK) WRITE(6,235)NCOL                              00243740
  134.   235 FORMAT(/20X,8HEQUATION,I5,17H MAY BE SINGULAR.)                   00243750
  135.       RMULT=DIAG(NCOL)                                                  00243760
  136.                DO 240 LC=1,NLC                                          00243770
  137. 240            A(KD+LC)=(A(KD+LC)-RDELT(LC))*RMULT                      00243780
  138. 250         CONTINUE                                                    00243790
  139. 260         IF (JFACTS(4)+JFACTS(1).LE.KFACTS(4)) GO TO 270             00243800
  140.             IF (N.EQ.NBLKS.OR.N.EQ.NBOPR) GO TO 280                     00243810
  141.        WRITE (N2) JF,B                                                  R0243820
  142.             GO TO 280                                                   00243830
  143. 270         KFIRST=KFIRST+1                                             00243840
  144. 280      CONTINUE                                                       00243850
  145.       IF(N.EQ.NBLKS) GO TO 301                                          00243860
  146. CC       CALL RDWRT (NRESLT,AA,KSUM,1,INUM)                             R0243870
  147.        WRITE (23) KFACTS,(KDIAG(IR),IR=1,MCB),(KHIGH(IR),IR=1,MCB)      R0243871
  148.        WRITE (23) (A(IR),IR=1,MLT)                                      R0243872
  149.       NRC2 = NRC2 + 1                                                   R0243873
  150.       IF (NRC3 .EQ. 1) WRITE (6,1009) NRESLT,NRC2                       R0243874
  151.  1009 FORMAT (5X,'****** NRESLT NRC2 ******',2I5/)                      R0243875
  152.          DO 290 I=1,MCB                                                 00243880
  153. 290      KDIAG(I)=KDIAG(I)+MTB                                          00243890
  154.       WRITE (N2) KFACTS,(KDIAG(IR),IR=1,MCB),(KHIGH(IR)                 R0243900
  155.      $ ,IR=1,MCB),(A(IR),IR=1,MLT)                                      R0243901
  156.         WRITE (N2) JF,B                                                 R0243910
  157.          MOPER=N1                                                       00243920
  158.          N1=N2                                                          00243930
  159.          N2=MOPER                                                       00243940
  160. 300      REWIND N1                                                      00243950
  161.          REWIND N2                                                      00243960
  162.   301 PER=N*100.0D0/X                                                   00243970
  163.          KPR=MOD(N,KINC)                                                00243980
  164.          IF (KPR.EQ.0) WRITE(6,310) PER                                 00243990
  165. 310   FORMAT (20X,F7.2,39H PERCENT OF THE FWD. REDUCTION HAS BEEN,      00244000
  166.      110HCOMPLETED.///)                                                 00244010
  167. 320   CONTINUE                                                          00244020
  168.       CALL SECOND(TIM2)                                                 00244030
  169.       NT1=15                                                            00244040
  170.       REWIND NT1                                                        00244050
  171.       NRIT=0                                                            00244060
  172.       MLDB=0                                                            00244070
  173.       NFLC=1                                                            00244080
  174.       LLC=MAXVT                                                         00244090
  175.       CALL RDWRT (NSTIF,A,1,6,INUM)                                     00244100
  176.       IF(NEQL.LE.0) GO TO 325                                           00244110
  177.       MLDB=1                                                            00244120
  178.       NRIT=1                                                            00244130
  179. CC    CALL RDWRT(NRESLT,AA,KSUM,1,ISUM)                                 00244140
  180.        WRITE (23) KFACTS,(KDIAG(IR),IR=1,MCB),(KHIGH(IR),IR=1,MCB)      R0244141
  181.        WRITE (23) (A(IR),IR=1,MLT)                                      R0244142
  182.       NDF=NEQ-NEQL                                                      00244150
  183.       CALL RDWRT(NRESLT,AA,KSUM,2,INUM)                                 00244160
  184.       CALL SETDIS(NRESLT,NSTIF,                           KSUM,MCB,MLT, R0244170
  185.      1KFN,NEQ,B,NBLKS,NLC,KSKIP,NDF)                                    00244180
  186. CC    CALL EXPAND(AA,KSUM,NSTIF)                                        00244190
  187.        READ (4) KFACTS,(KDIAG(IR),IR=1,MCB),(KHIGH(IR),IR=1,MCB)        R0244191
  188.        READ (4) (A(IR),IR=1,MLT)                                        R0244192
  189.       NRESLT=NSTIF                                                      00244200
  190.       IF(KSKIP.EQ.1) RETURN                                             00244210
  191.       GO TO 328                                                         00244220
  192.   325 CONTINUE                                                          00244230
  193.       IF (NBLKS.GT.1) CALL RDWRT (NRESLT,A,1,2,INUM)                    00244240
  194.   328 CONTINUE                                                          00244250
  195.       MTT=MAXVT*NEQ                                                     00244260
  196. 330   CALL QVSET (ZER,DIAG,MTT)                                         00244270
  197.       DO 380 N=1,NBLKS                                                  00244280
  198.          NCB=KFACTS(4)-KFACTS(3)+1                                      00244290
  199.          DO 360 NC=1,NCB                                                00244300
  200.             NCOL=KFACTS(4)-NC+1                                         00244310
  201.             KCOL=NCB-NC+1                                               00244320
  202.             RRNC7 = KHIGH(KCOL)                                         R0244331
  203.             KHI = RRNC7 - 1                                             R0244330
  204.             RRNC8 = KDIAG(KCOL)                                         R0244340
  205.             KD = RRNC8                                                  R0244341
  206.             LX=0                                                        00244350
  207.             DO 340 LC=NFLC,LLC                                          00244360
  208.                NX=LX*NEQ+NCOL                                           00244370
  209.                DIAG(NX)=A(KD+LC)-DIAG(NX)                               00244380
  210. 340         LX=LX+1                                                     00244390
  211.             IF (KHI.EQ.0) GO TO 360                                     00244400
  212.             LX=0                                                        00244410
  213.             KJ=KD-KHI-1                                                 00244420
  214.             DO 350 LC=NFLC,LLC                                          00244430
  215.                LX=LX+1                                                  00244440
  216.                MEND=NCOL+(LX-1)*NEQ                                     00244450
  217.       RMULT=-DIAG(MEND)                                                 00244460
  218.                MCOL=MEND-KHI                                            00244470
  219.       IF(NEQL.LE.0) GO TO 345                                           00244480
  220.       IF(NCOL.LE.NEQL) GO TO 345                                        00244490
  221.       MEND=MEND-NCOL+NEQL+1                                             00244500
  222.       IF(MCOL.GT.MEND) GO TO 350                                        00244510
  223.   345 CONTINUE                                                          00244520
  224.       KJRR = KJ + 1                                                     R0244521
  225.       CALL QMR2 (DIAG(MCOL),DIAG(MCOL),RMULT,A(KJ+1),MEND-MCOL,1,1,1)   R0244530
  226.   350 CONTINUE                                                          00244540
  227. 360      CONTINUE                                                       00244550
  228.          IF (LLC.EQ.NLC.OR.NRIT.EQ.1) GO TO 370                         00244560
  229. CC       CALL SQEEZE (AA,KSUM,NSTIF,ISQZ)                               00244570
  230.        WRITE (NSTIF) KFACTS,(KDIAG(IR),IR=1,MCB),(KHIGH(IR),IR=1,MCB)   R0244571
  231.        WRITE (NSTIF) (A(IR),IR=1,MLT)                                   R0244572
  232.  370        IF (N.EQ.NBLKS) GO TO 380                                   00244580
  233. CC       CALL EXPAND (AA,KSUM,NRESLT)                                   00244590
  234.        READ (23) KFACTS,(KDIAG(IR),IR=1,MCB),(KHIGH(IR),IR=1,MCB)       R0244591
  235.        READ (23) (A(IR),IR=1,MLT)                                       R0244592
  236.          IF (MLDB.EQ.1) GO TO 380                                       00244600
  237.       IF(N+1.GE.NBLKS) GO TO 380                                        00244610
  238.          CALL RDWRT (NRESLT,A,1,2,INUM)                                 00244620
  239.          CALL RDWRT (NRESLT,A,1,2,INUM)                                 00244630
  240. 380   CONTINUE                                                          00244640
  241.       ND=0                                                              00244650
  242.       DO 390 I=NFLC,LLC                                                 00244660
  243.          NS=ND+1                                                        00244670
  244.          ND=NS+NEQ-1                                                    00244680
  245. 390   WRITE (NT1) (DIAG(NX),NX=NS,ND)                                   00244690
  246.       IF (LLC.EQ.NLC) GO TO 400                                         00244700
  247.       NRIT=1                                                            00244710
  248.       MLDB=1                                                            00244720
  249.       NFLC=NFLC+MAXVT                                                   00244730
  250.       LLC=MIN0(LLC+MAXVT,NLC)                                           00244740
  251.       CALL RDWRT (NSTIF,A,1,6,INUM)                                     00244750
  252. CC    CALL EXPAND (AA,KSUM,NSTIF)                                       00244760
  253.        READ (NSTIF) KFACTS,(KDIAG(IR),IR=1,MCB),(KHIGH(IR),IR=1,MCB)    R0244761
  254.        READ (NSTIF) (A(IR),IR=1,MLT)                                    R0244762
  255.       NRESLT=NSTIF                                                      00244770
  256.       GO TO 330                                                         00244780
  257. 400   CONTINUE                                                          00244790
  258.         IF(NEQIL.LE.0)GO TO 910                                         00244800
  259.         KOUT=4                                                          00244810
  260.         REWIND NT1                                                      00244820
  261.         DO 900 L=1,NLC                                                  00244830
  262.         WRITE(6,9011)L                                                  00244840
  263.         REWIND 41                                                       00244850
  264. 9011    FORMAT(1X ,27H   FORCE CHECK ON LOAD CASE,I5/                   00244860
  265.      &  24X,12HFORCE/MOMENT/4(12H  DOF ACTUAL,7X,12HCALCULATED  ))      00244870
  266.         READ(NT1)DISP                                                   00244880
  267.         DO 890 N=1,NBLKS                                                00244890
  268.         READ(41)AA                                                      00244900
  269.         RRNC9 = KFACTS(3)                                               R0244910
  270.         KSTART = RRNC9                                                  R0244911
  271.         RRNC10 = KFACTS(4)                                              R0244920
  272.         KEND = RRNC10                                                   R0244921
  273.         DO 880 K=KSTART,KEND                                            00244930
  274.         KCOL=K-KSTART+1                                                 00244940
  275.         RRNC11 = KHIGH(KCOL)                                            R0244950
  276.         KHI = RRNC11                                                    R0244951
  277.         RRNC12 = KDIAG(KCOL)                                            R0244960
  278.         KD = RRNC12                                                     R0244961
  279.         II1=K-KHI+1                                                     00244970
  280.         II2=K-1                                                         00244980
  281.         IB=KD-KHI                                                       00244990
  282.         B(K)=0.                                                         00245000
  283.         IF(II2.LE.0)GO TO 875                                           00245010
  284.         IF(II1.GE.K)GO TO 875                                           00245020
  285.         DO 870 I=II1,II2                                                00245030
  286.         IB=IB+1                                                         00245040
  287.         B(I)=B(I)+A(IB)*DISP(K)                                         00245050
  288.         B(K)=B(K)+A(IB)*DISP(I)                                         00245060
  289. 870     CONTINUE                                                        00245070
  290. 875     B(K)=B(K)+A(KD)*DISP(K)                                         00245080
  291. 880     CONTINUE                                                        00245090
  292. 890     CONTINUE                                                        00245100
  293.         ENGY=0.                                                         00245110
  294.         DO 894 I=1,NEQ                                                  00245120
  295. 894     ENGY=ENGY+DISP(I)*B(I)                                          00245130
  296.         ENGY=ENGY/2.                                                    00245140
  297.         KFOR=0                                                          00245150
  298.         NK=0                                                            00245160
  299.         DIFM=0.                                                         00245170
  300.         DIFF2=0.                                                        00245180
  301.         REWIND 41                                                       00245190
  302.         DO 899 I=1,NBLKS                                                00245200
  303.         READ(41)AA                                                      00245210
  304.         RRNC13 = KFACTS(3)                                              R0245220
  305.         KST = RRNC13                                                    R0245221
  306.         RRNC14 = KFACTS(4)                                              R0245230
  307.         KEND = RRNC14                                                   R0245231
  308.         DO 898 K=KST,KEND                                               00245240
  309.         KCOL=K-KST+1                                                    00245250
  310.         RRNC15 = KDIAG(KCOL)                                            R0245260
  311.         KD = RRNC15                                                     R0245261
  312.         NK=NK+1                                                         00245270
  313.         IB=KD+L                                                         00245280
  314.         P1=A(IB)                                                        00245290
  315.         DIFF=DABS(P1-B(NK))                                             00245300
  316.         DIFF2=DIFF2+DIFF*DIFF                                           00245310
  317.         DIFM=DMAX1(DIFM,DIFF)                                           00245320
  318.         KFOR=KFOR+1                                                     00245330
  319.         IF(KFOR.EQ.KOUT+1)KFOR=1                                        00245340
  320.         FOLD(KFOR)=P1                                                   00245350
  321.         IF(NK.EQ.NEQ)GO TO 895                                          00245360
  322.         IF(KFOR.NE.KOUT)GO TO 896                                       00245370
  323. 895     KK1=NK-KFOR+1                                                   00245380
  324.         WRITE(6,9012)(KKL,FOLD(KKL-KK1+1),B(KKL),KKL=KK1,NK)            00245390
  325. 896     CONTINUE                                                        00245400
  326. 9012    FORMAT(4(I5,1P2E13.5))                                          00245410
  327. 898     CONTINUE                                                        00245420
  328. 899     CONTINUE                                                        00245430
  329.         DMSE=DIFF2/DBLE  (NEQ)                                          R0245440
  330.         DMSE=DSQRT(DMSE)                                                00245450
  331.         WRITE(6,9010)L,DIFM,DMSE,ENGY                                   00245460
  332. 9010    FORMAT(2H  ,80(1H*)/29H  EQUILIBRIUM CHECK LOAD CASE,           00245470
  333.      &  I5/19H     MAXIMUM ERROR=,1PE10.3/21H     ROOT MEAN SQUARE,     00245480
  334.      &  7H ERROR=,E10.3/25H     TOTAL STRAIN ENERGY=,1PE18.10)          00245490
  335. 900     CONTINUE                                                        00245500
  336. 910     CONTINUE                                                        00245510
  337.       NT2 = 62                                                          R0245520
  338.       REWIND NT2                                                        00245530
  339.       NS=1-NEQB                                                         00245540
  340.       ND=NEQB                                                           00245550
  341.       DO 430 I=1,NBLK2                                                  00245560
  342.          IF (I.EQ.NBLK2) ND=NEQ-NEQB*(NBLK2-1)                          00245570
  343.          REWIND NT1                                                     00245580
  344.          NS=NS+NEQB                                                     00245590
  345.          DO 420 J=1,NLC                                                 00245600
  346.             READ (NT1) DISP                                             00245610
  347.             IF (I.GT.1) GO TO 420                                       00245620
  348.             IF (NGP.EQ.0) GO TO 420                                     00245630
  349.             DO 410 K=1,NGP                                              00245640
  350.                MCOL=NEQ4(K)                                             00245650
  351. 410         GDISP(K,J)=DISP(MCOL)                                       00245660
  352. 420      CALL QVCOPY (DISP(NS),BLDIS(1,J),ND)                           00245670
  353.       IF (NRC3 .EQ. 1) WRITE(6,2105) (DISP(IR),IR=1,11)
  354.  2105 FORMAT (1X,'**DISP**',11E11.4/)
  355.       IF (NRC3 .EQ. 1) WRITE(6,2107) (BLDIS(IR,1),IR=1,11)
  356.  2107 FORMAT (1X,'**BLDIS**',11E11.4/)
  357. 430   WRITE (NT2) BLDIS                                                 00245680
  358.       WRITE(6,440)                                                      00245690
  359. 440   FORMAT (/20X,37HBACK-SUBSTITUTION HAS BEEN COMPLETED.///)         00245700
  360.       TIM1=TIM2-TIM1                                                    00245710
  361.       WRITE(6,450)TIM1                                                  00245720
  362.   450 FORMAT(1H+,20X,30HTIME FOR FORWARD REDUCTION WAS,F9.3,8H MINUTS /)R0245730
  363.       CALL SECOND(TIM1)                                                 00245740
  364.       TIM1=TIM1-TIM2                                                    00245750
  365.       WRITE(6,460)TIM1                                                  00245760
  366.   460 FORMAT(1H0,20X,30HTIME FOR BACK SUBSTITUTION WAS,F9.3,8H MINUTS /)R0245770
  367.       RETURN                                                            00245780
  368.       END                                                               00245790
  369.       SUBROUTINE SETDIS(N1,N2,                           KSUM,MCB,MLT,  R0235070
  370.      $KFN,NEQ,B,NBLKS,NLC,KSKIP,NDF)                                    00235080
  371.       IMPLICIT REAL*8(A-H,O-Z)                                          00235090
  372.       REAL*8 KFACTS,KF,KDIAG,KHIGH,A                                    R0235100
  373.       DIMENSION B(NDF,NLC)                                              00235110
  374.       COMMON /SUPEL/ NSELEM,LEQN,NODESE,MATNO,NEADD,NSEL                00235120
  375.       COMMON /AAA1/ A(8000)                                             R0235121
  376.       COMMON /AAA2/ KFACTS(4),KDIAG(300),KHIGH(300)                     R0235122
  377.       NT=27                                                             00235130
  378.       REWIND NT                                                         00235140
  379.   100 READ (NT,END=150) M,N,ND,LL                                       00235150
  380.   110 CONTINUE                                                          00235160
  381.       IF(M.NE.MATNO) GO TO 140                                          00235170
  382.       IF(NSEL.GT.0.AND.N.NE.NSEL) GO TO 140                             00235180
  383.       IF(ND.NE.NDF.OR.LL.NE.NLC) GO TO 120                              00235190
  384.       GO TO 170                                                         00235200
  385.   120 WRITE(6,130)M                                                     00235210
  386.   130 FORMAT(///20X,20HSUPER ELEMENT MATRIX,I4,18H WAS FOUND BUT DID,   00235220
  387.      $52H NOT HAVE THE CORRECT NO. OF DISPLACEMENTS OR LOADS.///)       00235230
  388.   135 KSKIP=1                                                           00235240
  389.       RETURN                                                            00235250
  390.   140 READ (NT,END=150)                                                 00235260
  391.       GO TO 100                                                         00235270
  392.   150 WRITE(6,160)MATNO                                                 00235280
  393.   160 FORMAT (//20X,6HMATRIX,I4,30H COULD NOT BE FOUND ON TAPE27.///)   00235290
  394.       GO TO 135                                                         00235300
  395.   170 READ (NT) B                                                       00235310
  396.       DO 210 N=1,NBLKS                                                  00235320
  397. CC    CALL EXPAND(AA,KSUM,N1)                                           00235330
  398.        READ (4) KFACTS,(KDIAG(IR),IR=1,MCB),(KHIGH(IR),IR=1,MCB)
  399.        READ (4) (A(IR),IR=1,MLT)
  400.       KS=KFACTS(3)                                                      00235340
  401.       KE=KFACTS(4)                                                      00235350
  402.       IF(KE.LE.LEQN) GO TO 200                                          00235360
  403.       KSTART=LEQN+1                                                     00235370
  404.       I=1                                                               00235380
  405.       IF(KSTART.LT.KS) I=KS-LEQN                                        00235390
  406.       IF(KSTART.LT.KS) KSTART=KS                                        00235400
  407.       DO 190 K=KSTART,KE                                                00235410
  408.       IF(I.GT.ND) GO TO 120                                             00235420
  409.       KCOL=K-KS+1                                                       00235430
  410.       KD=KDIAG(KCOL)                                                    00235440
  411.       DO 180 LC=1,NLC                                                   00235450
  412.   180 A(KD+LC)=B(I,LC)                                                  00235460
  413.   190 I=I+1                                                             00235470
  414.   200 CALL RDWRT(N2,AA,KSUM,1,INUM)                                     00235480
  415.       IF(N.EQ.NBLKS) GO TO 210                                          00235490
  416.       CALL RDWRT(N1,AA,KSUM,2,INUM)                                     00235500
  417.       CALL RDWRT(N1,AA,KSUM,2,INUM)                                     00235510
  418.   210 CONTINUE                                                          00235520
  419.       CALL RDWRT(N2,AA,KSUM,6,INUM)                                     00235530
  420.       RETURN                                                            00235540
  421.       END                                                               00235550
  422.       SUBROUTINE QVCOPY(FROM,TO,N)                                      00193850
  423.       REAL*8 FROM,TO                                                    00193860
  424.       DIMENSION FROM(1),TO(1)                                           00193870
  425.       DO 100 I=1,N                                                      00193880
  426.   100 TO(I)=FROM(I)                                                     00193890
  427.       RETURN                                                            00193900
  428.       END                                                               00193910
  429.       SUBROUTINE INL(ID,B,TR,TMASS,NUMNP,NEQB,LL,MMA,ISL,NSLDM)         R0114820
  430.       IMPLICIT REAL*8(A-H,O-Z)                                          00114830
  431.       REAL*8  ID                                                        00114840
  432.       LOGICAL ISLAVE                                                    00114850
  433.       COMMON/FORCE/ NLC,NELD                                            R0114860
  434.       COMMON /CG/ SCG(4),RRCG(2)                                        R0114870
  435.       COMMON /AMB/ GRAV,REFT,JROT                                       R0114880
  436.       DIMENSION ID(NUMNP,3),B(NEQB,LL),TR(6,LL),TMASS(NEQB,MMA)         R0114890
  437.      1,ISL(NSLDM,4),XMAST(3),XSLAVE(3)                                  00114900
  438.       COMMON / JUNK / R(6),TXM(6),RRJUNK(215)                           R0114910
  439.       COMMON/PREP/XMX,XAD,KSKIP,NDYN,I1,RRPREP(7)                       R0114920
  440.       COMMON/SLVE/NSLAVE                                                00114930
  441. CC    COMMON /AAA1/ TMASS(200,40)                                       R0114931
  442.         CALL FILES(9)                                                   00114940
  443.   100 FORMAT (10X,I5)                                                   00114950
  444.       IF(NSLAVE.EQ.0) GO TO 105                                         00114960
  445.       REWIND 30                                                         00114970
  446.       READ(30)((ISL(I,J),J=1,4),I=1,NSLAVE)                             00114980
  447. 105   CONTINUE                                                          00114990
  448.       NMWA=NEQB*MMA                                                     00115000
  449.       ZER=0.0D0                                                         00115010
  450.       NWDS=LL*NEQB                                                      00115020
  451.       M=15                                                              00115030
  452.       IF(NLC.LE.0)  GO TO 240                                           00115040
  453.       NT=3                                                              00115050
  454.       NWDSB=NWDS+NEQB*MMA                                               00115060
  455.       CALL RDWRT(NT,B,1,6,INUM)                                         00115070
  456.       REWIND 15                                                         00115080
  457.       KSHF=0                                                            00115090
  458.       CALL MEMSET (ZER,TMASS (1,1),NMWA)                                00115100
  459.       CALL MEMSET (ZER, B(1,1),NWDS)                                    00115110
  460.       NLAST=0                                                           00115120
  461.       DO 230 NN=1,NUMNP                                                 00115130
  462.       DO 110 I=1,6                                                      00115140
  463.       TXM(I)=0.                                                         00115150
  464.       DO 110 J=1,LL                                                     00115160
  465.   110 TR(I,J)=0.0                                                       00115170
  466.       IF(NN.EQ.1) GO TO 160                                             00115180
  467.   120 IF(N.NE.NN) GO TO 180                                             00115190
  468.       DO 150 I=1,6                                                      00115200
  469.       IF(L.GT.0) GO TO 140                                              00115210
  470.       IF(R(2).LE.0) R(2)=R(1)                                           00115220
  471.       IF(R(3).LE.0) R(3)=R(1)                                           00115230
  472.   130 TXM(I)=R(I)                                                       00115240
  473.       IF(I.GT.3) GO TO 150                                              00115250
  474.       CALL UNPKID(ID,NUMNP,W,CORD,1,N   ,I)                             00115260
  475.       XMCG=TXM(I)                                                       00115270
  476.       SCG(I)=SCG(I)+XMCG*CORD                                           00115280
  477.       IF(I.EQ.1) SCG(4)=SCG(4)+XMCG                                     00115290
  478.       GO TO 150                                                         00115300
  479.   140 TR(I,L)=R(I)                                                      00115310
  480.   150 CONTINUE                                                          00115320
  481.   160 READ (M) N,L,R                                                    00115330
  482.       IF (N.EQ.0) GO TO 120                                             00115340
  483.       IF(N.LT.NLAST) WRITE(6,170)N                                      00115350
  484.       IF(N.LT.NLAST) KSKIP=1                                            00115360
  485.   170 FORMAT (/20X,  4HNODE,I5, 36HIS LESS THAN THE PREVIOUS NODE-ERROR/00115370
  486.      $/)                                                                00115380
  487.       NLAST=N                                                           00115390
  488.       GO TO 120                                                         00115400
  489.   180 CONTINUE                                                          00115410
  490.       ISLAVE=.FALSE.                                                    00115420
  491.       IF(NSLAVE.EQ.0)GO TO 1310                                         00115430
  492.       DO 1300 I=1,6                                                     00115440
  493.       IF(ISLAVE) GO TO 1195                                             00115450
  494.       DO 1100 J=1,NSLAVE                                                00115460
  495.       IF(NB.EQ.ISL(J,1)) ISLAVE=.TRUE.                                  00115470
  496.       IF(ISLAVE) GO TO 1190                                             00115480
  497.  1100 CONTINUE                                                          00115490
  498.  1190 ISLV=J                                                            00115500
  499.  1195 CONTINUE                                                          00115510
  500.       IF(.NOT.ISLAVE) GO TO 1230                                        00115520
  501.       K=I                                                               00115530
  502.       IF(K.GT.3) K=K-3                                                  00115540
  503.       ISLN=ISL(ISLV,K+1)                                                00115550
  504.       IF(I.LE.3) ISLN=MOD(ISLN,10000)                                   00115560
  505.       IF(I.GT.3) ISLN=ISLN/10000                                        00115570
  506.       IF(ISLN.EQ.0) GO TO 1230                                          00115580
  507.       DO 1200 J=1,3                                                     00115590
  508.       CALL UNPKID(ID,NUMNP,W,XSLAVE(J),1,NB,J)                          00115600
  509.       CALL UNPKID(ID,NUMNP,W,XMAST(J),1,ISLN,J)                         00115610
  510.  1200 CONTINUE                                                          00115620
  511.       XDIFF=XSLAVE(1)-XMAST(1)                                          00115630
  512.       YDIFF=XSLAVE(2)-XMAST(2)                                          00115640
  513.       ZDIFF=XSLAVE(3)-XMAST(3)                                          00115650
  514.       DO 1220 J=1,LL                                                    00115660
  515.       IF(I.EQ.4) TR(4,J)=TR(4,J)-TR(2,J)*ZDIFF+TR(3,J)*ZDIFF            00115670
  516.       IF(I.EQ.5) TR(5,J)=TR(5,J)+TR(1,J)*ZDIFF-TR(3,J)*XDIFF            00115680
  517.       IF(I.EQ.6) TR(6,J)=TR(6,J)-TR(1,J)*YDIFF+TR(2,J)*XDIFF            00115690
  518.       IF(I.EQ.4) TXM(4)=TXM(2)*ZDIFF*ZDIFF+TXM(3)*YDIFF*YDIFF           00115700
  519.       IF(I.EQ.5) TXM(5)=TXM(1)*ZDIFF*ZDIFF+TXM(3)*XDIFF*XDIFF           00115710
  520.       IF(I.EQ.6) TXM(6)=TXM(1)*YDIFF*YDIFF+TXM(2)*XDIFF*XDIFF           00115720
  521.  1220 CONTINUE                                                          00115730
  522.  1230 CONTINUE                                                          00115740
  523.  1300 CONTINUE                                                          00115750
  524.  1310 CONTINUE                                                          00115760
  525.       DO 220 J=1,6                                                      00115770
  526.       IF (KSKIP.EQ.1) GO TO  230                                        00115780
  527.       CALL UNPKID ( ID  ,NUMNP,W      ,WX      ,2,NN,J)                 00115790
  528.       NNN=W                                                             00115800
  529.       II=NNN-KSHF                                                       00115810
  530.       IF(NNN.LE.0) GO TO 220                                            00115820
  531.       IF(II.LE.0) GO TO 220                                             00115830
  532.   190 DO 200  K=1,LL                                                    00115840
  533.   200 B(II,K)=TR(J,K) +B(II,K)                                          00115850
  534.       TMASS(II,1)=TMASS(II,1)+TXM(J)                                    00115860
  535.   210 IF(II.NE.NEQB) GO TO 220                                          00115870
  536.       CALL RDWRT(NT,B,NWDSB,1,INUM)                                     00115880
  537.       KSHF=KSHF+NEQB                                                    00115890
  538.       CALL MEMSET (ZER,TMASS (1,1),NMWA)                                00115900
  539.       CALL MEMSET (ZER, B(1,1),NWDS)                                    00115910
  540.   220 CONTINUE                                                          00115920
  541.   230 CONTINUE                                                          00115930
  542.   240 IF(SCG(4).LE.0.0) GO TO 270                                       00115940
  543.       DO 250 I=1,3                                                      00115950
  544.   250 SCG(I)=SCG(I)/SCG(4)                                              00115960
  545.       SCG(4)=SCG(4)*GRAV                                                00115970
  546.       IF(SCG(4).GT.0.0) WRITE(6,260)SCG                                 00115980
  547.   260 FORMAT(1X ,19X, 49HTHE CENTER OF GRAVITY OF THE FINITE ELEMENT MOD00115990
  548.      $EL,  7H IS AT,//30X,  4HX = ,F12.4,  8H  UNITS,                   00116000
  549.      $                   /30X,  4HY = ,F12.4,  8H  UNITS,               00116010
  550.      $                       /30X,  4HZ = ,F12.4,  8H  UNITS.           00116020
  551.      $                //20X, 26HTHE TOTAL MODEL WEIGHT IS ,F25.5,  8H  U00116030
  552.      $NITS.////)                                                        00116040
  553.   270 IF(NLC.EQ.0) RETURN                                               00116050
  554.       IF (KSKIP.EQ.1) GO TO  280                                        00116060
  555.       CALL RDWRT(NT,B,NWDSB,1,INUM)                                     00116070
  556.   280 RETURN                                                            00116080
  557.   290 FORMAT (2I5,7F10.4)                                               00116090
  558.   300 FORMAT (2I5,7F10.3)                                               00116100
  559.   310 FORMAT (23H1.....NODAL POINT LOADS // 10H NODE LOAD,23X,          00116110
  560.      $ 14HAPPLIED LOADS             / 10H  NO. CASE ,6X, 2HFX,8X,       00116120
  561.      $  2HFY,8X,2HFZ,8X,2HMX,8X,2HMY,8X,2HMZ )                          00116130
  562.       END                                                               00116140
  563.       SUBROUTINE MEMSET (KONST,IARRAY,NWDS)                             00135760
  564.       REAL*8 IARRAY, KONST                                              00135770
  565.       DIMENSION IARRAY(1)                                               00135780
  566.       DO 100 I=1,NWDS                                                   00135790
  567.   100 IARRAY(I)=KONST                                                   00135800
  568.       RETURN                                                            00135810
  569.       END                                                               00135820
  570.       SUBROUTINE ADDSTF(          A2,          NUMEL,NBLOCK,NE2B,LL,    R0011060
  571.      $MBAND,NEQB,NEMN,ANORM,NVV,MMA)                                    00011070
  572.       IMPLICIT REAL*8(A-H,O-Z)                                          00011080
  573.       LOGICAL ELPRT,ELPCH,GENPRT,GENPCH,GEOST                           00011090
  574.       COMMON STIF(1)                                                    00011100
  575. CC    DIMENSION A(NEQB,MBAND),  B(NEQB,LL), TMASS(NEQB,MMA)             R0011110
  576.       DIMENSION A2(NEQB,MBAND)                                          R0011120
  577.       DIMENSION ICOO(10),IFORM(4)                                       00011130
  578.       COMMON/CTL/ELPRT,ELPCH,GENPRT,GENPCH                              00011140
  579.       COMMON/GEOSTF/GEOST,NELGEO                                        00011150
  580.       COMMON/MASS/LMASS                                                 00011160
  581.       COMMON /SQZ/ ISQZ,NRSQZ(5)                                        R0011170
  582.       COMMON/PREP/XMX,XAD,KSKIP,NDYN,I1,RRPREP(7)                       R0011180
  583.       COMMON /DYN5/FRSHFT,FRINIT,FREND,MODEFR,NOSS                      R0011190
  584.       COMMON /FORCE/ NLC,NELD                                           00011200
  585.       COMMON/ELPAR/ XPAR(14),KDUM(9),KEQ,RRELPA(24)                     R0011210
  586.       COMMON /DYN2/IFPR,IFSS,NITEM,NFO,RTOL,COFQ,DT,ALFA,BETA,NFN,NGM,  00011220
  587.      $NAT,NT,NOT,NRDYN2(9)                                              R0011230
  588.       COMMON /AAA1/ A(150,53)                                           R0011231
  589.       COMMON /AAA2/ TMASS(200,1),B(200,3),TMASS2(200,1),B2(200,3)       R0011232
  590.       DATA ICOO / 3H001,3H013,3H025,3H037,3H049,3H061,3H073,3H085,3H097,00011240
  591.      $            3H109/                                                00011250
  592.       DATA IFORM(1),IFORM(3),IFORM(4)/4H(1H+,4HX,F7,4H.2) /             00011260
  593.       KX(I,J,ND1)=MIN0(I,J)*(2*ND1+1-MIN0(I,J))/2-ND1+MAX0(I,J)+ND1     00011270
  594.       ZER=0.0D0                                                         00011280
  595.       NWDS=NEQB*(MBAND+LL)                                              00011290
  596.       NWA=MBAND*NEQB                                                    00011300
  597.       IF(NDYN.GT.3.AND.NDYN.LE.7) NWDS=NWA                              00011310
  598.       IF(NDYN.EQ.11.OR.NELGEO.EQ.1) NWDS=NWA                            00011320
  599.       NWB=   LL*NEQB                                                    00011330
  600.       NTA=4                                                             00011340
  601.       REWIND 3                                                          00011350
  602.       LLF=LL                                                            00011360
  603.       IF(NELD.EQ.0) LLF=0                                               00011370
  604.       NTD=9                                                             00011380
  605.       NT1=2                                                             00011390
  606.       NT2=10                                                            00011400
  607.       K=NEQB+1                                                          00011410
  608.       X=NBLOCK                                                          00011420
  609.       NFLG=0                                                            00011430
  610.       MB= DSQRT(X)                                                      00011460
  611.       MB=MB/2+1                                                         00011470
  612.       NEBB=MB*NE2B                                                      00011480
  613.       MM=1                                                              00011490
  614.       NSHIFT=0                                                          00011500
  615.       NTB=3                                                             00011510
  616.       NWDSB=NWB+NEQB*MMA                                                00011520
  617.       CALL RDWRT(NTB,B,1,6,INUM)                                        00011530
  618.       CALL RDWRT(NTA,A,1,6,INUM)                                        00011540
  619.       ANORM=0.0                                                         00011550
  620.       NDEG=0                                                            00011560
  621.       AMIN=1.0D30                                                       00011570
  622.       AMAX=-AMIN                                                        00011580
  623.       NNZTRM=0                                                          00011590
  624.       NVV=0                                                             00011600
  625.       IF(NDYN.NE.7) GO TO 110                                           00011610
  626.       TETA=1.4                                                          00011620
  627.       DT1=TETA*DT                                                       00011630
  628.       DT2=DT1*DT1                                                       00011640
  629.       A0=(6.+3*ALFA*DT1)/(DT2+3*BETA*DT1)                               00011650
  630.   110 CONTINUE                                                          00011660
  631.       REWIND NTD                                                        00011670
  632.       WRITE(6,115)                                                      00011680
  633.   115 FORMAT(//,10X,48HTHE LAST NUMBER PRINTED IS THE PERCENT OF THE MA,00011690
  634.      $       55HSTER STIFFNESS AND LOAD MATRICES THAT HAS BEEN ASSEMBLE,00011700
  635.      $        2HD.,//)                                                  00011710
  636.       ICO = 1                                                           00011720
  637. CC    DO 117 IIR=1,NEQB
  638. CC117 TMASS(IIR,1) = TMASS2(IIR,1)
  639.       WRITE (6,2002) NLC,(TMASS(II,1),II=1,8)
  640.  2002 FORMAT (5X,'*** NLC TMASS ***',I5,8E11.4/)
  641.       DO 310 M=1,NBLOCK ,2                                              00011730
  642.       NWA1 = 150*53                                                     R0011731
  643.       CALL MEMSET (ZER,A2(1,1),NWA)                                     00011740
  644.       CALL MEMSET (ZER, A(1,1),NWA1)                                    R0011750
  645.       IF(NLC.GT.0) GO TO 120                                            00011760
  646.       NMWA=NEQB*MMA                                                     00011770
  647.       NMWA1=200                                                         R0011771
  648.       NWB1=1200                                                         R0011772
  649.       CALL MEMSET (ZER,TMASS2(1,1),NMWA)                                00011780
  650.       CALL MEMSET (ZER,TMASS (1,1),NMWA1)                               R0011790
  651.       CALL MEMSET (ZER,B2(1,1),NWB)                                     00011800
  652.       CALL MEMSET (ZER, B(1,1),NWB1)                                    R0011810
  653.       GO TO 130                                                         00011820
  654.   120 CONTINUE                                                          00011830
  655.       CALL RDWRT(NTB,B ,NWDSB,0,N)                                      00011840
  656.       IF (M.EQ.NBLOCK) GO TO 130                                        00011850
  657.       CALL RDWRT(NTB,B2,NWDSB,0,N)                                      00011860
  658.   130 CONTINUE                                                          00011870
  659.       CALL RDWRT(NT1,STIF,1,6,N)                                        00011880
  660.       CALL RDWRT(NT2,STIF,1,6,N)                                        00011890
  661.       NA=NT2                                                            00011900
  662.       NUME=NUM7                                                         00011910
  663.       IF (MM.NE.1) GO TO 140                                            00011920
  664.       NA=NT1                                                            00011930
  665.       NUME=NUMEL                                                        00011940
  666.       NUM7 =0                                                           00011950
  667.   140 DO 240 N=1,NUME                                                   00011960
  668.       CALL RDWRT(NA,STIF,NEMN,0,KOUNT)                                  00011970
  669.       ND1=STIF(KOUNT)                                                   00011980
  670.       NTOT=(ND1*ND1-ND1)/2+ND1                                          00011990
  671.       KSTXM=LLF*ND1+NTOT+ND1                                            00012000
  672.       DO 210 I=1,ND1                                                    00012010
  673.       LMN=1-STIF(I)                                                     00012020
  674.       II=STIF(I)-NSHIFT                                                 00012030
  675.       IF (II.LE.0.OR.II.GT.NE2B) GO TO 210                              00012040
  676.       IF(II.GT.NEQB)GO TO 180                                           00012050
  677.       IF(LMASS.EQ.1) GO TO 2120                                         00012060
  678.       TMASS(II,1)=TMASS(II,1)+STIF(KSTXM+I)                             00012070
  679.  2120 CONTINUE                                                          00012080
  680.       IF(NELD.EQ.0) GO TO 155                                           00012090
  681.       KSTP=NTOT+I                                                       00012100
  682.       DO 150 L=1,LL                                                     00012110
  683.       KSTP=KSTP+ND1                                                     00012120
  684.   150 B(II,L)=B(II,L)+STIF(KSTP)                                        00012130
  685.   155 CONTINUE                                                          00012140
  686.       DO 170 J=1,ND1                                                    00012150
  687.       JJ=STIF(J)+LMN                                                    00012160
  688.       IF(JJ) 170,170,160                                                00012170
  689.   160 KSTS=KX(I,J,ND1)                                                  00012180
  690.       A(II,JJ)=A(II,JJ)+STIF(KSTS)                                      00012190
  691.       IF(LMASS.NE.1) GO TO 170                                          00012200
  692.       KSTM=KX(I,J,ND1)-ND1                                              00012210
  693.       TMASS(II,JJ)=TMASS(II,JJ)+STIF(KSTXM+KSTM)                        00012220
  694.   170 CONTINUE                                                          00012230
  695.       GO TO 210                                                         00012240
  696.   180 II=II-NEQB                                                        00012250
  697.       IF(LMASS.EQ.1) GO TO 2130                                         00012260
  698.       TMASS2(II,1)=TMASS2(II,1)+STIF(KSTXM+I)                           00012270
  699.  2130 CONTINUE                                                          00012280
  700.       IF(NELD.EQ.0) GO TO 195                                           00012290
  701.       KSTP=NTOT+I                                                       00012300
  702.       DO 190 L=1,LL                                                     00012310
  703.       KSTP=KSTP+ND1                                                     00012320
  704.   190 B2(II,L)=B2(II,L)+STIF(KSTP)                                      00012330
  705.   195 CONTINUE                                                          00012340
  706.       DO 200 J=1,ND1                                                    00012350
  707.       JJ=STIF(J)+LMN                                                    00012360
  708.       IF(JJ.LE.0) GO TO 200                                             00012370
  709.       KSTS=KX(I,J,ND1)                                                  00012380
  710.       A2(II,JJ)=A2(II,JJ)+STIF(KSTS)                                    00012390
  711.       IF(LMASS.NE.1) GO TO 200                                          00012400
  712.       KSTM=KX(I,J,ND1)-ND1                                              00012410
  713.       TMASS2(II,JJ)=TMASS2(II,JJ)+STIF(KSTXM+KSTM)                      00012420
  714.   200 CONTINUE                                                          00012430
  715.   210 CONTINUE                                                          00012440
  716.       IF (MM.GT.1) GO TO 240                                            00012450
  717.       DO 220 I=1,ND1                                                    00012460
  718.       II=STIF(I)-NSHIFT                                                 00012470
  719.       IF(II.GT.NE2B.AND.II.LE.NEBB) GO TO 230                           00012480
  720.   220 CONTINUE                                                          00012490
  721.       GO TO 240                                                         00012500
  722.   230 CALL RDWRT(NT2,STIF,KOUNT,1,I)                                    00012510
  723.       NUM7=NUM7+1                                                       00012520
  724.   240 CONTINUE                                                          00012530
  725.       IF(NDYN.LT.4.OR.NDYN.GT.6) GO TO 260                              00012540
  726.         IF(FRSHFT.EQ.0.)FRSHFT=-1.0                                     00012550
  727.       IF(LMASS.EQ.1) GO TO 2150                                         00012560
  728.        CALL QMR22(   FRSHFT,      NEQB,1,1,1)                           R0012570
  729.       IF(M.NE.NBLOCK)CALL QMR2(A2,A2,FRSHFT,TMASS2,NEQB,                00012580
  730.      11,1,1)                                                            00012590
  731.       GO TO 2160                                                        00012600
  732.  2150  CALL QMR3(A,A,FRSHFT,TMASS,NEQB,1,1,1,NWA)                       00012610
  733.       IF(M.NE.NBLOCK)CALL QMR3(A2,A2,FRSHFT,TMASS2,NEQB,                00012620
  734.      11,1,1,NWA)                                                        00012630
  735.  2160 CONTINUE                                                          00012640
  736.       DO 250 I=1,NEQB                                                   00012650
  737.       D=A(I,1)                                                          00012660
  738.       ANORM=ANORM+D                                                     00012670
  739.       IF(D.NE.0.0) NDEG=NDEG+1                                          00012680
  740.       IF(D.NE.0.0D0.AND.D.LT.AMIN)AMIN=D                                00012690
  741.       IF(D.GT.AMAX) AMAX=D                                              00012700
  742.       IF(D.EQ.0.0) A(I,1)=1.0E+20                                       00012710
  743.       IF(TMASS(I,1).NE.0.) NVV=NVV+1                                    00012720
  744.       DO 2162 KAPG=1,MBAND                                              00012730
  745.       IF(A(I,KAPG).NE.0.0D0)NNZTRM=NNZTRM+1                             00012740
  746.  2162 CONTINUE                                                          00012750
  747.       IF(M.EQ.NBLOCK) GO TO 250                                         00012760
  748.       D=A2(I,1)                                                         00012770
  749.       ANORM=ANORM+D                                                     00012780
  750.       IF(D.NE.0.0) NDEG=NDEG+1                                          00012790
  751.       IF(D.NE.0.0D0.AND.D.LT.AMIN)AMIN=D                                00012800
  752.       IF(D.GT.AMAX) AMAX=D                                              00012810
  753.       IF(D.EQ.0.0)    A2(I,1)=1.0E+20                                   00012820
  754.       IF(TMASS2(I,1).NE.0.0) NVV=NVV+1                                  00012830
  755.       DO 2165 KAPG=1,MBAND                                              00012840
  756.       IF(A2(I,KAPG).NE.0.0D0)NNZTRM=NNZTRM+1                            00012850
  757.  2165 CONTINUE                                                          00012860
  758.   250 CONTINUE                                                          00012870
  759.   260 CONTINUE                                                          00012880
  760.       IF(NDYN.NE.7) GO TO 290                                           00012890
  761.       DO 270 I=1,NEQB                                                   00012900
  762.   270 A(I,1)=A(I,1)+A0*TMASS(I,1)                                       00012910
  763.       IF(M.EQ.NBLOCK) GO TO 290                                         00012920
  764.       DO 280 I=1,NEQB                                                   00012930
  765.   280 A2(I,1)=A2(I,1)+A0*TMASS2(I,1)                                    00012940
  766.   290 CONTINUE                                                          00012950
  767.       IF(.NOT.GENPRT) GO TO 1200                                        00012960
  768.       WRITE(6,1500)M                                                    00012970
  769.       DO 1020 I=1,NEQB                                                  00012980
  770.       IF(GENPCH)WRITE(7,1510)(A(I,J),J=1,MBAND)                         00012990
  771.  1020 WRITE(6,1520)(A(I,J),J=1,MBAND)                                   00013000
  772.       WRITE(6,1530)                                                     00013010
  773.       DO 1030 I=1,NEQB                                                  00013020
  774.       IF(GENPCH) WRITE(7,1510)(B(I,J),J=1,LL)                           00013030
  775.  1030 WRITE(6,1520)(B(I,J),J=1,LL)                                      00013040
  776.       WRITE(6,1540)                                                     00013050
  777.       IF(LMASS.EQ.1) GO TO 2170                                         00013060
  778.       IF(GENPCH) WRITE(7,1510)(TMASS(I,1),I=1,NEQB)                     00013070
  779.       WRITE(6,1520)(TMASS(I,1),I=1,NEQB)                                00013080
  780.       GO TO 2190                                                        00013090
  781.  2170 DO 2180 I=1,NEQB                                                  00013100
  782.       IF(GENPCH) WRITE(7,1510)(TMASS(I,J),J=1,MBAND)                    00013110
  783.  2180 WRITE(6,1520)(TMASS(I,J),J=1,MBAND)                               00013120
  784.  2190 CONTINUE                                                          00013130
  785.       IF(M.EQ.NBLOCK) GO TO 1200                                        00013140
  786.       MP1=M+1                                                           00013150
  787.       WRITE(6,1500)MP1                                                  00013160
  788.       DO 1060 I=1,NEQB                                                  00013170
  789.       IF(GENPCH)WRITE(7,1510)(A2(I,J),J=1,MBAND)                        00013180
  790.  1060 WRITE(6,1520)(A2(I,J),J=1,MBAND)                                  00013190
  791.       WRITE(6,1530)                                                     00013200
  792.       DO 1070 I=1,NEQB                                                  00013210
  793.       IF(GENPCH) WRITE(7,1510)(B2(I,J),J=1,LL)                          00013220
  794.  1070 WRITE(6,1520)(B2(I,J),J=1,LL)                                     00013230
  795.       WRITE(6,1540)                                                     00013240
  796.       IF(LMASS.EQ.1) GO TO 2200                                         00013250
  797.       IF(GENPCH) WRITE(7,1510)(TMASS2(I,1),I=1,NEQB)                    00013260
  798.       WRITE(6,1520)(TMASS2(I,1),I=1,NEQB)                               00013270
  799.       GO TO 1200                                                        00013280
  800.  2200 DO 2210 I=1,NEQB                                                  00013290
  801.       IF(GENPCH)WRITE(7,1510)(TMASS2(I,J),J=1,MBAND)                    00013300
  802.  2210 WRITE(6,1520)(TMASS2(I,J),J=1,MBAND)                              00013310
  803.  1200 CONTINUE                                                          00013320
  804.       IF(MODEFR.GT.0) GO TO 247                                         00013330
  805.       DO 246 I=1,NEQB                                                   00013340
  806.       D=A(I,1)                                                          00013350
  807.       IF(D.GT.0.0) GO TO 243                                            00013360
  808.       NJ=NEQB*(M-1)+I                                                   00013370
  809.       IF(NJ.GT.KEQ) GO TO 246                                           00013380
  810.       NFLG=1                                                            00013390
  811.       WRITE(6,242)NJ,D                                                  00013400
  812.   242 FORMAT(/10X,9HEQUATION ,I5,26H HAS A SINGULAR DIAGONAL = ,E10.4)  00013410
  813.       WRITE(6,115)                                                      00013420
  814.       ICO=1                                                             00013430
  815.   243 D=A2(I,1)                                                         00013440
  816.       IF(D.GT.0.0) GO TO 246                                            00013450
  817.       NJ=NEQB*M+I                                                       00013460
  818.       IF(NJ.GT.KEQ) GO TO 246                                           00013470
  819.       NFLG=1                                                            00013480
  820.       WRITE(6,242)NJ,D                                                  00013490
  821.   246 CONTINUE                                                          00013500
  822.   247 CONTINUE                                                          00013510
  823.       IF(NDYN.GT.0.AND.NDYN.LE.3) WRITE (NTD) ((TMASS(II,JJ),II=1,NEQB),R0013520
  824.      $ JJ=1,MMA),((B(II,JJ),II=1,NEQB),JJ=1,LL)                         R0013521
  825.       IF(NDYN.GT.3.AND.NDYN.LT.7) WRITE (NTD) ((TMASS(II,JJ),II=1,NEQB),R0013530
  826.      $ JJ=1,MMA),(A(I,1),I=1,NEQB)                                      R0013531
  827.       WRITE (6,8087) ((TMASS(II,JJ),II=1,NEQB),JJ=1,MMA)
  828.  8087 FORMAT (1X,'**TMASS*',12E10.4/)
  829.       IF(NDYN.EQ.7)WRITE (NTD) ((TMASS(II,JJ),II=1,NEQB),JJ=1,MMA)      R0013540
  830.       IF(NDYN.EQ.11) WRITE(NTD) ((TMASS(II,JJ),II=1,NEQB),JJ=1,MMA),(A(IR0013550
  831.      $ ,1),I=1,NEQB)                                                    R0013551
  832.       IF(NDYN.EQ.11.OR.NELGEO.EQ.1) WRITE(3) ((B(I,J),I=1,NEQB),J=1,LL) R0013561
  833.       IF(NDYN.GT.3.AND.NDYN.LE.7) NWDS = MBAND * NEQB                   R0013561
  834.       IF(NDYN.EQ.11.OR.NELGEO.EQ.1) NWDS = MBAND * NEQB                 R0013562
  835.       WRITE (4) ((A(II,JJ),II=1,NEQB),JJ=1,MBAND)                       R0013570
  836. CC    CALL SQEEZE(A ,NWDS,NTA,ISQZ)                                     00013570
  837.       WRITE (6,3333) NEQB,MBAND,NWDS,ISQZ,NTA
  838.  3333 FORMAT (1X,'*** NEQB MBAND NWDS ISQZ NTA ***',3X,5I5/)
  839.       IF(M.EQ.NBLOCK) GO TO 310                                         00013580
  840.       IF(NDYN.GT.0.AND.NDYN.LE.3) WRITE (NTD)((TMASS2(II,JJ),II=1,NEQB),R0013590
  841.      $ JJ=1,MMA),((B2(II,JJ),II=1,NEQB),JJ=1,LL)                        R0013591
  842.       IF(NDYN.GT.3.AND.NDYN.LT.7) WRITE (NTD)((TMASS2(II,JJ),II=1,NEQB),R0013600
  843.      $ JJ=1,MMA),(A2(I,1),I=1,NEQB)                                     R0013601
  844.       IF(NDYN.EQ.7)WRITE (NTD) ((TMASS2(II,JJ),II=1,NEQB),JJ=1,MMA)     R0013610
  845.       IF(NDYN.EQ.11)WRITE(NTD) ((TMASS(II,JJ),II=1,NEQB),JJ=1,MMA),(A2(IR0013620
  846.      $ ,1),I=1,NEQB)                                                    R0013621
  847.       IF(NDYN.EQ.11.OR.NELGEO.EQ.1) WRITE(3) ((B2(I,J),I=1,NEQB),J=1,LL)R0013631
  848.       IF(NDYN.GT.3.AND.NDYN.LE.7) NWDS = MBAND * NEQB                   R0013631
  849.       WRITE (4) ((A2(II,JJ),II=1,NEQB),JJ=1,MBAND)                      R0013640
  850. CC    CALL SQEEZE(A2,NWDS,NTA,ISQZ)                                     00013640
  851.       IF (MM.EQ.MB) MM=0                                                00013650
  852.       MM=MM+1                                                           00013660
  853.       PER=(M+1)*100.0/X                                                 00013670
  854.       IFORM(2) = ICOO(ICO)                                              00013680
  855.       WRITE(6,2003) PER                                                 R0013690
  856.  2003 FORMAT (5X,F10.4/)                                                R0013691
  857.       ICO = ICO + 1                                                     00013700
  858.       IF ( ICO .LT. 11 ) GO TO 310                                      00013710
  859.       WRITE(6,295)                                                      00013720
  860.   295 FORMAT(1H )                                                       00013730
  861.       ICO = 1                                                           00013740
  862.   310 NSHIFT=NSHIFT+NE2B                                                00013750
  863.       WRITE(6,320)                                                      00013760
  864.   320 FORMAT(////20X,59(1H*)/20X,59HTHE MASTER STIFFNESS AND LOAD MATRIC00013770
  865.      $ES HAVE BEEN ASSEMBLED./20X,59(1H*))                              00013780
  866.       IF(NFLG.EQ.1) KSKIP=1                                             00013790
  867.       IF(NDYN.LT.4.OR.NDYN.GT.6) RETURN                                 00013800
  868.       IF(NDEG.GT.0) GO TO 340                                           00013810
  869.       WRITE(6,330)                                                      00013820
  870.   330 FORMAT (51H0STRUCTURE WITH NO DEGREES OF FREEDOM CHECK DATA     ) 00013830
  871.       KSKIP=1                                                           00013840
  872.       RETURN                                                            00013850
  873.   340 IF(NDEG.GT.0) ANORM= (ANORM/NDEG)*1.0E-08                         00013860
  874.       NTERM=NEQB*NBLOCK*MBAND                                           00013870
  875.       PCT=100.0D0*DBLE  (NNZTRM)/DBLE  (NTERM)                          R0013880
  876.       RATIO=1.0D30                                                      00013890
  877.       IF(AMIN.NE.0D0) RATIO=AMAX/AMIN                                   00013900
  878.       AAVG=ANORM*1.0D8                                                  00013910
  879.       WRITE(6,1550)AMIN,AMAX,RATIO,AAVG,PCT                             00013920
  880.       RETURN                                                            00013930
  881.  1500 FORMAT(17H OVERALL MATRICES,1X,5HBLOCK,I3,//,                     00013940
  882.      117H STIFFNESS MATRIX)                                             00013950
  883.  1510 FORMAT((1P8E10.3))                                                00013960
  884.  1520 FORMAT (  (1H ,1P10E13.4))                                        00013970
  885.  1530 FORMAT(///,12H LOAD MATRIX)                                       00013980
  886.  1540 FORMAT(///,12H MASS MATRIX)                                       00013990
  887.  1550 FORMAT(5X,27HSTIFFNESS MATRIX PARAMETERS,//,                      00014000
  888.      1 15X,34HMINIMUM NON-ZERO DIAGONAL ELEMENT=,1PD10.3,/,             00014010
  889.      2 15X,34HMAXIMUM DIAGONAL ELEMENT         =,  D10.3,/,             00014020
  890.      3 15X,34HMAXIMUM/MINIMUM                  =,  D10.3,/,             00014030
  891.      4 15X,34HAVERAGE DIAGONAL ELEMENT         =,  D10.3,/,             00014040
  892.      5 15X,34HDENSITY OF THE MATRIX            =,  D10.3)               00014050
  893.       END                                                               00014060
  894.       FUNCTION AGET(IIPOS)                                              00014070
  895.       INTEGER SECT,POINT,BEGIN,GETSEC,EPOINT,BLANK,AGET,AGETW           00014080
  896.       DOUBLE PRECISION RGET,XX                                          00014090
  897.       LOGICAL EOL,EOS,EOF,ERROR,INDEX,GETWRD                            00014100
  898.       COMMON  /FRECNT/ LINE(80),SECT,EOL,EOS,EOF,                       00014110
  899.      1ERROR,BLANK,ICOMMA,POINT,BEGIN,LENGTH,                            00014120
  900.      2EPOINT,NSECT,LINENM,MAXSTR,KUNIT,JUNIT,IUNIT                      00014130
  901.       AGET = BLANK                                                      00014140
  902.       IPOSIT = IIPOS                                                    00014150
  903.       GO TO 500                                                         00014160
  904.       ENTRY AGETW(AGE001)                                               00014170
  905.       AGETW = BLANK                                                     00014180
  906.       IPOSIT = 1                                                        00014190
  907.       IF (.NOT.GETWRD(GET001).OR.LENGTH.EQ.0) RETURN                    00014200
  908.       DO 450 ILOOP=BEGIN,80                                             00014210
  909.       IF (LINE(ILOOP).EQ.ICOMMA) GO TO 460                              00014220
  910. 450   CONTINUE                                                          00014230
  911. 460   MAXSTR = ILOOP - BEGIN                                            00014240
  912. 500   IF (IPOSIT.GT.MAXSTR.OR.IPOSIT.LE.0) RETURN                       00014250
  913.       IF ((BEGIN+IPOSIT-1).LE.80) AGET = LINE (BEGIN+IPOSIT-1)          00014260
  914.       AGETW = AGET                                                      00014270
  915.       RETURN                                                            00014280
  916.       END                                                               00014290
  917.       SUBROUTINE QMR3(C,D,FAC,B,N,JC,KC,JB,NWA)                         00186950
  918.       IMPLICIT REAL*8(A-H,O-Z)                                          00186960
  919.       DIMENSION B(1),C(1),D(1)                                          00186970
  920.       MBAND=NWA/N                                                       00186980
  921.       IB=1                                                              00186990
  922.       IC=1                                                              00187000
  923.       DO 100 I=1,N                                                      00187010
  924.       DO 90 J=1,MBAND                                                   00187020
  925.       KB=N*(J-1)+IB                                                     00187030
  926.       KCC=N*(J-1)+IC                                                    00187040
  927.       C(KCC)=D(KCC)-FAC*B(KB)                                           00187050
  928.   90  CONTINUE                                                          00187060
  929.       IB=IB+JB                                                          00187070
  930.   100 IC=IC+JC                                                          00187080
  931.   210 FORMAT(5X,10E10.3)                                                00187090
  932.       RETURN                                                            00187100
  933.       END                                                               00187110
  934.       SUBROUTINE QVDOT1 (C,N1,B,N,JA,JB)                                R0193990
  935.       REAL*8 A,B,C                                                      00194000
  936.       COMMON /AAA1/ A(8000)                                             R0194001
  937.       DIMENSION      B(1)                                               R0194010
  938.       IA = N1                                                           R0194020
  939.       IB=1                                                              00194030
  940.       C=0.0                                                             00194040
  941.       DO 100 I=1,N                                                      00194050
  942.       C=C+A(IA)*B(IB)                                                   00194060
  943.       IA=IA+JA                                                          00194070
  944.   100 IB=IB+JB                                                          00194080
  945.       RETURN                                                            00194090
  946.       END                                                               00194100
  947.       SUBROUTINE QVDOT(C,A,B,N,JA,JB)                                   00193990
  948.       REAL*8 A,B,C                                                      00194000
  949.       DIMENSION A(1),B(1)                                               00194010
  950.       IA=1                                                              00194020
  951.       IB=1                                                              00194030
  952.       C=0.0                                                             00194040
  953.       DO 100 I=1,N                                                      00194050
  954.       C=C+A(IA)*B(IB)                                                   00194060
  955.       IA=IA+JA                                                          00194070
  956.   100 IB=IB+JB                                                          00194080
  957.       RETURN                                                            00194090
  958.       END                                                               00194100
  959.