      SUBROUTINE NODE1(LIMIT,NSTOR,X,Y,Z)                               MOD04520
      LOGICAL IGET,RGET                                                 MOD04521
      INTEGER AGET,AGETW                                                MOD04522
      DIMENSION NSTOR(LIMIT),X(LIMIT),Y(LIMIT),Z(LIMIT)                 MOD04523
      DATA IBLANK/1H /                                                  MOD04524
      DO 11 I=3,4                                                       MOD04525
      IDOUM=AGET(I)                                                     MOD04526
      IF(IDOUM.EQ.IBLANK)GO TO 12                                       MOD04527
11    CONTINUE                                                          MOD04528
12    IF(IGET(N))CALL PRTERR(0)                                         MOD04529
      NSTOR(N)=N                                                        MOD04530
      IF(RGET(X(N)))CALL PRTERR(0)                                      MOD04531
      IF(RGET(Y(N)))CALL PRTERR(0)                                      MOD04532
      IF(RGET(Z(N)))CALL PRTERR(0)                                      MOD04533
      IF(IGET(KS))CALL PRTERR(0)                                        MOD04534
      IF(IGET(KT))CALL PRTERR(0)                                        MOD04535
      RETURN                                                            MOD04536
      END                                                               MOD04537
      SUBROUTINE READBN(NODE,ID)                                        MOD05440
      LOGICAL IGET,RGET                                                 MOD05441
      INTEGER AGET,AGETW,BL,BLANK                                       MOD05442
      DIMENSION ID(NODE,6)                                              MOD05443
      COMMON/UNIT/IN                                                    MOD05444
      INTEGER A(18),C(12)                                               MOD05445
      DATA BLANK/1H /                                                   MOD05446
      DATA A/1HD,1HX,1HD,1HY,1HD,1HZ                                    MOD05447
     1,1HR,1HX,1HR,1HY,1HR,1HZ                                          MOD05448
     2,1HN,1HD,1HN,1HR,1HN,1HM/                                         MOD05449
10    DO 2 L=1,12                                                       MOD05450
      C(L)=BLANK                                                        MOD05451
2     CONTINUE                                                          MOD05452
      DO 3 I=3,5                                                        MOD05453
      DOM=AGET(I)                                                       MOD05454
      IF(DOM.EQ.BLANK)GO TO 6                                           MOD05455
3     CONTINUE                                                          MOD05456
6     IF(IGET(I))CALL PRTERR(0)                                         MOD05457
      IF(IGET(J))CALL PRTERR(0)                                         MOD05458
      IF(IGET(K))CALL PRTERR(0)                                         MOD05459
      DO 8 IB=1,11,2                                                    MOD05460
      BL=AGETW(AGE001)                                                  MOD05461
      IF(BL.EQ.BLANK)GO TO 8                                            MOD05462
      C(IB)=BL                                                          MOD05463
      C(IB+1)=AGET(2)                                                   MOD05464
8     CONTINUE                                                          MOD05465
      IF(I.LE.0)RETURN                                                  MOD05466
      IF(J.LE.0)J=I                                                     MOD05467
      IF(K.LE.0)K=1                                                     MOD05468
      DO 200 N=I,J,K                                                    MOD05469
      DO 30 M=1,11,2                                                    MOD05470
      M0=1                                                              MOD05471
      DO 30 MM=1,11,2                                                   MOD05472
      IF(C(M).EQ.A(MM).AND.C(M+1).EQ.A(MM+1))ID(N,M0)=1                 MOD05473
      M0=M0+1                                                           MOD05474
30    CONTINUE                                                          MOD05475
      DO 40 M=1,11,2                                                    MOD05476
      IF(C(M).EQ.A(13).AND.C(M+1).EQ.A(14))GO TO 41                     MOD05477
      IF(C(M).EQ.A(15).AND.C(M+1).EQ.A(16))GO TO 43                     MOD05478
      IF(C(M).EQ.A(17).AND.C(M+1).EQ.A(18))GO TO 45                     MOD05479
      GO TO 40                                                          MOD05480
41    DO 42 KK=1,3                                                      MOD05481
      ID(N,KK)=1                                                        MOD05482
42    CONTINUE                                                          MOD05483
      GO TO 40                                                          MOD05484
43    DO 44 KK=4,6                                                      MOD05485
      ID(N,KK)=1                                                        MOD05486
44    CONTINUE                                                          MOD05487
      GO TO 40                                                          MOD05488
45    DO 46 KK=1,6                                                      MOD05489
      ID(N,KK)=1                                                        MOD05490
46    CONTINUE                                                          MOD05491
40    CONTINUE                                                          MOD05492
200   CONTINUE                                                          MOD05493
      RETURN                                                            MOD05494
      END                                                               MOD05495
      SUBROUTINE FILL1(LIMIT,NSTOR,X,Y,Z)                               MOD02563
      LOGICAL IGET,RGET                                                 MOD02564
      INTEGER AGET,AGETW                                                MOD02565
      DIMENSION NSTOR(LIMIT),X(LIMIT),Y(LIMIT),Z(LIMIT)                 MOD02566
      DATA IBLANK/1H /                                                  MOD02567
      IDOUM=AGET(4)                                                     MOD02568
      IF(IGET(NTIM))CALL PRTERR(0)                                      MOD02569
      IF(IGET(N1))CALL PRTERR(0)                                        MOD02570
      IF(IGET(N2))CALL PRTERR(0)                                        MOD02571
      IF(IGET(NFILL))CALL PRTERR(0)                                     MOD02572
      IF(IGET(NSTRT))CALL PRTERR(0)                                     MOD02573
      IF(IGET(INC))CALL PRTERR(0)                                       MOD02574
      IF(IGET(IADD))CALL PRTERR(0)                                      MOD02575
      IF(IGET(IADD2))CALL PRTERR(0)                                     MOD02576
      IF(NTIM.LE.0)NTIM=1                                               MOD02577
      IF(N1.LE.0)N1=1                                                   MOD02578
      IF(N2.NE.0)GO TO 12                                               MOD02579
      DO 14 I=1,LIMIT                                                   MOD02580
      IF(NSTOR(I).EQ.0)GO TO 14                                         MOD02581
      IF(NSTOR(I).GT.N2)N2=NSTOR(I)                                     MOD02582
14    CONTINUE                                                          MOD02583
12    IF(N2.GT.N1)GO TO 15                                              MOD02584
      LAB=N1                                                            MOD02585
      N1=N2                                                             MOD02586
      N2=LAB                                                            MOD02587
15    IF(NFILL.EQ.0)NFILL=N2-N1-1                                       MOD02588
      IF(INC.EQ.0)INC=(N2-N1)/(NFILL+1)                                 MOD02589
      IF(NSTRT.EQ.0)NSTRT=N1+INC                                        MOD02590
      IF(IADD.EQ.0)IADD=1                                               MOD02591
      DO 100 I=1,NTIM                                                   MOD02592
      SUM=NFILL+1                                                       MOD02593
      XS=(X(N2)-X(N1))/SUM                                              MOD02594
      YS=(Y(N2)-Y(N1))/SUM                                              MOD02595
      ZS=(Z(N2)-Z(N1))/SUM                                              MOD02596
      N=NSTRT                                                           MOD02597
      NSTOR(N)=N                                                        MOD02598
      X(N)=X(N1)+XS                                                     MOD02599
      Y(N)=Y(N1)+YS                                                     MOD02600
      Z(N)=Z(N1)+ZS                                                     MOD02601
      IF(NFILL.EQ.1)GO TO 90                                            MOD02602
      DO 50 J=2,NFILL                                                   MOD02603
      N=N+INC                                                           MOD02604
      NSTOR(N)=N                                                        MOD02605
      X(N)=X(N1)+XS*J                                                   MOD02606
      Y(N)=Y(N1)+YS*J                                                   MOD02607
      Z(N)=Z(N1)+ZS*J                                                   MOD02608
