home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 9 / 09.iso / e / e003 / 14.ddi / MOD3.FOR < prev    next >
Encoding:
Text File  |  1987-04-18  |  73.4 KB  |  918 lines

  1.       SUBROUTINE NODE1(LIMIT,NSTOR,X,Y,Z)                               MOD04520
  2.       LOGICAL IGET,RGET                                                 MOD04521
  3.       INTEGER AGET,AGETW                                                MOD04522
  4.       DIMENSION NSTOR(LIMIT),X(LIMIT),Y(LIMIT),Z(LIMIT)                 MOD04523
  5.       DATA IBLANK/1H /                                                  MOD04524
  6.       DO 11 I=3,4                                                       MOD04525
  7.       IDOUM=AGET(I)                                                     MOD04526
  8.       IF(IDOUM.EQ.IBLANK)GO TO 12                                       MOD04527
  9. 11    CONTINUE                                                          MOD04528
  10. 12    IF(IGET(N))CALL PRTERR(0)                                         MOD04529
  11.       NSTOR(N)=N                                                        MOD04530
  12.       IF(RGET(X(N)))CALL PRTERR(0)                                      MOD04531
  13.       IF(RGET(Y(N)))CALL PRTERR(0)                                      MOD04532
  14.       IF(RGET(Z(N)))CALL PRTERR(0)                                      MOD04533
  15.       IF(IGET(KS))CALL PRTERR(0)                                        MOD04534
  16.       IF(IGET(KT))CALL PRTERR(0)                                        MOD04535
  17.       RETURN                                                            MOD04536
  18.       END                                                               MOD04537
  19.       SUBROUTINE READBN(NODE,ID)                                        MOD05440
  20.       LOGICAL IGET,RGET                                                 MOD05441
  21.       INTEGER AGET,AGETW,BL,BLANK                                       MOD05442
  22.       DIMENSION ID(NODE,6)                                              MOD05443
  23.       COMMON/UNIT/IN                                                    MOD05444
  24.       INTEGER A(18),C(12)                                               MOD05445
  25.       DATA BLANK/1H /                                                   MOD05446
  26.       DATA A/1HD,1HX,1HD,1HY,1HD,1HZ                                    MOD05447
  27.      1,1HR,1HX,1HR,1HY,1HR,1HZ                                          MOD05448
  28.      2,1HN,1HD,1HN,1HR,1HN,1HM/                                         MOD05449
  29. 10    DO 2 L=1,12                                                       MOD05450
  30.       C(L)=BLANK                                                        MOD05451
  31. 2     CONTINUE                                                          MOD05452
  32.       DO 3 I=3,5                                                        MOD05453
  33.       DOM=AGET(I)                                                       MOD05454
  34.       IF(DOM.EQ.BLANK)GO TO 6                                           MOD05455
  35. 3     CONTINUE                                                          MOD05456
  36. 6     IF(IGET(I))CALL PRTERR(0)                                         MOD05457
  37.       IF(IGET(J))CALL PRTERR(0)                                         MOD05458
  38.       IF(IGET(K))CALL PRTERR(0)                                         MOD05459
  39.       DO 8 IB=1,11,2                                                    MOD05460
  40.       BL=AGETW(AGE001)                                                  MOD05461
  41.       IF(BL.EQ.BLANK)GO TO 8                                            MOD05462
  42.       C(IB)=BL                                                          MOD05463
  43.       C(IB+1)=AGET(2)                                                   MOD05464
  44. 8     CONTINUE                                                          MOD05465
  45.       IF(I.LE.0)RETURN                                                  MOD05466
  46.       IF(J.LE.0)J=I                                                     MOD05467
  47.       IF(K.LE.0)K=1                                                     MOD05468
  48.       DO 200 N=I,J,K                                                    MOD05469
  49.       DO 30 M=1,11,2                                                    MOD05470
  50.       M0=1                                                              MOD05471
  51.       DO 30 MM=1,11,2                                                   MOD05472
  52.       IF(C(M).EQ.A(MM).AND.C(M+1).EQ.A(MM+1))ID(N,M0)=1                 MOD05473
  53.       M0=M0+1                                                           MOD05474
  54. 30    CONTINUE                                                          MOD05475
  55.       DO 40 M=1,11,2                                                    MOD05476
  56.       IF(C(M).EQ.A(13).AND.C(M+1).EQ.A(14))GO TO 41                     MOD05477
  57.       IF(C(M).EQ.A(15).AND.C(M+1).EQ.A(16))GO TO 43                     MOD05478
  58.       IF(C(M).EQ.A(17).AND.C(M+1).EQ.A(18))GO TO 45                     MOD05479
  59.       GO TO 40                                                          MOD05480
  60. 41    DO 42 KK=1,3                                                      MOD05481
  61.       ID(N,KK)=1                                                        MOD05482
  62. 42    CONTINUE                                                          MOD05483
  63.       GO TO 40                                                          MOD05484
  64. 43    DO 44 KK=4,6                                                      MOD05485
  65.       ID(N,KK)=1                                                        MOD05486
  66. 44    CONTINUE                                                          MOD05487
  67.       GO TO 40                                                          MOD05488
  68. 45    DO 46 KK=1,6                                                      MOD05489
  69.       ID(N,KK)=1                                                        MOD05490
  70. 46    CONTINUE                                                          MOD05491
  71. 40    CONTINUE                                                          MOD05492
  72. 200   CONTINUE                                                          MOD05493
  73.       RETURN                                                            MOD05494
  74.       END                                                               MOD05495
  75.       SUBROUTINE FILL1(LIMIT,NSTOR,X,Y,Z)                               MOD02563
  76.       LOGICAL IGET,RGET                                                 MOD02564
  77.       INTEGER AGET,AGETW                                                MOD02565
  78.       DIMENSION NSTOR(LIMIT),X(LIMIT),Y(LIMIT),Z(LIMIT)                 MOD02566
  79.       DATA IBLANK/1H /                                                  MOD02567
  80.       IDOUM=AGET(4)                                                     MOD02568
  81.       IF(IGET(NTIM))CALL PRTERR(0)                                      MOD02569
  82.       IF(IGET(N1))CALL PRTERR(0)                                        MOD02570
  83.       IF(IGET(N2))CALL PRTERR(0)                                        MOD02571
  84.       IF(IGET(NFILL))CALL PRTERR(0)                                     MOD02572
  85.       IF(IGET(NSTRT))CALL PRTERR(0)                                     MOD02573
  86.       IF(IGET(INC))CALL PRTERR(0)                                       MOD02574
  87.       IF(IGET(IADD))CALL PRTERR(0)                                      MOD02575
  88.       IF(IGET(IADD2))CALL PRTERR(0)                                     MOD02576
  89.       IF(NTIM.LE.0)NTIM=1                                               MOD02577
  90.       IF(N1.LE.0)N1=1                                                   MOD02578
  91.       IF(N2.NE.0)GO TO 12                                               MOD02579
  92.       DO 14 I=1,LIMIT                                                   MOD02580
  93.       IF(NSTOR(I).EQ.0)GO TO 14                                         MOD02581
  94.       IF(NSTOR(I).GT.N2)N2=NSTOR(I)                                     MOD02582
  95. 14    CONTINUE                                                          MOD02583
  96. 12    IF(N2.GT.N1)GO TO 15                                              MOD02584
  97.       LAB=N1                                                            MOD02585
  98.       N1=N2                                                             MOD02586
  99.       N2=LAB                                                            MOD02587
  100. 15    IF(NFILL.EQ.0)NFILL=N2-N1-1                                       MOD02588
  101.       IF(INC.EQ.0)INC=(N2-N1)/(NFILL+1)                                 MOD02589
  102.       IF(NSTRT.EQ.0)NSTRT=N1+INC                                        MOD02590
  103.       IF(IADD.EQ.0)IADD=1                                               MOD02591
  104.       DO 100 I=1,NTIM                                                   MOD02592
  105.       SUM=NFILL+1                                                       MOD02593
  106.       XS=(X(N2)-X(N1))/SUM                                              MOD02594
  107.       YS=(Y(N2)-Y(N1))/SUM                                              MOD02595
  108.       ZS=(Z(N2)-Z(N1))/SUM                                              MOD02596
  109.       N=NSTRT                                                           MOD02597
  110.       NSTOR(N)=N                                                        MOD02598
  111.       X(N)=X(N1)+XS                                                     MOD02599
  112.       Y(N)=Y(N1)+YS                                                     MOD02600
  113.       Z(N)=Z(N1)+ZS                                                     MOD02601
  114.       IF(NFILL.EQ.1)GO TO 90                                            MOD02602
  115.       DO 50 J=2,NFILL                                                   MOD02603
  116.       N=N+INC                                                           MOD02604
  117.       NSTOR(N)=N                                                        MOD02605
  118.       X(N)=X(N1)+XS*J                                                   MOD02606
  119.       Y(N)=Y(N1)+YS*J                                                   MOD02607
  120.       Z(N)=Z(N1)+ZS*J                                                   MOD02608
  121. 50    CONTINUE                                                          MOD02609
  122. 90    N1=N1+IADD                                                        MOD02610
  123.       N2=N2+IADD                                                        MOD02611
  124.       NSTRT=NSTRT+IADD+IADD2                                            MOD02612
  125. 100   CONTINUE                                                          MOD02613
  126.       RETURN                                                            MOD02614
  127.       END                                                               MOD02615
  128.       SUBROUTINE ELEM1(LIMIT,NUMEL,MTYP,IPS,MATRI,THICK,BETA,ICON,IELD  MOD02053
  129.      1,IELX,NTEMP,NODOLD,DENSIT,AREA,CDIS,CVEL)                         MOD02054
  130.       LOGICAL IGET,RGET,EOL,EOS,EOF,ERROR                               MOD02055
  131.       INTEGER AGET,AGETW,SECT                                           MOD02056
  132.       COMMON/ELARRY/NELAR(4,20)                                         MOD02057
  133.       COMMON/NONLIN/INON,ITHIS                                          MOD02058
  134.       COMMON/UNIT/INNN,IOO                                              MOD02059
  135.       COMMON/SAP6/ISAP6                                                 MOD02060
  136.       COMMON/TOTAL/MAXELM,MAXNOD,MAXNDM                                 MOD02061
  137.       COMMON/SIZE/IFRNDM                                                MOD02062
  138.       COMMON/EGROUP/ITYPEL,NONTYP                                       MOD02063
  139.       COMMON/FRECNT/LINE(80),SECT,EOL,EOS,EOF,ERROR                     MOD02064
  140.       DIMENSION MTYP(NUMEL),IPS(NUMEL),THICK(NUMEL),BETA(NUMEL)         MOD02065
  141.      1,ICON(NUMEL,20),MATRI(NUMEL),IELD(NUMEL),IELX(NUMEL)              MOD02066
  142.      2,NTEMP(NUMEL),NODOLD(LIMIT),DENSIT(NUMEL),AREA(NUMEL)             MOD02067
  143.      3,CDIS(NUMEL),CVEL(NUMEL)                                          MOD02068
  144.       DATA BLANK/1H /,ISHELL/1HS/,IGENER/1HC/,IPLAT/1HP/                MOD02069
  145.       DATA ITRUSS/1HT/,IBEAM/1HB/,I2D/1H2/,I3D/1H3/,IGAP/1HG/           MOD02070
  146.       DATA LLL/1HL/,IPPP/1HP/,IELBO/1HE/,NONN/1HN/                      MOD02071
  147.       IFRNDM=MAXNDM                                                     MOD02072
  148.       DO    10 I=3,8                                                    MOD02073
  149.       X=AGET(I)                                                         MOD02074
  150.       IF(X.EQ.BLANK)GO TO    20                                         MOD02075
  151. 10    CONTINUE                                                          MOD02076
  152. 20    IF(IGET(N))CALL PRTERR(0)                                         MOD02077
  153.       IF(N.GT.NUMEL)CALL PRTERR(9)                                      MOD02078
  154.       IF(N.LE.0)CALL PRTERR(10)                                         MOD02079
  155.       IF(ISAP6.EQ.1)GO TO   290                                         MOD02080
  156.       IWHO=AGETW(AGE001)                                                MOD02081
  157.       IWHO2=AGET(2)                                                     MOD02082
  158.       IF(IWHO.EQ.IGENER)MTYP(N)=17                                      MOD02083
  159.       IF(IWHO.EQ.IGENER)GO TO   140                                     MOD02084
  160.       DO    30 I=3,5                                                    MOD02085
  161.       X=AGET(I)                                                         MOD02086
  162.       IF(X.EQ.BLANK)GO TO    40                                         MOD02087
  163. 30    CONTINUE                                                          MOD02088
  164. 40    IF(IWHO.EQ.ITRUSS)MTYP(N)=1                                       MOD02089
  165.       IF(IWHO.EQ.IELBO)MTYP(N)=2                                        MOD02090
  166.       IF(IWHO.EQ.IBEAM)MTYP(N)=2                                        MOD02091
  167.       IF(IWHO.EQ.I2D)MTYP(N)=11                                         MOD02092
  168.       IF(IWHO.EQ.I3D)MTYP(N)=10                                         MOD02093
  169.       IF(IWHO.EQ.IGAP)MTYP(N)=1                                         MOD02094
  170.       IF(IWHO.EQ.ISHELL)MTYP(N)=18                                      MOD02095
  171.       IF(IWHO.EQ.IPLAT)MTYP(N)=16                                       MOD02096
  172.       IF(IWHO.EQ.ITRUSS)ITYPEL=1                                        MOD02097
  173.       IF(IWHO.EQ.IBEAM)ITYPEL=4                                         MOD02098
  174.       IF(IWHO.EQ.I2D)ITYPEL=2                                           MOD02099
  175.       IF(IWHO.EQ.I3D)ITYPEL=3                                           MOD02100
  176.       IF(IWHO.EQ.IGAP)ITYPEL=5                                          MOD02101
  177.       IF(IWHO.EQ.ISHELL)ITYPEL=6                                        MOD02102
  178.       IF(IWHO.EQ.IPLAT)ITYPEL=6                                         MOD02103
  179.       IF(IWHO.EQ.IELBO)ITYPEL=7                                         MOD02104
  180.       IF(MTYP(N).NE.0)GO TO    60                                       MOD02105
  181.       WRITE(IOO,   50)N                                                 MOD02106
  182. 50    FORMAT('  ++ F ++ ILLEGAL ELEMENT TYPE FOR ELEMENT NUMER = ',I4)  MOD02107
  183.       STOP                                                              MOD02108
  184. 60    IF(MTYP(N).NE.1)GO TO   100                                       MOD02109
  185.       IF(IGET(ICON(N,1)))CALL PRTERR(0)                                 MOD02110
  186.       IF(IGET(ICON(N,2)))CALL PRTERR(0)                                 MOD02111
  187.       IF(IGET(MATRI(N)))CALL PRTERR(0)                                  MOD02112
  188.       IF(RGET(BETA(N)))CALL PRTERR(0)                                   MOD02113
  189.       IF(IGET(IPS(N)))CALL PRTERR(0)                                    MOD02114
  190.       IF(MATRI(N).LE.0)MATRI(N)=1                                       MOD02115
  191.       IF(IWHO.EQ.IGAP)MTYP(N)=-1                                        MOD02116
  192.       IF(IWHO.EQ.IGAP)GO TO    70                                       MOD02117
  193.       IF(RGET(DENSIT(N)))CALL PRTERR(0)                                 MOD02118
  194.       IF(RGET(AREA(N)))CALL PRTERR(0)                                   MOD02119
  195.       IWNON=AGETW(GET001)                                               MOD02120
  196.       IF(IWNON.EQ.NONN)NONTYP=1                                         MOD02121
  197.       GO TO    80                                                       MOD02122
  198. 70    AREA(N)=-1.0                                                      MOD02123
  199.       IF(IGET(IELD(N)))CALL PRTERR(0)                                   MOD02124
  200.       IF(RGET(CDIS(N)))CALL PRTERR(0)                                   MOD02125
  201.       IF(IGET(IELX(N)))CALL PRTERR(0)                                   MOD02126
  202.       IF(RGET(THICK(N)))CALL PRTERR(0)                                  MOD02127
  203. 80    IF(ITHIS.EQ.0)GO TO    90                                         MOD02128
  204.       NODOLD(ICON(N,1))=-ICON(N,1)                                      MOD02129
  205.       NODOLD(ICON(N,2))=-ICON(N,2)                                      MOD02130
  206.       ITHIS=0                                                           MOD02131
  207.       RETURN                                                            MOD02132
  208. 90    NODOLD(ICON(N,1))=ICON(N,1)                                       MOD02133
  209.       NODOLD(ICON(N,2))=ICON(N,2)                                       MOD02134
  210.       ITHIS=0                                                           MOD02135
  211.       RETURN                                                            MOD02136
  212. 100   IF(MTYP(N).NE.2)GO TO   130                                       MOD02137
  213.       DO   110 J=1,3                                                    MOD02138
  214.       IF(IGET(ICON(N,J)))CALL PRTERR(0)                                 MOD02139
  215. 110   CONTINUE                                                          MOD02140
  216.       IF(IGET(MATRI(N)))CALL PRTERR(0)                                  MOD02141
  217.       IF(IGET(IPS(N)))CALL PRTERR(0)                                    MOD02142
  218.       IF(RGET(BETA(N)))CALL PRTERR(0)                                   MOD02143
  219.       IF(RGET(THICK(N)))CALL PRTERR(0)                                  MOD02144
  220.       IF(RGET(DENSIT(N)))CALL PRTERR(0)                                 MOD02145
  221.       IF(RGET(AREA(N)))CALL PRTERR(0)                                   MOD02146
  222.       IF(MATRI(N).LE.0)MATRI(N)=1                                       MOD02147
  223.       DO   120 J=1,3                                                    MOD02148
  224.       NODOLD(ICON(N,J))=ICON(N,J)                                       MOD02149
  225.       IF(ITHIS.EQ.1)NODOLD(ICON(N,J))=-ICON(N,J)                        MOD02150
  226. 120   CONTINUE                                                          MOD02151
  227.       ITHIS=0                                                           MOD02152
  228.       RETURN                                                            MOD02153
  229. 130   IF(MTYP(N).NE.17)GO TO   160                                      MOD02154
  230. 140   IF(IGET(IPS(N)))CALL PRTERR(0)                                    MOD02155
  231.       IF(RGET(BETA(N)))CALL PRTERR(0)                                   MOD02156
  232.       IF(IGET(MATRI(N)))CALL PRTERR(0)                                  MOD02157
  233.       IF(IGET(IELD(N)))CALL PRTERR(0)                                   MOD02158
  234.       IF(IELD(N).LE.0.AND.IWHO2.EQ.LLL)IELD(N)=3                        MOD02159
  235.       IF(IELD(N).LE.0.AND.IWHO2.EQ.ISHELL)IELD(N)=8                     MOD02160
  236.       IF(IELD(N).LE.0.AND.IWHO2.EQ.IPPP)IELD(N)=2                       MOD02161
  237.       IF(BETA(N).LE.0)BETA(N)=10.E+09                                   MOD02162
  238.       CALL GETNL(GET001)                                                MOD02163
  239.       DO   150 I=1,20                                                   MOD02164
  240.       IF(IGET(ICON(N,I)))CALL PRTERR(0)                                 MOD02165
  241. 150   CONTINUE                                                          MOD02166
  242.       GO TO   270                                                       MOD02167
  243. 160   IF(IGET(IPS(N)))CALL PRTERR(0)                                    MOD02168
  244.       IF(MTYP(N).EQ.3.OR.MTYP(N).EQ.4)GO TO   200                       MOD02169
  245.       IF(MTYP(N).EQ.8.OR.MTYP(N).EQ.11)GO TO   200                      MOD02170
  246.       IF(MTYP(N).EQ.12.OR.MTYP(N).EQ.13)GO TO   200                     MOD02171
  247.       IF(IGET(MATRI(N)))CALL PRTERR(0)                                  MOD02172
  248.       IF(MTYP(N).EQ.18)GO TO 162                                        MOD02173
  249.       IF(MTYP(N).EQ.16)GO TO 162                                        MOD02174
  250.       IF(RGET(BETA(N)))CALL PRTERR(0)                                   MOD02175
  251. 162   IF(IGET(IELD(N)))CALL PRTERR(0)                                   MOD02176
  252.       IF(MTYP(N).EQ.18)GO TO   190                                      MOD02177
  253.       IF(IGET(IELX(N)))CALL PRTERR(0)                                   MOD02178
  254.       IF(MTYP(N).EQ.16)GO TO   170                                      MOD02179
  255.       IF(MTYP(N).NE.10)GO TO 163                                        MOD02180
  256.       IF(RGET(THICK(N)))CALL PRTERR(0)                                  MOD02181
  257. 163   CONTINUE                                                          MOD02182
  258.       IF(RGET(DENSIT(N)))CALL PRTERR(0)                                 MOD02183
  259. 170   MT12=MTYP(N)                                                      MOD02184
  260.       IF(IELD(N).EQ.0)IELD(N)=NELAR(1,MT12)                             MOD02185
  261.       IF(MTYP(N).EQ.16)GO TO   180                                      MOD02186
  262.       IF(IELX(N).EQ.0)IELX(N)=NELAR(1,MT12)                             MOD02187
  263. 180   IF(MTYP(N).NE.16)GO TO   210                                      MOD02188
  264.       IF(RGET(THICK(N)))CALL PRTERR(0)                                  MOD02189
  265.       IF(IGET(NTEMP(N)))CALL PRTERR(0)                                  MOD02190
  266.       IF(RGET(DENSIT(N)))CALL PRTERR(0)                                 MOD02191
  267.       IF(RGET(AREA(N)))CALL PRTERR(0)                                   MOD02192
  268.       MAXNDM=9                                                          MOD02193
  269.       IFRNDM=MAXNDM                                                     MOD02194
  270.       GO TO   210                                                       MOD02195
  271. 190   CONTINUE                                                          MOD02196
  272.       BETA(N)=0                                                         MOD02197
  273.       IF(RGET(THICK(N)))CALL PRTERR(0)                                  MOD02198
  274.       IF(IGET(NTEMP(N)))CALL PRTERR(0)                                  MOD02199
  275.       IF(RGET(DENSIT(N)))CALL PRTERR(0)                                 MOD02200
  276.       IF(RGET(AREA(N)))CALL PRTERR(0)                                   MOD02201
  277.       MAXNDM=16                                                         MOD02202
  278.       IFRNDM=MAXNDM                                                     MOD02203
  279.       GO TO   210                                                       MOD02204
  280. 200   IF(RGET(BETA(N)))CALL PRTERR(0)                                   MOD02205
  281.       IF(RGET(THICK(N)))CALL PRTERR(0)                                  MOD02206
  282.       IF(IGET(MATRI(N)))CALL PRTERR(0)                                  MOD02207
  283.       IF(IGET(IELD(N)))CALL PRTERR(0)                                   MOD02208
  284.       IF(RGET(DENSIT(N)))CALL PRTERR(0)                                 MOD02209
  285.       AREA(N)=THICK(N)                                                  MOD02210
  286. 210   IF(MATRI(N).EQ.0)MATRI(N)=1                                       MOD02211
  287.       CALL GETNL(GET001)                                                MOD02212
  288.       IF(MTYP(N).NE.18)GO TO   230                                      MOD02213
  289.       DO   220 I=1,16                                                   MOD02214
  290.       IF(IGET(ICON(N,I)))CALL PRTERR(0)                                 MOD02215
  291. 220   CONTINUE                                                          MOD02216
  292.       GO TO   270                                                       MOD02217
  293. 230   DO   240 I=1,9                                                    MOD02218
  294.       IF(IGET(ICON(N,I)))CALL PRTERR(0)                                 MOD02219
  295. 240   CONTINUE                                                          MOD02220
  296.       IF(MTYP(N).NE.10)GO TO   270                                      MOD02221
  297.       IF(IELD(N).LE.8)GO TO   270                                       MOD02222
  298.       IF(IELX(N).LE.8)GO TO   270                                       MOD02223
  299.       CALL GETNL(GET001)                                                MOD02224
  300.       IF(IGET(IDUM))GO TO   260                                         MOD02225
  301.       ICON(N,9)=IDUM                                                    MOD02226
  302.       DO   250 I=10,20                                                  MOD02227
  303.       IF(IGET(ICON(N,I)))CALL PRTERR(0)                                 MOD02228
  304. 250   CONTINUE                                                          MOD02229
  305.       MAXNDM=20                                                         MOD02230
  306.       IFRNDM=MAXNDM                                                     MOD02231
  307.       GO TO   270                                                       MOD02232
  308. 260   BACKSPACE INNN                                                    MOD02233
  309.       ERROR=.FALSE.                                                     MOD02234
  310. 270   DO   280 I=1,20                                                   MOD02235
  311.       KAB=ICON(N,I)                                                     MOD02236
  312.       IF(KAB.EQ.0)GO TO   280                                           MOD02237
  313.       NODOLD(KAB)=KAB                                                   MOD02238
  314.       IF(ITHIS.EQ.1)NODOLD(KAB)=-KAB                                    MOD02239
  315. 280   CONTINUE                                                          MOD02240
  316.       RETURN                                                            MOD02241
  317. 290   IF(IGET(MTYP(N)))CALL PRTERR(0)                                   MOD02242
  318.       IF(IGET(N1))CALL PRTERR(0)                                        MOD02243
  319.       IF(IGET(N2))CALL PRTERR(0)                                        MOD02244
  320.       IF(IGET(N3))CALL PRTERR(0)                                        MOD02245
  321.       IF(IGET(N4))CALL PRTERR(0)                                        MOD02246
  322.       IF(IGET(NDMX))CALL PRTERR(0)                                      MOD02247
  323.       IF(RGET(DENSIT(N)))CALL PRTERR(0)                                 MOD02248
  324.       IF(RGET(AREA(N)))CALL PRTERR(0)                                   MOD02249
  325.       MATRI(N)=N1                                                       MOD02250
  326.       THICK(N)=N2                                                       MOD02251
  327.       BETA(N)=N3                                                        MOD02252
  328.       IPS(N)=N4                                                         MOD02253
  329.       IELD(N)=NDMX                                                      MOD02254
  330.       IF(NDMX.GT.MAXNDM)MAXNDM=NDMX                                     MOD02255
  331.       IFRNDM=MAXNDM                                                     MOD02256
  332.       IF(MTYP(N).EQ.7)RETURN                                            MOD02257
  333.       CALL GETNL(GET001)                                                MOD02258
  334.       DO   300 I=1,8                                                    MOD02259
  335.       IF(IGET(ICON(N,I)))CALL PRTERR(0)                                 MOD02260
  336. 300   CONTINUE                                                          MOD02261
  337.       IF(MTYP(N).EQ.10.OR.MTYP(N).EQ.16)GO TO   310                     MOD02262
  338.       RETURN                                                            MOD02263
  339. 310   IF(NDMX.LE.8)RETURN                                               MOD02264
  340.       CALL GETNL(GET001)                                                MOD02265
  341.       DO   320 I=9,20                                                   MOD02266
  342.       IF(IGET(ICON(N,I)))CALL PRTERR(0)                                 MOD02267
  343. 320   CONTINUE                                                          MOD02268
  344.       RETURN                                                            MOD02269
  345.       END                                                               MOD02270
  346.       SUBROUTINE REPEA1(LIMIT,NUMEL,MTYP,IPS,MATRI,THICK,BETA,ICON,IELD MOD05961
  347.      1,IELX,NTEMP,NODOLD,DENSIT,AREA,CDIS,CVEL)                         MOD05962
  348.       INTEGER AGET,AGETW                                                MOD05963
  349.       LOGICAL IGET,RGET                                                 MOD05964
  350.       COMMON/SAP6/ISAP6                                                 MOD05965
  351.       COMMON/BEAM3/IGEN3                                                MOD05966
  352.       DIMENSION MTYP(NUMEL),IPS(NUMEL),MATRI(NUMEL),THICK(NUMEL)        MOD05967
  353.      1,BETA(NUMEL),ICON(NUMEL,20),IELD(NUMEL),IELX(NUMEL),NTEMP(NUMEL)  MOD05968
  354.      2,NODOLD(LIMIT),DENSIT(NUMEL),AREA(NUMEL),CDIS(NUMEL)              MOD05969
  355.      3,CVEL(NUMEL)                                                      MOD05970
  356.       DO 10 I=3,6                                                       MOD05971
  357.       IX=AGET(I)                                                        MOD05972
  358. 10    CONTINUE                                                          MOD05973
  359.       IF(IGET(NTIM))CALL PRTERR(0)                                      MOD05974
  360.       IF(IGET(IELM1))CALL PRTERR(0)                                     MOD05975
  361.       IF(IGET(IELM2))CALL PRTERR(0)                                     MOD05976
  362.       IF(IGET(INCR))CALL PRTERR(0)                                      MOD05977
  363.       IF(IGET(IADD))CALL PRTERR(0)                                      MOD05978
  364.       IF(ISAP6.NE.1)GO TO 12                                            MOD05979
  365.       IF(IGET(IN1))CALL PRTERR(0)                                       MOD05980
  366.       IF(IGET(IN2))CALL PRTERR(0)                                       MOD05981
  367.       IF(IGET(IN3))CALL PRTERR(0)                                       MOD05982
  368.       IF(IGET(IN4))CALL PRTERR(0)                                       MOD05983
  369.       GO TO 14                                                          MOD05984
  370. 12    IF(RGET(TINC))CALL PRTERR(0)                                      MOD05985
  371.       IF(RGET(BINC))CALL PRTERR(0)                                      MOD05986
  372.       IF(IGET(MINC))CALL PRTERR(0)                                      MOD05987
  373.       IF(IGET(LINC))CALL PRTERR(0)                                      MOD05988
  374.       IF(IGET(INTEMP))CALL PRTERR(0)                                    MOD05989
  375. 14    IF(NTIM.EQ.0)NTIM=1                                               MOD05990
  376.       IF(IADD.EQ.0)IADD=1                                               MOD05991
  377.       IF(IELM1.LE.0)IELM1=1                                             MOD05992
  378.       IF(INCR.EQ.0)INCR=1                                               MOD05993
  379.       IF(IELM2.LE.0)IELM2=IELM1                                         MOD05994
  380.       IF(IELM2.GE.IELM1)GO TO 15                                        MOD05995
  381.       IDOM=IELM1                                                        MOD05996
  382.       IELM1=IELM2                                                       MOD05997
  383.       IELM2=IDOM                                                        MOD05998
  384. 15    CONTINUE                                                          MOD05999
  385.       J=IELM1                                                           MOD06000
  386.       I=1                                                               MOD06001
  387. 16    CONTINUE                                                          MOD06002
  388.       IELMX=0                                                           MOD06003
  389.       DO 17 L=1,NUMEL                                                   MOD06004
  390.       IF(MTYP(L).LE.0)GO TO 21                                          MOD06005
  391.       IELMX=L                                                           MOD06006
  392. 17    CONTINUE                                                          MOD06007
  393. 21    CONTINUE                                                          MOD06008
  394.       IELM1=J                                                           MOD06009
  395.       INTM=I                                                            MOD06010
  396.       DO 30 I=INTM,NTIM                                                 MOD06011
  397.       M=0                                                               MOD06012
  398.       DO 20 J=IELM1,IELM2,INCR                                          MOD06013
  399.       M=M+1                                                             MOD06014
  400.       N=M+IELMX                                                         MOD06015
  401.       IF(N.GT.NUMEL)CALL PRTERR(9)                                      MOD06016
  402.       IF(MTYP(N).GT.0) GO TO 16                                         MOD06017
  403.       MTYP(N)=MTYP(J)                                                   MOD06018
  404.       IF(ISAP6.NE.1)GO TO 32                                            MOD06019
  405.       MATRI(N)=MATRI(J)+IN1                                             MOD06020
  406.       THICK(N)=THICK(J)+IN2                                             MOD06021
  407.       BETA(N)=BETA(J)+IN3                                               MOD06022
  408.       IPS(N)=IPS(J)+IN4                                                 MOD06023
  409.       GO TO 33                                                          MOD06024
  410. 32    IPS(N)=IPS(J)                                                     MOD06025
  411.       IF(MTYP(N).EQ.16)GO TO 35                                         MOD06026
  412.       BETA(N)=BETA(J)+BINC                                              MOD06027
  413.       THICK(N)=THICK(J)+TINC                                            MOD06028
  414.       MATRI(N)=MATRI(J)+MINC                                            MOD06029
  415.       NTEMP(N)=NTEMP(J)+INTEMP                                          MOD06030
  416.       GO TO 33                                                          MOD06031
  417. 35    THICK(N)=THICK(J)+LINC                                            MOD06032
  418.       MATRI(N)=MATRI(J)+MINC                                            MOD06033
  419.       AREA(N)=AREA(J)+TINC                                              MOD06034
  420.       NTEMP(N)=NTEMP(J)                                                 MOD06035
  421. 33    IELD(N)=IELD(J)                                                   MOD06036
  422.       IELX(N)=IELX(J)                                                   MOD06037
  423.       DENSIT(N)=DENSIT(J)                                               MOD06038
  424.       IF(MTYP(N).NE.16)AREA(N)=AREA(J)                                  MOD06039
  425.       CDIS(N)=CDIS(J)                                                   MOD06040
  426.       CVEL(N)=CVEL(J)                                                   MOD06041
  427.       IF(MTYP(N).NE.2)GO TO 28                                          MOD06042
  428.       IF(IGEN3.EQ.1)GO TO 28                                            MOD06043
  429.       DO 27 K=1,2                                                       MOD06044
  430.       IF(ICON(J,K).LE.0)GO TO 27                                        MOD06045
  431.       ICON(N,K)=ICON(J,K)+IADD                                          MOD06046
  432. 27    CONTINUE                                                          MOD06047
  433.       IF(IGEN3.EQ.0)ICON(N,3)=ICON(J,3)                                 MOD06048
  434.       IF(IGEN3.EQ.2)ICON(N,3)=ICON(J,3)-IADD                            MOD06049
  435.       GO TO 19                                                          MOD06050
  436. 28    DO 18 K=1,20                                                      MOD06051
  437.       IF(ICON(J,K).EQ.0)GO TO 18                                        MOD06052
  438.       ICON(N,K)=ICON(J,K)+IADD                                          MOD06053
  439.       KAB0=ICON(J,K)                                                    MOD06054
  440.       KAB1=ICON(N,K)                                                    MOD06055
  441.       NODOLD(KAB1)=KAB1                                                 MOD06056
  442.       IF(NODOLD(KAB0).LT.0)NODOLD(KAB1)=-KAB1                           MOD06057
  443. 18    CONTINUE                                                          MOD06058
  444. 19    CONTINUE                                                          MOD06059
  445. 20    CONTINUE                                                          MOD06060
  446.       IELM1=IELMX+1                                                     MOD06061
  447.       IELM2=IELM1+M-1                                                   MOD06062
  448.       IELMX=N                                                           MOD06063
  449.       INCR=1                                                            MOD06064
  450. 30    CONTINUE                                                          MOD06065
  451.       RETURN                                                            MOD06066
  452.       END                                                               MOD06067
  453.       SUBROUTINE ROTAT1(LIMIT,NSTOR,X,Y,Z)                              MOD06104
  454.       LOGICAL IGET,RGET                                                 MOD06105
  455.       INTEGER AGET,AGETW                                                MOD06106
  456.       DIMENSION NSTOR(LIMIT),X(LIMIT),Y(LIMIT),Z(LIMIT),IX(4)           MOD06107
  457.       COMMON/UNIT/IN,IO                                                 MOD06108
  458.       DATA IX/1HX,1HY,1HZ,1HA/                                          MOD06109
  459.       DATA IBLANK/1H /                                                  MOD06110
  460.       DO 10 I=3,7                                                       MOD06111
  461.       IDOM=AGET(I)                                                      MOD06112
  462.       IF(IDOM.EQ.IBLANK)GO TO 11                                        MOD06113
  463. 10    CONTINUE                                                          MOD06114
  464. 11    IF(IGET(NTIM))CALL PRTERR(0)                                      MOD06115
  465.       IF(IGET(N1))CALL PRTERR(0)                                        MOD06116
  466.       IF(IGET(N2))CALL PRTERR(0)                                        MOD06117
  467.       IF(IGET(INC))CALL PRTERR(0)                                       MOD06118
  468.       IF(IGET(IADD))CALL PRTERR(0)                                      MOD06119
  469.       IF(RGET(DEGR))CALL PRTERR(0)                                      MOD06120
  470.       IAX=AGETW(AG001)                                                  MOD06121
  471.       IF(IAX.NE.IX(4))GO TO 230                                         MOD06122
  472.       CALL GETNL(GET001)                                                MOD06123
  473.       IF(RGET(X1))CALL PRTERR(0)                                        MOD06124
  474.       IF(RGET(Y1))CALL PRTERR(0)                                        MOD06125
  475.       IF(RGET(Z1))CALL PRTERR(0)                                        MOD06126
  476.       IF(RGET(X2))CALL PRTERR(0)                                        MOD06127
  477.       IF(RGET(Y2))CALL PRTERR(0)                                        MOD06128
  478.       IF(RGET(Z2))CALL PRTERR(0)                                        MOD06129
  479.       AA=ABS(Z2-Z1)                                                     MOD06130
  480.       BB=ABS(X2-X1)                                                     MOD06131
  481.       CC=ABS(Y2-Y1)                                                     MOD06132
  482.       RR=SQRT(AA**2+BB**2+CC**2)                                        MOD06133
  483.       R=SQRT(BB**2+CC**2)                                               MOD06134
  484.       IF(R.EQ.0.0)GO TO 200                                             MOD06135
  485.       ALFA=ARCOS(BB/R)                                                  MOD06136
  486.       GO TO 210                                                         MOD06137
  487. 200   ALFA=0.0                                                          MOD06138
  488. 210   IF(RR.EQ.0.0)GO TO 220                                            MOD06139
  489.       BET=ARSIN(AA/RR)                                                  MOD06140
  490.       GO TO 230                                                         MOD06141
  491. 220   BET=0.0                                                           MOD06142
  492. 230   CONTINUE                                                          MOD06143
  493.       PI=4.0*ATAN(1.0)                                                  MOD06144
  494.       IF(NTIM.LE.0)NTIM=1                                               MOD06145
  495.       IF(INC.EQ.0)INC=1                                                 MOD06146
  496.       IF(DEGR.NE.0.0)GO TO 15                                           MOD06147
  497.       DEGR=360.0/(NTIM+1)                                               MOD06148
  498. 15    DEGR=DEGR*PI/180.0                                                MOD06149
  499.       DO 20 I=1,4                                                       MOD06150
  500.       IF(IX(I).EQ.IAX)GO TO 30                                          MOD06151
  501. 20    CONTINUE                                                          MOD06152
  502.       WRITE(IO,24)IAX                                                   MOD06153
  503. 24    FORMAT('  ++ F ++ AXES FOR ROTATION = ',A4,' IS ILLEGAL           MOD06154
  504.      1CHECK ROTATION PARAMETERS ')                                      MOD06155
  505.       STOP                                                              MOD06156
  506. 30    IF(N1.LE.0)N1=1                                                   MOD06157
  507.       IF(N2.NE.0)GO TO 55                                               MOD06158
  508.       N2=1                                                              MOD06159
  509.       DO 40 J=1,LIMIT                                                   MOD06160
  510.       IF(NSTOR(J).LE.0)GO TO 40                                         MOD06161
  511.       IF(NSTOR(J).GT.N2)N2=NSTOR(J)                                     MOD06162
  512. 40    CONTINUE                                                          MOD06163
  513.       WRITE(IO,56)N1,N2                                                 MOD06164
  514. 56    FORMAT('  ++ W ++ NODE GENERATION IS DONE FROM ',I5,' TO ',I5     MOD06165
  515.      1,' FOR ROTATION ')                                                MOD06166
  516. 55    IADDRE=IADD                                                       MOD06167
  517.       DEGR1=DEGR                                                        MOD06168
  518.       DO 100 M=1,NTIM                                                   MOD06169
  519.       DO 60 K=N1,N2,INC                                                 MOD06170
  520.       NOD=K+IADDRE                                                      MOD06171
  521.       IF(NOD.GT.LIMIT)CALL PRTERR(7)                                    MOD06172
  522.       NSTOR(NOD)=NOD                                                    MOD06173
  523.       GO TO (61,62,63,64),I                                             MOD06174
  524. 61    ZT=Z(K)*COS(DEGR1)-Y(K)*SIN(DEGR1)                                MOD06175
  525.       Y(NOD)=Y(K)*COS(DEGR1)+Z(K)*SIN(DEGR1)                            MOD06176
  526.       Z(NOD)=ZT                                                         MOD06177
  527.       X(NOD)=X(K)                                                       MOD06178
  528.       GO TO 60                                                          MOD06179
  529. 62    XT=X(K)*COS(DEGR1)-Z(K)*SIN(DEGR1)                                MOD06180
  530.       Z(NOD)=Z(K)*COS(DEGR1)+X(K)*SIN(DEGR1)                            MOD06181
  531.       X(NOD)=XT                                                         MOD06182
  532.       Y(NOD)=Y(K)                                                       MOD06183
  533.       GO TO 60                                                          MOD06184
  534. 63    XT=X(K)*COS(DEGR1)+Y(K)*SIN(DEGR1)                                MOD06185
  535.       Y(NOD)=Y(K)*COS(DEGR1)-X(K)*SIN(DEGR1)                            MOD06186
  536.       X(NOD)=XT                                                         MOD06187
  537.       Z(NOD)=Z(K)                                                       MOD06188
  538.       GO TO 60                                                          MOD06189
  539. 64    XNE=X(K)-X1                                                       MOD06190
  540.       YNE=Y(K)-Y1                                                       MOD06191
  541.       ZNE=Z(K)-Z1                                                       MOD06192
  542.       IF(ALFA.EQ.0.0)GO TO 300                                          MOD06193
  543.       XT=XNE*COS(ALFA)+YNE*SIN(ALFA)                                    MOD06194
  544.       YNE=YNE*COS(ALFA)-XNE*SIN(ALFA)                                   MOD06195
  545.       XNE=XT                                                            MOD06196
  546. 300   IF(BET.EQ.0.0)GO TO 310                                           MOD06197
  547.       XT=XNE*COS(-BET)-ZNE*SIN(-BET)                                    MOD06198
  548.       ZNE=ZNE*COS(-BET)+XNE*SIN(-BET)                                   MOD06199
  549.       XNE=XT                                                            MOD06200
  550. 310   ZT=ZNE*COS(DEGR1)-YNE*SIN(DEGR1)                                  MOD06201
  551.       YNE=YNE*COS(DEGR1)+ZNE*SIN(DEGR1)                                 MOD06202
  552.       ZNE=ZT                                                            MOD06203
  553.       IF(BET.EQ.0.0)GO TO 340                                           MOD06204
  554.       XT=XNE*COS(BET)-ZNE*SIN(BET)                                      MOD06205
  555.       ZNE=ZNE*COS(BET)+XNE*SIN(BET)                                     MOD06206
  556.       XNE=XT                                                            MOD06207
  557. 340   IF(ALFA.EQ.0.0)GO TO 350                                          MOD06208
  558.       XT=XNE*COS(-ALFA)+YNE*SIN(-ALFA)                                  MOD06209
  559.       YNE=YNE*COS(-ALFA)-XNE*SIN(-ALFA)                                 MOD06210
  560.       XNE=XT                                                            MOD06211
  561. 350   X(NOD)=XNE+X1                                                     MOD06212
  562.       Y(NOD)=YNE+Y1                                                     MOD06213
  563.       Z(NOD)=ZNE+Z1                                                     MOD06214
  564. 60    CONTINUE                                                          MOD06215
  565.       IADDRE=IADDRE+IADD                                                MOD06216
  566.       DEGR1=DEGR1+DEGR                                                  MOD06217
  567. 100   CONTINUE                                                          MOD06218
  568.       RETURN                                                            MOD06219
  569.       END                                                               MOD06220
  570.       SUBROUTINE TRANS1(LIMIT,NSTOR,X,Y,Z)                              MOD07052
  571.       INTEGER AGET,AGETW                                                MOD07053
  572.       LOGICAL IGET,RGET                                                 MOD07054
  573.       DIMENSION NSTOR(LIMIT),X(LIMIT),Y(LIMIT),Z(LIMIT)                 MOD07055
  574.       DO 10 I=3,9                                                       MOD07056
  575.       IDOM=AGET(I)                                                      MOD07057
  576.       IF(IDOM.EQ.IBLANK)GO TO 11                                        MOD07058
  577. 10    CONTINUE                                                          MOD07059
  578. 11    IF(IGET(NTIM))CALL PRTERR(0)                                      MOD07060
  579.       IF(IGET(N1))CALL PRTERR(0)                                        MOD07061
  580.       IF(IGET(N2))CALL PRTERR(0)                                        MOD07062
  581.       IF(IGET(INCR))CALL PRTERR(0)                                      MOD07063
  582.       IF(IGET(IADD))CALL PRTERR(0)                                      MOD07064
  583.       IF(RGET(DX))CALL PRTERR(0)                                        MOD07065
  584.       IF(RGET(DY))CALL PRTERR(0)                                        MOD07066
  585.       IF(RGET(DZ))CALL PRTERR(0)                                        MOD07067
  586.       IF(NTIM.EQ.0)NTIM=1                                               MOD07068
  587.       IF(INCR.EQ.0)INCR=1                                               MOD07069
  588.       IF(N1.LE.0)N1=1                                                   MOD07070
  589.       IF(N2.NE.0)GO TO 30                                               MOD07071
  590.       DO 14 J=1,LIMIT                                                   MOD07072
  591.       IF(NSTOR(J).EQ.0)GO TO 14                                         MOD07073
  592.       IF(NSTOR(J).GT.N2)N2=NSTOR(J)                                     MOD07074
  593. 14    CONTINUE                                                          MOD07075
  594.       WRITE(IO,21)N1,N2                                                 MOD07076
  595. 21    FORMAT('  ++ W ++ TRANSLATION IS DONE FROM NODE = ',I5,' TO'      MOD07077
  596.      1,I5)                                                              MOD07078
  597. 30    CONTINUE                                                          MOD07079
  598.       TX=DX                                                             MOD07080
  599.       TY=DY                                                             MOD07081
  600.       TZ=DZ                                                             MOD07082
  601.       IADDRE=IADD                                                       MOD07083
  602.       DO 100 M=1,NTIM                                                   MOD07084
  603.       DO 50 K=N1,N2,INCR                                                MOD07085
  604.       NOD=K+IADDRE                                                      MOD07086
  605.       IF(NOD.GT.LIMIT)CALL PRTERR(7)                                    MOD07087
  606.       NSTOR(NOD)=NOD                                                    MOD07088
  607.       X(NOD)=X(K)+TX                                                    MOD07089
  608.       Y(NOD)=Y(K)+TY                                                    MOD07090
  609.       Z(NOD)=Z(K)+TZ                                                    MOD07091
  610. 50    CONTINUE                                                          MOD07092
  611.       IADDRE=IADDRE+IADD                                                MOD07093
  612.       TX=TX+DX                                                          MOD07094
  613.       TY=TY+DY                                                          MOD07095
  614.       TZ=TZ+DZ                                                          MOD07096
  615. 100   CONTINUE                                                          MOD07097
  616.       RETURN                                                            MOD07098
  617.       END                                                               MOD07099
  618.       SUBROUTINE MERGE1(LIMIT,NUMEL,NSTOR,X,Y,Z,IBON,ICON,IOLD,NEW      MOD04175
  619.      1,NODOLD)                                                          MOD04176
  620.       LOGICAL IGET,RGET                                                 MOD04177
  621.       INTEGER AGET,AGETW                                                MOD04178
  622.       COMMON/SAP6/ISAP6                                                 MOD04179
  623.       DIMENSION NSTOR(LIMIT),X(LIMIT),Y(LIMIT),Z(LIMIT),IBON(LIMIT,6)   MOD04180
  624.      1,ICON(NUMEL,20),IOLD(LIMIT),NEW(LIMIT),NODOLD(LIMIT)              MOD04181
  625.       COMMON/UNIT/IN,IO                                                 MOD04182
  626.       DATA IBLANK/1H /                                                  MOD04183
  627.       DO 10 I=3,5                                                       MOD04184
  628.       IDOM=AGET(I)                                                      MOD04185
  629.       IF(IDOM.EQ.IBLANK)GO TO 11                                        MOD04186
  630. 10    CONTINUE                                                          MOD04187
  631. 11    IF(RGET(ZONE))CALL PRTERR(0)                                      MOD04188
  632.       IF(IGET(IECHO))CALL PRTERR(0)                                     MOD04189
  633.       IF(ZONE.EQ.0.0)ZONE=0.0001                                        MOD04190
  634.       ICO=0                                                             MOD04191
  635.       ITOTN=0                                                           MOD04192
  636.       LL=LIMIT-1                                                        MOD04193
  637.       IF(LL.LE.0)RETURN                                                 MOD04194
  638.       DO 21 I=1,LL                                                      MOD04195
  639.       IF(NSTOR(I).EQ.0.OR.NSTOR(I).EQ.-1)GO TO 20                       MOD04196
  640.       J=I+1                                                             MOD04197
  641.       DO 19 K=J,LIMIT                                                   MOD04198
  642.       IF(NSTOR(K).EQ.0.OR.NSTOR(K).EQ.-1)GO TO 18                       MOD04199
  643.       A=ABS(X(I)-X(K))                                                  MOD04200
  644.       B=ABS(Y(I)-Y(K))                                                  MOD04201
  645.       C=ABS(Z(I)-Z(K))                                                  MOD04202
  646.       IF(A.LE.ZONE.AND.B.LE.ZONE.AND.C.LE.ZONE)GO TO 22                 MOD04203
  647.       GO TO 18                                                          MOD04204
  648. 22    ICO=ICO+1                                                         MOD04205
  649.       ITOTN=ITOTN+1                                                     MOD04206
  650.       IF(NODOLD(K).LT.0)NODOLD(I)=-IABS(NODOLD(I))                      MOD04207
  651.       NEW(ICO)=NSTOR(I)                                                 MOD04208
  652.       IOLD(ICO)=NSTOR(K)                                                MOD04209
  653.       M1=NSTOR(I)                                                       MOD04210
  654.       M2=NSTOR(K)                                                       MOD04211
  655.       DO 28 MM=1,6                                                      MOD04212
  656.       IF(IBON(M1,MM).EQ.1)GO TO 27                                      MOD04213
  657.       IBON(M1,MM)=IBON(M1,MM)+IBON(M2,MM)                               MOD04214
  658. 27    CONTINUE                                                          MOD04215
  659. 28    CONTINUE                                                          MOD04216
  660.       NSTOR(K)=-1                                                       MOD04217
  661. 18    CONTINUE                                                          MOD04218
  662. 19    CONTINUE                                                          MOD04219
  663. 20    CONTINUE                                                          MOD04220
  664. 21    CONTINUE                                                          MOD04221
  665.       IF(ICO.NE.0)GO TO 30                                              MOD04222
  666.       WRITE(IO,23)ZONE                                                  MOD04223
  667. 23    FORMAT('  ++ W ++ THERE WERE NO COINCIDENT NODES WITH ZONE = '    MOD04224
  668.      1,F15.7)                                                           MOD04225
  669.       RETURN                                                            MOD04226
  670. 30    ISUB=0                                                            MOD04227
  671.       KI=1                                                              MOD04228
  672.       DO 40 I=1,LIMIT                                                   MOD04229
  673.       IF(NSTOR(I).NE.-1)GO TO 35                                        MOD04230
  674.       ISUB=ISUB+1                                                       MOD04231
  675.       NODOLD(I)=0                                                       MOD04232
  676.       NSTOR(I)=0                                                        MOD04233
  677.       GO TO 40                                                          MOD04234
  678. 35    IF(ISUB.EQ.0)GO TO 36                                             MOD04235
  679.       ICO=ICO+1                                                         MOD04236
  680.       IOLD(ICO)=NSTOR(I)                                                MOD04237
  681.       NEW(ICO)=NSTOR(I)-ISUB                                            MOD04238
  682. 36    NSTOR(KI)=NSTOR(I)-ISUB                                           MOD04239
  683.       IF(KI.NE.I)NSTOR(I)=0                                             MOD04240
  684.       MP=1                                                              MOD04241
  685.       IF(NODOLD(I).LT.0)MP=-1                                           MOD04242
  686.       NODOLD(KI)=(IABS(NODOLD(I))-ISUB)*MP                              MOD04243
  687.       IF(KI.NE.I)NODOLD(I)=0                                            MOD04244
  688.       X(KI)=X(I)                                                        MOD04245
  689.       Y(KI)=Y(I)                                                        MOD04246
  690.       Z(KI)=Z(I)                                                        MOD04247
  691.       DO 37 MM=1,6                                                      MOD04248
  692.       IBON(KI,MM)=IBON(I,MM)                                            MOD04249
  693. 37    CONTINUE                                                          MOD04250
  694.       KI=KI+1                                                           MOD04251
  695. 40    CONTINUE                                                          MOD04252
  696.       IF(IECHO.EQ.1)WRITE(IO,299)                                       MOD04253
  697.       DO 300 I=1,ICO                                                    MOD04254
  698.       IF(IOLD(I).EQ.0)GO TO 300                                         MOD04255
  699. 299   FORMAT(10X,'OLD NODE',3X,'NEW NODE')                              MOD04256
  700.       WRITE(61,310)IOLD(I),NEW(I)                                       MOD04257
  701.       IF(IECHO.EQ.1)WRITE(IO,311)IOLD(I),NEW(I)                         MOD04258
  702. 300   CONTINUE                                                          MOD04259
  703. 310   FORMAT(2I5)                                                       MOD04260
  704. 311   FORMAT(10X,I5,8X,I5)                                              MOD04261
  705.       DO 100 I=1,NUMEL                                                  MOD04262
  706.       DO 60 J=1,20                                                      MOD04263
  707.       IF(ICON(I,J).EQ.0)GO TO 60                                        MOD04264
  708.       DO 70 K=1,ICO                                                     MOD04265
  709.       IF(ICON(I,J).NE.IOLD(K))GO TO 70                                  MOD04266
  710.       ICON(I,J)=NEW(K)                                                  MOD04267
  711. 70    CONTINUE                                                          MOD04268
  712. 60    CONTINUE                                                          MOD04269
  713. 100   CONTINUE                                                          MOD04270
  714.       WRITE(IO,101)ITOTN                                                MOD04271
  715. 101   FORMAT('  ++ W ++ ',I5,'  COINCIDENT NODES DELETED ')             MOD04272
  716.       RETURN                                                            MOD04273
  717.       END                                                               MOD04274
  718.       SUBROUTINE SCALE1(LIMIT,NSTOR,X,Y,Z)                              MOD06252
  719.       INTEGER AGET,AGETW                                                MOD06253
  720.       LOGICAL IGET,RGET                                                 MOD06254
  721.       DIMENSION NSTOR(LIMIT),X(LIMIT),Y(LIMIT),Z(LIMIT)                 MOD06255
  722.       DO 10 I=3,5                                                       MOD06256
  723.       IDOM=AGET(I)                                                      MOD06257
  724.       IF(IDOM.EQ.IBLANK)GO TO 11                                        MOD06258
  725. 10    CONTINUE                                                          MOD06259
  726. 11    IF(IGET(NTIM))CALL PRTERR(0)                                      MOD06260
  727.       IF(IGET(N1))CALL PRTERR(0)                                        MOD06261
  728.       IF(IGET(N2))CALL PRTERR(0)                                        MOD06262
  729.       IF(IGET(INCR))CALL PRTERR(0)                                      MOD06263
  730.       IF(IGET(IADD))CALL PRTERR(0)                                      MOD06264
  731.       IF(RGET(DX))CALL PRTERR(0)                                        MOD06265
  732.       IF(RGET(DY))CALL PRTERR(0)                                        MOD06266
  733.       IF(RGET(DZ))CALL PRTERR(0)                                        MOD06267
  734.       IF(NTIM.EQ.0)NTIM=1                                               MOD06268
  735.       IF(INCR.EQ.0)INCR=1                                               MOD06269
  736.       IF(N1.LE.0)N1=1                                                   MOD06270
  737.       IF(N2.NE.0)GO TO 30                                               MOD06271
  738.       DO 14 J=1,LIMIT                                                   MOD06272
  739.       IF(NSTOR(J).EQ.0)GO TO 14                                         MOD06273
  740.       IF(NSTOR(J).GT.N2)N2=NSTOR(J)                                     MOD06274
  741. 14    CONTINUE                                                          MOD06275
  742.       WRITE(IO,21)N1,N2                                                 MOD06276
  743. 21    FORMAT('  ++ W ++ SCALING IS DONE FROM NODE = ',I5,' TO'          MOD06277
  744.      1,I5)                                                              MOD06278
  745. 30    CONTINUE                                                          MOD06279
  746.       IF(DX.EQ.0)DX=1                                                   MOD06280
  747.       IF(DY.EQ.0)DY=1                                                   MOD06281
  748.       IF(DZ.EQ.0)DZ=1                                                   MOD06282
  749.       TX=DX                                                             MOD06283
  750.       TY=DY                                                             MOD06284
  751.       TZ=DZ                                                             MOD06285
  752.       IADDRE=IADD                                                       MOD06286
  753.       DO 100 M=1,NTIM                                                   MOD06287
  754.       DO 50 K=N1,N2,INCR                                                MOD06288
  755.       NOD=K+IADDRE                                                      MOD06289
  756.       IF(NOD.GT.LIMIT)CALL PRTERR(7)                                    MOD06290
  757.       NSTOR(NOD)=NOD                                                    MOD06291
  758.       X(NOD)=X(K)*TX                                                    MOD06292
  759.       Y(NOD)=Y(K)*TY                                                    MOD06293
  760.       Z(NOD)=Z(K)*TZ                                                    MOD06294
  761. 50    CONTINUE                                                          MOD06295
  762.       IADDRE=IADDRE+IADD                                                MOD06296
  763.       TX=TX*DX                                                          MOD06297
  764.       TY=TY*DY                                                          MOD06298
  765.       TZ=TZ*DZ                                                          MOD06299
  766. 100   CONTINUE                                                          MOD06300
  767.       RETURN                                                            MOD06301
  768.       END                                                               MOD06302
  769.       SUBROUTINE DNODE1(LIMIT,NUMEL,NSTOR,X,Y,Z,IBON,ICON)              MOD02006
  770.       LOGICAL IGET,RGET                                                 MOD02007
  771.       INTEGER AGET,AGETW                                                MOD02008
  772.       DIMENSION NSTOR(LIMIT),X(LIMIT),Y(LIMIT),Z(LIMIT),IBON(LIMIT,6)   MOD02009
  773.      1,ICON(NUMEL,20)                                                   MOD02010
  774.       COMMON/UNIT/IN,IO                                                 MOD02011
  775.       DATA IBLANK/1H /                                                  MOD02012
  776.       DO 10 I=3,5                                                       MOD02013
  777.       IDOM=AGET(I)                                                      MOD02014
  778.       IF(IDOM.EQ.IBLANK)GO TO 11                                        MOD02015
  779. 10    CONTINUE                                                          MOD02016
  780. 11    IF(IGET(NN1))CALL PRTERR(0)                                       MOD02017
  781.       IF(IGET(NN2))CALL PRTERR(0)                                       MOD02018
  782.       IF(IGET(INC12))CALL PRTERR(0)                                     MOD02019
  783.       ICO=0                                                             MOD02020
  784.       ITOTN=0                                                           MOD02021
  785.       IF(NN1.LE.0)NN1=1                                                 MOD02022
  786.       IF(INC12.LE.0)INC12=1                                             MOD02023
  787.       LL=LIMIT                                                          MOD02024
  788.       IF(NN2.LE.LL)GO TO 12                                             MOD02025
  789.       WRITE(IO,13)NN2                                                   MOD02026
  790. 13    FORMAT('  ++ F ++ THE LAST NODE TO BE DELETED =',I4,' IS          MOD02027
  791.      1GREATER THAN TOTAL NODES ')                                       MOD02028
  792.       STOP                                                              MOD02029
  793. 12    DO 20 I=NN1,NN2,INC12                                             MOD02030
  794.       NSTOR(I)=-1                                                       MOD02031
  795. 20    CONTINUE                                                          MOD02032
  796. 30    ISUB=0                                                            MOD02033
  797.       KI=1                                                              MOD02034
  798.       DO 40 I=1,LIMIT                                                   MOD02035
  799.       IF(NSTOR(I).NE.-1)GO TO 35                                        MOD02036
  800.       ISUB=ISUB+1                                                       MOD02037
  801.       NSTOR(I)=0                                                        MOD02038
  802.       GO TO 40                                                          MOD02039
  803. 35    NSTOR(KI)=NSTOR(I)-ISUB                                           MOD02040
  804.       IF(KI.NE.I)NSTOR(I)=0                                             MOD02041
  805.       X(KI)=X(I)                                                        MOD02042
  806.       Y(KI)=Y(I)                                                        MOD02043
  807.       Z(KI)=Z(I)                                                        MOD02044
  808.       KI=KI+1                                                           MOD02045
  809. 40    CONTINUE                                                          MOD02046
  810.       RETURN                                                            MOD02047
  811.       END                                                               MOD02048
  812.       SUBROUTINE SYMET1(LIMIT,NSTOR,X,Y,Z)                              MOD07012
  813.       INTEGER AGET,AGETW,RX,RY,RZ,PX,PY,PZ                              MOD07013
  814.       LOGICAL IGET,RGET                                                 MOD07014
  815.       DIMENSION NSTOR(LIMIT),X(LIMIT),Y(LIMIT),Z(LIMIT)                 MOD07015
  816.       DATA PX/1HX/,PY/1HY/,PZ/1HZ/                                      MOD07016
  817.       DO 10 I=3,5                                                       MOD07017
  818.       IDOM=AGET(I)                                                      MOD07018
  819.       IF(IDOM.EQ.IBLANK)GO TO 11                                        MOD07019
  820. 10    CONTINUE                                                          MOD07020
  821. 11    IF(IGET(N1))CALL PRTERR(0)                                        MOD07021
  822.       IF(IGET(N2))CALL PRTERR(0)                                        MOD07022
  823.       IF(IGET(INCR))CALL PRTERR(0)                                      MOD07023
  824.       IF(IGET(IADD))CALL PRTERR(0)                                      MOD07024
  825.       RX=AGETW(AG001)                                                   MOD07025
  826.       RY=AGETW(AG001)                                                   MOD07026
  827.       RZ=AGETW(AG001)                                                   MOD07027
  828.       IF(INCR.EQ.0)INCR=1                                               MOD07028
  829.       IF(N1.LE.0)N1=1                                                   MOD07029
  830.       IF(N2.NE.0)GO TO 30                                               MOD07030
  831.       DO 14 J=1,LIMIT                                                   MOD07031
  832.       IF(NSTOR(J).EQ.0)GO TO 14                                         MOD07032
  833.       IF(NSTOR(J).GT.N2)N2=NSTOR(J)                                     MOD07033
  834. 14    CONTINUE                                                          MOD07034
  835.       WRITE(IO,21)N1,N2                                                 MOD07035
  836. 21    FORMAT('  ++ W ++ TRANSLATION IS DONE FROM NODE = ',I5,' TO'      MOD07036
  837.      1,I5)                                                              MOD07037
  838. 30    CONTINUE                                                          MOD07038
  839.       DO 50 K=N1,N2,INCR                                                MOD07039
  840.       NOD=K+IADD                                                        MOD07040
  841.       IF(NOD.GT.LIMIT)CALL PRTERR(7)                                    MOD07041
  842.       NSTOR(NOD)=NOD                                                    MOD07042
  843.       X(NOD)=X(K)                                                       MOD07043
  844.       Y(NOD)=Y(K)                                                       MOD07044
  845.       Z(NOD)=Z(K)                                                       MOD07045
  846.       IF(RX.EQ.PX.OR.RY.EQ.PX.OR.RZ.EQ.PX)X(NOD)=-X(K)                  MOD07046
  847.       IF(RX.EQ.PY.OR.RY.EQ.PY.OR.RZ.EQ.PY)Y(NOD)=-Y(K)                  MOD07047
  848.       IF(RX.EQ.PZ.OR.RY.EQ.PZ.OR.RZ.EQ.PZ)Z(NOD)=-Z(K)                  MOD07048
  849. 50    CONTINUE                                                          MOD07049
  850.       RETURN                                                            MOD07050
  851.       END                                                               MOD07051
  852.       SUBROUTINE TRIAN1(LIMIT,NODE,X,Y,Z)                               MOD07133
  853.       LOGICAL IGET,RGET                                                 MOD07134
  854.       DIMENSION NODE(LIMIT),X(LIMIT),Y(LIMIT),Z(LIMIT)                  MOD07135
  855.      1,NCO(6),AN(6),XX(6),YY(6),ZZ(6)                                   MOD07136
  856.       IF(IGET(NDI))CALL PRTERR(0)                                       MOD07137
  857.       CALL GETNL(GET001)                                                MOD07138
  858.       DO 10 I=1,6                                                       MOD07139
  859.       IF(IGET(NCO(I)))CALL PRTERR(0)                                    MOD07140
  860. 10    CONTINUE                                                          MOD07141
  861.       IF(NDI.EQ.0)NDI=NCO(2)-NCO(1)                                     MOD07142
  862.       IF(NDI.EQ.0)GO TO 999                                             MOD07143
  863.       INC=(NCO(2)-NCO(1))/NDI                                           MOD07144
  864.       IF(INC.LE.0)GO TO 999                                             MOD07145
  865.       DO 20 I=1,6                                                       MOD07146
  866.       XX(I)=X(NCO(I))                                                   MOD07147
  867.       YY(I)=Y(NCO(I))                                                   MOD07148
  868.       ZZ(I)=Z(NCO(I))                                                   MOD07149
  869. 20    CONTINUE                                                          MOD07150
  870.       DO 30 I=4,6                                                       MOD07151
  871.       II=I-2                                                            MOD07152
  872.       IF(II.EQ.4)II=1                                                   MOD07153
  873.       IF(NCO(I).NE.0)GO TO 30                                           MOD07154
  874.       XX(I)=(XX(I-3)+XX(II))/2.0                                        MOD07155
  875.       YY(I)=(YY(I-3)+YY(II))/2.0                                        MOD07156
  876.       ZZ(I)=(ZZ(I-3)+ZZ(II))/2.0                                        MOD07157
  877. 30    CONTINUE                                                          MOD07158
  878.       M=NDI                                                             MOD07159
  879.       NOD=NCO(1)                                                        MOD07160
  880.       LLL=M+1                                                           MOD07161
  881.       DO 40 J=1,LLL                                                     MOD07162
  882.       KK=M+2-J                                                          MOD07163
  883.       DO 40 I=1,KK                                                      MOD07164
  884.       AL3=J-1                                                           MOD07165
  885.       AL2=I-1                                                           MOD07166
  886.       AL1=M-AL2-AL3                                                     MOD07167
  887.       AM=M                                                              MOD07168
  888.       AL1=AL1/AM                                                        MOD07169
  889.       AL2=AL2/AM                                                        MOD07170
  890.       AL3=AL3/AM                                                        MOD07171
  891.       AN(1)=(2.*AL1-1.)*AL1                                             MOD07172
  892.       AN(2)=(2.*AL2-1.)*AL2                                             MOD07173
  893.       AN(3)=(2.*AL3-1.)*AL3                                             MOD07174
  894.       AN(4)=4.*AL1*AL2                                                  MOD07175
  895.       AN(5)=4.*AL2*AL3                                                  MOD07176
  896.       AN(6)=4.*AL3*AL1                                                  MOD07177
  897.       AX=0.0                                                            MOD07178
  898.       AY=0.0                                                            MOD07179
  899.       AZ=0.0                                                            MOD07180
  900.       DO 35 K=1,6                                                       MOD07181
  901.       AX=AX + AN(K)*XX(K)                                               MOD07182
  902.       AY=AY+AN(K)*YY(K)                                                 MOD07183
  903.       AZ=AZ+AN(K)*ZZ(K)                                                 MOD07184
  904. 35    CONTINUE                                                          MOD07185
  905.       X(NOD)=AX                                                         MOD07186
  906.       Y(NOD)=AY                                                         MOD07187
  907.       Z(NOD)=AZ                                                         MOD07188
  908.       NODE(NOD)=NOD                                                     MOD07189
  909.       NOD=NOD+INC                                                       MOD07190
  910. 40    CONTINUE                                                          MOD07191
  911.       RETURN                                                            MOD07192
  912. 999   WRITE(IO,998)                                                     MOD07193
  913. 998   FORMAT('   ++ F ++ TRIANGULAT SURFACE GENERATION WILL BE          MOD07194
  914.      1TERMINATED BECAUSE : ',/                                          MOD07195
  915.      2,12X,'EITHER NUMBER OF DIVISIONS OR NODE INCREMENT ARE WRONG')    MOD07196
  916.       STOP                                                              MOD07197
  917.       END                                                               MOD07198
  918.