home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 9 / 09.iso / e / e003 / 6.ddi / ELSTF11.FOR < prev    next >
Encoding:
Text File  |  1987-06-12  |  73.6 KB  |  920 lines

  1.       SUBROUTINE  TDFE(ID,PROP1,PROP2,PROP3,PROP4,PROP5,PROP6,PROP7,LM, 00290970
  2.      $S,RF,XM,SA,SF,TEMPD,KK1,KK2,KK3,KK4,KK5,KK6,KK7,IX,IA,NEL,NUMNP,  00290980
  3.      $NDMX,NSMX,MXDF,MMA)                                               00290990
  4.       IMPLICIT REAL*8 (A-H,O-Z)                                         00291000
  5.       REAL*8  ID,LM                                                     00291010
  6.       REAL*8MODUE                                                       00291020
  7.       COMMON /QTSARG/ SS(136),D(4,4),P(2,8),YZ(16),H(8),XX(16),TAU(4),  00291030
  8.      $PROP(10),B(4,16),XJ(2,2),HP(16),UP(16),THIC,BET,DE,DET,NOD(8),    00291040
  9.      $NOD5(8),IEL,NND5,ITYP2D,IMASS,MODEL,MEL,NINT,NINTOP,RRQTSA(662)   R0291050
  10.       COMMON /ELTEMP/TAVG,RRELTE(102)                                   R0291060
  11.       COMMON /CG/ SCG(4),RRCG(2)                                        R0291070
  12.       COMMON /PREP/ XZ(2),KSKIP                                         00291080
  13.      $,NDYN,NRPREP(15)                                                  R0291090
  14.       COMMON /TRASH/ BS(4,16),H4(4),TM(4,4,2),ASCN,BSCN,CSCN,ASMN,      00291100
  15.      1BSMN,RS,FN(8,2),IDK,LST,RRTRAS(367)                               R0291110
  16.       COMMON /AMB/ GRAV,REFT,JROT                                       00291120
  17.       COMMON /ELPAR/ XPAR(14),NZQ,MBAND,NZD(8),N2P,N3P,NMRI,NTRI,N1P    00291130
  18.      & ,NRELPA(43)                                                      R0291131
  19.       COMMON/MASS/LMASS                                                 00291140
  20.       DIMENSION LM(MXDF),RF(MXDF,KK6),S(MXDF,MXDF),SA(NSMX,MXDF),       00291150
  21.      $SF(NSMX,KK6),TEMPD(NDMX,KK6)                                      00291160
  22.       DIMENSION PROP6(KK6,7),ITABLE(13),PROP3(1),PROP7(KK7,10)          00291170
  23.       DIMENSION PROP5(KK5,7),XM(MXDF,MMA)                               00291180
  24.       DIMENSION IX(13),ID(NUMNP,3)                                      00291190
  25.       COMMON A(1)                                                       00291200
  26.       COMMON /ICM/ICOMP,MMRI,MTRI,M1P,M2P,M3P                           00291210
  27.       DIMENSION EVAL(13,2)                                              00291220
  28.       COMMON /GASS/ XK(4,4),WGT(4,4),IPERM(3)                           R0291230
  29.       DATA EVAL/                                                        00291240
  30.      $ 1.0,-1.0,-1.0, 1.0, 0.0,-1.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 00291250
  31.      $ 1.0, 1.0,-1.0,-1.0, 1.0, 0.0,-1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0/ 00291260
  32.       LL=KK6                                                            00291270
  33.       MEL=NEL                                                           00291280
  34.       IMASS=1                                                           00291290
  35.       DO 100 I=2,9                                                      00291300
  36.   100 ITABLE(I)=0                                                       00291310
  37.       ITABLE(1)=9                                                       00291320
  38.       IF(IX(4).EQ.0) IX(4)=IX(3)                                        00291330
  39.       LST=0                                                             00291340
  40.       IF(IX(4).EQ.IX(3).AND.IX(7).EQ.IX(3)) LST=1                       00291350
  41.       J=1                                                               00291360
  42.       IEL=0                                                             00291370
  43.       DO 110 I=1,8                                                      00291380
  44.       IF(IX(I).EQ.0) GO TO 110                                          00291390
  45.       IEL=IEL+1                                                         00291400
  46.       J=J+1                                                             00291410
  47.       ITABLE(J)=I                                                       00291420
  48.   110 NOD(I)=IX(I)                                                      00291430
  49.       IF (IEL.EQ.4) GO TO 130                                           00291440
  50.       II=0                                                              00291450
  51.       DO 120 I=5,8                                                      00291460
  52.       NN=NOD(I)                                                         00291470
  53.       IF (NN.EQ.0) GO TO 120                                            00291480
  54.       II=II + 1                                                         00291490
  55.       NOD5 (II)=I                                                       00291500
  56.   120 CONTINUE                                                          00291510
  57.   130 CONTINUE                                                          00291520
  58.   140 I2=0                                                              00291530
  59.       DO 160 I=1,IEL                                                    00291540
  60.       II=NOD (I)                                                        00291550
  61.       IF (I.LE.4) GO TO 150                                             00291560
  62.       JJ=NOD5 (I-4)                                                     00291570
  63.       II=NOD (JJ)                                                       00291580
  64.   150 I2=I2 + 2                                                         00291590
  65.       CALL UNPKID(ID,NUMNP,LM(I2-1),W,2,II,2)                           00291600
  66.       CALL UNPKID(ID,NUMNP,LM(I2)  ,W,2,II,3)                           00291610
  67.       CALL UNPKID(ID,NUMNP,W,YZ(I2-1),1,II,2)                           00291620
  68.   160 CALL UNPKID(ID,NUMNP,W,YZ(I2)  ,1,II,3)                           00291630
  69.         IF(JROT.EQ.0) GO TO 164                                         00291640
  70.         I2=-1                                                           00291650
  71.         DO 162 I=1,IEL                                                  00291660
  72.         I2=I2+2                                                         00291670
  73. 162     CALL CENT(YZ(I2),YZ(I2+1),FN(I,1),FN(I,2))                      00291680
  74. 164   CONTINUE                                                          00291690
  75.       NS=J*4                                                            00291700
  76.       IF(IX(3).EQ.IX(4)) NS=4                                           00291710
  77.       IF(IEL.LE.4) NS=4                                                 00291720
  78.       NTH=IX(10)                                                        00291730
  79.       THIC=1.0E0                                                        00291740
  80.       IF(NTH.LE.KK3.OR.IX(13).NE.12) GO TO 180                          00291750
  81.       WRITE(6,170)NEL                                                   00291760
  82.   170 FORMAT(//20X, 30HTHE THICKNESS TYPE FOR ELEMENT,I5/20X, 36HDOES NO00291770
  83.      $T EXIST, EXECUTION WILL STOP.//)                                  00291780
  84.       KSKIP=1                                                           00291790
  85.       RETURN                                                            00291800
  86.   180 CONTINUE                                                          00291810
  87.       IF(IX(13).EQ.12) THIC=PROP3(NTH)                                  00291820
  88.       ITYP2D=0                                                          00291830
  89.       IF(IX(13).EQ.12) ITYP2D=2                                         00291840
  90.       IF(IX(13).EQ.13) ITYP2D=1                                         00291850
  91.       BET=0.00E0                                                        00291860
  92.       MAT=IX(9)                                                         00291870
  93.       IF(MAT.GT.80) GO TO  210                                          00291880
  94.       MODEL=1                                                           00291890
  95.       IF(MAT.GT.18.AND.NTRI.EQ.0) WRITE(6,190)NEL                       00291900
  96.       IF(MAT.GT.18.AND.NTRI.EQ.0) MAT=1                                 00291910
  97.   190 FORMAT (//20X, 45HNO USER SUPPLIED MATERIALS ARE AVAIL. FOR EL.,I500291920
  98.      $/)                                                                00291930
  99.       IF(MAT.GT.18) GO TO 200                                           00291940
  100.       PROP(1)= MODUE(TAVG,MAT)                                          00291950
  101.       PROP(2)=PRATO (TAVG,MAT)                                          00291960
  102.       PROP(8)=DENS(TAVG,MAT)/1728.0E0/GRAV                              00291970
  103.       PROP(9)=ALPHZM(TAVG,MAT)                                          00291980
  104.       IF(ITYP2D.EQ.1) PROP(9)=PROP(9)*(1+PROP(2))                       00291990
  105.       GO TO 240                                                         00292000
  106.   200 CALL MATEV(MAT,NMRI,NTRI,TAVG,PROP(1),PROP(2),PROP(9),PROP(8),    00292010
  107.      $A(N1P),A(N2P),A(N3P),NEL)                                         00292020
  108.       PROP(8)=PROP(8)/GRAV                                              00292030
  109.       GO TO 240                                                         00292040
  110.   210 CONTINUE                                                          00292050
  111.       IF(ICOMP.NE.1) GO TO 215                                          00292060
  112.       CALL MATEVA(MAT,MMRI,MTRI,TAVG,A(M1P),A(M2P),A(M3P),NEL,PROP)     00292070
  113.       PROP(8)=PROP(8)/GRAV                                              00292080
  114.       MODEL=2                                                           00292090
  115.       BET=0.0                                                           00292100
  116.       GO TO 240                                                         00292110
  117.   215 CONTINUE                                                          00292120
  118.       I=MAT-80                                                          00292130
  119.       MODEL=2                                                           00292140
  120.       IF(I.GT.KK7) WRITE(6,220)NEL                                      00292150
  121.       IF(I.GT.KK7) KSKIP=1                                              00292160
  122.       IF(I.GT.KK7) RETURN                                               00292170
  123.   220 FORMAT(/20X, 51HA ANISOTROPIC MATERIAL IS NOT AVAILABLE FOR ELEMEN00292180
  124.      $T ,I5//)                                                          00292190
  125.       BET=PROP7(I,10)                                                   00292200
  126.       DO 230 JK=1,9                                                     00292210
  127.   230 PROP(JK)=PROP7(I,JK)                                              00292220
  128.       PROP(8)=PROP(8)/GRAV                                              00292230
  129.   240 CONTINUE                                                          00292240
  130.       NINT=3                                                            00292250
  131.       NINTOP=IX(12)                                                     00292260
  132.       IF(NDYN.EQ.7) NINTOP=9                                            00292270
  133.       IF(NINTOP.GT.9.AND.NINTOP.LE.2) NINT=2                            00292280
  134.       IF(NINTOP.GT.0.AND.NINTOP.LE.2) NINTOP=2                          00292290
  135.       IF(IEL.LE.4) NINT=2                                               00292300
  136.       DO 245 I=1,2                                                      00292310
  137.       EVAL(10,I)=XK(NINT,NINT)                                          00292320
  138.       EVAL(12,I)=-EVAL(10,I)                                            00292330
  139.       EVAL(13,I)= EVAL(10,I)                                            00292340
  140.       EVAL(13,2)=-EVAL(10,I)                                            00292350
  141.   245 EVAL(11,I)=-EVAL(13,I)                                            00292360
  142.       IF(MAT.EQ.19.OR.MAT.EQ.20) NINT=1                                 00292370
  143.       IF(NINT.EQ.1) MODEL=3                                             00292380
  144.       ND=2*IEL                                                          00292390
  145.       NND5=IEL - 4                                                      00292400
  146.       DE=PROP(8)                                                        00292410
  147.       DO 250 I=1,136                                                    00292420
  148.   250 SS(I)=0.0E0                                                       00292430
  149.       CALL  QUADS(ND,SS,RF,PROP6,LL,TEMPD,NDMX,MXDF,REFT,XM)            00292440
  150.       IF(KSKIP.EQ.1) RETURN                                             00292450
  151.       IF(LST.EQ.0) GO TO 255                                            00292460
  152.       NS=20                                                             00292470
  153.       ITABLE(5)=5                                                       00292480
  154.       IF(IX(6).GT.0) ITABLE(6)=6                                        00292490
  155.       IF(IX(6).GT.0) NS=NS+4                                            00292500
  156.       IF(IX(8).LE.0) GO TO 255                                          00292510
  157.       NS=NS+4                                                           00292520
  158.       IF(IX(6).EQ.0) ITABLE(6)=8                                        00292530
  159.       IF(IX(6).GT.0) ITABLE(7)=8                                        00292540
  160.   255 CONTINUE                                                          00292550
  161.       KK=0                                                              00292560
  162.       DO 260 I=1,ND                                                     00292570
  163.       DO 260 J=I,ND                                                     00292580
  164.       KK=KK+1                                                           00292590
  165.   260 S(J,I)=SS(KK)                                                     00292600
  166.       IF(NINT.EQ.1) GO TO 380                                           00292610
  167.       IF(NS.LE.4) GO TO 265                                             00292620
  168.       J=NS/4                                                            00292630
  169.       DO 262 I=10,13                                                    00292640
  170.       J=J+1                                                             00292650
  171.   262 ITABLE(J)=I                                                       00292660
  172.       NS=NS+16                                                          00292670
  173.   265 CONTINUE                                                          00292680
  174.       KK=NS/4                                                           00292690
  175.       JJ=KK-3                                                           00292700
  176.       IF(NS.EQ.4) JJ=1                                                  00292710
  177.       DO 320 II=JJ,KK                                                   00292720
  178.       I4=4*(II-1)                                                       00292730
  179.       I=ITABLE(II)                                                      00292740
  180.       CALL DERIQ(NEL,YZ,B,DET,EVAL(I,1),EVAL(I,2),X1BAR,NOD5,1)         00292750
  181.       DO 300 L=1,LL                                                     00292760
  182.       TOPT=PROP6(L,2)                                                   00292770
  183.       IF(TOPT.EQ.0)  GO TO 300                                          00292780
  184.       IF(TOPT.EQ.2) TEMP=PROP6(L,3)                                     00292790
  185.       IF(TOPT.NE.1) GO TO 280                                           00292800
  186.       TEMP=0.0E0                                                        00292810
  187.       KL=0                                                              00292820
  188.       DO 270 K=1,8                                                      00292830
  189.       IF(IX(K).EQ.0) GO TO 270                                          00292840
  190.       KL=KL+1                                                           00292850
  191.       TEMP=TEMP+H(KL)*TEMPD(K,L)                                        00292860
  192.   270 CONTINUE                                                          00292870
  193.   280 CONTINUE                                                          00292880
  194.       TEMP=TEMP-REFT                                                    00292890
  195.       DO 290 LK=1,2                                                     00292900
  196.       IM=I4+LK                                                          00292910
  197.   290 SF(IM,L)=-TAU(LK)*TEMP                                            00292920
  198.       IF(ITYP2D.EQ.2) GO TO 300                                         00292930
  199.       IM=4+4*(II-1)                                                     00292940
  200.       SF(IM,L)=-TAU(4)*TEMP                                             00292950
  201.   300 CONTINUE                                                          00292960
  202.       DO 310 LK=1,4                                                     00292970
  203.       IM=I4+LK                                                          00292980
  204.       DO 310 MK=1,ND                                                    00292990
  205.       DO 310 NK=1,4                                                     00293000
  206.       SA(IM,MK)=SA(IM,MK)+D(LK,NK)*B(NK,MK)                             00293010
  207.   310 CONTINUE                                                          00293020
  208.       IF(I.LT.10) GO TO 320                                             00293030
  209.       TEMP=0.0                                                          00293040
  210.       X1BAR=0.0                                                         00293050
  211.       DO 312 LK=1,IEL                                                   00293060
  212.       X1BAR=X1BAR+H(LK)*YZ(2*LK-1)                                      00293070
  213.   312 TEMP=TEMP+H(LK)*YZ(LK*2)                                          00293080
  214.       TEMP=TEMP/XZ(1)+XZ(2)                                             00293090
  215.       X1BAR=X1BAR/XZ(1)+XZ(2)                                           00293100
  216.       MK=SF(I4+3,1)                                                     00293110
  217.       NK=SF(I4+4,1)                                                     00293120
  218.       SF(I4+3,1)=MK+X1BAR                                               00293130
  219.       SF(I4+4,1)=NK+TEMP                                                00293140
  220.   320 CONTINUE                                                          00293150
  221.       IF(NS.EQ.4) GO TO 328                                             00293160
  222.       RS=1.0/XK(NINT,NINT)                                              00293170
  223.       RSF=0.0                                                           00293180
  224.       IF(NINT.EQ.3) RSF=1.0/3.0                                         00293190
  225.       ASCN=(1.0+RS/2.0)-RSF                                             00293200
  226.       BSCN=-0.5+RSF                                                     00293210
  227.       CSCN=2.0-ASCN-2.0*RSF                                             00293220
  228.       ASMN=(1.0+RS)/4.0                                                 00293230
  229.       BSMN=0.5-ASMN                                                     00293240
  230.       DO 321 I=1,4                                                      00293250
  231.       TM(I,I,1)=ASCN                                                    00293260
  232.   321 TM(I,I,2)=ASMN                                                    00293270
  233.       DO 322 I=1,3                                                      00293280
  234.       J=I+1                                                             00293290
  235.       TM(I,J,1)=BSCN                                                    00293300
  236.       TM(J,I,1)=BSCN                                                    00293310
  237.       TM(I,J,2)=ASMN                                                    00293320
  238.   322 TM(J,I,2)=BSMN                                                    00293330
  239.       DO 323 I=1,2                                                      00293340
  240.       J=I+2                                                             00293350
  241.       TM(I,J,1)=CSCN                                                    00293360
  242.       TM(J,I,1)=CSCN                                                    00293370
  243.       TM(I,J,2)=BSMN                                                    00293380
  244.   323 TM(J,I,2)=BSMN                                                    00293390
  245.       TM(1,4,1)=BSCN                                                    00293400
  246.       TM(4,1,1)=BSCN                                                    00293410
  247.       TM(4,1,2)=ASMN                                                    00293420
  248.       TM(1,4,2)=BSMN                                                    00293430
  249.       DO 325 I=1,4                                                      00293440
  250.       LK=(KK+I)*4-20                                                    00293450
  251.       DO 325 J=1,4                                                      00293460
  252.       II=LK+J                                                           00293470
  253.       DO 324 L=1,LL                                                     00293480
  254.   324 SF(J,L)=SF(J,L)+0.25*SF(II,L)                                     00293490
  255.       DO 325 K=1,ND                                                     00293500
  256.   325 SA(J,K)=SA(J,K)+0.25*SA(II,K)                                     00293510
  257.       JJ=JJ-1                                                           00293520
  258.       DO 327 NK=2,JJ                                                    00293530
  259.       IM=1                                                              00293540
  260.       IF(ITABLE(NK).GT.4) IM=2                                          00293550
  261.       IROW=ITABLE(NK)-4*IM+4                                            00293560
  262.       DO 327 I=1,4                                                      00293570
  263.       TEMP=TM(IROW,I,IM)                                                00293580
  264.       KL=NK*4-4                                                         00293590
  265.       LK=(KK+I)*4-20                                                    00293600
  266.       DO 327 J=1,4                                                      00293610
  267.       II=LK+J                                                           00293620
  268.       MK=KL+J                                                           00293630
  269.       DO 326 L=1,LL                                                     00293640
  270.   326 SF(MK,L)=SF(MK,L)+TEMP*SF(II,L)                                   00293650
  271.       DO 327 K=1,ND                                                     00293660
  272.   327 SA(MK,K)=SA(MK,K)+TEMP*SA(II,K)                                   00293670
  273.   328 CONTINUE                                                          00293680
  274.       IF(DE.EQ.0.0) GO TO 341                                           00293690
  275.       IF(LMASS.NE.1) GO TO 1330                                         00293700
  276.       DO 1300 I=1,ND                                                    00293710
  277.  1300 XM(I,I)=XM(I,1)                                                   00293720
  278.       DO 1320 I=1,ND                                                    00293730
  279.       IRK=I+1                                                           00293740
  280.       IF(IRK.GT.ND) GO TO 1320                                          00293750
  281.       DO 1310 J=IRK,ND                                                  00293760
  282.       XM(I,J)=0.0E0                                                     00293770
  283.  1310 XM(J,I)=XM(I,J)                                                   00293780
  284.  1320 CONTINUE                                                          00293790
  285.  1330 CONTINUE                                                          00293800
  286.       DO 340 I=1,LL                                                     00293810
  287.         IF(JROT.EQ.1) GO TO 334                                         00293820
  288.       IF(PROP6(I,6).EQ.0.0E0.AND.PROP6(I,7).EQ.0.0E0) GO TO 340         00293830
  289.       ACZ=PROP6(I,7)*GRAV                                               00293840
  290.       ACR=PROP6(I,6)                                                    00293850
  291.       IF(ITYP2D.EQ.0) ACR=PROP6(I,6)**2/GRAV                            00293860
  292.       ACR=ACR*GRAV                                                      00293870
  293.       DO 330 J=1,ND,2                                                   00293880
  294.       ACC=ACR                                                           00293890
  295.       IF(ITYP2D.EQ.0) ACC=ACR*YZ(J)                                     00293900
  296.       IRK=1                                                             00293910
  297.       IF(LMASS.EQ.1)IRK=J                                               00293920
  298.       RF(J,I)=RF(J,I)+ACC*XM(J,IRK)                                     00293930
  299.       IRK=1                                                             00293940
  300.       IF(LMASS.EQ.1)IRK=J+1                                             00293950
  301.   330 RF(J+1,I)=RF(J+1,I)+ACZ*XM(J+1,IRK)                               00293960
  302.         GO TO 340                                                       00293970
  303. 334     ACR=PROP6(I,5)                                                  00293980
  304.         ACC=PROP6(I,6)                                                  00293990
  305.         IM2=-1                                                          00294000
  306.       IRK1=1                                                            00294010
  307.       IRK2=1                                                            00294020
  308.         DO 335 J=1,IEL                                                  00294030
  309.         IM2=IM2+2                                                       00294040
  310.         IM1=IM2+1                                                       00294050
  311.       IF(LMASS.NE.1) GO TO 1350                                         00294060
  312.       IRK1=IM1                                                          00294070
  313.       IRK2=IM2                                                          00294080
  314.  1350 CONTINUE                                                          00294090
  315.         RF(IM2,I)=RF(IM2,I)+XM(IM2,IRK2)*(ACR*FN(J,1)+ACC*FN(J,2))      00294100
  316. 335     RF(IM1,I)=RF(IM1,I)+XM(IM1,IRK1)*(ACR*FN(J,2)-ACC*FN(J,1))      00294110
  317.   340 CONTINUE                                                          00294120
  318.   341 CONTINUE                                                          00294130
  319.       NPR=IX(11)                                                        00294140
  320.       IF(NPR.LE.0) GO TO 380                                            00294150
  321.       IF(NPR.LE.KK5) GO TO 360                                          00294160
  322.       WRITE(6,350)NEL                                                   00294170
  323.   350 FORMAT(//20X, 44HTHE PRESSURE TYPE DOES NOT EXIST FOR ELEMENT,I5/ 00294180
  324.      $  20X, 21H EXECUTION WILL STOP.//)                                00294190
  325.       KSKIP=1                                                           00294200
  326.       RETURN                                                            00294210
  327.   360 DO 370 I=1,7                                                      00294220
  328.   370 XX(I)=PROP5(NPR,I)                                                00294230
  329.       CALL       PLD2D(PROP6,LL,RF,MXDF)                                00294240
  330.       IF(KSKIP.EQ.1) RETURN                                             00294250
  331.   380 CONTINUE                                                          00294260
  332.       IF(LST.LE.0) GO TO 381                                            00294270
  333.       IEL=6                                                             00294280
  334.       LM(7)=0.                                                          00294290
  335.       LM(8)=0.                                                          00294300
  336.       LM(13)=0.                                                         00294310
  337.       LM(14)=0.                                                         00294320
  338.   381 CONTINUE                                                          00294330
  339.       IF(DE.EQ.0.0) GO TO 391                                           00294340
  340.       IF(NDYN.NE.7) GO TO 388                                           00294350
  341.       WT=0.0                                                            00294360
  342.       IRK=1                                                             00294370
  343.       DO 382 IM=2,ND,2                                                  00294380
  344.       IF(LMASS.EQ.1)IRK=IM                                              00294390
  345.   382 WT=WT+XM(IM,IRK)                                                  00294400
  346.       WT=WT/IEL                                                         00294410
  347.       IRK=1                                                             00294420
  348.       DO 383 IM=2,ND,2                                                  00294430
  349.       IF(LMASS.EQ.1)IRK=IM                                              00294440
  350.       XM(IM,IRK)=WT                                                     00294450
  351.       IRK=1                                                             00294460
  352.       IF(LMASS.EQ.1)IRK=IM-1                                            00294470
  353.   383 XM(IM-1,IRK)=WT                                                   00294480
  354.   388 CONTINUE                                                          00294490
  355.       XMCG=2.0E0*3.14159265E0                                           00294500
  356.       IF(ITYP2D.NE.0) XMCG=1.0                                          00294510
  357.       XMY=1.0                                                           00294520
  358.       IF(ITYP2D.EQ.0)XMY=0.0                                            00294530
  359.       IRK=1                                                             00294540
  360.       DO 390 J=2,ND,2                                                   00294550
  361.       IF(LMASS.EQ.1)IRK=J                                               00294560
  362.       SCG(2)=SCG(2)+XMY*YZ(J-1)*XM(J,IRK)                               00294570
  363.       SCG(3)=SCG(3)+XMCG*YZ(J)*XM(J,IRK)                                00294580
  364.   390 SCG(4)=SCG(4)+XMCG*XM(J,IRK)                                      00294590
  365.   391 CONTINUE                                                          00294600
  366.       IF(NINT.EQ.1) GO TO 401                                           00294610
  367.       IF(NND5.EQ.0) GO TO 401                                           00294620
  368.       L=(NS-16)/4                                                       00294630
  369.       DO 400 I=2,L                                                      00294640
  370.       J=ITABLE(I)                                                       00294650
  371.       KNT=(I-1)*4+3                                                     00294660
  372.   400 SF(KNT,1)=IX(J)/10000.                                            00294670
  373.   401 CONTINUE                                                          00294680
  374.       CALL WRITET(MBAND,NDIF,IX(13),ND,NS,LM,SA)                        00294690
  375.       RETURN                                                            00294700
  376.       END                                                               00294710
  377.       SUBROUTINE QUADS (ND,S,RF,PROP6,LL,TEMPD,NDMX,MXDF,REFT,XM)       00192410
  378.       IMPLICIT REAL*8 (A-H,O-Z)                                         00192420
  379.       COMMON /PREP/ FZ(2),KSKIP,RRPREP(8)                               R0192430
  380.       COMMON /QTSARG/ SS(136),D(4,4),P(2,8),YZ(16),H(8),XX(16),TAU(4),  00192440
  381.      $PROP(10),B(4,16),XJ(2,2),HP(16),UP(16),THIC,BET,DE,DET,NOD(8),    00192450
  382.      $NOD5(8),IEL,NND5,ITYP2D,IMASS,MODEL,NEL,NINT,NINTOP,RRQTSA(662)   R0192460
  383.       COMMON /TRASH/ BS(4,16),H4(4),RRTRAS(422)                         R0192470
  384.       COMMON/GASS/XG(4,4),WGT(4,4),IPERM(3)                             R0192480
  385.       DIMENSION DB(4)                                                   00192490
  386.       DIMENSION S(1),RF(MXDF,LL),TEMPD(NDMX,LL),PROP6(LL,7)             00192500
  387.       DIMENSION XM(1)                                                   00192510
  388.       IST=4                                                             00192520
  389.       IF (ITYP2D.NE.0) IST=3                                            00192530
  390.       NINTR=NINT                                                        00192540
  391.       NINTS=NINT                                                        00192550
  392.       IF(NINTOP.EQ.1) NINTR=NINT-1                                      00192560
  393.       IF(NINTOP.EQ.2) NINTS=NINT-1                                      00192570
  394.       IF(NINT.EQ.1) NINTR=3                                             00192580
  395.       IF(NINT.EQ.1) NINTS=3                                             00192590
  396.       ZER=0.0E0                                                         00192600
  397.       WGH=0.0                                                           00192610
  398.       CALL STSTL (NEL,YZ,PROP,D)                                        00192620
  399.       IF(KSKIP.EQ.1) RETURN                                             00192630
  400.       DO 340 LX=1,NINTR                                                 00192640
  401.       E1=XG(LX,NINTR)                                                   00192650
  402.       DO 340 LY=1,NINTS                                                 00192660
  403.       E2=XG(LY,NINTS)                                                   00192670
  404.       WT=WGT(LX,NINTR)*WGT(LY,NINTS)                                    00192680
  405.       CALL MEMSET(ZER,BS,64)                                            00192690
  406.       CALL DERIQ (NEL,YZ,B,DET,E1,E2,XBAR,NOD5,0)                       00192700
  407.       IF(KSKIP.EQ.1) RETURN                                             00192710
  408.       IF (IST.EQ.3) XBAR=THIC                                           00192720
  409.       FAC=WT*XBAR*DET                                                   00192730
  410.       IF(DE.LE.0.0) GO TO 110                                           00192740
  411.       FACM=FAC*DE                                                       00192750
  412.       IF(NINTOP.EQ.9) GO TO 101                                         00192760
  413.       DO 100 I=1,IEL                                                    00192770
  414.       IK=2*I-1                                                          00192780
  415.   100 XM(IK)=XM(IK)+FACM*H(I)                                           00192790
  416.       GO TO 110                                                         00192800
  417.   101 IK=1                                                              00192810
  418.       DO 105 I=1,ND,2                                                   00192820
  419.       XM(I)=XM(I)+H(IK)*H(IK)*FACM                                      00192830
  420.   105 IK=IK+1                                                           00192840
  421.       WGH=WGH+FACM                                                      00192850
  422.   110 CONTINUE                                                          00192860
  423.       KL=1                                                              00192870
  424.       DO 140 J=1,ND,2                                                   00192880
  425.       DO 120 K=1,3                                                      00192890
  426.       DB(K)=D(K,1)*B(1,J)                                               00192900
  427.       BS(K,J)=DB(K)                                                     00192910
  428.   120 DB(K)=DB(K)*FAC                                                   00192920
  429.       DB(3)=DB(3)+D(3,3)*B(3,J)*FAC                                     00192930
  430.       DO 130 I=J,ND,2                                                   00192940
  431.       S(KL)=S(KL) + B(1,I)*DB(1) + B(3,I)*DB(3)                         00192950
  432.       KL=KL + 1                                                         00192960
  433.       S(KL)=S(KL) + B(2,I+1)*DB(2) + B(3,I+1)*DB(3)                     00192970
  434.   130 KL=KL + 1                                                         00192980
  435.   140 KL=KL + ND - J                                                    00192990
  436.       KL=ND + 1                                                         00193000
  437.       DO 190 J=2,ND,2                                                   00193010
  438.       DO 150 K=1,3                                                      00193020
  439.       DB(K)=D(K,2)*B(2,J)                                               00193030
  440.       BS(K,J)=DB(K)                                                     00193040
  441.   150 DB(K)=DB(K)*FAC                                                   00193050
  442.       DB(3)=DB(3)+D(3,3)*B(3,J)*FAC                                     00193060
  443.       KS=KL                                                             00193070
  444.       DO 160 I=J,ND,2                                                   00193080
  445.       S(KS)=S(KS) + B(2,I)*DB(2) + B(3,I)*DB(3)                         00193090
  446.   160 KS=KS + 2                                                         00193100
  447.       IF (J-ND) 170,190,190                                             00193110
  448.   170 K=J + 1                                                           00193120
  449.       KS=KL + 1                                                         00193130
  450.       DO 180 II=K,ND,2                                                  00193140
  451.       S(KS)=S(KS) + B(1,II)*DB(1) + B(3,II)*DB(3)                       00193150
  452.   180 KS=KS + 2                                                         00193160
  453.   190 KL=KL + 2*ND - 2*J + 1                                            00193170
  454.       IF (IST.EQ.3) GO TO 250                                           00193180
  455.       KL=1                                                              00193190
  456.       DO 220 J=1,ND,2                                                   00193200
  457.       DB(1)=D(1,4)*B(4,J)                                               00193210
  458.       DB(2)=D(2,4)*B(4,J)                                               00193220
  459.       DB(3)=D(3,4)*B(4,J)                                               00193230
  460.       DB(4)=D(4,1)*B(1,J) + D(4,3)*B(3,J) + D(4,4)*B(4,J)               00193240
  461.       BS(1,J)=BS(1,J)+DB(1)                                             00193250
  462.       BS(2,J)=BS(2,J)+DB(2)                                             00193260
  463.       BS(4,J)=DB(4)                                                     00193270
  464.       BS(4,J)=BS(4,J)+D(4,2)*B(2,J)                                     00193280
  465.       DO 200 I=1,4                                                      00193290
  466.   200 DB(I)=DB(I)*FAC                                                   00193300
  467.       DO 210 I=J,ND,2                                                   00193310
  468.       S(KL)=S(KL) + B(1,I)*DB(1) + B(3,I)*DB(3) + B(4,I)*DB(4)          00193320
  469.       KL=KL + 1                                                         00193330
  470.       S(KL)=S(KL) + B(2,I+1)*DB(2) + B(3,I+1)*DB(3)                     00193340
  471.   210 KL=KL + 1                                                         00193350
  472.   220 KL=KL + ND - J                                                    00193360
  473.       KL=ND + 1                                                         00193370
  474.       DO 240 J=2,ND,2                                                   00193380
  475.       DB(4)=D(4,2)*B(2,J) + D(4,3)*B(3,J)                               00193390
  476.       BS(4,J)=DB(4)                                                     00193400
  477.       DB(4)=DB(4)*FAC                                                   00193410
  478.       DO 230 I=J,ND                                                     00193420
  479.       S(KL)=S(KL) + B(4,I)*DB(4)                                        00193430
  480.   230 KL=KL + 1                                                         00193440
  481.   240 KL=KL + ND - J                                                    00193450
  482.   250 IF(ITYP2D.NE.1) GO TO 280                                         00193460
  483.       DO 260 I=1,ND,2                                                   00193470
  484.   260 BS(4,I)=D(4,1)*B(1,I)                                             00193480
  485.       DO 270 I=2,ND,2                                                   00193490
  486.   270 BS(4,I)=D(4,2)*B(2,I)                                             00193500
  487.   280 CONTINUE                                                          00193510
  488.       DO 330 J=1,LL                                                     00193520
  489.       TOPT=PROP6(J,2)                                                   00193530
  490.       IF(TOPT.EQ.0) GO TO 330                                           00193540
  491.       IF(TOPT.EQ.2) TEMP=PROP6(J,3)                                     00193550
  492.       IF(TOPT.NE.1) GO TO 300                                           00193560
  493.       TEMP=0.0E0                                                        00193570
  494.       KL=0                                                              00193580
  495.       DO 290 K=1,8                                                      00193590
  496.       IF(NOD(K).EQ.0) GO TO 290                                         00193600
  497.       KL=KL+1                                                           00193610
  498.       TEMP=TEMP+ H(KL)*TEMPD(K,J)                                       00193620
  499.   290 CONTINUE                                                          00193630
  500.   300 TEMP=TEMP-REFT                                                    00193640
  501.       FAT=FAC*TEMP*PROP(9)                                              00193650
  502.       DO 310 K=1,ND                                                     00193660
  503.       DO 310 M=1,2                                                      00193670
  504.   310 RF(K,J)=RF(K,J)+FAT*BS(M,K)                                       00193680
  505.       IF(ITYP2D.EQ.2) GO TO 330                                         00193690
  506.       DO 320 K=1,ND                                                     00193700
  507.   320 RF(K,J)=RF(K,J)+FAT*BS(4,K)                                       00193710
  508.   330 CONTINUE                                                          00193720
  509.   340 CONTINUE                                                          00193730
  510.       IF(DE.LE.0.0) RETURN                                              00193740
  511.       TEMP=0.0                                                          00193750
  512.       DO 345 I=1,ND,2                                                   00193760
  513.   345 TEMP=TEMP+XM(I)                                                   00193770
  514.       WGH=WGH/TEMP                                                      00193780
  515.       IF(NINTOP.NE.9) WGH=1.0                                           00193790
  516.       DO 350 I=1,ND,2                                                   00193800
  517.       XM(I)=XM(I)*WGH                                                   00193810
  518.   350 XM(I+1)=XM(I)                                                     00193820
  519.       RETURN                                                            00193830
  520.       END                                                               00193840
  521.       SUBROUTINE STSTL (NEL,XX,PROP,C)                                  00282940
  522.       IMPLICIT REAL*8 (A-H,O-Z)                                         00282950
  523.       COMMON /QTSARG/ SS(136),Q(4,4),P(2,8),YZ(16),H(8),ZZ(16),TAU(4),  00282960
  524.      $ZROP(10),B(4,16),XJ(2,2),HP(16),UP(16),THIC,BET,DE,DET,NOD(8),    00282970
  525.      $NOD5(8),IEL,NND5,ITYP2D,IMASS,MODEL,MEL,NINT,NRQTSA(1325)         R0282980
  526.       COMMON /PREP/ FZ(2),KSKIP,RRPREP(8)                               R0282990
  527.       DIMENSION XX(2,1),PROP(1),C(4,1),D(4,4),T(4,4)                    00283000
  528.       GO TO (100,120,320),MODEL                                         00283010
  529.   100 YM=PROP(1)                                                        00283020
  530.       PV=PROP(2)                                                        00283030
  531.       C1=YM/(1+PV)                                                      00283040
  532.       B1=C1*PV/(1.E0-2.E0*PV)                                           00283050
  533.       A1=B1+C1                                                          00283060
  534.       C(1,1)=A1                                                         00283070
  535.       C(1,2)=B1                                                         00283080
  536.       C(1,3)=0.E0                                                       00283090
  537.       C(2,1)=B1                                                         00283100
  538.       C(2,2)=A1                                                         00283110
  539.       C(2,3)=0.E0                                                       00283120
  540.       C(3,1)=0.E0                                                       00283130
  541.       C(3,2)=0.E0                                                       00283140
  542.       C(3,3)=C1/2.E0                                                    00283150
  543.       DO 110 I=1,4                                                      00283160
  544.       C(I,4)=0.0                                                        00283170
  545.   110 C(4,I)=0.0                                                        00283180
  546.       IF (ITYP2D.EQ.1) GO TO 270                                        00283190
  547.       C(1,4)=B1                                                         00283200
  548.       C(2,4)=B1                                                         00283210
  549.       C(3,4)=0.E0                                                       00283220
  550.       C(4,1)=B1                                                         00283230
  551.       C(4,2)=B1                                                         00283240
  552.       C(4,3)=0.E0                                                       00283250
  553.       C(4,4)=A1                                                         00283260
  554.       IF (ITYP2D.LT.2) GO TO 270                                        00283270
  555.       GO TO 240                                                         00283280
  556.   120 IF (PROP(3).EQ.0.E0) GO TO 100                                    00283290
  557.       PI = 4.0D0*  DATAN(1.D0)                                          00283300
  558.       DX = XX(1,2) - XX(1,1)                                            00283310
  559.       DY = XX(2,2) - XX(2,1)                                            00283320
  560.       XL = DX**2 + DY**2                                                00283330
  561.       IF(XL.GT.1.0E-12) GO TO 130                                       00283340
  562.       WRITE (6,300) NEL                                                 00283350
  563.       KSKIP=1                                                           00283360
  564.       RETURN                                                            00283370
  565.   130 XL =  DSQRT(XL)                                                   00283380
  566.       SA =  DABS(DY/XL)                                                 00283390
  567.       AL = DASIN(SA)                                                    R0283400
  568.       IF(DX.GE.0.0E0 .AND. DY.GE.0.0E0) P12 =         AL                00283410
  569.       IF(DX.LT.0.0E0 .AND. DY.GE.0.0E0) P12 = PI    - AL                00283420
  570.       IF(DX.LT.0.0E0 .AND. DY.LT.0.0E0) P12 = PI    + AL                00283430
  571.       IF(DX.GE.0.0E0 .AND. DY.LT.0.0E0) P12 = PI*2.0E0- AL              00283440
  572.       PI2=PI*2.E0                                                       00283450
  573.       IF( DABS(P12).LT.PI2) GO TO 150                                   00283460
  574.       WRITE(6,140)MEL                                                   00283470
  575.   140 FORMAT(/20X, 39HCHECK THE MATERIAL ANGLE ON THE ELEMENT,I5//)     00283480
  576.       KSKIP=1                                                           00283490
  577.       RETURN                                                            00283500
  578.   150 CONTINUE                                                          00283510
  579.       BET=BET/PI                                                        00283520
  580.       P12=0.0                                                           00283530
  581.       GAM=P12 + BET                                                     00283540
  582.       IF (GAM.GE.PI2) GAM=GAM-PI2                                       00283550
  583.       IF( DABS(GAM).LT.1.0E-8) GO TO 160                                00283560
  584.       SG =  DSIN(GAM)                                                   00283570
  585.       CG =  DCOS(GAM)                                                   00283580
  586.       T(1,1) =  CG**2                                                   00283590
  587.       T(1,2) =  SG**2                                                   00283600
  588.       T(1,3) =  CG* SG                                                  00283610
  589.       T(1,4) =  0.0E0                                                   00283620
  590.       T(2,1) =  T(1,2)                                                  00283630
  591.       T(2,2) =  T(1,1)                                                  00283640
  592.       T(2,3) = -T(1,3)                                                  00283650
  593.       T(2,4) =  0.0E0                                                   00283660
  594.       T(3,1) =  T(2,3)* 2.0E0                                           00283670
  595.       T(3,2) = -T(3,1)                                                  00283680
  596.       T(3,3) =  T(1,1)- T(1,2)                                          00283690
  597.       T(3,4) =  0.0E0                                                   00283700
  598.       T(4,1) =  0.0E0                                                   00283710
  599.       T(4,2) =  0.0E0                                                   00283720
  600.       T(4,3) =  0.0E0                                                   00283730
  601.       T(4,4) =  1.0E0                                                   00283740
  602.   160 CONTINUE                                                          00283750
  603.       DUM = PROP(1)* PROP(2)* PROP(3)* PROP(7)                          00283760
  604.       IF (DUM.GT.1.0E-08) GO TO 170                                     00283770
  605.       WRITE (6,310)                                                     00283780
  606.       STOP                                                              00283790
  607.   170 C(1,1) = 1.0E0/PROP(1)                                            00283800
  608.       C(2,2) = 1.0E0/PROP(2)                                            00283810
  609.       C(3,3) = 1.0E0/PROP(7)                                            00283820
  610.       C(4,4) = 1.0E0/PROP(3)                                            00283830
  611.       C(1,2) =-PROP(4)* C(2,2)                                          00283840
  612.       C(1,4) =-PROP(5)* C(4,4)                                          00283850
  613.       C(2,4) =-PROP(6)* C(4,4)                                          00283860
  614.       C(1,3) = 0.0E0                                                    00283870
  615.       C(2,3) = 0.0E0                                                    00283880
  616.       C(3,4) = 0.0E0                                                    00283890
  617.       DO 180 I=1,4                                                      00283900
  618.       DO 180 J=I,4                                                      00283910
  619.   180 C(J,I) = C(I,J)                                                   00283920
  620.       CALL POSINV (C,4,4)                                               00283930
  621.       IF ( DABS(GAM).LT.1.0E-08) GO TO 230                              00283940
  622.       DO 200 IR=1,4                                                     00283950
  623.       DO 200 IC=1,4                                                     00283960
  624.       D(IR,IC) = 0.0E0                                                  00283970
  625.       DO 190 IN=1,4                                                     00283980
  626.   190 D(IR,IC) = D(IR,IC) + T(IN,IR)* C(IN,IC)                          00283990
  627.   200 CONTINUE                                                          00284000
  628.       DO 220 IR=1,4                                                     00284010
  629.       DO 220 IC=IR,4                                                    00284020
  630.       C(IR,IC) = 0.0E0                                                  00284030
  631.       DO 210 IN=1,4                                                     00284040
  632.   210 C(IR,IC) = C(IR,IC) + D(IR,IN)* T(IN,IC)                          00284050
  633.   220 C(IC,IR)=C(IR,IC)                                                 00284060
  634.   230 IF (ITYP2D.LT.2) GO TO 270                                        00284070
  635.   240 DO 250 I=1,3                                                      00284080
  636.       A=C(I,4)/C(4,4)                                                   00284090
  637.       DO 250 J=I,3                                                      00284100
  638.       C(I,J)=C(I,J) - C(4,J)*A                                          00284110
  639.   250 C(J,I)=C(I,J)                                                     00284120
  640.       DO 260 I=1,4                                                      00284130
  641.       C(I,4)=0.0                                                        00284140
  642.   260 C(4,I)=0.0                                                        00284150
  643.   270 CONTINUE                                                          00284160
  644.       CTEX=PROP(9)                                                      00284170
  645.       IF(ITYP2D.NE.1) GO TO 280                                         00284180
  646.       CTEX=PROP(9)*(1+PROP(2))                                          00284190
  647.       IF(MODEL.EQ.2)  CTEX=PROP(9)*(1+PROP(4))                          00284200
  648.       C(4,1)= PROP(2)*(C(1,1)+C(2,1))                                   00284210
  649.       C(4,2)= PROP(2)*(C(2,2)+C(2,1))                                   00284220
  650.   280 CONTINUE                                                          00284230
  651.       DO 290 I =1,4                                                     00284240
  652.       TAU(I)=0.0E0                                                      00284250
  653.       DO 290 IS=1,4                                                     00284260
  654.   290 TAU(I)=TAU(I)+C(I ,IS)*CTEX                                       00284270
  655.       IF(ITYP2D.EQ.1.AND.MODEL.EQ.1) TAU(4)=(A1+B1+B1)*PROP(9)          00284280
  656.       IF(ITYP2D.EQ.1.AND.MODEL.EQ.2) TAU(4)=TAU(4)*(1.+PROP(4))**2      00284290
  657.       TAU(3)=0.0E0                                                      00284300
  658.   300 FORMAT (10H0*** ERROR,/                                           00284310
  659.      $        43H ZERO LENGTH BETWEEN NODES 1-2 IN ELEMENT (,I4,1H))    00284320
  660.   310 FORMAT (45H0***ERROR  MATERIAL PROPERTIES NOT ADMISSABLE  )       00284330
  661.       RETURN                                                            00284340
  662.   320 DO 340 I=1,4                                                      00284350
  663.       DO 330 J=1,4                                                      00284360
  664.   330 C(I,J)=PROP(1)                                                    00284370
  665.   340 TAU(I)=0.0                                                        00284380
  666.       DO 345 I=1,4                                                      00284390
  667.       C(I,3)=0.0                                                        00284400
  668.   345 C(3,I)=0.0                                                        00284410
  669.       IF(ITYP2D.LE.0) RETURN                                            00284420
  670.       DO 350 I=1,4                                                      00284430
  671.       C(4,I)=0.0                                                        00284440
  672.   350 C(I,4)=0.0                                                        00284450
  673.       RETURN                                                            00284460
  674.       END                                                               00284470
  675.       SUBROUTINE DERIQ (NEL,XX,B,DET,R,S,X1BAR,NOD5,KFL)                00057170
  676.       IMPLICIT REAL*8 (A-H,O-Z)                                         00057180
  677.       COMMON /PREP/ FZ(2),KSKIP,RRPREP(8)                               R0057190
  678.       COMMON /QTSARG/ SS(136),D(4,4),P(2,8),YZ(16),H(8),ZZ(16),TAU(4),  00057200
  679.      $PROP(10),Q(4,16),XJ(2,2),HP(16),UP(16),THIC,BET,DE,ZET,NOD(8),    00057210
  680.      $MOD5(8),IEL,NND5,ITYP2D,IMASS,MODEL,MEL,NINT,NRQTSA(1325)         R0057220
  681.       COMMON /JUNK/XJI(2,2),FACM,FAC,XBAR,WT,LX,LY,KS,KL,I,J,RRJUNK(216)R0057230
  682.       DIMENSION     XX(2,1),B(4,1),NOD5(1)                              00057240
  683.       CALL FUNCT2 (R,S,H,P,NOD5,XJ,DET,XX,NEL,IEL,NND5,KFL)             00057250
  684.       IF(KSKIP.EQ.1) RETURN                                             00057260
  685.       IF(DET.LT.1.0E-20) DET=1.0E-20                                    00057270
  686.       DUM = 1.0E0/DET                                                   00057280
  687.       XJI(1,1) = XJ(2,2)* DUM                                           00057290
  688.       XJI(1,2) =-XJ(1,2)* DUM                                           00057300
  689.       XJI(2,1) =-XJ(2,1)* DUM                                           00057310
  690.       XJI(2,2) = XJ(1,1)* DUM                                           00057320
  691.       DO 110 K=1,IEL                                                    00057330
  692.       K2=K*2                                                            00057340
  693.       B(1,K2-1) = 0.E0                                                  00057350
  694.       B(1,K2  ) = 0.E0                                                  00057360
  695.       B(2,K2-1) = 0.E0                                                  00057370
  696.       B(2,K2  ) = 0.E0                                                  00057380
  697.       DO 100 I=1,2                                                      00057390
  698.       B(1,K2-1) = B(1,K2-1) + XJI(1,I) * P(I,K)                         00057400
  699.   100 B(2,K2  ) = B(2,K2  ) + XJI(2,I) * P(I,K)                         00057410
  700.       B(3,K2  ) = B(1,K2-1)                                             00057420
  701.   110 B(3,K2-1) = B(2,K2  )                                             00057430
  702.       IF (ITYP2D.GT.0) RETURN                                           00057440
  703.       X1BAR = 0.0E0                                                     00057450
  704.       DO 120 K=1,IEL                                                    00057460
  705.   120 X1BAR = X1BAR + H(K)* XX(1,K)                                     00057470
  706.       IF(X1BAR.GT.1.0E-8) GO TO 140                                     00057480
  707.       ND=2*IEL                                                          00057490
  708.       DO 130 K=1,ND                                                     00057500
  709.   130 B(4,K)=B(1,K)                                                     00057510
  710.       RETURN                                                            00057520
  711.   140 DUM = 1.0E0/X1BAR                                                 00057530
  712.       DO 150 K=1,IEL                                                    00057540
  713.       K2=K*2                                                            00057550
  714.       B(4,K2  ) = 0.E0                                                  00057560
  715.   150 B(4,K2-1) = H(K) * DUM                                            00057570
  716.       RETURN                                                            00057580
  717.       END                                                               00057590
  718.       SUBROUTINE FUNCT2 (R,S,H,P,NOD5,XJ,DET,XX,NEL,IEL,NND5,KFL)       00099560
  719.       IMPLICIT REAL*8 (A-H,O-Z)                                         00099570
  720.       COMMON /PREP/ FZ(2),KSKIP,RRPREP(8)                               R0099580
  721.       COMMON /TRASH/ BS(4,16),H4(4),RJUK(54),IJUK,LST,RRTRAS(367)       R0099590
  722.       DIMENSION H(1),P(2,1),NOD5(1),IPERM(4),XJ(2,2),XX(2,1)            00099600
  723.       DATA IPERM/2,3,4,1/                                               00099610
  724.       RP = 1.0E0 + R                                                    00099620
  725.       SP = 1.0E0 + S                                                    00099630
  726.       RM = 1.0E0 - R                                                    00099640
  727.       SM = 1.0E0 - S                                                    00099650
  728.       R2 = 1.0E0 - R*R                                                  00099660
  729.       S2 = 1.0E0 - S*S                                                  00099670
  730.       H(1) = 0.25E0* RP* SP                                             00099680
  731.       H(2) = 0.25E0* RM* SP                                             00099690
  732.       H(3) = 0.25E0* RM* SM                                             00099700
  733.       H(4) = 0.25E0* RP* SM                                             00099710
  734.       DO 50 I=1,4                                                       00099720
  735.    50 H4(I)=H(I)                                                        00099730
  736.       P(1,1)=0.25E0*SP                                                  00099740
  737.       P(1,2)=-P(1,1)                                                    00099750
  738.       P(1,3)=-0.25E0*SM                                                 00099760
  739.       P(1,4)=-P(1,3)                                                    00099770
  740.       P(2,1)=0.25E0*RP                                                  00099780
  741.       P(2,2)=0.25E0*RM                                                  00099790
  742.       P(2,3)=-P(2,2)                                                    00099800
  743.       P(2,4)=-P(2,1)                                                    00099810
  744.       IF (IEL.EQ.4) GO TO 180                                           00099820
  745.       I=0                                                               00099830
  746.   100 I=I + 1                                                           00099840
  747.       IF (I.GT.NND5) GO TO 150                                          00099850
  748.       NN=NOD5(I) - 4                                                    00099860
  749.       GO TO (110,120,130,140), NN                                       00099870
  750.   110 H(5) = 0.50E0* R2* SP                                             00099880
  751.       P(1,5)=-R*SP                                                      00099890
  752.       P(2,5)=0.50E0*R2                                                  00099900
  753.       GO TO 100                                                         00099910
  754.   120 H(6) = 0.50E0* RM* S2                                             00099920
  755.       P(1,6)=-0.50E0*S2                                                 00099930
  756.       P(2,6)=-RM*S                                                      00099940
  757.       GO TO 100                                                         00099950
  758.   130 H(7) = 0.50E0* R2* SM                                             00099960
  759.       P(1,7)=-R*SM                                                      00099970
  760.       P(2,7)=-0.50E0*R2                                                 00099980
  761.       GO TO 100                                                         00099990
  762.   140 H(8) = 0.50E0* RP* S2                                             00100000
  763.       P(1,8)=0.50E0*S2                                                  00100010
  764.       P(2,8)=-RP*S                                                      00100020
  765.       GO TO 100                                                         00100030
  766.   150 IH=0                                                              00100040
  767.   160 IH=IH + 1                                                         00100050
  768.       IF (IH.GT.NND5) GO TO 180                                         00100060
  769.       IN=NOD5(IH)                                                       00100070
  770.       I1=IN - 4                                                         00100080
  771.       I2=IPERM(I1)                                                      00100090
  772.       H(I1)=H(I1) - 0.5E0*H(IN)                                         00100100
  773.       H(I2)=H(I2) - 0.5E0*H(IN)                                         00100110
  774.       H(IH + 4)=H(IN)                                                   00100120
  775.       DO 170 J=1,2                                                      00100130
  776.       P(J,I1)=P(J,I1) - 0.5E0*P(J,IN)                                   00100140
  777.       P(J,I2)=P(J,I2) - 0.5E0*P(J,IN)                                   00100150
  778.   170 P(J,IH + 4)=P(J,IN)                                               00100160
  779.       GO TO 160                                                         00100170
  780.   180 CONTINUE                                                          00100180
  781.       IF(LST.LE.0) GO TO 185                                            00100190
  782.       DELTH=R2*S2*0.125                                                 00100200
  783.       H(1)=H(1)+DELTH                                                   00100210
  784.       H(2)=H(2)+DELTH                                                   00100220
  785.       H(3)=H(3)+H(4)+H(7)                                               00100230
  786.       H(5)=H(5)-2.0*DELTH                                               00100240
  787.       H(4)=0.0                                                          00100250
  788.       H(7)=0.0                                                          00100260
  789.       PDELTR=-0.25*R*S2                                                 00100270
  790.       PDELTS=-0.25*R2*S                                                 00100280
  791.       P(1,1)=P(1,1)+PDELTR                                              00100290
  792.       P(2,1)=P(2,1)+PDELTS                                              00100300
  793.       P(1,2)=P(1,2)+PDELTR                                              00100310
  794.       P(2,2)=P(2,2)+PDELTS                                              00100320
  795.       P(1,3)=P(1,3)+P(1,4)+P(1,7)                                       00100330
  796.       P(2,3)=P(2,3)+P(2,4)+P(2,7)                                       00100340
  797.       P(1,5)=P(1,5)-2.*PDELTR                                           00100350
  798.       P(2,5)=P(2,5)-2.*PDELTS                                           00100360
  799.       P(1,4)=0.0                                                        00100370
  800.       P(2,4)=0.0                                                        00100380
  801.       P(1,7)=0.0                                                        00100390
  802.       P(2,7)=0.0                                                        00100400
  803.   185 DO 200 I=1,2                                                      00100410
  804.       DO 200 J=1,2                                                      00100420
  805.       DUM = 0.0E0                                                       00100430
  806.       DO 190 K=1,IEL                                                    00100440
  807.   190 DUM = DUM + P(I,K)* XX(J,K)                                       00100450
  808.   200 XJ(I,J) = DUM                                                     00100460
  809.       DET = XJ(1,1)* XJ(2,2) - XJ(2,1)* XJ(1,2)                         00100470
  810.       IF(DET.GT.1.0E-08) GO TO 210                                      00100480
  811.       IF(KFL.GT.0) GO TO 210                                            00100490
  812.       WRITE (6,220) NEL                                                 00100500
  813.       KSKIP=1                                                           00100510
  814.       RETURN                                                            00100520
  815.   210 CONTINUE                                                          00100530
  816.       RETURN                                                            00100540
  817.   220 FORMAT (10H0*** ERROR,                                            00100550
  818.      $       40H ZERO JACOBIAN DETERMINANT FOR ELEMENT (,I4,1H)  /      00100560
  819.      $, 10X, 37HCHECK NODE NUMBERING OR NODAL COORD.   )                00100570
  820.       END                                                               00100580
  821.       SUBROUTINE PLD2D(PROP6,LL,RF,MXDF)                                00165410
  822.       IMPLICIT REAL*8(A-H,O-Z)                                          00165420
  823.       COMMON /PREP/ FZ(2),KSKIP,RRPREP(8)                               R0165430
  824.       COMMON /QTSARG/ SS(136),D(4,4),P(2,8),YZ(16),H(8),PRES(16),TAU(4),00165440
  825.      $PROP(10),B(4,16),XJ(2,2),HP(16),UP(16),THIC,BET,DE,DET,NOD(8),    00165450
  826.      $NOD5(8),IEL,NND5,ITYP2D,IMASS,MODEL,MEL,NINT,NRQTSA(1325)         R0165460
  827.       COMMON /GASS/ XK(4,4),WGT(4,4),IPERM(3)                           R0165470
  828.       DIMENSION PROP6(LL,7),RF(MXDF,LL)                                 00165480
  829.       DIMENSION F1(4),K1(4)                                             00165490
  830.       DIMENSION R(4),S(4)                                               00165500
  831.       DATA F1/-1.0,-1.0, 1.0, 1.0/                                      00165510
  832.       DATA K1/1,2,1,2/                                                  00165520
  833.       DATA R/0.,-1.,0.,1./                                              00165530
  834.       DATA S/ 1.,0.,-1.,0./                                             00165540
  835.       ND=2*IEL                                                          00165550
  836.       DO 100 I=1,ND                                                     00165560
  837.   100 UP(I)=0.0                                                         00165570
  838.       KHP=0                                                             00165580
  839.       KUP=0                                                             00165590
  840.       DO  180 II=1,3                                                    00165600
  841.       ZREF=PRES(2)                                                      00165610
  842.       KTYPE=1                                                           00165620
  843.       IF(II.EQ.1.AND.ZREF.NE.0.0) KTYPE=2                               00165630
  844.       PR=PRES(1)                                                        00165640
  845.       IF(II.GE.2) PR=PRES(2*II)                                         00165650
  846.       KF=PRES(2*II+1)                                                   00165660
  847.       IF(KF.LT.0.OR.KF.GT.4) GO TO 230                                  00165670
  848.       IF(NOD(3).EQ.NOD(4).AND.KF.EQ.3) GO TO 230                        00165680
  849.       IF(PR.EQ.0.0) GO TO 180                                           00165690
  850.       IF(KF.EQ.0)  GO  TO 180                                           00165700
  851.       IF(KTYPE.EQ.2) KHP=1                                              00165710
  852.       IF(KTYPE.EQ.1) KUP=1                                              00165720
  853.       R1=R(KF)                                                          00165730
  854.       S1=S(KF)                                                          00165740
  855.       DO 160 INT=1,NINT                                                 00165750
  856.       R2=R1                                                             00165760
  857.       S2=S1                                                             00165770
  858.       IF(R1.EQ.0.0) R2=XK(INT,NINT)                                     00165780
  859.       IF(S1.EQ.0.0) S2=XK(INT,NINT)                                     00165790
  860.       WT=WGT(INT,NINT)                                                  00165800
  861.       CALL FUNCT2(R2,S2,H,P,NOD5,XJ,DET,YZ,NEL,IEL,NND5,1)              00165810
  862.       IF(KTYPE.EQ.1) GO TO 120                                          00165820
  863.       Z=0.0                                                             00165830
  864.       DO 110 K=1,IEL                                                    00165840
  865.       KZ=K*2                                                            00165850
  866.   110 Z=Z+H(K)*YZ(KZ)                                                   00165860
  867.   120 CONTINUE                                                          00165870
  868.       K5=K1(KF)                                                         00165880
  869.       A1= F1(KF)*XJ(K5,2)                                               00165890
  870.       A2=-F1(KF)*XJ(K5,1)                                               00165900
  871.       AA= DSQRT(A1*A1+A2*A2)                                            00165910
  872.       A1=A1/AA                                                          00165920
  873.       A2=A2/AA                                                          00165930
  874.       C=XJ(K5,1)*XJ(K5,1)+XJ(K5,2)*XJ(K5,2)                             00165940
  875.       C= DSQRT(C)                                                       00165950
  876.       FORCE=PR                                                          00165960
  877.       IF(KTYPE.EQ.2)  FORCE=PR*(ZREF-Z)                                 00165970
  878.       FORCE=-FORCE                                                      00165980
  879.       IF(KTYPE.EQ.2.AND.Z.GT.ZREF) GO TO 160                            00165990
  880.       XBAR=1.                                                           00166000
  881.       IF(ITYP2D.EQ.2) XBAR=THIC                                         00166010
  882.       IF(ITYP2D.GT.0) GO TO 140                                         00166020
  883.       XBAR=0.0                                                          00166030
  884.       DO 130 K=1,IEL                                                    00166040
  885.       KZ=K*2-1                                                          00166050
  886.   130 XBAR=XBAR+H(K)*YZ(KZ)                                             00166060
  887.   140 CONTINUE                                                          00166070
  888.       C=C*XBAR                                                          00166080
  889.       TS=C*WT*FORCE                                                     00166090
  890.       DO 150 I=1,IEL                                                    00166100
  891.       KK=I*2                                                            00166110
  892.       QQ= TS*H(I)                                                       00166120
  893.       UP(KK-1)=UP(KK-1)+QQ*A1                                           00166130
  894.   150 UP(KK)  =UP(KK ) +QQ*A2                                           00166140
  895.   160 CONTINUE                                                          00166150
  896.       IF(KTYPE.LT.2) GO TO 180                                          00166160
  897.       DO 170 I=1,ND                                                     00166170
  898.       HP(I)=UP(I)                                                       00166180
  899.   170 UP(I)=0.0                                                         00166190
  900.   180 CONTINUE                                                          00166200
  901.       IF(KHP.EQ.0.AND.KUP.EQ.0) RETURN                                  00166210
  902.       DO 220 I=1,LL                                                     00166220
  903.       PLF=PROP6(I,1)                                                    00166230
  904.       PHF=1.0                                                           00166240
  905.       IF(PLF.EQ.0.0) PHF=0.0                                            00166250
  906.       IF(KUP.EQ.0) GO TO 200                                            00166260
  907.       DO 190 J=1,ND                                                     00166270
  908.   190 RF(J,I)=RF(J,I)+PLF*UP(J)                                         00166280
  909.   200 IF(KHP.EQ.0) GO TO 220                                            00166290
  910.       DO 210 J=1,ND                                                     00166300
  911.   210 RF(J,I)=RF(J,I)+PHF*HP(J)                                         00166310
  912.   220 CONTINUE                                                          00166320
  913.       RETURN                                                            00166330
  914.   230 WRITE(6,240)MEL                                                   00166340
  915.   240 FORMAT(/20X, 45H A ILLEGAL FACE NO. WAS REQUESTED FOR ELEMENT,I5//00166350
  916.      $)                                                                 00166360
  917.       KSKIP=1                                                           00166370
  918.       RETURN                                                            00166380
  919.       END                                                               00166390
  920.