50    CONTINUE                                                          MOD02609
90    N1=N1+IADD                                                        MOD02610
      N2=N2+IADD                                                        MOD02611
      NSTRT=NSTRT+IADD+IADD2                                            MOD02612
100   CONTINUE                                                          MOD02613
      RETURN                                                            MOD02614
      END                                                               MOD02615
      SUBROUTINE ELEM1(LIMIT,NUMEL,MTYP,IPS,MATRI,THICK,BETA,ICON,IELD  MOD02053
     1,IELX,NTEMP,NODOLD,DENSIT,AREA,CDIS,CVEL)                         MOD02054
      LOGICAL IGET,RGET,EOL,EOS,EOF,ERROR                               MOD02055
      INTEGER AGET,AGETW,SECT                                           MOD02056
      COMMON/ELARRY/NELAR(4,20)                                         MOD02057
      COMMON/NONLIN/INON,ITHIS                                          MOD02058
      COMMON/UNIT/INNN,IOO                                              MOD02059
      COMMON/SAP6/ISAP6                                                 MOD02060
      COMMON/TOTAL/MAXELM,MAXNOD,MAXNDM                                 MOD02061
      COMMON/SIZE/IFRNDM                                                MOD02062
      COMMON/EGROUP/ITYPEL,NONTYP                                       MOD02063
      COMMON/FRECNT/LINE(80),SECT,EOL,EOS,EOF,ERROR                     MOD02064
      DIMENSION MTYP(NUMEL),IPS(NUMEL),THICK(NUMEL),BETA(NUMEL)         MOD02065
     1,ICON(NUMEL,20),MATRI(NUMEL),IELD(NUMEL),IELX(NUMEL)              MOD02066
     2,NTEMP(NUMEL),NODOLD(LIMIT),DENSIT(NUMEL),AREA(NUMEL)             MOD02067
     3,CDIS(NUMEL),CVEL(NUMEL)                                          MOD02068
      DATA BLANK/1H /,ISHELL/1HS/,IGENER/1HC/,IPLAT/1HP/                MOD02069
      DATA ITRUSS/1HT/,IBEAM/1HB/,I2D/1H2/,I3D/1H3/,IGAP/1HG/           MOD02070
      DATA LLL/1HL/,IPPP/1HP/,IELBO/1HE/,NONN/1HN/                      MOD02071
      IFRNDM=MAXNDM                                                     MOD02072
      DO    10 I=3,8                                                    MOD02073
      X=AGET(I)                                                         MOD02074
      IF(X.EQ.BLANK)GO TO    20                                         MOD02075
10    CONTINUE                                                          MOD02076
20    IF(IGET(N))CALL PRTERR(0)                                         MOD02077
      IF(N.GT.NUMEL)CALL PRTERR(9)                                      MOD02078
      IF(N.LE.0)CALL PRTERR(10)                                         MOD02079
      IF(ISAP6.EQ.1)GO TO   290                                         MOD02080
      IWHO=AGETW(AGE001)                                                MOD02081
      IWHO2=AGET(2)                                                     MOD02082
      IF(IWHO.EQ.IGENER)MTYP(N)=17                                      MOD02083
      IF(IWHO.EQ.IGENER)GO TO   140                                     MOD02084
      DO    30 I=3,5                                                    MOD02085
      X=AGET(I)                                                         MOD02086
      IF(X.EQ.BLANK)GO TO    40                                         MOD02087
30    CONTINUE                                                          MOD02088
40    IF(IWHO.EQ.ITRUSS)MTYP(N)=1                                       MOD02089
      IF(IWHO.EQ.IELBO)MTYP(N)=2                                        MOD02090
      IF(IWHO.EQ.IBEAM)MTYP(N)=2                                        MOD02091
      IF(IWHO.EQ.I2D)MTYP(N)=11                                         MOD02092
      IF(IWHO.EQ.I3D)MTYP(N)=10                                         MOD02093
      IF(IWHO.EQ.IGAP)MTYP(N)=1                                         MOD02094
      IF(IWHO.EQ.ISHELL)MTYP(N)=18                                      MOD02095
      IF(IWHO.EQ.IPLAT)MTYP(N)=16                                       MOD02096
      IF(IWHO.EQ.ITRUSS)ITYPEL=1                                        MOD02097
      IF(IWHO.EQ.IBEAM)ITYPEL=4                                         MOD02098
      IF(IWHO.EQ.I2D)ITYPEL=2                                           MOD02099
      IF(IWHO.EQ.I3D)ITYPEL=3                                           MOD02100
      IF(IWHO.EQ.IGAP)ITYPEL=5                                          MOD02101
      IF(IWHO.EQ.ISHELL)ITYPEL=6                                        MOD02102
      IF(IWHO.EQ.IPLAT)ITYPEL=6                                         MOD02103
      IF(IWHO.EQ.IELBO)ITYPEL=7                                         MOD02104
      IF(MTYP(N).NE.0)GO TO    60                                       MOD02105
      WRITE(IOO,   50)N                                                 MOD02106
50    FORMAT('  ++ F ++ ILLEGAL ELEMENT TYPE FOR ELEMENT NUMER = ',I4)  MOD02107
      STOP                                                              MOD02108
60    IF(MTYP(N).NE.1)GO TO   100                                       MOD02109
      IF(IGET(ICON(N,1)))CALL PRTERR(0)                                 MOD02110
      IF(IGET(ICON(N,2)))CALL PRTERR(0)                                 MOD02111
      IF(IGET(MATRI(N)))CALL PRTERR(0)                                  MOD02112
      IF(RGET(BETA(N)))CALL PRTERR(0)                                   MOD02113
      IF(IGET(IPS(N)))CALL PRTERR(0)                                    MOD02114
      IF(MATRI(N).LE.0)MATRI(N)=1                                       MOD02115
      IF(IWHO.EQ.IGAP)MTYP(N)=-1                                        MOD02116
      IF(IWHO.EQ.IGAP)GO TO    70                                       MOD02117
      IF(RGET(DENSIT(N)))CALL PRTERR(0)                                 MOD02118
      IF(RGET(AREA(N)))CALL PRTERR(0)                                   MOD02119
      IWNON=AGETW(GET001)                                               MOD02120
      IF(IWNON.EQ.NONN)NONTYP=1                                         MOD02121
      GO TO    80                                                       MOD02122
70    AREA(N)=-1.0                                                      MOD02123
      IF(IGET(IELD(N)))CALL PRTERR(0)                                   MOD02124
      IF(RGET(CDIS(N)))CALL PRTERR(0)                                   MOD02125
      IF(IGET(IELX(N)))CALL PRTERR(0)                                   MOD02126
      IF(RGET(THICK(N)))CALL PRTERR(0)                                  MOD02127
80    IF(ITHIS.EQ.0)GO TO    90                                         MOD02128
      NODOLD(ICON(N,1))=-ICON(N,1)                                      MOD02129
      NODOLD(ICON(N,2))=-ICON(N,2)                                      MOD02130
      ITHIS=0                                                           MOD02131
      RETURN                                                            MOD02132
90    NODOLD(ICON(N,1))=ICON(N,1)                                       MOD02133
      NODOLD(ICON(N,2))=ICON(N,2)                                       MOD02134
      ITHIS=0                                                           MOD02135
      RETURN                                                            MOD02136
100   IF(MTYP(N).NE.2)GO TO   130                                       MOD02137
      DO   110 J=1,3                                                    MOD02138
      IF(IGET(ICON(N,J)))CALL PRTERR(0)                                 MOD02139
