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

  1.       PROGRAM SAP6P4                                                    R0001101
  2.       IMPLICIT REAL*8(A-H,O-Z)                                          00001100
  3.       LOGICAL ELPRT,ELPCH,GENPRT,GENPCH,DEFPCH,GEOST                    00001110
  4.       COMMON/BMDATA/IAISC,ILDTYP,ILDMUL,IBMSEC,NLWAVE,ILOCAL            00001120
  5.       COMMON/EQUILB/NEQIL,NX43                                          00001130
  6.       COMMON/CTL/ELPRT,ELPCH,GENPRT,GENPCH                              00001140
  7.       COMMON / JUNK / DUK(227)                                          00001150
  8.       REAL*8  NPAR                                                      00001160
  9.       COMMON /QTSARG/ QQQ(1000)                                         00001170
  10.       COMMON/DYN3/ NEIG,NAD,ANORM,NVV,NFO                               00001180
  11.       COMMON /DYN4/KDYN,NRESS,NCRD,NCWT,NRESS1                          00001190
  12.       COMMON /DYN5/FRSHFT,FRINIT,FREND,MODEFR,NOSS                      00001200
  13.        COMMON /TAPES/NSTIF,NRED,NL,NR,NT,NMASS                          00001210
  14.       COMMON /EXTRA/MODEX,NT8,N10SV,NT10,KEQB,NY,T(10)                  00001220
  15.       COMMON/GEOSTF/GEOST,NELGEO                                        00001230
  16.       COMMON/MASS/LMASS                                                 00001240
  17.       COMMON/MATL/MATLCO                                                R0001241
  18.       COMMON/SIZE/NDMX,MXDF,NSMX,NTERM,NADND                            00001250
  19.       COMMON/SLVE/NSLAVE                                                00001260
  20.       COMMON /ELPAR/ NPAR(14),NUMNP,MBAND,NELTYP,N1,N2,N3,N4,N5,MTOT,NEQ00001270
  21.      $ ,N2P,N3P,NMRI,NTRI,N1P,NUMEL,NUMEL2,KZ(20,2),NEMN                00001280
  22.       COMMON / MISC / NBLOCK,NEQB,LL,NFREQ,LB                           00001290
  23.       COMMON/AMB/ GRAV,REFT,JROT                                        00001300
  24.       COMMON /PREP/ XMX,XAD,KSKIP,NDYN,I1,I99,POS,PRTCOD                00001310
  25.      $              ,POSSAV,PRTOFF,PRTON,PRTDUM,IDIRC                   00001320
  26.       COMMON /DYN/ IFIL1(11),IFIL2                                      00001330
  27.       COMMON/ELARRY/NELAR(4,20)                                         00001340
  28.       COMMON /ELTEMP/ SET1(103)                                         00001350
  29.      $       /OUT/KSET2(6),KELRST,MAXDF,IFIL3(2)                        00001360
  30.      $       /SQZ/    SET3,LIST,LISTC,LISTB,LISTA                       00001370
  31.      $       /TRASH/  SET4(490)                                         00001380
  32.      $       /GPS/    SET5(10)                                          00001390
  33.      $       /CG/     SET6(4),RFIL1(2)                                  00001400
  34.      $       /TAPES/ SET7(6)                                            00001410
  35.      $       /DYN2/KSET8(3),NFVC,SET8(12)                               00001420
  36.       COMMON /WORDS/ NWDS(30,2)                                         00001430
  37.       COMMON /BAND/  NRNM(3),IRSK,IFIL4(4)                              00001440
  38.       COMMON /HEADIN/TITLE1(20),TITLE2(5),TITLE3(10)                    00001450
  39.       COMMON /SUPEL/ NSELEM,NEQL,NODESE                                 00001460
  40.      $,KSET(3)                                                          00001470
  41.       COMMON/FORCE/ NLC,NELD                                            00001480
  42.         COMMON/DAPG/NQ1,NQX,DUMY(210)                                   00001490
  43.       COMMON/VAXPLT/IVPLT,XVB(6),XVA(4),MINX,MINY,LEN                   00001500
  44.       COMMON /ICM/ICOMP,MMRI,MTRI,M1P,M2P,M3P                           00001510
  45.       COMMON/PLOTH/IPLT,IPLWRT                                          00001520
  46.       COMMON/COMMT/NTYP,NUMET,NNRRC,NNRRC1                              R0001521
  47.       COMMON/COMMT1/NDSSS,KDSSS,NTY,NSLDM,NBLANK,MDYN,NE2B,KRK1,MCB,MLT R0001522
  48.       DIMENSION KZN(20),ZD(31)                                          00001530
  49.       DIMENSION NEXPDT(2),NOWDTE(4)                                     00001540
  50.       COMMON A(1)                                                       00001550
  51.       DATA KZN/2,7,1,2,7,7,10,7,21,1177,6,51,10,21,9,7,8,5,0,0/         00001560
  52.       DATA NEXPDT/78,222/                                               00001570
  53.       WRITE (*,990)                                                     R0001611
  54.   990 FORMAT (5X,'********** PROGRAM SAP6PC4 STARTING *********')       R0001612
  55.       CALL SIZER4                                                       R0001612
  56.       MTOTR = MTOT                                                      R0001613
  57.       CALL COMMRW(1)                                                    R0001612
  58.       MTOT = MTOTR                                                      R0001613
  59.       IF (NNRRC .EQ. 330) GO TO 330                                     R0001613
  60.       IF (NDYN .GT. 11) GO TO 330                                       R0001614
  61.       IF (NDYN .EQ. 10) GO TO 320                                       R0001615
  62.       IF (KSKIP .EQ. 1) GO TO 320                                       R0001616
  63.       IF (NDYN .EQ. 8)  GO TO 330                                       R0001617
  64.       IF (NNRRC1 .EQ. 320) GO TO 320                                    R0001618
  65.       IF(NELGEO.EQ.1) GO TO 290                                         00005580
  66.       GO TO (290,290,290,290,350,360,410,460,290,290,290,290,410),MDYN  00005590
  67.   290 IF(MODEX.EQ.0) GO TO 310                                          00005600
  68.       DO 300 I=6,10                                                     00005610
  69.   300 T(I) = T(5)                                                       00005620
  70.       GO TO 320                                                         00005630
  71.   310 CONTINUE                                                          00005640
  72.       NSB=(MBAND+LL)*NEQB                                               00005650
  73.       IF (KSKIP.EQ.1) GO TO  320                                        00005660
  74.       NSBB=NEQB*LL*(2+(MBAND-1)/NEQB)                                   00005670
  75.       IF(NSBB.LT.NSB) NSBB=NSB                                          00005680
  76.       N1=1+10*LL                                                        00005690
  77.       N4=N1+NSB                                                         00005700
  78.       N3=N4+NEQB                                                        00005710
  79.       IF(NDYN.LT.1) GO TO 1310                                          00005720
  80.       IF(NDYN.GT.3) GO TO 1320                                          00005730
  81.       CALL USOL(A(N1),A(N3),A(N4),NEQB,MBAND,LL,NBLOCK,NSB,4,3,10,22,22,00005740
  82.      $A(1))                                                             00005750
  83.       GO TO 1330                                                        00005760
  84.  1310 CONTINUE                                                          00005770
  85.       CALL USOL(A(N1),A(N3),A(N4),NEQB,MBAND,LL,NBLOCK,NSB,4,3,10,22,18,00005780
  86.      $A(1))                                                             00005790
  87.       GO TO 1325                                                        00005800
  88.  1320 CONTINUE                                                          00005810
  89.       NWA=MBAND*NEQB                                                    00005820
  90.       MI=MBAND+NEQB-1                                                   00005830
  91.       N1=1+10*LL                                                        00005840
  92.       N4=N1+NWA                                                         00005850
  93.       N3=N4+MI                                                          00005860
  94.       NTB=(MBAND-2)/NEQB+1                                              00005870
  95.       IF(NTB.GE.NBLOCK) NTB=NBLOCK-1                                    00005880
  96.       CALL GDCOMP(A(N1),A(N3),A(N4),NEQB,MBAND,NBLOCK,NWA,NTB,NSCH,     00005890
  97.      1NEQ,MI)                                                           00005900
  98.       NWV=LL*NEQB                                                       00005910
  99.       NWVV=NWV*(NTB+1)                                                  00005920
  100.       N4=N1+NWA                                                         00005930
  101.       N2=N4+MI                                                          00005940
  102.       N3=N2+NWV                                                         00005950
  103.       CALL GREDBK(A(N1),A(N2),A(N3),A(N4),NEQB,LL,NWA,NWV,              00005960
  104.      1NWVV,NTB,NBLOCK,MI,MBAND)                                         00005970
  105.  1325 CONTINUE                                                          00005980
  106.       CALL GSTATC(A(1),LL,NBLOCK,NEQB,18,22)                            00005990
  107.  1330 CONTINUE                                                          00006000
  108.       N1=1+NEMN                                                         00006010
  109.   320 CALL SECOND(T(6))                                                 00006020
  110.       IF (NDYN.LE.1.AND.KSKIP.EQ.1) GO TO 330                           00006030
  111.       IF(NDYN.EQ.0.OR.NDYN.EQ.11.OR.NELGEO.EQ.1) CALL STATIC            00006040
  112.         IF(NDYN.GT.0.AND.NDYN.LT.4.AND.KSKIP.EQ.0) CALL MODES           00006050
  113.       IF(NDYN.NE.11.AND.NELGEO.NE.1) GO TO 1410                         00006060
  114.       CALL SECOND(T(7))                                                 00006070
  115.       NN2=N1+NEQB*MBAND                                                 00006080
  116.       NN3=NN2+NEQB*LL                                                   00006090
  117.       NN4=NN3+NEQB*MBAND                                                R0006100
  118.       NN5=NN4+NEQB*MBAND                                                00006110
  119.       NN6=NN5+NEQB*LL                                                   00006120
  120.       MGA=MBAND                                                         00006130
  121.       CALL ADDGEO(A(N1),A(NN2),A(NN3),A(NN4),A(NN5),A(NN6),NUMET,NBLOCK,00006140
  122.      $NE2B,LL,MBAND,NEQB,NEMN,ANORM,NVV,MGA)                            R0006150
  123.   330 CONTINUE                                                          R0006151
  124.   350 CONTINUE                                                          R0006152
  125.   360 CONTINUE                                                          R0006153
  126.   410 CONTINUE                                                          R0006154
  127.   460 CONTINUE                                                          R0006155
  128.  1410 CONTINUE                                                          R0006156
  129.       CALL COMMRW(0)                                                    R0007771
  130.       WRITE (*,1081)                                                    R0007772
  131.  1081 FORMAT (5X,'*********** SAP6PC4 FINISHED ***********')            R0007773
  132.       STOP                                                              R0007775
  133.       END                                                               R0007774
  134.       SUBROUTINE FILES(NN)
  135.       RETURN
  136.       END
  137.       BLOCKDATA                                                         00007790
  138.       IMPLICIT REAL*8(A-H,O-Z)                                          00007800
  139.         COMMON/HEADIN/TITLE1(20),TITLE2(5),TITLE3(10)                   00007810
  140.       COMMON/ELARRY/NELAR(4,20)                                         00007820
  141.       COMMON /GASS/ XK(4,4),WGT(4,4),IPERM(3)                           00007830
  142.       COMMON/GASS2/A5(7,2),W5(7)                                        00007840
  143.       COMMON /PREP/XMX,XAD,KSKIP,NDYN,I1,I99,POS,PRTCOD                 00007850
  144.      1,POSSAV,PRTOFF,PRTON,PRTDUM,IDIRC                                 00007860
  145.       DATA XK /     0.D0,     0.D0,               0.D0,            0.D0,00007870
  146.      $ -.5773502691896D0, .5773502691896D0,     0.D0,              0.D0,00007880
  147.      $ -.7745966692415D0, .0000000000000D0, .7745966692415D0,      0.D0,00007890
  148.      $ -.8611363115941D0,-.3399810435849D0, .3399810435849D0,           00007900
  149.      $.8611363115941D0/                                                 00007910
  150.       DATA WGT / 2.000D0,     0.D0,          0.D0,           0.D0,      00007920
  151.      $ 1.0000000000000D0,1.0000000000000D0,  0.D0,           0.D0,      00007930
  152.      $  .5555555555556D0, .8888888888889D0, .5555555555556D0,0.D0,      00007940
  153.      $  .3478548451375D0, .6521451548625D0, .6521451548625D0,           00007950
  154.      $  .3478548451375D0/                                               00007960
  155.       DATA IPERM / 2,3,1 /                                              00007970
  156.       DATA  A5(1,1)/-0.333333333333D0/,A5(2,1)/-0.88056825640D0/        00007980
  157.       DATA  A5(3,1)/-0.05971587178D0/,A5(4,1)/-0.05971587178D0/         00007990
  158.       DATA  A5(5,1)/ 0.59485397070D0/, A5(6,1)/-0.79742698530D0/        00008000
  159.       DATA  A5(7,1)/-0.79742698530D0/, A5(1,2)/-0.333333333333D0/       00008010
  160.       DATA  A5(2,2)/-0.05971587178D0/, A5(3,2)/-0.88076825640D0/        00008020
  161.       DATA  A5(4,2)/-0.05971587178D0/ ,A5(5,2)/-0.79742698530D0/        00008030
  162.       DATA  A5(6,2)/ 0.59485397070D0/ ,A5(7,2)/-0.79742698530D0/        00008040
  163.       DATA    W5(1)/ 0.225        D0/,  W5(2)/ 0.13239415   D0/         00008050
  164.       DATA    W5(3)/ 0.13239415   D0/,  W5(4)/ 0.13239415   D0/         00008060
  165.       DATA    W5(5)/ 0.12593918   D0/,  W5(6)/ 0.12593918   D0/         00008070
  166.       DATA    W5(7)/ 0.12593918   D0/                                   00008080
  167.       DATA NELAR /                                                      00008090
  168.      $   2,   2,   6,   2,                                              00008100
  169.      $   3,   2,  12,  28,                                              00008110
  170.      $   4,   4,  12,   8,                                              00008120
  171.      $   4,   4,   8,   4,                                              00008130
  172.      $   8,   8,  33,  54,                                              00008140
  173.      $   4,   4,  42,  24,                                              00008150
  174.      $   1,   1,   1,   1,                                              00008160
  175.      $   4,   4,   8,   4,                                              00008170
  176.      $   3,   2,  12,  39,                                              00008180
  177.      $  20,  20,  60,  54,                                              00008190
  178.      $   8,   8,  16,  52,                                              00008200
  179.      $   8,   8,  16,  52,                                              00008210
  180.      $   8,   8,  16,  52,                                              00008220
  181.      $   4,   1,   6,   6,                                              00008230
  182.      $   8,   8,  48,   6,                                              00008240
  183.      $   20*0/                                                          00008250
  184.       DATA TITLE2/4H    ,4HSAP6,4H    ,4HVER.,4H 2.0/                   00008260
  185.       DATA TITLE3(3)/4H LPI/,TITLE3(4)/4HAUTO/,TITLE3(5)/54./           00008330
  186.       DATA POS/3H   /,PRTCOD/3H   /                                     00008340
  187.       DATA POSSAV/3H   /,PRTOFF/3HOFF/,PRTON/3HON-/,PRTDUM/3HDUM/       00008350
  188.       DATA IDIRC/0/                                                     00008360
  189.       END                                                               00008370
  190.       SUBROUTINE CLOSE
  191.       RETURN
  192.       END
  193.       SUBROUTINE EXIT
  194.       WRITE (6,101)
  195.  101  FORMAT (5X,'********  SAP6 PROGRAM STOP  ********')
  196.       STOP
  197.       END
  198.       SUBROUTINE RECUVR(B,D,SA,DISP,DISP2,LB,LL,NEQ,NEQB,NBLKS,MAXDF)   00200150
  199.       IMPLICIT REAL*8(A-H,O-Z)                                          00200160
  200.        DIMENSION D(NEQ,LB),B(NEQB,LL)                                   00200170
  201.      &,SA(1),DISP(1),DISP2(1),IU(11)                                    00200180
  202.       COMMON /PREP/XZ(2),KSKIP,NDYN,NRPREP(15)                          R0200190
  203.       COMMON /ELPAR/ XP(14),IDUM(15),NUMEL,NUMEL2,NRELPA(41)            R0200200
  204.       COMMON /SUPEL/NSELEM,NRSUPE(5)                                    R0200210
  205.       DATA IU/15,10,-1, 2,10,-1, 2,-1,-1,15,2/                          00200220
  206.         CALL FILES(6)                                                   00200230
  207.       IF(KSKIP.EQ.1) RETURN                                             00200240
  208.       IF(NSELEM.LE.0) RETURN                                            00200250
  209.       NT=IU(NDYN+1)                                                     00200260
  210.       IF(NT.LE.0) RETURN                                                00200270
  211.       NUMET=NUMEL+NUMEL2                                                00200280
  212.       NEMN=MAXDF+2                                                      00200290
  213.       NT1=1                                                             00200300
  214.       N18=18                                                            00200310
  215.       N17=17                                                            00200320
  216.       N27=27                                                            00200330
  217.       N1=N18                                                            00200340
  218.       N2=N17                                                            00200350
  219.       LH=0                                                              00200360
  220.       MT=(LL-1)/LB+1                                                    00200370
  221.       REWIND N1                                                         00200380
  222.       REWIND N2                                                         00200390
  223.       REWIND NT                                                         00200400
  224.       DO 190 II=1,MT                                                    00200410
  225.       LT=LH+1                                                           00200420
  226.       LLT=1-LT                                                          00200430
  227.       LH=LT+LB-1                                                        00200440
  228.       IF(LH.GT.LL) LH=LL                                                00200450
  229.       IF(NT.EQ.15) GO TO 120                                            00200460
  230.       REWIND NT                                                         00200470
  231.       NQ=NEQB*NBLKS                                                     00200480
  232.       NWRDS=LL*4                                                        00200490
  233.       READ (NT)                                                         00200500
  234.       DO 110 NN=1,NBLKS                                                 00200510
  235.       READ (NT) B                                                       00200520
  236.       N=NEQB                                                            00200530
  237.       IF(NN.EQ.1) N=NEQ-NQ+NEQB                                         00200540
  238.       NQ=NQ-NEQB                                                        00200550
  239.       DO 110 J=1,N                                                      00200560
  240.       I=NQ+J                                                            00200570
  241.       DO 110 L=LT,LH                                                    00200580
  242.       K=LLT+L                                                           00200590
  243.   110 D(I,K)=B(J,L)                                                     00200600
  244.       GO TO 140                                                         00200610
  245.   120 DO 130 L=LT,LH                                                    00200620
  246.       K=L+LLT                                                           00200630
  247.   130 READ(NT) (D(I,K),I=1,NEQ)                                         00200640
  248.   140 CALL RDWRT(NT1,SA,1,6,J)                                          00200650
  249.       DO 150 I=1,NUMET                                                  00200660
  250.   150 CALL RDWRT(NT1,SA,1,3,KOUNT)                                      00200670
  251.       DO 180 I=1,NSELEM                                                 00200680
  252.       IF(II.EQ.1) GO TO 160                                             00200690
  253.       READ (N1)M,N,ND,LX                                                00200700
  254.       NWD=ND*LX                                                         00200710
  255.       READ (N1) (DISP(J),J=1,NWD)                                       00200720
  256.   160 CONTINUE                                                          00200730
  257.       CALL RDWRT(NT1,SA,NEMN,0,KOUNT)                                   00200740
  258.       ND=SA(KOUNT)                                                      00200750
  259.       M= SA(KOUNT-1)                                                    00200760
  260.       DO 170 J=1,ND                                                     00200770
  261.       JJ=SA(J)                                                          00200780
  262.       DO 170 L=LT,LH                                                    00200790
  263.       K=L+LLT                                                           00200800
  264.       NWD=J+ND*(L-1)                                                    00200810
  265.   170 DISP(NWD)=D(JJ,K)                                                 00200820
  266.       WRITE (N2) M,I,ND,LL                                              00200830
  267.       NWD=ND*LL                                                         00200840
  268.       WRITE (N2)  (DISP(N),N=1,NWD)                                     00200850
  269.   180 CONTINUE                                                          00200860
  270.       IF(II.EQ.MT) GO TO 190                                            00200870
  271.       REWIND N1                                                         00200880
  272.       REWIND N2                                                         00200890
  273.       LX=N1                                                             00200900
  274.       N1=N2                                                             00200910
  275.       N2=LX                                                             00200920
  276.   190 CONTINUE                                                          00200930
  277.       REWIND N27                                                        00200940
  278.       NEL=0                                                             00200950
  279.   200 READ (N27,END=220) M,N,ND,LX                                      00200960
  280.   210 IF(M.LE.0) GO TO 220                                              00200970
  281.       NEL=NEL+1                                                         00200980
  282.       WRITE(N2) M,N,ND,LX                                               00200990
  283.       NWD=ND*LX                                                         00201000
  284.       READ (N27)  (DISP2(J),J=1,NWD)                                    00201010
  285.       WRITE(N2)   (DISP2(J),J=1,NWD)                                    00201020
  286.       GO TO 200                                                         00201030
  287.   220 REWIND N27                                                        00201040
  288.       REWIND N2                                                         00201050
  289.       IF(NEL.EQ.0) GO TO 240                                            00201060
  290.       DO 230 I=1,NEL                                                    00201070
  291.       READ (N2) M,N,ND,LX                                               00201080
  292.       WRITE(N27)M,N,ND,LX                                               00201090
  293.       NWD=ND*LX                                                         00201100
  294.       READ (N2)   (DISP2(J),J=1,NWD)                                    00201110
  295.   230 WRITE(N27)  (DISP2(J),J=1,NWD)                                    00201120
  296.   240 DO 250 I=1,NSELEM                                                 00201130
  297.       READ (N2) M,N,ND,LX                                               00201140
  298.       WRITE(N27)M,N,ND,LX                                               00201150
  299.       NWD=ND*LX                                                         00201160
  300.       READ (N2)   (DISP2(J),J=1,NWD)                                    00201170
  301.   250 WRITE(N27)  (DISP2(J),J=1,NWD)                                    00201180
  302.       RETURN                                                            00201190
  303.       END                                                               00201200
  304.       SUBROUTINE SECOND(T)                                              00234270
  305.       IMPLICIT REAL*8 (A-H,O-Z)                                         00234280
  306.       CALL GETTIM(NA,NB,NC,ND)                                          R0234281
  307.       AA = NA * 100.0                                                   R0234282
  308.       CC = NC                                                           R0234283
  309.       CC = CC / 100.0                                                   R0234284
  310.       T  = AA + NB + CC                                                 R0234285
  311.       RETURN                                                            00234300
  312.       END                                                               R0234286
  313.       SUBROUTINE ERROR(I)                                               00086230
  314.       IMPLICIT REAL*8(A-H,O-Z)                                          00086240
  315.       REAL*8  X                                                         00086250
  316.       COMMON /EXTRA/ MODEX,NREXTR(25)                                   R0086260
  317.       COMMON /PREP/ X(2),KSKIP,RRPREP(8)                                R0086270
  318.       KSKIP=1                                                           00086280
  319.       MODEX=1                                                           00086290
  320.       WRITE(6,100)I                                                     00086300
  321.   100 FORMAT (1H0//1X,30HALLOCATED STORAGE EXCEEDED BY   ,I7,6H WORDS)  00086310
  322.       WRITE(6,110)                                                      00086320
  323.   110 FORMAT(/1X, 29HNO EXECUTION WILL BE ALLOWED./)                    00086330
  324.       RETURN                                                            00086340
  325.       END                                                               00086350
  326.       SUBROUTINE UNPKID(ID,NUMNP,X,COORD,MODE,N,IDOF)                   00317660
  327.       IMPLICIT REAL*8 (A-H ,O-Z)                                        00317670
  328.       REAL*8  ID                                                        00317680
  329.       DIMENSION ID(NUMNP,3)                                             00317690
  330.       COMMON /PREP/XMX,XAD,J1(2),I1,RRPREP(7)                           R0317700
  331.       GO TO (100,110),MODE                                              00317710
  332.   100 X=ID(N,IDOF)                                                      00317720
  333.       K=X                                                               00317730
  334.       IF(X.LT.0.0) K=K-1                                                00317740
  335.       COORD=(X-K-XAD)*XMX                                               00317750
  336.       RETURN                                                            00317760
  337.   110 JJ=IDOF                                                           00317770
  338.       IF(IDOF.GE.4) GO TO 120                                           00317780
  339.       NNN=ID(N,JJ)                                                      00317790
  340.       IF(NNN.LT.0) GO TO 115                                            00317800
  341.       NNN= MOD(NNN,I1)                                                  00317810
  342.       GO TO 117                                                         00317820
  343.   115 CONTINUE                                                          00317830
  344.       IF(IABS(NNN).GT.I1) GO TO 116                                     00317840
  345.       NNN=MOD(NNN,I1)                                                   00317850
  346.       IF(NNN.LT.0) NNN=0                                                00317860
  347.       GO TO 117                                                         00317870
  348.   116 NNN=1-NNN                                                         00317880
  349.       NNN=MOD(NNN,I1)                                                   00317890
  350.       GO TO 117                                                         00317900
  351.   117 X=NNN                                                             00317910
  352.       RETURN                                                            00317920
  353.   120 JJ=JJ-3                                                           00317930
  354.       NNN=ID(N,JJ)                                                      00317940
  355.                                                                         00317950
  356.       IF(NNN.GE.0) GO TO 130                                            00317960
  357.       IF(IABS(NNN).LT.I1) GO TO 130                                     00317970
  358.       NN2=NNN/I1                                                        00317980
  359.       NNN=-NN2                                                          00317990
  360.       GO TO 140                                                         00318000
  361.   130 CONTINUE                                                          00318010
  362.       NN2=MOD(NNN,I1)                                                   00318020
  363.       NNN=NNN/I1                                                        00318030
  364.       IF(NNN.GT.0) NNN=NNN+NN2                                          00318040
  365.       IF(NN2.LT.0) NNN=1-NN2                                            00318050
  366.   140 CONTINUE                                                          00318060
  367.       X=NNN                                                             00318070
  368.       RETURN                                                            00318080
  369.       END                                                               00318090
  370.       SUBROUTINE QVCOPY(FROM,TO,N)                                      00193850
  371.       REAL*8 FROM,TO                                                    00193860
  372.       DIMENSION FROM(1),TO(1)                                           00193870
  373.       DO 100 I=1,N                                                      00193880
  374.   100 TO(I)=FROM(I)                                                     00193890
  375.       RETURN                                                            00193900
  376.       END                                                               00193910
  377.       SUBROUTINE QMR2(C,D,FAC,B,N,JC,KC,JB)                             00186840
  378.       IMPLICIT REAL*8(A-H,O-Z)                                          00186850
  379.       DIMENSION B(1),C(1),D(1)                                          00186860
  380.       IB=1                                                              00186870
  381.       IC=1                                                              00186880
  382.       DO 100 I=1,N                                                      00186890
  383.       C(IC)=D(IC)-FAC*B(IB)                                             00186900
  384.       IB=IB+JB                                                          00186910
  385.   100 IC=IC+JC                                                          00186920
  386.       RETURN                                                            00186930
  387.       END                                                               00186940
  388.       SUBROUTINE QVSET(C,A,N)                                           00194580
  389.       REAL*8 C,A                                                        00194590
  390.       DIMENSION A(1)                                                    00194600
  391.       DO 100 I=1,N                                                      00194610
  392.   100 A(I)=C                                                            00194620
  393.       RETURN                                                            00194630
  394.       END                                                               00194640
  395.       SUBROUTINE RDWRT(JT,A,NUM,N,J)                                    00199630
  396.       IMPLICIT REAL*8(A-H,O-Z)                                          00199640
  397.       REAL*8 A                                                          00199650
  398.       COMMON /WORDS/ NWDS(30,2)                                         00199660
  399.       DIMENSION A(NUM)                                                  00199670
  400.       DIMENSION IUNIT(41)                                               00199680
  401.       DATA                                                              00199690
  402.      $    IUNIT/21,22,23,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,     00199700
  403.      $20,1,62,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41/ R0199710
  404.       NT=IUNIT(JT)                                                      00199720
  405.       K=N+1                                                             00199730
  406.       LNTRC=NUM*8                                                       00199740
  407.       WRITE (6,109) NT,J,K,JT,N,NUM
  408.       GO TO (100,110,120,130,230,140,150,                               00199750
  409.      $230,230,230,230,                                                  00199760
  410.      $160,180,210,220),K                                                00199770
  411.   100 CONTINUE
  412.       READ (NT) J                                                       R0199780
  413.       CALL RDA(NT,A,J)                                                  00199790
  414.       WRITE (6,109) NT,J,K,JT,N,NUM
  415. CC    WRITE (6,1010) (A(IIR),IIR=1,J)
  416. C1010 FORMAT (1X,'**RD**',12E10.4/)
  417.  109  FORMAT (5X,'****** NT,J,K,JT,N NUM ******* =', 6I5)
  418.       RETURN                                                            00199800
  419.  110  CONTINUE                                                          R0199801
  420. CC    WRITE (6,1009) NT,J,K,JT,N,NUM
  421. C1009 FORMAT (5X,'****** WRITE (NT,J,K,JT,N) ******* =', 6I5)
  422. CC    IF (NT.EQ.10) WRITE(6,1009) (A(II),II=1,NUM)
  423. C1009 FORMAT (1X,'**RD10**',12E10.4/)
  424.       WRITE (NT) NUM                                                    R0199810
  425.       WRITE (NT) A                                                      00199820
  426.       NWDS(NT,1)=NWDS(NT,1)+NUM                                         00199830
  427.       RETURN                                                            00199840
  428.   120 CONTINUE                                                          R0199841
  429. CC    WRITE (6,1008) NT,J,K,JT,N
  430. C1008 FORMAT (5X,'****** BACKSPACE (NT,J,K,JT,N) ******* =', 5I5)
  431.       BACKSPACE NT                                                      R0199850
  432.       BACKSPACE NT                                                      00199860
  433.       RETURN                                                            00199870
  434.   130 READ (NT)                                                         00199880
  435.       READ (NT)                                                         00199890
  436.       RETURN                                                            00199900
  437.   140 READ (NT) J,A                                                     00199910
  438.       RETURN                                                            00199920
  439.   150 REWIND NT                                                         00199930
  440.       IF(NWDS(NT,1).GT.NWDS(NT,2)) NWDS(NT,2)=NWDS(NT,1)                00199940
  441.          NWDS(NT,1)=0                                                   00199950
  442.       RETURN                                                            00199960
  443.   160 DO 170 I=1,20                                                     00199970
  444.       DO 170 J=1,2                                                      00199980
  445.   170 NWDS(I,J)=0                                                       00199990
  446.       RETURN                                                            00200000
  447.   180 DO 200 I=1,20                                                     00200010
  448.       J=NWDS(I,1)                                                       00200020
  449.       IF(NWDS(I,2).GT.J) J=NWDS(I,2)                                    00200030
  450.       IF(J.GT.0) WRITE(6,190)I,J                                        00200040
  451.   190 FORMAT(//20X,13HDISK FILE NO.,I3,25H  WAS REQUIRED TO STORE A,    00200050
  452.      $12H  MAXIMUM OF,1X,I9,18H WORDS OF STORAGE./)                     00200060
  453.   200 CONTINUE                                                          00200070
  454.       RETURN                                                            00200080
  455.   210 WRITE(NT) A                                                       00200090
  456.       NWDS(NT,1)=NWDS(NT,1)+NUM                                         00200100
  457.       RETURN                                                            00200110
  458.  220  READ(NT)A                                                         00200120
  459.   230 RETURN                                                            00200130
  460.       END                                                               00200140
  461.       SUBROUTINE  RDA(NT,A,NUM)                                         00196460
  462.       REAL*8 A                                                          00196470
  463.       DIMENSION A(NUM)                                                  00196480
  464.       READ (NT) A                                                       00196490
  465.       RETURN                                                            00196500
  466.       END                                                               00196510
  467.       SUBROUTINE SQEEZE(A,NUM,NT,KOD)                                   00254540
  468.       IMPLICIT REAL*8(A-H,O-Z)                                          00254550
  469.       REAL*8  A                                                         00254560
  470.       DIMENSION A(1)                                                    00254570
  471.       IF(KOD.GT.0) GO TO 100                                            00254580
  472.       CALL  SQISH(A,NUM,N)                                              00254590
  473.       CALL RDWRT(NT,A,N,1,K)                                            00254600
  474.       RETURN                                                            00254610
  475.   100 CALL RDWRT(NT,A,NUM,1,K)                                          00254620
  476.       RETURN                                                            00254630
  477.       END                                                               00254640
  478.       SUBROUTINE EXPAND(A,NUM,NT)                                       00086360
  479.       IMPLICIT REAL*8(A-H,O-Z)                                          00086370
  480.       REAL*8  A                                                         00086380
  481.       DIMENSION A(1)                                                    00086390
  482.       CALL RDWRT(NT,A,NUM,0,J)                                          00086400
  483.       IF(J.EQ.NUM) RETURN                                               00086410
  484.       RETURN                                                            00086420
  485.       END                                                               00086430
  486.       SUBROUTINE MEMSET (KONST,IARRAY,NWDS)                             00135760
  487.       REAL*8 IARRAY, KONST                                              00135770
  488.       DIMENSION IARRAY(1)                                               00135780
  489.       DO 100 I=1,NWDS                                                   00135790
  490.   100 IARRAY(I)=KONST                                                   00135800
  491.       RETURN                                                            00135810
  492.       END                                                               00135820
  493.       SUBROUTINE QVDOT(C,A,B,N,JA,JB)                                   00193990
  494.       REAL*8 A,B,C                                                      00194000
  495.       DIMENSION A(1),B(1)                                               00194010
  496.       IA=1                                                              00194020
  497.       IB=1                                                              00194030
  498.       C=0.0                                                             00194040
  499.       DO 100 I=1,N                                                      00194050
  500.       C=C+A(IA)*B(IB)                                                   00194060
  501.       IA=IA+JA                                                          00194070
  502.   100 IB=IB+JB                                                          00194080
  503.       RETURN                                                            00194090
  504.       END                                                               00194100
  505.       SUBROUTINE SQISH(A,I,J)                                           00254650
  506.       REAL*8 A                                                          00254660
  507.       J=I                                                               00254670
  508.       RETURN                                                            00254680
  509.       END                                                               00254690
  510.