home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 9 / 09.iso / e / e001 / 1.ddi / TMP / ADINA32.FOR < prev    next >
Encoding:
Text File  |  1991-01-07  |  194.9 KB  |  7,270 lines

  1. C *CDC* *DECK STIFF
  2. C *UNI* )FOR,IS N.STIFF,R.STIFF
  3.       SUBROUTINE STIFF (AS,XLT,E,G,XI,YI,ZI,AREA)
  4. C
  5. C
  6. C         SUBROUTINE TO CALCULATE LINEAR ELASTIC STIFFNESS MATRIX
  7. C
  8. C     AREA(2)   ,   AREA(3)  = EFFECTIVE SHEAR AREA IN  S  AND  T
  9. C                                      DIRECTIONS RESPECTIVELY
  10. C     AREA(2)=0.   NO SHEAR DEFORMATION IN  S  DIRECTION
  11. C     AREA(3)=0.   NO SHEAR DEFORMATION IN  T  DIRECTION
  12. C
  13. C
  14.       IMPLICIT REAL*8 (A-H,O-Z)
  15.       DIMENSION AS(16,1),AREA(1)
  16. C
  17.       IF (AREA(2).EQ.0.D0) GO TO 510
  18.       FIY = 12.*E*ZI/(G*AREA(2)*XLT*XLT)
  19.       GO TO 511
  20.   510 FIY = 0.0
  21.   511 FIY1 = 1.+FIY
  22. C
  23.       IF (AREA(3).EQ.0.D0) GO TO 515
  24.       FIZ = 12.*E*YI/(G*AREA(3)*XLT*XLT)
  25.       GO TO 516
  26.   515 FIZ = 0.0
  27.   516 FIZ1 = 1.+FIZ
  28.       DO 501 I=1,12
  29.       DO 501 J=1,I
  30.   501 AS(I,J)= 0.
  31.       AS(1,1) = E*AREA(1)/XLT
  32.       AS(2,2) = 12.*E*ZI/(FIY1*XLT**3)
  33.       AS(3,3) = 12.*E*YI/(FIZ1*XLT**3)
  34.       AS(4,4) = G*XI/XLT
  35.       AS(5,3) =-6.*E*YI/(FIZ1*XLT**2)
  36.       AS(5,5) = (4. + FIZ)*E*YI/(FIZ1*XLT)
  37.       AS(6,2) = 6.*E*ZI/(FIY1*XLT**2)
  38.       AS(6,6) = (4. + FIY)*E*ZI/(FIY1*XLT)
  39.       DO 502 I=1,4
  40.   502 AS(I+6,I)= -AS(I,I)
  41.       DO 503 I=1,6
  42.       IJ=I+6
  43.   503 AS(IJ,IJ)= AS(I,I)
  44.       AS(8,6) = -AS(6,2)
  45.       AS(9,5) = -AS(5,3)
  46.       AS(11,9)= -AS(5,3)
  47.       AS(11,3) = AS(5,3)
  48.       AS(12,2) = AS(6,2)
  49.       AS(12,8) = AS(8,6)
  50.       AS(11,5) = (2. - FIZ)*E*YI/(FIZ1*XLT)
  51.       AS(12,6) = (2. - FIY)*E*ZI/(FIY1*XLT)
  52.       DO 504 I=1,12
  53.       DO 504 J=I,12
  54.   504 AS(I,J)=AS(J,I)
  55.       RETURN
  56.       END
  57. C *CDC* *DECK MASS
  58. C *UNI* )FOR,IS N.MASS,R.MASS
  59.       SUBROUTINE MASS (AS,XLT,XI,YI,ZI,AREA,DEN)
  60. C
  61. C     SUBROUTINE TO CALCULATE THE CONSISTANT MASS MATRIX
  62. C
  63.       IMPLICIT REAL*8 (A-H,O-Z)
  64.       DIMENSION AS(16,16)
  65. C
  66. C
  67.       DO 652 I= 1,12
  68.       DO 652 J=I,12
  69.   652 AS(I,J)= 0.
  70.       XMM= XLT*AREA*DEN
  71.       AA= AREA*XLT
  72.       AB=AA*XLT
  73.       AS(1,1)= XMM/3.
  74.       AS(1,7) = XMM/6.
  75.       AS(2,2)= XMM*(13./35.+6.*ZI/(5.*AB))
  76.       AS(3,3)= XMM*(13./35.+6.*YI/(5.*AB))
  77.       AS(4,4)= XMM *XI/(3.*AREA)
  78.       AS(3,5)= -XMM*(11.*XLT/210.+YI/(10.*AA))
  79.       AS(5,5)= XMM*(XLT*XLT/105.+YI/(7.5*AREA))
  80.       AS(2,6)= XMM*(11.*XLT/210.+ZI/(10.*AA))
  81.       AS(6,6)= XMM*(XLT*XLT/105.+ZI/(7.5*AREA))
  82.       DO 653 I= 1,6
  83.       IJ= I+6
  84.   653 AS(IJ,IJ)= AS(I,I)
  85.       AS(8,12)= -AS(2,6)
  86.       AS(9,11)= -AS(3,5)
  87.       AS(2,8)= XMM*(9./70.-1.2*ZI/AB)
  88.       AS(6,8)= XMM*(13.*XLT/420.-ZI/(10.*AA))
  89.       AS(2,12)=-AS(6,8)
  90.       AS(3,9)= XMM*(9./70.-1.2*YI/AB)
  91.       AS(5,9)= XMM*(-13.*XLT/420.+YI/(10.*AA))
  92.       AS(4,10)= AS(4,4)/2.
  93.       AS(3,11)=-AS(5,9)
  94.       AS(5,11)=-XMM*(XLT*XLT/140.+YI/(30.*AREA))
  95.       AS(6,12)=-XMM*(XLT*XLT/140.+ZI/(30.*AREA))
  96.       DO 654 I= 1,12
  97.       DO 654 J= 1,I
  98.   654 AS(I,J)= AS(J,I)
  99. C
  100.       RETURN
  101.       END
  102. C *CDC* *DECK ENDREL
  103. C *UNI* )FOR,IS N.ENDREL,R.ENDREL
  104.       SUBROUTINE ENDREL (AS,IMOMNT,SREL,DISP,NDRL,IENDRL)
  105. C
  106. C
  107. C     ROUTINE TO
  108. C        1. CALCULATE CONDENSED DISPLACEMENTS
  109. C        2. CALCULATE AND STORE THE MATRIX REQUIRED TO RETERIVE
  110. C           THE CONDENSED DISPLACEMENTS
  111. C        3. TO CONDENSE THE STIFNESS MATRIX
  112. C
  113. C
  114.       IMPLICIT REAL*8 (A-H,O-Z)
  115. C
  116.       DIMENSION AS(16,1),IMOMNT(1),SREL(NDRL,1),DISP(1),DUMY(6,6),
  117.      1          DISPT(12)
  118. C
  119.       IF (IENDRL - 2) 110,30,10
  120. C
  121. C     CALCULATE THE CONDENSED DISPLACEMENTS
  122. C
  123.    10 JJ=0
  124.       DO 15 I=1,12
  125.       DO 17 J=1,NDRL
  126.       IF (IMOMNT(J).EQ.I) GO TO 15
  127.    17 CONTINUE
  128.       JJ=JJ + 1
  129.       DISPT(JJ)=DISP(I)
  130.    15 CONTINUE
  131.       DO 20 I=1,NDRL
  132.       II=IMOMNT(I)
  133.       TEMP=0.
  134.       DO 25 J=1,JJ
  135.    25 TEMP=TEMP + SREL(I,J)*DISPT(J)
  136.    20 DISP(II)=-TEMP
  137.       RETURN
  138. C
  139. C     CALCULATE MATRIX NEEDED FOR CALCULATING CONDENSED DISPLACEMENTS
  140. C
  141.    30 DO 32 I=1,NDRL
  142.       II=IMOMNT(I)
  143.       DO 32 J=I,NDRL
  144.       JJ=IMOMNT(J)
  145.       DUMY(I,J)=AS(II,JJ)
  146.    32 DUMY(J,I)=DUMY(I,J)
  147. C
  148.       DO 34 K=1,NDRL
  149.       D=DUMY(K,K)
  150.       DO 33 J=1,NDRL
  151.    33 DUMY(K,J)=-DUMY(K,J)/D
  152.       DO 37 I=1,NDRL
  153.       IF (K-I) 35,37,35
  154.    35 DO 40 J=1,NDRL
  155.       IF (K-J) 45,40,45
  156.    45 DUMY(I,J)=DUMY(I,J) + DUMY(I,K)*DUMY(K,J)
  157.    40 CONTINUE
  158.    37 DUMY(I,K)=DUMY(I,K)/D
  159.    34 DUMY(K,K)=1.0/D
  160. C
  161.       JJ=0
  162.       DO 50 J=1,12
  163.       DO 55 K=1,NDRL
  164.       KK=IMOMNT(K)
  165.       IF (KK.EQ.J) GO TO 50
  166.    55 CONTINUE
  167.       JJ=JJ + 1
  168.       DO 57 II=1,NDRL
  169.       I=IMOMNT(II)
  170.    57 SREL(II,JJ)=AS(I,J)
  171.    50 CONTINUE
  172. C
  173.       DO 60 J=1,JJ
  174.       DO 65 I=1,NDRL
  175.       TEMP=0.
  176.       DO 67 K=1,NDRL
  177.    67 TEMP=TEMP + DUMY(I,K)*SREL(K,J)
  178.    65 DISPT(I)=TEMP
  179.       DO 68 K=1,NDRL
  180.    68 SREL(K,J)=DISPT(K)
  181.    60 CONTINUE
  182. C
  183. C     ELIMINATE THE REQUIRED ROWS AND COLUMNS BY USING
  184. C     GAUSSIAN ELIMINATION PROCEDURE
  185. C
  186.   110 II=0
  187.       PV=1.0D-10
  188.       DO 100 I=1,6
  189.       IM=IMOMNT(I)
  190.       IF (IM.EQ.0) RETURN
  191.       II=II + 1
  192.       D=AS(IM,IM)
  193.       IF (D.LT.PV) GO TO 145
  194. C
  195.       DO 120 J=1,12
  196.       IF (J.EQ.IM) GO TO 120
  197. C
  198.       DD=AS(IM,J)/D
  199.       DO 130 L=1,12
  200.       IF (L.EQ.IM) GO TO 130
  201.       AS(L,J)=AS(L,J) - AS(L,IM)*DD
  202.   130 CONTINUE
  203.   120 CONTINUE
  204. C
  205.   145 DO 140 J=1,12
  206.       AS(IM,J)=0.
  207.   140 AS(J,IM)=0.
  208.   100 CONTINUE
  209. C
  210.       RETURN
  211.       END
  212. C *CDC* *DECK TRANSF
  213. C *UNI* )FOR,IS N.TRANSF,R.TRANSF
  214.       SUBROUTINE TRANSF (XYZ,AS,BS,T,PDISP,GAMA,ITONLY)
  215. C
  216. C
  217. C      SUBROUTINE TO TRANSFORM  THE LOCAL MASS OR STIFFNESS MATRICES
  218. C             TO GLOBAL SYSTEM
  219. C
  220. C
  221.       IMPLICIT REAL*8 (A-H,O-Z)
  222. C
  223.       COMMON /STNL/ XLT,XOL,YOL,ZOL,FAC,PFAC,INTX,INTY,INTZ,NST
  224.       COMMON /BTRANS/ DISP(16),DXYZ(9),XLN,EPS,EPS1
  225. C
  226.       DIMENSION T(3,3),XYZ(9),AS(16,16),BS(3,3),XM(3),DL(3),
  227.      1          PDISP(1)
  228. C
  229.       IF (ITONLY-2) 5,11,200
  230. C
  231.     5 AX = XYZ(4) - XYZ(1)
  232.       AY = XYZ(5) - XYZ(2)
  233.       AZ = XYZ(6) - XYZ(3)
  234. C
  235.       DX = XYZ(7) - XYZ(1)
  236.       DY = XYZ(8) - XYZ(2)
  237.       DZ = XYZ(9) - XYZ(3)
  238. C
  239.       CX = AY*DZ - DY*AZ
  240.       CY = DX*AZ - AX*DZ
  241.       CZ = AX*DY - DX*AY
  242. C
  243.       AL=DSQRT(AX*AX+AY*AY+AZ*AZ)
  244.       CL=DSQRT(CX*CX+CY*CY+CZ*CZ)
  245. C
  246.       IF (AL.LE.0.00000001D0.OR.
  247.      1    CL.LE.0.00000001D0) GO TO 10
  248. C
  249.       T(1,1)= AX/AL
  250.       T(1,2)= AY/AL
  251.       T(1,3)= AZ/AL
  252.       T(3,1)= CX/CL
  253.       T(3,2)= CY/CL
  254.       T(3,3)= CZ/CL
  255.       T(2,1) = T(1,3)*T(3,2) - T(1,2)*T(3,3)
  256.       T(2,2) = T(1,1)*T(3,3) - T(1,3)*T(3,1)
  257.       T(2,3) = T(1,2)*T(3,1) - T(1,1)*T(3,2)
  258.       IF (ITONLY.EQ.1) RETURN
  259.       GO TO 11
  260. C
  261.    10 WRITE(6,20)
  262.       STOP
  263. C
  264. C     EVALUATION OF TRANSFORMATION MATRIX FOR U.L. FORMULATION
  265. C
  266. C     CALCULATE DIFFERENTIAL DISPLACEMENT
  267. C
  268.   200 DO 201 I=1,3
  269.   201 XM(I)=DISP(I+6) -DISP(I)
  270.   205 DO 202 I=1,3
  271.       TEMP=0.
  272.       DO 203 J=1,3
  273.   203 TEMP=TEMP + T(I,J)*XM(J)
  274.   202 DL(I)=TEMP
  275. C
  276. C     EVALUATE THE KINEMATIC OF MOTION
  277. C
  278.       ADUM=(XLT + DL(1))**2 + DL(3)*DL(3)
  279.       ADUM=DSQRT(ADUM)
  280.       TEMP=ADUM/XLT
  281.       IF (TEMP.GT.0.000001D0) GO TO 223
  282.       DO 221 I=1,3
  283.   221 XM(I)=PDISP(I+6) - PDISP(I)
  284.       ITONLY=5
  285.       GO TO 205
  286.   223 AROT=(XLT + DL(1))/ADUM
  287.       BROT=DL(3)/ADUM
  288. C
  289. C     CALCULATE NEW LENGTH OF THE BEAM
  290. C
  291.       XLN=ADUM*ADUM + DL(2)*DL(2)
  292.       XLN=DSQRT(XLN)
  293. C
  294.       CROT=ADUM/XLN
  295.       DROT=DL(2)/XLN
  296. C
  297. C
  298. C     CALCULATE INTERMEDIATE TRANSFORMATION MATRIX
  299. C
  300.       BS(1,1)=AROT*CROT
  301.       BS(1,2)=DROT
  302.       BS(1,3)=BROT*CROT
  303.       BS(2,1)=-AROT*DROT
  304.       BS(2,2)=CROT
  305.       BS(2,3)=-BROT*DROT
  306.       BS(3,1)=-BROT
  307.       BS(3,2)=0.0
  308.       BS(3,3)=AROT
  309. C
  310.       DO 230 I=1,3
  311.       DO 232 J=1,3
  312.       TEMP=0.
  313.       DO 234 K=1,3
  314.   234 TEMP=TEMP + BS(I,K)*T(K,J)
  315.   232 XM(J)=TEMP
  316.       DO 235 L=1,3
  317.   235 BS(I,L)=XM(L)
  318.   230 CONTINUE
  319. C
  320.       RROT=0.
  321.       DO 210 I=1,3
  322.   210 RROT=RROT + T(1,I)*((DISP(I+3) - PDISP(I+3))
  323.      1                   + (DISP(I+9) - PDISP(I+9)))
  324.       RROT=0.5*RROT + GAMA
  325.       GAMA=RROT
  326.       ROT1=DCOS(RROT)
  327.       ROT2=DSIN(RROT)
  328. C
  329. C     CALCULATE FINAL TRANSFORMATION MATRIX AT TIME  T
  330. C
  331.       DO 215 I=1,3
  332.       T(1,I)=BS(1,I)
  333.       T(2,I)=ROT1*BS(2,I) + ROT2*BS(3,I)
  334.   215 T(3,I)=-ROT2*BS(2,I) + ROT1*BS(3,I)
  335.       RETURN
  336. C
  337. C
  338. C     TRANSFORM THE LOCAL STIFNESS MATRIX TO THE GLOBAL COORDINATE
  339. C
  340.    11 DO 450 I=1,10,3
  341.       DO 450 J=I,10,3
  342. C
  343.       DO 501 M=1,3
  344.       I1=I + M - 1
  345.       DO 501 NI=1,3
  346.       TEMP=0.
  347.       DO 500 K=1,3
  348.       K1=J + K - 1
  349.   500 TEMP=TEMP + AS(I1,K1)*T(K,NI)
  350.       BS(M,NI)=TEMP
  351.   501 CONTINUE
  352. C
  353.       DO 511 M=1,3
  354.       I1=I + M - 1
  355.       DO 511 NI=1,3
  356.       J1=J + NI - 1
  357.       TEMP=0.
  358.       DO 510 K=1,3
  359.   510 TEMP=TEMP + T(K,M)*BS(K,NI)
  360.       AS(I1,J1)=TEMP
  361.   511 CONTINUE
  362.   450 CONTINUE
  363.       RETURN
  364. C
  365.    20 FORMAT (//15H *** ERROR ***       //
  366.      1          42H AUXILIARY NODE COINCIDES WITH A BEAM NODE      //)
  367.       END
  368. C *CDC* *DECK LENGTH
  369. C *UNI* )FOR,IS N.LENGTH,R.LENGTH
  370.       SUBROUTINE LENGTH (XLT,XYZ)
  371. C
  372. C
  373.       IMPLICIT REAL*8 (A-H,O-Z)
  374.       DIMENSION XYZ(1)
  375.       XX=0.
  376.       DO 10 L=1,3
  377.       D=XYZ(L) - XYZ(L+3)
  378.    10 XX=XX + D*D
  379.       XLT = DSQRT(XX)
  380.       RETURN
  381.       END
  382. C *CDC* *DECK STIFNL
  383. C *UNI* )FOR,IS N.STIFNL,R.STIFNL
  384.       SUBROUTINE STIFNL(DISP,PROP,WA,AS,RE,ICS,ISHEAR,SR,RERIT)
  385. C
  386. C     THIS ROUTINE CALCULATES THE GEOMETRIC AND/OR MATERIAL NONLINEAR
  387. C     STIFFNESS MATRIX AND UNBALANCED LOAD COLUMN
  388. C
  389. C     NC = NO. OF DISPLACEMENTS TO BE CONDENSED
  390. C     IB = DIMENSION OF THE STIFFNESS MATRIX PRIOR TO CONDENSATION
  391. C     IBB = NO. OF NONZERO ROWS OR COLUMNS IN THE STIFFNESS MATRIX
  392. C     INPL = NO. OF ROWS IN THE B MATRIX
  393. C     IC ARRAY CONTAINS THE COLUMN NOS. IN B MATRIX WHICH HAVE NONZERO
  394. C     ENTRIES.
  395. C
  396. C                  TABLE OF VARIOUS FLAGS
  397. C  ICS     ITYPB   ISHEAR    NC     NCOL     IB     IBB    IBC    ITS
  398. C 1 OR 2     0       0       0       1       12      6      6      0
  399. C 1 OR 2     0       1       1       1       14      7      6      1
  400. C   1        1       0       2       2       16     14     12      1
  401. C   1        1       1       4       3       16     16     12      2
  402. C   2        1       0       0       3       12     12     12      0
  403. C   2        1       1       2       3       14     14     12      1
  404. C
  405. C
  406. C
  407.       IMPLICIT REAL*8 (A-H,O-Z)
  408. C
  409.       COMMON /EL/ IND,ICOUNT,NPAR(20),NUMEG,NEGL,NEGNL,IMASS,IDAMP,ISTAT
  410.      1      ,NDOFDM,KLIN,IEIG,IMASSN,IDAMPN
  411.       COMMON /VAR/ NG,MODEX,IUPDT,KSTEP,ITEMAX,IEQREF,ITE,KPRI,
  412.      1             IREF,IEQUIT,IPRI,KPLOTN,KPLOTE
  413.       COMMON /STNL/ XLT,XOL,YOL,ZOL,FAC,PFAC,INTX,INTY,INTZ,NST
  414.       COMMON /BTRANS/ DISPT(16),DXYZ(9),XLN,EPS,EPS1
  415.       COMMON /POS/ I1,I2,I3,ISTRES
  416.       COMMON /PIE/ PI,TOPI,DEGRAD,RADEG
  417.       COMMON /SHP/ B(3,16),BNL1(3,16),BNL2(2,16),BNL3(2,16)
  418.       COMMON /ICA/ IC(16,3),NCOL,IBC,NC
  419. C
  420.       DIMENSION AS(16,16),WA(1),PROP(1),C(5,5),DUMMY(3,16),XAREA(3)
  421.      1           ,SR(1),DISP(1),RE(1),WI(7,7),LI3I(15)
  422.       DIMENSION LOCATE(8,3),RERIT(1),ADUM(1)
  423.       DIMENSION KSTART(4)
  424.       DIMENSION ITFLAG(6,6)
  425. C
  426.       EQUIVALENCE (NPAR(15),MODEL),(NPAR(3),INDNL),(NPAR(5),ITYPB)
  427.       EQUIVALENCE  (NPAR(13),NTABLE)
  428. C
  429. C *CDC*      DATA WI/1.00E0,13*0.0,0.666666666667E0,2*0.166666666667E0,
  430. C *CDC*     1      11*0.0,0.133333333333E0,2*0.355555555556E0,
  431. C *CDC*     2      2*0.777777777778E-1,2*0.0,7*0.0,0.32380952381E0,
  432. C *CDC*     3      2*0.321428571429E-1,2*0.257142857143E0,
  433. C *CDC*     4      2*0.48809523881E-1/
  434. C
  435. C    *IBM*  USE THE FOLLOWING CARDS FOR   WI
  436. C
  437.       DATA WI/1.0D0,13*0.0D0,0.666666666667D0,2*0.166666666667D0,
  438.      1      11*0.0D0,0.133333333333D0,2*0.355555555556D0,
  439.      2      2*0.777777777778D-1,2*0.0D0,7*0.0D0,0.32380952381D0,
  440.      3      2*0.321428571429D-1,2*0.257142857143D0,
  441.      4      2*0.48809523881D-1/
  442. C
  443.       DATA LI3I/3,1,2,5,3,1,2,4,7,5,3,1,2,4,6/
  444.       DATA LOCATE / 1,0,0,0,14,0,0,0,
  445.      1              1,14,0,0,16,15,0,0,
  446.      1              1,16,30,43,16,15,14,13 /
  447. C
  448.       DATA ITFLAG / 0, 1,12, 6, 6, 0,
  449.      1              1, 1,14, 7, 6, 1,
  450.      2              2, 2,16,14,12, 1,
  451.      3              4, 3,16,16,12, 2,
  452.      4              0, 3,12,12,12, 0,
  453.      5              2, 3,14,14,12, 1/
  454. C
  455.       ADUM1=0.D0
  456.       ADUM(1)=0.D0
  457. C
  458.       IF (ITYPB.GT.0.OR.ICS.EQ.1) GO TO 5
  459.       LPIPE=0
  460.       IF (INTZ.EQ.5) LPIPE=3
  461.       IF (INTZ.EQ.7) LPIPE=8
  462.     5 CONTINUE
  463.       DO 395 I=13,16
  464.   395 RE(I)=0.0
  465.       INPL = 2 + ITYPB
  466.       NUMC = 2*ITYPB*ICS + ISHEAR + 1
  467.       NC = ITFLAG(1,NUMC)
  468.       NCOL = ITFLAG(2,NUMC)
  469.       IB = ITFLAG(3,NUMC)
  470.       IBB = ITFLAG(4,NUMC)
  471.       IBC = ITFLAG(5,NUMC)
  472.       ITS= ITFLAG(6,NUMC)
  473. C
  474. C     RECOVER THE SHEAR AND TORSIONAL ANGLES BY EMPLOYING
  475. C     THE GAUSS ELIMINATION COEFFICIENT OF THE PREVIOUS STEP
  476. C
  477.       IF (ITS.EQ.0) GO TO 70
  478.       DO 410 IJ=1,NC
  479.       I=NC+1-IJ
  480.       ISTART = LOCATE(I,NCOL)
  481.       TEMP=0.0
  482.       IJK=IBB-I
  483.       DO 415 JK=1,IJK
  484.       J = IC(JK,NCOL)
  485.       TEMP = TEMP - SR(ISTART)*DISP(J)
  486.   415 ISTART = ISTART + 1
  487.       JL = LOCATE( 4+I,NCOL )
  488.       DISP(JL) = TEMP
  489.   410 CONTINUE
  490. C
  491. C     IN THE CASE OF NONLINEAR ANALYSIS, CORRECTING THE RECOVERED
  492. C     DISPLACEMENTS.
  493. C
  494.       IF (INDNL .EQ. 0) GO TO 405
  495.       DO 406 IJ=1,NC
  496.       I=NC+1-IJ
  497.       JL=LOCATE(4+I,NCOL)
  498.       DISP(JL) = DISP(JL) - RERIT(4+IJ)
  499.   406 CONTINUE
  500. C
  501.   405 CONTINUE
  502. C
  503.    70 EPS1=WA(1)
  504.       EPS=(XLN - XLT)/XLT
  505. C
  506. C     ISTRES=-1    FORM NONLINEAR STIFFNESS MATRIX
  507. C           = 0    CALCULATE STRESSES AT ALL INTEGRATION POINTS OR
  508. C                  CALCULATE NODAL FORCES
  509. C           = 1    CALCULATE STRESSES AT SELECTED INTEGRATION POINTS
  510. C
  511.       IF (ISTRES) 49,40,10
  512. C
  513. C     STRESS CALCULATION AT SELECTED INTEGRATION POINTS
  514. C
  515.    10 CALL SECT (PROP(3),PROP(4),R,ICS)
  516.       CALL SHAPE
  517.       IST=ISTRES
  518. C
  519.       IF (MODEL.EQ.2) GO TO 15
  520. C
  521.       IST1=IST
  522.       IST2=IST
  523.       IST3=IST
  524.       IST4=IST
  525.       CALL BELPAL (PROP,ADUM1,ADUM1,WA(IST2),ADUM,ADUM,IB)
  526.       RETURN
  527. C
  528.    15 IST1=IST + 1
  529.       IST2=IST1 + 1
  530.       IST3=IST2 + 3
  531.       IST4=IST3 + 3
  532. C
  533.       CALL BELPAL (PROP,WA(IST),WA(IST1),WA(IST2),WA(IST3),WA(IST4),IB)
  534.       RETURN
  535. C
  536.    49 DO 50 I=1,IB
  537.       DO 50 J=1,IB
  538.    50 AS(I,J)=0.
  539. C
  540. C
  541. C     L I N E A R   E L A S T I C   M A T E R I A L
  542. C     S T I F F N E S S   M A T R I X
  543. C
  544. C
  545.       IF (ICOUNT.GT.2) GO TO 40
  546.       IF (IREF.NE.0) GO TO 40
  547.       IF (MODEL.GT.1) GO TO 40
  548. C
  549.       IF (ICS.GT.1) GO TO 25
  550. C
  551. C     RECTANGULAR  CROSS-SECTION
  552. C
  553.       XAREA(1)=PROP(3)*PROP(4)
  554.       SSI=XAREA(1)*PROP(4)*PROP(4)/12.
  555.       TTI=XAREA(1)*PROP(3)*PROP(3)/12.
  556.       RRI=SSI + TTI
  557.       GO TO 30
  558. C
  559. C     PIPE  CROSS-SECTION
  560. C
  561.    25 XAREA(1)=PI*(PROP(3)**2 - PROP(4)**2)/4.
  562.       SSI=XAREA(1)*(PROP(3)**2 + PROP(4)**2)/16.
  563.       TTI=SSI
  564.       RRI=SSI + TTI
  565. C
  566.    30 XAREA(2)=0.
  567.       XAREA(3)=0.
  568.       EY=PROP(1)
  569.       XNU=PROP(2)
  570.       GE=EY/(2.*(1. + XNU))
  571.       CALL STIFF (AS,XLT,EY,GE,RRI,SSI,TTI,XAREA)
  572. C
  573. C
  574.    40 DELV=XLT*PROP(3)*PROP(4)
  575.       IF (ICS.LE.1) GO TO 99
  576.       DELY=XLT*PI*(PROP(3) - PROP(4))
  577.       ZD=4.0
  578.       IF (INTZ.LT.8) ZD=DBLE(FLOAT(INTZ))
  579.       IF (ITYPB.EQ.0) ZD=2.0
  580.       DELV=XLT*DELY/ZD
  581. C
  582.    99 DO 91 I=1,INPL
  583.       DO 91 J=1,IBB
  584.    91 DUMMY(I,J)=0.
  585. C
  586.       IST=1 - NST
  587.       IF (INDNL.EQ.2) IST=IST + 1
  588.       DO 100 I1=1,INTX
  589.       DO 105 I3=1,INTZ
  590.       DO 110 I2=1,INTY
  591. C
  592. C
  593. C     N O N L I N E A R   M A T E R I A L
  594. C     S T I F F N E S S    M A T R I X
  595. C
  596. C
  597.       CALL SECT (PROP(3),PROP(4),R,ICS)
  598.       CALL SHAPE
  599.       IST=IST + NST
  600. C
  601.       IF (MODEL.EQ.2) GO TO 95
  602. C
  603.       IST1=IST
  604.       IST2=IST
  605.       IST3=IST
  606.       IST4=IST
  607.       KST=IST2 - 1
  608.       CALL BELPAL (PROP,ADUM1,ADUM1,WA(IST2),ADUM,ADUM,IB)
  609.       GO TO 96
  610. C
  611.    95 IST1=IST + 1
  612.       IST2=IST1 + 1
  613.       IST3=IST2 + 3
  614.       IST4=IST3 + 3
  615.       KST=IST2 - 1
  616. C
  617.       CALL BELPAL (PROP,WA(IST),WA(IST1),WA(IST2),WA(IST3),WA(IST4),IB)
  618. C
  619.    96 CONTINUE
  620. C
  621.       IF (NTABLE.EQ.0 .AND. ISTRES.EQ.0) GO TO 110
  622. C
  623. C     EVALUATE INTEGRATION WEIGTHING FACTORS
  624. C
  625.       WFAC=WI(I1,INTX)*WI(I2,INTY)*DELV
  626.       IF (ICS-1) 243,243,244
  627.   243 WFACZ=WI(I3,INTZ)
  628.       GO TO 245
  629.   244 IF (ITYPB.EQ.0) GO TO 246
  630.       WFACZ=1.00D0
  631.       IF (INTZ.NE.8) GO TO 245
  632.       LL=I3 - (I3/2)*2
  633.       IF (LL.EQ.0) WFACZ=2.0000D0
  634.       WFACZ=WFACZ/3.0
  635.       GO TO 245
  636.   246 LL=LPIPE + I3
  637.       I3I=LI3I(LL)
  638.       WFACZ=2.0*WI(I3I,INTZ)
  639.   245 WFAC=WFAC*WFACZ
  640.       IF (ICS.EQ.2) WFAC=WFAC*R
  641. C
  642.       IF (NTABLE.EQ.-1 .AND. ISTRES.EQ.0) GO TO 324
  643. C
  644.   189 IF (ICOUNT.GT.2) GO TO 324
  645.       IF (IREF) 324,190,324
  646.   190 IPEL=1
  647.       IF (MODEL.EQ.1) GO TO 191
  648.       IF (WA(IST).GE.0.) IPEL=2
  649.   191 CALL CPEL (WA(IST),WA(IST2),PROP,C,IPEL,WA(IST1))
  650. C
  651.       IF (MODEL.GT.1) GO TO 240
  652.       IF (ITS.EQ.0) GO TO 324
  653. C
  654. C     INCLUDE SHEAR AND TORSIONAL EFFECTS TO THE
  655. C     ELASTIC STIFFNESS MATRIX.
  656. C
  657.       DO 420 IJ=1,NC
  658.       I = IC( IBC+IJ , NCOL )
  659.       DO 425 JK=IJ,NC
  660.       J = IC( IBC+JK , NCOL )
  661.       DO 425 K=1,INPL
  662.   425 AS(I,J) = AS(I,J) + B(K,I)*C(K,K)*B(K,J)*WFAC
  663. C
  664.       DO 430 J=4,10,6
  665.       DO 430 K=2,INPL
  666.   430 AS(J,I) = AS(J,I) + B(K,I)*C(K,K)*B(K,J)*WFAC
  667. C
  668.       DO 435 JK=1,IBC
  669.       J = IC(JK,NCOL)
  670.   435 AS(J,I) = AS(J,I) + B(1,I)*C(1,1)*B(1,J)*WFAC
  671. C
  672.   420 CONTINUE
  673.       GO TO 324
  674. C
  675. C     CALCULATE MATERIALLY NONLINEAR STIFNESS MATRIX
  676. C
  677. C     CALCULATE (DUMMY) = (C) * (B)
  678. C
  679.   240 DO 200 I=1,INPL
  680.       DO 200 JJ=1,IBB
  681.       J = IC(JJ,NCOL)
  682.       TEMP=0.
  683.       DO 210 K=1,INPL
  684.   210 TEMP=TEMP + C(I,K)*B(K,J)
  685.   200 DUMMY(I,JJ)=TEMP
  686. C
  687. C     CALCULATE  (AS) = (BT)*(C)*(B) = (BT)*(DUMMY)
  688. C     FOR THIS INTEGRATION POINT
  689. C     EVALUATE THE MATERIALLY NONLINEAR STIFFNESS MATRIX
  690. C
  691.       DO 250 II=1,IBB
  692.       I = IC(II,NCOL)
  693.       DO 250 JJ=II,IBB
  694.       J = IC(JJ,NCOL)
  695.       TEMP=0.
  696.       DO 260 K=1,INPL
  697.   260 TEMP=TEMP + B(K,I)*DUMMY(K,JJ)
  698.   250 AS(I,J)=AS(I,J) + WFAC*TEMP
  699. C
  700. C
  701. C     L O A D   V E C T O R
  702. C
  703. C
  704.   324 DO 325 LL=1,IBB
  705.       L = IC(LL,NCOL)
  706.       TEMP=0.
  707.       DO 330 K=1,INPL
  708.   330 TEMP=TEMP + B(K,L)*WA(KST+K)
  709.   325 RE(L)=RE(L) + TEMP*WFAC
  710.       IF (NTABLE.EQ.-1 .AND. ISTRES.EQ.0) GO TO 110
  711.       IF (ICOUNT.GT.2) GO TO 110
  712.       IF (IREF.NE.0) GO TO 110
  713.       IF (INDNL.LT.2) GO TO 110
  714. C
  715. C     G E O M E T R I C    N O N L I N E A R
  716. C     S T I F F N E S S    M A T R I X
  717. C
  718. C
  719.       TAU11=WA(IST2)
  720.       TAU12=WA(IST2 + 1)
  721.       TAU13=WA(IST2 + 2)
  722. C
  723.       DO 400 II=1,IBB
  724.       I = IC(II,NCOL)
  725.       DO 400 JJ=II,IBB
  726.       J = IC(JJ,NCOL)
  727.       TEMP=(BNL1(1,I)*BNL1(1,J) + BNL2(1,I)*BNL2(1,J))*TAU11
  728.      +   + (BNL1(1,I)*BNL1(2,J) + BNL1(2,I)*BNL1(1,J))*TAU12
  729.       IF (ITYPB.EQ.0) GO TO 400
  730.       TEMP=TEMP +
  731.      +     (BNL3(1,I)*BNL3(1,J))*TAU11 +
  732.      +     (BNL3(1,I)*BNL3(2,J) + BNL3(2,I)*BNL3(1,J))*TAU12 +
  733.      +     (BNL1(1,I)*BNL1(3,J) + BNL2(1,I)*BNL2(2,J))*TAU13
  734.      +    +(BNL1(3,I)*BNL1(1,J) + BNL2(2,I)*BNL2(1,J))*TAU13
  735. C
  736.   400 AS(I,J)=AS(I,J) + WFAC*TEMP
  737.   110 CONTINUE
  738.   105 CONTINUE
  739.   100 CONTINUE
  740. C
  741. C
  742.       IF (ISTRES.GE.0) RETURN
  743.       IF (ICOUNT.GT.2) GO TO 351
  744.       IF (INDNL.EQ.2) WA(1)=EPS
  745.       IF (IREF) 351,369,351
  746.   369 IF (ITS.EQ.0) GO TO 349
  747. C
  748. C     STATIC CONDENSATION TO ELIMINATE THE SHEAR AND/OR TORSIONAL
  749. C     DEGREES OF FREEDOM AT THE ELEMENT LEVEL.
  750. C
  751. C     (RERIT(I),I=1,NC) STORE (1.0/PIVOT) WHICH ARE ENCOUNTERED
  752. C     DURING THE CONDENSATION PROCEDURE.
  753. C
  754. C
  755.       KI=0
  756.       DO 440 IJ=1,NC
  757.       IBD=IBB - IJ
  758.       I = IC( (IBD+1) , NCOL )
  759.       DD = 1.0/AS(I,I)
  760. C
  761.       RERIT(NC+1-IJ)=DD
  762. C
  763.       DO 440 JK=1,IBD
  764.       J = IC(JK,NCOL)
  765.       KI=KI+1
  766.       SR(KI) = DD*AS(J,I)
  767.       DO 445 KL=JK,IBD
  768.       K = IC(KL,NCOL)
  769.   445 AS(J,K) = AS(J,K) -SR(KI)*AS(K,I)
  770.   440 CONTINUE
  771. C
  772. C
  773.   349 DO 350 I=2,12
  774.       K=I - 1
  775.       DO 350 J=1,K
  776.   350 AS(I,J)=AS(J,I)
  777. C
  778. C
  779. C     (RERIT(I),I=5,4+NC) STORE THE CORRECTIONS TO BE MADE TO THE
  780. C     RECOVERED DISPLACEMENTS IN THE NEXT STEP. THESE CORRECTIONS NEED
  781. C     TO BE MADE BECAUSE THE LOADS CORRESPONDING TO THE STATICALLY
  782. C     CONDENSED DEGREES OF FREEDOM DONOT REMAIN ZERO DUE
  783. C     TO NONLINEARITY OF THE STRESS-STRAIN RELATION.
  784. C
  785.   351 IF (INDNL .EQ. 0) RETURN
  786.       IF (ITS .EQ. 0) RETURN
  787. C
  788.       IF (NC .GT. 1) GO TO 355
  789.       RERIT(5) = RERIT(1)*RE(14)
  790.       GO TO 450
  791. C
  792.   355 IF (NC .GT. 2) GO TO 360
  793.       IF ( ICS .EQ. 2 ) GO TO 357
  794.       RE(15) = RE(15) - SR(13)*RE(16)
  795.       RERIT(5) = RERIT(1)*RE(15)
  796.       RERIT(6) = RE(16)*RERIT(2) - SR(13)*RERIT(5)
  797.       GO TO 450
  798.   357 RE(13) = RE(13) - SR(13)*RE(14)
  799.       RERIT(5) = RERIT(1)*RE(13)
  800.       RERIT(6) = RE(14)*RERIT(2) - SR(13)*RERIT(5)
  801.       GO TO 450
  802. C
  803. C      THIS CASE OCCURS IN CASE OF RECTANGULAR SECTION ONLY.
  804. C
  805. C     FOR THE CASE WHEN NC=4
  806. C
  807.   360 KSTART(1)=13
  808.       KSTART(2)=28
  809.       KSTART(3)=42
  810.       DO 365 I=1,3
  811.       IJ=KSTART(I)
  812.       IK=4-I
  813.       DO 370 J=1,IK
  814.       JK=12+J
  815.       RE(JK) = RE(JK) - SR(IJ)*RE(13+IK)
  816.   370 IJ=IJ+1
  817.   365 CONTINUE
  818.       RERIT(5)=RERIT(1)*RE(13)
  819.       DO 375 I=1,3
  820.       IJ=KSTART(4-I)
  821.       RERIT(5+I)=RERIT(1+I)*RE(13+I)
  822.       DO 380 J=1,I
  823.       RERIT(5+I) = RERIT(5+I) - SR(IJ)*RERIT(4+J)
  824.   380 IJ=IJ+1
  825.   375 CONTINUE
  826. C
  827. C     CORRECTING THE LOAD VECTOR TO ACCOUNT FOR THE LOADS
  828. C     CORRESPONDING TO CONDENSED DEGREES OF FREEDOM
  829. C
  830.   450 KSTART(1)=1
  831.       KSTART(2)=16
  832.       IF (NC .EQ. 2) KSTART(2)=14
  833.       KSTART(3)=30
  834.       KSTART(4)=43
  835.       DO 385 I=1,NC
  836.       IJ=KSTART(I)
  837.       IK=IBB-I
  838.       IL=IC(IK+1 , NCOL)
  839.       DO 390 JK=1,IBC
  840.       J=IC(JK,NCOL)
  841.       RE(J) = RE(J) - SR(IJ)*RE(IL)
  842.   390 IJ=IJ+1
  843.   385 CONTINUE
  844. C
  845.       RETURN
  846.       END
  847. C *CDC* *DECK BELPAL
  848. C *UNI* )FOR,IS N.BELPAL,R.BELPAL
  849.       SUBROUTINE BELPAL (PROP,SIGY,EPSTR,SIG,STRN,EPSP,IB)
  850. C
  851. C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
  852. C .                                                                 .
  853. C .   SIG     STRESSES FROM THE PREVIOUS TIME STEP                  .
  854. C .   STRN    STRAINS FROM THE PREVIOUS TIME STEP                   .
  855. C .   EPSP    PLASTIC STRAINS FROM THE PREVIOUS TIME STEP           .
  856. C .   EPSTR   ACCUMULATED EFFECTIVE PLASTIC STRAIN FROM             .
  857. C .           THE PREVIOUS TIME STEP                                .
  858. C .                                                                 .
  859. C .   STRESS  CURRENT STRESSES                                      .
  860. C .   SIGY    YIELD STRESS                                          .
  861. C .                                                                 .
  862. C .   C       CURRENT ELASTIC-PLASTIC MODULUS MATRIX                .
  863. C .                                                                 .
  864. C .                                                                 .
  865. C .   NOTES/                                                        .
  866. C .       SIGY IS -VE FOR ELASTIC STATE                             .
  867. C .       SIGY IS +VE FOR PLASTIC STATE                             .
  868. C .                                                                 .
  869. C .      INDNL.EQ.1     SMALL DISPLACEMENT ELASTIC-PLASTIC ANALYSIS .
  870. C .      INDNL.EQ.2     LARGE DISP ANALYSIS (UPDATED LAGRANGIAN)    .
  871. C .                                                                 .
  872. C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
  873. C
  874.       IMPLICIT REAL*8 (A-H,O-Z)
  875. C
  876.       COMMON /EL/ IND,ICOUNT,NPAR(20),NUMEG,NEGL,NEGNL,IMASS,IDAMP,ISTAT
  877.      1      ,NDOFDM,KLIN,IEIG,IMASSN,IDAMPN
  878.       COMMON /STNL/ XLT,XOL,YOL,ZOL,FAC,PFAC,INTX,INTY,INTZ,NST
  879.       COMMON /SHP/ B(3,16),BNL1(3,16),BNL2(2,16),BNL3(2,16)
  880.       COMMON /BTRANS/ DISP(16),DXYZ(9),XLN,EPS,EPS1
  881.       COMMON /ICA/ IC(16,3),NCOL,IBC,NC
  882.       DIMENSION DELEPS(3),STRESS(3),SIG(3),DELSIG(3),PROP(1),C(5,5)
  883.       DIMENSION STRN(1),EPSP(1),DEPSP(3)
  884. C
  885.       EQUIVALENCE (NPAR(15),MODEL),(NPAR(3),INDNL)
  886. C
  887.       EY=PROP(1)
  888.       XNU=PROP(2)
  889. C
  890. C      1. FIND THE STRAIN INCREMENTS
  891. C
  892.       K=1
  893.       IF (INDNL.EQ.2) K=2
  894.       I=1
  895.       TEMP=0.
  896.       DO 105 J=1,3
  897.   105 DELEPS(J)=0.0
  898.       DO 108 J=K,6
  899.   108 TEMP=TEMP + B(I,J)*DISP(J) + B(I,J+6)*DISP(J+6)
  900.       IF (IB.EQ.12) GO TO 300
  901.       DO 305 L=1,NC
  902.       KL = IC( IBC+L , NCOL )
  903.       TEMP = TEMP + B(I,KL)*DISP(KL)
  904.       DELEPS(2) = DELEPS(2) + B(2,KL)*DISP(KL)
  905.       DELEPS(3) = DELEPS(3) + B(3,KL)*DISP(KL)
  906.   305 CONTINUE
  907. C
  908.   300 DELEPS(1) = TEMP
  909.       IF (INDNL.EQ.2) DELEPS(1)=DELEPS(1) + EPS - EPS1
  910.       DO 310 J=2,3
  911.       DO 310 I=4,10,6
  912.       DELEPS(J) = DELEPS(J) + B(J,I)*DISP(I)
  913.   310 CONTINUE
  914. C
  915. C      3.  CALCULATE THE TRIAL STRESS INCREMENT ASSUMING
  916. C          ELASTIC BEHAVIOR
  917. C
  918.       DELSIG(1)=EY*DELEPS(1)
  919.       DO 120 L=2,3
  920.   120 DELSIG(L)=PFAC*DELEPS(L)
  921. C
  922. C      4.  ASSUMING ELASTIC BEHAVIOR DURING THIS INCREMENT,DETRMINE THE
  923. C          NEW STATE OF STRESS. LOCATE THE POSITION OF THE NEW STRESS
  924. C          STATE IN THE STRESS PLANE.
  925. C
  926.       DO 125 L=1,3
  927.   125 STRESS(L)=DELSIG(L) + SIG(L)
  928.       IF (MODEL.GT.1) GO TO 130
  929.       DO 129 L=1,3
  930.   129 SIG(L)=STRESS(L)
  931.       RETURN
  932. C
  933.   130 SIGSQ=STRESS(1)**2 + 3.*(STRESS(2)**2 + STRESS(3)**2)
  934.       YSQ=SIGY*SIGY
  935. C
  936.       IF (SIGSQ - YSQ) 150,200,200
  937. C
  938. C     STATE OF STRESS LIES WITHIN THE LOADING SURFACE , ELASTIC BEHAVIOR
  939. C
  940.   150 IPEL=1
  941.       DO 155 L=1,3
  942.   155 SIG(L)=STRESS(L)
  943.       IF (SIGY.GT.0.) SIGY=-SIGY
  944.       GO TO 410
  945. C
  946. C     STATE OF STRESS OUTSIDE THE YIELD SURFACE, PLASTIC BEHAVIOR.
  947. C
  948. C     TO CHECK THE STATE OF STRESS AT PREVIOUS STEP.
  949.   200 IPEL=2
  950.       IF (SIGY.LT.0.) GO TO 250
  951. C
  952. C     THE STATE OF STRESS WAS OUTSIDE OF THE YIELD SURFACE AT TIME (T)
  953. C     CALCULATE PLASTIC STRESS INCREMENTS.
  954. C
  955.       RAT=1.0
  956.       CALL CPEL (SIGY,SIG,PROP,C,IPEL,EPSTR)
  957. C
  958.       DO 205 L=1,3
  959.       TEMP=0.
  960.       DO 210 K=1,3
  961.   210 TEMP=TEMP + C(L,K)*DELEPS(K)
  962.   205 DELSIG(L)=TEMP
  963. C
  964.       DO 215 L=1,3
  965.   215 STRESS(L)=SIG(L) + DELSIG(L)
  966. C
  967.       SIGSQ=STRESS(1)**2 + 3.*(STRESS(2)**2 + STRESS(3)**2)
  968.       SIGY=DSQRT(SIGSQ)
  969. C
  970.       DO 225 L=1,3
  971.   225 SIG(L)=STRESS(L)
  972.       GO TO 400
  973. C
  974. C     THE MATERIAL AT THIS POINT WAS BEHAVING ELASTICALLY AT TIME (T).
  975. C     DETERMINE THE ELASTIC PORTION OF STRAINS.
  976. C
  977.   250 IPEL=2
  978.       ALFA1=DELSIG(1)**2 + 3.*(DELSIG(2)**2 + DELSIG(3)**2)
  979.       ALFA2=SIG(1)*DELSIG(1) + 3.*(SIG(2)*DELSIG(2) + SIG(3)*DELSIG(3))
  980.       ALFA3=SIG(1)**2 + 3.*(SIG(2)**2 + SIG(3)**2) - SIGY*SIGY
  981.       ADEL=ALFA2*ALFA2 - ALFA1*ALFA3
  982.       RATIO=(DSQRT(ADEL) - ALFA2)/ALFA1
  983.       RAT=1. - RATIO
  984. C
  985.       DO 255 L=1,3
  986.   255 SIG(L)=SIG(L) + RATIO*DELSIG(L)
  987. C
  988.       CALL CPEL (SIGY,SIG,PROP,C,IPEL,EPSTR)
  989. C
  990.       DO 260 L=1,3
  991.       TEMP=0.0
  992.       DO 265 K=1,3
  993.   265 TEMP=TEMP + C(L,K)*DELEPS(K)*RAT
  994.   260 DELSIG(L)=TEMP
  995. C
  996.       DO 270 L=1,3
  997.   270 SIG(L)=SIG(L) + DELSIG(L)
  998. C
  999.       SIGSQ=SIG(1)**2 + 3.*(SIG(2)**2 + SIG(3)**2)
  1000.       SIGY=DSQRT(SIGSQ)
  1001. C
  1002. C     UPDATE TOTAL STRAINS, PLASTIC STRAINS, AND ACCUMULATED
  1003. C     EFFECTIVE PLASTIC STRAIN  (DELSIG(I) IS THE ELASTIC-PLASTIC
  1004. C     STRESS INCREMENT)
  1005. C
  1006.   400 DEPSP(1)=RAT*DELEPS(1) - DELSIG(1)/EY
  1007.       DEPSP(2)=RAT*DELEPS(2) - DELSIG(2)/PFAC
  1008.       DEPSP(3)=RAT*DELEPS(3) - DELSIG(3)/PFAC
  1009. C
  1010.       DO 405 I=1,3
  1011.   405 EPSP(I)=EPSP(I) + DEPSP(I)
  1012. C
  1013.       DEPSTR=DSQRT(DEPSP(1)*DEPSP(1) + (DEPSP(2)*DEPSP(2) +
  1014.      1            DEPSP(3)*DEPSP(3))/3.0)
  1015.       EPSTR=EPSTR + DEPSTR
  1016. C
  1017.   410 DO 415 I=1,3
  1018.   415 STRN(I)=STRN(I) + DELEPS(I)
  1019. C
  1020.       RETURN
  1021. C
  1022.       END
  1023. C *CDC* *DECK CPEL
  1024. C *UNI* )FOR,IS N.CPEL,R.CPEL
  1025.       SUBROUTINE CPEL (SIGY,SIG,PROP,C,IPEL,EPSTR)
  1026. C
  1027. C
  1028. C     THIS SUBROUTINE CALCULATE THE ELASTIC-PLASTIC CONSTITUTIVE
  1029. C     RELATION AND THE PLASTIC STRAIN INCREMENTS
  1030. C
  1031. C
  1032.       IMPLICIT REAL*8 (A-H,O-Z)
  1033.       COMMON /EL/ IND,ICOUNT,NPAR(20),NUMEG,NEGL,NEGNL,IMASS,IDAMP,ISTAT
  1034.      1      ,NDOFDM,KLIN,IEIG,IMASSN,IDAMPN
  1035.       COMMON /STNL/ XLT,XOL,YOL,ZOL,FAC,PFAC,INTX,INTY,INTZ,NST
  1036. C
  1037.       DIMENSION C(5,5),SIG(1),S(5),PROP(1)
  1038. C
  1039.       EQUIVALENCE (NPAR(15),MODEL),(NPAR(3),INDNL)
  1040.       EQUIVALENCE (NPAR(17),NCON)
  1041. C
  1042. C     CALCULATE MATERIAL PROPERTIES
  1043. C
  1044.       EY=PROP(1)
  1045.       XNU=PROP(2)
  1046. C
  1047.       DO 50 I=1,5
  1048.       DO 50 J=1,5
  1049.    50 C(I,J)=0.
  1050.       IF (IPEL - 1) 100,100,200
  1051. C
  1052. C     ELASTIC STRESS-STRAIN RELATION
  1053. C
  1054.   100 C(1,1)=EY
  1055.       C(2,2)=PFAC
  1056.       C(3,3)=PFAC
  1057.       RETURN
  1058. C
  1059. C     PLASTIC STRESS-STRAIN RELATION
  1060. C
  1061.   200 IF (NCON.GE.8) GO TO 210
  1062. C
  1063. C        BILINEAR STRESS-STRAIN CURVE
  1064. C
  1065.       ET=PROP(6)
  1066.       GO TO 215
  1067. C
  1068. C        PIECEWISE-LINEAR STRESS-STRAIN CURVE
  1069. C
  1070.   210 CALL HARDMB (PROP,EPSTR,ET)
  1071. C
  1072.   215 SM=SIG(1)/3.0
  1073.       S(1)=SIG(1) - SM
  1074.       S(2)=SIG(2)
  1075.       S(3)=SIG(3)
  1076.       S(4)=-SM
  1077.       S(5)=-SM
  1078.       GAMA=ET/EY
  1079.       BETA=4.5*(1. - GAMA)/((3. - (1. - 2.*XNU)*GAMA)*SIGY*SIGY)
  1080.       SCALE=2.*PFAC
  1081.       DO 220 I=1,5
  1082.       DO 220 J=1,5
  1083.   220 C(I,J)=-BETA*S(I)*S(J)*SCALE
  1084.       SCALE=FAC*(1. - XNU)
  1085.       C(1,1)=C(1,1) + SCALE
  1086.       C(4,4)=C(4,4) + SCALE
  1087.       C(5,5)=C(5,5) + SCALE
  1088.       DO 222 I=2,3
  1089.   222 C(I,I)=C(I,I) + PFAC
  1090.       SCALE=XNU*FAC
  1091.       C(1,4)=C(1,4) + SCALE
  1092.       C(1,5)=C(1,5) + SCALE
  1093.       C(4,5)=C(4,5) + SCALE
  1094. C
  1095. C     GAUSS  ELIMINATION  TO  REDUCE  C(5,5)  TO  C(3,3)
  1096. C
  1097.       DO 250 K=1,2
  1098.       L=5 - K
  1099.       LL=L + 1
  1100.       DD=1./C(LL,LL)
  1101.       DO 250 I=1,L
  1102.       D=DD*C(I,LL)
  1103.       DO 255 J=I,L
  1104.   255 C(I,J)=C(I,J) - D*C(J,LL)
  1105.   250 CONTINUE
  1106.       C(2,1)=C(1,2)
  1107.       C(3,1)=C(1,3)
  1108.       C(3,2)=C(2,3)
  1109.       RETURN
  1110.       END
  1111. C *CDC* *DECK HARDMB
  1112. C *UNI* )FOR,IS N.HARDMB, R.HARDMB
  1113. C
  1114.       SUBROUTINE HARDMB (PROP,EPSTR,ET)
  1115. C
  1116. C
  1117. C
  1118. C     THIS SUBROUTINE CALCULATES THE SLOPE OF THE UNIAXIAL
  1119. C     STRESS-STRAIN CURVE CORRESPONDING TO A GIVEN VALUE
  1120. C     OF ACCUMULATED EFFECTIVE PLASTIC STRAIN
  1121. C
  1122. C
  1123. C
  1124. C        NPR  = NUMBER OF PAIRS OF STRESS-STRAIN VALUES DEFINING THE
  1125. C               PLASTIC PORTION OF THE STRESS-STRAIN CURVE
  1126. C        NSEG = NUMBER OF SEGMENTS IN THE PLASTIC PORTION OF THE CURVE
  1127. C
  1128. C
  1129. C
  1130.       IMPLICIT REAL*8 (A-H,O-Z)
  1131. C
  1132.       COMMON /EL/ IND,ICOUNT,NPAR(20),NUMEG,NEGL,NEGNL,IMASS,IDAMP,
  1133.      1            ISTAT,NDOF,KLIN,IEIG,IMASSN,IDAMPN
  1134.       DIMENSION PROP(1)
  1135.       EQUIVALENCE (NPAR(17),NCON)
  1136. C
  1137. C
  1138.       YM=PROP(1)
  1139.       NPR=(NCON - 4)/2
  1140.       NSEG=NPR - 1
  1141. C
  1142.       KK=8
  1143.       DO 10 J=1,NSEG
  1144.       TEPSTR=PROP(KK) - (PROP(KK - 1)/YM)
  1145.       IF (EPSTR.LT.TEPSTR) GO TO 20
  1146.    10 KK=KK + 2
  1147. C
  1148.       WRITE (6,2000)
  1149.       STOP
  1150. C
  1151. C     CALCULATE THE HARDENING MODULUS
  1152. C
  1153.    20 ET=(PROP(KK - 1) - PROP(KK - 3))/(PROP(KK) - PROP(KK - 2))
  1154. C
  1155.       RETURN
  1156. C
  1157.  2000 FORMAT (126H   ERROR   ACCUMULATED EFFECTIVE PLASTIC STRAIN IS OUT
  1158.      1SIDE THE RANGE OF THE UNIAXIAL STRESS-STRAIN CURVE   (SUBROUTINE H
  1159.      2ARDMB))
  1160. C
  1161.       END
  1162. C *CDC* *DECK SHAPE
  1163. C *UNI* )FOR,IS N.SHAPE,R.SHAPE
  1164.       SUBROUTINE SHAPE
  1165.       IMPLICIT REAL*8 (A-H,O-Z)
  1166.       COMMON /EL/ IND,ICOUNT,NPAR(20),NUMEG,NEGL,NEGNL,IMASS,IDAMP,ISTAT
  1167.      1      ,NDOFDM,KLIN,IEIG,IMASSN,IDAMPN
  1168.       COMMON /STNL/ XLT,XOL,YOL,ZOL,FAC,PFAC,INTX,INTY,INTZ,NST
  1169.       COMMON /SHP/ B(3,16),BNL1(3,16),BNL2(2,16),BNL3(2,16)
  1170. C
  1171.       EQUIVALENCE (NPAR(3),INDNL)
  1172. C
  1173. C     INITIALIZE THE SHAPE FUNCTIONS.
  1174. C
  1175.       DO 100 I=1,3
  1176.       DO 100 J=1,16
  1177.   100 B(I,J)=0.
  1178. C
  1179. C     DEFINE THE STRAIN-DISPLACEMENT RELATIONS
  1180. C
  1181.       XLT3 = XLT*XLT*XLT
  1182.       YOL2 = YOL*YOL
  1183.       YOL3 = YOL2*YOL
  1184.       ZOL2 = ZOL*ZOL
  1185.       ZOL3 = ZOL2*ZOL
  1186.       B(1,1)=-1./XLT
  1187.       A=(6. -12.*XOL)/XLT
  1188.       B(1,2)=A*YOL
  1189.       B(1,3)=A*ZOL
  1190.       B(1,5)=(-4. + 6.*XOL)*ZOL
  1191.       B(1,6)=(4. - 6.*XOL)*YOL
  1192.       B(1,7)=-B(1,1)
  1193.       B(1,8)=-B(1,2)
  1194.       B(1,9)=-B(1,3)
  1195.       B(1,11)=(-2. + 6.*XOL)*ZOL
  1196.       B(1,12)=(2. - 6.*XOL)*YOL
  1197.       B(1,13)=A*ZOL*XLT
  1198.       B(1,14)=-A*YOL*XLT
  1199.       B(2,14)=-1.0
  1200.       B(2,15) = XLT*ZOL
  1201.       B(2,16) = XLT3*( 3.0*YOL2*ZOL - ZOL3 )
  1202.       B(3,13)=1.0
  1203.       B(3,15) = XLT*YOL
  1204.       B(3,16) = XLT3*( YOL3 - 3.0*YOL*ZOL2 )
  1205.       B(2,4)=ZOL
  1206.       B(2,10)=-ZOL
  1207.       B(3,4)=-YOL
  1208.       B(3,10)=YOL
  1209. C
  1210. C     NONLINEAR  STRAIN  DISPLACEMENT  RELATIONS
  1211. C
  1212.       IF (INDNL.LT.2) RETURN
  1213.       DO 200 I=1,2
  1214.       DO 200 J=1,16
  1215.       BNL1(I,J)=0.
  1216.       BNL2(I,J)=0.
  1217.   200 BNL3(I,J)=0.
  1218.       DO 201 J=1,16
  1219.   201 BNL1(3,J)=0.
  1220. C
  1221.       R1=(6. - 12.*XOL)/XLT
  1222.       R2=4. -6.*XOL
  1223.       R3=6.*XOL*(1. - XOL)/XLT
  1224.       R4=1. - 4.*XOL + 3.*XOL*XOL
  1225.       R5=XOL*(2. -3.*XOL)
  1226. C
  1227. C     DERIVATIVE  WITH  RESPECT  TO  ORIGINAL  LOCAL  X-COORDINATE
  1228. C
  1229.       BNL1(1,1)=-1./XLT
  1230.       BNL1(1,2)=R1*YOL
  1231.       BNL1(1,3)=R1*ZOL
  1232.       BNL1(1,5)=-R2*ZOL
  1233.       BNL1(1,6)=R2*YOL
  1234.       BNL1(1,7)=-BNL1(1,1)
  1235.       BNL1(1,8)=-BNL1(1,2)
  1236.       BNL1(1,9)=-BNL1(1,3)
  1237.       BNL1(1,11)=(6.*XOL - 2.)*ZOL
  1238.       BNL1(1,12)=(2. - 6.*XOL)*YOL
  1239.       BNL1(1,13)=R1*ZOL*XLT
  1240.       BNL1(1,14)=-R1*YOL*XLT
  1241.       DO 220 I=15,16
  1242.       DO 220 J=2,3
  1243.   220 BNL1(J,I) = B(J,I)
  1244.       BNL2(1,2)=-R3
  1245.       BNL2(1,4)=ZOL
  1246.       BNL2(1,6)=R4
  1247.       BNL2(1,8)=R3
  1248.       BNL2(1,10)=-ZOL
  1249.       BNL2(1,12)=-R5
  1250.       BNL2(1,14)=-1.0 + R3*XLT
  1251.       BNL3(1,3)=-R3
  1252.       BNL3(1,4)=-YOL
  1253.       BNL3(1,5)=-R4
  1254.       BNL3(1,9)=R3
  1255.       BNL3(1,10)=YOL
  1256.       BNL3(1,11)=R5
  1257.       BNL3(1,13)=1.0 - R3*XLT
  1258. C
  1259. C     DERIVATIVE  WITH  RESPECT  TO  ORIGINAL  LOCAL  Y-COORDINATE
  1260. C
  1261.       BNL1(2,2)=R3
  1262.       BNL1(2,6)=-R4
  1263.       BNL1(2,8)=-R3
  1264.       BNL1(2,12)=R5
  1265.       BNL1(2,14)=2.0 - R3*XLT
  1266.       BNL2(2,4)=1. - XOL
  1267.       BNL2(2,10)=XOL
  1268. C
  1269. C     DERIVATIVE  WITH  RESPECT  TO  ORIGINAL  LOCAL  Z-COORDINATE
  1270. C
  1271.       BNL1(3,3)=R3
  1272.       BNL1(3,5)=R4
  1273.       BNL1(3,9)=-R3
  1274.       BNL1(3,11)=-R5
  1275.       BNL1(3,13)=R3*XLT
  1276.       BNL3(2,4)=XOL - 1.0
  1277.       BNL3(2,10)=-XOL
  1278.       RETURN
  1279.       END
  1280. C *CDC* *DECK SECT
  1281. C *UNI* )FOR,IS N.SECT,R.SECT
  1282.       SUBROUTINE SECT (RO,RI,R,ICS)
  1283. C
  1284. C     THIS SUBROUTINE CALCULATE THE COORDINATES OF THE SIMPSON@S RULE
  1285. C     INTEGRATION POINTS.
  1286. C
  1287.       IMPLICIT REAL*8 (A-H,O-Z)
  1288.       COMMON /EL/ IND,ICOUNT,NPAR(20),NUMEG,NEGL,NEGNL,IMASS,IDAMP,ISTAT
  1289.      1      ,NDOFDM,KLIN,IEIG,IMASSN,IDAMPN
  1290.       COMMON /STNL/ XLT,XOL,YOL,ZOL,FAC,PFAC,INTX,INTY,INTZ,NST
  1291.       COMMON /POS/ I1,I2,I3,ISTRES
  1292.       COMMON /PIE/ PI,TOPI,DEGRAD,RADEG
  1293. C
  1294.       EQUIVALENCE (NPAR(5),ITYPB)
  1295. C
  1296.       XOL=((-1)**I1)/DBLE(FLOAT(INTX-1))
  1297.       L1=I1/2
  1298.       XOL=XOL*L1 + 0.5
  1299. C
  1300.       IF (ICS.GT.1) GO TO 200
  1301. C
  1302. C     RECTANGULAR SECTION OF SIDES RO , RI
  1303. C
  1304.       YOL=0.
  1305.       IF (INTY.LE.1)GO TO 100
  1306.       YOL=((-1)**I2)*RO/DBLE(FLOAT(INTY-1))
  1307.       L2=I2/2
  1308.       YOL=YOL*L2/XLT
  1309. C
  1310.   100 ZOL=0.
  1311.       IF (INTZ.LE.1)GO TO 110
  1312.       ZOL=((-1)**I3)*RI/DBLE(FLOAT(INTZ-1))
  1313.       L3=I3/2
  1314.       ZOL=ZOL*L3/XLT
  1315.   110 RETURN
  1316. C
  1317. C     PIPE SECTION, INNER DIAMETER=RI  OUTER DIAMETER=RO
  1318. C
  1319.   200 R=(RO + RI)/(4.0*XLT)
  1320.       IF (INTY.LE.1) GO TO 210
  1321.       DR=((-1)**I2)*(RO - RI)/DBLE(FLOAT(INTY-1))
  1322.       DR=DR/2.0
  1323.       L2=I2/2
  1324.       R=R + DR*L2/XLT
  1325. C
  1326.   210 ANGLE=0.
  1327.       IF (INTZ.LE.1) GO TO 220
  1328.       IF (ITYPB.EQ.0) GO TO 215
  1329.       DANGLE=2.0*PI/DBLE(FLOAT(INTZ))
  1330.       GO TO 219
  1331.   215 DANGLE=PI/DBLE(FLOAT(INTZ-1))
  1332.   219 L3=I3 - 1
  1333.       ANGLE=DANGLE*L3
  1334. C
  1335.   220 YOL=R*DCOS(ANGLE)
  1336.       ZOL=R*DSIN(ANGLE)
  1337. C
  1338.       RETURN
  1339.       END
  1340. C *CDC* *DECK OVL60
  1341. C *CDC*       OVERLAY (ADINA,6,0)
  1342. C *CDC* *DECK ISOBM
  1343. C *UNI* )FOR,IS N.ISOBM,R.ISOBM
  1344. C *CDC*       PROGRAM ISOBM
  1345.       SUBROUTINE ISOBM
  1346. C
  1347. C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
  1348. C
  1349. C     PROGRAM
  1350. C        . VARIABLE NODE, ISOPARAMETRIC BEAM ELEMENT
  1351. C
  1352. C
  1353. C     S T O R A G E -
  1354. C
  1355. C        N101      XYZ       NCM*NUME
  1356. C        N102      CENTER    3*NUME
  1357. C        N103      LM        NDM*NUME
  1358. C        N104      IELT      NUME
  1359. C        N105      MATP      NUME
  1360. C        N106      PROP      NCON*NUMMAT
  1361. C        N107      DEN       NUMMAT
  1362. C        N108      ETIME     NUME
  1363. C        N109      EDISOL    NDM*NUME
  1364. C        N110      IPST      NUME
  1365. C        N111      ISTAB     NTABS*MPT
  1366. C        N112      WA        IDWT*NUME
  1367. C        N113      ISKEW     MXNODS*NUME
  1368. C        N114      SECT      NST*NUMMAT
  1369. C        N115      EULER     3*MXNODS*NUME
  1370. C        N116      ROTOLD    3*MXNODS*NUME
  1371. C        N117      IELS      NUME
  1372. C        N118      SR        INSR*NUME
  1373. C        N119      EDIS      NDM*NUME
  1374. C        N120      RITZ      2*NUME
  1375. C        N121      RERIT     5*NUME
  1376. C
  1377. C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
  1378. C
  1379.       IMPLICIT REAL*8 (A-H,O-Z)
  1380.       COMMON /DIM/ N0,N1,N2,N3,N4,N5,N6,N7,N8,N9,N10,N11,N12,N13,N14,N15
  1381.       COMMON /DIMETC/ N01,N02,N03,N04,N05,N06,N07,N08,N09
  1382.       COMMON /FREQIF/ ISTOH,N1A,N1B,N1C
  1383.       COMMON /SOL/ NUMNP,NEQ,NWK,NWM,NWC,NUMEST,MIDEST,MAXEST,NSTE,MA
  1384.       COMMON /EL/ IND,ICOUNT,NPAR(20),NUMEG,NEGL,NEGNL,IMASS,IDAMP,ISTAT
  1385.      1           ,NDOF,KLIN,IEIG,IMASSN,IDAMPN
  1386.       COMMON /VAR/ NG,MODEX,IUPDT,KSTEP,ITEMAX,IEQREF,ITE,KPRI,
  1387.      1             IREF,IEQUIT,IPRI,KPLOTN,KPLOTE
  1388.       COMMON /DPR/ ITWO
  1389.       COMMON /JUNK/ IHED(18),MTOT,LPROG
  1390.       COMMON /ELGLTH/ NFIRST,NLAST,NBCEL
  1391.       COMMON /ELSTP / TIME,IDTHF
  1392.       COMMON /PRCON/ IDATWR,IPRIC,NPB,IDC,IVC,IAC,IPC,IPNODE(3,15)
  1393.       COMMON /PORT/ INPORT,JNPORT,NPUTSV,LUNODE,LU1,LU2,LU3,JDC,JVC,JAC
  1394.       COMMON /TEMPRT/ TEMP1,TEMP2,ITEMPR,ITP96,N6A,N6B
  1395.       COMMON /SKEW  / NSKEWS
  1396.       COMMON /ISUBST/ ISUBC,NSUBST,NSUB,NTUSE,NEGLS,NEGNLS,NUMNPS,
  1397.      1                NODCON,NODRET,IDOFS(6),NDOFS,NEQS,NWKS,MAXESC,
  1398.      2                MAS,NSTAPE,ILOA(13),KRSIZM,NEQC
  1399. C
  1400.       COMMON A(1)
  1401.       REAL A
  1402.       DIMENSION IA(1)
  1403.       EQUIVALENCE (A(1),IA(1))
  1404. C
  1405.       EQUIVALENCE (NPAR(1),NPAR1),(NPAR(2),NUME),(NPAR(3),INDNL),
  1406.      1            (NPAR(4),IDEATH),(NPAR(6),NEGSKS),(NPAR(7),MXNODS),
  1407.      2            (NPAR(9),INTA),(NPAR(10),INTB),(NPAR(11),INTC),
  1408.      3            (NPAR(13),NTABS),(NPAR(14),MXPTS),(NPAR(15),MODEL),
  1409.      4            (NPAR(16),NUMMAT),(NPAR(17),NCON),(NPAR(18),IDW)
  1410.       EQUIVALENCE (NPAR(5),ISECT)
  1411. C
  1412. C
  1413.       DIMENSION DATA(20),NMCON(3),IDWAS(3),NSCON(3)
  1414. C
  1415.       DATA RECLB1 /8HTYPE-5  /
  1416.       DATA NMCON / 2, 4, 4 /
  1417.       DATA NSCON /2,2,0/ , IRECT /1/
  1418.       DATA IDWAS / 0, 8, 9 /
  1419. C
  1420. C
  1421.       IF (IND.NE.0) GO TO 100
  1422. C
  1423. C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
  1424. C .   I N P U T   P H A S E                                           .
  1425. C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
  1426. C
  1427. C     CHECK ON RANGE AND SET DEFAULTS FOR NPAR VECTOR
  1428. C
  1429.       ISTOP=0
  1430. C
  1431.       LINEL=1
  1432.       MODMAX=3
  1433.       ISMAX=1
  1434. C
  1435.       IF (NUME.GT.0) GO TO 10
  1436.       ISTOP=ISTOP+1
  1437.       IF (ISTOP.EQ.1) WRITE (6,2100) NG
  1438.       ISUB=2
  1439.       IRANGE=1
  1440.       WRITE (6,2400) ISTOP,ISUB,IRANGE,ISUB,NPAR(ISUB)
  1441. C
  1442.    10 IF (INDNL.GE.0 .AND. INDNL.LE.2) GO TO 15
  1443.       ISTOP=ISTOP+1
  1444.       IF (ISTOP.EQ.1) WRITE (6,2100) NG
  1445.       ISUB=3
  1446.       WRITE (6,2200) ISTOP,ISUB,ISUB,NPAR(ISUB)
  1447. C
  1448.    15 IF (IDEATH.NE.0) IDTHF=1
  1449.       IF (IDEATH.GE.0 .AND. IDEATH.LE.2) GO TO 20
  1450.       ISTOP=ISTOP+1
  1451.       IF (ISTOP.EQ.1) WRITE (6,2100) NG
  1452.       ISUB=4
  1453.       WRITE (6,2200) ISTOP,ISUB,ISUB,NPAR(ISUB)
  1454. C
  1455.    20 IF (ISECT.LE.0) ISECT=1
  1456.       IF (ISECT.LE.ISMAX) GO TO 25
  1457.       ISTOP=ISTOP+1
  1458.       IF(ISECT.NE.2) GO TO 21
  1459.       WRITE(6,2150)
  1460.       GO TO 25
  1461.    21 IF(ISTOP.EQ.1) WRITE(6,2100) NG
  1462.       ISUB=5
  1463.       WRITE (6,2200) ISTOP,ISUB,ISUB,NPAR(ISUB)
  1464. C
  1465.    25 IF(MXNODS.LE.0) MXNODS=4
  1466.       IF (MXNODS.LE.4) GO TO 30
  1467.       ISTOP=ISTOP+1
  1468.       IF (ISTOP.EQ.1) WRITE (6,2100) NG
  1469.       ISUB=7
  1470.       IRANGE=4
  1471.       WRITE (6,2300) ISTOP,ISUB,IRANGE,ISUB,NPAR(ISUB)
  1472. C
  1473.    30 ISUB=9
  1474.       INTE=NPAR(9)
  1475.    31 IF (INTE.EQ.0) INTE=MXNODS
  1476.       IF (INTE.LT.0) GO TO 32
  1477.       IF (INTE.LE.4) GO TO 33
  1478.       ISTOP=ISTOP+1
  1479.       IF (ISTOP.EQ.1) WRITE (6,2100) NG
  1480.       IRANGE=4
  1481.       WRITE (6,2300) ISTOP,ISUB,IRANGE,ISUB,NPAR(ISUB)
  1482.       GO TO 33
  1483.    32 IF (INTE.GT.(-3)) INTE=-3
  1484.       IF (INTE.EQ.(-4)) INTE=-5
  1485.       IF (INTE.EQ.(-6)) INTE=-7
  1486.       IF (INTE.GE.(-7)) GO TO 33
  1487.       ISTOP=ISTOP+1
  1488.       IF (ISTOP.EQ.1) WRITE (6,2100) NG
  1489.       IRANGE=-7
  1490.       WRITE (6,2400) ISTOP,ISUB,IRANGE,ISUB,NPAR(ISUB)
  1491.    33 INTA=INTE
  1492.       IRGS=4
  1493.       IRNC=-7
  1494.       IF (INTB.GT.0 .AND. INTB.NE.4) WRITE (6,3301) IRGS
  1495.       IF (INTB.LT.0 .AND. INTB.NE.-7) WRITE (6,3302) IRNC
  1496.       IF (INTB.GE.0) INTB=4
  1497.       IF (INTB.LT.0) INTB=-7
  1498.       IF (INTC.GT.0 .AND. INTC.NE.4) WRITE (6,3301) IRGS
  1499.       IF (INTC.LT.0 .AND. INTC.NE.-7) WRITE (6,3302) IRNC
  1500.       IF (INTC.GE.0) INTC=4
  1501.       IF (INTC.LT.0) INTC=-7
  1502.       ISUB=11
  1503. C
  1504.    38 IF (MODEL.LE.0) MODEL=1
  1505.       IF (MODEL.LE.MODMAX) GO TO 40
  1506.       ISTOP=ISTOP+1
  1507.       IF (ISTOP.EQ.1) WRITE (6,2100) NG
  1508.       ISUB=15
  1509.       WRITE (6,2300) ISTOP,ISUB,IRANGE,ISUB,NPAR(ISUB)
  1510. C
  1511.    40 IF (NUMMAT.LE.0) NUMMAT=1
  1512. C
  1513.       IF (MODEL.EQ.MODMAX) GO TO 45
  1514.       NCON=NMCON(MODEL)
  1515.       IDW=IDWAS(MODEL)
  1516. C
  1517.    45 IF (NTABS.LE.0) GO TO 47
  1518.       IF (MXPTS.LT.1) MXPTS=1
  1519.       GO TO 50
  1520.    47 MXPTS=0
  1521. C
  1522. C     CHECK ON COMPATIBILITY BETWEEN ELEMENTS OF NPAR
  1523. C
  1524. C
  1525. C        1. COMPATIBILITY OF INDNL AND IDEATH
  1526. C
  1527.    50 ISUB=3
  1528.       IF (INDNL.GT.0) GO TO 60
  1529.       IF (IDEATH.EQ.0) GO TO 54
  1530.       ISTOP=ISTOP+1
  1531.       IF (ISTOP.EQ.1) WRITE (6,2100) NG
  1532.       ISUD=4
  1533.       WRITE (6,2500) ISTOP,ISUB,NPAR(ISUB),ISUD,NPAR(ISUD)
  1534. C
  1535. C
  1536. C        3. COMPATIBILITY OF INDNL AND MODEL
  1537. C
  1538.    54 IF (MODEL.EQ.LINEL) GO TO 60
  1539.       ISTOP=ISTOP+1
  1540.       IF (ISTOP.EQ.1) WRITE (6,2100) NG
  1541.       ISUD=15
  1542.       WRITE (6,2500) ISTOP,ISUB,NPAR(ISUB),ISUD,NPAR(ISUD)
  1543. C
  1544. C
  1545. C        6. COMPATIBILITY OF NEGSKS AND NSKEWS
  1546. C
  1547.    60 IF (NEGSKS.EQ.0) GO TO 65
  1548.       IF (NSKEWS.GT.0) GO TO 65
  1549.       ISUB=6
  1550.       ISTOP=ISTOP+1
  1551.       IF (ISTOP.EQ.1) WRITE (6,2100) NG
  1552.       WRITE (6,2550) ISTOP,NSKEWS,ISUB,NPAR(ISUB)
  1553. C
  1554. C
  1555. C     CHECK FOR TEMPERATURE TAPE
  1556. C
  1557.    65 ITEMPR=0
  1558. C
  1559. C
  1560.       IF (ISTOP.EQ.0) GO TO 75
  1561.       WRITE (6,2700) ISTOP
  1562.       INPUT=5
  1563.       BACKSPACE INPUT
  1564.       READ (5,1000) DATA
  1565.       WRITE (6,2800) (I,I=1,8),DATA
  1566.       IDATWR=1
  1567. C
  1568.    75 IF (IDATWR.GT.1) GO TO 90
  1569. C
  1570. C     PRINT OUT NPAR VECTOR
  1571. C
  1572.       WRITE (6,2900) NPAR1
  1573.       WRITE (6,2905) NUME,INDNL,IDEATH
  1574.       WRITE (6,2910) ISECT,NEGSKS,MXNODS
  1575.       IF (ISECT.EQ.IRECT) WRITE (6,2915) INTA,INTB,INTC
  1576.       WRITE (6,2930) NTABS,MXPTS
  1577. C
  1578.       WRITE (6,2940) MODEL,NUMMAT
  1579.       IF (INDNL.GT.1) WRITE (6,2698)
  1580.    90 IF (ISTOP.EQ.0) GO TO 95
  1581.       WRITE (6,2750)
  1582.       STOP
  1583. C
  1584. C
  1585. C***  DATA PORTHOLE  *************************** (START)
  1586. C
  1587.    95 IF (JNPORT.EQ.0 .OR. NPUTSV.EQ.0) GO TO 100
  1588.       RECLAB=RECLB1
  1589.       WRITE (LU1) RECLAB,NG,(NPAR(I),I=1,20),NSUB
  1590. C
  1591. C***  DATA PORTHOLE  *************************** ( END )
  1592. C
  1593. C
  1594. C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
  1595. C .   E N D   O F   C H E C K   O N   N P A R   V E C T O R           .
  1596. C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
  1597. C
  1598. C
  1599.   100 NCM=3*MXNODS
  1600.       NDM=6*MXNODS
  1601.       INSR = 2*NDM + 1
  1602.       MPT=0
  1603.       IF (MXPTS.GT.0) MPT=MXPTS+1
  1604.       NPT=IABS (INTA*INTB*INTC)
  1605.       IDWT=IDW*NPT
  1606.       NST=NSCON(ISECT)
  1607. C
  1608.       NFIRST=N6
  1609.       IF (IND.EQ.4) NFIRST=N10
  1610.       N101=NFIRST + 20
  1611.       N102=N101 + NCM*NUME*ITWO
  1612.       N103=N102 + 3*NUME*ITWO
  1613.       N104=N103 + NDM*NUME
  1614.       N105=N104 + NUME
  1615.       N106=N105 + NUME
  1616.       N107=N106 + NCON*NUMMAT*ITWO
  1617.       N108=N107 + NUMMAT*ITWO
  1618.       MM=0
  1619.       IF (IDEATH.GT.0) MM=1
  1620.       N109=N108 + MM*NUME*ITWO
  1621.       MM=0
  1622.       IF (IDEATH.EQ.1) MM=1
  1623.       N110=N109 + MM*NDM*NUME*ITWO
  1624.       N111=N110 + NUME
  1625.       MM=0
  1626.       IF (NTABS.GT.0) MM=1
  1627.       N112=N111 + MM*NTABS*MPT
  1628.       N113=N112 + IDWT*NUME*ITWO
  1629.       MM=0
  1630.       IF (NEGSKS.GT.0) MM=1
  1631.       N114=N113 + MM*MXNODS*NUME
  1632.       N115=N114 + NST*NUMMAT*ITWO
  1633.       MM=0
  1634.       IF (INDNL.EQ.2) MM=1
  1635.       N116=N115 + MM*NCM*NUME*ITWO
  1636.       N117=N116 + MM*NCM*NUME*ITWO
  1637.       N118=N117 + NUME
  1638.       N119=N118 + INSR*NUME*ITWO
  1639.       IF (INDNL .GE. 1) MM=1
  1640.       N120 = N119 + MM*NDM*NUME*ITWO
  1641.       N121 = N120 + 2*MM*NUME*ITWO
  1642.       N122 = N121 + 5*MM*NUME*ITWO
  1643.       NLAST = N122 - 1
  1644. C
  1645.       IF (IND.NE.0) GO TO 105
  1646. C
  1647.       J=NFIRST - 1
  1648.       DO 102 I=1,20
  1649.       J=J+1
  1650.   102 IA(J)=NPAR(I)
  1651. C
  1652.       MIDEST=(NLAST-NFIRST) + 1
  1653.       WRITE (6,2000) NG,MIDEST
  1654.       CALL SIZE (NLAST)
  1655. C
  1656. C
  1657.   105 IF (IND.GT.3) GO TO 110
  1658.       M2=N2
  1659.       M3=N3
  1660.       M4=N4
  1661.       GO TO 120
  1662.   110 M2=N2
  1663.       M3=N7
  1664.       M4=N8
  1665.       IF (ICOUNT.LT.3) GO TO 120
  1666.       M2=N6
  1667. C
  1668.   120 CALL CUTEL  (A(N06),A(N1A),A(N1),A(M2),A(M3),A(M4),A(N5),
  1669.      1            A(N101),A(N102),A(N103),A(N104),A(N105),A(N106),
  1670.      2            A(N107),A(N108),A(N109),A(N110),A(N111),A(N112),
  1671.      3            A(N113),A(N114),A(N115),A(N116),A(N117),A(N118),
  1672.      4            A(N119),A(N120),A(N121),
  1673.      5            NDOF,NCM,NDM,NCON,MPT,IDWT,MXNODS,NST,INSR)
  1674. C
  1675.       RETURN
  1676. C
  1677.  1000 FORMAT (20A4)
  1678. C
  1679.  2000 FORMAT (///38H S T O R A G E   I N F O R M A T I O N,
  1680.      1       ///49H LENGTH OF ARRAY NEEDED FOR STORING ELEMENT GROUP/
  1681.      3        12H DATA (GROUP,I3,26H). . . . . . . . . . . . .,
  1682.      4        15H( MIDEST ). . =,I5)
  1683. C
  1684.  2100 FORMAT (1H1,47HERROR IN ELEMENT GROUP CONTROL CARDS (ISO/BEAM)/
  1685.      1        16H ELEMENT GROUP =, I5/)
  1686.  2150 FORMAT(37H NPAR(5)=2 (I-SECTION) NOT AVAILABLE /)
  1687.  2200 FORMAT (I5,7H. NPAR(,I2,27H) IS OUT OF RANGE ... NPAR(,I2,
  1688.      1        3H) =,I5)
  1689.  2300 FORMAT (I5,7H. NPAR(,I2,16H) SHOULD BE .LE., I2,10H ... NPAR(,I2,
  1690.      1        3H) =,I5)
  1691.  2400 FORMAT (I5,7H. NPAR(,I2,16H) SHOULD BE .GE., I2,10H ... NPAR(,I2,
  1692.      1        3H) =,I5)
  1693.  2500 FORMAT (I5,7H. NPAR(,I2,3H) =,I2,10H AND NPAR(,I2,3H) =,I2,
  1694.      1        19H ARE NOT COMPATIBLE )
  1695.  2550 FORMAT (I5,10H. NSKEWS =,I2,10H AND NPAR(,I2,3H) =,I2,
  1696.      1        19H ARE NOT COMPATIBLE )
  1697.  2698 FORMAT (////16H *** N O T E ***//
  1698.      1  52H IN GEOMETRIC NONLINEAR ANALYSIS, I.E., INDNL.GT.1, /
  1699.      2  52H THE TOTAL ROTATIONS AT THE NODAL POINTS PRINTED IN /
  1700.      3  52H THE STEP-BY-STEP SOLUTION ARE NOT USED.            //
  1701.      4  52H THE ELEMENT KINEMATICS AND STRESSES ARE CALCULATED /
  1702.      5  52H USING INCREMENTAL ROTATIONS.                       ///)
  1703.  2700 FORMAT (//25H TOTAL NUMBER OF ERRORS =,I5//
  1704.      1        48H CARD IMAGE LISTING AND PRINT-OUT OF NPAR VECTOR/
  1705.      2        48H (WITH DEFAULTS ENFORCED) ARE GIVEN BELOW ------)
  1706.  2800 FORMAT (///34H CARD IMAGE LISTING OF NPAR VECTOR //29X,8(I1,9X)/
  1707.      1        15H COLUMN NUMBERS,5X,8(10H1234567890)/
  1708.      2        15H NPAR VECTOR   ,5X,20A4 // )
  1709.  2750 FORMAT (//// 23H STOP  (ERRORS IN NPAR)  )
  1710. C
  1711.  2900 FORMAT (36H E L E M E N T   D E F I N I T I O N ///,
  1712.      1        14H ELEMENT TYPE ,13(2H .),16H( NPAR(1) ). . =,I5/,
  1713.      2        25H     EQ.1, TRUSS ELEMENTS/,
  1714.      3        25H     EQ.2, 2-DIM ELEMENTS/,
  1715.      4        25H     EQ.3, 3-DIM ELEMENTS/,
  1716.      5        25H     EQ.4, BEAM  ELEMENTS/,
  1717.      A        28H     EQ.5, ISO/BEAM ELEMENTS/,
  1718.      B        25H     EQ.6, PLATE ELEMENTS/,
  1719.      C        25H     EQ.7, SHELL ELEMENTS/,
  1720.      D        25H     EQ.8,9,10, EMPTY    /,
  1721.      G        32H     EQ.11, 2-DIM FLUID ELEMENTS/,
  1722.      6        32H     EQ.12, 3-DIM FLUID ELEMENTS  //)
  1723.  2905 FORMAT (20H NUMBER OF ELEMENTS.,10(2H .),16H( NPAR(2) ). . =,I5//,
  1724.      7        28H TYPE OF ANALYSIS. . . . . .,6(2H .),15H( NPAR(3) ). .
  1725.      8        1H=,I5/,
  1726.      9        38H     EQ.0, LINEAR ANALYSIS            /
  1727.      A        38H     EQ.1, MATERIALLY NONLINEAR ONLY   /,
  1728.      1        39H     EQ.2, TOTAL LAGRANGIAN FORMULATION//
  1729.      2        32H ELEMENT BIRTH AND DEATH OPTIONS ,4(2H .),
  1730.      3        16H( NPAR(4) ). . =,I5/,
  1731.      4        28H     EQ.0, OPTION NOT ACTIVE/,
  1732.      5        30H     EQ.1, BIRTH OPTION ACTIVE /,
  1733.      6        30H     EQ.2, DEATH OPTION ACTIVE /)
  1734.  2910 FORMAT (22H ELEMENT SECTION CODE ,9(2H .),16H( NPAR(5) ). . =,I5/,
  1735.      1        30H     EQ.1, RECTANGULAR SECTION  //
  1736.      2        23H SKEW COORDINATE SYSTEM/
  1737.      B        40H     REFERENCE INDICATOR . . . . . . . .,
  1738.      C        16H( NPAR(6) ). . =,I5/
  1739.      D        28H     EQ.0, ALL ELEMENT NODES/
  1740.      E        37H           USE THE GLOBAL SYSTEM ONLY/
  1741.      F        35H     EQ.1, ELEMENT NODES REFER     /
  1742.      G        36H           TO SKEW COORDINATE SYSTEM//
  1743.      4        42H MAXIMUM NUMBER OF NODES USED TO DESCRIBE  /,4X,
  1744.      5        16H ANY ONE ELEMENT,10(2H .),16H( NPAR(7) ). . =,I5/)
  1745.  2915 FORMAT (29H NUMBER OF INTEGRATION POINTS/4X,
  1746.      1        20H IN THE R- DIRECTION,8(2H .),16H( NPAR(9) ). . =,I5//
  1747.      2        29H NUMBER OF INTEGRATION POINTS/4X,
  1748.      3        20H IN THE S- DIRECTION,8(2H .),16H( NPAR(10)). . =,I5//
  1749.      3        29H NUMBER OF INTEGRATION POINTS/4X,
  1750.      3        20H IN THE T- DIRECTION,8(2H .),16H( NPAR(11)). . =,I5/)
  1751.  2930 FORMAT (34H STRESS OUTPUT LOCATION INDICATOR.,3(2H .),
  1752.      1        16H( NPAR(13)). . =,I5/
  1753.      2        4X,30H LT.0, FORCE AND MOMENT OUTPUT/
  1754.      2        4X,30H       AT ALL NODAL SECTIONS  /
  1755.      2        4X,20H EQ.0, STRESS OUTPUT/
  1756.      2        4X,32H       AT ALL INTEGRATION POINTS/
  1757.      3        4X,32H GT.0, NUMBER OF STRESS OUTPUT  /
  1758.      3        4X,13H       TABLES//
  1759.      4        25H MAXIMUM NUMBER OF POINTS/
  1760.      4        40H     IN ANY STRESS OUTPUT TABLE . . . . ,
  1761.      5        16H( NPAR(14)). . =,I5///)
  1762.  2940 FORMAT (42H M A T E R I A L   D E F I N I T I O N     ///,
  1763.      1        16H MATERIAL MODEL.,12(2H .),16H( NPAR(15)). . =,I5/,
  1764.      2        40H     EQ.1,  LINEAR ELASTIC                     /,
  1765.      3        44H     EQ.2,  ELASTIC-PLASTIC (ISOTROPIC)     ,/,
  1766.      4        44H     EQ.3,  ELASTIC-PLASTIC (KINEMATIC)     ,//,
  1767.      8        37H NUMBER OF DIFFERENT SETS OF MATERIAL          /,
  1768.      9        14H     CONSTANTS,13(2H .),16H( NPAR(16)). . =,I5//)
  1769.  3301 FORMAT (//15H *** NOTE ***   /
  1770.      1          45H INTEGRATION ORDER IN THE S-DIRECTION           /
  1771.      2          20H HAS BEEN RE-SET TO  ,I4/)
  1772.  3302 FORMAT (//15H *** NOTE ***   /
  1773.      1          45H INTEGRATION ORDER IN THE T-DIRECTION           /
  1774.      2          20H HAS BEEN RE-SET TO  ,I4/)
  1775. C
  1776.       END
  1777. C *CDC* *DECK CUTEL
  1778. C *UNI* )FOR,IS N.CUTEL,R.CUTEL
  1779.       SUBROUTINE CUTEL (RSDCOS,NODSYS,ID,X,Y,Z,HT,
  1780.      1                  XYZ,CENTER,LM,IELT,MATP,PROP,DEN,ETIME,EDISOL,
  1781.      2                  IPS,ISTAB,WA,ISKEW,SECT,EULER,ROTOLD,IELS,SR,
  1782.      3                  EDIS,RITZ,RERIT,
  1783.      3                  NDOF,NCM,NDM,NCON,MPT,IDWT,MXNODS,NST,INSR)
  1784. C
  1785. C
  1786. C        SR ARRAY CONTAINS GAUSS ELIMINATION COEFFICIENTS REQUIRED FOR
  1787. C        RECOVERY OF INCREMENTS IN TORSIONAL RITZ FUNCTION DISP.
  1788. C        EDIS ARRAY CONTAINS TOTAL DISPLACEMENTS.
  1789. C        RITZ ARRAY CONTAINS TOTAL TORSIONAL RITZ FUNCTION DISPLACEMENTS
  1790. C        RERIT ARRAY KEEPS TRACK OF CORRECTIONS TO RECOVERED RITZ
  1791. C        FUNCTION DISPLACEMENTS.
  1792. C
  1793. C        ARRAYS EDIS,RITZ,RERIT ARE USED IF INDNL .GE. 1
  1794. C
  1795. C        XEI AND RIT ARRAYS CONTAIN
  1796. C                  TOTAL DISPLACEMENTS IF INDNL .EQ. 0
  1797. C                  INCREMENTAL DISPLACEMENTS IF INDNL .GE. 1
  1798. C
  1799. C
  1800.       IMPLICIT REAL*8 (A-H,O-Z)
  1801.       COMMON /EL/ IND,ICOUNT,NPAR(20),NUMEG,NEGL,NEGNL,IMASS,IDAMP,ISTAT
  1802.      1            ,NDOFDM,KLIN,IEIG,IMASSN,IDAMPN
  1803.       COMMON /DIM/ N0,N1,N2,N3,N4,N5,N6,N7,N8,N9,N10,N11,N12,N13,N14,N15
  1804.       COMMON /SOL/ NUMNP,NEQ,NWK,NWM,NWC,NUMEST,MIDEST,MAXEST,NSTE,MA
  1805.       COMMON /VAR/ NG,MODEX,IUPDT,KSTEP,ITEMAX,IEQREF,ITE,KPRI,
  1806.      1             IREF,IEQUIT,IPRI,KPLOTN,KPLOTE
  1807.       COMMON /PRCON/ IDATWR,IPRIC,NPB,IDC,IVC,IAC,IPC,IPNODE(3,15)
  1808.       COMMON /PORT/ INPORT,JNPORT,NPUTSV,LUNODE,LU1,LU2,LU3,JDC,JVC,JAC
  1809.       COMMON /RANDI/ N0A,N1D,IELCPL
  1810.       COMMON /PIE/ PI,TOPI,DEGRAD,RADEG
  1811.       COMMON /GASNEW/ TRAPS(12,3),GATES(7,7),WATES(7,7)
  1812.       COMMON /ELSTP/ TIME,IDTHF
  1813.       COMMON /SKEW  / NSKEWS
  1814.       COMMON /MDFRDM/ IDOF(6)
  1815. C
  1816.       COMMON /ISOBMS/ NEL,IELD,ND,KDOF,IDIM,ISTIF,IPT,JPT,IPST
  1817.       COMMON /ESHAPE/ H(4),HR(4),DEPH,WIDH,DSH,WTH
  1818.       COMMON /ELBEL/ EDIT(36),ROTIN(12),RE(26),STRESS(3),
  1819.      1                STRAIN(3),CM(3,3),ESIG,IPELT
  1820.       COMMON /JUNKEL/ XJI(9),DMINT(36),DMT(36),VECS(3),DC(9),
  1821.      1                B(3,26),BS(9,26)
  1822.       COMMON /CINT/ IMLEN,INLEN,INLENT,IMTIK,INTIK,INTIKT,
  1823.      1                INPER,INPERT,WZ
  1824.       COMMON /ISUBST/ ISUBC,NSUBST,NSUB,NTUSE,NEGLS,NEGNLS,NUMNPS,
  1825.      1                NODCON,NODRET,IDOFS(6),NDOFS,NEQS,NWKS,MAXESC,
  1826.      2                MAS,NSTAPE,ILOA(13),KRSIZM,NEQC
  1827. C
  1828.       COMMON A(1)
  1829.       REAL A
  1830. C
  1831.       DIMENSION RSDCOS(9,1),NODSYS(1),ID(NDOF,1),X(1),Y(1),Z(1),HT(1),
  1832.      1          XYZ(NCM,1),CENTER(3,1),LM(NDM,1),IELT(1),MATP(1),
  1833.      2          PROP(NCON,1),DEN(1),ETIME(1),EDISOL(NDM,1),IPS(1),
  1834.      3          ISTAB(MPT,1),WA(IDWT,1),ISKEW(MXNODS,1),SECT(NST,1),
  1835.      4          EULER(NCM,1),ROTOLD(NCM,1),IELS(1),SR(INSR,1),
  1836.      5          EDIS(NDM,1),RITZ(2,1),RERIT(5,1)
  1837. C
  1838.       DIMENSION ILSK(8),NOD(4),NODE(4)
  1839.       DIMENSION AS(26,26),S(300),EDISE(24),SRE(49),RITZE(2),RERITE(5)
  1840.       DIMENSION XEI(24),RIT(2),XYZINT(3,343)
  1841. C
  1842.       EQUIVALENCE (NPAR(2),NUME),(NPAR(3),INDNL),(NPAR(4),IDEATH),
  1843.      1            (NPAR(6),NEGSKS),(NPAR(13),NTABS),(NPAR(14),MXPTS),
  1844.      2            (NPAR(9),INTA),(NPAR(10),INTB),(NPAR(11),INTC),
  1845.      3            (NPAR(15),MODEL),(NPAR(16),NUMMAT),(NPAR(5),ISECT)
  1846.       EQUIVALENCE (NPAR(18),IDW)
  1847. C
  1848.       DATA RECLB1/8HMATERAL5/, RECLB2/8HELEMENT5/,
  1849.      1     RECLB3/8HNEWSTEP5/, RECLB4/8HOUTPUT-5/
  1850.       DATA RECLB5/8HOUTABLE5/, RECLB6/8HIPOINT-5/
  1851. C
  1852.       DATA IRECT /1/
  1853. C
  1854. C
  1855. C     ** NOTE ** DURING THE TIME INTEGRATION, X=DISP, Y=VEL, Z=ACC
  1856. C
  1857.       IELCPL=0
  1858.       IF (KPRI.EQ.0) GO TO 800
  1859.       IF (IND.GT.0) GO TO 360
  1860.       IJPORT=1
  1861.       IF (JNPORT.EQ.0 .OR. NPUTSV.EQ.0) IJPORT=0
  1862. C
  1863. C
  1864. C
  1865. C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
  1866. C .   R E A D   A N D   G E N E R A T E   E L E M E N T               .
  1867. C .   I N F O R M A T I O N                                           .
  1868. C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
  1869. C
  1870. C
  1871. C     READ MATERIAL PROPERTIES
  1872. C
  1873.       CALL CINTEG (NPAR)
  1874.       NINT=INLEN*INTIK*INPER
  1875. C
  1876.       IF (IDATWR.LE.1) WRITE (6,2000)
  1877. C
  1878. C
  1879. C     INPUT -
  1880. C     E    YOUNG*S MODULUS
  1881. C     XNU  POISSON*S RATIO
  1882. C
  1883. C     STORAGE -
  1884. C        PROP(1) = E
  1885. C        PROP(2) = G
  1886. C
  1887. C     ISECT = 1  (RECT)
  1888. C        SECT(1) = DEPTH/2
  1889. C        SECT(2) = WIDTH/2
  1890. C
  1891. C
  1892.    10 DO 12 I=1,NUMMAT
  1893.       IBUG=0
  1894.       READ (5,1010) N,DENN,DIMA,DIMB
  1895.       READ (5,1012) E,XNU,YLD,ET
  1896.       IF (N.NE.I) GO TO 14
  1897.       IF (IDATWR.GT.1) GO TO 11
  1898. C
  1899.       WRITE (6,2010) N,DENN
  1900.       IF (ISECT.EQ.IRECT) WRITE (6,2015) DIMA,DIMB
  1901. C
  1902.       IF (MODEL.EQ.1) WRITE (6,2050) E,XNU
  1903.       IF (MODEL.GT.1) WRITE (6,2060) E,XNU,YLD,ET
  1904. C
  1905.    11 DEN(N)=DENN
  1906. C
  1907.       PROP(1,N)=E
  1908.       PROP(2,N)=E/(2.*(1.+XNU))
  1909.       IF (MODEL.EQ.1) GO TO 16
  1910.       PROP(3,N)=YLD
  1911.       PROP(4,N)=ET
  1912. C
  1913.       IF (YLD.GT.0.0) GO TO 17
  1914.       IBUG=1
  1915.       WRITE (6,3401) NG,N
  1916.    17 IF (ET.LT.E) GO TO 16
  1917.       IBUG=1
  1918.       WRITE (6,3402) NG,N
  1919.    16 IF (MODEX.EQ.0 .OR. IBUG.EQ.0) GO TO 18
  1920.       WRITE (6,3403)
  1921.       STOP
  1922. C
  1923.    18 SECT(1,N)=DIMA/2.
  1924.       SECT(2,N)=DIMB/2.
  1925.       GO TO 12
  1926. C
  1927. C
  1928.    12 CONTINUE
  1929. C
  1930.       GO TO 60
  1931. C
  1932.    14 WRITE (6,3010) NG
  1933.       WRITE (6,3012) I,N
  1934.       STOP
  1935. C
  1936. C
  1937. C
  1938.    60 CONTINUE
  1939. C
  1940. C
  1941. C***  DATA PORTHOLE  **************************** (START)
  1942. C
  1943.       IF (IJPORT.EQ.0) GO TO 65
  1944.       RECLAB=RECLB1
  1945.       WRITE (LU1) RECLAB,NUMMAT,NCON,(DEN(I),I=1,NUMMAT),
  1946.      1            ((PROP(I,J),I=1,NCON),J=1,NUMMAT)
  1947. C
  1948. C***  DATA PORTHOLE  **************************** ( END )
  1949. C
  1950. C     READ STRESS OUTPUT TABLES
  1951. C
  1952.    65 IF (NTABS.LE.0) GO TO 100
  1953. C
  1954.       IF (IDATWR.LE.1) WRITE (6,2100)
  1955.       ISMN=NINT+1
  1956. C
  1957.       DO 82 K=1,NTABS
  1958.       READ (5,1100) N,NPTS
  1959.       IF (N.NE.K) GO TO 84
  1960.       IF (NPTS.LE.0) NPTS=MXPTS
  1961.       IF (NPTS.GT.MXPTS) GO TO 86
  1962.       IF (IDATWR.LE.1) WRITE (6,2105) N,NPTS
  1963.       IDUM=NPTS+1
  1964.       READ (5,1100) (ISTAB(J,N),J=2,IDUM)
  1965. C
  1966. C     CHECK TO SEE IF STRESS OUTPUT POINTS ARE ACCEPTABLE
  1967. C
  1968.       DO 77 I=1,NPTS
  1969. C
  1970.       KA=ISTAB(I+1,N)
  1971.       KK=IABS(KA)
  1972.       LL=100
  1973.       IF (KK.GT.1000) LL=1000
  1974.       INL=KK/LL
  1975.       KK=KK - INL*LL
  1976.       LL=LL/10
  1977.       INT=KK/LL
  1978.       INP=KK - INT*LL
  1979. C
  1980.       ISTOP=0
  1981.       IF (INL.GT.0 .AND. INL.LE.INLEN) GO TO 72
  1982.       ISTOP=ISTOP+1
  1983.    72 IF (INT.GT.0 .AND. INT.LE.INTIK) GO TO 74
  1984.       ISTOP=ISTOP+1
  1985.    74 IF (INP.GT.0 .AND. INP.LE.INPER) GO TO 75
  1986.       ISTOP=ISTOP+1
  1987.    75 IF (IDATWR.LE.1) WRITE (6,2110) I,INL,INT,INP
  1988.       IF (ISTOP.EQ.0) GO TO 76
  1989.       WRITE (6,3020)
  1990.       WRITE (6,3024) N,I,KA,INL,INLEN,INT,INTIK,INP,INPER
  1991.       STOP
  1992.    76 J=INP + INPER*(INT-1) + INPER*INTIK*(INL-1)
  1993.       ISTAB(I+1,N)=J
  1994.    77 CONTINUE
  1995. C
  1996. C     ORDER STRESS OUTPUT POINTS (FROM MIN TO MAX)
  1997. C
  1998.       DO 79 I=2,NPTS
  1999.       ISMIN=ISMN
  2000.       DO 78 J=I,IDUM
  2001.       IF (ISTAB(J,N).GT.ISMIN) GO TO 78
  2002.       ISMIN=ISTAB(J,N)
  2003.       KJ=J
  2004.    78 CONTINUE
  2005.       ISTAB(KJ,N)=ISTAB(I,N)
  2006.       ISTAB(I,N)=ISMIN
  2007.    79 CONTINUE
  2008. C
  2009. C     CHECK FOR DUPLICATE ENTRY
  2010. C
  2011.       DO 80 I=2,NPTS
  2012.       J=I+1
  2013.       IF (ISTAB(J,N).GT.ISTAB(I,N)) GO TO 80
  2014.       WRITE (6,3020)
  2015.       WRITE (6,3026) N
  2016.       STOP
  2017.    80 CONTINUE
  2018. C
  2019.    82 ISTAB(1,N)=NPTS
  2020.       GO TO 100
  2021. C
  2022.    84 WRITE (6,3020)
  2023.       WRITE (6,3022) K,N
  2024.       STOP
  2025.    86 WRITE (6,3020)
  2026.       WRITE (6,3028) N,NPTS,MXPTS
  2027.       STOP
  2028. C
  2029. C
  2030. C***  DATA PORTHOLE (START)
  2031. C
  2032.   100 IF (JNPORT.EQ.0 .OR. NPUTSV.EQ.0) GO TO 101
  2033.       RECLAB = RECLB5
  2034.       IF (NTABS.LE.0) WRITE (LU1) RECLAB,NTABS
  2035.       IF (NTABS.GT.0) WRITE (LU1) RECLAB,NTABS,((ISTAB(I,J),
  2036.      1                J=1,NTABS),I=1,MPT)
  2037. C
  2038. C***  DATA PORTHOLE (END)
  2039. C
  2040.   101 CONTINUE
  2041. C
  2042.       IF (IDATWR.LE.1) WRITE (6,2200)
  2043. C
  2044.       N=1
  2045.       IPORT=0
  2046.       DIET=1.
  2047.       IF (IDEATH.EQ.1) DIET=-1.
  2048.       READ (5,1200) M,IELE,IS,MTYP,KG,ETIM,INTLOC
  2049.       IF (M.EQ.1) GO TO 105
  2050.       WRITE (6,2330) NG,M
  2051.       STOP
  2052. C
  2053.   104 READ (5,1200) M,IELE,IS,MTYP,KG,ETIM,INTLOC
  2054.   105 READ (5,1100) ICD,NOD
  2055. C
  2056.       IF (IELE.EQ.0) IELE=MXNODS
  2057.       IF (IELE.GT.MXNODS) GO TO 110
  2058.       IF (MTYP.LE.0) MTYP=1
  2059.       IF (MTYP.GT.NUMMAT) GO TO 120
  2060.       IF (NTABS.GT.0 .AND. IABS(IS).GT.NTABS) GO TO 130
  2061.       IF (KG.EQ.0) KG=1
  2062.       IF (IDEATH.EQ.2 .AND. ETIM.EQ.0.) ETIM=100000.
  2063.       IF (ICD.LT.0 .OR. ICD.GT.NUMNP) GO TO 140
  2064.       GO TO 150
  2065. C
  2066. C
  2067.   110 WRITE (6,2300) NG,M,IELE,MXNODS
  2068.       STOP
  2069.   120 WRITE (6,2310) NG,M,MTYP,NUMMAT
  2070.       STOP
  2071.   130 WRITE (6,2320) NG,M,IS,NTABS
  2072.       STOP
  2073.   140 WRITE (6,2340) NG,M,ICD,NUMNP
  2074.       STOP
  2075. C
  2076. C
  2077.   150 IF (M.NE.N) GO TO 175
  2078. C
  2079. C     WHEN M=N, TRANSFER ELEMENT INFORMATION
  2080. C     TO WORKING VARIABLES
  2081. C
  2082.   155 IELD=IELE
  2083.       MTYPE=MTYP
  2084.       IPST=IS
  2085.       ETIMT=ETIM
  2086.       KKK=KG
  2087.       ICDT=ICD
  2088.       INTLM=INTLOC
  2089.       DO 160 I=1,IELE
  2090.   160 NODE(I)=NOD(I)
  2091. C
  2092. C
  2093. C     SAVE THE GENERATED ELEMENT INFORMATION
  2094. C     IN ELEMENT DATA STORAGE
  2095. C
  2096.   175 K=-2
  2097.       DO 180 I=1,IELD
  2098.       K=K+3
  2099.       L=NODE(I)
  2100.       IF (L.GE.1 .AND. L.LE.NUMNP) GO TO 176
  2101.       WRITE (6,2360) NG,N,IELD,(NODE(K),K=1,IELD)
  2102.       WRITE (6,2362) NUMNP
  2103.       STOP
  2104.   176 XYZ(K  ,N)=X(L)
  2105.       XYZ(K+1,N)=Y(L)
  2106.       XYZ(K+2,N)=Z(L)
  2107.       IF (NEGSKS.GT.0) ISKEW(I,N)=NODSYS(L)
  2108.   180 CONTINUE
  2109. C
  2110.       ICDM=ICDT
  2111.       NEL=N
  2112.       IF (ICDM.NE.0) GO TO 182
  2113.       CALL EPLANE (NG,CENTER(1,N),XYZ(1,N),NODE,ICDM,1)
  2114.   182 CENTER(1,N)=X(ICDM)
  2115.       CENTER(2,N)=Y(ICDM)
  2116.       CENTER(3,N)=Z(ICDM)
  2117.       IF (ICDT.EQ.0) GO TO 185
  2118.       CALL EPLANE (NG,CENTER(1,N),XYZ(1,N),NODE,ICDM,2)
  2119. C
  2120.   185 K=0
  2121.       DO 190 I=1,IELD
  2122.       L=NODE(I)
  2123.       LL=0
  2124.       DO 190 J=1,6
  2125.       K=K+1
  2126.       LM(K,N)=0
  2127.       IF (IDOF(J).EQ.1) GO TO 190
  2128.       LL=LL+1
  2129.       LM(K,N)=ID(LL,L)
  2130.   190 CONTINUE
  2131. C
  2132.       IELT(N)=IELD
  2133.       MATP(N)=MTYPE
  2134.       IPS(N)=IPST
  2135. C
  2136.       ND=6*IELD
  2137.       CALL COLHT (HT,ND,LM(1,N))
  2138. C
  2139.       IF (INDNL.EQ.0) GO TO 200
  2140.       DO 193 I=1,NDM
  2141.   193 EDIS(I,N)=0.0
  2142.       DO 115 I=1,INSR
  2143.   115 SR(I,N)=0.0
  2144.       DO 194 I=1,2
  2145.   194 RITZ(I,N)=0.0
  2146.       DO 197 I=1,5
  2147.   197 RERIT(I,N)=0.0
  2148.       IF (IDEATH.EQ.0) GO TO 195
  2149.       ETIME(N)=DIET*ETIMT
  2150.       IF (IDEATH.NE.1) GO TO 195
  2151.       DO 192 K=1,ND
  2152.   192 EDISOL(K,N)=0.
  2153. C
  2154.   195 IF (INDNL.NE.2) GO TO 198
  2155.       CALL NODCOS (XYZ(1,N),CENTER(1,N),DMINT,VECS)
  2156.       CALL FEULER (DMINT,EULER(1,N),IELD)
  2157. C
  2158.       KK=3*IELD
  2159.       DO 196 K=1,KK
  2160.   196 ROTOLD(K,N)=0.
  2161. C
  2162.   198 IF (MODEL.EQ.1) GO TO 200
  2163.       CALL INITIM (MODEL,NINT,IDW,PROP(1,MTYPE),WA(1,N),WA(1,N))
  2164.   200 CONTINUE
  2165. C
  2166.       IF (IDATWR.GT.1) GO TO 225
  2167.       WRITE (6,2210) N,IELD,IPST,MTYPE,KKK,ETIMT,INTLM,ICDM,
  2168.      1              (NODE(I),I=1,IELD)
  2169.   225 IF (IJPORT.EQ.0 .AND. INTLM.EQ.0) GO TO 235
  2170. C
  2171. C     CALCULATE GLOBAL COORDINATES OF INTEGRATION POINTS
  2172. C
  2173. C     1. CALCULATE UNIT VECTOR IN THE T-DIRECTION
  2174. C
  2175.       CALL NODCOS (XYZ(1,N),CENTER(1,N),DMINT,VECS)
  2176.       TX=VECS(1)
  2177.       TY=VECS(2)
  2178.       TZ=VECS(3)
  2179.       DST1=SECT(1,MTYPE)
  2180.       DST2=SECT(2,MTYPE)
  2181.       KINTP=0
  2182.       TOL=1.D-9
  2183.       DO 164 LR=1,INLEN
  2184.       RINTP=GATES(LR,INLENT)
  2185. C
  2186.       CALL SHAPES (H,HR,IELD,RINTP)
  2187. C
  2188. C     2. CALCULATE TANGENT TO CENTROIDAL AXIS AT  R=RINTP
  2189. C
  2190.       IX=0
  2191.       XINTR=0.
  2192.       YINTR=0.
  2193.       ZINTR=0.
  2194.       RX=0.
  2195.       RY=0.
  2196.       RZ=0.
  2197.       DO 165 L=1,IELD
  2198.       IX=IX+3
  2199.       XINTR=XINTR + H(L)*XYZ(IX-2,N)
  2200.       YINTR=YINTR + H(L)*XYZ(IX-1,N)
  2201.       ZINTR=ZINTR + H(L)*XYZ(IX,N)
  2202.       RX=RX + HR(L)*XYZ(IX-2,N)
  2203.       RY=RY + HR(L)*XYZ(IX-1,N)
  2204.   165 RZ=RZ + HR(L)*XYZ(IX,N)
  2205.       DETR=DSQRT(RX*RX + RY*RY + RZ*RZ)
  2206.       IF (DETR.GT.TOL) GO TO 166
  2207.       WRITE (6,3030) NG,N
  2208.       STOP
  2209.   166 RX=RX/DETR
  2210.       RY=RY/DETR
  2211.       RZ=RZ/DETR
  2212. C
  2213. C     3. CALCULATE UNIT VECTOR IN THE S-DIRECTION AT  R=RINTP
  2214. C
  2215.       SX=TY*RZ - TZ*RY
  2216.       SY=TZ*RX - TX*RZ
  2217.       SZ=TX*RY - TY*RX
  2218. C
  2219.       DO 164 LS=1,INTIK
  2220.       SINT=GATES(LS,INTIKT)*DST1
  2221.       DO 164 LT=1,INPER
  2222.       TINT=GATES(LT,INPERT)*DST2
  2223.       KINTP=KINTP+1
  2224.       XYZINT(1,KINTP)=XINTR + SX*SINT + TX*TINT
  2225.       XYZINT(2,KINTP)=YINTR + SY*SINT + TY*TINT
  2226.       XYZINT(3,KINTP)=ZINTR + SZ*SINT + TZ*TINT
  2227. C
  2228. C     PRINT INTEGRATION POINT LOCATIONS  IF INTLM.GT.0
  2229. C
  2230.       IF (IDATWR.GT.1 .OR. INTLM.LE.0) GO TO 164
  2231.       WRITE (6,2208) LR,LS,LT,(XYZINT(L,KINTP),L=1,3)
  2232.   164 CONTINUE
  2233. C
  2234. C***   D A T A    P O R T H O L E    (START)
  2235. C
  2236.       RECLAB=RECLB2
  2237.       IF (IJPORT.EQ.0) GO TO 235
  2238.       WRITE (LU1) RECLAB,N,IELD,IPST,MTYPE,ETIMT,INTLM,ICDM,NODE
  2239.       RECLAB = RECLB6
  2240.       WRITE (LU1) RECLAB,NINT,((XYZINT(L,I),L=1,3),I=1,NINT)
  2241. C
  2242. C***   D A T A    P O R T H O L E    (END)
  2243. C
  2244.   235 IF (N.EQ.NUME) GO TO 250
  2245. C
  2246. C
  2247. C     GENERATE, FOR THE (N+1)ST ELEMENT, WORKING VARIABLES
  2248. C     THAT ARE DIFFERENT THAN THOSE OF THE (N)TH ELEMENT
  2249. C
  2250. C
  2251.       N=N+1
  2252.       DO 240 I=1,IELD
  2253.   240 NODE(I)=NODE(I) + KKK
  2254. C
  2255.       IF (N-M) 175,155,104
  2256. C
  2257.   250 RETURN
  2258. C
  2259. C
  2260.   360 GO TO (400,600,600,700), IND
  2261. C
  2262. C
  2263. C     A S S E M B L E   L I N E A R   E L E M E N T
  2264. C     S T I F F N E S S   M A T R I X
  2265. C
  2266.   400 CALL CINTEG (NPAR)
  2267.       ISTIF=1
  2268. C
  2269.       DO 500 N=1,NUME
  2270. C
  2271.       NEL=N
  2272.       IELD=IELT(N)
  2273.       ND=6*IELD
  2274.       NDA=ND+2
  2275.       IDIM=(ND+1)*ND/2
  2276.       CALL ECHECK (LM(1,N),ND,ICODE,IUPDT)
  2277.       IF (ICODE.EQ.1) GO TO 500
  2278. C
  2279.       MTYPE=MATP(N)
  2280.       CALL NODCOS (XYZ(1,N),CENTER(1,N),DMINT,VECS)
  2281. C
  2282.       DO 410 IAS=1,NDA
  2283.       DO 410 JAS=1,NDA
  2284.   410 AS(IAS,JAS) = 0.0
  2285. C
  2286.       CALL LINSTF (XYZ(1,N),CENTER(1,N),SECT(1,MTYPE),PROP(1,MTYPE),AS,
  2287.      1             1)
  2288.       CALL SCTOR (AS,S,SR(1,N),XEI,RIT,RERIT,ND,INDNL,1)
  2289. C
  2290.       IF (NEGSKS.EQ.0)     GO TO 440
  2291.       IF (ISKEW(1,N).LT.0) GO TO 440
  2292.       J=-1
  2293.       DO 430 I=1,IELD
  2294.       J=J+2
  2295.       ILSK(J  )=ISKEW(I,N)
  2296.       ILSK(J+1)=ILSK(J)
  2297.   430 CONTINUE
  2298.       ITELD=2*IELD
  2299.       CALL ATKA (RSDCOS,S,ILSK,ITELD,3)
  2300.   440 CONTINUE
  2301. C
  2302.       CALL ADDBAN (A(N2),A(N1),S,RE,LM(1,N),ND,1)
  2303.   500 CONTINUE
  2304. C
  2305.       RETURN
  2306. C
  2307. C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
  2308. C .   A S E M B L E   M A S S   M A T R I C E S                       .
  2309. C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
  2310. C
  2311.   600 IF (IMASS.EQ.2) GO TO 625
  2312. C
  2313. C
  2314. C     LUMPED MASS DISCRETIZATION
  2315. C
  2316.       DO 620 N=1,NUME
  2317.       MTYPE=MATP(N)
  2318.       IF (DEN(MTYPE).EQ.0.) GO TO 620
  2319. C
  2320.       NEL=N
  2321.       IELD=IELT(N)
  2322.       ND=6*IELD
  2323. C
  2324.       CALL CELMAS (XYZ(1,N),SECT(1,MTYPE),DEN(MTYPE),S)
  2325. C
  2326.       CALL ADDMA (A(N4),S,LM(1,N),ND)
  2327. C
  2328.   620 CONTINUE
  2329. C
  2330.       RETURN
  2331. C
  2332. C
  2333. C     CONSISTENT MASS DISCRETIZATION
  2334. C
  2335.   625 DO 650 N=1,NUME
  2336. C
  2337.       MTYPE=MATP(N)
  2338.       IF (DEN(MTYPE).EQ.0.) GO TO 650
  2339.       IELD=IELT(N)
  2340.       ND=6*IELD
  2341.       CALL ECHECK (LM(1,N),ND,ICODE,IUPDT)
  2342.       IF (ICODE.EQ.1) GO TO 650
  2343. C
  2344.       IDIM=(ND*(ND+1))/2
  2345.       DO 626 I=1,IDIM
  2346.   626 S(I)=0.
  2347.       CALL NODCOS (XYZ(1,N),CENTER(1,N),DMINT,VECS)
  2348.       CALL CELMAS (XYZ(1,N),SECT(1,MTYPE),DEN(MTYPE),S)
  2349. C
  2350.       IF (NEGSKS.EQ.0)     GO TO 640
  2351.       IF (ISKEW(1,N).LT.0) GO TO 640
  2352.       J=-1
  2353.       DO 630 I=1,IELD
  2354.       J=J+2
  2355.       ILSK(J  )=ISKEW(I,N)
  2356.       ILSK(J+1)=ILSK(J)
  2357.   630 CONTINUE
  2358.       ITELD=2*IELD
  2359.       CALL ATKA (RSDCOS,S,ILSK,ITELD,3)
  2360.   640 CONTINUE
  2361. C
  2362.       CALL ADDBAN (A(N2),A(N1),S,RE,LM(1,N),ND,1)
  2363. C
  2364.   650 CONTINUE
  2365. C
  2366. C
  2367.       RETURN
  2368. C
  2369. C
  2370. C
  2371. C     A S S E M B L E   N O N L I N E A R   E L E M E N T
  2372. C     S T I F F N E S S   M A T R I X   A N D   L O A D   V E C T O R
  2373. C
  2374. C
  2375.   700 CALL CINTEG (NPAR)
  2376.       NINT=INLEN*INTIK*INPER
  2377.       IPSA=1
  2378. C
  2379.       MADR=N5
  2380.       ISTIF=0
  2381.       IF (ICOUNT.EQ.3) GO TO 702
  2382.       MADR=N3
  2383.       IF (IREF.EQ.0) ISTIF=1
  2384.   702 CONTINUE
  2385. C
  2386.       DO 750 N=1,NUME
  2387. C
  2388.       NEL=N
  2389.       IELD=IELT(N)
  2390.       ND=6*IELD
  2391.       NDA=ND+2
  2392.       IDIM=(ND+1)*ND/2
  2393. C
  2394.       CALL ECHECK (LM(1,N),ND,ICODE,IUPDT)
  2395.       IF (ICODE.EQ.1) IELCPL=IELCPL+1
  2396.       IF (ICODE.EQ.1) GO TO 750
  2397. C
  2398.       ISKEL=0
  2399.       IF (NEGSKS.EQ.0)     GO TO 705
  2400.       IF (ISKEW(1,N).LT.0) GO TO 705
  2401.       ISKEL=1
  2402.       ITELD=2*IELD
  2403.       J=-1
  2404.       DO 703 I=1,IELD
  2405.       J=J+2
  2406.       ILSK(J  )=ISKEW(I,N)
  2407.       ILSK(J+1)=ILSK(J)
  2408.   703 CONTINUE
  2409. C
  2410.   705 IF (IDEATH.EQ.0) GO TO 715
  2411.       ETIM=DABS(ETIME(N))
  2412.       IF (IDEATH.EQ.2) GO TO 710
  2413.       IF (TIME.LT.ETIM) GO TO 750
  2414.       IF (ETIME(N).GE.0.) GO TO 715
  2415.       ETIME(N)=ETIM
  2416.       DO 706 K=1,ND
  2417.       I=LM(K,N)
  2418.       IF (I.EQ.0) GO TO 706
  2419.       IF (I.LT.0) I=NEQ - I
  2420.       EDISOL(K,N)=X(I)
  2421.   706 CONTINUE
  2422.       GO TO 715
  2423. C
  2424.   710 IF (TIME.GT.ETIM) GO TO 750
  2425. C
  2426.   715 DO 720 K=1,ND
  2427.       RE(K)=0.
  2428.       EDISE(K)=0
  2429.       XEI(K)=0.0
  2430.       I=LM(K,N)
  2431.       IF (I) 717,720,718
  2432.   717 I=NEQ - I
  2433.   718 XEI(K)=EDIS(K,N)
  2434.       EDISE(K)=X(I)
  2435.   720 CONTINUE
  2436.       RE(ND+1) = 0.0
  2437.       RE(ND+2) = 0.0
  2438. C
  2439.       IF (IDEATH.NE.1) GO TO 725
  2440.       DO 724 K=1,ND
  2441.       EDISE(K)  = EDISE(K)  - EDISOL(K,N)
  2442.   724 CONTINUE
  2443. C
  2444.   725 IF (ISKEL.EQ.0) GO TO 722
  2445.       CALL DIRCOS (RSDCOS,EDISE,ILSK,ITELD,3,1)
  2446. C
  2447.   722 MTYPE=MATP(N)
  2448.       DO 723 K=1,ND
  2449.   723 XEI(K) = EDISE(K)  - XEI(K)
  2450.       DO 660 K=1,INSR
  2451.   660 SRE(K)=SR(K,N)
  2452.       DO 662 K=1,5
  2453.   662 RERITE(K)=RERIT(K,N)
  2454.       RITZE(1)=RITZ(1,N)
  2455.       RITZE(2)=RITZ(2,N)
  2456. C
  2457.       CALL NODCOS (XYZ(1,N),CENTER(1,N),DMINT,VECS)
  2458.       CALL NEWCOS(EULER(1,N),ROTOLD(1,N),EDISE,INDNL)
  2459.       CALL SCTOR (AS,S,SRE,XEI,RIT,RERITE,ND,INDNL,2)
  2460. C
  2461. C     OBTAIN TOTAL RITZ FUNCTION DISPLACEMENTS
  2462.       RITZE(1)  = RITZ(1,N) + RIT(1)
  2463.       RITZE(2)  = RITZ(2,N) + RIT(2)
  2464. C
  2465.       IF (ISTIF.EQ.0) GO TO 727
  2466.       DO 726 IAS=1,NDA
  2467.       DO 726 JAS=1,NDA
  2468.   726 AS(IAS,JAS) = 0.0
  2469.   727 CONTINUE
  2470. C
  2471.       CALL NONSTF (XYZ(1,N),CENTER(1,N),SECT(1,MTYPE),PROP(1,MTYPE),
  2472.      1             WA(1,N),IDW,AS,ISTAB(1,IPSA),EDISE,RITZE,
  2473.      2             SRE,RERITE,S)
  2474. C
  2475.       IF (ISKEL.EQ.0) GO TO 728
  2476.       CALL DIRCOS (RSDCOS,RE,ILSK,ITELD,3,2)
  2477.   728 CALL ADDBAN (A(MADR),A(N1),S,RE,LM(1,N),ND,2)
  2478. C
  2479.       IF (ISTIF.EQ.0) GO TO 740
  2480.       IF (ISKEL.EQ.0) GO TO 730
  2481.       CALL ATKA (RSDCOS,S,ILSK,ITELD,3)
  2482.   730 CALL ADDBAN (A(N4),A(N1),S,RE,LM(1,N),ND,1)
  2483. C
  2484.   740 IF (IUPDT.NE.0) GO TO 744
  2485.       DO 746 K=1,24
  2486.   746 EDIS(K,N)=EDISE(K)
  2487.       DO 760 K=1,INSR
  2488.   760 SR(K,N)=SRE(K)
  2489.       DO 762 K=1,5
  2490.   762 RERIT(K,N)=RERITE(K)
  2491.       RITZ(1,N)=RITZE(1)
  2492.       RITZ(2,N)=RITZE(2)
  2493. C
  2494.   744 IF (INDNL.NE.2 .OR. IUPDT.NE.0) GO TO 750
  2495.       CALL FEULER (DMT,EULER(1,N),IELD)
  2496.       KELD=3*IELD
  2497.       DO 742 K=1,KELD
  2498.   742 ROTOLD(K,N)=ROTOLD(K,N)+ROTIN(K)
  2499. C
  2500.   750 CONTINUE
  2501. C
  2502.       IF (IELCPL.EQ.NUME) IELCPL=-1
  2503. C
  2504.       RETURN
  2505. C
  2506. C
  2507. C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
  2508. C .   L I N E A R   S T R E S S   C A L C U L A T I O N               .
  2509. C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
  2510. C
  2511.   800 ISTIF=0
  2512. C
  2513. C***  DATA PORTHOLE (START)
  2514. C
  2515.       RECLAB = RECLB3
  2516.       IF (JNPORT.NE.0 .AND. KPLOTE.EQ.0)
  2517.      1  WRITE (LU1) RECLAB,NG,(NPAR(I),I=1,20),KSTEP,TIME,NEGL,NSUB
  2518. C
  2519. C***  DATA PORTHOLE (END)
  2520. C
  2521. C
  2522.       IF (INDNL.GT.0) GO TO 900
  2523.       CALL CINTEG (NPAR)
  2524.       DO 805 N=1,NUME
  2525.       IF (IPS(N).EQ.0) GO TO 805
  2526.       INUM=N
  2527.       IF (IPRI.NE.0) GO TO 810
  2528.       WRITE (6,2500) NG
  2529.       IF (NTABS.LT.0) WRITE (6,2550)
  2530.       IF (NTABS.GE.0 .AND. ISECT.EQ.IRECT) WRITE (6,2650)
  2531.       GO TO 810
  2532.   805 CONTINUE
  2533.       RETURN
  2534. C
  2535.   810 DO 875 N=INUM,NUME
  2536.       IPSA=IABS(IPS(N))
  2537.       IF (IPSA.EQ.0) GO TO 875
  2538.       IELD=IELT(N)
  2539.       ND=6*IELD
  2540.       NDA=ND+2
  2541.       IDIM=(ND+1)*ND/2
  2542. C
  2543.       MTYPE=MATP(N)
  2544. C
  2545.       DO 822 I=1,ND
  2546.       K=LM(I,N)
  2547.       XEI(I)=0.0
  2548.       IF (K) 818,822,819
  2549.   818 K=NEQ - K
  2550.   819 XEI(I)=X(K)
  2551.   822 CONTINUE
  2552. C
  2553. C     ROTATE XEI FROM NODAL (RST) TO GLOBAL (XYZ) SYSTEM
  2554. C
  2555.       IF (NEGSKS.EQ.0)     GO TO 828
  2556.       IF (ISKEW(1,N).LT.0) GO TO 828
  2557.       J=-1
  2558.       DO 825 I=1,IELD
  2559.       J=J+2
  2560.       ILSK(J  )=ISKEW(I,N)
  2561.       ILSK(J+1)=ILSK(J)
  2562.   825 CONTINUE
  2563.       ITELD=2*IELD
  2564.       CALL DIRCOS(RSDCOS,XEI,ILSK,ITELD,3,1)
  2565.   828 CONTINUE
  2566. C
  2567.       JPT=2
  2568.       ISTOP=0
  2569.       IF (NTABS.GE.0) GO TO 880
  2570.       DO 876 I=1,ND
  2571.   876 RE(I)=0.
  2572.   880 CONTINUE
  2573. C
  2574.       CALL NODCOS (XYZ(1,N),CENTER(1,N),DMINT,VECS)
  2575. C
  2576. C
  2577. C
  2578. C . . . . . . . . . . . . . . . . . . . . . . . . .
  2579. C .   RECTANGULAR CROSS-SECTION                   .
  2580. C . . . . . . . . . . . . . . . . . . . . . . . . .
  2581. C
  2582.       DEPH=SECT(1,MTYPE)
  2583.       WIDH=SECT(2,MTYPE)
  2584. C
  2585.       IPT=0
  2586. C
  2587.       NDB=ND+1
  2588.       DO 883 IAS=1,NDA
  2589.       DO 883 JAS=NDB,NDA
  2590.   883 AS(IAS,JAS)=0.0
  2591.       CALL LINSTF (XYZ(1,N),CENTER(1,N),SECT(1,MTYPE),PROP(1,MTYPE),AS,
  2592.      1             2)
  2593. C
  2594. C     CALCULATION OF TORSION RITZ FUNCTION COEFFICIENTS BY USING
  2595. C     THE LAST TWO ROWS OF THE UNCONDENSED ELEMENT STIFFNESS MATRIX.
  2596. C
  2597.       TEMP1=0.0
  2598.       TEMP2=0.0
  2599.       DO 884 IAS=1,ND
  2600.       TXEI=XEI(IAS)
  2601.       TEMP1 = TEMP1 - AS(IAS,NDB)*TXEI
  2602.   884 TEMP2 = TEMP2 - AS(IAS,NDA)*TXEI
  2603.       DAS = AS(NDB,NDB)*AS(NDA,NDA) - AS(NDB,NDA)*AS(NDB,NDA)
  2604.       RIT(1) = ( AS(NDA,NDA)*TEMP1 - AS(NDB,NDA)*TEMP2)/DAS
  2605.       RIT(2) = (-AS(NDB,NDA)*TEMP1 + AS(NDB,NDB)*TEMP2)/DAS
  2606. C
  2607.       IPT=0
  2608.       DO 890 INL=1,INLEN
  2609.       RX=GATES(INL,INLENT)
  2610.       WX=WATES(INL,INLENT)
  2611.       CALL SHAPES (H,HR,IELD,RX)
  2612.       DO 886 INT=1,INTIK
  2613.       RY=GATES(INT,INTIKT)
  2614.       WYWX=WX*WATES(INT,INTIKT)
  2615.       DSH=DEPH*RY
  2616.       DO 882 INP=1,INPER
  2617.       IPT=IPT+1
  2618.       IF (NTABS.LE.0) GO TO 881
  2619.       IF (ISTAB(JPT,IPSA).NE.IPT) GO TO 882
  2620.       IF (JPT.GT.ISTAB(1,IPSA)) ISTOP=1
  2621.       JPT=JPT+1
  2622. C
  2623.   881 RZ=GATES(INP,INPERT)
  2624.       WAT=WYWX*WATES(INP,INPERT)
  2625.       WTH=WIDH*RZ
  2626. C
  2627.       CALL IPTCOS (XYZ(1,N),DMINT,VECS,XJI,DET,DC)
  2628.       CALL BLNODE(B,BS,DMINT,DUMY)
  2629. C
  2630. C        CALCULATION OF STRAINS AND STRESSES
  2631. C
  2632.       DO 985 KI=1,3
  2633.       EPSDUM=0.0
  2634.       DO 990 KJ=1,ND
  2635.   990 EPSDUM=EPSDUM + B(KI,KJ)*XEI(KJ)
  2636.       EPSDUM=EPSDUM + RIT(1)*B(KI,NDB) + RIT(2)*B(KI,NDA)
  2637.   985 STRAIN(KI)=EPSDUM
  2638.       STRESS(1)=PROP(1,MTYPE)*STRAIN(1)
  2639.       STRESS(2)=PROP(2,MTYPE)*STRAIN(2)
  2640.       STRESS(3)=PROP(2,MTYPE)*STRAIN(3)
  2641. C
  2642. C
  2643.       IF (NTABS) 885,840,842
  2644.   840 IF (IPT-1) 845,845,850
  2645.   842 IF (JPT-3) 845,845,850
  2646.   845 IF (IPRI.EQ.0) WRITE (6,2400) N
  2647.   850 IF (IPRI.EQ.0) WRITE (6,2402) INL,INT,INP,STRESS
  2648.       IF (IPRI.EQ.0 .AND. IPS(N).LT.0)  WRITE (6,2410)  STRAIN
  2649. C
  2650. C***  DATA PORTHOLE (START)
  2651. C
  2652.       RECLAB = RECLB4
  2653.       IF (JNPORT.EQ.1 .AND. KPLOTE.EQ.0)
  2654.      1  WRITE (LU1) RECLAB,N,INL,INT,INP,(STRESS(I),I=1,3),
  2655.      2              (STRAIN(I),I=1,3)
  2656. C
  2657. C***  DATA PORTHOLE (END)
  2658. C
  2659.       IF (ISTOP) 882,882,875
  2660. C
  2661.   885 FACT=WAT*DET
  2662.       DO 889 I=1,NDA
  2663.       REDUM=0.
  2664.       DO 887 J=1,3
  2665.   887 REDUM=REDUM + B(J,I)*STRESS(J)
  2666.   889 RE(I)=RE(I) + FACT*REDUM
  2667. C
  2668.   882 CONTINUE
  2669.   886 CONTINUE
  2670.   890 CONTINUE
  2671. C
  2672.       IF (NTABS.GE.0) GO TO 875
  2673. C
  2674. C     ROTATE TO LOCAL SYSTEM
  2675. C
  2676.       DO 838 I=1,IELD
  2677.       L=9*(I-1) + 1
  2678.       K= 6*(I-1)+1
  2679.       CALL DIRCOS (DMINT(L),RE(K  ),1,1,3,2)
  2680.       CALL DIRCOS (DMINT(L),RE(K+3),1,1,3,2)
  2681.   838 CONTINUE
  2682.       IF (IPRI.NE.0) GO TO 865
  2683. C
  2684.       WRITE (6,2450) N
  2685.       DO 862 I=1,IELD
  2686.       J=6*(I-1) + 1
  2687.       JJ=J+5
  2688.   862 WRITE (6,2460) I,(RE(KJ),KJ=J,JJ)
  2689. C
  2690. C***  DATA PORTHOLE (START)
  2691. C
  2692.   865 RECLAB = RECLB4
  2693.       IF (JNPORT.NE.0 .AND. KPLOTE.EQ.0)
  2694.      1  WRITE (LU1) RECLAB,N,ND,(RE(I),I=1,ND)
  2695. C
  2696. C***  DATA PORTHOLE (END)
  2697. C
  2698.   875 CONTINUE
  2699. C
  2700.       RETURN
  2701. C
  2702. C
  2703. C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
  2704. C .   N O N L I N E A R   S T R E S S   C A L C U L A T I O N         .
  2705. C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
  2706. C
  2707.   900 CALL CINTEG (NPAR)
  2708.       NINT=INLEN*INTIK*INPER
  2709.       DO 905 N=1,NUME
  2710.       IF (IPS(N).EQ.0) GO TO 905
  2711.       INUM=N
  2712.       IF (IPRI.NE.0) GO TO 910
  2713.       WRITE (6,2500) NG
  2714.       IF (NTABS.GE.0) GO TO 902
  2715.       WRITE (6,2550)
  2716.       GO TO 910
  2717.   902 IF (MODEL.GT.1) GO TO 904
  2718.       IF (ISECT.EQ.IRECT) WRITE (6,2650)
  2719.       GO TO 910
  2720.   904 IF (ISECT.EQ.IRECT) WRITE (6,2660)
  2721.       GO TO 910
  2722.   905 CONTINUE
  2723.       RETURN
  2724. C
  2725.   910 DO 975 N=INUM,NUME
  2726.       NEL=N
  2727.       IPST=IPS(N)
  2728.       IPSA=IABS(IPST)
  2729.       IF (IPSA.EQ.0) GO TO 975
  2730.       IELD=IELT(N)
  2731.       ND=6*IELD
  2732.       NDA=ND+2
  2733.       IDIM=(ND+1)*ND/2
  2734.       ISKEL=0
  2735.       IF (NEGSKS.EQ.0)     GO TO 935
  2736.       IF (ISKEW(1,N).LT.0) GO TO 935
  2737.       ISKEL=1
  2738.       ITELD=2*IELD
  2739.       J=-1
  2740.       DO 925 I=1,IELD
  2741.       J=J+2
  2742.       ILSK(J  )=ISKEW(I,N)
  2743.       ILSK(J+1)=ILSK(J)
  2744.   925 CONTINUE
  2745. C
  2746.   935 IF (IDEATH.EQ.0) GO TO 960
  2747.       ETIM=DABS(ETIME(N))
  2748.       IF (IDEATH.EQ.2) GO TO 955
  2749.       IF (TIME.LT.ETIM) GO TO 975
  2750.       IF (ETIME(N).GE.0.) GO TO 960
  2751.       ETIME(N)=ETIM
  2752.       DO 936 K=1,ND
  2753.       I=LM(K,N)
  2754.       IF (I) 929,936,930
  2755.   929 I=NEQ - I
  2756.   930 EDISOL(K,N)=X(I)
  2757.   936 CONTINUE
  2758.       GO TO 960
  2759. C
  2760.   955 IF (TIME.GT.ETIM) GO TO 975
  2761. C
  2762.   960 DO 965 K=1,ND
  2763.       I=LM(K,N)
  2764.       XEI(K)=0.0
  2765.       IF (I) 962,965,963
  2766.   962 I=NEQ - I
  2767.   963 XEI(K)=EDIS(K,N)
  2768.       EDIS(K,N)=X(I)
  2769.   965 CONTINUE
  2770.   966 IF (IDEATH.NE.1) GO TO 970
  2771.       DO 968 K=1,ND
  2772.       EDIS(K,N)=EDIS(K,N) - EDISOL(K,N)
  2773.   968 CONTINUE
  2774.   970 IF (ISKEL.EQ.0) GO TO 972
  2775.       CALL DIRCOS (RSDCOS,EDIS(1,N),ILSK,ITELD,3,1)
  2776.   972 CONTINUE
  2777.       DO 980 K=1,ND
  2778.       XEI(K)=EDIS(K,N) - XEI(K)
  2779.   980 CONTINUE
  2780. C
  2781.       JPT=2
  2782.       IF (NTABS.GE.0) GO TO 950
  2783.       DO 940 I=1,NDA
  2784.   940 RE(I)=0.
  2785.   950 CONTINUE
  2786. C
  2787.       MTYPE=MATP(N)
  2788.       CALL NODCOS (XYZ(1,N),CENTER(1,N),DMINT,VECS)
  2789.       CALL NEWCOS(EULER(1,N),ROTOLD(1,N),EDIS(1,N),INDNL)
  2790. C
  2791.       CALL SCTOR (AS,S,SR(1,N),XEI,RIT,RERIT,ND,INDNL,2)
  2792.       RITZ(1,N) = RITZ(1,N) + RIT(1)
  2793.       RITZ(2,N) = RITZ(2,N) + RIT(2)
  2794. C
  2795.       CALL NONSTF (XYZ(1,N),CENTER(1,N),SECT(1,MTYPE),PROP(1,MTYPE),
  2796.      1             WA(1,N),IDW,AS,ISTAB(1,IPSA),EDIS(1,N),
  2797.      1             RITZ(1,N),SR(1,N),RERIT(1,N),S)
  2798. C
  2799.   975 CONTINUE
  2800. C
  2801. C
  2802.       RETURN
  2803. C
  2804. C
  2805.  1010 FORMAT (I5,3F10.0)
  2806.  1012 FORMAT (8F10.0)
  2807.  1100 FORMAT (16I5)
  2808.  1200 FORMAT (2I5,5X,3I5,F10.0,I5)
  2809.  2000 FORMAT (////37H M A T E R I A L    C O N S T A N T S)
  2810.  2010 FORMAT (//22H S E T   N U M B E R =,I5//4X,
  2811.      1        23H DENSITY. . . . . . . =,E16.6/)
  2812.  2015 FORMAT (4X,23H DEPTH. . . . . . . . =,E16.6/4X,
  2813.      1        23H WIDTH. . . . . . . . =,E16.6/)
  2814.  2050 FORMAT (4X,23H YOUNG*S MODULUS. . . =,E16.6/4X,
  2815.      1        23H POISSON*S RATIO. . . =,E16.6/)
  2816.  2060 FORMAT (4X,23H YOUNG*S MODULUS. . . =,E16.6/
  2817.      1        4X,23H POISSON*S RATIO. . . =,E16.6/
  2818.      2        4X,23H YIELD STRESS . . . . =,E16.6/
  2819.      3        4X,23H ET . . . . . . . . . =,E16.6)
  2820.  2100 FORMAT (///40H S T R E S S   O U T P U T   T A B L E S)
  2821.  2105 FORMAT (// 20H TABLE NUMBER......=,I3/20H NUMBER OF POINTS..=,I3//
  2822.      1        4X,24H POINT     INL  INT  INP/)
  2823.  2110 FORMAT (I9,3X,3I5)
  2824.  2200 FORMAT (///38H E L E M E N T   I N F O R M A T I O N//
  2825.      1 6H     M,2X,5H IELD,2X,5H  IPS,2X,5H MTYP,2X,5H   KG,5X,
  2826.      2 5HETIME,5X,6HINTLOC,14X,2HKK,3X,
  2827.      3 37HNODE(1)   NODE(2)   NODE(3)   NODE(4)/
  2828.      4 52X,17HINTEGRATION POINT,14X,19HGLOBAL  COORDINATES/
  2829.      5 52X,17HINR    INS    INT,10X,1HX,12X,1HY,12X,1HZ)
  2830.  2210 FORMAT (/I6,2X,4(I5,2X),E11.4,2X,I4,13X,I5,4X,I5,3(5X,I5))
  2831.  2208 FORMAT (52X,I2,2(5X,I2),5X,E11.4,2(2X,E11.4))
  2832.  2300 FORMAT (///16H ELEMENT GROUP =,I2,18H  (ISO-BEAM/CUTEL)  /
  2833.      1        17H ELEMENT NUMBER =,I4/
  2834.      2        7H IELD =,I3,26H IS GREATER THAN NPAR(7) =,I3/
  2835.      3        5H STOP)
  2836.  2310 FORMAT (///16H ELEMENT GROUP =,I2,18H  (ISO-BEAM/CUTEL)  /
  2837.      1        17H ELEMENT NUMBER =,I4/
  2838.      2        7H MTYP =,I3,27H IS GREATER THAN NPAR(16) =,I3/5H STOP)
  2839.  2320 FORMAT (///16H ELEMENT GROUP =,I2,18H  (ISO-BEAM/CUTEL)  /
  2840.      1        17H ELEMENT NUMBER =,I4/
  2841.      2        7H IPS  =,I3,27H IS GREATER THAN NPAR(13) =,I3/5H STOP)
  2842.  2330 FORMAT (///16H ELEMENT GROUP =,I2,18H  (ISO-BEAM/CUTEL)  /
  2843.      1        17H ELEMENT NUMBER =,I4/
  2844.      2 55H ELEMENT INFORMATION MUST START WITH ELEMENT NUMBER = 1//
  2845.      3        8H S T O P)
  2846.  2340 FORMAT (///30H ***  I N P U T   E R R O R  -//
  2847.      1        29H DETECTED BY SUBROUTINE CUTEL/
  2848.      2        33H WHILE READING ELEMENT GROUP DATA//
  2849.      3        5X,17H ELEMENT GROUP  =,I5/
  2850.      4        5X,17H ELEMENT NUMBER =,I5/
  2851.      5        5X,17H AUXILIARY NODE =,I5//
  2852.      6        29H AUXILIARY NODE (ICD) MUST BE/
  2853.      7        24H IN THE RANGE (0,NUMNP=,I5,2H).//8H S T O P)
  2854.  2360 FORMAT (///30H ***  I N P U T   E R R O R  -//
  2855.      1        29H DETECTED BY SUBROUTINE CUTEL/
  2856.      2        33H WHILE READING ELEMENT GROUP DATA//
  2857.      3        5X,17H ELEMENT GROUP  =,I5/
  2858.      4        5X,17H ELEMENT NUMBER =,I5/
  2859.      5        5X,17H NUMBER OF NODES=,I5/
  2860.      6        5X,17H NODE NUMBERS   =,4I5)
  2861.  2362 FORMAT (/37H NODE NUMBERS FOR THE ELEMENT MUST BE/
  2862.      1        24H IN THE RANGE (1, NUMNP=,I5,2H).//8H S T O P)
  2863.  2400 FORMAT (/I6)
  2864.  2402 FORMAT (7X,3I7,6X,3E16.6,E18.6,8X,A2,A6)
  2865.  2410 FORMAT (36X,3E16.6/)
  2866.  2450 FORMAT (I6)
  2867.  2460 FORMAT (10X,I4,2X,3E16.6,2X,3E16.6)
  2868.  2500 FORMAT (1H1,48HS T R E S S   C A L C U L A T I O N S   F O R     ,
  2869.      1        27HE L E M E N T   G R O U P  ,I5,13H   (ISO-BEAM))
  2870.  2550 FORMAT (/
  2871.      1 61H ELEMENT FORCES ARE CALCULATED IN THE LOCAL COORDINATE SYSTEM/
  2872.      2        /8H ELEMENT/8H  NUMBER,10H   NODE   ,6X,
  2873.      3         8H FORCE-R,8X,8H FORCE-S,8X,8H FORCE-T,10X,
  2874.      4         8HMOMENT-R,8X,8HMOMENT-S,8X,8HMOMENT-T  /)
  2875.  2650 FORMAT (/
  2876.      1 60H STRESSES ARE CALCULATED IN THE LOCAL COORDINATE SYSTEM     //
  2877.      2        8H ELEMENT,4X,17HINTEGRATION POINT,12X,9HSTRESS-RR,
  2878.      3        7X,9HSTRESS-RS,7X,9HSTRESS-RT/
  2879.      5        8H  NUMBER,4X,17HINR----INS----INT,12X,9HSTRAIN-RR,
  2880.      5        7X,9HSTRAIN-RS,7X,9HSTRAIN-RT)
  2881.  2660 FORMAT (/
  2882.      1 60H STRESSES ARE CALCULATED IN THE LOCAL COORDINATE SYSTEM     //
  2883.      2        8H ELEMENT,4X,17HINTEGRATION POINT,12X,9HSTRESS-RR,
  2884.      3        7X,9HSTRESS-RS,7X,9HSTRESS-RT,7X,17HEQUIVALENT STRESS,
  2885.      4        3X,12HSTRESS STATE/
  2886.      5        8H  NUMBER,4X,17HINR----INS----INT,12X,9HSTRAIN-RR,
  2887.      5        7X,9HSTRAIN-RS,7X,9HSTRAIN-RT)
  2888. C
  2889.  3010 FORMAT (///24H I N P U T   E R R O R -/
  2890.      1        29H DETECTED BY SUBROUTINE CUTEL/
  2891.      1 55H WHILE READING MATERIAL PROPERTY SETS FOR ELEMENT GROUP,I5/)
  2892.  3012 FORMAT (34H SETS ARE NOT IN ASCENDING ORDER -/
  2893.      1        5X,15H SET EXPECTED =,I5/
  2894.      1        5X,15H SET READ     =,I5/
  2895.      3       /8H S T O P)
  2896.  3020 FORMAT (///24H I N P U T   E R R O R -/
  2897.      1        29H DETECTED BY SUBROUTINE CUTEL/
  2898.      2 53H WHILE READING STRESS OUTPUT TABLES FOR ELEMENT GROUP,I5/)
  2899.  3022 FORMAT (36H TABLES ARE NOT IN ASCENDING ORDER -/
  2900.      1        5X,17H TABLE EXPECTED =,I5/5X,17H TABLE READ     =,I5//
  2901.      2        8H S T O P)
  2902.  3024 FORMAT (5X,15H TABLE NUMBER =,I5/5X,15H ENTRY NUMBER =,I5/
  2903.      2        5X,15H ENTRY        =,I5//
  2904.      2 55H REQUESTED STRESS OUTPUT POINT IS OUTSIDE RANGE OF     /
  2905.      3 55H INTEGRATION PARAMETERS -                              //
  2906.      4        5X,6H INL =,I5,29H    SHOULD BE IN (1,NPAR( 9)=,I2,1H)/
  2907.      4        5X,6H INT =,I5,29H    SHOULD BE IN (1,NPAR(10)=,I2,1H)/
  2908.      4        5X,6H INP =,I5,29H    SHOULD BE IN (1,NPAR(11)=,I2,1H)/
  2909.      5        /8H S T O P)
  2910.  3026 FORMAT (5X,15H TABLE NUMBER =,I5/5X,
  2911.      1        41H DUPLICATE ENTRY IN TABLE IS NOT ALLOWED.//8H S T O P)
  2912.  3028 FORMAT (5X,15H TABLE NUMBER =,I5/
  2913.      1        5X,41H NUMBER OF POINTS IN THIS TABLE  (NPTS) =,I5/
  2914.      2        /34H NPTS MUST BE LESS THAN NPAR(14) =,I3,1H.//8H S T O P)
  2915.  3030 FORMAT (///14H  *** STOP ***  //
  2916.      1           15H ELEMENT GROUP=  ,I5/12H ELEMENT NO. ,I5/
  2917.      2           32H ERROR IN ELEMENT CONFIGURATION   )
  2918.  3401 FORMAT (//50H INPUT ERROR DETECTED IN (CUTEL/ISOBEAM)           //
  2919.      1          19H ELEMENT GROUP NO =,I5/
  2920.      2          27H MATERIAL PROPERTY SET NO =,I5/
  2921.      3          38H ZERO OR NEGATIVE INITIAL YIELD STRESS   //)
  2922.  3402 FORMAT (//50H INPUT ERROR DETECTED IN (CUTEL/ISOBEAM)           //
  2923.      1          19H ELEMENT GROUP NO =,I5/
  2924.      2          27H MATERIAL PROPERTY SET NO =,I5/
  2925.      3          44H HARDENING MODULUS (ET) GREATER OR EQUAL TO   ,
  2926.      5          44H YOUNG*S MODULUS (E) IS NOT ALLOWED           //)
  2927.  3403 FORMAT (//50H INPUT ERROR ON MATERIAL PROPERTIES               //
  2928.      1          15H *** STOP ***    //)
  2929. C
  2930.       END
  2931. C *CDC* *DECK EPLANE
  2932. C *UNI* )FOR,IS N.EPLANE,R.EPLANE
  2933.       SUBROUTINE EPLANE (NG,CENTER,XYZ,NODE,ICDM,KIN)
  2934. C
  2935. C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
  2936. C .   PROGRAM                                                         .
  2937. C .      . KIN=1   TO DETERMINE THE AUXILIARY NODE (ICDM=0)           .
  2938. C .      . KIN=2   TO DETERMINE WHETHER THE ELEMENT LIES IN A PLANE   .
  2939. C .                (IN THIS CASE, ICDM IS PROVIDED BY USER)           .
  2940. C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
  2941. C
  2942.       IMPLICIT REAL*8 (A-H,O-Z)
  2943.       COMMON /ISOBMS/ NEL,IELD,ND,KDOF,IDIM,ISTIF,IPT,JPT,IPST
  2944. C
  2945. C     AA(1)   VECTOR FROM NODE 1  TO  NODE 2
  2946. C     AA(4)   VECTOR FROM NODE 2  TO  NODE 3
  2947. C     AA(7)   VECTOR FROM NODE 3  TO  NODE 4
  2948. C
  2949.       DIMENSION CENTER(3),XYZ(3,1),NODE(4)
  2950.       DIMENSION AA(9),AC(3),AD(3),DL(3)
  2951. C
  2952.       DIMENSION LNODE(4,3)
  2953.       DATA LNODE /1,2,0,0, 1,3,2,0, 1,3,4,2/
  2954. C
  2955. C
  2956.       IF (KIN.EQ.2) GO TO 5
  2957.       IF (IELD.EQ.2) GO TO 100
  2958. C
  2959.     5 ILM=IELD-1
  2960.       K=0
  2961.       DO 20 I=1,ILM
  2962.       NA=LNODE(I  ,ILM)
  2963.       NB=LNODE(I+1,ILM)
  2964.       DL(I)=0.D0
  2965.       DO 10 J=1,3
  2966.       K=K+1
  2967.       AA(K)=XYZ(J,NB) - XYZ(J,NA)
  2968.    10 DL(I)=DL(I) + AA(K)**2
  2969.       DL(I)=DSQRT(DL(I))
  2970.    20 CONTINUE
  2971. C
  2972.       DO 25 I=1,ILM
  2973.       IF (DL(I).LT.1.0D-08) GO TO 200
  2974.    25 CONTINUE
  2975. C
  2976.       IF (KIN.EQ.2) GO TO 600
  2977. C
  2978.       CALL CROSS (AA(1),AA(4),AC)
  2979.       DC=DSQRT(AC(1)**2 + AC(2)**2 + AC(3)**2)
  2980.       SANG=DC/(DL(1)*DL(2))
  2981.       IF (SANG.LT.1.0D-08) GO TO 50
  2982.       NA=LNODE(3,ILM)
  2983.       ICDM=NODE(NA)
  2984.       IF (IELD.EQ.4) GO TO 75
  2985. C
  2986.       RETURN
  2987. C
  2988. C     FIRST (3) NODES ARE ON A STRAIGHT LINE - CHECK NODE 4
  2989. C
  2990.    50 IF (IELD.EQ.3) GO TO 300
  2991.       CALL CROSS (AA(4),AA(7),AD)
  2992.       DD=DSQRT(AD(1)**2 + AD(2)**2 + AD(3)**2)
  2993.       SANG=DD/(DL(2)*DL(3))
  2994.       IF (SANG.LT.1.0D-08) GO TO 300
  2995.       NA=LNODE(4,ILM)
  2996.       ICDM=NODE(NA)
  2997. C
  2998.       RETURN
  2999. C
  3000.    75 DOT=AC(1)*AA(7) + AC(2)*AA(8) + AC(3)*AA(9)
  3001.       CANG=DABS(DOT)/(DC*DL(3))
  3002.       IF (CANG.GT.1.0D-06) GO TO 400
  3003. C
  3004.       RETURN
  3005. C
  3006. C
  3007. C     E R R O R   M E S S A G E S   F O R   KIN = 1
  3008. C
  3009. C     2-NODE ELEMENT
  3010.   100 WRITE (6,2000) NG,NEL,IELD,ICDM,(NODE(K),(XYZ(I,K),I=1,3),
  3011.      1               K=1,IELD)
  3012.       WRITE (6,2100)
  3013.       STOP
  3014. C
  3015. C     ZERO LENGTH BETWEEN NODES
  3016.   200 WRITE (6,2000) NG,NEL,IELD,ICDM,(NODE(K),(XYZ(I,K),I=1,3),
  3017.      1               K=1,IELD)
  3018.       WRITE (6,2200)
  3019.       STOP
  3020. C
  3021. C     STRAIGHT ELEMENT
  3022.   300 WRITE (6,2000) NG,NEL,IELD,ICDM,(NODE(K),(XYZ(I,K),I=1,3),
  3023.      1               K=1,IELD)
  3024.       WRITE (6,2300)
  3025.       STOP
  3026. C
  3027. C     ELEMENT NOT IN A PLANE
  3028.   400 WRITE (6,2000) NG,NEL,IELD,ICDM,(NODE(K),(XYZ(I,K),I=1,3),
  3029.      1               K=1,IELD)
  3030.       WRITE (6,2400)
  3031.       STOP
  3032. C
  3033. C
  3034. C . . . . . . . . . . . . . . . . . . . . . . . . .
  3035. C .   KIN=2                                       .
  3036. C .   CHECK WHETHER ELEMENT IS IN PLANE           .
  3037. C . . . . . . . . . . . . . . . . . . . . . . . . .
  3038. C
  3039. C     AC = VECTOR FROM (ICDM) TO NODE 1
  3040. C
  3041.   600 AC(1)=XYZ(1,1) - CENTER(1)
  3042.       AC(2)=XYZ(2,1) - CENTER(2)
  3043.       AC(3)=XYZ(3,1) - CENTER(3)
  3044.       DC=DSQRT(AC(1)**2 + AC(2)**2 + AC(3)**2)
  3045.       IF (DC.GT.1.0D-08) GO TO 620
  3046. C
  3047.       WRITE (6,2000) NG,NEL,IELD,ICDM,(NODE(K),(XYZ(I,K),I=1,3),
  3048.      1               K=1,IELD)
  3049.       WRITE (6,2600) ICDM,CENTER
  3050.       WRITE (6,2610)
  3051.       STOP
  3052. C
  3053. C
  3054.   620 CALL CROSS (AA,AC,AD)
  3055.       DD=DSQRT(AD(1)**2 + AD(2)**2 + AD(3)**2)
  3056.       SANG=DD/(DL(1)*DC)
  3057.       IF (SANG.GT.1.0D-08) GO TO 650
  3058. C
  3059.       WRITE (6,2000) NG,NEL,IELD,ICDM,(NODE(K),(XYZ(I,K),I=1,3),
  3060.      1               K=1,IELD)
  3061.       WRITE (6,2600) ICDM,CENTER
  3062.       WRITE (6,2620) LNODE(2,ILM)
  3063.       STOP
  3064. C
  3065. C
  3066. C     ICD, NODES 1  AND  2  DETERMINE A PLANE -
  3067. C     SEE IF NODE 3 IS IN THAT PLANE
  3068. C
  3069.   650 IF (IELD.EQ.2) GO TO 800
  3070.       DOT=AA(4)*AD(1) + AA(5)*AD(2) + AA(6)*AD(3)
  3071.       CANG=DABS(DOT)/(DL(2)*DD)
  3072.       IF (CANG.LT.1.0D-06) GO TO 675
  3073.       GO TO 700
  3074. C
  3075. C     SEE IF NODE 4 IS IN THE PLANE
  3076. C
  3077.   675 IF (IELD.EQ.3) GO TO 800
  3078.       DOT=AA(7)*AD(1) + AA(8)*AD(2) + AA(9)*AD(3)
  3079.       CANG=DABS(DOT)/(DL(3)*DD)
  3080.       IF (CANG.LT.1.D-06) GO TO 800
  3081. C
  3082. C     E R R O R -
  3083. C     ELEMENT DOES NOT LIE IN A PLANE
  3084. C
  3085.   700 WRITE (6,2000) NG,NEL,IELD,ICDM,(NODE(K),(XYZ(I,K),I=1,3),
  3086.      1               K=1,IELD)
  3087.       WRITE (6,2600) ICDM,CENTER
  3088.       WRITE (6,2400)
  3089.       STOP
  3090.   800 RETURN
  3091. C
  3092. C
  3093.  2000 FORMAT (///29H ***  I N P U T   E R R O R -/
  3094.      1        30H DETECTED BY SUBROUTINE EPLANE/
  3095.      2        45H WHILE READING ELEMENT INFORMATION   (ISOBM)   //
  3096.      3        17H ELEMENT GROUP  =,I5/
  3097.      3        17H ELEMENT NUMBER =,I5/
  3098.      3        17H NUMBER OF NODES=,I5/
  3099.      4        17H AUXILIARY NODE =,I5//
  3100.      5        //44H ELEMENT NODAL COORDINATES ARE GIVEN BELOW -//
  3101.      6        6H  NODE,15X,1HX,15X,1HY,15X,1HZ//(I6,3E16.6))
  3102.  2100 FORMAT (//49H FOR 2-NODE ELEMENT, AUXILIARY NODE (ICD) MUST BE,
  3103.      1        11H SPECIFIED.///12H *** S T O P)
  3104.  2200 FORMAT (//46H ELEMENT NODES OCCUPY THE SAME POINT IN SPACE.///
  3105.      1        12H *** S T O P)
  3106.  2300 FORMAT (//51H THIS IS A STRAIGHT ELEMENT, AND THE AUXILIARY NODE,
  3107.      1        24H (ICD) MUS BE SPECIFIED.///12H *** S T O P)
  3108.  2400 FORMAT (//38H THIS ELEMENT DOES NOT LIE IN A PLANE.///
  3109.      1        12H *** S T O P)
  3110.  2600 FORMAT (/I5,3E16.6)
  3111.  2610 FORMAT (//40H AUXILIARY NODE LOCATION COINCIDES WITH     /
  3112.      1          20H ELEMENT NODE 1                             //
  3113.      2          15H *** STOP ***                               //)
  3114.  2620 FORMAT (//39H AUXILIARY NODE AND ELEMENT NODES 1 AND,I1,
  3115.      1        24H LIE ON A STRAIGHT LINE.///12H *** S T O P)
  3116. C
  3117.       END
  3118. C *CDC* *DECK CINTEG
  3119. C *UNI* )FOR,IS N.CINTEG,R.CINTEG
  3120.       SUBROUTINE CINTEG (NPAR)
  3121. C
  3122. C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
  3123. C .   PROGRAM                                                         .
  3124. C .      . TO CALCULATE INTEGRATION SUBSCRIPTS,                       .
  3125. C .        GIVEN THE NPAR VECTOR                                      .
  3126. C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
  3127. C
  3128.       IMPLICIT REAL*8 (A-H,O-Z)
  3129.       DIMENSION NPAR(20)
  3130. C
  3131.       COMMON /CINT/ IMLEN,INLEN,INLENT,IMTIK,INTIK,INTIKT,
  3132.      1              INPER,INPERT,WZ
  3133.       DATA IRECT /1/
  3134. C
  3135.       IMLEN=1
  3136.       INLEN=NPAR(9)
  3137.       IF (INLEN.GT.0)  GO TO 10
  3138.       IMLEN=2
  3139.       INLEN=-INLEN
  3140.    10 INLENT=INLEN
  3141.       IF (IMLEN.EQ.2) INLENT=4+(INLEN-1)/2
  3142. C
  3143.       IMTIK=1
  3144.       INTIK=NPAR(10)
  3145.       IF (INTIK.GT.0) GO TO 20
  3146.       IMTIK=2
  3147.       INTIK=-INTIK
  3148.    20 INTIKT=INTIK
  3149.       IF (IMTIK.EQ.2) INTIKT=4+(INTIK-1)/2
  3150. C
  3151. C
  3152.       IMPER=1
  3153.       INPER=NPAR(11)
  3154.       IF (INPER.GT.0) GO TO 30
  3155.       IMPER=2
  3156.       INPER=-INPER
  3157.    30 INPERT=INPER
  3158.       IF (IMPER.EQ.2) INPERT=4 + (INPER-1)/2
  3159. C
  3160.       RETURN
  3161. C
  3162. C
  3163.       END
  3164. C *CDC* *DECK INITIM
  3165. C *UNI* )FOR,IS N.INITIM,R.INITIM
  3166.       SUBROUTINE INITIM (MODEL,NINT,IDW,PROP,WA,IWA)
  3167.       IMPLICIT REAL*8 (A-H,O-Z)
  3168.       COMMON /DPR/ ITWO
  3169.       DIMENSION PROP(1),WA(1),IWA(1)
  3170. C
  3171.       K=0
  3172.       ILAS=IDW-2
  3173.       DO 25 I=1,NINT
  3174.       DO 10 J=1,ILAS
  3175.       K=K+1
  3176.    10 WA(K)=0.
  3177.       K=K+1
  3178.       WA(K)=(PROP(3)**2)/3.
  3179.       K=K+1
  3180.       KK=ITWO*(K-1) + 1
  3181.       IWA(KK)=1
  3182.    25 CONTINUE
  3183. C
  3184.       RETURN
  3185. C
  3186. C
  3187.       END
  3188. C *CDC* *DECK CELMAS
  3189. C *UNI* )FOR,IS N.CELMAS,R.CELMAS
  3190.       SUBROUTINE CELMAS (XYZ,SECT,DEN,S)
  3191. C
  3192. C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
  3193. C .   P R O G R A M                                                   .
  3194. C .       . TO CALCULATE THE MASS MATRIX                              .
  3195. C .         FOR THE VARIABLE NODE CURVED BEAM ELEMENT                 .
  3196. C .                                                                   .
  3197. C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
  3198. C
  3199.       IMPLICIT REAL*8 (A-H,O-Z)
  3200.       COMMON /EL/     IND,ICOUNT,NPAR(20),NUMEG,NEGL,NEGNL,IMASS,IDAMP,
  3201.      1                ISTAT,NDOF,KLIN,IEIG,IMASSN,IDAMPN
  3202.       COMMON /GAUSS/  XG(4,4),WGT(4,4),EVAL2(9,2),EVAL3(27,3),E1,E2,E3
  3203.       COMMON /GASNEW/ TRAPS(12,3),GATES(7,7),WATES(7,7)
  3204.       COMMON /PIE/    PI,TOPI,DEGRAD,RADEG
  3205. C
  3206.       COMMON /ISOBMS/ NEL,IELD,ND,KDOF,IDIM,ISTIF,IPT,JPT,IPST
  3207.       COMMON /ESHAPE/ H(4),HR(4),DEPH,WIDH,DSH,WTH
  3208.       COMMON /JUNKEL/ XJI(9),DMINT(36),DMT(36),VECS(3),DC(9),
  3209.      1                B(3,26),BS(9,26)
  3210.       COMMON /CINT/   IMLEN,INLEN,INLENT,IMTIK,INTIK,INTIKT,
  3211.      1                INPER,INPERT,WZ
  3212. C
  3213.       DIMENSION XYZ(1),SECT(2),S(1)
  3214.       DIMENSION INTEGS(4),RL(4),PM(4)
  3215. C
  3216.       EQUIVALENCE (NPAR(5),ISECT)
  3217. C
  3218.       DATA IRECT /1/
  3219.       DATA INTEGS /0,1,2,3/
  3220. C
  3221. C
  3222. C     RL(I) IS THE ARCLENGTH FROM NODE (I-1) TO NODE (I)
  3223. C     INTEG = NO OF INTEGRATION POINTS USED IN CALCULATING ARCLENGTH
  3224. C             BETWEEN ARCLENGTH NODES (MAX=4 - SEE COMMON /GAUSS/ )
  3225. C
  3226. C
  3227.       IF (IMASS.EQ.2) GO TO 200
  3228. C
  3229. C . . . . . . . . . . . . . . . . . . . . . . . . .
  3230. C .   L U M P E D   M A S S                       .
  3231. C . . . . . . . . . . . . . . . . . . . . . . . . .
  3232. C
  3233.       INTEG=INTEGS(IELD)
  3234.       ARC=2./DBLE(FLOAT(IELD-1))
  3235.       BETA=ARC/2.
  3236.       ALFA=-(1.+BETA)
  3237. C
  3238. C
  3239.       RL(1)=0.
  3240.       DO 100 N=2,IELD
  3241.       RL(N)=0.
  3242.       ALFA=ALFA+ARC
  3243.       DO 90 I=1,INTEG
  3244.       R=ALFA + BETA*XG(I,INTEG)
  3245.       FACT=BETA*WGT(I,INTEG)
  3246.       CALL SHAPES (H,HR,IELD,R)
  3247.       DUM=0.
  3248.       DO 75 J=1,3
  3249.       TEMP=0.
  3250.       KK=J-3
  3251.       DO 60 K=1,IELD
  3252.       KK=KK+3
  3253.    60 TEMP=TEMP + HR(K)*XYZ(KK)
  3254. C
  3255.    75 DUM=DUM + TEMP*TEMP
  3256.       TEMP=DSQRT(DUM)
  3257. C
  3258.    90 RL(N)=RL(N) + FACT*TEMP
  3259. C
  3260.   100 CONTINUE
  3261. C
  3262. C
  3263.       PM(1)=.5*RL(2)
  3264.       PM(2)=.5*RL(IELD)
  3265.       IF (IELD-3) 120,115,110
  3266.   110 PM(4)=.5*(RL(3) + RL(4))
  3267.   115 PM(3)=.5*(RL(2) + RL(3))
  3268. C
  3269. C . . . . . . . . . . . . . . .
  3270. C .   RECTANGULAR SECTION     .
  3271. C . . . . . . . . . . . . . . .
  3272. C
  3273.   120 ADEN=DEN*(4.*SECT(1)*SECT(2))
  3274.       GO TO 130
  3275. C
  3276. C
  3277.   130 L=0
  3278.       DO 140 I=1,IELD
  3279.       XMM=ADEN*PM(I)
  3280.       DO 135 K=1,3
  3281.       L=L+1
  3282.   135 S(L)=XMM
  3283.       DO 136 K=1,3
  3284.       L=L+1
  3285.   136 S(L)=0.
  3286.   140 CONTINUE
  3287. C
  3288. C
  3289.       RETURN
  3290. C
  3291. C
  3292. C . . . . . . . . . . . . . . . . . . . . . . . . .
  3293. C .   C O N S I S T E N T   M A S S               .
  3294. C . . . . . . . . . . . . . . . . . . . . . . . . .
  3295. C
  3296. C
  3297. C
  3298. C . . . . . . . . . . . . . . .
  3299. C .   RECTANGULAR SECTION     .
  3300. C . . . . . . . . . . . . . . .
  3301. C
  3302.   200 DEPH=SECT(1)
  3303.       WIDH=SECT(2)
  3304. C
  3305.       DO 250 INL=1,INLEN
  3306.       RX=GATES(INL,INLENT)
  3307.       WX=WATES(INL,INLENT)
  3308.       CALL SHAPES (H,HR,IELD,RX)
  3309.       DO 250 INT=1,INTIK
  3310.       RY=GATES(INT,INTIKT)
  3311.       WYWX=WX*WATES(INT,INTIKT)
  3312.       DSH=DEPH*RY
  3313.       DO 250 INP=1,INPER
  3314.       RZ=GATES(INP,INPERT)
  3315.       WAT=WYWX*WATES(INP,INPERT)
  3316.       WTH=WIDH*RZ
  3317. C
  3318.       CALL IPTCOS (XYZ,DMINT,VECS,XJI,DET,DC)
  3319.       FACT=DEN*(DET*WAT)
  3320.       CALL CONMAS (DMINT,FACT,S,IELD)
  3321. C
  3322.   250 CONTINUE
  3323. C
  3324.       RETURN
  3325. C
  3326. C . . . . . . . . . . . . . . .
  3327. C     I SECTION ( TO BE INCLUDED IN FUTURE)
  3328. C . . . . . . . . . . . . . . .
  3329. C
  3330. C
  3331.       END
  3332. C *CDC* *DECK CONMAS
  3333. C *UNI* )FOR,IS N.CONMAS,R.CONMAS
  3334.       SUBROUTINE CONMAS (DM,FACT,S,IELD)
  3335. C
  3336. C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
  3337. C .      . TO CALCULATE THE CONSISTENT MASS MATRIX CONTRIBUTION       .
  3338. C .        AT ONE INTEGRATION POINT                                   .
  3339. C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
  3340. C
  3341.       IMPLICIT REAL*8 (A-H,O-Z)
  3342.       COMMON /ESHAPE/ H(4),HR(4),DEPH,WIDH,DSH,WTH
  3343. C
  3344.       DIMENSION DM(9,1),S(1)
  3345.       DIMENSION RHX(4),RHY(4),RHZ(4)
  3346. C
  3347. C
  3348. C     CALCULATE SHAPE FUNCTIONS FOR ROTATIONAL DOF
  3349. C
  3350.       DO 50 I=1,IELD
  3351.       HI=H(I)
  3352.       RHX(I)=HI * (DSH*DM(4,I) + WTH*DM(7,I))
  3353.       RHY(I)=HI * (DSH*DM(5,I) + WTH*DM(8,I))
  3354.       RHZ(I)=HI * (DSH*DM(6,I) + WTH*DM(9,I))
  3355.    50 CONTINUE
  3356. C
  3357. C     M U L T I P L I C A T I O N
  3358. C
  3359.       L=0
  3360.       DO 200 I=1,IELD
  3361. C
  3362.       HI=FACT*H(I)
  3363.       DO 110 J=I,IELD
  3364.       L=L+1
  3365.       S(L)=S(L) + HI*H(J)
  3366.       L=L+4
  3367.       S(L)=S(L) + HI*RHZ(J)
  3368.       L=L+1
  3369.   110 S(L)=S(L) - HI*RHY(J)
  3370. C
  3371.       L=L-1
  3372.       DO 120 J=I,IELD
  3373.       L=L+2
  3374.       S(L)=S(L) + HI*H(J)
  3375.       L=L+2
  3376.       S(L)=S(L) - HI*RHZ(J)
  3377.       L=L+2
  3378.       S(L)=S(L) + HI*RHX(J)
  3379.   120 CONTINUE
  3380. C
  3381.       L=L-2
  3382.       DO 130 J=I,IELD
  3383.       L=L+3
  3384.       S(L)=S(L) + HI*H(J)
  3385.       L=L+1
  3386.       S(L)=S(L) + HI*RHY(J)
  3387.       L=L+1
  3388.       S(L)=S(L) - HI*RHX(J)
  3389.       L=L+1
  3390.   130 CONTINUE
  3391. C
  3392.       HX=FACT*RHX(I)
  3393.       HY=FACT*RHY(I)
  3394.       HZ=FACT*RHZ(I)
  3395. C
  3396.       J=I
  3397.   142 L=L+1
  3398.       S(L)=S(L) + HZ*RHZ(J) + HY*RHY(J)
  3399.       L=L+1
  3400.       S(L)=S(L) - HY*RHX(J)
  3401.       L=L+1
  3402.       S(L)=S(L) - HZ*RHX(J)
  3403. C
  3404.       IF (J.EQ.IELD) GO TO 150
  3405. C
  3406.       J=J+1
  3407.       L=L+2
  3408.       S(L)=S(L) - HZ*H(J)
  3409.       L=L+1
  3410.       S(L)=S(L) + HY*H(J)
  3411.       GO TO 142
  3412. C
  3413. C
  3414.   150 J=I
  3415.   152 L=L+1
  3416.       S(L)=S(L) + HZ*RHZ(J) + HX*RHX(J)
  3417.       L=L+1
  3418.       S(L)=S(L) - HZ*RHY(J)
  3419. C
  3420.       IF (J.EQ.IELD) GO TO 160
  3421. C
  3422.       J=J+1
  3423.       L=L+1
  3424.       S(L)=S(L) + HZ*H(J)
  3425.       L=L+2
  3426.       S(L)=S(L) - HX*H(J)
  3427.       L=L+1
  3428.       S(L)=S(L) - HX*RHY(J)
  3429.       GO TO 152
  3430. C
  3431. C
  3432.   160 J=I
  3433.   162 L=L+1
  3434.       S(L)=S(L) + HY*RHY(J) + HX*RHX(J)
  3435. C
  3436.       IF (J.EQ.IELD) GO TO 200
  3437. C
  3438.       J=J+1
  3439.       L=L+1
  3440.       S(L)=S(L) - HY*H(J)
  3441.       L=L+1
  3442.       S(L)=S(L) + HX*H(J)
  3443.       L=L+2
  3444.       S(L)=S(L) - HX*RHZ(J)
  3445.       L=L+1
  3446.       S(L)=S(L) - HY*RHZ(J)
  3447.       GO TO 162
  3448. C
  3449.   200 CONTINUE
  3450. C
  3451.       RETURN
  3452. C
  3453. C
  3454.       END
  3455. C *CDC* *DECK LINSTF
  3456. C *UNI* )FOR,IS N.LINSTF,R.LINSTF
  3457.       SUBROUTINE LINSTF (XYZ,CENTER,SECT,PROP,AS,IFLAG)
  3458. C
  3459. C     PROGRAM
  3460. C        . TO CALCULATE THE STIFFNESS MATRIX FOR THE LINEAR
  3461. C          CURVED TIMOSHENKO BEAM ELEMENT
  3462. C
  3463.       IMPLICIT REAL*8 (A-H,O-Z)
  3464.       COMMON /PIE/ PI,TOPI,DEGRAD,RADEG
  3465.       COMMON /GASNEW/ TRAPS(12,3),GATES(7,7),WATES(7,7)
  3466.       COMMON /EL/ IND,ICOUNT,NPAR(20),NUMEG,NEGL,NEGNL,IMASS,IDAMP,
  3467.      1            ISTAT,NDOF,KLIN,IEIG,IMASSN,IDAMPN
  3468. C
  3469.       COMMON /ISOBMS/ NEL,IELD,ND,KDOF,IDIM,ISTIF,IPT,JPT,IPST
  3470.       COMMON /ESHAPE/ H(4),HR(4),DEPH,WIDH,DSH,WTH
  3471.       COMMON /CINT  / IMLEN,INLEN,INLENT,IMTIK,INTIK,INTIKT,
  3472.      1                INPER,INPERT,WZ
  3473.       COMMON /JUNKEL/ XJI(9),DMINT(36),DMT(36),VECS(3),DC(9),
  3474.      1                B(3,26),BS(9,26)
  3475. C
  3476.       DIMENSION XYZ(1),CENTER(1),SECT(1),PROP(1)
  3477.       DIMENSION AS(26,26)
  3478. C
  3479.       EQUIVALENCE (NPAR(5),ISECT)
  3480. C
  3481.       DATA IRECT /1/
  3482. C
  3483. C
  3484. C
  3485. C
  3486. C . . . . . . . . . . . . . . . . . . . . . . . . .
  3487. C .   RECTANGULAR CROSS-SECTION                   .
  3488. C . . . . . . . . . . . . . . . . . . . . . . . . .
  3489. C
  3490.       DEPH=SECT(1)
  3491.       WIDH=SECT(2)
  3492. C
  3493.       IPT=0
  3494. C
  3495.       DO 150 INL=1,INLEN
  3496.       RX=GATES(INL,INLENT)
  3497.       WX=WATES(INL,INLENT)
  3498.       CALL SHAPES (H,HR,IELD,RX)
  3499.       DO 140 INT=1,INTIK
  3500.       RY=GATES(INT,INTIKT)
  3501.       WYWX=WX*WATES(INT,INTIKT)
  3502.       DSH=DEPH*RY
  3503.       DO 130 INP=1,INPER
  3504.       RZ=GATES(INP,INPERT)
  3505.       WAT=WYWX*WATES(INP,INPERT)
  3506.       WTH=WIDH*RZ
  3507. C
  3508.       IPT=IPT+1
  3509.       CALL IPTCOS (XYZ,DMINT,VECS,XJI,DET,DC)
  3510. C
  3511.       CALL BLNODE(B,BS,DMINT,DUMMY)
  3512. C
  3513.       FACT=DET*WAT
  3514.       CALL ELSTF (AS,B,PROP,FACT,ND,IFLAG)
  3515. C
  3516.   130 CONTINUE
  3517.   140 CONTINUE
  3518.   150 CONTINUE
  3519. C
  3520. C
  3521.       RETURN
  3522.       END
  3523. C *CDC* *DECK NONSTF
  3524. C *UNI* )FOR,IS N.NONSTF,R.NONSTF
  3525.       SUBROUTINE NONSTF(XYZ,CENTER,SECT,PROP,WA,IDW,AS,ISTAB,
  3526.      1                  EDIS,RITZ,SR,RERIT,S)
  3527. C
  3528. C     PROGRAM
  3529. C        . TO CALCULATE THE STIFFNESS MATRIX FOR THE NONLINEAR
  3530. C          CURVED TIMOSHENKO BEAM ELEMENT
  3531. C
  3532.       IMPLICIT REAL*8 (A-H,O-Z)
  3533.       COMMON /PIE/ PI,TOPI,DEGRAD,RADEG
  3534.       COMMON /GASNEW/ TRAPS(12,3),GATES(7,7),WATES(7,7)
  3535.       COMMON /EL/ IND,ICOUNT,NPAR(20),NUMEG,NEGL,NEGNL,IMASS,IDAMP,
  3536.      1            ISTAT,NDOF,KLIN,IEIG,IMASSN,IDAMPN
  3537.       COMMON /VAR/ NG,MODEX,IUPDT,KSTEP,ITEMAX,IEQREF,ITE,KPRI,
  3538.      1             IREF,IEQUIT,IPRI,KPLOTN,KPLOTE
  3539. C
  3540.       COMMON /ISOBMS/ NEL,IELD,ND,KDOF,IDIM,ISTIF,IPT,JPT,IPST
  3541.       COMMON /ESHAPE/ H(4),HR(4),DEPH,WIDH,DSH,WTH
  3542.       COMMON /CINT  / IMLEN,INLEN,INLENT,IMTIK,INTIK,INTIKT,
  3543.      1                INPER,INPERT,WZ
  3544.       COMMON /ELBEL/ EDIT(36),ROTIN(12),RE(26),STRESS(3),
  3545.      1                STRAIN(3),CM(3,3),ESIG,IPELT
  3546.       COMMON /JUNKEL/ XJI(9),DMINT(36),DMT(36),VECS(3),DC(9),
  3547.      1                B(3,26),BS(9,26)
  3548.       COMMON /PORT/ INPORT,JNPORT,NPUTSV,LUNODE,LU1,LU2,LU3,JDC,JVC,JAC
  3549.       COMMON /ISUBST/ ISUBC,NSUBST,NSUB,NTUSE,NEGLS,NEGNLS,NUMNPS,
  3550.      1                NODCON,NODRET,IDOFS(6),NDOFS,NEQS,NWKS,MAXESC,
  3551.      2                MAS,NSTAPE,ILOA(13),KRSIZM,NEQC
  3552. C
  3553.       DIMENSION AS(26,26),XEI(24),RIT(2),S(300)
  3554.       DIMENSION PREFIX(2)
  3555.       DIMENSION XYZ(1),CENTER(1),SECT(1),PROP(1),WA(IDW,1),ISTAB(1)
  3556.       DIMENSION EDIS(1),RITZ(1),SR(1),RERIT(1)
  3557. C
  3558.       EQUIVALENCE (NPAR(13),NTABS)
  3559.       EQUIVALENCE (NPAR(3),INDNL), (NPAR(5),ISECT), (NPAR(15),MODEL)
  3560. C
  3561.       DATA IRECT /1/
  3562.       DATA PREFIX /2H E, 2H*P/,  SUFFIX /6HLASTIC/
  3563.       DATA RECLB4/8HOUTPUT-5/
  3564. C
  3565. C
  3566. C
  3567. C
  3568. C . . . . . . . . . . . . . . . . . . . . . . . . .
  3569. C .   RECTANGULAR CROSS-SECTION                   .
  3570. C . . . . . . . . . . . . . . . . . . . . . . . . .
  3571. C
  3572.       DEPH=SECT(1)
  3573.       WIDH=SECT(2)
  3574.       NDA=ND+2
  3575. C
  3576. C
  3577.       IF (INDNL.LE.1) GO TO 25
  3578. C
  3579. C     THE FOLLOWING 9 CARDS ARE NECESSARY TO PREVENT UNDERFLOW
  3580. C     ON  IBM  COMPUTERS
  3581. C
  3582.       KD=9*IELD
  3583.       XNORM=0.D0
  3584.       DO 31 IJ=1,KD
  3585.    31 XNORM=XNORM + EDIT(IJ)*EDIT(IJ)
  3586.       XNORM=2.D-8*DSQRT(XNORM)
  3587.       RITZ12=DABS(RITZ(1)) + DABS(RITZ(2))
  3588.       IF (RITZ12.GE.XNORM) GO TO 25
  3589.       RITZ(1)=0.D0
  3590.       RITZ(2)=0.D0
  3591. C
  3592.    25 CONTINUE
  3593.       IPT=0
  3594.       JPT=2
  3595.       ISTOP=0
  3596. C
  3597.       DO 150 INL=1,INLEN
  3598.       RX=GATES(INL,INLENT)
  3599.       WX=WATES(INL,INLENT)
  3600.       CALL SHAPES (H,HR,IELD,RX)
  3601.       DO 140 INT=1,INTIK
  3602.       RY=GATES(INT,INTIKT)
  3603.       WYWX=WX*WATES(INT,INTIKT)
  3604.       DSH=DEPH*RY
  3605.       DO 130 INP=1,INPER
  3606. C
  3607.       IPT=IPT+1
  3608. C
  3609.       IF (KPRI.NE.0)  GO TO 40
  3610.       IF (NTABS.LE.0) GO TO 40
  3611.       IF (ISTAB(JPT).NE.IPT) GO TO 130
  3612.       ISTOP=0
  3613.       IF (JPT.GT.ISTAB(1)) ISTOP=1
  3614.       JPT=JPT+1
  3615.    40 CONTINUE
  3616. C
  3617.       RZ=GATES(INP,INPERT)
  3618.       WAT=WYWX*WATES(INP,INPERT)
  3619.       WTH=WIDH*RZ
  3620. C
  3621.       CALL IPTCOS (XYZ,DMINT,VECS,XJI,DET,DC)
  3622.       FACT=WAT*DET
  3623. C
  3624.       CALL BLNODE(B,BS,DMT,RITZ)
  3625. C
  3626. C     CALCULATE STRAIN
  3627. C     CALCULATE STRESS
  3628. C
  3629.       CALL EPSIG(PROP,WA(1,IPT),EDIS,RITZ)
  3630. C
  3631. C
  3632.       IF (KPRI.NE.0) GO TO 75
  3633.       IF (NTABS) 75,50,52
  3634.    50 IF (IPT-1) 55,55,60
  3635.    52 IF (JPT-3) 55,55,60
  3636.    55 IF (IPRI.EQ.0)  WRITE (6,2500)  NEL
  3637.    60 IF (MODEL.GT.1) GO TO 64
  3638.       IF (IPRI.EQ.0)  WRITE (6,2510)  INL,INT,INP,STRESS
  3639.       GO TO 70
  3640.    64 IF (IPRI.EQ.0) WRITE (6,2510) INL,INT,INP,STRESS,ESIG,
  3641.      1                              PREFIX(IPELT),SUFFIX
  3642.    70 IF (IPST.LT.0 .AND. IPRI.EQ.0)  WRITE (6,2600) STRAIN
  3643. C
  3644. C***  DATA PORTHOLE (START)
  3645. C
  3646.       RECLAB = RECLB4
  3647.       IF (JNPORT.NE.0 .AND. KPLOTE.EQ.0)
  3648.      1  WRITE (LU1) RECLAB,NEL,INL,INT,INP,(STRESS(I),I=1,3),
  3649.      2              (STRAIN(I),I=1,3)
  3650. C
  3651. C***  DATA PORTHOLE (END)
  3652. C
  3653.       IF (ISTOP) 130,130,175
  3654. C
  3655. C
  3656. C     CALCULATE NODAL LOADS
  3657. C
  3658.    75 DO 80 I=1,NDA
  3659.       REDUM=0.
  3660.       DO 76 J=1,3
  3661.    76 REDUM=REDUM + B(J,I)*STRESS(J)
  3662.    80 RE(I)=RE(I) + FACT*REDUM
  3663. C
  3664.       IF (ISTIF.EQ.0) GO TO 130
  3665.       IF (MODEL.GT.1) GO TO 122
  3666. C
  3667.    85 CALL ELSTF (AS,B,PROP,FACT,ND,1)
  3668.       GO TO 125
  3669. C
  3670.   122 IF (IPELT.EQ.1) GO TO 85
  3671.       CALL MATSTF ( AS,B,CM,FACT,ND)
  3672.   125 IF (INDNL.NE.2) GO TO 130
  3673.       CALL SIGSTF (AS,BS,STRESS,FACT,ND)
  3674. C
  3675.   130 CONTINUE
  3676.   140 CONTINUE
  3677.   150 CONTINUE
  3678. C
  3679.       IF (ISTIF.EQ.0) GO TO 160
  3680.       CALL SCTOR (AS,S,SR,XEI,RIT,RERIT,ND,INDNL,1)
  3681. C
  3682.   160 NDB=ND+1
  3683.       ISTART=1
  3684.       JSTART=NDA
  3685.       DO 82 I=1,ND
  3686.       RE(I) = RE(I) - RE(NDB)*SR(JSTART) - RE(NDA)*(SR(ISTART) -
  3687.      1        SR(NDB)*SR(JSTART))
  3688.       ISTART=ISTART+1
  3689.       JSTART=JSTART+1
  3690.    82 CONTINUE
  3691. C
  3692.       RERIT(4) = RERIT(1)*RE(NDB) + RERIT(2)*RE(NDA)
  3693.       RERIT(5) = RERIT(2)*RE(NDB) + RERIT(3)*RE(NDA)
  3694.       RE(NDB)=0.0
  3695.       RE(NDA)=0.0
  3696. C
  3697. C
  3698.       IF (KPRI.NE.0)  GO TO 175
  3699.       IF (NTABS.LT.0) GO TO 800
  3700. C
  3701.   175 CONTINUE
  3702. C
  3703. C
  3704.       RETURN
  3705. C
  3706. C
  3707.   800 DO 825 I=1,IELD
  3708.       L=9*(I-1) + 1
  3709.       K=6*(I-1) + 1
  3710.       CALL DIRCOS (DMINT(L),RE(K  ),1,1,3,2)
  3711.       CALL DIRCOS (DMINT(L),RE(K+3),1,1,3,2)
  3712.   825 CONTINUE
  3713. C
  3714.       IF (IPRI.NE.0) GO TO 845
  3715.       WRITE (6,2450) NEL
  3716.       DO 840 I=1,IELD
  3717.       J=6*(I-1) + 1
  3718.       JJ=J+5
  3719.   840 WRITE (6,2460) I,(RE(KJ),KJ=J,JJ)
  3720. C
  3721. C
  3722. C***  DATA PORTHOLE (START)
  3723. C
  3724.   845 RECLAB = RECLB4
  3725.       IF (JNPORT.NE.0 .AND. KPLOTE.EQ.0)
  3726.      1  WRITE (LU1) RECLAB,NEL,ND,(RE(I),I=1,ND)
  3727. C
  3728. C***  DATA PORTHOLE (END)
  3729. C
  3730.       RETURN
  3731. C
  3732.  2450 FORMAT (I6)
  3733.  2460 FORMAT (10X,I4,2X,3E16.6,2X,3E16.6)
  3734.  2500 FORMAT (/I6)
  3735.  2510 FORMAT (7X,3I7,6X,3E16.6,E18.6,8X,A2,A6)
  3736.  2600 FORMAT (36X,3E16.6/)
  3737. C
  3738. C
  3739.       END
  3740. C *CDC* *DECK SCTOR
  3741. C *UNI* )FOR,IS  N.SCTOR,R.SCTOR
  3742.       SUBROUTINE SCTOR (AS,S,SR,XEI,RIT,RERIT,ND,INDNL,IFLAG)
  3743. C
  3744.       IMPLICIT REAL*8 (A-H,O-Z)
  3745. C
  3746.       COMMON /ELBEL/ EDIT(36),ROTIN(12),RE(26),STRESS(3),
  3747.      1                STRAIN(3),CM(3,3),ESIG,IPELT
  3748.       DIMENSION SR(1)
  3749.       DIMENSION AS(26,26),S(300)
  3750.       DIMENSION XEI(24),RIT(2),RERIT(5)
  3751. C
  3752. C     IFLAG=1     STATIC CONDENSATION OF TORSION RITZ FUNCTIONS
  3753. C                 AT ELEMENT LEVEL.
  3754. C     IFLAG=2     RECOVERY OF THE DISPLACEMENTS CORRESPONDING TO
  3755. C                 TORSION RITZ FUNCTIONS ---- RITZ(1),RITZ(2).
  3756. C
  3757.       NDA=ND+2
  3758.       NDB=ND+1
  3759.       IF (IFLAG.EQ.2) GO TO 200
  3760. C
  3761. C     SR ARRAY CONTAINS THE GAUSS ELIMINATION COEFFICIENTS.
  3762. C
  3763.       N=0
  3764.       DO 100 I=1,2
  3765.       M1=NDA-I+1
  3766.       M2=M1-1
  3767.       DD=1.D0/AS(M1,M1)
  3768.       DO 100 J=1,M2
  3769.       N=N+1
  3770.       SR(N) = DD*AS(J,M1)
  3771.       DO 110 K=J,M2
  3772.   110 AS(J,K) = AS(J,K) -SR(N)*AS(K,M1)
  3773.   100 CONTINUE
  3774. C
  3775.       N=0
  3776.       DO 120 I=1,ND
  3777.       DO 120 J=I,ND
  3778.       N=N+1
  3779.   120 S(N)=AS(I,J)
  3780.       IF (INDNL .EQ. 0) RETURN
  3781.       DAS = AS(NDB,NDB)*AS(NDA,NDA) - AS(NDB,NDA)*AS(NDB,NDA)
  3782.       RERIT(1) = AS(NDA,NDA)/DAS
  3783.       RERIT(2) =-AS(NDB,NDA)/DAS
  3784.       RERIT(3) = AS(NDB,NDB)/DAS
  3785.       RETURN
  3786. C
  3787. C     RECOVERY OF RIT ARRAY DISPLACEMENTS
  3788. C
  3789.   200 ISTART = NDA
  3790.       RIT(1)=0.0
  3791.       RIT(2)=0.0
  3792.       DO 210 I=1,2
  3793.       TEMP=0.0
  3794.       IF (I.EQ.2) ISTART=1
  3795.       DO 220 J=1,ND
  3796.       TEMP=TEMP-SR(ISTART)*XEI(J)
  3797.   220 ISTART=ISTART+1
  3798.       IF ( I .EQ. 1 ) RIT(1)=TEMP
  3799.       IF ( I .EQ. 2 ) RIT(2)=TEMP - SR(ISTART)*RIT(1)
  3800.   210 CONTINUE
  3801.       IF (INDNL .EQ. 0) RETURN
  3802.       RIT(1) = RIT(1) - RERIT(4)
  3803.       RIT(2) = RIT(2) - RERIT(5)
  3804.       RETURN
  3805.       END
  3806. C *CDC* *DECK EPSIG
  3807. C *UNI* )FOR,IS N.EPSIG,R.EPSIG
  3808.       SUBROUTINE EPSIG(PROP,WA,EDIS,RITZ)
  3809. C
  3810. C     PROGRAM
  3811. C        . TO CALCULATE STRAINS AND STRESSES
  3812. C
  3813.       IMPLICIT REAL*8 (A-H,O-Z)
  3814.       COMMON /EL/ IND,ICOUNT,NPAR(20),NUMEG,NEGL,NEGNL,IMASS,IDAMP,
  3815.      1            ISTAT,NDOF,KLIN,IEIG,IMASSN,IDAMPN
  3816. C
  3817.       COMMON /ELBEL/ EDIT(36),ROTIN(12),RE(26),STRESS(3),
  3818.      1                STRAIN(3),CM(3,3),ESIG,IPELT
  3819.       COMMON /ISOBMS/ NEL,IELD,ND,KDOF,IDIM,ISTIF,IPT,JPT,IPST
  3820.       COMMON /JUNKEL/ XJI(9),DMINT(36),DMT(36),VECS(3),DC(9),
  3821.      1                B(3,26),BS(9,26)
  3822.       EQUIVALENCE (NPAR(3),INDNL), (NPAR(15),MODEL)
  3823. C
  3824.       DIMENSION PROP(1),WA(1)
  3825.       DIMENSION EDIS(1),RITZ(1)
  3826. C
  3827. C
  3828.       IF (INDNL.EQ.2) GO TO 75
  3829. C
  3830.       DO 25 I=1,3
  3831.       EPSDUM=0.
  3832.       DO 20 J=1,ND
  3833.    20 EPSDUM=EPSDUM + B(I,J)*EDIS(J)
  3834.       EPSDUM = EPSDUM + RITZ(1)*B(I,ND+1) + RITZ(2)*B(I,ND+2)
  3835.    25 STRAIN(I)=EPSDUM
  3836. C
  3837. C
  3838.    75 IF (MODEL-2) 110,120,130
  3839. C
  3840. C     LINEAR ELASTIC MODEL
  3841. C
  3842.   110 STRESS(1)=PROP(1)*STRAIN(1)
  3843.       STRESS(2)=PROP(2)*STRAIN(2)
  3844.       STRESS(3)=PROP(2)*STRAIN(3)
  3845. C
  3846.       RETURN
  3847. C
  3848. C
  3849. C     ELASTIC-PLASTIC MODEL (ISOTROPIC HARDENING)
  3850. C
  3851.   120 CALL ELPALT (PROP,WA(1),WA(4),WA(7),WA(8))
  3852. C
  3853.       RETURN
  3854. C
  3855. C
  3856. C     ELASTIC PLASTIC MODEL (KINEMATIC HARDENING)
  3857. C
  3858.   130 CALL ELPALT (PROP,WA(1),WA(4),WA(8),WA(9))
  3859. C
  3860.       RETURN
  3861. C
  3862. C
  3863.       END
  3864. C *CDC* *DECK ELPALT
  3865. C *UNI* )FOR,IS N.ELPALT,R.ELPALT
  3866.       SUBROUTINE ELPALT (PROP,SIG,EPS,YIELD,IPEL)
  3867. C
  3868. C     PROGRAM
  3869. C        . TO CALCULATE STRESSES FOR THE
  3870. C          ELASTIC-PLASTIC MATERIAL LAW
  3871. C
  3872. C
  3873.       IMPLICIT REAL*8 (A-H,O-Z)
  3874.       COMMON /EL/ IND,ICOUNT,NPAR(20),NUMEG,NEGL,NEGNL,IMASS,IDAMP,
  3875.      1            ISTAT,NDOF,KLIN,IEIG,IMASSN,IDAMPN
  3876.       COMMON /VAR/ NG,MODEX,IUPDT,KSTEP,ITEMAX,IEQREF,ITE,KPRI,
  3877.      1             IREF,IEQUIT,IPRI,KPLOTN,KPLOTE
  3878. C
  3879.       COMMON /ISOBMS/ NEL,IELD,ND,KDOF,IDIM,ISTIF,IPT,JPT,IPST
  3880.       COMMON /ELBEL/ EDIT(36),ROTIN(12),RE(26),STRESS(3),
  3881.      1                STRAIN(3),CM(3,3),ESIG,IPELT
  3882.       COMMON /TIDEP/ E,G,PR,A1,B1,C1,BET,DEPS(4),TEPS(4),ALFA(4),DP(5,5)
  3883. C
  3884. C
  3885.       DIMENSION PROP(1),SIG(1),EPS(1)
  3886.       DIMENSION DELSIG(3),DELEPS(4)
  3887. C
  3888.       EQUIVALENCE (NPAR(15),MODEL)
  3889. C
  3890.       DATA INTMAX /10/
  3891.       DATA ISOT /2/,  KINEM /3/
  3892. C
  3893. C     CALCULATE MATERIAL CONSTANTS
  3894. C
  3895.       E=PROP(1)
  3896.       G=PROP(2)
  3897.       PR=.5*(E/G) - 1.
  3898.       ET=PROP(4)
  3899. C
  3900.       C1=G
  3901.       A1=2.*G/(1.-2.*PR)
  3902.       B1=A1*PR
  3903.       A1=A1-B1
  3904. C
  3905.       CEEH=(E*ET)/(E-ET)/3.
  3906.       CEE =2.*CEEH
  3907.       HP  =(G*G)/(CEEH+G)
  3908.       FTA=0.0
  3909.       FTB =YIELD
  3910.       BET =HP/YIELD
  3911. C
  3912. C     ASSUMING ELASTIC BEHAVIOR,
  3913. C     CALCULATE INCREMENTAL STRESSES
  3914. C
  3915.       DO 120 I=1,3
  3916.   120 DELEPS(I)=STRAIN(I)-EPS(I)
  3917.       DELSIG(1)=E*DELEPS(1)
  3918.       DELSIG(2)=G*DELEPS(2)
  3919.       DELSIG(3)=G*DELEPS(3)
  3920.       DELEPS(4)=(-PR)*DELEPS(1)
  3921. C
  3922. C     CALCULATE THE VALUE OF YIELD FUNCTION
  3923. C
  3924.       DM=DELSIG(1)/3.
  3925.       SM=SIG(1)/3.
  3926.       SXX=SIG(1)-SM
  3927.       SYY=      -SM
  3928.       SXY=SIG(2)
  3929.       SXZ=SIG(3)
  3930. C
  3931.       IF (MODEL.EQ.ISOT) GO TO 150
  3932. C
  3933.       EPSEL=SIG(1)/E
  3934.       ALFA(1)=CEE * (EPS(1)-EPSEL)
  3935.       ALFA(2)=CEEH * (EPS(2)-SIG(2)/G)
  3936.       ALFA(3)=CEEH * (EPS(3)-SIG(3)/G)
  3937.       ALFA(4)=CEE * (EPS(4) + PR*EPSEL)
  3938. C
  3939.       SXX=SXX - ALFA(1)
  3940.       SXY=SXY - ALFA(2)
  3941.       SXZ=SXZ - ALFA(3)
  3942.       SYY=SYY - ALFA(4)
  3943. C
  3944.   150 RA=DELSIG(1)*DM + DELSIG(2)**2 + DELSIG(3)**2
  3945.       IPELT=IPEL
  3946.       IF (RA.EQ.0.) GO TO 175
  3947.       RB=(SXX-SYY)*DM + SXY*DELSIG(2) + SXZ*DELSIG(3)
  3948.       RD=FTB
  3949.       IF (IPEL.EQ.2) GO TO 160
  3950.       RD=.5*(SXX**2) + SYY**2 + SXY**2 + SXZ**2
  3951. C
  3952.   160 FTA=RA + 2.*RB + RD
  3953. C
  3954.       IF (FTA-FTB) 170,170,300
  3955. C
  3956. C
  3957. C     ASSUMPTION OF ELASTIC BEHAVIOR HOLDS
  3958. C
  3959.   170 IPELT=1
  3960.   175 DO 180 I=1,3
  3961.       STRESS(I)=SIG(I) + DELSIG(I)
  3962.   180 CONTINUE
  3963.       IF (MODEL.EQ.KINEM) TEPS(4)=EPS(4) + DELEPS(4)
  3964.       GO TO 600
  3965. C
  3966. C
  3967. C     MATERIAL YIELDS -
  3968. C     DETERMINE STRESSES AT INITIATION OF YIELD
  3969. C
  3970.   300 IPELT=2
  3971.       RC=RD-FTB
  3972.       RATIO=(-RB + DSQRT(RB*RB-RA*RC))/RA
  3973.       DO 320 I=1,3
  3974.       STRESS(I)=SIG(I) + RATIO*DELSIG(I)
  3975.   320 CONTINUE
  3976. C
  3977.       IF (MODEL.EQ.ISOT) GO TO 340
  3978. C
  3979.       DO 325 I=1,4
  3980.   325 TEPS(I)=EPS(I) + RATIO*DELEPS(I)
  3981. C
  3982.   340 INTER=20.*(DSQRT(FTA/FTB)-1.) + 1.
  3983.       IF (INTER.GT.INTMAX) INTER=INTMAX
  3984.       XM=(1.-RATIO)/DBLE(FLOAT(INTER))
  3985. C
  3986.       DO 380 I=1,3
  3987.   380 DEPS(I)=XM*DELEPS(I)
  3988. C
  3989. C     INTEGRATION OF ELASTIC-PLASTIC LAW
  3990. C
  3991. C
  3992.       DO 500 IN=1,INTER
  3993. C
  3994.       CALL MIDEPT (MODEL)
  3995. C
  3996.       DO 420 I=1,3
  3997.       DO 420 J=1,3
  3998.   420 STRESS(I)=STRESS(I) + DP(I,J)*DEPS(J)
  3999.       IF (MODEL.EQ.ISOT) GO TO 440
  4000. C
  4001.       DO 430 I=1,4
  4002.   430 TEPS(I)=TEPS(I) + DEPS(I)
  4003. C
  4004.       EPSEL=STRESS(1)/E
  4005.       ALFA(1)=CEE * (TEPS(1)-EPSEL)
  4006.       ALFA(2)=CEEH * (TEPS(2) - STRESS(2)/G)
  4007.       ALFA(3)=CEEH * (TEPS(3) - STRESS(3)/G)
  4008.       ALFA(4)=CEE * (TEPS(4) + PR*EPSEL)
  4009.       GO TO 500
  4010. C
  4011. C
  4012.   440 SM=STRESS(1)/3.
  4013.       FTA=STRESS(1)*SM + STRESS(2)**2 + STRESS(3)**2
  4014.       BET=HP/FTA
  4015. C
  4016.   500 CONTINUE
  4017. C
  4018. C     UPDATE WA ARRAY
  4019. C
  4020.   600 ESIG=DSQRT(3.*FTA)
  4021.       IF (IUPDT.NE.0) GO TO 615
  4022.       IPEL=IPELT
  4023.       IF (MODEL.EQ.ISOT .AND. IPELT.EQ.2) YIELD=FTA
  4024.       DO 610 I=1,3
  4025.       SIG(I)=STRESS(I)
  4026.   610 EPS(I)=STRAIN(I)
  4027.       IF (MODEL.EQ.KINEM) EPS(4)=TEPS(4)
  4028. C
  4029. C     FORM MATERIAL LAW
  4030. C
  4031.   615 IF (ISTIF.EQ.0) RETURN
  4032.       IF (IPELT.EQ.2) GO TO 650
  4033.       DO 625 I=1,3
  4034.       DO 625 J=1,3
  4035.   625 CM(I,J)=0.
  4036.       CM(1,1)=E
  4037.       CM(2,2)=G
  4038.       CM(3,3)=G
  4039.       RETURN
  4040. C
  4041. C
  4042.   650 CALL MIDEPT (MODEL)
  4043.       DO 660 I=1,3
  4044.       DO 660 J=1,3
  4045.   660 CM(I,J)=DP(I,J)
  4046. C
  4047.       RETURN
  4048. C
  4049. C
  4050.       END
  4051. C *CDC* *DECK MIDEPT
  4052. C *UNI* )FOR,IS N.MIDEPT,R.MIDEPT
  4053.       SUBROUTINE MIDEPT (MODEL)
  4054. C
  4055. C     PROGRAM
  4056. C        TO CALCULATE THE ELASTIC-PLASTIC MATERIAL LAW
  4057. C        FOR ISO/BEAM ELEMENTS
  4058. C
  4059.       IMPLICIT REAL*8 (A-H,O-Z)
  4060.       COMMON /TIDEP/ E,G,PR,A1,B1,C1,BET,DEPS(4),TEPS(4),ALFA(4),DP(5,5)
  4061.       COMMON /ELBEL/ EDIT(36),ROTIN(12),RE(26),STRESS(3),
  4062.      1         STRAIN(3),CM(3,3),ESIG,IPELT
  4063.       DIMENSION D(25)
  4064.        EQUIVALENCE  ( D(1),DP(1,1) )
  4065. C
  4066.       DATA ISOT /2/, KINEM /3/
  4067. C
  4068. C
  4069.       SM=STRESS(1)/3.
  4070. C
  4071.       SXX=STRESS(1)-SM
  4072.       SYY=         -SM
  4073.       SXY=STRESS(2)
  4074.       SXZ=STRESS(3)
  4075. C
  4076.       IF (MODEL.EQ.ISOT) GO TO 20
  4077. C
  4078.       SXX=SXX-ALFA(1)
  4079.       SYY=SYY-ALFA(4)
  4080.       SXY=SXY-ALFA(2)
  4081.       SXZ=SXZ-ALFA(3)
  4082. C
  4083.    20 BETA=BET*SYY
  4084.       D(16)=B1 - BETA*SXX
  4085.       D(17)=   - BETA*SXY
  4086.       D(18)=   - BETA*SXZ
  4087.       D(19)=A1 - BETA*SYY
  4088.       D(20)=B1 - BETA*SYY
  4089. C
  4090.       D(21)=D(16)
  4091.       D(22)=D(17)
  4092.       D(23)=D(18)
  4093.       D(24)=D(20)
  4094.       D(25)=D(19)
  4095. C
  4096.       DEPS(4)=(-1.)*(D(16)*DEPS(1) + D(17)*DEPS(2) + D(18)*DEPS(3)) /
  4097.      1        (D(19) + D(20))
  4098.       WP=SXX*DEPS(1) + SXY*DEPS(2) + SXZ*DEPS(3) + 2.*SYY*DEPS(4)
  4099. C
  4100.       IF (WP.GE.0.) GO TO 50
  4101.       DO 30 I=1,25
  4102.    30 D(I)=0.
  4103.       D( 1)=E
  4104.       D( 7)=G
  4105.       D(13)=G
  4106.       DEPS(4)=(-PR)*DEPS(1)
  4107. C
  4108.       RETURN
  4109. C
  4110. C
  4111.    50 BETT=BET
  4112. C
  4113.       BETA=BETT*SXX
  4114.       D(1)=A1 - BETA*SXX
  4115.       D(2)=   - BETA*SXY
  4116.       D(3)=   - BETA*SXZ
  4117.       D(4)=B1 - BETA*SYY
  4118.       D(5)=B1 - BETA*SYY
  4119. C
  4120.       BETA=BETT*SXY
  4121.       D( 6)=D(2)
  4122.       D( 7)=C1 - BETA*SXY
  4123.       D( 8)=   - BETA*SXZ
  4124.       D( 9)=   - BETA*SYY
  4125.       D(10)=   - BETA*SYY
  4126. C
  4127.       BETA=BETT*SXZ
  4128.       D(11)=D(3)
  4129.       D(12)=D(8)
  4130.       D(13)=C1 - BETA*SXZ
  4131.       D(14)=   - BETA*SYY
  4132.       D(15)=   - BETA*SYY
  4133. C
  4134. C
  4135. C     CONDENSE THE STRESS-STRAIN LAW
  4136. C
  4137.       DO 75 K=1,2
  4138.       L=5-K
  4139.       M=L+1
  4140.       DN=1./DP(M,M)
  4141.       DO 75 I=1,L
  4142.       DL=DN*DP(I,M)
  4143.       DO 70 J=I,L
  4144.    70 DP(I,J)=DP(I,J) - DL*DP(J,M)
  4145.    75 CONTINUE
  4146.       DP(2,1)=DP(1,2)
  4147.       DP(3,1)=DP(1,3)
  4148.       DP(3,2)=DP(2,3)
  4149. C
  4150.       RETURN
  4151. C
  4152. C
  4153.       END
  4154. C *CDC* *DECK NODCOS
  4155. C *UNI* )FOR,IS N.NODCOS,R.NODCOS
  4156.       SUBROUTINE NODCOS (XX,CENTER,DM,VECT)
  4157. C
  4158. C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
  4159. C .   PROGRAM                                                         .
  4160. C .      . TO CALCULATE DIRECTION COSINES AT NODAL POINTS             .
  4161. C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
  4162. C
  4163. C     THE ELEMENT IS ASSUMED TO LIE IN A PLANE,
  4164. C     WITH THE T-DIRECTION PERPENDICULAR TO IT.
  4165. C
  4166. C     DM=(RX,RY,RZ, SX,SY,SZ, TX,TY,TZ)
  4167. C
  4168.       IMPLICIT REAL*8 (A-H,O-Z)
  4169.       COMMON /ESHAPE/ H(4),HR(4),DEPH,WIDH,DSH,WTH
  4170.       COMMON /ISOBMS/ NEL,IELD,ND,KDOF,IDIM,ISTIF,IPT,JPT,IPST
  4171.       COMMON /PIE/ PI,TOPI,DEGRAD,RADEG
  4172. C
  4173.       DIMENSION XX(1),CENTER(3),DM(9,1),VECT(3)
  4174.       DIMENSION RNODE(12),VEC(3)
  4175. C
  4176.       DATA RNODE/-1., 1., 2*0.,  -1., 1., .5, 0.,
  4177.      1           -1., 1., -.3333333333333D0, .3333333333333D0/
  4178. C
  4179. C
  4180. C
  4181. C
  4182. C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
  4183. C .   LAGRANGE INTERPOLATION OF GEOMETRY  (GENERAL CASE)              .
  4184. C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
  4185. C
  4186. C     DETERMINE TANGENT AT ALL NODES (S=0., T=0.)
  4187. C
  4188.       L=4*(IELD-2)
  4189.       DO 200 I=1,IELD
  4190.       L=L+1
  4191.       RN=RNODE(L)
  4192.       CALL SHAPES (H,HR,IELD,RN)
  4193.       XR=0.
  4194.       YR=0.
  4195.       ZR=0.
  4196.       K=0
  4197.       DO 100 J=1,IELD
  4198.       XR=XR + HR(J)*XX(K+1)
  4199.       YR=YR + HR(J)*XX(K+2)
  4200.       ZR=ZR + HR(J)*XX(K+3)
  4201.   100 K=K+3
  4202. C
  4203.       DS=DSQRT(XR**2 + YR**2 + ZR**2)
  4204.       DM(1,I)=XR/DS
  4205.       DM(2,I)=YR/DS
  4206.       DM(3,I)=ZR/DS
  4207. C
  4208.   200 CONTINUE
  4209. C
  4210. C
  4211. C     FIND T-DIRECTION  (COMMON TO ALL NODES)
  4212. C
  4213. C     USER DETERMINES PLANE OF ELEMENT VIA AUXILIARY NODE (ICD).
  4214. C     R AND S DIRECTIONS LIE IN PLANE OF ELEMENT.
  4215. C     T DIRECTION IS PERPENDICULAR TO THIS PLANE.
  4216. C
  4217.       DO 250 I=1,3
  4218.       VEC(I)=CENTER(I) - XX(I)
  4219.   250 CONTINUE
  4220.       CALL CROSS (DM,VEC,VECT)
  4221.       DS=0.
  4222.       DO 260 I=1,3
  4223.   260 DS=DS + VECT(I)**2
  4224.       DS=DSQRT(DS)
  4225.       IF (DS.LT.1.0D-08) GO TO 600
  4226.       DO 270 I=1,3
  4227.   270 VECT(I)=VECT(I)/DS
  4228. C
  4229. C
  4230.       DO 300 I=1,IELD
  4231.       DM(7,I)=VECT(1)
  4232.       DM(8,I)=VECT(2)
  4233.       DM(9,I)=VECT(3)
  4234.       CALL CROSS (DM(7,I),DM(1,I),DM(4,I))
  4235.   300 CONTINUE
  4236. C
  4237.       RETURN
  4238. C
  4239. C     E R R O R   M E S S A G E
  4240. C
  4241.   600 IL=3*IELD
  4242.       WRITE (6,2000) NEL,IELD,(XX(I),I=1,IL)
  4243.       WRITE (6,2010) (CENTER(I),I=1,3)
  4244.       WRITE (6,2020) (DM(I,1),I=1,3)
  4245.       WRITE (6,2030) VEC
  4246.       WRITE (6,2040)
  4247.       STOP
  4248. C
  4249. C
  4250.  2000 FORMAT (///16H *** E R R O R -//
  4251.      1        43H DETECTED BY SUBROUTINE NODCOS   (ISO/BEAM)   /
  4252.      2        49H WHILE CALCULATING DIRECTION COSINES OF NORMAL TO,
  4253.      3        14H ELEMENT PLANE//
  4254.      4        17H ELEMENT NUMBER =,I5/
  4255.      5        17H NUMBER OF NODES=,I5//
  4256.      6        44H ELEMENT NODAL COORDINATES ARE GIVEN BELOW -//
  4257.      7        1X,14X,1HX,14X,1HY,14X,1HZ//(1X,3E15.6))
  4258.  2010 FORMAT (// 36H COORDINATES OF AUXILIARY NODE ARE -//(1X,3E15.6))
  4259.  2020 FORMAT (// 48H THE TANGENT AT NODE 1 HAS THE DIRECTION COSINES,
  4260.      1        3E14.6,2H .)
  4261.  2030 FORMAT (// 51H THIS TANGENT IS PARALLEL TO THE VECTOR FROM NODE 1/
  4262.      2        45H TO THE AUXILIARY NODE (DIRECTION COSINES ARE,
  4263.      3        3E14.6,3H ).)
  4264.  2040 FORMAT (// 43H HENCE, THE CROSS PRODUCT CANNOT BE USED TO,
  4265.      1        53H DETERMINE THE T-DIRECTION (NORMAL TO ELEMENT PLANE)./
  4266.      2        46H USER SHOULD DESIGNATE A DIFFERENT NODE AS THE,
  4267.      3        16H AUXILIARY NODE.///12H *** S T O P)
  4268. C
  4269.       END
  4270. C *CDC* *DECK NEWCOS
  4271. C *UNI* )FOR,IS N.NEWCOS,R.NEWCOS
  4272.       SUBROUTINE NEWCOS(EULER,ROTOLD,EDIS,INDNL)
  4273. C
  4274. C     PROGRAM
  4275. C        . TO FIND THE DIRECTION COSINES AT TIME (T+DT),
  4276. C          GIVEN DIRECTION COSINES AT TIME T (DCOLD) AND
  4277. C          INCREMENTAL ROTATIONS (ROTIN)
  4278. C
  4279. C     THIS ROUTINE ASSUMES THAT ANGULAR VELOCITY IS
  4280. C     CONSTANT IN THE INTERVAL (DT).
  4281. C
  4282.       IMPLICIT REAL*8 (A-H,O-Z)
  4283.       COMMON /ISOBMS/ NEL,IELD,ND,KDOF,IDIM,ISTIF,IPT,JPT,IPST
  4284.       COMMON /ELBEL/ EDIT(36),ROTIN(12),RE(26),STRESS(3),
  4285.      1                STRAIN(3),CM(3,3),ESIG,IPELT
  4286.       COMMON /JUNKEL/ XJI(9),DMINT(36),DMT(36),VECS(3),DC(9),
  4287.      1                B(3,26),BS(9,26)
  4288. C
  4289.       DIMENSION EULER(1),ROTOLD(1)
  4290.       DIMENSION EDIS(1)
  4291.       DIMENSION A(3),AA(9),DMOLD(9)
  4292. C
  4293.       IF (INDNL.EQ.2) GO TO 15
  4294. C
  4295.       K=0
  4296.       DO 10 I=1,IELD
  4297.       DO 10 J=1,9
  4298.       K=K+1
  4299.    10 DMT(K)=DMINT(K)
  4300. C
  4301.       RETURN
  4302. C
  4303. C
  4304.    15 K =0
  4305.       L =0
  4306.       KK=0
  4307.       DO 30 I=1,IELD
  4308.       DO 20 J=1,3
  4309.       K=K+1
  4310.       KK=KK+1
  4311.    20 EDIT(K)=EDIS(KK)
  4312.       K=K+6
  4313.       DO 25 J=1,3
  4314.       L=L+1
  4315.       KK=KK+1
  4316.    25 ROTIN(L)=EDIS(KK) - ROTOLD(L)
  4317.    30 CONTINUE
  4318. C
  4319. C
  4320.       DO 100 I=1,IELD
  4321. C
  4322.       L=3*(I-1)
  4323.       CALL DIRCEL (EULER(L+1),EULER(L+2),EULER(L+3),DMOLD)
  4324. C
  4325.       ROTS=ROTIN(L+1)**2 + ROTIN(L+2)**2 + ROTIN(L+3)**2
  4326.       ROT =DSQRT(ROTS)
  4327.       IF (ROT) 45,35,45
  4328. C
  4329.    35 KK=9*(I-1)
  4330.       DO 40 J=1,9
  4331.       KK=KK+1
  4332.    40 DMT(KK)=DMOLD(J)
  4333.       GO TO 80
  4334. C
  4335. C
  4336.    45 CB=DSIN(ROT)/ROT
  4337.       CC=(1.-DCOS(ROT))/ROTS
  4338. C
  4339.       A(1)=CB*ROTIN(L+1)
  4340.       A(2)=CB*ROTIN(L+2)
  4341.       A(3)=CB*ROTIN(L+3)
  4342. C
  4343.       AA(1)=CC*(ROTIN(L+2)**2 + ROTIN(L+3)**2)
  4344.       AA(2)=CC*(ROTIN(L+1)*ROTIN(L+2))
  4345.       AA(3)=CC*(ROTIN(L+1)*ROTIN(L+3))
  4346.       AA(4)=AA(2)
  4347.       AA(5)=CC*(ROTIN(L+1)**2 + ROTIN(L+3)**2)
  4348.       AA(6)=CC*(ROTIN(L+2)*ROTIN(L+3))
  4349.       AA(7)=AA(3)
  4350.       AA(8)=AA(6)
  4351.       AA(9)=CC*(ROTIN(L+1)**2 + ROTIN(L+2)**2)
  4352. C
  4353.       AA(1)=1. - AA(1)
  4354.       AA(2)=     AA(2) - A(3)
  4355.       AA(3)=     AA(3) + A(2)
  4356.       AA(4)=     AA(4) + A(3)
  4357.       AA(5)=1. - AA(5)
  4358.       AA(6)=     AA(6) - A(1)
  4359.       AA(7)=     AA(7) - A(2)
  4360.       AA(8)=     AA(8) + A(1)
  4361.       AA(9)=1. - AA(9)
  4362. C
  4363. C
  4364.       J=9*(I-1)
  4365.       DO 75 II=1,3
  4366.       LL=3*(II-1)
  4367.       K =0
  4368.       DO 60 JJ=1,3
  4369.       J=J+1
  4370.       DMT(J)=0.
  4371.       L=LL
  4372.       DO 50 KK=1,3
  4373.       K=K+1
  4374.       L=L+1
  4375.    50 DMT(J)=DMT(J) + AA(K)*DMOLD(L)
  4376.    60 CONTINUE
  4377.    75 CONTINUE
  4378. C
  4379. C     SET UP THE EDIT MATRIX
  4380. C
  4381.    80 K=9*(I-1)+3
  4382.       DO 90 J=1,6
  4383.       K=K+1
  4384.    90 EDIT(K)=DMT(K) - DMINT(K)
  4385. C
  4386.   100 CONTINUE
  4387. C
  4388. C
  4389.       RETURN
  4390. C
  4391. C
  4392.       END
  4393. C *CDC* *DECK FEULER
  4394. C *UNI* )FOR,IS N.FEULER,R.FEULER
  4395.       SUBROUTINE FEULER (DM,EULER,IELD)
  4396. C
  4397. C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
  4398. C .   PROGRAM                                                         .
  4399. C .      . GIVEN THE DIRECTION COSINES, FIND THE EULER ANGLES         .
  4400. C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
  4401. C
  4402.       IMPLICIT REAL*8 (A-H,O-Z)
  4403.       COMMON /PIE/ PI,TOPI,DEGRAD,RADEG
  4404.       DIMENSION DM(9,1),EULER(3,1)
  4405. C
  4406.       DATA SBMAX /.9999999999D0/
  4407. C
  4408.       DO 100 I=1,IELD
  4409.       SB=DM(7,I)
  4410.       IF (DABS(SB).GT.SBMAX) GO TO 60
  4411.       CB=DSQRT(1.D0-SB*SB)
  4412.       BETA=DATAN2(SB,CB)
  4413.       IF (BETA.GT.PI) BETA=BETA - 2.D0*PI
  4414. C
  4415.       CBM=-CB
  4416. C
  4417.       SA=DM(8,I)/CBM
  4418.       CA=DM(9,I)/CB
  4419.       ALFA=DATAN2(SA,CA)
  4420. C
  4421.       SG=DM(4,I)/CBM
  4422.       CG=DM(1,I)/CB
  4423.       GAMMA=DATAN2(SG,CG)
  4424. C
  4425.       EULER(1,I)=ALFA
  4426.       EULER(2,I)=BETA
  4427.       EULER(3,I)=GAMMA
  4428. C
  4429.       GO TO 100
  4430. C
  4431. C
  4432. C     PHI=ALFA (+ OR -) GAMMA
  4433. C
  4434.    60 PHI=DATAN2(DM(6,I),DM(5,I))
  4435.       EULER(1,I)=PHI
  4436.       EULER(2,I)=PI/2.
  4437.       IF (SB.LT.0.) EULER(2,I)=-(PI/2.)
  4438.       EULER(3,I)=0.
  4439. C
  4440. C
  4441.   100 CONTINUE
  4442. C
  4443.       RETURN
  4444. C
  4445. C
  4446.       END
  4447. C *CDC* *DECK DIRCEL
  4448. C *UNI* )FOR,IS N.DIRCEL,R.DIRCEL
  4449.       SUBROUTINE DIRCEL (ALFA,BETA,GAMMA,DM)
  4450. C
  4451. C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
  4452. C .   PROGRAM                                                         .
  4453. C .      . GIVEN EULER ANGLES, FIND THE DIRECTION COSINES             .
  4454. C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
  4455. C
  4456.       IMPLICIT REAL*8 (A-H,O-Z)
  4457.       DIMENSION DM(1)
  4458. C
  4459.       DATA SBMAX /.9999999999D0/
  4460. C
  4461.       SA=DSIN(ALFA)
  4462.       CA=DCOS(ALFA)
  4463.       SB=DSIN(BETA)
  4464.       IF (DABS(SB).GT.SBMAX) GO TO 60
  4465.       CB=DCOS(BETA)
  4466.       SG=DSIN(GAMMA)
  4467.       CG=DCOS(GAMMA)
  4468. C
  4469.       CBM=-CB
  4470.       DUMA=SA*SB
  4471.       DUMB=CA*SB
  4472. C
  4473.       DM(1)=CG*CB
  4474.       DM(2)=CG*DUMA + SG*CA
  4475.       DM(3)=SA*SG - CG*DUMB
  4476. C
  4477.       DM(4)=SG*CBM
  4478.       DM(5)=CA*CG - SG*DUMA
  4479.       DM(6)=SA*CG + SG*DUMB
  4480. C
  4481.       DM(7)=SB
  4482.       DM(8)=SA*CBM
  4483.       DM(9)=CA*CB
  4484. C
  4485.       RETURN
  4486. C
  4487. C
  4488.    60 SN=1.
  4489.       IF (SB.LT.0.) SN=-1.
  4490.       DM(1)=0.
  4491.       DM(2)=SN*SA
  4492.       DM(3)=(-SN)*CA
  4493.       DM(4)=0.
  4494.       DM(5)=CA
  4495.       DM(6)=SA
  4496.       DM(7)=SN
  4497.       DM(8)=0.
  4498.       DM(9)=0.
  4499. C
  4500.       RETURN
  4501. C
  4502. C
  4503.       END
  4504. C *CDC* *DECK IPTCOS
  4505. C *UNI* )FOR,IS N.IPTCOS,R.IPTCOS
  4506.       SUBROUTINE IPTCOS (XX,DM,VECT,XJI,DET,DC)
  4507. C
  4508. C     PROGRAM
  4509. C        . TO CALCULATE THE JACOBIAN (XJ) AND ITS INVERSE (XJI)
  4510. C        . TO CALCULATE THE DIRECTION COSINES
  4511. C          AT AN INTEGRATION POINT
  4512. C
  4513.       IMPLICIT REAL*8 (A-H,O-Z)
  4514.       COMMON /VAR/   NG,MODEX,IUPDT,KSTEP,ITEMAX,IEQREF,ITE,KPRI,IREF,
  4515.      1               IEQUIT,IPRI,KPLOTN,KPLOTE
  4516.       COMMON /ISOBMS/ NEL,IELD,ND,KDOF,IDIM,ISTIF,IPT,JPT,IPST
  4517.       COMMON /ESHAPE/ H(4),HR(4),DEPH,WIDH,DSH,WTH
  4518. C
  4519.       DIMENSION XJ(9)
  4520.       DIMENSION XX(1),DM(1),VECT(3),XJI(9),DC(9)
  4521. C
  4522. C     DM = DIRECTION COSINES AT NODAL POINTS
  4523. C     DC = DIRECTION COSINES AT INTEGRATION POINT (OF NORMAL)
  4524. C
  4525. C     STORAGE
  4526. C     XJ = (XR,XS,XT, YR,YS,YT, ZR,ZS,ZT)
  4527. C     DC = (RX,RY,RZ, SX,SY,SZ, TX,TY,TZ)
  4528. C
  4529. C
  4530. C     XJ(3,3) IS THE JACOBIAN.
  4531. C
  4532. C
  4533.       DO 100 L=1,9
  4534.   100 XJ(L)=0.
  4535. C
  4536.       J=0
  4537.       K=-3
  4538.       DO 300 I=1,IELD
  4539.       HI=H(I)
  4540.       HRI=HR(I)
  4541.       K=K+6
  4542.       L=0
  4543.       DO 250 LL=1,3
  4544.       K=K+1
  4545.       CS=DM(K)
  4546.       CT=DM(K+3)
  4547. C
  4548.       J=J+1
  4549.       L=L+1
  4550.       XJ(L)=XJ(L) + HRI * (XX(J) + DSH*CS + WTH*CT)
  4551.       L=L+1
  4552.       XJ(L)=XJ(L) + HI*CS
  4553.       L=L+1
  4554.       XJ(L)=XJ(L) + HI*CT
  4555. C
  4556.   250 CONTINUE
  4557.   300 CONTINUE
  4558. C
  4559.       L=0
  4560.       DO 350 LL=1,3
  4561.       L=L+2
  4562.       XJ(L)=DEPH*XJ(L)
  4563.       L=L+1
  4564.       XJ(L)=WIDH*XJ(L)
  4565.   350 CONTINUE
  4566. C
  4567. C
  4568.       XJI(1)=XJ(5)*XJ(9) - XJ(6)*XJ(8)
  4569.       XJI(2)=XJ(3)*XJ(8) - XJ(2)*XJ(9)
  4570.       XJI(3)=XJ(2)*XJ(6) - XJ(3)*XJ(5)
  4571.       XJI(4)=XJ(6)*XJ(7) - XJ(4)*XJ(9)
  4572.       XJI(5)=XJ(1)*XJ(9) - XJ(3)*XJ(7)
  4573.       XJI(6)=XJ(3)*XJ(4) - XJ(1)*XJ(6)
  4574.       XJI(7)=XJ(4)*XJ(8) - XJ(5)*XJ(7)
  4575.       XJI(8)=XJ(7)*XJ(2) - XJ(1)*XJ(8)
  4576.       XJI(9)=XJ(1)*XJ(5) - XJ(2)*XJ(4)
  4577. C
  4578.       DET=XJ(1)*XJI(1) + XJ(4)*XJI(2) + XJ(7)*XJI(3)
  4579.       IF (DET .LE. 1.0D-08) GO TO 600
  4580. C
  4581.       DETIN=1./DET
  4582. C
  4583.       DO 400 I=1,9
  4584.       XJI(I)=DETIN*XJI(I)
  4585.   400 CONTINUE
  4586. C
  4587. C
  4588. C     COLUMN 3 - T DIRECTION  (COMMON TO ALL)
  4589. C
  4590.       DC(7)=VECT(1)
  4591.       DC(8)=VECT(2)
  4592.       DC(9)=VECT(3)
  4593. C
  4594. C
  4595. C     COLUMN 1 - R DIRECTION
  4596. C
  4597.       DN=DSQRT(XJ(1)**2 + XJ(4)**2 + XJ(7)**2)
  4598. C
  4599.       DC(1)=XJ(1)/DN
  4600.       DC(2)=XJ(4)/DN
  4601.       DC(3)=XJ(7)/DN
  4602. C
  4603. C     COLUMN 2 - S DIRECTION
  4604. C
  4605.       CALL CROSS (DC(7),DC(1),DC(4))
  4606. C
  4607.       RETURN
  4608. C
  4609. C
  4610. C
  4611.   600 WRITE (6,2000) NG,NEL,DET
  4612.       WRITE (6,2100)
  4613.       DO 650 I=1,IELD
  4614.       KI=3*(I-1)+1
  4615.       KJ=KI+2
  4616.       WRITE (6,2150) I,(XX(K),K=KI,KJ)
  4617.   650 CONTINUE
  4618.       WRITE (6,2200)
  4619.       STOP
  4620. C
  4621. C
  4622.  2000 FORMAT (////14H *** ERROR ***/18H ELEMENT GROUP NO.,I5/
  4623.      1        43H DETECTED BY SUBROUTINE IPTCOS  (ISO/BEAM)    //
  4624.      2        28H ZERO JACOBIAN DETERMINANT -/
  4625.      3        5X,17H ELEMENT NUMBER =,I3/
  4626.      4        5X,6H DET =,E14.6)
  4627.  2100 FORMAT (//44H ELEMENT NODAL COORDINATES ARE GIVEN BELOW -//
  4628.      1        5X,6H LOCAL/5X,6H  NODE,15X,1HX,15X,1HY,15X,1HZ/)
  4629.  2150 FORMAT (I10,1X,3E16.6)
  4630.  2200 FORMAT (//42H CHECK NODE NUMBERS AND NODAL COORDINATES.///
  4631.      1        12H *** S T O P)
  4632. C
  4633.       END
  4634. C *CDC* *DECK BLNODE
  4635. C *UNI* )FOR,IS N.BLNODE,R.BLNODE
  4636.       SUBROUTINE BLNODE(B,BS,DMT,RITZ)
  4637. C
  4638. C     PROGRAM
  4639. C        . TO CALCULATE THE B- AND BS-MATRICES
  4640. C
  4641. C     DOF = (U,V,W, DSX,DSY,DSZ, DTX,DTY,DTZ)
  4642. C
  4643.       IMPLICIT REAL*8 (A-H,O-Z)
  4644.       COMMON /ISOBMS/ NEL,IELD,ND,KDOF,IDIM,ISTIF,IPT,JPT,IPST
  4645.       COMMON /EL/ IND,ICOUNT,NPAR(20),NUMEG,NEGL,NEGNL,IMASS,IDAMP,
  4646.      1            ISTAT,NDOF,KLIN,IEIG,IMASSN,IDAMPN
  4647. C
  4648.       COMMON /ESHAPE/ H(4),HR(4),DEPH,WIDH,DSH,WTH
  4649.       COMMON /ELBEL/ EDIT(36),ROTIN(12),RE(26),STRESS(3),
  4650.      1                STRAIN(3),CM(3,3),ESIG,IPELT
  4651.       COMMON /JUNKEL/ XJI(9),DMINT(36),ADMT(36),VECS(3),DC(9),
  4652.      1                AB(3,26),ASB(9,26)
  4653. C
  4654.       EQUIVALENCE (NPAR(3),INDNL)
  4655. C
  4656. C
  4657.       DIMENSION B(3,1),BS(9,1),DMT(9,1)
  4658.       DIMENSION AT(3,5),AXYZ(3),BD(9,38),BT(3,38),DISD(9)
  4659.       DIMENSION RITZ(1)
  4660. C
  4661. C     THE RITZ FUNCTIONS FOR TORSION ARE
  4662. C               1)     (BS)*(AT)
  4663. C               2)     ( (BS)**3 )*( (AT) ) - ( (BS) )*( (AT)**3 )
  4664. C
  4665. C
  4666.       KD=9*IELD
  4667.       KDOF=KD+2
  4668. C
  4669.       DO 50 J=1,KDOF
  4670.       DO 50 I=1,9
  4671.    50 BD(I,J) = 0.0
  4672. C
  4673.       D2 = 4.0*DSH*DSH
  4674.       W2 = 4.0*WTH*WTH
  4675.       DW2=D2-W2
  4676. C
  4677.       DO 100 I=1,IELD
  4678. C
  4679.       HI=H(I)
  4680.       HRI=HR(I)
  4681.       DR=DSH*HRI
  4682.       DH=DEPH*HI
  4683.       WR=WTH*HRI
  4684.       WH=WIDH*HI
  4685.       DO 180 J=1,5
  4686.       DO 180 K=1,3
  4687.   180 AT(K,J)=0.0
  4688. C
  4689.       AT(1,1) = HRI
  4690.       AT(1,2)=DR
  4691.       AT(1,3)=WR
  4692.       AT(1,4) = 4.0*DSH*AT(1,3)
  4693.       AT(1,5) = AT(1,4)*DW2
  4694. C
  4695.       AT(2,2)=DH
  4696.       AT(2,4) = 4.0*WTH*AT(2,2)
  4697.       AT(2,5) = AT(2,4)*(DW2+2.0*D2)
  4698. C
  4699.       AT(3,3)=WH
  4700.       AT(3,4)=4.0*DSH*AT(3,3)
  4701.       AT(3,5) = AT(3,4)*(DW2-2.0*W2)
  4702. C
  4703.       DO 195 K=1,5
  4704.       DO 185 J=1,3
  4705.       AXYZ(J) = XJI(J)*AT(1,K) + XJI(J+3)*AT(2,K) + XJI(J+6)*AT(3,K)
  4706.   185 CONTINUE
  4707. C
  4708. C     FOLLOWING AT MATRIX CONTAINS DERIVATIVES OF GLOBAL XYZ
  4709. C     DISPLACEMENTS WITH RESPECT TO NORAML N, AND S,T.
  4710. C
  4711.       L=0
  4712.       DO 190 J=1,7,3
  4713.       L=L+1
  4714.       AT(L,K) = DC(J)*AXYZ(1) + DC(J+1)*AXYZ(2) + DC(J+2)*AXYZ(3)
  4715.   190 CONTINUE
  4716. C
  4717.   195 CONTINUE
  4718. C
  4719. C     BD IS THE DISP DERIVATIVE (LOCAL DOF)
  4720. C
  4721. C     BD RELATES (U,V,W, DSX,DSY,DSZ, DTX,DTY,DTZ) - NODAL QUANTITIES
  4722. C     TO NORMAL DERIVATIVES OF NORMAL DISPLACEMENTS.
  4723. C
  4724. C     (DUN/DN,DUN/DS,DUN/DT, DUS/DN,DUS/DS,DUS/DT, DUT/DN,DUT/DS,DUT/DT)
  4725. C     WHERE UN,US,UT ARE THE NORMAL DISPLACEMENTS, AND
  4726. C     N IS THE NORMAL, S,T ARE THE OTHER DIRECTIONS.
  4727. C
  4728.       IST = 9*(I-1)
  4729.       DO 200 L=1,3
  4730.       LST = 3*(L-1)
  4731.       CONST = DC(LST+1)*DC(1) + DC(LST+2)*DC(2) + DC(LST+3)*DC(3)
  4732.       MUP=3
  4733.       IF (INDNL.NE.2 .AND. L.GT.1) MUP=1
  4734.       DO 205 M=1,MUP
  4735.       DO 210 J=1,3
  4736.       JST = IST + 3*(J-1)
  4737.       DO 210 K=1,3
  4738.       K1 = LST + K
  4739.       BD(LST+M,JST+K) = DC(K1)*AT(M,J)
  4740.   210 CONTINUE
  4741.       BD(LST+M , KD+1) = BD(LST+M , KD+1) + AT(M,4)*CONST
  4742.       BD(LST+M , KD+2) = BD(LST+M , KD+2) + AT(M,5)*CONST
  4743.   205 CONTINUE
  4744.   200 CONTINUE
  4745. C
  4746.   100 CONTINUE
  4747. C
  4748. C     CALCULATE THE BT MATRIX (B MATRIX IN LOCAL DOF)
  4749. C
  4750.       DO 120 K=1,KDOF
  4751.       BT(1,K)=BD(1,K)
  4752.       BT(2,K)=BD(2,K) + BD(4,K)
  4753.   120 BT(3,K)=BD(3,K) + BD(7,K)
  4754. C
  4755.       IF (INDNL.NE.2) GO TO 175
  4756. C
  4757. C     FOR TL, CALCULATE DISP DERIVATIVES AND STRAIN
  4758. C
  4759.       DO 135 J=1,9
  4760.       DISD(J)=0.
  4761.       DO 130 K=1,KD
  4762.       DISD(J)=DISD(J) + BD(J,K)*EDIT(K)
  4763.   130 CONTINUE
  4764.       DISD(J) = DISD(J) + BD(J,KD+1)*RITZ(1) + BD(J,KD+2)*RITZ(2)
  4765.   135 CONTINUE
  4766. C
  4767.       STRAIN(1)=DISD(1) + .5 * (DISD(1)**2 + DISD(4)**2 + DISD(7)**2)
  4768.       STRAIN(2)=DISD(2) + DISD(4) + DISD(1)*DISD(2) + DISD(4)*DISD(5)
  4769.      1                            + DISD(7)*DISD(8)
  4770.       STRAIN(3)=DISD(3) + DISD(7) + DISD(1)*DISD(3) + DISD(4)*DISD(6)
  4771.      1                            + DISD(7)*DISD(9)
  4772. C
  4773. C     ADD INITIAL STRAIN EFFECT
  4774. C
  4775.       DO 160 K=1,KDOF
  4776.       BT(1,K)=BT(1,K) + DISD(1)*BD(1,K) + DISD(4)*BD(4,K)
  4777.      1                + DISD(7)*BD(7,K)
  4778.       BT(2,K)=BT(2,K) + DISD(2)*BD(1,K) + DISD(1)*BD(2,K)
  4779.      1                + DISD(5)*BD(4,K) + DISD(4)*BD(5,K)
  4780.      2                + DISD(8)*BD(7,K) + DISD(7)*BD(8,K)
  4781.       BT(3,K)=BT(3,K) + DISD(3)*BD(1,K) + DISD(1)*BD(3,K)
  4782.      1                + DISD(6)*BD(4,K) + DISD(4)*BD(6,K)
  4783.      2                + DISD(9)*BD(7,K) + DISD(7)*BD(9,K)
  4784.   160 CONTINUE
  4785. C
  4786.   175 CALL CEPDIS (B,BT,DMT,IELD,3)
  4787. C
  4788.       IF (ISTIF.EQ.0) RETURN
  4789.       IF (INDNL.NE.2) RETURN
  4790. C
  4791. C
  4792. C     CALCULATE INITIAL STRESS MATRIX BS
  4793. C
  4794.       CALL CEPDIS (BS,BD,DMT,IELD,9)
  4795. C
  4796.       RETURN
  4797. C
  4798. C
  4799.       END
  4800. C *CDC* *DECK CEPDIS
  4801. C *UNI* )FOR,IS N.CEPDIS,R.CEPDIS
  4802.       SUBROUTINE CEPDIS (B,A,DMT,IELD,IROW)
  4803. C
  4804.       IMPLICIT REAL*8 (A-H,O-Z)
  4805.       DIMENSION B(1),A(1),DMT(9,1)
  4806. C
  4807. C
  4808.       KD=0
  4809.       KS=0
  4810.       DO 50 I=1,IELD
  4811. C
  4812.       DO 20 L=1,3
  4813.       DO 20 M=1,IROW
  4814.       KS=KS+1
  4815.       KD=KD+1
  4816.    20 B(KS)=A(KD)
  4817. C
  4818.       SX=DMT(4,I)
  4819.       SY=DMT(5,I)
  4820.       SZ=DMT(6,I)
  4821.       TX=DMT(7,I)
  4822.       TY=DMT(8,I)
  4823.       TZ=DMT(9,I)
  4824. C
  4825.       DO 30 M=1,IROW
  4826. C
  4827.       K1=KD+M
  4828.       K2=K1+IROW
  4829.       K3=K2+IROW
  4830.       K4=K3+IROW
  4831.       K5=K4+IROW
  4832.       K6=K5+IROW
  4833. C
  4834.       KT=KS+M
  4835.       B(KT)=A(K3)*SY - A(K2)*SZ + A(K6)*TY - A(K5)*TZ
  4836. C
  4837.       KT=KT+IROW
  4838.       B(KT)=A(K1)*SZ - A(K3)*SX + A(K4)*TZ - A(K6)*TX
  4839. C
  4840.       KT=KT+IROW
  4841.       B(KT)=A(K2)*SX - A(K1)*SY + A(K5)*TX - A(K4)*TY
  4842. C
  4843.    30 CONTINUE
  4844. C
  4845.       KD=K6
  4846.       KS=KT
  4847. C
  4848.    50 CONTINUE
  4849. C
  4850. C     TO INCLUDE THE EFFECT OF TORSION RITZ FUNCTIONS
  4851. C
  4852.       DO 60 L=1,2
  4853.       DO 60 M=1,IROW
  4854.       KS=KS+1
  4855.       KD=KD+1
  4856.    60 B(KS)=A(KD)
  4857. C
  4858.       RETURN
  4859. C
  4860. C
  4861.       END
  4862. C *CDC* *DECK ELSTF
  4863. C *UNI* )FOR,IS N.ELSTF,R.ELSTF
  4864.       SUBROUTINE ELSTF (AS,B,PROP,FACT,ND,IFLAG)
  4865. C
  4866. C     PROGRAM
  4867. C        . TO CALCULATE THE STIFFNESS MATRIX
  4868. C          FOR ELASTIC MATERIAL LAW
  4869. C
  4870.       IMPLICIT REAL*8 (A-H,O-Z)
  4871.       DIMENSION B(1),PROP(1)
  4872.       DIMENSION AS(26,26)
  4873. C
  4874.       EFACT=FACT*PROP(1)
  4875.       GFACT=FACT*PROP(2)
  4876. C
  4877.       NDA = ND+2
  4878.       K=-2
  4879.       DO 120 I=1,NDA
  4880.       K=K+3
  4881.       TEMP1=B(K  )*EFACT
  4882.       TEMP2=B(K+1)*GFACT
  4883.       TEMP3=B(K+2)*GFACT
  4884. C
  4885.       IF (IFLAG.EQ.2) GO TO 100
  4886.       M=K-3
  4887.       IJ=I
  4888.       GO TO 105
  4889. C
  4890.   100 M=3*ND-2
  4891.       IJ=ND+1
  4892. C
  4893.   105 DO 110 J=IJ,NDA
  4894.       M=M+3
  4895.   110 AS(I,J) = AS(I,J) + TEMP1*B(M) + TEMP2*B(M+1) + TEMP3*B(M+2)
  4896. C
  4897.   120 CONTINUE
  4898. C
  4899.       RETURN
  4900. C
  4901. C
  4902.       END
  4903. C *CDC* *DECK MATSTF
  4904. C *UNI* )FOR,IS N.MATSTF,R.MATSTF
  4905.       SUBROUTINE MATSTF (AS,BP,CP,FACT,ND)
  4906. C
  4907. C     PROGRAM
  4908. C        . TO CALCULATE THE STIFFNESS MATRIX
  4909. C          FOR A FULL MATERIAL MATRIX (PLASTIC STATE)
  4910. C
  4911.       IMPLICIT REAL*8 (A-H,O-Z)
  4912.       DIMENSION CP(1),BP(1)
  4913.       DIMENSION AS(26,26),DP(9)
  4914. C
  4915.       DO 20 I=1,9
  4916.    20 DP(I)=FACT*CP(I)
  4917. C
  4918.       NDA=ND+2
  4919.       K1=-2
  4920.       DO 50 I=1,NDA
  4921.       M1=K1
  4922.       K1=K1+3
  4923.       K2=K1+1
  4924.       K3=K2+1
  4925.       TEMP1=BP(K1)*DP(1) + BP(K2)*DP(2) + BP(K3)*DP(3)
  4926.       TEMP2=BP(K1)*DP(4) + BP(K2)*DP(5) + BP(K3)*DP(6)
  4927.       TEMP3=BP(K1)*DP(7) + BP(K2)*DP(8) + BP(K3)*DP(9)
  4928.       DO 40 J=I,NDA
  4929.       M1=M1+3
  4930.    40 AS(I,J) = AS(I,J) + TEMP1*BP(M1) + TEMP2*BP(M1+1) + TEMP3*BP(M1+2)
  4931.    50 CONTINUE
  4932. C
  4933.       RETURN
  4934. C
  4935. C
  4936.       END
  4937. C *CDC* *DECK SIGSTF
  4938. C *UNI* )FOR,IS N.SHAPES,R.SHAPES
  4939.       SUBROUTINE SIGSTF (AS,BS,STRESS,FACT,ND)
  4940. C
  4941. C     PROGRAM TO CALCULATE THE GEOMETRIC STIFFNESS MATRIX
  4942. C
  4943.       IMPLICIT REAL*8 (A-H,O-Z)
  4944.       DIMENSION BS(9,1),STRESS(1)
  4945.       DIMENSION AS(26,26)
  4946.       DIMENSION SIG(3),TEMP(9)
  4947. C
  4948.       DO 10 I=1,3
  4949.    10 SIG(I)=FACT*STRESS(I)
  4950. C
  4951.       NDA=ND+2
  4952.       DO 50 I=1,NDA
  4953.       KA=-2
  4954.       DO 20 M=1,3
  4955.       KA=KA+3
  4956.       KB=KA+1
  4957.       KC=KA+2
  4958.       TEMP(KA)=BS(KA,I)*SIG(1) + BS(KB,I)*SIG(2) + BS(KC,I)*SIG(3)
  4959.       TEMP(KB)=BS(KA,I)*SIG(2)
  4960.       TEMP(KC)=BS(KA,I)*SIG(3)
  4961.    20 CONTINUE
  4962. C
  4963.       DO 40 J=I,NDA
  4964.       DO 30 M=1,9
  4965.    30 AS(I,J) = AS(I,J) + TEMP(M)*BS(M,J)
  4966.    40 CONTINUE
  4967. C
  4968.    50 CONTINUE
  4969. C
  4970.       RETURN
  4971. C
  4972. C
  4973.       END
  4974. C *CDC* *DECK SHAPES
  4975. C *UNI* )FOR,IS N.SIGSTF,R.SIGSTF
  4976.       SUBROUTINE SHAPES (H,HR,IELD,R)
  4977. C
  4978. C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
  4979. C .   P R O G R A M                                                   .
  4980. C .       . TO CALCULATE INTERPOLATION FUNCTIONS, AND THEIR           .
  4981. C .         DERIVATIVES FOR VARIABLE NODE CURVED TIMOSHENKO BEAM      .
  4982. C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
  4983. C
  4984. C
  4985.       IMPLICIT REAL*8 (A-H,O-Z)
  4986.       DIMENSION H(4),HR(4)
  4987. C
  4988. C
  4989.       GO TO (10,20,30,40), IELD
  4990. C
  4991.    10 STOP
  4992. C
  4993. C
  4994.    20 H(1)=.5*(1.-R)
  4995.       H(2)=.5*(1.+R)
  4996.       HR(1)=-.5
  4997.       HR(2)= .5
  4998. C
  4999.       GO TO 100
  5000. C
  5001. C
  5002.    30 RR=R*R
  5003. C
  5004.       H(1)=(-.5)*(R-RR)
  5005.       H(2)=( .5)*(R+RR)
  5006.       H(3)=(1.-RR)
  5007. C
  5008.       HR(1)=(-.5)+R
  5009.       HR(2)=( .5)+R
  5010.       HR(3)=(-2.)*R
  5011. C
  5012.       GO TO 100
  5013. C
  5014. C
  5015.    40 TR=3.*R
  5016.       R1=TR+3.
  5017.       R2=TR-3.
  5018.       R3=TR+1.
  5019.       R4=TR-1.
  5020. C
  5021.       H(1)=(R2*R3*R4) / (-48.)
  5022.       H(2)=(R1*R3*R4) / ( 48.)
  5023.       H(3)=(R1*R2*R4) / ( 16.)
  5024.       H(4)=(R1*R2*R3) / (-16.)
  5025. C
  5026.       HR(1)=(-.0625) * (R3*R4 + R2*R4 + R2*R3)
  5027.       HR(2)=( .0625) * (R3*R4 + R1*R4 + R1*R3)
  5028.       HR(3)=( .1875) * (R2*R4 + R1*R4 + R1*R2)
  5029.       HR(4)=(-.1875) * (R2*R3 + R1*R3 + R1*R2)
  5030. C
  5031. C
  5032.   100 RETURN
  5033. C
  5034. C
  5035.       END
  5036. C *CDC* *DECK,OVL70
  5037. C *CDC*       OVERLAY (ADINA,7,0)
  5038. C *CDC* *DECK,PLATE
  5039. C *UNI* )FOR,IS  N.PLATE,  R.PLATE
  5040. C *CDC*       PROGRAM PLATE
  5041.       SUBROUTINE PLATE
  5042. C
  5043.       IMPLICIT REAL*8 (A-H,O-Z)
  5044. C
  5045. C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
  5046. C .                                                                   .
  5047. C .   M O D E L S                                                     .
  5048. C .                                                                   .
  5049. C .   MODEL = 1  LINEAR ISOTROPIC                                     .
  5050. C .           2  LINEAR ORTHOTROPIC                                   .
  5051. C .           3  ISOTROPIC ELASTIC-PLASTIC  (ILYUSHIN)                .
  5052. C .           4  EMPTY MODEL                                          .
  5053. C .                                                                   .
  5054. C .   S T O R A G E                                                   .
  5055. C .                                                                   .
  5056. C .      N101    DEN     MASS PER UNIT VOLUME                         .
  5057. C .      N102    LM      CONNECTIVITY                                 .
  5058. C .      N103    XYZ     ELEMENT NODAL COORDINATES                    .
  5059. C .      N104    MATP    MATERIAL PROPERTY SET NUMBER                 .
  5060. C .      N105    THICI   THICKNESS                                    .
  5061. C .      N106    IPS     STRESS PRINTING FLAG                         .
  5062. C .      N107    ETIMV   ELEMENT EXPIRY TIME ARRAY (FOR IDEATH.NE.0)  .
  5063. C .      N108    EDISB   ELEMENT BIRTH NODAL COOR  (FOR IDEATH.EQ.1)  .
  5064. C .      N109    PROP    MATERIAL CONSTANTS                           .
  5065. C .      N110    WA      WORKING ARRAY                                .
  5066. C .      N111    ITABLE  STRESS OUTPUT LOCATION TABLES                .
  5067. C .      N112    ISKEW   SKEW COORDINATES FLAG     (FOR NEGSKS.GT.0)  .
  5068. C .      N113    BETA    ARRAY FOR ORTHOTROPIC PROPERTY DIRECTIONS    .
  5069. C .      N114    PDIS    ARRAY FOR DISPLACEMENTS AT PREVIOUS TIME     .
  5070. C .                      STEP  (FOR NONLINEAR ANALYSIS ONLY)          .
  5071. C .      N121    ELM     ARRAY FOR ELEMENT MOMENTS AT INTEGRATION     .
  5072. C .                      POINTS  (FOR INDNL.EQ.2 .AND. MODEL.LT.3)    .
  5073. C .      NLAST   LAST ADDRESS REQUIRED                                .
  5074. C .                                                                   .
  5075. C .                                                                   .
  5076. C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
  5077. C
  5078. C
  5079. C
  5080.       COMMON /SOL/    NUMNP,NEQ,NWK,NWM,NWC,NUMEST,MIDEST,MAXEST,NSTE,MA
  5081.       COMMON /DIM/    N0,N1,N2,N3,N4,N5,N6,N7,N8,N9,N10,N11,N12,N13,N14,
  5082.      1                N15
  5083.       COMMON /DIMETC/ N01,N02,N03,N04,N05,N06,N07,N08,N09
  5084.       COMMON /FREQIF/ ISTOH,N1A,N1B,N1C
  5085.       COMMON /DIMEL/  N101,N102,N103,N104,N105,N106,N107,N108,N109,N110,
  5086.      1                N111,N112,N113,N114,N120,N121,N122,N123,N124,N125
  5087.       COMMON /EL/     IND,ICOUNT,NPAR(20),NUMEG,NEGL,NEGNL,IMASS,IDAMP,
  5088.      1                ISTAT,NDOF,KLIN,IEIG,IMASSN,IDAMPN
  5089.       COMMON /DPR/    ITWO
  5090.       COMMON /ELGLTH/ NFIRST,NLAST,NBCEL
  5091.       COMMON /VAR/    NG,MODEX,IUPDT,KSTEP,ITEMAX,IEQREF,ITE,KPRI,IREF,
  5092.      1                IEQUIT,IPRI,KPLOTN,KPLOTE
  5093.       COMMON /SKEW/   NSKEWS
  5094.       COMMON /ELSTP/  TIME,IDTHF
  5095.       COMMON /PRCON/  IDATWR,IPRIC,NPB,IDC,IVC,IAC,IPC,IPNODE(3,15)
  5096.       COMMON /PORT/   INPORT,JNPORT,NPUTSV,LUNODE,LU1,LU2,LU3,
  5097.      1                JDC,JVC,JAC
  5098.       COMMON /ISUBST/ ISUBC,NSUBST,NSUB,NTUSE,NEGLS,NEGNLS,NUMNPS,
  5099.      1                NODCON,NODRET,IDOFS(6),NDOFS,NEQS,NWKS,MAXESC,
  5100.      2                MAS,NSTAPE,ILOA(13),KRSIZM,NEQC
  5101. C
  5102.       COMMON A(1)
  5103.       REAL A
  5104.       DIMENSION IA(1)
  5105.       EQUIVALENCE (A(1),IA(1))
  5106. C
  5107.       EQUIVALENCE (NPAR(1),NPAR1),(NPAR(2),NUME),(NPAR(3),INDNL),
  5108.      1            (NPAR(4),IDEATH),(NPAR(5),ITYPT),(NPAR(6),NEGSKS),
  5109.      2            (NPAR(10),ININT),(NPAR(13),NTABLE),(NPAR(15),MODEL),
  5110.      3            (NPAR(16),NUMMAT)
  5111. C
  5112.       DIMENSION NMCON(5),IDWAS(5),INPAR(20),NINTV(4)
  5113. C
  5114.       DATA NMCON /2,4,5,0,0/,
  5115.      1     IDWAS /0,0,13,0,0/,
  5116.      2     NINTV /1,3,3,7/
  5117. C
  5118.       DATA RECLB1 /8HTYPE-6  /
  5119. C
  5120.       DO 5 I=1,20
  5121.     5 INPAR(I)=NPAR(I)
  5122. C
  5123.       IF(IND.NE.0) GO TO 100
  5124. C
  5125. C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
  5126. C .   I N P U T    P H A S E                                          .
  5127. C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
  5128. C
  5129. C     CHECK ON RANGE AND SET DEFAULTS FOR NPAR VECTOR
  5130. C
  5131.       ISTOP=0
  5132.       NINT=4
  5133.       MXNODS=3
  5134.       MODMAX=5
  5135. C
  5136.       IF(NUME.GT.0) GO TO 10
  5137.       ISTOP=ISTOP+1
  5138.       IF(ISTOP.EQ.1) WRITE(6,2100) NG
  5139.       ISUB=2
  5140.       IRANGE=1
  5141.       WRITE(6,2400) ISTOP,ISUB,IRANGE,ISUB,NPAR(ISUB)
  5142. C
  5143.    10 IF (INDNL.GE.0.AND.INDNL.LE.2) GO TO 15
  5144.       ISTOP=ISTOP+1
  5145.       IF (ISTOP.EQ.1) WRITE (6,2100) NG
  5146.       ISUB=3
  5147.       WRITE (6,2200) ISTOP,ISUB,ISUB,NPAR(ISUB)
  5148.       INMIN=0
  5149.       INMAX=2
  5150.       WRITE (6,2250) ISUB,INMIN,INMAX
  5151. C
  5152.    15 IF (IDEATH.NE.0) IDTHF=1
  5153.       IF (IDEATH.GE.0.AND.IDEATH.LE.2) GO TO 20
  5154.       ISTOP=ISTOP+1
  5155.       IF (ISTOP.EQ.1) WRITE (6,2100) NG
  5156. C
  5157.       ISUB=4
  5158.       WRITE (6,2200) ISTOP,ISUB,ISUB,NPAR(ISUB)
  5159.       INMIN=0
  5160.       INMAX=2
  5161.       WRITE (6,2250) ISUB,INMIN,INMAX
  5162. C
  5163. C
  5164.    20 IF (ININT.LE.0) ININT=2
  5165.       IF (ININT.LE.NINT) GO TO 30
  5166.       ISTOP=ISTOP+1
  5167.       IF(ISTOP.EQ.1) WRITE(6,2100) NG
  5168.       ISUB=10
  5169.       WRITE(6,2300) ISTOP,ISUB,NINT,ISUB,NPAR(ISUB)
  5170. C
  5171.    30 IF (NTABLE.GE.0 .AND. NTABLE.LE.10) GO TO 35
  5172.       ISTOP=ISTOP+1
  5173.       IF (ISTOP.EQ.1) WRITE (6,2100) NG
  5174.       ISUB=13
  5175.       WRITE (6,2200) ISTOP,ISUB,ISUB,NPAR(ISUB)
  5176.       INMIN=0
  5177.       INMAX=10
  5178.       WRITE (6,2250) ISUB,INMIN,INMAX
  5179. C
  5180.    35 IF (MODEL.LE.0) MODEL=1
  5181.       IF (MODEL.LE.MODMAX) GO TO 40
  5182.       ISTOP=ISTOP+1
  5183.       IF(ISTOP.EQ.1) WRITE(6,2100) NG
  5184.       ISUB=15
  5185.       WRITE(6,2300) ISTOP,ISUB,MODMAX,ISUB,NPAR(ISUB)
  5186. C
  5187.    40 IF (NUMMAT.LE.0) NUMMAT=1
  5188. C
  5189.       IF (MODEL.GT.3) GO TO 45
  5190. C
  5191.       NCON = NMCON(MODEL)
  5192.       IDW = IDWAS(MODEL)
  5193.       GO TO 50
  5194. C
  5195. C     EMPTY MODEL - STOP IMMEDIATELY
  5196. C
  5197. C
  5198.    45 ISTOP=ISTOP+1
  5199.       IF (ISTOP.EQ.1) WRITE (6,2100) NG
  5200.       WRITE (6,2450) ISTOP,MODEL
  5201.       WRITE (6,2700) ISTOP
  5202.       WRITE (6,2800) (I,I=1,8),INPAR
  5203.       STOP
  5204. C
  5205. C
  5206. C        CHECK ON COMPATILITY BETWEEN ELEMENTS OF NPAR
  5207. C
  5208. C             1.  COMPATILITY OF INDNL AND IDEATH
  5209. C
  5210.    50 ISUB=3
  5211.       IF (INDNL.GT.0) GO TO 65
  5212.       IF (IDEATH.EQ.0) GO TO 60
  5213.       ISTOP=ISTOP+1
  5214.       IF (ISTOP.EQ.1) WRITE (6,2100) NG
  5215.       ISUD=4
  5216.       WRITE (6,2500) ISTOP,ISUB,NPAR(ISUB),ISUD,NPAR(ISUD)
  5217. C
  5218. C             2.  COMPATILITY OF INDNL AND MODEL
  5219. C
  5220. C                 INDNL=0
  5221.    60 IF (MODEL.LE.2) GO TO 65
  5222.       ISTOP=ISTOP+1
  5223.       IF (ISTOP.EQ.1) WRITE (6,2100) NG
  5224.       ISUD=15
  5225.       WRITE (6,2500) ISTOP,ISUB,NPAR(ISUB),ISUD,NPAR(ISUD)
  5226. C
  5227. C             3.  COMPATILITY OF NEGSKS AAND NSKEWS
  5228. C
  5229.    65 IF (NEGSKS.EQ.0)  GO TO 70
  5230.       IF (NSKEWS.GT.0)  GO TO 70
  5231.       ISUB=6
  5232.       ISTOP=ISTOP+1
  5233.       IF (ISTOP.EQ.1) WRITE (6,2100) NG
  5234.       WRITE (6,2550) ISTOP,NSKEWS,ISUB,NPAR(ISUB)
  5235. C
  5236.    70 IF (ISTOP.EQ.0) GO TO 75
  5237.       WRITE (6,2700) ISTOP
  5238.       WRITE (6,2800) (I,I=1,8),INPAR
  5239. C
  5240.       GO TO 80
  5241. C
  5242.    75 IF (IDATWR.GT.1) GO TO 90
  5243. C
  5244. C     PRINT OUT NPAR VECTOR
  5245. C
  5246.    80 WRITE (6,2900) NPAR1,NUME
  5247.       WRITE (6,2940) INDNL,IDEATH
  5248.       WRITE (6,2960) NEGSKS,ININT
  5249.       WRITE (6,2980) NTABLE,MODEL,NUMMAT
  5250.       IF (INDNL.GT.1) WRITE (6,2698)
  5251. C
  5252.    90 IF (ISTOP.EQ.0) GO TO 95
  5253.       WRITE(6,2750)
  5254.       STOP
  5255. C
  5256. C
  5257. C***  DATA PORTHOLE  *************************  (START)
  5258. C
  5259.    95 IF (JNPORT.EQ.0 .OR. NPUTSV.EQ.0) GO TO 100
  5260.       RECLAB=RECLB1
  5261.       WRITE (LU3) RECLAB,NG,(NPAR(I),I=1,20),NSUB
  5262. C
  5263. C***  DATA PORTHOLE  *************************  ( END )
  5264. C
  5265. C
  5266. C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
  5267. C .   E N D   O F   C H E C K   O N   N P A R   V E C T O R           .
  5268. C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
  5269. C
  5270. C
  5271. C        STORAGE ALLOCATION FOR PLATE ELEMENTS
  5272. C
  5273.   100 NDM=18
  5274.       NDMX=9
  5275.       NTH=7
  5276.       NINT=NINTV(ININT)
  5277.       IDWA=IDWAS(MODEL)*NINT
  5278.       NIPT=3*NINT
  5279.       NCON=NMCON(MODEL)
  5280.       MXNODS=3
  5281.       NFIRST=N6
  5282.       IF (IND.EQ.4) NFIRST=N10
  5283.       N101=NFIRST + 20
  5284.       N102=N101 + NUMMAT*ITWO
  5285.       N103=N102 + NDM*NUME
  5286.       N104=N103 + NDMX*NUME*ITWO
  5287.       N105=N104 + NUME
  5288.       N106=N105 + NUME*ITWO
  5289.       N107=N106 + NUME
  5290.       MOPT=0
  5291.       IF (IDEATH.GT.0) MOPT=1
  5292.       N108=N107 + MOPT*NUME*ITWO
  5293.       MOPT=0
  5294.       IF (IDEATH.EQ.1) MOPT=1
  5295.       N109=N108 + MOPT*NDM*NUME*ITWO
  5296.       N110=N109 + NCON*NUMMAT*ITWO
  5297.       N111=N110 + IDWA*NUME*ITWO
  5298.       N112=N111 + NTABLE*NTH
  5299.       MOPT=0
  5300.       IF (NEGSKS.GT.0) MOPT=1
  5301.       N113=N112 + MOPT*NUME*MXNODS
  5302.       MOPT=0
  5303.       IF (MODEL.EQ.2) MOPT=1
  5304.       N114=N113 + MOPT*NUME*ITWO
  5305.       MOPT=0
  5306.       IF (INDNL.GE.2 .OR. MODEL.GE.3) MOPT=1
  5307.       N121=N114 + MOPT*NUME*NDM*ITWO
  5308.       NLAST=N121 - 1
  5309.       IF (INDNL.EQ.2 .AND. MODEL.LE.2)
  5310.      1  NLAST=N121 + NIPT*NUME*ITWO - 1
  5311. C
  5312.       IF(IND.NE.0) GO TO 105
  5313.       DO 102 I=1,20
  5314.   102 IA(NFIRST+I-1) = NPAR(I)
  5315. C
  5316.       MIDEST=(NLAST-NFIRST)+1
  5317.       IF(IDATWR.LE.1) WRITE(6,2000) NG,MIDEST
  5318.       CALL SIZE(NLAST)
  5319. C
  5320.   105 IF (IND.GT.3) GO TO 110
  5321.       M2=N2
  5322.       M3=N3
  5323.       M4=N4
  5324.       GO TO 120
  5325.   110 M2=N2
  5326.       M3=N7
  5327.       M4=N8
  5328.       IF (ICOUNT.EQ.3) M2=N6
  5329. C
  5330.   120 CALL PLATEL (A(N06),A(N1A),A(N1),A(M2),A(M3),A(M4),A(N5),
  5331.      1             A(N101),A(N102),A(N103),A(N104),A(N105),A(N106),
  5332.      2             A(N107),A(N108),A(N109),A(N110),A(N111),
  5333.      3             A(N112),A(N113),A(N114),A(N121),
  5334.      4             IDWA,NTH,NCON,NDOF,NDM,NDMX,MXNODS,NTABLE,NIPT)
  5335. C
  5336.       RETURN
  5337. C
  5338.  2000 FORMAT (///38H S T O R A G E   I N F O R M A T I O N/
  5339.      1        ///49H LENGTH OF ARRAY NEEDED FOR STORING ELEMENT GROUP/
  5340.      3        12H DATA (GROUP,I3,26H). . . . . . . . . . . . .,
  5341.      4        15H( MIDEST ). . =,I5//)
  5342. C
  5343.  2100 FORMAT (////28H *** I N P U T   E R R O R- //
  5344.      1        54H ERROR IN ELEMENT GROUP CONTROL CARDS  (PLATE ELEMENT)/
  5345.      2        15H ELEMENT GROUP=,I5/)
  5346.  2200 FORMAT (I5,7H. NPAR(,I2,27H) IS OUT OF RANGE ... NPAR(,I2,
  5347.      1        3H) =,I5)
  5348.  2250 FORMAT (6X,8H ( NPAR(,I2,15H) SHOULD BE GE.,I1,8H AND LE.,I1,2H ))
  5349.  2300 FORMAT (I5,7H. NPAR(,I2,16H) SHOULD BE .LE., I2,10H ... NPAR(,I2,
  5350.      1        3H) =,I5)
  5351.  2400 FORMAT (I5,7H. NPAR(,I2,16H) SHOULD BE .GE., I2,10H ... NPAR(,I2,
  5352.      1        3H) =,I5)
  5353.  2450 FORMAT (I5,48H. REQUESTED MATERIAL MODEL IS NOT AVAILABLE ... ,
  5354.      1        11H NPAR(15) =,I2/)
  5355.  2500 FORMAT (I5,7H. NPAR(,I2,3H) =,I2,10H AND NPAR(,I2,3H) =,I2,
  5356.      1        19H ARE NOT COMPATIBLE )
  5357.  2550 FORMAT (I5,10H. NSKEWS =,I2,10H AND NPAR(,I2,3H) =,I2,
  5358.      1        19H ARE NOT COMPATIBLE )
  5359.  2698 FORMAT (////16H *** N O T E ***//
  5360.      1  52H IN GEOMETRIC NONLINEAR ANALYSIS, I.E., INDNL.GT.1, /
  5361.      2  52H THE TOTAL ROTATIONS AT THE NODAL POINTS PRINTED IN /
  5362.      3  52H THE STEP-BY-STEP SOLUTION ARE NOT USED.            //
  5363.      4  52H THE ELEMENT KINEMATICS AND STRESSES ARE CALCULATED /
  5364.      5  52H USING INCREMENTAL ROTATIONS.                       ///)
  5365.  2700 FORMAT (//25H TOTAL NUMBER OF ERRORS =,I5//
  5366.      1          48H CARD IMAGE LISTING AND PRINT-OUT OF NPAR VECTOR/
  5367.      2          48H (WITH DEFAULTS ENFORCED) ARE GIVEN BELOW-------)
  5368.  2750 FORMAT (//// 23H STOP  (ERRORS IN NPAR)  )
  5369.  2800 FORMAT (///34H CARD IMAGE LISTING OF NPAR VECTOR //29X,
  5370.      1        8(I1,9X)/15H COLUMN NUMBERS,5X,8(10H1234567890)/
  5371.      2        15H NPAR VECTOR   ,5X,20I4//)
  5372. C
  5373.  2900 FORMAT (36H E L E M E N T  D E F I N I T I O N ///,
  5374.      1        14H ELEMENT TYPE ,13(2H .),16H( NPAR(1) ). . =,I5/,
  5375.      2        30H     EQ.1,      TRUSS ELEMENTS/
  5376.      3        30H     EQ.2,      2-DIM ELEMENTS/
  5377.      4        30H     EQ.3,      3-DIM ELEMENTS/
  5378.      5        30H     EQ.4,      BEAM  ELEMENTS/
  5379.      5        33H     EQ.5,      ISO/BEAM ELEMENTS  /,
  5380.      6        30H     EQ.6,      PLATE ELEMENTS/
  5381.      7        30H     EQ.7,      SHELL ELEMENTS/
  5382.      8        21H     EQ.8,9,10, EMPTY/
  5383.      9        36H     EQ.11,     2-DIM FLUID ELEMENTS/
  5384.      A        36H     EQ.12,     3-DIM FLUID ELEMENTS//
  5385.      B        20H NUMBER OF ELEMENTS.,10(2H .),16H( NPAR(2) ). . =,I5//)
  5386.  2940 FORMAT (18H TYPE OF ANALYSIS ,11(2H .),16H( NPAR(3) ). . =,I5/
  5387.      1        43H     EQ.0, LINEAR                          /
  5388.      2        43H     EQ.1, MATERIAL NONLINEARITY ONLY      /
  5389.      4        43H     EQ.2, UPDATED LAGRANGIAN FORMULATION  //
  5390.      5        32H ELEMENT BIRTH AND DEATH OPTION ,4(2H .),
  5391.      6        16H( NPAR(4) ). . =,I5/
  5392.      7        30H     EQ.0, OPTION NOT ACTIVE  /
  5393.      8        30H     EQ.1, BIRTH OPTION ACTIVE/
  5394.      9        30H     EQ.2, DEATH OPTION ACTIVE //)
  5395.  2960 FORMAT (23H SKEW COORDINATE SYSTEM/
  5396.      1        20H REFERENCE INDICATOR,10(2H .),
  5397.      2        16H( NPAR(6) ). . =,I5/
  5398.      3        35H     EQ.0, GLOBAL COORDINATE SYSTEM/
  5399.      4        35H     EQ.1, SKEW   COORDINATE SYSTEM//
  5400.      5        23H INTEGRATION SCHEME FOR/
  5401.      6        22H STIFFNESS CALCULATION, 9(2H .),
  5402.      7        16H( NPAR(10)). . =,I5/
  5403.      8        45H     EQ.1, AT CENTROID ONLY        (1 POINT )/
  5404.      9        45H     EQ.2, AT 3 INTERIOR LOCATIONS (3 POINTS)/
  5405.      A        45H     EQ.3, AT 3 MID-SIDE LOCATIONS (3 POINTS)/
  5406.      B        45H     EQ.4, AT 7 INTERIOR LOCATIONS (7 POINTS)//)
  5407.  2980 FORMAT (32H NUMBER OF STRESS OUTPUT TABLES ,4(2H .),
  5408.      1        16H( NPAR(13)). . =,I5/
  5409.      2        32H     EQ.0, AT INTEGRATION POINTS//
  5410.      7        16H MATERIAL MODEL.,12(2H .),16H( NPAR(15)). . =,I5/
  5411.      8        40H     EQ.1, HOMOGENEOUS LINEAR ISOTROPIC /
  5412.      9        41H     EQ.2, HOMOGENEOUS LINEAR ORTHOTROPIC/
  5413.      A        40H     EQ.3, ISOTROPIC ELASTIC-PLASTIC     /
  5414.      B        40H     EQ.4, EMPTY MODEL                  //
  5415.      D        37H NUMBER OF DIFFERENT SETS OF MATERIAL          /
  5416.      E        14H     CONSTANTS,13(2H .),16H( NPAR(16)). . =,I5//)
  5417. C
  5418.       END
  5419. C *CDC* *DECK,PLATEL
  5420. C
  5421. C *UNI* )FOR,IS N.PLATEL , R.PLATEL
  5422.       SUBROUTINE PLATEL (RSDCOS,NODSYS,ID,X,Y,Z,HT,
  5423.      1                   DEN,LM,XYZ,MATP,THICI,IPS,ETIMV,EDISB,PROP,
  5424.      2                   WA,ITABLE,ISKEW,BETA,PDIS,ELM,
  5425.      3                   IDWA,NTH,NCON,NDOF,NDM,NDMX,MXNODS,NTABLE,NIPT)
  5426. C
  5427.       IMPLICIT REAL*8 (A-H,O-Z)
  5428. C
  5429.       COMMON /SOL/    NUMNP,NEQ,NWK,NWM,NWC,NUMEST,MIDEST,MAXEST,NSTE,MA
  5430.       COMMON /EL/     IND,ICOUNT,NPAR(20),NUMEG,NEGL,NEGNL,IMASS,IDAMP,
  5431.      1                ISTAT,NDOFDM,KLIN,IEIG,IMASSN,IDAMPN
  5432.       COMMON /DIM/    N0,N1,N2,N3,N4,N5,N6,N7,N8,N9,N10,N11,N12,N13,N14,
  5433.      1                N15
  5434.       COMMON /VAR/    NG,MODEX,IUPDT,KSTEP,ITEMAX,IEQREF,ITE,KPRI,IREF,
  5435.      1                IEQUIT,IPRI,KPLOTN,KPLOTE
  5436.       COMMON /PRCON/  IDATWR,IPRIC,NPB,IDC,IVC,IAC,IPC,IPNODE(3,15)
  5437.       COMMON /PORT/   INPORT,JNPORT,NPUTSV,LUNODE,LU1,LU2,LU3,JDC,JVC,
  5438.      1                JAC
  5439.       COMMON /MDFRDM/ IDOF(6)
  5440.       COMMON /ELSTP/  TIME,IDTHF
  5441.       COMMON /SKEW/   NSKEWS
  5442.       COMMON /RANDI / N0A,N1D,IELCPL
  5443.       COMMON /HAMMS / PSIV(14),ETAV(14),WGTV(14)
  5444.       COMMON /GEOPLT/ T(3,3),TWOA,X2,X3,Y3,BM(6),B(3,9)
  5445.       COMMON /PROPTY/ C(3,3),CD(3,3),D(3,3),YM,PV,ET,QTM
  5446.       COMMON /DISPLT/ EDIS(18),EDIST(18),EDISI(18),TDIS(9),RDIS(9)
  5447.       COMMON /STSPLT/ EPS(3),FN(3),CURV(3),TM(3)
  5448.       COMMON /ELINF / THIC,BETE,WAA(13),NEL,IP,NINT,IPT
  5449.       COMMON /ILYSHN/ GAMMA,D11,D12,D22,D33,HA,THIC2,THIC3,THIC4,THICM
  5450.       COMMON /FSTPLT/ RN(6),RM(9),RE(18),SML(21),SBL(45),S(171),
  5451.      1                SNL(6),SCL(54)
  5452.       COMMON /XYZLOC/ XYZR(3,3)
  5453.       COMMON /ISUBST/ ISUBC,NSUBST,NSUB,NTUSE,NEGLS,NEGNLS,NUMNPS,
  5454.      1                NODCON,NODRET,IDOFS(6),NDOFS,NEQS,NWKS,MAXESC,
  5455.      2                MAS,NSTAPE,ILOA(13),KRSIZM,NEQC
  5456. C
  5457.       COMMON A(1)
  5458.       REAL A
  5459. C
  5460.       DIMENSION ID(NDOF,1),X(1),Y(1),Z(1),HT(1),DEN(1),LM(NDM,1),
  5461.      1          XYZ(NDMX,1),MATP(1),THICI(1),IPS(1),ETIMV(1),
  5462.      2          EDISB(NDM,1),PROP(NCON,1),WA(IDWA,1),ITABLE(NTH,NTABLE),
  5463.      3          ISKEW(MXNODS,1),BETA(1),PDIS(NDM,1),ELM(NIPT,1),
  5464.      4          RSDCOS(9,1),NODSYS(1)
  5465. C
  5466.       DIMENSION NODE(3),NODEM(3),XXT(9),XXX(9),XM(18),NPICK(4),NINTV(4),
  5467.      1          PSITBL(7),ETATBL(7),XYZINT(3,7),ILSK(6)
  5468. C
  5469.       EQUIVALENCE (NPAR(1),NPAR1),(NPAR(2),NUME),(NPAR(3),INDNL),
  5470.      1            (NPAR(4),IDEATH),(NPAR(5),ITYPT),(NPAR(6),NEGSKS),
  5471.      2            (NPAR(10),ININT),(NPAR(15),MODEL),(NPAR(16),NUMMAT)
  5472. C
  5473.       DATA PSITBL/0., 1., 0., 0.5, 0.5, 0., 0.3333333333333D0/,
  5474.      1     ETATBL/0., 0., 1., 0., 0.5, 0.5, 0.3333333333333D0/,
  5475.      2     NPICK /0,1,4,7/,
  5476.      3     NINTV /1,3,3,7/
  5477. C
  5478.       DATA RECLB1  /8H TYPE-6 /,
  5479.      3     RECLB2  /8HMATERAL6/,
  5480.      4     RECLB3  /8HOUTABLE6/,
  5481.      4     RECLB4  /8HELEMENT6/,
  5482.      5     RECLB5  /8HNEWSTEP6/,
  5483.      6     RECLB6  /8HOUTPUT-6/
  5484.       DATA RECLB7  /8HIPOINT-6/
  5485. C
  5486. C     *** NOTE ***     DURING TIME INTEGRATION:
  5487. C                      X = LATEST TOTAL DISPLACEMENTS
  5488. C                      Y = VELOCITIES
  5489. C                      Z = ACCELERATIONS
  5490. C
  5491.       IP=NPICK(ININT)
  5492.       NINT=NINTV(ININT)
  5493.       IDW=IDWA/NINT
  5494.       IELCPL=0
  5495. C
  5496.       IF (KPRI.EQ.0) GO TO 800
  5497.       IF (IND.GT.0) GO TO 420
  5498. C
  5499.       ISCONT=0
  5500.       IF (NSKEWS.GT.0 .AND. NEGSKS.EQ.0) ISCONT=1
  5501.       IJPORT=1
  5502.       IF (JNPORT.EQ.0 .OR. NPUTSV.EQ.0) IJPORT=0
  5503. C
  5504. C
  5505. C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
  5506. C .   R E A D   A N D    G E N E R A T E    E L E M E N T             .
  5507. C .   I N F O R M A T I O N                                           .
  5508. C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
  5509. C
  5510. C
  5511. C
  5512. C        1. READ MATERIAL PROPERTIES
  5513. C
  5514. C
  5515.       IF (IDATWR.LE.1) WRITE (6,2000)
  5516. C
  5517.       IBUG=0
  5518.       DO 50 I=1,NUMMAT
  5519.       READ (5,1000) N,DEN(N)
  5520.       IF (IDATWR.LE.1) WRITE (6,2005) N,DEN(N)
  5521. C
  5522.       GO TO (20,30,40,40,45),MODEL
  5523. C
  5524. C     LINEAR ELASTIC HOMOGENEOUS ISOTROPIC PROPERTIES  (MODEL 1)
  5525. C
  5526.    20 IF (IDATWR.LE.1) WRITE (6,2010)
  5527.       READ (5,1010) (PROP(J,N),J=1,NCON)
  5528.       IF (IDATWR.LE.1) WRITE (6,2015) (PROP(J,N),J=1,NCON)
  5529.       GO TO 50
  5530. C
  5531. C     LINEAR ELASTIC HOMOGENEOUS ORTHOTROPIC PROPERTIES  (MODEL 2)
  5532. C
  5533.    30 IF (IDATWR.LE.1) WRITE (6,2020)
  5534.       READ (5,1010) (PROP(J,N),J=1,NCON)
  5535.       IF (IDATWR.LE.1) WRITE (6,2025) (PROP(J,N),J=1,NCON)
  5536.       GO TO 50
  5537. C
  5538. C     ISOTHERMAL ELASTIC-PLASTIC PROPERTIES  (MODEL 3)
  5539. C
  5540.    40 IF (IDATWR.LE.1) WRITE (6,2030)
  5541.       READ (5,1010) (PROP(J,N),J=1,NCON)
  5542.       IF (IDATWR.LE.1) WRITE (6,2035) (PROP(J,N),J=1,NCON)
  5543.       IF (PROP(3,N).GT.0.0) GO TO 42
  5544.       IBUG=1
  5545.       WRITE (6,3401) NG,N
  5546.    42 IF (PROP(4,N).LT.PROP(1,N)) GO TO 50
  5547.       IBUG=1
  5548.       WRITE (6,3402) NG,N
  5549.       GO TO 50
  5550. C
  5551.    45 READ (5,1010) (PROP(J,N),J=1,NCON)
  5552.       IF (IDATWR.LE.1) WRITE (6,2045) (J,PROP(J,N),J=1,NCON)
  5553.    50 CONTINUE
  5554. C
  5555.       IF (MODEX.EQ.0 .OR. IBUG.EQ.0) GO TO 53
  5556.       WRITE (6,3403)
  5557.       STOP
  5558. C
  5559.    53 IF (NTABLE.EQ.0) GO TO 95
  5560.       IF (IDATWR.LE.1) WRITE (6,2050)
  5561.       DO 55 L=1,NTABLE
  5562.       READ (5,1200) (ITABLE(I,L),I=1,NTH)
  5563.       IF (IDATWR.LE.1) WRITE (6,2055) L,(ITABLE(I,L),I=1,NTH)
  5564.    55 CONTINUE
  5565. C
  5566. C *** DATA PORTHOLE  (START) ***
  5567. C
  5568.    95 IF (IJPORT.EQ.0) GO TO 98
  5569.       RECLAB=RECLB2
  5570.       WRITE (LU3) RECLAB,NUMMAT,NCON,(DEN(I),I=1,NUMMAT),
  5571.      1            ((PROP(I,J),I=1,NCON),J=1,NUMMAT)
  5572.       RECLAB=RECLB3
  5573.       IF (NTABLE.EQ.0)
  5574.      1WRITE (LU3) RECLAB,NTABLE
  5575.       IF (NTABLE.GT.0)
  5576.      1   WRITE (LU3) RECLAB,NTABLE,((ITABLE(I,J),J=1,NTABLE),I=1,NTH)
  5577. C
  5578. C *** DATA PORTHOLE  (END) ***
  5579. C
  5580. C
  5581. C        2.  READ ELEMENT INFORMATION
  5582. C
  5583.    98 IF (IDATWR.LE.1) WRITE (6,2200)
  5584. C
  5585.       N=1
  5586.       IREAD=5
  5587.       IF (INPORT.GT.0) IREAD=59
  5588.   105 READ (IREAD,1100) M,IS,MTYP,KG,BET,THIC,ETIME,INTLOC
  5589.       READ (IREAD,1200) (NODE(K),K=1,3)
  5590. C
  5591.       IF (N.EQ.1 .AND. M.NE.1) GO TO 115
  5592.       IF (M.NE.1 .AND. THIC.EQ.0.) THIC=THICI(1)
  5593.       IF (MTYP.LE.0) MTYP=1
  5594.       IF (MTYP.GT.NUMMAT) GO TO 110
  5595.       IF (KG.LE.0) KG=1
  5596.       IF (IDEATH.EQ.2 .AND. ETIME.EQ.0.) ETIME=10000000.
  5597.       GO TO 120
  5598. C
  5599.   110 WRITE(6,2310) NG,M,MTYP,NUMMAT
  5600.       STOP
  5601.   115 WRITE (6,2315) NSUB,NG
  5602.       STOP
  5603. C
  5604.   120 IF (M.NE.N) GO TO 130
  5605.   121 DO 122 I=1,MXNODS
  5606.   122 NODEM(I)=NODE(I)
  5607.       MTYPE=MTYP
  5608.       KKK=KG
  5609.       THICK=THIC
  5610.       BETE=BET
  5611.       IPST=IS
  5612.       IELD=MXNODS
  5613.       ETIM=ETIME
  5614.       INTLM=INTLOC
  5615. C
  5616. C     SAVE ELEMENT INFORMATION
  5617. C
  5618.   130 CONTINUE
  5619.       L=1
  5620.       DO 140 LL=1,IELD
  5621.       I=NODEM(LL)
  5622.       XYZ(L,N)=X(I)
  5623.       XYZ(L+1,N)=Y(I)
  5624.       XYZ(L+2,N)=Z(I)
  5625.       L=L+3
  5626.       IF (ISCONT.EQ.0) GO TO 135
  5627.       IF (NODSYS(I).EQ.0) GO TO 140
  5628.       WRITE (6,2410) NG,N,NEGSKS
  5629.       STOP
  5630.   135 IF (NEGSKS.GT.0) ISKEW(LL,N)= NODSYS(I)
  5631.   140 CONTINUE
  5632. C
  5633. C
  5634.       MATP(N)=MTYPE
  5635.       THICI(N)=THICK
  5636.       IPS(N)=IPST
  5637.       IF (MODEL.EQ.2) BETA(N)=BETE
  5638.       ND=NDM
  5639. C
  5640. C
  5641. C     INITIALIZE DISPLACEMENT AND MOMENT STORAGE FOR NONLINEAR ANALYSIS
  5642. C
  5643.       IF (INDNL.LE.1 .AND. MODEL.LE.2) GO TO 208
  5644.       DO 202 J=1,NDM
  5645.   202 PDIS(J,N)=0.
  5646.       IF (MODEL.GE.3) GO TO 208
  5647.       DO 205 K=1,NIPT
  5648.   205 ELM(K,N)=0.
  5649. C
  5650.   208 DO 222 L=1,ND
  5651.   222 LM(L,N)=0
  5652.       LL=1
  5653.       DO 240 L=1,6
  5654.       IF(IDOF(L).EQ.1) GO TO 240
  5655.       LP=L-6
  5656.       DO 241 LK=1,IELD
  5657.       LP=LP+6
  5658.       II=NODEM(LK)
  5659.       LM(LP,N)=ID(LL,II)
  5660.   241 CONTINUE
  5661.       LL=LL+1
  5662.   240 CONTINUE
  5663. C
  5664.       IF (NEGSKS.EQ.0) GO TO 250
  5665.       DO 252 I=1,IELD
  5666.       IF (ISKEW(I,N).NE.0) GO TO 250
  5667.   252 CONTINUE
  5668.       ISKEW(1,N)=-1
  5669. C
  5670.   250 IF (IDEATH.EQ.0) GO TO 260
  5671.       IF (IDEATH.EQ.2) GO TO 264
  5672.       DO 266 L=1,ND
  5673.   266 EDISB(L,N)=0.
  5674.       ETIMV(N)=-ETIM
  5675.       GO TO 260
  5676.   264 ETIMV(N)=ETIM
  5677. C
  5678. C     UPDATE COLUMN HEIGHTS AND BANDWIDTH
  5679. C
  5680.   260 CALL COLHT (HT,ND,LM(1,N))
  5681. C
  5682. C
  5683. C     INITIALIZE WORKING ARRAYS FOR ELASTIC-PLASTIC MATERIAL LAW
  5684. C
  5685.       IF (MODEL.GE.3)
  5686.      1    CALL INWA (PROP(1,MTYPE),WA(1,N),IDW)
  5687. C
  5688.       IF(IDATWR.GT.1) GO TO 298
  5689.       WRITE (6,2210) N,IPST,MTYPE,KG,BET,THICK,ETIME,INTLM,
  5690.      1              (NODEM(LL),LL=1,IELD)
  5691.   298 IF (IJPORT.EQ.0 .AND. INTLM.EQ.0) GO TO 310
  5692. C
  5693. C     CALCULATE GLOBAL COORDINATES OF INTEGRATION POINTS
  5694. C
  5695.       CALL TRAN (N,XYZ(1,N))
  5696.       CALL AREAT (XYZ(1,N))
  5697. C
  5698. C     1.  CALCULATE INTEGRATION POINT COORDINATES IN THE LOCAL SYSTEM
  5699. C
  5700.       KINTP=0
  5701.       DO 164 INT=1,NINT
  5702.       PSI=PSIV(IP+INT)
  5703.       ETA=ETAV(IP+INT)
  5704.       KINTP=KINTP+1
  5705.       XINT=PSI*X2 + ETA*X3
  5706.       YINT=ETA*Y3
  5707. C
  5708. C     2.  TRANSFORM LOCATIONS TO GLOBAL COORDINATE SYSTEM
  5709. C
  5710.       XINT=XINT + XYZR(1,1)
  5711.       YINT=YINT + XYZR(2,1)
  5712.       ZINT=XYZR(3,1)
  5713.       XYZINT(1,KINTP)=T(1,1)*XINT + T(2,1)*YINT + T(3,1)*ZINT
  5714.       XYZINT(2,KINTP)=T(1,2)*XINT + T(2,2)*YINT + T(3,2)*ZINT
  5715.       XYZINT(3,KINTP)=T(1,3)*XINT + T(2,3)*YINT + T(3,3)*ZINT
  5716. C
  5717. C     3.  PRINT LOCATIONS IF INTLM.NE.0
  5718. C
  5719.       IF (IDATWR.GT.1 .OR. INTLM.LE.0) GO TO 164
  5720.       WRITE (6,2262) KINTP,(XYZINT(L,KINTP),L=1,3)
  5721.   164 CONTINUE
  5722. C
  5723. C ***  DATA PORTHOLE (START) ***
  5724. C
  5725.       RECLAB=RECLB4
  5726.       IF (IJPORT.EQ.0) GO TO 310
  5727.       WRITE (LU3) RECLAB,N,IPST,MTYPE,THICK,ETIM,INTLM,(NODEM(I),I=1,3)
  5728.       RECLAB = RECLB7
  5729.       WRITE (LU3) RECLAB,NINT,((XYZINT(L,I),L=1,3),I=1,NINT)
  5730. C
  5731. C ***  DATA PORTHOLE  (END) ***
  5732. C
  5733.   310 CONTINUE
  5734.       IF(N.EQ.NUME) GO TO 325
  5735.       N=N+1
  5736.       DO 320 LL=1,IELD
  5737.   320 NODEM(LL)=NODEM(LL) + KKK
  5738.       IF (N-M) 130,121,105
  5739. C
  5740.   325 IF (NEGSKS.EQ.0) RETURN
  5741.       DO 375 N=1,NUME
  5742.       IF (ISKEW(1,N).GE.0) GO TO 380
  5743.   375 CONTINUE
  5744.       WRITE (6,2400) NG,NEGSKS
  5745.   380 RETURN
  5746. C
  5747. C
  5748.   420 GO TO (440,560,560,700) ,IND
  5749. C
  5750. C
  5751. C    A S S E M B L E  L I N E A R   S T I F F N E S S    M A T R I C E S
  5752. C
  5753. C
  5754.   440 ND=18
  5755. C
  5756.       DO 500 N=1,NUME
  5757. C
  5758.       CALL ECHECK (LM(1,N),ND,ICODE,IUPDT)
  5759.       IF (ICODE.EQ.1) GO TO 500
  5760. C
  5761.       MTYPE=MATP(N)
  5762.       IF (MODEL.EQ.2) BETE=BETA(N)
  5763.       THIC=THICI(N)
  5764.       NEL=N
  5765. C
  5766.       CALL PLSTIF (XYZ(1,N),PROP(1,MTYPE),ELM(1,N),WA(1,N),NIPT,IDW)
  5767. C
  5768.       IF (NEGSKS.EQ.0) GO TO 490
  5769.       IF (ISKEW(1,N).LT.0) GO TO 490
  5770.       J=1
  5771.       DO 480 I=1,3
  5772.       ILSK(J)=ISKEW(I,N)
  5773.       ILSK(J+1)=ISKEW(I,N)
  5774.   480 J=J+2
  5775.       CALL ATKA (RSDCOS,S,ILSK,6,3)
  5776.   490 CALL ADDBAN (A(N2),A(N1),S,RE,LM(1,N),ND,1)
  5777. C
  5778.   500 CONTINUE
  5779. C
  5780.       RETURN
  5781. C
  5782. C
  5783. C    A S S E M B L E   M A S S   M A T R I C E S
  5784. C
  5785. C     MASS MATRIX WHETHER LUMPED OR CONSISTENT CORRESPONDS
  5786. C     ONLY TO THE TRANSLATIONAL DEGREES-OF-FREEDOM
  5787. C
  5788. C
  5789.   560 ND=18
  5790.       DO 640 N=1,NUME
  5791.       MTYPE=MATP(N)
  5792.       NEL=N
  5793.       RHO=DEN(MTYPE)
  5794.       THIC=THICI(N)
  5795.       IF (IMASS.EQ.1) GO TO 570
  5796.       CALL ECHECK (LM(1,N),ND,ICODE,IUPDT)
  5797.       IF (ICODE.EQ.1) GO TO 640
  5798. C
  5799.   570 CALL TRAN (N,XYZ(1,N))
  5800.       CALL AREAT (XYZ(1,N))
  5801.       IF (IMASS.EQ.2) GO TO 665
  5802. C
  5803. C     LUMPED MASS MATRIX   -   XM(18)
  5804. C
  5805.       DO 650 K=1,18
  5806.   650 XM(K)=0.
  5807.       XMLUMP=RHO*THIC*TWOA/6.
  5808.       IM=0
  5809.       DO 655 J=1,3
  5810.       DO 660 I=1,3
  5811.   660 XM(I+IM)=XMLUMP
  5812.   655 IM=IM+6
  5813. C
  5814.       CALL ADDMA (A(N4),XM,LM(1,N),ND)
  5815.       GO TO 640
  5816. C
  5817. C     CONSISTENT MASS MATRIX  -  STORED IN  S(171)
  5818. C
  5819.   665 DGMASS=RHO*THIC*TWOA/12.
  5820.       OFFDGM=0.5*DGMASS
  5821.       DO 666 I=1,171
  5822.   666 S(I)=0.
  5823.       INS=1
  5824.       JNS=94
  5825.       KNS=151
  5826.       DO 670 K=1,3
  5827.       S(INS)=DGMASS
  5828.       S(INS+6)=OFFDGM
  5829.       S(INS+12)=OFFDGM
  5830.       S(JNS)=DGMASS
  5831.       S(JNS+6)=OFFDGM
  5832.       S(KNS)=DGMASS
  5833.       INS=INS+19-K
  5834.       JNS=JNS+13-K
  5835.       KNS=KNS+7-K
  5836.   670 CONTINUE
  5837. C
  5838.       IF (NEGSKS.EQ.0) GO TO 685
  5839.       IF (ISKEW(1,N).LT.0) GO TO 685
  5840.       J=1
  5841.       DO 672 I=1,3
  5842.       ILSK(J)=ISKEW(I,N)
  5843.       ILSK(J+1)=ISKEW(I,N)
  5844.   672 J=J+2
  5845.       CALL ATKA (RSDCOS,S,ILSK,6,3)
  5846.   685 CALL ADDBAN (A(N2),A(N1),S,RE,LM(1,N),ND,1)
  5847. C
  5848.   640 CONTINUE
  5849. C
  5850.       RETURN
  5851. C
  5852. C
  5853. C     A S S E M B L E   N O N L I N E A R   F I N A L   S T I F F -
  5854. C     N E S S   A N D   E F F E C T I V E   L O A D
  5855. C
  5856. C
  5857.   700 ND=NDM
  5858. C
  5859.       DO 710 N=1,NUME
  5860. C
  5861.       NEL=N
  5862.       MTYPE=MATP(N)
  5863.       THIC=THICI(N)
  5864.       IF (MODEL.EQ.2) BETE=BETA(N)
  5865. C
  5866.       CALL ECHECK (LM(1,N),ND,ICODE,IUPDT)
  5867. C
  5868.       IF (ICODE.EQ.1) IELCPL=IELCPL+1
  5869.       IF (ICODE.EQ.1) GO TO 710
  5870.       IF (IDEATH.EQ.0) GO TO 720
  5871. C
  5872. C     BIRTH AND DEATH OPTION ACTIVE
  5873. C
  5874.       ETIM=DABS(ETIMV(N))
  5875.       IF (IDEATH.EQ.2) GO TO 715
  5876.       IF (TIME.LT.ETIM) GO TO 710
  5877.       IF (ETIMV(N).GE.0) GO TO 720
  5878.       ETIMV(N)=ETIM
  5879. C
  5880.       DO 718 K=1,ND
  5881.       I=LM(K,N)
  5882.       IF (I.EQ.0) GO TO 718
  5883.       IF (I.LT.0) I=NEQ-I
  5884.       EDISB(K,N)=X(I)
  5885.   718 CONTINUE
  5886.       IF (NEGSKS.LT.1) GO TO 720
  5887.       IF (ISKEW(1,N).LT.0) GO TO 720
  5888.       J=1
  5889.       DO 714 I=1,3
  5890.       ILSK(J)=ISKEW(I,N)
  5891.       ILSK(J+1)=ISKEW(I,N)
  5892.   714 J=J+2
  5893.       CALL DIRCOS (RSDCOS,EDISB(1,N),ILSK,6,3,1)
  5894.       GO TO 720
  5895.   715 IF (TIME.GT.ETIM) GO TO 710
  5896. C
  5897.   720 DO 722 L=1,NDMX
  5898.   722 XXX(L)=XYZ(L,N)
  5899. C
  5900.       DO 730 I=1,ND
  5901.       EDIS(I)=0.
  5902.       EDISI(I)=0.
  5903.       EDIST(I)=0.
  5904.       II=LM(I,N)
  5905.       IF (II) 733,730,737
  5906.   733 II=NEQ-II
  5907.   737 EDIS(I)=X(II)
  5908.   730 CONTINUE
  5909. C
  5910.       IF (NEGSKS.LT.1) GO TO 735
  5911.       IF (ISKEW(1,N).LT.0) GO TO 735
  5912.       J=1
  5913.       DO 736 I=1,3
  5914.       ILSK(J)=ISKEW(I,N)
  5915.       ILSK(J+1)=ISKEW(I,N)
  5916.   736 J=J+2
  5917.       CALL DIRCOS (RSDCOS,EDIS,ILSK,6,3,1)
  5918. C
  5919.   735 IF (IDEATH.NE.1) GO TO 740
  5920.       DO 745 I=1,ND
  5921.   745 EDIS(I)=EDIS(I) - EDISB(I,N)
  5922.       IX=0
  5923.       IB=0
  5924.       DO 747 I=1,3
  5925.       DO 746 J=1,3
  5926.   746 XXX(J+IX)=XXX(J+IX) + EDISB(J+IB,N)
  5927.       IX=IX+3
  5928.   747 IB=IB+6
  5929. C
  5930.   740 IF (INDNL.LE.1 .AND. MODEL.LE.2) GO TO 750
  5931.       DO 754 L=1,ND
  5932.       EDISI(L)=EDIS(L)-PDIS(L,N)
  5933.       EDIST(L)=PDIS(L,N)
  5934.       IF (ICOUNT.LE.2 .AND. IUPDT.EQ.0) PDIS(L,N)=EDIS(L)
  5935.   754 CONTINUE
  5936. C
  5937.   750 CONTINUE
  5938. C
  5939.       CALL PLSTIF (XXX,PROP(1,MTYPE),ELM(1,N),WA(1,N),NIPT,IDW)
  5940. C
  5941.       IF (NEGSKS.LT.1) GO TO 760
  5942.       IF (ISKEW(1,N).LT.0) GO TO 760
  5943.       CALL DIRCOS (RSDCOS,RE,ILSK,6,3,2)
  5944. C
  5945.   760 MADR=N3
  5946.       IF (ICOUNT.EQ.3) MADR=N5
  5947.       CALL ADDBAN (A(MADR),A(N1),S,RE,LM(1,N),ND,2)
  5948. C
  5949.       IF (ICOUNT-2) 770,770,710
  5950.   770 IF (IREF) 710,780,710
  5951.   780 IF (NEGSKS.LT.1) GO TO 790
  5952.       IF (ISKEW(1,N).LT.0) GO TO 790
  5953.       CALL ATKA (RSDCOS,S,ILSK,6,3)
  5954. C
  5955.   790 CALL ADDBAN (A(N4),A(N1),S,RE,LM(1,N),ND,1)
  5956. C
  5957.   710 CONTINUE
  5958.       IF (IELCPL.EQ.NUME) IELCPL=-1
  5959. C
  5960.       RETURN
  5961. C
  5962. C
  5963. C     S T R E S S  C A L C U L A T I O N S
  5964. C
  5965. C
  5966. C
  5967. C     *** DATA PORTHOLE (START) ***
  5968. C
  5969.   800 IF (JNPORT.EQ.0 .OR.KPLOTE.NE.0) GO TO 805
  5970.       RECLAB=RECLB5
  5971.       WRITE (LU3) RECLAB,NG,(NPAR(I),I=1,20),KSTEP,TIME,NEGL,NSUB
  5972. C
  5973. C     *** DATA PORTHOLE (END) ***
  5974. C
  5975.   805 IPRNT=0
  5976.       ND=18
  5977. C
  5978.       DO 810 N=1,NUME
  5979.       NEL=N
  5980. C
  5981.       IF (IDEATH.EQ.0) GO TO 825
  5982.       ETIM=DABS(ETIMV(N))
  5983.       IF (IDEATH.EQ.2) GO TO 815
  5984.       IF (TIME.LT.ETIM) GO TO 810
  5985.       GO TO 825
  5986.   815 IF (TIME.GT.ETIM) GO TO 810
  5987. C
  5988.   825 IPST=IPS(N)
  5989.       IF (IPST.EQ.0) GO TO 810
  5990.       IF (IPRI.NE.0) GO TO 828
  5991.       IPRNT=IPRNT+1
  5992.       IF (IPRNT.NE.1) GO TO 828
  5993.       WRITE (6,2500) NG
  5994.       IF (MODEL.EQ.3) GO TO 827
  5995.       WRITE (6,2800)
  5996.       GO TO 828
  5997.   827 WRITE (6,2802)
  5998.   828 MTYPE=MATP(N)
  5999.       THIC=THICI(N)
  6000.       IF (MODEL.EQ.2) BETE=BETA(N)
  6001. C
  6002.       DO 830 I=1,ND
  6003.       EDIS(I)=0.
  6004.       EDISI(I)=0.
  6005.       EDIST(I)=0.
  6006.       II=LM(I,N)
  6007.       IF (II.EQ.0) GO TO 830
  6008.       IF (II.LT.0) II=NEQ-II
  6009.       EDIS(I)=X(II)
  6010.   830 CONTINUE
  6011. C
  6012.       IF (NEGSKS.LT.1) GO TO 832
  6013.       IF (ISKEW(1,N).LT.0) GO TO 832
  6014.       J=1
  6015.       DO 829 I=1,3
  6016.       ILSK(J)=ISKEW(I,N)
  6017.       ILSK(J+1)=ISKEW(I,N)
  6018.   829 J=J+2
  6019.       CALL DIRCOS (RSDCOS,EDIS,ILSK,6,3,1)
  6020. C
  6021.   832 DO 840 I=1,NDMX
  6022.   840 XXX(I)=XYZ(I,N)
  6023. C
  6024.       IF (IDEATH.NE.1) GO TO 838
  6025. C
  6026. C     BIRTH OPTION ACTIVE - UPDATE DISPLACEMENTS AND COORDINATES
  6027. C
  6028.       DO 835 I=1,ND
  6029.   835 EDIS(I) = EDIS(I) - EDISB(I,N)
  6030. C
  6031.       MX=0
  6032.       MD=0
  6033.       DO 844 I=1,3
  6034.       DO 842 J=1,3
  6035.   842 XXX(MX+J)=XXX(MX+J)  +  EDISB(MD+J,N)
  6036.       MX=MX+3
  6037.   844 MD=MD+6
  6038. C
  6039.   838 IF (INDNL.LE.1 .AND. MODEL.LE.2) GO TO  848
  6040.       DO 846 L=1,ND
  6041.       EDISI(L)=EDIS(L)-PDIS(L,N)
  6042.   846 EDIST(L)=PDIS(L,N)
  6043. C
  6044.   848 CALL TRAN (N,XXX)
  6045.       CALL AREAT (XXX)
  6046. C
  6047.       IF (INDNL-1) 861,857,850
  6048. C
  6049. C     LARGE DISPLACEMENT ANALYSIS - (INDNL.EQ.2)
  6050. C     UPDATE NODAL COORDINATES AND CALCULATE LOCAL DISPLACEMENTS
  6051. C     AND/OR DISPLACEMENT INCREMENTS
  6052. C
  6053.   850 KX=0
  6054.       KD=0
  6055.       DO 854 I=1,3
  6056.       DO 852 J=1,3
  6057.       XXT(KX+J)=XXX(KX+J) + EDIST(KD+J)
  6058.   852 XXX(KX+J)=XXX(KX+J) + EDIS (KD+J)
  6059.       KX=KX+3
  6060.   854 KD=KD+6
  6061. C
  6062.       CALL GNLDIS (N,MODEL,XXT,XXX)
  6063. C
  6064.       GO TO 868
  6065. C
  6066. C     MATERIAL NONLINEAR ONLY ANALYSIS - (INDNL.EQ.1)
  6067. C     TRANSFORM DISP INC TO UNDEFORMED CONFIGURATION
  6068. C
  6069.   857 IF (MODEL.LE.2) GO TO 861
  6070.       IR=0
  6071.       IE=0
  6072.       DO 858 K=1,3
  6073.       DO 859 I=1,3
  6074.       TX=0.
  6075.       RX=0.
  6076.       DO 860 J=1,3
  6077.       TX=TX + T(I,J)*EDISI(J+IE)
  6078.   860 RX=RX + T(I,J)*EDISI(J+IE+3)
  6079.       TDIS(I+IR)=TX
  6080.   859 RDIS(I+IR)=RX
  6081.       IR=IR+3
  6082.   858 IE=IE+6
  6083.       GO TO 868
  6084. C
  6085. C
  6086. C     LINEAR ELASTIC ANALYSIS - (INDNL.EQ.0)
  6087. C     TRANSFORM DISPLACEMENT TO UNDEFORMED CONFIGURATION
  6088. C
  6089.   861 IR=0
  6090.       IE=0
  6091.       DO 862 K=1,3
  6092.       DO 864 I=1,3
  6093.       TX=0.
  6094.       RX=0.
  6095.       DO 865 J=1,3
  6096.       TX=TX + T(I,J)*EDIS(J+IE)
  6097.   865 RX=RX + T(I,J)*EDIS(J+IE+3)
  6098.       TDIS(I+IR)=TX
  6099.   864 RDIS(I+IR)=RX
  6100.       IR=IR+3
  6101.   862 IE=IE+6
  6102. C
  6103. C     CALCULATE MEMBRANE STRAINS
  6104. C
  6105.   868 CALL STRCSE (INDNL)
  6106. C
  6107. C     CALCULATE STRESS STRAIN LAW AND MEMBRANE FORCES FOR LINEAR MODELS
  6108. C     (MODEL.EQ.1 OR 2)
  6109. C
  6110.       IF (MODEL.GT.2) GO TO 880
  6111. C
  6112.       CALL PROPTL (MODEL,PROP(1,MTYPE),BETE)
  6113. C
  6114.       DO 869 I=1,2
  6115.       TX=0.
  6116.       DO 867 J=1,2
  6117.   867 TX=TX + C(I,J)*EPS(J)
  6118.   869 FN(I)=TX
  6119.       FN(3)=C(3,3)*EPS(3)
  6120. C
  6121. C     PRINT FORCES AND MOMENTS
  6122. C
  6123.       IF (IPRI.EQ.0)  WRITE (6,2039) N,(FN(K),K=1,3)
  6124. C
  6125. C     CALCULATE MOMENTS AT *IPST* LOCATIONS
  6126. C
  6127.       IF (INDNL.GT.0) GO TO 880
  6128.       IF (NTABLE.EQ.0) GO TO 880
  6129. C
  6130.       DO 870 II=1,NTH
  6131.       I=ITABLE(II,IPST)
  6132.       IF (I.EQ.0) GO TO 870
  6133.       PSI=PSITBL(I)
  6134.       ETA=ETATBL(I)
  6135. C
  6136.       CALL STRDKT (PSI,ETA)
  6137. C
  6138.       CALL PROPTN (MODEL,PROP(1,MTYPE))
  6139.       IF (IPRI.EQ.0)  WRITE (6,2040) I,(TM(J),J=1,3)
  6140. C
  6141. C ***  DATA PORTHOLE  (START)
  6142. C
  6143.       RECLAB=RECLB6
  6144.       IF (JNPORT.NE.0 .AND. KPLOTE.EQ.0)
  6145.      1  WRITE (LU3) RECLAB,I,FN,TM,EPS,CURV
  6146. C
  6147. C ***  DATA PORTHOLE  (END)
  6148. C
  6149.   870 CONTINUE
  6150.       GO TO 810
  6151. C
  6152. C     CALCULATE MOMENTS AT INTEGRATION POINTS
  6153. C     PRINT FORCES AND MOMENTS
  6154. C
  6155.   880 RECLAB=RECLB6
  6156. C
  6157.       KELM=0
  6158. C
  6159.       DO 882 INT=1,NINT
  6160.       IPT=INT
  6161.       PSI=PSIV(IP+INT)
  6162.       ETA=ETAV(IP+INT)
  6163. C
  6164.       CALL STRDKT (PSI,ETA)
  6165.       IF (MODEL.LE.2) GO TO 886
  6166. C
  6167.       JWA=IDW*(INT-1)
  6168.       DO 887 KWA=1,IDW
  6169.   887 WAA(KWA)=WA(JWA+KWA,N)
  6170. C
  6171.   886 CALL PROPTN (MODEL,PROP(1,MTYPE))
  6172. C
  6173.       IF (MODEL.GT.2) GO TO 889
  6174.       IF (INDNL.LE.1) GO TO 892
  6175. C
  6176. C     ADD MOMENT INC TO MOMENTS AT LAST TIME STEP FOR LARGE
  6177. C     DISPLACEMENT ELASTIC ANALYSIS
  6178. C
  6179.       DO 888 KM=1,3
  6180.   888 TM(KM)=ELM(KM+KELM,N) + TM(KM)
  6181.       KELM=KELM+3
  6182. C
  6183.   892 IF (IPRI.EQ.0)  WRITE (6,2040) INT,(TM(L),L=1,3)
  6184. C
  6185. C ***  DATA PORTHOLE  (START)
  6186. C
  6187.   889 CONTINUE
  6188.       IF (JNPORT.EQ.0 .OR. KPLOTE.NE.0) GO TO 882
  6189.       WRITE (LU3) RECLAB,INT,FN,TM,EPS,CURV
  6190. C
  6191. C ***  DATA PORTHOLE  (END)
  6192. C
  6193.   882 CONTINUE
  6194.   810 CONTINUE
  6195. C
  6196. C
  6197. C
  6198.  1000 FORMAT (I5,4F10.0)
  6199.  1010 FORMAT (8F10.0)
  6200.  1100 FORMAT (4I5,3F10.0,I5)
  6201.  1200 FORMAT (16I5)
  6202. C
  6203.  2000 FORMAT (//36H M A T E R I A L   C O N S T A N T S //)
  6204.  2005 FORMAT (26H MATERIAL PROPERTY SET NO., I5//
  6205.      1        16H      DENSITY = ,E15.6//)
  6206.  2010 FORMAT (21H ISOTROPIC PROPERTIES  /)
  6207.  2015 FORMAT (21H YOUNGS MODULUS  E = ,E15.6/
  6208.      1        21H POISSONS RATIO NU = ,E15.6//)
  6209.  2020 FORMAT (23H ORTHOTROPIC PROPERTIES   /)
  6210.  2025 FORMAT (16H MODULUS  EAA = ,E15.6/
  6211.      1        16H MODULUS  EAB = ,E15.6/
  6212.      2        16H MODULUS  EBB = ,E15.6/
  6213.      3        16H MODULUS  GAB = ,E15.6//)
  6214.  2030 FORMAT (28H ELASTIC-PLASTIC PROPERTIES  /)
  6215.  2035 FORMAT (25H YOUNGS MODULUS      E = ,E15.6/
  6216.      1        25H POISSONS RATIO     NU = ,E15.6/
  6217.      2        25H YIELD STRESS    SIG-Y = ,E15.6/
  6218.      3        25H HARDENING MODULUS  ET = ,E15.6/
  6219.      4        25H COUPLING FACTOR GAMMA = ,E15.6//)
  6220.  2039 FORMAT (//I6,14X,3(E13.6,4X))
  6221.  2040 FORMAT (10X,I5,52X,3(4X,E13.6))
  6222.  2045 FORMAT (1H ,4X,5HPROP(I2,10H) ...... =,6E15.6//)
  6223.  2050 FORMAT(///40H S T R E S S   O U T P U T   T A B L E  //
  6224.      1          10H     TABLE,9X,1H1,9X,1H2,9X,1H3,9X,1H4,9X,1H5,
  6225.      2          9X,1H6,9X,1H7/)
  6226.  2055 FORMAT (10I10)
  6227.  2200 FORMAT (///38H E L E M E N T   I N F O R M A T I O N//
  6228.      3           5X,1HN,4X,3HIPS,3X,4HMTYP,4X,2HKG,6X,3HBET,8X,
  6229.      4           10H   THIC   ,5X,5HETIME,4X,6HINTLOC,9X,
  6230.      5           28H NODE(1)  NODE(2)  NODE(3)      //
  6231.      6           58X,11HINTEGRATION,17X,19HGLOBAL  COORDINATES/
  6232.      7           61X,5HPOINT,16X,1HX,12X,1HY,12X,1HZ)
  6233.  2262 FORMAT (1H ,59X,I4,12X,2(E11.4,2X),E11.4)
  6234.  2210 FORMAT (/2I6,2I7,3X,2(E11.4,2X),E11.4,I5,12X,3(I6,3X))
  6235.  2400 FORMAT (///16H ELEMENT GROUP =,I2,22H   (PLATE  ELEMENT)   /
  6236.      1           19H ALTHOUGH NPAR(6) =,I2,22H, NONE OF THE ELEMENTS/
  6237.      2           49H IN THIS GROUP REFERS TO SKEW COORDINATE SYSTEM. /
  6238.      3           50H IT IS ADVISED THAT NPAR(6) BE SET TO ZERO TO SAVE,
  6239.      4           15H STORAGE SPACE.//
  6240.      5           39H THIS IS ONLY AN INFORMATIONAL MESSAGE.///)
  6241.  2410 FORMAT (///16H ELEMENT GROUP =,I2,22H   (ELEMENT PLATE)     /
  6242.      2           42H SINCE NODES OF THIS ELEMENT REFER TO SKEW,
  6243.      3           48H COORDINATE SYSTEM(S), NPAR(6) MUST BE SET TO 1.//
  6244.      4           8H S T O P//)
  6245.  2800 FORMAT (//8H ELEMENT,9H   OUTPUT,10X,17HMEMBRANE FORCES  ,
  6246.      1          18H (PER UNIT LENGTH),15X,16H BENDING MOMENTS  ,
  6247.      A          20H   (PER UNIT LENGTH)  /
  6248.      2          1H ,9X,8HLOCATION/1H ,7X,12HFOR  MOMENTS,6X,2HNX,15X,
  6249.      3          2HNY,15X,3HNXY,14X,2HMX,15X,2HMY,15X,3HMXY//)
  6250.  2802 FORMAT (//8H ELEMENT,5H  INT,8H   STATE,14X,15HMEMBRANE FORCES,3X,
  6251.      1          17H(PER UNIT LENGTH),15X,16H BENDING MOMENTS,3X,
  6252.      2          17H(PER UNIT LENGTH)/8X,5H   PT,21X,2HNX,15X,2HNY,
  6253.      3          15X,3HNXY,14X,2HMX,15X,2HMY,15X,3HMXY//)
  6254.  2310 FORMAT (///16H ELEMENT GROUP =,I2,18H (PLATE ELEMENTS)  /
  6255.      1        17H ELEMENT NUMBER =,I4/
  6256.      2        7H MTYP =,I3,27H IS GREATER THAN NPAR(16) =,I3/5H STOP)
  6257.  2315 FORMAT (///23H INPUT ERROR **********/
  6258.      1           19H SUBSTRUCTURE  NO =,I3/
  6259.      2           19H ELEMENT GROUP NO =,I3/
  6260.      3           31H FIRST ELEMENT NUMBER MUST BE 1)
  6261.  2500 FORMAT (1H1,48HS T R E S S   C A L C U L A T I O N S   F O R     ,
  6262.      1        27HE L E M E N T   G R O U P  ,I5,
  6263.      2        31H  ( PLATE TRIANGULAR ELEMENTS )  //)
  6264.  3401 FORMAT (//50H INPUT ERROR DETECTED IN (PLATEL/PLATE)            //
  6265.      1          19H ELEMENT GROUP NO =,I5/
  6266.      2          27H MATERIAL PROPERTY SET NO =,I5/
  6267.      2          38H ZERO OR NEGATIVE INITIAL YIELD STRESS  //)
  6268.  3402 FORMAT (//50H INPUT ERROR DETECTED IN (PLATEL/PLATE)            //
  6269.      1          19H ELEMENT GROUP NO =,I5/
  6270.      2          27H MATERIAL PROPERTY SET NO =,I5/
  6271.      3          44H HARDENING MODULUS (ET) GREATER OR EQUAL TO   ,
  6272.      4          44H YOUNG*S MODULUS (E) IS NOT ALLOWED           //)
  6273.  3403 FORMAT (//33H ERROR IN MATERIAL PROPERTY INPUT //
  6274.      1          15H *** STOP ***    //)
  6275. C
  6276.       RETURN
  6277. C
  6278.       END
  6279. C *CDC* *DECK INWA
  6280. C *UNI* )FOR,IS  N.INWA, R.INWA
  6281.       SUBROUTINE INWA (PROP,WA,IDW)
  6282. C
  6283.       IMPLICIT REAL*8 (A-H,O-Z)
  6284. C
  6285.       COMMON /DPR/    ITWO
  6286.       COMMON /ELINF / THIC,BETE,WAA(13),NEL,IP,NINT,IPT
  6287. C
  6288.       DIMENSION PROP(1),WA(IDW,1)
  6289. C
  6290. C     SET INITIAL STRESS RESULTANTS AND STRAINS TO ZERO
  6291. C     SET INITIAL STATE TO *ELASTIC*
  6292. C     WA(13,INT) IS THE SQUARE OF THE INITIAL YIELD STRESS
  6293. C
  6294. C
  6295.       DO 10 J=1,NINT
  6296.       DO 15 I=1,12
  6297.    15 WA(I,J)=0.0
  6298.    10 WA(13,J)=PROP(3)*PROP(3)
  6299. C
  6300.       RETURN
  6301. C
  6302. C
  6303.       END
  6304. C *CDC* *DECK PLSTIF
  6305. C *UNI* )FOR,IS  N.PLSTIF,  R.PLSTIF
  6306.       SUBROUTINE PLSTIF (XYZ,PROP,ELM,WA,NIPT,IDW)
  6307. C
  6308. C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
  6309. C .                                                                   .
  6310. C . P  R  O  G  R  A  M                                               .
  6311. C .                                                                   .
  6312. C .      TO CALCULATE THE PLATE STIFFNESS AND THE OUT-OF-BALANCE LOAD .
  6313. C .                                                                   .
  6314. C .      THE MEMBRANE BEHAVIOR IS REPRESENRED BY A CONSTANT STRAIN    .
  6315. C .      ELEMENT  (CST)                                               .
  6316. C .                                                                   .
  6317. C .      THE BENDING BEHAVIOR IS REPRESENTED BY A DISCRETE KIRCHHOFF  .
  6318. C .      ELEMENT  (DKT)                                               .
  6319. C .                                                                   .
  6320. C .      THE MEMBRANE AND BENDING ACTIONS ARE UNCOUPLED IN ELASTIC    .
  6321. C .      ANALYSIS (MODEL.LE.2)                                        .
  6322. C .                                                                   .
  6323. C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
  6324. C
  6325.       IMPLICIT REAL*8 (A-H,O-Z)
  6326. C
  6327.       COMMON /EL/     IND,ICOUNT,NPAR(20),NUMEG,NEGL,NEGNL,IMASS,IDAMP,
  6328.      1                ISTAT,NDOF,KLIN,IEIG,IMASSN,IDAMPN
  6329.       COMMON /VAR/    NG,MODEX,IUPDT,KSTEP,ITEMAX,IEQREF,ITE,KPRI,IREF,
  6330.      1                IEQUIT,IPRI,KPLOTN,KPLOTE
  6331.       COMMON /HAMMS / PSIV(14),ETAV(14),WGTV(14)
  6332.       COMMON /GEOPLT/ T(3,3),TWOA,X2,X3,Y3,BM(6),B(3,9)
  6333.       COMMON /PROPTY/ C(3,3),CD(3,3),D(3,3),YM,PV,ET,QTM
  6334.       COMMON /DISPLT/ EDIS(18),EDIST(18),EDISI(18),TDIS(9),RDIS(9)
  6335.       COMMON /STSPLT/ EPS(3),FN(3),CURV(3),TM(3)
  6336.       COMMON /FSTPLT/ RN(6),RM(9),RE(18),SML(21),SBL(45),S(171),
  6337.      1                SNL(6),SCL(54)
  6338.       COMMON /ELINF / THIC,BETE,WAA(13),NEL,IP,NINT,IPT
  6339.       COMMON /ILYSHN/ GAMMA,D11,D12,D22,D33,HA,THIC2,THIC3,THIC4,THICM
  6340. C
  6341.       DIMENSION XYZ(1),PROP(1),ELM(1),WA(IDW,1)
  6342.       DIMENSION XXT(9),XXX(9),BMU(3),BMV(3)
  6343. C
  6344.       EQUIVALENCE (NPAR(3),INDNL),(NPAR(5),ITYPT),(NPAR(10),ININT),
  6345.      1            (NPAR(15),MODEL),(NPAR(7),IDEBUG)
  6346. C
  6347.       IF (IND.GE.4) GO TO 200
  6348. C
  6349. C     E V A L U A T E   S T I F F N E S S   F O R   L I N E A R
  6350. C     A N A L Y S I S
  6351. C
  6352. C
  6353.       CALL TRAN (NEL,XYZ)
  6354.       CALL AREAT (XYZ)
  6355. C
  6356. C     FIND LINEAR STRESS STRAIN CONSTANTS
  6357. C
  6358.       CALL PROPTL (MODEL,PROP)
  6359. C
  6360. C     CALCULATE LINEAR MEMBRANE STIFFNESS IN CLOSED-FORM
  6361. C     CALCULATE BENDING STIFFNESS WITH NUMERICAL INTEGRATION SCHEME
  6362. C     SET AT ININT.EQ.2        (3 POINT INTEGRATION)
  6363. C
  6364.       DO 105 I=1,45
  6365.   105 SBL(I)=0.
  6366.       DO 115 I=1,6
  6367.   115 SNL(I)=0.
  6368. C
  6369.       WGT=TWOA/6.
  6370.       CALL STFCSE (WGT,MODEL)
  6371. C
  6372.       DO 180 INT=1,3
  6373.       PSI=PSIV(INT+1)
  6374.       ETA=ETAV(INT+1)
  6375.       CALL STFDKT (PSI,ETA,WGT)
  6376.   180 CONTINUE
  6377. C
  6378. C     ASSEMBLE AND TRANSFORM STIFFNESS TO GLOBAL SYSTEM
  6379. C
  6380.       CALL ASSEMK (MODEL)
  6381. C
  6382.       RETURN
  6383. C
  6384. C
  6385. C     F I N D   N O N L I N E A R   E L M E N T   M A T R I C E S
  6386. C
  6387. C
  6388.   200 CALL TRAN (NEL,XYZ)
  6389.       CALL AREAT (XYZ)
  6390.       IF (INDNL.EQ.2) GO TO 210
  6391. C
  6392. C     TRANSFORM DISPLACEMENTS (MODEL.LE.2) OR DISPLACEMENT INCREMENTS
  6393. C     (MODEL.GT.2) TO UNDEFORMED CONFIGURATION FOR SMALL DISPLACEMENT
  6394. C     ANALYSIS  (INDNL.EQ.1)
  6395. C
  6396.       IR=0
  6397.       IE=0
  6398.       IF (MODEL.LE.2) GO TO 205
  6399. C
  6400.       DO 204 K=1,3
  6401.       DO 202 I=1,3
  6402.       TX=0.
  6403.       RX=0.
  6404.       DO 203 J=1,3
  6405.       TX=TX + T(I,J)*EDISI(J+IE)
  6406.   203 RX=RX + T(I,J)*EDISI(J+IE+3)
  6407.       TDIS(I+IR)=TX
  6408.   202 RDIS(I+IR)=RX
  6409.       IR=IR+3
  6410.   204 IE=IE+6
  6411.       GO TO 350
  6412. C
  6413.   205 DO 207 K=1,3
  6414.       DO 208 I=1,3
  6415.       TX=0.
  6416.       RX=0.
  6417.       DO 209 J=1,3
  6418.       TX=TX + T(I,J)*EDIS(J+IE)
  6419.   209 RX=RX + T(I,J)*EDIS(J+IE+3)
  6420.       TDIS(I+IR)=TX
  6421.   208 RDIS(I+IR)=RX
  6422.       IR=IR+3
  6423.   207 IE=IE+6
  6424.       GO TO 350
  6425. C
  6426. C     LARGE DISPLACEMENTS/ROTATIONS SMALL STRAINS ANALYSIS -
  6427. C     UPDATED LAGRANGIAN FORMULATION     (INDNL.EQ.2)
  6428. C
  6429.   210 IR=0
  6430.       IE=0
  6431.       DO 230 I=1,3
  6432.       DO 220 J=1,3
  6433.       XXT(J+IR)=XYZ(J+IR) + EDIST(J+IE)
  6434.   220 XXX(J+IR)=XYZ(J+IR) + EDIS (J+IE)
  6435.       IR=IR+3
  6436.   230 IE=IE+6
  6437. C
  6438. C     CALCULATE UPDATED LOCAL DISPLACEMENT INC
  6439. C
  6440.       CALL GNLDIS (NEL,MODEL,XXT,XXX)
  6441. C
  6442. C     FIND MEMBRANE STRAIN
  6443. C
  6444.   350 AR=0.5*TWOA
  6445. C
  6446.       CALL STRCSE (INDNL)
  6447. C
  6448. C     CALCULATE STRESS STRAIN LAW AND MEMBRANE FORCES FOR
  6449. C     LINEAR MODELS     (MODEL.EQ.1 OR 2)
  6450. C
  6451.       IF (MODEL.GE.3) GO TO 400
  6452. C
  6453.       CALL PROPTL (MODEL,PROP)
  6454. C
  6455.       DO 380 I=1,2
  6456.       TX=0.
  6457.       DO 360 J=1,2
  6458.   360 TX=TX + C(I,J)*EPS(J)
  6459.   380 FN(I)=TX
  6460.       FN(3)=C(3,3)*EPS(3)
  6461. C
  6462. C     CALCULATE ELEMENT NODAL FORCE VECTOR AND STIFFNESS.
  6463. C
  6464. C     IN ELASTIC ANALYSIS (MODEL.LE.2), THE MEMBRANE CONTRIBUTIONS
  6465. C     ARE EVALUATED IN CLOSED-FORM AND THE BENDING CONTRIBUTIONS ARE
  6466. C     EVALUATED NUMERICALLY.
  6467. C
  6468. C     IN ELASTIC-PLASTIC ANALYSIS, ALL CONTRIBUTIONS ARE EVALUATED
  6469. C     USING NUMERICAL INTEGRATION.
  6470. C
  6471.   400 DO 430 I=1,21
  6472.   430 SML(I)=0.
  6473.       DO 440 I=1,45
  6474.   440 SBL(I)=0.
  6475.       DO 460 J=1,6
  6476.   460 SNL(J)=0.
  6477.       DO 450 I=1,54
  6478.   450 SCL(I)=0.
  6479.       DO 470 K=1,6
  6480.   470 RN(K)=0.
  6481.       DO 480 I=1,9
  6482.   480 RM(I)=0.
  6483. C
  6484.       KELM=0
  6485. C
  6486.       DO 500 INT=1,NINT
  6487.       PSI=PSIV(IP+INT)
  6488.       ETA=ETAV(IP+INT)
  6489.       WGT=WGTV(IP+INT)*AR
  6490.       IPT=INT
  6491. C
  6492.       CALL STRDKT (PSI,ETA)
  6493.       IF (MODEL.LE.2) GO TO 533
  6494. C
  6495. C     CALCULATE STRESS-STRAIN LAW FOR NONLINEAR MATERIAL MODELS AND
  6496. C     ELEMENT FORCE AND MOMENT INC
  6497. C
  6498.       DO 532 I=1,IDW
  6499.   532 WAA(I)=WA(I,INT)
  6500.   533 CALL PROPTN (MODEL,PROP)
  6501. C
  6502.       IF (ICOUNT.EQ.3 .OR. MODEL.LE.2) GO TO 535
  6503. C
  6504.       DO 534 I=1,IDW
  6505.   534 WA(I,INT)=WAA(I)
  6506.   535 CONTINUE
  6507. C
  6508. C
  6509. C     ADD MOMENT INC TO MOMENTS AT LAST TIME STEP FOR LARGE DISP-
  6510. C     LACEMENT ELASTIC ANALYSIS
  6511. C
  6512.       IF (INDNL.LE.1 .OR. MODEL.GE.3) GO TO 555
  6513. C
  6514.       DO 540 K=1,3
  6515.       TM(K)=TM(K) + ELM(K+KELM)
  6516.       IF (ICOUNT.LE.2.AND.IUPDT.EQ.0) ELM(K+KELM)=TM(K)
  6517.   540 CONTINUE
  6518.       KELM=KELM+3
  6519. C
  6520.   555 DO 560 I=1,9
  6521.       DO 580 J=1,3
  6522.   580 RM(I)=RM(I) + WGT*B(J,I)*TM(J)
  6523.   560 CONTINUE
  6524. C
  6525. C     CALCULATE AND ASSEMBLE ELEMENT FORCE VECTOR.  FOR ELASTIC ANA-
  6526. C     LYSIS THE MEMBRANE CONTRIBUTIONS ARE ASSEMBLED ONLY AT THE
  6527. C     LAST INTEGRATION POINT
  6528. C
  6529.       IF(MODEL.GT.2) GO TO 600
  6530.       IF (INT.LT.NINT) GO TO 640
  6531. C
  6532.       DO 620 I=1,3
  6533.       RN(I)=AR*(BM(I)*FN(1) + BM(I+3)*FN(3))
  6534.   620 RN(I+3)=AR*(BM(I)*FN(3) + BM(I+3)*FN(2))
  6535. C
  6536.       CALL ASSEMF (MODEL,INDNL)
  6537. C
  6538.       GO TO 640
  6539. C
  6540.   600 DO 630 I=1,3
  6541.       RN(I)=RN(I) + WGT*(BM(I)*FN(1) + BM(I+3)*FN(3))
  6542.   630 RN(I+3)=RN(I+3) + WGT*(BM(I)*FN(3) + BM(I+3)*FN(2))
  6543. C
  6544.       IF (INT.EQ.NINT) CALL ASSEMF (MODEL,INDNL)
  6545. C
  6546. C     CALCULATE STIFFNESS IF NECESSARY
  6547. C
  6548.   640 IF (ICOUNT-2) 660,660,500
  6549.   660 IF (IREF) 500,680,500
  6550. C
  6551. C     CALCULATE BENDING CONTRIBUTION
  6552. C
  6553.   680 CALL STFDKT (PSI,ETA,WGT)
  6554. C
  6555.       IF (MODEL.LE.2) GO TO 780
  6556. C
  6557. C     CALCULATE MEMBRANE-BENDING COUPLING TERMS WITH ELASTIC-
  6558. C     PLASTIC MODELS  (MODEL.GE.3)
  6559. C
  6560.       ISC=0
  6561.       IU=1
  6562.       IV=4
  6563.       DO 768 L=1,3
  6564.       DO 770 I=1,3
  6565.       BMU(I)=BM(IU)*CD(1,I) + BM(IV)*CD(3,I)
  6566.   770 BMV(I)=BM(IV)*CD(2,I) + BM(IU)*CD(3,I)
  6567.       MSC=3*L-2
  6568.       DO 772 J=1,9
  6569.       CX=0.
  6570.       DO 774 K=1,3
  6571.   774 CX=CX + BMU(K)*B(K,J)
  6572.       ISC=ISC+1
  6573.   772 SCL(ISC)=SCL(ISC) + CX*WGT
  6574.       DO 776 J=1,9
  6575.       CX=0.
  6576.       DO 778 K=1,3
  6577.   778 CX=CX + BMV(K)*B(K,J)
  6578.       ISC=ISC+1
  6579.   776 SCL(ISC)=SCL(ISC) + CX*WGT
  6580.       IU=IU+1
  6581.   768 IV=IV+1
  6582. C
  6583. C     CALCULATE MEMBRANE CONTRIBUTION FOR ELASTIC-PLASTIC MODEL
  6584. C
  6585.       CALL STFCSE (WGT,MODEL)
  6586. C
  6587.   780 IF (INDNL.LE.1) GO TO 795
  6588. C
  6589. C     CALCULATE GEOMETRIC NONLINEAR STIFFNESS MATRIX IN LARGE
  6590. C     DISPLACEMENT ANALYSIS  (INDNL.EQ.2)
  6591. C
  6592.       IF (MODEL.GT.2) GO TO 792
  6593.       IF (INT.LT.NINT) GO TO 500
  6594. C
  6595.       FAC3=0.5/TWOA
  6596.       SS11=(Y3*Y3*FN(1) + X3*X3*FN(2) - 2.*X3*Y3*FN(3))*FAC3
  6597.       SS12=(TWOA*FN(3) - X2*X3*FN(2))*FAC3
  6598.       SS22=X2*X2*FN(2)*FAC3
  6599. C
  6600.       SNL(1)= SS11+SS12+SS12+SS22
  6601.       SNL(2)=-SS11-SS12
  6602.       SNL(3)=-SS12-SS22
  6603.       SNL(4)= SS11
  6604.       SNL(5)= SS12
  6605.       SNL(6)= SS22
  6606. C
  6607.       GO TO 797
  6608. C
  6609.   792 FAC3=WGT/(TWOA*TWOA)
  6610.       SS11=(Y3*Y3*FN(1) + X3*X3*FN(2) - 2.*X3*Y3*FN(3))*FAC3
  6611.       SS12=(TWOA*FN(3) - X2*X3*FN(2))*FAC3
  6612.       SS22=X2*X2*FN(2)*FAC3
  6613. C
  6614.       SNL(1)=SNL(1)+SS11+SS12+SS12+SS22
  6615.       SNL(2)=SNL(2)-SS11-SS12
  6616.       SNL(3)=SNL(3)-SS12-SS22
  6617.       SNL(4)=SNL(4)+SS11
  6618.       SNL(5)=SNL(5)+SS12
  6619.       SNL(6)=SNL(6)+SS22
  6620. C
  6621.       GO TO 795
  6622. C
  6623. C     CALCULATE LINEAR MEMBRANE STIFFNESS MATRIX  AND  ASSEMBLE AND
  6624. C     CALCULATE ELEMENT GLOBAL STIFFNESS  WHEN INT.EQ.NINT
  6625. C
  6626.   795 IF (INT.LT.NINT) GO TO 500
  6627. C
  6628.   797 IF (MODEL.LE.2) CALL STFCSE (WGT,MODEL)
  6629.       CALL ASSEMK (MODEL)
  6630. C
  6631.   500 CONTINUE
  6632. C
  6633.       RETURN
  6634. C
  6635.       END
  6636. C *CDC* *DECK TRAN
  6637. C *UNI* )FOR,IS  N.TRAN,  R.TRAN
  6638.       SUBROUTINE TRAN (N,XYZ)
  6639. C
  6640. C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
  6641. C .                                                                   .
  6642. C .   P  R  O  G  R  A  M                                             .
  6643. C .                                                                   .
  6644. C .      TO CALCULATE THE GLOBAL TO LOCAL TRANSFORMATION MATRIX  T    .
  6645. C .      USING THE GLOBAL NODAL COORDINATES  XYZ                      .
  6646. C .                                                                   .
  6647. C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
  6648. C
  6649.       IMPLICIT REAL*8 (A-H,O-Z)
  6650. C
  6651.       COMMON /VAR/   NG,MODEX,IUPDT,KSTEP,ITEMAX,IEQREF,ITE,KPRI,IREF,
  6652.      1               IEQUIT,IPRI,KPLOTN,KPLOTE
  6653.       COMMON /GEOPLT/ T(3,3),TWOA,X2,X3,Y3,BM(6),B(3,9)
  6654. C
  6655.       DIMENSION XYZ(3,3)
  6656. C
  6657.       TOL=0.1D-9
  6658. C
  6659.       GX21=XYZ(1,2) - XYZ(1,1)
  6660.       GX31=XYZ(1,3) - XYZ(1,1)
  6661.       GY21=XYZ(2,2) - XYZ(2,1)
  6662.       GY31=XYZ(2,3) - XYZ(2,1)
  6663.       GZ21=XYZ(3,2) - XYZ(3,1)
  6664.       GZ31=XYZ(3,3) - XYZ(3,1)
  6665. C
  6666.       XY = GX21*GY31 - GY21*GX31
  6667.       YZ = GY21*GZ31 - GZ21*GY31
  6668.       ZX = GZ21*GX31 - GX21*GZ31
  6669. C
  6670.       SX = DSQRT(GX21*GX21 + GY21*GY21 + GZ21*GZ21)
  6671.       IF (SX.LT.TOL)  GO TO 60
  6672.       SZ=DSQRT(YZ*YZ + ZX*ZX + XY*XY)
  6673.       IF (SZ.LT.TOL) GO TO 70
  6674.       SY=SZ*SX
  6675. C
  6676.       T(1,1)= GX21/SX
  6677.       T(1,2)= GY21/SX
  6678.       T(1,3)= GZ21/SX
  6679.       T(2,1)=(GZ21*ZX - GY21*XY)/SY
  6680.       T(2,2)=(GX21*XY - GZ21*YZ)/SY
  6681.       T(2,3)=(GY21*YZ - GX21*ZX)/SY
  6682.       T(3,1)= YZ/SZ
  6683.       T(3,2)= ZX/SZ
  6684.       T(3,3)= XY/SZ
  6685. C
  6686.       RETURN
  6687. C
  6688.    60 WRITE (6,2000) NG,N,SX
  6689.       STOP
  6690.    70 WRITE (6,2050) NG,N,SZ
  6691.       STOP
  6692. C
  6693.  2000 FORMAT (////14H *** ERROR ***/18H ELEMENT GROUP NO.,I5/
  6694.      1        50H ZERO OR NEGATIVE JACOBIAN DETERMINANT FOR ELEMENT,
  6695.      2        I5,10X,22H LENGTH OF SIDE 1-2=  ,F10.4)
  6696.  2050 FORMAT (////14H *** ERROR ***/18H ELEMENT GROUP NO.,I5/
  6697.      1        50H ZERO OR NEGATIVE JACOBIAN DETERMINANT FOR ELEMENT,
  6698.      2        I5,10X,18H TWICE THE AREA=  ,F10.4)
  6699. C
  6700. C
  6701.       END
  6702. C *CDC* *DECK,AREAT
  6703. C *UNI* )FOR,IS N.AREAT,R.AREAT
  6704.       SUBROUTINE AREAT (XYZ)
  6705. C
  6706. C
  6707. C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
  6708. C .                                                                   .
  6709. C .   P  R  O  G  R  A  M                                             .
  6710. C .                                                                   .
  6711. C .      TO CALCULATE THE REQUIRED GEOMETRIC QUANTITIES WITH RESPECT  .
  6712. C .      TO THE LOCAL COORDINATE SYSTEM                               .
  6713. C .                                                                   .
  6714. C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
  6715. C
  6716.       IMPLICIT REAL*8 (A-H,O-Z)
  6717. C
  6718.       COMMON /GEOPLT/ T(3,3),TWOA,X2,X3,Y3,BM(6),B(3,9)
  6719.       COMMON /XYZLOC/ XYZR(3,3)
  6720. C
  6721.       DIMENSION XYZ(3,3)
  6722. C
  6723. C     TRANSFORM THE NODAL COORDINATES
  6724. C
  6725. C
  6726.       DO 30 K=1,3
  6727.       DO 30 J=1,3
  6728.       TEMP=0.
  6729.       DO 35 I=1,3
  6730.    35 TEMP=TEMP + T(K,I)*XYZ(I,J)
  6731.    30 XYZR(K,J)=TEMP
  6732. C
  6733. C     CALCULATE THE LOCAL NODAL COOR WITH NODE 1 AS ORIGIN
  6734. C
  6735.       X2=XYZR(1,2) - XYZR(1,1)
  6736.       X3=XYZR(1,3) - XYZR(1,1)
  6737.       Y3=XYZR(2,3) - XYZR(2,1)
  6738. C
  6739. C     CALCULATE TWICE THE AREA (TWOA) OF THE ELEMENT MID-SURFACE
  6740. C
  6741.       TWOA=X2*Y3
  6742. C
  6743.       RETURN
  6744. C
  6745.       END
  6746. C *CDC* *DECK GNLDIS
  6747. C *UNI* )FOR,IS N.GNLDIS, R.GNLDIS
  6748.       SUBROUTINE GNLDIS (N,MODEL,XXT,XXX)
  6749. C
  6750. C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
  6751. C .                                                                   .
  6752. C .   P R O G R A M                                                   .
  6753. C .      TO CALCULATE THE DISPLACEMENTS OR DISP  INC  IN GEOMETRIC    .
  6754. C .      NONLINEAR ANALYSIS                                           .
  6755. C .                                                                   .
  6756. C .      NOTE - XXT STORES THE GLOBAL NODAL COOR  AT THE LAST         .
  6757. C .             TIME STEP                                             .
  6758. C .           - XXX STORES THE GLOBAL NODAL COOR  AT THE CURRENT      .
  6759. C .             TIME STEP                                             .
  6760. C .                                                                   .
  6761. C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
  6762. C
  6763.       IMPLICIT REAL*8 (A-H,O-Z)
  6764. C
  6765.       COMMON /GEOPLT/ T(3,3),TWOA,X2,X3,Y3,BM(6),B(3,9)
  6766.       COMMON /DISPLT/ EDIS(18),EDIST(18),EDISI(18),TDIS(9),RDIS(9)
  6767. C
  6768.       DIMENSION XXT(1),XXX(1)
  6769. C
  6770.       X02=X2
  6771.       X03=X3
  6772.       Y03=Y3
  6773. C
  6774. C
  6775.       DO 100 I=1,9
  6776.   100 TDIS(I)=0.
  6777. C
  6778. C     OBTAIN TRANSFORMATION MATRIX CORRESPONDS TO PREVIOUS CONFIGU-
  6779. C     RATION. SAVE LOCAL NODAL COOR  FOR NONLINEAR MATERIAL MODEL.
  6780. C
  6781.       CALL TRAN (N,XXT,IPST)
  6782. C
  6783.       IF (MODEL.LE.2) GO TO 200
  6784. C
  6785.       CALL AREAT (XXT)
  6786.       XT2=X2
  6787.       XT3=X3
  6788.       YT3=Y3
  6789. C
  6790. C     OBTAIN THE TRANSVERSE DISP  INC  ( W )  WITH RESPECT TO THE
  6791. C     PREVIOUS CONFIGURATION
  6792. C
  6793.   200 IR=3
  6794.       IE=0
  6795.       DO 240 K=1,3
  6796.       TX=0.
  6797.       DO 220 I=1,3
  6798.   220 TX=TX + T(3,I)*EDISI(I+IE)
  6799.       TDIS(IR)=TX
  6800.       IR=IR+3
  6801.   240 IE=IE+6
  6802. C
  6803. C     OBTAIN THE ROTATIONAL INC  WITH RESPECT TO THE PREVIOUS
  6804. C     CONFIGURATION
  6805. C
  6806.       IR=0
  6807.       IE=3
  6808.       DO 280 K=1,3
  6809.       DO 270 I=1,3
  6810.       TX=0.
  6811.       DO 260 J=1,3
  6812.   260 TX=TX + T(I,J)*EDISI(J+IE)
  6813.   270 RDIS(I+IR)=TX
  6814.       IR=IR+3
  6815.   280 IE=IE+6
  6816. C
  6817. C     CALCULATE THE MEMBRANE DISP  AT CURRENT CONFIGURATION FOR
  6818. C     ELASTIC MODELS OR MEMBRANE DISP  INC  FOR NONLINEAR MAT  MODEL
  6819. C
  6820.       CALL TRAN (N,XXX,IPST)
  6821.       CALL AREAT (XXX)
  6822. C
  6823.       IF (MODEL.LE.2) GO TO 320
  6824.       TDIS(4)=X2-XT2
  6825.       TDIS(7)=X3-XT3
  6826.       TDIS(8)=Y3-YT3
  6827.       GO TO 350
  6828. C
  6829.   320 TDIS(4)=X2-X02
  6830.       TDIS(7)=X3-X03
  6831.       TDIS(8)=Y3-Y03
  6832. C
  6833. C     RE-SET  X2,X3,Y3  TO THE UNDEFORMED CONFIGURATION FOR
  6834. C     SUBSEQUENT CALCULATIONS
  6835. C
  6836.   350 X2=X02
  6837.       X3=X03
  6838.       Y3=Y03
  6839.       TWOA=X02*Y03
  6840. C
  6841.       RETURN
  6842. C
  6843.       END
  6844. C *CDC* *DECK STFCSE
  6845. C *UNI* )FOR,IS N.STFCSE, R.STFCSE
  6846.       SUBROUTINE STFCSE (WGT,MODEL)
  6847. C
  6848. C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
  6849. C .                                                                   .
  6850. C .   P  R  O  G  R  A  M                                             .
  6851. C .      TO CALCULATE THE STIFFNESS MATRIX FOR THE CONSTANT STRAIN    .
  6852. C .      TRIANGLE CORRESPONDING TO THE DISPLACEMENT VECTOR  --        .
  6853. C .      (U1,U2,U3,V1,V2,V3)                                          .
  6854. C .                                                                   .
  6855. C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
  6856. C
  6857.       IMPLICIT REAL*8 (A-H,O-Z)
  6858. C
  6859.       COMMON /PROPTY/ C(3,3),CD(3,3),D(3,3),YM,PV,ET,QTM
  6860.       COMMON /GEOPLT/ T(3,3),TWOA,X2,X3,Y3,BM(6),B(3,9)
  6861.       COMMON /FSTPLT/ RN(6),RM(9),RE(18),SML(21),SBL(45),S(171),
  6862.      1                SNL(6),SCL(54)
  6863. C
  6864. C     CALCULATE THE IN-PLANE STRAIN-DISPLACEMENT MATRIX  BM
  6865. C
  6866.       XINV2=1./X2
  6867.       BM(1)=-XINV2
  6868.       BM(2)= XINV2
  6869.       BM(3)= 0.
  6870.       BM(4)=(X3-X2)/TWOA
  6871.       BM(5)=-X3/TWOA
  6872.       BM(6)=X2/TWOA
  6873. C
  6874. C     EVALUATE THE STRESS-STRAIN MATRIX
  6875. C
  6876.       AR=0.5*TWOA
  6877.       IF (MODEL.EQ.3) AR=WGT
  6878.       C11=C(1,1)*AR
  6879.       C12=C(1,2)*AR
  6880.       C13=C(1,3)*AR
  6881.       C22=C(2,2)*AR
  6882.       C23=C(2,3)*AR
  6883.       C33=C(3,3)*AR
  6884. C
  6885. C     CALCULATE THE MEMBRANE STIFFNESS   SML(21)
  6886. C
  6887.       K1=0
  6888.       K2=15
  6889.       K3=3
  6890. C
  6891.       IF (MODEL.EQ.3) GO TO 500
  6892. C
  6893.       DO 200 J=1,3
  6894.       DO 250 I=J,3
  6895.       SML(I+K1)=C11*BM(J)*BM(I) + C33*BM(J+3)*BM(I+3)
  6896.   250 SML(I+K2)=C22*BM(J+3)*BM(I+3) + C33*BM(J)*BM(I)
  6897.       K1=K1+6-J
  6898.   200 K2=K2+3-J
  6899. C
  6900.       DO 300 J=1,3
  6901.       DO 350 I=1,3
  6902.   350 SML(I+K3)=C12*BM(J)*BM(I+3) + C33*BM(J+3)*BM(I)
  6903.   300 K3=K3+6-J
  6904. C
  6905.       RETURN
  6906. C
  6907.   500 DO 600 J=1,3
  6908.       DO 650 I=J,3
  6909.       SML(I+K1)=SML(I+K1) + C11*BM(J)*BM(I) + C13*BM(J)*BM(I+3)
  6910.      1                    + C13*BM(J+3)*BM(I) + C33*BM(J+3)*BM(I+3)
  6911.       SML(I+K2)=SML(I+K2) + C22*BM(J+3)*BM(I+3) + C23*BM(J+3)*BM(I)
  6912.      1                    + C23*BM(J)*BM(I+3) + C33*BM(J)*BM(I)
  6913.   650 CONTINUE
  6914.       K1=K1+6-J
  6915.   600 K2=K2+3-J
  6916. C
  6917.       DO 700 J=1,3
  6918.       DO 750 I=1,3
  6919.       SML(I+K3)=SML(I+K3) + C12*BM(J)*BM(I+3) + C13*BM(J)*BM(I)
  6920.      1                    + C23*BM(J+3)*BM(I+3) + C33*BM(J+3)*BM(I)
  6921.   750 CONTINUE
  6922.   700 K3=K3+6-J
  6923. C
  6924.       RETURN
  6925. C
  6926.       END
  6927. C *CDC* *DECK STRCSE
  6928. C *UNI* )FOR.IS N.STRCSE, R.STRCSE
  6929.       SUBROUTINE STRCSE (INDNL)
  6930. C
  6931. C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
  6932. C .                                                                   .
  6933. C .   P  R  O  G  R  A  M                                             .
  6934. C .      TO CALCULATE THE MEMBRANE STRAINS FOR THE CONSTANT STRAIN    .
  6935. C .      TRIANGLE                                                     .
  6936. C .                                                                   .
  6937. C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
  6938. C
  6939.       IMPLICIT REAL*8 (A-H,O-Z)
  6940. C
  6941.       COMMON /GEOPLT/ T(3,3),TWOA,X2,X3,Y3,BM(6),B(3,9)
  6942.       COMMON /STSPLT/ EPS(3),FN(3),CURV(3),TM(3)
  6943.       COMMON /DISPLT/ EDIS(18),EDIST(18),EDISI(18),TDIS(9),RDIS(9)
  6944. C
  6945.       DIMENSION UIP(6)
  6946. C
  6947. C     CALCULATE THE IN-PLANE STRAIN-DISPLACEMENT MATRIX  BM
  6948. C
  6949.       XINV2=1./X2
  6950.       BM(1)=-XINV2
  6951.       BM(2)= XINV2
  6952.       BM(3)= 0.
  6953.       BM(4)=(X3-X2)/TWOA
  6954.       BM(5)=-X3/TWOA
  6955.       BM(6)= X2/TWOA
  6956. C
  6957.       IF (INDNL.EQ.2) GO TO 100
  6958. C
  6959. C     INFINITESIMAL DISPLACEMENT ANALYSIS -
  6960. C
  6961.       UIP(1)=TDIS(1)
  6962.       UIP(2)=TDIS(4)
  6963.       UIP(3)=TDIS(7)
  6964.       UIP(4)=TDIS(2)
  6965.       UIP(5)=TDIS(5)
  6966.       UIP(6)=TDIS(8)
  6967. C
  6968.       DO 20 I=1,3
  6969.    20 EPS(I)=0.
  6970.       DO 30 J=1,3
  6971.       EPS(1)=EPS(1) + BM(J)*UIP(J)
  6972.       EPS(2)=EPS(2) + BM(J+3)*UIP(J+3)
  6973.    30 EPS(3)=EPS(3) + BM(J+3)*UIP(J) + BM(J)*UIP(J+3)
  6974. C
  6975.       RETURN
  6976. C
  6977. C     LARGE DISPLACEMENT ANALYSIS -
  6978. C
  6979.   100 EPS(1)=TDIS(4)/X2
  6980.       EPS(2)=TDIS(8)/Y3
  6981.       EPS(3)=TDIS(7)/Y3 - X3*TDIS(4)/TWOA
  6982. C
  6983.       RETURN
  6984. C
  6985.       END
  6986. C *CDC* *DECK,STFDKT
  6987. C *UNI* )FOR,IS N.STFDKT , R.STFDKT
  6988.       SUBROUTINE STFDKT (PSI,ETA,WGT)
  6989. C
  6990. C
  6991. C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
  6992. C .                                                                   .
  6993. C .   P R O G R A M                                                   .
  6994. C .                                                                   .
  6995. C .      TO CALCULATE THE LOCAL DKT ELEMENT BENDING STIFFNESS AT      .
  6996. C .      INTEGRATION POINT  (PSI,ETA)                                 .
  6997. C .                                                                   .
  6998. C .   NOTE                                                            .
  6999. C .      DISP. VECTOR: (W1, THETA-X1, THETA-Y1, W2, THETA-X2, THETA-Y2.
  7000. C .                     W3, THETA-X3, THETA-Y3 )                      .
  7001. C .                                                                   .
  7002. C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
  7003. C
  7004.       IMPLICIT REAL*8 (A-H,O-Z)
  7005. C
  7006.       COMMON /PROPTY/ C(3,3),CD(3,3),D(3,3),YM,PV,ET,QTM
  7007.       COMMON /GEOPLT/ T(3,3),TWOA,X2,X3,Y3,BM(6),B(3,9)
  7008.       COMMON /FSTPLT/ RN(6),RM(9),RE(18),SML(21),SBL(45),S(171),
  7009.      1                SNL(6),SCL(54)
  7010. C
  7011.       DIMENSION DB(3)
  7012. C
  7013. C
  7014. C     CALCULATE STRAIN-DISPLACEMENT OPERATOR B(3,9) AT INTEGRATION
  7015. C        POINT  (PSI,ETA)
  7016. C
  7017.       CALL BDKT9 (PSI,ETA)
  7018. C
  7019. C     CALCULATE BENDING STIFFNESS  SBL(45)
  7020. C
  7021.       IJ=0
  7022.       DO 30 J=1,9
  7023.       DO 36 K=1,3
  7024.       STIFF=0.D0
  7025.       DO 38 M=1,3
  7026.    38 STIFF=STIFF + D(K,M)*B(M,J)
  7027.    36 DB(K)=STIFF*WGT
  7028. C
  7029.       DO 40 I=J,9
  7030.       STIFF=0.
  7031.       DO 45 L=1,3
  7032.    45 STIFF=STIFF+B(L,I)*DB(L)
  7033.       IJ=IJ+1
  7034.    40 SBL(IJ)=SBL(IJ) + STIFF
  7035.    30 CONTINUE
  7036. C
  7037.       RETURN
  7038. C
  7039.       END
  7040. C *CDC* *DECK,BDKT9
  7041. C *UNI* )FOR,IS N.BDKT9,R.BDKT9
  7042. C *UNI* )FOR,IS N.BDKT9, R.BDKT9
  7043.       SUBROUTINE BDKT9 (PSI,ETA)
  7044. C
  7045. C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
  7046. C .                                                                   .
  7047. C .   P  R  O  G  R  A  M                                             .
  7048. C .      TO CALCULATE THE BENDING STRAIN-DISP  MATRIX  B(3,9) AT THE  .
  7049. C .      INTEGRATION POINT GIVEN BY  (PSI,ETA)                        .
  7050. C .                                                                   .
  7051. C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
  7052. C
  7053.       IMPLICIT REAL*8 (A-H,O-Z)
  7054. C
  7055.       COMMON /GEOPLT/ T(3,3),TWOA,X2,X3,Y3,BM(6),B(3,9)
  7056. C
  7057.       DIMENSION BXP(9),BYP(9),BXE(9),BYE(9)
  7058. C
  7059.       X32=X3-X2
  7060.       XX2=X2*X2
  7061.       XX3=X3*X3
  7062.       XX32=X32*X32
  7063.       YY3=Y3*Y3
  7064.       QQ4=1./(XX32 + YY3)
  7065.       QQ5=1./(XX3 + YY3)
  7066.       QQ6=1./XX2
  7067.       SU4=3.*QQ4*YY3
  7068.       SU5=3.*QQ5*YY3
  7069.       D4=3.*QQ4*X32*Y3
  7070.       D5=3.*QQ5*X3*Y3
  7071.       CL4=6.*QQ4*X32
  7072.       CL5=-X3*6.*QQ5
  7073.       CL6=6.*QQ6*X2
  7074.       SL4=6.*QQ4*Y3
  7075.       SL5=-Y3*6.*QQ5
  7076. C
  7077.       PS2=1.-2.*PSI
  7078.       ET2=1.-2.*ETA
  7079.       SU5E=SU5*ET2
  7080. C
  7081. C     DERIVATIVE OF BETAX(I) WITH RESPECT TO PSI
  7082. C
  7083.       BXP(1)=CL6*PS2+ETA*(CL5-CL6)
  7084.       BXP(2)=-ETA*D5
  7085.       BXP(3)=-4. + 6.*(PSI+ETA) - ETA*SU5
  7086.       BXP(4)=-CL6*PS2+ETA*(CL4+CL6)
  7087.       BXP(5)=ETA*D4
  7088.       BXP(6)=-2. + 6.*PSI + ETA*SU4
  7089.       BXP(7)=-ETA*(CL5+CL4)
  7090.       BXP(8)=ETA*(D4-D5)
  7091.       BXP(9)=-ETA*(SU5-SU4)
  7092. C
  7093. C   DERIVATIVES OF BETAY(I) WITH RESPECT TO PSI
  7094. C
  7095.       BYP(1)=ETA*SL5
  7096.       BYP(2)=1. - ETA*SU5
  7097.       BYP(3)=-BXP(2)
  7098.       BYP(4)=ETA*SL4
  7099.       BYP(5)=-1. + ETA*SU4
  7100.       BYP(6)=-BXP(5)
  7101.       BYP(7)=-ETA*(SL5+SL4)
  7102.       BYP(8)=BXP(9)
  7103.       BYP(9)=-BXP(8)
  7104. C
  7105. C   DERIVATIVES OF BETAX(I) WITH RESPECT TO ETA
  7106. C
  7107.       BXE(1)=-CL5*ET2-PSI*(CL6-CL5)
  7108.       BXE(2)=D5*(ET2-PSI)
  7109.       BXE(3)=-4. + 6.*(PSI+ETA) + SU5E - PSI*SU5
  7110.       BXE(4)=PSI*(CL4+CL6)
  7111.       BXE(5)=PSI*D4
  7112.       BXE(6)=PSI*SU4
  7113.       BXE(7)=CL5*ET2-PSI*(CL4+CL5)
  7114.       BXE(8)=D5*ET2+PSI*(D4-D5)
  7115.       BXE(9)=-2.+6.*ETA+SU5E+PSI*(SU4-SU5)
  7116. C
  7117. C   DERIVATIVES OF BETAY(I) WITH RESPECT TO ETA
  7118. C
  7119.       BYE(1)=SL5*(PSI-ET2)
  7120.       BYE(2)=1. + SU5E - PSI*SU5
  7121.       BYE(3)=-BXE(2)
  7122.       BYE(4)=PSI*SL4
  7123.       BYE(5)=BXE(6)
  7124.       BYE(6)=-BXE(5)
  7125.       BYE(7)=SL5*ET2-PSI*(SL4+SL5)
  7126.       BYE(8)=-1.+SU5E+PSI*(SU4-SU5)
  7127.       BYE(9)=-BXE(8)
  7128. C
  7129. C     DEFINITION OF B(3,9)
  7130. C
  7131.        DO 10 I=1,9
  7132.       B(1,I)=  Y3*BXP(I)/TWOA
  7133.       B(2,I)=(-X3*BYP(I)+X2*BYE(I))/TWOA
  7134.       B(3,I)=(-X3*BXP(I)+X2*BXE(I)+Y3*BYP(I))/TWOA
  7135.    10 CONTINUE
  7136. C
  7137.       RETURN
  7138. C
  7139.       END
  7140. C *CDC* *DECK,STRDKT
  7141. C *UNI* )FOR,IS N.STRDKT , R.STRDKT
  7142.       SUBROUTINE STRDKT (PSI,ETA)
  7143. C
  7144. C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
  7145. C .                                                                   .
  7146. C .   P  R  O  G  R  A  M                                             .
  7147. C .                                                                   .
  7148. C .      TO CALCULATE THE BENDING CURVATURES USING THE DKT ELEMENT    .
  7149. C .                                                                   .
  7150. C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
  7151. C
  7152.       IMPLICIT REAL*8 (A-H,O-Z)
  7153. C
  7154.       COMMON /GEOPLT/ T(3,3),TWOA,X2,X3,Y3,BM(6),B(3,9)
  7155.       COMMON /DISPLT/ EDIS(18),EDIST(18),EDISI(18),TDIS(9),RDIS(9)
  7156.       COMMON /STSPLT/ EPS(3),FN(3),CURV(3),TM(3)
  7157. C
  7158.       DIMENSION U(9)
  7159. C
  7160. C     PICK OUT THE BENDING D.O.F.S
  7161. C
  7162.       U(1) = TDIS(3)
  7163.       U(2) = RDIS(1)
  7164.       U(3) = RDIS(2)
  7165.       U(4) = TDIS(6)
  7166.       U(5) = RDIS(4)
  7167.       U(6) = RDIS(5)
  7168.       U(7) = TDIS(9)
  7169.       U(8) = RDIS(7)
  7170.       U(9) = RDIS(8)
  7171. C
  7172. C     FIND STRAIN DISPLACEMENT OPERATOR  B(3,9)
  7173. C
  7174.       CALL BDKT9 (PSI,ETA)
  7175. C
  7176. C     CALCULATE CURVATURES
  7177. C
  7178.       DO 100 I=1,3
  7179.       CX=0.
  7180.       DO 150 J=1,9
  7181.   150 CX=CX + B(I,J)*U(J)
  7182.   100 CURV(I)=CX
  7183. C
  7184.       RETURN
  7185. C
  7186.       END
  7187. C *CDC* *DECK ASSEMF
  7188. C *UNI* )FOR,IS N.ASSEMF, R.ASSEMF
  7189.       SUBROUTINE ASSEMF (MODEL,INDNL)
  7190. C
  7191. C
  7192. C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
  7193. C .                                                                   .
  7194. C .   P  R  O  G  R  A  M                                             .
  7195. C .                                                                   .
  7196. C .      TO ASSEMBLE AND TRANSFORM TO GLOBAL SYSTEM THE ELEMENT       .
  7197. C .      STRESS-EQUIVALENT NODAL FORCE VECTOR                         .
  7198. C .                                                                   .
  7199. C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
  7200. C
  7201.       IMPLICIT REAL*8 (A-H,O-Z)
  7202. C
  7203.       COMMON /GEOPLT/ T(3,3),TWOA,X2,X3,Y3,BM(6),B(3,9)
  7204.       COMMON /DISPLT/ EDIS(18),EDIST(18),EDISI(18),TDIS(9),RDIS(9)
  7205.       COMMON /PROPTY/ C(3,3),CD(3,3),D(3,3),YM,PV,ET,QTM
  7206.       COMMON /ELINF / THIC,BETE,WAA(13),NEL,IP,NINT,IPT
  7207.       COMMON /FSTPLT/ RN(6),RM(9),RE(18),SML(21),SBL(45),S(171),
  7208.      1                SNL(6),SCL(54)
  7209. C
  7210.       DIMENSION REL(18)
  7211. C
  7212. C     ASSIGN Z-ROTATIONAL STIFFNESS  (D11)
  7213. C
  7214.       D11=YM*THIC*THIC*THIC*0.0001/TWOA
  7215. C
  7216.       IF (MODEL.LE.2 .AND. INDNL.LE.1) GO TO 20
  7217. C
  7218. C     CALCULATE TOTAL Z-ROTATIONS AT THE NODES
  7219. C
  7220.       RZ1=0.
  7221.       RZ2=0.
  7222.       RZ3=0.
  7223.       DO 30 I=1,3
  7224.       RZ1=RZ1 + T(3,I)*EDIS(I+3)
  7225.       RZ2=RZ2 + T(3,I)*EDIS(I+9)
  7226.    30 RZ3=RZ3 + T(3,I)*EDIS(I+15)
  7227. C
  7228.       GO TO 50
  7229. C
  7230.    20 RZ1=RDIS(3)
  7231.       RZ2=RDIS(6)
  7232.       RZ3=RDIS(9)
  7233. C
  7234. C
  7235. C     ASSEMBLE LOCAL ELEMENT FORCE VECTOR
  7236. C
  7237.    50 REL( 1)=RN(1)
  7238.       REL( 2)=RN(4)
  7239.       REL( 3)=RM(1)
  7240.       REL( 4)=RM(2)
  7241.       REL( 5)=RM(3)
  7242.       REL( 6)=D11*RZ1
  7243.       REL( 7)=RN(2)
  7244.       REL( 8)=RN(5)
  7245.       REL( 9)=RM(4)
  7246.       REL(10)=RM(5)
  7247.       REL(11)=RM(6)
  7248.       REL(12)=D11*RZ2
  7249.       REL(13)=RN(3)
  7250.       REL(14)=RN(6)
  7251.       REL(15)=RM(7)
  7252.       REL(16)=RM(8)
  7253.       REL(17)=RM(9)
  7254.       REL(18)=D11*RZ3
  7255. C
  7256. C     TRANSFORM ELEMENT FORCE VECTOR TO GLOBAL SYSTEM
  7257. C
  7258.       IR=0
  7259.       DO 100 K=1,6
  7260.       DO 140 I=1,3
  7261.       RX=0.
  7262.       DO 160 J=1,3
  7263.   160 RX=RX + T(J,I)*REL(J+IR)
  7264.   140 RE(I+IR)=RX
  7265.   100 IR=IR+3
  7266. C
  7267.       RETURN
  7268. C
  7269.       END
  7270.