110   CONTINUE                                                          MOD02140
      IF(IGET(MATRI(N)))CALL PRTERR(0)                                  MOD02141
      IF(IGET(IPS(N)))CALL PRTERR(0)                                    MOD02142
      IF(RGET(BETA(N)))CALL PRTERR(0)                                   MOD02143
      IF(RGET(THICK(N)))CALL PRTERR(0)                                  MOD02144
      IF(RGET(DENSIT(N)))CALL PRTERR(0)                                 MOD02145
      IF(RGET(AREA(N)))CALL PRTERR(0)                                   MOD02146
      IF(MATRI(N).LE.0)MATRI(N)=1                                       MOD02147
      DO   120 J=1,3                                                    MOD02148
      NODOLD(ICON(N,J))=ICON(N,J)                                       MOD02149
      IF(ITHIS.EQ.1)NODOLD(ICON(N,J))=-ICON(N,J)                        MOD02150
120   CONTINUE                                                          MOD02151
      ITHIS=0                                                           MOD02152
      RETURN                                                            MOD02153
130   IF(MTYP(N).NE.17)GO TO   160                                      MOD02154
140   IF(IGET(IPS(N)))CALL PRTERR(0)                                    MOD02155
      IF(RGET(BETA(N)))CALL PRTERR(0)                                   MOD02156
      IF(IGET(MATRI(N)))CALL PRTERR(0)                                  MOD02157
      IF(IGET(IELD(N)))CALL PRTERR(0)                                   MOD02158
      IF(IELD(N).LE.0.AND.IWHO2.EQ.LLL)IELD(N)=3                        MOD02159
      IF(IELD(N).LE.0.AND.IWHO2.EQ.ISHELL)IELD(N)=8                     MOD02160
      IF(IELD(N).LE.0.AND.IWHO2.EQ.IPPP)IELD(N)=2                       MOD02161
      IF(BETA(N).LE.0)BETA(N)=10.E+09                                   MOD02162
      CALL GETNL(GET001)                                                MOD02163
      DO   150 I=1,20                                                   MOD02164
      IF(IGET(ICON(N,I)))CALL PRTERR(0)                                 MOD02165
150   CONTINUE                                                          MOD02166
      GO TO   270                                                       MOD02167
160   IF(IGET(IPS(N)))CALL PRTERR(0)                                    MOD02168
      IF(MTYP(N).EQ.3.OR.MTYP(N).EQ.4)GO TO   200                       MOD02169
      IF(MTYP(N).EQ.8.OR.MTYP(N).EQ.11)GO TO   200                      MOD02170
      IF(MTYP(N).EQ.12.OR.MTYP(N).EQ.13)GO TO   200                     MOD02171
      IF(IGET(MATRI(N)))CALL PRTERR(0)                                  MOD02172
      IF(MTYP(N).EQ.18)GO TO 162                                        MOD02173
      IF(MTYP(N).EQ.16)GO TO 162                                        MOD02174
      IF(RGET(BETA(N)))CALL PRTERR(0)                                   MOD02175
162   IF(IGET(IELD(N)))CALL PRTERR(0)                                   MOD02176
      IF(MTYP(N).EQ.18)GO TO   190                                      MOD02177
      IF(IGET(IELX(N)))CALL PRTERR(0)                                   MOD02178
      IF(MTYP(N).EQ.16)GO TO   170                                      MOD02179
      IF(MTYP(N).NE.10)GO TO 163                                        MOD02180
      IF(RGET(THICK(N)))CALL PRTERR(0)                                  MOD02181
163   CONTINUE                                                          MOD02182
      IF(RGET(DENSIT(N)))CALL PRTERR(0)                                 MOD02183
170   MT12=MTYP(N)                                                      MOD02184
      IF(IELD(N).EQ.0)IELD(N)=NELAR(1,MT12)                             MOD02185
      IF(MTYP(N).EQ.16)GO TO   180                                      MOD02186
      IF(IELX(N).EQ.0)IELX(N)=NELAR(1,MT12)                             MOD02187
180   IF(MTYP(N).NE.16)GO TO   210                                      MOD02188
      IF(RGET(THICK(N)))CALL PRTERR(0)                                  MOD02189
      IF(IGET(NTEMP(N)))CALL PRTERR(0)                                  MOD02190
      IF(RGET(DENSIT(N)))CALL PRTERR(0)                                 MOD02191
      IF(RGET(AREA(N)))CALL PRTERR(0)                                   MOD02192
      MAXNDM=9                                                          MOD02193
      IFRNDM=MAXNDM                                                     MOD02194
      GO TO   210                                                       MOD02195
190   CONTINUE                                                          MOD02196
      BETA(N)=0                                                         MOD02197
      IF(RGET(THICK(N)))CALL PRTERR(0)                                  MOD02198
      IF(IGET(NTEMP(N)))CALL PRTERR(0)                                  MOD02199
      IF(RGET(DENSIT(N)))CALL PRTERR(0)                                 MOD02200
      IF(RGET(AREA(N)))CALL PRTERR(0)                                   MOD02201
      MAXNDM=16                                                         MOD02202
      IFRNDM=MAXNDM                                                     MOD02203
      GO TO   210                                                       MOD02204
200   IF(RGET(BETA(N)))CALL PRTERR(0)                                   MOD02205
      IF(RGET(THICK(N)))CALL PRTERR(0)                                  MOD02206
      IF(IGET(MATRI(N)))CALL PRTERR(0)                                  MOD02207
      IF(IGET(IELD(N)))CALL PRTERR(0)                                   MOD02208
      IF(RGET(DENSIT(N)))CALL PRTERR(0)                                 MOD02209
      AREA(N)=THICK(N)                                                  MOD02210
210   IF(MATRI(N).EQ.0)MATRI(N)=1                                       MOD02211
      CALL GETNL(GET001)                                                MOD02212
      IF(MTYP(N).NE.18)GO TO   230                                      MOD02213
      DO   220 I=1,16                                                   MOD02214
      IF(IGET(ICON(N,I)))CALL PRTERR(0)                                 MOD02215
220   CONTINUE                                                          MOD02216
      GO TO   270                                                       MOD02217
230   DO   240 I=1,9                                                    MOD02218
      IF(IGET(ICON(N,I)))CALL PRTERR(0)                                 MOD02219
240   CONTINUE                                                          MOD02220
      IF(MTYP(N).NE.10)GO TO   270                                      MOD02221
      IF(IELD(N).LE.8)GO TO   270                                       MOD02222
      IF(IELX(N).LE.8)GO TO   270                                       MOD02223
      CALL GETNL(GET001)                                                MOD02224
      IF(IGET(IDUM))GO TO   260                                         MOD02225
      ICON(N,9)=IDUM                                                    MOD02226
      DO   250 I=10,20                                                  MOD02227
      IF(IGET(ICON(N,I)))CALL PRTERR(0)                                 MOD02228
250   CONTINUE                                                          MOD02229
      MAXNDM=20                                                         MOD02230
      IFRNDM=MAXNDM                                                     MOD02231
      GO TO   270                                                       MOD02232
260   BACKSPACE INNN                                                    MOD02233
      ERROR=.FALSE.                                                     MOD02234
270   DO   280 I=1,20                                                   MOD02235
      KAB=ICON(N,I)                                                     MOD02236
      IF(KAB.EQ.0)GO TO   280                                           MOD02237
      NODOLD(KAB)=KAB                                                   MOD02238
      IF(ITHIS.EQ.1)NODOLD(KAB)=-KAB                                    MOD02239
280   CONTINUE                                                          MOD02240
      RETURN                                                            MOD02241
290   IF(IGET(MTYP(N)))CALL PRTERR(0)                                   MOD02242
      IF(IGET(N1))CALL PRTERR(0)                                        MOD02243
      IF(IGET(N2))CALL PRTERR(0)                                        MOD02244
      IF(IGET(N3))CALL PRTERR(0)                                        MOD02245
      IF(IGET(N4))CALL PRTERR(0)                                        MOD02246
      IF(IGET(NDMX))CALL PRTERR(0)                                      MOD02247
      IF(RGET(DENSIT(N)))CALL PRTERR(0)                                 MOD02248
      IF(RGET(AREA(N)))CALL PRTERR(0)                                   MOD02249
      MATRI(N)=N1                                                       MOD02250
      THICK(N)=N2                                                       MOD02251
      BETA(N)=N3                                                        MOD02252
      IPS(N)=N4                                                         MOD02253
      IELD(N)=NDMX                                                      MOD02254
      IF(NDMX.GT.MAXNDM)MAXNDM=NDMX                                     MOD02255
      IFRNDM=MAXNDM                                                     MOD02256
      IF(MTYP(N).EQ.7)RETURN                                            MOD02257
      CALL GETNL(GET001)                                                MOD02258
      DO   300 I=1,8                                                    MOD02259
      IF(IGET(ICON(N,I)))CALL PRTERR(0)                                 MOD02260
