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

  1.       PROGRAM SAP6P3                                                    R0001101
  2.       IMPLICIT REAL*8(A-H,O-Z)                                          00001100
  3.       LOGICAL ELPRT,ELPCH,GENPRT,GENPCH,DEFPCH,GEOST                    00001110
  4.       COMMON A(1)                                                       R0001550
  5.       COMMON/BMDATA/IAISC,ILDTYP,ILDMUL,IBMSEC,NLWAVE,ILOCAL            00001120
  6.       COMMON/EQUILB/NEQIL,NX43                                          00001130
  7.       COMMON/CTL/ELPRT,ELPCH,GENPRT,GENPCH                              00001140
  8.       COMMON / JUNK / DUK(227)                                          00001150
  9.       REAL*8  NPAR                                                      00001160
  10.       COMMON /QTSARG/ QQQ(1000)                                         00001170
  11.       COMMON/DYN3/ NEIG,NAD,ANORM,NVV,NFO                               00001180
  12.       COMMON /DYN4/KDYN,NRESS,NCRD,NCWT,NRESS1                          00001190
  13.       COMMON /DYN5/FRSHFT,FRINIT,FREND,MODEFR,NOSS                      00001200
  14.        COMMON /TAPES/NSTIF,NRED,NL,NR,NT,NMASS                          00001210
  15.       COMMON /EXTRA/MODEX,NT8,N10SV,NT10,KEQB,NY,T(10)                  00001220
  16.       COMMON/GEOSTF/GEOST,NELGEO                                        00001230
  17.       COMMON/MASS/LMASS                                                 00001240
  18.       COMMON/MATL/MATLCO                                                R0001241
  19.       COMMON/SIZE/NDMX,MXDF,NSMX,NTERM,NADND                            00001250
  20.       COMMON/SLVE/NSLAVE                                                00001260
  21.       COMMON /ELPAR/ NPAR(14),NUMNP,MBAND,NELTYP,N1,N2,N3,N4,N5,MTOT,NEQ00001270
  22.      $ ,N2P,N3P,NMRI,NTRI,N1P,NUMEL,NUMEL2,KZ(20,2),NEMN                00001280
  23.       COMMON / MISC / NBLOCK,NEQB,LL,NFREQ,LB                           00001290
  24.       COMMON/AMB/ GRAV,REFT,JROT                                        00001300
  25.       COMMON /PREP/ XMX,XAD,KSKIP,NDYN,I1,I99,POS,PRTCOD                00001310
  26.      $              ,POSSAV,PRTOFF,PRTON,PRTDUM,IDIRC                   00001320
  27.       COMMON /DYN/ IFIL1(11),IFIL2                                      00001330
  28.       COMMON/ELARRY/NELAR(4,20)                                         00001340
  29.       COMMON /ELTEMP/ SET1(103)                                         00001350
  30.      $       /OUT/KSET2(6),KELRST,MAXDF,IFIL3(2)                        00001360
  31.      $       /SQZ/    SET3,LIST,LISTC,LISTB,LISTA,NRC1                  R0001370
  32.      $       /TRASH/  SET4(490)                                         00001380
  33.      $       /GPS/    SET5(10)                                          00001390
  34.      $       /CG/     SET6(4),RFIL1(2)                                  00001400
  35.      $       /TAPES/ SET7(6)                                            00001410
  36.      $       /DYN2/KSET8(3),NFVC,SET8(12)                               00001420
  37.       COMMON /WORDS/ NWDS(30,2)                                         00001430
  38.       COMMON /BAND/  NRNM(3),IRSK,IFIL4(4)                              00001440
  39.       COMMON /HEADIN/TITLE1(20),TITLE2(5),TITLE3(10)                    00001450
  40.       COMMON /SUPEL/ NSELEM,NEQL,NODESE                                 00001460
  41.      $,KSET(3)                                                          00001470
  42.       COMMON/FORCE/ NLC,NELD                                            00001480
  43.         COMMON/DAPG/NQ1,NQX,DUMY(210)                                   00001490
  44.       COMMON/VAXPLT/IVPLT,XVB(6),XVA(4),MINX,MINY,LEN                   00001500
  45.       COMMON /ICM/ICOMP,MMRI,MTRI,M1P,M2P,M3P                           00001510
  46.       COMMON/PLOTH/IPLT,IPLWRT                                          00001520
  47.       COMMON/COMMT/NTYP,NUMET,NNRRC,NNRRC1                              R0001521
  48.       COMMON/COMMT1/NDSSS,KDSSS,NTY,NSLDM,NBLANK,MDYN,NE2B,KRK1         R0001522
  49.       COMMON /AAA1/ ATR(8000)                                           R0001523
  50.       COMMON /AAA2/ RKFT(4),RLDG(300),RMHI(300),B(600)                  R0001524
  51.       COMMON /AAA3/ TMASS(350,1),BBR(200,5)                             R0001525
  52.       DIMENSION KZN(20),ZD(31)                                          00001530
  53.       DIMENSION NEXPDT(2),NOWDTE(4)                                     00001540
  54.       DATA KZN/2,7,1,2,7,7,10,7,21,1177,6,51,10,21,9,7,8,5,0,0/         00001560
  55.       DATA NEXPDT/78,222/                                               00001570
  56.       WRITE (*,990)                                                     R0001611
  57.   990 FORMAT (5X,'************* PROGRAM SAP6PC3 STARTING **********'/)  R0001612
  58.       CALL SIZER3                                                       00001610
  59.       MTOTR = MTOT                                                      R0001612
  60.       CALL COMMRW(1)                                                    R0001611
  61.       MTOT = MTOTR                                                      R0001613
  62.       WRITE (6,991) MTOT                                                R0001614
  63.   991 FORMAT (5X,'********* MTOT IN SAP6PC3 =  ',I5/)                   R0001615
  64.       IF (KSKIP .EQ. 1) GO TO 185                                       R0001613
  65.       IF (NNRRC .EQ. 183) GO TO 183                                     R0001612
  66.       IF(NSELEM.LE.0) GO TO 183                                         00002990
  67.   183 NUMET=NUMEL+NUMEL2-NBLANK+NSELEM                                  00003200
  68.       MBMAX=20000                                                       00003210
  69.       IF(MBAND.LE.0.OR.MBAND.GT.MBMAX) KSKIP=1                          00003220
  70.       IF(MBAND.LE.0.OR.MBAND.GT.MBMAX) WRITE(6,184)MBAND                00003230
  71.   184 FORMAT(1X ,29HERROR--BANDWIDTH OF MESH WAS ,I6,14H.  THIS IS NOT, 00003240
  72.      $ 32H A VALID VALUE.  JOB TERMINATED.)                             00003250
  73.   185 IF(MXDF.EQ.42.OR.MXDF.EQ.33) MXDF=24                              00003260
  74.       IF(KELRST.NE.1) GO TO 189                                         00003270
  75.       WRITE(6,186)MBAND,MAXDF                                           00003280
  76.   186 FORMAT(1X ,20X,40HTHE STIFFNESS AND LOAD MATRICES HAVE BEE,       00003290
  77.      111HN COMPUTED.,                                                   00003300
  78.      $/20X,6HMBAND=,I5,11H AND MAXDF=,I5,                               00003310
  79.      230H . THEY ARE TO BE INPUT ON THE,                                00003320
  80.      $16H EXECUTE- CARD.///)                                            00003330
  81.       CALL SECOND(T(3))                                                 00003340
  82.       T(6)=T(3)                                                         00003350
  83.       T(4)=T(3)                                                         00003360
  84.       T(5)=T(3)                                                         00003370
  85.       NNRRC = 330                                                       R0003371
  86.       GO TO 330                                                         00003380
  87.   189 CONTINUE                                                          00003390
  88.       NEMN=(MXDF*MXDF-MXDF)/2+MXDF*(LL+3)+1                             00003400
  89.       IF(LMASS.EQ.1) NEMN=NEMN+MXDF*(MXDF-1)                            00003410
  90.       IF(GEOST)NEMN=NEMN+3*(MXDF*MXDF)+1                                00003420
  91.       NEMNM=NSMX*(MXDF+LL)+MXDF+3+10*LL                                 00003430
  92.       IF(NDYN.EQ.3.OR.NDYN.EQ.6) NEMNM=NSMX*(MXDF+LL)+MXDF+13+10*NFREQ  00003440
  93.       IF(NEMNM.GT.NEMN) NEMN=NEMNM                                      00003450
  94.       IF(NSELEM.GT.0) NEMNM=MAXDF+(MAXDF*MAXDF-MAXDF)/2+MAXDF*(LL+2)+1  00003460
  95.       IF(LMASS.EQ.1.AND.NSELEM.GT.0)                                    00003470
  96.      $ NEMNM=NEMNM+MAXDF*(MAXDF-1)                                      00003480
  97.       IF(GEOST.AND.NSELEM.GT.0)NEMNM=NEMNM+3*MAXDF*MAXDF                00003490
  98.       NEMN=NEMN+3                                                       00003500
  99.       IF(NEMNM.GT.NEMN) NEMN=NEMNM                                      00003510
  100.       MDYN=NDYN+1                                                       00003520
  101.       NF=NFREQ                                                          00003530
  102.       MODEX=KSKIP                                                       00003540
  103.         IF(NDYN.GT.11) GO TO 330                                        00003550
  104.         IF(NDYN.EQ.10) GO TO 320                                        00003560
  105.   190 NEQB=(MTOT-NEMN)/(MBAND+LL+1)/2                                   00003570
  106.       IF(LMASS.EQ.1.OR.GEOST)                                           00003580
  107.      $NEQB=(MTOT-NEMN)/(2*MBAND+LL)/2                                   00003590
  108.       IF(KEQB.LT.0.AND.KEQB.NE.-99999) NEQB=-KEQB                       00003600
  109.       IF(NELGEO.EQ.1) GO TO 200                                         00003610
  110.       GO TO (200,200,200,200,210,210,210,240,200,200,200,200,210),MDYN  00003620
  111.   200 CONTINUE                                                          00003630
  112.       NEQB1=(MTOT-MBAND-NEMN-LL*(MBAND+2))/(3*LL+MBAND+1)               00003640
  113.       IF(LMASS.EQ.1.OR.GEOST)                                           00003650
  114.      $NEQB1=(MTOT-MBAND-NEMN-LL*(MBAND+2))/(3*LL+2*MBAND)               00003660
  115.       IF(NEQB1.LT.NEQB) NEQB=NEQB1                                      00003670
  116.       NBLOCK=(NEQ-1)/NEQB +1                                            00003680
  117.       IF (NEQB.GT.NEQ) NEQB=NEQ                                         00003690
  118.       IF(NDYN.GT.3.AND.NDYN.LT.7) GO TO 210                             00003700
  119.       IF(NDYN.GT.0.AND.NDYN.LT.8) GO TO 250                             00003710
  120.       IF(KEQB.EQ.-99999) GO TO 250                                      00003720
  121.       IF(NDYN.EQ.11) GO TO 220                                          00003730
  122.       CALL SECOND(T(3))                                                 00003740
  123.       N1=1                                                              00003750
  124.       N2=KZ(6,1)+LL*4                                                   00003760
  125.       N3=LL*3                                                           00003770
  126.       CALL QVCOPY(A(N2),SET4(1),N3)                                     00003780
  127.       N2=NUMNP*3+N1                                                     00003790
  128.       N3=N2+NEQ                                                         00003800
  129.       N4=N3+NEMN                                                        00003810
  130.       IF(N4.GT.MTOT) CALL ERROR(N4-MTOT)                                00003820
  131.       IF(KSKIP.EQ.1) GO TO 201                                          00003830
  132.       CALL CBLOK(A(N2),A(N3),LL,NBLOCK,MCB,NUMET,MTB,MVT,NEMN)          00003840
  133.       MT2B=MTB*2                                                        00003850
  134.       WRITE(6,510)NEQ,MBAND,MCB,NBLOCK                                  00003860
  135.   201 CALL SECOND(T(4))                                                 00003870
  136.       IF(KSKIP.EQ.1) GO TO 202                                          00003880
  137.       N2=N1+4                                                           00003890
  138.       N3=N2+MCB                                                         00003900
  139.       N4=N3+MCB                                                         00003910
  140.       N5=N1                                                             R0003920
  141.       N6=N5+4                                                           00003930
  142.       N7=N6+MCB                                                         00003940
  143.       N8=N7+MCB                                                         00003950
  144.       N9=N4+MTB                                                         R0003960
  145.       N10=N9+NEMN                                                       00003970
  146.       IF(N10.GT.MTOT) CALL ERROR(N10-MTOT)                              00003980
  147.       NN5=MCB*LL                                                        00003990
  148.       NN6=4+2*MCB+MTB                                                   00004000
  149.       CALL TOTSTF(                                    A(N5),A(N5),      R0004010
  150.      $A(N6),A(N7),A(N8),A(N8),A(N9),NBLOCK,MT2B,NUMET,LL,MTB,           R0004020
  151.      $MCB,NEMN,NN5,NN6)                                                 00004030
  152.   202 CALL SECOND(T(5))                                                 00004040
  153.       IF(KSKIP.EQ.1) GO TO 209                                          00004050
  154.       MLT=MAX0(MTB,NEQ-2*MCB)                                           00004060
  155.       MM1=3                                                             00004070
  156.       MM2=4                                                             00004080
  157.       MM3=62                                                            R0004090
  158.       MM4=10                                                            00004100
  159.       NEQB=10                                                           00004110
  160.   205 NN2=NEQB                                                          00004120
  161.       NEQB=10+NEQB                                                      00004130
  162.       IF(NEQB.GT.NEQ) GO TO 206                                         00004140
  163.       NN1=NEMN+LL*(NEQ+NEQB+26)+NUMNP                                   00004150
  164.       NN3=LL*(NEQB+16)+NUMNP*3                                          00004160
  165.       IF(NN3.LT.MTOT.AND.NN1.LT.MTOT) GO TO 205                         00004170
  166.   206 NEQB=NN2                                                          00004180
  167.       IF(NEQB.GT.NEQ) NEQB=NEQ                                          00004190
  168.       NBLK2=(NEQ-1)/NEQB+1                                              00004200
  169.       N1=1+10*LL                                                        00004210
  170.       N2=N1+4                                                           00004220
  171.       N3=N2+MCB                                                         00004230
  172.       N4=N3+MCB                                                         00004240
  173.       N5=N1                                                             R0004250
  174.       N6=N5+MLT                                                         00004260
  175.       N7=N6+4                                                           00004270
  176.       N8=N7+MCB                                                         00004280
  177.       N9=N8+MCB                                                         00004290
  178.       N10=N9+LL                                                         00004300
  179.       IF(N10.GT.MTOT) CALL ERROR(N10-MTOT)                              00004310
  180.       NN4=1+10*LL+NEQB*LL+NEQ                                           00004320
  181.       IF(NN4.GT.MTOT) CALL ERROR(NN4-MTOT)                              00004330
  182.       N10=N10-NEQ                                                       00004340
  183.       NN1=2*MCB+4                                                       00004350
  184.       NN2=MCB+MCB+MTB+4                                                 00004360
  185.       NN3=MCB+MCB+MLT+4                                                 00004370
  186.       IF(KSKIP.EQ.1) GO TO 320                                          00004380
  187.       IF(NDYN.NE.8) GO TO 207                                           00004390
  188.       N11=N10+2*NEQ                                                     00004400
  189.       N12=N11                                                           00004410
  190.       IF(LMASS.EQ.-1) N12=N11+NEQ                                       00004420
  191.       IF(N11.GT.MTOT) CALL ERROR(N11-MTOT)                              00004430
  192.       IF(N12.GT.MTOT) CALL ERROR(N12-MTOT)                              00004440
  193.       IF(KSKIP.EQ.1) GO TO 320                                          00004450
  194.       N11=N11-NEQ                                                       00004460
  195.       N12=N12-NEQ                                                       00004470
  196.       CALL CNDNS(                                    A(N5),A(N5),A(N11),00004480
  197.      $A(N6),A(N6),A(N7),A(N8),A(N9),LL,NBLOCK,NEQ,MTB,MCB,MVT,MLT,MM1,  00004490
  198.      $MM2,MM3,MM4,NN1,NN2,NN3,NEQB,NBLK2,A(N10),A(N1),A(1),A(1),NUMNP   00004500
  199.      $,A(N12))                                                          00004510
  200.       GO TO 208                                                         00004520
  201.   207 CONTINUE                                                          00004530
  202.       CALL SLOWR (                                    A(N5),A(N5),A(N5),R0004540
  203.      $A(N6),A(N6),A(N7),A(N8),A(N9),LL,NBLOCK,NEQ,MTB,MCB,MVT,MLT,MM1,  00004550
  204.      $MM2,MM3,MM4,NN1,NN2,NN3,NEQB,NBLK2,A(N10),A(N1),A(1))             00004560
  205.   208 CONTINUE                                                          00004570
  206.       NBLOCK=NBLK2                                                      00004580
  207.       N1=1+NEMN                                                         00004590
  208.       IF(NDYN.EQ.9)NDYN=0                                               00004600
  209.   209 CALL SECOND(T(6))                                                 00004610
  210.       IF(NDYN.EQ.8) GO TO 330                                           00004620
  211.       NNRRC1 = 320                                                      R0004621
  212.       GO TO 320                                                         00004630
  213.   210 IF (NEQB.LT.NEQ) GO TO 220                                        00004640
  214.         IF(NOSS.EQ.1)GO TO 220                                          00004650
  215.       NIM=3                                                             00004660
  216.       NC=NF + NIM                                                       00004670
  217.       NVM=6                                                             00004680
  218.       NCA=NEQ*MAX0(MBAND,NC)                                            00004690
  219.       NTOT=NCA + 4*NEQ + 2*NVM*NEQ + 5*NC                               00004700
  220.       IF(LMASS.EQ.1.OR.NDYN.EQ.11)NTOT=NTOT+NEQ*(MBAND-1)               00004710
  221.       NEIG=0                                                            00004720
  222.       IF(NTOT.LE.MTOT) GO TO 230                                        00004730
  223.   220 NV=MIN0(2*NF,NF+8)                                                00004740
  224.         IF(NFVC.GT.0) NAD=NFVC                                          00004750
  225.         IF(NFVC.GT.0) NFVC=0                                            00004760
  226.       IF (NAD.NE.0) NV=NAD                                              00004770
  227.       NEQB1=(MTOT - MBAND)/(2*MBAND + 1)                                00004780
  228.       IF(LMASS.EQ.1.OR.NDYN.EQ.11)                                      00004790
  229.      $NEQB1=(MTOT - MBAND)/(3*MBAND)                                    00004800
  230.       NEQB2=(MTOT - MBAND - 2*NV - NV*(MBAND-2))/(3*NV + MBAND + 1)     00004810
  231.       IF(LMASS.EQ.1.OR.NDYN.EQ.11)                                      00004820
  232.      $NEQB2=(MTOT - MBAND - 2*NV - NV*(MBAND-2))/(3*NV + 2*MBAND)       00004830
  233.       NEQB3=(MTOT - 3*NV*NV - 3*NV)/(2*NV + 1)                          00004840
  234.       NEQB4=(MTOT - 6*NV)/(1 + MBAND)                                   00004850
  235.       IF(LMASS.EQ.1.OR.NDYN.EQ.11)                                      00004860
  236.      $NEQB4=(MTOT-6*NV)/(2*MBAND)                                       00004870
  237.       IF (NEQB1.LT.NEQB) NEQB=NEQB1                                     00004880
  238.       IF (NEQB2.LT.NEQB) NEQB=NEQB2                                     00004890
  239.       IF (NEQB3.LT.NEQB) NEQB=NEQB3                                     00004900
  240.       IF (NEQB4.LT.NEQB) NEQB=NEQB4                                     00004910
  241.       NEIG=1                                                            00004920
  242.   230 CONTINUE                                                          00004930
  243.       NBLOCK = (NEQ-1)/NEQB +1                                          00004940
  244.       IF (NEQB.GE.NEQ) NEQB=NEQ                                         00004950
  245.       IF(NDYN.EQ.11) GO TO 250                                          00004960
  246.       KREM = 1000                                                       00004970
  247.       NTOT = NBLOCK*NEQB*NF + KREM                                      00004980
  248.       IF(MTOT.LT.NTOT)                                                  00004990
  249.      $WRITE (6,540)NTOT,MTOT                                            00005000
  250.       IF(MTOT.LT.NTOT)KSKIP=1                                           00005010
  251.       GO TO 250                                                         00005020
  252.   240 CONTINUE                                                          00005030
  253.       NN2 = NEQ                                                         00005040
  254.       NN3 = NEQ                                                         00005050
  255.       NEQB1 = (MTOT-NN2-NN3-NEQ-MBAND)/(2*MBAND+1)                      00005060
  256.       NEQB2 = (MTOT-MBAND-2*(NN2+NN3)-5*NEQ)/(MBAND+1)                  00005070
  257.       IF(NEQB1.LT.NEQB) NEQB = NEQB1                                    00005080
  258.       IF(NEQB2.LT.NEQB) NEQB = NEQB2                                    00005090
  259.       IF(NEQB.GT.NEQ)   NEQB = NEQ                                      00005100
  260.       NBLOCK = (NEQ-1)/NEQB +1                                          00005110
  261.       NN2 = 10                                                          00005120
  262.       NN3 = 40                                                          00005130
  263.       NN4 = 3*NUMNP + 2*NN2*NEQ                                         00005140
  264.       IF(NN4.GT.MTOT)                                                   00005150
  265.      $WRITE (6,540)NN4,MTOT                                             00005160
  266.       IF(NN4.GT.MTOT)KSKIP=1                                            00005170
  267.       NN4 = NEQ*2*(NN2+1) + NN2*(1+2*NN3)                               00005180
  268.       IF(NN4.GT.MTOT)                                                   00005190
  269.      $WRITE (6,540)NN4,MTOT                                             00005200
  270.         IF(NN4.GT.MTOT)KSKIP=1                                          00005210
  271.   250 CONTINUE                                                          00005220
  272.       MMA=1                                                             00005230
  273.       IF(LMASS.EQ.1) MMA=MBAND                                          00005240
  274.       N4=N2+NEQB*LL                                                     00005250
  275.       N3=N4+NEQB*MMA                                                    00005260
  276.       N5=N3+6*LL                                                        00005270
  277.       NSLDM=NSLAVE                                                      00005280
  278.       IF(NSLDM.EQ.0) NSLDM=1                                            00005290
  279.       N6=N5+NSLDM*4                                                     00005300
  280.       IF(N6.GT.MTOT) CALL ERROR(N6-MTOT)                                00005310
  281.       WRITE (6,510) NEQ,MBAND,NEQB,NBLOCK                               00005320
  282.       CALL SECOND(T(3))                                                 00005330
  283.       IF(NLC.LE.0.AND.KSKIP.EQ.1) GO TO 255                             00005340
  284.       CALL INL(A(N1),A(N2),A(N3),A(N4),NUMNP,NEQB,LL,MMA,A(N6),NSLDM)   R0005350
  285.   255 CONTINUE                                                          00005360
  286.       NE2B=2*NEQB                                                       00005370
  287.       N1=1+NEMN                                                         00005380
  288.       CALL SECOND(T(4))                                                 00005390
  289.       IF(KSKIP.EQ.1) GO TO 270                                          00005400
  290.       NY=NUMET                                                          00005410
  291.       IF(NUMET.LE.0) WRITE(6,260)                                       00005420
  292.       IF(NUMET.LE.0) KSKIP=1                                            00005430
  293.   260 FORMAT(//20X, 23H ALL ELEMENTS ARE BLANK//)                       00005440
  294.        NN2=N1+NEQB*MBAND                                                00005450
  295.       NN3=NN2+NEQB*LL                                                   00005460
  296.       NLCMR2 = NN2                                                      R0005451
  297.       DO 264 JJ=1,LL                                                    R0005452
  298.       DO 263 II=1,NEQB                                                  R0005453
  299.       BBR(II,JJ) = A(NLCMR2)                                            R0005454
  300.   263 NLCMR2 = NLCMR2 + 1                                               R0005455
  301.   264 CONTINUE                                                          R0005456
  302.       WRITE (6,2003) NN1,NN2,NN3
  303.  2003 FORMAT (5X,'*** NN1 NN2 NN3 ***',3I5/)
  304. CC    WRITE (6,2001) (BBR(II,JJ),II=1,NEQB)     
  305. C2001 FORMAT (1X,'**B B B**',11E10.3/)
  306.       NLCMR3 = NN3                                                      R0005461
  307.       DO 265 II=1,NEQB                                                  R0005461
  308.       TMASS(II,1) = A(NLCMR3)                                           R0005462
  309.       NLCMR3 = NLCMR3 + 1                                               R0005463
  310.   265 CONTINUE                                                          R0005464
  311. CC    WRITE (6,2002) (TMASS(II,1),II=1,NEQB)
  312. C2002 FORMAT (1X,'**TMASS**',11E10.3/)
  313.       NN4=N1                                                            R0005470
  314.       IF(LMASS.EQ.1) NN4=NN3 + NEQB * MBAND                             R0005480
  315.       MMA=1                                                             00005490
  316.       IF(LMASS.EQ.1) MMA=MBAND                                          00005500
  317.       NN5=NN4+NEQB*MBAND                                                00005510
  318.       NN6=NN5+NEQB*LL                                                   00005520
  319.       CALL ADDSTF(                    A(NN4),              NUMET,NBLOCK,R0005530
  320.      $NE2B,LL,MBAND,NEQB,NEMN,ANORM,NVV,MMA)                            00005540
  321.   270 CALL SECOND(T(5))                                                 00005550
  322.       MODEX=KSKIP                                                       00005560
  323.   280 CONTINUE                                                          00005570
  324. CCR   IF(NELGEO.EQ.1) GO TO 290                                         R0005580
  325.   320 CONTINUE                                                          R0005581
  326.   330 CONTINUE                                                          R0005582
  327.       CALL COMMRW(0)                                                    R0005583
  328.       WRITE (*,1099)                                                    R0005584
  329.  1099 FORMAT (5X,'************ SAP6PC3 FINISHED ************')          R0005585
  330.   510 FORMAT(34H1 TOTAL NUMBER OF EQUATIONS      =,I5,                  00007430
  331.      $      /34H  BANDWIDTH                      =,I5,                  00007440
  332.      $      /34H  NUMBER OF EQUATIONS IN A BLOCK =,I5,                  00007450
  333.      $      /34H  NUMBER OF BLOCKS               =,I5)                  00007460
  334.   540 FORMAT (// 47H ** WARNING.  ESTIMATE OF STORAGE FOR A DYNAMIC,    00007670
  335.      $           32H ANALYSIS EXCEEDS AVAILABLE CORE,                   00007680
  336.      &/31H  CONTINUE IN THE READDATA MODE/15H MTOT REQUIRED=,           00007690
  337.      &I10,/17H MTOT AVAILABLE =,I10)                                    00007700
  338. CC    STOP                                                              R0007771
  339.       END                                                               00007780
  340.       SUBROUTINE FILES(NN)
  341.       RETURN
  342.       END
  343.       BLOCKDATA                                                         00007790
  344.       IMPLICIT REAL*8(A-H,O-Z)                                          00007800
  345.         COMMON/HEADIN/TITLE1(20),TITLE2(5),TITLE3(10)                   00007810
  346.       COMMON/ELARRY/NELAR(4,20)                                         00007820
  347.       COMMON /GASS/ XK(4,4),WGT(4,4),IPERM(3)                           00007830
  348.       COMMON/GASS2/A5(7,2),W5(7)                                        00007840
  349.       COMMON /PREP/XMX,XAD,KSKIP,NDYN,I1,I99,POS,PRTCOD                 00007850
  350.      1,POSSAV,PRTOFF,PRTON,PRTDUM,IDIRC                                 00007860
  351.       DATA XK /     0.D0,     0.D0,               0.D0,            0.D0,00007870
  352.      $ -.5773502691896D0, .5773502691896D0,     0.D0,              0.D0,00007880
  353.      $ -.7745966692415D0, .0000000000000D0, .7745966692415D0,      0.D0,00007890
  354.      $ -.8611363115941D0,-.3399810435849D0, .3399810435849D0,           00007900
  355.      $.8611363115941D0/                                                 00007910
  356.       DATA WGT / 2.000D0,     0.D0,          0.D0,           0.D0,      00007920
  357.      $ 1.0000000000000D0,1.0000000000000D0,  0.D0,           0.D0,      00007930
  358.      $  .5555555555556D0, .8888888888889D0, .5555555555556D0,0.D0,      00007940
  359.      $  .3478548451375D0, .6521451548625D0, .6521451548625D0,           00007950
  360.      $  .3478548451375D0/                                               00007960
  361.       DATA IPERM / 2,3,1 /                                              00007970
  362.       DATA  A5(1,1)/-0.333333333333D0/,A5(2,1)/-0.88056825640D0/        00007980
  363.       DATA  A5(3,1)/-0.05971587178D0/,A5(4,1)/-0.05971587178D0/         00007990
  364.       DATA  A5(5,1)/ 0.59485397070D0/, A5(6,1)/-0.79742698530D0/        00008000
  365.       DATA  A5(7,1)/-0.79742698530D0/, A5(1,2)/-0.333333333333D0/       00008010
  366.       DATA  A5(2,2)/-0.05971587178D0/, A5(3,2)/-0.88076825640D0/        00008020
  367.       DATA  A5(4,2)/-0.05971587178D0/ ,A5(5,2)/-0.79742698530D0/        00008030
  368.       DATA  A5(6,2)/ 0.59485397070D0/ ,A5(7,2)/-0.79742698530D0/        00008040
  369.       DATA    W5(1)/ 0.225        D0/,  W5(2)/ 0.13239415   D0/         00008050
  370.       DATA    W5(3)/ 0.13239415   D0/,  W5(4)/ 0.13239415   D0/         00008060
  371.       DATA    W5(5)/ 0.12593918   D0/,  W5(6)/ 0.12593918   D0/         00008070
  372.       DATA    W5(7)/ 0.12593918   D0/                                   00008080
  373.       DATA NELAR /                                                      00008090
  374.      $   2,   2,   6,   2,                                              00008100
  375.      $   3,   2,  12,  28,                                              00008110
  376.      $   4,   4,  12,   8,                                              00008120
  377.      $   4,   4,   8,   4,                                              00008130
  378.      $   8,   8,  33,  54,                                              00008140
  379.      $   4,   4,  42,  24,                                              00008150
  380.      $   1,   1,   1,   1,                                              00008160
  381.      $   4,   4,   8,   4,                                              00008170
  382.      $   3,   2,  12,  39,                                              00008180
  383.      $  20,  20,  60,  54,                                              00008190
  384.      $   8,   8,  16,  52,                                              00008200
  385.      $   8,   8,  16,  52,                                              00008210
  386.      $   8,   8,  16,  52,                                              00008220
  387.      $   4,   1,   6,   6,                                              00008230
  388.      $   8,   8,  48,   6,                                              00008240
  389.      $   20*0/                                                          00008250
  390.       DATA TITLE2/4H    ,4HSAP6,4H    ,4HVER.,4H 2.0/                   00008260
  391.       DATA TITLE3(3)/4H LPI/,TITLE3(4)/4HAUTO/,TITLE3(5)/54./           00008330
  392.       DATA POS/3H   /,PRTCOD/3H   /                                     00008340
  393.       DATA POSSAV/3H   /,PRTOFF/3HOFF/,PRTON/3HON-/,PRTDUM/3HDUM/       00008350
  394.       DATA IDIRC/0/                                                     00008360
  395.       END                                                               00008370
  396.       SUBROUTINE CLOSE
  397.       RETURN
  398.       END
  399.       SUBROUTINE EXIT
  400.       WRITE (6,101)
  401.  101  FORMAT (5X,'********  SAP6 PROGRAM STOP  ********')
  402.       STOP
  403.       END
  404.       SUBROUTINE TOTSTF (                   AT2,JFT,LDG2,MHI2,A2,B2,SS,NR0308420
  405.      1BLOCK,MT2B,NUMEL,LL,MTB,MCB,NEMN,LBRD,NWTOT)                      00308430
  406.       IMPLICIT REAL*8(A-H,O-Z)                                          00308440
  407.       REAL*8 NPAR                                                       00308450
  408.       REAL*8 MHI,KFT,LDG,JFT,LDG2,MHI2                                  00308460
  409.       LOGICAL ELPRT,ELPCH,GENPRT,GENPCH                                 00308470
  410.       COMMON/CTL/ELPRT,ELPCH,GENPRT,GENPCH                              00308480
  411.       COMMON /PREP/ XD(2),NSTOP,NDYN,NRPREP(15)                         R0308490
  412.       COMMON /SQZ/ ISQZ,NRSQZ(5),NRC1                                   R0308510
  413.       COMMON /JUNK/ NC1,NC2,NC,NORDER(200),LP1,KST,KST2,KND,KND2,LBK,LT,00308520
  414.      1N,K,II,JLOC,ND,NDP,KK,JJ,KCOL,MADD,LMI,LMII,IJ,NRJUNK(231)        R0308530
  415.       COMMON /ELPAR/ NPAR(14),NUMNP,MBAND,NELTYP,N1,N2,N3,N4,N5,MTOT,NEQ00308540
  416.      & ,RRELPA(24)                                                      R0308541
  417.       COMMON /FORCE/ NLC,NELD                                           00308550
  418.       COMMON /AAA1/ A(8000)                                             R0308551
  419.       COMMON /AAA2/ KFT(4),LDG(300),MHI(300),B(600)                     R0308552
  420. CC    DIMENSION MHI(MCB), LDG(MCB), B(LBRD), A(MTB), SS(1)              R0308560
  421.       DIMENSION MHI2(MCB), LDG2(MCB), B2(LBRD), A2(MTB), SS(1)          R0308570
  422.       DIMENSION        JFT(4), AT2(NWTOT)                               R0308580
  423.         CALL FILES(3)                                                   00308590
  424.       NRC2 = 0                                                          R0308600
  425.       NRC3 = 1                                                          R0308610
  426.       ZER=0.0                                                           00308620
  427.       ANORM=0.0D0                                                       00308630
  428.       AMIN=1.0D30                                                       00308640
  429.       AMAX=-AMIN                                                        00308650
  430.       NDEG=0                                                            00308660
  431.       IF (NSTOP.GT.0) RETURN                                            00308670
  432.       NTA=4                                                             00308680
  433.       CALL RDWRT (NTA,AT,1,6,INUM)                                      00308690
  434.       LP1=1+LL                                                          00308700
  435.       NT2=2                                                             00308710
  436.       REWIND 3                                                          00308720
  437.       X=NBLOCK                                                          00308730
  438.       MB=DSQRT(X)                                                       00308740
  439.       MB=MB/2+1                                                         00308750
  440.       MM=1                                                              00308760
  441.       NTMM=3                                                            00308770
  442.       NEBB=NEQ                                                          00308780
  443.       KINC=NBLOCK*20/100                                                00308790
  444.       IF (KINC.LT.1) KINC=1                                             00308800
  445.       NORED=0                                                           00308810
  446.       DO 360 N=1,NBLOCK,2                                               00308820
  447.          CALL QVSET (ZER,A,MTB)                                         00308830
  448.          CALL QVSET (ZER,A2,MTB)                                        00308840
  449.          READ (3) NC1,INUM,KFT,(LDG(IR),IR=1,MCB),(MHI(IR),IR=1,MCB),
  450.      $ (B(IR),IR=1,LBRD)
  451.          RKND=KFT(4)                                                    R0308860
  452.          RKST=KFT(3)                                                    R0308870
  453.          KND = RKND
  454.          KST = RKST
  455.          KST2=KST                                                       00308880
  456.          KND2=KND                                                       00308890
  457.          NC2=0                                                          00308900
  458.          IF (N.EQ.NBLOCK) GO TO 120                                     00308910
  459.          READ (3) NC2,NEBB,JFT,LDG2,MHI2,B2                             R0308920
  460.          RKST2=JFT(3)                                                   R0308930
  461.          RKND2=JFT(4)                                                   R0308940
  462.          KST2 = RKST2
  463.          KND2 = RKND2
  464.          LBK=NC2*LL+1                                                   00308950
  465.          NC2P=NC2+1                                                     00308960
  466.          DO 110 KK=1,NC2                                                00308970
  467.             K=NC2P-KK                                                   00308980
  468.            RLDGK=LDG2(K)                                                R0308990
  469.            LDGK = RLDGK
  470.          DO 110 II=1,LL                                                 00309000
  471.             I=LP1-II                                                    00309010
  472.             LBK=LBK-1                                                   00309020
  473.             A2(LDGK+I)=B2(LBK)                                          00309030
  474. 110      B2(LBK)=0.0                                                    00309040
  475. 120      NC=NC1                                                         00309050
  476.       IF (NRC3 .EQ. 1) WRITE (6,1002) KFT,JFT
  477.  1002 FORMAT (1X,'****** KFT JFT ***',8E11.4/)
  478.          IF (N.EQ.NBLOCK) NEBB=NEQ                                      00309060
  479.          LBK=NC*LL+1                                                    00309070
  480.          NC1P=NC1+1                                                     00309080
  481.          DO 130 KK=1,NC                                                 00309090
  482.             K=NC1P-KK                                                   00309100
  483.            RLDGK=LDG(K)                                                 R0309110
  484.            LDGK = RLDGK
  485.          DO 130 II=1,LL                                                 00309120
  486.             I=LP1-II                                                    00309130
  487.             LBK=LBK-1                                                   00309140
  488.             A(LDGK+I)=B(LBK)                                            00309150
  489. 130      B(LBK)=0.0                                                     00309160
  490.          CALL RDWRT (NT2,A,1,6,INUM)                                    00309170
  491.          NT=0                                                           00309180
  492.          REWIND 10                                                      00309190
  493.          LT=0                                                           00309200
  494.          CALL RDWRT (NTMM,A,1,6,INUM)                                   00309210
  495.          NUME=NUM10                                                     00309220
  496.          IDELT=1                                                        00309230
  497.          NEND=NEQ+1                                                     00309240
  498.          IF (MM.NE.1) GO TO 140                                         00309250
  499.          NUME=NUMEL                                                     00309260
  500.          IDELT=100                                                      00309270
  501.          NUM10=0                                                        00309280
  502. 140      DO 300 K=1,NUME,IDELT                                          00309290
  503.             NUM=MIN0(NUMEL-LT*100,100)                                  00309300
  504.             IF (MM.GT.1) NUM=1                                          00309310
  505.             LT=LT+1                                                     00309320
  506.             IF (NORED.EQ.0.AND.MM.EQ.1) READ (10) NORDER                00309330
  507.             DO 290 NT=1,NUM                                             00309340
  508.                IF (NBLOCK.LE.2) GO TO 150                               00309350
  509.                IF (MM.GT.1) GO TO 160                                   00309360
  510.                NNT=NT*2                                                 00309370
  511.                NST=NORDER(NNT-1)                                        00309380
  512.                NEND=NORDER(NNT)                                         00309390
  513.                IF (NST.GT.KND2.AND.NST.LE.NEBB) GO TO 270               00309400
  514.                IF (NST.GT.NEBB.OR.NEND.LT.KST) GO TO 260                00309410
  515.   150 CALL RDWRT(NT2,SS,NEMN,0,KOUNT)                                   00309420
  516.                GO TO 170                                                00309430
  517. 160            CALL RDWRT (NTMM,SS,NEMN,0,KOUNT)                        00309440
  518. 170            ND=SS(KOUNT)                                             00309450
  519.                IF (SS(ND).LT.KST) GO TO 290                             00309460
  520.                NDP=ND+1                                                 00309470
  521.                NTOT=(ND*ND-ND)/2+ND                                     00309480
  522.                KK=NTOT+1                                                00309490
  523.                DO 240 I=1,ND                                            00309500
  524.                   JLOC=I                                                00309510
  525.                   LMI=SS(I)                                             00309520
  526.                   IF (LMI.LT.KST) GO TO 230                             00309530
  527.                   IF (LMI.GT.KND) GO TO 200                             00309540
  528.                   KCOL=LMI-KST+1                                        00309550
  529.                   RENUM = LDG(KCOL)
  530.                   MA= RENUM   -LMI                                      R0309560
  531.                   DO 180 II=1,I                                         00309570
  532.                      JLOC=JLOC+NDP-II                                   00309580
  533.                      LMII=SS(II)                                        00309590
  534.                      MADD=MA+LMII                                       00309600
  535. 180               A(MADD)=A(MADD)+SS(JLOC)                              00309610
  536.       IF(NELD.EQ.1) GO TO 185                                           00309620
  537.       MA=MADD+LL                                                        00309630
  538.       IF(NDYN.EQ.8) A(MA)=A(MA)+SS(KK+ND)                               00309640
  539.       GO TO 230                                                         00309650
  540.   185 CONTINUE                                                          00309660
  541.                   J=KK                                                  00309670
  542.                   DO 190 LC=1,LL                                        00309680
  543.                      MA=MADD+LC                                         00309690
  544.                      J=J+ND                                             00309700
  545. 190               A(MA)=A(MA)+SS(J)                                     00309710
  546.       IF(NDYN.EQ.8) A (MA)=A (MA)+SS(J+ND)-SS(J)                        00309720
  547.                   GO TO 230                                             00309730
  548. 200               CONTINUE                                              00309740
  549.                   IF (LMI.GT.KND2) GO TO 250                            00309750
  550.                   KCOL=LMI-KST2+1                                       00309760
  551.                   RENUM2 = LDG2(KCOL)
  552.                   MA= RENUM2   -LMI                                     R0309770
  553.                   DO 210 II=1,I                                         00309780
  554.                      JLOC=JLOC+NDP-II                                   00309790
  555.                      LMII=SS(II)                                        00309800
  556.                      MADD=MA+LMII                                       00309810
  557. 210               A2(MADD)=A2(MADD)+SS(JLOC)                            00309820
  558.       IF(NELD.EQ.1) GO TO 215                                           00309830
  559.       MA=MADD+LL                                                        00309840
  560.       IF(NDYN.EQ.8) A2(MA)=A2(MA)+SS(KK+ND)                             00309850
  561.       GO TO 230                                                         00309860
  562.   215 CONTINUE                                                          00309870
  563.                   J=KK                                                  00309880
  564.                   DO 220 LC=1,LL                                        00309890
  565.                      MA=MADD+LC                                         00309900
  566.                      J=J+ND                                             00309910
  567. 220               A2(MA)=A2(MA)+SS(J)                                   00309920
  568.       IF(NDYN.EQ.8) A2(MA)=A2(MA)+SS(J+ND)-SS(J)                        00309930
  569. 230               KK=KK+1                                               00309940
  570. 240            CONTINUE                                                 00309950
  571. 250            CONTINUE                                                 00309960
  572.                IF (MM.NE.1) GO TO 290                                   00309970
  573.                IF (NEND.GT.KND2.AND.NST.LE.NEBB) GO TO 280              00309980
  574.                GO TO 290                                                00309990
  575.   260 CALL RDWRT(NT2,SS,1,3,KOUNT)                                      00310000
  576.                GO TO 290                                                00310010
  577. 270            CALL RDWRT (NT2,SS,NEMN,0,KOUNT)                         00310020
  578. 280            CALL RDWRT (NTMM,SS,KOUNT,1,INUM)                        00310030
  579.                NUM10=NUM10+1                                            00310040
  580. 290         CONTINUE                                                    00310050
  581.             IF (NUMEL.LE.100) NORED=1                                   00310060
  582. 300      CONTINUE                                                       00310070
  583.          DO 310 IJ=1,NC1                                                00310080
  584.            RMNM=LDG(IJ)                                                 R0310090
  585.            MNM = RMNM
  586.             IF (A(MNM).GT.0.) GO TO 1005                                00310100
  587.             I=KST+IJ-1                                                  00310110
  588.             WRITE(6,340) I                                              00310120
  589.             NSTOP=1                                                     00310130
  590.  1005 ANORM=ANORM+A(MNM)                                                00310140
  591.       IF(A(MNM).NE.0.0D0.AND.A(MNM).LT.AMIN) AMIN=A(MNM)                00310150
  592.       IF(A(MNM).GT.AMAX) AMAX=A(MNM)                                    00310160
  593.       IF(A(MNM).NE.0)NDEG=NDEG+1                                        00310170
  594. 310      CONTINUE                                                       00310180
  595.       IF(.NOT.GENPRT) GO TO 1100                                        00310190
  596.       WRITE(6,1500)N                                                    00310200
  597.       DO 1010 IJ=1,NC1                                                  00310210
  598.       I=KST+IJ-1                                                        00310220
  599.       RMNM=LDG(IJ)                                                      R0310230
  600.       MNM = RMNM
  601.       MAXH=MHI(IJ)                                                      00310240
  602.       KL=MNM-MAXH                                                       00310250
  603.       IF(GENPCH) WRITE(7,1520)I,MAXH                                    00310260
  604.       IF(GENPCH) WRITE(7,1510)(A(KL+J),J=1,MAXH)                        00310270
  605.       WRITE(6,1520)I,MAXH                                               00310280
  606.       WRITE(6,1530)(A(KL+J),J=1,MAXH)                                   00310290
  607.  1010 CONTINUE                                                          00310300
  608.       WRITE(6,1550)                                                     00310310
  609.       DO 1020 IJ=1,NC1                                                  00310320
  610.       I=KST+IJ-1                                                        00310330
  611.       RMNM=LDG(IJ)                                                      R0310340
  612.       MNM = RMNM
  613.       IF(GENPCH) WRITE(7,1510)(A(MNM+J),J=1,LL)                         00310350
  614.  1020 WRITE(6,1540)I,(A(MNM+J),J=1,LL)                                  00310360
  615.  1100 CONTINUE                                                          00310370
  616.          IF (N.EQ.NBLOCK) GO TO 330                                     00310380
  617.          DO 320 IJ=1,NC2                                                00310390
  618.            RMNM=LDG2(IJ)                                                R0310400
  619.            MNM = RMNM
  620.             IF (A2(MNM).GT.0.0) GO TO 1105                              00310410
  621.             I=KST2+IJ-1                                                 00310420
  622.             WRITE(6,340) I                                              00310430
  623.             NSTOP=1                                                     00310440
  624.  1105 ANORM=ANORM+A2(MNM)                                               00310450
  625.       IF(A2(MNM).NE.0.0D0.AND.A2(MNM).LT.AMIN) AMIN=A2(MNM)             00310460
  626.       IF(A2(MNM).GT.AMAX) AMAX=A2(MNM)                                  00310470
  627.       IF(A2(MNM).NE.0)NDEG=NDEG+1                                       00310480
  628. 320      CONTINUE                                                       00310490
  629.       IF(.NOT.GENPRT) GO TO 1200                                        00310500
  630.       MP1=N+1                                                           00310510
  631.       WRITE(6,1500)MP1                                                  00310520
  632.       DO 1110 IJ=1,NC2                                                  00310530
  633.       I=KST2+IJ-1                                                       00310540
  634.       RMNM=LDG2(IJ)                                                     R0310550
  635.        MNM = RMNM
  636.       MAXH=MHI2(IJ)                                                     00310560
  637.       KL=MNM-MAXH                                                       00310570
  638.       IF(GENPCH) WRITE(7,1520)I,MAXH                                    00310580
  639.       IF(GENPCH) WRITE(7,1510)(A(KL+J),J=1,MAXH)                        00310590
  640.       WRITE(6,1520)I,MAXH                                               00310600
  641.       WRITE(6,1530)(A2(KL+J),J=1,MAXH)                                  00310610
  642.  1110 CONTINUE                                                          00310620
  643.       WRITE(6,1550)                                                     00310630
  644.       DO 1120 IJ=1,NC2                                                  00310640
  645.       I=KST2+IJ-1                                                       00310650
  646.       RMNM=LDG2(IJ)                                                     R0310660
  647.       MNM = RMNM
  648.       IF(GENPCH) WRITE(7,1510)(A(MNM+J),J=1,LL)                         00310670
  649.  1120 WRITE(6,1540)I,(A2(MNM+J),J=1,LL)                                 00310680
  650.  1200 CONTINUE                                                          00310690
  651. 330      CONTINUE                                                       00310700
  652.          IF (NSTOP.EQ.1) GO TO 360                                      00310710
  653. 340   FORMAT (/31H ZERO DIAGONAL EQUATION NUMBER ,I5,21H EXECUTION TERMI00310720
  654.      1NATED)                                                            00310730
  655. CC       CALL SQEEZE (AT,NWTOT,NTA,ISQZ)                                00310740
  656.          NRC1 = 0                                                       R0310741
  657.          IF (MTB .GT. 8000) NRC1 = 1                                    R0310742
  658.          IF (NRC3 .EQ. 1) WRITE (6,1007) NRC1,NRC2
  659.          NRC2 = NRC2 + 1
  660.  1007    FORMAT (5X,'**** NRC1 NRC2 ****',2I5/)
  661.          WRITE (4) KFT,(LDG(IR),IR=1,MCB),(MHI(IR),IR=1,MCB)            R0310743
  662.          IF (NRC1 .EQ. 1) WRITE (4) (A(IR),IR=1,8000)                   R0310744
  663.          IF (NRC1 .EQ. 1) WRITE (4) (A(IR),IR=8000,MTB)                 R0310745
  664.          IF (NRC1 .EQ. 0) WRITE (4) (A(IR),IR=1,MTB)                    R0310745
  665.          IF (N.EQ.NBLOCK) GO TO 360                                     00310750
  666.          IF (MM.EQ.MB) MM=0                                             00310760
  667.          MM=MM+1                                                        00310770
  668.       IF(KPR.EQ.0)  WRITE(6,350)PER                                     00310780
  669. CC       CALL SQEEZE (AT2,NWTOT,NTA,ISQZ)                               R0310790
  670.          WRITE (4) JFT,(LDG2(IR),IR=1,MCB),(MHI2(IR),IR=1,MCB)          R0310791
  671.          IF (NRC1 .EQ. 1) WRITE (4) (A2(IR),IR=1,8000)                  R0310791
  672.          IF (NRC1 .EQ. 1) WRITE (4) (A2(IR),IR=8000,MTB)                R0310792
  673.          IF (NRC1 .EQ. 0) WRITE (4) (A2(IR),IR=1,MTB)                   R0310793
  674.          PER=(N+1)*100.0/X                                              00310800
  675.          KPR=MOD(N+1,KINC)                                              00310810
  676. 350   FORMAT (20X,F7.2,41H PERCENT OF THE MASTER STIFFNESS AND LOAD,    00310820
  677.      130H MATRICES HAVE BEEN ASSEMBLED.///)                             00310830
  678. 360   CONTINUE                                                          00310840
  679.       IF(NDEG.GT.0) GO TO 1300                                          00310850
  680.       WRITE(6,1560)                                                     00310860
  681.       STOP                                                              00310870
  682.  1300 ANORM=(ANORM/NDEG)*1.0D-8                                         00310880
  683.       RATIO=1.0D30                                                      00310890
  684.       IF(AMIN.NE.0.0D0) RATIO=AMAX/AMIN                                 00310900
  685.       AAVG=ANORM*1.0D8                                                  00310910
  686.       WRITE(6,1570)AMIN,AMAX,RATIO,AAVG                                 00310920
  687.       WRITE(6,370)                                                      00310930
  688. 370   FORMAT (20X,48HTHE MASTER STIFFNESS AND LOAD MATRICES HAVE BEEN,  00310940
  689.      111H ASSEMBLED.//)                                                 00310950
  690.       RETURN                                                            00310960
  691.  1500 FORMAT(17H OVERALL MATRICES,1X,5HBLOCK,I3,//,                     00310970
  692.      117H STIFFNESS MATRIX)                                             00310980
  693.  1510 FORMAT((1P8E10.3))                                                00310990
  694.  1520 FORMAT (1X,17HEQUATION NUMBER =,I5,5X,15HHT. OF COLUMN =,I5)      00311000
  695.  1530 FORMAT (  (1X ,1P10E13.4))                                        00311010
  696.  1540 FORMAT(  (1X,I5,1P10E12.4,/(6X,1P10E12.4)))                       00311020
  697.  1550 FORMAT(///,12H LOAD MATRIX)                                       00311030
  698.  1560 FORMAT (51H0STRUCTURE WITH NO DEGREES OF FREEDOM CHECK DATA     ) 00311040
  699.  1570 FORMAT(5X,27HSTIFFNESS MATRIX PARAMETERS,//,                      00311050
  700.      1 15X,34HMINIMUM NON-ZERO DIAGONAL ELEMENT=,1PD10.3,/,             00311060
  701.      2 15X,34HMAXIMUM DIAGONAL ELEMENT         =,  D10.3,/,             00311070
  702.      3 15X,34HMAXIMUM/MINIMUM                  =,  D10.3,/,             00311080
  703.      4 15X,34HAVERAGE DIAGONAL ELEMENT         =,  D10.3)               00311090
  704.       END                                                               00311100
  705.       SUBROUTINE RECUVR(B,D,SA,DISP,DISP2,LB,LL,NEQ,NEQB,NBLKS,MAXDF)   00200150
  706.       IMPLICIT REAL*8(A-H,O-Z)                                          00200160
  707.        DIMENSION D(NEQ,LB),B(NEQB,LL)                                   00200170
  708.      &,SA(1),DISP(1),DISP2(1),IU(11)                                    00200180
  709.       COMMON /PREP/XZ(2),KSKIP,NDYN,NRPREP(15)                          R0200190
  710.       COMMON /ELPAR/ XP(14),IDUM(15),NUMEL,NUMEL2,NRELPA(41)            R0200200
  711.       COMMON /SUPEL/NSELEM,NRSUPE(5)                                    R0200210
  712.       DATA IU/15,10,-1, 2,10,-1, 2,-1,-1,15,2/                          00200220
  713.         CALL FILES(6)                                                   00200230
  714.       IF(KSKIP.EQ.1) RETURN                                             00200240
  715.       IF(NSELEM.LE.0) RETURN                                            00200250
  716.       NT=IU(NDYN+1)                                                     00200260
  717.       IF(NT.LE.0) RETURN                                                00200270
  718.       NUMET=NUMEL+NUMEL2                                                00200280
  719.       NEMN=MAXDF+2                                                      00200290
  720.       NT1=1                                                             00200300
  721.       N18=18                                                            00200310
  722.       N17=17                                                            00200320
  723.       N27=27                                                            00200330
  724.       N1=N18                                                            00200340
  725.       N2=N17                                                            00200350
  726.       LH=0                                                              00200360
  727.       MT=(LL-1)/LB+1                                                    00200370
  728.       REWIND N1                                                         00200380
  729.       REWIND N2                                                         00200390
  730.       REWIND NT                                                         00200400
  731.       DO 190 II=1,MT                                                    00200410
  732.       LT=LH+1                                                           00200420
  733.       LLT=1-LT                                                          00200430
  734.       LH=LT+LB-1                                                        00200440
  735.       IF(LH.GT.LL) LH=LL                                                00200450
  736.       IF(NT.EQ.15) GO TO 120                                            00200460
  737.       REWIND NT                                                         00200470
  738.       NQ=NEQB*NBLKS                                                     00200480
  739.       NWRDS=LL*4                                                        00200490
  740.       READ (NT)                                                         00200500
  741.       DO 110 NN=1,NBLKS                                                 00200510
  742.       READ (NT) B                                                       00200520
  743.       N=NEQB                                                            00200530
  744.       IF(NN.EQ.1) N=NEQ-NQ+NEQB                                         00200540
  745.       NQ=NQ-NEQB                                                        00200550
  746.       DO 110 J=1,N                                                      00200560
  747.       I=NQ+J                                                            00200570
  748.       DO 110 L=LT,LH                                                    00200580
  749.       K=LLT+L                                                           00200590
  750.   110 D(I,K)=B(J,L)                                                     00200600
  751.       GO TO 140                                                         00200610
  752.   120 DO 130 L=LT,LH                                                    00200620
  753.       K=L+LLT                                                           00200630
  754.   130 READ(NT) (D(I,K),I=1,NEQ)                                         00200640
  755.   140 CALL RDWRT(NT1,SA,1,6,J)                                          00200650
  756.       DO 150 I=1,NUMET                                                  00200660
  757.   150 CALL RDWRT(NT1,SA,1,3,KOUNT)                                      00200670
  758.       DO 180 I=1,NSELEM                                                 00200680
  759.       IF(II.EQ.1) GO TO 160                                             00200690
  760.       READ (N1)M,N,ND,LX                                                00200700
  761.       NWD=ND*LX                                                         00200710
  762.       READ (N1) (DISP(J),J=1,NWD)                                       00200720
  763.   160 CONTINUE                                                          00200730
  764.       CALL RDWRT(NT1,SA,NEMN,0,KOUNT)                                   00200740
  765.       ND=SA(KOUNT)                                                      00200750
  766.       M= SA(KOUNT-1)                                                    00200760
  767.       DO 170 J=1,ND                                                     00200770
  768.       JJ=SA(J)                                                          00200780
  769.       DO 170 L=LT,LH                                                    00200790
  770.       K=L+LLT                                                           00200800
  771.       NWD=J+ND*(L-1)                                                    00200810
  772.   170 DISP(NWD)=D(JJ,K)                                                 00200820
  773.       WRITE (N2) M,I,ND,LL                                              00200830
  774.       NWD=ND*LL                                                         00200840
  775.       WRITE (N2)  (DISP(N),N=1,NWD)                                     00200850
  776.   180 CONTINUE                                                          00200860
  777.       IF(II.EQ.MT) GO TO 190                                            00200870
  778.       REWIND N1                                                         00200880
  779.       REWIND N2                                                         00200890
  780.       LX=N1                                                             00200900
  781.       N1=N2                                                             00200910
  782.       N2=LX                                                             00200920
  783.   190 CONTINUE                                                          00200930
  784.       REWIND N27                                                        00200940
  785.       NEL=0                                                             00200950
  786.   200 READ (N27,END=220) M,N,ND,LX                                      00200960
  787.   210 IF(M.LE.0) GO TO 220                                              00200970
  788.       NEL=NEL+1                                                         00200980
  789.       WRITE(N2) M,N,ND,LX                                               00200990
  790.       NWD=ND*LX                                                         00201000
  791.       READ (N27)  (DISP2(J),J=1,NWD)                                    00201010
  792.       WRITE(N2)   (DISP2(J),J=1,NWD)                                    00201020
  793.       GO TO 200                                                         00201030
  794.   220 REWIND N27                                                        00201040
  795.       REWIND N2                                                         00201050
  796.       IF(NEL.EQ.0) GO TO 240                                            00201060
  797.       DO 230 I=1,NEL                                                    00201070
  798.       READ (N2) M,N,ND,LX                                               00201080
  799.       WRITE(N27)M,N,ND,LX                                               00201090
  800.       NWD=ND*LX                                                         00201100
  801.       READ (N2)   (DISP2(J),J=1,NWD)                                    00201110
  802.   230 WRITE(N27)  (DISP2(J),J=1,NWD)                                    00201120
  803.   240 DO 250 I=1,NSELEM                                                 00201130
  804.       READ (N2) M,N,ND,LX                                               00201140
  805.       WRITE(N27)M,N,ND,LX                                               00201150
  806.       NWD=ND*LX                                                         00201160
  807.       READ (N2)   (DISP2(J),J=1,NWD)                                    00201170
  808.   250 WRITE(N27)  (DISP2(J),J=1,NWD)                                    00201180
  809.       RETURN                                                            00201190
  810.       END                                                               00201200
  811.       SUBROUTINE SECOND(T)                                              00234270
  812.       IMPLICIT REAL*8 (A-H,O-Z)                                         00234280
  813.       CALL GETTIM(NA,NB,NC,ND)                                          R0234281
  814.       AA = NA * 100.0                                                   R0234282
  815.       CC = NC                                                           R0234283
  816.       CC = CC / 100.0                                                   R0234284
  817.       T  = AA + NB + CC                                                 R0234285
  818.       RETURN                                                            00234300
  819.       END                                                                       
  820.       FUNCTION GETWRD(GET001)                                           00105400
  821.       INTEGER SECT,POINT,BEGIN,GETSEC,EPOINT,BLANK,AGET,AGETW           00105410
  822.       LOGICAL EOL,EOS,EOF,ERROR,INDEX,GETWRD,IGET,RGET,ERR1             00105420
  823.       COMMON  /FRECNT/ LINE(80),SECT,EOL,EOS,EOF,                       00105430
  824.      1ERROR,BLANK,ICOMMA,POINT,BEGIN,LENGTH,                            00105440
  825.      2EPOINT,NSECT,LINENM,MAXSTR,KUNIT,JUNIT,IUNIT                      00105450
  826.       GETWRD = .FALSE.                                                  00105460
  827.       LENGTH = 0                                                        00105470
  828.       IF (EOL) RETURN                                                   00105480
  829.       DO 100 BEGIN = POINT,80                                           00105490
  830.       IF (LINE(BEGIN).NE.BLANK) GO TO 110                               00105500
  831. 100   CONTINUE                                                          00105510
  832.       EOL = .TRUE.                                                      00105520
  833.       POINT = 80                                                        00105530
  834.       RETURN                                                            00105540
  835. 110   DO 170 POINT = BEGIN,80                                           00105550
  836.       IF (LINE(POINT).EQ.BLANK.OR.LINE(POINT).EQ.ICOMMA)                00105560
  837.      1GO TO 180                                                         00105570
  838.       LENGTH = POINT - BEGIN + 1                                        00105580
  839.       MAXSTR = LENGTH                                                   00105590
  840. 170   CONTINUE                                                          00105600
  841.       GETWRD = .TRUE.                                                   00105610
  842.       EOL = .TRUE.                                                      00105620
  843.       RETURN                                                            00105630
  844. 180   IP = POINT                                                        00105640
  845.       DO 200 POINT = POINT,80                                           00105650
  846.       IF (LINE(POINT).EQ.ICOMMA) GO TO 210                              00105660
  847.       IF (LINE(POINT).NE.BLANK) GO TO 190                               00105670
  848. 200   CONTINUE                                                          00105680
  849.       GETWRD = .TRUE.                                                   00105690
  850.       EOL =.TRUE.                                                       00105700
  851.       RETURN                                                            00105710
  852. 190   POINT = IP                                                        00105720
  853.       GETWRD = .TRUE.                                                   00105730
  854.       RETURN                                                            00105740
  855. 210   POINT = POINT + 1                                                 00105750
  856.       GETWRD = .TRUE.                                                   00105760
  857.       RETURN                                                            00105770
  858.       END                                                               00105780
  859.