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

  1.       SUBROUTINE PRTERR(I)                                              MOD05167
  2.       COMMON/UNIT/IN,IO                                                 MOD05168
  3.       COMMON/FRECNT/LINE(80)                                            MOD05169
  4.       IF(I.NE.0)GO TO 300                                               MOD05170
  5.       WRITE(IO,303)LINE                                                 MOD05171
  6. 303   FORMAT('  ++ SYNTAX ERROR ON BELOW LINE +++ ',/,2X,80A1)          MOD05172
  7.       STOP                                                              MOD05173
  8. 300   GO TO (1,2,3,4,5,6,7,8,9,10),I                                    MOD05174
  9. 1     WRITE(IO,101)                                                     MOD05175
  10. 101   FORMAT('  ++ F ++ TOTAL NUMBER OF NODES OR ELEMENTS ARE ZERO'     MOD05176
  11.      1,/,'      CHECK YOUR INPUT FOR TOTAL NUMBER OF NODES OR ELEMENTS')MOD05177
  12.       STOP                                                              MOD05178
  13. 2     WRITE(IO,102)                                                     MOD05179
  14. 102   FORMAT('   ++ F ++ CORNER NODE SHOULD NOT BE ZERO ,CHECK          MOD05180
  15.      1YOUR INPUT ')                                                     MOD05181
  16.       STOP                                                              MOD05182
  17. 3     WRITE(IO,103)                                                     MOD05183
  18. 103   FORMAT('   ++ F ++ SURFACE GENERATION WILL BE TERMINATED          MOD05184
  19.      1BECAUSE ;'                                                        MOD05185
  20.      2,/,'      EITHER SOME OF THE SUPPLIED CORNER NODE NUMBER          MOD05186
  21.      3ARE WRONG '                                                       MOD05187
  22.      4,/,'      OR THE INCREMENT ARE WRONG , CHECK YOUR INPUT ')        MOD05188
  23.       STOP                                                              MOD05189
  24. 4     WRITE(IO,104)                                                     MOD05190
  25. 104   FORMAT('  ++ F +++ NEGATIVE NODE NUMBER SPECIFIED FOR VOLUME      MOD05191
  26.      1GENERATION '                                                      MOD05192
  27.      2,/,'      CHECK YOUR INPUT ')                                     MOD05193
  28.       STOP                                                              MOD05194
  29. 5     WRITE(IO,105)                                                     MOD05195
  30. 105   FORMAT('  ++ F ++ VOLUME GENERATION IS BEING TERMINATED ,'        MOD05196
  31.      1,/,'      CHECK ALL CORNER NODE NUMBERS ')                        MOD05197
  32.       STOP                                                              MOD05198
  33. 6     WRITE(IO,106)                                                     MOD05199
  34. 106   FORMAT('   ++ F ++ MESH GENERATION IS NOT AVILABEL ')             MOD05200
  35.       STOP                                                              MOD05201
  36. 7     WRITE(IO,107)                                                     MOD05202
  37. 107   FORMAT('   ++ F ++ TOTAL GENRATED NODES ARE EXCEEDED THAN ::'     MOD05203
  38.      1,/,'           WHAT YOU SPECIFY IN YOUR INPUT')                   MOD05204
  39.       STOP                                                              MOD05205
  40. 8     WRITE(IO,108)                                                     MOD05206
  41. 108   FORMAT('   ++ F ++ INSUFFICIENCE STORAGE ...'                     MOD05207
  42.      1,/,11X,' INCREASE THE SIZE OF ARRARY A IN COMMON  A ')            MOD05208
  43.       STOP                                                              MOD05209
  44. 9     WRITE(IO,109)                                                     MOD05210
  45. 109   FORMAT('   ++ F ++ TOTAL GENERATED ELEMENTS ARE EXCEEDED THAN::'  MOD05211
  46.      1,/,11X,' WHAT YOU SPECIFY IN YOUR INPUT ')                        MOD05212
  47.       STOP                                                              MOD05213
  48. 10    WRITE(IO,110)LINE                                                 MOD05214
  49. 110   FORMAT('  ++ F ++ ELEMENT NUMBER IS LESS OR EQUAL ZERO ON LINE :' MOD05215
  50.      1,/,2X,80A1)                                                       MOD05216
  51.       STOP                                                              MOD05217
  52.       END                                                               MOD05218
  53.       SUBROUTINE FCOPY1                                                 MOD02474
  54.       COMMON/ETITLE/TITLE(20)                                           MOD02475
  55.       COMMON/TOTAL/MAXELM,MAXNOD,MAXNDM                                 MOD02476
  56.       COMMON/UNIT/IN,IO,IP,INP,INPF,ITER,IS6                            MOD02477
  57.       DIMENSION IB(6),IC(8),IA(20)                                      MOD02478
  58.       DATA BLANK/1H /                                                   MOD02479
  59.       REWIND 51                                                         MOD02480
  60.       REWIND IS6                                                        MOD02481
  61.       WRITE(IS6,2)TITLE                                                 MOD02482
  62.       WRITE(IS6,4)MAXNOD,MAXELM,MAXNDM                                  MOD02483
  63. 2     FORMAT(20A4)                                                      MOD02484
  64. 4     FORMAT(3I5)                                                       MOD02485
  65.       DO 10 J=1,MAXNOD                                                  MOD02486
  66.       READ(51)(IB(K),K=1,6),N,X,Y,Z                                     MOD02487
  67.       WRITE(IS6,11)N,(IB(K),K=1,6),X,Y,Z                                MOD02488
  68. 11    FORMAT(7I5,3F10.3)                                                MOD02489
  69. 10    CONTINUE                                                          MOD02490
  70. 12    FORMAT(A4)                                                        MOD02491
  71.       DO 20 J=1,MAXELM                                                  MOD02492
  72.       READ(51)I,MT,(IC(K),K=1,8),N1,N2,N3,N4                            MOD02493
  73.       WRITE(IS6,21)I,MT,(IC(K),K=1,8),N1,N2,N3,N4                       MOD02494
  74. 21    FORMAT(14I5)                                                      MOD02495
  75.       IF(MT.EQ.10.OR.MT.EQ.16)GO TO 25                                  MOD02496
  76.       GO TO 20                                                          MOD02497
  77. 25    READ(51)(IA(K),K=1,12)                                            MOD02498
  78.       WRITE(IS6,26)(IA(K),K=1,12)                                       MOD02499
  79. 26    FORMAT(12I5)                                                      MOD02500
  80. 20    CONTINUE                                                          MOD02501
  81.       RETURN                                                            MOD02502
  82.       END                                                               MOD02503
  83.       SUBROUTINE PRCOOR(LIMIT,NSTOR,X,Y,Z,IBON,ISENEW)                  MOD04819
  84.       INTEGER BLANK                                                     MOD04820
  85.       REAL*8 X1,Y1,Z1                                                   MOD04821
  86.       COMMON/UNIT/IN,IO,IPL,INP,INPF                                    MOD04822
  87.       COMMON/SEQUEN/ISEQU,ISTART,INCRE                                  MOD04823
  88.       COMMON/SAP6/ISAP6                                                 MOD04824
  89.       COMMON/TOTAL/MAXELM,MAXNOD,MAXNDM                                 MOD04825
  90.       COMMON/ETITLE/TITLE(20)                                           MOD04826
  91.       DIMENSION IBON(LIMIT,6),NSTOR(LIMIT),X(LIMIT),Y(LIMIT),Z(LIMIT)   MOD04827
  92.      1,ISENEW(LIMIT)                                                    MOD04828
  93.       DATA BLANK/1H /                                                   MOD04829
  94.       LIMIT1=LIMIT                                                      MOD04830
  95.       IZERO=0                                                           MOD04831
  96.       IUSA=0                                                            MOD04832
  97.       KNN=0                                                             MOD04833
  98.       MITWO=-2                                                          MOD04834
  99.       IF(ISEQU.EQ.0)GO TO 5                                             MOD04835
  100.       K=1                                                               MOD04836
  101.       J=0                                                               MOD04837
  102.       DO 3 I=1,LIMIT                                                    MOD04838
  103.       IF(NSTOR(I).LE.0)GO TO 3                                          MOD04839
  104.       KO=NSTOR(I)                                                       MOD04840
  105.       NSTOR(I)=0                                                        MOD04841
  106.       KN=ISTART+J                                                       MOD04842
  107.       NSTOR(K)=KN                                                       MOD04843
  108.       X(K)=X(I)                                                         MOD04844
  109.       Y(K)=Y(I)                                                         MOD04845
  110.       Z(K)=Z(I)                                                         MOD04846
  111.       ISENEW(KO)=KN                                                     MOD04847
  112.       K=K+1                                                             MOD04848
  113.       J=J+INCRE                                                         MOD04849
  114.       DO 2 MM=1,6                                                       MOD04850
  115.       IBON(KN,MM)=IBON(KO,MM)                                           MOD04851
  116.       IF(KO.EQ.KN)GO TO 2                                               MOD04852
  117.       IBON(KO,MM)=0                                                     MOD04853
  118. 2     CONTINUE                                                          MOD04854
  119. 3     CONTINUE                                                          MOD04855
  120. 5     WRITE(IPL,10)TITLE                                                MOD04856
  121.       WRITE(IPL,11)MITWO                                                MOD04857
  122. 10    FORMAT(20A4)                                                      MOD04858
  123.       WRITE(IPL,11)LIMIT1                                               MOD04859
  124. 11    FORMAT(5X,I5)                                                     MOD04860
  125.       I=0                                                               MOD04861
  126.       ICO=0                                                             MOD04862
  127. 20    I=I+1                                                             MOD04863
  128.       IF(I.GT.LIMIT)GO TO 100                                           MOD04864
  129.       IF(NSTOR(I).LE.0)GO TO 20                                         MOD04865
  130.       ICO=ICO+1                                                         MOD04866
  131.       J=NSTOR(I)                                                        MOD04867
  132.       WRITE(IPL,11)J                                                    MOD04868
  133.       WRITE(IPL,12)X(J),Y(J),Z(J)                                       MOD04869
  134.       WRITE(15,15)J,(IBON(J,KK1),KK1=1,6)                               MOD04870
  135. 15    FORMAT(7I5)                                                       MOD04871
  136. 12    FORMAT(3E12.5)                                                    MOD04872
  137.       X1=X(J)                                                           MOD04873
  138.       Y1=Y(J)                                                           MOD04874
  139.       Z1=Z(J)                                                           MOD04875
  140.       IF(ISAP6.NE.1)GO TO 25                                            MOD04876
  141.       WRITE(51)(IBON(J,MM),MM=1,6),J,X(J),Y(J),Z(J)                     MOD04877
  142.       GO TO 20                                                          MOD04878
  143. 25    WRITE(INP)BLANK,J,BLANK,(IBON(J,MM),MM=1,6),X1,Y1,Z1,KNN          MOD04879
  144.       WRITE(INPF,30)BLANK,J,BLANK,(IBON(J,MM),MM=1,6),X(J),Y(J),Z(J),KNNMOD04880
  145. 30    FORMAT(A1,I4,A1,I4,5I5,3F10.3,I5)                                 MOD04881
  146.       GO TO 20                                                          MOD04882
  147. 100   IF(ICO.EQ.LIMIT1)GO TO 110                                        MOD04883
  148.       WRITE(IO,200)ICO                                                  MOD04884
  149. 200   FORMAT(' ++ W ++  TOTAL NODES GENERATED ARE =',I5)                MOD04885
  150.       REWIND IPL                                                        MOD04886
  151.       REWIND INP                                                        MOD04887
  152.       REWIND INPF                                                       MOD04888
  153.       REWIND 15                                                         MOD04889
  154.       REWIND 51                                                         MOD04890
  155.       LIMIT1=ICO                                                        MOD04891
  156.       IUSA=1                                                            MOD04892
  157.       GO TO 5                                                           MOD04893
  158. 110   WRITE(IPL,11)IZERO                                                MOD04894
  159. 101   FORMAT(A1)                                                        MOD04895
  160.       MAXNOD=LIMIT1                                                     MOD04896
  161.       IF(IUSA.EQ.1)RETURN                                               MOD04897
  162.       WRITE(IO,300)LIMIT1                                               MOD04898
  163. 300   FORMAT(' . . .    TOTAL NODES GENERATED ARE = ',I5)               MOD04899
  164.       RETURN                                                            MOD04900
  165.       END                                                               MOD04901
  166.       SUBROUTINE PRELEM(LIMIT,NUMEL,MTYP,IPS,MATRI,THICK,BETA,ICON,IELD MOD04986
  167.      1,IELX,NTEMP,DENSIT,AREA,CDIS,CVEL,GAUSS1,ISENEW)                  MOD04987
  168.       REAL*8 XBETA,XTHIC                                                MOD04988
  169.       COMMON/UNIT/IN,IO,IPL,INP,INPF                                    MOD04989
  170.       COMMON/ELARRY/NELAR(4,20)                                         MOD04990
  171.       COMMON/SEQUEN/ISEQU                                               MOD04991
  172.       COMMON/SAP6/ISAP6                                                 MOD04992
  173.       COMMON/EGROUP/ITYPEL,NONTYP                                       MOD04993
  174.       COMMON/TOTAL/MAXELM,ID001,ID002,MAXGRO                            MOD04994
  175.       DIMENSION MTYP(NUMEL),IPS(NUMEL),MATRI(NUMEL),THICK(NUMEL)        MOD04995
  176.      1,BETA(NUMEL),ICON(NUMEL,20),ICC(20),IELD(NUMEL),IELX(NUMEL)       MOD04996
  177.      2,NTEMP(NUMEL),DENSIT(NUMEL),AREA(NUMEL),CDIS(NUMEL)               MOD04997
  178.      3,CVEL(NUMEL),GAUSS1(LIMIT,2),ISENEW(LIMIT)                        MOD04998
  179.      &,KDUM(9)                                                          MOD04999
  180.       DATA BLANK/1H /                                                   MOD05000
  181.       LOMGRO=MAXGRO+1                                                   MOD05001
  182.       IF(ISEQU.EQ.0)GO TO 5                                             MOD05002
  183.       DO 3 I=1,NUMEL                                                    MOD05003
  184.       IF(MTYP(I).EQ.0)GO TO 3                                           MOD05004
  185.       DO 2 J=1,20                                                       MOD05005
  186.       KO=ICON(I,J)                                                      MOD05006
  187.       IF(KO.EQ.0)GO TO 2                                                MOD05007
  188.       KN=ISENEW(KO)                                                     MOD05008
  189.       ICON(I,J)=KN                                                      MOD05009
  190. 2     CONTINUE                                                          MOD05010
  191. 3     CONTINUE                                                          MOD05011
  192. 5     CONTINUE                                                          MOD05012
  193. 11    FORMAT(5X,I5)                                                     MOD05013
  194.       I=0                                                               MOD05014
  195.       ICO=0                                                             MOD05015
  196. 20    I=I+1                                                             MOD05016
  197.       IF(I.GT.NUMEL)GO TO 100                                           MOD05017
  198.       IF(MTYP(I).EQ.0)GO TO 20                                          MOD05018
  199.       ICO=ICO+1                                                         MOD05019
  200.       MT=IABS(MTYP(I))                                                  MOD05020
  201.       MH=IELD(I)                                                        MOD05021
  202.       IF(MH.LE.0)MH=NELAR(1,MT)                                         MOD05022
  203.       IELD(I)=MH                                                        MOD05023
  204.       MT11=MT                                                           MOD05024
  205.       IF(MT.NE.16)GO TO 450                                             MOD05025
  206.       IELT=IELX(I)                                                      MOD05026
  207.       IF(IELX(I).EQ.5)IELT=1                                            MOD05027
  208.       IF(IELX(I).EQ.7)IELT=1                                            MOD05028
  209.       IF(IELT.NE.1)GO TO 450                                            MOD05029
  210.       IF(NELAR(1,MT).EQ.3)NELAR(1,MT)=4                                 MOD05030
  211.       IF(NELAR(1,MT).EQ.6)NELAR(1,MT)=8                                 MOD05031
  212.       IF(NELAR(1,MT).EQ.7)NELAR(1,MT)=9                                 MOD05032
  213.       DO 410 IAG=1,3                                                    MOD05033
  214.       KDUM(IAG)=ICON(I,IAG)                                             MOD05034
  215. 410   KDUM(IAG+3)=ICON(I,IAG+2)                                         MOD05035
  216.       DO 420 IAG=6,7                                                    MOD05036
  217. 420   KDUM(IAG+2)=ICON(I,IAG)                                           MOD05037
  218.       KDUM(7)=ICON(I,3)                                                 MOD05038
  219.       IF(IELD(I).EQ.3)KDUM(7)=0                                         MOD05039
  220.       MH11=NELAR(1,MT)                                                  MOD05040
  221.       WRITE(50)MT11,LOMGRO,MH11,DENSIT(I),AREA(I)                       MOD05041
  222.       WRITE(50)I,(KDUM(J),J=1,MH11)                                     MOD05042
  223.       GO TO 460                                                         MOD05043
  224. 450   CONTINUE                                                          MOD05044
  225.       MH11=NELAR(1,MT)                                                  MOD05045
  226.       WRITE(50)MT11,LOMGRO,MH11,DENSIT(I),AREA(I)                       MOD05046
  227. 14    FORMAT(5X,I5,6X,I5)                                               MOD05047
  228.       WRITE(50)I,(ICON(I,J),J=1,MH11)                                   MOD05048
  229. 460   CONTINUE                                                          MOD05049
  230.       IF(ISAP6.NE.1)GO TO 17                                            MOD05050
  231.       N22=THICK(I)                                                      MOD05051
  232.       N33=BETA(I)                                                       MOD05052
  233.       WRITE(51)I,MT,(ICON(I,L1),L1=1,8),MATRI(I),N22,N33,IPS(I)         MOD05053
  234.       IF(MT.EQ.10.OR.MT.EQ.16)GO TO 19                                  MOD05054
  235.       GO TO 20                                                          MOD05055
  236. 19    WRITE(51)(ICON(I,L1),L1=9,20)                                     MOD05056
  237.       GO TO 20                                                          MOD05057
  238. 17    IONE=1                                                            MOD05058
  239.       IZERO=0                                                           MOD05059
  240.       IK8=8                                                             MOD05060
  241.       IF(MT.NE.1)GO TO 25                                               MOD05061
  242.       XBETA=BETA(I)                                                     MOD05062
  243.       IF(MTYP(I).EQ.-1)GO TO 32                                         MOD05063
  244.       WRITE(INP)I,ICON(I,1),ICON(I,2),MATRI(I),XBETA,IPS(I),IZERO       MOD05064
  245.       WRITE(INPF,26)I,ICON(I,1),ICON(I,2),MATRI(I),BETA(I),IPS(I),IZERO MOD05065
  246. 26    FORMAT(4I5,F10.3,2I5)                                             MOD05066
  247. 27    FORMAT(4I5,F10.3,2I5,I5,F10.3,I5,2F10.3)                          MOD05067
  248.       GO TO 20                                                          MOD05068
  249. 32    WRITE(INP)I,ICON(I,1),ICON(I,2),MATRI(I),XBETA,IPS(I),IZERO       MOD05069
  250.      1,IELD(I),CDIS(I),IELX(I),CVEL(I),THICK(I)                         MOD05070
  251.       WRITE(INPF,27)I,ICON(I,1),ICON(I,2),MATRI(I),BETA(I),IPS(I),IZERO MOD05071
  252.      1,IELD(I),CDIS(I),IELX(I),CVEL(I),THICK(I)                         MOD05072
  253.       GO TO 20                                                          MOD05073
  254. 25    IF(MT.NE.2)GO TO 28                                               MOD05074
  255.       INELKI=BETA(I)                                                    MOD05075
  256.       INELKJ=THICK(I)                                                   MOD05076
  257.       WRITE(INP)I,ICON(I,1),ICON(I,2),ICON(I,3),MATRI(I),IPS(I)         MOD05077
  258.      1,IZERO,INELKI,INELKJ                                              MOD05078
  259.       WRITE(INPF,29)I,ICON(I,1),ICON(I,2),ICON(I,3),MATRI(I),IPS(I)     MOD05079
  260.      1,IZERO,INELKI,INELKJ                                              MOD05080
  261. 29    FORMAT(9I5)                                                       MOD05081
  262.       GO TO 20                                                          MOD05082
  263. 28    IF(MT.NE.17)GO TO 40                                              MOD05083
  264.       IPOI1=MATRI(I)                                                    MOD05084
  265.       IF(ISEQU.EQ.1)IPOI1=ISENEW(IPOI1)                                 MOD05085
  266.       RR=GAUSS1(IPOI1,1)                                                MOD05086
  267.       SS=GAUSS1(IPOI1,2)                                                MOD05087
  268.       WRITE(INP)I,IELD(I),IPS(I),BETA(I),RR,SS,IONE,MATRI(I)            MOD05088
  269.      1,(ICON(I,J),J=1,8)                                                MOD05089
  270.       WRITE(INPF,41)I,IELD(I),IPS(I),BETA(I),RR,SS,IONE,MATRI(I)        MOD05090
  271.      1,(ICON(I,J),J=1,8)                                                MOD05091
  272. 41    FORMAT(3I5,3E12.5,10I5)                                           MOD05092
  273.       GO TO 20                                                          MOD05093
  274. 40    IF(MT.EQ.16)IK8=9                                                 MOD05094
  275.       IF(MT.EQ.3.OR.MT.EQ.4)GO TO 66                                    MOD05095
  276.       IF(MT.EQ.8.OR.MT.EQ.11)GO TO 66                                   MOD05096
  277.       IF(MT.EQ.12.OR.MT.EQ.13)GO TO 66                                  MOD05097
  278.       IF(MT.NE.18)GO TO 67                                              MOD05098
  279.       IELD1=IELD(I)                                                     MOD05099
  280.       IST=BETA(I)                                                       MOD05100
  281.       IPES1=IELX(I)                                                     MOD05101
  282.       NDLS=THICK(I)                                                     MOD05102
  283.       NHKK=NTEMP(I)                                                     MOD05103
  284.       WRITE(INP)I,IELD1,IPES1,NDLS,NHKK,IPS(I),MATRI(I),IST,IZERO       MOD05104
  285.      1,(ICON(I,J),J=1,16)                                               MOD05105
  286.       WRITE(INPF,71)I,IELD1,IPES1,NDLS,NHKK,IPS(I),MATRI(I),IST,IZERO   MOD05106
  287.      1,(ICON(I,J),J=1,16)                                               MOD05107
  288. 71    FORMAT(I5,8I3,/,16I5)                                             MOD05108
  289.       GO TO 20                                                          MOD05109
  290. 67    IELD1=MH                                                          MOD05110
  291.       IELX1=IELX(I)                                                     MOD05111
  292.       IF(IELX1.LE.0)IELX1=IELD1                                         MOD05112
  293.       IST=BETA(I)                                                       MOD05113
  294.       IF(MT.NE.16)GO TO 69                                              MOD05114
  295.       NDLS=THICK(I)                                                     MOD05115
  296.       WRITE(INP)I,IELD1,IELX(I),NDLS,IZERO,NTEMP(I)                     MOD05116
  297.      &,IPS(I),MATRI(I),IZERO                                            MOD05117
  298.      1,(ICON(I,J),J=1,9)                                                MOD05118
  299.       WRITE(INPF,68)I,IELD1,IELX(I),NDLS,IZERO,NTEMP(I)                 MOD05119
  300.      &,IPS(I),MATRI(I),IZERO                                            MOD05120
  301.      1,(ICON(I,J),J=1,9)                                                MOD05121
  302. 68    FORMAT(I5,5I3,2I3,10I5)                                           MOD05122
  303.       GO TO 20                                                          MOD05123
  304. 69    CONTINUE                                                          MOD05124
  305.       NDIR=THICK(I)                                                     MOD05125
  306.       WRITE(INP)I,IELD1,IELX1,IPS(I),MATRI(I),IST,IZERO,NDIR            MOD05126
  307.       WRITE(INPF,70)I,IELD1,IELX1,IPS(I),MATRI(I),IST,IZERO,NDIR        MOD05127
  308. 70    FORMAT(8I5)                                                       MOD05128
  309.       WRITE(INP)(ICON(I,J),J=1,IK8)                                     MOD05129
  310.       WRITE(INP)(ICON(I,J),J=9,20),IZERO                                MOD05130
  311.       WRITE(INPF,72)(ICON(I,J),J=1,IK8)                                 MOD05131
  312.       WRITE(INPF,18)(ICON(I,J),J=9,20)                                  MOD05132
  313.       GO TO 20                                                          MOD05133
  314. 72    FORMAT(8I5)                                                       MOD05134
  315. 66    XBETA=BETA(I)                                                     MOD05135
  316.       XTHIC=THICK(I)                                                    MOD05136
  317.       WRITE(INP)I,MH,IPS(I),XBETA,XTHIC,MATRI(I),IZERO                  MOD05137
  318.      1,(ICON(I,J),J=1,IK8)                                              MOD05138
  319.       WRITE(INPF,30)I,MH,IPS(I),BETA(I),THICK(I),MATRI(I),IZERO         MOD05139
  320.      1,(ICON(I,J),J=1,IK8)                                              MOD05140
  321. 30    FORMAT(I5,I3,I2,2F10.3,I5,I4,9I5)                                 MOD05141
  322. 18    FORMAT(12I5)                                                      MOD05142
  323.       GO TO 20                                                          MOD05143
  324. 100   NUMEL1=ICO                                                        MOD05144
  325.       MAXELM=MAXELM+ICO                                                 MOD05145
  326.       MAXGRO=MAXGRO+1                                                   MOD05146
  327.       WRITE(IO,200)ICO,MAXGRO                                           MOD05147
  328.       IF(ISAP6.NE.1)WRITE(52)ICO,ITYPEL,NONTYP                          MOD05148
  329. 200   FORMAT(' . . . .  TOTAL OF',I5,' ELEMENTS GENERATED FOR GROUP'    MOD05149
  330.      1,' NUMBER =',I5)                                                  MOD05150
  331.       DO 60 I=1,NUMEL1                                                  MOD05151
  332.       MTYP(I)=0                                                         MOD05152
  333.       IPS(I)=0                                                          MOD05153
  334.       MATRI(I)=0                                                        MOD05154
  335.       THICK(I)=0                                                        MOD05155
  336.       BETA(I)=0.                                                        MOD05156
  337.       IELD(I)=0                                                         MOD05157
  338.       IELX(I)=0                                                         MOD05158
  339.       DO 61 J=1,20                                                      MOD05159
  340.       ICON(I,J)=0                                                       MOD05160
  341. 61    CONTINUE                                                          MOD05161
  342. 60    CONTINUE                                                          MOD05162
  343.       ITYPEL=0                                                          MOD05163
  344.       NONTYP=0                                                          MOD05164
  345.       RETURN                                                            MOD05165
  346.       END                                                               MOD05166
  347.       SUBROUTINE QUADM (N,ND,XM,XX,NOD5,IEL,THIC,DE,NND5,KIND)          MOD00789
  348. CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC        MOD00790
  349.       IMPLICIT REAL*8(A-H,O-Z)                                          MOD00791
  350.       COMMON /SAP6/ ISAP6                                               MOD00792
  351.       COMMON/JACHEK/ISEE,IERR                                           MOD00793
  352.       DIMENSION XM(1),D(16),XG(4,4),WGT(4,4),XX(2,8),NOD5(1)            MOD00794
  353.       DIMENSION H(8),P(2,8),IPERM(4),XJ(2,2)                            MOD00795
  354.       DATA XG /     0.,             0.,             0.,             0., MOD00796
  355.      1-.5773502691896D0, .5773502691896D0,      0.D0,      0.D0,        MOD00797
  356.      2-.7745966692415D0, .00000000000D0, .7745966692415D0,   0.D0,      MOD00798
  357.      3-.8611363115941D0,-.3399810435849D0, .3399810435849D0,            MOD00799
  358.      4.8611363115941D0/                                                 MOD00800
  359.       DATA WGT / 2.000D0,       0.D0,       0.D0,        0.D0,          MOD00801
  360.      11.00000000000D0,1.00000000000D0,        0.D0,        0.D0,        MOD00802
  361.      2.5555555555556D0, .8888888888889D0, .5555555555556D0,     0.D0,   MOD00803
  362.      3.3478548451375D0, .6521451548625D0, .6521451548625D0,             MOD00804
  363.      4.3478548451375D0/                                                 MOD00805
  364.       DATA IPERM/2,3,4,1/                                               MOD00806
  365.       IERR=0                                                            MOD00807
  366.       DO 7 I=1,IEL                                                      MOD00808
  367. 7     XM(I)=0.                                                          MOD00809
  368.       DO 100 LX=1,3                                                     MOD00810
  369.       R=XG(LX,3)                                                        MOD00811
  370.       DO 100 LY=1,3                                                     MOD00812
  371.       S=XG(LY,3)                                                        MOD00813
  372.       WT=WGT(LX,3)*WGT(LY,3)                                            MOD00814
  373.       CALL FUNCT2 (R,S,H,P,NOD5,XJ,DET,XX,N,IEL,NND5)                   MOD00815
  374.       IF(ISEE.EQ.1.AND.IERR.EQ.0)GO TO 100                              MOD00816
  375.       IF(ISEE.EQ.1.AND.IERR.EQ.1)RETURN                                 MOD00817
  376.       IF (ISAP6 .EQ. 0) GO TO 30                                        MOD00818
  377.       IF (THIC .EQ. 0.0) GO TO 40                                       MOD00819
  378.       GO TO 35                                                          MOD00820
  379. 30    IF (KIND.EQ.4 .OR. KIND.EQ.11) GO TO 40                           MOD00821
  380. 35    XBAR=THIC                                                         MOD00822
  381.       GO TO 60                                                          MOD00823
  382. 40    XBAR=0.0                                                          MOD00824
  383.       DO 50 K=1,IEL                                                     MOD00825
  384. 50    XBAR=XBAR + H(K)*XX(1,K)                                          MOD00826
  385. 60    FAC=WT*XBAR*DET*DE                                                MOD00827
  386.       DO 325 I=1,IEL                                                    MOD00828
  387.       FACM=FAC/IEL                                                      MOD00829
  388. 325   XM(I)=XM(I) + FACM                                                MOD00830
  389. 100   CONTINUE                                                          MOD00831
  390.       RETURN                                                            MOD00832
  391.       END                                                               MOD00833
  392. CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC    MOD00834
  393.       SUBROUTINE TAREA(XYZ,NOD,I,J,K,TR,TVEC,ICH,NTOT)                  MOD00767
  394. CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC             MOD00768
  395.       IMPLICIT REAL*8 (A-H,O-Z)                                         MOD00769
  396.       DIMENSION XYZ(NTOT,1),NOD(1),TVEC(1),A(3),B(3)                    MOD00770
  397.       SQRT(X)=DSQRT(X)                                                  MOD00771
  398.       DO 100 L = 1, 3                                                   MOD00772
  399.       A(L) = XYZ(NOD(J),L) - XYZ(NOD(I),L)                              MOD00773
  400.       B(L) = XYZ(NOD(K),L) - XYZ(NOD(I),L)                              MOD00774
  401. 100   CONTINUE                                                          MOD00775
  402.       TVEC(1) = (A(2)*B(3) - A(3)*B(2)) / 2.0                           MOD00776
  403.       TVEC(2) = (A(3)*B(1) - A(1)*B(3)) / 2.0                           MOD00777
  404.       TVEC(3) = (A(1)*B(2) - A(2)*B(1)) / 2.0                           MOD00778
  405.       IF (ICH .EQ. 3)  RETURN                                           MOD00779
  406.       AB = 0.0                                                          MOD00780
  407.       DO 200 L = 1, 3                                                   MOD00781
  408.       AB = AB + TVEC(L)**2                                              MOD00782
  409. 200   CONTINUE                                                          MOD00783
  410.       AB =  SQRT(AB)                                                    MOD00784
  411.       TR = AB /3.0                                                      MOD00785
  412.       RETURN                                                            MOD00786
  413.       END                                                               MOD00787
  414. CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC        MOD00788
  415.       SUBROUTINE FUNCT2 (R,S,H,P,NOD5,XJ,DET,XX,NEL,IEL,NND5)           MOD01081
  416. CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC         MOD01082
  417.       IMPLICIT REAL*8(A-H,O-Z)                                          MOD01083
  418.       COMMON/JACHEK/ISEE1,IERR                                          MOD01084
  419.       DIMENSION H(1),P(2,1),NOD5(1),IPERM(4),XJ(2,2),XX(2,1)            MOD01085
  420.       DATA IPERM/2,3,4,1/                                               MOD01086
  421.       ABS(X)=DABS(X)                                                    MOD01087
  422.       RP = 1.0D0 + R                                                    MOD01088
  423.       SP = 1.0D0 + S                                                    MOD01089
  424.       RM = 1.0D0 - R                                                    MOD01090
  425.       SM = 1.0D0 - S                                                    MOD01091
  426.       R2 = 1.0D0 - R*R                                                  MOD01092
  427.       S2 = 1.0D0 - S*S                                                  MOD01093
  428.       H(1) = 0.25D0* RP* SP                                             MOD01094
  429.       H(2) = 0.25D0* RM* SP                                             MOD01095
  430.       H(3) = 0.25D0* RM* SM                                             MOD01096
  431.       H(4) = 0.25D0* RP* SM                                             MOD01097
  432.       P(1,1)=0.25D0*SP                                                  MOD01098
  433.       P(1,2)=-P(1,1)                                                    MOD01099
  434.       P(1,3)=-0.25D0*SM                                                 MOD01100
  435.       P(1,4)=-P(1,3)                                                    MOD01101
  436.       P(2,1)=0.25D0*RP                                                  MOD01102
  437.       P(2,2)=0.25D0*RM                                                  MOD01103
  438.       P(2,3)=-P(2,2)                                                    MOD01104
  439.       P(2,4)=-P(2,1)                                                    MOD01105
  440.       IF (IEL.EQ.4) GO TO 50                                            MOD01106
  441.       I=0                                                               MOD01107
  442. 2     I=I + 1                                                           MOD01108
  443.       IF (I.GT.NND5) GO TO 40                                           MOD01109
  444.       NN=NOD5(I) - 4                                                    MOD01110
  445.       GO TO (5,6,7,8), NN                                               MOD01111
  446. 5     H(5) = 0.50D0* R2* SP                                             MOD01112
  447.       P(1,5)=-R*SP                                                      MOD01113
  448.       P(2,5)=0.50D0*R2                                                  MOD01114
  449.       GO TO 2                                                           MOD01115
  450. 6     H(6) = 0.50D0* RM* S2                                             MOD01116
  451.       P(1,6)=-0.50D0*S2                                                 MOD01117
  452.       P(2,6)=-RM*S                                                      MOD01118
  453.       GO TO 2                                                           MOD01119
  454. 7     H(7) = 0.50D0* R2* SM                                             MOD01120
  455.       P(1,7)=-R*SM                                                      MOD01121
  456.       P(2,7)=-0.50D0*R2                                                 MOD01122
  457.       GO TO 2                                                           MOD01123
  458. 8     H(8) = 0.50D0* RP* S2                                             MOD01124
  459.       P(1,8)=0.50D0*S2                                                  MOD01125
  460.       P(2,8)=-RP*S                                                      MOD01126
  461.       GO TO 2                                                           MOD01127
  462. 40    IH=0                                                              MOD01128
  463. 41    IH=IH + 1                                                         MOD01129
  464.       IF (IH.GT.NND5) GO TO 50                                          MOD01130
  465.       IN=NOD5(IH)                                                       MOD01131
  466.       I1=IN - 4                                                         MOD01132
  467.       I2=IPERM(I1)                                                      MOD01133
  468.       H(I1)=H(I1) - 0.5D0*H(IN)                                         MOD01134
  469.       H(I2)=H(I2) - 0.5D0*H(IN)                                         MOD01135
  470.       H(IH + 4)=H(IN)                                                   MOD01136
  471.       DO 45 J=1,2                                                       MOD01137
  472.       P(J,I1)=P(J,I1) - 0.5D0*P(J,IN)                                   MOD01138
  473.       P(J,I2)=P(J,I2) - 0.5D0*P(J,IN)                                   MOD01139
  474. 45    P(J,IH + 4)=P(J,IN)                                               MOD01140
  475.       GO TO 41                                                          MOD01141
  476. 50    DO 100 I=1,2                                                      MOD01142
  477.       DO 100 J=1,2                                                      MOD01143
  478.       DUM = 0.0D0                                                       MOD01144
  479.       DO 90 K=1,IEL                                                     MOD01145
  480. 90    DUM = DUM + P(I,K)* XX(J,K)                                       MOD01146
  481. 100   XJ(I,J) = DUM                                                     MOD01147
  482.       DET = XJ(1,1)* XJ(2,2) - XJ(2,1)* XJ(1,2)                         MOD01148
  483.       IF(DET.GT.1.0D-8) GO TO 110                                       MOD01149
  484.       WRITE (6,2000) NEL,DET                                            MOD01150
  485.       IERR=1                                                            MOD01151
  486.       RETURN                                                            MOD01152
  487. 110   CONTINUE                                                          MOD01153
  488.       RETURN                                                            MOD01154
  489. 2000  FORMAT(' ++ F ++  NEGATIVE OR ZERO JACOBIAN'                      MOD01155
  490.      1,' ,ELEMENT NUMBER =',I5,' DET =',E15.7)                          MOD01156
  491.       END                                                               MOD01157
  492.       FUNCTION COMPNT(IG,II1,IC,IDEG,IW,ICC,NN)                         MOD01158
  493.       DIMENSION IG(II1,1),IC(1),IDEG(1),IW(1),ICC(1)                    MOD01159
  494.       DO 100 I=1,NN                                                     MOD01160
  495.       ICC(I)=0                                                          MOD01161
  496.       IC(I)=0                                                           MOD01162
  497. 100   CONTINUE                                                          MOD01163
  498.       NC=0                                                              MOD01164
  499.       ICC(1)=1                                                          MOD01165
  500. 110   DO 120 I=1,NN                                                     MOD01166
  501.       IF(IC(I)) 120,130,120                                             MOD01167
  502. 120   COMPNT=NC                                                         MOD01168
  503.       RETURN                                                            MOD01169
  504. 130   NC=NC+1                                                           MOD01170
  505.       KI=0                                                              MOD01171
  506.       KO=1                                                              MOD01172
  507.       IW(1)=I                                                           MOD01173
  508.       IC(I)=NC                                                          MOD01174
  509.       IF(NC-1)150,140,140                                               MOD01175
  510. 140   IS=ICC(NC)+1                                                      MOD01176
  511.       ICC(NC+1)=IS                                                      MOD01177
  512. 150   KI=KI+1                                                           MOD01178
  513.       II=IW(KI)                                                         MOD01179
  514.       N=IDEG(II)                                                        MOD01180
  515.       IF(N)160,110,160                                                  MOD01181
  516. 160   DO 180 I=1,N                                                      MOD01182
  517.       IA = IG(II,I)                                                     MOD01183
  518.       IF(IC(IA)) 180,170,180                                            MOD01184
  519. 170   IC(IA)=NC                                                         MOD01185
  520.       KO=KO+1                                                           MOD01186
  521.       IW(KO)=IA                                                         MOD01187
  522.       IS=ICC(NC+1)+1                                                    MOD01188
  523.       ICC(NC+1)=IS                                                      MOD01189
  524. 180   CONTINUE                                                          MOD01190
  525.       IF(KO-KI)110,110,150                                              MOD01191
  526.       END                                                               MOD01192
  527.       SUBROUTINE FUNCT (R,S,T,H,P,NOD9,XJ,DET,XX,IEL,NND9,IELX,IELD)    MOD00835
  528. CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC    MOD00836
  529.       IMPLICIT REAL*8(A-H,O-Z)                                          MOD00837
  530.       COMMON /UNIT/ INN,IOUT,IP                                         MOD00838
  531.       COMMON /CGELE/ NEL                                                MOD00839
  532.       COMMON/JACHEK/ISEE1,IERR                                          MOD00840
  533.       DIMENSION H(1),P(3,1),NOD9(1),IPERM(8),XJ(3,3),XX(3,1)            MOD00841
  534.       DATA IPERM / 2,3,4,1,6,7,8,5 /                                    MOD00842
  535.       ABS(X)=DABS(X)                                                    MOD00843
  536.       RP=1.0D0 + R                                                      MOD00844
  537.       SP=1.0D0 + S                                                      MOD00845
  538.       TP=1.0D0 + T                                                      MOD00846
  539.       RM=1.0D0 - R                                                      MOD00847
  540.       SM=1.0D0 - S                                                      MOD00848
  541.       TM=1.0D0 - T                                                      MOD00849
  542.       RR=1.0D0 - R*R                                                    MOD00850
  543.       SS=1.0D0 - S*S                                                    MOD00851
  544.       TT=1.0D0 - T*T                                                    MOD00852
  545.       H(1)=0.125D0*RP*SP*TP                                             MOD00853
  546.       H(2)=0.125D0*RM*SP*TP                                             MOD00854
  547.       H(3)=0.125D0*RM*SM*TP                                             MOD00855
  548.       H(4)=0.125D0*RP*SM*TP                                             MOD00856
  549.       H(5)=0.125D0*RP*SP*TM                                             MOD00857
  550.       H(6)=0.125D0*RM*SP*TM                                             MOD00858
  551.       H(7)=0.125D0*RM*SM*TM                                             MOD00859
  552.       H(8)=0.125D0*RP*SM*TM                                             MOD00860
  553.       P(1,1)= 0.125D0*SP*TP                                             MOD00861
  554.       P(1,2)=-P(1,1)                                                    MOD00862
  555.       P(1,3)=-0.125D0*SM*TP                                             MOD00863
  556.       P(1,4)=-P(1,3)                                                    MOD00864
  557.       P(1,5)= 0.125D0*SP*TM                                             MOD00865
  558.       P(1,6)=-P(1,5)                                                    MOD00866
  559.       P(1,7)=-0.125D0*SM*TM                                             MOD00867
  560.       P(1,8)=-P(1,7)                                                    MOD00868
  561.       P(2,1)= 0.125D0*RP*TP                                             MOD00869
  562.       P(2,2)= 0.125D0*RM*TP                                             MOD00870
  563.       P(2,3)=-P(2,2)                                                    MOD00871
  564.       P(2,4)=-P(2,1)                                                    MOD00872
  565.       P(2,5)= 0.125D0*RP*TM                                             MOD00873
  566.       P(2,6)= 0.125D0*RM*TM                                             MOD00874
  567.       P(2,7)=-P(2,6)                                                    MOD00875
  568.       P(2,8)=-P(2,5)                                                    MOD00876
  569.       P(3,1)= 0.125D0*RP*SP                                             MOD00877
  570.       P(3,2)= 0.125D0*RM*SP                                             MOD00878
  571.       P(3,3)= 0.125D0*RM*SM                                             MOD00879
  572.       P(3,4)= 0.125D0*RP*SM                                             MOD00880
  573.       P(3,5)=-P(3,1)                                                    MOD00881
  574.       P(3,6)=-P(3,2)                                                    MOD00882
  575.       P(3,7)=-P(3,3)                                                    MOD00883
  576.       P(3,8)=-P(3,4)                                                    MOD00884
  577.       IF (IEL.EQ.8) GO TO 50                                            MOD00885
  578.       I=0                                                               MOD00886
  579. 2     I=I + 1                                                           MOD00887
  580.       IF (I.GT.NND9) GO TO 40                                           MOD00888
  581.       NN=NOD9(I) - 8                                                    MOD00889
  582.       GO TO (9,10,11,12,13,14,15,16,17,18,19,20,21) ,NN                 MOD00890
  583. 9     H(9) =0.25D0*RR*SP*TP                                             MOD00891
  584.       P(1,9) =-0.50*R*SP*TP                                             MOD00892
  585.       P(2,9) = 0.25D0*RR*TP                                             MOD00893
  586.       P(3,9) = 0.25D0*RR*SP                                             MOD00894
  587.       GO TO 2                                                           MOD00895
  588. 10    H(10)=0.25D0*RM*SS*TP                                             MOD00896
  589.       P(1,10)=-0.25D0*SS*TP                                             MOD00897
  590.       P(2,10)=-0.50*RM*S*TP                                             MOD00898
  591.       P(3,10)= 0.25D0*RM*SS                                             MOD00899
  592.       GO TO 2                                                           MOD00900
  593. 11    H(11)=0.25D0*RR*SM*TP                                             MOD00901
  594.       P(1,11)=-0.50D0*R*SM*TP                                           MOD00902
  595.       P(2,11)=-0.25D0*RR*TP                                             MOD00903
  596.       P(3,11)= 0.25D0*RR*SM                                             MOD00904
  597.       GO TO 2                                                           MOD00905
  598. 12    H(12)=0.25D0*RP*SS*TP                                             MOD00906
  599.       P(1,12)= 0.25D0*SS*TP                                             MOD00907
  600.       P(2,12)=-0.50D0*RP*S*TP                                           MOD00908
  601.       P(3,12)= 0.25D0*RP*SS                                             MOD00909
  602.       GO TO 2                                                           MOD00910
  603. 13    H(13)=0.25D0*RR*SP*TM                                             MOD00911
  604.       P(1,13)=-0.50D0*R*SP*TM                                           MOD00912
  605.       P(2,13)= 0.25D0*RR*TM                                             MOD00913
  606.       P(3,13)=-0.25D0*RR*SP                                             MOD00914
  607.       GO TO 2                                                           MOD00915
  608. 14    H(14)=0.25D0*RM*SS*TM                                             MOD00916
  609.       P(1,14)=-0.25D0*SS*TM                                             MOD00917
  610.       P(2,14)=-0.50D0*RM*S*TM                                           MOD00918
  611.       P(3,14)=-0.25D0*RM*SS                                             MOD00919
  612.       GO TO 2                                                           MOD00920
  613. 15    H(15)=0.25D0*RR*SM*TM                                             MOD00921
  614.       P(1,15)=-0.50D0*R*SM*TM                                           MOD00922
  615.       P(2,15)=-0.25D0*RR*TM                                             MOD00923
  616.       P(3,15)=-0.25D0*RR*SM                                             MOD00924
  617.       GO TO 2                                                           MOD00925
  618. 16    H(16)=0.25D0*RP*SS*TM                                             MOD00926
  619.       P(1,16)= 0.25D0*SS*TM                                             MOD00927
  620.       P(2,16)=-0.50D0*RP*S*TM                                           MOD00928
  621.       P(3,16)=-0.25D0*RP*SS                                             MOD00929
  622.       GO TO 2                                                           MOD00930
  623. 17    H(17)=0.25D0*RP*SP*TT                                             MOD00931
  624.       P(1,17)= 0.25D0*SP*TT                                             MOD00932
  625.       P(2,17)= 0.25D0*RP*TT                                             MOD00933
  626.       P(3,17)=-0.50D0*RP*SP*T                                           MOD00934
  627.       GO TO 2                                                           MOD00935
  628. 18    H(18)=0.25D0*RM*SP*TT                                             MOD00936
  629.       P(1,18)=-0.25D0*SP*TT                                             MOD00937
  630.       P(2,18)= 0.25D0*RM*TT                                             MOD00938
  631.       P(3,18)=-0.50D0*RM*SP*T                                           MOD00939
  632.       GO TO 2                                                           MOD00940
  633. 19    H(19)=0.25D0*RM*SM*TT                                             MOD00941
  634.       P(1,19)=-0.25D0*SM*TT                                             MOD00942
  635.       P(2,19)=-0.25D0*RM*TT                                             MOD00943
  636.       P(3,19)=-0.50D0*RM*SM*T                                           MOD00944
  637.       GO TO 2                                                           MOD00945
  638. 20    H(20)=0.25D0*RP*SM*TT                                             MOD00946
  639.       P(1,20)= 0.25D0*SM*TT                                             MOD00947
  640.       P(2,20)=-0.25D0*RP*TT                                             MOD00948
  641.       P(3,20)=-0.50D0*RP*SM*T                                           MOD00949
  642.       GO TO 2                                                           MOD00950
  643. 21    H(21)=RR*SS*TT                                                    MOD00951
  644.       P(1,21)=-2.0D0*R*SS*TT                                            MOD00952
  645.       P(2,21)=-2.0D0*S*RR*TT                                            MOD00953
  646.       P(3,21)=-2.0D0*T*RR*SS                                            MOD00954
  647.       GO TO 2                                                           MOD00955
  648. 40    IH=0                                                              MOD00956
  649. 41    IH=IH + 1                                                         MOD00957
  650.       IF (IH.GT.NND9) GO TO 50                                          MOD00958
  651.       II=IH + 7                                                         MOD00959
  652.       IF (II.EQ.IELX) GO TO 51                                          MOD00960
  653. 42    IN=NOD9(IH)                                                       MOD00961
  654.       IF (IN.GT.16) GO TO 46                                            MOD00962
  655.       I1=IN - 8                                                         MOD00963
  656.       I2=IPERM(I1)                                                      MOD00964
  657.       H(I1)=H(I1) - 0.5D0*H(IN)                                         MOD00965
  658.       H(I2)=H(I2) - 0.5D0*H(IN)                                         MOD00966
  659.       H(IH+8)=H(IN)                                                     MOD00967
  660.       DO 45 J=1,3                                                       MOD00968
  661.       P(J,I1)=P(J,I1) - 0.5D0*P(J,IN)                                   MOD00969
  662.       P(J,I2)=P(J,I2) - 0.5D0*P(J,IN)                                   MOD00970
  663. 45    P(J,IH+8)=P(J,IN)                                                 MOD00971
  664.       GO TO 41                                                          MOD00972
  665. 46    IF (IN.EQ.21) GO TO 30                                            MOD00973
  666.       I1=IN - 16                                                        MOD00974
  667.       I2=I1 + 4                                                         MOD00975
  668.       H(I1)=H(I1) - 0.5D0*H(IN)                                         MOD00976
  669.       H(I2)=H(I2) - 0.5D0*H(IN)                                         MOD00977
  670.       H(IH+8)=H(IN)                                                     MOD00978
  671.       DO 47 J=1,3                                                       MOD00979
  672.       P(J,I1)=P(J,I1) - 0.5D0*P(J,IN)                                   MOD00980
  673.       P(J,I2)=P(J,I2) - 0.5D0*P(J,IN)                                   MOD00981
  674. 47    P(J,IH+8)=P(J,IN)                                                 MOD00982
  675.       GO TO 41                                                          MOD00983
  676. 30    IH=0                                                              MOD00984
  677. 31    IH=IH + 1                                                         MOD00985
  678.       IN=NOD9(IH)                                                       MOD00986
  679.       IF (IN.EQ.21) GO TO 35                                            MOD00987
  680.       IF (IN.GT.16) GO TO 33                                            MOD00988
  681.       I1=IN - 8                                                         MOD00989
  682.       I2=IPERM(I1)                                                      MOD00990
  683.       H(I1)=H(I1) + 0.125D0*H(21)                                       MOD00991
  684.       H(I2)=H(I2) + 0.125D0*H(21)                                       MOD00992
  685.       DO 32 J=1,3                                                       MOD00993
  686.       P(J,I1)=P(J,I1) + 0.125D0*P(J,21)                                 MOD00994
  687. 32    P(J,I2)=P(J,I2) + 0.125D0*P(J,21)                                 MOD00995
  688.       GO TO 31                                                          MOD00996
  689. 33    I1=IN - 16                                                        MOD00997
  690.       I2=I1 + 4                                                         MOD00998
  691.       H(I1)=H(I1) + 0.125D0*H(21)                                       MOD00999
  692.       H(I2)=H(I2) + 0.125D0*H(21)                                       MOD01000
  693.       DO 34 J=1,3                                                       MOD01001
  694.       P(J,I1)=P(J,I1) + 0.125D0*P(J,21)                                 MOD01002
  695. 34    P(J,I2)=P(J,I2) + 0.125D0*P(J,21)                                 MOD01003
  696.       GO TO 31                                                          MOD01004
  697. 35    DO 36 I=1,8                                                       MOD01005
  698.       H(I)=H(I) - 0.125D0*H(21)                                         MOD01006
  699.       DO 36 J=1,3                                                       MOD01007
  700. 36    P(J,I)=P(J,I) - 0.125D0*P(J,21)                                   MOD01008
  701.       NN=NND9 + 7                                                       MOD01009
  702.       IF (NN.EQ.8) GO TO 50                                             MOD01010
  703.       DO 38 I=9,NN                                                      MOD01011
  704.       H(I)=H(I) - 0.25D0*H(21)                                          MOD01012
  705.       DO 38 J=1,3                                                       MOD01013
  706. 38    P(J,I)=P(J,I) - 0.25D0*P(J,21)                                    MOD01014
  707.       H(NND9+8)=H(21)                                                   MOD01015
  708.       DO 39 J=1,3                                                       MOD01016
  709. 39    P(J,NND9+8)=P(J,21)                                               MOD01017
  710. 50    IF (IELX.LT.IELD) RETURN                                          MOD01018
  711. 51    DO 100 I=1,3                                                      MOD01019
  712.       DO 100 J=1,3                                                      MOD01020
  713.       DUM=0.0D0                                                         MOD01021
  714.       DO 90 K=1,IELX                                                    MOD01022
  715. 90    DUM=DUM + P(I,K)*XX(J,K)                                          MOD01023
  716. 100   XJ(I,J)=DUM                                                       MOD01024
  717.       DET = XJ(1,1)*XJ(2,2)*XJ(3,3)                                     MOD01025
  718.      1+ XJ(1,2)*XJ(2,3)*XJ(3,1)                                         MOD01026
  719.      2+ XJ(1,3)*XJ(2,1)*XJ(3,2)                                         MOD01027
  720.      3- XJ(1,3)*XJ(2,2)*XJ(3,1)                                         MOD01028
  721.      4- XJ(1,2)*XJ(2,1)*XJ(3,3)                                         MOD01029
  722.      5- XJ(1,1)*XJ(2,3)*XJ(3,2)                                         MOD01030
  723.       IF (DET.GT.1.0E-08) GO TO 110                                     MOD01031
  724.       WRITE (IOUT,2000)NEL,DET                                          MOD01032
  725.       IERR=1                                                            MOD01033
  726.       RETURN                                                            MOD01034
  727. 110   IF (IELX.LT.IELD) GO TO 42                                        MOD01035
  728.       RETURN                                                            MOD01036
  729. 2000  FORMAT(' ++ F ++  NEGATIVE OR ZERO JACOBIAN'                      MOD01037
  730.      1,' ,ELEMENT NUMBER =',I5,' DET =',E15.7)                          MOD01038
  731.       END                                                               MOD01039
  732. CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC       MOD01040
  733.       SUBROUTINE QUADM3  (N,ND,XM,XX,NOD9,IST,IEL,IELX,DE,NND9)         MOD01041
  734. CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC       MOD01042
  735.       IMPLICIT REAL*8(A-H,O-Z)                                          MOD01043
  736.       COMMON/JACHEK/ISEE,IERR                                           MOD01044
  737.       DIMENSION XM(1),XX(3,1),D(63),XG(4,4),WGT(4,4),NOD9(1)            MOD01045
  738.       DIMENSION H(21),P(3,21),XJ(3,3)                                   MOD01046
  739.       DATA XG / 0.0D0,         0.0D0,         0.0D0,         0.0D0,     MOD01047
  740.      1-.5773502691896D0, .5773502691896D0,         0.D0,         0.D0,  MOD01048
  741.      2-.7745966692415D0, .0000000000000D0, .7745966692415D0,      0.D0, MOD01049
  742.      3-.8611363115941D0,-.3399810435849D0, .3399810435849D0,            MOD01050
  743.      4.8611363115941D0/                                                 MOD01051
  744.       DATA WGT / 2.000D0,     0.D0,     0.D0,     0.D0,                 MOD01052
  745.      11.0000000000000D0,1.0000000000000D0,     0.D0,     0.D0,          MOD01053
  746.      2.5555555555556D0, .8888888888889D0, .5555555555556D0,     0.D0,   MOD01054
  747.      3.3478548451375D0, .6521451548625D0, .6521451548625D0,             MOD01055
  748.      4.3478548451375D0/                                                 MOD01056
  749.       NINTM=3                                                           MOD01057
  750.       IERR=0                                                            MOD01058
  751.       NINTZM=3                                                          MOD01059
  752.       DO 7 I=1 ,IEL                                                     MOD01060
  753. 7     XM(I)=0.                                                          MOD01061
  754. 10    DO 900 LX=1,NINTM                                                 MOD01062
  755.       R=XG(LX,NINTM)                                                    MOD01063
  756.       DO 900 LY=1,NINTM                                                 MOD01064
  757.       S=XG(LY,NINTM)                                                    MOD01065
  758.       DO 900 LZ=1,NINTZM                                                MOD01066
  759.       T=XG(LZ,NINTZM)                                                   MOD01067
  760.       WT=WGT(LX,NINTM)*WGT(LY,NINTM)*WGT(LZ,NINTZM)                     MOD01068
  761.       IELD = IELX                                                       MOD01069
  762.       CALL FUNCT (R,S,T,H,P,NOD9,XJ,DET,XX,IEL,NND9,IELX,IELD)          MOD01070
  763.       IF(ISEE.EQ.1.AND.IERR.EQ.0)GO TO 900                              MOD01071
  764.       IF(ISEE.EQ.1.AND.IERR.EQ.1)RETURN                                 MOD01072
  765.       FAC = WT*DET*DE                                                   MOD01073
  766.       DO 325 I=1,IEL                                                    MOD01074
  767.       FACM=FAC/IEL                                                      MOD01075
  768. 325   XM(I)=XM(I) + FACM                                                MOD01076
  769. 900   CONTINUE                                                          MOD01077
  770.       RETURN                                                            MOD01078
  771.       END                                                               MOD01079
  772. CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC         MOD01080
  773.