300   CONTINUE                                                          MOD02261
      IF(MTYP(N).EQ.10.OR.MTYP(N).EQ.16)GO TO   310                     MOD02262
      RETURN                                                            MOD02263
310   IF(NDMX.LE.8)RETURN                                               MOD02264
      CALL GETNL(GET001)                                                MOD02265
      DO   320 I=9,20                                                   MOD02266
      IF(IGET(ICON(N,I)))CALL PRTERR(0)                                 MOD02267
320   CONTINUE                                                          MOD02268
      RETURN                                                            MOD02269
      END                                                               MOD02270
      SUBROUTINE REPEA1(LIMIT,NUMEL,MTYP,IPS,MATRI,THICK,BETA,ICON,IELD MOD05961
     1,IELX,NTEMP,NODOLD,DENSIT,AREA,CDIS,CVEL)                         MOD05962
      INTEGER AGET,AGETW                                                MOD05963
      LOGICAL IGET,RGET                                                 MOD05964
      COMMON/SAP6/ISAP6                                                 MOD05965
      COMMON/BEAM3/IGEN3                                                MOD05966
      DIMENSION MTYP(NUMEL),IPS(NUMEL),MATRI(NUMEL),THICK(NUMEL)        MOD05967
     1,BETA(NUMEL),ICON(NUMEL,20),IELD(NUMEL),IELX(NUMEL),NTEMP(NUMEL)  MOD05968
     2,NODOLD(LIMIT),DENSIT(NUMEL),AREA(NUMEL),CDIS(NUMEL)              MOD05969
     3,CVEL(NUMEL)                                                      MOD05970
      DO 10 I=3,6                                                       MOD05971
      IX=AGET(I)                                                        MOD05972
10    CONTINUE                                                          MOD05973
      IF(IGET(NTIM))CALL PRTERR(0)                                      MOD05974
      IF(IGET(IELM1))CALL PRTERR(0)                                     MOD05975
      IF(IGET(IELM2))CALL PRTERR(0)                                     MOD05976
      IF(IGET(INCR))CALL PRTERR(0)                                      MOD05977
      IF(IGET(IADD))CALL PRTERR(0)                                      MOD05978
      IF(ISAP6.NE.1)GO TO 12                                            MOD05979
      IF(IGET(IN1))CALL PRTERR(0)                                       MOD05980
      IF(IGET(IN2))CALL PRTERR(0)                                       MOD05981
      IF(IGET(IN3))CALL PRTERR(0)                                       MOD05982
      IF(IGET(IN4))CALL PRTERR(0)                                       MOD05983
      GO TO 14                                                          MOD05984
12    IF(RGET(TINC))CALL PRTERR(0)                                      MOD05985
      IF(RGET(BINC))CALL PRTERR(0)                                      MOD05986
      IF(IGET(MINC))CALL PRTERR(0)                                      MOD05987
      IF(IGET(LINC))CALL PRTERR(0)                                      MOD05988
      IF(IGET(INTEMP))CALL PRTERR(0)                                    MOD05989
14    IF(NTIM.EQ.0)NTIM=1                                               MOD05990
      IF(IADD.EQ.0)IADD=1                                               MOD05991
      IF(IELM1.LE.0)IELM1=1                                             MOD05992
      IF(INCR.EQ.0)INCR=1                                               MOD05993
      IF(IELM2.LE.0)IELM2=IELM1                                         MOD05994
      IF(IELM2.GE.IELM1)GO TO 15                                        MOD05995
      IDOM=IELM1                                                        MOD05996
      IELM1=IELM2                                                       MOD05997
      IELM2=IDOM                                                        MOD05998
15    CONTINUE                                                          MOD05999
      J=IELM1                                                           MOD06000
      I=1                                                               MOD06001
16    CONTINUE                                                          MOD06002
      IELMX=0                                                           MOD06003
      DO 17 L=1,NUMEL                                                   MOD06004
      IF(MTYP(L).LE.0)GO TO 21                                          MOD06005
      IELMX=L                                                           MOD06006
17    CONTINUE                                                          MOD06007
21    CONTINUE                                                          MOD06008
      IELM1=J                                                           MOD06009
      INTM=I                                                            MOD06010
      DO 30 I=INTM,NTIM                                                 MOD06011
      M=0                                                               MOD06012
      DO 20 J=IELM1,IELM2,INCR                                          MOD06013
      M=M+1                                                             MOD06014
      N=M+IELMX                                                         MOD06015
      IF(N.GT.NUMEL)CALL PRTERR(9)                                      MOD06016
      IF(MTYP(N).GT.0) GO TO 16                                         MOD06017
      MTYP(N)=MTYP(J)                                                   MOD06018
      IF(ISAP6.NE.1)GO TO 32                                            MOD06019
      MATRI(N)=MATRI(J)+IN1                                             MOD06020
      THICK(N)=THICK(J)+IN2                                             MOD06021
      BETA(N)=BETA(J)+IN3                                               MOD06022
      IPS(N)=IPS(J)+IN4                                                 MOD06023
      GO TO 33                                                          MOD06024
32    IPS(N)=IPS(J)                                                     MOD06025
      IF(MTYP(N).EQ.16)GO TO 35                                         MOD06026
      BETA(N)=BETA(J)+BINC                                              MOD06027
      THICK(N)=THICK(J)+TINC                                            MOD06028
      MATRI(N)=MATRI(J)+MINC                                            MOD06029
      NTEMP(N)=NTEMP(J)+INTEMP                                          MOD06030
      GO TO 33                                                          MOD06031
35    THICK(N)=THICK(J)+LINC                                            MOD06032
      MATRI(N)=MATRI(J)+MINC                                            MOD06033
      AREA(N)=AREA(J)+TINC                                              MOD06034
      NTEMP(N)=NTEMP(J)                                                 MOD06035
33    IELD(N)=IELD(J)                                                   MOD06036
      IELX(N)=IELX(J)                                                   MOD06037
      DENSIT(N)=DENSIT(J)                                               MOD06038
      IF(MTYP(N).NE.16)AREA(N)=AREA(J)                                  MOD06039
      CDIS(N)=CDIS(J)                                                   MOD06040
      CVEL(N)=CVEL(J)                                                   MOD06041
      IF(MTYP(N).NE.2)GO TO 28                                          MOD06042
      IF(IGEN3.EQ.1)GO TO 28                                            MOD06043
      DO 27 K=1,2                                                       MOD06044
      IF(ICON(J,K).LE.0)GO TO 27                                        MOD06045
      ICON(N,K)=ICON(J,K)+IADD                                          MOD06046
27    CONTINUE                                                          MOD06047
      IF(IGEN3.EQ.0)ICON(N,3)=ICON(J,3)                                 MOD06048
      IF(IGEN3.EQ.2)ICON(N,3)=ICON(J,3)-IADD                            MOD06049
      GO TO 19                                                          MOD06050
28    DO 18 K=1,20                                                      MOD06051
      IF(ICON(J,K).EQ.0)GO TO 18                                        MOD06052
      ICON(N,K)=ICON(J,K)+IADD                                          MOD06053
      KAB0=ICON(J,K)                                                    MOD06054
      KAB1=ICON(N,K)                                                    MOD06055
      NODOLD(KAB1)=KAB1                                                 MOD06056
      IF(NODOLD(KAB0).LT.0)NODOLD(KAB1)=-KAB1                           MOD06057
