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

  1. C *CDC* *DECK MIDEP
  2. C *UNI* )FOR,IS  N.MIDEP,  R.MIDEP
  3.       SUBROUTINE MIDEP
  4. C
  5. C
  6.       IMPLICIT REAL*8 (A-H,O-Z)
  7.       COMMON /EL/ IND,ICOUNT,NPAR(20),NUMEG,NEGL,NEGNL,IMASS,IDAMP,ISTAT
  8.      1           ,NDOF,KLIN,IEIG,IMASSN,IDAMPN
  9.       COMMON /VMISES/ A1,B1,C1,D1,A2,B2,C2,A3,BM,BET,CEE,
  10.      1                DEPS(4),DEPSP(4),TEPS(4),ALFA(4),HP,FTB,A1I,B1I,
  11.      2                C1I,XCON1,XCON2,MOD,ISR,IST
  12.       COMMON /MATMOD/ STRESS(4),STRAIN(4),C(4,4),IPT,NEL,IPS
  13. C
  14.       DIMENSION DP(16)
  15.       EQUIVALENCE (NPAR(5),ITYP2D),(C(1,1),DP(1))
  16. C
  17. C
  18.       SM=(STRESS(1)+STRESS(2)+STRESS(4))/3.
  19.       SX=STRESS(1)-SM
  20.       SY=STRESS(2)-SM
  21.       SZ=STRESS(4)-SM
  22.       SS=STRESS(3)
  23. C
  24.       IF (MOD.EQ.2) GO TO 5
  25. C
  26.       SX=SX - ALFA(1)
  27.       SY=SY - ALFA(2)
  28.       SZ=SZ - ALFA(4)
  29.       SS=SS - ALFA(3)
  30. C
  31.     5 IF (ITYP2D-1) 10,11,12
  32.    10 WP= SX*DEPS(1) + SY*DEPS(2) + SS*DEPS(3) + SZ*DEPS(4)
  33.       GO TO 15
  34. C
  35.    11 WP= SX*DEPS(1) + SY*DEPS(2) + SS*DEPS(3)
  36.       GO TO 15
  37. C
  38.    12 BETA=BET*SZ
  39.       DP1=B2 - BETA*SX
  40.       DP2=B2 - BETA*SY
  41.       DP3=   - BETA*SS
  42.       DP4=A2 - BETA*SZ
  43. C
  44.       DEPS(4)= (-DP1*DEPS(1)-DP2*DEPS(2)-DP3*DEPS(3))/DP4
  45.       WP= SX*DEPS(1) + SY*DEPS(2) + SS*DEPS(3) + SZ*DEPS(4)
  46. C
  47.    15 BETT=BET
  48.       IF (WP.LT.0.0) BETT=0.
  49. C
  50. C     CALCULATE PLASTIC STRAIN INCREMENTS
  51. C
  52.       XLAMDA=(BETT/(2.*C1))*WP
  53.       DEPSP(1)=XLAMDA*SX
  54.       DEPSP(2)=XLAMDA*SY
  55.       DEPSP(3)=2.0*XLAMDA*SS
  56.       DEPSP(4)=XLAMDA*SZ
  57. C
  58.       BETA=BETT*SX
  59.       DP( 1)=A2 - BETA*SX
  60.       DP( 2)=B2 - BETA*SY
  61.       DP( 3)=   - BETA*SS
  62.       DP( 4)=B2 - BETA*SZ
  63. C
  64.       BETA=BETT*SY
  65.       DP( 5)=DP (2)
  66.       DP( 6)=A2 - BETA*SY
  67.       DP( 7)=   - BETA*SS
  68.       DP( 8)=B2 - BETA*SZ
  69. C
  70.       BETA=BETT*SS
  71.       DP( 9)=DP (3)
  72.       DP(10)=DP (7)
  73.       DP(11)=C2 - BETA*SS
  74.       DP(12)=   - BETA*SZ
  75. C
  76.       IF (ITYP2D.EQ.1) RETURN
  77. C
  78.       DP(13)=DP (4)
  79.       DP(14)=DP (8)
  80.       DP(15)=DP(12)
  81.       DP (16)=A2 - BETT*SZ*SZ
  82. C
  83.       IF (ITYP2D.EQ.0) RETURN
  84. C
  85. C     PLANE STRESS / MODIFY DP MATRIX
  86. C
  87.       DO 120 I=1,3
  88.       A=C(I,4)/C(4,4)
  89.       DO 120 J=I,3
  90.       C(I,J)=C(I,J) - C(4,J)*A
  91.   120 C(J,I) = C(I,J)
  92.       IF (WP.LT.0.0) DEPS(4)=D1 * (DEPS(1)+DEPS(2))
  93.       STRAIN(4)=STRAIN(4) + DEPS(4)
  94. C
  95. C
  96.       RETURN
  97.       END
  98. C *CDC* *DECK HARDM2
  99. C *UNI* )FOR,IS N.HARDM2,R.HARDM2
  100.       SUBROUTINE HARDM2 (PROP,EPSTR,ET)
  101. C
  102. C
  103. C
  104. C     THIS SUBROUTINE CALCULATES THE SLOPE OF THE UNIAXIAL
  105. C     STRESS-STRAIN CURVE CORRESPONDING TO A GIVEN VALUE
  106. C     OF ACCUMULATED EFFECTIVE PLASTIC STRAIN
  107. C
  108. C
  109. C
  110. C        NPR  = NUMBER OF PAIRS OF STRESS-STRAIN VALUES DEFINING THE
  111. C               PLASTIC PORTION OF THE STRESS-STRAIN CURVE
  112. C        NSEG = NUMBER OF SEGMENTS IN THE PLASTIC PORTION OF THE CURVE
  113. C
  114. C
  115. C
  116.       IMPLICIT REAL*8 (A-H,O-Z)
  117. C
  118.       COMMON /EL/ IND,ICOUNT,NPAR(20),NUMEG,NEGL,NEGNL,IMASS,IDAMP,
  119.      1            ISTAT,NDOF,KLIN,IEIG,IMASSN,IDAMPN
  120.       DIMENSION PROP(1)
  121.       EQUIVALENCE (NPAR(17),NCON)
  122. C
  123. C
  124.       YM=PROP(1)
  125.       NPR=(NCON - 2)/2
  126.       NSEG=NPR - 1
  127. C
  128.       KK=6
  129.       DO 10 J=1,NSEG
  130.       TEPSTR=PROP(KK) - (PROP(KK - 1)/YM)
  131.       IF (EPSTR.LT.TEPSTR) GO TO 20
  132.    10 KK=KK + 2
  133. C
  134.       WRITE (6,2000)
  135.       STOP
  136. C
  137. C     CALCULATE THE HARDENING MODULUS
  138. C
  139.    20 ET=(PROP(KK - 1) - PROP(KK - 3))/(PROP(KK) - PROP(KK - 2))
  140. C
  141.       RETURN
  142. C
  143.  2000 FORMAT (126H   ERROR   ACCUMULATED EFFECTIVE PLASTIC STRAIN IS OUT
  144.      1SIDE THE RANGE OF THE UNIAXIAL STRESS-STRAIN CURVE   (SUBROUTINE H
  145.      2ARDM2))
  146. C
  147.       END
  148. C *CDC* *DECK OVL36
  149. C *CDC*       OVERLAY (ADINA,3,6)
  150. C *CDC* *DECK EL2D10
  151. C *UNI* )FOR,IS  N.EL2D10, R.EL2D10
  152. C *CDC*      PROGRAM EL2D10
  153. C
  154.       SUBROUTINE EL2D10
  155. C
  156. C
  157. C
  158. C     THERMOELASTIC/PLASTIC/CREEP MATERIAL MODEL
  159. C        MODEL = 10  (ISOTROPIC HARDENING, VON MISES YIELD CRITERION)
  160. C        MODEL = 11  (KINEMATIC HARDENING, VON MISES YIELD CRITERION)
  161. C
  162. C
  163. C
  164.       IMPLICIT REAL*8 (A-H,O-Z)
  165. C
  166.       COMMON /EL/ IND,ICOUNT,NPAR(20),NUMEG,NEGL,NEGNL,IMASS,IDAMP,ISTAT
  167.      1            ,NDOF,KLIN,IEIG,IMASSN,IDAMPN
  168.       COMMON /DIMEL/ N101,N102,N103,N104,N105,N106,N107,N108,N109,N110,
  169.      1               N111,N112,N113,N114,N120,N121,N122,N123,N124,N125
  170.       COMMON /MATMOD/ STRESS(4),STRAIN(4),C(4,4),IPT,NEL,IPS
  171.       COMMON /DPR/ ITWO
  172.       COMMON A(1)
  173.       COMMON /TEMPRT/ TEMP1,TEMP2,ITEMPR,ITP96,N6A,N6B
  174. C
  175.       REAL A
  176. C
  177.       DIMENSION IA(1)
  178. C
  179.       EQUIVALENCE (NPAR(10),NINT),(A(1),IA(1)),(NPAR(17),NCON),
  180.      1            (NPAR(7),MXNODS)
  181. C
  182. C
  183. C
  184. C     FOR ADDRESSES N101,N102,..........SEE SUBROUTINE TODMFE
  185. C
  186. C     QUANTITIES STORED FOR EACH INTEGRATION POINT
  187. C
  188. C        STRESS COMPONENTS
  189. C        TOTAL STRAIN COMPONENTS
  190. C        PLASTIC STRAIN COMPONENTS
  191. C        CREEP STRAIN COMPONENTS
  192. C        YIELD STRESS
  193. C        ACCUMULATED INCREMENTS OF EFFECTIVE PLASTIC STRAIN
  194. C        YIELD SURFACE TRANSLATION COMPONENTS
  195. C        ORIGINS FOR O.R.N.L. CYCLIC CREEP
  196. C        TEMPERATURE
  197. C        IPEL AND NORG
  198. C        IPEL = 1 THERMO-ELASTIC AND CREEP BEHAVIOR
  199. C             = 2 THERMO-ELASTIC-PLASTIC AND CREEP BEHAVIOR
  200. C        NORG = 1 POSITIVE ORIGIN
  201. C             = 2 NEGATIVE ORIGIN
  202. C
  203. C     QUANTITIES STORED FOR EACH ELEMENT
  204. C
  205. C        GLOBAL NODAL POINT NUMBERS
  206. C
  207. C
  208. C
  209.       IDW=33*ITWO
  210.       NPT=NINT*NINT
  211. C
  212. C        1. DETERMINE MATERIAL PROPERTY SET NUMBER
  213. C
  214.       MATP=IA(N107 + NEL - 1)
  215. C
  216. C        2. DETERMINE MATERIAL PROPERTY SET LOCATIONS
  217. C
  218.       NM=N109 + (MATP - 1)*NCON*ITWO
  219. C
  220. C        3. INITIALIZE WORKING ARRAY
  221. C
  222.       IF(IND.NE.0) GO TO 100
  223.       NN=N110+(NEL-1)*(IDW*NPT+MXNODS)
  224.       CALL IEPC2(A(NN),A(NN + IDW*NPT),A(NN),IDW,A(N6A + ITWO),A(NM))
  225.       GO TO 200
  226. C
  227. C        4. DETERMINE LOCATIONS OF VARIABLES IN WORKING ARRAY
  228. C
  229.   100 NN=N110 + (NEL - 1)*(IDW*NPT + MXNODS) + (IPT - 1)*IDW
  230.       NN1=NN
  231.       NN2=NN + 4*ITWO
  232.       NN3=NN + 8*ITWO
  233.       NN4=NN + 12*ITWO
  234.       NN5=NN + 16*ITWO
  235.       NN6=NN + 17*ITWO
  236.       NN7=NN + 18*ITWO
  237.       NN8=NN + 22*ITWO
  238.       NN9=NN + 30*ITWO
  239.       NN10=NN + 31*ITWO
  240.       NN11=NN + 32*ITWO
  241. C
  242. C        5. DETERMINE ELEMENT GLOBAL NODAL POINT NUMBERS LOCATION
  243. C
  244.       KK=N110+(NEL-1)*(IDW*NPT+MXNODS)+IDW*NPT
  245. C
  246. C        6. DETERMINE MIDSIDE NODE ARRAY LOCATION
  247. C
  248.       ND5DIM=MXNODS-4
  249.       LL=N111+(NEL-1)*ND5DIM
  250. C
  251. C        7. CALCULATE STRESSES AND CONSTITUTIVE LAW
  252. C
  253.       CALL EPC2(A(NM),A(NN1),A(NN2),A(NN3),A(NN4),A(NN5),A(NN6),A(NN7),
  254.      1          A(NN8),A(NN9),A(NN10),A(NN11),A(KK),A(LL),A(N6A + ITWO),
  255.      2          A(N6B + ITWO))
  256. C
  257.   200 CONTINUE
  258. C
  259.       RETURN
  260.       END
  261. C *CDC* *DECK IEPC2
  262. C *UNI* )FOR,IS  N.IEPC2, R.IEPC2
  263. C
  264.       SUBROUTINE IEPC2(WA,IWA,IIWA,IDW,TEMPV1,PROP)
  265. C
  266. C
  267. C
  268. C     THIS SUBROUTINE INITIALIZES THE WORKING STORAGE FOR
  269. C     THE THERMO-ELASTIC-PLASTIC AND CREEP MATERIAL MODELS
  270. C     (MODELS = 10 AND 11)
  271. C
  272. C
  273. C
  274.       IMPLICIT REAL*8 (A-H,O-Z)
  275. C
  276.       COMMON /EL/ IND,ICOUNT,NPAR(20),NUMEG,NEGL,NEGNL,IMASS,IDAMP,ISTAT
  277.      1            ,NDOF,KLIN,IEIG,IMASSN,IDAMPN
  278.       COMMON /EM2D/ S(300),XM(24),B(4,16),RE(24),EDIS(24),EDISI(24),
  279.      1              XX(24),NOD(8),NODM(8),NOD5M(4)
  280.       COMMON /GAUSS/ XG(4,4),WGT(4,4),EVAL2(9,2),EVAL3(27,3),E1,E2,E3
  281.       COMMON /TEMPRT/ TEMP1,TEMP2,ITEMPR,ITP96,N6A,N6B
  282.       COMMON /DPR/ ITWO
  283.       COMMON /TODIM/ BET,THIC,DE,IEL,NND5
  284.       COMMON /SOLPM2/ TREF,XINTP,XCON1,XCON2,XPARM1,XPARM2,TOLIL,TOLPC,
  285.      1                TOL1,TOL2,TOL3,TOL4,TOL5,TOL6,TCHK,CRPCON(8),DTMN,
  286.      2                SUBDD,RNGL,RNGU,DTT,TOL7,
  287.      3                KCRP,NITE,NALG,IINTP,NPTS,ITCHK,IST,ISR
  288. C
  289.       DIMENSION WA(33,1),IWA(1),IIWA(IDW,1),TEMPV1(1),H(8),
  290.      1          XDM1(2,8),XDM2(2,2),XDM3(2,1),PROP(16,1),PROP1(5)
  291. C
  292.       EQUIVALENCE (NPAR(10),NINT)
  293. C
  294.       NPT=NINT*NINT
  295.       IINTP=1
  296.       NPTS=IDINT(PROP(9,7))
  297.       TOLMT=1.0D-2
  298. C
  299.       TOLL=TOLMT*DABS(PROP(1,1))
  300.       IF(TOLL.EQ.0.0) TOLL=TOLMT
  301.       TOLU=TOLMT*DABS(PROP(NPTS,1))
  302.       IF(TOLU.EQ.0.0) TOLU=TOLMT
  303. C
  304.       RNGL=PROP(1,1) - TOLL
  305.       RNGU=PROP(NPTS,1) + TOLU
  306. C
  307. C
  308. C        1. SET ALL FLOATING-POINT VARIABLES IN THE WORKING ARRAY
  309. C           TO ZERO
  310. C
  311.    15 DO 20 J=1,NPT
  312.       DO 20 I=1,31
  313.    20 WA(I,J)=0.0
  314. C
  315. C        2. STORE GLOBAL NODAL POINT NUMBERS
  316. C
  317.       II=0
  318.       DO 25 K=1,8
  319.       IF(NODM(K).EQ.0) GO TO 25
  320.       II=II+1
  321.       IWA(II)=NODM(K)
  322.    25 CONTINUE
  323. C
  324. C        3. INTERPOLATE INITIAL TEMPERATURE DISTRIBUTION
  325. C           STORE INITIAL INTEGRATION POINT TEMPERATURES
  326. C
  327.       DO 30 LX=1,NINT
  328.       E1=XG(LX,NINT)
  329.       DO 30 LY=1,NINT
  330.       E2=XG(LY,NINT)
  331.       IPT=(LX-1)*NINT+LY
  332.       CALL FUNCT2(E1,E2,H,XDM1,NOD5M,XDM2,XDUM,XDM3,IDUM,IINTP)
  333.       TEMP1=0.0
  334.       DO 35 K=1,IEL
  335.       KK=IWA(K)
  336.    35 TEMP1=TEMP1+H(K)*TEMPV1(KK)
  337.       WA(31,IPT)=TEMP1
  338. C
  339. C        4. INITIALIZE AND STORE YIELD STRESS
  340. C
  341.       CALL MTITP2(PROP,TEMP1,PROP1)
  342.       YS1=PROP1(3)
  343.    30 WA(17,IPT)=YS1
  344. C
  345. C        5. INITIALIZE INTEGER VARIABLES IN THE WORKING ARRAY
  346. C           TO ONE
  347. C
  348.       KJ=31*ITWO + 1
  349.       KJJ=32*ITWO + 1
  350.       DO 40 I=1,NPT
  351.       IIWA(KJ,I)=1
  352.    40 IIWA(KJJ,I)=1
  353. C
  354.       RETURN
  355. C
  356.       END
  357. C *CDC* *DECK EPC2
  358. C *UNI* )FOR,IS  N.EPC2, R.EPC2
  359. C
  360.       SUBROUTINE EPC2(PROP,SIG,EPS,EPSP,EPSC,YLD,EPSTR,ALFA,ORIG,TMPOLD,
  361.      1                IPEL,NORG,NDS,NOD5M,TEMPV1,TEMPV2)
  362. C
  363. C
  364. C
  365. C     THIS SUBROUTINE CALCULATES THE STRESSES, PLASTIC STRAINS,
  366. C     CREEP STRAINS, AND THE CONSTITUTIVE LAW FOR THE
  367. C     THERMO-ELASTIC-PLASTIC AND CREEP MATERIAL MODELS
  368. C     (MODELS = 10 AND 11)
  369. C
  370. C
  371. C
  372. C     NALG = 1  ALGORITHM USES ISUBM SUBDIVISIONS OF EQUAL SIZE
  373. C
  374. C          = 2  ALGORITHM USES VARIABLE SIZE SUBDIVISIONS UP TO A
  375. C               MAXIMUM OF ISUBM
  376. C
  377. C
  378. C
  379. C     THE FOLLOWING VARIABLES ARE USED
  380. C
  381. C        SIG = STRESSES AT TIME OF LAST UPDATE
  382. C        EPS = TOTAL STRAINS AT TIME OF LAST UPDATE
  383. C        EPSP = PLASTIC STRAINS AT TIME OF LAST UPDATE
  384. C        EPSC = CREEP STRAINS AT TIME OF LAST UPDATE
  385. C        YLD = YIELD STRESS AT TIME OF LAST UPDATE
  386. C        EPSTR = ACCUMULATED EFFECTIVE PLASTIC STRAIN AT TIME OF LAST
  387. C                UPDATE
  388. C        ORIG = ORIGINS FOR O.R.N.L. CYCLIC CREEP AT TIME OF LAST UPDATE
  389. C        ALFA = YIELD SURFACE TRANSLATION COMPONENTS AT TIME OF LAST
  390. C               UPDATE
  391. C        IPEL = ELASTIC-PLASTIC INDICATOR AT TIME OF LAST UPDATE
  392. C        NORG = CYCLIC CREEP ORIGIN INDICATOR AT TIME OF LAST UPDATE
  393. C        TREF = REFERENCE TEMPERATURE
  394. C        KCRP = CREEP LAW NUMBER
  395. C        CRPCON = CREEP LAW COEFFICIENTS
  396. C        XINTP = INTEGRATION PARAMETER
  397. C        ISUBM = MAXIMUM NUMBER OF SUBDIVISIONS
  398. C        NITE = MAXIMUM NUMBER OF ITERATIONS PER SUBDIVISION
  399. C        NALG = ALGORITHM INDICATOR
  400. C        TOLIL,TOL1 = CONVERGENCE TOLERANCES
  401. C        TOL2,TOL5 = ZERO TOLERANCES
  402. C        TOL3,TOL4 = ROUNDOFF TOLERANCES
  403. C        TOL6,TOL7 = YIELD SURFACE TOLERANCES
  404. C        TOLPC = INELASTIC STRAIN TOLERANCE
  405. C        TOLMT = MATERIAL PROPERTY EXTREME TEMPERATURE TOLERANCE
  406. C        DTT = CURRENT TIME STEP
  407. C        DTOD = OLD TIME STEP WHEN USING RESTART
  408. C        DELT = TIME STEP SUBDIVISION
  409. C        STRAIN = TOTAL STRAINS
  410. C        STRESS = STRESSES
  411. C        DELEPS = INCREMENT IN TOTAL STRAINS
  412. C        EPS1 = TOTAL STRAINS AT START OF SUBDIVISION
  413. C        EPS2 = TOTAL STRAINS AT END OF SUBDIVISION
  414. C        DEPS = CHANGE IN TOTAL STRAINS FOR THE SUBDIVISION
  415. C        STRSS1,STRSS2 = STRESSES AT START AND END OF SUBDIVISION
  416. C        STRSSM = WEIGHTED STRESSES
  417. C        DELSIG = CHANGE IN STRESSES FOR THE SUBDIVISION
  418. C        EPST1,EPST2 = THERMAL STRAINS AT START AND END OF SUBDIVISION
  419. C        THSTR1 = THERMAL STRAIN RATE AT START OF SUBDIVISION
  420. C        DPST = CHANGE IN THERMAL STRAINS FOR THE SUBDIVISION
  421. C        EPSC1,EPSC2 = CREEP STRAINS AT START AND END OF SUBDIVISION
  422. C        EPSCM = WEIGHTED CREEP STRAINS
  423. C        DPSC = CHANGE IN CREEP STRAINS FOR THE SUBDIVISION
  424. C        EPSP1,EPSP2 = PLASTIC STRAINS AT START AND END OF SUBDIVISION
  425. C        DPSP = CHANGE IN PLASTIC STRAINS FOR THE SUBDIVISION
  426. C        EPSTR1,EPSTR2 = ACCUMULATED EFFECTIVE PLASTIC STRAIN AT START
  427. C                        AND END OF SUBDIVISION
  428. C        EPSTRM = WEIGHTED ACCUMULATED EFFECTIVE PLASTIC STRAIN
  429. C        TEMP1,TEMP2 = TEMPERATURES AT START AND END OF CURRENT
  430. C                      SOLUTION STEP
  431. C        TMP1,TMP2 = TEMPERATURES AT START AND END OF SUBDIVISION
  432. C        TMPM = WEIGHTED TEMPERATURE
  433. C        ALFA1,ALFA2 = YIELD SURFACE TRANSLATION COMPONENTS AT START
  434. C                      AND END OF SUBDIVISION
  435. C        ALFAM = WEIGHTED YIELD SURFACE TRANSLATION COMPONENTS
  436. C        C = CONSTITUTIVE MATRIX  (ELASTIC OR ELASTIC-PLASTIC)
  437. C        PROP1,PROP2 = MATERIAL PROPERTIES AT START AND END OF
  438. C                      SUBDIVISION
  439. C        PROPM = WEIGHTED MATERIAL PROPERTIES
  440. C        YLD1,YLD2 = YIELD STRESS AT START AND END OF SUBDIVISION
  441. C        YLDM = WEIGHTED YIELD STRESS
  442. C        XLAMDA = LOADING/UNLOADING/NEUTRAL LOADING INDICATOR
  443. C        NDS = ELEMENT GLOBAL NODAL POINT NUMBERS
  444. C
  445. C
  446. C
  447.       IMPLICIT REAL*8 (A-H,O-Z)
  448. C
  449.       COMMON /TODIM/ BET,THIC,DE,IEL,NND5
  450.       COMMON /EL/ IND,ICOUNT,NPAR(20),NUMEG,NEGL,NEGNL,IMASS,IDAMP,ISTAT
  451.      1            ,NDOF,KLIN,IEIG,IMASSN,IDAMPN
  452.       COMMON /VAR/ NG,MODEX,IUPDT,KSTEP,ITEMAX,IEQREF,ITE,KPRI,
  453.      1             IREF,IEQUIT,IPRI,KPLOTN,KPLOTE
  454.       COMMON /MATMOD/ STRESS(4),STRAIN(4),C(4,4),IPT,NEL,IPS
  455.       COMMON /TEMPRT/ TEMP1,TEMP2,ITEMPR,ITP96,N6A,N6B
  456.       COMMON /GAUSS/ XG(4,4),WGT(4,4),EVAL2(9,2),EVAL3(27,3),Z1,Z2,Z3
  457.       COMMON /SOLPM2/ TREF,XINTP,XCON1,XCON2,XPARM1,XPARM2,TOLIL,TOLPC,
  458.      1               TOL1,TOL2,TOL3,TOL4,TOL5,TOL6,TCHK,CRPCON(8),DTMN,
  459.      2               SUBDD,RNGL,RNGU,DTT,TOL7,
  460.      3               KCRP,NITE,NALG,IINTP,NPTS,ITCHK,IST,ISR
  461.       COMMON /CONST/ DT,DTA,CONS(21),DTOD,IOPE
  462. C
  463.       DIMENSION PROP(16,1),SIG(1),EPS(1),EPSC(1),ALFA(1),ORIG(4,1),
  464.      1          ORIGD(4,2),NDS(1),NOD5M(1),TEMPV1(1),TEMPV2(1),
  465.      2          STATE(2),H(8),XDM1(2,8),XDM2(2,2),XDM3(2,1),
  466.      3          DELSIG(4),DELEPS(4),DEPS(4),EPSP1(4),EPSP2(4),
  467.      4          STRSS1(4),STRSS2(4),STRSSM(4),EPSC1(4),EPSC2(4),
  468.      5          EPSCM(4),DPSC(4),ALFA1(4),ALFA2(4),ALFAM(4),
  469.      6          EPS1(4),EPS2(4),PROP1(5),DEPST(4),PROP2(5),PROPM(5)
  470.       DIMENSION STRSSD(4),DPSP(4),EPST2(4),EPSP(1),CEP(4,4),EPST1(4),
  471.      1          DSTSS(4)
  472. C
  473.       EQUIVALENCE (NPAR(5),ITYP2D),(NPAR(15),MODEL),(NPAR(3),INDNL)
  474.       EQUIVALENCE (STRESS(1),STRSS2(1))
  475. C
  476.       DATA STATE /2H E,2H*P/
  477. C
  478. C
  479. C
  480. C        1. INITIALIZE SOLUTION PARAMETERS
  481. C
  482.       INDEX=1
  483.       ISUB=1
  484.       ISUBM=IDINT(PROP(13,7))
  485. C
  486.       IF(IPT.GT.1) GO TO 5
  487. C
  488. C     SET TIME STEP SIZE **
  489. C
  490.       DTT=DT
  491.       IF(MODEX.EQ.2.AND.KSTEP.EQ.1.AND.ICOUNT.NE.3.AND.
  492.      1   KPRI.NE.0) DTT=DTOD
  493. C
  494.       SUBDD=5.0
  495.       DTMN=DTT/PROP(13,7)
  496.       IINTP=1
  497. C
  498.       DO 2 J=1,8
  499.     2 CRPCON(J)=PROP(J,7)
  500. C
  501.       NPTS=IDINT(PROP(9,7))
  502.       TREF=PROP(10,7)
  503.       KCRP=IDINT(PROP(11,7))
  504.       XINTP=PROP(12,7)
  505.       NITE=IDINT(PROP(14,7))
  506.       NALG=IDINT(PROP(15,7))
  507.       TOLIL=PROP(16,7)
  508.       TOLPC=PROP(1,8)
  509. C
  510.       XCON1=2.0/3.0
  511.       XCON2=1.0/3.0
  512. C
  513.       ITCHK=1
  514.       IF(NITE.LT.6) ITCHK=0
  515. C
  516. C     SET INTEGRATION PARAMETERS **
  517. C
  518.       XPARM1=1.0 - XINTP
  519.       XPARM2=XINTP
  520. C
  521. C     SET NUMBER OF STRESS AND STRAIN COMPONENTS **
  522. C
  523.       IST=4
  524.       IF(ITYP2D.GE.2) IST=3
  525.       ISR=3
  526.       IF(ITYP2D.EQ.0) ISR=4
  527. C
  528. C     SET TOLERANCES **
  529. C
  530.       TOL1=TOLIL*TOLIL
  531.       TOL4=5.0D-6
  532.       TOL5=1.0D-20
  533.       TOL2=TOL5*TOL5
  534.       TOL3=2.0*TOL4
  535.       TOL6=0.1
  536.       TOL7=2.0
  537.       TOLMT=1.0D-2
  538.       TCHK=DTT*(1.0 - TOL4)
  539. C
  540.       TOLL=TOLMT*DABS(PROP(1,1))
  541.       IF(TOLL.EQ.0.0) TOLL=TOLMT
  542.       TOLU=TOLMT*DABS(PROP(NPTS,1))
  543.       IF(TOLU.EQ.0.0) TOLU=TOLMT
  544. C
  545.       RNGL=PROP(1,1) - TOLL
  546.       RNGU=PROP(NPTS,1) + TOLU
  547. C
  548. C        2. INITIALIZE SOLUTION VARIABLES
  549. C
  550.     5 DELEPS(4)=0.0
  551.       DEPS(4)=0.0
  552.       EPS2(4)=0.0
  553.       DELSIG(4)=0.0
  554.       STRSSM(4)=0.0
  555.       STRSSD(4)=0.0
  556. C
  557.       DO 10 I=1,4
  558.       EPS1(I)=EPS(I)
  559.       EPSP1(I)=EPSP(I)
  560.       EPSP2(I)=EPSP(I)
  561.       ALFA1(I)=ALFA(I)
  562.       ALFA2(I)=ALFA(I)
  563.       EPSC1(I)=EPSC(I)
  564.       EPSC2(I)=EPSC(I)
  565.       DPSC(I)=0.0
  566.       EPST1(I)=0.0
  567.       EPST2(I)=0.0
  568.       DEPST(I)=0.0
  569.       STRSS2(I)=SIG(I)
  570.    10 STRSS1(I)=SIG(I)
  571. C
  572.       YLD1=YLD
  573.       EPSTR1=EPSTR
  574.       EPSTR2=EPSTR
  575.       ECSTR1=0.0
  576.       CRSRM=0.0
  577.       TMP1=TMPOLD
  578.       IPELD=IPEL
  579.       NORGD=NORG
  580.       TAU=0.0
  581.       ESTM=0.0
  582. C
  583.       DO 20 I=1,4
  584.       DO 20 J=1,2
  585.    20 ORIGD(I,J)=ORIG(I,J)
  586. C
  587. C        3. CALCULATE TOTAL STRAIN INCREMENT
  588. C
  589.       DO 25 J=1,ISR
  590.    25 DELEPS(J)=STRAIN(J) - EPS(J)
  591. C
  592. C        4. CALCULATE TEMPERATURE INCREMENT
  593. C
  594. C     CALCULATE INTEGRATION POINT TEMPERATURES **
  595. C
  596.       CALL FUNCT2(Z1,Z2,H,XDM1,NOD5M,XDM2,XDUM,XDM3,NEL,IINTP)
  597.       TEMP1=0.0
  598.       TEMP2=0.0
  599. C
  600.       DO 30 K=1,IEL
  601.       KK=NDS(K)
  602.       TEMP2=TEMP2 + H(K)*TEMPV2(KK)
  603.    30 TEMP1=TEMP1 + H(K)*TEMPV1(KK)
  604. C
  605.       CTEMP=TEMP2
  606. C
  607. C     CHECK FOR START OF A SOLUTION STEP *
  608. C
  609.       IF(ICOUNT.NE.3.AND.KPRI.NE.0) CTEMP=TEMP1
  610. C
  611.       DELTMP=CTEMP - TMPOLD
  612. C
  613. C        5. CALCULATE MATERIAL PROPERTIES AT TIME OF LAST UPDATE
  614. C
  615.       CALL EMAT2(TMPOLD,PROP,PROP1,A1,B1,C1,D1,E1,F1,1)
  616. C
  617.       YM1=PROP1(1)
  618.       ET1=PROP1(4)
  619.       YS1=PROP1(3)
  620. C
  621.       EET1=YM1*ET1/(YM1 - ET1)
  622. C
  623. C        6. CALCULATE SIZE OF FIRST SUBDIVISION
  624. C           (STRESS LOOP NO. 1)
  625. C
  626.    40 DELT=DTMN
  627.       IF(KCRP.EQ.0.AND.NALG.EQ.2) DELT=DTT
  628. C
  629. C        7. CALCULATE TOTAL STRAINS AT END OF SUBDIVISION
  630. C
  631.    60 XFAC=(TAU + DELT)/DTT
  632.       DO 65 J=1,ISR
  633.       EPS2(J)=EPS(J) + XFAC*DELEPS(J)
  634.    65 DEPS(J)=EPS2(J) - EPS1(J)
  635. C
  636. C        8. CALCULATE MATERIAL PROPERTIES AT END OF SUBDIVISION
  637. C
  638.       TMP2=TMPOLD + XFAC*DELTMP
  639.       TMPM=XPARM1*TMP1 + XPARM2*TMP2
  640. C
  641.       CALL EMAT2(TMP2,PROP,PROP2,A2,B2,C2,D2,E2,F2,2)
  642. C
  643. C        9. CALCULATE THERMAL STRAINS AT END OF SUBDIVISION
  644. C
  645.       ALPHA2=PROP2(5)
  646. C
  647.       EPST2(1)=ALPHA2*(TMP2 - TREF)
  648.       EPST2(2)=EPST2(1)
  649.       EPST2(4)=EPST2(1)
  650. C
  651. C        10. CALCULATE WEIGHTED STRESS
  652. C
  653.       IF(KCRP.EQ.0) GO TO 95
  654. C
  655.    70 DO 75 J=1,IST
  656.    75 STRSSM(J)=XPARM1*STRSS1(J) + XPARM2*STRSS2(J)
  657. C
  658. C        11. PRELIMINARY CREEP CALCULATIONS
  659. C
  660.       DO 80 J=1,4
  661.    80 DPSC(J)=0.0
  662.       CRSRM=0.0
  663. C
  664.       CALL EFST(ESTM,SXM,SYM,SXYM,SZM,STRSSM)
  665.       IF(ESTM.LE.TOL5.AND.INDEX.GT.1) GO TO 95
  666. C
  667.       DO 90 J=1,4
  668.    90 EPSCM(J)=XPARM1*EPSC1(J) + XPARM2*EPSC2(J)
  669. C
  670.       CALL CREEP2(DELT,DPSC,TMPM,EPSCM,ORIGD,NORGD,STRSSM,
  671.      1            GAMA,CRSRM,PTIME,ESTM,SXM,SYM,SXYM,SZM,FF,RR,GG,INDEX,
  672.      2            ECSTRM)
  673. C
  674.       IF(INDEX.EQ.1) ECSTR1=ECSTRM
  675. C
  676. C        12. CALCULATE THE STRESSES AND CREEP STRAINS AT END OF
  677. C             SUBDIVISION, ASSUMING THERMO-ELASTIC AND CREEP BEHAVIOR
  678. C
  679.    95 CALL SIGMA2(STRSS2,EPS2,EPSP2,EPST2,EPSC1,EPSC2,DPSC,GAMA,PTIME,
  680.      1            CRSRM,FF,RR,GG,ESTM,SXM,SYM,SXYM,SZM,DELT,B2,C2,D2)
  681. C
  682. C        13. CHECK FOR CONVERGENCE OF ITERATION
  683. C
  684. C     NO CONVERGENCE/DIVERGENCE CHECK WHEN NITE .LT. 6 (ITCHK .EQ. 0),
  685. C     WHEN KCRP .EQ. 0, OR WHEN XPARM2 .EQ. 0 **
  686. C
  687.   100 IF(KCRP.EQ.0) GO TO 215
  688.       IF(XPARM2.EQ.0.0) GO TO 205
  689.       IF(ITCHK.EQ.1) GO TO 120
  690. C
  691.       INDEX=INDEX + 1
  692.       IF(INDEX.LE.NITE) GO TO 70
  693.       GO TO 205
  694. C
  695. C     CALCULATE THE EUCLIDEAN NORM OF THE CHANGE IN THE CURRENT
  696. C     STRESS VECTOR **
  697. C
  698.   120 IF(INDEX - 4) 122,135,125
  699. C
  700.   122 INDEX=INDEX + 1
  701.       GO TO 70
  702. C
  703.   125 DNORM2=0.0
  704.       DO 130 J=1,IST
  705.   130 DNORM2=DNORM2 + (STRSS2(J) - STRSSD(J))*(STRSS2(J) - STRSSD(J))
  706. C
  707. C     CALCULATE EUCLIDEAN NORM OF THE CURRENT STRESS VECTOR **
  708. C
  709.   135 SNORM=0.0
  710.       DO 140 J=1,IST
  711.   140 SNORM=SNORM + STRSS2(J)*STRSS2(J)
  712. C
  713. C     VALUE OF INDEX .LE. 5 **
  714. C
  715.       IF(INDEX.GT.5) GO TO 155
  716.       SNORM2=SNORM
  717.       IF(INDEX.EQ.4) SNORM1=SNORM2
  718.       IF(INDEX.EQ.5) DNORM1=DNORM2
  719.       INDEX=INDEX + 1
  720. C
  721.       DO 150 J=1,IST
  722.   150 STRSSD(J)=STRSS2(J)
  723.       GO TO 70
  724. C
  725. C     APPLY CONVERGENCE CRITERIA FOR INDEX .GE. 6 **
  726. C
  727. C
  728. C     INITIAL CHECK FOR CONVERGENCE *
  729. C
  730.   155 IF(DNORM2.LE.DNORM1) GO TO 185
  731. C
  732. C     CHECK IF DNORM1 AND DNORM2 ARE WITHIN THE ROUNDOFF
  733. C     TOLERANCE BAND
  734. C
  735.       XTOL=TOL3*SNORM1
  736.       IF(SNORM1.LE.TOL2) XTOL=TOL2
  737.       IF(DNORM1.LE.XTOL.AND.DNORM2.LE.XTOL) GO TO 205
  738. C
  739. C     DIVERGENCE IS INDICATED, CALCULATE NEW SUBDIVISION SIZE
  740. C     (NALG .EQ. 2) *
  741. C
  742.       DELT=DELT*(DSQRT(DNORM1/DNORM2))/SUBDD
  743.       IF(NALG.EQ.2.AND.ISUB.LT.ISUBM) GO TO 170
  744. C
  745.       WRITE(6,3004)
  746.       WRITE(6,3002) NEL,IPT,ISUB,TAU,DELT
  747.       STOP
  748. C
  749. C     RESET ARRAYS AND VARIABLES FOR NEW SUBDIVISION SIZE
  750. C
  751.   170 INDEX=1
  752. C
  753.       DO 180 I=1,4
  754.       STRSS2(I)=STRSS1(I)
  755.   180 EPSC2(I)=EPSC1(I)
  756. C
  757.       GO TO 60
  758. C
  759. C     FINAL CHECK FOR CONVERGENCE *
  760. C
  761.   185 XTOL=TOL1*SNORM1
  762.       IF(SNORM1.LE.TOL2) XTOL=TOL2
  763.       IF(DNORM1.LE.XTOL) GO TO 205
  764. C
  765. C     NO CONVERGENCE
  766. C
  767.   190 INDEX=INDEX + 1
  768.       IF(INDEX.LE.NITE) GO TO 195
  769. C
  770.       WRITE(6,3001)
  771.       WRITE(6,3011) NEL,IPT,ISUB,TAU,DELT
  772.       STOP
  773. C
  774.   195 DNORM1=DNORM2
  775.       SNORM1=SNORM2
  776.       SNORM2=SNORM
  777. C
  778.       DO 200 J=1,IST
  779.   200 STRSSD(J)=STRSS2(J)
  780.       GO TO 70
  781. C
  782. C        14. CHECK SIZE OF CREEP STRAIN INCREMENT
  783. C
  784. C     CHECK IS BYPASSED WHEN THE MODIFIED EFFECTIVE CREEP STRAIN AT
  785. C     THE START OF THE SUBDIVISION AND/OR THE EFFECTIVE CREEP STRAIN
  786. C     RATE FOR THE SUBDIVISION .EQ. 0, OR WHEN KCRP .EQ. 0 **
  787. C
  788.   205 DECSTR=CRSRM*DELT
  789.       IF(DECSTR.LE.TOL5 .OR. ECSTR1.LE.TOL5) GO TO 215
  790. C
  791.       CHECK=DECSTR/(ECSTR1*TOLPC)
  792.       IF(CHECK.LE.1.1) GO TO 215
  793. C
  794. C     CREEP STRAIN INCREMENT IS TOO LARGE, CALCULATE NEW
  795. C     SUBDIVISION SIZE **
  796. C
  797.       DELT=DELT/CHECK
  798.       IF(NALG.EQ.2.AND.ISUB.LT.ISUBM) GO TO 208
  799. C
  800.       WRITE(6,3006)
  801.       WRITE(6,3002) NEL,IPT,ISUB,TAU,DELT
  802.       STOP
  803. C
  804. C     RESET ARRAYS AND VARIABLES FOR NEW SUBDIVISION SIZE **
  805. C
  806.   208 INDEX=1
  807. C
  808.       DO 210 I=1,4
  809.       EPSC2(I)=EPSC1(I)
  810.   210 STRSS2(I)=STRSS1(I)
  811. C
  812.       GO TO 60
  813. C
  814. C        15. CHECK FOR YIELDING
  815. C
  816. C     DETERMINE LOCATION OF THE STRESS-TEMPERATURE STATE AT END OF
  817. C     SUBDIVISION WITH RESPECT TO THE YIELD SURFACE (ASSUMING NO
  818. C     PLASTICITY) **
  819. C
  820.   215 CALL EFST(EST2,SX2,SY2,SXY2,SZ2,STRSS2)
  821. C
  822.       DO 218 I=1,IST
  823.   218 DELSIG(I)=STRSS2(I) - STRSS1(I)
  824. C
  825.       CALL EFST(EST,DX,DY,DXY,DZ,DELSIG)
  826. C
  827. C     KINEMATIC HARDENING **
  828. C
  829.       IF(MODEL.EQ.10) GO TO 220
  830. C
  831.       SX2=SX2 - ALFA1(1)
  832.       SY2=SY2 - ALFA1(2)
  833.       SXY2=SXY2 - ALFA1(3)
  834.       SZ2=SZ2 - ALFA1(4)
  835. C
  836. C     CALCULATE YIELD STRESS AT END OF SUBDIVISION *
  837. C
  838.   220 YM2=PROP2(1)
  839.       ET2=PROP2(4)
  840.       YS2=PROP2(3)
  841. C
  842.       EET2=YM2*ET2/(YM2 - ET2)
  843. C
  844.       DYLD=YS2 - YS1
  845.       IF(MODEL.EQ.10) DYLD=DYLD + (EET2 - EET1)*EPSTR1
  846.       YLD2=YLD1 + DYLD
  847. C
  848.   225 RA=DX*DX + DY*DY + DZ*DZ + 2.0*DXY*DXY
  849.       FTA=SX2*SX2 + SY2*SY2 + SZ2*SZ2 + 2.0*SXY2*SXY2
  850. C
  851. C     CHECK FOR NO CHANGE IN DEVIATORIC STRESS-TEMPERATURE STATE *
  852. C
  853.       IF(RA.EQ.0.0.AND.TMP1.EQ.TMP2) GO TO 228
  854. C
  855.       FTB=XCON1*YLD2*YLD2
  856.       IF(FTA.GT.FTB) GO TO 250
  857. C
  858. C        16. STRESS STATE IS WITHIN THE YIELD SURFACE---
  859. C            THERMO-ELASTIC/CREEP BEHAVIOR
  860. C
  861.       IPELD=1
  862.   228 TAU=TAU + DELT
  863. C
  864. C     CALCULATE SIZE OF NEXT SUBDIVISION **
  865. C
  866.       IF(NALG.EQ.2) GO TO 230
  867. C
  868. C     NALG .EQ. 1 *
  869. C
  870.       IF(ISUB.EQ.ISUBM) GO TO 248
  871.       GO TO 235
  872. C
  873. C    NALG .EQ. 2 *
  874. C
  875.   230 IF(TAU.GE.TCHK.OR.KCRP.EQ.0) GO TO 248
  876.       IF(DECSTR.LE.TOL5) GO TO 232
  877. C
  878.       DELT=DELT*TOLPC*(1.0 + (ECSTR1/DECSTR))
  879.       IF(TAU + DELT.GE.TCHK) DELT=DTT - TAU
  880.       GO TO 233
  881. C
  882.   232 DELT=DTT - TAU
  883. C
  884. C     IF NEXT SUBDIVISION IS THE LAST ONE, MAKE SURE DELT IS
  885. C     LARGE ENOUGH
  886. C
  887.   233 IF(ISUB + 1.LT.ISUBM.OR.TAU + DELT.GE.TCHK) GO TO 235
  888. C
  889.       WRITE(6,3007)
  890.       WRITE(6,3011) NEL,IPT,ISUBM,TAU,DELT
  891.       STOP
  892. C
  893. C     UPDATE VARIABLES **
  894. C
  895.   235 ISUB=ISUB + 1
  896.       INDEX=1
  897.       YS1=YS2
  898.       EET1=EET2
  899.       YLD1=YLD2
  900.       TMP1=TMP2
  901. C
  902.       DO 238 J=1,ISR
  903.   238 EPS1(J)=EPS2(J)
  904. C
  905.       DO 240 J=1,4
  906.       STRSS1(J)=STRSS2(J)
  907.   240 EPSC1(J)=EPSC2(J)
  908. C
  909.       GO TO 60
  910. C
  911. C     AT END OF TIME STEP, CALCULATE THICKNESS NORMAL STRAIN FOR
  912. C     CASE OF PLANE STRESS **
  913. C
  914.   248 IF(ITYP2D.GE.2) EPS2(4)=EPSP1(4) + EPSC2(4) + EPST2(4) + F2*
  915.      1                        (STRSS2(1) + STRSS2(2))
  916. C
  917. C     AT END OF TIME STEP, CALCULATE YIELD STRESS USING DEFINITION
  918. C     BASED ON TEMPERATURE AND ACCUMULATED EFFECTIVE PLASTIC STRAIN **
  919. C
  920.       YLDC=YS2
  921.       IF(MODEL.EQ.10) YLDC=EET2*EPSTR2 + YLDC
  922. C
  923.       GO TO 440
  924. C
  925. C        17. STRESS-TEMPERATURE STATE IS OUTSIDE THE YIELD
  926. C            SURFACE---THERMO-ELASTIC-PLASTIC/CREEP BEHAVIOR
  927. C
  928. C            THERMO-ELASTIC-PLASTIC/CREEP STRESS CALCULATIONS
  929. C            FOLLOW
  930. C
  931. C     CALCULATE THE FRACTION OF THE STRAIN SUBDIVISION OVER WHICH
  932. C     THERE IS NO PLASTIC STRAINING **
  933. C
  934.   250 CALL EFST(EST1,SX1,SY1,SXY1,SZ1,STRSS1)
  935. C
  936. C     KINEMATIC HARDENING *
  937. C
  938.       IF(MODEL.EQ.10) GO TO 255
  939. C
  940.       SX1=SX1 - ALFA1(1)
  941.       SY1=SY1 - ALFA1(2)
  942.       SXY1=SXY1 - ALFA1(3)
  943.       SZ1=SZ1 - ALFA1(4)
  944. C
  945.   255 RB=SX1*DX + SY1*DY + SZ1*DZ + 2.0*SXY1*DXY
  946.       RD=SX1*SX1 + SY1*SY1 + SZ1*SZ1 + 2.0*SXY1*SXY1
  947.       RE=RB - (XCON1*YLD1*DYLD)
  948.       RF=RA - (XCON1*DYLD*DYLD)
  949.       RG=RD - (XCON1*YLD1*YLD1)
  950. C
  951.       IF(IPELD.EQ.2.OR.RG.GE.0.0) GO TO 270
  952. C
  953. C     STRESS-TEMPERATURE STATE IS WITHIN THE YIELD SURFACE AT
  954. C     START OF SUBDIVISION *
  955. C
  956.   260 IF(DABS(RF).GT.TOL5) GO TO 265
  957.       RATIO=-RG/(2.0*RE)
  958.       GO TO 275
  959. C
  960.   265 RATIO=(-RE + DSQRT(RE*RE - RF*RG))/RF
  961.       GO TO 275
  962. C
  963. C     STRESS-TEMPERATURE STATE IS ON THE YIELD SURFACE AT START
  964. C     OF SUBDIVISION *
  965. C
  966.   270 RATIO=0.0
  967.       IF(RF.GT.TOL5.AND.RE.LT.0.0) RATIO=-2.0*RE/RF
  968. C
  969. C     CHECK CALCULATED VALUE OF RATIO **
  970. C
  971.   275 IF(RATIO.GE.(-TOL6) .AND. RATIO.LE.(1.0 + TOL6)) GO TO 280
  972. C
  973.       WRITE(6,3012)
  974.       WRITE(6,3013) NEL,IPT,ISUB,TAU,IPELD,RA,RB,RD,RE,RF,RG,RATIO
  975.       STOP
  976. C
  977.   280 IF(RATIO.GT.1.0) RATIO=1.0
  978.       IF(RATIO.LT.0.0) RATIO=0.0
  979.       IPELD=2
  980. C
  981. C        18. UPDATE ALL VARIABLES TO START OF YIELDING
  982. C
  983.       TAU=TAU + RATIO*DELT
  984.       TMP1=TMPOLD + DELTMP*TAU/DTT
  985.       YLD1=YLD1 + RATIO*DYLD
  986.       IF(RATIO.GT.TOL5) ISUB=ISUB + 1
  987.       IF(ISUB.GT.ISUBM) ISUBM=ISUBM + 1
  988. C
  989. C     CALCULATE STRESSES, TOTAL STRAINS, AND CREEP STRAINS AT
  990. C     START OF YIELDING **
  991. C
  992.       DO 282 J=1,4
  993.       EPSC1(J)=EPSC1(J) + RATIO*DPSC(J)
  994.       EPSC2(J)=EPSC1(J)
  995.       STRSS1(J)=STRSS1(J) + RATIO*DELSIG(J)
  996.   282 STRSS2(J)=STRSS1(J)
  997. C
  998.       DO 285 J=1,ISR
  999.   285 EPS1(J)=EPS1(J) + RATIO*DEPS(J)
  1000. C
  1001. C     CALCULATE MATERIAL PROPERTIES AT START OF YIELDING **
  1002. C
  1003.   288 CALL EMAT2(TMP1,PROP,PROP1,A1,B1,C1,D1,E1,F1,1)
  1004. C
  1005. C     CALCULATE THERMAL STRAINS AT START OF YIELDING **
  1006. C
  1007.       ALPHA1=PROP1(5)
  1008.       EPST1(1)=ALPHA1*(TMP1 - TREF)
  1009. C
  1010. C        19. CALCULATE SIZE OF FIRST SUBDIVISION AFTER YIELDING
  1011. C            (STRESS LOOP NO. 2)
  1012. C
  1013.   290 XNWDT=DTT - TAU
  1014.       DELT=XNWDT/DBLE(FLOAT(ISUBM - ISUB + 1))
  1015.       INDEX=1
  1016.       DEPSTR=0.0
  1017.       DESTR=1.0
  1018.       DENOM=0.0
  1019. C
  1020. C        20. CALCULATE TEMPERATURE AT END OF SUBDIVISION
  1021. C            AND WEIGHTED TEMPERATURE
  1022. C
  1023.   292 TMP2=TMPOLD + DELTMP*(TAU + DELT)/DTT
  1024.       TMPM=XPARM1*TMP1 + XPARM2*TMP2
  1025. C
  1026. C        21. CALCULATE MATERIAL PROPERTIES AT END OF SUBDIVISION
  1027. C            CALCULATE WEIGHTED MATERIAL PROPERTIES
  1028. C
  1029.       CALL EMAT2(TMP2,PROP,PROP2,A2,B2,C2,D2,E2,F2,2)
  1030. C
  1031.       DO 295 J=1,5
  1032.   295 PROPM(J)=XPARM1*PROP1(J) + XPARM2*PROP2(J)
  1033. C
  1034.       YMM=PROPM(1)
  1035.       ETM=PROPM(4)
  1036. C
  1037.       EETM=YMM*ETM/(YMM - ETM)
  1038.       CEM=XCON1*EETM
  1039. C
  1040. C        22. CALCULATE THERMAL STRAINS AT END OF SUBDIVISION
  1041. C            AND THERMAL STRAIN INCREMENT FOR THE SUBDIVISION
  1042. C
  1043.       ALPHA2=PROP2(5)
  1044. C
  1045.       EPST2(1)=ALPHA2*(TMP2 - TREF)
  1046.       EPST2(2)=EPST2(1)
  1047.       EPST2(4)=EPST2(1)
  1048. C
  1049.       DPST=EPST2(1) - EPST1(1)
  1050. C
  1051. C        23. CALCULATE TOTAL STRAINS AT END OF SUBDIVISION
  1052. C            AND TOTAL STRAIN CHANGE FOR THE SUBDIVISION
  1053. C
  1054.   300 XFAC=(TAU + DELT)/DTT
  1055.       DO 305 J=1,ISR
  1056.       EPS2(J)=EPS(J) + XFAC*DELEPS(J)
  1057.   305 DEPS(J)=EPS2(J) - EPS1(J)
  1058. C
  1059. C        24. CALCULATE WEIGHTED STRESS
  1060. C
  1061.   310 DO 315 J=1,IST
  1062.   315 STRSSM(J)=XPARM1*STRSS1(J) + XPARM2*STRSS2(J)
  1063. C
  1064.       CALL EFST(ESTM,SXM,SYM,SXYM,SZM,STRSSM)
  1065. C
  1066. C        25. CALCULATE WEIGHTED ACCUMULATED EFFECTIVE PLASTIC STRAIN
  1067. C
  1068.       EPSTRM=XPARM1*EPSTR1 + XPARM2*EPSTR2
  1069. C
  1070. C        26. CALCULATE WEIGHTED YIELD SURFACE TRANSLATION
  1071. C
  1072.       IF(MODEL.EQ.10) GO TO 320
  1073. C
  1074.       DO 318 J=1,4
  1075.   318 ALFAM(J)=XPARM1*ALFA1(J) + XPARM2*ALFA2(J)
  1076.       GO TO 324
  1077. C
  1078. C        27. CALCULATE WEIGHTED YIELD STRESS
  1079. C
  1080. C     ISOTROPIC HARDENING **
  1081. C
  1082.   320 YLDM=ESTM
  1083.       GO TO 328
  1084. C
  1085. C     KINEMATIC HARDENING **
  1086. C
  1087.   324 DO 325 J=1,4
  1088.   325 DSTSS(J)=STRSSM(J) - ALFAM(J)
  1089. C
  1090.       CALL EFST(YLDM,SXT,SYT,SXYT,SZT,DSTSS)
  1091. C
  1092. C        28. PRELIMINARY CREEP CALCULATIONS
  1093. C
  1094.   328 IF(KCRP.EQ.0) GO TO 335
  1095. C
  1096.       DO 330 J=1,4
  1097.   330 DPSC(J)=0.0
  1098.       CRSRM=0.0
  1099. C
  1100.       DO 332 J=1,4
  1101.   332 EPSCM(J)=XPARM1*EPSC1(J) + XPARM2*EPSC2(J)
  1102. C
  1103.       CALL CREEP2(DELT,DPSC,TMPM,EPSCM,ORIGD,NORGD,STRSSM,
  1104.      1            GAMA,CRSRM,PTIME,ESTM,SXM,SYM,SXYM,SZM,FF,RR,GG,INDEX,
  1105.      2            ECSTRM)
  1106. C
  1107.       IF(INDEX.EQ.1) ECSTR1=ECSTRM
  1108. C
  1109. C        29. CALCULATE PLASTIC STRAINS AT END OF SUBDIVISION
  1110. C
  1111.   335 CALL EPMAT2(STRSSM,ALFAM,EPSTRM,DEPS,DPSC,DPST,CEP,XLAMDA,
  1112.      1            PROP1,PROP2,PROPM,YLDM,1,A2,B2,C1,C2,DPSP,SXM,SYM,
  1113.      2            SXYM,SZM,INDEX,EETM)
  1114. C
  1115.   342 DO 344 J=1,4
  1116.   344 EPSP2(J)=EPSP1(J) + DPSP(J)
  1117. C
  1118.       IF(XLAMDA.LE.0.0) GO TO 345
  1119. C
  1120. C        30. CALCULATE ACCUMULATED EFFECTIVE PLASTIC STRAIN AT END
  1121. C            OF SUBDIVISION
  1122. C
  1123.       DEPSTR=DSQRT(XCON1*(DPSP(1)*DPSP(1) + DPSP(2)*DPSP(2) + DPSP(4)*
  1124.      1            DPSP(4)) + XCON2*(DPSP(3)*DPSP(3)))
  1125.       EPSTR2=EPSTR1 + DEPSTR
  1126. C
  1127. C        31. CALCULATE YIELD SURFACE TRANSLATION AT END
  1128. C            OF SUBDIVISION
  1129. C
  1130.       IF(MODEL.EQ.10) GO TO 345
  1131. C
  1132.       ALFA2(1)=ALFA1(1) + CEM*DPSP(1)
  1133.       ALFA2(2)=ALFA1(2) + CEM*DPSP(2)
  1134.       ALFA2(3)=ALFA1(3) + 0.5*CEM*DPSP(3)
  1135.       ALFA2(4)=ALFA1(4) + CEM*DPSP(4)
  1136. C
  1137. C        32. CALCULATE THE STRESSES AND CREEP STRAINS AT
  1138. C            END OF SUBDIVISION
  1139. C
  1140.   345 CALL SIGMA2(STRSS2,EPS2,EPSP2,EPST2,EPSC1,EPSC2,DPSC,GAMA,PTIME,
  1141.      1            CRSRM,FF,RR,GG,ESTM,SXM,SYM,SXYM,SZM,DELT,B2,C2,D2)
  1142. C
  1143. C        33. CHECK FOR CONVERGENCE OF ITERATION
  1144. C
  1145. C
  1146. C     NO CONVERGENCE/DIVERGENCE CHECK WHEN NITE .LT. 6 (ITCHK .EQ.0)
  1147. C     OR WHEN XPARM2 .EQ. 0.0 **
  1148. C
  1149.   350 IF(XPARM2.EQ.0.0) GO TO 400
  1150.       IF(ITCHK.EQ.1) GO TO 358
  1151. C
  1152.       INDEX=INDEX + 1
  1153.       IF(INDEX.LE.NITE) GO TO 310
  1154.       GO TO 400
  1155. C
  1156. C     CALCULATE EUCLIDEAN NORM OF THE CHANGE IN THE CURRENT
  1157. C     STRESS VECTOR **
  1158. C
  1159.   358 IF(INDEX - 4) 360,366,362
  1160. C
  1161.   360 INDEX=INDEX + 1
  1162.       GO TO 310
  1163. C
  1164.   362 DNORM2=0.0
  1165.       DO 365 J=1,IST
  1166.   365 DNORM2=DNORM2 + (STRSS2(J) - STRSSD(J))*(STRSS2(J) - STRSSD(J))
  1167. C
  1168. C     CALCULATE EUCLIDEAN NORM OF THE CURRENT STRESS VECTOR **
  1169. C
  1170.   366 SNORM=0.0
  1171.       DO 368 J=1,IST
  1172.   368 SNORM=SNORM + STRSS2(J)*STRSS2(J)
  1173. C
  1174. C     VALUE OF INDEX .LE. 5 **
  1175. C
  1176.       IF(INDEX.GT.5) GO TO 375
  1177.       SNORM2=SNORM
  1178.       IF(INDEX.EQ.4) SNORM1=SNORM2
  1179.       IF(INDEX.EQ.5) DNORM1=DNORM2
  1180.       INDEX=INDEX + 1
  1181. C
  1182.       DO 370 J=1,IST
  1183.   370 STRSSD(J)=STRSS2(J)
  1184.       GO TO 310
  1185. C
  1186. C     APPLY CONVERGENCE CRITERIA FOR INDEX .GE. 6 **
  1187. C
  1188. C
  1189. C     INITIAL CHECK FOR CONVERGENCE *
  1190. C
  1191.   375 IF(DNORM2.LE.DNORM1) GO TO 390
  1192. C
  1193. C     CHECK IF DNORM1 AND DNORM2 ARE WITHIN THE ROUNDOFF
  1194. C     TOLERANCE BAND
  1195. C
  1196.       XTOL=TOL3*SNORM1
  1197.       IF(SNORM1.LE.TOL2) XTOL=TOL2
  1198.       IF(DNORM1.LE.XTOL.AND.DNORM2.LE.XTOL) GO TO 400
  1199. C
  1200. C     DIVERGENCE IS INDICATED, CALCULATE NEW SUBDIVISION SIZE
  1201. C     (NALG .EQ. 2) *
  1202. C
  1203.       DELT=DELT*(DSQRT(DNORM1/DNORM2))/SUBDD
  1204.       IF(NALG.EQ.2.AND.ISUB.LT.ISUBM) GO TO 380
  1205. C
  1206.   378 WRITE(6,3008)
  1207.       WRITE(6,3002) NEL,IPT,ISUB,TAU,DELT
  1208.       STOP
  1209. C
  1210. C     RESET ARRAYS AND VARIABLES FOR NEW SUBDIVISION SIZE
  1211. C
  1212.   380 INDEX=1
  1213.       DEPSTR=0.0
  1214.       DESTR=1.0
  1215.       DENOM=0.0
  1216.       EPSTR2=EPSTR1
  1217. C
  1218.       DO 385 I=1,4
  1219.       STRSS2(I)=STRSS1(I)
  1220.       EPSP2(I)=EPSP1(I)
  1221.       ALFA2(I)=ALFA1(I)
  1222.   385 EPSC2(I)=EPSC1(I)
  1223. C
  1224.       GO TO 292
  1225. C
  1226. C     FINAL CHECK FOR CONVERGENCE *
  1227. C
  1228.   390 XTOL=TOL1*SNORM1
  1229.       IF(SNORM1.LE.TOL2) XTOL=TOL2
  1230.       IF(DNORM1.LE.XTOL) GO TO 400
  1231. C
  1232. C     NO CONVERGENCE
  1233. C
  1234.       INDEX=INDEX + 1
  1235.       IF(INDEX.LE.NITE) GO TO 395
  1236. C
  1237.       WRITE(6,3003)
  1238.       WRITE(6,3011) NEL,IPT,ISUB,TAU,DELT
  1239.       STOP
  1240. C
  1241.   395 DNORM1=DNORM2
  1242.       SNORM1=SNORM2
  1243.       SNORM2=SNORM
  1244. C
  1245.       DO 398 J=1,IST
  1246.   398 STRSSD(J)=STRSS2(J)
  1247.       GO TO 310
  1248. C
  1249. C        34. CHECK SIZE OF INELASTIC STRAIN INCREMENT
  1250. C
  1251. C     CHECK IS BYPASSED WHEN THE EFFECTIVE INELASTIC STRAIN AT THE
  1252. C     START OF THE SUBDIVISION AND/OR THE EFFECTIVE INELASTIC STRAIN
  1253. C     RATE FOR THE SUBDIVISION .EQ. 0 **
  1254. C
  1255.   400 DECSTR=CRSRM*DELT
  1256.       DESTR=DECSTR + DEPSTR
  1257.       DENOM=ECSTR1 + EPSTR1
  1258.       IF(DESTR.LE.TOL5.OR.DENOM.LE.TOL5) GO TO 410
  1259. C
  1260.       CHECK=DESTR/(DENOM*TOLPC)
  1261.       IF(CHECK.LE.1.1) GO TO 410
  1262. C
  1263. C     INELASTIC STRAIN INCREMENT IS TOO LARGE, CALCULATE NEW
  1264. C     SUBDIVISION SIZE **
  1265. C
  1266.       DELT=DELT/CHECK
  1267.       IF(NALG.EQ.2.AND.ISUB.LT.ISUBM) GO TO 405
  1268. C
  1269.       WRITE(6,3009)
  1270.       WRITE(6,3002) NEL,IPT,ISUB,TAU,DELT
  1271.       STOP
  1272. C
  1273. C     RESET ARRAYS AND VARIABLES FOR NEW SUBDIVISION SIZE **
  1274. C
  1275.   405 INDEX=1
  1276.       DEPSTR=0.0
  1277.       DESTR=1.0
  1278.       DENOM=0.0
  1279.       EPSTR2=EPSTR1
  1280. C
  1281.       DO 408 I=1,4
  1282.       STRSS2(I)=STRSS1(I)
  1283.       EPSP2(I)=EPSP1(I)
  1284.       ALFA2(I)=ALFA1(I)
  1285.   408 EPSC2(I)=EPSC1(I)
  1286. C
  1287.       GO TO 292
  1288. C
  1289. C        35. CALCULATE YIELD STRESS AT END OF SUBDIVISION
  1290. C
  1291.   410 YM2=PROP2(1)
  1292.       ET2=PROP2(4)
  1293.       YS2=PROP2(3)
  1294. C
  1295.       EET2=YM2*ET2/(YM2 - ET2)
  1296. C
  1297. C     USING DEFINITION BASED ON TEMPERATURE AND ACCUMULATED EFFECTIVE
  1298. C     PLASTIC STRAIN **
  1299. C
  1300. C     KINEMATIC HARDENING *
  1301. C
  1302.       YLDC=YS2
  1303. C
  1304. C     ISOTROPIC HARDENING *
  1305. C
  1306.       IF(MODEL.EQ.10) YLDC=EET2*EPSTR2 + YLDC
  1307. C
  1308. C     USING STRESS STATE **
  1309. C
  1310. C     ISOTROPIC HARDENING *
  1311. C
  1312.       IF(MODEL.EQ.11) GO TO 412
  1313.       CALL EFST(YLD2,SX2,SY2,SXY2,SZ2,STRSS2)
  1314.       GO TO 414
  1315. C
  1316. C     KINEMATIC HARDENING *
  1317. C
  1318.   412 DO 413 J=1,4
  1319.   413 DSTSS(J)=STRSS2(J) - ALFA2(J)
  1320. C
  1321.       CALL EFST(YLD2,SXT,SYT,SXYT,SZT,DSTSS)
  1322. C
  1323. C        36. CORRECT STRESS STATE TO YIELD SURFACE
  1324. C
  1325. C     CHECK YIELD SURFACE ERROR **
  1326. C
  1327.   414 CHECK=DABS(YLD2 - YLDC)/DMIN1(YLD2,YLDC)
  1328.       IF(CHECK.LE.TOL7) GO TO 415
  1329. C
  1330.       WRITE(6,3014)
  1331.       WRITE(6,3015) NEL,IPT,ISUB,TAU,YLD2,YLDC
  1332.       STOP
  1333. C
  1334. C     *** THIS VERSION OF ADINA DOES NOT HAVE A CORRECTION FOR
  1335. C         ISOTHERMAL PERFECT PLASTICITY OR ISOTHERMAL KINEMATIC
  1336. C         HARDENING ***
  1337. C
  1338. C
  1339. C        37. UPDATE VARIABLES FOR NEXT SUBDIVISION
  1340. C
  1341.   415 TAU=TAU + DELT
  1342. C
  1343. C     CALCULATE SIZE OF NEXT SUBDIVISION **
  1344. C
  1345.       IF(NALG.EQ.2) GO TO 416
  1346. C
  1347. C     NALG .EQ. 1 *
  1348. C
  1349.       IF(ISUB.EQ.ISUBM) GO TO 438
  1350.       GO TO 425
  1351. C
  1352. C     NALG .EQ. 2 *
  1353. C
  1354.   416 IF(TAU.GE.TCHK) GO TO 438
  1355.       IF(DESTR.LE.TOL5) GO TO 420
  1356. C
  1357.       DELT=DELT*TOLPC*(1.0 + (DENOM/DESTR))
  1358.       IF(TAU + DELT.GE.TCHK) DELT=DTT - TAU
  1359.       GO TO 422
  1360. C
  1361.   420 DELT=DTT - TAU
  1362. C
  1363. C     IF NEXT SUBDIVISION IS THE LAST ONE, MAKE SURE DELT IS
  1364. C     LARGE ENOUGH
  1365. C
  1366.   422 IF(ISUB + 1.LT.ISUBM.OR.TAU + DELT.GE.TCHK) GO TO 425
  1367. C
  1368.       WRITE(6,3010)
  1369.       WRITE(6,3011) NEL,IPT,ISUBM,TAU,DELT
  1370.       STOP
  1371. C
  1372. C     UPDATE VARIABLES **
  1373. C
  1374.   425 ISUB=ISUB + 1
  1375.       INDEX=1
  1376.       DEPSTR=0.0
  1377.       DESTR=1.0
  1378.       DENOM=0.0
  1379.       TMP1=TMP2
  1380.       EPSTR1=EPSTR2
  1381.       EPST1(1)=EPST2(1)
  1382. C
  1383.       A1=A2
  1384.       B1=B2
  1385.       C1=C2
  1386.       D1=D2
  1387.       E1=E2
  1388.       F1=F2
  1389. C
  1390.       DO 428 I=1,ISR
  1391.   428 EPS1(I)=EPS2(I)
  1392. C
  1393.       DO 430 J=1,4
  1394.       STRSS1(J)=STRSS2(J)
  1395.       EPSC1(J)=EPSC2(J)
  1396.       ALFA1(J)=ALFA2(J)
  1397.   430 EPSP1(J)=EPSP2(J)
  1398. C
  1399.       DO 435 J=1,5
  1400.   435 PROP1(J)=PROP2(J)
  1401. C
  1402.       GO TO 292
  1403. C
  1404. C     AT END OF TIME STEP, CALCULATE THICKNESS NORMAL STRAIN
  1405. C     FOR THE CASE OF PLANE STRESS **
  1406. C
  1407.   438 IF(ITYP2D.GE.2) EPS2(4)=EPSP2(4) + EPSC2(4) + EPST2(4) +
  1408.      1                        F2*(STRSS2(1) + STRSS2(2))
  1409. C
  1410. C        38. PERMANENT UPDATING OF VARIABLES
  1411. C
  1412.   440 IF(IUPDT.NE.0) GO TO 455
  1413. C
  1414.       DO 445 J=1,4
  1415.       SIG(J)=STRSS2(J)
  1416.       ALFA(J)=ALFA2(J)
  1417.       EPSC(J)=EPSC2(J)
  1418.       EPSP(J)=EPSP2(J)
  1419.   445 EPS(J)=STRAIN(J)
  1420. C
  1421.       IF(ITYP2D.GE.2) EPS(4)=EPS2(4)
  1422.       YLD=YLD2
  1423.       EPSTR=EPSTR2
  1424.       TMPOLD=TMP2
  1425.       IPEL=IPELD
  1426.       NORG=NORGD
  1427. C
  1428.       DO 450 I=1,4
  1429.       DO 450 J=1,2
  1430.   450 ORIG(I,J)=ORIGD(I,J)
  1431. C
  1432. C        39. CALCULATE LATEST CONSTITUTIVE LAW
  1433. C
  1434. C     CHECK FOR EQUILIBRIUM ITERATION **
  1435. C
  1436.   455 IF(ICOUNT.EQ.3) RETURN
  1437. C
  1438. C     CHECK FOR PRINTING OF STRESSES **
  1439. C
  1440.       IF(KPRI.EQ.0) GO TO 600
  1441. C
  1442. C     UPDATE SOLUTION VARIABLES **
  1443. C
  1444.       DO 458 J=1,4
  1445.       EPSC1(J)=EPSC2(J)
  1446.       EPSP1(J)=EPSP2(J)
  1447.       EPST1(J)=EPST2(J)
  1448.       STRSS1(J)=STRSS2(J)
  1449.   458 ALFA1(J)=ALFA2(J)
  1450. C
  1451.       YLD1=YLD2
  1452.       EPSTR1=EPSTR2
  1453. C
  1454. C     CALCULATE MATERIAL PROPERTIES AT END OF NEXT TIME STEP **
  1455. C
  1456.       A1=A2
  1457.       B1=B2
  1458.       C1=C2
  1459.       D1=D2
  1460.       E1=E2
  1461.       F1=F2
  1462. C
  1463.       DO 460 I=1,5
  1464.   460 PROP1(I)=PROP2(I)
  1465. C
  1466.       CALL EMAT2(TEMP2,PROP,PROP2,A2,B2,C2,D2,E2,F2,2)
  1467. C
  1468. C     CALCULATE THERMAL STRAINS AT END OF NEXT TIME STEP **
  1469. C
  1470.       ALPHA2=PROP2(5)
  1471.       EPST=ALPHA2*(TEMP2 - TREF)
  1472.       DPST=EPST - EPST1(1)
  1473. C
  1474.       DO 465 J=1,4
  1475.       EPST2(J)=EPST
  1476.   465 DEPST(J)=DPST
  1477. C
  1478.       EPST2(3)=0.0
  1479.       DEPST(3)=0.0
  1480. C
  1481. C     ESTIMATE CREEP STRAINS AT END OF NEXT TIME STEP **
  1482. C
  1483.       INDEX=1
  1484.       CALL EFST(EST1,SX1,SY1,SXY1,SZ1,STRSS1)
  1485. C
  1486.       IF(KCRP.EQ.0) GO TO 480
  1487. C
  1488.       DO 470 J=1,4
  1489.   470 DPSC(J)=0.0
  1490. C
  1491.       IF(EST1.LE.TOL5) GO TO 480
  1492.       TMPM=XPARM1*TEMP1 + XPARM2*TEMP2
  1493. C
  1494.       CALL CREEP2(DT,DPSC,TMPM,EPSC1,ORIGD,NORGD,STRSS1,GAMA,CRSR1,
  1495.      1            PTIME,EST1,SX1,SY1,SXY1,SZ1,FF,RR,GG,INDEX,ECSTR1)
  1496. C
  1497.       DO 475 I=1,4
  1498.   475 EPSC2(I)=EPSC1(I) + DPSC(I)
  1499. C
  1500. C     CHECK ELASTIC-PLASTIC INDICATOR **
  1501. C
  1502.   480 IF(IPELD.EQ.2) GO TO 490
  1503. C
  1504. C     THERMO-ELASTIC AND CREEP BEHAVIOR **
  1505. C
  1506.       DO 482 J=1,4
  1507.   482 STRESS(J)=0.0
  1508. C
  1509.       DO 485 I=1,IST
  1510.       DO 485 J=1,IST
  1511.   485 STRESS(I)=STRESS(I) + C(I,J)*(STRAIN(J) - EPSP2(J) - EPSC2(J) -
  1512.      1          EPST2(J))
  1513. C
  1514.       RETURN
  1515. C
  1516. C     THERMO-ELASTIC-PLASTIC AND CREEP BEHAVIOR **
  1517. C
  1518. C
  1519. C     CALCULATE WEIGHTED MATERIAL PROPERTIES *
  1520. C
  1521.   490 DO 494 J=1,5
  1522.   494 PROPM(J)=XPARM1*PROP1(J) + XPARM2*PROP2(J)
  1523. C
  1524. C     ESTIMATE PLASTIC STRAINS AT END OF NEXT TIME STEP *
  1525. C
  1526.   500 YMM=PROPM(1)
  1527.       ETM=PROPM(4)
  1528.       EETM=YMM*ETM/(YMM - ETM)
  1529. C
  1530.       CALL EPMAT2(STRSS1,ALFA1,EPSTR1,DELEPS,DPSC,DPST,CEP,XLAMDA,
  1531.      1            PROP1,PROP2,PROPM,YLD1,2,A2,B2,C1,C2,DPSP,SX1,SY1,
  1532.      2            SXY1,SZ1,INDEX,EETM)
  1533. C
  1534.       DO 505 J=1,4
  1535.       STRESS(J)=0.0
  1536.   505 EPSP2(J)=EPSP1(J) + DPSP(J)
  1537. C
  1538.       IF(IEQREF.EQ.1 .OR. XLAMDA.LT. 0.0) GO TO 520
  1539. C
  1540. C     ITERATION WITH ELASTIC-PLASTIC STIFFNESS MATRIX *
  1541. C
  1542.       DO 510 I=1,IST
  1543.       DO 510 J=1,IST
  1544.   510 STRESS(I)=STRESS(I) - CEP(I,J)*(DPSC(J) + DEPST(J)) + C(I,J)*
  1545.      1          (STRAIN(J) - EPSP1(J) - EPSC1(J) - EPST1(J) - DPSP(J))
  1546. C
  1547.       DO 515 I=1,IST
  1548.       DO 515 J=1,IST
  1549.   515 C(I,J)=CEP(I,J)
  1550. C
  1551.       RETURN
  1552. C
  1553. C     ITERATION WITH ELASTIC STIFFNESS MATRIX WHEN GLOBAL DIVERGENCE
  1554. C     PROCEDURE IS ACTIVATED OR UNLOADING IS DETECTED *
  1555. C
  1556.   520 DO 535 I=1,IST
  1557.       DO 535 J=1,IST
  1558.   535 STRESS(I)=STRESS(I) + C(I,J)*(STRAIN(J) - EPSP2(J) - EPSC2(J)
  1559.      1          - EPST2(J))
  1560. C
  1561.       RETURN
  1562. C
  1563. C        40. PRINTING OF STRESSES
  1564. C
  1565. C     CALCULATE EFFECTIVE STRESS **
  1566. C
  1567.   600 FT=YLD2
  1568.       IF(IPELD.EQ.1) FT=DSQRT(1.5*FTA)
  1569. C
  1570. C     IN TOTAL LAGRANGIAN FORMULATION, CALCULATE CAUCHY STRESSES **
  1571. C
  1572.   605 IF(INDNL.EQ.2) CALL CAUCHY
  1573. C
  1574.   610 IF(IPRI.NE.0) RETURN
  1575.       IF (IPS.LT.0) GO TO 700
  1576. C
  1577. C     STRESS PRINTOUT ONLY **
  1578. C
  1579.       IF(IPT.GT.1) GO TO 620
  1580. C
  1581. C     PRINT HEADING *
  1582. C
  1583.       WRITE(6,2000)
  1584. C
  1585. C     PRINT ELEMENT NUMBER *
  1586. C
  1587.       WRITE(6,2005) NEL
  1588. C
  1589. C     PRINT INTEGRATION POINT STRESSES *
  1590. C
  1591.   620 WRITE(6,2200) IPT,STATE(IPELD),STRSS2(4),(STRSS2(J),J=1,3)
  1592.       WRITE(6,2700) TEMP2,EPSTR2,ISUB,FT,YLD2,YLDC
  1593. C
  1594.       RETURN
  1595. C
  1596. C     STRESS AND STRAIN PRINTOUT **
  1597. C
  1598.   700 IF(IPT.GT.1) GO TO 720
  1599. C
  1600. C     PRINT HEADING *
  1601. C
  1602.       WRITE(6,2000)
  1603. C
  1604. C     PRINT ELEMENT NUMBER *
  1605. C
  1606.       WRITE(6,2005) NEL
  1607. C
  1608. C     PRINT INTEGRATION POINT STRESSES AND STRAINS *
  1609. C
  1610.   720 WRITE(6,2200) IPT,STATE(IPELD),STRSS2(4),(STRSS2(J),J=1,3)
  1611.       IF(ITYP2D.GE.2) STRAIN(4)=EPS2(4)
  1612.       WRITE(6,2300) STRAIN(4),(STRAIN(J),J=1,3)
  1613.       WRITE(6,2400) EPSP2(4),(EPSP2(J),J=1,3)
  1614.       WRITE(6,2500) EPSC2(4),(EPSC2(J),J=1,3)
  1615.       WRITE(6,2600) EPST2(4),(EPST2(J),J=1,3)
  1616.       WRITE(6,2700) TEMP2,EPSTR2,ISUB,FT,YLD2,YLDC
  1617. C
  1618.       RETURN
  1619. C
  1620.  2000 FORMAT (1X,7HELEMENT,2X,6HSTRESS,4X,13HSTRESS/STRAIN,8X,2HXX,
  1621.      1        13X,2HYY,13X,2HZZ,13X,2HYZ,/,1X,7HNUM/IPT,3X,5HSTATE,
  1622.      2        4X,10HCOMPONENTS)
  1623.  2005 FORMAT (/,1X,I3)
  1624.  2200 FORMAT (6X,I2,2X,A2,6HLASTIC,2X,6HSTRESS,9X,4(E14.6,1X),
  1625.      1        2(1X,E14.6))
  1626.  2300 FORMAT (20X,12HSTRAIN-TOTAL,3X,4(E14.6,1X))
  1627.  2400 FORMAT (25X,7HPLASTIC,3X,4(E14.6,1X))
  1628.  2500 FORMAT (27X,5HCREEP,3X,4(E14.6,1X))
  1629.  2600 FORMAT (25X,7HTHERMAL,3X,4(E14.6,1X))
  1630.  2700 FORMAT (20X,14HTEMPERATURE = ,E14.6,1X,
  1631.      1        29HACCUM. EFF. PLASTIC STRAIN = ,E14.6,1X,
  1632.      2        25HNUMBER OF SUBDIVISIONS = ,I5,/,20X,
  1633.      3        12HEFF STRESS = ,E14.6,1X,
  1634.      4        13HYLD STRESS = ,E14.6,1X,
  1635.      5        41HYLD STRESS(TMP.,ACC. EFF. PLAS. STRN.) = ,E14.6,/)
  1636.  3001 FORMAT(//,68H    ERROR   STRESS LOOP NO. 1 FAILED TO CONVERGE   (S
  1637.      1UBROUTINE EPC2))
  1638.  3002 FORMAT(//,5X,10HELEMENT = ,I5,2X,20HINTEGRATION POINT = ,I5,2X,
  1639.      1       13HSUBDIVISION = ,I5,/,5X,
  1640.      2       38HTIME RELATIVE TO START OF TIME STEP = ,E14.6,2X,
  1641.      3       40HAPPROXIMATE REQUIRED SUBDIVISION SIZE = ,E14.6)
  1642.  3003 FORMAT(//,68H    ERROR   STRESS LOOP NO. 2 FAILED TO CONVERGE   (S
  1643.      1UBROUTINE EPC2))
  1644.  3004 FORMAT(//,115H    ERROR   SUBDIVISION SIZE REQUIRED TO ELIMINATE D
  1645.      1IVERGENCE IS TOO SMALL IN STRESS LOOP NO. 1   (SUBROUTINE EPC2))
  1646.  3006 FORMAT(//,129H    ERROR   SUBDIVISION SIZE REQUIRED TO SATISFY INE
  1647.      1LASTIC STRAIN TOLERANCE IS TOO SMALL IN STRESS LOOP NO. 1   (SUBRO
  1648.      2UTINE EPC2))
  1649.  3007 FORMAT(//,115H    ERROR   MAXIMUM NUMBER OF SUBDIVISIONS WILL NOT
  1650.      1REACH END OF TIME STEP IN STRESS LOOP NO. 1   (SUBROUTINE EPC2))
  1651.  3008 FORMAT(//,115H    ERROR   SUBDIVISION SIZE REQUIRED TO ELIMINATE D
  1652.      1IVERGENCE IS TOO SMALL IN STRESS LOOP NO. 2   (SUBROUTINE EPC2))
  1653.  3009 FORMAT(//,129H    ERROR   SUBDIVISION SIZE REQUIRED TO SATISFY INE
  1654.      1LASTIC STRAIN TOLERANCE IS TOO SMALL IN STRESS LOOP NO. 2   (SUBRO
  1655.      2UTINE EPC2))
  1656.  3010 FORMAT(//,115H    ERROR   MAXIMUM NUMBER OF SUBDIVISIONS WILL NOT
  1657.      1REACH END OF TIME STEP IN STRESS LOOP NO. 2   (SUBROUTINE EPC2))
  1658.  3011 FORMAT(//,5X,10HELEMENT = ,I5,2X,20HINTEGRATION POINT = ,I5,2X,
  1659.      1       14HSUBDIVISION = ,I5,/,5X,
  1660.      2       38HTIME RELATIVE TO START OF TIME STEP = ,E14.6,2X,
  1661.      3       24HLAST SUBDIVISION SIZE = ,E14.6)
  1662.  3012 FORMAT(//,70H    ERROR   INCORRECT VALUE CALCULATED FOR *RATIO*
  1663.      1(SUBROUTINE EPC2))
  1664.  3013 FORMAT(//,5X,10HELEMENT = ,I5,1X,20HINTEGRATION POINT = ,I5,1X,
  1665.      1       14HSUBDIVISION = ,I5,1X,
  1666.      2       38HTIME RELATIVE TO START OF TIME STEP = ,E14.6,1X,
  1667.      3        7HIPEL = ,I2,/,5X,
  1668.      4        5HRA = ,E14.6,1X,5HRB = ,E14.6,1X,5HRD = ,E14.6,
  1669.      5        5HRE = ,E14.6,1X,5HRF = ,E14.6,1X,5HRG = ,E14.6,/,5X,
  1670.      6        8HRATIO = ,E14.6,//)
  1671.  3014 FORMAT(//,101H    ERROR   DIFFERENCE BETWEEN THE TWO MEASURES OF Y
  1672.      1IELD STRESS EXCEEDS TOLERANCE   (SUBROUTINE EPC2))
  1673.  3015 FORMAT(//,5X,10HELEMENT = ,I5,2X,20HINTEGRATION POINT = ,I5,2X,
  1674.      1       14HSUBDIVISION = ,I5,2X,
  1675.      2       38HTIME RELATIVE TO START OF TIME STEP = ,E14.6,/,5X,
  1676.      3       35HYIELD STRESS (FROM STRESS STATE) = ,E14.6,2X,
  1677.      4       54HYIELD STRESS (FROM TEMPERATURE AND ACCUM. EFF. PLASTIC,
  1678.      5       10HSTRAIN) = ,E14.6,//)
  1679. C
  1680.       END
  1681. C *CDC* *DECK SIGMA2
  1682. C *UNI* )FOR,IS  N.SIGMA2, R.SIGMA2
  1683. C
  1684.       SUBROUTINE SIGMA2(STRSS2,EPS2,EPSP2,EPST2,EPSC1,EPSC2,DPSC,GAMA,
  1685.      1                  PTIME,STRNR,F,R,G,EST,SX,SY,SXY,SZ,DELT,XB2,XC2,
  1686.      2                  XD2)
  1687. C
  1688. C
  1689. C
  1690. C     THIS SUBROUTINE USES A NEWTON-RAPHSON METHOD TO CALCULATE
  1691. C     STRESSES AND CREEP STRAINS
  1692. C
  1693. C
  1694. C
  1695.       IMPLICIT REAL*8 (A-H,O-Z)
  1696. C
  1697.       COMMON /MATMOD/ STRESS(4),STRAIN(4),C(4,4),IPT,NEL,IPS
  1698.       COMMON /SOLPM2/ TREF,XINTP,XCON1,XCON2,XPARM1,XPARM2,TOLIL,TOLPC,
  1699.      1               TOL1,TOL2,TOL3,TOL4,TOL5,TOL6,TCHK,CRPCON(8),DTMN,
  1700.      2               SUBDD,RNGL,RNGU,DTT,TOL7,
  1701.      3               KCRP,NITE,NALG,IINTP,NPTS,ITCHK,IST,ISR
  1702. C
  1703.       DIMENSION STRSS2(1),EPS2(1),EPSP2(1),EPST2(1),EPSC1(1),EPSC2(1),
  1704.      1          DPSC(1),TSTRSS(4),RH(4),TC(4,4),TTC(4,4)
  1705. C
  1706. C
  1707. C
  1708.       XFAC1=-XD2
  1709. C
  1710.       DO 10 J=1,4
  1711.       TSTRSS(J)=STRSS2(J)
  1712.    10 RH(J)=0.0
  1713. C
  1714.       DO 20 I=1,4
  1715.       DO 20 J=1,4
  1716.    20 TC(I,J)=0.0
  1717. C
  1718. C        1. FORM FIRST PART OF R.H.S. VECTOR
  1719. C
  1720.       DO 25 I=1,IST
  1721.       DO 25 J=1,IST
  1722.    25 RH(I)=RH(I) + C(I,J)*(EPS2(J) - EPSP2(J) - EPSC1(J) - DPSC(J)
  1723.      1      - EPST2(J))
  1724. C
  1725.       IF(XPARM2.GT.0.0.AND.KCRP.GT.0.AND.EST.GT.TOL5) GO TO 35
  1726. C
  1727.       DO 30 I=1,4
  1728.       EPSC2(I)=EPSC1(I) + DPSC(I)
  1729.    30 STRSS2(I)=RH(I)
  1730. C
  1731.       RETURN
  1732. C
  1733. C        2. FORM THE PART OF THE ITERATION MATRIX USED TO CALCULATE
  1734. C           THE R.H.S. VECTOR AND THE CREEP STRAIN INCREMENT
  1735. C
  1736.    35 A0=CRPCON(1)
  1737.       A1=CRPCON(2)
  1738.       A2=CRPCON(3)
  1739.       A3=CRPCON(4)
  1740.       A4=CRPCON(5)
  1741.       A5=CRPCON(6)
  1742.       A6=CRPCON(7)
  1743. C
  1744.       IF(KCRP.EQ.2) GO TO 40
  1745. C
  1746. C     CREEP LAW NO. 1 **
  1747. C
  1748.       GG=1.5*(A1 - A2)*GAMA/(A2*EST*EST)
  1749.       GO TO 50
  1750. C
  1751. C     CREEP LAW NO. 2 **
  1752. C
  1753.    40 C2=A4 - 1.0
  1754.       C1=1.5*A2*A4*(A3**(-A4))
  1755.       C3=1.5*A1
  1756.       C4=1.5*A6
  1757. C
  1758.       D1=DEXP(-R*PTIME)*F
  1759.       D2=EST**C2
  1760. C
  1761.       DTPSP=(D1*(C3 - PTIME*C1*D2) - C3*F - PTIME*C4*G)/STRNR
  1762. C
  1763.       GG=(1.5*D1*(C1*D2 - R*(PTIME*C1*D2 + R*DTPSP - C3)) + 1.5*C4*G -
  1764.      1   1.5*GAMA)/(EST*EST)
  1765. C
  1766.    50 COEF=2.0*XC2*XPARM2*DELT
  1767. C
  1768.       TC(1,1)=COEF*(GG*SX*SX + XCON1*GAMA)
  1769.       TC(1,2)=COEF*(GG*SX*SY - XCON2*GAMA)
  1770.       TC(1,3)=COEF*(2.0*GG*SX*SXY)
  1771.       TC(1,4)=COEF*(GG*SX*SZ - XCON2*GAMA)
  1772. C
  1773.       TC(2,1)=TC(1,2)
  1774.       TC(2,2)=COEF*(GG*SY*SY + XCON1*GAMA)
  1775.       TC(2,3)=COEF*(2.0*GG*SY*SXY)
  1776.       TC(2,4)=COEF*(GG*SY*SZ - XCON2*GAMA)
  1777. C
  1778.       TC(3,1)=TC(1,3)
  1779.       TC(3,2)=TC(2,3)
  1780.       TC(3,3)=COEF*(2.0*GG*SXY*SXY + GAMA)
  1781.       TC(3,4)=COEF*(2.0*GG*SXY*SZ)
  1782. C
  1783.       TC(4,1)=TC(1,4)
  1784.       TC(4,2)=TC(2,4)
  1785.       TC(4,3)=TC(3,4)
  1786.       TC(4,4)=COEF*(GG*SZ*SZ + XCON1*GAMA)
  1787. C
  1788.       DO 55 I=1,4
  1789.       DO 55 J=1,4
  1790.    55 TTC(I,J)=TC(I,J)/(2.0*XC2)
  1791. C
  1792. C        3. FORM ITERATION MATRIX AND SECOND PART OF R.H.S. VECTOR
  1793. C
  1794.    80 IF(IST.EQ.4) GO TO 90
  1795. C
  1796. C     FOR PLANE STRESS, MODIFY TC(I,J) **
  1797. C
  1798.       DO 85 I=1,2
  1799.       DO 85 J=1,3
  1800.    85 TC(I,J)=TC(I,J) - XFAC1*TC(4,J)
  1801. C
  1802.    90 DO 95 I=1,IST
  1803.       DO 95 J=1,IST
  1804.    95 RH(I)=RH(I) + TC(I,J)*STRSS2(J)
  1805. C
  1806.       DO 110 J=1,IST
  1807.   110 TC(J,J)=TC(J,J) + 1.0
  1808. C
  1809. C        4. CALCULATE STRESSES AT END OF SUBDIVISION
  1810. C
  1811.       CALL EQSOL2(TC,RH,1,IST)
  1812. C
  1813.       DO 130 J=1,4
  1814.   130 STRSS2(J)=RH(J)
  1815. C
  1816. C        5. CALCULATE CREEP STRAINS AT END OF SUBDIVISION
  1817. C
  1818.       DO 160 I=1,4
  1819.       DO 150 J=1,IST
  1820.   150 DPSC(I)=DPSC(I) + TTC(I,J)*(STRSS2(J) - TSTRSS(J))
  1821.   160 EPSC2(I)=EPSC1(I) + DPSC(I)
  1822. C
  1823.       RETURN
  1824. C
  1825.       END
  1826. C *CDC* *DECK EQSOL2
  1827. C *UNI* )FOR,IS  N.EQSOL2, R.EQSOL2
  1828. C
  1829.       SUBROUTINE EQSOL2(A,R,KEY,N)
  1830. C
  1831. C
  1832. C
  1833. C     THIS SUBROUTINE SOLVES A SYSTEM OF LINEAR ALGEBRAIC
  1834. C     EQUATIONS USING GAUSSIAN ELIMINATION WITH COMPLETE PIVOTING
  1835. C
  1836. C     THE ROW MULTIPLIERS ARE STORED IN THE LOWER TRIANGULAR PART OF
  1837. C     THE REDUCED COEFFICIENT MATRIX
  1838. C
  1839. C     THE SOLUTION VARIABLES ARE RETURNED IN THE R.H.S. VECTOR
  1840. C
  1841. C     THE FOLLOWING VARIABLES ARE USED
  1842. C        A = COEFFICIENT MATRIX
  1843. C        R = R.H.S. VECTOR
  1844. C        N = NUMBER OF EQUATIONS
  1845. C        KEY = CONTROL VARIABLE
  1846. C            = 1 COMPLETE SOLUTION
  1847. C            = 2 R.H.S. REDUCTION AND BACK-SUBSTITUTION
  1848. C
  1849. C
  1850. C
  1851.       IMPLICIT REAL*8 (A-H,O-Z)
  1852. C
  1853.       DIMENSION A(4,4),R(4),ICOL(4),TR(4),IROW(4)
  1854. C
  1855. C
  1856. C
  1857.       EPS=1.0D-50
  1858.       NN=N-1
  1859.       IF(KEY.EQ.2) GO TO 110
  1860. C
  1861.       DO 10 I=1,N
  1862.       IROW(I)=I
  1863.    10 ICOL(I)=I
  1864. C
  1865.       DO 100 J=1,NN
  1866. C
  1867. C        1. SEARCH FOR LARGEST PIVOT
  1868. C
  1869.       PIVI=0.0
  1870.       DO 20 I=J,N
  1871.       DO 20 K=J,N
  1872.       IF(DABS(A(I,K)).LE.DABS(PIVI)) GO TO 20
  1873.       IMAX=I
  1874.       KMAX=K
  1875.       PIVI=A(I,K)
  1876.    20 CONTINUE
  1877. C
  1878.       IF(DABS(PIVI).GT.EPS) GO TO 25
  1879.       WRITE(6,7000)
  1880.       WRITE(6,7010) J
  1881.       STOP
  1882. C
  1883. C        2. INTERCHANGE COLUMNS
  1884. C
  1885.    25 IF(KMAX.EQ.J) GO TO 40
  1886. C
  1887.       ISAVE=ICOL(KMAX)
  1888.       ICOL(KMAX)=ICOL(J)
  1889.       ICOL(J)=ISAVE
  1890. C
  1891.       DO 30 JJ=1,N
  1892.       SAVE=A(JJ,KMAX)
  1893.       A(JJ,KMAX)=A(JJ,J)
  1894.    30 A(JJ,J)=SAVE
  1895. C
  1896. C        3. INTERCHANGE ROWS
  1897. C
  1898.    40 IF(IMAX.EQ.J) GO TO 85
  1899. C
  1900.       ISAVE=IROW(IMAX)
  1901.       IROW(IMAX)=IROW(J)
  1902.       IROW(J)=ISAVE
  1903. C
  1904.       DO 50 K=1,N
  1905.       SAVE=A(J,K)
  1906.       A(J,K)=A(IMAX,K)
  1907.    50 A(IMAX,K)=SAVE
  1908. C
  1909.       SAVE=R(J)
  1910.       R(J)=R(IMAX)
  1911.       R(IMAX)=SAVE
  1912. C
  1913. C        4. REDUCE COEFFICIENT MATRIX AND STORE MULTIPLIERS
  1914. C
  1915.    85 I2=J + 1
  1916.       DO 90 K2=I2,N
  1917.       XMULT=A(K2,J)/PIVI
  1918.       A(K2,J)=XMULT
  1919.       DO 90 J2=I2,N
  1920.    90 A(K2,J2)=A(K2,J2) - XMULT*A(J,J2)
  1921. C
  1922.   100 CONTINUE
  1923.       GO TO 150
  1924. C
  1925. C        5. REDUCE R.H.S. VECTOR
  1926. C
  1927. C     FOR KEY = 2, REORDER R.H.S. VECTOR **
  1928. C
  1929.   110 DO 120 J=1,N
  1930.       K=IROW(J)
  1931.   120 TR(J)=R(K)
  1932. C
  1933.       DO 130 J=1,N
  1934.   130 R(J)=TR(J)
  1935. C
  1936.   150 DO 200 J=1,NN
  1937.       I2=J + 1
  1938.       DO 200 K2=I2,N
  1939.       XMULT=A(K2,J)
  1940.   200 R(K2)=R(K2) - XMULT*R(J)
  1941. C
  1942. C        6. BACK-SUBSTITUTION
  1943. C
  1944.       DO 320 I=1,N
  1945.       TSUM=0.0
  1946.       II=N + 1 - I
  1947.       IF(II.EQ.N) GO TO 315
  1948.       JJ=II + 1
  1949. C
  1950.       DO 310 K=JJ,N
  1951.   310 TSUM=TSUM + A(II,K)*R(K)
  1952. C
  1953.   315 R(II)=(R(II) - TSUM)/A(II,II)
  1954.   320 CONTINUE
  1955. C
  1956. C        7. REORDER VARIABLES TO ACCOUNT FOR PIVOTING
  1957. C
  1958.       DO 330 J=1,N
  1959.       K=ICOL(J)
  1960.   330 TR(K)=R(J)
  1961. C
  1962.       DO 340 J=1,N
  1963.   340 R(J)=TR(J)
  1964. C
  1965.       RETURN
  1966. C
  1967.  7000 FORMAT(///,64H   ERROR   UNABLE TO OBTAIN NON-ZERO PIVOT   (SUBROU
  1968.      1TINE EQSOL2))
  1969.  7010 FORMAT(/,10X,15HPIVOT NUMBER = ,I5)
  1970. C
  1971.       END
  1972. C *CDC* *DECK EFST
  1973. C *UNI* )FOR,IS  N.EFST, R.EFST
  1974. C
  1975.       SUBROUTINE EFST(EST,SX,SY,SS,SZ,STRESS)
  1976. C
  1977. C
  1978. C
  1979. C     THIS SUBROUTINE CALCULATES THE DEVIATORIC STRESS
  1980. C     COMPONENTS AND THE EFFECTIVE STRESS
  1981. C
  1982. C
  1983. C
  1984.       IMPLICIT REAL*8 (A-H,O-Z)
  1985. C
  1986.       COMMON /SOLPM2/ TREF,XINTP,XCON1,XCON2,XPARM1,XPARM2,TOLIL,TOLPC,
  1987.      1                TOL1,TOL2,TOL3,TOL4,TOL5,TOL6,TCHK,CRPCON(8),DTMN,
  1988.      2                SUBDD,RNGL,RNGU,DTT,TOL7,
  1989.      3                KCRP,NITE,NALG,IINTP,NPTS,ITCHK,IST,ISR
  1990. C
  1991.       DIMENSION STRESS(4)
  1992. C
  1993.       SM=(STRESS(1) + STRESS(2) + STRESS(4))*XCON2
  1994.       SX=STRESS(1)-SM
  1995.       SY=STRESS(2)-SM
  1996.       SS=STRESS(3)
  1997.       SZ=STRESS(4)-SM
  1998.       EST=DSQRT(1.5*(SX*SX + SY*SY + 2.0*SS*SS + SZ*SZ))
  1999. C
  2000.       RETURN
  2001. C
  2002.       END
  2003. C *CDC* *DECK EPMAT2
  2004. C *UNI* )FOR,IS  N.EPMAT2, R.EPMAT2
  2005. C
  2006.       SUBROUTINE EPMAT2(STRSSM,ALFAM,EPSTRM,DEPS,DPSC,DPST,CEP,XLAMDA,
  2007.      1                  PROP1,PROP2,PROPM,YLDM,KEY,A2,B2,C1,C2,DPSP,SXM,
  2008.      2                  SYM,SXYM,SZM,INDEX,EETM)
  2009. C
  2010. C
  2011. C     THIS SUBROUTINE CALCULATES PLASTIC STRAIN INCREMENTS AND THE
  2012. C     ELASTIC-PLASTIC CONSTITUTIVE MATRIX
  2013. C
  2014. C
  2015. C
  2016. C     KEY = 1  CALCULATE PLASTIC STRAIN INCREMENTS
  2017. C              (STRESS CALCULATIONS)
  2018. C         = 2  CALCULATE PLASTIC STRAIN INCREMENTS AND THE
  2019. C              ELASTIC-PLASTIC CONSTITUTIVE MATRIX
  2020. C              (FORMING STIFFNESS MATRIX)
  2021. C
  2022. C
  2023. C
  2024.       IMPLICIT REAL*8 (A-H,O-Z)
  2025. C
  2026.       COMMON /EL/ IND,ICOUNT,NPAR(20),NUMEG,NEGL,NEGNL,IMASS,IDAMP,ISTAT
  2027.      1           ,NDOF,KLIN,IEIG,IMASSN,IDAMPN
  2028.       COMMON /MATMOD/ STRESS(4),STRAIN(4),C(4,4),IPT,NEL,IPS
  2029.       COMMON /VAR/ NG,MODEX,IUPDT,KSTEP,ITEMAX,IEQREF,ITE,KPRI,
  2030.      1             IREF,IEQUIT,IPRI,KPLOTN,KPLOTE
  2031.       COMMON /SOLPM2/ TREF,XINTP,XCON1,XCON2,XPARM1,XPARM2,TOLIL,TOLPC,
  2032.      1               TOL1,TOL2,TOL3,TOL4,TOL5,TOL6,TCHK,CRPCON(8),DTMN,
  2033.      2               SUBDD,RNGL,RNGU,DTT,TOL7,
  2034.      3               KCRP,NITE,NALG,IINTP,NPTS,ITCHK,IST,ISR
  2035.       COMMON /TPLAS2/ ECAM,ECBM,ECCM,EETD,COEF1,COEF2,PRM,CM,CD,
  2036.      1                YSD
  2037. C
  2038.       DIMENSION STRSSM(1),ALFAM(1),DEPS(1),DPSC(1),PROP1(1),PROP2(1),
  2039.      1          PROPM(1),CEP(4,4),DPSP(4)
  2040. C
  2041.       EQUIVALENCE (NPAR(5),ITYP2D),(NPAR(15),MODEL)
  2042. C
  2043. C
  2044. C
  2045. C
  2046. C        1. INITIALIZE VARIABLES
  2047. C
  2048.       SXT=SXM
  2049.       SYT=SYM
  2050.       SXYT=SXYM
  2051.       SZT=SZM
  2052. C
  2053.       IF(INDEX.GT.1) GO TO 40
  2054. C
  2055.       YMM=PROPM(1)
  2056.       PRM=PROPM(2)
  2057.       ETM=PROPM(4)
  2058. C
  2059.       YMD=PROP2(1) - PROP1(1)
  2060.       PRD=PROP2(2) - PROP1(2)
  2061.       ETD=PROP2(4) - PROP1(4)
  2062.       YSD=PROP2(3) - PROP1(3)
  2063. C
  2064.       CD=C2 - C1
  2065.       CM=0.5*YMM/(1.0 + PRM)
  2066.       EETD=((YMM*YMM*ETD) - (ETM*ETM*YMD))/((YMM - ETM)*(YMM - ETM))
  2067. C
  2068.       IF(ITYP2D.LT.2) GO TO 40
  2069. C
  2070.       ECBM=1.0 - PRM*PRM
  2071.       ECAM=YMM/ECBM
  2072.       ECCM=1.0 + PRM*PRM
  2073. C
  2074.       COEF1=(ECBM*YMD + 2.0*YMM*PRM*PRD)/(YMM*ECBM*ECBM)
  2075.       COEF2=(YMM*PRD*ECCM + YMD*PRM*ECBM)/(YMM*ECBM*ECBM)
  2076. C
  2077. C        2. CALCULATE PLASTIC STRAIN INCREMENT
  2078. C
  2079. C
  2080. C     KINEMATIC HARDENING **
  2081. C
  2082.    40 IF(MODEL.EQ.10) GO TO 45
  2083. C
  2084.       SXM=SXM - ALFAM(1)
  2085.       SYM=SYM - ALFAM(2)
  2086.       SXYM=SXYM - ALFAM(3)
  2087.       SZM=SZM - ALFAM(4)
  2088. C
  2089. C     PLANE STRESS **
  2090. C
  2091.    45 IF(ITYP2D.LT.2) GO TO 50
  2092. C
  2093.       WP1=0.5*ECAM*((SXM + PRM*SYM)*(DEPS(1) - DPSC(1) - DPST) + (SYM +
  2094.      1    PRM*SXM)*(DEPS(2) - DPSC(2) - DPST)) + CM*SXYM*(DEPS(3) -
  2095.      2    DPSC(3))
  2096. C
  2097.       WP2=0.5*COEF1*(SXM*STRSSM(1) + SYM*STRSSM(2) - PRM*(SXM*
  2098.      1    STRSSM(2) + SYM*STRSSM(1)))
  2099. C
  2100.       WP2=WP2 + 0.5*COEF2*(SXM*STRSSM(2) + SYM*STRSSM(1) - PRM*(SXM*
  2101.      1    STRSSM(1) + SYM*STRSSM(2))) + (CD/CM)*SXYM*STRSSM(3)
  2102. C
  2103.       DENMP=(2.0*XCON2*XCON2*YLDM*YLDM*EETM) + 0.5*ECAM*(SXM*SXM +
  2104.      1       SYM*SYM + 2.0*PRM*SXM*SYM) + 2.0*CM*SXYM*SXYM
  2105. C
  2106.       GO TO 60
  2107. C
  2108. C     PLANE STRAIN/AXISYMMETRIC **
  2109. C
  2110.    50 WP1=CM*(SXM*(DEPS(1) - DPSC(1) - DPST) + SYM*(DEPS(2) - DPSC(2) -
  2111.      1    DPST) + SXYM*(DEPS(3) - DPSC(3)) + SZM*(DEPS(4) - DPSC(4) -
  2112.      2    DPST))
  2113. C
  2114.       WP2=(0.5*CD/CM)*(SXM*STRSSM(1) + SYM*STRSSM(2) + 2.0*SXYM*
  2115.      1     STRSSM(3) + SZM*STRSSM(4))
  2116. C
  2117.       DENMP=(XCON1*YLDM*YLDM)*(CM + EETM*XCON2)
  2118. C
  2119.    60 WP=WP1 + WP2
  2120. C
  2121.       IF(MODEL.EQ.11) GO TO 65
  2122. C
  2123. C     ISOTROPIC HARDENING *
  2124. C
  2125.       XLAMDA=(WP - (YLDM*XCON2)*(EPSTRM*EETD + YSD))/DENMP
  2126.       WPP=XLAMDA
  2127.       GO TO 70
  2128. C
  2129. C     KINEMATIC HARDENING *
  2130. C
  2131.    65 XLAMDA=(WP - (YLDM*YSD*XCON2))/DENMP
  2132.       WPP=XLAMDA
  2133. C
  2134. C     CHECK FOR UNLOADING OR NEUTRAL LOADING **
  2135. C
  2136.    70 IF(XLAMDA.GT.0.0) GO TO 75
  2137.       XLAMDA=0.0
  2138.       GO TO 80
  2139. C
  2140.    75 IF(KEY.EQ.2 .AND. IEQREF.NE.1) XLAMDA=XLAMDA -WP1/DENMP
  2141. C
  2142.    80 DPSP(1)=XLAMDA*SXM
  2143.       DPSP(2)=XLAMDA*SYM
  2144.       DPSP(3)=2.0*XLAMDA*SXYM
  2145.       DPSP(4)=XLAMDA*SZM
  2146. C
  2147.       XLAMDA=WPP
  2148. C
  2149.       IF(KEY.EQ.2 .AND. IEQREF.NE.1 .AND. XLAMDA.GE.0.0) GO TO 90
  2150. C
  2151.       SXM=SXT
  2152.       SYM=SYT
  2153.       SXYM=SXYT
  2154.       SZM=SXT
  2155. C
  2156.       RETURN
  2157. C
  2158. C        3. CALCULATE ELASTIC-PLASTIC CONSTITUTIVE MATRIX
  2159. C
  2160.    90 YLD1=YLDM
  2161. C
  2162.       SX1=SXM
  2163.       SY1=SYM
  2164.       SXY1=SXYM
  2165.       SZ1=SZM
  2166. C
  2167.       YIELD=YLD1*YLD1/(3.0*C2)
  2168.       GAMA1=1.0/(YIELD*(1.0 + EETM/(3.0*CM)))
  2169. C
  2170.       GAMA=GAMA1*SX1
  2171.       CEP(1,1)=A2 - GAMA*SX1
  2172.       CEP(1,2)=B2 - GAMA*SY1
  2173.       CEP(1,3)=   - GAMA*SXY1
  2174.       CEP(1,4)=B2 - GAMA*SZ1
  2175. C
  2176.       GAMA=GAMA1*SY1
  2177.       CEP(2,1)=CEP(1,2)
  2178.       CEP(2,2)=A2 - GAMA*SY1
  2179.       CEP(2,3)=   - GAMA*SXY1
  2180.       CEP(2,4)=B2 - GAMA*SZ1
  2181. C
  2182.       GAMA=GAMA1*SXY1
  2183.       CEP(3,1)=CEP(1,3)
  2184.       CEP(3,2)=CEP(2,3)
  2185.       CEP(3,3)=C2 - GAMA*SXY1
  2186.       CEP(3,4)=   - GAMA*SZ1
  2187. C
  2188.       GAMA=GAMA1*SZ1
  2189.       CEP(4,1)=CEP(1,4)
  2190.       CEP(4,2)=CEP(2,4)
  2191.       CEP(4,3)=CEP(3,4)
  2192.       CEP(4,4)=A2 - GAMA*SZ1
  2193. C
  2194.       IF(ITYP2D.LT.2) RETURN
  2195. C
  2196. C     CONDENSE MATRIX FOR PLANE STRESS **
  2197. C
  2198.       DO 100 I=1,3
  2199.       FAC=CEP(I,4)/CEP(4,4)
  2200.       DO 100 J=I,3
  2201.       CEP(I,J)=CEP(I,J) - CEP(4,J)*FAC
  2202.   100 CEP(J,I)=CEP(I,J)
  2203. C
  2204.       RETURN
  2205. C
  2206.       END
  2207. C *CDC* *DECK EMAT2
  2208. C *UNI* )FOR,IS  N.EMAT2, R.EMAT2
  2209. C
  2210.       SUBROUTINE EMAT2(TMP,PROP,PROPI,XA1,XB1,C1,D1,E1,F1,KKK)
  2211. C
  2212. C
  2213. C
  2214. C     THIS SUBROUTINE CALCULATES THE ELASTIC AND INVERSE ELASTIC
  2215. C     PROPERTIES FOR A SPECIFIED TEMPERATURE AND FORMS THE ELASTIC
  2216. C     CONSTITUTIVE MATRIX
  2217. C
  2218. C
  2219. C
  2220. C
  2221.       IMPLICIT REAL*8 (A-H,O-Z)
  2222. C
  2223.       COMMON /EL/ IND,ICOUNT,NPAR(20),NUMEG,NEGL,NEGNL,IMASS,IDAMP,ISTAT
  2224.      1           ,NDOF,KLIN,IEIG,IMASSN,IDAMPN
  2225.       COMMON /MATMOD/ STRESS(4),STRAIN(4),C(4,4),IPT,NEL,IPS
  2226. C
  2227.       DIMENSION PROP(16,1),PROPI(1)
  2228. C
  2229.       EQUIVALENCE (NPAR(5),ITYP2D)
  2230. C
  2231. C
  2232. C
  2233. C
  2234. C        1. INTERPOLATE MATERIAL PROPERTY TABLES
  2235. C
  2236.       CALL MTITP2(PROP,TMP,PROPI)
  2237.       YM=PROPI(1)
  2238.       PR=PROPI(2)
  2239. C
  2240. C        2. CALCULATE ELASTIC CONSTANTS
  2241. C
  2242.       A2=YM/(1.0 + PR)
  2243.       C1=A2*0.5
  2244.       A2=A2/(1.0 - 2.0*PR)
  2245.       B2=A2*PR
  2246.       A2=A2 - B2
  2247.       A1=A2
  2248.       B1=B2
  2249.       XA1=A1
  2250.       XB1=B1
  2251.       D1=PR/(PR - 1.0)
  2252.       E1=1.0/YM
  2253.       F1=-PR*E1
  2254. C
  2255.       IF(ITYP2D.LT.2) GO TO 30
  2256. C
  2257. C        PLANE STRESS **
  2258. C
  2259.    20 A1=YM/(1.0 - PR*PR)
  2260.       B1=PR*A1
  2261. C
  2262. C        3. FORM ELASTIC CONSTITUTIVE MATRIX
  2263. C
  2264.    30 IF(KKK.EQ.1) RETURN
  2265. C
  2266.       DO 40 I=1,4
  2267.       DO 40 J=1,4
  2268.    40 C(I,J)=0.0
  2269. C
  2270.       C(1,1)=A1
  2271.       C(1,2)=B1
  2272.       C(2,1)=B1
  2273.       C(2,2)=A1
  2274.       C(3,3)=C1
  2275. C
  2276.       IF(ITYP2D.GE.2) RETURN
  2277. C
  2278.       C(1,4)=B1
  2279.       C(2,4)=B1
  2280.       C(4,1)=B1
  2281.       C(4,2)=B1
  2282.       C(4,4)=A1
  2283. C
  2284.       RETURN
  2285. C
  2286.       END
  2287. C *CDC* *DECK MTITP2
  2288. C *UNI* )FOR,IS  N.MTITP2, R.MTITP2
  2289. C
  2290.       SUBROUTINE MTITP2(PROP,TMP,PROPI)
  2291. C
  2292. C
  2293. C
  2294. C     THIS SUBROUTINE LINEARLY INTERPOLATES THE MATERIAL PROPERTY
  2295. C     TABLES AND OBTAINS THE FOLLOWING PROPERTIES AT THE
  2296. C     SPECIFIED TEMPERATURE
  2297. C
  2298. C        YOUNGS MODULUS
  2299. C        POISSONS RATIO
  2300. C        VIRGIN MATERIAL YIELD STRESS
  2301. C        HARDENING MODULUS
  2302. C        MEAN COEFFICIENT OF THERMAL EXPANSION
  2303. C
  2304. C
  2305. C
  2306.       IMPLICIT REAL*8 (A-H,O-Z)
  2307. C
  2308.       COMMON /SOLPM2/ TREF,XINTP,XCON1,XCON2,XPARM1,XPARM2,TOLIL,TOLPC,
  2309.      1               TOL1,TOL2,TOL3,TOL4,TOL5,TOL6,TCHK,CRPCON(8),DTMN,
  2310.      2               SUBDD,RNGL,RNGU,DTT,TOL7,
  2311.      3               KCRP,NITE,NALG,IINTP,NPTS,ITCHK,IST,ISR
  2312.       COMMON /MATMOD/ STRESS(4),STRAIN(4),C(4,4),IPT,NEL,IPS
  2313. C
  2314.       DIMENSION PROP(16,1),PROPI(1)
  2315. C
  2316. C
  2317. C
  2318. C
  2319. C        1. ENTER TEMPERATURE TABLE AND DETERMINE
  2320. C           INTERPOLATION FACTOR
  2321. C
  2322.     5 IF(TMP.GE.RNGL) GO TO 10
  2323.       WRITE(6,3001)
  2324.       STOP
  2325. C
  2326.    10 L=0
  2327.       DO 20 K=2,NPTS
  2328.       L=L + 1
  2329.       DUM=PROP(K,1)
  2330.       IF(K.EQ.NPTS) DUM=RNGU
  2331.       IF(TMP.GT.DUM) GO TO 20
  2332.       GO TO 25
  2333.    20 CONTINUE
  2334.       WRITE(6,3001)
  2335.       STOP
  2336. C
  2337.    25 XRATIO=(TMP - PROP(L,1))/(PROP(L + 1,1) - PROP(L,1))
  2338. C
  2339. C     CORRECT XRATIO FOR THE CASE WHEN TMP LIES OUTSIDE TABLE
  2340. C     BUT WITHIN THE TOLERANCE RANGE **
  2341. C
  2342.       IF(XRATIO.GT.1.0) XRATIO=1.0
  2343.       IF(XRATIO.LT.0.0) XRATIO=0.0
  2344. C
  2345. C        2. INTERPOLATE MATERIAL PROPERTIES
  2346. C
  2347. C     PROPI(J) CONTAINS INTERPOLATED VALUES **
  2348. C
  2349. C        PROPI(1) = YOUNGS MODULUS
  2350. C        PROPI(2) = POISSONS RATIO
  2351. C        PROPI(3) = VIRGIN MATERIAL YIELD STRESS
  2352. C        PROPI(4) = HARDENING MODULUS
  2353. C        PROPI(5) = MEAN COEFFICIENT OF THERMAL EXPANSION
  2354. C
  2355.       DO 30 M=2,6
  2356.    30 PROPI(M - 1)=PROP(L,M) + XRATIO*(PROP(L + 1,M) - PROP(L,M))
  2357. C
  2358.       RETURN
  2359. C
  2360.  3001 FORMAT(//,92H    ERROR   TEMPERATURE OUTSIDE RANGE OF MATERIAL PRO
  2361.      1PERTY TEMPERATURES  (SUBROUTINE MTITP2))
  2362. C
  2363.       END
  2364. C *CDC* *DECK CREEP2
  2365. C *UNI* )FOR,IS  N.CREEP2, R.CREEP2
  2366. C
  2367.       SUBROUTINE CREEP2(DDT,DEPSC,TEMPD,EPSC,ORIG,NORG,STRESS,GAMA,
  2368.      1                  STRNR,PTIME2,EST,SX,SY,SXY,SZ,F,R,G,INDEX,
  2369.      2                  ECSTR)
  2370. C
  2371. C
  2372. C
  2373. C     THIS SUBROUTINE CALCULATES THE CREEP STRAIN RATE USING TOTAL
  2374. C     CREEP STRAIN HARDENING AND THE ORNL AUXILIARY HARDENING RULES FOR
  2375. C     CYCLIC CREEP
  2376. C
  2377. C
  2378. C
  2379.       IMPLICIT REAL*8 (A-H,O-Z)
  2380. C
  2381.       COMMON /EL/ IND,ICOUNT,NPAR(20),NUMEG,NEGL,NEGNL,IMASS,IDAMP,ISTAT
  2382.      1,NDOF,KLIN,IEIG,IMASSN,IDAMPN
  2383.       COMMON /VAR/ NG,MODEX,IUPDT,KSTEP,ITEMAX,IEQREF,ITE,KPRI,
  2384.      1             IREF,IEQUIT,IPRI,KPLOTN,KPLOTE
  2385.       COMMON /ADINAI/ OPVAR(7),TSTART,IRINT,ISTOTE
  2386.       COMMON /SOLPM2/ TREF,XINTP,XCON1,XCON2,XPARM1,XPARM2,TOLIL,TOLPC,
  2387.      1               TOL1,TOL2,TOL3,TOL4,TOL5,TOL6,TCHK,CRPCON(8),DTMN,
  2388.      2               SUBDD,RNGL,RNGU,DTT,TOL7,
  2389.      3               KCRP,NITE,NALG,IINTP,NPTS,ITCHK,IST,ISR
  2390. C
  2391.       DIMENSION DEPSC(4),ORIG(4,1),EPSC(1),STRESS(1)
  2392. C
  2393. C
  2394. C
  2395.       IMAX=50
  2396.       ETOL1=5.0D-3
  2397.       ETOL4=5.0D-6
  2398.       ETOL5=1.0D-20
  2399. C
  2400. C        1. CALCULATE THE CURRENT VALUE OF EFFECTIVE CREEP STRAIN
  2401. C
  2402.    10 CALL CYCRP2(ECSTR,EPSC,ORIG,NORG,STRESS,INDEX)
  2403.       IF(EST.LE.TOL5) RETURN
  2404. C
  2405.       IF(KCRP.EQ.2) GO TO 20
  2406. C
  2407. C        2. ANALYTICAL SOLUTION FOR CREEP LAW NO. 1
  2408. C
  2409.       CALL CRPLW2(EST,ECSTR,STRN,STRNR,DDT,TEMPD,F,R,G)
  2410.       GO TO 60
  2411. C
  2412. C        3. NUMERICAL SOLUTION FOR CREEP LAW NO. 2
  2413. C
  2414. C
  2415. C     USE NEWTON ITERATION TO SOLVE FOR CURRENT EFFECTIVE
  2416. C     CREEP STRAIN RATE **
  2417. C
  2418. C
  2419. C     MAKE INITIAL GUESS OF PSEUDO-TIME *
  2420. C
  2421.    20 PTIME1=DBLE(FLOAT(KSTEP))*DTT + TSTART
  2422.       PTIME2=PTIME1
  2423. C
  2424.       KOUNT=1
  2425.    25 CALL CRPLW2(EST,ECSTR,STRN,STRNR,PTIME2,TEMPD,F,R,G)
  2426. C
  2427.       IMOD=0
  2428.       FUNCT=STRN-ECSTR
  2429.       DELTA=FUNCT/STRNR
  2430.       IF(ECSTR.EQ.0.0) DELTA=PTIME2
  2431. C
  2432. C     MODIFY DELTA, IF NECESSARY, TO OBTAIN A VALUE
  2433. C     OF PSEUDO-TIME .GE. 0.0 **
  2434. C
  2435.       IF((PTIME2 - DELTA).GE.0.0) GO TO 30
  2436.       DELTA=0.5*PTIME2
  2437.       IMOD=1
  2438. C
  2439.    30 IF(KOUNT.GT.1) GO TO 40
  2440.       PTIME2=PTIME1 - DELTA
  2441.       DNORM1=DABS(DELTA)
  2442.       KOUNT=KOUNT + 1
  2443.       GO TO 25
  2444. C
  2445. C     APPLY CONVERGENCE CRITERIA FOR KOUNT .GT.1 **
  2446. C
  2447.    40 DNORM2=DABS(DELTA)
  2448.       IF(IMOD.EQ.1) GO TO 50
  2449.       IF(DNORM2.LE.DNORM1) GO TO 45
  2450. C
  2451. C     CHECK IF DNORM1 AND DNORM2 ARE WITHIN THE ROUNDOFF
  2452. C     TOLERANCE BAND **
  2453. C
  2454.       XTOL=ETOL4*PTIME1
  2455.       IF(PTIME1.LE.ETOL5) XTOL=ETOL5
  2456.       IF(DNORM2.LE.XTOL.AND.DNORM1.LE.XTOL) GO TO 60
  2457.       GO TO 50
  2458. C
  2459.    45 XTOL=ETOL1*PTIME1
  2460.       IF(PTIME1.LE.ETOL5) XTOL=ETOL5
  2461.       IF(DNORM1.LE.XTOL) GO TO 60
  2462. C
  2463. C     NO CONVERGENCE *
  2464. C
  2465.    50 KOUNT=KOUNT + 1
  2466.       IF(KOUNT.LE.IMAX) GO TO 55
  2467.       WRITE(6,2000)
  2468.       STOP
  2469. C
  2470.    55 PTIME1=PTIME2
  2471.       PTIME2=PTIME2 - DELTA
  2472.       DNORM1=DNORM2
  2473.       GO TO 25
  2474. C
  2475. C        4. CALCULATE INITIAL ESTIMATE OF INCREMENTAL CREEP STRAINS
  2476. C
  2477.    60 GAMA=1.5*STRNR/EST
  2478.       C1=GAMA*DDT
  2479. C
  2480.   100 DEPSC(1)=C1*SX
  2481.       DEPSC(2)=C1*SY
  2482.       DEPSC(3)=C1*2.0*SXY
  2483.       DEPSC(4)=C1*SZ
  2484. C
  2485.       RETURN
  2486. C
  2487.  2000 FORMAT(//,69H    ERROR   NEWTON ITERATION FAILED TO CONVERGE   (SU
  2488.      1BROUTINE CREEP2))
  2489. C
  2490.       END
  2491. C *CDC* *DECK CYCRP2
  2492. C *UNI* )FOR,IS  N.CYCRP2, R.CYCRP2
  2493. C
  2494.       SUBROUTINE CYCRP2(ECSTR,EPSC,ORIG,NORG,STRESS,INDEX)
  2495. C
  2496. C
  2497. C
  2498. C     THIS SUBROUTINE PERFORMS THE ORNL-TM-3602 AUXILIARY STRAIN
  2499. C     HARDENING CALCULATIONS FOR CYCLIC CREEP
  2500. C
  2501. C     THE FOLLOWING VARIABLES ARE USED
  2502. C
  2503. C        ORIG(I,J)   =  ARRAY CONTAINING POSITIVE ORIGIN IN THE FIRST
  2504. C                       COLUMN AND NEGATIVE ORIGIN IN THE SECOND
  2505. C        EPSD        =  DISTANCE BETWEEN CURRENT ORIGINS
  2506. C        EPSC(I)     =  CURRENT CREEP STRAIN COMPONENTS
  2507. C        NORG        =  DENOTES CURRENT ORIGIN
  2508. C                    =  1 POSITIVE ORIGIN
  2509. C                    =  2 NEGATIVE ORIGIN
  2510. C        STRESS(I)   =  CURRENT STRESSES
  2511. C        ECSTR       =  EFFECTIVE STRAIN MEASURE OF THE DISTANCE BETWEEN
  2512. C                       THE CURRENT CREEP STRAIN STATE AND ORIGIN
  2513. C
  2514. C
  2515. C
  2516.       IMPLICIT REAL*8 (A-H,O-Z)
  2517. C
  2518.       DIMENSION STRESS(1),EPSC(1),ORIG(4,1)
  2519. C
  2520. C
  2521. C     STRESS REVERSAL CAN OCCUR ONLY AT THE START OF A
  2522. C     SUBDIVISION (INDEX = 1)
  2523. C
  2524.       IF(INDEX.GT.1) GO TO 50
  2525. C
  2526. C
  2527. C        1. CALCULATE CURRENT DISTANCE BETWEEN ORIGINS
  2528. C
  2529.       CALL EFCSTR(EPSD,ORIG,ORIG,2)
  2530. C
  2531. C        2. CHECK FOR STRESS REVERSAL
  2532. C
  2533.       DUM=0.0
  2534.       DO 15 I=1,4
  2535.    15 DUM=DUM+(EPSC(I)-ORIG(I,NORG))*STRESS(I)
  2536.       IF(DUM.GE.0.0) GO TO 50
  2537. C
  2538. C     STRESS REVERSAL IS INDICATED **
  2539. C
  2540.       CALL EFCSTR(ECSTR,EPSC,ORIG,NORG)
  2541. C
  2542. C     CHECK IF OPPOSITE ORIGIN COORDINATES MUST BE RESET TO
  2543. C     NEW VALUES **
  2544. C
  2545.       IF(ECSTR.GT.EPSD) GO TO 40
  2546. C
  2547. C     CHECK FOR FALSE STRESS REVERSAL *
  2548. C
  2549.       IF(NORG.EQ.2) GO TO 18
  2550.    17 NN=2
  2551.       GO TO 19
  2552.    18 NN=1
  2553.    19 DUM=0.0
  2554. C
  2555.       DO 20 I=1,4
  2556.    20 DUM=DUM+(EPSC(I)-ORIG(I,NN))*STRESS(I)
  2557.       IF(DUM.GE.0.0) GO TO 25
  2558. C
  2559. C     FALSE REVERSAL IS INDICATED
  2560. C
  2561.       CALL EFCSTR(TECSTR,EPSC,ORIG,NN)
  2562.       IF(ECSTR.GE.TECSTR) RETURN
  2563. C
  2564. C        3. RESET ORIGIN INDICATOR ONLY
  2565. C
  2566.    25 IF(NORG.EQ.2) GO TO 35
  2567.    30 NORG=2
  2568.       GO TO 50
  2569.    35 NORG=1
  2570.       GO TO 50
  2571. C
  2572. C        4. RESET ORIGIN INDICATOR AND COORDINATES
  2573. C
  2574.    40 IF(NORG.EQ.2) GO TO 42
  2575.    41 NORG=2
  2576.       GO TO 45
  2577.    42 NORG=1
  2578. C
  2579.    45 DO 48 I=1,4
  2580.    48 ORIG(I,NORG)=EPSC(I)
  2581. C
  2582. C        5. CALCULATE NEW VALUE OF EFFECTIVE CREEP STRAIN
  2583. C
  2584.    50 CALL EFCSTR(ECSTR,EPSC,ORIG,NORG)
  2585. C
  2586.       RETURN
  2587. C
  2588.       END
  2589. C *CDC* *DECK CRPLW2
  2590. C *UNI* )FOR,IS  N.CRPLW2, R.CRPLW2
  2591. C
  2592.       SUBROUTINE CRPLW2(STRESS,ECSTR,STRAIN,STRNR,TIME,TEMPD,F,R,G)
  2593. C
  2594. C
  2595. C
  2596. C     THIS SUBROUTINE CONTAINS THE UNIAXIAL CREEP LAWS FOR MATERIAL
  2597. C     MODELS 10 AND 11 (2-D)
  2598. C
  2599. C
  2600. C     THE FOLLOWING VARIABLES ARE USED FOR THE UNIAXIAL LAWS
  2601. C
  2602. C        STRESS = UNIAXIAL STRESS
  2603. C        STRAIN = UNIAXIAL CREEP STRAIN
  2604. C        STRNR = UNIAXIAL CREEP STRAIN RATE
  2605. C        TIME = TIME
  2606. C        TEMPD = TEMPERATURE
  2607. C        CRPCON = CONSTANTS FOR UNIAXIAL CREEP LAW
  2608. C        ECSTR = MODIFIED EFFECTIVE CREEP STRAIN (O.R.N.L. RULES)
  2609. C
  2610. C
  2611. C
  2612.       IMPLICIT REAL*8 (A-H,O-Z)
  2613. C
  2614.       COMMON /SOLPM2/ TREF,XINTP,XCON1,XCON2,XPARM1,XPARM2,TOLIL,TOLPC,
  2615.      1               TOL1,TOL2,TOL3,TOL4,TOL5,TOL6,TCHK,CRPCON(8),DTMN,
  2616.      2               SUBDD,RNGL,RNGU,DTT,TOL7,
  2617.      3               KCRP,NITE,NALG,IINTP,NPTS,ITCHK,IST,ISR
  2618. C
  2619. C
  2620. C
  2621.       A0=CRPCON(1)
  2622.       A1=CRPCON(2)
  2623.       A2=CRPCON(3)
  2624.       A3=CRPCON(4)
  2625.       A4=CRPCON(5)
  2626.       A5=CRPCON(6)
  2627.       A6=CRPCON(7)
  2628. C
  2629.       IF(KCRP.EQ.2) GO TO 50
  2630. C
  2631. C        1. CREEP LAW NO. 1
  2632. C
  2633.       IF(A2.GE.1.0) GO TO 20
  2634. C
  2635.       RTTOL=20.
  2636.       EX1=1./(1.-A2)
  2637.       EX2=A1*EX1
  2638.       EX3=A2*EX1
  2639.       EX4=-RTTOL*EX3
  2640. C
  2641. C     CALCULATE MINIMUM ALLOWABLE EFFECTIVE CREEP STRAIN **
  2642. C
  2643.       ECMIN=(A0**EX1)*(STRESS**EX2)*(A2**EX3)*(10.0**EX4)
  2644.       IF(ECSTR.LE.ECMIN) GO TO 40
  2645. C
  2646.    20 EX5=1.0/A2
  2647.       EX6=A1*EX5
  2648.       EX7=(A2-1.)/A2
  2649.       IF(A2.EQ.1.0.AND.ECSTR.EQ.0.0) GO TO 25
  2650.       EX8=ECSTR**EX7
  2651.       GO TO 30
  2652.    25 EX8=1.0
  2653. C
  2654.    30 STRNR=(A0**EX5)*(STRESS**EX6)*A2*EX8
  2655. C
  2656.       RETURN
  2657. C
  2658.    40 STRAIN=A0*(STRESS**A1)*(TIME**A2)
  2659.       STRNR=STRAIN/TIME
  2660. C
  2661.       RETURN
  2662. C
  2663. C        2. CREEP LAW NO. 2
  2664. C
  2665.    50 F=A0*DEXP(A1*STRESS)
  2666.       R=A2*((STRESS/A3)**A4)
  2667.       G=A5*DEXP(A6*STRESS)
  2668.       STRAIN=F*(1.-DEXP(-R*TIME)) + (G*TIME)
  2669.       STRNR=F*R*DEXP(-R*TIME) + G
  2670. C
  2671.       RETURN
  2672. C
  2673.       END
  2674. C *CDC*  *DECK EFCSTR
  2675. C *UNI* )FOR,IS  N.EFCSTR, R.EFCSTR
  2676. C
  2677.       SUBROUTINE EFCSTR(ECSTR,EPSC,ORIG,NORG)
  2678. C
  2679. C
  2680. C
  2681. C     THIS SUBROUTINE CALCULATES THE EFFECTIVE CREEP STRAIN BASED ON THE
  2682. C     DISTANCE BETWEEN THE CURRENT CREEP STRAIN STATE AND THE
  2683. C     CURRENT ORIGIN
  2684. C
  2685. C
  2686. C
  2687.       IMPLICIT REAL*8 (A-H,O-Z)
  2688. C
  2689.       COMMON /SOLPM2/ TREF,XINTP,XCON1,XCON2,XPARM1,XPARM2,TOLIL,TOLPC,
  2690.      1               TOL1,TOL2,TOL3,TOL4,TOL5,TOL6,TCHK,CRPCON(8),DTMN,
  2691.      1               SUBDD,RNGL,RNGU,DTT,TOL7,
  2692.      3               KCRP,NITE,NALG,IINTP,NPTS,ITCHK,IST,ISR
  2693. C
  2694.       DIMENSION DEPSC(4),EPSC(1),ORIG(4,1)
  2695. C
  2696. C
  2697. C
  2698.       DO 10 I=1,4
  2699.    10 DEPSC(I)=EPSC(I)-ORIG(I,NORG)
  2700. C
  2701.       ECSTR=DSQRT(XCON1*(DEPSC(1)*DEPSC(1) + DEPSC(2)*DEPSC(2) +
  2702.      1           DEPSC(4)*DEPSC(4)) + XCON2*(DEPSC(3)*DEPSC(3)))
  2703. C
  2704.       RETURN
  2705. C
  2706.       END
  2707. C *CDC* *DECK OVL37
  2708. C *CDC*      OVERLAY (ADINA,3,7)
  2709. C *CDC* *DECK EL2D12
  2710. C *UNI* )FOR,IS  N.EL2D12, R.EL2D12
  2711. C *CDC*      PROGRAM EL2D12
  2712.       SUBROUTINE EL2D12
  2713.       IMPLICIT REAL*8 (A-H,O-Z)
  2714. C
  2715. C     M O D E L    =    12
  2716. C
  2717.       RETURN
  2718.       END
  2719. C *CDC* *DECK OVL38
  2720. C *CDC*      OVERLAY (ADINA,3,10)
  2721. C *CDC* *DECK EL2D13
  2722. C *UNI* )FOR,IS  N.EL2D13, R.EL2D13
  2723. C *CDC*      PROGRAM EL2D13
  2724.       SUBROUTINE EL2D13
  2725. C
  2726. C
  2727. C                         M O D E L  =  13
  2728. C
  2729. C     I N C O M P R E S S I B L E   E L A S T I C   M O D E L
  2730. C
  2731. C
  2732.       IMPLICIT REAL*8 (A-H,O-Z)
  2733.       COMMON /EL/ IND,ICOUNT,NPAR(20),NUMEG,NEGL,NEGNL,IMASS,IDAMP,ISTAT
  2734.      1           ,NDOF,KLIN,IEIG,IMASSN,IDAMPN
  2735.       COMMON /DIMEL/ N101,N102,N103,N104,N105,N106,N107,N108,N109,N110,
  2736.      1               N111,N112,N113,N114,N120,N121,N122,N123,N124,N125
  2737.       COMMON /MATMOD/ STRESS(4),STRAIN(4),D(4,4),IPT,NEL,IPS
  2738.       COMMON A(1)
  2739.       REAL A
  2740.       DIMENSION IA(1)
  2741. C
  2742.       EQUIVALENCE (A(1),IA(1))
  2743. C
  2744. C     FOR ADDRESSES N101,N102,N103,...  SEE SUBROUTINE TODMFE
  2745. C
  2746. C
  2747. C     F I N D   S T R E S S - S T R A I N   L A W   A N D   S T R E S S
  2748. C
  2749. C
  2750.       MATP=IA(N107 + NEL - 1)
  2751.       NM=N109 + (MATP - 1)*2
  2752.       CALL MOONEY (NEL,A(NM),D,STRESS,STRAIN,IPT)
  2753. C
  2754. C
  2755.       RETURN
  2756. C
  2757.       END
  2758. C *CDC* *DECK MOONEY
  2759. C *UNI* )FOR,IS  N.MOONEY, R.MOONEY
  2760.       SUBROUTINE MOONEY (NEL,PROP,C,STRESS,STRAIN,IPT)
  2761. C
  2762. C
  2763. C     INCOMPRESSIBLE NONLINEAR ELASTIC MATERIAL
  2764. C         ( MOONEY-RIVLIN DESCRIPTION IN STATE OF PLANE STRESS )
  2765. C
  2766. C
  2767.       IMPLICIT REAL*8 (A-H,O-Z)
  2768.       DIMENSION PROP(1),STRAIN(1),STRESS(1),C(4,1)
  2769.       COMMON /EL/ IND,ICOUNT,NPAR(20),NUMEG,NEGL,NEGNL,IMASS,IDAMP,ISTAT
  2770.      1           ,NDOF,KLIN,IEIG,IMASSN,IDAMPN
  2771.       COMMON /VAR/ NG,MODEX,IUPDT,KSTEP,ITEMAX,IEQREF,ITE,KPRI,
  2772.      1             IREF,IEQUIT,IPRI,KPLOTN,KPLOTE
  2773.       COMMON /DISDER/DISD(5)
  2774.       DIMENSION CS(4)
  2775.       EQUIVALENCE (CS(1),CS11),(CS(2),CS22),(CS(3),CS12),(CS(4),CS33)
  2776. C
  2777. C
  2778. C
  2779. C
  2780. C     1.   DEFINE MATERIAL CONSTANTS
  2781. C
  2782.       C1=PROP(1)
  2783.       C2=PROP(2)
  2784. C
  2785. C     2.   CALCULATE DEFORMATION GRADIENT
  2786. C
  2787.       C11=2.*STRAIN(1) + 1.
  2788.       C12=STRAIN(3)
  2789.       C22=2.*STRAIN(2) + 1.
  2790. C
  2791. C     3. CALCULATE EXTENSION RATIO
  2792. C
  2793.       DENOM=C11*C22 - C12*C12
  2794.       EX2=1./DENOM
  2795.       EX4=EX2*EX2
  2796.       C1122=C11 + C22
  2797. C
  2798. C     4.   CALCULATE STRESSES
  2799. C
  2800.       T1=2.*(C1 + C2*EX2)
  2801.       T2=2.*(C1*EX4 - C2*(1. - EX4*C1122))
  2802.       STRESS(1)=T1 - T2*C22
  2803.       STRESS(2)=T1 - T2*C11
  2804.       STRESS(3)=T2*C12
  2805.       STRESS(4)=0.0
  2806. C
  2807. C     PRINT STRESSES
  2808. C
  2809.       IF (KPRI.NE.0) GO TO 10
  2810.       IF (IPRI.NE.0) GO TO 11
  2811.       IF (IPT.EQ.1 .AND. NEL.EQ.1) WRITE(6,2000)
  2812.       IF (IPT.NE.1) GO TO 11
  2813.       WRITE(6,2034) NEL
  2814. C
  2815. C     DISD   = DERIVATIVES OF DISPLACEMENTS WITH RESPECT TO
  2816. C              REFERENCE STATE COORDINATES
  2817. C
  2818. C     CALCULATE THE DEFORMATION GRADIENT
  2819. C
  2820.    11 X11=1.+DISD(1)
  2821.       X12=   DISD(3)
  2822.       X22=1.+DISD(2)
  2823.       X21=   DISD(4)
  2824.       X33=1.
  2825. C
  2826. C     DET    = (INITIAL DENSITY / CURRENT DENSITY)
  2827. C     INCOMPRESSIBILITY CONDITION YIELDS  DET=1.
  2828. C
  2829.       DET=1.
  2830. C
  2831. C     STRESS = 2ND PIOLA-KIRCHHOFF STRESSES
  2832. C
  2833.       S11=STRESS(1)
  2834.       S22=STRESS(2)
  2835.       S12=STRESS(3)
  2836. C
  2837. C     CS     = CAUCHY STRESSES
  2838. C
  2839.       CS11=DET * (S11*X11*X11 + 2.*S12*X11*X12 + S22*X12*X12)
  2840.       CS22=DET * (S11*X21*X21 + 2.*S12*X21*X22 + S22*X22*X22)
  2841.       CS12=DET * (S11*X11*X21 + S12*(X11*X22+X12*X21) + S22*X12*X22)
  2842.       CS33=0.
  2843. C
  2844. C     NOTE - ONLY CAUCHY STRESSES ARE ALWAYS PRINTED OR PLOTTED
  2845. C
  2846.       DO 14 I=1,4
  2847.    14 STRESS(I)=CS(I)
  2848.       IF (IPRI.NE.0) RETURN
  2849. C
  2850.    15 CALL MAXMIN (CS,P1,P2,AG)
  2851.       WRITE(6,2040) IPT,(CS(I),I=1,4),P1,P2,AG
  2852. C
  2853. C     RETURN IF STIFFNESS NOT TO BE CALCULATED
  2854. C
  2855.    10 IF (ICOUNT.GT.2) RETURN
  2856.       IF (IREF.NE.0) RETURN
  2857. C
  2858. C     5. CALCULATE STRESS-STRAIN MATRIX
  2859. C
  2860.       C1F=C1*EX4*4.
  2861.       C2F=C2*EX4*4.
  2862.       EC11=EX2*C11
  2863.       EC22=EX2*C22
  2864.       EC1=EC11*C1122
  2865.       EC2=EC22*C1122
  2866.       EC12=EC11*C22
  2867. C
  2868.       C(1,1)=2.*C22*(C1F*EC22 + C2F*(-1. + EC2))
  2869.       C(1,2)=C1F*(-1. + 2.*EC12) + C2F*(1./EX4 + 2.*C1122*(-1. + EC12))
  2870.       C(1,3)=C12*(-2.*C1F*EC22 + C2F*(1. - 2.*EC2))
  2871.       C(2,2)=2.*C11*(C1F*EC11 + C2F*(-1. + EC1))
  2872.       C(2,3)=C12*(-2.*C1F*EC11 + C2F*(1. - 2.*EC1))
  2873.       C(3,3)=(2.*C12*C12*EX2 + 0.5)*(C1F + C2F*C1122) - 2.*C2
  2874.       C(2,1)=C(1,2)
  2875.       C(3,1)=C(1,3)
  2876.       C(3,2)=C(2,3)
  2877. C
  2878.       RETURN
  2879. C
  2880. C
  2881.  2000 FORMAT (//24H  ELEMENT   INTEGRATION /19H  NUMBER      POINT ,4X,
  2882.      1        50H  SIGMA-X1  SIGMA-X2   TAU-X12  SIGMA-X3  SIGMA-P+,
  2883.      2        40H  SIGMA-P-  ANGLE                                /)
  2884.  2034 FORMAT (/I9)
  2885.  2040 FORMAT (9X,I10,4X,6E10.3,F7.2)
  2886. C
  2887. C
  2888.       END
  2889. C *CDC* *DECK OVL39
  2890. C *CDC*       OVERLAY (ADINA,3,9)
  2891. C *CDC* *DECK EL2D14
  2892. C *UNI* )FOR,IS  N.EL2D14, R.EL2D14
  2893. C *CDC*       PROGRAM EL2D14
  2894.       SUBROUTINE EL2D14
  2895. C
  2896. C     M O D E L   =   14      ( AUTHOR : YU.YU.WANG.XUAN )
  2897. C
  2898. C
  2899. C     ELASTOPLASTIC MODEL (MOHR OR PARABOLA - ELLIPSE)
  2900. C
  2901.       IMPLICIT REAL*8 (A-H,O-Z)
  2902.       COMMON /EL/ IND,ICOUNT,NPAR(20),NUMEG,NEGL,NEGNL,IMASS,IDAMP,
  2903.      1            ISTAT,NDOF,KLIN,IEIG,IMASSN,IDAMPN
  2904.       COMMON /DIMEL/ N101,N102,N103,N104,N105,N106,N107,N108,N109,N110,
  2905.      1               N111,N112,N113,N114,N120,N121,N122,N123,N124,N125
  2906.       COMMON /MATMOD/ STRESS(4),STRAIN(4),C(4,4),IPT,NEL,IPS
  2907.       COMMON /DPR/ ITWO
  2908.       COMMON A(1)
  2909. C
  2910.       REAL A
  2911.       DIMENSION IA(1)
  2912.       EQUIVALENCE (NPAR(10),NINT),(NPAR(17),NCON)
  2913.       EQUIVALENCE (A(1), IA(1))
  2914. C
  2915. C     FOR ADDRESSES N101,N102,N103,...  SEE SUBROUTINE TODMFE
  2916. C
  2917. C
  2918.       IDW=21*ITWO
  2919.       NPT=NINT*NINT
  2920.       MATP=IA(N107+NEL-1)
  2921.       NM=N109+(MATP-1)*NCON*ITWO
  2922. C
  2923.       IF(IND.NE.0) GO TO 100
  2924. C
  2925. C     INITIALIZE WA WORKING ARRAY
  2926. C
  2927.       NN=N110+(NEL-1)*NPT*IDW
  2928. C
  2929.       CALL IBAMMC (A(NN),A(NN),A(NM),NPT,IDW)
  2930.       GO TO 500
  2931. C
  2932. C     FIND STRESS-STRAIN LAW AND STRESSES
  2933. C
  2934.   100 NS=N110+((NEL-1)*NPT+(IPT-1))*IDW
  2935.       CALL BAMMC (A(NM),A(NS),A(NS+4*ITWO),A(NS+8*ITWO),A(NS+9*ITWO),
  2936.      1          A(NS+10*ITWO),A(NS+11*ITWO),A(NS+12*ITWO),A(NS+13*ITWO),
  2937.      2          A(NS+14*ITWO),A(NS+15*ITWO),A(NS+16*ITWO),A(NS+20*ITWO))
  2938.   500 CONTINUE
  2939. C
  2940.       RETURN
  2941.       END
  2942. C *CDC* *DECK IBAMMC
  2943. C *UNI* )FOR,IS  N.IBAMMC, R.IBAMMC
  2944.       SUBROUTINE IBAMMC (WA,IWA,PROP,NPT,IDW)
  2945. C
  2946.       IMPLICIT REAL*8 (A-H,O-Z)
  2947.       COMMON /DPR/ ITWO
  2948.       DIMENSION WA(21,1),IWA(IDW,1),PROP(1)
  2949. C
  2950.       NING=0
  2951.       IF(PROP(1).GT.0.5D0) NING=1
  2952.       NDIM=3
  2953.       IF(PROP(3).LT.0.5D0) NDIM=0
  2954.       NSEL=0
  2955.       IF(PROP(4).GT.0.5D0) NSEL=1
  2956. C
  2957.     5 FM=PROP(5)
  2958.       CM=PROP(6)
  2959.       CMI=CM
  2960.       SKA=PROP(8)
  2961.       SMOA=PROP(9)
  2962.       PEOA=PROP(10)
  2963.       SMA=PROP(11)
  2964.       SSA=PROP(12)
  2965. C
  2966. C
  2967.       IF(NDIM.EQ.3) GO TO 10
  2968. C
  2969.       SDKO=1-3*FM/(6+FM)
  2970.       IF(PROP(20).GT.1.0D-4) SDKO=PROP(20)
  2971.       SMM=SMOA*(1.+2.*SDKO)/3.
  2972.       SBAR=-SMOA*(1.-SDKO)
  2973.       ETA=-SBAR/SMM
  2974.       SMOA=SMM*(FM*FM+ETA*ETA)/FM/FM
  2975.       PEOA=PEOA-SKA*DLOG(SMOA/SMM)
  2976.       SMA=SMA*(1.+2.*SDKO)/3.
  2977. C
  2978.    10 ELO=-SMOA/2.
  2979.       IF(NING.NE.0) GO TO 12
  2980.       CHO=ELO*(FM-CM)
  2981.       GO TO 13
  2982.    12 HQO=PROP(14)
  2983.       CHO=HQO*HQO
  2984.    13 PEI=PEOA+SKA*DLOG(SMOA/SMA)
  2985.       HYM=PROP(16)
  2986. C
  2987. C     SET  STRESSES  AND  STRAINS  TO  INITIAL  VALUE
  2988. C     SET  INITIAL  STRESS  STATE  TO  *ELASTIC*
  2989. C
  2990.    15 DO 25 J=1,NPT
  2991. C
  2992.       WA(1,J)=SMA
  2993.       WA(2,J)=SMA
  2994.       WA(3,J)=SSA
  2995.       WA(4,J)=SMA
  2996. C
  2997.       DO 20 I=5,8
  2998.    20 WA(I,J)=0.
  2999. C
  3000.       WA(9,J)=CHO
  3001.       WA(10,J)=ELO
  3002.       WA(11,J)=PEOA
  3003.       WA(12,J)=CHO
  3004.       WA(13,J)=ELO
  3005.       WA(14,J)=PEI
  3006.       WA(15,J)=HYM
  3007.       WA(16,J)=CMI
  3008. C
  3009.       WA(17,J)=WA(1,J)
  3010.       WA(18,J)=WA(2,J)
  3011.       WA(19,J)=WA(3,J)
  3012.       WA(20,J)=WA(4,J)
  3013.       KJ=20*ITWO+1
  3014.    25 IWA(KJ,J)=1
  3015. C
  3016.       RETURN
  3017.       END
  3018. C *CDC* *DECK BAMMC
  3019. C *UNI* )FOR,IS  N.BAMMC,R.BAMMC
  3020.       SUBROUTINE BAMMC (PROP,SIG,EPS,CHO,ELO,PEO,CHI,ELI,PEI,HYM,CMI,
  3021.      1           WLNING,IPEL)
  3022. C
  3023. C
  3024. C
  3025. C     IST    NUMBER OF STRESS COMPONENTS
  3026. C     ISR    NUMBER OF STRAIN COMPONENTS
  3027. C     SIG    STRESS AT THE END OF PREVIOUS UPDATE
  3028. C     EPS    STRAIN AT THE END OF PREVIOUS UPDATE
  3029. C     RATIO  PART OF STRAIN INCREMENT TAKEN ELASTICALLY
  3030. C     DELEPS INCREMENT IN STRAINS
  3031. C     DELSIG INCREMENT IN STRESSES, ASSUMING ELASTIC BEHAVIOR
  3032. C
  3033. C
  3034. C     CHO    RADIUS OF CONE AT ORIGIN OF COORDINATES ON FIG.P-Q,UNDER
  3035. C            PRECONSOLIDATED PRESSURE
  3036. C     CHI    THE ABOVE RADIUS DURING STRAIN HARDENING
  3037. C     ELO    LENGTH OF HALF AXIS OF ELLIPSE ON HORIZONTAL AXIS ON FIG.
  3038. C            P-Q.UNDER PRECONSOLIDATED PRESSURE
  3039. C     ELI    ABOVE LENGTH DURING STRAIN HARDENING
  3040. C     PEO    VOID RATIO UNDER PRECONSOLIDATED PRESSURE
  3041. C     PEI    VOID RATIO DURING PRESSURE CHANGE
  3042. C     HYM    DRAINED YOUNGS MODULUS
  3043. C     CMI    RADIUS OF CONE ON FIG.P-Q IN PARA.
  3044. C
  3045. C
  3046. C     IPEL   =1   ELASTIC
  3047. C            =2   TENSION FAILURE
  3048. C            =3   PLASTIC FAILURE
  3049. C            =4   PLASTIC (PARA. OR MOHR)
  3050. C            =5   PLASTIC (ELLIPSOID)
  3051. C
  3052. C
  3053. C
  3054.       IMPLICIT REAL*8 (A-H,O-Z)
  3055.       COMMON /EL/ IND,ICOUNT,NPAR(20),NUMEG,NEGL,NEGNL,IMASS,IDAMP,
  3056.      1            ISTAT,NDOF,KLIN,IEIG,IMASSN,IDAMPN
  3057.       COMMON /VAR/ NG,MODEX,IUPDT,KSTEP,ITEMAX,IEQREF,ITE,KPRI,
  3058.      1             IREF,IEQUIT,IPRI,KPLOTN,KPLOTE
  3059.       COMMON /DISDER/ DISD(5)
  3060.       COMMON /MATMOD/ STRESS(4),STRAIN(4),C(4,4),IPT,NEL,IPS
  3061.       COMMON /BEIJIN/ A1,B1,C1,FM,CM,G,BK,SLMD,SKA,USKA,ISR,IST
  3062. C
  3063.       DIMENSION PROP(1),SIG(1),EPS(1),WLNING(1),STATE(5)
  3064.       DIMENSION TAU(4),TAUN(4),DELSIG(4),DELEPS(4),DEPS(4)
  3065. C
  3066.       EQUIVALENCE (NPAR(3),INDNL),(NPAR(5),ITYP2D),(DELEPS(1),DEPS(1))
  3067.       EQUIVALENCE (NPAR(17),NCON)
  3068. C
  3069.       DATA NGLAST/1000/,STATE/7HELASTIC,7HTENSILE,7HSHEARED,7HP--MOHR,
  3070.      1     7HP---CAP/
  3071. C
  3072. C
  3073.       IF(IPT.NE.1) GO TO 116
  3074.       IF(ITYP2D.LT.2) GO TO 100
  3075.       WRITE(6,3000)
  3076.       STOP
  3077. C
  3078.   100 IST=4
  3079.       ISR=3
  3080.       IF(ITYP2D.EQ.0) ISR=4
  3081. C
  3082.       NING=0
  3083.       IF(PROP(1).GT.0.5D0) NING=1
  3084.       NHARD=1
  3085.       IF(PROP(2).LT.0.5D0) NHARD=0
  3086.       NSEL=0
  3087.       IF(PROP(4).GT.0.5D0) NSEL=1
  3088. C
  3089.   105 FM=PROP(5)
  3090.       CM=PROP(6)
  3091.       IF(NING.NE.1) GO TO 107
  3092.       CM=(-CHO+FM*FM*ELO*ELO)/ELO
  3093.       APEX=CHO/CM
  3094.   107 SLMD=PROP(7)
  3095.       SKA=PROP(8)
  3096.       NOCAP=0
  3097.       FH=SLMD-SKA
  3098.       IF(FH.LT.1.0D-6) NOCAP=1
  3099.       PAR=PROP(13)
  3100.       HQO=PROP(14)
  3101.       USKA=0.1D-2
  3102.       IF(PROP(15).GT.0.1D-2) USKA=PROP(15)
  3103.       PV=PROP(17)
  3104. C
  3105.   110 YM=HYM
  3106.       PN=PV
  3107.       SKAN=SKA
  3108. C
  3109.       IF(NSEL.NE.1) GO TO 112
  3110.       G=PROP(19)
  3111.       BK=PROP(18)
  3112.       GO TO 115
  3113.   112 G=YM/(1.+PN)/2.
  3114.       BK=YM/(1.-2.*PN)/3.
  3115. C
  3116.   115 A1=BK+4.*G/3.
  3117.       B1=BK-2.*G/3.
  3118.       C1=G
  3119. C
  3120.   116 CHT=CHI
  3121.       ELT=ELI
  3122.       PET=PEI
  3123.       CMT=CMI
  3124. C
  3125. C        1.  CALCULATE STRAIN INCREMENT
  3126. C
  3127.       IF(IPEL.NE.2.AND.IPEL.NE.3) GO TO 119
  3128.       DO 117 I=1,IST
  3129.   117 TAU(I)=SIG(I)
  3130.       GO TO 610
  3131. C
  3132.   119 DO 120 I=1,ISR
  3133.   120 DELEPS(I)=STRAIN(I)-EPS(I)
  3134. C
  3135. C        2.  CALCULATE STRESS INCREMENT,
  3136. C            ASSUMING ELASTIC BEHAVIOR
  3137. C
  3138.       DELSIG(1)=A1*DELEPS(1)+B1*DELEPS(2)
  3139.       DELSIG(2)=B1*DELEPS(1)+A1*DELEPS(2)
  3140.       DELSIG(3)=C1*DELEPS(3)
  3141.       DELSIG(4)=B1*(DELEPS(1)+DELEPS(2))
  3142.       IF(ITYP2D.EQ.1) GO TO 125
  3143.       DELSIG(1)=DELSIG(1)+B1*DELEPS(4)
  3144.       DELSIG(2)=DELSIG(2)+B1*DELEPS(4)
  3145.       DELSIG(4)=DELSIG(4)+A1*DELEPS(4)
  3146. C
  3147. C       3.  CALCULATE TOTAL STRESSES,
  3148. C           ASSUMING ELASTIC BEHAVIOR
  3149. C
  3150.   125 DO 130 I=1,IST
  3151.   130 TAU(I)=SIG(I)+DELSIG(I)
  3152. C
  3153. C       4.  CHECK WHETHER *TAU* STATE OF STRESS FALLS OUTSIDE
  3154. C           THE LOADING SURFACE
  3155. C
  3156. C       4-1. CHECK WHETHER *TAU* OUTSIDE THE CONE
  3157. C
  3158.       SM=(TAU(1)+TAU(2)+TAU(4))/3.
  3159.       SX=TAU(1)-SM
  3160.       SY=TAU(2)-SM
  3161.       SS=TAU(3)
  3162.       SZ=TAU(4)-SM
  3163.       SBAR=DSQRT(1.5D0*(SX*SX+SY*SY+SZ*SZ+2.D0*SS*SS))
  3164. C
  3165.       XSM=SM+ELT
  3166.       SMG=(SIG(1)+SIG(2)+SIG(4))/3.0
  3167.       FHM=XSM/CHO
  3168.       FHG=(SMG+ELT)/CHO
  3169.       IF(FHM.LT.-1.D-3.AND.FHG.LT.-1.D-3) GO TO 195
  3170. C
  3171.       FCT=CM*SM+SBAR-CHT
  3172.       IF(NING.EQ.1) FCT=CMT*SM+SBAR*SBAR-CHT
  3173.       IF(FCT.LT.0.0) GO TO 180
  3174.       IF(FCT.LT.1.D-7) GO TO 175
  3175. C
  3176. C            *TAU* OUTSIDE *CONE* CORRECTING *TAU*
  3177. C
  3178.       RATIO=0.0
  3179.       IF(IPEL.EQ.4) GO TO 140
  3180.       SM=SMG
  3181.       SX=SIG(1)-SM
  3182.       SY=SIG(2)-SM
  3183.       SS=SIG(3)
  3184.       SZ=SIG(4)-SM
  3185. C
  3186.       DM=(DELSIG(1)+DELSIG(2)+DELSIG(4))/3.
  3187.       DX=DELSIG(1)-DM
  3188.       DY=DELSIG(2)-DM
  3189.       DS=DELSIG(3)
  3190.       DZ=DELSIG(4)-DM
  3191. C
  3192.       IF (NING.NE.1) GO TO 131
  3193. C
  3194.       A=DX*DX+DY*DY+2.*DS*DS+DZ*DZ
  3195.       B=SX*DX+SY*DY+SZ*DZ+2.*SS*DS+2.*CMT*DM/3.0
  3196.       E=SX*SX+SY*SY+SZ*SZ+2.*SS*SS+2.*(CMT*SM-CHT)/3.0
  3197.       GO TO 135
  3198. C
  3199.   131 A=DX*DX+DY*DY+2.*DS*DS+DZ*DZ-2.*CM*CM*DM*DM/3.
  3200.       B=SX*DX+SY*DY+2.*SS*DS+SZ*DZ+2.*CM*DM*(CHT-CM*SM)/3.
  3201.       E=SX*SX+SY*SY+2.*SS*SS+SZ*SZ+2.*CM*SM*(2.*CHT-CM*SM)/3.-2.*CHT*CHT
  3202.      1  /3.
  3203.       IF(A) 135,132,135
  3204.   132 RATIO=-E/2.0/B
  3205.       GO TO 140
  3206. C
  3207.   135 RATO=B*B-A*E
  3208.       IF(RATO.LT.1.D-7) RATO=0.0
  3209.       RATIO=(-B+DSQRT(RATO))/A
  3210.   140 CONTINUE
  3211. C
  3212.       DO 145 I=1,IST
  3213.   145 TAU(I)=SIG(I)+RATIO*DELSIG(I)
  3214. C
  3215.       SM=(TAU(1)+TAU(2)+TAU(4))/3.
  3216. C
  3217.       FH=(SM+ELT)/CHO
  3218.       IF(NING.EQ.1) FH=(SM+ELT)/HQO
  3219. C
  3220.       IF(FH.LT.-1.D-4) GO TO 186
  3221.       IF(FH.GT.1.D-4) GO TO 155
  3222. C
  3223.   150 IPEL=3
  3224.       IF(NHARD.EQ.1) PET=PEO+0.693147*SKAN
  3225.       GO TO 610
  3226. C
  3227.   155 IPEL=4
  3228.       IF(SM.LT.-10D-8.AND.SMG.LT.-10D-8) GO TO 160
  3229.       PET=5.55D0
  3230.       GO TO 165
  3231. C
  3232.   160 IF(SMG-SM) 161,165,162
  3233.   161 PET=PET+SKAN*DLOG(SMG/SM)
  3234.       GO TO 165
  3235.   162 PET=PET-SKAN*DLOG(SM/SMG)
  3236. C
  3237.   165 SKAN=USKA
  3238.       IF(NHARD.EQ.0) GO TO 170
  3239.       NHARD=0
  3240. C
  3241.   170 DH=FCT
  3242.       SBARO=CHO
  3243.       IF(NING.EQ.1) SBARO=HQO
  3244.       GO TO 270
  3245. C
  3246.   175 FH=XSM/CHO
  3247.       IF(NING.EQ.1) FH=XSM/HQO
  3248.       IF(FH.LT.-1.D-4) GO TO 195
  3249.       IF(FH.GT.1.D-4) GO TO 181
  3250.       GO TO 150
  3251. C
  3252.   180 IF(XSM) 195,195,181
  3253. C
  3254.   181 IPEL=1
  3255.       IF(SM.LT.-10D-8.AND.SMG.LT.-10D-8) GO TO 182
  3256.       PET=5.55D0
  3257.       GO TO 610
  3258. C
  3259.   182 IF(SMG-SM) 183,185,184
  3260.   183 PET=PET+SKAN*DLOG(SMG/SM)
  3261.       GO TO 610
  3262.   184 PET=PET-SKAN*DLOG(SM/SMG)
  3263.   185 GO TO 610
  3264. C
  3265.   186 IF(NOCAP.EQ.1) GO TO 155
  3266.       SX=TAU(1)-SM
  3267.       SY=TAU(2)-SM
  3268.       SS=TAU(3)
  3269.       SZ=TAU(4)-SM
  3270.       SBAR=DSQRT(1.5D0*(SX*SX+SY*SY+SZ*SZ+2.D0*SS*SS))
  3271.       ETA=-SBAR/SM
  3272.       DH=-0.5*(FM-CM)*(SM*(1.+ETA*ETA/FM/FM)+2.*ELI)+FCT
  3273.       IF(NING.EQ.1) DH=DH*(FM-CMT)/(FM-CM)
  3274.       GO TO 205
  3275. C
  3276. C       4-2. CHECK WHETHER *TAU** OUTSIDE THE ELLIPSOID
  3277. C
  3278.   195 SMT=-2.*ELI
  3279.       ETA=-SBAR/SM
  3280. C
  3281.       FRT=(SLMD-SKAN)*DLOG(SM*(1.D0+ETA*ETA/FM/FM)/SMT)
  3282. C
  3283.       IF(NOCAP.EQ.1) FRT=0.0
  3284. C
  3285.       IF(FRT) 181,181,200
  3286. C
  3287. C         *TAU* OUTSIDE *ELLIPSOID* CORRECTING *TAU*
  3288. C         DETERRMINE PART OF STRAIN TAKEN ELASTICLY
  3289. C
  3290.   200 DH=-0.5*(FM-CM)*(SM*(1.+ETA*ETA/FM/FM)-SMT)
  3291.       IF(NING.EQ.1) DH=DH*(FM-CMT)/(FM-CM)
  3292.   205 RATIO=0.0
  3293.       IF(IPEL.EQ.5) GO TO 210
  3294.       IPEL=5
  3295.       SM=SMG
  3296.       SX=SIG(1)-SM
  3297.       SY=SIG(2)-SM
  3298.       SS=SIG(3)
  3299.       SZ=SIG(4)-SM
  3300. C
  3301.       DM=(DELSIG(1)+DELSIG(2)+DELSIG(4))/3.
  3302.       DX=DELSIG(1)-DM
  3303.       DY=DELSIG(2)-DM
  3304.       DS=DELSIG(3)
  3305.       DZ=DELSIG(4)-DM
  3306. C
  3307.       A=DX*DX+DY*DY+2.*DS*DS+DZ*DZ+2.*FM*FM*DM*DM/3.
  3308.       B=SX*DX+SY*DY+2.*SS*DS+SZ*DZ+2.*FM*FM*DM*(SM+ELT)/3.
  3309.       E=SX*SX+SY*SY+2.*SS*SS+SZ*SZ+2.*FM*FM*SM*(SM+2.*ELT)/3.
  3310. C
  3311.       IF(A) 208,206,208
  3312.   206 RATIO=-E/2.0/B
  3313.       GO TO 210
  3314.   208 RATO=B*B-A*E
  3315.       IF(RATO.LT.1.D-7) RATO=0.D0
  3316.       RATIO=(-B+DSQRT(RATO))/A
  3317.   210 CONTINUE
  3318. C
  3319.       DO 220 I=1,IST
  3320.   220 TAU(I)=SIG(I)+RATIO*DELSIG(I)
  3321. C
  3322. C         *TAU* NOW CONTAINS (PREVIOUS STRESSES + STRESSES DUE TO
  3323. C                             ELASTIC STRAIN INCREMENTS )
  3324. C
  3325.       SM=(TAU(1)+TAU(2)+TAU(4))/3.
  3326.       SX=TAU(1)-SM
  3327.       SY=TAU(2)-SM
  3328.       SS=TAU(3)
  3329.       SZ=TAU(4)-SM
  3330.       SBAR=DSQRT(1.5D0*(SX*SX+SY*SY+SZ*SZ+2.D0*SS*SS))
  3331.       ETA=-SBAR/SM
  3332. C
  3333.       SBARO=2.*ELO*(FM*FM*ETA/(FM*FM+ETA*ETA))
  3334. C
  3335.       IF(NHARD.EQ.0) GO TO 270
  3336.       IF(SM.LT.-10D-8.AND.SMG.LT.-10D-8) GO TO 240
  3337.       PET=5.55D0
  3338.       GO TO 270
  3339. C
  3340.   240 IF(SMG-SM) 250,270,260
  3341.   250 PET=PET+SKAN*DLOG(SMG/SM)
  3342.       GO TO 270
  3343.   260 PET=PET-SKAN*DLOG(SM/SMG)
  3344. C
  3345. C         DETERMINE INCREMENT INTERVAL
  3346. C
  3347.   270 IF(DH.LT.1.D-7) DH=0.0
  3348.       M=20.*DSQRT(2.D0*SBARO*DH)/SBARO+1.
  3349.       IF(M.GT.30) M=30
  3350.       XM=(1.-RATIO)/DBLE(FLOAT(M))
  3351. C
  3352. C       5.  CALCULATION OF ELASTOPLASTIC STRESSES...(START)
  3353. C
  3354.       DO 280 I=1,ISR
  3355.   280 DEPS(I)=XM*DELEPS(I)
  3356. C
  3357.       DO 600 IM=1,M
  3358. C
  3359.       IF(IPEL.NE.5) GO TO 290
  3360.       CALL ELLIPS (TAU,DEPS,NHARD,PEO,PAR)
  3361.       GO TO 300
  3362. C
  3363.   290 CALL CURVE  (TAU,DEPS,CMT,NING)
  3364. C
  3365.   300 CONTINUE
  3366.       DO 310 I=1,IST
  3367.       TAUN(I)=TAU(I)
  3368.       DO 310 J=1,ISR
  3369.   310 TAU(I)=TAU(I)+C(I,J)*DEPS(J)
  3370. C
  3371.       SM=(TAUN(1)+TAUN(2)+TAUN(4))/3.
  3372.       DM=(TAU(1)+TAU(2)+TAU(4))/3.
  3373. C
  3374. C       5-1.CORRECTION OF STESSES
  3375. C
  3376.       IF(IPEL.NE.5) GO TO 330
  3377.       DX=TAU(1)-DM
  3378.       DY=TAU(2)-DM
  3379.       DS=TAU(3)
  3380.       DZ=TAU(4)-DM
  3381.       DSBAR=DSQRT(1.5D0*(DX*DX+DY*DY+DZ*DZ+2.D0*DS*DS))
  3382.       DETA=-DSBAR/DM
  3383. C
  3384.       SX=TAUN(1)-SM
  3385.       SY=TAUN(2)-SM
  3386.       SS=TAUN(3)
  3387.       SZ=TAUN(4)-SM
  3388.       SBAR=DSQRT(1.5D0*(SX*SX+SY*SY+SZ*SZ+2.D0*SS*SS))
  3389.       ETA=-SBAR/SM
  3390. C
  3391.   330 IF(NHARD.EQ.1) GO TO 350
  3392. C
  3393.       FH=DABS(DH)/CHO
  3394.       IF(NING.EQ.1) FH=DABS(DH)/HQO
  3395.       IF(FH.LT.0.005D0) GO TO 350
  3396. C
  3397.       IF(IPEL.NE.5) GO TO 340
  3398.       CALL PLACAP (TAU,DM,DSBAR,DETA,ELT)
  3399.       GO TO 350
  3400. C
  3401.   340 CALL PARABO (TAU,DM,CHT,CMT,NING)
  3402.   350 CONTINUE
  3403. C
  3404. C       5-2.JUDGEMENT AND TREATMENT OF FAILURE
  3405. C
  3406.       IF(IPEL.NE.5) GO TO 400
  3407. C
  3408.       FH=FM-DETA
  3409.       IF(FH.GE.0.0.AND.DM.LE.-10D-6) GO TO 360
  3410. C
  3411.       DO 355 I=1,IST
  3412.   355 TAU(I)=TAUN(I)
  3413.       DETA=ETA
  3414.       DM=SM
  3415.       GO TO 450
  3416. C
  3417.   360 IF(NHARD.EQ.0) GO TO 365
  3418.       IF(IM.EQ.M) GO TO 365
  3419. C
  3420.       SMT=-2.*ELT
  3421.       DSMT=DM*(1.+DETA*DETA/FM/FM)
  3422. C
  3423.       FRT=(SLMD-SKAN)*DLOG(DSMT/SMT)
  3424.       ELT=ELT*DEXP(FRT/(SLMD-SKA))
  3425.       CHT=(FM-CM)*ELT
  3426.       IF(NING.NE.1) GO TO 361
  3427.       CMT=FM*FM*ELT*ELT/(ELT+APEX)
  3428.       CHT=APEX*CMT
  3429. C
  3430.   361 IF(SM-DM) 363,364,364
  3431.   363 PET=PET-FRT+SKAN*DLOG(SM/DM)
  3432.       GO TO 365
  3433.   364 PET=PET-FRT-SKAN*DLOG(DM/SM)
  3434. C
  3435.   365 IF(FH) 450,450,600
  3436. C
  3437.   400 IF(NOCAP.EQ.1) GO TO 420
  3438.       IF(DM+ELT) 410,450,420
  3439. C
  3440.   410 DO 415 I=1,IST
  3441.   415 TAU(I)=TAUN(I)
  3442.       GO TO 450
  3443. C
  3444.   420 IF(DM.LT.0.0) GO TO 600
  3445. C
  3446.       XSM=DM-SM
  3447.       IF(XSM.LE.0.) GO TO 600
  3448. C
  3449.       CBT=CHT/CM
  3450.       IF (NING.EQ.1) CBT=APEX
  3451.       FH=(CBT-DM)/XSM
  3452.       IF(FH.GE.1.D0) GO TO 600
  3453.       PET=8.88D0
  3454.       IPEL=2
  3455.       GO TO 610
  3456. C
  3457.   450 IPEL=3
  3458.       GO TO 610
  3459. C
  3460.   600 CONTINUE
  3461. C
  3462. C       CALCULATION OF ELASTOPLASTIC STRESSES...(END)
  3463. C
  3464.   610 DO 620 I=1,IST
  3465.   620 STRESS(I)=TAU(I)-WLNING(I)
  3466. C
  3467. C     6.UPDATING PEI,SIG,EPS,CHI,ELI
  3468. C
  3469.   625 IF(IUPDT.NE.0) GO TO 650
  3470.       DO 630 I=1,IST
  3471.   630 SIG(I)=TAU(I)
  3472.       DO 640 I=1,ISR
  3473.   640 EPS(I)=STRAIN(I)
  3474. C
  3475.       PEI=PET
  3476. C
  3477.       IF(IPEL.EQ.1) GO TO 650
  3478.       IF(NHARD.EQ.0) GO TO 650
  3479. C
  3480.       PEO=PET
  3481.       CHI=CHT
  3482.       ELI=ELT
  3483.       CMI=CMT
  3484. C
  3485.   650 COHE=CHT
  3486.       IF(NING.EQ.1) COHE=DSQRT(CHT)
  3487.       IF(KPRI.EQ.0) GO TO 700
  3488. C
  3489.       IF(ICOUNT.EQ.3) RETURN
  3490. C
  3491. C       7.  FORM NEW MATERIAL LAW
  3492. C
  3493.       IF(IEQREF.EQ.1) GO TO 655
  3494.       GO TO (655,675,675,685,695), IPEL
  3495. C
  3496. C           ELASTIC
  3497. C
  3498.   655 DO 660 I=1,ISR
  3499.       DO 660 J=1,ISR
  3500.   660 C(I,J)=0.0
  3501.       C(1,1)=A1
  3502.       C(2,1)=B1
  3503.       C(1,2)=B1
  3504.       C(2,2)=A1
  3505.       C(3,3)=C1
  3506.       IF(ITYP2D.EQ.1) RETURN
  3507.       C(1,4)=B1
  3508.       C(2,4)=B1
  3509.       C(4,1)=B1
  3510.       C(4,2)=B1
  3511.       C(4,4)=A1
  3512.       RETURN
  3513. C
  3514. C        ELASTO-PLASTIC
  3515. C
  3516. C
  3517.   675 DO 680 I=1,ISR
  3518.       DO 680 J=1,ISR
  3519.       C(I,J)=0.0
  3520.       IF(J.EQ.I) C(I,J)=1.0D0
  3521.   680 CONTINUE
  3522.       RETURN
  3523. C
  3524.   685 CALL CURVE (TAU,DEPS,CMT,NING)
  3525.       RETURN
  3526. C
  3527.   695 CALL ELLIPS (TAU,DEPS,NHARD,PEO,PAR)
  3528.       RETURN
  3529. C
  3530. C         PRINTING OF STRESS
  3531. C
  3532.   700 IF(IPEL.EQ.1) GO TO 800
  3533. C
  3534.       DM=(TAU(1)+TAU(2)+TAU(4))/3.
  3535.       DX=TAU(1)-DM
  3536.       DY=TAU(2)-DM
  3537.       DS=TAU(3)
  3538.       DZ=TAU(4)-DM
  3539.       SBAR=DSQRT(1.5D0*(DX*DX+DY*DY+DZ*DZ+2.D0*DS*DS))
  3540.       SMT=-2.*ELT
  3541.       ETA=-SBAR/DM
  3542. C
  3543.       IF (IPEL-4) 800,730,750
  3544. C
  3545.   730 FT=CM*DM+SBAR-CHT
  3546.       IF (NING.EQ.1) FT=CMT*DM+SBAR*SBAR-CHT
  3547.       GO TO 800
  3548. C
  3549.   750 FT=(SLMD-SKAN)*DLOG(DM*(1.D0+ETA*ETA/FM/FM)/SMT)
  3550. C
  3551.   800 IF (IPRI.NE.0) RETURN
  3552. C
  3553.       CALL MAXMIN (TAU,SX,SY,SM)
  3554.       SINV=(TAU(1)+TAU(2)+TAU(4))/3.
  3555.       EFSG=DSQRT(1.5D0*((TAU(4)-SINV)**2+(TAU(1)-SINV)**2+(TAU(2)
  3556.      1           -SINV)**2+2.D0*TAU(3)*TAU(3)))
  3557.       EINV=STRAIN(1)+STRAIN(2)+STRAIN(4)
  3558.       QEFPE=(STRAIN(1)-STRAIN(2))**2+(STRAIN(2)-STRAIN(4))**2
  3559.      1     +(STRAIN(4)-STRAIN(1))**2+1.5*STRAIN(3)*STRAIN(3)
  3560.       EFPE=DSQRT(QEFPE/2.0D0)/(1.0+PN)
  3561. C
  3562.       IF (IPS.LT.0) GO TO 900
  3563. C
  3564. C     STRESS PRINTOUT ONLY **
  3565. C
  3566.       IF (IPT.GT.1) GO TO 850
  3567. C
  3568. C     PRINT HEADING *
  3569. C
  3570.       WRITE (6,2000)
  3571. C
  3572. C     PRINT ELEMENT NUMBER *
  3573. C
  3574.       WRITE (6,2005) NEL
  3575. C
  3576. C     PRINT INTEGRATION POINT STRESSES *
  3577. C
  3578.   850 WRITE (6,2100) IPT,STATE(IPEL),TAU(4),(TAU(J),J=1,3),
  3579.      1               SX,SY,SM
  3580.       WRITE (6,2200) IPEL,EFSG,COHE,FT
  3581. C
  3582.       RETURN
  3583. C
  3584. C     STRESS AND STRAIN PRINTOUT **
  3585. C
  3586.   900 IF (IPT.GT.1) GO TO 920
  3587. C
  3588. C     PRINT HEADING *
  3589. C
  3590.       WRITE (6,2000)
  3591. C
  3592. C     PRINT ELEMENT NUMBER *
  3593. C
  3594.       WRITE (6,2005) NEL
  3595. C
  3596. C     PRINT INTEGRATION POINT STRESSES AND STRAINS *
  3597. C
  3598.   920 WRITE (6,2100) IPT,STATE(IPEL),TAU(4),(TAU(J),J=1,3),
  3599.      1               SX,SY,SM
  3600.       WRITE (6,2400) STRAIN(4),(STRAIN(J),J=1,3)
  3601.       WRITE (6,2500) EINV,EFPE,PEI
  3602.       WRITE (6,2200) IPEL,EFSG,COHE,FT
  3603. C
  3604.       RETURN
  3605. C
  3606.  2000 FORMAT (1X,7HELEMENT,2X,6HSTRESS,4X,13HSTRESS/STRAIN,8X,2HXX,
  3607.      1        13X,2HYY,13X,2HZZ,13X,2HYZ,9X,10HMAX STRESS,5X,
  3608.      2        10HMIN STRESS,3X,5HANGLE,/,1X,7HNUM/IPT,3X,5HSTATE,4X,
  3609.      3        10HCOMPONENTS)
  3610.  2005 FORMAT (/,1X,I3)
  3611.  2100 FORMAT (4X,I2,4X,A7,3X,6HSTRESS,9X,6(E14.6,1X),F6.2)
  3612.  2200 FORMAT (20X,7HIPEL = ,I2,2X,14HDEVI-STRESS = ,E14.6,2X,
  3613.      1        7HCOHE = ,E14.6,2X,17HYIELD FUNCTION = , E14.6,/)
  3614.  2400 FORMAT (20X,12HSTRAIN-TOTAL,3X,4(E14.6,1X))
  3615.  2500 FORMAT (20X,15HVOLUM STRAIN = ,E14.6,2X,14HDEVI-STRAIN = ,E14.6,
  3616.      1        2X,13HVOID RATIO = , E14.6,/)
  3617.  3000 FORMAT (44H   ERROR   NOT CONSIDER CASE OF PLANE STRESS   )
  3618.       END
  3619. C *CDC* *DECK CURVE
  3620. C *UNI* )FOR,IS  N.CURVE, R.CURVE
  3621.       SUBROUTINE CURVE (TAU,DEPS,CMT,NING)
  3622. C
  3623. C     THIS SUBRORTING FORMS THE ELASTO-PLASTIC MATERIAL LAW
  3624. C     FOR THE PARA.OR.MOHR YIELD SURFACE (IPEL=4)
  3625. C
  3626.       IMPLICIT REAL*8 (A-H,O-Z)
  3627.       COMMON /EL/ IND,ICOUNT,NPAR(20),NUMEG,NEGNL,IMASS,IDAMP,
  3628.      1            ISTAT,NDOF,KLIN,IEIG,IMASSN,IDAMPN
  3629.       COMMON /MATMOD/ STRESS(4),STRAIN(4),C(4,4),IPT,NEL,IPS
  3630.       COMMON /BEIJIN/ A1,B1,C1,FM,CM,G,BK,SLMD,SKA,USKA,ISR,IST
  3631. C
  3632.       DIMENSION DP(16),TAU(1),DEPS(1)
  3633.       EQUIVALENCE (NPAR(5),ITYP2D),(C(1,1),DP(1))
  3634. C
  3635.       SM=(TAU(1)+TAU(2)+TAU(4))/3.
  3636.       SX=TAU(1)-SM
  3637.       SY=TAU(2)-SM
  3638.       SS=TAU(3)
  3639.       SZ=TAU(4)-SM
  3640.       SBAR=DSQRT(1.5D0*(SX*SX+SY*SY+SZ*SZ+2.D0*SS*SS))
  3641. C
  3642.       E=CM/3.
  3643.       R=1.5/SBAR
  3644.       IF (NING.NE.1) GO TO 10
  3645.       E=CMT/3.0
  3646.       R=3.0D0
  3647. C
  3648.    10 FX=E+R*SX
  3649.       FY=E+R*SY
  3650.       FS=2.*R*SS
  3651.       FZ=E+R*SZ
  3652. C
  3653.       DX=3.*BK*E+2.*G*R*SX
  3654.       DY=3.*BK*E+2.*G*R*SY
  3655.       DS=2.*G*R*SS
  3656.       DZ=3.*BK*E+2.*G*R*SZ
  3657. C
  3658.    15 W=DX*FX+DY*FY+DS*FS+DZ*FZ
  3659. C
  3660.       IF (ITYP2D.LT.1) GO TO 20
  3661. C
  3662.       DLAMDA=(DX*DEPS(1)+DY*DEPS(2)+DS*DEPS(3))/W
  3663.       GO TO 25
  3664. C
  3665.    20 DLAMDA=(DX*DEPS(1)+DY*DEPS(2)+DS*DEPS(3)+DZ*DEPS(4))/W
  3666. C
  3667.    25 IF(DLAMDA.GT.0.) GO TO 30
  3668. C
  3669.       DX=0.
  3670.       DY=0.
  3671.       DS=0.
  3672.       DZ=0.
  3673. C
  3674.    30 DP(1)=A1-DX*DX/W
  3675.       DP(2)=B1-DX*DY/W
  3676.       DP(3)=-DX*DS/W
  3677.       DP(4)=B1-DX*DZ/W
  3678.       DP(5)=DP(2)
  3679.       DP(6)=A1-DY*DY/W
  3680.       DP(7)=-DY*DS/W
  3681.       DP(8)=B1-DY*DZ/W
  3682.       DP(9)=DP(3)
  3683.       DP(10)=DP(7)
  3684.       DP(11)=C1-DS*DS/W
  3685.       DP(12)=-DS*DZ/W
  3686. C
  3687.       IF (ITYP2D.EQ.1) RETURN
  3688. C
  3689.       DP(13)=DP(4)
  3690.       DP(14)=DP(8)
  3691.       DP(15)=DP(12)
  3692.       DP(16)=A1-DZ*DZ/W
  3693. C
  3694.       RETURN
  3695.       END
  3696. C *CDC* *DECK ELLIPS
  3697. C *UNI* )FOR,IS  N.ELLIPS  R.ELLIPS
  3698.       SUBROUTINE ELLIPS (TAU,DEPS,NHARD,PEO,PAR)
  3699. C
  3700. C     THIS SUBROUTINE FORMS THE ELASTIC-PLASTIC MATERIAL LAW
  3701. C     FOR THE ELLIPSE YIELD CAP(IPEL=5)
  3702. C
  3703.       IMPLICIT REAL*8 (A-H,O-Z)
  3704.       COMMON /EL/ IND,ICOUNT,NPAR(20),NUMEG,NEGL,NEGNL,IMASS,IDAMP,
  3705.      1            ISTAT,NDOF,KLIN,IEIG,IMASSN,IDAMPN
  3706.       COMMON /MATMOD/ STRESS(4),STRAIN(4),C(4,4),IPT,NEL,IPS
  3707.       COMMON /BEIJIN/ A1,B1,C1,FM,CM,G,BK,SLMD,SKA,USKA,ISR,IST
  3708. C
  3709.       DIMENSION DP(16),TAU(1),DEPS(1)
  3710.       EQUIVALENCE (NPAR(5),ITYP2D),(C(1,1),DP(1))
  3711. C
  3712.       SM=(TAU(1)+TAU(2)+TAU(4))/3.0
  3713.       SX=TAU(1)-SM
  3714.       SY=TAU(2)-SM
  3715.       SS=TAU(3)
  3716.       SZ=TAU(4)-SM
  3717.       SBAR=DSQRT(1.5D0*(SX*SX+SY*SY+SZ*SZ+2.D0*SS*SS))
  3718.       ETA=-SBAR/SM
  3719. C
  3720.       SKAN=SKA
  3721.       IF (NHARD.EQ.0) SKAN=USKA
  3722. C
  3723.       R=(SLMD-SKAN)/SM
  3724.       E=R*(FM*FM-ETA*ETA)/(FM*FM+ETA*ETA)/3.
  3725.       R=3.*R/(FM*FM+ETA*ETA)/SM
  3726. C
  3727.       FX=E+R*SX
  3728.       FY=E+R*SY
  3729.       FS=2.*R*SS
  3730.       FZ=E+R*SZ
  3731. C
  3732.       DX=3.*BK*E+2.*G*R*SX
  3733.       DY=3.*BK*E+2.*G*R*SY
  3734.       DS=2.*G*R*SS
  3735.       DZ=3.*BK*E+2.*G*R*SZ
  3736. C
  3737.       W=DX*FX+DY*FY+DS*FS+DZ*FZ
  3738.       A=-3.*E*(1.+PEO)
  3739.       IF(NHARD.EQ.0) A=0.0
  3740.       W=A+W
  3741. C
  3742.       IF (ITYP2D.LT.1) GO TO 20
  3743. C
  3744.       DLAMDA=(DX*DEPS(1)+DY*DEPS(2)+DS*DEPS(3))/W
  3745.       GO TO 25
  3746. C
  3747.    20 DLAMDA=(DX*DEPS(1)+DY*DEPS(2)+DS*DEPS(3)+DZ*DEPS(4))/W
  3748.    25 IF (DLAMDA.GT.0.0) GO TO 30
  3749. C
  3750.       DX=0.
  3751.       DY=0.
  3752.       DS=0.
  3753.       DZ=0.
  3754. C
  3755.    30 DP(1)=A1-DX*DX/W
  3756.       DP(2)=B1-DX*DY/W
  3757.       DP(3)=-DX*DS/W
  3758.       DP(4)=B1-DX*DZ/W
  3759.       DP(5)=DP(2)
  3760.       DP(6)=A1-DY*DY/W
  3761.       DP(7)=-DY*DS/W
  3762.       DP(8)=B1-DY*DZ/W
  3763.       DP(9)=DP(3)
  3764.       DP(10)=DP(7)
  3765.       DP(11)=C1-DS*DS/W
  3766.       DP(12)=-DS*DZ/W
  3767. C
  3768.       IF(ITYP2D.EQ.1) RETURN
  3769. C
  3770.       DP(13)=DP(4)
  3771.       DP(14)=DP(8)
  3772.       DP(15)=DP(12)
  3773.       DP(16)=A1-DZ*DZ/W
  3774. C
  3775.       RETURN
  3776.       END
  3777. C *CDC* *DECK PARABO
  3778. C *UNI* )FOR,IS  N.PARABO, R.PARABO
  3779.       SUBROUTINE PARABO (TAU,DM,CHT,CMT,NING)
  3780. C
  3781. C     THIS SUBROUTINE CORRECTS STRESS FOR PERFECTLY PLASTIC CASE
  3782. C
  3783. C
  3784.       IMPLICIT REAL*8 (A-H,O-Z)
  3785.       COMMON /BEIJIN/ A1,B1,C1,FM,CM,G,BK,SLMD,SKA,USKA,ISR,IST
  3786. C
  3787.       DIMENSION TAU(1)
  3788. C
  3789.       DX=TAU(1)-DM
  3790.       DY=TAU(2)-DM
  3791.       DS=TAU(3)
  3792.       DZ=TAU(4)-DM
  3793. C
  3794.       SBAR=DSQRT(1.5D0*(DX*DX+DY*DY+DZ*DZ+2.D0*DS*DS))
  3795. C
  3796.       IF (NING.EQ.1) GO TO 25
  3797.       AA=2.25-CM*CM*CM*CM/9.
  3798.       BB=3.*SBAR-2.*CM*CM*(CM*DM-CHT)/3.0
  3799.       CC=SBAR*SBAR-CM*DM*(CM*DM-2.*CHT)-CHT*CHT
  3800. C
  3801.       IF(AA) 20,10,20
  3802.    10 PP=CC/BB
  3803.       GO TO 30
  3804.    20 PP=(BB-DSQRT(BB*BB-4.D0*AA*CC))/AA/2.0
  3805.       GO TO 30
  3806. C
  3807.    25 AA=SBAR*SBAR
  3808.       BB=6.*AA+CM*CM/3.
  3809.       CC=AA+CM*DM-CHT
  3810.       AA=9.*AA
  3811.       PP=(BB-DSQRT(BB*BB-4.D0*AA*CC))/AA/2.0
  3812. C
  3813.    30 CC=CM/3.0
  3814.       R=1.5/SBAR
  3815.       IF(NING.NE.1) GO TO 40
  3816.       CC=CMT/3.0
  3817.       R=3.0D0
  3818. C
  3819.    40 TAU(1)=TAU(1)-PP*(CC+R*DX)
  3820.       TAU(2)=TAU(2)-PP*(CC+R*DY)
  3821.       TAU(3)=TAU(3)-PP*R*DS
  3822.       TAU(4)=TAU(4)-PP*(CC+R*DZ)
  3823. C
  3824.       DM=(TAU(1)+TAU(2)+TAU(4))/3.0
  3825. C
  3826.       RETURN
  3827.       END
  3828. C *CDC* *DECK PLACAP
  3829. C *UNI* )FOR,IS  N.PLACAP,R.PLACAP
  3830.       SUBROUTINE PLACAP (TAU,DM,SBAR,ETA,ELT)
  3831. C
  3832. C     THIS SUBROUTINE CORRECTS STRESS FOR PERFECTLY PLASTIC CASE
  3833. C          (FOR ELLIPSE-CAP YIELD SURFACE)
  3834. C
  3835.       IMPLICIT REAL*8 (A-H,O-Z)
  3836.       COMMON /BEIJIN/ A1,B1,C1,FM,CM,G,BK,SLMD,SKA,USKA,ISR,IST
  3837. C
  3838.       DIMENSION TAU(1)
  3839. C
  3840.       DX=TAU(1)-DM
  3841.       DY=TAU(2)-DM
  3842.       DS=TAU(3)
  3843.       DZ=TAU(4)-DM
  3844. C
  3845.       R=(SLMD-USKA)/DM
  3846.       E=R*(FM*FM-ETA*ETA)/(FM*FM+ETA*ETA)/3.0
  3847.       R=3.0*R/(FM*FM+ETA*ETA)/DM
  3848. C
  3849.       A=R*R*SBAR*SBAR+E*E*FM*FM
  3850.       B=R*SBAR*SBAR+FM*FM*E*(DM+ELT)
  3851.       P=SBAR*SBAR+FM*FM*DM*(DM+2.0*ELT)
  3852. C
  3853.       IF(A) 20,10,20
  3854.    10 P=B/2.0/P
  3855.       GO TO 30
  3856.    20 PP=B*B-A*P
  3857.       IF(PP.LE.0.0001) PP=0.D0
  3858.       P=(B-DSQRT(PP))/A
  3859.    30 IF(P.LT.1.0D-8) RETURN
  3860. C
  3861.       TAU(1)=TAU(1)-P*(E+R*DX)
  3862.       TAU(2)=TAU(2)-P*(E+R*DY)
  3863.       TAU(3)=TAU(3)-P*R*DS
  3864.       TAU(4)=TAU(4)-P*(E+R*DZ)
  3865. C
  3866.       DM=(TAU(1)+TAU(2)+TAU(4))/3.0
  3867.       DX=TAU(1)-DM
  3868.       DY=TAU(2)-DM
  3869.       DS=TAU(3)
  3870.       DZ=TAU(4)-DM
  3871. C
  3872.       SBAR=DSQRT(1.5D0*(DX*DX+DY*DY+DZ*DZ+2.0D0*DS*DS))
  3873. C
  3874.       ETA=-SBAR/DM
  3875. C
  3876.       RETURN
  3877.       END
  3878. C *CDC*  *DECK  OVLN39
  3879. C *CDC*         OVERLAY (ADINA,3,12)
  3880. C *CDC*  *DECK  EL2D15
  3881. C *UNI*  )FOR,IS N.EL2D15 , R.EL2D15
  3882. C *CDC*         PROGRAM EL2D15
  3883.       SUBROUTINE  EL2D15
  3884. C
  3885. C     MODEL = 15-16
  3886. C
  3887.       IMPLICIT REAL*8 (A-H,O-Z)
  3888.       RETURN
  3889.       END
  3890. C *CDC* *DECK OVL40
  3891. C *CDC*       OVERLAY (ADINA,4,0)
  3892. C *CDC* *DECK THREDM
  3893. C *UNI* )FOR,IS  N.THREDM, R.THREDM
  3894. C *CDC*       PROGRAM THREDM
  3895.       SUBROUTINE THREDM
  3896. C
  3897. C
  3898. C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
  3899. C .                                                                   .
  3900. C .   M A T E R I A L  M O D E L S                                    .
  3901. C .                                                                   .
  3902. C .   MODEL =  1   LINEAR ISOTROPIC                                   .
  3903. C .            2   LINEAR ORTHOTROPIC                                 .
  3904. C .            3   LINEAR THERMOELASTIC MODEL                         .
  3905. C .            4   NONLINEAR CURVE DESCRIPTION MODEL                  .
  3906. C .            5   CONCRETE STRUCTURE MODEL                           .
  3907. C .            7   ELASTIC-PLASTIC (DRUCKER-PRAGER WITH CAP)
  3908. C .            8   ELASTIC PLASTIC (VON MISES/ISOTROPIC HARDENING)    .
  3909. C .            9   ELASTIC PLASTIC (VON MISES/KINEMATIC HARDENING)    .
  3910. C .           10   ELASTIC PLASTIC, CREEP (ISOTROPIC HARDENING)       .
  3911. C .           11   ELASTIC PLASTIC, CREEP (KINEMATIC HARDENING)       .
  3912. C .                                                                   .
  3913. C .   S T O R A G E                                                   .
  3914. C .                                                                   .
  3915. C .         N101   LM ARRAY (ELEMENT CONNECTIVITY)                    .
  3916. C .         N102   XYZ ARRAY (ELEMENT COORDINATES)                    .
  3917. C .                                                                   .
  3918. C .         N103   IELTD                                              .
  3919. C .         N104   IELTX                                              .
  3920. C .         N105   IPST                                               .
  3921. C .         N106   ISO (SPATIAL ISOTROPY CORRECTION INDICATOR)        .
  3922. C .         N107   MATP                                               .
  3923. C .         N108   NOD9 (MIDSIDE NODES LOCATION ARRAY)                .
  3924. C .         N109   IREUSE                                             .
  3925. C .                                                                   .
  3926. C .         N110   DEN                                                .
  3927. C .         N111   PROP (MATERIAL CONSTANTS)                          .
  3928. C .         N112   WA (WORKING ARRAY)                                 .
  3929. C .         N113   ETIMV (ELEMENT EXPIRY TIME ARRAY, IF IDEATH EQ. 1) .
  3930. C .         N114   EDISB (ELEMENT BIRTH-TIME NODAL COORDINATES)       .
  3931. C .         N115   ITABLE (STRESS OUTPUT LOCATION TABLES)             .
  3932. C .         N116   DCA (DIRECTION COSINE ARRAY, IF MODEL EQ.2)        .
  3933. C .         N117   MAXESV (MATERIAL AXIS ORIENTATION STORAGE VECTOR)  .
  3934. C .         N119   PDIS (DISPLACEMENTS AT PREVIOUS STEP)              .
  3935. C .                                                                   .
  3936. C .         N120   S (ELEMENT STIFFNESS MATRIX)                       .
  3937. C .         N121   XM                                                 .
  3938. C .         N122   B (COMPACTED STRAIN-DISPLACEMENT MATRIX)           .
  3939. C .         N123   RE                                                 .
  3940. C .         N124   EDIS                                               .
  3941. C .                                                                   .
  3942. C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
  3943. C
  3944. C
  3945. C
  3946.       IMPLICIT REAL*8 (A-H,O-Z)
  3947. C
  3948.       COMMON /SOL/ NUMNP,NEQ,NWK,NWM,NWC,NUMEST,MIDEST,MAXEST,NSTE,MA
  3949.       COMMON /DIM/ N0,N1,N2,N3,N4,N5,N6,N7,N8,N9,N10,N11,N12,N13,N14,N15
  3950.       COMMON /DIMETC/ N01,N02,N03,N04,N05,N06,N07,N08,N09
  3951.       COMMON /FREQIF/ ISTOH,N1A,N1B,N1C
  3952.       COMMON /DIMEL/ N101,N102,N103,N104,N105,N106,N107,N108,N109,N110,
  3953.      1               N111,N112,N113,N114,N120,N121,N122,N123,N124,N125
  3954.       COMMON /EL/ IND,ICOUNT,NPAR(20),NUMEG,NEGL,NEGNL,IMASS,IDAMP,ISTAT
  3955.      1           ,NDOF,KLIN,IEIG,IMASSN,IDAMPN
  3956.       COMMON /THREED/ DE,IELD,IELX,IEL,NPT,IDW,NND9,ISOCOR
  3957.       COMMON /DPR/ ITWO
  3958.       COMMON /ELGLTH/ NFIRST,NLAST,NBCEL
  3959.       COMMON /JUNK/ IHED(18),MTOT,LPROG
  3960.       COMMON /VAR/ NG,MODEX,IUPDT,KSTEP,ITEMAX,IEQREF,ITE,KPRI,
  3961.      1             IREF,IEQUIT,IPRI,KPLOTN,KPLOTE
  3962.       COMMON /SKEW  / NSKEWS
  3963.       COMMON /ELSTP / TIME,IDTHF
  3964.       COMMON /PRCON/ IDATWR,IPRIC,NPB,IDC,IVC,IAC,IPC,IPNODE(3,15)
  3965.       COMMON /PORT/ INPORT,JNPORT,NPUTSV,LUNODE,LU1,LU2,LU3,JDC,JVC,JAC
  3966.       COMMON /TEMPRT/ TEMP1,TEMP2,ITEMPR,ITP96,N6A,N6B
  3967.       COMMON /PRSHAP/ KSHAPE
  3968.       COMMON /ULJ/ IULJ
  3969.       COMMON /ISUBST/ ISUBC,NSUBST,NSUB,NTUSE,NEGLS,NEGNLS,NUMNPS,
  3970.      1                NODCON,NODRET,IDOFS(6),NDOFS,NEQS,NWKS,MAXESC,
  3971.      2                MAS,NSTAPE,ILOA(13),KRSIZM,NEQC
  3972. C
  3973.       COMMON A(1)
  3974.       REAL A
  3975.       DIMENSION IA(1)
  3976.       EQUIVALENCE (A(1),IA(1))
  3977. C
  3978.       DIMENSION NMCON(20),IDWAS(20),NDWS(20),DATA(20)
  3979. C
  3980.       EQUIVALENCE (NPAR(2),NUME), (NPAR(3),INDNL), (NPAR(4),IDEATH),
  3981.      1            (NPAR(6),NEGSKS), (NPAR(7),MXNODS), (NPAR(10),NINT),
  3982.      2            (NPAR(11),NINTZ), (NPAR(13),NTABLE), (NPAR(15),MODEL),
  3983.      3            (NPAR(16),NUMMAT), (NPAR(17),NCON), (NPAR(18),NORTHO),
  3984.      2            (NPAR(19),ITHERM), (NPAR(1),NPAR1), (NPAR(8),IDEGEN)
  3985. C
  3986.       DATA RECLB1 /8HTYPE-3  /
  3987. C
  3988.       DATA NMCON / 2, 9,66,28,38, 0, 8, 4, 4,113,113, 9*0/,
  3989.      1     IDWAS / 0, 0, 0,22,22, 0,14,21,21, 47, 47, 9*0/,
  3990.      2     NDWS  / 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 9*0/
  3991. C
  3992. C
  3993. C
  3994.       IULJ=0
  3995.       IF (INDNL.EQ.3 .AND. MODEL.EQ.8) IULJ=1
  3996.       IF (IND.NE.0) GO TO 100
  3997.       IF (IDEGEN.GT.0) KSHAPE=1
  3998. C
  3999. C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
  4000. C .   I N P U T   P H A S E                                           .
  4001. C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
  4002. C
  4003. C     CHECK ON RANGE AND SET DEFAULTS FOR NPAR VECTOR
  4004. C
  4005.       ISTOP=0
  4006.       MODMAX=12
  4007. C
  4008.       IF (NUME.GT.0) GO TO 10
  4009.       ISTOP=ISTOP+1
  4010.       IF (ISTOP.EQ.1) WRITE (6,2100) NG
  4011.       ISUB=2
  4012.       IRANGE=1
  4013.       WRITE (6,2400) ISTOP,ISUB,IRANGE,ISUB,NPAR(ISUB)
  4014. C
  4015.    10 IF (INDNL.GE.0 .AND. INDNL.LE.3) GO TO 15
  4016.       ISTOP=ISTOP+1
  4017.       IF (ISTOP.EQ.1) WRITE (6,2100) NG
  4018.       ISUB=3
  4019.       WRITE (6,2200) ISTOP,ISUB,ISUB,NPAR(ISUB)
  4020.       INMIN=0
  4021.       INMAX=3
  4022.       WRITE (6,2250) ISUB,INMIN,INMAX
  4023. C
  4024.    15 IF (IDEATH.NE.0) IDTHF=1
  4025.       IF (IDEATH.GE.0 .AND. IDEATH.LE.2) GO TO 25
  4026.       ISTOP=ISTOP+1
  4027.       IF (ISTOP.EQ.1) WRITE (6,2100) NG
  4028.       ISUB=4
  4029.       WRITE (6,2200) ISTOP,ISUB,ISUB,NPAR(ISUB)
  4030.       INMIN=0
  4031.       INMAX=2
  4032.       WRITE (6,2250) ISUB,INMIN,INMAX
  4033. C
  4034.    25 IF (MXNODS.LE.0) MXNODS=21
  4035.       IF (MXNODS.LE.21) GO TO 28
  4036.       ISTOP=ISTOP+1
  4037.       IF (ISTOP.EQ.1) WRITE (6,2100) NG
  4038.       ISUB=7
  4039.       IRANGE=21
  4040.       WRITE (6,2300) ISTOP,ISUB,IRANGE,ISUB,NPAR(ISUB)
  4041. C
  4042.    28 IF (IDEGEN.GE.0 .AND. IDEGEN.LE.1) GO TO 30
  4043.       ISTOP=ISTOP+1
  4044.       IF (ISTOP.EQ.1) WRITE (6,2100) NG
  4045.       ISUB=8
  4046.       WRITE (6,2200) ISTOP,ISUB,ISUB,NPAR(ISUB)
  4047.       INMIN=0
  4048.       INMAX=1
  4049.       WRITE (6,2250) ISUB,INMIN,INMAX
  4050. C
  4051.    30 IF (NINT.LE.0) NINT=2
  4052.       IF (NINT.LE.4) GO TO 32
  4053.       ISTOP=ISTOP+1
  4054.       IF (ISTOP.EQ.1) WRITE (6,2100) NG
  4055.       ISUB=10
  4056.       IRANGE=4
  4057.       WRITE (6,2300) ISTOP,ISUB,IRANGE,ISUB,NPAR(ISUB)
  4058. C
  4059.    32 IF (NINTZ.LE.0) NINTZ=2
  4060.       IF (NINTZ.LE.4) GO TO 35
  4061.       ISTOP=ISTOP+1
  4062.       IF (ISTOP.EQ.1) WRITE (6,2100) NG
  4063.       ISUB=11
  4064.       IRANGE=4
  4065.       WRITE (6,2300) ISTOP,ISUB,IRANGE,ISUB,NPAR(ISUB)
  4066. C
  4067.    35 IF (MODEL.LE.0) MODEL=1
  4068.       IF (MODEL.LE.MODMAX) GO TO 40
  4069.       ISTOP=ISTOP+1
  4070.       IF (ISTOP.EQ.1) WRITE (6,2100) NG
  4071.       ISUB=15
  4072.       WRITE (6,2300) ISTOP,ISUB,MODMAX,ISUB,NPAR(ISUB)
  4073. C
  4074.    40 IF (NUMMAT.LE.0) NUMMAT=1
  4075. C
  4076.       IF(MODEL.EQ.6) GO TO 45
  4077.       IF (MODEL.EQ.MODMAX) GO TO 45
  4078. C
  4079.       IDW=IDWAS(MODEL)
  4080.       NPAR(20)=IDW
  4081.       NCONT=NMCON(MODEL)
  4082.       IF (MODEL.EQ.8 .OR. MODEL.EQ.9) GO TO 42
  4083.       NCON=NCONT
  4084.       GO TO 50
  4085. C
  4086.    42 IF (NCON.NE.0) GO TO 43
  4087.       NCON=NCONT
  4088.       GO TO 50
  4089.    43 IF (NCON.GE.6 .AND. NCON.LE.16) GO TO 50
  4090.       ISTOP=ISTOP + 1
  4091.       ISUB=17
  4092.       NCNMN=6
  4093.       NCNMX=16
  4094.       WRITE (6,2250) ISUB,NCNMX,NCNMN
  4095. C
  4096.       GO TO 50
  4097. C
  4098. C     EMPTY MODEL - STOP IMMEDIATELY
  4099. C
  4100.    45 ISTOP=ISTOP+1
  4101.       IF (ISTOP.EQ.1) WRITE (6,2100) NG
  4102.       WRITE (6,2450) MODEL
  4103.       WRITE (6,2700) ISTOP
  4104.       STOP
  4105. C
  4106.    50 IF (NORTHO.GE.0) GO TO 52
  4107.       ISTOP=ISTOP+1
  4108.       IF (ISTOP.EQ.1) WRITE (6,2100) NG
  4109.       ISUB=18
  4110.       IRANGE=0
  4111.       WRITE (6,2400) ISTOP,ISUB,IRANGE,ISUB,NPAR(ISUB)
  4112. C
  4113. C
  4114. C     CHECK ON COMPATIBILITY BETWEEN ELEMENTS OF NPAR
  4115. C
  4116. C        1. COMPATIBILITY OF INDNL AND IDEATH
  4117. C
  4118.    52 ISUB=3
  4119.       IF (INDNL.GT.0) GO TO 55
  4120.       IF (IDEATH.EQ.0) GO TO 54
  4121.       ISTOP=ISTOP+1
  4122.       IF (ISTOP.EQ.1) WRITE (6,2100) NG
  4123.       ISUD=4
  4124.       WRITE (6,2500) ISTOP,ISUB,NPAR(ISUB),ISUD,NPAR(ISUD)
  4125. C
  4126. C
  4127. C        2. COMPATIBILITY OF INDNL AND MODEL
  4128. C
  4129. C     INDNL = 0
  4130. C
  4131.    54 IF (MODEL.EQ.1) GO TO 60
  4132.       IF (MODEL.EQ.2) GO TO 60
  4133.       ISTOP=ISTOP+1
  4134.       IF (ISTOP.EQ.1) WRITE (6,2100) NG
  4135.       ISUD=15
  4136.       WRITE (6,2500) ISTOP,ISUB,NPAR(ISUB),ISUD,NPAR(ISUD)
  4137.       GO TO 60
  4138. C
  4139. C     INDNL = 1  AND  INDNL = 2  ALLOW ALL MODELS
  4140. C
  4141.    55 IF (INDNL.EQ.1 .OR. INDNL.EQ.2) GO TO 60
  4142. C
  4143. C     INDNL = 3 ALLOWS MODEL = 1 OR MODEL = 8 ONLY
  4144. C
  4145.       IF (MODEL.EQ.1 .OR. MODEL.EQ.8) GO TO 56
  4146.       ISTOP=ISTOP+1
  4147.       IF (ISTOP.EQ.1) WRITE (6,2100) NG
  4148.       ISUD=15
  4149.       WRITE (6,2500) ISTOP,ISUB,NPAR(ISUB),ISUD,NPAR(ISUD)
  4150.    56 IF (MODEL.EQ.8) IULJ=1
  4151. C
  4152. C        3. COMPATIBILITY OF NEGSKS AND NSKEWS
  4153. C
  4154.    60 IF (NEGSKS.EQ.0) GO TO 65
  4155.       IF (NSKEWS.GT.0) GO TO 65
  4156.       ISUB=6
  4157.       ISTOP=ISTOP+1
  4158.       IF (ISTOP.EQ.1) WRITE (6,2100) NG
  4159.       WRITE (6,2550) ISTOP,NSKEWS,ISUB,NPAR(ISUB)
  4160. C
  4161. C
  4162. C     CHECK FOR TEMPERATURE TAPE
  4163. C
  4164.    65 IF (MODEL.EQ.5) GO TO 66
  4165. C
  4166.       ITHER=0
  4167.       IF (MODEL.EQ. 3) ITHER=1
  4168.       IF (MODEL.EQ.10) ITHER=2
  4169.       IF (MODEL.EQ.11) ITHER=2
  4170.       ITHERM=ITHER
  4171.       GO TO 70
  4172. C
  4173. C     FOR CONCRETE MODEL, IITEMP MUST BE INPUT
  4174. C
  4175.    66 IF (ITHERM.EQ.0 .OR. ITHERM.EQ.2) GO TO 70
  4176.       ISTOP=ISTOP+1
  4177.       IF (ISTOP.EQ.1) WRITE (6,2100) NG
  4178.       ISUB=15
  4179.       ISUD=19
  4180.       WRITE (6,2500) ISTOP,ISUB,NPAR(ISUB),ISUD,NPAR(ISUD)
  4181.       WRITE (6,2580)
  4182. C
  4183.    70 ITEMPR=ITHERM
  4184.       IF (ITEMPR.EQ.0) GO TO 72
  4185.       IF (ITP96.GT.0) GO TO 72
  4186.       ISTOP=ISTOP+1
  4187.       IF (ISTOP.EQ.1) WRITE (6,2100) NG
  4188.       WRITE (6,2600) ISTOP,ITP96,NPAR(15),NPAR(19)
  4189. C
  4190. C
  4191.    72 IF (ISTOP.EQ.0) GO TO 75
  4192.       WRITE (6,2700) ISTOP
  4193.       INPUT=5
  4194.       BACKSPACE INPUT
  4195.       READ (5,1000) DATA
  4196.       WRITE (6,2800) (I,I=1,8),DATA
  4197.       GO TO 80
  4198. C
  4199.    75 IF (IDATWR.GT.1) GO TO 90
  4200. C
  4201. C     PRINT OUT NPAR VECTOR
  4202. C
  4203.    80 WRITE (6,2900) NPAR1
  4204.       WRITE (6,2905) NUME,INDNL,IDEATH
  4205.       WRITE (6,2920) NEGSKS,MXNODS
  4206.       WRITE (6,2930) IDEGEN,NINT,NINTZ,NTABLE
  4207.       WRITE (6,2940) MODEL
  4208.       WRITE (6,2960) NUMMAT,NCON,NORTHO,IDW
  4209. C
  4210.    90 IF (ISTOP.EQ.0) GO TO 95
  4211.       IF (MODEX.EQ.0) GO TO 95
  4212.       WRITE (6,2750)
  4213.       STOP
  4214. C
  4215. C
  4216. C***  DATA PORTHOLE  *************************** (START)
  4217. C
  4218.    95 IF (JNPORT.EQ.0 .OR. NPUTSV.EQ.0) GO TO 100
  4219.       RECLAB=RECLB1
  4220.       WRITE (LU3) RECLAB,NG,(NPAR(I),I=1,20),NSUB
  4221. C
  4222. C***  DATA PORTHOLE  *************************** ( END )
  4223. C
  4224. C
  4225. C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
  4226. C .   E N D   O F   C H E C K   O N   N P A R   V E C T O R           .
  4227. C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
  4228. C
  4229. C
  4230.   100 NDM=3*MXNODS
  4231.       NDM2=(NDM*NDM)/2 + NDM/2 + 1
  4232.       ND9DIM=MXNODS - 8
  4233.       IDW=NPAR(20)
  4234.       NDW=NDWS(MODEL)
  4235.       IDWA=IDW*(NINT*NINT*NINTZ)
  4236. C
  4237. C     STORAGE ALLOCATION
  4238. C
  4239.       NFIRST=N6
  4240.       IF (IND.EQ.4) NFIRST=N10
  4241.       N101=NFIRST + 20
  4242.       N102=N101 + NDM*NUME
  4243.       N103=N102 + NDM*NUME*ITWO
  4244. C
  4245.       N104=N103 + NUME
  4246.       N105=N104 + NUME
  4247.       N106=N105 + NUME
  4248.       N107=N106 + NUME*IDEGEN
  4249.       N108=N107 + NUME
  4250.       N109=N108 + ND9DIM*NUME
  4251.       N110=N109 + NUME
  4252. C
  4253.       N111=N110 + NUMMAT*ITWO
  4254.       N112=N111 + NCON*NUMMAT*ITWO
  4255.       N113=N112 + IDWA*NUME*ITWO
  4256.       IF (NPAR(19).GT.0) N113=N113 + NDW*MXNODS*NUME
  4257.       MM=0
  4258.       IF (IDEATH.GT.0) MM=1
  4259.       N114=N113 + MM*NUME*ITWO
  4260.       MM=0
  4261.       IF (IDEATH.EQ.1) MM=1
  4262.       N115=N114 + MM*NUME*NDM*ITWO
  4263.       N116=N115 + 16*NTABLE
  4264.       N117=N116 + 9*NORTHO*ITWO
  4265.       N118=N117 + NUME
  4266.       IF (NORTHO.EQ.0) N118=N117
  4267.       N119=N118
  4268.       IF (NEGSKS.GT.0) N119=N118 + NUME*MXNODS
  4269.       NLAST=N119
  4270.       IF (IULJ.GT.0) NLAST=N119 + NUME*NDM*ITWO
  4271. C
  4272.       N120=NLAST + 1
  4273.       N121=N120 + NDM2*ITWO
  4274.       N122=N121 + NDM*ITWO
  4275.       N123=N122 + NDM*ITWO
  4276.       N124=N123 + NDM*ITWO
  4277.       N125=N124 + NDM*ITWO
  4278.       N126=N125 + NDM*ITWO - 1
  4279. C
  4280.       NI=N126 - NLAST
  4281.       IF (NBCEL.LT.NI) NBCEL=NI
  4282. C
  4283.       IF (IND.NE.0) GO TO 105
  4284. C
  4285.       J=NFIRST-1
  4286.       DO 102 I=1,20
  4287.       J=J+1
  4288.   102 IA(J)=NPAR(I)
  4289. C
  4290.       MIDEST=(NLAST-NFIRST) + 1
  4291.       IF (IDATWR.LE.1) WRITE (6,2000) NG,MIDEST
  4292.       CALL SIZE (N126)
  4293. C
  4294.   105 IF (IND.GT.3) GO TO 110
  4295.       M2=N2
  4296.       M3=N3
  4297.       M4=N4
  4298.       GO TO 120
  4299.   110 M2=N2
  4300.       M3=N5
  4301.       M4=N8
  4302.       IF (ICOUNT.LT.3) GO TO 120
  4303.       M2=N6
  4304.       M3=N3
  4305. C
  4306.   120 CALL THDFE  (A(N06),A(N1A),
  4307.      1            A(N1),A(M2),A(M3),A(M4),A(N5),A(N101),A(N102),
  4308.      +            A(N103),A(N104),A(N105),A(N106),A(N107),A(N108),
  4309.      2            A(N109),A(N110),A(N111),A(N112),A(N120),A(N121),
  4310.      3            A(N122),A(N123),A(N124),A(N113),A(N114),A(N115),
  4311.      4            A(N116),A(N117),A(N118),A(N119),
  4312.      5            NTABLE,NCON,IDWA,NDM,NDM2,NDOF,ND9DIM,MXNODS)
  4313. C
  4314. C
  4315.       RETURN
  4316. C
  4317. C
  4318.  1000 FORMAT (20A4)
  4319. C
  4320.  2000 FORMAT (///38H S T O R A G E   I N F O R M A T I O N/
  4321.      1        //49H LENGTH OF ARRAY NEEDED FOR STORING ELEMENT GROUP/
  4322.      3        12H DATA (GROUP,I3,26H). . . . . . . . . . . . .,
  4323.      4       15H( MIDEST ). . =,I5//)
  4324. C
  4325.  2100 FORMAT (////28H *** I N P U T   E R R O R -//
  4326.      1 56H ERROR IN ELEMENT GROUP CONTROL CARDS  (3-DIM ELEMENT)  /
  4327.      2        16H ELEMENT GROUP =, I5/)
  4328.  2200 FORMAT (I5,7H. NPAR(,I2,27H) IS OUT OF RANGE ... NPAR(,I2,
  4329.      1        3H) =,I5)
  4330.  2250 FORMAT (6X,8H ( NPAR(,I2,15H) SHOULD BE LE.,I2,8H AND GE.,I2,2H ))
  4331.  2300 FORMAT (I5,7H. NPAR(,I2,16H) SHOULD BE .LE., I2,10H ... NPAR(,I2,
  4332.      1        3H) =,I5)
  4333.  2400 FORMAT (I5,7H. NPAR(,I2,16H) SHOULD BE .GE., I2,10H ... NPAR(,I2,
  4334.      1        3H) =,I5)
  4335.  2450 FORMAT (I5,48H. REQUESTED MATERIAL MODEL IS NOT AVAILABLE ... ,
  4336.      1        11H NPAR(15) =,I2)
  4337.  2500 FORMAT (I5,7H. NPAR(,I2,3H) =,I2,10H AND NPAR(,I2,3H) =,I2,
  4338.      1        19H ARE NOT COMPATIBLE )
  4339.  2550 FORMAT (I5,10H. NSKEWS =,I2,10H AND NPAR(,I2,3H) =,I2,
  4340.      1        19H ARE NOT COMPATIBLE )
  4341.  2580 FORMAT (5X,48H  FOR THE CONCRETE MODEL, NPAR(19) MUST BE EQ.0,,
  4342.      1        10H OR EQ.2 .)
  4343.  2600 FORMAT (I5,9H. ITP96 =,I2/
  4344.      1        5X,47H  FOR THE MATERIAL MODEL REQUESTED BY NPAR(15)=,I2/
  4345.      2        5X,15H  AND NPAR(19)=,I2,24H, TEMPERATURES SHOULD BE,
  4346.      3        36H PROVIDED (I.E. ITP96 MUST BE GT.0).)
  4347.  2700 FORMAT (//25H TOTAL NUMBER OF ERRORS =,I5//
  4348.      1        48H CARD IMAGE LISTING AND PRINT-OUT OF NPAR VECTOR/
  4349.      2        48H (WITH DEFAULTS ENFORCED) ARE GIVEN BELOW ------)
  4350.  2800 FORMAT (///34H CARD IMAGE LISTING OF NPAR VECTOR //29X,8(I1,9X)/
  4351.      1        15H COLUMN NUMBERS,5X,8(10H1234567890)/
  4352.      2        15H NPAR VECTOR   ,5X,20A4 // )
  4353.  2750 FORMAT (//// 23H STOP  (ERRORS IN NPAR)  )
  4354. C
  4355.  2900 FORMAT (36H E L E M E N T   D E F I N I T I O N ///,
  4356.      1        14H ELEMENT TYPE ,13(2H .),16H( NPAR(1) ). . =,I5/,
  4357.      2        25H     EQ.1, TRUSS ELEMENTS/,
  4358.      3        25H     EQ.2, 2-DIM ELEMENTS/,
  4359.      4        25H     EQ.3, 3-DIM ELEMENTS/,
  4360.      5        25H     EQ.4, BEAM  ELEMENTS/,
  4361.      5        28H     EQ.5, ISO/BEAM ELEMENTS/,
  4362.      6        28H     EQ.6, PLATE ELEMENTS   /,
  4363.      C        25H     EQ.7, SHELL ELEMENTS/,
  4364.      D        25H     EQ.8,9,10, EMPTY    /,
  4365.      G        32H     EQ.11, 2-DIM FLUID ELEMENTS/,
  4366.      5        32H     EQ.12, 3-DIM FLUID ELEMENTS   /)
  4367.  2905 FORMAT (20H NUMBER OF ELEMENTS.,10(2H .),16H( NPAR(2) ). . =,I5//,
  4368.      5        40H TYPE OF NONLINEAR ANALYSIS  . . . . . .      ,
  4369.      6        16H( NPAR(3) ). . =,I5/,
  4370.      +        40H     EQ.0, LINEAR                          /,
  4371.      7        40H     EQ.1, MATERIAL NONLINEARITY ONLY      /,
  4372.      8        40H     EQ.2, TOTAL LAGRANGIAN FORMULATION    /,
  4373.      9        44H     EQ.3, UPDATED LAGRANGIAN FORMULATION           //
  4374.      +        32H ELEMENT BIRTH AND DEATH OPTIONS ,4(2H .),
  4375.      +        16H( NPAR(4) ). . =,I5/,
  4376.      +        28H     EQ.0, OPTION NOT ACTIVE/,
  4377.      +        30H     EQ.1, BIRTH OPTION ACTIVE /,
  4378.      A        30H     EQ.2, DEATH OPTION ACTIVE )
  4379.  2920 FORMAT(/23H SKEW COORDINATE SYSTEM/
  4380.      B        40H     REFERENCE INDICATOR . . . . . . . .,
  4381.      C        16H( NPAR(6) ). . =,I5/
  4382.      D        28H     EQ.0, ALL ELEMENT NODES/
  4383.      E        37H           USE THE GLOBAL SYSTEM ONLY/
  4384.      F        35H     EQ.1, ELEMENT NODES REFER     /
  4385.      G        36H           TO SKEW COORDINATE SYSTEM//
  4386.      A        32H MAX NUMBER OF NODES DESCRIBING  /,
  4387.      1        20H     ANY ONE ELEMENT,10(2H .),16H( NPAR(7) ). . =,I5//)
  4388.  2930 FORMAT (24H DEGENERATION INDICATOR ,8(2H .),
  4389.      A        16H( NPAR(8) ). . =,I5/,
  4390.      B        44H     EQ.0, NO DEGENERATION OR NO CORRECTION         /,
  4391.      C        44H           FOR SPATIAL ISOTROPY                     /,
  4392.      D        44H     EQ.1, SPATIAL ISOTROPY CORRECTIONS             /,
  4393.      E        44H           APPLIED TO SPECIALLY                     /,
  4394.      F        44H           DEGENERATED 20-NODE ELEMENTS             //,
  4395.      1        40H INTEGRATION ORDER (R-S DIRECTION) FOR  /,
  4396.      2        40H     ELEMENT STIFFNESS GENERATION. . . .,
  4397.      3        16H( NPAR(10)). . =,I5//,
  4398.      4        40H INTEGRATION ORDER (T DIRECTION) FOR    /,
  4399.      5        40H     ELEMENT STIFFNESS GENERATION. . . .,
  4400.      6        16H( NPAR(11)). . =,I5//,
  4401.      7        40H NUMBER OF STRESS OUTPUT TABLES  . . . .,
  4402.      8        16H( NPAR(13)). . =,I5/
  4403.      9        38H     EQ.0, PRINT AT INTEGRATION POINTS            ///)
  4404.  2940 FORMAT (38H M A T E R I A L   D E F I N I T I O N///,
  4405.      1        16H MATERIAL MODEL.,12(2H .),16H( NPAR(15)). . =,I5/,
  4406.      2        36H     EQ. 1, LINEAR ELASTIC ISOTROPIC/
  4407.      3        38H     EQ. 2, LINEAR ELASTIC ORTHOTROPIC/
  4408.      4        31H     EQ. 3, THERMOELASTIC MODEL/
  4409.      4        45H     EQ. 4, NONLINEAR CURVE DESCRIPTION MODEL/
  4410.      5        35H     EQ. 5, CONCRETE CRACKING MODEL/
  4411.      6        19H     EQ. 6, (EMPTY)/
  4412.      7        50H     EQ. 7, DRUCKER PRAGER (CAP) MODEL               /,
  4413.      8        52H     EQ. 8, ELASTIC-PLASTIC WITH ISOTROPIC HARDENING/
  4414.      9        52H     EQ. 9, ELASTIC-PLASTIC WITH KINEMATIC HARDENING/
  4415.      A        51H     EQ.10, ELASTIC-PLASTIC WITH CREEP (ISOTROPIC) /,
  4416.      B        51H     EQ.11, ELASTIC-PLASTIC WITH CREEP (KINEMATIC) /,
  4417.      C        35H     EQ.12, (EMPTY)                        /)
  4418.  2960 FORMAT (37H NUMBER OF DIFFERENT SETS OF MATERIAL /,
  4419.      6        14H     CONSTANTS,13(2H .),16H( NPAR(16)). . =,I5//,
  4420.      7        40H NUMBER OF MATERIAL CONSTANTS PER SET. .,
  4421.      8        16H( NPAR(17)). . =,I5//,
  4422.      +        32H NUMBER OF AXIS ORIENTATION SETS  ,4(2H .),
  4423.      +        16H( NPAR(18)). . = ,I5//,
  4424.      9        32H DIMENSION OF STORAGE ARRAY (WA)/,
  4425.      1        26H     PER INTEGRATION POINT,7(2H .),16H( NPAR(20)). . =,
  4426.      2        I5//)
  4427. C
  4428.       END
  4429. C *CDC* *DECK THDFE
  4430. C *UNI* )FOR,IS  N.THDFE,  R.THDFE
  4431.       SUBROUTINE THDFE (RSDCOS,NODSYS,ID,X,Y,Z,HT,LM,XYZ,IELTD,IELTX,
  4432.      1                  IPST,ISO,MATP,NOD9,IREUSE,DEN,PROP,WA,S,XM,B,RE,
  4433.      2                  EDIS,ETIMV,EDISB,ITABLE,DCA,MAXESV,ISKEW,PDIS,
  4434.      3                  NTABLE,NCON,IDWA,NDM,NDM2,NDOF,ND9DIM,MXNODS)
  4435. C
  4436. C
  4437. C
  4438.       IMPLICIT REAL*8 (A-H,O-Z)
  4439.       COMMON /EL/ IND,ICOUNT,NPAR(20),NUMEG,NEGL,NEGNL,IMASS,IDAMP,ISTAT
  4440.      1            ,NDOFDM,KLIN,IEIG,IMASSN,IDAMPN
  4441.       COMMON /SOL/ NUMNP,NEQ,NWK,NWM,NWC,NUMEST,MIDEST,MAXEST,NSTE,MA
  4442.       COMMON /DIM/ N0,N1,N2,N3,N4,N5,N6,N7,N8,N9,N10,N11,N12,N13,N14,N15
  4443.       COMMON /CONST/ DT,DTA,A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11
  4444.      1              ,A12,A13,A14,A15,A16,A17,A18,A19,A20,DTOD,IOPE
  4445.       COMMON/ELSTP/TIME,IDTHF
  4446.       COMMON /VAR/ NG,MODEX,IUPDT,KSTEP,ITEMAX,IEQREF,ITE,KPRI,
  4447.      1             IREF,IEQUIT,IPRI,KPLOTN,KPLOTE
  4448.       COMMON /PRCON/ IDATWR,IPRIC,NPB,IDC,IVC,IAC,IPC,IPNODE(3,15)
  4449.       COMMON /PORT/ INPORT,JNPORT,NPUTSV,LUNODE,LU1,LU2,LU3,JDC,JVC,JAC
  4450.       COMMON /THREED/ DE,IELD,IELX,IEL,NPT,IDW,NND9,ISOCOR
  4451.       COMMON /MTMD3D/ D(6,6),STRESS(6),STRAIN(6),IPT,N,IPS
  4452.       COMMON /DISDR/ DISD(9)
  4453.       COMMON /GAUSS/ XG(4,4),WGT(4,4),EVAL2(9,2),EVAL3(27,3),E1,E2,E3
  4454.       COMMON /EM3D/ NOD(21),NODM(21),NOD9M(13)
  4455.       COMMON /MDFRDM/ IDOF(6)
  4456.       COMMON /RANDI/ N0A,N1D,IELCPL
  4457.       COMMON /ADDB/ NEQL,NEQR,MLA,NBLOCK
  4458.       COMMON /SKEW  / NSKEWS
  4459.       COMMON /ULJ/ IULJ
  4460.       COMMON /ISUBST/ ISUBC,NSUBST,NSUB,NTUSE,NEGLS,NEGNLS,NUMNPS,
  4461.      1                NODCON,NODRET,IDOFS(6),NDOFS,NEQS,NWKS,MAXESC,
  4462.      2                MAS,NSTAPE,ILOA(13),KRSIZM,NEQC
  4463. C
  4464.       COMMON A(1)
  4465.       REAL A
  4466. C
  4467.       DIMENSION ID(NDOF,1),X(1),Y(1),Z(1),HT(1),LM(NDM,1),XYZ(NDM,1),
  4468.      1          IELTD(1),IELTX(1),IPST(1),ISO(1),MATP(1),DEN(1),
  4469.      2          PROP(NCON,1),WA(IDWA,1),S(1),XM(1),B(1),RE(1),
  4470.      3          EDIS(1),ETIMV(1),DCA(3,3,1),MAXESV(1),PDIS(NDM,1),
  4471.      4          NOD9(ND9DIM,1),IREUSE(1),ITABLE(NTABLE,1),EDISB(NDM,1)
  4472.       DIMENSION RSDCOS(9,1),NODSYS(1),ISKEW(MXNODS,1)
  4473. C
  4474.       DIMENSION XXX(63),V2(3),IPTABL(8),H(21),P(3,21),XJ(3,3),
  4475.      1          XYZINT(3,64),EDISI(63)
  4476.       INTEGER ANODE
  4477.       EQUIVALENCE (NPAR(2),NUME),(NPAR(16),NUMMAT),(NPAR(15),MODEL)
  4478.      1           ,(NPAR(10),NINT),(NPAR(11),NINTZ),(NPAR(6),NEGSKS)
  4479.      2           ,(NPAR(3),INDNL),(NPAR(4),IDEATH),(NPAR(18),NORTHO)
  4480.      3           ,(NPAR(8),IDEGEN)
  4481. C
  4482.       DATA ANODE /4HNODE/, RECLB1/8HTYPE-3  /, RECLB2/8HMATERAL3/,
  4483.      1     RECLB3/8HOUTABLE3/, RECLB4/8HELEMENT3/,
  4484.      2     RECLB5/8HNEWSTEP3/, RECLB6/8HOUTPUT-3/, RECLB7/8HIPOINT-3/
  4485. C
  4486. C
  4487. C
  4488. C     .. NOTE .. DURING TIME INTEGRATION X=DISPLACEMENT
  4489. C                                        Y=DISPLACEMENT INCREMENTS
  4490. C                                        Z=ACCELERATION
  4491. C
  4492. C
  4493.       IELCPL=0
  4494.       IF (JNPORT.EQ.0) GO TO 3
  4495.       IPTABL(1)=1
  4496.       IPTABL(2)=NINTZ
  4497.       IPTABL(3)=NINTZ*(NINT-1) + 1
  4498.       IPTABL(4)=NINT*NINTZ
  4499.       IPTABL(5)=NINT*NINTZ*(NINT-1) + 1
  4500.       IPTABL(6)=IPTABL(5) + NINTZ - 1
  4501.       IPTABL(7)=IPTABL(5) + NINTZ*(NINT-1)
  4502.       IPTABL(8)=IPTABL(7) + NINTZ - 1
  4503. C
  4504.     3 IF (KPRI.EQ.0) GO TO 800
  4505.       IF (IND.GT.0) GO TO 420
  4506. C
  4507.       ISCONT=0
  4508.       IF (NSKEWS.GT.0 .AND. NEGSKS.EQ.0) ISCONT=1
  4509.       IJPORT=1
  4510.       IF (JNPORT.EQ.0 .OR. NPUTSV.EQ.0) IJPORT=0
  4511. C
  4512. C
  4513. C
  4514. C     R E A D   A N D   G E N E R A T E   E L E M E N T
  4515. C     I N F O R M A T I O N
  4516. C
  4517. C
  4518.       NPT=NINT*NINT*NINTZ
  4519.       IDW=IDWA/NPT
  4520.       IEPMOD=0
  4521.       NEPCON=0
  4522.       IF (MODEL.NE.8 .AND. MODEL.NE.9) GO TO 5
  4523.       IEPMOD=1
  4524.       NEPCON=(NCON-1)/4
  4525.     5 DO 10 I=1,NUMMAT
  4526.       READ(5,1000) N,DEN(N)
  4527.       READ(5,1001) (PROP(J,N), J=1,NCON)
  4528.       IF (IEPMOD.EQ.1 .AND. NEPCON.EQ.1) READ (5,1001)
  4529.    10 CALL MATWRT (N,DEN(N),PROP(1,N))
  4530. C
  4531. C     MATERIAL AXIS ORIENTATION SETS FOR MODEL 2
  4532. C
  4533.       IF (NORTHO.EQ.0) GO TO 20
  4534. C
  4535.       IF (IDATWR.LE.1) WRITE (6,2055)
  4536.       DO 15 M=1,NORTHO
  4537.       READ (5,1004) N,NI,NJ,NK
  4538.       IF (IDATWR.LE.1) WRITE (6,2057) N,NI,NJ,NK
  4539. C
  4540. C     GENERATE DIRECTION COSINE ARRAY FOR THIS DATA SET
  4541. C
  4542.       CALL VECTR2 (DCA(1,1,M),X(NI),Y(NI),Z(NI),X(NJ),Y(NJ),Z(NJ),IERR)
  4543.       IF (IERR.EQ.0) GO TO 12
  4544.       WRITE (6,3000)
  4545.       STOP
  4546.    12 CALL VECTR2 (V2,X(NI),Y(NI),Z(NI),X(NK),Y(NK),Z(NK),IERR)
  4547.       IF (IERR.EQ.0) GO TO 13
  4548.       WRITE (6,3010)
  4549.       STOP
  4550.    13 CALL CROSS2 (DCA(1,1,M),V2,DCA(1,3,M),IERR)
  4551.       IF (IERR.EQ.0) GO TO 14
  4552.       WRITE (6,3020)
  4553.       STOP
  4554.    14 CALL CROSS2 (DCA(1,3,M),DCA(1,1,M),DCA(1,2,M),IERR)
  4555.       IF (IERR.EQ.0) GO TO 15
  4556.       WRITE (6,3030)
  4557.       STOP
  4558.    15 CONTINUE
  4559. C
  4560. C     READ TABLES FOR ELEMENT STRESS OUTPUT LOCATIONS
  4561. C
  4562.    20 IF (NTABLE.EQ.0) GO TO 90
  4563.       IF (IDATWR.LE.1) WRITE (6,2070)
  4564.       DO 25 L=1,NTABLE
  4565.       READ(5,1007) (ITABLE(L,I),I=1,16)
  4566.    25 IF (IDATWR.LE.1) WRITE (6,2060) L,(ITABLE(L,I),I=1,16)
  4567. C
  4568. C     READ ELEMENT INFORMATION
  4569. C
  4570.   90  IELN=8
  4571.       IF (MXNODS.GT.8) IELN=21
  4572.       IF (IDATWR.GT.1) GO TO 95
  4573.       WRITE (6,2005) (ANODE,I,I=1,IELN)
  4574.       WRITE (6,2006)
  4575.    95 CONTINUE
  4576.       N=1
  4577.       IREAD=5
  4578.       IF (INPORT.GT.0) IREAD=59
  4579. C
  4580. C***  DATA PORTHOLE (START)
  4581. C
  4582.       IF (IJPORT.EQ.0) GO TO 100
  4583.       RECLAB=RECLB2
  4584.       WRITE (LU3)  RECLAB,NUMMAT,NCON,(DEN(I),I=1,NUMMAT),
  4585.      1             ((PROP(I,J),I=1,NCON),J=1,NUMMAT)
  4586.       RECLAB=RECLB3
  4587.       IF(NTABLE.EQ.0)
  4588.      1 WRITE (LU3)  RECLAB,NTABLE
  4589.       IF(NTABLE.GT.0)
  4590.      1 WRITE (LU3) RECLAB,NTABLE,((ITABLE(I,J),I=1,NTABLE),J=1,16)
  4591. C
  4592. C***  DATA PORTHOLE (END)
  4593. C
  4594.   100 READ (IREAD,1004) M,IELD,IELX,IPS,MTYP,MAXES,IST,KG,ETIME,INTLOC
  4595.       IF (N.EQ.1 .AND. M.NE.1) GO TO 101
  4596.       IF (IDEATH.EQ.2 .AND. ETIME.EQ.0.) ETIME=100000.
  4597.       IF (IELD.EQ.0) IELD=MXNODS
  4598.       IF (IELX.EQ.0) IELX=IELD
  4599.       IEL=IELD
  4600.       IF (IELX.GT.IELD) IELX=IELD
  4601.       READ(IREAD,1005) (NOD(I),I=1,8)
  4602.       READ(IREAD,1005) (NOD(I),I=9,21)
  4603.       IF (NDM.GE.IEL*3) GO TO 105
  4604.       WRITE(6,2010) M
  4605.       STOP
  4606.   101 WRITE (6,2015) NSUB,NG
  4607.       STOP
  4608.   105 IF (KG.EQ.0) KG=1
  4609. C
  4610.   120 IF (M.NE.N) GO TO 200
  4611.   121 DO 110 I=1,IELN
  4612.   110 NODM(I)=NOD(I)
  4613.       IF (IEL.EQ.8) GO TO 115
  4614.       II=0
  4615.       DO 114 I=9,21
  4616.       NN=NOD(I)
  4617.       IF (NN.EQ.0) GO TO 114
  4618.       II=II + 1
  4619.       NOD9M(II)=I
  4620.   114 CONTINUE
  4621.       NN=II + 8
  4622.       IF (NN.EQ.IEL) GO TO 115
  4623.       WRITE(6,2090) N
  4624.       STOP
  4625.   115 IELM=IEL
  4626.       IELDM=IELD
  4627.       IELXM=IELX
  4628.       IPSM=IPS
  4629.       MTYPE=MTYP
  4630.       KAXES=MAXES
  4631.       ISTM=IST
  4632.       KKK=KG
  4633.       ETIM=ETIME
  4634.       INTLM=INTLOC
  4635. C
  4636. C     SAVE ELEMENT INFORMATION
  4637. C
  4638.   200 I2=0
  4639.       DO 130 I=1,IELM
  4640.       II=NODM(I)
  4641.       IF (I.LE.8) GO TO 131
  4642.       JJ=NOD9M(I-8)
  4643.       II=NODM(JJ)
  4644.   131 I2=I2 + 3
  4645.       XYZ(I2-2,N)=X(II)
  4646.       XYZ(I2-1,N)=Y(II)
  4647.       XYZ(I2,N)=Z(II)
  4648.       IF (ISCONT.EQ.0) GO TO 129
  4649.       IF (NODSYS(II).EQ.0) GO TO 130
  4650.       WRITE (6,2410) NG,N,NEGSKS
  4651.       STOP
  4652.   129 IF (NEGSKS.GT.0) ISKEW(I,N)=NODSYS(II)
  4653.   130 CONTINUE
  4654. C
  4655.       IF (IULJ.EQ.0) GO TO 128
  4656.       DO 127 I=1,NDM
  4657.   127 PDIS(I,N)=0.
  4658.   128 CONTINUE
  4659. C
  4660.       IF (NEGSKS.EQ.0) GO TO 134
  4661.       DO 133 I=1,IELM
  4662.       IF (ISKEW(I,N).NE.0) GO TO 134
  4663.   133 CONTINUE
  4664.       ISKEW(1,N)=-1
  4665. C
  4666.   134 IF (IDEGEN.LE.0) GO TO 136
  4667.       ISOCOR=1
  4668.       IF (IELM.NE.20 .OR. NODM(17).NE.NODM(20)) GO TO 138
  4669.       IF (NODM(1).NE.NODM(4) .OR. NODM(1).NE.NODM(12)) GO TO 138
  4670.       IF (NODM(5).NE.NODM(8) .OR. NODM(5).NE.NODM(16)) GO TO 138
  4671.       IF (NODM(1).EQ.NODM(5) .OR. NODM(2).EQ.NODM(6) .OR.
  4672.      1    NODM(3).EQ.NODM(7)) GO TO 138
  4673.       IF (NODM(5).EQ.NODM(6) .OR. NODM(6).EQ.NODM(7) .OR.
  4674.      1    NODM(5).EQ.NODM(7)) GO TO 138
  4675.       ICOLPS=0
  4676.       IF (NODM(3).EQ.NODM(2) .AND. NODM(10).EQ.NODM(2)) ICOLPS=ICOLPS+1
  4677.       IF (NODM(2).EQ.NODM(1) .AND. NODM(9).EQ.NODM(1))  ICOLPS=ICOLPS+1
  4678.       IF (NODM(3).EQ.NODM(1) .AND. NODM(11).EQ.NODM(1)) ICOLPS=ICOLPS+1
  4679.       IF (ICOLPS.EQ.0) ISOCOR=2
  4680.       IF (ICOLPS.EQ.3) ISOCOR=3
  4681.       IF (ISOCOR.GT.1 .AND. IELXM.NE.IELDM) IELXM=8
  4682.   138 ISO(N)=ISOCOR
  4683.   136 MATP(N)=MTYPE
  4684.       IF (NORTHO.EQ.0) GO TO 145
  4685.       MAXESV(N)=KAXES
  4686.   145 IELTD(N)=IELDM
  4687.       IELTX(N)=IELXM
  4688.       IPST(N)=IPSM
  4689.       IREUSE(N)=ISTM
  4690.       IF (IELM.EQ.8) GO TO 135
  4691.       NN=IELM - 8
  4692.       DO 132 I=1,NN
  4693.   132 NOD9(I,N)=NOD9M(I)
  4694.   135 KK=-3
  4695.       DO 140 I=1,IELM
  4696.       II=NODM(I)
  4697.       IF (I.LE.8) GO TO 137
  4698.       JJ=NOD9M(I-8)
  4699.       II=NODM(JJ)
  4700.   137 KK=KK + 3
  4701.       LL=1
  4702.       DO 140 L=1,3
  4703.       LM(KK+L,N)=0
  4704.       IF (IDOF(L).EQ.1) GO TO 140
  4705.       LM(KK+L,N)=ID(LL,II)
  4706.       LL=LL+1
  4707.   140 CONTINUE
  4708.       IF (IDEATH.EQ.0) GO TO 150
  4709.       IF (IDEATH.EQ.2) GO TO 156
  4710.       DO 158 L=1,NDM
  4711.   158 EDISB(L,N)=0.
  4712.       ETIMV(N)=-ETIM
  4713.       GO TO 150
  4714.   156 ETIMV(N)=ETIM
  4715. C
  4716. C     UPDATE COLUMN HEIGHTS AND BANDWIDTH
  4717. C
  4718.   150 ND=IELM*3
  4719.       CALL COLHT(HT,ND,LM(1,N))
  4720. C
  4721. C     INITIALIZE STORAGE AND PRINT ELEMENT INFORMATION
  4722. C
  4723.       IELTP=IEL
  4724.       IEL=IELM
  4725.       IELD=IELDM
  4726.       NND9=IELM - 8
  4727.       CALL INTWA3 (MODEL)
  4728.       IEL=IELTP
  4729.       IELD=IELTP
  4730.       IF (IDATWR.LE.1)
  4731.      1WRITE (6,2004) N,IELDM,IELXM,IPSM,MTYPE,KAXES,ISTM,KKK,ETIM,INTLM,
  4732.      +            (NODM(I),I=1,IELN)
  4733.       IF (IJPORT.EQ.0 .AND. INTLM.EQ.0) GO TO 159
  4734. C
  4735. C     CALCULATE GLOBAL COORDINATES OF INTEGRATION POINTS
  4736. C
  4737.       KINTP=0
  4738.       ND=3*IELDM
  4739.       DO 164 LX=1,NINT
  4740.       RINTP=XG(LX,NINT)
  4741.       DO 164 LY=1,NINT
  4742.       SINTP=XG(LY,NINT)
  4743.       DO 164 LZ=1,NINTZ
  4744.       TINTP=XG(LZ,NINTZ)
  4745.       KINTP=KINTP+1
  4746.       XINT=0.
  4747.       YINT=0.
  4748.       ZINT=0.
  4749.       IX=0
  4750. C
  4751.       CALL FUNCT (RINTP,SINTP,TINTP,H,P,NOD9M,XJ,DET,XYZ(1,N),1)
  4752. C
  4753.       DO 165 NDPT=1,IELXM
  4754.       IX=IX+3
  4755.       XINT=XINT + H(NDPT)*XYZ(IX-2,N)
  4756.       YINT=YINT + H(NDPT)*XYZ(IX-1,N)
  4757.   165 ZINT=ZINT + H(NDPT)*XYZ(IX,N)
  4758. C
  4759.       XYZINT(1,KINTP)=XINT
  4760.       XYZINT(2,KINTP)=YINT
  4761.       XYZINT(3,KINTP)=ZINT
  4762. C
  4763. C     PRINT INTEGRATION POINT LOCATIONS IF  INTLM.GT.0
  4764. C
  4765.       IF (IDATWR.GT.1 .OR. INTLM.LE.0) GO TO 164
  4766.       WRITE (6,2008) KINTP,(XYZINT(L,KINTP),L=1,3)
  4767.   164 CONTINUE
  4768. C
  4769. C***  DATA PORTHOLE (START)
  4770. C
  4771.       RECLAB=RECLB4
  4772.       IF (IJPORT.EQ.0) GO TO 159
  4773.       WRITE (LU3) RECLAB,N,IELDM,IELXM,IPSM,MTYPE,KAXES,ISTM,ETIM,
  4774.      1            INTLM,IELN,(NODM(I),I=1,IELN)
  4775.       RECLAB = RECLB7
  4776.       WRITE (LU3) RECLAB,NPT,((XYZINT(L,I),L=1,3),I=1,NPT)
  4777. C
  4778. C***  DATA PORTHOLE (END)
  4779. C
  4780. C
  4781.   159 CONTINUE
  4782.       IF (N.EQ.NUME) GO TO 170
  4783.       N=N+1
  4784.       DO 160 I=1,IELN
  4785.       IF (NODM(I).EQ.0) GO TO 160
  4786.       NODM(I)=NODM(I) + KKK
  4787.   160 CONTINUE
  4788.       IF (N-M) 200,121,100
  4789. C
  4790.   170 IF (NEGSKS.EQ.0) RETURN
  4791.       DO 175 N=1,NUME
  4792.       IF (ISKEW(1,N).GE.0) GO TO 180
  4793.   175 CONTINUE
  4794.       WRITE (6,2400) NG,NEGSKS
  4795. C
  4796.   180 RETURN
  4797. C
  4798. C
  4799.   420 GO TO (440,560,560,700), IND
  4800. C
  4801. C
  4802. 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 X
  4803. C
  4804. C
  4805.   440 DO 445 I=1,NDM
  4806.       RE(I)=0.0
  4807.   445 EDIS(I)=0.0
  4808.       NPT=NINT*NINT*NINTZ
  4809.       DO 500 N=1,NUME
  4810.       MTYPE=MATP(N)
  4811.       ISOCOR=ISO(N)
  4812.       MAXES=0
  4813.       IF (NORTHO.EQ.0) GO TO 460
  4814.       MAXES=MAXESV(N)
  4815.   460 IELD=IELTD(N)
  4816.       IELX=IELTX(N)
  4817.       IEL=IELD
  4818.       IST=IREUSE(N)
  4819.       ND=3*IELD
  4820.       NND9=IELD - 8
  4821.       CALL ECHECK (LM(1,N),ND,ICODE,IUPDT)
  4822.       IF (ICODE.EQ.1) GO TO 500
  4823.       IF (NBLOCK.EQ.1 .AND. IST.NE.0) GO TO 525
  4824.       DO 480 I=1,NDM2
  4825.   480 S(I)=0.0
  4826. C
  4827.       CALL QUADS3 (ND,B,S,XYZ(1,N),PROP(1,MTYPE),DCA(1,1,MAXES),RE,EDIS,
  4828.      1             EDISI,WA(1,N),NOD9(1,N),MAXES)
  4829.       IF (NEGSKS.EQ.0) GO TO 525
  4830.       IF (ISKEW(1,N).LT.0) GO TO 525
  4831.       CALL ATKA (RSDCOS,S,ISKEW(1,N),IELD,3)
  4832. C
  4833.   525 CONTINUE
  4834.       CALL ADDBAN (A(N2),A(N1),S,RE,LM(1,N),ND,1)
  4835.   500 CONTINUE
  4836. C
  4837.       RETURN
  4838. C
  4839. C     A S S E M B L E  M A S S  M A T R I C E S
  4840. C
  4841. C
  4842.   560 DO 640 N=1,NUME
  4843.       MTYPE=MATP(N)
  4844.       IELD=IELTD(N)
  4845.       IELX=IELTX(N)
  4846.       ISOCOR=ISO(N)
  4847.       IEL=IELD
  4848.       IST=IREUSE(N)
  4849.       ND=3*IELD
  4850.       NND9=IELD - 8
  4851.       DE=DEN(MTYPE)
  4852.       IF (IMASS.EQ.1) GO TO 520
  4853.       CALL ECHECK (LM(1,N),ND,ICODE,IUPDT)
  4854.       IF (ICODE.EQ.1) GO TO 640
  4855.   520 IF (NBLOCK.EQ.1 .AND. IST.NE.0) GO TO 550
  4856. C
  4857.       CALL QUADM3  (N,ND,NDM2,XM,S,XYZ(1,N),NOD9(1,N))
  4858. C
  4859.   550 IF (IMASS.EQ.2) GO TO 580
  4860.       CALL ADDMA (A(N4),XM,LM(1,N),ND)
  4861.       GO TO 640
  4862.   580 IF (NEGSKS.EQ.0) GO TO 590
  4863.       IF (ISKEW(1,N).LT.0) GO TO 590
  4864.       CALL ATKA (RSDCOS,S,ISKEW(1,N),IELD,3)
  4865.   590 CALL ADDBAN (A(N2),A(N1),S,RE,LM(1,N),ND,1)
  4866.   640 CONTINUE
  4867. C
  4868.       RETURN
  4869. C
  4870. C
  4871. 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 R U C T U R
  4872. C     S T I F F N E S S   A N D   E F F E C T I V E   L O A D S
  4873. C
  4874. C
  4875.   700 MADR=N3
  4876.       IF (ICOUNT.EQ.3) MADR=N5
  4877.       ISTIF=0
  4878.       IF (ICOUNT.NE.3 .AND. IREF.EQ.0) ISTIF=1
  4879. C
  4880.       DO 710 N=1,NUME
  4881.       MTYPE=MATP(N)
  4882.       MAXES=0
  4883.       IF (NORTHO.EQ.0) GO TO 725
  4884.       MAXES=MAXESV(N)
  4885.   725 IELD=IELTD(N)
  4886.       IELX=IELTX(N)
  4887.       ISOCOR=ISO(N)
  4888.       IEL=IELD
  4889.       ND=3*IELD
  4890.       NND9=IELD - 8
  4891.       CALL ECHECK (LM(1,N),ND,ICODE,IUPDT)
  4892.       IF (ICODE .EQ. 1) IELCPL=IELCPL + 1
  4893.       IF (ICODE.EQ.1) GO TO 710
  4894.       IF (IDEATH.EQ.0) GO TO 720
  4895.       ETIM=DABS(ETIMV(N))
  4896.       IF (IDEATH.EQ.2) GO TO 712
  4897.       IF (TIME.LT.ETIM) GO TO 710
  4898.       IF (ETIMV(N).GE.0.) GO TO 720
  4899.       ETIMV(N)=ETIM
  4900.       DO 714 I=1,ND
  4901.       II=LM(I,N)
  4902.       IF (II.EQ.0) GO TO 714
  4903.       IF(II.LT.0) II=NEQ - II
  4904.       EDISB(I,N)=X(II)
  4905.   714 CONTINUE
  4906.       IF (NEGSKS.EQ.0) GO TO 720
  4907.       IF (ISKEW(1,N).LT.0) GO TO 720
  4908.       CALL DIRCOS (RSDCOS,EDISB(1,N),ISKEW(1,N),IELD,3,1)
  4909.       GO TO 720
  4910.   712 IF (TIME.GT.ETIM) GO TO 710
  4911.   720 DO 740 I=1,ND
  4912.       RE(I)=0.0
  4913.       EDIS(I)=0.0
  4914.       EDISI(I)=0.0
  4915.       XXX(I)=XYZ(I,N)
  4916.       II=LM(I,N)
  4917.       IF (II) 736,740,737
  4918.   736 II=NEQ - II
  4919.   737 EDIS(I)=X(II)
  4920.   740 CONTINUE
  4921.       IF (NEGSKS.EQ.0) GO TO 742
  4922.       IF (ISKEW(1,N).LT.0) GO TO 742
  4923.       CALL DIRCOS (RSDCOS,EDIS,ISKEW(1,N),IELD,3,1)
  4924. C
  4925.   742 DO 750 I=1,NDM2
  4926.   750 S(I)=0.0
  4927. C
  4928.       IF (IDEATH.NE.1) GO TO 752
  4929.       DO 754 I=1,ND
  4930.       EDIS(I)=EDIS(I) - EDISB(I,N)
  4931.   754 XXX(I)=XXX(I) + EDISB(I,N)
  4932. C
  4933.   752 IF (IULJ.EQ.0) GO TO 756
  4934.       DO 743 I=1,ND
  4935.       EDISI(I)=EDIS(I) - PDIS(I,N)
  4936.       IF (ICOUNT.LE.2 .AND. IUPDT.EQ.0) PDIS(I,N)=EDIS(I)
  4937.   743 CONTINUE
  4938. C
  4939.   756 CALL QUADS3 (ND,B,S,XXX,PROP(1,MTYPE),DCA(1,1,MAXES),RE,EDIS,
  4940.      1             EDISI,WA(1,N),NOD9(1,N),MAXES)
  4941. C
  4942.       IF  (NEGSKS.EQ.0) GO TO 760
  4943.       IF (ISKEW(1,N).LT.0) GO TO 760
  4944.       CALL DIRCOS (RSDCOS,RE,ISKEW(1,N),IELD,3,2)
  4945.   760 CALL ADDBAN (A(MADR),A(N1),S,RE,LM(1,N),ND,2)
  4946. C
  4947.       IF (ISTIF.EQ.0) GO TO 710
  4948.       IF (NEGSKS.EQ.0) GO TO 730
  4949.       IF (ISKEW(1,N).LT.0) GO TO 730
  4950.       CALL ATKA (RSDCOS,S,ISKEW(1,N),IELD,3)
  4951.   730 CALL ADDBAN (A(N4),A(N1),S,RE,LM(1,N),ND,1)
  4952. C
  4953.   710 CONTINUE
  4954. C
  4955.       IF (IELCPL.EQ.NUME) IELCPL=-1
  4956.       RETURN
  4957. C
  4958. C
  4959. C     S T R E S S  C A L C U L A T I O N S
  4960. C
  4961. C
  4962. C
  4963. C***  DATA PORTHOLE (START)
  4964. C
  4965.   800 IF (JNPORT.EQ.0 .OR. KPLOTE.NE.0) GO TO 811
  4966.       RECLAB=RECLB5
  4967.       WRITE (LU3)  RECLAB,NG,(NPAR(I),I=1,20),KSTEP,TIME,NEGL,NSUB
  4968. C
  4969. C***  DATA PORTHOLE (END)
  4970. C
  4971.   811 IPRNT=0
  4972.       DO 840 N=1,NUME
  4973.       IF (IDEATH.EQ.0) GO TO 790
  4974.       ETIM=DABS(ETIMV(N))
  4975.       IF (IDEATH.EQ.2) GO TO 792
  4976.       IF (TIME.LT.ETIM) GO TO 840
  4977.       GO TO 790
  4978.   792 IF (TIME.GT.ETIM) GO TO 840
  4979.   790 IPS=IPST(N)
  4980.       IF (IPS.EQ.0) GO TO 840
  4981.       IF (IPRI.NE.0) GO TO 802
  4982.       IPRNT=IPRNT + 1
  4983.       IF (IPRNT.NE.1) GO TO 802
  4984.       WRITE(6,2020) NG
  4985.       IF (MODEL.GT.2) GO TO 802
  4986.       WRITE(6,2030)
  4987.   802 MTYPE=MATP(N)
  4988.       MAXES=0
  4989.       IF (NORTHO.EQ.0) GO TO 803
  4990.       MAXES=MAXESV(N)
  4991.   803 IELD=IELTD(N)
  4992.       IELX=IELTX(N)
  4993.       ISOCOR=ISO(N)
  4994.       IEL=IELD
  4995.       ND=3*IEL
  4996.       NND9=IELD - 8
  4997. C
  4998.       DO 805 I=1,ND
  4999.       EDIS(I)=0.
  5000.       EDISI(I)=0.0
  5001.       II=LM(I,N)
  5002.       IF (II.EQ.0) GO TO 805
  5003.       IF (II.LT.0) II=NEQ - II
  5004.       EDIS(I)=X(II)
  5005.   805 CONTINUE
  5006.       IF (NEGSKS.EQ.0) GO TO 845
  5007.       IF (ISKEW(1,N).LT.0) GO TO 845
  5008.       CALL DIRCOS (RSDCOS,EDIS,ISKEW(1,N),IELD,3,1)
  5009. C
  5010.   845 DO 806 I=1,ND
  5011.   806 XXX(I)=XYZ(I,N)
  5012. C
  5013.       IF (IDEATH.NE.1) GO TO 807
  5014.       DO 804 I=1,ND
  5015.       EDIS(I)=EDIS(I) - EDISB(I,N)
  5016.   804 XXX(I)=XXX(I) + EDISB(I,N)
  5017. C
  5018.   807 IF (INDNL.LT.3) GO TO 809
  5019.       DO 808 I=1,ND
  5020.   808 XXX(I)=XXX(I)+EDIS(I)
  5021. C
  5022.   809 IF (IULJ.EQ.0) GO TO 848
  5023.       DO 846 I=1,ND
  5024.   846 EDISI(I)=EDIS(I) - PDIS(I,N)
  5025. C
  5026. C     FORM LINEAR STRESS-STRAIN LAW IF APPLICABLE
  5027. C
  5028.   848 IF (MODEL.GT.2) GO TO 831
  5029.       CALL STST3L (N,XXX,PROP(1,MTYPE),DCA(1,1,MAXES),D,MAXES)
  5030. C
  5031.       IF (IPRI.EQ.0) WRITE (6,2035) N
  5032. C
  5033. C     CALCULATE AND PRINT ELEMENT STRESSES AT IPS LOCATIONS
  5034. C
  5035.       IF (NTABLE.EQ.0) GO TO 831
  5036.       DO 830 II=1,16
  5037.       M=ITABLE(IPS,II)
  5038.       IF (M.EQ.0) GO TO 840
  5039.       CALL DERIQ3 (N,XXX,B,DET,EVAL3(M,1),EVAL3(M,2),EVAL3(M,3),
  5040.      1              NOD9(1,N))
  5041. C
  5042.       DO 810 J=1,9
  5043.   810 DISD(J)=0.0
  5044.       DO 815 J=3,ND,3
  5045.       I=J-1
  5046.       K=J-2
  5047.       DISD(1)=DISD(1)+B(K)*EDIS(K)
  5048.       DISD(2)=DISD(2)+B(I)*EDIS(I)
  5049.       DISD(3)=DISD(3)+B(J)*EDIS(J)
  5050.       DISD(4)=DISD(4)+B(I)*EDIS(K)
  5051.       DISD(5)=DISD(5)+B(J)*EDIS(K)
  5052.       DISD(6)=DISD(6)+B(K)*EDIS(I)
  5053.       DISD(7)=DISD(7)+B(J)*EDIS(I)
  5054.       DISD(8)=DISD(8)+B(K)*EDIS(J)
  5055.   815 DISD(9)=DISD(9)+B(I)*EDIS(J)
  5056. C
  5057.       CALL STST3N (DISD)
  5058. C
  5059. C
  5060. C     TRANSFORM PIOLA-KIRCHHOFF STRESSES TO CAUCHY STRESSES
  5061. C
  5062. C        CS = (1./DET(F)) * ( F * PK * F(TRANSPOSED) )
  5063. C
  5064.       IF (INDNL.NE.2) GO TO 822
  5065. C
  5066.       CALL CAUCH3
  5067. C
  5068. C
  5069. C***  DATA PORTHOLE (START)
  5070. C
  5071.   822 RECLAB=RECLB6
  5072.       IF (JNPORT.NE.0 .AND. KPLOTE.EQ.0)
  5073.      1 WRITE (LU3) RECLAB,M,STRESS,STRAIN
  5074. C
  5075. C***  DATA PORTHOLE (END)
  5076. C
  5077.   830 IF (IPRI.EQ.0) WRITE (6,2040) M,STRESS
  5078.       GO TO 840
  5079. C
  5080. C     CALCULATE AND PRINT STRESSES AT INTEGRATION POINTS
  5081. C
  5082.   831 IPT=0
  5083.       JPT=1
  5084.       RECLAB=RECLB6
  5085.       DO 939 LX=1,NINT
  5086.       E1=XG(LX,NINT)
  5087.       DO 939 LY=1,NINT
  5088.       E2=XG(LY,NINT)
  5089.       DO 939 LZ=1,NINTZ
  5090.       E3=XG(LZ,NINTZ)
  5091.       IPT=IPT+1
  5092. C
  5093.       CALL DERIQ3 (N,XXX,B,DET,E1,E2,E3,NOD9(1,N))
  5094. C
  5095.       DO 910 J=1,9
  5096.   910 DISD(J)=0.0
  5097. C
  5098. C     FOR U.L.J. FORMULATION USE STRAIN INCREMENTS
  5099. C
  5100.       IF (INDNL.EQ.3 .AND. MODEL.GT.1) GO TO 919
  5101.       DO 915 J=3,ND,3
  5102.       I=J-1
  5103.       K=J-2
  5104.       DISD(1)=DISD(1)+B(K)*EDIS(K)
  5105.       DISD(2)=DISD(2)+B(I)*EDIS(I)
  5106.       DISD(3)=DISD(3)+B(J)*EDIS(J)
  5107.       DISD(4)=DISD(4)+B(I)*EDIS(K)
  5108.       DISD(5)=DISD(5)+B(J)*EDIS(K)
  5109.       DISD(6)=DISD(6)+B(K)*EDIS(I)
  5110.       DISD(7)=DISD(7)+B(J)*EDIS(I)
  5111.       DISD(8)=DISD(8)+B(K)*EDIS(J)
  5112.   915 DISD(9)=DISD(9)+B(I)*EDIS(J)
  5113.       GO TO 925
  5114. C
  5115.   919 DO 920 J=3,ND,3
  5116.       I=J-1
  5117.       K=J-2
  5118.       DISD(1)=DISD(1) + B(K)*EDISI(K)
  5119.       DISD(2)=DISD(2) + B(I)*EDISI(I)
  5120.       DISD(3)=DISD(3) + B(J)*EDISI(J)
  5121.       DISD(4)=DISD(4) + B(I)*EDISI(K)
  5122.       DISD(5)=DISD(5) + B(J)*EDISI(K)
  5123.       DISD(6)=DISD(6) + B(K)*EDISI(I)
  5124.       DISD(7)=DISD(7) + B(J)*EDISI(I)
  5125.       DISD(8)=DISD(8) + B(K)*EDISI(J)
  5126.   920 DISD(9)=DISD(9) + B(I)*EDISI(J)
  5127. C
  5128.   925 IF (IULJ.GT.0 .AND. IPRI.EQ.0)  CALL CGDT3 (XYZ(1,N),EDIS,ND,
  5129.      1    NOD9(1,N),E1,E2,E3,IDEATH,EDISB(1,N))
  5130.       CALL STST3N (DISD)
  5131. C
  5132. C
  5133. C     TRANSFORM PIOLA-KIRCHHOFF STRESSES TO CAUCHY STRESSES
  5134. C
  5135. C        CS = (1./DET(F)) * ( F * PK * F(TRANSPOSED) )
  5136. C
  5137.       IF (MODEL.GT.2) GO TO 938
  5138.       IF (INDNL.NE.2) GO TO 930
  5139. C
  5140.       CALL CAUCH3
  5141. C
  5142.   930 IF (IPRI.EQ.0) WRITE (6,2040) IPT,STRESS
  5143. C
  5144. C***  DATA PORTHOLE (START)
  5145. C
  5146.   938 IF (JNPORT.EQ.0 .OR. KPLOTE.NE.0) GO TO 939
  5147.       IF (IPT.NE.IPTABL(JPT)) GO TO 939
  5148.       WRITE (LU3) RECLAB,IPT,STRESS,STRAIN
  5149.       JPT=JPT + 1
  5150. C
  5151. C***  DATA PORTHOLE (END)
  5152. C
  5153.   939 CONTINUE
  5154.   840 CONTINUE
  5155.       RETURN
  5156. C
  5157. C
  5158.  1000 FORMAT (I5,F10.0)
  5159.  1001 FORMAT (8F10.0)
  5160.  1004 FORMAT (8I5,F10.0,I5)
  5161.  1005 FORMAT (13I5)
  5162.  1007 FORMAT (16I5)
  5163.  2004 FORMAT (/I6,1X,4(I3,2X),I4,2X,I2,3X,I2,1X,E11.4,
  5164.      1        1X,I4,3X,8(4X,I4)/64X,I4,7(4X,I4)/64X,I4,7(4X,I4))
  5165.  2005 FORMAT (///40H E L E M E N T   I N F O R M A T I O N      ,
  5166.      1        ///6H     M,5H IELD,5H IELX,5H IPS ,5H MTYP,6H MAXES,
  5167.      2        5H IST ,4H KG ,11H   ETIME   ,6HINTLOC,5X,8(A4,I1,3X)/
  5168.      3        63X,A4,I1,3X,7(A4,I2,2X)/63X,8(A4,I2,2X)/)
  5169.  2006 FORMAT (56X,11HINTEGRATION,17X,19HGLOBAL  COORDINATES/
  5170.      5        59X,5HPOINT,16X,1HX,12X,1HY,12X,1HZ)
  5171.  2008 FORMAT (1H ,57X,I4,12X,2(E11.4,2X),E11.4)
  5172.  2010 FORMAT(///12H *** ELEMENT,I5,46H+EXCEEDS MAXIMUM NUMBER OF NODES (
  5173.      1NPAR(4)) ***)
  5174.  2015 FORMAT(///23H INPUT ERROR **********/
  5175.      1          19H SUBSTRUCTURE  NO =,I3/
  5176.      2          19H ELEMENT GROUP NO =,I3/
  5177.      3          31H FIRST ELEMENT NUMBER MUST BE 1)
  5178.  2020 FORMAT (1H1,45HS T R E S S   C A L C U L A T I O N S   F O R, 3X,
  5179.      1        25HE L E M E N T   G R O U P,3X,I2,3X,15H(3/D CONTINUUM)
  5180.      2        /)
  5181.  2030 FORMAT (8H ELEMENT,4X,6HOUTPUT,/ 2X,6HNUMBER,2X,8HLOCATION,7X,
  5182.      1        8HSTRESSXX,7X,8HSTRESSYY,7X,8HSTRESSZZ,7X,8HSTRESSXY,
  5183.      2        7X,8HSTRESSXZ,7X,8HSTRESSYZ / 1X)
  5184.  2035 FORMAT (I8)
  5185.  2040 FORMAT (13X,I5,6E15.4)
  5186.  2055 FORMAT (//50H M A T E R I A L   A X I S   O R I E N T A T I O N ,
  5187.      1          3X,9HT A B L E,//28H    SET   NODE   NODE   NODE  ,/
  5188.      2          28H NUMBER     NI     NJ     NK      ,//)
  5189.  2057 FORMAT (4I7 / )
  5190.  2070 FORMAT (//40H S T R E S S   O U T P U T   T A B L E S    //
  5191.      1        10H     TABLE,6X,1H1,6X,1H2,6X,1H3,6X,1H4,6X,1H5,6X,1H6,
  5192.      2        6X,1H7,6X,1H8,6X,1H9,5X,2H10,5X,2H11,5X,2H12,5X,2H13,
  5193.      3        5X,2H14,5X,2H15,5X,2H16//)
  5194.  2060 FORMAT (I10,16I7)
  5195.  2090 FORMAT(44H *** STOP - INCORRECT NODAL DATA FOR EL. NO. ,I5)
  5196.  2400 FORMAT (///16H ELEMENT GROUP =,I2,23H  (3/D ELEMENT / THDFE)/
  5197.      1        19H ALTHOUGH NPAR(6) =,I2,22H, NONE OF THE ELEMENTS/
  5198.      2        49H IN THIS GROUP REFERS TO SKEW COORDINATE SYSTEMS./
  5199.      3        50H IT IS ADVISED THAT NPAR(6) BE SET TO ZERO TO SAVE,
  5200.      4        15H STORAGE SPACE.//
  5201.      5        39H THIS IS ONLY AN INFORMATIONAL MESSAGE.///)
  5202.  2410 FORMAT (///16H ELEMENT GROUP =,I2,23H  (3/D ELEMENT / THDFE)/
  5203.      1        16H ELEMENT NUMBER=,I4/10H NPAR(6) =,I2//
  5204.      2        53H SINCE NODES OF THIS ELEMENT REFER TO SKEW COORDINATE/
  5205.      3        37H SYSTEM(S), NPAR(6) MUST BE SET TO 1.//8H S T O P)
  5206.  3000 FORMAT (54H0 ***ERROR***  VECTOR IJ HAS ZERO LENGTH              )
  5207.  3010 FORMAT (54H0 ***ERROR***  VECTOR IK HAS ZERO LENGTH              )
  5208.  3020 FORMAT (54H0 ***ERROR***  IJ AND IK VECTORS ARE PARALELL         )
  5209.  3030 FORMAT (54H0 ***ERROR***  F3 AND F1 VECTORS ARE PARALELL         )
  5210. C
  5211.       END
  5212. C *CDC* *DECK MATWRT
  5213. C *UNI* )FOR,IS N.MATWRT,R.MATWRT
  5214.       SUBROUTINE MATWRT (N,DEN,PROP)
  5215. C
  5216. C
  5217. C     PROGRAM TO PRINT MATERIAL PROPERTIES
  5218. C              FOR THREE-DIMENSIONAL ELEMENTS
  5219. C
  5220. C
  5221.       IMPLICIT REAL*8 (A-H,O-Z)
  5222.       COMMON /EL/ IND,ICOUNT,NPAR(20),NUMEG,NEGL,NEGNL,IMASS,IDAMP,ISTAT
  5223.      1           ,NDOF,KLIN,IEIG,IMASSN,IDAMPN
  5224.       COMMON /PRCON/ IDATWR,IPRIC,NPB,IDC,IVC,IAC,IPC,IPNODE(3,15)
  5225.       COMMON /VAR/ NG,MODEX,IUPDT,KSTEP,ITEMAX,IEQREF,ITE,KPRI,
  5226.      1             IREF,IEQUIT,IPRI,KPLOTN,KPLOTE
  5227.       DIMENSION PROP(1)
  5228.       EQUIVALENCE (NPAR(15),MODEL),(NPAR(16),NUMMAT),(NPAR(17),NCON)
  5229.      1           ,(NPAR(18),NORTHO),(NPAR(19),ITHERM),(NPAR(20),IDW)
  5230. C
  5231. C
  5232.       IF(IDATWR.LE.1) GO TO 500
  5233.       IF (MODEL.EQ.3 .OR. MODEL.EQ.5) GO TO 600
  5234.       IF (MODEL.EQ.7 .OR. MODEL.EQ.8 .OR. MODEL.EQ.9) GO TO 600
  5235.       IF (MODEL.EQ.10 .OR. MODEL.EQ.11) GO TO 600
  5236.       RETURN
  5237. C
  5238.   500 WRITE(6,2100) N,DEN
  5239. C
  5240.   600 GO TO (1,2,3,4,5,6,7,8,8,10,10,12),MODEL
  5241. C
  5242. C
  5243. C
  5244. C.... MODEL = 1    L I N E A R   I S O T R O P I C
  5245. C
  5246.     1 WRITE(6,2101) (PROP(I), I=1,NCON)
  5247.       RETURN
  5248. C
  5249. C
  5250. C.... MODEL = 2    L I N E A R   O R T H O T R O P I C
  5251. C
  5252.     2 WRITE(6,2102) (PROP(I),I=1,NCON)
  5253.       RETURN
  5254. C
  5255. C
  5256. C.... MODEL = 3    T H E R M O E L A S T I C
  5257. C
  5258.     3 IBUG=0
  5259.       NPTS=IDINT(PROP(65))
  5260.       IF(NPTS.GT.0) GO TO 60
  5261.       PROP(65)=16.0
  5262.       NPTS=16
  5263.       GO TO 72
  5264. C
  5265.    60 IF(NPTS.GE.2 .AND. NPTS.LE.16) GO TO 72
  5266.       IBUG=1
  5267.       WRITE(6,3002)
  5268.       GO TO 78
  5269. C
  5270.    72 DO 75 J=2,NPTS
  5271.       JJ=J-1
  5272.       IF(PROP(J).GT.PROP(JJ)) GO TO 75
  5273.       IBUG=1
  5274.       WRITE(6,3003)
  5275.       GO TO 78
  5276.    75 CONTINUE
  5277. C
  5278.    78 IF(IDATWR.GT.1) GO TO 85
  5279.       WRITE(6,2103)
  5280.       DO 80 K=1,16
  5281.       IP1=K + 16
  5282.       IP2=K + 32
  5283.       IP3=K + 48
  5284.    80 WRITE (6,2104) PROP(K),PROP(IP1),PROP(IP2),PROP(IP3)
  5285.       WRITE (6,2105) PROP(65),PROP(66)
  5286. C
  5287.    85 IF(MODEX.EQ.0.OR.IBUG.EQ.0) RETURN
  5288.       STOP
  5289. C
  5290. C
  5291. C.... MODEL = 4    C U R V E   D E S C R I P T I O N   M O D E L
  5292. C
  5293.     4 ICRACK=IDINT(PROP(25))
  5294.       WRITE (6,2220) ICRACK,(PROP(I),I=26,NCON)
  5295.       IP=NCON/4 - 1
  5296.       WRITE(6,2200)
  5297.       DO 20 I=1,IP
  5298.       IPI=I + IP
  5299.       IPI2= IPI + IP
  5300.       IPI3= IPI2 + IP
  5301.    20 WRITE (6,2210) I,PROP(I),PROP(IPI),PROP(IPI2),PROP(IPI3)
  5302.       RETURN
  5303. C
  5304. C
  5305. C.... MODEL = 5    C O N C R E T E   S T R U C T U R E   M O D E L
  5306. C
  5307.     5 IF (PROP(34).EQ.0.) PROP(34)=1.0
  5308.       IF (PROP(35).EQ.0.) PROP(35)=0.7
  5309.       IF (PROP(37).EQ.0.) PROP(37)=0.0001
  5310.       IF (PROP(38).EQ.0.) PROP(38)=0.5
  5311.       IF(IDATWR.GT.1) RETURN
  5312. C
  5313.       WRITE (6,2230) (PROP(I),I=1,8)
  5314.       IP1=8
  5315.       WRITE (6,2235) (PROP(IP1 + J),J=1,24)
  5316.       WRITE (6,2240) (PROP(J),J=33,38)
  5317.       RETURN
  5318. C
  5319. C
  5320. C.... MODEL .GE. 6   U S E R - S U P P L I E D   M A T E R I A L
  5321. C
  5322. C                 M O D E L
  5323. C
  5324. C
  5325.     6 GO TO 50
  5326. C
  5327. C
  5328. C.... MODEL = 7
  5329. C
  5330.     7 IBUG=0
  5331.       IF (PROP(4).GT.0.0) GO TO 141
  5332.       IBUG=1
  5333.       WRITE (6,3400) NG,N
  5334.   141 IF (IDATWR.LE.1) WRITE (6,2107) (PROP(I),I=1,NCON)
  5335.       IF (MODEX.EQ.0 .OR. IBUG.EQ.0) RETURN
  5336.       WRITE (6,3403)
  5337.       STOP
  5338. C
  5339. C
  5340. C.... MODELS = 8,9    E L A S T I C - P L A S T I C  (VON MISES)
  5341. C
  5342.     8 IF (NCON.GT.4) GO TO 200
  5343. C
  5344. C
  5345.       IBUG=0
  5346.       IF (PROP(3).GT.0.0) GO TO 150
  5347.       IBUG=1
  5348.       WRITE (6,3401) NG,N
  5349.   150 IF (PROP(4).LT.PROP(1)) GO TO 152
  5350.       IBUG=1
  5351.       WRITE (6,3402) NG,N
  5352.   152 CONTINUE
  5353. C
  5354.       IF (IDATWR.LE.1) WRITE (6,2106) (PROP(I),I=1,NCON)
  5355.       IF (MODEX.EQ.0 .OR. IBUG.EQ.0) RETURN
  5356.       WRITE (6,3403)
  5357.       STOP
  5358. C
  5359.   200 IF (IDATWR.GT.1) GO TO 160
  5360.       WRITE (6,2111) (PROP(I),I=1,3)
  5361.       WRITE (6,2112) PROP(3),PROP(4)
  5362. C
  5363.   160 IBUG=0
  5364.       IF (PROP(3).GT.0.0) GO TO 161
  5365.       IBUG=1
  5366.       WRITE (6,3401) NG,N
  5367.   161 ICP=4
  5368.       DO 165 I=1,6
  5369.       IF (PROP(ICP).EQ.0.0) GO TO 165
  5370.       ICP2=ICP+2
  5371.       IF (PROP(ICP).NE.PROP(ICP2)) GO TO 165
  5372.       IBUG=1
  5373.       WRITE (6,3404) NG,N,ICP,ICP2
  5374.   165 ICP=ICP+2
  5375. C
  5376.       IF (MODEX.EQ.0 .OR. IBUG.EQ.0) GO TO 167
  5377.       WRITE (6,3403)
  5378.       STOP
  5379. C
  5380.   167 DO 210 J=6,NCON,2
  5381.       ET=(PROP(J - 1) - PROP(J - 3))/(PROP(J) - PROP(J - 2))
  5382.       IF (IDATWR.LE.1) WRITE (6,2113) PROP(J-1),PROP(J),ET
  5383.   210 CONTINUE
  5384.       RETURN
  5385. C
  5386. C
  5387. C.... MODELS = 10,11    E L A S T I C - P L A S T I C + C R E E P
  5388. C
  5389.    10 IBUG=0
  5390.       NPTS=IDINT(PROP(105))
  5391.       XCRP=PROP(107)
  5392.       XINTP=PROP(108)
  5393.       XSUBM=PROP(109)
  5394.       XITE=PROP(110)
  5395.       XALG=PROP(111)
  5396.       TOLIL=PROP(112)
  5397.       TOLPC=PROP(113)
  5398. C
  5399.       IF(NPTS.GT.0) GO TO 95
  5400.       PROP(105)=16.0
  5401.       NPTS=16
  5402. C
  5403.    95 IF(XSUBM.EQ.0.0) PROP(109)=10.0
  5404.       IF(XALG.EQ.2.0.AND.XSUBM.LT.3.0) PROP(109)=3.0
  5405.       IF(XITE.EQ.0.0) PROP(110)=15.0
  5406.       IF(XALG.EQ.0.0) PROP(111)=1.0
  5407.       IF(TOLIL.EQ.0.0) PROP(112)=5.0D-3
  5408.       IF(TOLPC.EQ.0.0) PROP(113)=1.0D-1
  5409. C
  5410.       IF(XCRP.GE.0.0.AND.XCRP.LE.2.0) GO TO 100
  5411.       WRITE(6,3000)
  5412.       IBUG=1
  5413. C
  5414.   100 IF(XINTP.GE.0.0.AND.XINTP.LE.1.0) GO TO 102
  5415.       WRITE(6,3001)
  5416.       IBUG=1
  5417. C
  5418.   102 IF(NPTS.GE.2.AND.NPTS.LE.16) GO TO 104
  5419.       IBUG=1
  5420.       WRITE(6,3002)
  5421.       GO TO 110
  5422. C
  5423.   104 DO 106 J=2,NPTS
  5424.       JJ=J-1
  5425.       IF(PROP(J).GT.PROP(JJ)) GO TO 106
  5426.       IBUG=1
  5427.       WRITE(6,3003)
  5428.       GO TO 110
  5429.   106 CONTINUE
  5430. C
  5431.   110 IF(IDATWR.GT.1) GO TO 120
  5432.       WRITE (6,2301)
  5433.       DO 115 K=1,16
  5434.       IP1=K + 16
  5435.       IP2=K + 32
  5436.       IP3=K + 48
  5437.       IP4=K + 64
  5438.       IP5=K + 80
  5439.   115 WRITE (6,2302) PROP(K),PROP(IP1),PROP(IP2),PROP(IP3),PROP(IP4),
  5440.      1               PROP(IP5)
  5441.       WRITE (6,2303) (PROP(M),M=97,104)
  5442.       WRITE(6,2304) (PROP(M),M=105,113)
  5443. C
  5444.   120 IF(PROP(110).LT.6.0) WRITE(6,2305)
  5445.       IF(MODEX.EQ.0.OR.IBUG.EQ.0) RETURN
  5446.       STOP
  5447. C
  5448.    12 GO TO 50
  5449. C
  5450.    50 WRITE(6,2500) (I,PROP(I), I=1,NCON)
  5451.       RETURN
  5452. C
  5453. C
  5454. C
  5455.  1000 FORMAT (I5,4F10.0)
  5456.  1100 FORMAT (8F10.0)
  5457.  2100 FORMAT (30H MATERIAL CONSTANTS SET NUMBER,6H .... ,I5//,
  5458.      1        1H ,4X,29HDEN ..........( DENSITY ).. =, E14.6/)
  5459.  2101 FORMAT (1H ,4X,29HE ............( PROP(1) ).. =, E14.6/,
  5460.      1        1H ,4X,29HVNU ..........( PROP(2) ).. =, E14.6///)
  5461.  2102 FORMAT (1H ,4X,29HE(A) .........( PROP(1) ).. =, E14.6/,
  5462.      1        1H ,4X,29HE(B) .........( PROP(2) ).. =, E14.6/,
  5463.      2        1H ,4X,29HE(C) .........( PROP(3) ).. =, E14.6/,
  5464.      3        1H ,4X,29HVNU(AB) ......( PROP(4) ).. =, E14.6/,
  5465.      4        1H ,4X,29HVNU(AC) ......( PROP(5) ).. =, E14.6/,
  5466.      5        1H ,4X,29HVNU(BC) ......( PROP(6) ).. =, E14.6/,
  5467.      6        1H ,4X,29HG(AB) ........( PROP(7) ).. =, E14.6/,
  5468.      7        1H ,4X,29HG(AC) ........( PROP(8) ).. =, E14.6/,
  5469.      8        1H ,4X,29HG(BC) ........( PROP(9) ).. =, E14.6///)
  5470.  2103 FORMAT (1H ,4X,17HTEMP (PROP(1-16)),5X,15HE (PROP(17-32)),5X,
  5471.      1        17HVNU (PROP(33-48)),4X,19HALPHA (PROP(49-64)),/)
  5472.  2104 FORMAT (1H ,4X,4(E14.6,7X))
  5473.  2105 FORMAT ( //,4X,46HNUMBER OF TEMPERATURE POINTS ...(PROP(65)).. =,
  5474.      1        E14.6,/,
  5475.      2        1H ,3X,46HREFERENCE TEMPERATURE ..........(PROP(66)).. =,
  5476.      3        E14.6,//)
  5477.  2106 FORMAT (1H ,4X,29HE ............( PROP(1) ).. =,E14.6/
  5478.      1        1H ,4X,29HVNU ..........( PROP(2) ).. =,E14.6/
  5479.      2        1H ,4X,29HYIELD ........( PROP(3) ).. =,E14.6/
  5480.      3        1H ,4X,29HE (HARDEN) ...( PROP(4) ).. =,E14.6///)
  5481.  2107 FORMAT(1H ,4X,29HE ............( PROP(1) ).. =, E14.6/,
  5482.      1       1H ,4X,29HVNU ..........( PROP(2) ).. =, E14.6/,
  5483.      2       1H ,4X,29HALFA .........( PROP(3) ).. =, E14.6/,
  5484.      O       1H ,4X,29HK ............( PROP(4) ).. =, E14.6/,
  5485.      4       1H ,4X,29HW ............( PROP(5) ).. =, E14.6/,
  5486.      5       1H ,4X,29HD ............( PROP(6) ).. =, E14.6/,
  5487.      6       1H ,4X,29HT ............( PROP(7) ).. =, E14.6/,
  5488.      7       1H ,4X,29HI1A ..........( PROP(8) ).. =, E14.6///)
  5489.  2111 FORMAT (1H ,4X,29HE ............( PROP(1) ).. =,E14.6,/,
  5490.      1        1H ,4X,29HVNU ..........( PROP(2) ).. =,E14.6,/,
  5491.      2        1H ,4X,29HYIELD ........( PROP(3) ).. =,E14.6,//)
  5492.  2112 FORMAT (1H ,4X,36HPIECEWISE-LINEAR STRESS-STRAIN CURVE,/,
  5493.      1        1H ,6X,6HSTRESS,10X,6HSTRAIN,12X,2HET,//,
  5494.      2        6X,E14.6,2X,E14.6)
  5495.  2113 FORMAT (6X,3(E14.6,2X))
  5496.  2200 FORMAT (///
  5497.      1        19X,6HVOLUME,8X,7HLOADING,6X,9HUNLOADING,8X,7HLOADING, /
  5498.      2        19X,6HSTRAIN,2(3X,12HBULK MODULUS),2X,13HSHEAR MODULUS,
  5499.      3           / 1X)
  5500.  2210 FORMAT (7H POINT(,I1,2H) ,4E15.4)
  5501.  2220 FORMAT (35H CRACKING MODE . . . . . (ICRACK) =,I5,/
  5502.      1        43H    EQ.0, CURVE DESCRIPTION NONLINEAR MODEL    /,
  5503.      2        36H    EQ.1, SOIL MODFL WITH NO TENSION          /,
  5504.      3        48H    EQ.2, SOIL MODEL, NO TENSION, STRESS RELEASE    /,
  5505.      4        35H MATERIAL DENSITY . . . . . . . . =,E14.6,/,
  5506.      5        35H STIFFNESS REDUCTION FACTOR . . . =,E14.6,/,
  5507.      6        35H SHEAR REDUCTION FACTOR . . . . . =,E14.6,///)
  5508.  2230 FORMAT (//40H (A) UNIAXIAL PARAMETERS                ,
  5509.      1     //49H INITIAL TANGENT MODULUS . . . . . . . (PROP(1))=,E14.6,
  5510.      2      /49H POISSONS RATIO. . . . . . . . . . . . (PROP(2))=,E14.6,
  5511.      3      /49H COEFFICIENT OF THERMAL EXPANSION . . .(PROP(3))=,E14.6,
  5512.      4      /49H UNIAXIAL CUT-OFF TENSILE STRENGTH . .  (SIGMAT)=,E14.6,
  5513.      1      /49H UNIAXIAL MAXIMUM COMPRESSIVE STRESS . .(SIGMAC)=,E14.6,
  5514.      2      /49H COMPRESSIVE STRAIN AT SIGMAC . . . . . ( EPSC )=,E14.6,
  5515.      5      /49H UNIAXIAL ULTIMATE COMPRESSIVE STRESS . (SIGMAU)=,E14.6,
  5516.      8      /49H UNIAXIAL ULTIMATE COMPRESSIVE STRAIN . ( EPSU )=,E14.6)
  5517.  2235 FORMAT (//40H (B) TRIAXIAL COMPRESSIVE FAILURE CURVES,
  5518.      1        //4X,10H PRINCIPAL,5X,30X,12HCURVE NUMBER/1X,
  5519.      2        16H  STRESS RATIOS/,9X,3HI=1,10X,1H2,11X,1H3,11X,1H4,11X,
  5520.      3        1H5,11X,1H6/1X,90(1H-)//1X,6X,6HSP1(I),6X,6F12.4//1X,
  5521.      4        5X,8HSP3(I,1),5X,6F12.4,/1X,3X,12H(AT SP2=SP1),/1X,
  5522.      5        5X,8HSP3(I,2),5X,6F12.4,/2X,17H(AT SP2=BETA*SP3),/1X,
  5523.      6       5X,8HSP3(I,3),5X,6F12.4,/1X,3X,12H(AT SP2=SP3)//1X,90(1H-))
  5524.  2240 FORMAT (/40H (C) VARIOUS OTHER CONTROL PARAMETERS   //
  5525.      1      ,49H STRESS RATIO FOR FAILURE SURFACE INPUT .(BETA) =,E14.6/
  5526.      2      ,49H STRAINS SCALING FACTOR - MULTIAXIALITY .(GAMA) =,E14.6/
  5527.      3      ,49H CONTROL FOR CHANGING MATERIAL LAW . . . (KAPA) =,E14.6/
  5528.      4      ,49H CONTROL FOR LOADING/UNLOADING CRITERION (ALFA) =,E14.6/
  5529.      5      ,49H STIFFNESS REDUCTION FACTOR . . . . . .(STIFAC) =,E14.6/
  5530.      6      ,49H SHEAR REDUCTION FACTOR . . . . . . . .(SHEFAC) =,E14.6)
  5531.  2301 FORMAT (1H ,4X,17HTEMP (PROP(1-16)),5X,15HE (PROP(17-32)),5X,
  5532.      1        17HVNU (PROP(33-48)),3X,19HYIELD (PROP(49-64)),3X,
  5533.      2        16HET (PROP(65-80)),4X,19HALPHA (PROP(81-96)),/)
  5534.  2302 FORMAT (1H ,4X,6(E14.6,7X))
  5535.  2303 FORMAT (1H ,//,5X,33HCREEP LAW COEFFICIENTS ..........,//,
  5536.      1        1H ,4X,30HA0 ............(PROP(97 )).. =,E14.6,/,
  5537.      2        1H ,4X,30HA1 ............(PROP(98 )).. =,E14.6,/,
  5538.      3        1H ,4X,30HA2 ............(PROP(99 )).. =,E14.6,/,
  5539.      4        1H ,4X,30HA3 ............(PROP(100)).. =,E14.6,/,
  5540.      5        1H ,4X,30HA4 ............(PROP(101)).. =,E14.6,/,
  5541.      6        1H ,4X,30HA5 ............(PROP(102)).. =,E14.6,/,
  5542.      7        1H ,4X,30HA6 ............(PROP(103)).. =,E14.6,/,
  5543.      8        1H ,4X,30HA7 ............(PROP(104)).. =,E14.6,//)
  5544.  2304 FORMAT (1H ,4X,66HNUMBER OF TEMPERATURE POINTS ...................
  5545.      1...(PROP(105)).. =,E14.6,/,
  5546.      2        1H ,4X,66HREFERENCE TEMPERATURE ..........................
  5547.      3...(PROP(106)).. =,E14.6,/,
  5548.      4        1H ,4X,66HCREEP LAW KEY ..................................
  5549.      5...(PROP(107)).. =,E14.6,/,
  5550.      6        1H ,4X,66HINTEGRATION PARAMETER ..........................
  5551.      7...(PROP(108)).. =,E14.6,/,
  5552.      8        1H ,4X,66HMAXIMUM NUMBER OF SUBDIVISIONS .................
  5553.      9...(PROP(109)).. =,E14.6,/,
  5554.      A        1H ,4X,66HMAXIMUM NUMBER OF ITERATIONS PER SUBDIVISION ...
  5555.      B...(PROP(110)).. =,E14.6,/,
  5556.      C        1H ,4X,66HALGORITHM INDICATOR ............................
  5557.      D...(PROP(111)).. =,E14.6,/,
  5558.      E        1H ,4X,66HCONVERGENCE TOLERANCE ..........................
  5559.      F...(PROP(112)).. =,E14.6,/,
  5560.      G        1H ,4X,66HINELASTIC STRAIN TOLERANCE .....................
  5561.      H...(PROP(113)).. =,E14.6,//)
  5562.  2305 FORMAT (1H ,4X,93HWARNING   THE USE OF PROP(110) .LT. 6 CAN RESULT
  5563.      1 IN A HIGHLY INACCURATE OR DIVERGENT SOLUTION)
  5564.  2500 FORMAT (1H ,4X,5HPROP(,I2,10H) ...... =,E14.6)
  5565.  3000 FORMAT (//,38H    ERROR   INCORRECT CREEP LAW NUMBER)
  5566.  3001 FORMAT (//,43H    ERROR   INCORRECT INTEGRATION PARAMETER)
  5567.  3002 FORMAT (//,50H    ERROR   INCORRECT NUMBER OF TEMPERATURE POINTS)
  5568.  3003 FORMAT (//,43H    ERROR   TEMPERATURE POINTS OUT OF ORDER)
  5569.  3400 FORMAT (//50H INPUT ERROR DETECTED IN (MATWRT/3D SOLID)         //
  5570.      1          19H ELEMENT GROUP NO = ,I5/
  5571.      2          27H MATERIAL PROPERTY SET NO = ,I5/
  5572.      4          50H YIELD FUNCTION PARAMETER K SHOULD BE GREATER      /
  5573.      5          20H THAN ZERO.            //)
  5574.  3401 FORMAT (//50H INPUT ERROR DETECTED IN (MATWRT/3D SOLID)         //
  5575.      1          19H ELEMENT GROUP NO = ,I5/
  5576.      2          27H MATERIAL PROPERTY SET NO = ,I5/
  5577.      2          38H ZERO OR NEGATIVE INITIAL YIELD STRESS  //)
  5578.  3402 FORMAT (//50H INPUT ERROR DETECTED IN (MATWRT/3D SOLID)         //
  5579.      1          19H ELEMENT GROUP NO = ,I5/
  5580.      2          27H MATERIAL PROPERTY SET NO = ,I5/
  5581.      3          44H HARDENING MODULUS (ET) GREATER OR EQUAL TO  ,
  5582.      4          44H YOUNG*S MODULUS (E) IS NOT ALLOWED          //)
  5583.  3403 FORMAT (//50H INPUT ERROR IN MATERIAL PROPERTIES                //
  5584.      1          15H  *** STOP ***   //)
  5585.  3404 FORMAT (//50H INPUT ERROR DETECTED IN (MATWRT/3D SOLID)         //
  5586.      4          19H ELEMENT GROUP NO = ,I5/
  5587.      3          27H MATERIAL PROPERTY SET NO = ,I5/
  5588.      2          42H IN THE MULTILINEAR ELASTIC-PLASTIC MODEL  /
  5589.      1          6H PROP(,I2,14H) EQUALS PROP(,I2,16H) IS NOT ALLOWED //)
  5590. C
  5591. C
  5592.       END
  5593. C *CDC* *DECK CAUCH3
  5594. C *UNI* )FOR,IS N.CAUCH3, R.CAUCH3
  5595.       SUBROUTINE CAUCH3
  5596. C
  5597. C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
  5598. C .                                                                   .
  5599. C .     CONVERTS PIOLA-KIRCHOFF STRESSES                              .
  5600. C .          TO CAUCHY STRESSES                                       .
  5601. C .                                                                   .
  5602. C .     CS  =  (1./DET(F))  *  (F * PK * F(TRANSPOSED)                .
  5603. C .                                                                   .
  5604. C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
  5605. C
  5606.       IMPLICIT REAL*8 (A-H,O-Z)
  5607.       COMMON/DISDR/ DISD(9)
  5608.       COMMON /MTMD3D/ D(6,6),STRESS(6),STRAIN(6),IPT,NEL,IPS
  5609. C
  5610. C
  5611.       F11=DISD(1) + 1.
  5612.       F12=DISD(4)
  5613.       F13=DISD(5)
  5614.       F21=DISD(6)
  5615.       F22=DISD(2) + 1.
  5616.       F23=DISD(7)
  5617.       F31=DISD(8)
  5618.       F32=DISD(9)
  5619.       F33=DISD(3) + 1.
  5620. C
  5621.       DET=    F11*F22*F33 + F12*F23*F31 + F13*F32*F21
  5622.       DET=DET-F13*F22*F31 - F23*F32*F11 - F33*F21*F12
  5623.       IF (DET.GT.0.) GO TO 760
  5624.       WRITE (6,2100) NEL,DET
  5625.       STOP
  5626. C
  5627.   760 DET=1.0/DET
  5628.       S11=STRESS(1)
  5629.       S22=STRESS(2)
  5630.       S33=STRESS(3)
  5631.       S12=STRESS(4)
  5632.       S13=STRESS(5)
  5633.       S23=STRESS(6)
  5634. C
  5635.       PKFT1=S11*F11 + S12*F12 + S13*F13
  5636.       PKFT2=S12*F11 + S22*F12 + S23*F13
  5637.       PKFT3=S13*F11 + S23*F12 + S33*F13
  5638.       STRESS(1)= DET*(F11*PKFT1 + F12*PKFT2 + F13*PKFT3)
  5639.       STRESS(4)= DET*(F21*PKFT1 + F22*PKFT2 + F23*PKFT3)
  5640.       STRESS(5)= DET*(F31*PKFT1 + F32*PKFT2 + F33*PKFT3)
  5641. C
  5642.       PKFT1=S11*F21 + S12*F22 + S13*F23
  5643.       PKFT2=S12*F21 + S22*F22 + S23*F23
  5644.       PKFT3=S13*F21 + S23*F22 + S33*F23
  5645.       STRESS(2)= DET*(F21*PKFT1 + F22*PKFT2 + F23*PKFT3)
  5646. C
  5647.       PKFT1=S11*F31 + S12*F32 + S13*F33
  5648.       PKFT2=S12*F31 + S22*F32 + S23*F33
  5649.       PKFT3=S13*F31 + S23*F32 + S33*F33
  5650.       STRESS(3)= DET*(F31*PKFT1 + F32*PKFT2 + F33*PKFT3)
  5651.       STRESS(6)= DET*(F21*PKFT1 + F22*PKFT2 + F23*PKFT3)
  5652. C
  5653.       RETURN
  5654.  2100 FORMAT (40H DETERMINANT NOT POSITIVE FOR ELEMENT = ,I4,/
  5655.      1        14H DETERMINANT =,E14.6/8H ***STOP)
  5656.       END
  5657. C *CDC* *DECK INTWA3
  5658. C *UNI* )FOR,IS  N.INTWA3, R.INTWA3
  5659.       SUBROUTINE INTWA3 (MODEL)
  5660. C
  5661. C     INITIALIZES WORKING VECTOR WA FOR THIS ELEMENT
  5662. C
  5663.       GO TO (1,2,3,4,4,6,7,8,8,10,10,12), MODEL
  5664. C
  5665. C
  5666. C     M O D E L   1     LINEAR ISOTROPIC
  5667. C
  5668.     1 RETURN
  5669. C
  5670. C     M O D E L   2     LINEAR ORTHOTROPIC
  5671. C
  5672.     2 RETURN
  5673. C
  5674. C     M O D E L   3     THERMOELASTIC MODEL
  5675. C
  5676. C *CDC*     3 CALL OVERLAY (5HADINA,4,1,6HRECALL)
  5677.     3 CALL ELT3D3
  5678.       RETURN
  5679. C
  5680. C     M O D E L   4    CURVE DESCRIPTION NONLINEAR MODEL
  5681. C     M O D E L   5    CONCRETE CRACKING MODEL
  5682. C
  5683. C *CDC*     4 CALL OVERLAY (5HADINA,4,2,6HRECALL)
  5684.     4 CALL ELT3D4
  5685.       RETURN
  5686. C
  5687. C     M O D E L   6     (EMPTY)
  5688. C
  5689. C *CDC*     6 CALL OVERLAY (5HADINA,4,3,6HRECALL)
  5690.     6 CALL ELT3D6
  5691.       RETURN
  5692. C
  5693. C     M O D E L  7    ELASTIC-PLASTIC (DRUCKER-PRAGER MODEL)
  5694. C
  5695. C *CDC*     7 CALL OVERLAY (5HADINA,4,4,6HRECALL)
  5696.     7 CALL ELT3D7
  5697.       RETURN
  5698. C
  5699. C     M O D E L   8    ELASTIC-PLASTIC (VON MISES / ISOTROPIC HARDENING)
  5700. C     M O D E L   9    ELASTIC-PLASTIC (VON MISES / KINEMATIC HARDENING)
  5701. C
  5702. C *CDC*     8 CALL OVERLAY (5HADINA,4,5,6HRECALL)
  5703.     8 CALL ELT3D8
  5704.       RETURN
  5705. C
  5706. C     M O D E L   10    ELASTIC-PLASTIC WITH CREEP (ISOTROPIC)
  5707. C     M O D E L   11    ELASTIC-PLASTIC WITH CREEP (KINEMATIC)
  5708. C
  5709. C *CDC*    10 CALL OVERLAY (5HADINA,4,6,6HRECALL)
  5710.    10 CALL EL3D10
  5711.       RETURN
  5712. C
  5713. C
  5714. C     M O D E L   12-16    (EMPTY)
  5715. C
  5716. C *CDC*    12 CALL OVERLAY (5HADINA,4,7,6HRECALL)
  5717.    12 CALL EL3D12
  5718.       RETURN
  5719. C
  5720.       END
  5721. C *CDC* *DECK QUADS3
  5722. C *UNI* )FOR,IS  N.QUADS3, R.QUADS3
  5723.       SUBROUTINE QUADS3 (ND,B,S,XYZ,PROP,DCA,RE,EDIS,EDISI,WA,NOD9,
  5724.      1                   MAXES)
  5725. C
  5726. C
  5727. C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
  5728. C .                                                                   .
  5729. C .                                                                   .
  5730. C .      HEXAHEDRAL CURVILINEAR THREE-DIMENSIONAL ELEMENTS            .
  5731. C .                                                                   .
  5732. C .      ISOPARAMETRIC OR SUBPARAMETRIC                               .
  5733. C .                                                                   .
  5734. C .                                                                   .
  5735. C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
  5736. C
  5737. C
  5738. C
  5739.       IMPLICIT REAL*8 (A-H,O-Z)
  5740.       COMMON /EL/ IND,ICOUNT,NPAR(20),NUMEG,NEGL,NEGNL,IMASS,IDAMP,ISTAT
  5741.      1            ,NDOFDM,KLIN,IEIG,IMASSN,IDAMPN
  5742.       COMMON /VAR/ NG,MODEX,IUPDT,KSTEP,ITEMAX,IEQREF,ITE,KPRI,
  5743.      1             IREF,IEQUIT,IPRI,KPLOTN,KPLOTE
  5744.       COMMON /THREED/ DE,IELD,IELX,IEL,NPT,IDW,NND9,ISOCOR
  5745.       COMMON /MTMD3D/ D(6,6),STRESS(6),STRAIN(6),IPT,NEL,IPS
  5746.       COMMON /GAUSS/ XG(4,4),WGT(4,4),EVAL2(9,2),EVAL3(27,3),E1,E2,E3
  5747. C
  5748.       DIMENSION B(1),S(1),XYZ(1),PROP(1),DCA(3,3),RE(1),EDIS(1),
  5749.      1          EDISI(1),WA(1),NOD9(1)
  5750.       DIMENSION DISD(9),TAU(6),XXX(63),BV(378),DI(6,6)
  5751. C
  5752.       EQUIVALENCE (NPAR(3),INDNL),(NPAR(10),NINT),(NPAR(11),NINTZ),
  5753.      1            (NPAR(15),MODEL)
  5754. C
  5755. C
  5756.       IF (IND.GE.4) GO TO 100
  5757. C
  5758. C
  5759. C     F I N D  S T I F F N E S S  O F  L I N E A R  E L E M E N T
  5760. C
  5761. C
  5762. C
  5763. C     INTEGRATE B(TRANSPOSED) * B
  5764. C
  5765.       DO 30 LX=1,NINT
  5766.       E1=XG(LX,NINT)
  5767.       DO 30 LY=1,NINT
  5768.       E2=XG(LY,NINT)
  5769.       DO 30 LZ=1,NINTZ
  5770.       E3=XG(LZ,NINTZ)
  5771.       WT=WGT(LX,NINT)*WGT(LY,NINT)*WGT(LZ,NINTZ)
  5772. C
  5773. C     EVALUATE STRAIN-DISPLACEMENT MATRIX B AND JACOBIAN DETERMINANT
  5774. C     AT THIS INTEGRATION POINT
  5775. C
  5776.       CALL DERIQ3 (NEL,XYZ,B,DET,E1,E2,E3,NOD9)
  5777. C
  5778.       FAC=WT*DET
  5779.       FAC=DSQRT(FAC)
  5780.       DO 10 I=1,ND
  5781.  10   B(I)=FAC*B(I)
  5782.       KL=0
  5783.       DO 20 I=1,ND
  5784.       DO 20 J=I,ND
  5785.       KL=KL+1
  5786.  20   S(KL)=S(KL)+B(I)*B(J)
  5787.  30   CONTINUE
  5788. C
  5789. C     MULTIPLY D BY THE INTEGRATED B(TRANSPOSED) * B
  5790. C
  5791.       CALL STST3L (NEL,XYZ,PROP,DCA,D,MAXES)
  5792. C
  5793.       CALL BTDB(B,D,S,MODEL,ND,1)
  5794. C
  5795.       RETURN
  5796. C
  5797. C
  5798. C     F I N D   N O N L I N E A R   E L E M E N T   M A T R I C E S
  5799. C
  5800. C
  5801.  100  IF (INDNL.LE.2) GO TO 120
  5802.       DO 110 J=1,ND
  5803.  110  XXX(J)=XYZ(J)+EDIS(J)
  5804. C
  5805. C     EVALUATE STRESS-STRAIN LAW IF LINEAR MATERIAL MODEL
  5806. C     USED IN THIS ELEMENT
  5807. C
  5808.  120  IF (MODEL.GT.2) GO TO 140
  5809.       IF (INDNL.LE.2) GO TO 130
  5810.       CALL STST3L (NEL,XXX,PROP,DCA,D,MAXES)
  5811.       GO TO 140
  5812.  130  CALL STST3L (NEL,XYZ,PROP,DCA,D,MAXES)
  5813. C
  5814. C
  5815. C     INTEGRATE STIFFNESS MATRIX AND ELEMENT NODAL FORCE EXPRESSION
  5816. C
  5817. C
  5818.   140 IPT=0
  5819.       DO 470 LX=1,NINT
  5820.       E1=XG(LX,NINT)
  5821.       DO 470 LY=1,NINT
  5822.       E2=XG(LY,NINT)
  5823.       DO 470 LZ=1,NINTZ
  5824.       E3=XG(LZ,NINTZ)
  5825.       WT=WGT(LX,NINT)*WGT(LY,NINT)*WGT(LZ,NINTZ)
  5826.       IPT=IPT+1
  5827.       IF (INDNL.EQ.3) GO TO 310
  5828. C
  5829. C
  5830. C     T O T A L   L A G R A N G I A N   F O R M U L A T I O N
  5831. C
  5832. C
  5833. C     EVALUATE DERIVATIVE OPERATOR B (IN COMPACTED FORM)
  5834. C
  5835.       CALL DERIQ3 (NEL,XYZ,B,DET,E1,E2,E3,NOD9)
  5836. C
  5837. C
  5838.       DO 150 I=1,9
  5839.  150  DISD(I)=0.0
  5840. C
  5841.       DO 160 J=3,ND,3
  5842.       I=J-1
  5843.       K=J-2
  5844.       DISD(1)=DISD(1)+B(K)*EDIS(K)
  5845.       DISD(2)=DISD(2)+B(I)*EDIS(I)
  5846.       DISD(3)=DISD(3)+B(J)*EDIS(J)
  5847.       DISD(4)=DISD(4)+B(I)*EDIS(K)
  5848.       DISD(5)=DISD(5)+B(J)*EDIS(K)
  5849.       DISD(6)=DISD(6)+B(K)*EDIS(I)
  5850.       DISD(7)=DISD(7)+B(J)*EDIS(I)
  5851.       DISD(8)=DISD(8)+B(K)*EDIS(J)
  5852.  160  DISD(9)=DISD(9)+B(I)*EDIS(J)
  5853. C
  5854. C     EVALUATE STRESS-STRAIN LAW AND CURRENT STRESSES
  5855. C
  5856.       CALL STST3N (DISD)
  5857. C
  5858.       IF (INDNL.LE.1) GO TO 332
  5859. C
  5860. C     EVALUATE DERIVATIVE OPERATOR INCLUDING THE INITIAL
  5861. C     DISPLACEMENT EFFECTS
  5862. C
  5863.       DO 63 K=3,ND,3
  5864.       J=K-1
  5865.       I=K-2
  5866.       L=6*I-5
  5867.       M=L+6
  5868.       N=M+6
  5869. C
  5870.       BV(L)=B(I)*DISD(1)+B(I)
  5871.       BV(L+1)=B(J)*DISD(4)
  5872.       BV(L+2)=B(K)*DISD(5)
  5873.       BV(L+3)=B(I)*DISD(4)+B(J)*DISD(1)+B(J)
  5874.       BV(L+4)=B(I)*DISD(5)+B(K)*DISD(1)+B(K)
  5875.       BV(L+5)=B(J)*DISD(5)+B(K)*DISD(4)
  5876. C
  5877.       BV(M)=B(I)*DISD(6)
  5878.       BV(M+1)=B(J)*DISD(2)+B(J)
  5879.       BV(M+2)=B(K)*DISD(7)
  5880.       BV(M+3)=B(I)*DISD(2)+B(J)*DISD(6)+B(I)
  5881.       BV(M+4)=B(I)*DISD(7)+B(K)*DISD(6)
  5882.       BV(M+5)=B(J)*DISD(7)+B(K)*DISD(2)+B(K)
  5883. C
  5884.       BV(N)=B(I)*DISD(8)
  5885.       BV(N+1)=B(J)*DISD(9)
  5886.       BV(N+2)=B(K)*DISD(3)+B(K)
  5887.       BV(N+3)=B(I)*DISD(9)+B(J)*DISD(8)
  5888.       BV(N+4)=B(I)*DISD(3)+B(K)*DISD(8)+B(I)
  5889.       BV(N+5)=B(J)*DISD(3)+B(K)*DISD(9)+B(J)
  5890.  63   CONTINUE
  5891. C
  5892. C     ADD STRESS CONTRIBUTION TO ELEMENT FORCE VECTOR
  5893. C
  5894.       FAC=WT*DET
  5895.       DO 170 I=1,6
  5896.  170  TAU(I)=STRESS(I)*FAC
  5897.       DO 180 K=3,ND,3
  5898.       I=K-2
  5899.       J=K-1
  5900.       L=6*I-6
  5901.       M=L+6
  5902.       N=L+12
  5903.       DO 179 II=1,6
  5904.       RE(I)=RE(I) + BV(L+II)*TAU(II)
  5905.       RE(J)=RE(J) + BV(M+II)*TAU(II)
  5906.   179 RE(K)=RE(K) + BV(N+II)*TAU(II)
  5907.   180 CONTINUE
  5908. C
  5909.       IF (ICOUNT-2) 190,190,470
  5910.  190  IF (IREF) 470,200,470
  5911. C
  5912. C     ADD LINEAR CONTRIBUTION TO ELEMENT STIFFNESS MATRIX
  5913. C
  5914. C        ISOTROPIC VERSION OF B(TRANSPOSED)*D*B
  5915. C
  5916.   200 IF (MODEL.NE.1 .AND. MODEL.NE.3) GO TO 300
  5917.       D11=D(1,1)*FAC
  5918.       D12=D(1,2)*FAC
  5919.       D44=D(4,4)*FAC
  5920.       N=1
  5921.       DO 83 J=1,ND
  5922.       K=6*(J-1)
  5923.       DB1=D11*BV(K+1)+D12*(BV(K+2)+BV(K+3))
  5924.       DB2=D11*BV(K+2)+D12*(BV(K+1)+BV(K+3))
  5925.       DB3=D11*BV(K+3)+D12*(BV(K+1)+BV(K+2))
  5926.       DB4=D44*BV(K+4)
  5927.       DB5=D44*BV(K+5)
  5928.       DB6=D44*BV(K+6)
  5929. C
  5930.       DO 73 I=J,ND
  5931.       K=6*(I-1)
  5932.       S(N)=S(N) + DB1*BV(K+1) + DB2*BV(K+2) + DB3*BV(K+3) + DB4*BV(K+4)
  5933.      1          + DB5*BV(K+5) + DB6*BV(K+6)
  5934.  73   N=N+1
  5935.  83   CONTINUE
  5936.       GO TO 465
  5937. C
  5938. C         ORTHOTROPIC VERSION OF B(TRANSPOSED)*D*B
  5939. C
  5940.   300 DO 301 I=1,6
  5941.       DO 301 J=1,6
  5942.   301 DI(I,J)=D(I,J)*FAC
  5943.       N=1
  5944.       DO 308 J=1,ND
  5945.       K=6*(J-1)
  5946.       DB1=0.
  5947.       DB2=0.
  5948.       DB3=0.
  5949.       DB4=0.
  5950.       DB5=0.
  5951.       DB6=0.
  5952. C
  5953.       DO 302 L=1,6
  5954.       DB1=DB1+BV(K+L)*DI(L,1)
  5955.       DB2=DB2+BV(K+L)*DI(L,2)
  5956.       DB3=DB3+BV(K+L)*DI(L,3)
  5957.       DB4=DB4+BV(K+L)*DI(L,4)
  5958.       DB5=DB5+BV(K+L)*DI(L,5)
  5959.       DB6=DB6+BV(K+L)*DI(L,6)
  5960.   302 CONTINUE
  5961. C
  5962.       DO 305 I=J,ND
  5963.       M=6*(I-1)
  5964.       S(N)=S(N)+DB1*BV(M+1)+DB2*BV(M+2)+DB3*BV(M+3)+DB4*BV(M+4)+
  5965.      1 DB5*BV(M+5)+DB6*BV(M+6)
  5966.   305 N=N+1
  5967.   308 CONTINUE
  5968.       GO TO 465
  5969. C
  5970. C
  5971. C     U P D A T E D    L A G R A N G I A N    F O R M U L A T I O N
  5972. C
  5973. C
  5974. C     EVALUATE DERIVATIVE OPERATOR B (IN COMPACTED FORM)
  5975. C
  5976.  310  CALL DERIQ3 (NEL,XXX,B,DET,E1,E2,E3,NOD9)
  5977. C
  5978. C
  5979.       DO 320 I=1,9
  5980.  320  DISD(I)=0.0
  5981. C
  5982. C     CALCULATE DISPLACEMENT DERIVATIVES
  5983. C
  5984. C        1. FOR MODEL = 1, USE ALMANSI STRAINS
  5985. C
  5986.       IF (MODEL.GT.1) GO TO 335
  5987.       DO 330 J=3,ND,3
  5988.       I=J-1
  5989.       K=J-2
  5990.       DISD(1)=DISD(1)+B(K)*EDIS(K)
  5991.       DISD(2)=DISD(2)+B(I)*EDIS(I)
  5992.       DISD(3)=DISD(3)+B(J)*EDIS(J)
  5993.       DISD(4)=DISD(4)+B(I)*EDIS(K)
  5994.       DISD(5)=DISD(5)+B(J)*EDIS(K)
  5995.       DISD(6)=DISD(6)+B(K)*EDIS(I)
  5996.       DISD(7)=DISD(7)+B(J)*EDIS(I)
  5997.       DISD(8)=DISD(8)+B(K)*EDIS(J)
  5998.  330  DISD(9)=DISD(9)+B(I)*EDIS(J)
  5999.       GO TO 337
  6000. C
  6001. C        2. FOR PLASTICITY AND CREEP MODELS (U.L.J. FORMULATION)
  6002. C           USE STRAIN INCREMENTS
  6003. C
  6004.   335 DO 336 J=3,ND,3
  6005.       I=J-1
  6006.       K=J-2
  6007.       DISD(1)=DISD(1) + B(K)*EDISI(K)
  6008.       DISD(2)=DISD(2) + B(I)*EDISI(I)
  6009.       DISD(3)=DISD(3) + B(J)*EDISI(J)
  6010.       DISD(4)=DISD(4) + B(I)*EDISI(K)
  6011.       DISD(5)=DISD(5) + B(J)*EDISI(K)
  6012.       DISD(6)=DISD(6) + B(K)*EDISI(I)
  6013.       DISD(7)=DISD(7) + B(J)*EDISI(I)
  6014.       DISD(8)=DISD(8) + B(K)*EDISI(J)
  6015.   336 DISD(9)=DISD(9) + B(I)*EDISI(J)
  6016. C
  6017. C     EVALUATE STRESS-STRAIN LAW AND CURRENT STRESSES
  6018. C
  6019.   337 CALL STST3N (DISD)
  6020. C
  6021. C     ADD STRESS CONTRIBUTION TO ELEMENT FORCE VECTOR
  6022. C
  6023.   332 FAC=WT*DET
  6024.       DO 340 I=1,6
  6025.  340  TAU(I)=STRESS(I)*FAC
  6026.       DO 350 K=3,ND,3
  6027.       I=K-2
  6028.       J=K-1
  6029.       RE(I)=RE(I)+B(I)*TAU(1)+B(J)*TAU(4)+B(K)*TAU(5)
  6030.       RE(J)=RE(J)+B(J)*TAU(2)+B(I)*TAU(4)+B(K)*TAU(6)
  6031.       RE(K)=RE(K)+B(K)*TAU(3)+B(I)*TAU(5)+B(J)*TAU(6)
  6032.   350 CONTINUE
  6033. C
  6034.       IF (ICOUNT-2) 360,360,470
  6035.  360  IF (IREF) 470,370,470
  6036. C
  6037. C     ADD LINEAR CONTRIBUTION TO ELEMENT STIFFNESS MATRIX
  6038. C
  6039.   370 DO 380 I=1,6
  6040.       DO 380 J=1,6
  6041.   380 DI(I,J)=D(I,J)*FAC
  6042. C
  6043.       CALL BTDB (B,DI,S,MODEL,ND,2)
  6044. C
  6045. C
  6046. C     T O T A L  A N D  U P D A T E D  F O R M U L A T I O N S
  6047. C
  6048. C
  6049. C     ADD NONLINEAR CONTRIBUTION TO STIFFNESS MATRIX
  6050. C
  6051. C
  6052.   465 IF (INDNL.EQ.1) GO TO 470
  6053.       KL=1
  6054.       DO 491 J=1,ND,3
  6055.       DB1=TAU(1)*B(J) + TAU(4)*B(J+1) + TAU(5)*B(J+2)
  6056.       DB2=TAU(4)*B(J) + TAU(2)*B(J+1) + TAU(6)*B(J+2)
  6057.       DB3=TAU(5)*B(J) + TAU(6)*B(J+1) + TAU(3)*B(J+2)
  6058.       KS1=KL
  6059.       KS2=KS1+ND-J+1
  6060.       KS3=KS2+ND-J
  6061.       DO 490 I=J,ND,3
  6062.       DUM=B(I)*DB1 + B(I+1)*DB2 + B(I+2)*DB3
  6063.       S(KS1)=S(KS1) + DUM
  6064.       S(KS2)=S(KS2) + DUM
  6065.       S(KS3)=S(KS3) + DUM
  6066.       KS1=KS1+3
  6067.       KS2=KS2+3
  6068.   490 KS3=KS3+3
  6069.   491 KL=KL+3*ND-3*J
  6070. C
  6071.   470 CONTINUE
  6072. C
  6073.       RETURN
  6074. C
  6075. C
  6076.       END
  6077. C *CDC* *DECK BTDB
  6078. C *UNI* )FOR, IS N.BTDB, R.BTDB
  6079.       SUBROUTINE BTDB(B,D,S,MODEL,ND,ICODE)
  6080. C
  6081. C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
  6082. C .                                                                   .
  6083. C .   P R O G R A M                                                   .
  6084. C .      TO MULTIPLY D BY B(TRANSPOSED)*B                             .
  6085. C .                                                                   .
  6086. C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
  6087. C
  6088.       IMPLICIT REAL*8 (A-H,O-Z)
  6089.       DIMENSION B(1),D(6,1),S(1),DS(9),BB(9),IPERM(3,3),KDX(3),LDX(3)
  6090.       DATA IPERM/ 1,4,5, 4,2,6, 5,6,3/
  6091. C
  6092.       IND=1
  6093.       IF (MODEL.EQ.1 .OR. MODEL.EQ.3) GO TO 20
  6094. C
  6095. C     CHECK FOR THE ORTHOTROPY OF THE MATERIAL
  6096. C
  6097.       DUM=0.0
  6098.       DO 10 I=4,6
  6099.       J=I-1
  6100.       DO 10 K=1,J
  6101.    10 DUM=DUM + DABS(D(K,I))
  6102.       IF (DUM.GT.1.0D-06) IND=2
  6103.       IF (IND.EQ.2) GO TO 20
  6104.       DUM=DABS(D(2,2)-D(1,1)) + DABS(D(3,3)-D(2,2)) + DABS(D(5,5)-D(4,4)
  6105.      1)+ DABS(D(6,6)-D(5,5)) + DABS(D(1,2)-D(2,3)) + DABS(D(2,3)-D(1,3))
  6106.       IF (DUM.GT.1.0D-06) IND=2
  6107. C
  6108.    20 IEL=ND/3
  6109.       D1=D(1,1)
  6110.       D2=D(1,2)
  6111.       D3=D(4,4)
  6112.       KL=1
  6113.       DO 85 II=1,IEL
  6114.       I0=3*(II-1)
  6115.       DO 80 JJ=II,IEL
  6116.       J0=3*(JJ-1)
  6117. C
  6118.       IF (ICODE.EQ.1) GO TO 35
  6119. C
  6120. C     LINEAR CONTRIBUTION TO NONLINEAR STIFFNESS MATRIX
  6121. C
  6122.       KS=KL
  6123.       IC=0
  6124.       DO 30 I=1,3
  6125.       DO 25 J=1,3
  6126.       IC=IC+1
  6127.       BB(IC)=B(I0+I)*B(J0+J)
  6128.       IF (II.EQ.JJ .AND. I.GT.J) GO TO 25
  6129.       DS(IC)=S(KS)
  6130.    25 KS=KS+1
  6131.    30 KS=KS+ND-I0-I-3
  6132.       GO TO 55
  6133. C
  6134. C     LINEAR STIFFNESS MATRIX
  6135. C
  6136.    35 KS=KL
  6137.       IC=0
  6138.       DO 50 I=1,3
  6139.       DO 40 J=1,3
  6140.       IC=IC+1
  6141.       BB(IC)=S(KS)
  6142.    40 KS=KS+1
  6143.    50 KS=KS+ND-I0-I-3
  6144. C
  6145.    55 IF (IND.EQ.2) GO TO 90
  6146. C
  6147. C     ISOTROPIC CASE
  6148. C
  6149.       KS1=KL
  6150.       KS2=KS1+ND-I0-1
  6151.       KS3=KS2+ND-I0-2
  6152.       S(KS1)=BB(1)*D1+(BB(5)+BB(9))*D3
  6153.       S(KS2+1)=BB(5)*D1+(BB(1)+BB(9))*D3
  6154.       S(KS3+2)=BB(9)*D1+(BB(1)+BB(5))*D3
  6155.       IF (II.EQ.JJ) GO TO 60
  6156.       S(KS1+1)=BB(2)*D2+BB(4)*D3
  6157.       S(KS2)=BB(4)*D2+BB(2)*D3
  6158.       S(KS1+2)=BB(3)*D2+BB(7)*D3
  6159.       S(KS3)=BB(7)*D2+BB(3)*D3
  6160.       S(KS2+2)=BB(6)*D2+BB(8)*D3
  6161.       S(KS3+1)=BB(8)*D2+BB(6)*D3
  6162.       GO TO 65
  6163.    60 S(KS1+1)=BB(2)*(D2+D3)
  6164.       S(KS1+2)=BB(3)*(D2+D3)
  6165.       S(KS2+2)=BB(6)*(D2+D3)
  6166.       GO TO 65
  6167. C
  6168. C     ORTHOTROPIC CASE
  6169. C
  6170.    90 IF (II.NE.JJ) GO TO 91
  6171.       BB(4)=BB(2)
  6172.       BB(7)=BB(3)
  6173.       BB(8)=BB(6)
  6174.    91 KS=KL
  6175.       DO 97 K=1,3
  6176.       DO 93 IJ=1,3
  6177.    93 KDX(IJ)=IPERM(IJ,K)
  6178.       DO 96 L=1,3
  6179.       IF (II.EQ.JJ .AND. K.GT.L) GO TO 96
  6180.       DO 94 IJ=1,3
  6181.    94 LDX(IJ)=IPERM(IJ,L)
  6182. C
  6183.       SUM=0.0
  6184.       IC=0
  6185.       DO 95 I=1,3
  6186.       K1=KDX(I)
  6187.       DO 95 J=1,3
  6188.       K2=LDX(J)
  6189.       IC=IC+1
  6190.    95 SUM=SUM+BB(IC)*D(K1,K2)
  6191.       S(KS)=SUM
  6192.    96 KS=KS+1
  6193.    97 KS=KS+ND-I0-K-3
  6194. C
  6195.    65 IF (ICODE.EQ.1) GO TO 80
  6196.       IC=0
  6197.       KS=KL
  6198.       DO 75 I=1,3
  6199.       DO 70 J=1,3
  6200.       IC=IC+1
  6201.       IF (II.EQ.JJ .AND. I.GT.J) GO TO 70
  6202.       S(KS)=S(KS)+DS(IC)
  6203.    70 KS=KS+1
  6204.    75 KS=KS+ND-I0-I-3
  6205. C
  6206.    80 KL=KL+3
  6207.    85 KL=KL+2*(ND-I0)-3
  6208. C
  6209.       RETURN
  6210.       END
  6211. C *CDC* *DECK QUADM3
  6212. C *UNI* )FOR,IS  N.QUADM3, R.QUADM3
  6213.       SUBROUTINE QUADM3  (N,ND,NDM2,XM,CM,XX,NOD9)
  6214. C
  6215. C
  6216. C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
  6217. C .                                                                   .
  6218. C .   P R O G R A M                                                   .
  6219. C .                                                                   .
  6220. C .      EVALUATES MASS MATRIX                                        .
  6221. C .                                                                   .
  6222. C .      CURVILINEAR HEXAHEDRON   8 TO 21 NODES                       .
  6223. C .                                                                   .
  6224. C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
  6225. C
  6226. C
  6227. C
  6228.       IMPLICIT REAL*8 (A-H,O-Z)
  6229.       COMMON /EL/ IND,ICOUNT,NPAR(20),NUMEG,NEGL,NEGNL,IMASS,IDAMP,ISTAT
  6230.      1            ,NDOFDM,KLIN,IEIG,IMASSN,IDAMPN
  6231.       COMMON /THREED/ DE,IELD,IELX,IEL,NPT,IDW,NND9,ISOCOR
  6232.       COMMON /GAUSS/ XG(4,4),WGT(4,4),EVAL2(9,2),EVAL3(27,3),E1,E2,E3
  6233.       DIMENSION XM(1),CM(1),XX(3,1),D(63),                 NOD9(1)
  6234.       DIMENSION H(21),P(3,21),XJ(3,3)
  6235. C
  6236. C
  6237. C     INTEGRATE USING GAUSS QUADRATURE
  6238. C
  6239. C
  6240.       IINTP=0
  6241.       NINTM=3
  6242.       NINTZM=3
  6243.       IF (IMASS.EQ.1) GO TO 9
  6244.       DO 8 I=1,NDM2
  6245.     8 CM(I)=0.0
  6246.       GO TO 10
  6247.     9 DO 7 I=1,ND
  6248.     7 XM(I)=0.
  6249. C
  6250.    10 DO 900 LX=1,NINTM
  6251.       R=XG(LX,NINTM)
  6252.       DO 900 LY=1,NINTM
  6253.       S=XG(LY,NINTM)
  6254.       DO 900 LZ=1,NINTZM
  6255.       T=XG(LZ,NINTZM)
  6256.       WT=WGT(LX,NINTM)*WGT(LY,NINTM)*WGT(LZ,NINTZM)
  6257. C
  6258. C
  6259. C     FIND INTERPOLATION FUNCTIONS AND THEIR DERIVATIVES
  6260. C     FIND JACOBIAN MATRIX AND ITS DETERMINANT
  6261. C
  6262. C
  6263.       CALL FUNCT (R,S,T,H,P,NOD9,XJ,DET,XX,IINTP)
  6264. C
  6265. C
  6266. C     CONSISTENT MASS MATRIX
  6267. C
  6268. C
  6269.       FAC=WT*DET*DE
  6270.       IF (IMASS.LT.2) GO TO 320
  6271.       DO 200 I=1,IEL
  6272.       D(3*I - 2)=H(I)
  6273.       D(3*I - 1)=H(I)
  6274.   200 D(3*I)=H(I)
  6275.       KL=1
  6276.       DO 300 I=1,ND,3
  6277.       DO 301 J=I,ND,3
  6278.       CM(KL)=CM(KL) + D(I)*D(J)*FAC
  6279.   301 KL=KL + 3
  6280.   300 KL=KL + 2*(ND-I) - 1
  6281.       GO TO 900
  6282. C
  6283. C
  6284. C     LUMPED MASS VECTOR
  6285. C
  6286. C
  6287.   320 DO 325 I=1,ND,3
  6288.       FACM=FAC/IEL
  6289.   325 XM(I)=XM(I) + FACM
  6290. C
  6291.   900 CONTINUE
  6292. C
  6293.       IF (IMASS.EQ.1) GO TO 335
  6294.       KL=1
  6295.       DO 450 I=1,ND,3
  6296.       KS1=KL + ND - I + 1
  6297.       KS2=KS1 + ND - I
  6298.       DO 451 J=I,ND,3
  6299.       CM(KS1)=CM(KL)
  6300.       CM(KS2)=CM(KL)
  6301.       KL=KL + 3
  6302.       KS1=KS1 + 3
  6303.   451 KS2=KS2 + 3
  6304.   450 KL=KL + 2*(ND-I) - 1
  6305.       RETURN
  6306. C
  6307.   335 DO 340 I=1,ND,3
  6308.       XM(I+1)=XM(I)
  6309.   340 XM(I+2)=XM(I)
  6310.       RETURN
  6311.       END
  6312. C *CDC* *DECK DERIQ3
  6313. C *UNI* )FOR,IS  N.DERIQ3, R.DERIQ3
  6314.       SUBROUTINE DERIQ3  (NEL,XX,B,DET,R,S,T,NOD9)
  6315. C
  6316. C
  6317. C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
  6318. C .                                                                   .
  6319. C .   P R O G R A M                                                   .
  6320. C .                                                                   .
  6321. C .      EVALUATES STRAIN-DISPLACEMENT MATRIX B AT POINT (R,S,T)      .
  6322. C .                                                                   .
  6323. C .      CURVILINEAR HEXAHEDRON   8 TO 21 NODES                       .
  6324. C .                                                                   .
  6325. C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
  6326. C
  6327. C
  6328. C
  6329.       IMPLICIT REAL*8 (A-H,O-Z)
  6330.       COMMON /EL/ IND,ICOUNT,NPAR(20),NUMEG,NEGL,NEGNL,IMASS,IDAMP,ISTAT
  6331.      1            ,NDOFDM,KLIN,IEIG,IMASSN,IDAMPN
  6332.       COMMON /THREED/ DE,IELD,IELX,IEL,NPT,IDW,NND9,ISOCOR
  6333.       DIMENSION XX(3,1),B(1),NOD9(1)
  6334.       DIMENSION H(21),P(3,21),XJ(3,3),XJI(3,3)
  6335. C
  6336. C
  6337. C     FIND INTERPOLATION FUNCTIONS AND THEIR DERIVATIVES
  6338. C     EVALUATE JACOBIAN MATRIX AT POINT (R,S,T)
  6339. C     COMPUTE DETERMINANT OF JACOBIAN MATRIX AT POINT (R,S,T)
  6340. C
  6341. C
  6342.       IINTP=0
  6343.       CALL FUNCT (R,S,T,H,P,NOD9,XJ,DET,XX,IINTP)
  6344. C
  6345. C
  6346. C     COMPUTE INVERSE OF JACOBIAN MATRIX
  6347. C
  6348. C
  6349.       DUM=1.0/DET
  6350.       XJI(1,1)=DUM*( XJ(2,2)*XJ(3,3) - XJ(2,3)*XJ(3,2))
  6351.       XJI(2,1)=DUM*(-XJ(2,1)*XJ(3,3) + XJ(2,3)*XJ(3,1))
  6352.       XJI(3,1)=DUM*( XJ(2,1)*XJ(3,2) - XJ(2,2)*XJ(3,1))
  6353.       XJI(1,2)=DUM*(-XJ(1,2)*XJ(3,3) + XJ(1,3)*XJ(3,2))
  6354.       XJI(2,2)=DUM*( XJ(1,1)*XJ(3,3) - XJ(1,3)*XJ(3,1))
  6355.       XJI(3,2)=DUM*(-XJ(1,1)*XJ(3,2) + XJ(1,2)*XJ(3,1))
  6356.       XJI(1,3)=DUM*( XJ(1,2)*XJ(2,3) - XJ(1,3)*XJ(2,2))
  6357.       XJI(2,3)=DUM*(-XJ(1,1)*XJ(2,3) + XJ(1,3)*XJ(2,1))
  6358.       XJI(3,3)=DUM*( XJ(1,1)*XJ(2,2) - XJ(1,2)*XJ(2,1))
  6359. C
  6360. C
  6361. C     EVALUATE B MATRIX IN GLOBAL (X,Y,Z) COORDINATES
  6362. C
  6363. C
  6364.       DO 130 K=1,IEL
  6365.       K2=K*3
  6366.       DO 125 I=1,3
  6367.   125 B(K2+1-I)=0.0
  6368.       DO 120 I=1,3
  6369.       B(K2-2)=B(K2-2) + XJI(1,I)*P(I,K)
  6370.       B(K2-1)=B(K2-1) + XJI(2,I)*P(I,K)
  6371.   120 B(K2)=B(K2) + XJI(3,I)*P(I,K)
  6372.   130 CONTINUE
  6373. C
  6374. C
  6375.       RETURN
  6376. C
  6377.       END
  6378. C *CDC* *DECK FUNCT
  6379. C *UNI* )FOR,IS  N.FUNCT,  R.FUNCT
  6380.       SUBROUTINE FUNCT (R,S,T,H,P,NOD9,XJ,DET,XX,IINTP)
  6381. C
  6382. C
  6383. C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
  6384. C .                                                                   .
  6385. C .   P R O G R A M                                                   .
  6386. C .                                                                   .
  6387. C .      TO FIND INTERPOLATION FUNCTIONS ( H )                        .
  6388. C .      AND DERIVATIVES ( P ) CORRESPONDING TO THE NODAL             .
  6389. C .      POINTS OF A CURVILINEAR ISOPARAMETRIC HEXAHEDRON             .
  6390. C .      OR SUBPARAMETRIC HEXAHEDRON (8 TO 21 NODES)                  .
  6391. C .                                                                   .
  6392. C .      TO FIND JACOBIAN ( XJ ) AND ITS DETERMINANT ( DET )          .
  6393. C .                                                                   .
  6394. C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
  6395. C
  6396. C
  6397.       IMPLICIT REAL*8 (A-H,O-Z)
  6398.       COMMON /VAR/   NG,MODEX,IUPDT,KSTEP,ITEMAX,IEQREF,ITE,KPRI,IREF,
  6399.      1               IEQUIT,IPRI,KPLOTN,KPLOTE
  6400.       COMMON /EL/ IND,ICOUNT,NPAR(20),NUMEG,NEGL,NEGNL,IMASS,IDAMP,
  6401.      1            ISTAT,NDOF,KLIN,IEIG,IMASSN,IDAMPN
  6402.       COMMON /THREED/ DE,IELD,IELX,IEL,NPT,IDW,NND9,ISOCOR
  6403.       COMMON /MTMD3D/ D(6,6),STRESS(6),STRAIN(6),IPT,NEL,IPS
  6404.       DIMENSION H(1),P(3,1),NOD9(1),IPERM(8),XJ(3,3),XX(3,1)
  6405.       EQUIVALENCE (NPAR(8),IDEGEN)
  6406. C
  6407.       DATA IPERM / 2,3,4,1,6,7,8,5 /
  6408. C
  6409.       RP=1.0 + R
  6410.       SP=1.0 + S
  6411.       TP=1.0 + T
  6412.       RM=1.0 - R
  6413.       SM=1.0 - S
  6414.       TM=1.0 - T
  6415.       RR=1.0 - R*R
  6416.       SS=1.0 - S*S
  6417.       TT=1.0 - T*T
  6418. C
  6419. C
  6420. C     INTERPOLATION FUNCTIONS AND THEIR DERIVATIVES
  6421. C
  6422. C
  6423. C     8-NODE BRICK
  6424. C
  6425.       H(1)=0.125*RP*SP*TP
  6426.       H(2)=0.125*RM*SP*TP
  6427.       H(3)=0.125*RM*SM*TP
  6428.       H(4)=0.125*RP*SM*TP
  6429.       H(5)=0.125*RP*SP*TM
  6430.       H(6)=0.125*RM*SP*TM
  6431.       H(7)=0.125*RM*SM*TM
  6432.       H(8)=0.125*RP*SM*TM
  6433. C
  6434.       P(1,1)= 0.125*SP*TP
  6435.       P(1,2)=-P(1,1)
  6436.       P(1,3)=-0.125*SM*TP
  6437.       P(1,4)=-P(1,3)
  6438.       P(1,5)= 0.125*SP*TM
  6439.       P(1,6)=-P(1,5)
  6440.       P(1,7)=-0.125*SM*TM
  6441.       P(1,8)=-P(1,7)
  6442. C
  6443.       P(2,1)= 0.125*RP*TP
  6444.       P(2,2)= 0.125*RM*TP
  6445.       P(2,3)=-P(2,2)
  6446.       P(2,4)=-P(2,1)
  6447.       P(2,5)= 0.125*RP*TM
  6448.       P(2,6)= 0.125*RM*TM
  6449.       P(2,7)=-P(2,6)
  6450.       P(2,8)=-P(2,5)
  6451. C
  6452.       P(3,1)= 0.125*RP*SP
  6453.       P(3,2)= 0.125*RM*SP
  6454.       P(3,3)= 0.125*RM*SM
  6455.       P(3,4)= 0.125*RP*SM
  6456.       P(3,5)=-P(3,1)
  6457.       P(3,6)=-P(3,2)
  6458.       P(3,7)=-P(3,3)
  6459.       P(3,8)=-P(3,4)
  6460. C
  6461.       IF (IEL.EQ.8) GO TO 80
  6462. C
  6463. C
  6464. C     ADD DEGREES OF FREEDOM IN EXCESS OF 8
  6465. C
  6466.       I=0
  6467.     2 I=I + 1
  6468.       IF (I.GT.NND9) GO TO 40
  6469.       NN=NOD9(I) - 8
  6470.       GO TO (9,10,11,12,13,14,15,16,17,18,19,20,21) ,NN
  6471. C
  6472.     9 H(9) =0.25*RR*SP*TP
  6473.       P(1,9) =-0.50*R*SP*TP
  6474.       P(2,9) = 0.25*RR*TP
  6475.       P(3,9) = 0.25*RR*SP
  6476.       GO TO 2
  6477.    10 H(10)=0.25*RM*SS*TP
  6478.       P(1,10)=-0.25*SS*TP
  6479.       P(2,10)=-0.50*RM*S*TP
  6480.       P(3,10)= 0.25*RM*SS
  6481.       GO TO 2
  6482.    11 H(11)=0.25*RR*SM*TP
  6483.       P(1,11)=-0.50*R*SM*TP
  6484.       P(2,11)=-0.25*RR*TP
  6485.       P(3,11)= 0.25*RR*SM
  6486.       GO TO 2
  6487.    12 H(12)=0.25*RP*SS*TP
  6488.       P(1,12)= 0.25*SS*TP
  6489.       P(2,12)=-0.50*RP*S*TP
  6490.       P(3,12)= 0.25*RP*SS
  6491.       GO TO 2
  6492.    13 H(13)=0.25*RR*SP*TM
  6493.       P(1,13)=-0.50*R*SP*TM
  6494.       P(2,13)= 0.25*RR*TM
  6495.       P(3,13)=-0.25*RR*SP
  6496.       GO TO 2
  6497.    14 H(14)=0.25*RM*SS*TM
  6498.       P(1,14)=-0.25*SS*TM
  6499.       P(2,14)=-0.50*RM*S*TM
  6500.       P(3,14)=-0.25*RM*SS
  6501.       GO TO 2
  6502.    15 H(15)=0.25*RR*SM*TM
  6503.       P(1,15)=-0.50*R*SM*TM
  6504.       P(2,15)=-0.25*RR*TM
  6505.       P(3,15)=-0.25*RR*SM
  6506.       GO TO 2
  6507.    16 H(16)=0.25*RP*SS*TM
  6508.       P(1,16)= 0.25*SS*TM
  6509.       P(2,16)=-0.50*RP*S*TM
  6510.       P(3,16)=-0.25*RP*SS
  6511.       GO TO 2
  6512.    17 H(17)=0.25*RP*SP*TT
  6513.       P(1,17)= 0.25*SP*TT
  6514.       P(2,17)= 0.25*RP*TT
  6515.       P(3,17)=-0.50*RP*SP*T
  6516.       GO TO 2
  6517.    18 H(18)=0.25*RM*SP*TT
  6518.       P(1,18)=-0.25*SP*TT
  6519.       P(2,18)= 0.25*RM*TT
  6520.       P(3,18)=-0.50*RM*SP*T
  6521.       GO TO 2
  6522.    19 H(19)=0.25*RM*SM*TT
  6523.       P(1,19)=-0.25*SM*TT
  6524.       P(2,19)=-0.25*RM*TT
  6525.       P(3,19)=-0.50*RM*SM*T
  6526.       GO TO 2
  6527.    20 H(20)=0.25*RP*SM*TT
  6528.       P(1,20)= 0.25*SM*TT
  6529.       P(2,20)=-0.25*RP*TT
  6530.       P(3,20)=-0.50*RP*SM*T
  6531.       GO TO 2
  6532.    21 H(21)=RR*SS*TT
  6533.       P(1,21)=-2.0*R*SS*TT
  6534.       P(2,21)=-2.0*S*RR*TT
  6535.       P(3,21)=-2.0*T*RR*SS
  6536.       GO TO 2
  6537. C
  6538. C     MODIFY FIRST 8 FUNCTIONS IF 9 OR MORE NODES IN ELEMENT
  6539. C
  6540.    40 IH=0
  6541.    41 IH=IH + 1
  6542.       IF (IH.GT.NND9) GO TO 50
  6543.       II=IH + 7
  6544.       IF (II.EQ.IELX) GO TO 81
  6545.    42 IN=NOD9(IH)
  6546.       IF (IN.GT.16) GO TO 46
  6547.       I1=IN - 8
  6548.       I2=IPERM(I1)
  6549.       H(I1)=H(I1) - 0.5*H(IN)
  6550.       H(I2)=H(I2) - 0.5*H(IN)
  6551.       H(IH+8)=H(IN)
  6552.       DO 45 J=1,3
  6553.       P(J,I1)=P(J,I1) - 0.5*P(J,IN)
  6554.       P(J,I2)=P(J,I2) - 0.5*P(J,IN)
  6555.    45 P(J,IH+8)=P(J,IN)
  6556.       GO TO 41
  6557.    46 IF (IN.EQ.21) GO TO 30
  6558.       I1=IN - 16
  6559.       I2=I1 + 4
  6560.       H(I1)=H(I1) - 0.5*H(IN)
  6561.       H(I2)=H(I2) - 0.5*H(IN)
  6562.       H(IH+8)=H(IN)
  6563.       DO 47 J=1,3
  6564.       P(J,I1)=P(J,I1) - 0.5*P(J,IN)
  6565.       P(J,I2)=P(J,I2) - 0.5*P(J,IN)
  6566.    47 P(J,IH+8)=P(J,IN)
  6567.       GO TO 41
  6568. C
  6569. C     MODIFY FIRST 20 FUNCTIONS IF NODE 21 IS PRESENT
  6570. C
  6571.    30 IH=0
  6572.    31 IH=IH + 1
  6573.       IN=NOD9(IH)
  6574.       IF (IN.EQ.21) GO TO 35
  6575.       IF (IN.GT.16) GO TO 33
  6576.       I1=IN - 8
  6577.       I2=IPERM(I1)
  6578.       H(I1)=H(I1) + 0.125*H(21)
  6579.       H(I2)=H(I2) + 0.125*H(21)
  6580.       DO 32 J=1,3
  6581.       P(J,I1)=P(J,I1) + 0.125*P(J,21)
  6582.    32 P(J,I2)=P(J,I2) + 0.125*P(J,21)
  6583.       GO TO 31
  6584.    33 I1=IN - 16
  6585.       I2=I1 + 4
  6586.       H(I1)=H(I1) + 0.125*H(21)
  6587.       H(I2)=H(I2) + 0.125*H(21)
  6588.       DO 34 J=1,3
  6589.       P(J,I1)=P(J,I1) + 0.125*P(J,21)
  6590.    34 P(J,I2)=P(J,I2) + 0.125*P(J,21)
  6591.       GO TO 31
  6592.    35 DO 36 I=1,8
  6593.       H(I)=H(I) - 0.125*H(21)
  6594.       DO 36 J=1,3
  6595.    36 P(J,I)=P(J,I) - 0.125*P(J,21)
  6596.       NN=NND9 + 7
  6597.       IF (NN.EQ.8) GO TO 50
  6598.       DO 38 I=9,NN
  6599.       H(I)=H(I) - 0.25*H(21)
  6600.       DO 38 J=1,3
  6601.    38 P(J,I)=P(J,I) - 0.25*P(J,21)
  6602.       H(NND9+8)=H(21)
  6603.       DO 39 J=1,3
  6604.    39 P(J,NND9+8)=P(J,21)
  6605. C
  6606. C     MODIFY APPROPRIATE INTERPOLATION FUNCTIONS AND THEIR DERIVATIVES
  6607. C     FOR SPATIAL ISOTROPY FOR SPECIALLY DEGENERATED  20-NODE ELEMENTS
  6608. C
  6609.    50 IF (IDEGEN.LE.0) GO TO 80
  6610.       GO TO (80,60,70),ISOCOR
  6611. C
  6612. C     CORRECTIONS FOR PRISMS
  6613. C
  6614.    60 RSF=RR*SS*0.0625
  6615.       TPF=TP*0.125
  6616.       TMF=TM*0.125
  6617.       RSS=R*SS
  6618.       RRS=RR*S
  6619.       DHT=TP*RSF
  6620.       DHB=TM*RSF
  6621.       DHTR=-RSS*TPF
  6622.       DHTS=-RRS*TPF
  6623.       DHTT= RSF
  6624.       DHBR=-RSS*TMF
  6625.       DHBS=-RRS*TMF
  6626.       DHBT=-RSF
  6627. C
  6628.       H( 2)=H( 2) + DHT
  6629.       H( 3)=H( 3) + DHT
  6630.       H( 6)=H( 6) + DHB
  6631.       H( 7)=H( 7) + DHB
  6632.       H(10)=H(10) - DHT - DHT
  6633.       H(14)=H(14) - DHB - DHB
  6634. C
  6635.       P(1,2)=P(1,2) + DHTR
  6636.       P(2,2)=P(2,2) + DHTS
  6637.       P(3,2)=P(3,2) + DHTT
  6638.       P(1,3)=P(1,3) + DHTR
  6639.       P(2,3)=P(2,3) + DHTS
  6640.       P(3,3)=P(3,3) + DHTT
  6641.       P(1,6)=P(1,6) + DHBR
  6642.       P(2,6)=P(2,6) + DHBS
  6643.       P(3,6)=P(3,6) + DHBT
  6644.       P(1,7)=P(1,7) + DHBR
  6645.       P(2,7)=P(2,7) + DHBS
  6646.       P(3,7)=P(3,7) + DHBT
  6647.       P(1,10)=P(1,10) - DHTR - DHTR
  6648.       P(2,10)=P(2,10) - DHTS - DHTS
  6649.       P(3,10)=P(3,10) - DHTT - DHTT
  6650.       P(1,14)=P(1,14) - DHBR - DHBR
  6651.       P(2,14)=P(2,14) - DHBS - DHBS
  6652.       P(3,14)=P(3,14) - DHBT - DHBT
  6653. C
  6654.       GO TO 80
  6655. C
  6656. C     CORRECTIONS FOR TETRAHEDRA
  6657. C
  6658.    70 RSF=RR*SS*0.0625
  6659.       STF=SS*TT*0.0625
  6660.       RTF=RR*TT*0.0625
  6661.       RTT=R*TT*0.125
  6662.       RRT=RR*T*0.125
  6663.       DHB=RM*STF
  6664.       DHC=SP*RTF
  6665.       DHD=TM*RSF
  6666.       DHE=SM*RTF
  6667.       DHF=RR*STF*0.5
  6668.       DHBR=-STF
  6669.       DHCR=-SP*RTT
  6670.       DHDR=-R*SS*TM*0.125
  6671.       DHER=-SM*RTT
  6672.       DHFR=-R*STF
  6673.       DHBS=-RM*S*TT*0.125
  6674.       DHCS= RTF
  6675.       DHDS=-S*RR*TM*0.125
  6676.       DHES=-RTF
  6677.       DHFS=-S*RTF
  6678.       DHBT=-RM*SS*T*0.125
  6679.       DHCT=-SP*RRT
  6680.       DHDT=-RSF
  6681.       DHET=-SM*RRT
  6682.       DHFT=-T*RSF
  6683.       SBDF=DHB+DHD-DHF
  6684.       SBDFR=DHBR+DHDR-DHFR
  6685.       SBDFS=DHBS+DHDS-DHFS
  6686.       SBDFT=DHBT+DHDT-DHFT
  6687. C
  6688.       H( 5)=H( 5) + DHC + DHE
  6689.       H( 6)=H( 6) + DHC + SBDF
  6690.       H( 7)=H( 7) + DHE + SBDF
  6691.       H(13)=H(13) - DHC - DHC
  6692.       H(14)=H(14) - SBDF - SBDF
  6693.       H(15)=H(15) - DHE - DHE
  6694. C
  6695.       P(1,5)=P(1,5) + DHCR + DHER
  6696.       P(2,5)=P(2,5) + DHCS + DHES
  6697.       P(3,5)=P(3,5) + DHCT + DHET
  6698.       P(1,6)=P(1,6) + DHCR + SBDFR
  6699.       P(2,6)=P(2,6) + DHCS + SBDFS
  6700.       P(3,6)=P(3,6) + DHCT + SBDFT
  6701.       P(1,7)=P(1,7) + DHER + SBDFR
  6702.       P(2,7)=P(2,7) + DHES + SBDFS
  6703.       P(3,7)=P(3,7) + DHET + SBDFT
  6704.       P(1,13)=P(1,13) - DHCR - DHCR
  6705.       P(2,13)=P(2,13) - DHCS - DHCS
  6706.       P(3,13)=P(3,13) - DHCT - DHCT
  6707.       P(1,14)=P(1,14) - SBDFR - SBDFR
  6708.       P(2,14)=P(2,14) - SBDFS - SBDFS
  6709.       P(3,14)=P(3,14) - SBDFT - SBDFT
  6710.       P(1,15)=P(1,15) - DHER - DHER
  6711.       P(2,15)=P(2,15) - DHES - DHES
  6712.       P(3,15)=P(3,15) - DHET - DHET
  6713. C
  6714. C
  6715. C     EVALUATE JACOBIAN MATRIX AT POINT (R,S,T)
  6716. C
  6717. C
  6718.    80 IF (IELX.LT.IELD) RETURN
  6719.    81 IF (IINTP.GT.0) GO TO 110
  6720.       DO 100 I=1,3
  6721.       DO 100 J=1,3
  6722.       DUM=0.0
  6723.       DO 90 K=1,IELX
  6724.    90 DUM=DUM + P(I,K)*XX(J,K)
  6725.   100 XJ(I,J)=DUM
  6726. C
  6727. C
  6728. C     COMPUTE DETERMINANT OF JACOBIAN MATRIX AT POINT (R,S,T)
  6729. C
  6730. C
  6731.       DET = XJ(1,1)*XJ(2,2)*XJ(3,3)
  6732.      1    + XJ(1,2)*XJ(2,3)*XJ(3,1)
  6733.      2    + XJ(1,3)*XJ(2,1)*XJ(3,2)
  6734.      3    - XJ(1,3)*XJ(2,2)*XJ(3,1)
  6735.      4    - XJ(1,2)*XJ(2,1)*XJ(3,3)
  6736.      5    - XJ(1,1)*XJ(2,3)*XJ(3,2)
  6737.       IF (DET.GT.1.0D-08) GO TO 110
  6738.       WRITE (6,2000) NG,NEL
  6739.       STOP
  6740.   110 IF (IELX.LT.IELD) GO TO 42
  6741. C
  6742. C
  6743.       RETURN
  6744. C
  6745. C
  6746. C
  6747.  2000 FORMAT (////14H *** ERROR ***/18H ELEMENT GROUP NO.,I5/
  6748.      1        44H ZERO JACOBIAN DETERMINANT FOR 3/D ELEMENT (,I4,1H))
  6749. C
  6750. C
  6751.       END
  6752. C *CDC* *DECK STST3L
  6753. C *UNI* )FOR,IS  N.STST3L, R.STST3L
  6754.       SUBROUTINE STST3L  (NEL,XX,PROP,DCA,C,MAXES)
  6755. C
  6756. C
  6757. C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
  6758. C .                                                                   .
  6759. C .                                                                   .
  6760. C .   P R O G R A M                                                   .
  6761. C .                                                                   .
  6762. C .      TO GENERATE STRESS-STRAIN LAW FOR                            .
  6763. C .        ISOTROPIC OR ORTHOTROPIC LINEAR ELASTIC                    .
  6764. C .          THREE-DIMENSIONAL MATERIALS                              .
  6765. C .                                                                   .
  6766. C .                                                                   .
  6767. C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
  6768. C
  6769. C
  6770. C
  6771.       IMPLICIT REAL*8 (A-H,O-Z)
  6772.       COMMON /EL/ IND,ICOUNT,NPAR(20),NUMEG,NEGL,NEGNL,IMASS,IDAMP,ISTAT
  6773.      1            ,NDOFDM,KLIN,IEIG,IMASSN,IDAMPN
  6774.       COMMON /THREED/ DE,IELD,IELX,IEL,NPT,IDW,NND9,ISOCOR
  6775.       DIMENSION XX(3,1),PROP(1),DCA(3,1),C(6,1)
  6776.       DIMENSION TEMP(6,6),DUM(6,6),IPRM(3),IPERM(3)
  6777. C
  6778.       EQUIVALENCE (NPAR(15),MODEL)
  6779.       DATA IPRM / 2, 3, 1/, IPERM / 3, 4, 2/
  6780. C
  6781. C
  6782. C
  6783.       GO TO (1,100), MODEL
  6784. C
  6785. C
  6786. C     M O D E L  1     LINEAR ELASTIC ISOTROPIC
  6787. C
  6788. C
  6789.     1 YM=PROP(1)
  6790.       PV=PROP(2)
  6791. C
  6792.       C1=1. - 2.*PV
  6793.       B1=YM/(1. + PV)
  6794.       A1=B1/C1
  6795.       D1=1. - PV
  6796. C
  6797.       DO 9 I=1,6
  6798.       DO 9 J=I,6
  6799.     9 C(I,J)=0.0
  6800.       DO 10 I=1,3
  6801.    10 C(I,I)=A1*D1
  6802.       DO 11 I=2,3
  6803.    11 C(1,I)=A1*PV
  6804.       C(2,3)=A1*PV
  6805.       DO 12 I=4,6
  6806.    12 C(I,I)=B1/2.
  6807.       DO 13 I=1,6
  6808.       DO 13 J=I,6
  6809.    13 C(J,I)=C(I,J)
  6810. C
  6811.       RETURN
  6812. C
  6813. C     M O D E L  2     LINEAR ELASTIC ORTHOTROPIC
  6814. C
  6815. C     FORM THE DIRECT STRAIN PARTITION OF THE STRAIN-STRESS LAW IN
  6816. C     MATERIAL COORDINATES (X1,X2,X3)
  6817. C
  6818.   100 DO 120 I=1,3
  6819.   120 TEMP(I,I) = 1.0/PROP(I)
  6820. C
  6821.       TEMP(1,2) = - PROP(4)*TEMP(2,2)
  6822.       TEMP(2,1) =           TEMP(1,2)
  6823.       TEMP(1,3) = - PROP(5)*TEMP(3,3)
  6824.       TEMP(3,1) =           TEMP(1,3)
  6825.       TEMP(2,3) = - PROP(6)*TEMP(3,3)
  6826.       TEMP(3,2) =           TEMP(2,3)
  6827. C
  6828. C     INVERT THE DIRECT STRAIN PARTITION
  6829. C
  6830.       DO 160 N=1,3
  6831.       X=1.0/TEMP(N,N)
  6832.       DO 130 J=1,3
  6833.   130 TEMP(N,J)= - TEMP(N,J)*X
  6834. C
  6835.       DO 150 I=1,3
  6836.       IF (N.EQ.I) GO TO 150
  6837.       DO 140 J=1,3
  6838.       IF (N.EQ.J) GO TO 140
  6839.       TEMP(I,J)=TEMP(I,J) + TEMP(I,N)*TEMP(N,J)
  6840.   140 CONTINUE
  6841.   150 TEMP(I,N)=TEMP(I,N)*X
  6842. C
  6843.       TEMP(N,N)=X
  6844.   160 CONTINUE
  6845. C
  6846. C     FORM THE COMPLETE STRESS STRAIN LAW IN MATERIAL COORDINATES
  6847. C
  6848.       DO 170 I=1,6
  6849.       DO 170 J=1,6
  6850.   170 C(I,J)=0.0
  6851.       DO 180 I=1,3
  6852.       DO 180 J=1,3
  6853.   180 C(I,J)=TEMP(I,J)
  6854. C
  6855.       C(4,4)=PROP(7)
  6856.       C(5,5)=PROP(8)
  6857.       C(6,6)=PROP(9)
  6858. C
  6859. C     TRANSFORMATION BETWEEN MATERIAL STRAINS AND GLOBAL STRAINS
  6860.       IF (MAXES.LT.1) RETURN
  6861.       DO 200 I1=1,3
  6862.       I2=IPRM(I1)
  6863.       I3=IPERM(I1)
  6864.       DO 190 J1=1,3
  6865.       J2=IPRM(J1)
  6866.       J3=IPERM(J1)
  6867.       TEMP(I1   ,J1   ) = DCA(J1,I1)*DCA(J1,I1)
  6868.       TEMP(I1+I3,J1   ) = DCA(J1,I1)*DCA(J1,I2)*2.0
  6869.       TEMP(I1   ,J1+J3) = DCA(J1,I1)*DCA(J2,I1)
  6870.       TEMP(I1+I3,J1+J3) = DCA(J1,I1)*DCA(J2,I2) + DCA(J2,I1)*DCA(J1,I2)
  6871.   190 CONTINUE
  6872.   200 CONTINUE
  6873. C
  6874. C     ROTATE THE MATERIAL LAW TO THE GLOBAL SYSTEM
  6875. C
  6876.       DO 230 I=1,6
  6877.       DO 220 J=1,6
  6878.       X=0.0
  6879.       DO 210 K=1,6
  6880.   210 X=X + C(I,K)*TEMP(K,J)
  6881.   220 DUM(I,J)=X
  6882.   230 CONTINUE
  6883. C
  6884.       DO 260 I=1,6
  6885.       DO 250 J=I,6
  6886.       X=0.0
  6887.       DO 240 K=1,6
  6888.   240 X=X + TEMP(K,I)*DUM(K,J)
  6889.       C(I,J)=X
  6890.   250 C(J,I) = X
  6891.   260 CONTINUE
  6892. C
  6893.       RETURN
  6894.       END
  6895. C *CDC* *DECK CROSS2
  6896. C *UNI* )FOR,IS N.CROSS2, R.CROSS2
  6897.       SUBROUTINE CROSS2 (A,B,C,IERR)
  6898. C
  6899. C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
  6900. C .                                                                   .
  6901. C .   P R O G R A M                                                   .
  6902. C .      TO FORM THE VECTOR PRODUCT C=A*B, WHERE C IS NORMALISED TO   .
  6903. C .      UNIT LENGTH                                                  .
  6904. C .                                                                   .
  6905. C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
  6906.       IMPLICIT REAL*8 (A-H,O-Z)
  6907.       DIMENSION A(3),B(3),C(3)
  6908.       X=A(2)*B(3) - A(3)*B(2)
  6909.       Y=A(3)*B(1) - A(1)*B(3)
  6910.       Z=A(1)*B(2) - A(2)*B(1)
  6911.       XLN=DSQRT(X*X + Y*Y + Z*Z)
  6912.       IERR=1
  6913.       IF (XLN.LE.0.00000001D0) RETURN
  6914.       XLN=1.0/XLN
  6915.       C(1)=X*XLN
  6916.       C(2)=Y*XLN
  6917.       C(3)=Z*XLN
  6918.       IERR=0
  6919.       RETURN
  6920.       END
  6921. C *CDC* *DECK VECTR2
  6922. C *UNI* )FOR,IS N.VECTR2, R.VECTR2
  6923.       SUBROUTINE VECTR2 (C,XI,YI,ZI,XJ,YJ,ZJ,IERR)
  6924. C
  6925. C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
  6926. C .                                                                   .
  6927. C .   P R O G R A M                                                   .
  6928. C .   TO FORM A UNIT LENGTH VECTOR V FROM POINT I TO POINT J IN       .
  6929. C .      X Y Z  SPACE                                                 .
  6930. C .                                                                   .
  6931. C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
  6932.       IMPLICIT REAL*8 (A-H,O-Z)
  6933.       DIMENSION C(3)
  6934.       X=XJ - XI
  6935.       Y=YJ - YI
  6936.       Z=ZJ - ZI
  6937.       XLN=DSQRT(X*X + Y*Y + Z*Z)
  6938.       IERR=1
  6939.       IF (XLN.LE.0.00000001D0) RETURN
  6940.       XLN=1.0/XLN
  6941.       C(1)=X*XLN
  6942.       C(2)=Y*XLN
  6943.       C(3)=Z*XLN
  6944.       IERR=0
  6945.       RETURN
  6946.       END
  6947. C *CDC* *DECK STST3N
  6948. C *UNI* )FOR,IS N.STST3N, R.STST3N
  6949.       SUBROUTINE STST3N (DISD)
  6950. C
  6951. C
  6952. C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
  6953. C .                                                                   .
  6954. C .     S U B R O U T I N E                                           .
  6955. C .                                                                   .
  6956. C .        TO FIND STRESSES FOR ALL MATERIAL MODELS AND               .
  6957. C .           STRESS-STRAIN LAW FOR NONLINEAR MATERIAL MODELS         .
  6958. C .                                                                   .
  6959. C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
  6960. C
  6961. C
  6962.       IMPLICIT REAL*8 (A-H,O-Z)
  6963.       COMMON /EL/ IND,ICOUNT,NPAR(20),NUMEG,NEGL,NEGNL,IMASS,IDAMP,ISTAT
  6964.      1           ,NDOF,KLIN,IEIG,IMASSN,IDAMPN
  6965.       COMMON /MTMD3D/ D(6,6),STRESS(6),STRAIN(6),IPT,NEL,IPS
  6966. C
  6967.       DIMENSION DISD(1),DN(6)
  6968. C
  6969.       EQUIVALENCE (NPAR(3),INDNL), (NPAR(15),MODEL)
  6970. C
  6971. C
  6972. C     D E F I N I T I O N   O F   S T R A I N
  6973. C
  6974. C
  6975. C     LINEAR STRAIN TERMS
  6976. C
  6977.       STRAIN(1)=DISD(1)
  6978.       STRAIN(2)=DISD(2)
  6979.       STRAIN(3)=DISD(3)
  6980.       STRAIN(4)=DISD(4) + DISD(6)
  6981.       STRAIN(5)=DISD(5) + DISD(8)
  6982.       STRAIN(6)=DISD(7) + DISD(9)
  6983.       IF (INDNL.LE.1) GO TO 80
  6984. C
  6985. C     NONLINEAR STRAIN TERMS
  6986. C
  6987.       DN(1)=0.5*(DISD(1)*DISD(1)+DISD(6)*DISD(6)+DISD(8)*DISD(8))
  6988.       DN(2)=0.5*(DISD(4)*DISD(4)+DISD(2)*DISD(2)+DISD(9)*DISD(9))
  6989.       DN(3)=0.5*(DISD(5)*DISD(5)+DISD(7)*DISD(7)+DISD(3)*DISD(3))
  6990.       DN(4)=    (DISD(1)*DISD(4)+DISD(6)*DISD(2)+DISD(8)*DISD(9))
  6991.       DN(5)=    (DISD(1)*DISD(5)+DISD(6)*DISD(7)+DISD(8)*DISD(3))
  6992.       DN(6)=    (DISD(4)*DISD(5)+DISD(2)*DISD(7)+DISD(9)*DISD(3))
  6993. C
  6994.       IF(INDNL.EQ.3) GO TO 29
  6995. C
  6996. C     CALCULATE GREEN-LAGRANGE STRAINS (TOTAL LAGRANGE FORMULATION)
  6997. C
  6998.       DO 34 I=1,6
  6999.    34 STRAIN(I)=STRAIN(I)+DN(I)
  7000.       GO TO 80
  7001. C
  7002. C     CALCULATE ALMANSI STRAINS (UPDATED LAGRANGIAN FORMULATION AND
  7003. C     LINEAR ELASTIC MODEL)
  7004. C
  7005.    29 IF (MODEL.GT.1) GO TO 80
  7006.       DO 44 I=1,6
  7007.    44 STRAIN(I)=STRAIN(I)-DN(I)
  7008. C
  7009. C
  7010. C     C A L C U L A T I O N   O F   S T R E S S - S T R A I N
  7011. C          M A T R I X   A N D   S T R E S S E S
  7012. C
  7013. C
  7014.    80 GO TO (1,2,3,4,4,6,7,8,8,10,10,12) ,MODEL
  7015. C
  7016. C
  7017. C.... MODEL = 1     L I N E A R   I S O T R O P I C
  7018. C
  7019.     1 DO 100 I=1,3
  7020.       STRESS(I)=D(I,1)*STRAIN(1) + D(I,2)*STRAIN(2) + D(I,3)*STRAIN(3)
  7021.   100 STRESS(I+3)=D(4,4)*STRAIN(I+3)
  7022.       RETURN
  7023. C
  7024. C
  7025. C.... MODEL = 2     L I N E A R   O R T H O T R O P I C
  7026. C
  7027.     2 DO 200 I=1,6
  7028.       STRESS(I)=0.
  7029.       DO 200 J=1,6
  7030.   200 STRESS(I)= STRESS(I) + D(I,J)*STRAIN(J)
  7031.       RETURN
  7032. C
  7033. C
  7034. C.... MODEL = 3     T H E R M O E L A S T I C
  7035. C
  7036. C *CDC*     3 CALL OVERLAY (5HADINA,4,1,6HRECALL)
  7037.     3 CALL ELT3D3
  7038.       RETURN
  7039. C
  7040. C
  7041. C.... MODEL = 4     C U R V E  D E S C R I P T I O N  M O D E L
  7042. C.... MODEL = 5     C O N C R E T E  C R A C K I N G  M O D E L
  7043. C
  7044. C *CDC*     4 CALL OVERLAY (5HADINA,4,2,6HRECALL)
  7045.     4 CALL ELT3D4
  7046.       RETURN
  7047. C
  7048. C.... MODEL = 6     (EMPTY)
  7049. C
  7050. C *CDC*     6 CALL OVERLAY (5HADINA,4,3,6HRECALL)
  7051.     6 CALL ELT3D6
  7052.       RETURN
  7053. C
  7054. C.... MODEL = 7     E L A S T I C - P L A S T I C  (DRUCKER-PRAGER)
  7055. C
  7056. C *CDC*     7 CALL OVERLAY (5HADINA,4,4,6HRECALL)
  7057.     7 CALL ELT3D7
  7058.       RETURN
  7059. C
  7060. C.... MODEL = 8,9    E L A S T I C - P L A S T I C (VON MISES)
  7061. C
  7062. C *CDC*     8 CALL OVERLAY (5HADINA,4,5,6HRECALL)
  7063.     8 CALL ELT3D8
  7064.       RETURN
  7065. C
  7066. C
  7067. C... MODEL = 10,11    E L A S T I C - P L A S T I C (WITH CREEP)
  7068. C
  7069. C *CDC*    10 CALL OVERLAY (5HADINA,4,6,6HRECALL)
  7070.    10 CALL EL3D10
  7071.       RETURN
  7072. C
  7073. C.... MODEL = 12     (EMPTY)
  7074. C
  7075. C *CDC*    12 CALL OVERLAY (5HADINA,4,7,6HRECALL)
  7076.    12 CALL EL3D12
  7077.       RETURN
  7078. C
  7079.       END
  7080. C *CDC* *DECK CGDT3
  7081. C *UNI* )FOR,IS  N.CGDT3,R.CGDT3
  7082. C
  7083.       SUBROUTINE CGDT3 (XYZ,EDIS,ND,NOD9,E1,E2,E3,IDEATH,EDISB)
  7084. C
  7085. C
  7086. C
  7087. C     THIS SUBROUTINE CALCULATES THE EIGENVALUES AND EIGENVECTORS
  7088. C     OF THE CAUCHY-GREEN DEFORMATION TENSOR. THE EIGENVALUES ARE
  7089. C     THEN USED TO OBTAIN THE PRINCIPAL STRETCHES.
  7090. C
  7091. C     NOTE THAT ALL OF THE EIGENVALUES ARE POSITIVE BECAUSE THE
  7092. C     TENSOR IS POSITIVE DEFINITE.
  7093. C
  7094. C
  7095. C
  7096.       IMPLICIT REAL*8 (A-H,O-Z)
  7097. C
  7098.       COMMON /PSTCH/ STRCH(3),RDCS(3)
  7099.       COMMON /MTMD3D/ D(6,6),STRESS(6),STRAIN(6),IPT,NEL,IPS
  7100. C
  7101.       DIMENSION CG(3,3),F(3,3),RLMN(3,3),S(3,3),IPRM(3),ICOL(3),
  7102.      1          PV(3),DISD(9),XYZ(1),EDISB(1),EDIS(1),NOD9(1),XXX(63),
  7103.      2          B(63)
  7104. C
  7105.       DATA IPRM /2,3,1/
  7106. C
  7107. C        1. CALCULATE DISPLACEMENT DERIVATIVES
  7108. C           (W.R.T. THE INITIAL CONFIGURATION)
  7109. C
  7110.       DO 500 I=1,ND
  7111.   500 XXX(I)=XYZ(I)
  7112.       IF (IDEATH.NE.1) GO TO 510
  7113. C
  7114.       DO 505 I=1,ND
  7115.   505 XXX(I)=XXX(I) + EDISB(I)
  7116. C
  7117.   510 CALL DERIQ3 (NEL,XXX,B,DET,E1,E2,E3,NOD9)
  7118. C
  7119.       DO 515 I=1,9
  7120.   515 DISD(I)=0.0
  7121. C
  7122.       DO 520 J=3,ND,3
  7123.       I=J - 1
  7124.       K=J - 2
  7125.       DISD(1)=DISD(1) + B(K)*EDIS(K)
  7126.       DISD(2)=DISD(2) + B(I)*EDIS(I)
  7127.       DISD(3)=DISD(3) + B(J)*EDIS(J)
  7128.       DISD(4)=DISD(4) + B(I)*EDIS(K)
  7129.       DISD(5)=DISD(5) + B(J)*EDIS(K)
  7130.       DISD(6)=DISD(6) + B(K)*EDIS(I)
  7131.       DISD(7)=DISD(7) + B(J)*EDIS(I)
  7132.       DISD(8)=DISD(8) + B(K)*EDIS(J)
  7133.   520 DISD(9)=DISD(9) + B(I)*EDIS(J)
  7134. C
  7135. C        2. CALCULATE THE DEFORMATION GRADIENT TENSOR
  7136. C
  7137.       F(1,1)=DISD(1) + 1.0
  7138.       F(1,2)=DISD(4)
  7139.       F(1,3)=DISD(5)
  7140.       F(2,1)=DISD(6)
  7141.       F(2,2)=DISD(2) + 1.0
  7142.       F(2,3)=DISD(7)
  7143.       F(3,1)=DISD(8)
  7144.       F(3,2)=DISD(9)
  7145.       F(3,3)=DISD(3) + 1.0
  7146. C
  7147. C        3. FORM THE CAUCHY-GREEN DEFORMATION TENSOR
  7148. C
  7149. C             CG = F(TRANSPOSED) * F
  7150. C
  7151.       DO 5 I=1,3
  7152.       DO 5 J=1,3
  7153.     5 CG(I,J)=0.0
  7154. C
  7155.       DO 15 I=1,3
  7156.       DO 15 J=I,3
  7157.       DO 10 M=1,3
  7158.    10 CG(I,J)=CG(I,J) + F(M,I)*F(M,J)
  7159.    15 CG(J,I)=CG(I,J)
  7160. C
  7161. C        4. CALCULATE EIGENVALUES AND EIGENVECTORS
  7162. C
  7163. C           FOR THIS PROBLEM, PV(1) IS ALWAYS THE EIGENVALUE WITH
  7164. C           THE LARGEST MAGNITUDE
  7165. C
  7166. C
  7167. C           CALCULATE THE DEVIATORIC TENSOR ASSOCIATED WITH CG
  7168. C
  7169.       STRAV=(CG(1,1) + CG(2,2) + CG(3,3))/3.0
  7170.       DO 18 I=1,3
  7171.       DO 18 J=1,3
  7172.    18 S(I,J)=CG(I,J)
  7173. C
  7174.       S(1,1)=S(1,1) - STRAV
  7175.       S(2,2)=S(2,2) - STRAV
  7176.       S(3,3)=S(3,3) - STRAV
  7177. C
  7178. C           J2 = SBAR**2 = 1/2 SIJ*SIJ
  7179. C
  7180.       SBAR=0.
  7181.       DO 20 I=1,3
  7182.       DO 20 J=1,3
  7183.    20 SBAR=SBAR + S(I,J)*S(I,J)
  7184.       SBAR=DSQRT(SBAR/2.)
  7185.       SBTOL=DABS(STRAV)*1.D-8
  7186.       IF (SBAR.LE.SBTOL) SBAR=0.
  7187.       IF (SBAR.EQ.0.) GO TO 31
  7188. C
  7189. C           J3 = 1/3 SIJ*SJK*SKI
  7190. C
  7191.       RJ3=0.
  7192.       DO 30 I=1,3
  7193.       DO 30 J=1,3
  7194.       DO 30 K=1,3
  7195.    30 RJ3=RJ3 + S(I,J)*S(J,K)*S(K,I)
  7196.       RJ3=RJ3/3.
  7197. C
  7198. C           MODIFIED STRESS INVARIANT PHI
  7199. C           SIN(3*PHI) = -(3*DSQRT(3)/2)*J3/(SBAR**3)
  7200. C
  7201.       TEMP=-3.*DSQRT(3.0D0)/2.
  7202.       TEMP=TEMP*RJ3/SBAR**3
  7203.    31 IF (SBAR.EQ.0.) TEMP=0.
  7204.       IF (DABS(TEMP) .LE. 1.0) GO TO 32
  7205.       IF (DABS(TEMP) .LE. 1.0001) GO TO 34
  7206.       WRITE (6,2000)
  7207.       STOP
  7208. C
  7209.    34 IF (TEMP .LT. (-1.0)) TEMP=-1.0
  7210.       IF (TEMP .GT. 1.0) TEMP=1.0
  7211.    32 PI=4.D0*DATAN(1.D0)
  7212.       TEMPCS=DSQRT(1.D0-TEMP*TEMP)
  7213.       PHI=DATAN2(TEMP,TEMPCS)
  7214.       IF (PHI.GT.PI) PHI=PHI - 2.D0*PI
  7215.       PHI=PHI/3.D0
  7216. C
  7217. C           CALCULATE THE EIGENVALUES
  7218. C
  7219.       A1=2.*SBAR/DSQRT(3.0D0)
  7220.       PV(1)   =A1*DSIN(PHI + 2.*PI/3.) + STRAV
  7221.       PV(2)   =A1*DSIN(PHI) + STRAV
  7222.       PV(3)   =A1*DSIN(PHI + 4.*PI/3.) + STRAV
  7223. C
  7224. C           CALCULATE THE EIGENVECTORS
  7225. C
  7226.       TOL=0.01
  7227.       IND=0
  7228.       SPREAD=PV(1) - PV(3)
  7229.       ROERR=DABS(PV(1))*0.000001
  7230.       IF (PV(1).EQ.0.0) ROERR=DABS(PV(3))*0.000001
  7231.       IF (SPREAD.LE.ROERR) GO TO 82
  7232.       DIF1=PV(1) - PV(2)
  7233.       DIF2=PV(2) - PV(3)
  7234.       IF (DIF1.LT.SPREAD*TOL) IND=3
  7235.       IF (DIF2.LT.SPREAD*TOL) IND=1
  7236. C
  7237.       N=3
  7238.       I1=IND
  7239.       IF (IND.EQ.0) I1=1
  7240.       NEIG=2
  7241.       DO 78 NX=1,NEIG
  7242. C
  7243.       DO 35 J1=1,N
  7244.       ICOL(J1)=J1
  7245.       S(J1,J1)=CG(J1,J1) - PV(I1)
  7246.    35 RLMN(J1,I1)=0.
  7247. C
  7248. C             GAUSSIAN ELIMINATION WITH COMPLETE PIVOTING
  7249. C
  7250.       DO 65 J=1,N
  7251. C
  7252.       PIVI=0.
  7253.       DO 40 I=J,N
  7254.       DO 40 K=J,N
  7255.       IF (DABS(PIVI).GT.DABS(S(I,K))) GO TO 40
  7256.       IMAX=I
  7257.       KMAX=K
  7258.       PIVI=S(I,K)
  7259.    40 CONTINUE
  7260.       IF (KMAX.EQ.J) GO TO 47
  7261. C
  7262. C             INTERCHANGE OF COLUMNS
  7263. C
  7264.       ISAVE=ICOL(KMAX)
  7265.       ICOL(KMAX)=ICOL(J)
  7266.       ICOL(J)=ISAVE
  7267.       DO 45 JJ=1,N
  7268.       SAVE=S(JJ,KMAX)
  7269.       S(JJ,KMAX)=S(JJ,J)
  7270.    45 S(JJ,J)=SAVE
  7271. C
  7272.    47 PIVI=1./PIVI
  7273. C
  7274. C             INTERCHANGE OF ROWS
  7275. C
  7276.       DO 50 K=J,N
  7277.       IF (IMAX.EQ.J) GO TO 50
  7278.       SAVE=S(J,K)
  7279.       S(J,K)=S(IMAX,K)
  7280.       S(IMAX,K)=SAVE
  7281.    50 S(J,K)=S(J,K)*PIVI
  7282. C
  7283.       IF (J.EQ.(N-1)) GO TO 70
  7284.       I2=J + 1
  7285.       DO 65 K2=I2,N
  7286.       DO 65 J2=I2,N
  7287.    65 S(K2,J2)=S(K2,J2) - S(K2,J)*S(J,J2)
  7288. C
  7289.    70 N1=N - 1
  7290.       RLMN(ICOL(N),I1)=1.
  7291.       DO 75 J=1,N1
  7292.       IA=N
  7293.       DO 75 K=1,J
  7294.       RLMN(ICOL(N-J),I1)=RLMN(ICOL(N-J),I1)- S(N-J,IA)*RLMN(ICOL(IA),I1)
  7295.    75 IA=IA - 1
  7296. C
  7297. C             SCALE THE EIGENVECTOR TO UNIT MAGNITUDE
  7298. C
  7299.       RMAX=0.
  7300.       DO 74 L1=1,3
  7301.    74 IF (DABS(RLMN(L1,I1)).GT.RMAX) RMAX=DABS(RLMN(L1,I1))
  7302.       RMAX=RMAX*0.0001
  7303.       DO 76 L1=1,3
  7304.    76 IF (DABS(RLMN(L1,I1)).LE.RMAX) RLMN(L1,I1)=0.
  7305.       XLN=RLMN(1,I1)**2 + RLMN(2,I1)**2 + RLMN(3,I1)**2
  7306.       XLN=1.0/DSQRT(XLN)
  7307.       IF (RLMN(3,I1).LT.0.) XLN=-XLN
  7308.       DO 77 J1=1,3
  7309.    77 RLMN(J1,I1)=RLMN(J1,I1)*XLN
  7310. C
  7311.       IF (I1.EQ.1) GO TO 100
  7312.       I1=3
  7313.       IF (IND.EQ.3) I1=1
  7314.    78 CONTINUE
  7315. C
  7316. C             CALCULATE THE REMAINING EIGENVECTOR
  7317. C
  7318.       IND=3
  7319.       I2=IPRM(IND)
  7320.       I1=IPRM(I2)
  7321.       X=RLMN(2,IND)*RLMN(3,I2) - RLMN(3,IND)*RLMN(2,I2)
  7322.       Y=RLMN(3,IND)*RLMN(1,I2) - RLMN(1,IND)*RLMN(3,I2)
  7323.       Z=RLMN(1,IND)*RLMN(2,I2) - RLMN(2,IND)*RLMN(1,I2)
  7324.       XLN=1./DSQRT(X*X + Y*Y + Z*Z)
  7325.       IF (Z.LT.0.) XLN=-XLN
  7326.       RLMN(1,I1)=X*XLN
  7327.       RLMN(2,I1)=Y*XLN
  7328.       RLMN(3,I1)=Z*XLN
  7329.       GO TO 84
  7330. C
  7331.    82 DO 83 I1=1,3
  7332.       DO 83 J1=1,3
  7333.       RLMN(J1,I1)=0.
  7334.    83 IF (I1.EQ.J1) RLMN(J1,I1)=1.
  7335.    84 CONTINUE
  7336. C
  7337. C        5. CALCULATE THE PRINCIPAL STRETCHES
  7338. C
  7339.   100 STRCH(1)=DSQRT(PV(1))
  7340.       STRCH(2)=DSQRT(PV(2))
  7341.       STRCH(3)=DSQRT(PV(3))
  7342. C
  7343.       DO 110 I=1,3
  7344.   110 RDCS(I)=RLMN(I,1)
  7345. C
  7346.       RETURN
  7347. C
  7348.  2000 FORMAT (///,106H   ERROR   UNABLE TO CALCULATE THE EIGENVALUES OF
  7349.      1THE CAUCHY-GREEN DEFORMATION TENSOR   (SUBROUTINE CGDT3))
  7350. C
  7351.       END
  7352. C *CDC* *DECK OVL42
  7353. C *CDC*       OVERLAY (ADINA,4,2)
  7354. C *CDC* *DECK ELT3D4
  7355. C *UNI* )FOR,IS  N.ELT3D4, R.ELT3D4
  7356. C *CDC*       PROGRAM ELT3D4
  7357.       SUBROUTINE ELT3D4
  7358. C
  7359. C
  7360. C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
  7361. C .                                                                   .
  7362. C .                  M O D E L    =    4                              .
  7363. C .                                                                   .
  7364. C .   C U R V E   D E S C R I P T I O N   N O N L I N E A R   M O D E L
  7365. C .                                                                   .
  7366. C .                  M O D E L    =    5                              .
  7367. C .                                                                   .
  7368. C .   C O N C R E T E   S T R U C T U R E   M O D E L                 .
  7369. C .                                                                   .
  7370. C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
  7371. C
  7372. C
  7373.       IMPLICIT REAL*8 (A-H,O-Z)
  7374.       COMMON /EL/ IND,ICOUNT,NPAR(20),NUMEG,NEGL,NEGNL,IMASS,IDAMP,ISTAT
  7375.      1           ,NDOF,KLIN,IEIG,IMASSN,IDAMPN
  7376.       COMMON /DIMEL/ N101,N102,N103,N104,N105,N106,N107,N108,N109,N110,
  7377.      1               N111,N112,N113,N114,N120,N121,N122,N123,N124,N125
  7378.       COMMON /CRACK/ GAMMA,STIFAC,SHEFAC,SIGMAT,SIGMAC,EPSC,SIGMAU,EPSU,
  7379.      1               RAM5,RBM5,RCM5,ICRACK,MOD45
  7380.       COMMON /CONCRT/ BETA,GAMA,RKAPA,ALFA,SIGP(6),TEP(6),EP(6),YP(3),
  7381.      1                E,VNU,RK,G,E12,E13,E23,EPSCP,SIGCP,FALSTR,ILFSET
  7382.       COMMON /TEMPRT/ TEMP1,TEMP2,ITEMPR,ITP96,N6A,N6B
  7383.       COMMON /MTMD3D/ D(6,6),STRESS(6),STRAIN(6),IPT,NEL,IPS
  7384.       COMMON /DPR/ ITWO
  7385.       COMMON A(1)
  7386.       REAL A
  7387.       DIMENSION IA(1)
  7388. C
  7389.       EQUIVALENCE (NPAR(10),NINT), (NPAR(11),NINTZ), (NPAR(17),NCON)
  7390.       EQUIVALENCE (IA(1),A(1)),(NPAR(7),MXNODS)
  7391. C
  7392. C
  7393. C     FOR ADDRESSES N101,N102,N103,.... REFER TO PROGRAM THREDM
  7394. C
  7395. C
  7396.       IDW=22*ITWO
  7397.       NPT=NINT*NINT*NINTZ
  7398.       MATP=IA(N107 + NEL - 1)
  7399.       NM=N111 + (MATP - 1)*NCON*ITWO
  7400.       NNOD=N112 + (NEL - 1)*(IDW*NPT + MXNODS) + IDW*NPT
  7401.       N6A1=N6A + ITWO
  7402.       N6B1=N6B + ITWO
  7403. C
  7404. C     MATERIAL CONSTANTS ARE STORED IN COMMON CRACK FOR MODEL 4, 5
  7405. C
  7406.       IF (NPAR(15).EQ.5) GO TO 30
  7407.       NM25=NM + 24*ITWO
  7408.       ICRACK=IA(NM25)
  7409.       GAMMA=DOUBLE (A(NM25 + ITWO))
  7410.       STIFAC=DOUBLE (A(NM25 + 2*ITWO))
  7411.       SHEFAC=DOUBLE (A(NM25 + 3*ITWO))
  7412.       GO TO 50
  7413. C
  7414.    30 SIGMAT=DOUBLE (A(NM + 3*ITWO))
  7415.       SIGMAC=DOUBLE (A(NM + 4*ITWO))
  7416.       EPSC  =DOUBLE (A(NM + 5*ITWO))
  7417.       SIGMAU=DOUBLE (A(NM + 6*ITWO))
  7418.       EPSU  =DOUBLE (A(NM + 7*ITWO))
  7419.       BETA=DOUBLE (A(NM + 32*ITWO))
  7420.       GAMA=DOUBLE (A(NM + 33*ITWO))
  7421.       RKAPA=DOUBLE (A(NM + 34*ITWO))
  7422.       ALFA=DOUBLE (A(NM + 35*ITWO))
  7423.       STIFAC=DOUBLE (A(NM + 36*ITWO))
  7424.       SHEFAC=DOUBLE (A(NM + 37*ITWO))
  7425. C
  7426. C
  7427. C     I N I T I A L I Z E   W A   W O R K I N G   V E C T O R
  7428. C
  7429. C
  7430.    50 NDM=3*MXNODS
  7431.       NO=N102 + (NEL - 1)*NDM*ITWO
  7432.       ND9DIM=MXNODS - 8
  7433.       NOO=N108 + (NEL - 1)*ND9DIM
  7434. C
  7435.       IF (IND.NE.0) GO TO 100
  7436. C
  7437.       NN=N112 + (NEL - 1)*IDW*NPT
  7438.       IF (NPAR(19).GT.0) NN=NN + (NEL - 1)*MXNODS
  7439.       CALL ICMOD3 (NEL,A(NM),A(NN),A(NO),A(NOO),IA(NNOD),A(N6A1))
  7440.       GO TO 599
  7441. C
  7442. C
  7443. C     F I N D   S T R E S S - S T R A I N   L A W  A N D  S T R E S S
  7444. C
  7445. C
  7446.   100 IP=6*ITWO
  7447.       NMI=NM + IP
  7448.       IF (NPAR(15).EQ.5) NMI=NM + 8*ITWO
  7449.       NMI2=NMI + IP
  7450.       NMI3=NMI2 + IP
  7451.       NMI4=NMI3 + IP
  7452.       NN=N112 + (NEL - 1)*IDW*NPT + (IPT - 1)*IDW
  7453.       IF (NPAR(19).GT.0) NN=NN + (NEL - 1)*MXNODS
  7454.       NN6=NN + 6*ITWO
  7455.       NN12=NN + 12*ITWO
  7456.       NN13=NN12 + ITWO
  7457.       NN14=NN13 + ITWO
  7458.       NN15=NN14 + ITWO
  7459.       NN19=NN15 + 4*ITWO
  7460. C
  7461.       CALL CMOD3D (NEL,A(NM),A(NMI),A(NMI2),A(NMI3),A(NMI4),A(NN),A(NN6)
  7462.      1           ,A(NN12),A(NN13),A(NN14),A(NN15),A(NN19),STRESS,STRAIN,
  7463.      2            D,IPT,IA(NNOD),A(N6A1),A(N6B1),A(NO),A(NOO),A(NN))
  7464. C
  7465. C
  7466.   599 CONTINUE
  7467.       RETURN
  7468. C
  7469.       END
  7470. C *CDC* *DECK ICMOD3
  7471. C *UNI* )FOR,IS  N.ICMOD3, R.ICMOD3
  7472.       SUBROUTINE ICMOD3 (NEL,PROP,WA,XYZ,NOD9,NODS,TEMPV1)
  7473. C
  7474.       IMPLICIT REAL*8 (A-H,O-Z)
  7475. C
  7476.       COMMON /EL/ IND,ICOUNT,NPAR(20),NUMEG,NEGL,NEGNL,IMASS,IDAMP,ISTAT
  7477.      1           ,NDOF,KLIN,IEIG,IMASSN,IDAMPN
  7478.       COMMON /THREED/ DE,IELD,IELX,IEL,NPT,IDW,NND9
  7479.       COMMON /CRACK/ GAMMA,STIFAC,SHEFAC,SIGMAT,SIGMAC,EPSC,SIGMAU,EPSU,
  7480.      1               RAM5,RBM5,RCM5,ICRACK,MOD45
  7481.       COMMON /GAUSS/ XG(4,4),WGT(4,4),EVAL2(9,2),EVAL3(27,3),R,S,T
  7482.       COMMON /EM3D/ NOD(21),NODM(21),NOD9M(13)
  7483.       DIMENSION PROP(1),WA(22,1),XYZ(1),NOD9(1),NODS(1),TEMPV1(1)
  7484.       DIMENSION P(3,21),H(21),XJ(3,3),PGRV(30)
  7485. C
  7486.       EQUIVALENCE (NPAR(17),NCON),(NPAR(10),NINT),(NPAR(15),MODEL)
  7487.      1           ,(NPAR(11),NINTZ),(NPAR(19),ITHERM)
  7488. C
  7489. C     INITIALIZE WA
  7490. C
  7491.       NPT=NINT*NINT*NINTZ
  7492.       DO 11 J=1,NPT
  7493.       DO 10 I=1,22
  7494.    10 WA(I,J)=0.
  7495.    11 WA(19,J)=100.
  7496.       IF (ITHERM.EQ.0) GO TO 18
  7497.       II=0
  7498.       IELN=8
  7499.       IF (NPAR(7).GT.8) IELN=21
  7500.       DO 15 K=1,IELN
  7501.       IF (NODM(K).EQ.0) GO TO 15
  7502.       II=II + 1
  7503.       NODS(II)=NODM(K)
  7504.    15 CONTINUE
  7505.       GO TO 20
  7506.    18 IF (MODEL.EQ.5) RETURN
  7507.       IF (ICRACK.LT.1) RETURN
  7508. C
  7509. C
  7510. C     FIND PRESSURE AT EACH STRAIN INTERPOLATION POINT IN THE
  7511. C     MATERIAL CURVE FOR THIS ELEMENT
  7512. C
  7513. C
  7514.       IPOINT=NCON/4 - 1
  7515.       PGRV(1)=0.0
  7516.       DO 8 K=2,IPOINT
  7517.       DEV=PROP(K) - PROP(K-1)
  7518.       BULKK=(PROP(IPOINT+K) + PROP(IPOINT+K-1))/2.0
  7519.     8 PGRV(K)=PGRV(K-1) + BULKK*DEV
  7520. C
  7521. C
  7522. C     FIND GROUND PRESSURE AT EACH INTEGRATION POINT OF ELEMENT
  7523. C     FIND INITIAL TEMPERATURE AT EACH INTEGRATION POINT FOR MODEL 5
  7524. C
  7525. C
  7526.    20 IPT=0
  7527.       IINTP=1
  7528.       DO 100 LX=1,NINT
  7529.       E1=XG(LX,NINT)
  7530.       DO 100 LY=1,NINT
  7531.       E2=XG(LY,NINT)
  7532.       DO 100 LZ=1,NINTZ
  7533.       E3=XG(LZ,NINTZ)
  7534.       IPT=IPT + 1
  7535. C
  7536.       CALL FUNCT (E1,E2,E3,H,P,NOD9,XJ,DET,XYZ,IINTP)
  7537. C
  7538.       IF (ITHERM.EQ.0) GO TO 25
  7539.       TMPOLD=0.
  7540.       DO 23 K=1,IEL
  7541.       KK=NODS(K)
  7542.    23 TMPOLD=TMPOLD + H(K)*TEMPV1(KK)
  7543.       WA(14,IPT)=TMPOLD
  7544.       GO TO 100
  7545. C
  7546.    25 KK=0
  7547.       ZDEPTH=0.
  7548.       DO 30 K=1,IEL
  7549.       KK=KK + 3
  7550.    30 ZDEPTH=ZDEPTH + H(K)*XYZ(KK)
  7551.       PGRAV=-GAMMA*ZDEPTH
  7552.       WA(15,IPT)=PGRAV
  7553. C
  7554.   100 CONTINUE
  7555. C
  7556.       IF (ITHERM.GT.0) RETURN
  7557. C
  7558. C
  7559. C     FIND VOLUMETRIC STRAIN FROM GROUND PRESSURE AT INTEGRATION POINTS
  7560. C
  7561. C
  7562.       DO 55 IPT=1,NPT
  7563.       PGRAV=WA(15,IPT)
  7564.       DO 35 L=2,IPOINT
  7565.       J=L
  7566.       IF (PGRAV.LT.PGRV(L)) GO TO 40
  7567.    35 CONTINUE
  7568.       WRITE (6,2002) NEL
  7569.       STOP
  7570.    40 CONTINUE
  7571.       I=J - 1
  7572.       DD=PROP(J) - PROP(I)
  7573.       C1=PROP(IPOINT+I)
  7574.       C2=(PROP(IPOINT+J) - PROP(IPOINT+I))/(2.0*DD)
  7575.       IF (C2.GT.1.D-08) GO TO 41
  7576.       DEV=(PGRAV - PGRV(I))/C1
  7577.       GO TO 50
  7578.    41 FAC=C1*C1 + 4.0*C2*(PGRAV - PGRV(I))
  7579.       FAC=DSQRT(FAC)
  7580.       DEV1=(-C1 + FAC)/(2.0*C2)
  7581.       DEV2=(-C1 - FAC)/(2.0*C2)
  7582.       I1=0
  7583.       I2=0
  7584.       IF (DEV1.GE.0.0 .AND. DEV1.LE.DD) I1=1
  7585.       IF (DEV2.GE.0.0 .AND. DEV2.LE.DD) I2=1
  7586.       IF (I1.NE.I2) GO TO 45
  7587.       WRITE(6,2003)
  7588.       STOP
  7589.    45 IF (I1.EQ.1) DEV=DEV1
  7590.       IF (I2.EQ.1) DEV=DEV2
  7591.    50 EVGRAV=PROP(I) + DEV
  7592.       WA(14,IPT)=EVGRAV
  7593.    55 CONTINUE
  7594. C
  7595. C
  7596.       RETURN
  7597. C
  7598. C
  7599.  2002 FORMAT(55H **STOP - GRAVITATIONAL STRAIN TOO LARGE FOR MATERIAL C
  7600.      1       ,10HURVE INPUT,12H FOR ELEMENT,I5)
  7601.  2003 FORMAT(52H **STOP - ERROR IN PRESSURE-VOLUMETRIC STRAIN CALC.  )
  7602. C
  7603.       END
  7604.