18    CONTINUE                                                          MOD06058
19    CONTINUE                                                          MOD06059
20    CONTINUE                                                          MOD06060
      IELM1=IELMX+1                                                     MOD06061
      IELM2=IELM1+M-1                                                   MOD06062
      IELMX=N                                                           MOD06063
      INCR=1                                                            MOD06064
30    CONTINUE                                                          MOD06065
      RETURN                                                            MOD06066
      END                                                               MOD06067
      SUBROUTINE ROTAT1(LIMIT,NSTOR,X,Y,Z)                              MOD06104
      LOGICAL IGET,RGET                                                 MOD06105
      INTEGER AGET,AGETW                                                MOD06106
      DIMENSION NSTOR(LIMIT),X(LIMIT),Y(LIMIT),Z(LIMIT),IX(4)           MOD06107
      COMMON/UNIT/IN,IO                                                 MOD06108
      DATA IX/1HX,1HY,1HZ,1HA/                                          MOD06109
      DATA IBLANK/1H /                                                  MOD06110
      DO 10 I=3,7                                                       MOD06111
      IDOM=AGET(I)                                                      MOD06112
      IF(IDOM.EQ.IBLANK)GO TO 11                                        MOD06113
10    CONTINUE                                                          MOD06114
11    IF(IGET(NTIM))CALL PRTERR(0)                                      MOD06115
      IF(IGET(N1))CALL PRTERR(0)                                        MOD06116
      IF(IGET(N2))CALL PRTERR(0)                                        MOD06117
      IF(IGET(INC))CALL PRTERR(0)                                       MOD06118
      IF(IGET(IADD))CALL PRTERR(0)                                      MOD06119
      IF(RGET(DEGR))CALL PRTERR(0)                                      MOD06120
      IAX=AGETW(AG001)                                                  MOD06121
      IF(IAX.NE.IX(4))GO TO 230                                         MOD06122
      CALL GETNL(GET001)                                                MOD06123
      IF(RGET(X1))CALL PRTERR(0)                                        MOD06124
      IF(RGET(Y1))CALL PRTERR(0)                                        MOD06125
      IF(RGET(Z1))CALL PRTERR(0)                                        MOD06126
      IF(RGET(X2))CALL PRTERR(0)                                        MOD06127
      IF(RGET(Y2))CALL PRTERR(0)                                        MOD06128
      IF(RGET(Z2))CALL PRTERR(0)                                        MOD06129
      AA=ABS(Z2-Z1)                                                     MOD06130
      BB=ABS(X2-X1)                                                     MOD06131
      CC=ABS(Y2-Y1)                                                     MOD06132
      RR=SQRT(AA**2+BB**2+CC**2)                                        MOD06133
      R=SQRT(BB**2+CC**2)                                               MOD06134
      IF(R.EQ.0.0)GO TO 200                                             MOD06135
      ALFA=ARCOS(BB/R)                                                  MOD06136
      GO TO 210                                                         MOD06137
200   ALFA=0.0                                                          MOD06138
210   IF(RR.EQ.0.0)GO TO 220                                            MOD06139
      BET=ARSIN(AA/RR)                                                  MOD06140
      GO TO 230                                                         MOD06141
220   BET=0.0                                                           MOD06142
230   CONTINUE                                                          MOD06143
      PI=4.0*ATAN(1.0)                                                  MOD06144
      IF(NTIM.LE.0)NTIM=1                                               MOD06145
      IF(INC.EQ.0)INC=1                                                 MOD06146
      IF(DEGR.NE.0.0)GO TO 15                                           MOD06147
      DEGR=360.0/(NTIM+1)                                               MOD06148
15    DEGR=DEGR*PI/180.0                                                MOD06149
      DO 20 I=1,4                                                       MOD06150
      IF(IX(I).EQ.IAX)GO TO 30                                          MOD06151
20    CONTINUE                                                          MOD06152
      WRITE(IO,24)IAX                                                   MOD06153
24    FORMAT('  ++ F ++ AXES FOR ROTATION = ',A4,' IS ILLEGAL           MOD06154
     1CHECK ROTATION PARAMETERS ')                                      MOD06155
      STOP                                                              MOD06156
30    IF(N1.LE.0)N1=1                                                   MOD06157
      IF(N2.NE.0)GO TO 55                                               MOD06158
      N2=1                                                              MOD06159
      DO 40 J=1,LIMIT                                                   MOD06160
      IF(NSTOR(J).LE.0)GO TO 40                                         MOD06161
      IF(NSTOR(J).GT.N2)N2=NSTOR(J)                                     MOD06162
40    CONTINUE                                                          MOD06163
      WRITE(IO,56)N1,N2                                                 MOD06164
56    FORMAT('  ++ W ++ NODE GENERATION IS DONE FROM ',I5,' TO ',I5     MOD06165
     1,' FOR ROTATION ')                                                MOD06166
55    IADDRE=IADD                                                       MOD06167
      DEGR1=DEGR                                                        MOD06168
      DO 100 M=1,NTIM                                                   MOD06169
      DO 60 K=N1,N2,INC                                                 MOD06170
      NOD=K+IADDRE                                                      MOD06171
      IF(NOD.GT.LIMIT)CALL PRTERR(7)                                    MOD06172
      NSTOR(NOD)=NOD                                                    MOD06173
      GO TO (61,62,63,64),I                                             MOD06174
61    ZT=Z(K)*COS(DEGR1)-Y(K)*SIN(DEGR1)                                MOD06175
      Y(NOD)=Y(K)*COS(DEGR1)+Z(K)*SIN(DEGR1)                            MOD06176
      Z(NOD)=ZT                                                         MOD06177
      X(NOD)=X(K)                                                       MOD06178
      GO TO 60                                                          MOD06179
62    XT=X(K)*COS(DEGR1)-Z(K)*SIN(DEGR1)                                MOD06180
      Z(NOD)=Z(K)*COS(DEGR1)+X(K)*SIN(DEGR1)                            MOD06181
      X(NOD)=XT                                                         MOD06182
      Y(NOD)=Y(K)                                                       MOD06183
      GO TO 60                                                          MOD06184
63    XT=X(K)*COS(DEGR1)+Y(K)*SIN(DEGR1)                                MOD06185
      Y(NOD)=Y(K)*COS(DEGR1)-X(K)*SIN(DEGR1)                            MOD06186
      X(NOD)=XT                                                         MOD06187
      Z(NOD)=Z(K)                                                       MOD06188
      GO TO 60                                                          MOD06189
64    XNE=X(K)-X1                                                       MOD06190
      YNE=Y(K)-Y1                                                       MOD06191
      ZNE=Z(K)-Z1                                                       MOD06192
      IF(ALFA.EQ.0.0)GO TO 300                                          MOD06193
      XT=XNE*COS(ALFA)+YNE*SIN(ALFA)                                    MOD06194
      YNE=YNE*COS(ALFA)-XNE*SIN(ALFA)                                   MOD06195
      XNE=XT                                                            MOD06196
300   IF(BET.EQ.0.0)GO TO 310                                           MOD06197
      XT=XNE*COS(-BET)-ZNE*SIN(-BET)                                    MOD06198
      ZNE=ZNE*COS(-BET)+XNE*SIN(-BET)                                   MOD06199
      XNE=XT                                                            MOD06200
310   ZT=ZNE*COS(DEGR1)-YNE*SIN(DEGR1)                                  MOD06201
      YNE=YNE*COS(DEGR1)+ZNE*SIN(DEGR1)                                 MOD06202
      ZNE=ZT                                                            MOD06203
      IF(BET.EQ.0.0)GO TO 340                                           MOD06204
      XT=XNE*COS(BET)-ZNE*SIN(BET)                                      MOD06205
      ZNE=ZNE*COS(BET)+XNE*SIN(BET)                                     MOD06206
      XNE=XT                                                            MOD06207
340   IF(ALFA.EQ.0.0)GO TO 350                                          MOD06208
      XT=XNE*COS(-ALFA)+YNE*SIN(-ALFA)                                  MOD06209
      YNE=YNE*COS(-ALFA)-XNE*SIN(-ALFA)                                 MOD06210
      XNE=XT                                                            MOD06211
350   X(NOD)=XNE+X1                                                     MOD06212
      Y(NOD)=YNE+Y1                                                     MOD06213
      Z(NOD)=ZNE+Z1                                                     MOD06214
60    CONTINUE                                                          MOD06215
      IADDRE=IADDRE+IADD                                                MOD06216
      DEGR1=DEGR1+DEGR                                                  MOD06217
100   CONTINUE                                                          MOD06218
      RETURN                                                            MOD06219
      END                                                               MOD06220
      SUBROUTINE TRANS1(LIMIT,NSTOR,X,Y,Z)                              MOD07052
      INTEGER AGET,AGETW                                                MOD07053
      LOGICAL IGET,RGET                                                 MOD07054
      DIMENSION NSTOR(LIMIT),X(LIMIT),Y(LIMIT),Z(LIMIT)                 MOD07055
      DO 10 I=3,9                                                       MOD07056
      IDOM=AGET(I)                                                      MOD07057
      IF(IDOM.EQ.IBLANK)GO TO 11                                        MOD07058
10    CONTINUE                                                          MOD07059
11    IF(IGET(NTIM))CALL PRTERR(0)                                      MOD07060
      IF(IGET(N1))CALL PRTERR(0)                                        MOD07061
      IF(IGET(N2))CALL PRTERR(0)                                        MOD07062
      IF(IGET(INCR))CALL PRTERR(0)                                      MOD07063
      IF(IGET(IADD))CALL PRTERR(0)                                      MOD07064
      IF(RGET(DX))CALL PRTERR(0)                                        MOD07065
      IF(RGET(DY))CALL PRTERR(0)                                        MOD07066
      IF(RGET(DZ))CALL PRTERR(0)                                        MOD07067
      IF(NTIM.EQ.0)NTIM=1                                               MOD07068
      IF(INCR.EQ.0)INCR=1                                               MOD07069
      IF(N1.LE.0)N1=1                                                   MOD07070
      IF(N2.NE.0)GO TO 30                                               MOD07071
      DO 14 J=1,LIMIT                                                   MOD07072
      IF(NSTOR(J).EQ.0)GO TO 14                                         MOD07073
      IF(NSTOR(J).GT.N2)N2=NSTOR(J)                                     MOD07074
14    CONTINUE                                                          MOD07075
      WRITE(IO,21)N1,N2                                                 MOD07076
21    FORMAT('  ++ W ++ TRANSLATION IS DONE FROM NODE = ',I5,' TO'      MOD07077
     1,I5)                                                              MOD07078
30    CONTINUE                                                          MOD07079
      TX=DX                                                             MOD07080
      TY=DY                                                             MOD07081
      TZ=DZ                                                             MOD07082
      IADDRE=IADD                                                       MOD07083
      DO 100 M=1,NTIM                                                   MOD07084
      DO 50 K=N1,N2,INCR                                                MOD07085
      NOD=K+IADDRE                                                      MOD07086
      IF(NOD.GT.LIMIT)CALL PRTERR(7)                                    MOD07087
      NSTOR(NOD)=NOD                                                    MOD07088
      X(NOD)=X(K)+TX                                                    MOD07089
      Y(NOD)=Y(K)+TY                                                    MOD07090
      Z(NOD)=Z(K)+TZ                                                    MOD07091
50    CONTINUE                                                          MOD07092
      IADDRE=IADDRE+IADD                                                MOD07093
      TX=TX+DX                                                          MOD07094
      TY=TY+DY                                                          MOD07095
      TZ=TZ+DZ                                                          MOD07096
100   CONTINUE                                                          MOD07097
      RETURN                                                            MOD07098
      END                                                               MOD07099
      SUBROUTINE MERGE1(LIMIT,NUMEL,NSTOR,X,Y,Z,IBON,ICON,IOLD,NEW      MOD04175
     1,NODOLD)                                                          MOD04176
      LOGICAL IGET,RGET                                                 MOD04177
      INTEGER AGET,AGETW                                                MOD04178
      COMMON/SAP6/ISAP6                                                 MOD04179
      DIMENSION NSTOR(LIMIT),X(LIMIT),Y(LIMIT),Z(LIMIT),IBON(LIMIT,6)   MOD04180
     1,ICON(NUMEL,20),IOLD(LIMIT),NEW(LIMIT),NODOLD(LIMIT)              MOD04181
      COMMON/UNIT/IN,IO                                                 MOD04182
      DATA IBLANK/1H /                                                  MOD04183
      DO 10 I=3,5                                                       MOD04184
      IDOM=AGET(I)                                                      MOD04185
      IF(IDOM.EQ.IBLANK)GO TO 11                                        MOD04186
10    CONTINUE                                                          MOD04187
11    IF(RGET(ZONE))CALL PRTERR(0)                                      MOD04188
      IF(IGET(IECHO))CALL PRTERR(0)                                     MOD04189
      IF(ZONE.EQ.0.0)ZONE=0.0001                                        MOD04190
      ICO=0                                                             MOD04191
      ITOTN=0                                                           MOD04192
      LL=LIMIT-1                                                        MOD04193
      IF(LL.LE.0)RETURN                                                 MOD04194
      DO 21 I=1,LL                                                      MOD04195
      IF(NSTOR(I).EQ.0.OR.NSTOR(I).EQ.-1)GO TO 20                       MOD04196
      J=I+1                                                             MOD04197
      DO 19 K=J,LIMIT                                                   MOD04198
      IF(NSTOR(K).EQ.0.OR.NSTOR(K).EQ.-1)GO TO 18                       MOD04199
      A=ABS(X(I)-X(K))                                                  MOD04200
      B=ABS(Y(I)-Y(K))                                                  MOD04201
      C=ABS(Z(I)-Z(K))                                                  MOD04202
      IF(A.LE.ZONE.AND.B.LE.ZONE.AND.C.LE.ZONE)GO TO 22                 MOD04203
      GO TO 18                                                          MOD04204
22    ICO=ICO+1                                                         MOD04205
      ITOTN=ITOTN+1                                                     MOD04206
      IF(NODOLD(K).LT.0)NODOLD(I)=-IABS(NODOLD(I))                      MOD04207
      NEW(ICO)=NSTOR(I)                                                 MOD04208
      IOLD(ICO)=NSTOR(K)                                                MOD04209
      M1=NSTOR(I)                                                       MOD04210
      M2=NSTOR(K)                                                       MOD04211
      DO 28 MM=1,6                                                      MOD04212
      IF(IBON(M1,MM).EQ.1)GO TO 27                                      MOD04213
      IBON(M1,MM)=IBON(M1,MM)+IBON(M2,MM)                               MOD04214
27    CONTINUE                                                          MOD04215
28    CONTINUE                                                          MOD04216
      NSTOR(K)=-1                                                       MOD04217
18    CONTINUE                                                          MOD04218
19    CONTINUE                                                          MOD04219
20    CONTINUE                                                          MOD04220
21    CONTINUE                                                          MOD04221
      IF(ICO.NE.0)GO TO 30                                              MOD04222
      WRITE(IO,23)ZONE                                                  MOD04223
23    FORMAT('  ++ W ++ THERE WERE NO COINCIDENT NODES WITH ZONE = '    MOD04224
     1,F15.7)                                                           MOD04225
      RETURN                                                            MOD04226
30    ISUB=0                                                            MOD04227
      KI=1                                                              MOD04228
      DO 40 I=1,LIMIT                                                   MOD04229
      IF(NSTOR(I).NE.-1)GO TO 35                                        MOD04230
      ISUB=ISUB+1                                                       MOD04231
      NODOLD(I)=0                                                       MOD04232
      NSTOR(I)=0                                                        MOD04233
      GO TO 40                                                          MOD04234
35    IF(ISUB.EQ.0)GO TO 36                                             MOD04235
      ICO=ICO+1                                                         MOD04236
      IOLD(ICO)=NSTOR(I)                                                MOD04237
      NEW(ICO)=NSTOR(I)-ISUB                                            MOD04238
36    NSTOR(KI)=NSTOR(I)-ISUB                                           MOD04239
      IF(KI.NE.I)NSTOR(I)=0                                             MOD04240
      MP=1                                                              MOD04241
      IF(NODOLD(I).LT.0)MP=-1                                           MOD04242
      NODOLD(KI)=(IABS(NODOLD(I))-ISUB)*MP                              MOD04243
      IF(KI.NE.I)NODOLD(I)=0                                            MOD04244
      X(KI)=X(I)                                                        MOD04245
      Y(KI)=Y(I)                                                        MOD04246
      Z(KI)=Z(I)                                                        MOD04247
      DO 37 MM=1,6                                                      MOD04248
      IBON(KI,MM)=IBON(I,MM)                                            MOD04249
37    CONTINUE                                                          MOD04250
      KI=KI+1                                                           MOD04251
40    CONTINUE                                                          MOD04252
      IF(IECHO.EQ.1)WRITE(IO,299)                                       MOD04253
      DO 300 I=1,ICO                                                    MOD04254
      IF(IOLD(I).EQ.0)GO TO 300                                         MOD04255
299   FORMAT(10X,'OLD NODE',3X,'NEW NODE')                              MOD04256
      WRITE(61,310)IOLD(I),NEW(I)                                       MOD04257
      IF(IECHO.EQ.1)WRITE(IO,311)IOLD(I),NEW(I)                         MOD04258
300   CONTINUE                                                          MOD04259
310   FORMAT(2I5)                                                       MOD04260
311   FORMAT(10X,I5,8X,I5)                                              MOD04261
      DO 100 I=1,NUMEL                                                  MOD04262
      DO 60 J=1,20                                                      MOD04263
      IF(ICON(I,J).EQ.0)GO TO 60                                        MOD04264
      DO 70 K=1,ICO                                                     MOD04265
      IF(ICON(I,J).NE.IOLD(K))GO TO 70                                  MOD04266
      ICON(I,J)=NEW(K)                                                  MOD04267
70    CONTINUE                                                          MOD04268
60    CONTINUE                                                          MOD04269
100   CONTINUE                                                          MOD04270
      WRITE(IO,101)ITOTN                                                MOD04271
101   FORMAT('  ++ W ++ ',I5,'  COINCIDENT NODES DELETED ')             MOD04272
      RETURN                                                            MOD04273
      END                                                               MOD04274
      SUBROUTINE SCALE1(LIMIT,NSTOR,X,Y,Z)                              MOD06252
      INTEGER AGET,AGETW                                                MOD06253
      LOGICAL IGET,RGET                                                 MOD06254
      DIMENSION NSTOR(LIMIT),X(LIMIT),Y(LIMIT),Z(LIMIT)                 MOD06255
      DO 10 I=3,5                                                       MOD06256
      IDOM=AGET(I)                                                      MOD06257
      IF(IDOM.EQ.IBLANK)GO TO 11                                        MOD06258
10    CONTINUE                                                          MOD06259
11    IF(IGET(NTIM))CALL PRTERR(0)                                      MOD06260
      IF(IGET(N1))CALL PRTERR(0)                                        MOD06261
      IF(IGET(N2))CALL PRTERR(0)                                        MOD06262
      IF(IGET(INCR))CALL PRTERR(0)                                      MOD06263
      IF(IGET(IADD))CALL PRTERR(0)                                      MOD06264
      IF(RGET(DX))CALL PRTERR(0)                                        MOD06265
      IF(RGET(DY))CALL PRTERR(0)                                        MOD06266
      IF(RGET(DZ))CALL PRTERR(0)                                        MOD06267
      IF(NTIM.EQ.0)NTIM=1                                               MOD06268
      IF(INCR.EQ.0)INCR=1                                               MOD06269
      IF(N1.LE.0)N1=1                                                   MOD06270
      IF(N2.NE.0)GO TO 30                                               MOD06271
      DO 14 J=1,LIMIT                                                   MOD06272
      IF(NSTOR(J).EQ.0)GO TO 14                                         MOD06273
      IF(NSTOR(J).GT.N2)N2=NSTOR(J)                                     MOD06274
14    CONTINUE                                                          MOD06275
      WRITE(IO,21)N1,N2                                                 MOD06276
21    FORMAT('  ++ W ++ SCALING IS DONE FROM NODE = ',I5,' TO'          MOD06277
     1,I5)                                                              MOD06278
30    CONTINUE                                                          MOD06279
      IF(DX.EQ.0)DX=1                                                   MOD06280
      IF(DY.EQ.0)DY=1                                                   MOD06281
      IF(DZ.EQ.0)DZ=1                                                   MOD06282
      TX=DX                                                             MOD06283
      TY=DY                                                             MOD06284
      TZ=DZ                                                             MOD06285
      IADDRE=IADD                                                       MOD06286
      DO 100 M=1,NTIM                                                   MOD06287
      DO 50 K=N1,N2,INCR                                                MOD06288
      NOD=K+IADDRE                                                      MOD06289
      IF(NOD.GT.LIMIT)CALL PRTERR(7)                                    MOD06290
      NSTOR(NOD)=NOD                                                    MOD06291
      X(NOD)=X(K)*TX                                                    MOD06292
      Y(NOD)=Y(K)*TY                                                    MOD06293
      Z(NOD)=Z(K)*TZ                                                    MOD06294
50    CONTINUE                                                          MOD06295
      IADDRE=IADDRE+IADD                                                MOD06296
      TX=TX*DX                                                          MOD06297
      TY=TY*DY                                                          MOD06298
      TZ=TZ*DZ                                                          MOD06299
100   CONTINUE                                                          MOD06300
      RETURN                                                            MOD06301
      END                                                               MOD06302
      SUBROUTINE DNODE1(LIMIT,NUMEL,NSTOR,X,Y,Z,IBON,ICON)              MOD02006
      LOGICAL IGET,RGET                                                 MOD02007
      INTEGER AGET,AGETW                                                MOD02008
      DIMENSION NSTOR(LIMIT),X(LIMIT),Y(LIMIT),Z(LIMIT),IBON(LIMIT,6)   MOD02009
     1,ICON(NUMEL,20)                                                   MOD02010
      COMMON/UNIT/IN,IO                                                 MOD02011
      DATA IBLANK/1H /                                                  MOD02012
      DO 10 I=3,5                                                       MOD02013
      IDOM=AGET(I)                                                      MOD02014
      IF(IDOM.EQ.IBLANK)GO TO 11                                        MOD02015
10    CONTINUE                                                          MOD02016
11    IF(IGET(NN1))CALL PRTERR(0)                                       MOD02017
      IF(IGET(NN2))CALL PRTERR(0)                                       MOD02018
      IF(IGET(INC12))CALL PRTERR(0)                                     MOD02019
      ICO=0                                                             MOD02020
      ITOTN=0                                                           MOD02021
      IF(NN1.LE.0)NN1=1                                                 MOD02022
      IF(INC12.LE.0)INC12=1                                             MOD02023
      LL=LIMIT                                                          MOD02024
      IF(NN2.LE.LL)GO TO 12                                             MOD02025
      WRITE(IO,13)NN2                                                   MOD02026
13    FORMAT('  ++ F ++ THE LAST NODE TO BE DELETED =',I4,' IS          MOD02027
     1GREATER THAN TOTAL NODES ')                                       MOD02028
      STOP                                                              MOD02029
12    DO 20 I=NN1,NN2,INC12                                             MOD02030
      NSTOR(I)=-1                                                       MOD02031
20    CONTINUE                                                          MOD02032
30    ISUB=0                                                            MOD02033
      KI=1                                                              MOD02034
      DO 40 I=1,LIMIT                                                   MOD02035
      IF(NSTOR(I).NE.-1)GO TO 35                                        MOD02036
      ISUB=ISUB+1                                                       MOD02037
      NSTOR(I)=0                                                        MOD02038
      GO TO 40                                                          MOD02039
35    NSTOR(KI)=NSTOR(I)-ISUB                                           MOD02040
      IF(KI.NE.I)NSTOR(I)=0                                             MOD02041
      X(KI)=X(I)                                                        MOD02042
      Y(KI)=Y(I)                                                        MOD02043
      Z(KI)=Z(I)                                                        MOD02044
      KI=KI+1                                                           MOD02045
40    CONTINUE                                                          MOD02046
      RETURN                                                            MOD02047
      END                                                               MOD02048
      SUBROUTINE SYMET1(LIMIT,NSTOR,X,Y,Z)                              MOD07012
      INTEGER AGET,AGETW,RX,RY,RZ,PX,PY,PZ                              MOD07013
      LOGICAL IGET,RGET                                                 MOD07014
      DIMENSION NSTOR(LIMIT),X(LIMIT),Y(LIMIT),Z(LIMIT)                 MOD07015
      DATA PX/1HX/,PY/1HY/,PZ/1HZ/                                      MOD07016
      DO 10 I=3,5                                                       MOD07017
      IDOM=AGET(I)                                                      MOD07018
      IF(IDOM.EQ.IBLANK)GO TO 11                                        MOD07019
10    CONTINUE                                                          MOD07020
11    IF(IGET(N1))CALL PRTERR(0)                                        MOD07021
      IF(IGET(N2))CALL PRTERR(0)                                        MOD07022
      IF(IGET(INCR))CALL PRTERR(0)                                      MOD07023
      IF(IGET(IADD))CALL PRTERR(0)                                      MOD07024
      RX=AGETW(AG001)                                                   MOD07025
      RY=AGETW(AG001)                                                   MOD07026
      RZ=AGETW(AG001)                                                   MOD07027
      IF(INCR.EQ.0)INCR=1                                               MOD07028
      IF(N1.LE.0)N1=1                                                   MOD07029
      IF(N2.NE.0)GO TO 30                                               MOD07030
      DO 14 J=1,LIMIT                                                   MOD07031
      IF(NSTOR(J).EQ.0)GO TO 14                                         MOD07032
      IF(NSTOR(J).GT.N2)N2=NSTOR(J)                                     MOD07033
14    CONTINUE                                                          MOD07034
      WRITE(IO,21)N1,N2                                                 MOD07035
21    FORMAT('  ++ W ++ TRANSLATION IS DONE FROM NODE = ',I5,' TO'      MOD07036
     1,I5)                                                              MOD07037
30    CONTINUE                                                          MOD07038
      DO 50 K=N1,N2,INCR                                                MOD07039
      NOD=K+IADD                                                        MOD07040
      IF(NOD.GT.LIMIT)CALL PRTERR(7)                                    MOD07041
      NSTOR(NOD)=NOD                                                    MOD07042
      X(NOD)=X(K)                                                       MOD07043
      Y(NOD)=Y(K)                                                       MOD07044
      Z(NOD)=Z(K)                                                       MOD07045
      IF(RX.EQ.PX.OR.RY.EQ.PX.OR.RZ.EQ.PX)X(NOD)=-X(K)                  MOD07046
      IF(RX.EQ.PY.OR.RY.EQ.PY.OR.RZ.EQ.PY)Y(NOD)=-Y(K)                  MOD07047
      IF(RX.EQ.PZ.OR.RY.EQ.PZ.OR.RZ.EQ.PZ)Z(NOD)=-Z(K)                  MOD07048
50    CONTINUE                                                          MOD07049
      RETURN                                                            MOD07050
      END                                                               MOD07051
      SUBROUTINE TRIAN1(LIMIT,NODE,X,Y,Z)                               MOD07133
      LOGICAL IGET,RGET                                                 MOD07134
      DIMENSION NODE(LIMIT),X(LIMIT),Y(LIMIT),Z(LIMIT)                  MOD07135
     1,NCO(6),AN(6),XX(6),YY(6),ZZ(6)                                   MOD07136
      IF(IGET(NDI))CALL PRTERR(0)                                       MOD07137
      CALL GETNL(GET001)                                                MOD07138
      DO 10 I=1,6                                                       MOD07139
      IF(IGET(NCO(I)))CALL PRTERR(0)                                    MOD07140
10    CONTINUE                                                          MOD07141
      IF(NDI.EQ.0)NDI=NCO(2)-NCO(1)                                     MOD07142
      IF(NDI.EQ.0)GO TO 999                                             MOD07143
      INC=(NCO(2)-NCO(1))/NDI                                           MOD07144
      IF(INC.LE.0)GO TO 999                                             MOD07145
      DO 20 I=1,6                                                       MOD07146
      XX(I)=X(NCO(I))                                                   MOD07147
      YY(I)=Y(NCO(I))                                                   MOD07148
      ZZ(I)=Z(NCO(I))                                                   MOD07149
20    CONTINUE                                                          MOD07150
      DO 30 I=4,6                                                       MOD07151
      II=I-2                                                            MOD07152
      IF(II.EQ.4)II=1                                                   MOD07153
      IF(NCO(I).NE.0)GO TO 30                                           MOD07154
      XX(I)=(XX(I-3)+XX(II))/2.0                                        MOD07155
      YY(I)=(YY(I-3)+YY(II))/2.0                                        MOD07156
      ZZ(I)=(ZZ(I-3)+ZZ(II))/2.0                                        MOD07157
30    CONTINUE                                                          MOD07158
      M=NDI                                                             MOD07159
      NOD=NCO(1)                                                        MOD07160
      LLL=M+1                                                           MOD07161
      DO 40 J=1,LLL                                                     MOD07162
      KK=M+2-J                                                          MOD07163
      DO 40 I=1,KK                                                      MOD07164
      AL3=J-1                                                           MOD07165
      AL2=I-1                                                           MOD07166
      AL1=M-AL2-AL3                                                     MOD07167
      AM=M                                                              MOD07168
      AL1=AL1/AM                                                        MOD07169
      AL2=AL2/AM                                                        MOD07170
      AL3=AL3/AM                                                        MOD07171
      AN(1)=(2.*AL1-1.)*AL1                                             MOD07172
      AN(2)=(2.*AL2-1.)*AL2                                             MOD07173
      AN(3)=(2.*AL3-1.)*AL3                                             MOD07174
      AN(4)=4.*AL1*AL2                                                  MOD07175
      AN(5)=4.*AL2*AL3                                                  MOD07176
      AN(6)=4.*AL3*AL1                                                  MOD07177
      AX=0.0                                                            MOD07178
      AY=0.0                                                            MOD07179
      AZ=0.0                                                            MOD07180
      DO 35 K=1,6                                                       MOD07181
      AX=AX + AN(K)*XX(K)                                               MOD07182
      AY=AY+AN(K)*YY(K)                                                 MOD07183
      AZ=AZ+AN(K)*ZZ(K)                                                 MOD07184
35    CONTINUE                                                          MOD07185
      X(NOD)=AX                                                         MOD07186
      Y(NOD)=AY                                                         MOD07187
      Z(NOD)=AZ                                                         MOD07188
      NODE(NOD)=NOD                                                     MOD07189
      NOD=NOD+INC                                                       MOD07190
40    CONTINUE                                                          MOD07191
      RETURN                                                            MOD07192
999   WRITE(IO,998)                                                     MOD07193
998   FORMAT('   ++ F ++ TRIANGULAT SURFACE GENERATION WILL BE          MOD07194
     1TERMINATED BECAUSE : ',/                                          MOD07195
     2,12X,'EITHER NUMBER OF DIVISIONS OR NODE INCREMENT ARE WRONG')    MOD07196
      STOP                                                              MOD07197
      END                                                               MOD07198
