home *** CD-ROM | disk | FTP | other *** search
Text File | 1991-01-07 | 220.4 KB | 7,695 lines |
- C *CDC* *DECK ASSEMK
- C *UNI* )FOR,IS N.ASSEMK, R.ASSEMK
- SUBROUTINE ASSEMK (MODEL)
- C
- C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
- C . .
- C . P R O G R A M .
- C . .
- C . TO ASSEMBLE THE LINEAR AND NONLINEAR STIFFNESSES AND TO .
- C . TRANSFORM THE TOTAL LOCAL STIFFNESS TO THE GLOBAL SYSTEM .
- C . .
- C . SML(21) - MEMBRANE STIFFNESS .
- C . SBL(45) - BENDING STIFFNESS .
- C . SNL( 6) - GEOMETRIC NONLINEAR STIFFNESS .
- C . SCL(54) - ELASTIC-PLASTIC COUPLING STIFFNESS .
- C . SSL(171) - TOTAL ELEMENT STIFFNESS (LOCAL) .
- C . S (171) - TOTAL ELEMENT STIFFNESS (GLOBAL) .
- C . .
- C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
- C
- IMPLICIT REAL*8 (A-H,O-Z)
- C
- COMMON /GEOPLT/ T(3,3),TWOA,X2,X3,Y3,BM(6),B(3,9)
- COMMON /PROPTY/ C(3,3),CD(3,3),D(3,3),YM,PV,ET,QTM
- COMMON /ELINF / THIC,BETE,WAA(13),NEL,IP,NINT,IPT
- COMMON /FSTPLT/ RN(6),RM(9),RE(18),SML(21),SBL(45),S(171),
- 1 SNL(6),SCL(54)
- C
- DIMENSION PK(3,3),TK(3,3),TKT(3,3),SSL(171)
- C
- C THE GEOMETRIC NONLINEAR STIFFNESS CONTRIBUTIONS ARE ZERO
- C FOR SMALL DISP ANALYSIS (INDNL.LE.1). THEY ARE ASSEMBLED
- C TOGETHER WITH THE MEMBRANE AND BENDING CONTRIBUTIONS
- C
- C ASSEMBLE THE MEMBRANE CONTRIBUTION
- C
- DO 250 K=1,171
- 250 SSL(K)=0.
- C
- SSL( 1)=SML( 1) + SNL(1)
- SSL( 2)=SML( 4)
- SSL( 7)=SML( 2) + SNL(2)
- SSL( 8)=SML( 5)
- SSL( 13)=SML( 3) + SNL(3)
- SSL( 14)=SML( 6)
- SSL( 19)=SML(16) + SNL(1)
- SSL( 24)=SML( 9)
- SSL( 25)=SML(17) + SNL(2)
- SSL( 30)=SML(13)
- SSL( 31)=SML(18) + SNL(3)
- SSL( 94)=SML( 7) + SNL(4)
- SSL( 95)=SML(10)
- SSL(100)=SML( 8) + SNL(5)
- SSL(101)=SML(11)
- SSL(106)=SML(19) + SNL(4)
- SSL(111)=SML(14)
- SSL(112)=SML(20) + SNL(5)
- SSL(151)=SML(12) + SNL(6)
- SSL(152)=SML(15)
- SSL(157)=SML(21) + SNL(6)
- C
- C ASSEMBLE THE BENDING CONTRIBUTION
- C
- SSL( 36)=SBL( 1) + SNL(1)
- SSL( 37)=SBL( 2)
- SSL( 38)=SBL( 3)
- SSL( 42)=SBL( 4) + SNL(2)
- SSL( 43)=SBL( 5)
- SSL( 44)=SBL( 6)
- SSL( 48)=SBL( 7) + SNL(3)
- SSL( 49)=SBL( 8)
- SSL( 50)=SBL( 9)
- SSL( 52)=SBL(10)
- SSL( 53)=SBL(11)
- SSL( 57)=SBL(12)
- SSL( 58)=SBL(13)
- SSL( 59)=SBL(14)
- SSL( 63)=SBL(15)
- SSL( 64)=SBL(16)
- SSL( 65)=SBL(17)
- SSL( 67)=SBL(18)
- SSL( 71)=SBL(19)
- SSL( 72)=SBL(20)
- SSL( 73)=SBL(21)
- SSL( 77)=SBL(22)
- SSL( 78)=SBL(23)
- SSL( 79)=SBL(24)
- SSL(117)=SBL(25) + SNL(4)
- SSL(118)=SBL(26)
- SSL(119)=SBL(27)
- SSL(123)=SBL(28) + SNL(5)
- SSL(124)=SBL(29)
- SSL(125)=SBL(30)
- SSL(127)=SBL(31)
- SSL(128)=SBL(32)
- SSL(132)=SBL(33)
- SSL(133)=SBL(34)
- SSL(134)=SBL(35)
- SSL(136)=SBL(36)
- SSL(140)=SBL(37)
- SSL(141)=SBL(38)
- SSL(142)=SBL(39)
- SSL(162)=SBL(40) + SNL(6)
- SSL(163)=SBL(41)
- SSL(164)=SBL(42)
- SSL(166)=SBL(43)
- SSL(167)=SBL(44)
- SSL(169)=SBL(45)
- C
- C ADDING AN ARBITRARY STIFFNESS TO THE THETA Z D.O.F.S
- C
- SSL( 81)=YM*THIC*THIC*THIC*0.0001/TWOA
- SSL(144) = SSL(81)
- SSL(171) = SSL(81)
- C
- IF (MODEL.LE.2) GO TO 300
- C
- C ASSEMBLE THE MEMBRANE-BENDING COUPLING TERMS IN ELASTIC-
- C PLASTIC ANALYSIS (MODEL.EQ.3)
- C
- SSL( 3)=SCL( 1)
- SSL( 4)=SCL( 2)
- SSL( 5)=SCL( 3)
- SSL( 9)=SCL( 4)
- SSL( 10)=SCL( 5)
- SSL( 11)=SCL( 6)
- SSL( 15)=SCL( 7)
- SSL( 16)=SCL( 8)
- SSL( 17)=SCL( 9)
- SSL( 20)=SCL(10)
- SSL( 21)=SCL(11)
- SSL( 22)=SCL(12)
- SSL( 26)=SCL(13)
- SSL( 27)=SCL(14)
- SSL( 28)=SCL(15)
- SSL( 32)=SCL(16)
- SSL( 33)=SCL(17)
- SSL( 34)=SCL(18)
- SSL( 40)=SCL(19)
- SSL( 55)=SCL(20)
- SSL( 69)=SCL(21)
- SSL( 96)=SCL(22)
- SSL( 97)=SCL(23)
- SSL( 98)=SCL(24)
- SSL(102)=SCL(25)
- SSL(103)=SCL(26)
- SSL(104)=SCL(27)
- SSL( 41)=SCL(28)
- SSL( 56)=SCL(29)
- SSL( 70)=SCL(30)
- SSL(107)=SCL(31)
- SSL(108)=SCL(32)
- SSL(109)=SCL(33)
- SSL(113)=SCL(34)
- SSL(114)=SCL(35)
- SSL(115)=SCL(36)
- SSL( 46)=SCL(37)
- SSL( 61)=SCL(38)
- SSL( 75)=SCL(39)
- SSL(121)=SCL(40)
- SSL(130)=SCL(41)
- SSL(138)=SCL(42)
- SSL(153)=SCL(43)
- SSL(154)=SCL(44)
- SSL(155)=SCL(45)
- SSL( 47)=SCL(46)
- SSL( 62)=SCL(47)
- SSL( 76)=SCL(48)
- SSL(122)=SCL(49)
- SSL(131)=SCL(50)
- SSL(139)=SCL(51)
- SSL(158)=SCL(52)
- SSL(159)=SCL(53)
- SSL(160)=SCL(54)
- C
- C TRANSFORM THE OFF-DIAGONAL ELEMENT BLOCKS (3X3)
- C
- 300 M1=3
- M2=15
- DO 400 MI=1,5
- DO 410 MJ=M1,M2,3
- DO 420 L=1,3
- DO 420 K=1,3
- TK(L,K)=0.
- 420 TKT(L,K)=0.
- M5=MJ
- DO 425 I=1,3
- DO 430 J=1,3
- 430 PK(I,J) = SSL(J+M5)
- 425 M5 = M5 + 21 - I - 3*MI
- DO 445 K=1,3
- DO 445 J=1,3
- DO 445 I=1,3
- 445 TK(K,J) = TK(K,J) + PK(K,I)*T(I,J)
- DO 460 KK=1,3
- DO 460 JJ=1,3
- DO 460 II=1,3
- 460 TKT(KK,JJ) = TKT(KK,JJ) + T(II,KK)*TK(II,JJ)
- M6=MJ
- DO 465 KI=1,3
- DO 470 KJ=1,3
- 470 S(KJ+M6) = TKT(KI,KJ)
- 465 M6 = M6 + 21 - KI - 3*MI
- 410 CONTINUE
- M1 = M1 + 60 - 9*MI
- 400 M2 = M2 + 57 - 9*MI
- C
- C TRANSFORM THE DIAGONAL ELEMENT BLOCKS (3X3)
- C
- MK=0
- DO 500 JB=1,6
- DO 520 LL=1,3
- DO 520 KK=1,3
- PK(LL,KK)=0.
- TK(LL,KK)=0.
- 520 TKT(LL,KK)=0.
- M7=MK
- DO 530 JC=1,3
- DO 535 IC=JC,3
- PK(JC,IC)=SSL(IC + M7)
- 535 PK(IC,JC)=PK(JC,IC)
- 530 M7 = M7 +21 - JC - 3*JB
- DO 550 ND=1,3
- DO 550 JE=1,3
- DO 550 IE=1,3
- 550 TK(ND,JE) = TK(ND,JE) + PK(ND,IE)*T(IE,JE)
- DO 565 NF=1,3
- DO 565 JG=1,3
- DO 565 IG=1,3
- 565 TKT(NF,JG) = TKT(NF,JG) + T(IG,NF)*TK(IG,JG)
- M8 = MK
- DO 570 JR=1,3
- DO 575 IR=JR,3
- 575 S(IR+M8) = TKT(JR,IR)
- 570 M8=M8 + 21 - JR - 3*JB
- 500 MK=MK + 60 - 9*JB
- C
- RETURN
- C
- END
- C *CDC* *DECK PROPTL
- C *UNI* )FOR,IS N.PROPTL, R.PROPTL
- SUBROUTINE PROPTL (MODEL,PROP)
- C
- C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
- C . .
- C . P R O G R A M .
- C . .
- C . TO CALCULATE THE LINEAR STRESS STRAIN MATRICES .
- C . .
- C . MODEL.EQ.1 LINEAR ISOTROPIC PROPERTY .
- C . MODEL.EQ.2 LINEAR ORTHOTROPIC PROPERTY .
- C . .
- C . *NOTE* MEMBRANE RELATIONSHIP- FN=C*EPS .
- C . BENDING RELATIONSHIP- TM=D*CURV .
- C . .
- C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
- C
- IMPLICIT REAL*8 (A-H,O-Z)
- C
- COMMON /PIE / PI,TOPI,DEGRAD,RADEG
- COMMON /ELINF / THIC,BETE,WAA(13),NEL,IP,NINT,IPT
- COMMON /PROPTY/ C(3,3),CD(3,3),D(3,3),YM,PV,ET,QTM
- C
- DIMENSION PROP(1),T(3,3),R(3,3),RC(3,3)
- C
- DO 10 I=1,3
- DO 10 J=1,3
- RC(I,J)=0.
- R(I,J)=0.
- 10 C(I,J)=0.
- C
- C ISOTROPIC MATERIAL PROPERTIES
- C
- IF (MODEL.EQ.2) GO TO 100
- C
- YM = PROP(1)
- PR = PROP(2)
- C(1,1)=THIC*YM/(1.-PR*PR)
- C(1,2)=C(1,1)*PR
- C(2,1)=C(1,2)
- C(2,2)=C(1,1)
- C(3,3)=C(1,1)*(1.-PR)/2.
- C
- GO TO 400
- C
- C ORTHOTROPIC MATERIAL PROPERTIES
- C
- 100 BET=BETE*DEGRAD
- CB=DCOS(BET)
- SB=DSIN(BET)
- YM=PROP(1)
- C
- C CALCULATE ROTATION MATRIX T(3,3)
- C
- T(1,1)=CB*CB
- T(1,2)=SB*SB
- T(1,3)=CB*SB
- T(2,1)=T(1,2)
- T(2,2)=T(1,1)
- T(2,3)=-T(1,3)
- T(3,1)=-2.*T(1,3)
- T(3,2)=-T(3,1)
- T(3,3)=T(1,1)-T(1,2)
- C
- RC(1,1)=PROP(1)*THIC
- RC(1,2)=PROP(2)*THIC
- RC(2,2)=PROP(3)*THIC
- RC(3,3)=PROP(4)*THIC
- RC(2,1)=RC(1,2)
- C
- C CALCULATE C*T
- C
- DO 250 K=1,3
- DO 250 J=1,3
- DO 250 I=1,3
- 250 R(K,J)=R(K,J) + RC(K,I)*T(I,J)
- C
- C CALCULATE TRANPOSE(T)*C*T
- C
- DO 350 K=1,3
- DO 350 J=1,3
- DO 350 I=1,3
- 350 C(K,J)=C(K,J) + T(I,K)*R(I,J)
- C
- C CALUCLATE D=C*THIC*THIC/12.
- C
- 400 FAC=THIC*THIC/12.
- DO 450 I=1,3
- DO 450 J=1,3
- 450 D(I,J)=C(I,J)*FAC
- C
- RETURN
- C
- END
- C *CDC* *DECK PROPTN
- C *UNI* )FOR,IS N.PROPTN, R.PROPTN
- SUBROUTINE PROPTN (MODEL,PROP)
- C
- C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
- C . .
- C . P R O G R A M .
- C . .
- C . TO FIND THE STRESS STRAIN LAW FOR NONLINEAR MATERIAL .
- C . MODELS AND CALCULATE FORCES AND MOMENTS .
- C . .
- C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
- C
- IMPLICIT REAL*8 (A-H,O-Z)
- C
- COMMON /ELINF / THIC,BETE,WAA(13),NEL,IP,NINT,IPT
- COMMON /PROPTY/ C(3,3),CD(3,3),D(3,3),YM,PV,ET,QTM
- COMMON /STSPLT/ EPS(3),FN(3),CURV(3),TM(3)
- C
- DIMENSION PROP(1)
- C
- GO TO (1,1,3,3),MODEL
- C
- C
- C... MODEL = 1 L I N E A R I S O T R O P I C
- C... MODEL = 2 L I N E A R O R T H O T R O P I C
- C
- C CALCULATE BENDING MOMENTS TM(3)
- C
- 1 DO 110 I=1,2
- TX=0.
- DO 120 J=1,2
- 120 TX=TX + D(I,J)*CURV(J)
- 110 TM(I)=TX
- TM(3)=D(3,3)*CURV(3)
- C
- RETURN
- C
- C
- C... MODEL = 3 E L A S T I C - P L A S T I C
- C (ILYUSHIN YIELD CRITERION)
- C
- 3 CALL ELPLPT (PROP)
- C
- RETURN
- C
- C
- END
- C *CDC* *DECK ELPLPT
- C *UNI* )FOR,IS N.ELPLPT, R.ELPLPT
- SUBROUTINE ELPLPT (PROP)
- C
- C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
- C . .
- C . THIS SUBROUTINE CALCULATES THE STRESS RESULTANTS AND THE .
- C . ELASTIC-PLASTIC STRESS-STRAIN MATRICES FOR THE ELASTIC- .
- C . PLASTIC MATERIAL MODEL IN THE PLATE ELEMENT. .
- C . .
- C . NOTATIONS - .
- C . SIG(6) STRESS RESULTANTS IN THE PREVIOUS STEP .
- C . STRESS(6) CURRENT STRESS RESULTANTS (TO BE CALCULATED) .
- C . EPST(6) STRAINS AND CURVATURES IN THE PREVIOUS STEP .
- C . EPS(3) CURRENT MEMBRANE STRAIN INCREMENTS .
- C . CURV(3) CURRENT CURVATURE INCREMENTS .
- C . PROP(5) MATERIAL PROPERTY ARRAY WHICH STORES .
- C . THE YOUNGS MODULUS, THE POISSON RATIO, .
- C . THE INITIAL YIELD STRESS, THE HARDENING .
- C . MODULUS AND THE COUPLING FACTOR, RESP. .
- C . CST(3,3) MEMBRANE ELASTIC-PLASTIC STRESS-STRAIN MATRIX .
- C . DST(3,3) BENDING ELASTIC-PLASTIC STRESS-STRAIN MATRIX .
- C . CD(3,3) COUPLING ELASTIC-PLASTIC STRESS-STRAIN MATRIX .
- C . YIELD CURRENT YIELD STRESS SQUARED .
- C . IPELD INDICATOR OF CURRENT STATE .
- C . EQ.1 ELASTIC STATE .
- C . EQ.2 PLASTIC STATE .
- C . .
- C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
- C
- IMPLICIT REAL*8 (A-H,O-Z)
- C
- COMMON /EL/ IND,ICOUNT,NPAR(20),NUMEG,NEGL,NEGNL,IMASS,IDAMP,
- 1 ISTAT,NDOF,KLIN,IEIG,IMASSN,IDAMPN
- COMMON /VAR / NG,MODEX,IUPDT,KSTEP,ITEMAX,IEQREF,ITE,KPRI,IREF,
- 1 IEQUIT,IPRI,KPLOTN,KPLOTE
- COMMON /STSPLT/ EPS(3),FN(3),CURV(3),TM(3)
- COMMON /ELINF / THIC,BETE,WAA(13),NEL,IP,NINT,IPT
- COMMON /ILYSHN/ GAMMA,D11,D12,D22,D33,HA,THIC2,THIC3,THIC4,THICM
- COMMON /PROPTY/ CST(3,3),CD(3,3),DST(3,3),YM,PV,ET,QTM
- C
- DIMENSION PROP(1)
- DIMENSION SIG(6),EPST(6),STRESS(6),DEPS(6),STATE(2)
- C
- EQUIVALENCE (SIG(1),WAA(1)),(EPST(1),WAA(7)),(YIELD,WAA(13))
- C
- DATA STATE/2H E,2H*P/,NGLAST/1000/
- C
- C INITIALIZE WORKING VARIABLES
- C
- YIELDD=YIELD
- FTB=YIELDD
- C
- IF (IPT.NE.1) GO TO 105
- C
- THIC2=THIC*THIC
- THIC3=THIC*THIC2/2.
- THIC4=THIC*THIC3/8.
- THICM=THIC3/6.
- C
- C THIS MODEL IS VALID FOR ISOTROPIC HARDENING MATERIALS
- C
- YM=PROP(1)
- PV=PROP(2)
- ET=PROP(4)
- GAMMA=PROP(5)
- C
- C CALCULATE ELASTIC STRESS-STRAIN CONSTANTS
- C
- D11=YM/(1.-PV*PV)
- D12=D11*PV
- D22=D11
- D33=D11*(1.-PV)/2.
- HA=2.*ET*YM/(THIC*(YM-ET))
- C
- 105 CONTINUE
- C
- DEX=EPS(1)
- DEY=EPS(2)
- DEXY=EPS(3)
- DCX=CURV(1)
- DCY=CURV(2)
- DCXY=CURV(3)
- C
- C CALCULATE INCREMENTAL FORCE AND MOMENT RESULTANTS
- C ASSUMING ELASTIC BEHAVIOR
- C
- DRFX=THIC*(D11*DEX+D12*DEY)
- DRFY=THIC*(D12*DEX+D22*DEY)
- DRFXY=THIC*D33*DEXY
- C
- DRMX=THICM*(D11*DCX+D12*DCY)
- DRMY=THICM*(D12*DCX+D22*DCY)
- DRMXY=THICM*D33*DCXY
- C
- C CALCULATE NEW STRESS STATE ASSUMING ELASTIC BEHAVIOR
- C RFX,RFY AND RFXY DENOTE PREVIOUS FORCE RESULTANTS
- C RMX,RMY AND RMXY DENOTE PREVIOUS MOMENT RESULTANTS
- C
- RFX=SIG(1)
- RFY=SIG(2)
- RFXY=SIG(3)
- C
- RMX=SIG(4)
- RMY=SIG(5)
- RMXY=SIG(6)
- C
- C QT1,QT2 AND QT3 ARE THE COMPONENTS OF THE FORCE QUADRATIC
- C QM1,QM2 AND QM3 ARE THE COMPONENTS OF THE MOMENT QUADRATIC
- C QTM1,QTM2 AND QTM3 ARE THE COMPONENTS OF THE MIXED QUADRATIC
- C
- QT1=(RFX*RFX+RFY*RFY-RFX*RFY+3.*RFXY*RFXY)/THIC2
- QT2=(DRFX*DRFX+DRFY*DRFY-DRFX*DRFY+3.*DRFXY*DRFXY)/THIC2
- QT3=(2.*RFX*DRFX+2.*RFY*DRFY-RFX*DRFY-RFY*DRFX+6.*RFXY*DRFXY)/
- 1 THIC2
- C
- QM1=(RMX*RMX+RMY*RMY-RMX*RMY+3.*RMXY*RMXY)/THIC4
- QM2=(DRMX*DRMX+DRMY*DRMY-DRMX*DRMY+3.*DRMXY*DRMXY)/THIC4
- QM3=(2.*RMX*DRMX+2.*RMY*DRMY-RMX*DRMY-RMY*DRMX+6.*RMXY*DRMXY)/
- 1 THIC4
- C
- QTM1=(RFX*RMX+RFY*RMY-.5*RFX*RMY-.5*RFY*RMX+3.*RFXY*RMXY)*2./THIC3
- QTM2=(DRFX*DRMX+DRFY*DRMY-.5*DRFX*DRMY-.5*DRFY*DRMX+3.*DRFXY*DRMXY
- 1)*2./THIC3
- QTM3=(RFX*DRMX+RMX*DRFX+RFY*DRMY+RMY*DRFY-.5*(RFX*DRMY+RFY*DRMX+
- 1DRFX*RMY+RMX*DRFY )+3.*RFXY*DRMXY+3.*DRFXY*RMXY)*2./THIC3
- C
- QT=QT1+QT2+QT3
- QM=QM1+QM2+QM3
- QTM=QTM1+QTM2+QTM3
- C
- QPREV=QT1+QM1+DABS(QTM1)*GAMMA
- QCUR=QT+QM+DABS(QTM)*GAMMA
- FTA=QCUR
- C
- IF (FTA-FTB) 130,130,200
- C
- C CURRENT STATE ELASTIC
- C
- 130 IPELD=1
- STRESS(1)=RFX+DRFX
- STRESS(2)=RFY+DRFY
- STRESS(3)=RFXY+DRFXY
- STRESS(4)=RMX+DRMX
- STRESS(5)=RMY+DRMY
- STRESS(6)=RMXY+DRMXY
- C
- GO TO 605
- C
- C STATE OF STRESS OUTSIDE LOADING SURFACE-PLASTIC BEHAVIOR, DETERMINE
- C PART OF STRAIN TAKEN ELASTICALLY
- C
- 200 IPELD=2
- C
- IF (QPREV.GE.FTB) GO TO 215
- C
- C SOLVE FOR ELASTIC STRAIN PART (RATIO) ASSUMING POSITIVE MIXED
- C QUADRATIC
- C
- RA=QT2+QM2+QTM2*GAMMA
- RB=QT3+QM3+QTM3*GAMMA
- RC=QT1+QM1+QTM1*GAMMA-FTB
- C
- RATIO=(-RB+DSQRT(RB*RB-4.*RA*RC))/(2.*RA)
- RATIO1=RATIO
- QABS1=QTM1+RATIO1*RATIO1*QTM2+RATIO1*QTM3
- C
- C
- C SOLVING FOR RATIO IF MIXED QUADRATIC NEGATIVE
- C
- RA=QT2+QM2-QTM2*GAMMA
- RB=QT3+QM3-QTM3*GAMMA
- RC=QT1+QM1-QTM1*GAMMA-FTB
- C
- RATIO=(-RB+DSQRT(RB*RB-4.*RA*RC))/(2.*RA)
- RATIO2=RATIO
- QABS2=QTM1+RATIO2*RATIO2*QTM2+RATIO2*QTM3
- C
- IF (RATIO1.GT.1.0.OR.QABS1.LT.0.0) RATIO1=100.
- IF ( RATIO2.GT.1.0.OR.QABS2.GT.0.0 ) RATIO2=100.
- C
- RATIO=DMIN1(RATIO1,RATIO2)
- GO TO 220
- C
- 215 RATIO=0.0
- C
- 220 STRESS(1)=RFX+RATIO*DRFX
- STRESS(2)=RFY+RATIO*DRFY
- STRESS(3)=RFXY+RATIO*DRFXY
- STRESS(4)=RMX+RATIO*DRMX
- STRESS(5)=RMY+RATIO*DRMY
- STRESS(6)=RMXY+RATIO*DRMXY
- C
- C DETERMINE PLASTIC STRAIN INCREMENT INTERVAL FOR
- C INTEGRATION OF ELASTIC-PLASTIC STRESSES
- C
- INTER=20.*(DSQRT(FTA/FTB)-1.)+1.
- IF (INTER.GT.25) INTER=25
- XM=(1.-RATIO)/DBLE(FLOAT(INTER))
- C
- DO 300 I=1,3
- DEPS(I)=EPS(I)*XM
- 300 DEPS(I+3)=CURV(I)*XM
- C
- C CALCULATION OF ELASTO-PLASTIC STRESSES BLOCK .....(START)
- C
- C UPDATE STRESSES AT EACH PLASTIC STRAIN INCREMENT
- C
- DO 600 IN=1,INTER
- CALL MIDEPR (STRESS)
- C
- DO 510 I=1,3
- DO 510 J=1,3
- STRESS(I)=STRESS(I)+CST(I,J)*DEPS(J)+CD(I,J)*DEPS(J+3)
- 510 STRESS(I+3)=STRESS(I+3)+CD(J,I)*DEPS(J)+DST(I,J)*DEPS(J+3)
- C
- RFX=STRESS(1)
- RFY=STRESS(2)
- RFXY=STRESS(3)
- RMX=STRESS(4)
- RMY=STRESS(5)
- RMXY=STRESS(6)
- C
- C UPDATE QUADRATICS QT,QM AND QTM
- C
- C
- QTM=(RFX*RMX+RFY*RMY-.5*RFX*RMY-.5*RFY*RMX+3.*RFXY*RMXY)*2./THIC3
- C
- 520 IF (ET.NE.0.0) GO TO 600
- C
- QT =(RFX*RFX+RFY*RFY-RFX*RFY+3.*RFXY*RFXY)/THIC2
- QM =(RMX*RMX+RMY*RMY-RMX*RMY+3.*RMXY*RMXY)/THIC4
- C
- FTA=QT + QM + DABS(QTM)*GAMMA
- C
- C APPLY CORRECTION PROCEDURES FOR PERFECTLY PLASTIC MATERIALS
- C
- FTR=DSQRT(FTA/FTB)
- COEF=1./FTR
- C
- STRESS(1)=STRESS(1)*COEF
- STRESS(2)=STRESS(2)*COEF
- STRESS(3)=STRESS(3)*COEF
- STRESS(4)=STRESS(4)*COEF
- STRESS(5)=STRESS(5)*COEF
- STRESS(6)=STRESS(6)*COEF
- 600 CONTINUE
- C
- C CALCULATION OF ELASTOPLASTIC STRESSES BLOCK....(END)
- C
- C UPDATE THE VARIABLE YIELDD IN CASE OF HARDENING MATERIALS
- C
- IF (ET.EQ.0.0) GO TO 605
- C
- QT=(STRESS(1)*STRESS(1)+STRESS(2)*STRESS(2)-STRESS(1)*STRESS(2)+3.
- 1*STRESS(3)*STRESS(3))/THIC2
- QM=(STRESS(4)*STRESS(4)+STRESS(5)*STRESS(5)-STRESS(4)*STRESS(5)+3.
- 1*STRESS(6)*STRESS(6))/THIC4
- QTM=(STRESS(1)*STRESS(4)+STRESS(2)*STRESS(5)-.5*STRESS(1)*STRESS(5
- 1)-.5*STRESS(2)*STRESS(4)+3.*STRESS(3)*STRESS(6))*2./THIC3
- C
- FTA=QT+QM+DABS(QTM)*GAMMA
- C
- IF (FTA.GT.FTB) YIELDD=FTA
- C
- 605 DO 607 I=1,3
- FN(I)=STRESS(I)
- 607 TM(I)=STRESS(I+3)
- C
- IF (IUPDT.NE.0 ) GO TO 611
- YIELD=YIELDD
- C
- C UPDATE SIG AND EPST
- C
- DO 608 I=1,6
- 608 SIG(I)=STRESS(I)
- DO 610 I=1,3
- II=I+3
- EPST(I)=EPST(I)+EPS(I)
- 610 EPST(II)=EPST(II) + CURV(I)
- C
- 611 IF (KPRI.EQ.0 ) GO TO 700
- C
- IF ( ICOUNT.EQ.3 ) RETURN
- C
- C IN DIVERGENCE DEFORMATION (IEQREF.EQ.1 ) ASSUME ELASTIC BEHAVIOR
- C
- IF ( IEQREF.EQ.1 ) GO TO 630
- IF ( IPELD.EQ.2 ) GO TO 650
- C
- 630 DO 640 I=1,3
- DO 640 J=1,3
- CST(I,J)=0.0
- DST(I,J)=0.0
- 640 CD(I,J)=0.0
- C
- CST(1,1)=THIC*D11
- CST(1,2)=THIC*D12
- CST(2,2)=CST(1,1)
- CST(2,1)=CST(1,2)
- CST(3,3)=THIC*D33
- C
- DST(1,1)=THICM*D11
- DST(1,2)=THICM*D12
- DST(2,1)=DST(1,2)
- DST(2,2)=DST(1,1)
- DST(3,3)=THICM*D33
- C
- RETURN
- C
- 650 CALL MIDEPR (STRESS)
- C
- RETURN
- C
- C PRINT STRESS-RESULTANTS
- C
- 700 IF ( IPRI.NE.0 ) RETURN
- C
- IF (IPT.EQ.1) WRITE (6,2001) NEL
- WRITE (6,2002) IPT,STATE(IPELD),(STRESS(IS),IS=1,6)
- C
- RETURN
- C
- 2001 FORMAT (I6)
- 2002 FORMAT (9X,I3,2X,A2,6HLASTIC,2X,6(2X,E15.6))
- C
- END
- C *CDC* *DECK MIDEPR
- C *UNI* )FOR,IS N.MIDEPR, R.MIDEPR
- SUBROUTINE MIDEPR (STRESS)
- C
- C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
- C . THIS SUBROUTINE OBTAINS THE RELATIONS BETWEEN THE STRESS .
- C . RESULTANTS AND THE KINEMATIC QUANTITIES FOR ELASTOPLASTIC .
- C . BEHAVIOR OF THE PLATE ELEMENTS .
- C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
- C
- IMPLICIT REAL*8 (A-H,O-Z)
- C
- COMMON /PROPTY/ CST(3,3),CD(3,3),DST(3,3),YM,PV,ET,QTM
- COMMON /ILYSHN/ GAMMA,D11,D12,D22,D33,HA,THIC2,THIC3,THIC4,THICM
- COMMON /ELINF / THIC,BETE,WAA(13),NEL,IP,NINT,IPT
- C
- DIMENSION STRESS(6),QF(3),QM(3),QFM(6)
- C
- C DEVELOPING THE ELASTOPLASTIC MATRICES (START)
- C
- RFX=STRESS(1)
- RFY=STRESS(2)
- RFXY=STRESS(3)
- RMX=STRESS(4)
- RMY=STRESS(5)
- RMXY=STRESS(6)
- C
- C QF CONTAINS DERIVATIVES OF QT W.R.T. MEMBRANE FORCES
- C QM CONTAINS DERIVATIVES OF QM W.R.T. MOMENTS
- C QFM CONTAINS DERIVATIVES OF QTM W.R.T. FORCES AND MOMENTS
- C
- QF(1)=(2.*RFX - RFY)/THIC2
- QF(2)=(2.*RFY - RFX)/THIC2
- QF(3)=6.*RFXY/THIC2
- C
- QM(1)=(2.*RMX - RMY)/THIC4
- QM(2)=(2.*RMY - RMX)/THIC4
- QM(3)=6.*RMXY/THIC4
- C
- QFM(1)= GAMMA*(2.*RMX - RMY)/THIC3
- QFM(2)= GAMMA*(2.*RMY - RMX)/THIC3
- QFM(3)= GAMMA*6.*RMXY/THIC3
- QFM(4)= GAMMA*(2.*RFX - RFY)/THIC3
- QFM(5)= GAMMA*(2.*RFY - RFX)/THIC3
- QFM(6)= GAMMA*6.*RFXY/THIC3
- C
- IF (QTM.LT.0.0) GO TO 212
- FFX=QF(1)+QFM(1)
- FFY=QF(2)+QFM(2)
- FFXY=QF(3)+QFM(3)
- FMX=QM(1)+QFM(4)
- FMY=QM(2)+QFM(5)
- FMXY=QM(3)+QFM(6)
- GO TO 420
- C
- 212 FFX=QF(1)-QFM(1)
- FFY=QF(2)-QFM(2)
- FFXY=QF(3)-QFM(3)
- FMX=QM(1)-QFM(4)
- FMY=QM(2)-QFM(5)
- FMXY=QM(3)-QFM(6)
- C
- C CALCULATE COEFFICIENTS IN THE DENOMINATOR RD
- C
- 420 RF=THIC*(FFX*FFX*D11+2.*FFX*FFY*D12+FFY*FFY*D22+FFXY*FFXY*D33)
- RH=HA*(RFX*FFX+RFY*FFY+RFXY*FFXY+RMX*FMX+RMY*FMY+RMXY*FMXY)
- RM=(FMX*FMX*D11+2.*FMX*FMY*D12+FMY*FMY*D22+FMXY*FMXY*D33)*THICM
- RD=RF+RM+RH
- C
- C DTDIJ ARE THE MEMBRANE COMPONENTS
- C
- DTD11=FFX*FFX*D11*D11+2.*FFX*FFY*D11*D12+FFY*FFY*D12*D12
- DTD12=FFX*FFX*D11*D12+FFX*FFY*(D11*D22+D12*D12)+FFY*FFY*D12*D22
- DTD13=FFX*FFXY*D11*D33+FFY*FFXY*D12*D33
- DTD22=FFX*FFX*D12*D12+2.*FFX*FFY*D12*D22+FFY*FFY*D22*D22
- DTD23=FFX*FFXY*D12*D33+FFY*FFXY*D22*D33
- DTD33=FFXY*FFXY*D33*D33
- C
- C DMTDIJ ARE THE MIXED COMPONENTS
- C
- DTMD11=FMX*FFX*D11*D11+FMY*FFX*D11*D12+FMX*FFY*D11*D12+FMY*FFY*D12
- 1*D12
- DTMD12=FMX*FFX*D11*D12+FMY*FFX*D11*D22+FMX*FFY*D12*D12+FMY*FFY*D12
- 1*D22
- DTMD13=FMXY*FFX*D11*D33+FMXY*FFY*D12*D33
- DTMD21=FMX*FFX*D11*D12+FMY*FFX*D12*D12+FMX*FFY*D11*D22+FMY*FFY*D12
- 1*D22
- DTMD22=FMX*FFX*D12*D12+FMY*FFX*D12*D22+FMX*FFY*D12*D22+FMY*FFY*D22
- 1*D22
- DTMD23=FMXY*FFX*D12*D33+FMXY*FFY*D22*D33
- DTMD31=FMX*FFXY*D11*D33+FMY*FFXY*D12*D33
- DTMD32=FMX*FFXY*D12*D33+FMY*FFXY*D22*D33
- DTMD33=FMXY*FFXY*D33*D33
- C
- C DMDIJ ARE THE BENDING COMPONENTS
- C
- DMD11=FMX*FMX*D11*D11+2.*FMX*FMY*D11*D12+FMY*FMY*D12*D12
- DMD12=FMX*FMX*D11*D12+FMX*FMY*(D11*D22+D12*D12)+FMY*FMY*D12*D22
- DMD13=FMX*FMXY*D11*D33+FMY*FMXY*D12*D33
- DMD22=FMX*FMX*D12*D12+2.*FMX*FMY*D12*D22+FMY*FMY*D22*D22
- DMD23=FMX*FMXY*D12*D33+FMY*FMXY*D22*D33
- DMD33=FMXY*FMXY*D33*D33
- C
- C CALCULATE ELASTIC-PLASTIC STRESS-STRAIN MATRICES
- C
- C INCREMENTAL FORCES - DN=CST*EPS + CD*CURV
- C INCREMENTAL MOMENTS- DM=TRANSPOSE(CD)*EPS + DST*CURV
- C
- C
- IF(RD.EQ.0.) GO TO 801
- C
- CF1=-THIC2/RD
- GO TO 802
- 801 CF1=0.0
- 802 CST(1,1)=THIC*D11+CF1*DTD11
- CST(1,2)=THIC*D12+CF1*DTD12
- CST(1,3)=CF1*DTD13
- CST(2,1)=CST(1,2)
- CST(2,2)=THIC*D22+CF1*DTD22
- CST(2,3)=CF1*DTD23
- CST(3,1)=CST(1,3)
- CST(3,2)=CST(2,3)
- CST(3,3)=THIC*D33+CF1*DTD33
- C
- IF (RD.EQ.0.0) GO TO 901
- C
- CF2=-THIC*THICM/RD
- GO TO 902
- 901 CF2=0.0
- 902 CD(1,1)=CF2*DTMD11
- CD(1,2)=CF2*DTMD12
- CD(1,3)=CF2*DTMD13
- CD(2,1)=CF2*DTMD21
- CD(2,2)=CF2*DTMD22
- CD(2,3)=CF2*DTMD23
- CD(3,1)=CF2*DTMD31
- CD(3,2)=CF2*DTMD32
- CD(3,3)=CF2*DTMD33
- C
- CF3=THICM
- IF(RD.EQ.0.0) GO TO 903
- CF4=-THICM*THICM/RD
- GO TO 904
- 903 CF4=0.0
- 904 DST(1,1)=CF3*D11+CF4*DMD11
- DST(1,2)=CF3*D12+CF4*DMD12
- DST(1,3)=CF4*DMD13
- DST(2,1)=DST(1,2)
- DST(2,2)=CF3*D22+CF4*DMD22
- DST(2,3)=CF4*DMD23
- DST(3,1)=DST(1,3)
- DST(3,2)=DST(2,3)
- DST(3,3)=CF3*D33+CF4*DMD33
- C
- C
- C DEVELOPING THE ELASTOPLASTIC MATRICES.. (END)
- C
- RETURN
- C
- END
- C *CDC* *DECK OVL100
- C *CDC* OVERLAY (ADINA,10,0)
- C *UNI* .FOR,IS N.SHELL,R.SHELL
- C *CDC* *DECK SHELL
- C *UNI* )FOR,IS N.SHELL,R.SHELL
- C *CDC* PROGRAM SHELL
- SUBROUTINE SHELL
- C
- C
- C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
- C . .
- C . .
- C . M A T E R I A L M O D E L S .
- C . .
- C . MODEL = 1 LINEAR ISOTROPIC .
- C . 2 ELASTIC PLASTIC (VON MISES/ISOTROPIC HARDENING) .
- C . .
- C . .
- C . S T O R A G E .
- C . .
- C . N101 LM ARRAY (ELEMENT CONNECTIVITY) .
- C . N102 XYZ ARRAY (ELEMENT COORDINATES) .
- C . .
- C . N103 IELTD .
- C . N104 IELTP .
- C . N105 IPST .
- C . N106 MATP .
- C . N107 IREUSE .
- C . N108 NDOPT (OPTIONAL NODE ARRAY) .
- C . N109 ETIMV (ELEMENT EXPIRY TIME ARRAY, IF IDEATH EQ. 1) .
- C . N110 EDISB (ELEMENT BIRTH TIME NODAL COORDINATES) .
- C . .
- C . N111 DEN .
- C . N112 PROP (MATERIAL CONSTANTS) .
- C . N113 WA (WORKING ARRAY) .
- C . N114 ITABLE (STRESS OUTPUT LOCATION TABLES) .
- C . N115 THICK (THICKNESS TABLES) .
- C . N116 ISKEW (SKEW BOUNDARY SYSTEM IDENTIFIERS) .
- C . N117 NTHT (ELEMENT THICKNESS TABLE IDENTIFIERS) .
- C . N118 VNI INITIAL (NODAL) NORMAL VECTOR .
- C . N119 VNT (NODAL) NORMAL VECTOR AT TIME T .
- C . N119B V1 (NODAL) VECTOR V1 AT TIME T .
- C . N120 NORGOL GLOBAL NORMAL-NUMBER OF MID-SURFACE NODES .
- C . N121 ISHAP ELEMENT BASE SHAPE .
- C
- C . N121A COSXY DIRECTION COSINES OF V1 AND V2 AXES .
- C . N122 B (COMPACTED STRAIN-DISPLACEMENT MATRIX) .
- C . N123 XM (LUMPED MASS MATRIX) .
- C . N124 RE (OUT-OF-BALANCE LOAD VECTOR) .
- C . N125 S (ELEMENT STIFFNESS MATRIX) .
- C . N126 EDIS (ELEMENT DISPLACEMENT VECTOR) .
- C . N127 BV (COMLETE STRAIN-DISPLACEMENT MATRIX STORED .
- C . IN VECTOR ARRAY) .
- C . .
- C . .
- C . .
- C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
- C
- C
- C
- IMPLICIT REAL*8 (A-H,O-Z)
- COMMON /SOL/ NUMNP,NEQ,NWK,NWM,NWC,NUMEST,MIDEST,MAXEST,NSTE,MA
- COMMON /DIM/ N0,N1,N2,N3,N4,N5,N6,N7,N8,N9,N10,N11,N12,N13,N14,N15
- COMMON /DIMETC/ N01,N02,N03,N04,N05,N06,N07,N08,N09
- COMMON /SHV1/ N010
- COMMON /FREQIF/ ISTOH,N1A,N1B,N1C
- COMMON /EL/ IND,ICOUNT,NPAR(20),NUMEG,NEGL,NEGNL,IMASS,IDAMP,ISTAT
- 1 ,NDOF,KLIN,IEIG,IMASSN,IDAMPN
- COMMON /PRCON/ IDATWR,IPRIC,NPB,IDC,IVC,IAC,IPC,IPNODE(3,15)
- COMMON /SHELL1/ DISD(9),IELD,IELP,NPT,IDW,NDROT
- COMMON /SHELL3/ N101,N102,N103,N104,N105,N106,N107,N108,N109,N110,
- 1 N111,N112,N113,N114,N120,N121,N122,N123,N124,N125
- COMMON /DPR/ ITWO
- COMMON /ELGLTH/ NFIRST,NLAST,NBCEL
- COMMON /JUNK/ IHED(18),MTOT,LPROG
- COMMON /PORT/ INPORT,JNPORT,NPUTSV,LUNODE,LU1,LU2,LU3,JDC,JVC,JAC
- COMMON /VAR/ NG,MODEX,IUPDT,KSTEP,ITEMAX,IEQREF,ITE,KPRI,
- 1 IREF,IEQUIT,IPRI,KPLOTN,KPLOTE
- COMMON /SKEW / NSKEWS
- COMMON /ISUBST/ ISUBC,NSUBST,NSUB,NTUSE,NEGLS,NEGNLS,NUMNPS,
- 1 NODCON,NODRET,IDOFS(6),NDOFS,NEQS,NWKS,MAXESC,
- 2 MAS,NSTAPE,ILOA(13),KRSIZM,NEQC
- COMMON A(1)
- REAL A
- DIMENSION IA(1)
- EQUIVALENCE (A(1),IA(1))
- C
- DIMENSION NMCON(2),IDWAS(2)
- C
- EQUIVALENCE (NPAR(2),NUME),(NPAR(4),IDEATH),(NPAR(3),INDNL)
- 1 ,(NPAR(6),NEGSKS),(NPAR(7),MXTNOD),(NPAR(8),MXMNOD)
- 2 ,(NPAR(9),IFUNCT),(NPAR(10),NINTR),(NPAR(11),NINTS)
- 3 ,(NPAR(12),NINTT),(NPAR(13),NTABLE),(NPAR(14),NTHICK)
- 4 ,(NPAR(15),MODEL),(NPAR(16),NUMMAT),(NPAR(17),NCON)
- 5 ,(NPAR(5),ISTRES)
- C
- DATA RECLB1 /8HTYPE-7 /
- DATA NMCON /3,4/,
- 1 IDWAS /0,15/
- C
- C
- IF (IND.NE.0) GO TO 100
- C
- C
- C I N P U T P H A S E
- C C H E C K T H E NPAR V E C T O R F O R
- C R A N G E A N D C O M P A T I B I L I T Y
- C
- C
- C
- C CHECK ON RANGE AND SET DEFAULTS FOR NPAR VECTOR
- C
- ISTOP=0
- IF (NUME.GT.0) GO TO 10
- ISTOP=ISTOP+1
- IF (ISTOP.EQ.1) WRITE (6,2100) NG
- ISUB=2
- IRANGE=1
- WRITE (6,2400) ISTOP,ISUB,IRANGE,ISUB,NPAR(ISUB)
- C
- 10 IF (INDNL.GE.0 .AND. INDNL.LE.2) GO TO 15
- ISTOP=ISTOP+1
- IF (ISTOP.EQ.1) WRITE (6,2100) NG
- ISUB=3
- WRITE (6,2200) ISTOP,ISUB,ISUB,NPAR(ISUB)
- C
- 15 IF (IDEATH.NE.0) IDTHF=1
- IF (IDEATH.GE.0 .AND. IDEATH.LE.2) GO TO 20
- ISTOP=ISTOP+1
- IF (ISTOP.EQ.1) WRITE (6,2100) NG
- ISUB=4
- WRITE (6,2200) ISTOP,ISUB,ISUB,NPAR(ISUB)
- C
- 20 IF (MXTNOD.EQ.0) MXTNOD=32
- IF (MXTNOD.GE.4 .AND. MXTNOD.LE.32) GO TO 25
- ISTOP=ISTOP+1
- IF (ISTOP.EQ.1) WRITE (6,2100) NG
- ISUB=7
- IRANG1=4
- IRANG2=32
- WRITE (6,2350) ISTOP,ISUB,IRANG1,IRANG2,ISUB,NPAR(ISUB)
- C
- 25 IF (IFUNCT.LT.2) IFUNCT=2
- IF (IFUNCT.LE.4) GO TO 27
- ISTOP=ISTOP+1
- IF (ISTOP.EQ.1) WRITE (6,2100) NG
- ISUB=9
- IRANGE=4
- WRITE (6,2300) ISTOP,ISUB,IRANGE,ISUB,NPAR(ISUB)
- C
- 27 IF (NINTR.LE.0 .AND. IFUNCT.LT.4) NINTR=2
- IF (NINTR.LE.0 .AND. IFUNCT.EQ.4) NINTR=3
- IF (NINTR.LE.4) GO TO 28
- ISTOP=ISTOP+1
- IF (ISTOP.EQ.1) WRITE (6,2100) NG
- ISUB=10
- IRANGE=4
- WRITE (6,2300) ISTOP,ISUB,IRANGE,ISUB,NPAR(ISUB)
- C
- 28 IF (NINTS.LE.0) NINTS=NINTR
- IF (NINTS.LE.4) GO TO 29
- ISTOP=ISTOP+1
- IF (ISTOP.EQ.1) WRITE (6,2100) NG
- ISUB=11
- IRANGE=4
- WRITE (6,2300) ISTOP,ISUB,IRANGE,ISUB,NPAR(ISUB)
- C
- 29 IF (NINTT.LE.0) NINTT=2
- IF (NINTT.LE.4) GO TO 30
- ISTOP=ISTOP+1
- IF (ISTOP.EQ.1) WRITE (6,2100) NG
- ISUB=12
- IRANGE=4
- WRITE (6,2300) ISTOP,ISUB,IRANGE,ISUB,NPAR(ISUB)
- C
- 30 IF (MODEL.LE.0) MODEL=1
- MODMAX=2
- IF (MODEL.LE.MODMAX) GO TO 35
- ISTOP=ISTOP+1
- IF (ISTOP.EQ.1) WRITE (6,2100) NG
- ISUB=15
- WRITE (6,2300) ISTOP,ISUB,MODMAX,ISUB,NPAR(ISUB)
- C
- 35 IF (NUMMAT.LE.0) NUMMAT=1
- C
- IDW =IDWAS(MODEL)
- NPAR(20)=IDW
- NCONT=NMCON(MODEL)
- IF (MODEL.EQ.2) GO TO 42
- NCON=NCONT
- GO TO 50
- C
- 42 IF (NCON.NE.0) GO TO 43
- NCON=NCONT
- GO TO 50
- 43 IF (NCON.LE.4) GO TO 50
- ISTOP=ISTOP + 1
- ISUB=17
- NCNMN=4
- WRITE (6,2300) ISTOP,ISUB,NCNMN,ISUB,NPAR(ISUB)
- C
- C
- C
- C CHECK ON COMPATIBILITY BETWEEN ELEMENTS OF NPAR
- C
- C
- C 1. COMPATIBILITY OF INDNL AND IDEATH
- C
- 50 ISUB=3
- IF (INDNL.GT.0) GO TO 55
- IF (IDEATH.EQ.0) GO TO 52
- ISTOP=ISTOP+1
- IF (ISTOP.EQ.1) WRITE (6,2100) NG
- ISUD=4
- WRITE (6,2500) ISTOP,ISUB,NPAR(ISUB),ISUD,NPAR(ISUD)
- C
- C 2. COMPATIBILITY OF INDNL AND MODEL
- C
- 52 IF (MODEL.EQ.1) GO TO 55
- ISTOP=ISTOP+1
- IF (ISTOP.EQ.1) WRITE (6,2100) NG
- ISUD=15
- WRITE (6,2500) ISTOP,ISUB,NPAR(ISUB),ISUD,NPAR(ISUD)
- C
- C 3. COMPATIBILITY OF MXTNOD AND MXMNOD
- C
- 55 ISUB=8
- ISUD=7
- IF (MXTNOD.GE.MXMNOD) GO TO 60
- ISTOP=ISTOP+1
- IF (ISTOP.EQ.1) WRITE (6,2100) NG
- WRITE (6,2500) ISTOP,ISUB,NPAR(ISUB),ISUD,NPAR(ISUD)
- GO TO 60
- C
- C 4. COMPATIBILITY OF NEGSKS AND NSKEWS
- C
- 60 IF (NEGSKS.EQ.0) GO TO 70
- IF (NSKEWS.GT.0) GO TO 70
- ISUB=6
- ISTOP=ISTOP+1
- IF (ISTOP.EQ.1) WRITE (6,2100) NG
- WRITE (6,2550) ISTOP,NSKEWS,ISUB,NPAR(ISUB)
- C
- C
- C
- 70 IF (ISTOP.GT.0) IDATWR=1
- IF (IDATWR.GT.1) GO TO 90
- C
- C PRINT OUT NPAR VECTOR
- C
- WRITE (6,2040) NPAR(1)
- WRITE (6,2050) NUME,INDNL,IDEATH
- WRITE (6,2057) ISTRES
- WRITE (6,2051) NEGSKS,MXTNOD,MXMNOD,IFUNCT
- WRITE (6,2052) NINTR,NINTS,NINTT,NTABLE,NTHICK
- WRITE (6,2054) MODEL
- WRITE (6,2055) NUMMAT,NCON,IDW
- IF (INDNL.GT.1) WRITE (6,2698)
- C
- 90 IF (ISTOP.EQ.0) GO TO 95
- WRITE (6,2750)
- STOP
- C
- C
- C*** DATA PORTHOLE *************************** (START)
- C
- 95 IF (JNPORT.EQ.0 .OR. NPUTSV.EQ.0) GO TO 100
- RECLAB=RECLB1
- WRITE (LU3) RECLAB,NG,(NPAR(I),I=1,20),NSUB
- C
- C*** DATA PORTHOLE *************************** ( END )
- C
- C
- C
- C
- C S T O R A G E A L O C A T I O N F O R
- C G E N E R A L 3 / D S H E L L
- C
- C
- 100 NDROT=2
- NDMX=3*MXTNOD
- NDM=NDMX + NDROT*MXMNOD
- NDMB=NDM + 7*MXMNOD
- NDMV=3*MXMNOD
- NDM3=NDM*(NDM+1)/2
- IDW=NPAR(20)
- NNRS=NINTR*NINTS
- IF (NNRS.EQ.6) NNRS=7
- IF (NNRS.EQ.12) NNRS=13
- NPT=NNRS*NINTT
- IDWA=IDW*NPT
- C
- C STORAGE ALLOCATION
- C
- NFIRST=N6
- IF (IND.EQ.4) NFIRST=N10
- N101=NFIRST + 20
- N102=N101 + NDM*NUME
- N103=N102 + NDMX*NUME*ITWO
- C
- N104=N103 + NUME
- N105=N104 + NUME
- N106=N105 + NUME
- N107=N106 + NUME
- N108=N107 + NUME
- N109=N108 + MXTNOD*NUME
- N110=N109 + NUME*ITWO
- IF (IDEATH.EQ.0) N110=N109
- N111=N110 + NDMX*NUME*ITWO
- IF (IDEATH.NE.1) N111=N110
- C
- N112=N111 + NUMMAT*ITWO
- N113=N112 + NCON*NUMMAT*ITWO
- N114=N113 + IDWA*NUME*ITWO
- N115=N114 + 16*NTABLE
- N116=N115 + NTHICK*MXMNOD*ITWO
- C
- N117=N116
- IF (NEGSKS.GT.0) N117=N116 + NUME*MXTNOD
- N118=N117 + NUME
- N119=N118 + 3*MXMNOD*NUME*ITWO
- N119B=N119+3*MXMNOD*ITWO
- N120=N119B+3*MXMNOD*ITWO
- N121=N120 + MXMNOD*NUME
- IF (INDNL.LT.2) N121=N120
- N121A=N121 + NUME
- C
- N122=N121A + 6*MXMNOD*ITWO
- N123=N122 + NDMB*ITWO
- N124=N123 + NDM*ITWO
- N125=N124 + NDM*ITWO
- N126=N125 + NDM3*ITWO
- N127=N126 + NDMX*ITWO
- N128=N127 + 6*NDM*ITWO
- C
- NLAST=N121A - 1
- NI=N128 - NLAST
- IF (NBCEL.LT.NI) NBCEL=NI
- C
- C *CDC* IF (NLAST.GT.MTOT) CALL SIZE (NLAST+2000)
- IF (IND.GT.0) GO TO 105
- C
- DO 140 I=1,20
- 140 IA(NFIRST + I - 1)=NPAR(I)
- C
- MIDEST=NLAST - (NFIRST-1)
- IF (IDATWR.LE.1) WRITE (6,2000) NG,MIDEST
- CALL SIZE (N128)
- C
- 105 IF (IND.GT.3) GO TO 110
- M2=N2
- M3=N3
- M4=N4
- GO TO 120
- 110 M2=N2
- M3=N7
- M4=N8
- IF (ICOUNT.LT.3) GO TO 120
- M2=N6
- C
- 120 CALL SHELTH (A(N06),A(N1A),A(N08),A(N09),A(N010),
- 1 A(N1),A(M2),A(M3),A(M4),A(N5),A(N101),A(N102),
- 1 A(N103),A(N104),A(N105),A(N106),A(N107),A(N108),
- 2 A(N109),A(N110),A(N111),A(N112),A(N113),A(N114),
- 3 A(N115),A(N116),A(N117),A(N118),A(N119),
- 3 A(N119B),A(N120),
- 4 A(N121),A(N121A),A(N122),A(N123),A(N124),A(N125),
- A A(N126),A(N127),
- 5 NTABLE,NCON,IDWA,NDM,NDM3,NDOF,NTHICK,MXTNOD,MXMNOD,
- 6 NDMV,NDMX)
- C
- C
- RETURN
- C
- 2000 FORMAT (//49H LENGTH OF ARRAY NEEDED FOR STORING ELEMENT GROUP/
- 3 12H DATA (GROUP,I3,26H). . . . . . . . . . . . .,
- 4 15H( MIDEST ). . =,I5//)
- C
- 2040 FORMAT (36H E L E M E N T D E F I N I T I O N ///,
- 1 14H ELEMENT TYPE ,13(2H .),16H( NPAR(1) ). . =,I5/,
- 2 25H EQ.1, TRUSS ELEMENTS/,
- 3 25H EQ.2, 2-DIM ELEMENTS/,
- 4 25H EQ.3, 3-DIM ELEMENTS/,
- 5 25H EQ.4, BEAM ELEMENTS/,
- 5 28H EQ.5, ISO/BEAM ELEMENTS/,
- 6 28H EQ.6, PLATE ELEMENTS /,
- B 25H EQ.7, SHELL ELEMENTS/,
- E 25H EQ.8,9,10, EMPTY /,
- G 32H EQ.11, 2-DIM FLUID ELEMENTS/,
- 5 32H EQ.12, 3-DIM FLUID ELEMENTS /)
- 2050 FORMAT (20H NUMBER OF ELEMENTS.,10(2H .),16H( NPAR(2) ). . =,I5//
- 5 40H TYPE OF NONLINEAR ANALYSIS . . . . . . ,
- 6 16H( NPAR(3) ). . =,I5/,
- + 40H EQ.0, LINEAR /,
- 7 40H EQ.1, MATERIAL NONLINEARITY ONLY /,
- 9 40H EQ.2, TOTAL LAGRANGIAN FORMULATION //
- + 32H ELEMENT BIRTH AND DEATH OPTIONS ,4(2H .),
- + 16H( NPAR(4) ). . =,I5/,
- + 28H EQ.0, OPTION NOT ACTIVE/,
- + 30H EQ.1, BIRTH OPTION ACTIVE /,
- A 30H EQ.2, DEATH OPTION ACTIVE )
- 2057 FORMAT (/,36H STRESS PRINT-OUT COORDINATE SYSTEM.,2(2H .),
- 1 16H( NPAR(5) ). . =,I5/,
- 2 30H EQ.0, GLOBAL XYZ AXES /,
- 3 30H EQ.1, LOCAL RST AXES )
- 2051 FORMAT(/23H SKEW COORDINATE SYSTEM/
- B 40H REFERENCE INDICATOR . . . . . . . .,
- C 16H( NPAR(6) ). . =,I5/
- D 28H EQ.0, ALL ELEMENT NODES/
- E 37H USE THE GLOBAL SYSTEM ONLY/
- F 35H EQ.1, ELEMENT NODES REFER /
- G 36H TO SKEW COORDINATE SYSTEM//
- A 38H MAX NUMBER OF TOTAL NODES DESCRIBING /,
- 9 20H ANY ONE ELEMENT,10(2H .),16H( NPAR(7) ). . =,I5//,
- 1 32H MAX NUMBER OF MID-SURFACE NODES /,
- 2 24H FOR ANY ONE ELEMENT ,8(2H .),16H( NPAR(8) ). . =,
- 3 I5//,
- 4 32H MAX NUMBER OF NODES IN THE R OR /,
- 5 16H S DIRECTION ,12(2H .),16H( NPAR(9) ). . =,I5//)
- 2052 FORMAT (40H INTEGRATION ORDER ( R DIRECTION) FOR /,
- 2 40H ELEMENT STIFFNESS GENERATION. . . .,
- 3 16H( NPAR(10)). . =,I5//,
- 4 40H INTEGRATION ORDER ( S DIRECTION) FOR /,
- 5 40H ELEMENT STIFFNESS GENERATION. . . .,
- 6 16H( NPAR(11)). . =,I5//,
- 7 40H INTEGRATION ORDER ( T DIRECTION) FOR /,
- 8 40H ELEMENT STIFFNESS GENERATION. . . .,
- 9 16H( NPAR(12)). . =,I5//,
- A 40H NUMBER OF STRESS OUTPUT TABLES . . . .,
- B 16H( NPAR(13)). . =,I5/
- C 38H EQ.0, PRINT AT INTEGRATION POINTS //,
- D 34H NUMBER OF SHELL THICKNESS TABLES ,3(2H. ),
- E 16H( NPAR(14)). . =,I5//)
- 2054 FORMAT (38H M A T E R I A L D E F I N I T I O N///,
- 1 16H MATERIAL MODEL.,12(2H .),16H( NPAR(15)). . =,I5/,
- 2 35H EQ.1, LINEAR ELASTIC ISOTROPIC /,
- 3 51H EQ.2, ELASTIC-PLASTIC WITH ISOTROPIC HARDENING/,
- 4 35H EQ.3,4, (EMPTY) ///)
- 2055 FORMAT (37H NUMBER OF DIFFERENT SETS OF MATERIAL /,
- 1 14H CONSTANTS,13(2H .),16H( NPAR(16)). . =,I5//,
- 2 40H NUMBER OF MATERIAL CONSTANTS PER SET. .,
- 3 16H( NPAR(17)). . =,I5//,
- 4 32H DIMENSION OF STORAGE ARRAY (WA)/,
- 5 26H PER INTEGRATION POINT,7(2H .),16H( NPAR(20)). . =,
- 6 I5//)
- C
- 2100 FORMAT (1H1,45HERROR IN ELEMENT GROUP CONTROL CARDS (SHELL) /
- 1 16H ELEMENT GROUP =, I5/)
- 2200 FORMAT (I5,7H. NPAR(,I2,27H) IS OUT OF RANGE ... NPAR(,I2,
- 1 3H) =,I5)
- 2300 FORMAT (I5,7H. NPAR(,I2,16H) SHOULD BE .LE., I2,10H ... NPAR(,I2,
- 1 3H) =,I5)
- 2350 FORMAT (I5,7H. NPAR(,I2,16H) SHOULD BE .GE., I2,3X,10HAND .LE.,
- 1 I2,10H ... NPAR(,I2,3H) =,I5)
- 2400 FORMAT (I5,7H. NPAR(,I2,16H) SHOULD BE .GE., I2,10H ... NPAR(,I2,
- 1 3H) =,I5)
- 2500 FORMAT (I5,7H. NPAR(,I2,3H) =,I2,10H AND NPAR(,I2,3H) =,I2,
- 1 19H ARE NOT COMPATIBLE )
- 2550 FORMAT (I5,10H. NSKEWS =,I2,10H AND NPAR(,I2,3H) =,I2,
- 1 19H ARE NOT COMPATIBLE )
- 2750 FORMAT (//// 23H STOP (ERRORS IN NPAR) )
- 2698 FORMAT (////16H *** N O T E ***//
- 1 52H IN GEOMETRIC NONLINEAR ANALYSIS, I.E., INDNL.GT.1, /
- 2 52H THE TOTAL ROTATIONS AT THE NODAL POINTS PRINTED IN /
- 3 52H THE STEP-BY-STEP SOLUTION ARE NOT USED. //
- 4 52H THE ELEMENT KINEMATICS AND STRESSES ARE CALCULATED /
- 5 52H USING INCREMENTAL ROTATIONS. ///)
- C
- END
- C *CDC* *DECK SHELTH
- C *UNI* )FOR,IS N.SHELTH, R.SHELTH
- SUBROUTINE SHELTH (RSDCOS,NODSYS,MIDSS,FMIDSS,FMV1,ID,X,Y,Z,
- 1 HT,LM,XYZ,IELTD,IELTP,IPST,MATP,IREUSE,
- 2 NDOPT,ETIMV,EDISB,DEN,PROP,WA,ITABLE,THICK,
- 3 ISKEW,NTHT,VNI,VNT,V1,NORGOL,ISHAP,COSXY,
- A B,XM,RE,S,EDIS,BV,
- 4 NTABLE,NCON,IDWA,NDM,NDM3,NDOF,NTHICK,
- 5 MXTNOD,MXMNOD,NDMV,NDMX)
- C
- C
- C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
- C . .
- C . P R O G R A M .
- C . .
- C . 1. TO READ AND PRINT SHELL ELEMENT INFORMATION .
- C . 2. TO CALCULATE THE LUMPED AND CONSISTENT MASS MATRIX .
- C . 3. TO CALCULATE THE GEOMETRIC AND/OR MATERIAL LINEAR OR .
- C . NONLINEAR STIFFNESS MATRIX FOR GENERAL 3/D SHELL ELEMENT .
- C . 4. TO CALCULATE AND PRINT ELEMENT STRESSES .
- C . .
- C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
- C
- C
- C
- IMPLICIT REAL*8 (A-H,O-Z)
- COMMON /EL/ IND,ICOUNT,NPAR(20),NUMEG,NEGL,NEGNL,IMASS,IDAMP,ISTAT
- 1 ,NDOFDM,KLIN,IEIG,IMASSN,IDAMPN
- COMMON /DIM/ N0,N1,N2,N3,N4,N5,N6,N7,N8,N9,N10,N11,N12,N13,N14,N15
- COMMON/ELSTP/TIME,IDTHF
- COMMON /VAR/ NG,MODEX,IUPDT,KSTEP,ITEMAX,IEQREF,ITE,KPRI,
- 1 IREF,IEQUIT,IPRI,KPLOTN,KPLOTE
- COMMON /PRCON/ IDATWR,IPRIC,NPB,IDC,IVC,IAC,IPC,IPNODE(3,15)
- COMMON /PORT/ INPORT,JNPORT,NPUTSV,LUNODE,LU1,LU2,LU3,JDC,JVC,JAC
- COMMON /SHELL1/ DISD(9),IELD,IELP,NPT,IDW,NDROT
- COMMON /SHELL2/ NOD(32),NODM(32),NDOPTM(32)
- COMMON /SHELMT/ D(6,6),STRESS(6),STRAIN(6),IPT,N,IPS
- COMMON /GAUSS/ XG(4,4),WGT(4,4),EVAL2(9,2),EVAL3(27,3),E1,E2,E3
- COMMON /TRANG/ TRLW4(4,3),TRLW7(7,3),TRLWD(13,3),
- 1 XGRS(16,2),WGTRS(16)
- COMMON /MDFRDM/ IDOF(6)
- COMMON /RANDI/ N0A,N1D,IELCPL
- COMMON /ADDB/ NEQL,NEQR,MLA,NBLOCK
- COMMON /SKEW / NSKEWS
- COMMON /MIDSYS/ NMIDSS,MIDIND,MAXMSS
- COMMON /SHELL4/ XJI(3,3),P(3,32),H(32)
- COMMON /SHELL5/ ISHAPE
- COMMON /SOL/ NUMNP,NEQ,NWK,NWM,NWC,NUMEST,MIDEST,MAXEST,NSTE,MA
- COMMON /XATKA/ LMID(32)
- COMMON /ISUBST/ ISUBC,NSUBST,NSUB,NTUSE,NEGLS,NEGNLS,NUMNPS,
- 1 NODCON,NODRET,IDOFS(6),NDOFS,NEQS,NWKS,MAXESC,
- 2 MAS,NSTAPE,ILOA(13),KRSIZM,NEQC
- COMMON /PRSHAP/ KSHAPE
- C
- COMMON A(1)
- REAL A
- C
- DIMENSION ID(NDOF,1),X(1),Y(1),Z(1),HT(1),LM(NDM,1),XYZ(NDMX,1),
- 1 IELTD(1),IELTP(1),IPST(1),MATP(1),DEN(1),
- 2 PROP(NCON,1),WA(IDWA,1),S(1),XM(1),B(1),RE(1),
- 3 EDIS(1),ETIMV(1),THICK(MXMNOD,1),NDOPT(MXTNOD,1),
- 4 IREUSE(1),ITABLE(NTABLE,1),EDISB(NDMX,1),XXX(96),
- 5 RSDCOS(9,1),NODSYS(1),ISKEW(MXTNOD,1),IPTABL(8),NTHT(1)
- 6 ,C(6,6),MIDSS(1),VNI(NDMV,1),BV(1),FMIDSS(3,1),
- 7 FMV1(3,1),NORGOL(MXMNOD,1),VNT(1),V1(1),
- 8 ANG(2),COSXY(1)
- DIMENSION ISHAP(1),NDTB(32),XYZTB(3,32),XYZINT(3,64)
- C
- INTEGER ANODE
- C
- EQUIVALENCE (NPAR(2),NUME),(NPAR(3),INDNL),(NPAR(4),IDEATH),
- 1 (NPAR(6),NEGSKS),(NPAR(9),IFUNCT),
- 2 (NPAR(10),NINTR),(NPAR(11),NINTS),(NPAR(12),NINTT),
- 3 (NPAR(15),MODEL),(NPAR(16),NUMMAT),(NPAR(5),ISTRES)
- C
- DATA ANODE /4HNODE/, RECLB1/8HTYPE-7 /, RECLB2/8HMATERAL7/,
- 1 RECLB3/8HOUTABLE7/, RECLB4/8HELEMENT7/,
- 2 RECLB5/8HNEWSTEP7/, RECLB6/8HOUTPUT-7/
- DATA RECLB7/8HTHICKNES/, RECLB8/8HIPOINT-7/
- DATA ATHA/4H T/ ,ATHB/4HHICK/
- C
- C
- C
- C .. NOTE .. DURING TIME INTEGRATION X=DISP, Y=VEL, Z=ACC
- C
- C
- IF (JNPORT.EQ.0) GO TO 3
- IELCPL=0
- IPTABL(1)=1
- IPTABL(2)=NINTT
- IPTABL(3)=NINTT*(NINTS-1) + 1
- IPTABL(4)=NINTS*NINTT
- IPTABL(5)=NINTS*NINTT*(NINTR - 1) + 1
- IPTABL(6)=IPTABL(5) + NINTT - 1
- IPTABL(7)=IPTABL(5) + NINTT*(NINTR-1)
- IPTABL(8)=IPTABL(7) + NINTT - 1
- C
- 3 IF (KPRI.EQ.0) GO TO 800
- IF (IND.GT.0) GO TO 420
- C
- ISCONT=0
- IF (NSKEWS.GT.0 .AND. NEGSKS.EQ.0) ISCONT=1
- IJPORT=1
- IF (JNPORT.EQ.0 .OR. NPUTSV.EQ.0) IJPORT=0
- C
- C
- C R E A D A N D G E N E R A T E E L E M E N T
- C I N F O R M A T I O N
- C
- C
- DO 10 I=1,NUMMAT
- READ(5,1000) N,DEN(N)
- READ(5,1001) (PROP(J,N), J=1,NCON)
- IF (MODEL.EQ.1 .AND. PROP(3,N).EQ.0.) PROP(3,N)=1.
- 10 CALL MATRIT (N,DEN(N),PROP(1,N))
- C
- C
- C READ TABLES FOR ELEMENT STRESS OUTPUT LOCATIONS
- C
- IF (NTABLE.EQ.0) GO TO 30
- IF (IDATWR.LE.1) WRITE (6,2070)
- DO 25 L=1,NTABLE
- READ(5,1007) (ITABLE(L,I),I=1,16)
- 25 IF (IDATWR.LE.1) WRITE (6,2060) L,(ITABLE(L,I),I=1,16)
- C
- C READ TABLES FOR ELEMENT THICKNESSES
- C
- 30 IF (NTHICK.EQ.0) GO TO 90
- IF (IDATWR.GT.1) GO TO 32
- WRITE (6,2075)
- WRITE (6,2080) (ATHA,ATHB,I,I=1,8)
- IF (MXMNOD.GT.8) WRITE (6,2081) (ATHA,ATHB,I,I=9,16)
- 32 CONTINUE
- DO 35 L=1,NTHICK
- READ (5,1001) (THICK(I,L),I=1,MXMNOD)
- DO 37 K=2,MXMNOD
- IF (THICK(K,L).EQ.0.) THICK(K,L)=THICK(1,L)
- 37 CONTINUE
- IF (IDATWR.GT.1) GO TO 35
- IF (MXMNOD.GT.8) GO TO 38
- WRITE (6,2077) L,(THICK(I,L),I=1,MXMNOD)
- GO TO 35
- 38 WRITE (6,2077) L,(THICK(I,L),I=1,8)
- WRITE (6,2078) (THICK(I,L),I=9,MXMNOD)
- 35 CONTINUE
- C
- C READ ELEMENT INFORMATION
- C
- 90 IELN=32
- IF (MXTNOD.EQ.MXMNOD) IELN=16
- IF (IDATWR.GT.1) GO TO 92
- WRITE (6,2005) (ANODE,I,I=1,16)
- IF (IELN.GT.16) WRITE (6,2006) (ANODE,I,I=17,32)
- WRITE (6,2007)
- 92 N=1
- IREAD=5
- IF (INPORT.GT.0) IREAD=59
- C
- C*** DATA PORTHOLE (START)
- C
- IF (IJPORT.EQ.0) GO TO 100
- RECLAB=RECLB2
- WRITE (LU3) RECLAB,NUMMAT,NCON,(DEN(I),I=1,NUMMAT),
- 1 ((PROP(I,J),I=1,NCON),J=1,NUMMAT)
- RECLAB=RECLB3
- IF (NTABLE.LE.0)
- 1 WRITE (LU3) RECLAB,NTABLE
- IF(NTABLE.GT.0)
- 1 WRITE (LU3) RECLAB,NTABLE,((ITABLE(I,J),I=1,NTABLE),J=1,16)
- RECLAB = RECLB7
- IF (NTHICK.EQ.0) WRITE (LU3) RECLAB,NTHICK
- IF (NTHICK.GT.0) WRITE (LU3) RECLAB,NTHICK,MXNOD,
- 1 ((THICK(I,J),I=1,MXMNOD),J=1,NTHICK)
- C
- C*** DATA PORTHOLE (END)
- C
- 100 READ (IREAD,1004) M,IELD,IPS,NTH,MTYP,IST,KG,ETIME,INTLOC
- IF (N.EQ.1 .AND. M.NE.1) GO TO 101
- IF (IDEATH.EQ.2 .AND. ETIME.EQ.0.) ETIME=100000.
- IF (IELD.EQ.0) IELD=MXTNOD
- IELP=IELD
- READ (IREAD,1007) (NOD(I),I=1,16)
- IF (MXTNOD.EQ.MXMNOD) GO TO 103
- READ (IREAD,1007) (NOD(I),I=17,32)
- C
- C CALCULATE THE NUMBER OF MID-SURFACE NODES FOR THIS ELEMENT
- C
- IELP=0
- DO 102 I=1,16
- 102 IF (NOD(I).GT.0 .AND. NOD(I+16).EQ.0) IELP=IELP + 1
- 103 NDMEL=3*IELD + NDROT*IELP
- IF (NDM.GE.NDMEL) GO TO 105
- WRITE(6,2010) M
- STOP
- 101 WRITE (6,2011) NSUB,NG
- STOP
- 105 IF (KG.EQ.0) KG=1
- C
- IF (M.NE.N) GO TO 200
- 121 DO 110 I=1,IELN
- 110 NODM(I)=NOD(I)
- II=0
- DO 112 I=1,IELN
- NN=NOD(I)
- IF (NN.EQ.0) GO TO 112
- II=II + 1
- NDOPTM(II)=-I
- IF (IELP.EQ.IELD) GO TO 112
- NDOPTM(II)=I
- IF (I.GT.16) GO TO 112
- IF (NOD(I+16).EQ.0) NDOPTM(II)=-I
- 112 CONTINUE
- IF (II.EQ.IELD) GO TO 115
- WRITE(6,2090) N
- STOP
- 115 IELDM=IELD
- IELPM=IELP
- IPSM=IPS
- MTYPE=MTYP
- NTHM=NTH
- ISTM=IST
- ISHAPM=0
- IF (NODM(1).EQ.NODM(4)) ISHAPM=1
- IF (ISHAPM.EQ.1) KSHAPE=1
- KKK=KG
- ETIM=ETIME
- INTLM=INTLOC
- C
- C SAVE ELEMENT INFORMATION
- C
- 200 I2=0
- IV2=0
- NORG=0
- DO 130 I=1,IELDM
- JS=NDOPTM(I)
- JJ=IABS(JS)
- II=NODM(JJ)
- I2=I2 + 3
- XYZ(I2-2,N)=X(II)
- XYZ(I2-1,N)=Y(II)
- XYZ(I2,N)=Z(II)
- IF(JS .GT. 0) GO TO 128
- JF=MIDSS(II)
- IF (JF) 124,123,126
- 123 WRITE (6,2500) N,NG,II
- STOP
- C
- 124 JF=0
- DO 125 L=1,II
- JJF=MIDSS(L)
- IF (JJF.NE.0) JF=JF+1
- 125 CONTINUE
- C
- 126 IV2=IV2 + 3
- VNI(IV2-2,N)=FMIDSS(1,JF)
- VNI(IV2-1,N)=FMIDSS(2,JF)
- VNI(IV2,N)=FMIDSS(3,JF)
- IF (INDNL.LT.2) GO TO 128
- JF=MIDSS(II)
- IF (JF) 145,141,143
- 141 WRITE (6,2500) N,NG,II
- STOP
- C
- 143 MIDIND=MIDIND + 1
- MIDSS(II)=-MIDIND
- NORG=NORG + 1
- NORGOL(NORG,N)=MIDIND
- GO TO 128
- 145 NORG=NORG + 1
- NORGOL(NORG,N)=-JF
- 128 IF (ISCONT.EQ.0) GO TO 129
- IF (NODSYS(II).EQ.0) GO TO 130
- WRITE (6,2410) NG,N,NEGSKS
- STOP
- 129 IF (NEGSKS.GT.0) ISKEW(I,N)=NODSYS(II)
- 130 CONTINUE
- C
- IF (NEGSKS.EQ.0) GO TO 134
- DO 133 I=1,IELDM
- IF (ISKEW(I,N).NE.0) GO TO 134
- 133 CONTINUE
- ISKEW(1,N)=-1
- C
- 134 MATP(N)=MTYPE
- IELTD(N)=IELDM
- IELTP(N)=IELPM
- IPST(N)=IPSM
- NTHT(N)=NTHM
- IREUSE(N)=ISTM
- ISHAP(N)=ISHAPM
- DO 132 I=1,IELDM
- 132 NDOPT(I,N)=NDOPTM(I)
- KK=0
- C
- DO 139 I=1,IELDM
- JJ=NDOPTM(I)
- KKD=3
- IF (JJ.GT.0) GO TO 142
- KKD=KKD + NDROT
- JJ=-JJ
- 142 II=NODM(JJ)
- C
- LL=1
- DO 140 L=1,KKD
- LM(KK+L,N)=0
- IF (IDOF(L).EQ.1) GO TO 140
- LM(KK+L,N)=ID(LL,II)
- LL=LL+1
- 140 CONTINUE
- 139 KK=KK + KKD
- C
- IF (IDEATH.EQ.0) GO TO 150
- IF (IDEATH.EQ.2) GO TO 156
- C
- DO 158 L=1,NDMX
- 158 EDISB(L,N)=0.
- ETIMV(N)=-ETIM
- GO TO 150
- 156 ETIMV(N)=ETIM
- C
- C UPDATE COLUMN HEIGHTS AND BANDWIDTH
- C
- 150 ND=3*IELDM + NDROT*IELPM
- CALL COLHT(HT,ND,LM(1,N))
- C
- C INITIALIZE STORAGE AND PRINT ELEMENT INFORMATION
- C
- IELTEM=IELD
- IELD=IELDM
- CALL ZEROWA (MODEL)
- IELD=IELTEM
- IF (IDATWR.GT.1) GO TO 152
- WRITE (6,2004) N,IELDM,IPSM,NTHM,MTYPE,ISTM,KKK,ETIM,
- 1 INTLM,(NODM(I),I=1,16)
- IF (IELN.GT.16) WRITE (6,2003) (NODM(I),I=17,32)
- 152 IF (IJPORT.EQ.0 .AND. INTLM.EQ.0) GO TO 228
- C
- C CALCULATE GLOBAL COORDINATES OF INTEGRATION POINTS
- C
- C 1. DISTINGUISH BETWEEN MID-SURFACE NODES AND TOP/BOTTOM NODES
- C NDTB(I) = +VE FOR MID-SURFACE NODES
- C NDTB(I) = -VE FOR TOP/BOTTOM NODES
- C
- KI=0
- DO 214 I=1,IELN
- II=NODM(I)
- IF (II.EQ.0) GO TO 214
- KI=KI+1
- NDTB(KI)=II
- IF (I.LE.16) GO TO 214
- NDTB(KI)=-II
- NDTB(I-16)=-NDTB(I-16)
- 214 CONTINUE
- C
- IELD=IELDM
- IELP=IELPM
- IF (IELD.EQ.IELP) GO TO 217
- IELD=(IELD-IELP)/2 + IELP
- IELP=IELD
- C
- 217 IT=0
- IX=0
- DO 218 I=1,IELD
- J=I+IELD
- II=NDTB(I)
- IF (II.LT.0) GO TO 219
- C
- C 2. ASSOCIATE WITH EACH MID-SURFACE NODE A PAIR OF TOP AND BOTTOM
- C NODES (XYZTB) USING THE NODAL NORMAL AND THICKNESS
- C
- IT=IT+1
- IX=IX+3
- VNX=VNI(IX-2,N)
- VNY=VNI(IX-1,N)
- VNZ=VNI(IX,N)
- HALFTH=0.5*THICK(IT,NTHM)
- XYZTB(1,I)=X(II) + VNX*HALFTH
- XYZTB(2,I)=Y(II) + VNY*HALFTH
- XYZTB(3,I)=Z(II) + VNZ*HALFTH
- XYZTB(1,J)=X(II) - VNX*HALFTH
- XYZTB(2,J)=Y(II) - VNY*HALFTH
- XYZTB(3,J)=Z(II) - VNZ*HALFTH
- GO TO 218
- C
- C 3. STORE ALL NON-MIDSURFACE NODES ALSO IN XYZTB
- C
- 219 IJ=-II
- XYZTB(1,I)=X(IJ)
- XYZTB(2,I)=Y(IJ)
- XYZTB(3,I)=Z(IJ)
- JJ=J-IT
- IJ=-NDTB(JJ)
- XYZTB(1,J)=X(IJ)
- XYZTB(2,J)=Y(IJ)
- XYZTB(3,J)=Z(IJ)
- 218 CONTINUE
- C
- C 4. CALCULATE INTEGRATION POINT LOCATIONS USING XYZTB
- C
- KINTP=0
- ISHAPE=ISHAPM
- NPT=NINTR*NINTS*NINTT
- C
- CALL SHBASE (NINTR,NINTS,NINTRS)
- C
- DO 221 LXY=1,NINTRS
- RINTP=XGRS(LXY,1)
- SINTP=XGRS(LXY,2)
- DO 221 LZ=1,NINTT
- TINTP=XG(LZ,NINTT)
- KINTP=KINTP+1
- C
- CALL SHFUNT (RINTP,SINTP,TINTP,NDOPTM,DET,XYZ(1,N),VNI(1,N),
- 1 THICK(1,NTHM),0)
- C
- TP=0.5*(1.0 + TINTP)
- TM=0.5*(1.0 - TINTP)
- XINT=0.
- YINT=0.
- ZINT=0.
- C
- DO 226 I=1,IELD
- J=I+IELD
- XINT=XINT + H(I)*TP*XYZTB(1,I) + H(I)*TM*XYZTB(1,J)
- YINT=YINT + H(I)*TP*XYZTB(2,I) + H(I)*TM*XYZTB(2,J)
- ZINT=ZINT + H(I)*TP*XYZTB(3,I) + H(I)*TM*XYZTB(3,J)
- 226 CONTINUE
- C
- XYZINT(1,KINTP)=XINT
- XYZINT(2,KINTP)=YINT
- XYZINT(3,KINTP)=ZINT
- C
- C 5. PRINT INTEGRATION POINT LOCATIONS IF INTLM.GT.0
- C
- IF (IDATWR.GT.1 .OR. INTLM.LE.0) GO TO 221
- WRITE (6,2008) KINTP,(XYZINT(L,KINTP),L=1,3)
- 221 CONTINUE
- C
- C 6. RESET THE VARIABLES IELD AND IELP
- C
- IELD=IELDM
- IELP=IELPM
- C
- C*** DATA PORTHOLE (START)
- C
- RECLAB=RECLB4
- IF (IJPORT.EQ.0) GO TO 228
- WRITE (LU3) RECLAB,N,IELDM,IPSM,NTHM,MTYPE,ISTM,KKK,ETIM,
- 1 INTLM,IELN,(NODM(I),I=1,IELN)
- RECLAB = RECLB8
- WRITE (LU3) RECLAB,NPT,((XYZINT(L,I),L=1,3),I=1,NPT)
- 228 CONTINUE
- C
- C*** DATA PORTHOLE (END)
- C
- C
- C CHECK FOR AN APPROPRIATE USE OF INTERNAL NODES
- C
- ICHK=1
- DO 155 I=1,4
- 155 IF (NOD(I+12).GT.0) ICHK=ICHK+1
- ICK=0
- C
- GO TO (169,161,163,163,162), ICHK
- C
- 161 IF (NOD(13).EQ.0) GO TO 163
- DO 164 I=1,12
- IF (I.GT.8) GO TO 165
- IF (NOD(I).EQ.0) ICK=ICK+1
- GO TO 164
- 165 IF (NOD(I).GT.0) ICK=ICK+1
- 164 CONTINUE
- GO TO 167
- 162 DO 166 I=1,12
- 166 IF (NOD(I).EQ.0) ICK=ICK+1
- 167 IF (ICK.EQ.0) GO TO 169
- C
- 163 WRITE (6,2015) M
- STOP
- C
- C
- 169 IF (N.EQ.NUME) GO TO 170
- N=N+1
- DO 160 I=1,IELN
- IF (NODM(I).EQ.0) GO TO 160
- NODM(I)=NODM(I) + KKK
- 160 CONTINUE
- IF (N-M) 200,121,100
- C
- 170 IF (NEGSKS.EQ.0) RETURN
- DO 175 N=1,NUME
- IF (ISKEW(1,N).GE.0) GO TO 180
- 175 CONTINUE
- WRITE (6,2400) NG,NEGSKS
- C
- 180 RETURN
- C
- C
- 420 GO TO (440,560,560,700), IND
- C
- C
- 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
- C
- C
- 440 DO 442 I=1,NDM
- 442 RE(I)=0.
- DO 445 I=1,NDMX
- 445 EDIS(I)=0.0
- DO 500 N=1,NUME
- MTYPE=MATP(N)
- IELD=IELTD(N)
- IELP=IELTP(N)
- NTH=NTHT(N)
- IF (NTH.EQ.0) NTH=1
- IST=IREUSE(N)
- ISHAPE=ISHAP(N)
- ND=3*IELD + NDROT*IELP
- NDM3=ND*(ND+1)/2
- CALL ECHECK (LM(1,N),ND,ICODE,IUPDT)
- IF (ICODE.EQ.1) GO TO 500
- IF (NBLOCK.EQ.1 .AND. IST.NE.0) GO TO 525
- DO 480 I=1,NDM3
- 480 S(I)=0.0
- C
- IF (IELP.EQ.0) GO TO 485
- K=0
- DO 482 I=1,IELP
- DO 483 J=1,3
- K=K + 1
- 483 VNT(K)=VNI(K,N)
- LANG=6*I - 5
- LVN=K - 2
- IVCOD=2
- IF(INDNL.LT.2) IVCOD=1
- 482 CALL RSTNOD(COSXY(LANG),VNI(LVN,N),VNT(LVN),V1(LVN),ANG,IVCOD)
- C
- 485 CONTINUE
- C
- CALL SHSTIF (ND,B,S,XYZ(1,N),PROP(1,MTYPE),RE,EDIS,WA(1,N),
- 1 NDOPT(1,N),THICK(1,NTH),BV,COSXY,VNI(1,N),VNT)
- C
- IF (NEGSKS.EQ.0) GO TO 525
- IF (ISKEW(1,N).LT.0) GO TO 525
- C
- C ESTABLISH A VECTOR LMID TO INDICATE MID-SURFACE NODES
- C
- DO 490 I=1,IELD
- 490 LMID(I)=NDOPT(I,N)
- CALL ATKA (RSDCOS,S,ISKEW(1,N),IELD,3)
- C
- 525 CONTINUE
- CALL ADDBAN (A(N2),A(N1),S,RE,LM(1,N),ND,1)
- 500 CONTINUE
- C
- RETURN
- C
- C A S S E M B L E M A S S M A T R I C E S
- C
- C
- 560 DO 640 N=1,NUME
- MTYPE=MATP(N)
- IELD=IELTD(N)
- IELP=IELTP(N)
- NTH=NTHT(N)
- IF (NTH.EQ.0) NTH=1
- IST=IREUSE(N)
- ISHAPE=ISHAP(N)
- ND=3*IELD + NDROT*IELP
- NDM3=ND*(ND + 1)/2
- IF (IMASS.EQ.1) GO TO 520
- CALL ECHECK (LM(1,N),ND,ICODE,IUPDT)
- IF (ICODE.EQ.1) GO TO 640
- 520 IF (NBLOCK.EQ.1 .AND. IST.NE.0) GO TO 550
- C
- IF (IMASS.EQ.1) GO TO 530
- IF (IELP.EQ.0) GO TO 530
- K=0
- DO 532 I=1,IELP
- DO 533 J=1,3
- K=K + 1
- 533 VNT(K)=VNI(K,N)
- LANG=6*I - 5
- LVN=K - 2
- IVCOD=2
- IF(INDNL.LT.2) IVCOD=1
- 532 CALL RSTNOD(COSXY(LANG),VNI(LVN,N),VNT(LVN),V1(LVN),ANG,IVCOD)
- C
- 530 CONTINUE
- C
- CALL SHMASS (ND,NDM3,XM,S,XYZ(1,N),NDOPT(1,N),THICK(1,NTH),
- 1 VNI(1,N),DEN(MTYPE),BV,COSXY)
- C
- 550 IF (IMASS.EQ.2) GO TO 580
- CALL ADDMA (A(N4),XM,LM(1,N),ND)
- GO TO 640
- 580 IF (NEGSKS.EQ.0) GO TO 590
- IF (ISKEW(1,N).LT.0) GO TO 590
- C
- C ESTABLISH A VECTOR LMID TO INDICATE MID-SURFACE NODES
- C
- DO 585 I=1,IELD
- 585 LMID(I)=NDOPT(I,N)
- CALL ATKA (RSDCOS,S,ISKEW(1,N),IELD,3)
- 590 CALL ADDBAN (A(N2),A(N1),S,RE,LM(1,N),ND,1)
- 640 CONTINUE
- C
- RETURN
- C
- C
- 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
- 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
- C
- C
- 700 MADR=N3
- IF (ICOUNT.EQ.3) MADR=N5
- ISTIF=0
- IF (ICOUNT.NE.3 .AND. IREF.EQ.0) ISTIF=1
- C
- DO 710 N=1,NUME
- MTYPE=MATP(N)
- IELD=IELTD(N)
- IELP=IELTP(N)
- NTH=NTHT(N)
- IF (NTH.EQ.0) NTH=1
- ISHAPE=ISHAP(N)
- ND=3*IELD + NDROT*IELP
- NDX=3*IELD
- NDM3=ND*(ND + 1)/2
- CALL ECHECK (LM(1,N),ND,ICODE,IUPDT)
- IF (ICODE .EQ. 1) IELCPL=IELCPL + 1
- IF (ICODE.EQ.1) GO TO 710
- C
- C ESTABLISH A VECTOR LMID TO INDICATE MID-SURFACE NODES
- C
- DO 705 I=1,IELD
- 705 LMID(I)=NDOPT(I,N)
- C
- C ELEMENT BIRTH AND DEATH OPTION
- C
- IF (IDEATH.EQ.0) GO TO 720
- ETIM=DABS(ETIMV(N))
- IF (IDEATH.EQ.2) GO TO 712
- IF (TIME.LT.ETIM) GO TO 710
- IF (ETIMV(N).GE.0.) GO TO 720
- ETIMV(N)=ETIM
- IL=0
- I=0
- LL=0
- IF(INDNL .GT. 1) GO TO 716
- C
- C 1. MATERIALLY NONLINEAR ONLY ANALYSIS
- C
- DO 715 K=1,IELD
- DO 711 J=1,3
- IL=IL + 1
- I=I + 1
- II=LM(I,N)
- IF(II .EQ. 0) GO TO 711
- IF (II.LT.0) II=NEQ - II
- EDISB(IL,N)=X(II)
- 711 CONTINUE
- IF (NDOPT(K,N)) 713,715,715
- 713 LANG=6*LL + 1
- LVN=3*LL + 1
- DO 714 L=1,2
- II=LM(I+L,N)
- IF (II.LT.0) II=NEQ - II
- ANG(L)=0.0
- IF(II .GT. 0) ANG(L)=X(II)
- 714 CONTINUE
- IVCOD=0
- CALL RSTNOD(COSXY(LANG),VNI(LVN,N),VNT(LVN),V1(LVN),ANG,IVCOD)
- LL=LL + 1
- I=I + 2
- 715 CONTINUE
- GO TO 708
- C
- C 2. LARGE DISPLACEMENT ANALYSIS
- C
- 716 DO 717 K=1,IELD
- DO 718 J=1,3
- IL=IL + 1
- I=I + 1
- II=LM(I,N)
- IF(II .EQ. 0) GO TO 718
- IF (II.LT.0) II=NEQ - II
- EDISB(IL,N)=X(II)
- 718 CONTINUE
- IF (NDOPT(K,N)) 719,717,717
- 719 LANG=6*LL + 1
- LVN=3*LL + 1
- LL=LL + 1
- II=NORGOL(LL,N)
- VNI(LVN,N)=FMIDSS(1,II)
- VNI(LVN+1,N)=FMIDSS(2,II)
- VNI(LVN+2,N)=FMIDSS(3,II)
- I=I + 2
- 717 CONTINUE
- 708 CONTINUE
- C
- IF (NEGSKS.EQ.0) GO TO 720
- IF (ISKEW(1,N).LT.0) GO TO 720
- CALL DIRCOS (RSDCOS,EDISB(1,N),ISKEW(1,N),IELD,3,1)
- GO TO 720
- 712 IF (TIME.GT.ETIM) GO TO 710
- C
- C INITIALIZE ELEMENT NODAL POINT FORCES AND DISPLACEMENTS
- C
- 720 DO 725 I=1,ND
- 725 RE(I)=0.0
- I=0
- K=0
- DO 732 J=1,IELD
- DO 733 L=1,3
- I=I + 1
- EDIS(I)=0.0
- XXX(I)=XYZ(I,N)
- K=K + 1
- II=LM(K,N)
- IF (II.EQ.0) GO TO 733
- IF (II.LT.0) II=NEQ - II
- EDIS(I)=X(II)
- 733 CONTINUE
- 732 IF (NDOPT(J,N).LT.0) K=K + 2
- C
- C CALCULATE REQUIRED QUANTITIES ASSOCIATED WITH THE SHELL
- C ELEMENT NORMALS
- C
- IF (IELP.EQ.0) GO TO 741
- IF(INDNL-2) 734,737,737
- C
- C 1. SMALL DISPLACEMENT ANALYSIS
- C
- 734 K=0
- LL=0
- DO 735 I=1,IELD
- K=K + 3
- IF (NDOPT(I,N)) 736,735,735
- 736 LANG=6*LL + 1
- LVN=3*LL + 1
- DO 731 L=1,2
- II=LM(K+L,N)
- IF (II.LT.0) II=NEQ - II
- ANG(L)=0.
- IF (II.GT.0) ANG(L)=X(II)
- 731 CONTINUE
- IVCOD=1
- CALL RSTNOD(COSXY(LANG),VNI(LVN,N),VNT(LVN),V1(LVN),ANG,IVCOD)
- LL=LL + 1
- K=K + 2
- 735 CONTINUE
- GO TO 741
- C
- C 2. LARGE DISPLACEMENT ANALYSIS
- C
- 737 K=0
- DO 739 I=1,IELP
- II=NORGOL(I,N)
- DO 738 J=1,3
- K=K + 1
- V1(K)=FMV1(J,II)
- 738 VNT(K)=FMIDSS(J,II)
- LANG=6*I - 5
- LVN=K - 2
- IVCOD=2
- 739 CALL RSTNOD(COSXY(LANG),VNI(LVN,N),VNT(LVN),V1(LVN),ANG,IVCOD)
- 741 CONTINUE
- C
- C ROTATE ELEMENT DISPLACEMENTS FROM SKEW TO GLOBAL DIRECTIONS
- C
- IF (NEGSKS.EQ.0) GO TO 742
- IF (ISKEW(1,N).LT.0) GO TO 742
- CALL DIRCOS (RSDCOS,EDIS,ISKEW(1,N),IELD,3,1)
- 742 DO 750 I=1,NDM3
- 750 S(I)=0.0
- C
- C CALCULATE STIFFNESS MATRIX AND FORCE VECTOR, AND ASSEMBLE
- C
- IF (IDEATH.NE.1) GO TO 752
- DO 754 I=1,NDX
- EDIS(I)=EDIS(I) - EDISB(I,N)
- 754 XXX(I)=XXX(I) + EDISB(I,N)
- 752 CALL SHSTIF (ND,B,S,XXX,PROP(1,MTYPE),RE,EDIS,WA(1,N),NDOPT(1,N),
- 1 THICK(1,NTH),BV,COSXY,VNI(1,N),VNT)
- C
- IF (NEGSKS.EQ.0) GO TO 760
- IF (ISKEW(1,N).LT.0) GO TO 760
- CALL DIRCOS (RSDCOS,RE,ISKEW(1,N),IELD,3,2)
- 760 CALL ADDBAN (A(MADR),A(N1),S,RE,LM(1,N),ND,2)
- C
- IF (ISTIF.EQ.0) GO TO 710
- IF (NEGSKS.EQ.0) GO TO 730
- IF (ISKEW(1,N).LT.0) GO TO 730
- CALL ATKA (RSDCOS,S,ISKEW(1,N),IELD,3)
- 730 CALL ADDBAN (A(N4),A(N1),S,RE,LM(1,N),ND,1)
- C
- 710 CONTINUE
- C
- IF (IELCPL.EQ.NUME) IELCPL=-1
- RETURN
- C
- C
- C S T R E S S C A L C U L A T I O N S
- C
- C
- C
- C*** DATA PORTHOLE (START)
- C
- 800 IF (JNPORT.EQ.0 .OR. KPLOTE.NE.0) GO TO 811
- RECLAB=RECLB5
- WRITE (LU3) RECLAB,NG,(NPAR(I),I=1,20),KSTEP,TIME,NEGL,NSUB
- C
- C*** DATA PORTHOLE (END)
- C
- 811 IPRNT=0
- DO 840 N=1,NUME
- IF (IDEATH.EQ.0) GO TO 790
- ETIM=DABS(ETIMV(N))
- IF (IDEATH.EQ.2) GO TO 792
- IF (TIME.LT.ETIM) GO TO 840
- GO TO 790
- 792 IF (TIME.GT.ETIM) GO TO 840
- 790 IPS=IPST(N)
- IF (IPS.EQ.0) GO TO 840
- IF (IPRI.NE.0) GO TO 802
- IPRNT=IPRNT + 1
- IF (IPRNT.NE.1) GO TO 802
- WRITE(6,2020) NG
- IF (MODEL.GT.1) GO TO 802
- WRITE(6,2030)
- 802 MTYPE=MATP(N)
- IELD=IELTD(N)
- IELP=IELTP(N)
- NTH=NTHT(N)
- ISHAPE=ISHAP(N)
- ND=3*IELD + NDROT*IELP
- C
- C ESTABLISH A VECTOR LMID TO INDICATE MID-SURFACE NODES
- C
- DO 810 I=1,IELD
- 810 LMID(I)=NDOPT(I,N)
- C
- I=0
- K=0
- NDX=3*IELD
- DO 805 J=1,IELD
- DO 803 L=1,3
- K=K + 1
- I=I + 1
- EDIS(I)=0.0
- II=LM(K,N)
- IF (II.EQ.0) GO TO 803
- IF (II.LT.0) II=NEQ - II
- EDIS(I)=X(II)
- 803 CONTINUE
- IF (NDOPT(J,N).LT.0) K=K + 2
- 805 CONTINUE
- C
- LL=0
- I=0
- IF(INDNL-2) 821,826,826
- 821 DO 823 K=1,IELD
- I=I + 3
- IF (NDOPT(K,N)) 824,823,823
- 824 LANG=6*LL + 1
- LVN=3*LL + 1
- DO 825 L=1,2
- II=LM(I+L,N)
- IF (II.LT.0) II=NEQ - II
- ANG(L)=0.0
- IF(II .GT. 0) ANG(L)=X(II)
- 825 CONTINUE
- IVCOD=1
- CALL RSTNOD(COSXY(LANG),VNI(LVN,N),VNT(LVN),V1(LVN),ANG,IVCOD)
- LL=LL + 1
- I=I + 2
- 823 CONTINUE
- GO TO 829
- C
- 826 DO 827 K=1,IELD
- I=I + 3
- IF (NDOPT(K,N)) 828,827,827
- 828 LANG=6*LL + 1
- LVN=3*LL + 1
- LL=LL + 1
- II=NORGOL(LL,N)
- VNT(LVN)=FMIDSS(1,II)
- VNT(LVN+1)=FMIDSS(2,II)
- VNT(LVN+2)=FMIDSS(3,II)
- V1(LVN)=FMV1(1,II)
- V1(LVN+1)=FMV1(2,II)
- V1(LVN+2)=FMV1(3,II)
- IVCOD=2
- CALL RSTNOD(COSXY(LANG),VNI(LVN,N),VNT(LVN),V1(LVN),ANG,IVCOD)
- I=I + 2
- 827 CONTINUE
- 829 CONTINUE
- IF (NEGSKS.EQ.0) GO TO 845
- IF (ISKEW(1,N).LT.0) GO TO 845
- CALL DIRCOS (RSDCOS,EDIS,ISKEW(1,N),IELD,3,1)
- 845 CONTINUE
- C
- IF (IDEATH.NE.1) GO TO 801
- DO 812 I=1,NDX
- 812 EDIS(I) =EDIS(I) -EDISB(I,N)
- 801 IF (INDNL.GT.2) GO TO 807
- DO 806 I=1,NDX
- 806 XXX(I)=XYZ(I,N)
- IF (IDEATH.NE.1) GO TO 809
- DO 804 I=1,NDX
- 804 XXX(I)=XXX(I) + EDISB(I,N)
- GO TO 809
- 807 DO 808 I=1,NDX
- 808 XXX(I)=XYZ(I,N)+EDIS(I)
- C
- C FORM LINEAR STRESS-STRAIN LAW IF APPLICABLE
- C
- 809 CALL MAT1 (PROP(1,MTYPE),C)
- IF (MODEL.GT.1) GO TO 831
- C
- IF (IPRI.GT.0) GO TO 814
- IF (ISHAPE.EQ.0) WRITE (6,2035) N
- IF (ISHAPE.EQ.1) WRITE (6,2036) N
- 814 CONTINUE
- C
- C CALCULATE AND PRINT ELEMENT STRESSES AT IPS LOCATIONS
- C
- IF (NTABLE.EQ.0) GO TO 831
- DO 830 II=1,16
- M=ITABLE(IPS,II)
- IF (M.EQ.0) GO TO 840
- CALL SHDERV (XXX,B,BV,DET,EVAL3(M,1),EVAL3(M,2),EVAL3(M,3),
- 1 NDOPT(1,N),COSXY,THICK(1,NTH),EDIS,VNI(1,N),VNT)
- C
- C
- C CALCULATE CONSTITUTIVE RELATIONS AND STRESSES CORRESPONDING
- C TO GLOBAL AXES
- C
- CALL MATROT (C,D,1)
- CALL STSTSH
- C
- C
- C TRANSFORM PIOLA-KIRCHHOFF STRESSES TO CAUCHY STRESSES
- C
- C CS = (1./DET(F)) * ( F * PK * F(TRANSPOSED) )
- C
- IF (ISTRES.EQ.0) GO TO 820
- CALL SIGROT (STRESS,1,1)
- GO TO 822
- 820 IF (INDNL.NE.2) GO TO 822
- C
- CALL CAUSHL
- C
- C
- C*** DATA PORTHOLE (START)
- C
- 822 RECLAB=RECLB6
- IF (JNPORT.NE.0 .AND. KPLOTE.EQ.0)
- 1 WRITE (LU3) RECLAB,M,STRESS,STRAIN
- C
- C*** DATA PORTHOLE (END)
- C
- 830 IF (IPRI.EQ.0) WRITE (6,2040) M,STRESS
- GO TO 840
- C
- C CALCULATE AND PRINT STRESSES AT INTEGRATION POINTS
- C
- 831 IPT=0
- JPT=1
- RECLAB=RECLB6
- C
- CALL SHBASE (NINTR,NINTS,NINTRS)
- C
- DO 939 LXY=1,NINTRS
- E1=XGRS(LXY,1)
- E2=XGRS(LXY,2)
- DO 939 LZ=1,NINTT
- E3=XG(LZ,NINTT)
- IPT=IPT+1
- C
- CALL SHDERV (XXX,B,BV,DET,E1,E2,E3,NDOPT(1,N),COSXY,THICK(1,NTH),
- 1 EDIS,VNI(1,N),VNT)
- C
- C
- C CALCULATE CONSTITUTIVE RELATIONS RELATING STRESS TO STRAIN
- C IN GLOBAL COORDINATE
- C
- CALL MATROT (C,D,1)
- CALL STSTSH
- C
- C
- C TRANSFORM PIOLA-KIRCHHOFF STRESSES TO CAUCHY STRESSES
- C
- C CS = (1./DET(F)) * ( F * PK * F(TRANSPOSED) )
- C
- IF (MODEL.GT.1) GO TO 938
- IF (ISTRES.EQ.0) GO TO 920
- CALL SIGROT (STRESS,1,1)
- GO TO 930
- 920 IF (INDNL.NE.2) GO TO 930
- C
- CALL CAUSHL
- C
- 930 IF (IPRI.EQ.0) WRITE (6,2040) IPT,STRESS
- C
- C*** DATA PORTHOLE (START)
- C
- 938 IF (JNPORT.EQ.0 .OR. KPLOTE.NE.0) GO TO 939
- IF (IPT.NE.IPTABL(JPT)) GO TO 939
- WRITE (LU3) RECLAB,IPT,STRESS,STRAIN
- JPT=JPT + 1
- C
- C*** DATA PORTHOLE (END)
- C
- 939 CONTINUE
- 840 CONTINUE
- RETURN
- C
- C
- 1000 FORMAT (I5,F10.0)
- 1001 FORMAT (8F10.0)
- 1004 FORMAT (7I5,F10.0,I5)
- 1007 FORMAT (16I5)
- 2003 FORMAT (63X,I4,7(4X,I4) /,63X,I4,7(4X,I4))
- 2004 FORMAT (/1H ,3I5,1X,I5,1X,3I6,E10.3,2X,I2,4X,8(4X,I4)/
- 1 63X,I4,7(4X,I4) /)
- 2005 FORMAT (///40H E L E M E N T I N F O R M A T I O N ,
- 1 ///36H M IELD IPS NTH MTYP IST ,
- 2 23H KG ETIME INTLOC,3X,8(A4,I1,3X)/62X,A4,I1,3X,
- 3 7(A4,I2,2X)/)
- 2006 FORMAT (62X,8(A4,I2,2X)/62X,8(A4,I2,2X)/)
- 2007 FORMAT (56X,11HINTEGRATION,17X,19HGLOBAL COORDINATES/
- 1 59X,5HPOINT,16X,1HX,12X,1HY,12X,1HZ)
- 2008 FORMAT (1H ,57X,I4,12X,2(E11.4,2X),E11.4)
- 2010 FORMAT(///12H *** ELEMENT,I5,46H+EXCEEDS MAXIMUM NUMBER OF NODES (
- +NPAR(4)) ***)
- 2011 FORMAT(///23H INPUT ERROR **********/
- 1 19H SUBSTRUCTURE NO =,I3/
- 2 19H ELEMENT GROUP NO =,I3/
- 3 31H FIRST ELEMENT NUMBER MUST BE 1)
- 2015 FORMAT (///12H *** ELEMENT,I5,4X,47HDOES NOT HAVE THE APPROPRIATE
- +INTERNAL NODES***)
- 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,
- 1 25HE L E M E N T G R O U P ,I5,3X,13H( 3/D SHELL ) /)
- 2030 FORMAT (8H ELEMENT,4X,6HOUTPUT,/ 2X,6HNUMBER,2X,8HLOCATION,7X,
- 1 8HSTRESSXX,7X,8HSTRESSYY,7X,8HSTRESSZZ,7X,8HSTRESSXY,
- 2 7X,8HSTRESSXZ,7X,8HSTRESSYZ / 1X)
- 2035 FORMAT (I8)
- 2036 FORMAT (I8,3X,10H(TRIANGLE) )
- 2040 FORMAT (13X,I5,6E15.4)
- 2060 FORMAT (I10,16I7)
- 2070 FORMAT (//40H S T R E S S O U T P U T T A B L E S //
- 1 10H TABLE,6X,1H1,6X,1H2,6X,1H3,6X,1H4,6X,1H5,6X,1H6,
- 2 6X,1H7,6X,1H8,6X,1H9,5X,2H10,5X,2H11,5X,2H12,5X,2H13,
- 3 5X,2H14,5X,2H15,5X,2H16//)
- 2075 FORMAT (///,45H T H I C K N E S S T A B L E S //)
- 2077 FORMAT (/,I5,8E13.5)
- 2078 FORMAT (5X,8E13.5)
- 2080 FORMAT (4X,1HN,8(3X,2A4,I2))
- 2081 FORMAT (5X,8(3X,2A4,I2))
- 2090 FORMAT(44H *** STOP - INCORRECT NODAL DATA FOR EL. NO. ,I5)
- 2400 FORMAT (///16H ELEMENT GROUP = ,I2,23H (3/D SHELL / SHELTH) /
- 1 19H ALTHOUGH NPAR(6) =,I2,22H, NONE OF THE ELEMENTS/
- 2 49H IN THIS GROUP REFERS TO SKEW COORDINATE SYSTEMS./
- 3 50H IT IS ADVISED THAT NPAR(6) BE SET TO ZERO TO SAVE,
- 4 15H STORAGE SPACE.//
- 5 39H THIS IS ONLY AN INFORMATIONAL MESSAGE.///)
- 2410 FORMAT (///16H ELEMENT GROUP = ,I2,26H (SHELL ELEMENT / SHELTH) /
- 1 16H ELEMENT NUMBER=,I4/10H NPAR(6) =,I2//
- 2 53H SINCE NODES OF THIS ELEMENT REFER TO SKEW COORDINATE/
- 3 37H SYSTEM(S), NPAR(6) MUST BE SET TO 1.//8H S T O P)
- 2500 FORMAT (36H *** STOP - INCORRECT NODAL DATA FOR,/,
- 1 20X,20HELEMENT NO. = ,I5/,
- 2 20X,20HELEMENT GROUP NO. = ,I5/,
- 3 20X,20HGLOBAL NODE NO. = ,I5)
- C
- END
- C *CDC* *DECK MATRIT
- C *UNI* )FOR,IS N.MATRIT, R.MATRIT
- SUBROUTINE MATRIT (N,DEN,PROP)
- C
- C
- C PROGRAM TO PRINT MATERIAL PROPERTIES
- C FOR GENERAL (3/D) SHELL ELEMENTS
- C
- C
- IMPLICIT REAL*8 (A-H,O-Z)
- COMMON /EL/ IND,ICOUNT,NPAR(20),NUMEG,NEGL,NEGNL,IMASS,IDAMP,ISTAT
- 1 ,NDOF,KLIN,IEIG,IMASSN,IDAMPN
- COMMON /PRCON/ IDATWR,IPRIC,NPB,IDC,IVC,IAC,IPC,IPNODE(3,15)
- DIMENSION PROP(1)
- EQUIVALENCE (NPAR(15),MODEL),(NPAR(16),NUMMAT),(NPAR(17),NCON)
- C
- C
- IF (IDATWR.GT.1) RETURN
- WRITE(6,2100) N,DEN
- C
- GO TO (1,2,3,4) ,MODEL
- C
- C
- C.... MODEL = 1 L I N E A R I S O T R O P I C
- C
- 1 WRITE(6,2101) (PROP(I), I=1,NCON)
- RETURN
- C
- C
- C.... MODELS = 2 E L A S T I C - P L A S T I C (VON MISES)
- C
- 2 IF (NCON.GT.4) GO TO 200
- C
- C
- IBUG=0
- IF (PROP(3).GT.0.0) GO TO 150
- IBUG=1
- WRITE (6,3401) NG,N
- 150 IF (PROP(4).LT.PROP(1)) GO TO 152
- IBUG=1
- WRITE (6,3402) NG,N
- 152 CONTINUE
- IF (IDATWR.LE.1) WRITE (6,2106) (PROP(I),I=1,NCON)
- IF (MODEX.EQ.0 .OR. IBUG.EQ.0) RETURN
- WRITE (6,3403)
- STOP
- C
- 200 IF (IDATWR.GT.1) GO TO 160
- WRITE (6,2111) (PROP(I),I=1,3)
- WRITE (6,2112) PROP(3),PROP(4)
- C
- 160 IBUG=0
- IF (PROP(3).GT.0.0) GO TO 161
- IBUG=1
- WRITE (6,3401) NG,N
- 161 ICP=4
- DO 165 I=1,6
- IF (PROP(ICP).EQ.0.0) GO TO 165
- ICP2=ICP+2
- IF (PROP(ICP).NE.PROP(ICP2)) GO TO 165
- IBUG=1
- WRITE (6,3404) NG,N,ICP,ICP2
- 165 ICP=ICP+2
- C
- IF (MODEX.EQ.0 .OR. IBUG.EQ.0) GO TO 167
- WRITE (6,3403)
- STOP
- C
- 167 DO 210 J=6,NCON,2
- ET=(PROP(J - 1) - PROP(J - 3))/(PROP(J) - PROP(J - 2))
- IF (IDATWR.LE.1) WRITE (6,2113) PROP(J-1),PROP(J),ET
- 210 CONTINUE
- C
- RETURN
- C
- C
- C.... MODELS = 3,4 (EMPTY)
- C
- C
- 3 RETURN
- 4 RETURN
- C
- C
- 2100 FORMAT (30H MATERIAL CONSTANTS SET NUMBER,6H .... ,I5//,
- 1 1H ,4X,29HDEN ..........( DENSITY ).. =, E14.6/)
- 2101 FORMAT (1H ,4X,29HE ............( PROP(1) ).. =, E14.6/,
- 1 1H ,4X,29HVNU ..........( PROP(2) ).. =, E14.6/,
- 2 1H ,4X,29HRKAPA ........( PROP(3) ).. =, E14.6///)
- 2106 FORMAT (1H ,4X,29HE ............( PROP(1) ).. =,E14.6/
- 1 1H ,4X,29HVNU ..........( PROP(2) ).. =,E14.6/
- 2 1H ,4X,29HYIELD ........( PROP(3) ).. =,E14.6/
- 3 1H ,4X,29HE (HARDEN) ...( PROP(4) ).. =,E14.6///)
- 2111 FORMAT (1H ,4X,29HE ............( PROP(1) ).. =,E14.6,/,
- 1 1H ,4X,29HVNU ..........( PROP(2) ).. =,E14.6,/,
- 2 1H ,4X,29HYIELD ........( PROP(3) ).. =,E14.6,//)
- 2112 FORMAT (1H ,4X,36HPIECEWISE-LINEAR STRESS-STRAIN CURVE,/,
- 1 1H ,6X,6HSTRESS,10X,6HSTRAIN,12X,2HET,//,
- 2 6X,E14.6,2X,E14.6)
- 2113 FORMAT (6X,3(E14.6,2X))
- 3401 FORMAT (//50H INPUT ERROR DETECTED IN (MATRIT/SHELL) //
- 1 19H ELEMENT GROUP NO = ,I5/
- 2 27H MATERIAL PROPERTY SET NO = ,I5/
- 2 38H ZERO OR NEGATIVE INITIAL YIELD STRESS //)
- 3402 FORMAT (//50H INPUT ERROR DETECTED IN (MATRIT/SHELL) //
- 1 19H ELEMENT GROUP NO = ,I5/
- 2 27H MATERIAL PROPERTY SET NO = ,I5/
- 3 44H HARDENING MODULUS (ET) GREATER OR EQUAL TO ,
- 4 44H YOUNG*S MODULUS (E) IS NOT ALLOWED //)
- 3403 FORMAT (//50H INPUT ERROR IN MATERIAL PROPERTIES //
- 1 15H *** STOP *** //)
- 3404 FORMAT (//50H INPUT ERROR DETECTED IN (MATRIT/SHELL) //
- 4 19H ELEMENT GROUP NO = ,I5/
- 3 27H MATERIAL PROPERTY SET NO = ,I5/
- 2 42H IN THE MULTILINEAR ELASTIC-PLASTIC MODEL /
- 1 6H PROP(,I2,14H) EQUALS PROP(,I2,16H) IS NOT ALLOWED //)
- C
- C
- END
- C *CDC* *DECK RSTNOD
- C
- C *UNI* )FOR,IS N.RSTNOD, R.RSTNOD
- C
- C
- SUBROUTINE RSTNOD(COSXY,VNI,VNT,V1,ANG,IVCOD)
- C
- C
- C ROUTINE TO CALCULATE THE LOCAL COORDINATE SYSTEM AT MID-SURFACE
- C NODES
- C
- C
- C VNT = NORMAL TO MID-SURFACE AT A NODE AT TIME T
- C
- C COSXY(I) = DIRECTION COSINE OF V1-AXIS (I=1,2,3)
- C (V1) = (X2) X (VN)
- C
- C COSXY(J) = DIRECTION COSINE OF V2 AXIS (J=4,5,6)
- C (V2) = (VN) X (V1)
- C
- C
- IMPLICIT REAL*8 (A-H,O-Z)
- C
- DIMENSION COSXY(1),VNI(1),VNT(1),V1(1),ANG(1)
- C
- DO 2 I=1,6
- 2 COSXY(I)=0.
- C
- VTOL=1.0D-8
- C
- IF (IVCOD.EQ.2) GO TO 40
- C
- C 1. SMALL DISPLACEMENT ANALYSIS
- C
- C CONSIDER FIRST THE SPECIAL CASE, WITH (V1) PARALLEL TO (VN)
- C ASSUME (V1) CORRESPONDS TO THE Z-AXIS
- C ASSUME (V2) CORRESPONDS TO THE X-AXIS
- C
- TEMP=DABS(VNI(2)) - 1.0
- TEMP=DABS(TEMP)
- IF (TEMP.GT.VTOL) GO TO 10
- C
- VNT(1)=-ANG(1)*VNI(2)
- VNT(2)=VNI(2)
- VNT(3)= ANG(2)*VNI(2)
- IF (IVCOD) 60,5,7
- 5 DO 6 L=1,3
- 6 VNI(L)=VNT(L)
- 7 TEMP=1.0 - DABS(VNT(2))
- IF (TEMP.GT.VTOL) GO TO 50
- C
- COSXY(3)=VNT(2)
- COSXY(4)=VNT(2)
- RETURN
- C
- C REGULAR CASE
- C
- 10 DUM=VNI(1)*VNI(1) + VNI(3)*VNI(3)
- DUM=DSQRT(DUM)
- COSXY(1)=VNI(3)/DUM
- COSXY(2)=0.0
- COSXY(3)=-VNI(1)/DUM
- TEMP1=COSXY(3)*VNI(2)
- TEMP2=-COSXY(3)*VNI(1) + COSXY(1)*VNI(3)
- TEMP3=-COSXY(1)*VNI(2)
- DUM=DSQRT(TEMP1*TEMP1 + TEMP2*TEMP2 + TEMP3*TEMP3)
- COSXY(4)=TEMP1/DUM
- COSXY(5)=TEMP2/DUM
- COSXY(6)=TEMP3/DUM
- C
- VNT(1)=VNI(1) - COSXY(4)*ANG(1) + COSXY(1)*ANG(2)
- VNT(2)=VNI(2) - COSXY(5)*ANG(1)
- VNT(3)=VNI(3) - COSXY(6)*ANG(1) + COSXY(3)*ANG(2)
- TEMP=1.0 - DABS(VNT(2))
- TEMP=DABS(TEMP)
- IF (TEMP.GT.VTOL) GO TO 18
- C
- DO 16 I=1,3
- 16 VNT(I)=VNI(I)
- RETURN
- C
- 18 IF(IVCOD) 25,20,25
- C
- C - - SPECIAL CASE - - IVCOD=0 IN ELEMENT BIRTH AND DEATH OPTION
- C
- 20 DO 22 L=1,3
- 22 VNI(L)=VNT(L)
- 25 RETURN
- C
- C 2. LARGE DISPLACEMENT ANALYSIS
- C
- 40 COSXY(1)=V1(1)
- COSXY(2)=V1(2)
- COSXY(3)=V1(3)
- C
- V21=VNT(2)*V1(3)-VNT(3)*V1(2)
- V22=VNT(3)*V1(1)-VNT(1)*V1(3)
- V23=VNT(1)*V1(2)-VNT(2)*V1(1)
- DUM=DSQRT(V21*V21+V22*V22+V23*V23)
- DUMI=1./DUM
- COSXY(4)=V21*DUMI
- COSXY(5)=V22*DUMI
- COSXY(6)=V23*DUMI
- RETURN
- C
- 50 DUM=DSQRT(VNT(1)*VNT(1) + VNT(3)*VNT(3))
- COSXY(1)=VNT(3)/DUM
- COSXY(2)=0.0
- COSXY(3)=-VNT(1)/DUM
- TEMP1=COSXY(3)*VNT(2)
- TEMP2=-COSXY(3)*VNT(1) + COSXY(1)*VNT(3)
- TEMP3=-COSXY(1)*VNT(2)
- DUM=DSQRT(TEMP1*TEMP1 + TEMP2*TEMP2 + TEMP3*TEMP3)
- COSXY(4)=TEMP1/DUM
- COSXY(5)=TEMP2/DUM
- COSXY(6)=TEMP3/DUM
- C
- 60 RETURN
- C
- END
- C *CDC* *DECK CAUSHL
- C *UNI* )FOR,IS C.CAUSHL, R.CAUSHL
- SUBROUTINE CAUSHL
- C
- C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
- C . .
- C . CONVERTS PIOLA-KIRCHOFF STRESSES .
- C . TO CAUCHY STRESSES .
- C . .
- C . CS = (1./DET(F)) * (F * PK * F(TRANSPOSED) .
- C . .
- C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
- C
- IMPLICIT REAL*8 (A-H,O-Z)
- COMMON /SHELL1/ DISD(9),IELD,IELP,NPT,IDW,NDROT
- COMMON /SHELMT/ D(6,6),STRESS(6),STRAIN(6),IPT,NEL,IPS
- C
- C
- F11=DISD(1) + 1.
- F12=DISD(4)
- F13=DISD(5)
- F21=DISD(6)
- F22=DISD(2) + 1.
- F23=DISD(7)
- F31=DISD(8)
- F32=DISD(9)
- F33=DISD(3) + 1.
- C
- DET= F11*F22*F33 + F12*F23*F31 + F13*F32*F21
- DET=DET-F13*F22*F31 - F23*F32*F11 - F33*F21*F12
- IF (DET.GT.0.) GO TO 760
- WRITE (6,2100) NEL,DET
- STOP
- C
- 760 DET=1.0/DET
- S11=STRESS(1)
- S22=STRESS(2)
- S33=STRESS(3)
- S12=STRESS(4)
- S13=STRESS(5)
- S23=STRESS(6)
- C
- PKFT1=S11*F11 + S12*F12 + S13*F13
- PKFT2=S12*F11 + S22*F12 + S23*F13
- PKFT3=S13*F11 + S23*F12 + S33*F13
- STRESS(1)= DET*(F11*PKFT1 + F12*PKFT2 + F13*PKFT3)
- STRESS(4)= DET*(F21*PKFT1 + F22*PKFT2 + F23*PKFT3)
- STRESS(5)= DET*(F31*PKFT1 + F32*PKFT2 + F33*PKFT3)
- C
- PKFT1=S11*F21 + S12*F22 + S13*F23
- PKFT2=S12*F21 + S22*F22 + S23*F23
- PKFT3=S13*F21 + S23*F22 + S33*F23
- STRESS(2)= DET*(F21*PKFT1 + F22*PKFT2 + F23*PKFT3)
- C
- PKFT1=S11*F31 + S12*F32 + S13*F33
- PKFT2=S12*F31 + S22*F32 + S23*F33
- PKFT3=S13*F31 + S23*F32 + S33*F33
- STRESS(3)= DET*(F31*PKFT1 + F32*PKFT2 + F33*PKFT3)
- STRESS(6)= DET*(F21*PKFT1 + F22*PKFT2 + F23*PKFT3)
- C
- RETURN
- 2100 FORMAT (40H DETERMINANT NOT POSITIVE FOR ELEMENT = ,I4,/
- 1 14H DETERMINANT =,E14.6/8H ***STOP)
- END
- C *CDC* *DECK,SIGROT
- C *UNI* FOR,IS N.SIGROT, R.SIGROT
- C
- SUBROUTINE SIGROT (STR,NRX,ISTR)
- C
- C ROTINE TO CALCULATE STRESSES MEASURED IN THE SHELL LOCAL
- C COORDINATE SYSTEM
- C
- C
- IMPLICIT REAL*8 (A-H,O-Z)
- C
- COMMON /SHROT/ XJ(3,3),DCA(3,3)
- COMMON /SHELL4/ XJI(3,3),P(3,32),H(32)
- C
- DIMENSION SIG(3,3),DSIG(3,3),DJ(3,3),STR(1)
- C
- C FORM THE STRESS MATRIX
- C
- FAC=1.0
- IF (ISTR.EQ.2) FAC=2.0
- SIG(1,1)=STR(1)
- SIG(1,2)=STR(4)/FAC
- SIG(1,3)=STR(5)/FAC
- SIG(2,2)=STR(2)
- SIG(2,3)=STR(6)/FAC
- SIG(3,3)=STR(3)
- SIG(2,1)=SIG(1,2)
- SIG(3,1)=SIG(1,3)
- SIG(3,2)=SIG(2,3)
- C
- IF (NRX-1) 100,2,5
- C
- C EVALUATE THE TRANSFORMATION MATRIX FOR TRANSFORMING THE STRESS
- C MATRIX TO THE LOCAL COORDINATE SYSTEM
- C
- 2 DO 3 I=1,3
- DO 3 J=1,3
- 3 DJ(I,J)=DCA(I,J)
- GO TO 10
- C
- C EVALUATE THE TRANSFORMATION MATRIX FOR TRANSFORMING THE STRESS
- C MATRIX TO THE GLOBAL COORDINATE SYSTEM
- C
- 5 DO 6 I=1,3
- DO 6 J=1,3
- 6 DJ(I,J)=DCA(J,I)
- C
- C TRANSFORM THE STRESS MATRIX
- C
- 10 DO 20 I=1,3
- DO 20 J=1,3
- TEMP=0.
- DO 22 L=1,3
- 22 TEMP=TEMP + SIG(I,L)*DJ(L,J)
- 20 DSIG(I,J)=TEMP
- C
- DO 30 I=1,3
- DO 30 J=I,3
- TEMP=0.
- DO 32 L=1,3
- 32 TEMP=TEMP + DJ(L,I)*DSIG(L,J)
- 30 SIG(I,J)=TEMP
- C
- C CALCULATE THE STRESS VECTOR
- C
- DO 50 I=1,3
- 50 STR(I)=SIG(I,I)
- STR(4)=SIG(1,2)*FAC
- STR(5)=SIG(1,3)*FAC
- STR(6)=SIG(2,3)*FAC
- C
- 100 RETURN
- END
- C *CDC* *DECK ZEROWA
- C *UNI* )FOR,IS N.ZEROWA, R.ZEROWA
- SUBROUTINE ZEROWA (MODEL)
- C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
- C . .
- C . SUB-PROGRAM TO INITIALIZE THE ELEMENT WORKING VECTOR WA .
- C . .
- C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
- C
- IMPLICIT REAL*8 (A-H,O-Z)
- GO TO (1,2,3,3) ,MODEL
- C
- C
- C M O D E L 1 LINEAR ELASTIC
- C
- 1 RETURN
- C
- C M O D E L 2 ELASTIC-PLASTIC (VON MISES / ISOTROPIC HARDENING)
- C
- C *CDC* 2 CALL OVERLAY (5HADINA,10B,1B,6HRECALL)
- 2 CALL SHMAT2
- RETURN
- C
- C M O D E L 3, 4 (EMPTY)
- C
- 3 RETURN
- END
- C *CDC* *DECK,SHBASE
- C *UNI* )FOR,IS N.SHBASE, R.SHBASE
- SUBROUTINE SHBASE (NINTR,NINTS,NINTRS)
- C
- C
- C ROUTINE TO EVALIATE THE INTEGRATION POINTS LOCATIONS IN THE
- C R-S PLANE FOR DIFFERENT BASE SHAPES
- C
- C QUADRILATERAL, USE GAUSSIAN INTEGRATION POINTS
- C TRIANGLULAR, USE TRIANGULAR INTEGRATION POINTS
- C
- C
- IMPLICIT REAL*8 (A-H,O-Z)
- C
- COMMON /GAUSS/ XG(4,4),WGT(4,4),EVAL2(9,2),EVAL3(27,3),E1,E2,E3
- COMMON /TRANG/ TRLW4(4,3),TRLW7(7,3),TRLWD(13,3),
- 1 XGRS(16,2),WGTRS(16)
- COMMON /SHELL5/ ISHAPE
- C
- NINTRS=NINTR*NINTS
- C
- IF (ISHAPE) 60,60,70
- C
- C QUADRILATERAL ELEMENT BASE SHAPE
- C
- 60 K=0
- DO 65 I=1,NINTR
- DO 65 J=1,NINTS
- K=K + 1
- XGRS(K,1)=XG(I,NINTR)
- XGRS(K,2)=XG(J,NINTS)
- 65 WGTRS(K)=WGT(I,NINTR)*WGT(J,NINTS)
- RETURN
- C
- C TRIANGULAR ELEMENT BASE SHAPE
- C
- 70 IF (NINTRS.GT.1) GO TO 75
- XGRS(1,1)=-1.0/3.0
- XGRS(1,2)=0.
- WGTRS(1)=2.0
- RETURN
- C
- 75 IF (NINTRS.GT.4) GO TO 80
- NINTRS=4
- DO 77 I=1,NINTRS
- XGRS(I,1)=2.0*TRLW4(I,1) - 1.0
- TEMP=4.0/(1.0 - XGRS(I,1))
- XGRS(I,2)=TRLW4(I,2)*TEMP - 1.0
- 77 WGTRS(I)=TRLW4(I,3)*TEMP
- RETURN
- C
- 80 IF (NINTRS.GT.9) GO TO 85
- NINTRS=7
- DO 82 I=1,NINTRS
- XGRS(I,1)=2.0*TRLW7(I,1) - 1.0
- TEMP=4.0/(1.0 - XGRS(I,1))
- XGRS(I,2)=TRLW7(I,2)*TEMP - 1.0
- 82 WGTRS(I)=TRLW7(I,3)*TEMP
- RETURN
- C
- 85 NINTRS=13
- DO 87 I=1,NINTRS
- XGRS(I,1)=2.0*TRLWD(I,1) - 1.0
- TEMP=4.0/(1.0 - XGRS(I,1))
- XGRS(I,2)=TRLWD(I,2)*TEMP - 1.0
- 87 WGTRS(I)=TRLWD(I,3)*TEMP
- C
- RETURN
- END
- C *CDC* *DECK SHSTIF
- C *UNI* )FOR,IS N.SHSTIF, R.SHSTIF
- SUBROUTINE SHSTIF (ND,B,S,XYZ,PROP,RE,EDIS,WA,NDOPT,THICK,
- 1 BV,COSXY,VNI,VNT)
- C
- C
- C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
- C . .
- C . .
- C . PROGRAM TO EVALUATE THE STIFFNESS MATRIX AND OUT-OFF-BALLANCE .
- C . .
- C . LOAD VECTOR OF THE ISOPARAMETRIC , SUPERPARAMETRIC OR .
- C . .
- C . ISO-SUPERPARAMETRIC GENERAL 3/D SHELL ELEMENT .
- C . .
- C . .
- C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
- C
- C
- IMPLICIT REAL*8 (A-H,O-Z)
- C
- COMMON /EL/ IND,ICOUNT,NPAR(20),NUMEG,NEGL,NEGNL,IMASS,IDAMP,ISTAT
- 1 ,NDOFDM,KLIN,IEIG,IMASSN,IDAMPN
- COMMON /VAR/ NG,MODEX,IUPDT,KSTEP,ITEMAX,IEQREF,ITE,KPRI,
- 1 IREF,IEQUIT,IPRI,KPLOTN,KPLOTE
- COMMON /SHELL1/ DISD(9),IELD,IELP,NPT,IDW,NDROT
- COMMON /SHELMT/ D(6,6),STRESS(6),STRAIN(6),IPT,NEL,IPS
- COMMON /SHELL5/ ISHAPE
- COMMON /GAUSS/ XG(4,4),WGT(4,4),EVAL2(9,2),EVAL3(27,3),E1,E2,E3
- COMMON /TRANG/ TRLW4(4,3),TRLW7(7,3),TRLWD(13,3),
- 1 XGRS(16,2),WGTRS(16)
- C
- DIMENSION B(1),S(1),XYZ(1),PROP(1),RE(1),EDIS(1),WA(1),NDOPT(1)
- 1 ,C(6,6),TAU(6),DI(6,6),XXX(96),THICK(1),BV(1)
- 2 ,COSXY(1),VNT(1),VNI(1),BVD(18)
- C
- EQUIVALENCE (NPAR(3),INDNL),(NPAR(10),NINTR),(NPAR(11),NINTS)
- 2 ,(NPAR(12),NINTT),(NPAR(15),MODEL)
- C
- C
- C F I N D E L E EM E N T M A T R I C E S
- C
- C
- NDX=3*IELD
- DO 50 J=1,NDX
- 50 XXX(J)=XYZ(J)
- IF (INDNL.LE.2) GO TO 55
- DO 52 J=1,NDX
- 52 XXX(J)=XXX(J) + EDIS(J)
- C
- C EVALUATE STRESS-STRAIN LAW IF LINEAR MATERIAL MODEL
- C USED IN THIS ELEMENT
- C
- 55 CALL MAT1 (PROP,C)
- C
- C INTEGRATE STIFFNESS MATRIX AND ELEMENT NODAL FORCE EXPRESSION
- C
- CALL SHBASE (NINTR,NINTS,NINTRS)
- C
- IPT=0
- DO 100 LXY=1,NINTRS
- E1=XGRS(LXY,1)
- E2=XGRS(LXY,2)
- RSWGT=WGTRS(LXY)
- DO 100 LZ=1,NINTT
- E3=XG(LZ,NINTT)
- WT=RSWGT*WGT(LZ,NINTT)
- IPT=IPT+1
- IF (INDNL.EQ.3) GO TO 310
- C
- C
- 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
- C
- C
- C EVALUATE DERIVATIVE OPERATOR B (IN COMPACTED FORM)
- C
- CALL SHDERV (XYZ,B,BV,DET,E1,E2,E3,NDOPT,COSXY,THICK,EDIS,VNI,VNT)
- C
- C EVALUATE STRESS-STRAIN LAW AND CURRENT STRESSES
- C
- CALL MATROT (C,D,1)
- CALL STSTSH
- C
- IF (INDNL.LE.1) GO TO 332
- C
- C ADD STRESS CONTRIBUTION TO ELEMENT FORCE VECTOR
- C
- FAC=WT*DET
- DO 170 I=1,6
- 170 TAU(I)=STRESS(I)*FAC
- L=0
- K=0
- DO 180 KK=1,IELD
- K=K + 3
- I=K-2
- J=K-1
- M=L+6
- N=L+12
- DO 179 II=1,6
- RE(I)=RE(I) + BV(L+II)*TAU(II)
- RE(J)=RE(J) + BV(M+II)*TAU(II)
- 179 RE(K)=RE(K) + BV(N+II)*TAU(II)
- C
- IF (NDOPT(KK)) 175,175,180
- 175 K=K + NDROT
- NL=N + 6
- DO 178 II=1,6
- RE(K-1)=RE(K-1) + BV(NL +II)*TAU(II)
- 178 RE(K)=RE(K) + BV(NL+II+6)*TAU(II)
- L=L + 12
- 180 L=L + 18
- C
- IF (ICOUNT.GT.2) GO TO 100
- IF (IREF.NE.0) GO TO 100
- C
- C ADD LINEAR CONTRIBUTION TO ELEMENT STIFFNESS MATRIX
- C
- C EVALUATE B(TRANSPOSED) * D * B
- C
- DO 201 I=1,6
- DO 201 J=1,6
- 201 DI(I,J)=D(I,J)*FAC
- C
- CALL SHBTDB (B,BV,DI,S,ND)
- C
- GO TO 465
- C
- C
- 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
- C
- C
- C EVALUATE DERIVATIVE OPERATOR B (IN COMPACTED FORM)
- C
- 310 CALL SHDERV (XXX,B,BV,DET,E1,E2,E3,NDOPT,COSXY,THICK,EDIS,VNI,VNT)
- C
- C EVALUATE STRESS-STRAIN LAW AND CURRENT STRESSES
- C
- CALL MATROT (C,D,1)
- CALL STSTSH
- C
- C ADD STRESS CONTRIBUTION TO ELEMENT FORCE VECTOR
- C
- 332 FAC=WT*DET
- IF (IND.LT.4) GO TO 379
- DO 340 I=1,6
- 340 TAU(I)=STRESS(I)*FAC
- KL=0
- K=0
- DO 350 KK=1,IELD
- K=K + 3
- I=K-2
- J=K-1
- KL=KL + 3
- JL=KL - 1
- IL=KL - 2
- RE(I)=RE(I) + B(IL)*TAU(1) + B(JL)*TAU(4) + B(KL)*TAU(5)
- RE(J)=RE(J) + B(JL)*TAU(2) + B(IL)*TAU(4) + B(KL)*TAU(6)
- RE(K)=RE(K) + B(KL)*TAU(3) + B(IL)*TAU(5) + B(JL)*TAU(6)
- IF (NDOPT(KK)) 320,320,350
- 320 NL=6*K
- K=K + NDROT
- KL=KL + 9
- NLL=NL + 6
- DO 345 II=1,6
- RE(K-1)=RE(K-1) + BV(NL + II)*TAU(II)
- 345 RE(K)=RE(K) + BV(NLL + II)*TAU(II)
- 350 CONTINUE
- C
- 379 IF (ICOUNT.GT.2) GO TO 100
- IF (IREF.NE.0) GO TO 100
- C
- C ADD LINEAR CONTRIBUTION TO ELEMENT STIFFNESS MATRIX
- C
- DO 380 I=1,6
- DO 380 J=1,6
- 380 DI(I,J)=D(I,J)*FAC
- C
- CALL SHBTDB (B,BV,DI,S,ND)
- C
- C
- 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
- C
- C
- C ADD NONLINEAR CONTRIBUTION TO STIFFNESS MATRIX
- C
- C
- 465 IF (INDNL.LE.1) GO TO 100
- IF (IELP) 480,480,500
- 480 KL=1
- DO 491 J=1,ND,3
- DB1=TAU(1)*B(J) + TAU(4)*B(J+1) + TAU(5)*B(J+2)
- DB2=TAU(4)*B(J) + TAU(2)*B(J+1) + TAU(6)*B(J+2)
- DB3=TAU(5)*B(J) + TAU(6)*B(J+1) + TAU(3)*B(J+2)
- KS1=KL
- KS2=KS1+ND-J+1
- KS3=KS2+ND-J
- DO 490 I=J,ND,3
- DUM=B(I)*DB1 + B(I+1)*DB2 + B(I+2)*DB3
- S(KS1)=S(KS1) + DUM
- S(KS2)=S(KS2) + DUM
- S(KS3)=S(KS3) + DUM
- KS1=KS1+3
- KS2=KS2+3
- 490 KS3=KS3+3
- 491 KL=KL+3*ND-3*J
- C
- GO TO 100
- C
- C
- C CONSTRUCT DERIVATIVE OPERATORS FOR ROTATIONAL DEGREES OF
- C MID-SURFACE NODES
- C
- 500 KBV=0
- KB=0
- DO 510 I=1,IELD
- IF (NDOPT(I)) 515,510,510
- 515 LL=0
- DO 517 K=4,6
- DO 517 L=1,3
- LL=LL + 1
- BV(KBV+LL)=B(KB+K)*B(KB+L+6)
- 517 BV(KBV+LL+9)=B(KB+K)*B(KB+L+9)
- KBV=KBV + 18
- KB=KB + 9
- 510 KB=KB + 3
- C
- C ADD CONTRIBUTIONS OF NONLINEAR STIFFNESS MATRIXX
- C
- KL=1
- KBJ=-17
- KK=1
- JJ=1
- DO 550 J=1,IELD
- DB1=TAU(1)*B(KK) + TAU(4)*B(KK+1) + TAU(5)*B(KK+2)
- DB2=TAU(4)*B(KK) + TAU(2)*B(KK+1) + TAU(6)*B(KK+2)
- DB3=TAU(5)*B(KK) + TAU(6)*B(KK+1) + TAU(3)*B(KK+2)
- KS1=KL
- KS2=KS1 + ND - JJ + 1
- KS3=KS2 + ND - JJ
- KI=KK
- KB=KBJ + 18
- DO 560 I=J,IELD
- DUM=B(KI)*DB1 + B(KI+1)*DB2 + B(KI+2)*DB3
- S(KS1)=S(KS1) + DUM
- S(KS2)=S(KS2) + DUM
- S(KS3)=S(KS3) + DUM
- IF (NDOPT(I)) 558,558,562
- 558 DO 565 L=1,2
- S(KS1+L+2)=S(KS1+L+2) + BV(KB)*DB1 + BV(KB+3)*DB2 + BV(KB+6)*DB3
- S(KS2+L+1)=S(KS2+L+1) + BV(KB+1)*DB1 + BV(KB+4)*DB2 + BV(KB+7)*DB3
- S(KS3+L)=S(KS3+L) + BV(KB+2)*DB1 + BV(KB+5)*DB2 + BV(KB+8)*DB3
- 565 KB=KB + 9
- KS1=KS1 + NDROT
- KS2=KS2 + NDROT
- KS3=KS3 + NDROT
- KI=KI + 9
- 562 KS1= KS1 + 3
- KS2=KS2 + 3
- KS3=KS3 + 3
- 560 KI=KI + 3
- KL=KS3 - 2
- JJ=JJ + 3
- C
- IF (NDOPT(J)) 580,580,550
- C
- 580 KBJ=KBJ + 18
- JJ=JJ + NDROT
- KS4=KL
- C
- KB=KBJ - 1
- LL=0
- DO 570 L=1,2
- DO 571 I=1,3
- LL=LL + 1
- BVD(LL)=BV(KB+LL)*TAU(1) + BV(KB+LL+3)*TAU(4)
- + + BV(KB+LL+6)*TAU(5)
- BVD(LL+3)=BV(KB+LL)*TAU(4) + BV(KB+LL+3)*TAU(2)
- + + BV(KB+LL+6)*TAU(6)
- BVD(LL+6)=BV(KB+LL)*TAU(5) + BV(KB+LL+3)*TAU(6)
- + + BV(KB+LL+6)*TAU(3)
- 571 CONTINUE
- 570 LL=9
- C
- LL=0
- DO 572 I=1,2
- TEMP=0.0
- DO 573 L=1,9
- LL=LL + 1
- 573 TEMP=TEMP + BVD(L)*BV(KB+LL)
- S(KS4)=S(KS4) + TEMP
- 572 KS4=KS4 + 1
- C
- KS5=KS4 + ND - JJ + 1
- TEMP=0.0
- DO 575 L=10,18
- 575 TEMP=TEMP + BVD(L)*BV(KB+L)
- S(KS5)=S(KS5) + TEMP
- C
- IF (IELD - J) 550,550,589
- 589 KI=KK + 12
- IL=J + 1
- KB=KBJ
- DO 590 I=IL,IELD
- S(KS4)=S(KS4) + BVD(1)*B(KI) + BVD(4)*B(KI+1) + BVD(7)*B(KI+2)
- S(KS4+1)=S(KS4+1) + BVD(2)*B(KI) + BVD(5)*B(KI+1) + BVD(8)*B(KI+2)
- S(KS4+2)=S(KS4+2) + BVD(3)*B(KI) + BVD(6)*B(KI+1) + BVD(9)*B(KI+2)
- S(KS5+1)=S(KS5+1) + BVD(10)*B(KI) + BVD(13)*B(KI+1) +
- 1 BVD(16)*B(KI+2)
- S(KS5+2)=S(KS5+2) + BVD(11)*B(KI) + BVD(14)*B(KI+1) +
- 1 BVD(17)*B(KI+2)
- S(KS5+3)=S(KS5+3) + BVD(12)*B(KI) + BVD(15)*B(KI+1) +
- 1 BVD(18)*B(KI+2)
- C
- IF (NDOPT(I)) 591,591,598
- C
- 591 KB=KB + 18
- KS4=KS4 + NDROT
- KS5=KS5 + NDROT
- C
- LL=-1
- DO 593 L=1,2
- TEMP=0.0
- DO 594 JL=1,9
- LL=LL + 1
- 594 TEMP=TEMP + BVD(JL)*BV(KB+LL)
- 593 S(KS4+L)=S(KS4+L) + TEMP
- C
- LL=-1
- DO 595 L=1,2
- TEMP=0.0
- DO 596 JL=1,9
- LL=LL + 1
- 596 TEMP=TEMP + BVD(JL+9)*BV(KB+LL)
- 595 S(KS5+L+1)=S(KS5+L+1) + TEMP
- KI=KI + 9
- C
- 598 KS4=KS4 + 3
- KS5=KS5 + 3
- 590 KI=KI + 3
- C
- KL=KS5 + 1
- KK=KK + 9
- 550 KK=KK + 3
- C
- 100 CONTINUE
- C
- RETURN
- C
- END
- C *CDC* *DECK TDISD
- C *UNI* )FOR,IS N.TDISD, R.TDISD
- SUBROUTINE TDISD (B,EDIS,NDOPT,T,THICK,VNI,VNT)
- C
- C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
- C . .
- C . ROUTINE TO EVALUATE DERIVATIVES OF TOTAL DISPLACEMENTS .
- C . .
- C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
- C
- IMPLICIT REAL*8 (A-H,O-Z)
- C
- COMMON /SHELL1/ DISD(9),IELD,IELP,NPT,IDW,NDROT
- COMMON /SHELL4/ XJI(3,3),P(3,32),H(32)
- C
- DIMENSION B(1),EDIS(1),NDOPT(1),THVN(3),TB(3),XH(3),VNT(1)
- 1 ,VNI(1),THICK(1)
- C
- C
- DO 10 I=1,9
- 10 DISD(I)=0.0
- C
- LL=0
- KK=-2
- K=-2
- C
- DO 20 L=1,IELD
- K=K + 3
- I=K + 1
- J=I + 1
- KK=KK + 3
- II=KK + 1
- JJ=KK + 2
- DISD(1)=DISD(1)+B(KK)*EDIS(K)
- DISD(2)=DISD(2)+B(II)*EDIS(I)
- DISD(3)=DISD(3)+B(JJ)*EDIS(J)
- DISD(4)=DISD(4)+B(II)*EDIS(K)
- DISD(5)=DISD(5)+B(JJ)*EDIS(K)
- DISD(6)=DISD(6)+B(KK)*EDIS(I)
- DISD(7)=DISD(7)+B(JJ)*EDIS(I)
- DISD(8)=DISD(8)+B(KK)*EDIS(J)
- DISD(9)=DISD(9)+B(II)*EDIS(J)
- C
- IF (NDOPT(L)) 30,30,20
- C
- 30 LL=LL + 1
- TH=0.5*THICK(LL)
- LV=3*(LL - 1)
- C
- DO 40 N=1,3
- XH(N)=XJI(N,3)*H(L)
- THVN(N)=TH*(VNT(LV+N) - VNI(LV+N))
- 40 TB(N)=T*B(KK+N-1)
- C
- DO 50 N=1,3
- 50 DISD(N)=DISD(N) + (TB(N) + XH(N))*THVN(N)
- DISD(4)=DISD(4) + (TB(2) + XH(2))*THVN(1)
- DISD(5)=DISD(5) + (TB(3) + XH(3))*THVN(1)
- DISD(6)=DISD(6) + (TB(1) + XH(1))*THVN(2)
- DISD(7)=DISD(7) + (TB(3) + XH(3))*THVN(2)
- DISD(8)=DISD(8) + (TB(1) + XH(1))*THVN(3)
- DISD(9)=DISD(9) + (TB(2) + XH(2))*THVN(3)
- KK=KK + 9
- C
- 20 CONTINUE
- C
- C
- RETURN
- END
- C *CDC* *DECK SHBTDB
- C *UNI* )FOR,IS N.SHBTDB, R.SHBTDB
- SUBROUTINE SHBTDB (B,BV,D,S,ND)
- C
- C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
- C . .
- C . P R O G R A M .
- C . TO MULTIPLY B(TRANSPOSED)*D*B .
- C . .
- C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
- C
- IMPLICIT REAL*8 (A-H,O-Z)
- C
- COMMON /SHELL1/ DISD(9),IELD,IELP,NPT,IDW,NDROT
- C
- DIMENSION B(1),S(1),D(6,1),DB(18),BV(1)
- C
- IF (IELP) 20,20,100
- C
- C
- C C A L C U L A T E ( B T ) * ( D ) * ( B )
- C FOR ELEMENT WITH TOP AND BOTTOM NODES ONLY
- C
- C
- 20 NN=1
- DO 30 I=3,ND,3
- I1=I - 1
- I2=I - 2
- C
- DO 32 K=1,18
- 32 DB(K)=0.
- C
- DO 35 K=1,6
- DB(K)=DB(K) + D(1,K)*B(I2) + D(4,K)*B(I1) + D(5,K)*B(I)
- DB(K+6)=DB(K+6) + D(2,K)*B(I1) + D(4,K)*B(I2) + D(6,K)*B(I)
- 35 DB(K+12)=DB(K+12) + D(3,K)*B(I) + D(5,K)*B(I2) + D(6,K)*B(I1)
- C
- C D I A G O N A L S U B - M A T R I X
- C
- S(NN)=S(NN) + B(I2)*DB(1) + B(I1)*DB(4) + B(I)*DB(5)
- S(NN+1)=S(NN+1) + B(I1)*DB(2) + B(I2)*DB(4) + B(I)*DB(6)
- S(NN+2)=S(NN+2) + B(I)*DB(3) + B(I2)*DB(5) + B(I1)*DB(6)
- NL=NN + ND - I2 + 1
- S(NL)=S(NL) + B(I1)*DB(8) + B(I2)*DB(10) + B(I)*DB(12)
- S(NL+1)=S(NL+1) + B(I)*DB(9) + B(I2)*DB(11) + B(I1)*DB(12)
- NP=NL + ND - I1 + 1
- S(NP)=S(NP) + B(I)*DB(15) + B(I2)*DB(17) + B(I1)*DB(18)
- IF (I.GE.ND) GO TO 30
- C
- C O F F D I A G O N A L S U B - M A T R I C E S
- C
- NM=NN + 3
- II=I + 3
- LL=0
- C
- DO 50 L=1,3
- DO 55 J=II,ND,3
- J1=J - 1
- J2=J - 2
- S(NM)=S(NM) + B(J2)*DB(LL+1) + B(J1)*DB(LL+4) + B(J)*DB(LL+5)
- S(NM+1)=S(NM+1) + B(J1)*DB(LL+2) + B(J2)*DB(LL+4) + B(J)*DB(LL+6)
- S(NM+2)=S(NM+2) + B(J)*DB(LL+3) + B(J2)*DB(LL+5) + B(J1)*DB(LL+6)
- 55 NM=NM + 3
- NM=NM - L + 3
- 50 LL=LL + 6
- 30 NN=NM
- C
- RETURN
- C
- C
- C E V A L U A T E ( B V T ) * ( D ) * ( B V )
- C FOR ELEMENT WITH TOP AND BOTTOM NODES AND MID-SURFACE NODES
- C
- C
- 100 NN=1
- DO 120 J=1,ND
- K=6*(J-1)
- DB1=0.
- DB2=0.
- DB3=0.
- DB4=0.
- DB5=0.
- DB6=0.
- C
- DO 110 L=1,6
- DB1=DB1 + BV(K+L)*D(L,1)
- DB2=DB2 + BV(K+L)*D(L,2)
- DB3=DB3 + BV(K+L)*D(L,3)
- DB4=DB4 + BV(K+L)*D(L,4)
- DB5=DB5 + BV(K+L)*D(L,5)
- DB6=DB6 + BV(K+L)*D(L,6)
- 110 CONTINUE
- C
- DO 115 I=J,ND
- M=6*(I-1)
- S(NN)=S(NN) + DB1*BV(M+1) + DB2*BV(M+2) + DB3*BV(M+3) +
- + DB4*BV(M+4) + DB5*BV(M+5) + DB6*BV(M+6)
- 115 NN=NN + 1
- 120 CONTINUE
- RETURN
- END
- C *CDC* *DECK SHMASS
- C *UNI* )FOR,IS N.SHMASS, R.SHMASS
- SUBROUTINE SHMASS (ND,NDM3,XM,CM,XX,NDOPT,THICK,VN,DE,BV,COSXY)
- C
- C
- C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
- C . .
- C . P R O G R A M .
- C . .
- C . EVALUATES MASS MATRIX .
- C . .
- C . FOR CURVILINEAR 4 TO 32 NODES SHELL ELEMENT .
- C . .
- C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
- C
- C
- IMPLICIT REAL*8 (A-H,O-Z)
- C
- COMMON /EL/ IND,ICOUNT,NPAR(20),NUMEG,NEGL,NEGNL,IMASS,IDAMP,ISTAT
- 1 ,NDOFDM,KLIN,IEIG,IMASSN,IDAMPN
- COMMON /SHELL1/ DISD(9),IELD,IELP,NPT,IDW,NDROT
- COMMON /GAUSS/ XG(4,4),WGT(4,4),EVAL2(9,2),EVAL3(27,3),E1,E2,E3
- COMMON /TRANG/ TRLW4(4,3),TRLW7(7,3),TRLWD(13,3),
- 1 XGRS(16,2),WGTRS(16)
- COMMON /SHELL4/ XJI(3,3),P(3,32),H(32)
- C
- DIMENSION XM(1),CM(1),XX(3,1),BV(3,1),THICK(1),VN(1),NDOPT(1)
- 1 ,COSXY(6,1)
- C
- EQUIVALENCE (NPAR(9),IFUNCT)
- C
- C
- C INTEGRATE USING GAUSS QUADRATURE
- C
- C
- IINTP=0
- NINTM=3
- IF (IFUNCT.EQ.4) NINTM=4
- NINTZM=2
- IF (IMASS.EQ.1) GO TO 9
- DO 6 I=1,3
- DO 6 J=1,ND
- 6 BV(I,J)=0.
- DO 8 I=1,NDM3
- 8 CM(I)=0.0
- GO TO 10
- 9 DO 7 I=1,ND
- 7 XM(I)=0.
- XLMAS=0.
- C
- 10 CALL SHBASE (NINTM,NINTM,NINTRS)
- C
- DO 100 LXY=1,NINTRS
- R=XGRS(LXY,1)
- S=XGRS(LXY,2)
- RSWGT=WGTRS(LXY)
- DO 100 LZ=1,NINTZM
- T=XG(LZ,NINTZM)
- WT=RSWGT*WGT(LZ,NINTZM)
- C
- C
- C FIND INTERPOLATION FUNCTIONS AND THEIR DERIVATIVES
- C FIND JACOBIAN MATRIX AND ITS DETERMINANT
- C
- C
- CALL SHFUNT (R,S,T,NDOPT,DET,XX,VN,THICK,IINTP)
- C
- C
- C CONSISTENT MASS MATRIX
- C
- C
- FAC=WT*DET*DE
- C
- IF (IMASS - 1) 32,32,50
- C
- 50 LL=0
- IK=1
- DO 60 I=1,IELD
- BV(1,IK)=H(I)
- BV(2,IK+1)=H(I)
- BV(3,IK+2)=H(I)
- IK=IK + 3
- C
- IF (NDOPT(I)) 52,52,60
- 52 LL=LL + 1
- TH=0.5*THICK(LL)*H(I)
- DO 54 L=1,3
- BV(L,IK)=-TH*COSXY(L+3,LL)
- 54 BV(L,IK+1)= TH*COSXY(L,LL)
- IK=IK + 2
- C
- 60 CONTINUE
- C
- KM=0
- DO 70 I=1,ND
- DO 70 J=I,ND
- KM=KM + 1
- TEMP=0.
- DO 72 L=1,3
- 72 TEMP=TEMP + BV(L,I)*BV(L,J)
- 70 CM(KM)=CM(KM) + FAC*TEMP
- GO TO 100
- C
- C
- C LUMPED MASS VECTOR
- C
- C
- 32 FACM=FAC/(IELD+IELP)
- XLMAS=XLMAS + FACM
- C
- 100 CONTINUE
- C
- IF (IMASS.EQ.2) RETURN
- C
- K=0
- DO 210 I=1,IELD
- DO 220 L=1,3
- K=K + 1
- 220 XM(K)=XLMAS
- IF (NDOPT(I)) 215,215,210
- 215 XM(K+1)=0.
- XM(K+2)=XM(K+1)
- XM(K-2)=2.*XLMAS
- XM(K-1)=XM(K-2)
- XM(K)=XM(K-2)
- K=K + 2
- 210 CONTINUE
- RETURN
- END
- C *CDC* *DECK SHDERV
- C *UNI* )FOR,IS N.SHDERV, R.SHDERV
- SUBROUTINE SHDERV (XX,B,BV,DET,R,S,T,NDOPT,COSXY,THICK,EDIS,
- 1 VNI,VNT)
- C
- C
- C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
- C . .
- C . P R O G R A M .
- C . .
- C . EVALUATE THE COMPACT STRAIN-DISPLACEMENT MATRIX B AND .
- C . .
- C . STRAIN-DISPLACEMENT VECTOR BV AT POINT (R,S,T) .
- C . .
- C . CURVILINEAR 4 TO 32 SHELL ELEMENT .
- C . .
- C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
- C
- C
- C
- IMPLICIT REAL*8 (A-H,O-Z)
- C
- COMMON /EL/ IND,ICOUNT,NPAR(20),NUMEG,NEGL,NEGNL,IMASS,IDAMP,ISTAT
- 1 ,NDOFDM,KLIN,IEIG,IMASSN,IDAMPN
- COMMON /VAR/ NG,MODEX,IUPDT,KSTEP,ITEMAX,IEQREF,ITE,KPRI,
- 1 IREF,IEQUIT,IPRI,KPLOTN,KPLOTE
- COMMON /SHELL1/ DISD(9),IELD,IELP,NPT,IDW,NDROT
- COMMON /SHROT/ XJ(3,3),DCA(3,3)
- COMMON /SHELL4/XJI(3,3),P(3,32),H(32)
- C
- DIMENSION XX(3,1),NDOPT(1),BV(1),VNI(1),COSXY(6,1),VNT(1),
- 1 EDIS(1),THICK(1),B(1)
- C
- EQUIVALENCE (NPAR(3),INDNL)
- C
- C
- C FIND INTERPOLATION FUNCTIONS AND THEIR DERIVATIVES
- C EVALUATE JACOBIAN MATRIX AT POINT (R,S,T)
- C COMPUTE DETERMINANT OF JACOBIAN MATRIX AT POINT (R,S,T)
- C
- C
- IINTP=0
- IF(INDNL .LT. 3)
- 1 CALL SHFUNT (R,S,T,NDOPT,DET,XX,VNI,THICK,IINTP)
- C
- IF(INDNL .EQ. 3)
- 1 CALL SHFUNT (R,S,T,NDOPT,DET,XX,VNT,THICK,IINTP)
- C
- C
- C COMPUTE INVERSE OF JACOBIAN MATRIX
- C
- C
- DUM=1.0/DET
- XJI(1,1)=DUM*( XJ(2,2)*XJ(3,3) - XJ(2,3)*XJ(3,2))
- XJI(2,1)=DUM*(-XJ(2,1)*XJ(3,3) + XJ(2,3)*XJ(3,1))
- XJI(3,1)=DUM*( XJ(2,1)*XJ(3,2) - XJ(2,2)*XJ(3,1))
- XJI(1,2)=DUM*(-XJ(1,2)*XJ(3,3) + XJ(1,3)*XJ(3,2))
- XJI(2,2)=DUM*( XJ(1,1)*XJ(3,3) - XJ(1,3)*XJ(3,1))
- XJI(3,2)=DUM*(-XJ(1,1)*XJ(3,2) + XJ(1,2)*XJ(3,1))
- XJI(1,3)=DUM*( XJ(1,2)*XJ(2,3) - XJ(1,3)*XJ(2,2))
- XJI(2,3)=DUM*(-XJ(1,1)*XJ(2,3) + XJ(1,3)*XJ(2,1))
- XJI(3,3)=DUM*( XJ(1,1)*XJ(2,2) - XJ(1,2)*XJ(2,1))
- C
- C
- C E V A L U A T E C O M P A C T B M A T R I X I N
- C G L O B A L ( X , Y , Z ) C O O R D I N A T E S
- C
- C
- NDB=3*IELD + 9*IELP
- DO 124 I=1,NDB
- 124 B(I)=0.
- KK=0
- K2=0
- DO 130 K=1,IELD
- K2=K2 + 3
- DO 120 I=1,3
- B(K2-2)=B(K2-2) + XJI(1,I)*P(I,K)
- B(K2-1)=B(K2-1) + XJI(2,I)*P(I,K)
- 120 B(K2)=B(K2) + XJI(3,I)*P(I,K)
- C
- C MODIFY FOR NODE COLLAPSING
- C
- IF (NDOPT(K)) 127,127,130
- 127 KK=KK + 1
- DO 125 I=1,3
- B(K2+I)=B(K2+I) + (XJI(I,1)*P(1,K) + XJI(I,2)*P(2,K))*T
- 1 + XJI(I,3)*H(K)
- TH=0.5*THICK(KK)
- B(K2+I+3)=B(K2+I+3) - TH*COSXY(I+3,KK)
- 125 B(K2+I+6)=B(K2+I+6) + TH*COSXY(I,KK)
- K2=K2 + 9
- 130 CONTINUE
- C
- C CALCULATE THE TOTAL DISPLACEMENT OPERATORS DISD
- C
- CALL TDISD (B,EDIS,NDOPT,T,THICK,VNI,VNT)
- C
- IF (KPRI.EQ.0) RETURN
- C
- NDBV=18*IELD + 12*IELP
- DO 135 I=1,NDBV
- 135 BV(I)=0.0
- IF(INDNL .EQ. 2) GO TO 245
- C
- C
- C E V A L U A T E D E R I V A T I V E O P E R A T O R F O R
- C L I N E A R A N D U. L. F O R M U L A T I O N
- C
- C
- K=0
- L=1
- DO 200 KK=1,IELD
- K=K + 3
- J=K - 1
- I=K - 2
- M=L + 6
- N=M + 6
- C
- BV(L)=B(I)
- BV(L+3)=B(J)
- BV(L+4)=B(K)
- C
- BV(M+1)=B(J)
- BV(M+3)=B(I)
- BV(M+5)=B(K)
- C
- BV(N+2)=B(K)
- BV(N+4)=B(I)
- BV(N+5)=B(J)
- L=N + 6
- C
- IF (NDOPT(KK)) 198,198,200
- C
- 198 G1=B(K+1)
- G2=B(K+2)
- G3=B(K+3)
- GA1=B(K+4)
- GA2=B(K+5)
- GA3=B(K+6)
- GB1=B(K+7)
- GB2=B(K+8)
- GB3=B(K+9)
- BV(N+6)=GA1*G1
- BV(N+7)=GA2*G2
- BV(N+8)=GA3*G3
- BV(N+9)=GA2*G1 + GA1*G2
- BV(N+10)=GA3*G1 + GA1*G3
- BV(N+11)=GA3*G2 + GA2*G3
- C
- BV(N+12)=GB1*G1
- BV(N+13)=GB2*G2
- BV(N+14)=GB3*G3
- BV(N+15)=GB2*G1 + GB1*G2
- BV(N+16)=GB3*G1 + GB1*G3
- BV(N+17)=GB3*G2 + GB2*G3
- K=K + 9
- L=N + 18
- C
- 200 CONTINUE
- RETURN
- C
- C
- C E V A L U A T E D E R I V A T I V E O P E R A T O R
- C I N C L U D I N G T H E I N I T I A L D I S P L A C E -
- C M E N T E F F E C T S , T. L. F O R M U L A T I O N
- C
- C
- 245 K=0
- L=1
- DO 250 KK=1,IELD
- K=K + 3
- J=K-1
- I=K-2
- M=L+6
- N=M+6
- C
- BV(L)=B(I)*DISD(1)+B(I)
- BV(L+1)=B(J)*DISD(4)
- BV(L+2)=B(K)*DISD(5)
- BV(L+3)=B(I)*DISD(4)+B(J)*DISD(1)+B(J)
- BV(L+4)=B(I)*DISD(5)+B(K)*DISD(1)+B(K)
- BV(L+5)=B(J)*DISD(5)+B(K)*DISD(4)
- C
- BV(M)=B(I)*DISD(6)
- BV(M+1)=B(J)*DISD(2)+B(J)
- BV(M+2)=B(K)*DISD(7)
- BV(M+3)=B(I)*DISD(2)+B(J)*DISD(6)+B(I)
- BV(M+4)=B(I)*DISD(7)+B(K)*DISD(6)
- BV(M+5)=B(J)*DISD(7)+B(K)*DISD(2)+B(K)
- C
- BV(N)=B(I)*DISD(8)
- BV(N+1)=B(J)*DISD(9)
- BV(N+2)=B(K)*DISD(3)+B(K)
- BV(N+3)=B(I)*DISD(9)+B(J)*DISD(8)
- BV(N+4)=B(I)*DISD(3)+B(K)*DISD(8)+B(I)
- BV(N+5)=B(J)*DISD(3)+B(K)*DISD(9)+B(J)
- L=N + 6
- C
- IF(NDOPT(KK)) 247,247,250
- C
- 247 G1=B(K+1)
- G2=B(K+2)
- G3=B(K+3)
- GA1=B(K+4)*(1.+DISD(1)) + B(K+5)*DISD(6) + B(K+6)*DISD(8)
- GA2=B(K+4)*DISD(4) + B(K+5)*(1.+DISD(2)) + B(K+6)*DISD(9)
- GA3=B(K+4)*DISD(5) + B(K+5)*DISD(7) + B(K+6)*(1.+DISD(3))
- GB1=B(K+7)*(1.+DISD(1)) + B(K+8)*DISD(6) + B(K+9)*DISD(8)
- GB2=B(K+7)*DISD(4) + B(K+8)*(1.+DISD(2)) + B(K+9)*DISD(9)
- GB3=B(K+7)*DISD(5) + B(K+8)*DISD(7) + B(K+9)*(1.+DISD(3))
- BV(N+6)=GA1*G1
- BV(N+7)=GA2*G2
- BV(N+8)=GA3*G3
- BV(N+9)=GA2*G1 + GA1*G2
- BV(N+10)=GA3*G1 + GA1*G3
- BV(N+11)=GA3*G2 + GA2*G3
- C
- BV(N+12)=GB1*G1
- BV(N+13)=GB2*G2
- BV(N+14)=GB3*G3
- BV(N+15)=GB2*G1 + GB1*G2
- BV(N+16)=GB3*G1 + GB1*G3
- BV(N+17)=GB3*G2 + GB2*G3
- K=K + 9
- L=N + 18
- 250 CONTINUE
- C
- C
- C
- RETURN
- END
- C *CDC* *DECK SHFUNT
- C *UNI* )FOR,IS N.SHFUNT, R.SHFUNT
- SUBROUTINE SHFUNT (R,S,T,NDOPT,DET,XX,VN,THICK,IINTP)
- C
- C
- C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
- C . .
- C . P R O G R A M .
- C . .
- C . TO FIND INTERPOLATION FUNCTIONS ( H ) .
- C . AND DERIVATIVES ( P ) CORRESPONDING TO THE NODAL .
- C . POINTS OF A CURVILINEAR ISOPARAMETRIC , SUPERPARAMETRIC .
- C . OR ISO-SUPERPRAMETRIC 4 TO 32 NODES SHELL ELEMENT .
- C . .
- C . TO FIND JACOBIAN ( XJ ) AND ITS DETERMINANT ( DET ) .
- C . .
- C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
- C
- C
- IMPLICIT REAL*8 (A-H,O-Z)
- C
- COMMON /VAR/ NG,MODEX,IUPDT,KSTEP,ITEMAX,IEQREF,ITE,KPRI,IREF,
- 1 IEQUIT,IPRI,KPLOTN,KPLOTE
- COMMON /EL/ IND,ICOUNT,NPAR(20),NUMEG,NEGL,NEGNL,IMASS,IDAMP,ISTAT
- 1 ,NDOFDM,KLIN,IEIG,IMASSN,IDAMPN
- COMMON /SHELL1/ DISD(9),IELD,IELP,NPT,IDW,NDROT
- COMMON /SHELMT/ D(6,6),STRESS(6),STRAIN(6),IPT,NEL,IPS
- COMMON /SHROT/ XJ(3,3),DCA(3,3)
- COMMON /SHELL4/ XJI(3,3),P(3,32),H(32)
- COMMON /SHELL5/ ISHAPE
- C
- DIMENSION NDOPT(1),IPERM(4),XX(3,1),IMID(4),NDNUM(16),
- 1 ICOEF(7),COEF(4),THICK(1),VN(1)
- C
- EQUIVALENCE (NPAR(9),IFUNCT)
- C
- DATA IPERM /2,3,4,1/
- DATA NDNUM /5,12,6,11, 6,9,7,12, 7,10,8,9, 8,11,5,10/,
- 1 ICOEF /2,1,2,4,2,1,2/,
- 2 COEF /-.6666666666667D0,-.6666666666667D0,
- 3 -.3333333333333D0,-.3333333333333D0/
- C
- RP=1.0 + R
- SP=1.0 + S
- TP=0.5*(1.0 + T)
- RM=1.0 - R
- SM=1.0 - S
- TM=0.5*(1.0 - T)
- RR=1.0 - R*R
- SS=1.0 - S*S
- C
- IF (IFUNCT.LT.4) GO TO 202
- RP3= 0.5625 + 1.6875*R
- SP3= 0.5625 + 1.6875*S
- RM3= 0.5625 - 1.6875*R
- SM3= 0.5625 - 1.6875*S
- C
- 202 ITOP=(IELD - IELP)/2 + IELP
- I=0
- C
- 60 I=I + 1
- IF (I.GT.ITOP) GO TO 40
- NM=NDOPT(I)
- NN=IABS(NM)
- GO TO (1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16) ,NN
- C
- C LINEAR NODES (NODES 1-4 AND 17-20)
- C
- 1 H(1)= 0.25*RP*SP
- P(1,1)= 0.25*SP
- P(2,1)= 0.25*RP
- GO TO 60
- C
- 2 H(2)= 0.25*RM*SP
- P(1,2)=-P(1,1)
- P(2,2)= 0.25*RM
- GO TO 60
- C
- 3 H(3)= 0.25*RM*SM
- P(1,3)=-0.25*SM
- P(2,3)=-P(2,2)
- GO TO 60
- C
- 4 H(4)= 0.25*RP*SM
- P(1,4)=-P(1,3)
- P(2,4)=-P(2,1)
- GO TO 60
- C
- C QUADTRATIC NODES (NODES 5-8 AND 21-24)
- C
- 5 H(5)= 0.5*RR*SP
- P(1,5)=-R*SP
- P(2,5)= 0.5*RR
- GO TO 60
- C
- 6 H(6)= 0.5*RM*SS
- P(1,6)=-0.5*SS
- P(2,6)=-RM*S
- IF (ISHAPE.EQ.0) GO TO 60
- H(6)= H(6) - 0.25*RR*SS
- P(1,6)= P(1,6) + 0.5*R*SS
- P(2,6)= P(2,6) + 0.5*RR*S
- GO TO 60
- C
- 7 H(7)= 0.5*RR*SM
- P(1,7)=-R*SM
- P(2,7)=-0.5*RR
- GO TO 60
- C
- 8 H(8)= 0.5*RP*SS
- P(1,8)= 0.5*SS
- P(2,8)=- RP*S
- GO TO 60
- C
- C CUBIC NODES
- C
- 9 H(9)= RM3*H(5)
- P(1,9)= RM3*P(1,5) - 1.6875*H(5)
- P(2,9)= RM3*P(2,5)
- GO TO 60
- C
- 10 H(10)= SM3*H(6)
- P(1,10)= SM3*P(1,6)
- P(2,10)= SM3*P(2,6) - 1.6875*H(6)
- IF (ISHAPE.EQ.0) GO TO 60
- FCHH= 0.2109375D0
- H(10)= H(10) + FCHH*RM*RR*SP*SS
- P(1,10)= P(1,10) - FCHH*RM*(1. + 3.*R)*SP*SS
- P(2,10)= P(2,10) + FCHH*RM*RR*SP*(1. - 3.*S)
- GO TO 60
- C
- 11 H(11)= RP3*H(7)
- P(1,11)= RP3*P(1,7) + 1.6875*H(7)
- P(2,11)= RP3*P(2,7)
- IF (ISHAPE.EQ.0) GO TO 60
- FCHH= 0.421875
- H(11)= H(11) + FCHH*RM*RR*SS
- P(1,11)= P(1,11) - FCHH*RM*(1. + 3.*R)*SS
- P(2,11)= P(2,11) - 2.*FCHH*RM*RR*S
- GO TO 60
- C
- 12 H(12)= SP3*H(8)
- P(1,12)= SP3*P(1,8)
- P(2,12)= SP3*P(2,8) + 1.6875*H(8)
- GO TO 60
- C
- C INTERNAL NODES
- C
- 13 H(13)= RR*SS
- P(1,13)=-2.*R*SS
- P(2,13)=-2.*RR*S
- IF (IFUNCT.LT.4) GO TO 40
- RPF= (-2.*R*RP3 + 1.6875*RR)*SS
- RMF=-( 2.*R*RM3 + 1.6875*RR)*SS
- SPF= (-2.*S*SP3 + 1.6875*SS)*RR
- SMF=-( 2.*S*SM3 + 1.6875*SS)*RR
- H(13)=H(13)*RP3*SP3
- P(1,13)= RPF*SP3
- P(2,13)= RP3*SPF
- GO TO 60
- C
- 14 H(14)=RR*RM3*SS*SP3
- P(1,14)= RMF*SP3
- P(2,14)= RM3*SPF
- GO TO 60
- C
- 15 H(15)=RR*RM3*SS*SM3
- P(1,15)= RMF*SM3
- P(2,15)= RM3*SMF
- GO TO 60
- C
- 16 H(16)=RR*RP3*SS*SM3
- P(1,16)= RPF*SM3
- P(2,16)= RP3*SMF
- C
- C
- 40 IH=4
- C
- 41 IH=IH + 1
- IM=NDOPT(IH)
- IN=IABS(IM)
- IF (IH.GT.ITOP) GO TO 55
- IF (IN.GT.8) GO TO 44
- C
- C MODIFY THE LINEAR FUNCTIONS IF QUADRATIC NODES ARE PRESENT
- C
- I1=IN - 4
- IMID(I1)=IH
- I2=IPERM(I1)
- H(I1)=H(I1) - 0.5*H(IN)
- H(I2)=H(I2) - 0.5*H(IN)
- H(IH)=H(IN)
- DO 43 J=1,2
- P(J,I1)=P(J,I1) - 0.5*P(J,IN)
- P(J,I2)=P(J,I2) - 0.5*P(J,IN)
- 43 P(J,IH)=P(J,IN)
- GO TO 41
- C
-
- C MODIFY LINEAR AND QUADTRATIC FUNCTIONS WHEN CUBIC NODES
- C ARE PRESENT
- C
- 44 IF (IN.GT.12) GO TO 47
- I1=IN - 8
- I2=IPERM(I1)
- I3=IMID(I1)
- C
- H(I1)=H(I1) - 0.25*H(I3) + H(IN)/3.0
- H(I2)=H(I2) + 0.125*H(I3) - H(IN)/3.0
- H(I3)= 1.125*H(I3) - H(IN)
- H(IH)=H(IN)
- DO 45 J=1,2
- P(J,I1)= P(J,I1) - 0.25*P(J,I3) + P(J,IN)/3.
- P(J,I2)= P(J,I2) + 0.125*P(J,I3) - P(J,IN)/3.
- P(J,I3)= 1.125*P(J,I3) - P(J,IN)
- 45 P(J,IH)= P(J,IN)
- GO TO 41
- C
- C MODIFY FUNCTIONS IF INTERNAL NODES ARE PRESENT
- C
- 47 IF (IFUNCT.EQ.4) GO TO 51
- DO 48 I=1,4
- H(I)= H(I) + 0.25*H(13)
- H(I+4)= H(I+4) -0.5*H(13)
- DO 48 J=1,2
- P(J,I)= P(J,I) + 0.25*P(J,13)
- 48 P(J,I+4)= P(J,I+4) - 0.5*P(J,13)
- H(9)= H(13)
- P(1,9)= P(1,13)
- P(2,9)= P(2,13)
- GO TO 55
- C
- C MODIFY INTERPOLATION FUNCTIONS IF CUBIC INTERNAL NODES ARE PRESENT
- C
- 51 IJ=4*(IH - 13)
- IK=16 - IH
- DO 52 K=1,4
- I1=NDNUM(IJ+K)
- CF=ICOEF(IK+K)/9.
- H(K)=H(K) + CF*H(IH)
- H(I1)=H(I1) + COEF(K)*H(IH)
- C
- DO 52 J=1,2
- P(J,K)=P(J,K) + CF*P(J,IH)
- 52 P(J,I1)=P(J,I1) + COEF(K)*P(J,IH)
- GO TO 41
- C
- 55 IF (IELD - IELP) 110,56,59
- C
- 56 DO 54 I=1,ITOP
- 54 P(3,I)=0.
- GO TO 75
- C
- 59 IH=ITOP
- DO 57 I=1,ITOP
- P(3,I)=0.
- IF (NDOPT(I).LT.0) GO TO 57
- IH=IH + 1
- P(3,IH)=-0.5*H(I)
- P(3,I)=-P(3,IH)
- H(IH)= H(I)*TM
- H(I)= H(I)*TP
- DO 58 J=1,2
- P(J,IH)= P(J,I)*TM
- 58 P(J,I)= P(J,I)*TP
- 57 CONTINUE
- C
- C
- C EVALUATE JACOBIAN MATRIX AT POINT (R,S,T)
- C
- C
- 75 IF (IINTP.GT.0) GO TO 110
- DO 77 I=1,3
- DO 77 J=1,3
- 77 XJ(I,J)=0.
- C
- THF=0.5*T
- KK=-1
- DO 80 L=1,IELD
- DO 82 I=1,3
- DO 82 J=1,3
- 82 XJ(I,J)=XJ(I,J) + P(I,L)*XX(J,L)
- C
- IF(NDOPT(L)) 84,84,80
- 84 KK=KK + 1
- KVN=3*KK
- TIK=THICK(KK+1)*THF
- DO 85 I=1,2
- TK=TIK*P(I,L)
- DO 85 J=1,3
- 85 XJ(I,J)=XJ(I,J) + TK*VN(KVN+J)
- THK=0.5*THICK(KK+1)*H(L)
- DO 86 J=1,3
- 86 XJ(3,J)=XJ(3,J) + THK*VN(KVN+J)
- 80 CONTINUE
- C
- C
- C COMPUTE DETERMINANT OF JACOBIAN MATRIX AT POINT (R,S,T)
- C
- C
- DET = XJ(1,1)*XJ(2,2)*XJ(3,3)
- 1 + XJ(1,2)*XJ(2,3)*XJ(3,1)
- 2 + XJ(1,3)*XJ(2,1)*XJ(3,2)
- 3 - XJ(1,3)*XJ(2,2)*XJ(3,1)
- 4 - XJ(1,2)*XJ(2,1)*XJ(3,3)
- 5 - XJ(1,1)*XJ(2,3)*XJ(3,2)
- IF (DET.GT.1.0D-08) GO TO 110
- WRITE (6,2000) NG,NEL
- STOP
- C
- 110 RETURN
- C
- C
- 2000 FORMAT (////14H *** ERROR ***/18H ELEMENT GROUP NO.,I5/
- 1 47H ZERO JACOBIAN DETERMINANT FOR SHELL ELEMENT ( ,
- 2 I4,1H) )
- C
- C
- END
- C *CDC* *DECK MATROT
- C *UNI* )FOR,IS N.MATROT, R.MATROT
- SUBROUTINE MATROT (C,D,IROT)
- C
- C
- C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
- C . .
- C . ROUTINE TO TRANSFER THE SHELL COORDINATE CONSTITUTIVE .
- C . RELATION TO THE GLOBAL COORDINATE SYSTEM .
- C . .
- C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
- C
- C
- IMPLICIT REAL*8 (A-H,O-Z)
- C
- COMMON /SHROT/ XJ(3,3),DCA(3,3)
- C
- DIMENSION C(6,1),D(6,1),DUM(6,6),TEMP(6,6),IPRM(3),IPERM(3),DC(3)
- C
- DATA IPRM /2,3,1/,
- 1 IPERM/3,4,2/
- C
- IF (IROT.EQ.2) GO TO 190
- C
- C CALCULATE THE DIRECTION COSINES OF A SHELL SURFACE COORDINATE
- C SYSTEM
- C
- C - ACCEPT THE DIRECTION OF T AS THE FIRST COORDINATE AXIS -
- C
- TNORM=0.
- DO 12 J=1,3
- 12 TNORM=TNORM + XJ(3,J)*XJ(3,J)
- TNORM=DSQRT(TNORM)
- DO 13 J=1,3
- 13 DCA(J,3)=XJ(3,J)/TNORM
- C
- C - CALCULATE THE SECOND COORDINATE AXIS R* BY THE CROSS PRODUCT
- C OF S AND T -
- DC(1)=XJ(2,2)*XJ(3,3) - XJ(2,3)*XJ(3,2)
- DC(2)=XJ(2,3)*XJ(3,1) - XJ(2,1)*XJ(3,3)
- DC(3)=XJ(2,1)*XJ(3,2) - XJ(2,2)*XJ(3,1)
- TNORM=0.
- DO 10 J=1,3
- 10 TNORM=TNORM + DC(J)*DC(J)
- TNORM=DSQRT(TNORM)
- DO 14 J=1,3
- 14 DCA(J,1)=DC(J)/TNORM
- C
- C - CALCULATE THE THIRD COORDINATE AXIS S* BY THE CROSS PRODUCT
- C OF T AND R*
- C
- DCA(1,2)=DCA(2,3)*DCA(3,1) - DCA(2,1)*DCA(3,3)
- DCA(2,2)=DCA(1,1)*DCA(3,3) - DCA(1,3)*DCA(3,1)
- DCA(3,2)=DCA(1,3)*DCA(2,1) - DCA(1,1)*DCA(2,3)
- C
- C TRANSFORMATION BETWEEN MATERIAL STRAINS AND GLOBAL STRAINS
- C
- 190 DO 200 I1=1,3
- I2=IPRM(I1)
- I3=IPERM(I1)
- DO 200 J1=1,3
- J2=IPRM(J1)
- J3=IPERM(J1)
- TEMP(I1 ,J1 ) = DCA(J1,I1)*DCA(J1,I1)
- TEMP(I1+I3,J1 ) = DCA(J1,I1)*DCA(J1,I2)*2.0
- TEMP(I1 ,J1+J3) = DCA(J1,I1)*DCA(J2,I1)
- TEMP(I1+I3,J1+J3) = DCA(J1,I1)*DCA(J2,I2) + DCA(J2,I1)*DCA(J1,I2)
- 200 CONTINUE
- C
- C ROTATE THE MATERIAL LAW TO THE GLOBAL SYSTEM
- C
- DO 230 I=1,6
- DO 220 J=1,6
- X=0.0
- DO 210 K=1,6
- 210 X=X + C(I,K)*TEMP(K,J)
- 220 DUM(I,J)=X
- 230 CONTINUE
- C
- DO 260 I=1,6
- DO 250 J=I,6
- X=0.0
- DO 240 K=1,6
- 240 X=X + TEMP(K,I)*DUM(K,J)
- D(I,J)=X
- 250 D(J,I) = X
- 260 CONTINUE
- C
- C
- RETURN
- END
- C *CDC* *DECK MAT1
- C *UNI* .FOR,IS N.MAT1, R.MAT1
- SUBROUTINE MAT1 (PROP,C)
- C
- C
- C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
- C . .
- C . .
- C . P R O G R A M .
- C . .
- C . TO GENERATE STRESS-STRAIN LAW FOR .
- C . LINEAR ELASTIC MATERIALS OF 3/D GENERAL SHELLS .
- C . .
- C . .
- C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
- C
- C
- IMPLICIT REAL*8 (A-H,O-Z)
- C
- COMMON /EL/ IND,ICOUNT,NPAR(20),NUMEG,NEGL,NEGNL,IMASS,IDAMP,ISTAT
- 1 ,NDOF,KLIN,IEIG,IMASSN,IDAMPN
- DIMENSION PROP(1),C(6,1)
- EQUIVALENCE (NPAR(15),MODEL)
- C
- C
- C M O D E L 1 LINEAR ELASTIC ( 3/D SHELL )
- C
- C
- 1 YM=PROP(1)
- PV=PROP(2)
- RKAPA=PROP(3)
- IF (MODEL.EQ.2) RKAPA=1.
- C
- B1=YM/(1. + PV)
- A1= B1/(1. - PV)
- C
- DO 9 I=1,6
- DO 9 J=I,6
- 9 C(I,J)=0.0
- DO 10 I=1,2
- 10 C(I,I)= A1
- C(1,2)= A1*PV
- DO 12 I=4,6
- 12 C(I,I)=B1/2.
- C(5,5) = C(5,5)*RKAPA
- C(6,6) = C(6,6)*RKAPA
- DO 13 I=1,6
- DO 13 J=I,6
- 13 C(J,I)=C(I,J)
- C
- RETURN
- END
- C *CDC* *DECK STSTSH
- C *UNI* )FOR,IS N.STSTSH, R.STSTSH
- SUBROUTINE STSTSH
- C
- C
- C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
- C . .
- C . S U B R O U T I N E .
- C . .
- C . TO FIND STRESSES FOR ALL MATERIAL MODELS AND .
- C . STRESS-STRAIN LAW FOR NONLINEAR MATERIAL MODELS .
- C . .
- C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
- C
- C
- IMPLICIT REAL*8 (A-H,O-Z)
- C
- COMMON /EL/ IND,ICOUNT,NPAR(20),NUMEG,NEGL,NEGNL,IMASS,IDAMP,ISTAT
- 1 ,NDOF,KLIN,IEIG,IMASSN,IDAMPN
- COMMON /SHELL1/ DISD(9),IELD,IELP,NPT,IDW,NDROT
- COMMON /SHELMT/ D(6,6),STRESS(6),STRAIN(6),IPT,NEL,IPS
- C
- DIMENSION DN(6)
- C
- EQUIVALENCE (NPAR(3),INDNL), (NPAR(15),MODEL)
- C
- C
- C D E F I N I T I O N O F S T R A I N
- C
- C
- C LINEAR STRAIN TERMS
- C
- STRAIN(1)=DISD(1)
- STRAIN(2)=DISD(2)
- STRAIN(3)=DISD(3)
- STRAIN(4)=DISD(4) + DISD(6)
- STRAIN(5)=DISD(5) + DISD(8)
- STRAIN(6)=DISD(7) + DISD(9)
- IF (INDNL.LE.1) GO TO 80
- C
- C NONLINEAR STRAIN TERMS
- C
- DN(1)=0.5*(DISD(1)*DISD(1)+DISD(6)*DISD(6)+DISD(8)*DISD(8))
- DN(2)=0.5*(DISD(4)*DISD(4)+DISD(2)*DISD(2)+DISD(9)*DISD(9))
- DN(3)=0.5*(DISD(5)*DISD(5)+DISD(7)*DISD(7)+DISD(3)*DISD(3))
- DN(4)= (DISD(1)*DISD(4)+DISD(6)*DISD(2)+DISD(8)*DISD(9))
- DN(5)= (DISD(1)*DISD(5)+DISD(6)*DISD(7)+DISD(8)*DISD(3))
- DN(6)= (DISD(4)*DISD(5)+DISD(2)*DISD(7)+DISD(9)*DISD(3))
- C
- IF(INDNL.EQ.3) GO TO 29
- C
- C CALCULATE GREEN-LAGRANGE STRAINS (TOTAL LAGRANGIAN FORMULATION)
- C
- DO 34 I=1,6
- 34 STRAIN(I)=STRAIN(I)+DN(I)
- GO TO 80
- C
- C CALCULATE ALMANSI STRAINS (UPDATED LAGRANGIAN FORMULATION)
- C
- 29 DO 44 I=1,6
- 44 STRAIN(I)=STRAIN(I)-DN(I)
- C
- C
- 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
- C M A T R I X A N D S T R E S S E S
- C
- C
- 80 GO TO (1,2,3,3) ,MODEL
- C
- C
- C.... MODEL = 1 L I N E A R M O D E L
- C
- 1 DO 100 I=1,6
- STRESS(I)=0.
- DO 100 J=1,6
- 100 STRESS(I)= STRESS(I) + D(I,J)*STRAIN(J)
- RETURN
- C
- C
- C.... MODEL = 2 E L A S T I C - P L A S T I C (VON MISES)
- C
- C *CDC* 2 CALL OVERLAY (5HADINA,10B,1B,6HRECALL)
- 2 CALL SHMAT2
- RETURN
- C
- C
- C... MODEL = 3,4 E M P T Y
- 3 RETURN
- C
- END
- C *CDC* *DECK OVL101
- C *CDC* OVERLAY (ADINA,10,1)
- C
- C *CDC* *DECK SHMAT2
- C *UNI* )FOR,IS N.SHMAT2, R.SHMAT2
- C
- C *CDC* PROGRAM SHMAT2
- C
- SUBROUTINE SHMAT2
- C
- C
- C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
- C . .
- C . P R O G R A M .
- C . .
- C . TO CALCULATE THE ELASTIC PLASTIC STRESSES .
- C . AND CONSTITUTIVE RELATION FOR ELASTIC-PLASTIC BEHAVIOR .
- C . FOR SHELL ELEMENT .
- C . .
- C . .
- C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
- C
- C
- IMPLICIT REAL*8 (A-H,O-Z)
- C
- COMMON /EL/ IND,ICOUNT,NPAR(20),NUMEG,NEGL,NEGNL,IMASS,IDAMP,
- 1 ISTAT,NDOF,KLIN,IEIG,IMASSN,IDAMPN
- COMMON /SHELL1/ DISD(9),IELD,IELP,NPT,IDW,NDROT
- COMMON /SHELL3/ N101,N102,N103,N104,N105,N106,N107,N108,N109,N110,
- 1 N111,N112,N113,N114,N120,N121,N122,N123,N124,N125
- COMMON /SHELMT/ D(6,6),STRESS(6),STRAIN(6),IPT,NEL,IPS
- COMMON /DPR/ ITWO
- COMMON A(1)
- REAL A
- DIMENSION IA(1)
- EQUIVALENCE (A(1),IA(1)),(NPAR(17),NCON)
- C
- C
- IDWW=IDW*ITWO
- MATP=IA(N106 + NEL - 1)
- NM=N112 + (MATP - 1)*NCON*ITWO
- NN=N113 + (NEL-1) * NPT * IDWW
- C
- IF (IND.NE.0) GO TO 100
- C
- C I N I T I A L I Z E W O R K I N G A R R A Y (WA)
- C
- CALL IELP7 (A(NN),A(NN),A(NM),NPT,IDWW)
- GO TO 599
- C
- C C A L C U L A T E S T R E S S E S A N D
- C S T R E S S - S T R A I N L A W
- C
- 100 NS=NN + (IPT-1) * IDWW
- CALL ELPAL7 (A(NM),A(NS),A(NS + 6*ITWO),A(NS + 12*ITWO),
- 1 A(NS + 13*ITWO),A(NS + 14*ITWO))
- 599 CONTINUE
- RETURN
- C
- END
- C *CDC* *DECK IELP7
- C *UNI* )FOR,IS N.IELP7, R.IELP7
- SUBROUTINE IELP7 (WA,IWA,PROP,NPT,IDWW)
- C
- C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
- C . .
- C . ROUTINE TO INITIALIZE THE WORKING ARRAY (WA) .
- C . .
- C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
- C
- IMPLICIT REAL*8 (A-H,O-Z)
- C
- COMMON /DPR/ ITWO
- DIMENSION WA(15,1),IWA(IDWW,1),PROP(1)
- C
- DO 25 J=1,NPT
- C
- DO 15 I=1,13
- WA(I,J)=0.
- 15 CONTINUE
- C
- WA(14,J)=(PROP(3)*PROP(3))/3.
- KJ=14*ITWO + 1
- IWA(KJ,J)=1
- C
- 25 CONTINUE
- C
- RETURN
- END
- C *CDC* *DECK ELPAL7
- C *UNI* )FOR,IS N.ELPAL7, R.ELPAL7
- C
- SUBROUTINE ELPAL7 (PROP,SIG,EPS,EPSTR,YIELD,IPEL)
- C
- C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
- C . .
- C . THIS SUBROUTINE CALCULATES THE STRESSES AND STRESS-STRAIN LAW .
- C . FOR THE FOLLOWING 3-DIM MATERIAL MODELS FOR GENERAL 3/D .
- C . SHELL ELEMENT
- C . .
- C . ELASTIC-PERFECTLY PLASTIC CAN BE HANDLED WITH EITHER MODEL .
- C . BY SETTING THE HARDENING MODULUS TO ZERO. .
- C . HOWEVER, IF THE CALCULATED STRESSES FALL BEYOND THE TOLERATED.
- C . VALUE, A CORRECTION WILL BE APPLIED .
- C . THE TOLERATED VALUE USED HERE IS THAT THE EQUIVALENT STRESS .
- C . SHOULD BE WITHIN ONE-HALF PERCENT OF THE YIELD STRESS IN .
- C . SIMPLE TENSION. .
- C . .
- C . .
- C . THE FOLLOWING VARIABLES ARE USED IN THIS SUBROUTINE - .
- C . .
- C . SIG PREVIOUS STRESSES .
- C . EPS PREVIOUS STRAINS .
- C . .
- C . STRESS CURRENT STRESSES (TO BE CALCULATED) .
- C . STRAIN CURRENT STRAINS (G I V E N) .
- C . EPSP CURRENT PLASTIC STRAINS (TO BE CALCULATED) .
- C . .
- C . FTA (CURRENT EQUIVALENT STRESS ** 2) / 3. .
- C . YIELD INITIALIZED TO (PROP(3)**2)/3. .
- C . UPDATED TO EQUAL FTA FOR ISOTROPIC HARDENING CASE .
- C . FTB = YIELD .
- C . .
- C . IPEL = 1, MATERIAL ELASTIC (INITIAL VALUE) .
- C . = 2, MATERIAL PLASTIC .
- C . .
- C . DEPS STRAIN INCREMENT FOR EACH STEP OF INTEGRATION .
- C . .
- C . DELEPS INCREMENTAL STRAINS .
- C DELSIG INCREMENTAL STRESSES, CALCULATED ON THE ASSUMPTION .
- C . OF ELASTIC BEHAVIOR DURING STRAIN INCREMENT (DELEPS) .
- C . .
- C . ICOR NO. OF TIMES CORRECTION IS APPLIED (APPLICABLE .
- C . ONLY FOR THE PERFECTLY PLASTIC CASE) .
- C . INTER NO. OF INCREMENT INTERVALS (MAX=25) .
- C . .
- C . PROP(1) YOUNGS MODULUS .
- C . PROP(2) POISSONS RATIO .
- C . PROP(3) INITIAL YIELD STRESS IN TENSION .
- C . .
- C . BILINEAR STRESS-STRAIN CURVE .
- C . .
- C . PROP(4) HARDENING MODULUS .
- C . .
- C . PIECEWISE-LINEAR STRESS-STRAIN CURVE .
- C . .
- C . PROP(3),PROP(4),...,PROP(NCON - 1),PROP(NCON) ARE THE .
- C . PAIRS OF STRESS, STRAIN VALUES DEFINING THE PLASTIC .
- C . PORTION OF THE STRESS-STRAIN CURVE (PROP(3) IS THE INITIAL .
- C . YIELD STRESS IN SIMPLE TENSION) .
- C . .
- C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
- C
- IMPLICIT REAL*8 (A-H,O-Z)
- C
- COMMON /EL/ IND,ICOUNT,NPAR(20),NUMEG,NEGL,NEGNL,IMASS,IDAMP,
- 1 ISTAT,NDOF,KLIN,IEIG,IMASSN,IDAMPN
- COMMON /VAR/ NG,MODEX,IUPDT,KSTEP,ITEMAX,IEQREF,ITE,KPRI,
- 1 IREF,IEQUIT,IPRI,KPLOTN,KPLOTE
- COMMON /SHELMT/ D(6,6),STRESS(6),STRAIN(6),IPT,NEL,IPS
- COMMON /SHELL5/ ISHAPE
- COMMON /VONMIS/ A1,B1,C1,D1,A3,A1I,B1I,C1I,BET,CEE,DEPS(6),
- 1 DEPSP(6),TEPS(6),HP,FTB,XCON1,XCON2
- COMMON /SHLMDS/ CC(36)
- C
- DIMENSION DELSIG(6),DELEPS(6),STATE(2),PROP(1),SIG(1),EPS(1)
- 1 ,DPE(36),SIGBAR(6)
- DIMENSION EPSP(6)
- C
- EQUIVALENCE (NPAR(3),INDNL)
- EQUIVALENCE (NPAR(5),ISTRES),(NPAR(17),NCON)
- C
- DATA STATE /2H E,2H*P/
- C
- C
- YIELDD=YIELD
- IPELD=IPEL
- EPSTRD=EPSTR
- ICOR=0
- INTER=0
- C
- DO 50 I=1,6
- 50 EPSP(I)=0.0
- C
- YM=PROP(1)
- PV=PROP(2)
- ET=PROP(4)
- ETOLD=ET
- C
- IF (IPT.NE.1) GO TO 80
- C
- XCON1=2.0/3.0
- XCON2=1.0/3.0
- C
- C CALCULATION OF ELASTIC MATERIAL CONSTANTS AT FIRST
- C INTEGRATION POINT
- C
- CALL MAT1(PROP,CC)
- A1=YM/(1.+PV)
- A3=A1
- 105 C1=A1/2.0
- A1=A1/(1.-2.*PV)
- B1=A1*PV
- A1=A1-B1
- D1=PV/(PV - 1.0)
- C
- A1I=1.0/YM
- B1I=-PV/YM
- C1I=1.0/C1
- C
- C
- 80 IF (NCON.GE.6) GO TO 90
- C
- C BILINEAR STRESS-STRAIN CURVE
- C
- IF (IPT.NE.1) GO TO 85
- C
- EET=YM*ET/(YM - ET)
- CEE=XCON1*EET
- HP=(A3*A3)/(CEE + A3)/2.
- FTB=YIELDD
- BET=HP/YIELDD
- GO TO 115
- C
- 85 IF (ET.EQ.0.0) GO TO 115
- FTB=YIELDD
- BET=HP/YIELDD
- GO TO 115
- C
- C PIECEWISE-LINEAR STRESS-STRAIN CURVE
- C
- 90 CALL HARDMS (PROP,EPSTRD,EET)
- CEE=XCON1*EET
- HP=(A3*A3)/(CEE + A3)/2.
- FTB=YIELDD
- BET=HP/YIELDD
- C
- C DETERMINE THE STATE OF STRESS
- C
- C 1. CALCULATE INCREMENTAL TOTAL STRAINS AND
- C CURRENT PLASTIC STRAINS (W.R.T. TO LOCAL AXES)
- C
- 115 CALL SIGROT (STRAIN,1,2)
- DO 120 I=1,6
- 120 DELEPS(I)=STRAIN(I) - EPS(I)
- C
- EPSP(1)=EPS(1) - (A1I*SIG(1) + B1I*(SIG(2) + SIG(3)))
- EPSP(2)=EPS(2) - (A1I*SIG(2) + B1I*(SIG(1) + SIG(3)))
- EPSP(3)=EPS(3) - (A1I*SIG(3) + B1I*(SIG(1) + SIG(2)))
- EPSP(4)=EPS(4) - C1I*SIG(4)
- EPSP(5)=EPS(5) - C1I*SIG(5)
- EPSP(6)=EPS(6) - C1I*SIG(6)
- C
- C 2. CALCULATE INCREMENTAL STRESSES,
- C ASSUMING ELASTIC BEHAVIOR
- C
- DO 125 I=1,6
- II=6*(I - 1)
- TEMP=0.
- DO 127 K=1,6
- 127 TEMP=TEMP + CC(II + K)*DELEPS(K)
- 125 DELSIG(I)=TEMP
- C
- C 3. WITH THE ASSUMPTION OF ELASTIC BEHAVIOR DURING
- C THIS INCREMENT, DETERMINE WHERE THE NEW STATE OF
- C STRESS FALLS IN THE STRESS SPACE
- C
- DM=(DELSIG(1)+DELSIG(2)+DELSIG(3))/3.
- DX=DELSIG(1) - DM
- DY=DELSIG(2) - DM
- DZ=DELSIG(3) - DM
- C
- SM=(SIG(1)+SIG(2)+SIG(3))/3.
- SXX=SIG(1) - SM
- SYY=SIG(2) - SM
- SZZ=SIG(3) - SM
- SXY=SIG(4)
- SXZ=SIG(5)
- SYZ=SIG(6)
- C
- RA=.5 * (DX**2 + DY**2 + DZ**2) + DELSIG(4)**2 + DELSIG(5)**2
- 1 + DELSIG(6)**2
- RB=SXX*DX + SYY*DY +SZZ*DZ +
- 1 2. * (SXY*DELSIG(4) + SXZ*DELSIG(5) + SYZ*DELSIG(6))
- C
- RD=FTB
- IF (IPELD.EQ.2) GO TO 160
- RD=.5*(SXX**2 + SYY**2 + SZZ**2) + SXY**2 + SXZ**2 + SYZ**2
- C
- 160 FTA=RA + RB + RD
- C
- C RA = 0 IMPLIES PURE HYDROSTATIC LOADING (IPELD STAYS CONSTANT)
- C
- IF (RA .EQ. 0.0) GO TO 175
- IF (FTA-FTB) 170,170,300
- C
- C ... WITH THE ASSUMPTION OF ELASTIC BEHAVIOR, STATE OF STRESS FALLS
- C WITHIN OR ON THE (CURRENT) YIELD SURFACE - E L A S T I C
- C
- 170 IPELD=1
- 175 DO 176 I=1,6
- STRESS(I)=SIG(I) + DELSIG(I)
- 176 SIGBAR(I)=STRESS(I)
- C
- STRAIN(3)=EPS(3) + D1*(DELEPS(1) + DELEPS(2))
- CALL SIGROT (STRESS,2,1)
- GO TO 600
- C
- C ... WITH THE ASSUMPTION OF ELASTIC BEHAVIOR, STATE OF STRESS FALLS
- C OUTSIDE THE (CURRENT) YIELD SURFACE - P L A S T I C
- C
- 300 IPELD=2
- C
- C ... CALCULATION OF PART OF STRAIN TAKEN ELASTICALLY (RATIO) ....
- C
- RC=RD - FTB
- RATIO= (-RB + DSQRT(RB**2 - 4.*RA*RC)) / (2.*RA)
- DO 320 I=1,6
- 320 STRESS(I)=SIG(I) + RATIO*DELSIG(I)
- C
- STRAIN(3)=EPS(3) + RATIO*D1*(DELEPS(1) + DELEPS(2))
- C
- INTER = 20. * ( DSQRT(FTA/FTB) - 1. ) + 1.
- IF (INTER.GT.25) INTER=25
- XM=(1. - RATIO) / DBLE(FLOAT(INTER))
- DO 380 I=1,6
- 380 DEPS(I)=XM * DELEPS(I)
- C
- C ..... CALCULATION OF ELASTIC-PLASTIC STRESSES .....(START).....
- C
- DO 550 IN=1,INTER
- C
- C
- CALL DEPSH (DPE,0)
- C
- DO 420 I=1,6
- J=6*(I-1)
- TEMP=0.
- DO 422 K=1,6
- 422 TEMP=TEMP + DPE(J+K)*DEPS(K)
- 420 STRESS(I)=STRESS(I) + TEMP
- C
- C
- C UPDATE PLASTIC STRAINS (W.R.T. LOCAL AXES) AND ACCUMULATED
- C EFFECTIVE PLASTIC STRAIN
- C
- DO 425 I=1,6
- 425 EPSP(I)=EPSP(I) + DEPSP(I)
- C
- DEPSTR=DSQRT(XCON1*(DEPSP(1)*DEPSP(1) + DEPSP(2)*DEPSP(2) +
- 1 DEPSP(3)*DEPSP(3)) + XCON2*(DEPSP(4)*DEPSP(4) +
- 2 DEPSP(5)*DEPSP(5) + DEPSP(6)*DEPSP(6)))
- C
- EPSTRD=EPSTRD + DEPSTR
- C
- SM=(STRESS(1)+STRESS(2)+STRESS(3))/3.
- SX=STRESS(1) - SM
- SY=STRESS(2) - SM
- SZ=STRESS(3) - SM
- FTA=.5 * (SX**2 + SY**2 + SZ**2) +
- 1 STRESS(4)**2 + STRESS(5)**2 + STRESS(6)**2
- C
- IF (ET.NE.0.0) GO TO 500
- C
- C PERFECTLY PLASTIC MATERIAL - APPLY CORRECTION (IF NECESSARY)
- C
- 480 FTR=DSQRT(FTA/FTB)
- ICOR=ICOR + 1
- COEF=1./FTR
- STRESS(1)=STRESS(1)*COEF
- STRESS(2)=STRESS(2)*COEF
- STRESS(3)=STRESS(3)*COEF
- STRESS(4)=STRESS(4)*COEF
- STRESS(5)=STRESS(5)*COEF
- STRESS(6)=STRESS(6)*COEF
- STRAIN(3)=STRAIN(3) + (COEF-1.0)*SM*3.0*(1.0-2.0*PV)/YM
- C
- C UPDATE HARDENING MODULUS
- C
- 500 IF (NCON.GE.6) GO TO 510
- C
- C BILINEAR STRESS-STRAIN CURVE
- C
- IF (ET.NE.0.0) BET=HP/FTA
- GO TO 550
- C
- C PIECEWISE-LINEAR STRESS-STRAIN CURVE
- C
- 510 ETOLD=ET
- CALL HARDMS (PROP,EPSTRD,ET)
- EET=YM*ET/(YM - ET)
- CEE=XCON1*EET
- HP=(A3*A3)/(CEE + A3)/2.
- BET=HP/FTA
- IF (ETOLD.EQ.0.0) BET=HP/FTB
- IF (ETOLD.NE.0.0 .AND. ET.EQ.0.0) FTB=FTA
- C
- 550 CONTINUE
- C
- DO 525 I=1,6
- 525 SIGBAR(I)=STRESS(I)
- CALL SIGROT (STRESS,2,1)
- C
- C ..... CALCULATION OF ELASTIC-PLASTIC STRESSES .....(E N D).....
- C
- C U P D A T I N G
- C
- IF (ETOLD.NE.0.0) YIELDD=FTA
- IF (NCON.GE.6 .AND. ETOLD.EQ.0.0) YIELDD=FTB
- C
- 600 IF (IUPDT.NE.0) GO TO 615
- YIELD=YIELDD
- EPSTR=EPSTRD
- IPEL=IPELD
- DO 610 I=1,6
- SIG(I)=SIGBAR(I)
- 610 EPS(I)=STRAIN(I)
- C
- 615 IF (KPRI.EQ.0) GO TO 650
- IF (ICOUNT.EQ.3) RETURN
- C
- C ... CALCULATION OF STRESS STRAIN LAW
- C
- IF (IPELD.LT.2) RETURN
- C
- DO 620 I=1,6
- DELSIG(I)=STRESS(I)
- 620 STRESS(I)=SIGBAR(I)
- C
- CALL DEPSH (DPE,1)
- DO 625 I=1,6
- DO 625 J=1,6
- IJ=(I-1)*6 + J
- 625 D(I,J)=DPE(IJ)
- C
- DO 630 I=1,6
- 630 STRESS(I)=DELSIG(I)
- RETURN
- C
- C PRINTING OF STRESSES AND STRAINS
- C
- 650 SM=(STRESS(1) + STRESS(2) + STRESS(3))/3.0
- SX=STRESS(1) - SM
- SY=STRESS(2) - SM
- SZ=STRESS(3) - SM
- FTA=.5 * (SX**2 + SY**2 + SZ**2) +
- 1 STRESS(4)**2 + STRESS(5)**2 + STRESS(6)**2
- C
- FT=DSQRT(3.*FTA)
- YIELDD=DSQRT(3.0*YIELDD)
- C
- IF (ISTRES.EQ.0) GO TO 790
- DO 710 I=1,6
- 710 STRESS(I)=SIGBAR(I)
- GO TO 800
- C
- 790 CALL SIGROT (STRAIN,2,2)
- CALL SIGROT (EPSP,2,2)
- IF (INDNL.NE.2) GO TO 800
- C
- C IN TOTAL LAGRANGIAN FORMULATION CALCULATE CAUCHY STRESSES
- C
- CALL CAUSHL
- C
- 800 IF (IPRI.NE.0) RETURN
- IF (IPS.LT.0) GO TO 850
- C
- C STRESS PRINTOUT ONLY
- C
- IF (IPT.GT.1) GO TO 820
- C
- C PRINT HEADING
- C
- WRITE (6,2000)
- C
- C PRINT ELEMENT NUMBER
- C
- IF (ISHAPE.EQ.0) WRITE (6,2005) NEL
- IF (ISHAPE.EQ.1) WRITE (6,2006) NEL
- C
- C PRINT INTEGRATION POINT STRESSES
- C
- 820 WRITE (6,2100) IPT,STATE(IPELD),(STRESS(J),J=1,6),INTER,ICOR
- WRITE (6,2200) FT,YIELDD,EPSTRD
- C
- RETURN
- C
- C STRESS AND STRAIN PRINTOUT
- C
- 850 IF (IPT.GT.1) GO TO 870
- C
- C PRINT HEADING
- C
- WRITE (6,2000)
- C
- C PRINT ELEMENT NUMBER
- C
- IF (ISHAPE.EQ.0) WRITE (6,2005) NEL
- IF (ISHAPE.EQ.1) WRITE (6,2006) NEL
- C
- C PRINT INTEGRATION POINT STRESSES AND STRAINS
- C
- 870 WRITE (6,2100) IPT,STATE(IPELD),(STRESS(J),J=1,6),INTER,ICOR
- WRITE (6,2400) (STRAIN(J),J=1,6)
- WRITE (6,2500) (EPSP(J),J=1,6)
- WRITE (6,2200) FT,YIELDD,EPSTRD
- C
- RETURN
- C
- 2000 FORMAT (1X,7HELEMENT,2X,6HSTRESS,4X,13HSTRESS/STRAIN,8X,2HXX,
- 1 13X,2HYY,13X,2HZZ,13X,2HXY,13X,2HXZ,13X,2HYZ,7X,3HINT,
- 2 1X,3HICR,/,1X,7HNUM/IPT,3X,5HSTATE,4X,10HCOMPONENTS)
- 2005 FORMAT (/,1X,I3)
- 2006 FORMAT (/,1X,I3,1X,10H(TRIANGLE))
- 2100 FORMAT (6X,I2,2X,A2,6HLASTIC,2X,6HSTRESS,9X,6(E14.6,1X),
- 1 I3,3X,I3)
- 2200 FORMAT (20X,19HEFFECTIVE STRESS = ,E14.6,2X,
- 1 15HYIELD STRESS = ,E14.6,
- 2 1X,29HACCUM. EFF. PLASTIC STRAIN = ,E14.6,/)
- 2400 FORMAT (20X,12HSTRAIN-TOTAL,3X,6(E14.6,1X))
- 2500 FORMAT (25X,7HPLASTIC,3X,6(E14.6,1X))
- C
- END
- C *CDC* *DECK DEPSH
- C *UNI* )FOR,IS N.DEPSH, R.DEPSH
- C
- SUBROUTINE DEPSH (DPE,ILOCAL)
- C
- C
- C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
- C . .
- C . ROUTINE TO CALCULATE THE ELASTIC-PLASTIC MATERIAL LAW .
- C . .
- C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
- C
- IMPLICIT REAL*8 (A-H,O-Z)
- C
- COMMON /SHELMT/ D(6,6),STRESS(6),STRAIN(6),IPT,NEL,IPS
- COMMON /VONMIS/ A1,B1,C1,D1,A3,A1I,B1I,C1I,BET,CEE,DEPS(6),
- 1 DEPSP(6),TEPS(6),HP,FTB,XCON1,XCON2
- C
- DIMENSION DPE(1),DP(36),IPM(5),IPERM(5)
- C
- DATA IPM /13,14,16,17,18/, IPERM/0,6,18,24,30/
- C
- SM=(STRESS(1)+STRESS(2)+STRESS(3))/3.
- SXX=STRESS(1) - SM
- SYY=STRESS(2) - SM
- SZZ=STRESS(3) - SM
- SXY=STRESS(4)
- SXZ=STRESS(5)
- SYZ=STRESS(6)
- C
- BETA=BET*SZZ
- DP1=B1 - BETA*SXX
- DP2=B1 - BETA*SYY
- DP3=A1 - BETA*SZZ
- DP4= - BETA*SXY
- DP5= - BETA*SXZ
- DP6= - BETA*SYZ
- C
- DEPS(3)=(-DP1*DEPS(1) - DP2*DEPS(2) - DP4*DEPS(4) - DP5*DEPS(5) -
- 1 DP6*DEPS(6))/DP3
- C
- WP=SXX*DEPS(1) + SYY*DEPS(2) + SZZ*DEPS(3) +
- 1 SXY*DEPS(4) + SXZ*DEPS(5) + SYZ*DEPS(6)
- BETT=BET
- C
- IF (WP .LT. 0.0) BETT=0.
- C
- C CALCULATE PLASTIC STRAIN INCREMENTS (W.R.T. LOCAL AXES)
- C
- XLAMDA=(BETT/(2.*C1))*WP
- DEPSP(1)=XLAMDA*SXX
- DEPSP(2)=XLAMDA*SYY
- DEPSP(3)=XLAMDA*SZZ
- DEPSP(4)=2.0*XLAMDA*SXY
- DEPSP(5)=2.0*XLAMDA*SXZ
- DEPSP(6)=2.0*XLAMDA*SYZ
- C
- C
- BETA=BETT*SXX
- DP( 1)=A1 - BETA*SXX
- DP( 2)=B1 - BETA*SYY
- DP( 3)=B1 - BETA*SZZ
- DP( 4)= - BETA*SXY
- DP( 5)= - BETA*SXZ
- DP( 6)= - BETA*SYZ
- C
- BETA=BETT*SYY
- DP( 7)=DP( 2)
- DP( 8)=A1 - BETA*SYY
- DP( 9)=B1 - BETA*SZZ
- DP(10)= - BETA*SXY
- DP(11)= - BETA*SXZ
- DP(12)= - BETA*SYZ
- C
- BETA=BETT*SZZ
- DP(13)=DP( 3)
- DP(14)=DP( 9)
- DP(15)=A1 - BETA*SZZ
- DP(16)= - BETA*SXY
- DP(17)= - BETA*SXZ
- DP(18)= - BETA*SYZ
- C
- BETA=BETT*SXY
- DP(19)=DP( 4)
- DP(20)=DP(10)
- DP(21)=DP(16)
- DP(22)=C1 - BETA*SXY
- DP(23)= - BETA*SXZ
- DP(24)= - BETA*SYZ
- C
- BETA=BETT*SXZ
- DP(25)=DP( 5)
- DP(26)=DP(11)
- DP(27)=DP(17)
- DP(28)=DP(23)
- DP(29)=C1 - BETA*SXZ
- DP(30)= - BETA*SYZ
- C
- BETA=BETT*SYZ
- DP(31)=DP( 6)
- DP(32)=DP(12)
- DP(33)=DP(18)
- DP(34)=DP(24)
- DP(35)=DP(30)
- DP(36)=C1 - BETA*SYZ
- C
- C
- C ELIMINATE THE NORMAL STRESS TO THE MID-SURFACE
- C BY USING THE GAUSSIAN ELIMINATION
- C
- DO 100 I=1,5
- II=IPM(I)
- PIVOT=DP(II)/DP(15)
- DO 100 K=1,5
- JJ=IPERM(K) + 3
- KK=JJ + II - 15
- 100 DP(KK)=DP(KK) - DP(JJ)*PIVOT
- C
- DO 110 J=1,6
- L=6*(J - 1) + 3
- DP(J+12)=0.
- 110 DP(L)=0.
- DO 120 I=1,36
- 120 DPE(I)=DP(I)
- C
- IF (WP.LT.0.0) DEPS(3)=D1*(DEPS(1) + DEPS(2))
- STRAIN(3)=STRAIN(3) + DEPS(3)
- IF (ILOCAL.EQ.0) RETURN
- C
- C EVALUATE THE MATERIAL LAW IN THE GLOBAL COORDINATE
- C
- CALL MATROT (DP,DPE,2)
- C
- RETURN
- END
- C *CDC* *DECK HARDMS
- C *UNI* )FOR,IS N.HARDMS, R.HARDMS
- C
- SUBROUTINE HARDMS (PROP,EPSTR,ET)
- C
- C
- C
- C THIS SUBROUTINE CALCULATES THE SLOPE OF THE UNIAXIAL
- C STRESS-STRAIN CURVE CORRESPONDING TO A GIVEN VALUE
- C OF ACCUMULATED EFFECTIVE PLASTIC STRAIN
- C
- C
- C
- C NPR = NUMBER OF PAIRS OF STRESS-STRAIN VALUES DEFINING THE
- C PLASTIC PORTION OF THE STRESS-STRAIN CURVE
- C NSEG = NUMBER OF SEGMENTS IN THE PLASTIC PORTION OF THE CURVE
- C
- C
- C
- IMPLICIT REAL*8 (A-H,O-Z)
- C
- COMMON /EL/ IND,ICOUNT,NPAR(20),NUMEG,NEGL,NEGNL,IMASS,IDAMP,
- 1 ISTAT,NDOF,KLIN,IEIG,IMASSN,IDAMPN
- DIMENSION PROP(1)
- EQUIVALENCE (NPAR(17),NCON)
- C
- C
- YM=PROP(1)
- NPR=(NCON - 2)/2
- NSEG=NPR - 1
- C
- KK=6
- DO 10 J=1,NSEG
- TEPSTR=PROP(KK) - (PROP(KK - 1)/YM)
- IF (EPSTR.LT.TEPSTR) GO TO 20
- 10 KK=KK + 2
- C
- WRITE (6,2000)
- STOP
- C
- C CALCULATE THE HARDENING MODULUS
- C
- 20 ET=(PROP(KK - 1) - PROP(KK - 3))/(PROP(KK) - PROP(KK - 2))
- C
- RETURN
- C
- 2000 FORMAT (126H ERROR ACCUMULATED EFFECTIVE PLASTIC STRAIN IS OUT
- 1SIDE THE RANGE OF THE UNIAXIAL STRESS-STRAIN CURVE (SUBROUTINE H
- 2ARDMS))
- C
- END
- C *CDC* *DECK OVL130
- C *CDC* OVERLAY (ADINA,13,0)
- C *CDC* *DECK EMPTY
- C *UNI* )FOR,IS N.EMPTY,R.EMPTY
- C *CDC* PROGRAM EMPTY
- SUBROUTINE EMPTY
- IMPLICIT REAL*8 (A-H,O-Z)
- C
- C
- C
- RETURN
- END
- C *CDC* *DECK OVL140
- C *CDC* OVERLAY (ADINA,14,0)
- C *CDC* *DECK TODMFL
- C *UNI* )FOR,IS N.TODMFL, R.TODMFL
- C *CDC* PROGRAM TODMFL
- SUBROUTINE TODMFL
- C
- C
- C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
- C . .
- C . F L U I D M O D E L S .
- C . .
- C . MODEL = 1 INVISCID COMPRESSIBLE CONSTANT BULK MODULUS .
- C . 2 INVISCID COMPRESSIBLE PRESSURE DEPENDENT BULK MODULUS.
- C . .
- C . S T O R A G E .
- C . .
- C . N101 LM ARRAY (ELEMENT CONNECTIVITY) .
- C . N102 YZ ARRAY (ELEMENT COORDINATES) .
- C . .
- C . N103 IELT .
- C . N104 IPST .
- C . N105 MATP .
- C . .
- C . N106 DEN .
- C . N107 PROP (MATERIAL CONSTANTS) .
- C . N108 WA (WORKING ARRAY) .
- C . N109 NOD5 (MIDSIDE NODES LOCATION ARRAY) .
- C . N110 ETIMV (ELEMENT EXPIRY TIME ARRAY, IF IDEATH.EQ.1) .
- C . N111 EDISB (ELEMENT BIRTHTIME NODAL COORDINATES) .
- C . N112 ISKEW (SKEW COORDINATES FLAG) .
- C . N113 ISO (ELEMENT DEGENERATED FLAG) .
- C . .
- C . NLAST LAST ADDRESS REQUIRED .
- C . .
- C . .
- C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
- C
- C
- C
- IMPLICIT REAL*8 (A-H,O-Z)
- COMMON /SOL/ NUMNP,NEQ,NWK,NWM,NWC,NUMEST,MIDEST,MAXEST,NSTE,MA
- COMMON /DIM/ N0,N1,N2,N3,N4,N5,N6,N7,N8,N9,N10,N11,N12,N13,N14,N15
- COMMON /DIMETC/ N01,N02,N03,N04,N05,N06,N07,N08,N09
- COMMON /FREQIF/ ISTOH,N1A,N1B,N1C
- COMMON /DIMEL/ N101,N102,N103,N104,N105,N106,N107,N108,N109,N110,
- 1 N111,N112,N113,N114,N120,N121,N122,N123,N124,N125
- COMMON /EL/ IND,ICOUNT,NPAR(20),NUMEG,NEGL,NEGNL,IMASS,IDAMP,ISTAT
- 1 ,NDOF,KLIN,IEIG,IMASSN,IDAMPN
- COMMON /VAR/ NG,MODEX,IUPDT,KSTEP,ITEMAX,IEQREF,ITE,KPRI,
- 1 IREF,IEQUIT,IPRI,KPLOTN,KPLOTE
- COMMON /ELSTP / TIME,IDTHF
- COMMON /PRCON/ IDATWR,IPRIC,NPB,IDC,IVC,IAC,IPC,IPNODE(3,15)
- COMMON /PORT/ INPORT,JNPORT,NPUTSV,LUNODE,LU1,LU2,LU3,JDC,JVC,JAC
- COMMON /DPR/ ITWO
- COMMON /ELGLTH/ NFIRST,NLAST,NBCEL
- COMMON /SKEW/ NSKEWS
- COMMON /ISUBST/ ISUBC,NSUBST,NSUB,NTUSE,NEGLS,NEGNLS,NUMNPS,
- 1 NODCON,NODRET,IDOFS(6),NDOFS,NEQS,NWKS,MAXESC,
- 2 MAS,NSTAPE,ILOA(13),KRSIZM,NEQC
- C
- COMMON A(1)
- REAL A
- DIMENSION IA(1)
- EQUIVALENCE (A(1),IA(1))
- C
- DIMENSION NMCON(6),IDWAS(6),NDWS(6),INPAR(20)
- C
- EQUIVALENCE (NPAR(1),NPAR1),(NPAR(2),NUME),(NPAR(3),INDNL),
- 1 (NPAR(4),IDEATH),(NPAR(5),ITYP2D),(NPAR(6),NEGSKS),
- 2 (NPAR(7),MXNODS),(NPAR(10),NINT),(NPAR(13),NTABLE),
- 3 (NPAR(15),MODEL),(NPAR(16),NUMMAT),(NPAR(17),NCON),
- 4 (NPAR(20),IDW),(NPAR(8),IDEGEN)
- C
- DATA RECLB1 /8HTYPE-2 /
- C
- DATA NMCON /1, 0, 4*0/,
- 1 IDWAS /0, 0, 4*0/,
- 2 NDWS /0, 0, 4*0/
- C
- C
- C
- IF (IND.NE.0) GO TO 100
- DO 5 I=1,20
- 5 INPAR(I)=NPAR(I)
- C
- C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
- C . I N P U T P H A S E .
- C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
- C
- C CHECK ON RANGE AND SET DEFAULTS FOR NPAR VECTOR
- C
- ISTOP=0
- MODMAX=6
- C
- IF (NUME.GT.0) GO TO 10
- ISTOP=ISTOP+1
- IF (ISTOP.EQ.1) WRITE (6,2100) NG
- ISUB=2
- IRANGE=1
- WRITE (6,2400) ISTOP,ISUB,IRANGE,ISUB,NPAR(ISUB)
- C
- 10 IF (INDNL.GE.0 .AND. INDNL.LE.1) GO TO 15
- ISTOP=ISTOP+1
- IF (ISTOP.EQ.1) WRITE (6,2100) NG
- ISUB=3
- WRITE (6,2200) ISTOP,ISUB,ISUB,NPAR(ISUB)
- INMIN=0
- INMAX=1
- WRITE (6,2250) ISUB,INMIN,INMAX
- C
- 15 IF (IDEATH.NE.0) IDTHF=1
- IF (IDEATH.GE.0 .AND. IDEATH.LE.2) GO TO 25
- ISTOP=ISTOP+1
- IF (ISTOP.EQ.1) WRITE (6,2100) NG
- ISUB=4
- WRITE (6,2200) ISTOP,ISUB,ISUB,NPAR(ISUB)
- INMIN=0
- INMAX=2
- WRITE (6,2250) ISUB,INMIN,INMAX
- C
- 25 IF (MXNODS.LE.0) MXNODS=8
- IF (MXNODS.LE.8) GO TO 28
- ISTOP=ISTOP+1
- IF (ISTOP.EQ.1) WRITE (6,2100) NG
- ISUB=7
- IRANGE=8
- WRITE (6,2300) ISTOP,ISUB,IRANGE,ISUB,NPAR(ISUB)
- C
- 28 IF (IDEGEN.GE.0 .AND. IDEGEN.LE.1) GO TO 30
- ISTOP=ISTOP+1
- IF (ISTOP.EQ.1) WRITE (6,2100) NG
- ISUB=8
- WRITE (6,2200) ISTOP,ISUB,ISUB,NPAR(ISUB)
- INMIN=0
- INMAX=1
- WRITE (6,2250) ISUB,INMIN,INMAX
- C
- 30 IF (NINT.LE.0) NINT=2
- IF (NINT.LE.4) GO TO 32
- ISTOP=ISTOP+1
- IF (ISTOP.EQ.1) WRITE (6,2100) NG
- ISUB=10
- IRANGE=4
- WRITE (6,2300) ISTOP,ISUB,IRANGE,ISUB,NPAR(ISUB)
- C
- 32 IF (ITYP2D.GE.0 .AND. ITYP2D.LT.2) GO TO 35
- ISTOP=ISTOP+1
- IF (ISTOP.EQ.1) WRITE (6,2100) NG
- ISUB=5
- IRANGE=3
- WRITE (6,2300) ISTOP,ISUB,IRANGE,ISUB,NPAR(ISUB)
- C
- 35 IF (MODEL.LE.0) MODEL=1
- IF (MODEL.LE.MODMAX) GO TO 40
- ISTOP=ISTOP+1
- IF (ISTOP.EQ.1) WRITE (6,2100) NG
- ISUB=15
- WRITE (6,2300) ISTOP,ISUB,MODMAX,ISUB,NPAR(ISUB)
- C
- 40 IF (NUMMAT.LE.0) NUMMAT=1
- C
- IF (MODEL.GT.2) GO TO 45
- C
- NCON=NMCON(MODEL)
- IDW=IDWAS(MODEL)
- GO TO 50
- C
- C EMPTY MODEL - STOP IMMEDIATELY
- C
- 45 ISTOP=ISTOP+1
- IF (ISTOP.EQ.1) WRITE (6,2100) NG
- WRITE (6,2450) MODEL
- WRITE (6,2700) ISTOP
- STOP
- C
- C
- C CHECK ON COMPATIBILITY BETWEEN ELEMENTS OF NPAR
- C
- C 1. COMPATIBILITY OF INDNL AND IDEATH
- C
- 50 ISUB=3
- IF (INDNL.GT.0) GO TO 55
- IF (IDEATH.EQ.0) GO TO 54
- ISTOP=ISTOP+1
- IF (ISTOP.EQ.1) WRITE (6,2100) NG
- ISUD=4
- WRITE (6,2500) ISTOP,ISUB,NPAR(ISUB),ISUD,NPAR(ISUD)
- C
- C
- C 2. COMPATIBILITY OF INDNL AND MODEL
- C
- C INDNL = 0
- C
- 54 IF (MODEL.EQ.1) GO TO 60
- ISTOP=ISTOP+1
- IF (ISTOP.EQ.1) WRITE (6,2100) NG
- ISUD=15
- WRITE (6,2500) ISTOP,ISUB,NPAR(ISUB),ISUD,NPAR(ISUD)
- GO TO 60
- C
- C INDNL = 1 ALLOW CONSTANT BULK MODULUS MODEL ONLY
- C
- 55 IF (MODEL.EQ.1) GO TO 60
- ISTOP=ISTOP+1
- IF (ISTOP.EQ.1) WRITE (6,2100) NG
- ISUD=15
- WRITE (6,2500) ISTOP,ISUB,NPAR(ISUB),ISUD,NPAR(ISUD)
- C
- C 3. COMPATIBILITY OF NEGSKS AND NSKEWS
- C
- 60 IF (NEGSKS.EQ.0) GO TO 65
- IF (NSKEWS.GT.0) GO TO 65
- ISUB=6
- ISTOP=ISTOP+1
- IF (ISTOP.EQ.1) WRITE (6,2100) NG
- WRITE (6,2550) ISTOP,NSKEWS,ISUB,NPAR(ISUB)
- C
- C
- C
- 65 IF (ISTOP.EQ.0) GO TO 75
- WRITE (6,2700) ISTOP
- WRITE (6,2800) (I,I=1,8),INPAR
- GO TO 80
- C
- 75 IF (IDATWR.GT.1) GO TO 90
- C
- C PRINT OUT NPAR VECTOR
- C
- 80 WRITE (6,2900) NPAR1
- WRITE (6,2905) NUME,INDNL,IDEATH
- WRITE (6,2910) ITYP2D
- WRITE (6,2920) NEGSKS,MXNODS
- WRITE (6,2930) IDEGEN,NINT
- WRITE (6,2940) MODEL
- WRITE (6,2960) NUMMAT,NCON,IDW
- C
- 90 IF (ISTOP.EQ.0) GO TO 95
- IF (MODEX.EQ.0) GO TO 95
- WRITE (6,2750)
- STOP
- C
- C
- C*** DATA PORTHOLE *************************** (START)
- C
- 95 IF (JNPORT.EQ.0 .OR. NPUTSV.EQ.0) GO TO 100
- RECLAB=RECLB1
- WRITE (LU2) RECLAB,NG,(NPAR(I),I=1,20),NSUB
- C
- C*** DATA PORTHOLE *************************** ( END )
- C
- C
- C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
- C . E N D O F C H E C K O N N P A R V E C T O R .
- C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
- C
- C
- C
- C
- C
- 100 NDM=2*MXNODS
- ND5DIM=MXNODS - 4
- NDW=NDWS(MODEL)
- IDWA=IDW*NINT*NINT
- C
- C STORAGE ALLOCATION
- C
- NFIRST=N6
- IF (IND.EQ.4) NFIRST=N10
- N101=NFIRST + 20
- N102=N101 + NDM*NUME
- N103=N102 + NDM*NUME*ITWO
- C
- N104=N103 + NUME
- N105=N104 + NUME
- N106=N105 + NUME
- C
- N107=N106 + NUMMAT*ITWO
- N108=N107 + NCON*NUMMAT*ITWO
- N109=N108 + IDWA*NUME*ITWO + (NDW*MXNODS*NUME)
- N110=N109 + ND5DIM*NUME
- MM=0
- IF (IDEATH.GT.0) MM=1
- N111=N110 + MM*NUME*ITWO
- MM=0
- IF (IDEATH.EQ.1) MM=1
- N112=N111 + MM*NUME*NDM*ITWO
- MM=0
- IF (NEGSKS.GT.0) MM=1
- N113=N112 + MM*NUME*MXNODS
- NLAST=N113 - 1
- IF (IDEGEN.GT.0) NLAST=N113 + NUME - 1
- C
- IF (IND.NE.0) GO TO 105
- J=NFIRST-1
- DO 102 I=1,20
- J=J+1
- 102 IA(J)=NPAR(I)
- C
- MIDEST=(NLAST-NFIRST)+1
- IF (IDATWR.LE.1) WRITE (6,2000) NG,MIDEST
- CALL SIZE (NLAST)
- C
- 105 IF (IND.GT.3) GO TO 110
- M2=N2
- M3=N3
- M4=N4
- GO TO 120
- 110 M2=N2
- M3=N2
- M4=N7
- IF (ICOUNT.LT.3) GO TO 120
- M3=N6
- C
- 120 CALL TDFEF (A(N06),A(N1A),A(N1),A(M2),A(M3),A(M4),A(N5),A(N101),
- 1 A(N102),A(N103),A(N104),A(N105),A(N106),A(N107),A(N108),
- 2 A(N109),A(N110),A(N111),A(N112),A(N113),
- 3 NTABLE,NCON,IDWA,NDM,ND5DIM,NDOF,MXNODS)
- C
- RETURN
- C
- C
- 2000 FORMAT (///38H S T O R A G E I N F O R M A T I O N/
- 1 //49H LENGTH OF ARRAY NEEDED FOR STORING ELEMENT GROUP/
- 2 12H DATA (GROUP,I3,26H). . . . . . . . . . . . .,
- 4 15H( MIDEST ). . =,I5//)
- C
- 2100 FORMAT (////28H *** I N P U T E R R O R -//
- 1 61H ERROR IN ELEMENT GROUP CONTROL CARDS (2-DIM FLUID ELEMENTS)/
- 2 16H ELEMENT GROUP =, I5/)
- 2200 FORMAT (I5,7H. NPAR(,I2,27H) IS OUT OF RANGE ... NPAR(,I2,
- 1 3H) =,I5)
- 2250 FORMAT (6X,8H ( NPAR(,I2,15H) SHOULD BE LE.,I1,8H AND GE.,I1,2H ))
- 2300 FORMAT (I5,7H. NPAR(,I2,16H) SHOULD BE .LE., I2,10H ... NPAR(,I2,
- 1 3H) =,I5)
- 2400 FORMAT (I5,7H. NPAR(,I2,16H) SHOULD BE .GE., I2,10H ... NPAR(,I2,
- 1 3H) =,I5)
- 2450 FORMAT (I5,48H. REQUESTED MATERIAL MODEL IS NOT AVAILABLE ... ,
- 1 11H NPAR(15) =,I2)
- 2500 FORMAT (I5,7H. NPAR(,I2,3H) =,I2,10H AND NPAR(,I2,3H) =,I2,
- 1 19H ARE NOT COMPATIBLE )
- 2550 FORMAT (I5,10H. NSKEWS =,I2,10H AND NPAR(,I2,3H) =,I2,
- 1 19H ARE NOT COMPATIBLE )
- 2700 FORMAT (//25H TOTAL NUMBER OF ERRORS =,I5//
- 1 48H CARD IMAGE LISTING AND PRINT-OUT OF NPAR VECTOR/
- 2 48H (WITH DEFAULTS ENFORCED) ARE GIVEN BELOW ------)
- 2800 FORMAT (///34H CARD IMAGE LISTING OF NPAR VECTOR //29X,8(I1,9X)/
- 1 15H COLUMN NUMBERS,5X,8(10H1234567890)/
- 2 15H NPAR VECTOR ,5X,20I4 // )
- 2750 FORMAT (//// 23H STOP (ERRORS IN NPAR) )
- C
- 2900 FORMAT (36H E L E M E N T D E F I N I T I O N ///,
- 1 14H ELEMENT TYPE ,13(2H .),16H( NPAR(1) ). . =,I5/,
- 2 25H EQ.1, TRUSS ELEMENTS/,
- 3 35H EQ.2, 2-DIM CONTINUUM ELEMENTS/,
- 4 35H EQ.3, 3-DIM CONTINUUM ELEMENTS/,
- 5 25H EQ.4, BEAM ELEMENTS/,
- 5 28H EQ.5, ISO/BEAM ELEMENTS/,
- 6 28H EQ.6, PLATE ELEMENTS /,
- C 25H EQ.7, SHELL ELEMENTS/,
- D 25H EQ.8,9,10, EMPTY /,
- 2 32H EQ.11, 2-DIM FLUID ELEMENTS/,
- 5 32H EQ.12, 3-DIM FLUID ELEMENTS /)
- 2905 FORMAT (20H NUMBER OF ELEMENTS.,10(2H .),16H( NPAR(2) ). . =,I5//,
- 1 40H TYPE OF ANALYSIS . . . . . . . . . . . ,
- 2 16H( NPAR(3) ). . =,I5/,
- 3 17H EQ.0, LINEAR//,
- 4 41H EQ.1, UPDATED LAGRANGIAN FORMULATION //
- 5 32H ELEMENT BIRTH AND DEATH OPTIONS ,4(2H .),
- 6 16H( NPAR(4) ). . =,I5/,
- 7 28H EQ.0, OPTION NOT ACTIVE/,
- 8 30H EQ.1, BIRTH OPTION ACTIVE /,
- 9 30H EQ.2, DEATH OPTION ACTIVE )
- 2910 FORMAT (/16H ELEMENT SUBTYPE,12(2H .),16H( NPAR(5) ). . =,I5/,
- 1 32H EQ.0, AXISYMMETRIC ELEMENTS/,
- 2 32H EQ.1, 2-DIM PLANE ELEMENTS )
- 2920 FORMAT(/23H SKEW COORDINATE SYSTEM/
- 1 40H REFERENCE INDICATOR . . . . . . . .,
- 2 16H( NPAR(6) ). . =,I5/
- 3 28H EQ.0, ALL ELEMENT NODES/
- 4 37H USE THE GLOBAL SYSTEM ONLY/
- 5 35H EQ.1, ELEMENT NODES REFER /
- 6 36H TO SKEW COORDINATE SYSTEM//
- 7 32H MAX NUMBER OF NODES DESCRIBING /,
- 8 20H ANY ONE ELEMENT,10(2H .),16H( NPAR(7) ). . =,I5//)
- 2930 FORMAT (24H DEGENERATION INDICATOR ,8(2H .),
- 7 16H( NPAR(8) ). . =,I5/,
- 6 50H EQ.0, NO DEGENERATION OR NO CORRECTION /,
- 5 50H FOR SPATIAL ISOTROPY //,
- 4 50H EQ.1, SPATIAL ISOTROPY CORRECTIONS APPLIED /,
- 3 50H TO SPECIALLY DEGENERATED /,
- 3 50H 8-NODE ELEMENTS //
- 9 40H NUMBER OF INTEGRATION POINTS FOR /,
- 1 40H ELEMENT STIFFNESS GENERATION. . . .,
- 2 16H( NPAR(10)). . =,I5//)
- 2940 FORMAT (38H M A T E R I A L D E F I N I T I O N///,
- 1 16H MATERIAL MODEL.,12(2H .),16H( NPAR(15)). . =,I5/,
- 2 42H EQ. 1, INVISCID CONSTANT BULK MODULUS/
- 3 52H EQ. 2, INVISCID PRESSURE DEPENDENT BULK MODULUS/
- 4 19H EQ. 3, (EMPTY)/
- 5 19H EQ. 4, (EMPTY)/
- 6 19H EQ. 5, (EMPTY)/
- 7 19H EQ. 6, (EMPTY)/)
- 2960 FORMAT (37H NUMBER OF DIFFERENT SETS OF MATERIAL /,
- 1 14H CONSTANTS,13(2H .),16H( NPAR(16)). . =,I5//,
- 2 40H NUMBER OF MATERIAL CONSTANTS PER SET. .,
- 3 16H( NPAR(17)). . =,I5//,
- 4 32H DIMENSION OF STORAGE ARRAY (WA)/,
- 5 26H PER INTEGRATION POINT,7(2H .),16H( NPAR(20)). . =,
- 6 I5//)
- C
- END
- C *CDC* *DECK TDFEF
- C *UNI* )FOR,IS N.TDFEF, R.TDFEF
- SUBROUTINE TDFEF (RSDCOS,NODSYS,ID,X,Y,Z,HT,LM,YZ,IELT,IPST,
- 1 MATP,DEN,PROP,WA,NOD5,ETIMV,EDISB,ISKEW,ISO,
- 2 NTABLE,NCON,IDWA,NDM,ND5DIM,NDOF,MXNODS)
- C
- C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
- C
- C G E N E R A T E F L U I D F I N I T E E L E M E N T
- C M A T R I C E S
- C
- C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
- C
- IMPLICIT REAL*8 (A-H,O-Z)
- COMMON /EL/ IND,ICOUNT,NPAR(20),NUMEG,NEGL,NEGNL,IMASS,IDAMP,ISTAT
- 1 ,NDOFDM,KLIN,IEIG,IMASSN,IDAMPN
- COMMON /SOL/ NUMNP,NEQ,NWK,NWM,NWC,NUMEST,MIDEST,MAXEST,NSTE,MA
- COMMON /DIM/ N0,N1,N2,N3,N4,N5,N6,N7,N8,N9,N10,N11,N12,N13,N14,N15
- COMMON /ELSTP/ TIME,IDTHF
- COMMON /VAR/ NG,MODEX,IUPDT,KSTEP,ITEMAX,IEQREF,ITE,KPRI,
- 1 IREF,IEQUIT,IPRI,KPLOTN,KPLOTE
- COMMON /PRCON/ IDATWR,IPRIC,NPB,IDC,IVC,IAC,IPC,IPNODE(3,15)
- COMMON /PORT/ INPORT,JNPORT,NPUTSV,LUNODE,LU1,LU2,LU3,JDC,JVC,JAC
- COMMON /EM2D/ S(300),XM(24),B(4,16),RE(24),EDIS(24),EDISI(24),
- 1 XX(24),NOD(8),NODM(8),NOD5M(4)
- COMMON /MATMOD/ STRESS(4),STRAIN(4),D(4,4),IPT,N,IPS
- COMMON /TODIM / BET,THIC,DE,IEL,NND5,ISOCOR
- COMMON /DISDER/ DISD(5)
- COMMON /GAUSS/ XG(4,4),WGT(4,4),EVAL2(9,2),EVAL3(27,3),E1,E2,E3
- COMMON /RANDI/ N0A,N1D,IELCPL
- COMMON /MDFRDM/ IDOF(6)
- COMMON /SKEW/ NSKEWS
- COMMON /ISUBST/ ISUBC,NSUBST,NSUB,NTUSE,NEGLS,NEGNLS,NUMNPS,
- 1 NODCON,NODRET,IDOFS(6),NDOFS,NEQS,NWKS,MAXESC,
- 2 MAS,NSTAPE,ILOA(13),KRSIZM,NEQC
- C
- COMMON A(1)
- REAL A
- INTEGER ANODE
- C
- DIMENSION ID(NDOF,1),X(1),Y(1),Z(1),HT(NDM),LM(NDM,1),YZ(NDM,1),
- 1 IELT(1),IPST(1),MATP(1),DEN(1),PROP(NCON,1),
- 2 WA(IDWA,1),NOD5(ND5DIM,1),ETIMV(1),EDISB(NDM,1),V(16),
- 3 IPTABL(4),NODSYS(1),RSDCOS(9,1),ISKEW(MXNODS,1),ISO(1)
- DIMENSION H(8),P(2,8),XJ(2,2),XYZINT(3,16)
- C
- EQUIVALENCE (NPAR(1),NPAR1),(NPAR(2),NUME),(NPAR(3),INDNL),
- 1 (NPAR(4),IDEATH),(NPAR(5),ITYP2D),(NPAR(6),NEGSKS),
- 2 (NPAR(8),IDEGEN),(NPAR(10),NINT),(NPAR(15),MODEL),
- 3 (NPAR(16),NUMMAT)
- C
- DATA ANODE /4HNODE/, RECLB1/8HTYPE-2 /, RECLB2/8HMATERAL2/,
- 1 RECLB3/8HOUTABLE2/, RECLB4/8HELEMENT2/,
- 2 RECLB5/8HNEWSTEP2/, RECLB6/8HOUTPUT-2/
- DATA RECLB7/8HIPOINT-2/
- C
- C
- C .. NOTE .. DURING TIME INTEGRATION Y=DISP, Z=VEL
- C
- C
- NPT = NINT*NINT
- IDW=IDWA/NPT
- IELCPL=0
- NDPN=2
- C
- IF (JNPORT.EQ.0) GO TO 3
- IPTABL(1)=1
- IPTABL(2)=NINT
- IPTABL(3)=NINT*(NINT-1) + 1
- IPTABL(4)=NINT*NINT
- C
- 3 IF (KPRI.EQ.0) GO TO 800
- IF (IND.GT.0) GO TO 420
- C
- ISCONT=0
- IF (NSKEWS.GT.0 .AND. NEGSKS.EQ.0) ISCONT=1
- IJPORT=1
- IF (JNPORT.EQ.0 .OR. NPUTSV.EQ.0) IJPORT=0
- C
- C
- C R E A D A N D G E N E R A T E F L U I D
- C E L E M E N T I N F O R M A T I O N
- C
- C
- DO 10 I=1,NUMMAT
- READ (5,1000) N,DEN(N)
- READ (5,1001) (PROP(J,N), J=1,NCON)
- 10 CALL MATRTF (N,DEN(N),PROP(1,N))
- C
- C READ FLUID ELEMENT INFORMATION
- C
- IF (IDATWR.GT.1) GO TO 95
- WRITE (6,2005) (ANODE,I,I=1,8)
- WRITE (6,2006)
- 95 CONTINUE
- N=1
- IREAD=5
- IF (INPORT.GT.0) IREAD=59
- C
- C*** DATA PORTHOLE (START)
- C
- IF (IJPORT.EQ.0) GO TO 100
- RECLAB=RECLB2
- WRITE (LU2) RECLAB,NUMMAT,NCON,(DEN(I),I=1,NUMMAT),
- 1 ((PROP(I,J),I=1,NCON),J=1,NUMMAT)
- RECLAB=RECLB3
- WRITE (LU2) RECLAB,NTABLE
- C
- C*** DATA PORTHOLE (END)
- C
- 100 READ (IREAD,1004) M,IEL,IPS,MTYP,KG,ETIME,INTLOC,(NOD(I),I=1,8)
- IF (N.EQ.1 .AND. M.NE.1) GO TO 101
- IF (IDEATH.EQ.2 .AND. ETIME.EQ.0.) ETIME=100000.
- IF (IEL.EQ.0) IEL=MXNODS
- IF (IEL.LE.MXNODS) GO TO 105
- WRITE(6,2010) M
- STOP
- 101 WRITE (6,2011) NSUB,NG
- STOP
- 105 IF (KG.EQ.0) KG=1
- IF (M.NE.N) GO TO 200
- 121 DO 110 I=1,8
- 110 NODM(I)=NOD(I)
- IF (IEL.EQ.4) GO TO 115
- II=0
- DO 114 I=5,8
- NN=NOD(I)
- IF (NN.EQ.0) GO TO 114
- II=II + 1
- NOD5M(II)=I
- 114 CONTINUE
- C
- 115 IELM=IEL
- IPSM=IPS
- MTYPE=MTYP
- KKK=KG
- ETIM=ETIME
- INTLM=INTLOC
- C
- C SAVE ELEMENT INFORMATION
- C
- 200 I2=0
- DO 130 I=1,IELM
- II=NODM(I)
- IF (I.LE.4) GO TO 131
- JJ=NOD5M(I-4)
- II=NODM(JJ)
- 131 I2=I2 + NDPN
- YZ(I2-1,N)=Y(II)
- YZ(I2,N)=Z(II)
- IF (ISCONT.EQ.0) GO TO 129
- IF (NODSYS(II).EQ.0) GO TO 130
- WRITE (6,2410) NG,N,NEGSKS
- STOP
- 129 IF (NEGSKS.GT.0) ISKEW(I,N)=NODSYS(II)
- 130 CONTINUE
- C
- MATP(N)=MTYPE
- IELT(N)=IELM
- IPST(N)=IPSM
- IF (IELM.EQ.4) GO TO 135
- NN=IELM - 4
- DO 132 I=1,NN
- 132 NOD5(I,N)=NOD5M(I)
- C
- 135 KK=-NDPN
- DO 140 I=1,IELM
- II=NODM(I)
- IF (I.LE.4) GO TO 137
- JJ=NOD5M(I-4)
- II=NODM(JJ)
- 137 KK=KK + NDPN
- LL=1
- DO 140 L=1,NDPN
- LDO=L
- IF (IDOF(1) .EQ. 0) LDO=LDO + 1
- LM(KK+L,N)=0
- IF (IDOF(L+1) .EQ. 1) GO TO 140
- LM(KK+L,N)=ID(LDO,II)
- LL=LL + 1
- 140 CONTINUE
- C
- IF (IDEGEN.LE.0) GO TO 143
- ISOCOR=0
- IF (IELM.NE.8) GO TO 141
- IF (NODM(1).EQ.NODM(4) .AND. NODM(1).EQ.NODM(8)) ISOCOR=1
- 141 ISO(N)=ISOCOR
- C
- 143 IF (NEGSKS.EQ.0) GO TO 148
- DO 145 I=1,IELM
- IF (ISKEW(I,N).NE.0) GO TO 148
- 145 CONTINUE
- ISKEW(1,N)=-1
- C
- 148 IF (IDEATH.EQ.0) GO TO 150
- IF (IDEATH.EQ.2) GO TO 156
- DO 158 L=1,NDM
- 158 EDISB(L,N)=0.
- ETIMV(N)=-ETIM
- GO TO 150
- 156 ETIMV(N)=ETIM
- C
- C UPDATE COLUMN HEIGHTS AND BANDWIDTH
- C
- 150 ND=IELM*NDPN
- CALL COLHT(HT,ND,LM(1,N))
- C
- IF (IDATWR.LE.1) WRITE (6,2004) N,IELM,IPSM,MTYPE,KKK,ETIM,INTLM,
- 1 (NODM(I),I=1,8)
- IF (IJPORT.EQ.0 .AND. INTLM.EQ.0) GO TO 159
- C
- C CALCULATE GLOBAL COORDINATES OF INTEGRATION POINTS
- C
- KINTP=0
- IELTP=IEL
- IEL=IELM
- NND5=IELM-4
- DO 154 LY=1,NINT
- RINTP=XG(LY,NINT)
- DO 154 LZ=1,NINT
- SINTP=XG(LZ,NINT)
- KINTP=KINTP+1
- IX=0
- YINT=0.
- ZINT=0.
- C
- CALL FUNCTF (RINTP,SINTP,H,P,NOD5M,XJ,DET,YZ(1,N),N,1)
- C
- DO 155 NDPT=1,IELM
- IX=IX+2
- YINT=YINT + H(NDPT)*YZ(IX-1,N)
- 155 ZINT=ZINT + H(NDPT)*YZ(IX,N)
- XYZINT(1,KINTP)=0.
- XYZINT(2,KINTP)=YINT
- XYZINT(3,KINTP)=ZINT
- C
- C PRINT INTEGRATION POINT LOCATIONS IF INTLM.GT.0
- C
- IF (IDATWR.GT.1 .OR. INTLM.LE.0) GO TO 154
- WRITE (6,2008) KINTP,(XYZINT(L,KINTP),L=1,3)
- 154 CONTINUE
- C
- IEL=IELTP
- C
- C*** DATA PORTHOLE (START)
- C
- RECLAB=RECLB4
- IF (IJPORT.EQ.0) GO TO 159
- WRITE (LU2) RECLAB,N,IELM,IPSM,MTYPE,ETIM,INTLM,(NODM(I),I=1,8)
- RECLAB = RECLB7
- WRITE (LU2) RECLAB,NPT,((XYZINT(L,I),L=1,3),I=1,NPT)
- C
- C*** DATA PORTHOLE (END)
- C
- 159 CONTINUE
- IF (N.EQ.NUME) GO TO 170
- N=N+1
- DO 160 I=1,8
- IF (NODM(I).EQ.0) GO TO 160
- NODM(I)=NODM(I) + KKK
- 160 CONTINUE
- C
- IF (N-M) 200,121,100
- C
- 170 IF (NEGSKS.EQ.0) RETURN
- DO 175 N=1,NUME
- IF (ISKEW(1,N).GE.0) GO TO 180
- 175 CONTINUE
- C
- WRITE (6,2400) NG,NEGSKS
- C
- 180 RETURN
- C
- 420 GO TO (440,560,560,700), IND
- C
- C
- C A S S E M B L E L I N E A R F L U I D S T I F F N E S S
- C M A T R I X
- C
- C
- 440 DO 445 I=1,16
- RE(I)=0.
- 445 EDIS(I)=0.
- DO 500 N=1,NUME
- MTYPE=MATP(N)
- IEL=IELT(N)
- ISOCOR=ISO(N)
- ND=NDPN*IEL
- NND5=IEL - 4
- CALL ECHECK (LM(1,N),ND,ICODE,IUPDT)
- IF (ICODE.EQ.1) GO TO 500
- DO 460 I=1,ND
- 460 XX(I)=YZ(I,N)
- ND=NDPN*IEL
- DO 480 I=1,136
- 480 S(I)=0.
- C
- CALL QUADSF (ND,B,S,XX,PROP(1,MTYPE),RE,EDIS,
- 1 IDW,WA(1,N),NOD5(1,N))
- ND=NDPN*IEL
- C
- IF (NEGSKS.EQ.0) GO TO 490
- IF (ISKEW(1,N).LT.0) GO TO 490
- CALL ATKA (RSDCOS,S,ISKEW(1,N),IEL,NDPN)
- C
- 490 CALL ADDBAN (A(N2),A(N1),S,RE,LM(1,N),ND,1)
- 500 CONTINUE
- RETURN
- C
- C
- C A S S E M B L E F L U I D M A S S M A T R I C E S
- C
- C
- 560 DO 660 N=1,NUME
- MTYPE=MATP(N)
- IEL=IELT(N)
- ISOCOR=ISO(N)
- ND=NDPN*IEL
- NND5=IEL - 4
- DE=DEN(MTYPE)
- IF (IMASS.EQ.1) GO TO 570
- CALL ECHECK (LM(1,N),ND,ICODE,IUPDT)
- IF (ICODE.EQ.1) GO TO 660
- C
- 570 DO 580 I=1,ND
- 580 XX(I)=YZ(I,N)
- IF (IMASS.EQ.2) ND=2*IEL
- CALL QUADMF (N,ND,XM,S,XX,NOD5(1,N))
- ND=NDPN*IEL
- C
- IF (IMASS.EQ.2) GO TO 640
- CALL ADDMA (A(N4),XM,LM(1,N),ND)
- GO TO 660
- C
- 640 IF (NEGSKS.EQ.0) GO TO 650
- IF (ISKEW(1,N).LT.0) GO TO 650
- CALL ATKA (RSDCOS,S,ISKEW(1,N),IEL,NDPN)
- C
- 650 CALL ADDBAN (A(N2),A(N1),S,RE,LM(1,N),ND,1)
- C
- 660 CONTINUE
- RETURN
- C
- C
- C A S S E M B L E N O N L I N E A R F I N A L F L U I D
- C S T I F F N E S S A N D I N T E R N A L F O R C E V E C T O R
- C
- C
- 700 DO 710 N=1,NUME
- MTYPE=MATP(N)
- IEL=IELT(N)
- ISOCOR=ISO(N)
- ND=NDPN*IEL
- NND5=IEL - 4
- CALL ECHECK (LM(1,N),ND,ICODE,IUPDT)
- IF (ICODE .EQ. 1) IELCPL=IELCPL + 1
- IF (ICODE.EQ.1) GO TO 710
- IF (IDEATH.EQ.0) GO TO 720
- ETIM=DABS(ETIMV(N))
- IF (IDEATH.EQ.2) GO TO 712
- IF (TIME.LT.ETIM) GO TO 710
- IF (ETIMV(N).GE.0.) GO TO 720
- ETIMV(N) =ETIM
- DO 714 I=1,ND
- II=LM(I,N)
- IF (II.EQ.0) GO TO 714
- IF(II.LT.0) II=NEQ - II
- EDISB(I,N)=Y(II)
- 714 CONTINUE
- IF (NEGSKS.EQ.0) GO TO 720
- IF (ISKEW(1,N).LT.0) GO TO 720
- CALL DIRCOS (RSDCOS,EDISB(1,N),ISKEW(1,N),IEL,NDPN,1)
- GO TO 720
- 712 IF (TIME.GT.ETIM) GO TO 710
- C
- 720 DO 740 I=1,ND
- RE(I)=0.0
- EDIS(I)=0.
- XX(I)=YZ(I,N)
- II=LM(I,N)
- IF (II) 736,740,737
- 736 II=NEQ - II
- 737 EDIS(I)=Y(II)
- 740 CONTINUE
- C
- IF (NEGSKS.LT.1) GO TO 749
- IF (ISKEW(1,N).LT.0) GO TO 749
- CALL DIRCOS (RSDCOS,EDIS,ISKEW(1,N),IEL,NDPN,1)
- C
- 749 DO 750 I=1,136
- 750 S(I)=0.
- C
- IF (IDEATH.NE.1) GO TO 752
- DO 754 I=1,ND
- EDIS(I)=EDIS(I) - EDISB(I,N)
- 754 XX(I)=XX(I) + EDISB(I,N)
- C
- 752 ND=2*IEL
- CALL QUADSF (ND,B,S,XX,PROP(1,MTYPE),RE,EDIS,
- 1 IDW,WA(1,N),NOD5(1,N))
- ND=NDPN*IEL
- C
- IF (NEGSKS.LT.1) GO TO 760
- IF (ISKEW(1,N).LT.0) GO TO 760
- CALL DIRCOS (RSDCOS,RE,ISKEW(1,N),IEL,NDPN,2)
- C
- 760 MADR=N3
- IF (ICOUNT.EQ.3) MADR=N5
- CALL ADDBAN (A(MADR),A(N1),S,RE,LM(1,N),ND,2)
- C
- IF (ICOUNT-2) 745,745,710
- 745 IF (IREF) 710,730,710
- 730 IF (NEGSKS.EQ.0) GO TO 735
- IF (ISKEW(1,N).LT.0) GO TO 735
- CALL ATKA (RSDCOS,S,ISKEW(1,N),IEL,NDPN)
- C
- 735 CALL ADDBAN (A(N4),A(N1),S,RE,LM(1,N),ND,1)
- C
- 710 CONTINUE
- IF (IELCPL.EQ.NUME) IELCPL=-1
- RETURN
- C
- C
- C P R E S S U R E C A L C U L A T I O N S
- C
- C
- C*** DATA PORTHOLE (START)
- C
- 800 IF (JNPORT.EQ.0 .OR. KPLOTE.NE.0) GO TO 811
- RECLAB=RECLB5
- WRITE (LU2) RECLAB,NG,(NPAR(I),I=1,20),KSTEP,TIME,NEGL,NSUB
- C
- C*** DATA PORTHOLE (END)
- C
- 811 IST=4
- IF (ITYP2D.GT.0) IST=3
- C
- IPRNT=0
- DO 840 N=1,NUME
- IF (IDEATH.EQ.0) GO TO 790
- ETIM=DABS(ETIMV(N))
- IF (IDEATH.EQ.2) GO TO 792
- IF (TIME.LT.ETIM) GO TO 840
- GO TO 790
- 792 IF (TIME.GT.ETIM) GO TO 840
- 790 IPS=IPST(N)
- IF (IPS.EQ.0) GO TO 840
- IF (IPRI.NE.0) GO TO 802
- IPRNT=IPRNT + 1
- IF (IPRNT.NE.1) GO TO 802
- WRITE(6,2020) NG
- IF (ITYP2D.EQ.0) WRITE(6,2022)
- IF (ITYP2D.EQ.1) WRITE(6,2024)
- 802 MTYPE=MATP(N)
- IEL = IELT(N)
- ISOCOR=ISO(N)
- ND=NDPN*IEL
- NND5=IEL - 4
- C
- DO 805 I=1,ND
- EDIS(I) = 0.0
- II = LM(I,N)
- IF (II.EQ.0) GO TO 805
- IF (II.LT.0) II=NEQ - II
- EDIS(I) = Y(II)
- 805 CONTINUE
- C
- IF (NEGSKS.LT.1) GO TO 825
- IF (ISKEW(1,N).LT.0) GO TO 825
- CALL DIRCOS (RSDCOS,EDIS,ISKEW(1,N),IEL,NDPN,1)
- 825 CONTINUE
- C
- IF (IDEATH.NE.1) GO TO 803
- DO 812 I=1,ND
- 812 EDIS(I)=EDIS(I)-EDISB(I,N)
- C
- 803 IF (INDNL.EQ.1) GO TO 806
- DO 808 I=1,ND
- 808 XX(I)=YZ(I,N)
- IF (IDEATH.NE.1) GO TO 807
- DO 804 I=1,ND
- 804 XX(I)=XX(I) + EDISB(I,N)
- GO TO 807
- 806 DO 809 I=1,ND
- 809 XX(I)=YZ(I,N) + EDIS(I)
- 807 ND=NDPN*IEL
- C
- C CALCULATE AND PRINT ELEMENT PRESSURES AT INTEGRATION POINTS
- C
- C
- IF (IPRI.EQ.0) WRITE (6,2035) N
- C
- JPT=1
- RECLAB=RECLB6
- C
- DO 839 LX=1,NINT
- E1=XG(LX,NINT)
- DO 839 LY=1,NINT
- E2=XG(LY,NINT)
- IPT=(LX-1)*NINT + LY
- C
- CALL DERIQF (N,XX,B,V,DET,E1,E2,X1BAR,NOD5(1,N))
- C
- DO 832 J=1,5
- 832 DISD(J)=0.0
- DO 833 J=2,ND,2
- JJ=J - 1
- DISD(1)=DISD(1) + B(1,JJ)*EDIS(JJ)
- DISD(2)=DISD(2) + B(2,J)*EDIS(J)
- DISD(3)=DISD(3) + B(3,JJ)*EDIS(JJ)
- 833 DISD(4)=DISD(4) + B(3,J)*EDIS(J)
- IF (IST.EQ.0) GO TO 835
- DO 834 J=1,ND,2
- 834 DISD(5)=DISD(5) + B(4,J)*EDIS(J)
- 835 CALL STSTNF (XX,PROP(1,MTYPE),DISD,IDW,WA(1,N),PRESS)
- IF (IPRI.EQ.0) WRITE (6,2040) PRESS
- C
- C*** DATA PORTHOLE (START)
- C
- IF (JNPORT.EQ.0 .OR. KPLOTE.NE.0) GO TO 839
- IF (IPT.NE.IPTABL(JPT)) GO TO 839
- WRITE (LU2) RECLAB,IPT,PRESS,STRAIN
- JPT=JPT + 1
- C
- C*** DATA PORTHOLE (END)
- C
- 839 CONTINUE
- 840 CONTINUE
- C
- RETURN
- C
- 1000 FORMAT (I5,F10.0)
- 1001 FORMAT (8F10.0)
- 1004 FORMAT (5I5,5X,F10.0,I5/8I5)
- 2004 FORMAT (/1H ,2I5,3I6,F10.3,4X,I2,4X,I4,7(4X,I4))
- 2006 FORMAT (56X,11HINTEGRATION,17X,19HGLOBAL COORDINATES/
- 1 59X,5HPOINT,16X,1HX,12X,1HY,12X,1HZ)
- 2008 FORMAT (1H ,57X,I4,16X,F3.0,4X,2(2X,E11.4))
- 2005 FORMAT (////4X,20H ELEMENT INFORMATION ,
- 1//39H M IEL IPS MTYP KG ETIME,
- 2 2X,6HINTLOC,2X,A4,I1,7(3X,A4,I1))
- 2010 FORMAT(///12H *** ELEMENT,I5,46H EXCEEDS MAXIMUM NUMBER OF NODES (
- 1NPAR(7)) ***)
- 2011 FORMAT(///23H INPUT ERROR **********/
- 1 19H SUBSTRUCTURE NO =,I3/
- 2 19H ELEMENT GROUP NO =,I3/
- 3 31H FIRST ELEMENT NUMBER MUST BE 1)
- 2020 FORMAT (1H1,47HP R E S S U R E C A L C U L A T I O N S F O R,
- 1 3X,25HE L E M E N T G R O U P ,3X,I2,3X,11H(2/D FLUID) )
- 2022 FORMAT (82X,14H(AXISYMMETRIC), // 1X)
- 2024 FORMAT (82X,14H(2-DIM FLUID), // 1X)
- 2035 FORMAT (I8)
- 2040 FORMAT (13X,14H PRESSURE ,E15.4)
- 2400 FORMAT (///16H ELEMENT GROUP =,I2,22H (2/D FLUID ELEMENT) /,
- 1 19H ALTHOUGH NPAR(6) =,I2,22H, NONE OF THE ELEMENTS/,
- 2 49H IN THIS GROUP REFERS TO SKEW COORDINATE SYSTEMS./,
- 3 50H IT IS ADVISED THAT NPAR(6) BE SET TO ZERO TO SAVE,
- 4 15H STORAGE SPACE.//,
- 5 39H THIS IS ONLY AN INFORMATIONAL MESSAGE.///)
- 2410 FORMAT (///16H ELEMENT GROUP =,I2,22H (2/D FLUID ELEMENT) /,
- 1 16H ELEMENT NUMBER=,I4/10H NPAR(6) =,I2//,
- 2 53H SINCE NODES OF THIS ELEMENT REFER TO SKEW COORDINATE/,
- 3 37H SYSTEM(S), NPAR(6) MUST BE SET TO 1.//,8H S T O P)
- C
- END
- C *CDC* *DECK QUADSF
- C *UNI* )FOR,IS N.QUADSF, R.QUADSF
- SUBROUTINE QUADSF (ND,B,S,YZ,PROP,RE,EDIS,IDW,WA,NOD5)
- C
- C
- C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
- C
- C ISOPARAMETRIC FORMULATION OF QUADRILATERAL ELEMENT STIFFNESS
- C FOR AXISYMMETRIC AND TWO-DIMENSIONAL FLUID FLOW
- C
- C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
- C
- C
- IMPLICIT REAL*8 (A-H,O-Z)
- COMMON /EL/ IND,ICOUNT,NPAR(20),NUMEG,NEGL,NEGNL,IMASS,IDAMP,ISTAT
- 1 ,NDOF,KLIN,IEIG,IMASSN,IDAMPN
- COMMON /VAR/ NG,MODEX,IUPDT,KSTEP,ITEMAX,IEQREF,ITE,KPRI,
- 1 IREF,IEQUIT,IPRI,KPLOTN,KPLOTE
- COMMON /TODIM / BET,THIC,DE,IEL,NND5,ISOCOR
- COMMON /MATMOD/ STRESS(4),STRAIN(4),D(4,4),IPT,NEL,IPS
- COMMON /DISDER/ DISD(5)
- COMMON /GAUSS/ XG(4,4),WGT(4,4),EVAL2(9,2),EVAL3(27,3),E1,E2,E3
- DIMENSION B(4,16),S(136),YZ(16),RE(16),EDIS(16),PROP(1),WA(1)
- DIMENSION XX(16),V(16),NOD5(1)
- C
- EQUIVALENCE (NPAR(3),INDNL),(NPAR(5),ITYP2D),(NPAR(10),NINT),
- 1 (NPAR(15),MODEL)
- C
- C
- NPT=NINT*NINT
- IST=4
- IF (ITYP2D.NE.0) IST=3
- KST=IST-1
- C
- IF (IND.GE.4) GO TO 100
- C
- C
- C E V A L U A T E L I N E A R S T I F F N E S S M A T R I X
- C F O R F L U I D E L E M E N T
- C
- C
- C
- DO 10 LX=1,NINT
- E1=XG(LX,NINT)
- DO 10 LY=1,NINT
- E2=XG(LY,NINT)
- WT=WGT(LX,NINT)*WGT(LY,NINT)
- C
- C EVALUATE DERIVATIVE OPERATOR AND THE JACOBIAN DETERMINANT
- C
- CALL DERIQF (NEL,YZ,B,V,DET,E1,E2,XBAR,NOD5)
- C
- C ADD CONTRIBUTION TO FLUID ELEMENT STIFFNESS
- C
- PROPK=PROP(1)
- IF (IST.EQ.3) XBAR=1.
- FAC=WT*XBAR*DET*PROPK
- C
- KL=1
- DO 48 K=1,ND
- DO 48 J=K,ND
- S(KL)=S(KL) + V(K)*V(J)*FAC
- 48 KL=KL+1
- C
- 10 CONTINUE
- C
- RETURN
- C
- C
- C E V A L U A T E N O N L I N E A R S T I F F N E S S
- C M A T R I X F O R F L U I D E L E M E N T
- C
- C
- C UPDATE ELEMENT COORDINATES
- C
- 100 IF (INDNL.EQ.0) GO TO 122
- DO 120 J=1,ND
- 120 XX(J) = YZ(J) + EDIS(J)
- C
- C
- 122 IF (MODEL.GT.1) GO TO 125
- PROPK=PROP(1)
- C
- C
- C INTEGRATE FLUID STIFFNESS MATRIX AND ELEMENT
- C NODAL FORCE EXPRESSION
- C
- C
- 125 DO 300 LX=1,NINT
- E1=XG(LX,NINT)
- DO 300 LY=1,NINT
- E2=XG(LY,NINT)
- WT=WGT(LX,NINT)*WGT(LY,NINT)
- IPT=(LX-1)*NINT + LY
- C
- C
- 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
- C O F F L U I D E L E M E N T
- C
- C
- C
- C EVALUATE THE DERIVATIVE OPERATORS B AND V
- C
- CALL DERIQF (NEL,XX,B,V,DET,E1,E2,XBAR,NOD5)
- C
- C CALCULATE DISPLACEMENT DERIVATIVES
- C
- DO 210 I=1,5
- 210 DISD(I)=0.
- DO 212 J=2,ND,2
- I=J - 1
- DISD(1)=DISD(1) + B(1,I)*EDIS(I)
- DISD(2)=DISD(2) + B(2,J)*EDIS(J)
- DISD(3)=DISD(3) + B(3,I)*EDIS(I)
- 212 DISD(4)=DISD(4) + B(3,J)*EDIS(J)
- IF (IST.EQ.3) GO TO 216
- DO 214 I=1,ND,2
- 214 DISD(5)=DISD(5) + B(4,I)*EDIS(I)
- C
- C EVALUATE CURRENT PRESSURES
- C
- 216 CALL STSTNF (XX,PROP,DISD,IDW,WA,PRESS)
- C
- IF (IST.EQ.3) XBAR=1.
- C
- FAC=WT*XBAR*DET
- C
- C
- C ADD PRESSURE CONTRIBUTION TO ELEMENT FORCE VECTOR
- C
- TAU11=-PRESS*FAC
- DO 340 I=1,ND
- 340 RE(I)=RE(I) + TAU11*V(I)
- C
- IF (ICOUNT-2) 220,220,300
- 220 IF (IREF) 300,230,300
- C
- C ADD LINEAR CONTRIBUTION TO FLUID STIFFNESS MATRIX
- C
- 230 KL=1
- FAC=FAC*PROPK
- DO 248 K=1,ND
- DO 248 J=K,ND
- S(KL)=S(KL) + V(K)*V(J)*FAC
- 248 KL=KL+1
- C
- C ADD NONLINEAR CONTRIBUTION TO FLUID STIFFNESS MATRIX
- C
- IF (INDNL.EQ.2) GO TO 300
- C
- KL=1
- DO 400 J=1,ND,2
- KS=KL
- DO 401 I=J,ND,2
- KSS=KS + ND - J + 1
- BBNL=TAU11*(B(1,I)*B(1,J) + B(3,I)*B(3,J))
- S(KS)=S(KS) + BBNL
- S(KSS)=S(KSS) + BBNL
- 401 KS=KS + 2
- 400 KL=KL + 2*ND - 2*J + 1
- C
- IF (IST.EQ.3) GO TO 300
- KL=1
- DO 420 J=1,ND,2
- DB3=TAU11*B(4,J)
- DO 421 I=J,ND,2
- S(KL)=S(KL) + DB3*B(4,I)
- 421 KL=KL + 2
- 420 KL=KL + ND - J
- C
- 300 CONTINUE
- C
- C
- RETURN
- END
- C *CDC* *DECK MATRTF
- C *UNI* )FOR,IS N.MATRTF, R.MATRTF
- SUBROUTINE MATRTF (N,DEN,PROP)
- C
- C
- C SUBROUTINE TO PRINT OUT FLUID PROPERTIES
- C
- C
- C
- IMPLICIT REAL*8 (A-H,O-Z)
- COMMON /EL/ IND,ICOUNT,NPAR(20),NUMEG,NEGL,NEGNL,IMASS,IDAMP,ISTAT
- 1 ,NDOF,KLIN,IEIG,IMASSN,IDAMPN
- COMMON /PRCON/ IDATWR,IPRIC,NPB,IDC,IVC,IAC,IPC,IPNODE(3,15)
- DIMENSION PROP(1)
- C
- EQUIVALENCE (NPAR(15),MODEL),(NPAR(16),NUMMAT),(NPAR(17),NCON),
- 1 (NPAR(20),IDW)
- C
- C
- IF (IDATWR.GT.1) RETURN
- WRITE(6,2100) N,DEN
- C
- GO TO (1,1,1,1,1,1,1),MODEL
- C
- C
- C.... MODEL = 1 C O N S T A N T B U L K M O D U L U S
- C
- 1 WRITE(6,2101) (PROP(I), I=1,NCON)
- RETURN
- 2100 FORMAT (30H MATERIAL CONSTANTS SET NUMBER,6H .... ,I5//,
- 1 1H ,4X,29HDEN ..........( DENSITY ).. =, E14.6/)
- 2101 FORMAT (1H ,4X,29HK ............( PROP(1) ).. =, E14.6/)
- C
- C
- END
- C *CDC* *DECK STSTNF
- C *UNI* )FOR,IS N.STSTNF, R.STSTNF
- SUBROUTINE STSTNF (XX,PROP,DISD,IDW,WA,PRESS)
- C
- C
- C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
- C . .
- C . .
- C . S U B R O U T I N E .
- C . .
- C . TO CALCULATE PRESSURES FOR LINEAR AND NONLINEAR FLUIDS .
- C . .
- C . .
- C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
- C
- C
- IMPLICIT REAL*8 (A-H,O-Z)
- COMMON /EL/ IND,ICOUNT,NPAR(20),NUMEG,NEGL,NEGNL,IMASS,IDAMP,ISTAT
- 1 ,NDOF,KLIN,IEIG,IMASSN,IDAMPN
- COMMON /VAR/ NG,MODEX,IUPDT,KSTEP,ITEMAX,IEQREF,ITE,KPRI,
- 1 IREF,IEQUIT,IPRI,KPLOTN,KPLOTE
- COMMON /MATMOD/ STRESS(4),STRAIN(4),C(4,4),IPT,NEL,IPS
- C
- DIMENSION WA(IDW,1),XX(2,1),PROP(1),DISD(1),DN(4)
- C
- EQUIVALENCE (NPAR(5),ITYP2D),(NPAR(15),MODEL),(NPAR(3),INDNL)
- 1 ,(NPAR(17),NCON)
- C
- C
- C
- C
- C D E F I N I T I O N O F S T R A I N
- C
- C
- C LINEAR STRAIN TERMS
- C
- STRAIN(1)=DISD(1)
- STRAIN(2)=DISD(2)
- STRAIN(3)=DISD(5)
- IF (INDNL.EQ.0) GO TO 80
- C
- C NONLINEAR STRAIN TERMS
- C
- DN(1)=0.5*(DISD(1)*DISD(1) + DISD(4)*DISD(4))
- DN(2)=0.5*(DISD(2)*DISD(2) + DISD(3)*DISD(3))
- DN(3)=0.5*DISD(5)*DISD(5)
- C
- C CALCULATE ALMANSI STRAINS (UPDATED LAGRANGIAN FORMULATION)
- C
- DO 40 I=1,3
- 40 STRAIN(I)=STRAIN(I) - DN(I)
- C
- C
- C
- C C A L C U L A T E P R E S S U R E
- C
- C
- 80 GO TO (1,1,1,1,1,1) ,MODEL
- C
- C
- C.... MODEL = 1 INVISCID FLUID WITH CONSTANT BULK MODULUS
- C
- C
- 1 A1=PROP(1)
- C
- STRESS(1)=A1*(STRAIN(1) + STRAIN(2) + STRAIN(3))
- C
- PRESS=-STRESS(1)
- C
- C
- RETURN
- C
- END
- C *CDC* *DECK FUNCTF
- C *UNI* )FOR,IS N.FUNCTF, R.FUNCTF
- SUBROUTINE FUNCTF (R,S,H,P,NOD5,XJ,DET,XX,NEL,IINTP)
- C
- C
- C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
- C . .
- C . .
- C . P R O G R A M .
- C . TO FIND INTERPOLATION FUNCTIONS ( H ) .
- C . AND DERIVATIVES ( P ) CORRESPONDING TO THE NODAL POINTS .
- C . OF A 4- TO 8-NODE ISOPARAMETRIC QUADRILATERAL .
- C . .
- C . TO FIND JACOBIAN ( XJ ) AND ITS DETERMINANT ( DET ) .
- C
- C . .
- C . NODE NUMBERING CONVENTION .
- C
- C . .
- C . 2 5 1 .
- C . .
- C . O . . . . . . . O . . . . . . . O .
- C . . . .
- C . . . .
- C . . S . .
- C . . . . .
- C . . . . .
- C . 6 O . . . R O 8 .
- C . . . .
- C . . . .
- C . . . .
- C . . . .
- C . . . .
- C . O . . . . . . . O . . . . . . . O .
- C . .
- C . 3 7 4 .
- C . .
- C . .
- C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
- C
- C
- IMPLICIT REAL*8 (A-H,O-Z)
- COMMON /VAR/ NG,MODEX,IUPDT,KSTEP,ITEMAX,IEQREF,ITE,KPRI,IREF,
- 1 IEQUIT,IPRI,KPLOTN,KPLOTE
- COMMON /EL/ IND,ICOUNT,NPAR(20),NUMEG,NEGL,NEGNL,IMASS,IDAMP,
- 1 ISTAT,NDOF,KLIN,IEIG,IMASSN,IDAMPN
- COMMON /TODIM / BET,THIC,DE,IEL,NND5,ISOCOR
- DIMENSION H(1),P(2,1),NOD5(1),IPERM(4),XJ(2,2),XX(2,1)
- EQUIVALENCE (NPAR(8),IDEGEN)
- DATA IPERM/2,3,4,1/
- C
- RP = 1.0 + R
- SP = 1.0 + S
- RM = 1.0 - R
- SM = 1.0 - S
- R2 = 1.0 - R*R
- S2 = 1.0 - S*S
- C
- C
- C INTERPOLATION FUNCTIONS AND THEIR DERIVATIVES
- C
- C 4-NODE ELEMENT
- C
- H(1) = 0.25* RP* SP
- H(2) = 0.25* RM* SP
- H(3) = 0.25* RM* SM
- H(4) = 0.25* RP* SM
- P(1,1)=0.25*SP
- P(1,2)=-P(1,1)
- P(1,3)=-0.25*SM
- P(1,4)=-P(1,3)
- P(2,1)=0.25*RP
- P(2,2)=0.25*RM
- P(2,3)=-P(2,2)
- P(2,4)=-P(2,1)
- C
- IF (IEL.EQ.4) GO TO 80
- C
- C ADD DEGREES OF FREEDOM IN EXCESS OF 4
- C
- I=0
- 2 I=I + 1
- IF (I.GT.NND5) GO TO 40
- NN=NOD5(I) - 4
- GO TO (5,6,7,8), NN
- C
- 5 H(5) = 0.50* R2* SP
- P(1,5)=-R*SP
- P(2,5)=0.50*R2
- GO TO 2
- 6 H(6) = 0.50* RM* S2
- P(1,6)=-0.50*S2
- P(2,6)=-RM*S
- GO TO 2
- 7 H(7) = 0.50* R2* SM
- P(1,7)=-R*SM
- P(2,7)=-0.50*R2
- GO TO 2
- 8 H(8) = 0.50* RP* S2
- P(1,8)=0.50*S2
- P(2,8)=-RP*S
- GO TO 2
- C
- C CORRECT FUNCTIONS AND DERIVATIVES IF 5 OR MORE NODES ARE
- C USED TO DESCRIBE THE ELEMENT
- C
- 40 IH=0
- 41 IH=IH + 1
- IF (IH.GT.NND5) GO TO 50
- IN=NOD5(IH)
- I1=IN - 4
- I2=IPERM(I1)
- H(I1)=H(I1) - 0.5*H(IN)
- H(I2)=H(I2) - 0.5*H(IN)
- H(IH + 4)=H(IN)
- DO 45 J=1,2
- P(J,I1)=P(J,I1) - 0.5*P(J,IN)
- P(J,I2)=P(J,I2) - 0.5*P(J,IN)
- 45 P(J,IH + 4)=P(J,IN)
- GO TO 41
- C
- C CORRECT APPROPRIATE INTERPOLATION FUNCTIONS AND THEIR DERIVATIVES
- C FOR DEGENERATED 8-NODE ELEMENTS WITH NODES 1,4,8 COLLAPSED
- C
- 50 IF (IDEGEN.LE.0) GO TO 80
- IF (ISOCOR.LE.0) GO TO 80
- C
- DH2D=R2*S2
- H(2)=H(2) + 0.125*DH2D
- H(3)=H(3) + 0.125*DH2D
- H(6)=H(6) - 0.25*DH2D
- C
- P(1,2)=P(1,2) - 0.25*R*S2
- P(2,2)=P(2,2) - 0.25*S*R2
- P(1,3)=P(1,3) - 0.25*R*S2
- P(2,3)=P(2,3) - 0.25*S*R2
- P(1,6)=P(1,6) + 0.5*R*S2
- P(2,6)=P(2,6) + 0.5*S*R2
- C
- C EVALUATE THE JACOBIAN MATRIX AT POINT (R,S)
- C
- 80 IF (IINTP.GT.0) RETURN
- DO 100 I=1,2
- DO 100 J=1,2
- DUM = 0.0
- DO 90 K=1,IEL
- 90 DUM = DUM + P(I,K)* XX(J,K)
- 100 XJ(I,J) = DUM
- C
- C COMPUTE THE DETERMINANT OF THE JACOBIAN MATRIX AT POINT (R,S)
- C
- DET = XJ(1,1)* XJ(2,2) - XJ(2,1)* XJ(1,2)
- IF(DET.GT.1.D-8) GO TO 110
- WRITE (6,2000) NG,NEL
- STOP
- 110 CONTINUE
- C
- RETURN
- C
- C
- 2000 FORMAT (////14H *** ERROR ***/18H ELEMENT GROUP NO.,I5/
- + 40H ZERO JACOBIAN DETERMINANT FOR ELEMENT (,I4,1H) )
- C
- END
- C *CDC* *DECK DERIQF
- C *UNI* )FOR.IS N.DERIQF, R.DERIQF
- SUBROUTINE DERIQF (NEL,XX,B,V,DET,R,S,X1BAR,NOD5)
- C
- C
- C EVALUATION OF THE STRAIN-DISPLACEMENT MATRIX AT POINT (R,S) FOR
- C A QUADRILATERAL ELEMENT, AXISYMMETRIC GEOMETRY
- C
- C
- IMPLICIT REAL*8 (A-H,O-Z)
- COMMON /EL/ IND,ICOUNT,NPAR(20),NUMEG,NEGL,NEGNL,IMASS,IDAMP,ISTAT
- 1 ,NDOF,KLIN,IEIG,IMASSN,IDAMPN
- COMMON /TODIM / BET,THIC,DE,IEL,NND5,ISOCOR
- DIMENSION XX(2,1),B(4,1),NOD5(1),H(8),P(2,8),
- 1 XJ(2,2),XJI(2,2),V(16)
- C
- EQUIVALENCE (NPAR(5),ITYP2D)
- C
- C
- C FIND INTERPOLATION FUNCTIONS AND JACOBIAN
- C
- IINTP=0
- CALL FUNCTF (R,S,H,P,NOD5,XJ,DET,XX,NEL,IINTP)
- C
- C
- C COMPUTE INVERSE OF THE JACOBIAN MATRIX
- C
- DUM = 1.0/DET
- XJI(1,1) = XJ(2,2)* DUM
- XJI(1,2) =-XJ(1,2)* DUM
- XJI(2,1) =-XJ(2,1)* DUM
- XJI(2,2) = XJ(1,1)* DUM
- C
- C EVALUATE GLOBAL DERIVATIVE OPERATOR ( B-MATRIX )
- C
- DO 130 K=1,IEL
- K2=K*2
- B(1,K2-1) = 0.
- B(1,K2 ) = 0.
- B(2,K2-1) = 0.
- B(2,K2 ) = 0.
- DO 120 I=1,2
- B(1,K2-1) = B(1,K2-1) + XJI(1,I) * P(I,K)
- 120 B(2,K2 ) = B(2,K2 ) + XJI(2,I) * P(I,K)
- B(3,K2 ) = B(1,K2-1)
- 130 B(3,K2-1) = B(2,K2 )
- C
- C FORM VOLUMETRIC STRAIN-DISPLACEMENT TRANSFORMATION VECTOR V
- C
- ND=2*IEL
- DO 51 J=1,ND,2
- V(J)=B(1,J)
- J1=J+1
- 51 V(J1)=B(2,J1)
- C
- IF (ITYP2D.GT.0) RETURN
- C
- C COMPUTE THE RADIUS AT POINT (R,S)
- C
- X1BAR = 0.0
- DO 50 K=1,IEL
- 50 X1BAR = X1BAR + H(K)* XX(1,K)
- C
- C EVALUATE THE HOOP STRAIN-DISPLACEMENT RELATION
- C
- IF(X1BAR.GT.1.D-8) GO TO 150
- C
- C FOR THE CASE OF ZERO RADIUS EQUATE RADIAL TO HOOP STRAIN
- C
- DO 140 K=1,ND
- 140 B(4,K)=B(1,K)
- DO 30 I=1,ND,2
- 30 V(I)=V(I)+B(4,I)
- RETURN
- C
- C NON-ZERO RADIUS
- C
- 150 DUM = 1.0/X1BAR
- DO 160 K=1,IEL
- K2=K*2
- B(4,K2 ) = 0.
- 160 B(4,K2-1) = H(K) * DUM
- DO 20 I=1,ND,2
- 20 V(I)=V(I)+B(4,I)
- C
- RETURN
- C
- C
- END
- C *CDC* *DECK QUADMF
- C *UNI* )FOR,IS N.QUADMF, R.QUADMF
- SUBROUTINE QUADMF (NEL,ND,XM,CM,XX,NOD5)
- C
- C
- C ROUTINE TO CALCULATE THE MASS MATRIX OF
- C A QUADRILATERAL ELEMENT.
- C
- C
- IMPLICIT REAL*8 (A-H,O-Z)
- COMMON /EL/ IND,ICOUNT,NPAR(20),NUMEG,NEGL,NEGNL,IMASS,IDAMP,ISTAT
- 1 ,NDOF,KLIN,IEIG,IMASSN,IDAMPN
- COMMON /TODIM / BET,THIC,DE,IEL,NND5,ISOCOR
- COMMON /GAUSS/ XG(4,4),WGT(4,4),EVAL2(9,2),EVAL3(27,3),E1,E2,E3
- DIMENSION XM(24),D(16),XX(2,8),NOD5(1),CM(136)
- DIMENSION H(8),P(2,8) ,XJ(2,2)
- C
- EQUIVALENCE (NPAR(5),ITYP2D)
- C
- C
- C INTEGRATE --- CONSISTENT OR LUMPED MASS MATRIX
- C
- IINTP=0
- IF (IMASS.EQ.1) GO TO 9
- DO 8 I=1,136
- 8 CM(I)=0.
- 9 DO 7 I=1,ND
- 7 XM(I)=0.
- C
- DO 100 LX=1,3
- R=XG(LX,3)
- DO 100 LY=1,3
- S=XG(LY,3)
- WT=WGT(LX,3)*WGT(LY,3)
- C
- C
- C FIND INTERPOLATION FUNCTIONS AND JACOBIAN
- C
- CALL FUNCTF (R,S,H,P,NOD5,XJ,DET,XX,NEL,IINTP)
- C
- C COMPUTE THE RADIUS AT POINT (R,S)
- C
- IF (ITYP2D.EQ.0) GO TO 40
- IF (ITYP2D.GT.0) XBAR=1.
- GO TO 60
- 40 XBAR=0.0
- DO 50 K=1,IEL
- 50 XBAR=XBAR + H(K)*XX(1,K)
- C
- 60 FAC=WT*XBAR*DET*DE
- C
- C CONSISTENT MASS
- C
- IF (IMASS.LT.2) GO TO 320
- DO 200 I = 1,IEL
- D(2*I-1) = H(I)
- 200 D(2*I) = H(I)
- KL=1
- DO 300 I=1,ND,2
- DO 301 J=I,ND,2
- CM(KL)=CM(KL) + D(I)*D(J)*FAC
- 301 KL=KL + 2
- 300 KL=KL + ND - I
- GO TO 100
- C
- C LUMPED MASS
- C
- 320 NDPN=2
- FACM=FAC/IEL
- DO 325 I=1,ND,NDPN
- 325 XM(I)=XM(I) + FACM
- C
- 100 CONTINUE
- C
- IF (IMASS.EQ.1) GO TO 335
- C
- KL=1
- DO 401 I=1,ND,2
- KS=KL + ND - I + 1
- DO 400 J=I,ND,2
- CM(KS)=CM(KL)
- KS=KS + 2
- 400 KL=KL + 2
- 401 KL=KL + ND - I
- C
- RETURN
- C
- C
- C
- 335 DO 340 I=1,ND,NDPN
- 340 XM(I+1)=XM(I)
- C
- RETURN
- C
- C
- END
- C *CDC* *DECK OVL150
- C *CDC* OVERLAY (ADINA,15,0)
- C *CDC* *DECK THDMFL
- C *UNI* )FOR,IS N.THDMFL, R.THDMFL
- SUBROUTINE THDMFL
- C *CDC* PROGRAM THDMFL
- C
- C
- C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
- C . .
- C . F L U I D M O D E L S .
- C . .
- C . MODEL = 1 INVISCID COMPRESSIBLE CONSTANT BULK MODULUS .
- C . 2 INVISCID COMPRESSIBLE PRESSURE DEPENDENT BULK MODULUS .
- C . .
- C . S T O R A G E .
- C . .
- C . N101 LM ARRAY (ELEMENT CONNECTIVITY) .
- C . N102 XYZ ARRAY (ELEMENT COORDINATES) .
- C . .
- C . N103 IELTD .
- C . N104 IELTX .
- C . N105 IPST .
- C . N106 MATP .
- C . N107 NOD9 (MIDSIDE NODES LOCATION ARRAY) .
- C . N108 IREUSE .
- C . .
- C . N109 DEN .
- C . N110 PROP (MATERIAL CONSTANTS) .
- C . N111 WA (WORKING ARRAY) .
- C . N112 ETIMV (ELEMENT EXPIRY TIME ARRAY, IF IDEATH EQ. 1) .
- C . N113 EDISB (ELEMENT BIRTHTIME NODAL COORDINATES) .
- C . N114 ISKEW (SKEW COORDINATES FLAG) +.
- C . N115 ISO (ELEMENT DEGENERATION FLAG) .
- C . .
- C . N116 S (ELEMENT STIFFNESS MATRIX) .
- C . N117 XM .
- C . N118 B (COMPACTED STRAIN-DISPLACEMENT MATRIX) .
- C . N119 RE .
- C . N120 EDIS .
- C . .
- C . .
- C . .
- C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
- C
- C
- C
- IMPLICIT REAL*8 (A-H,O-Z)
- C
- COMMON /SOL/ NUMNP,NEQ,NWK,NWM,NWC,NUMEST,MIDEST,MAXEST,NSTE,MA
- COMMON /DIM/ N0,N1,N2,N3,N4,N5,N6,N7,N8,N9,N10,N11,N12,N13,N14,N15
- COMMON /DIMETC/ N01,N02,N03,N04,N05,N06,N07,N08,N09
- COMMON /FREQIF/ ISTOH,N1A,N1B,N1C
- COMMON /DIMEL/ N101,N102,N103,N104,N105,N106,N107,N108,N109,N110,
- 1 N111,N112,N113,N114,N120,N121,N122,N123,N124,N125
- COMMON /EL/ IND,ICOUNT,NPAR(20),NUMEG,NEGL,NEGNL,IMASS,IDAMP,ISTAT
- 1 ,NDOF,KLIN,IEIG,IMASSN,IDAMPN
- COMMON /THREED/ DE,IELD,IELX,IEL,NPT,IDW,NND9,ISOCOR
- COMMON /DPR/ ITWO
- COMMON /ELGLTH/ NFIRST,NLAST,NBCEL
- COMMON /JUNK/ IHED(18),MTOT,LPROG
- COMMON /VAR/ NG,MODEX,IUPDT,KSTEP,ITEMAX,IEQREF,ITE,KPRI,
- 1 IREF,IEQUIT,IPRI,KPLOTN,KPLOTE
- COMMON /SKEW / NSKEWS
- COMMON /ELSTP / TIME,IDTHF
- COMMON /PRCON/ IDATWR,IPRIC,NPB,IDC,IVC,IAC,IPC,IPNODE(3,15)
- COMMON /PORT/ INPORT,JNPORT,NPUTSV,LUNODE,LU1,LU2,LU3,JDC,JVC,JAC
- COMMON /ISUBST/ ISUBC,NSUBST,NSUB,NTUSE,NEGLS,NEGNLS,NUMNPS,
- 1 NODCON,NODRET,IDOFS(6),NDOFS,NEQS,NWKS,MAXESC,
- 2 MAS,NSTAPE,ILOA(13),KRSIZM,NEQC
- COMMON /PRSHAP/ KSHAPE
- C
- COMMON A(1)
- REAL A
- DIMENSION IA(1)
- EQUIVALENCE (A(1),IA(1))
- C
- DIMENSION NMCON(6),IDWAS(6),NDWS(6),DATA(20)
- C
- EQUIVALENCE (NPAR(1),NPAR1),(NPAR(2),NUME),(NPAR(3),INDNL),
- 1 (NPAR(4),IDEATH),(NPAR(6),NEGSKS),(NPAR(7),MXNODS),
- 2 (NPAR(8),IDEGEN),(NPAR(10),NINT),(NPAR(11),NINTZ),
- 3 (NPAR(13),NTABLE),(NPAR(15),MODEL),(NPAR(16),NUMMAT),
- 4 (NPAR(17),NCON)
- C
- DATA RECLB1 /8HTYPE-3 /
- C
- DATA NMCON / 1, 0, 4*0/,
- 1 IDWAS / 0, 0, 4*0/,
- 2 NDWS / 0, 0, 4*0/
- C
- C
- C
- IF (IND.NE.0) GO TO 100
- IF (IDEGEN.GT.0) KSHAPE=1
- C
- C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
- C . I N P U T P H A S E .
- C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
- C
- C CHECK ON RANGE AND SET DEFAULTS FOR NPAR VECTOR
- C
- ISTOP=0
- MODMAX=6
- C
- IF (NUME.GT.0) GO TO 10
- ISTOP=ISTOP+1
- IF (ISTOP.EQ.1) WRITE (6,2100) NG
- ISUB=2
- IRANGE=1
- WRITE (6,2400) ISTOP,ISUB,IRANGE,ISUB,NPAR(ISUB)
- C
- 10 IF (INDNL.GE.0 .AND. INDNL.LE.1) GO TO 15
- ISTOP=ISTOP+1
- IF (ISTOP.EQ.1) WRITE (6,2100) NG
- ISUB=3
- WRITE (6,2200) ISTOP,ISUB,ISUB,NPAR(ISUB)
- INMIN=0
- INMAX=1
- WRITE (6,2250) ISUB,INMIN,INMAX
- C
- 15 IF (IDEATH.NE.0) IDTHF=1
- IF (IDEATH.GE.0 .AND. IDEATH.LE.2) GO TO 25
- ISTOP=ISTOP+1
- IF (ISTOP.EQ.1) WRITE (6,2100) NG
- ISUB=4
- WRITE (6,2200) ISTOP,ISUB,ISUB,NPAR(ISUB)
- INMIN=0
- INMAX=2
- WRITE (6,2250) ISUB,INMIN,INMAX
- C
- 25 IF (MXNODS.LE.0) MXNODS=21
- IF (MXNODS.LE.21) GO TO 28
- ISTOP=ISTOP+1
- IF (ISTOP.EQ.1) WRITE (6,2100) NG
- ISUB=7
- IRANGE=21
- WRITE (6,2300) ISTOP,ISUB,IRANGE,ISUB,NPAR(ISUB)
- C
- 28 IF (IDEGEN.GE.0 .AND. IDEGEN.LE.1) GO TO 30
- ISTOP=ISTOP+1
- IF (ISTOP.EQ.1) WRITE (6,2100) NG
- ISUB=8
- WRITE (6,2200) ISTOP,ISUB,ISUB,NPAR(ISUB)
- INMIN=0
- INMAX=1
- WRITE (6,2250) ISUB,INMIN,INMAX
- C
- 30 IF (NINT.LE.0) NINT=2
- IF (NINT.LE.4) GO TO 32
- ISTOP=ISTOP+1
- IF (ISTOP.EQ.1) WRITE (6,2100) NG
- ISUB=10
- IRANGE=4
- WRITE (6,2300) ISTOP,ISUB,IRANGE,ISUB,NPAR(ISUB)
- C
- 32 IF (NINTZ.LE.0) NINTZ=2
- IF (NINTZ.LE.4) GO TO 35
- ISTOP=ISTOP+1
- IF (ISTOP.EQ.1) WRITE (6,2100) NG
- ISUB=11
- IRANGE=4
- WRITE (6,2300) ISTOP,ISUB,IRANGE,ISUB,NPAR(ISUB)
- C
- 35 IF (MODEL.LE.0) MODEL=1
- IF (MODEL.LE.MODMAX) GO TO 40
- ISTOP=ISTOP+1
- IF (ISTOP.EQ.1) WRITE (6,2100) NG
- ISUB=15
- WRITE (6,2300) ISTOP,ISUB,MODMAX,ISUB,NPAR(ISUB)
- C
- 40 IF (NUMMAT.LE.0) NUMMAT=1
- C
- IF (MODEL.GT.1) GO TO 45
- C
- NCON=NMCON(MODEL)
- IDW=IDWAS(MODEL)
- NPAR(20)=IDW
- GO TO 50
- C
- C EMPTY MODEL - STOP IMMEDIATELY
- C
- 45 ISTOP=ISTOP+1
- IF (ISTOP.EQ.1) WRITE (6,2100) NG
- WRITE (6,2450) MODEL
- WRITE (6,2700) ISTOP
- STOP
- C
- C
- C
- C CHECK ON COMPATIBILITY BETWEEN ELEMENTS OF NPAR
- C
- C 1. COMPATIBILITY OF INDNL AND IDEATH
- C
- 50 ISUB=3
- IF (INDNL.GT.0) GO TO 55
- IF (IDEATH.EQ.0) GO TO 54
- ISTOP=ISTOP+1
- IF (ISTOP.EQ.1) WRITE (6,2100) NG
- ISUD=4
- WRITE (6,2500) ISTOP,ISUB,NPAR(ISUB),ISUD,NPAR(ISUD)
- C
- C
- C 2. COMPATIBILITY OF INDNL AND MODEL
- C
- C INDNL = 0
- C
- 54 IF (MODEL.EQ.1) GO TO 60
- ISTOP=ISTOP+1
- IF (ISTOP.EQ.1) WRITE (6,2100) NG
- ISUD=15
- WRITE (6,2500) ISTOP,ISUB,NPAR(ISUB),ISUD,NPAR(ISUD)
- GO TO 60
- C
- C INDNL = 1 ALLOW CONSTANT BULK MODULUS MODEL ONLY
- C
- 55 IF (MODEL.EQ.1) GO TO 60
- ISTOP=ISTOP+1
- IF (ISTOP.EQ.1) WRITE (6,2100) NG
- ISUD=15
- WRITE (6,2500) ISTOP,ISUB,NPAR(ISUB),ISUD,NPAR(ISUD)
- C
- C 3. COMPATIBILITY OF NEGSKS AND NSKEWS
- C
- 60 IF (NEGSKS.EQ.0) GO TO 65
- IF (NSKEWS.GT.0) GO TO 65
- ISUB=6
- ISTOP=ISTOP+1
- IF (ISTOP.EQ.1) WRITE (6,2100) NG
- WRITE (6,2550) ISTOP,NSKEWS,ISUB,NPAR(ISUB)
- C
- C
- C
- 65 IF (ISTOP.EQ.0) GO TO 75
- WRITE (6,2700) ISTOP
- INPUT=5
- BACKSPACE INPUT
- READ (5,1000) DATA
- WRITE (6,2800) (I,I=1,8),DATA
- GO TO 80
- C
- 75 IF (IDATWR.GT.1) GO TO 90
- C
- C PRINT OUT NPAR VECTOR
- C
- 80 WRITE (6,2900) NPAR1
- WRITE (6,2905) NUME,INDNL,IDEATH
- WRITE (6,2920) NEGSKS,MXNODS,IDEGEN
- WRITE (6,2930) NINT,NINTZ,NTABLE
- WRITE (6,2940) MODEL
- WRITE (6,2960) NUMMAT,NCON,IDW
- C
- 90 IF (ISTOP.EQ.0) GO TO 95
- IF (MODEX.EQ.0) GO TO 95
- WRITE (6,2750)
- STOP
- C
- C
- C*** DATA PORTHOLE *************************** (START)
- C
- 95 IF (JNPORT.EQ.0 .OR. NPUTSV.EQ.0) GO TO 100
- RECLAB=RECLB1
- WRITE (LU3) RECLAB,NG,(NPAR(I),I=1,20),NSUB
- C
- C*** DATA PORTHOLE *************************** ( END )
- C
- C
- C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
- C . E N D O F C H E C K O N N P A R V E C T O R .
- C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
- C
- C
- 100 NDM=3*MXNODS
- NDM2=(NDM*NDM)/2 + NDM/2 + 1
- ND9DIM=MXNODS - 8
- IDW=NPAR(20)
- NDW=NDWS(MODEL)
- IDWA=IDW*(NINT*NINT*NINTZ)
- C
- C STORAGE ALLOCATION
- C
- NFIRST=N6
- IF (IND.EQ.4) NFIRST=N10
- N101=NFIRST + 20
- N102=N101 + NDM*NUME
- N103=N102 + NDM*NUME*ITWO
- C
- N104=N103 + NUME
- N105=N104 + NUME
- N106=N105 + NUME
- N107=N106 + NUME
- N108=N107 + ND9DIM*NUME
- N109=N108 + NUME
- C
- N110=N109 + NUMMAT*ITWO
- N111=N110 + NCON*NUMMAT*ITWO
- N112=N111 + IDWA*NUME*ITWO
- MM=0
- IF (IDEATH.GT.0) MM=1
- N113=N112 + MM*NUME*ITWO
- MM=0
- IF (IDEATH.EQ.1) MM=1
- N114=N113 + MM*NUME*NDM*ITWO
- N115=N114
- IF (NEGSKS.GT.0) N115=N114 + NUME*MXNODS
- NLAST=N115 + IDEGEN*NUME
- C
- N116=NLAST + 1
- N117=N116 + NDM2*ITWO
- N118=N117 + NDM*ITWO
- N119=N118 + NDM*ITWO
- N120=N119 + NDM*ITWO
- N121=N120 + NDM*ITWO - 1
- C
- NI=N121 - NLAST
- IF (NBCEL.LT.NI) NBCEL=NI
- C
- IF (IND.NE.0) GO TO 105
- C
- J=NFIRST-1
- DO 102 I=1,20
- J=J+1
- 102 IA(J)=NPAR(I)
- C
- MIDEST=(NLAST-NFIRST) + 1
- IF (IDATWR.LE.1) WRITE (6,2000) NG,MIDEST
- CALL SIZE (N121)
- C
- 105 IF (IND.GT.3) GO TO 110
- M2=N2
- M3=N3
- M4=N4
- GO TO 120
- 110 M2=N2
- M3=N7
- M4=N8
- IF (ICOUNT.LT.3) GO TO 120
- M2=N6
- C
- 120 CALL THDFL (A(N06),A(N1A),A(N1),A(M2),A(M3),A(M4),A(N5),A(N101),
- 1 A(N102),A(N103),A(N104),A(N105),A(N106),A(N107),
- 2 A(N108),A(N109),A(N110),A(N111),A(N116),A(N117),
- 3 A(N118),A(N119),A(N120),A(N112),A(N113),A(N114),
- 4 A(N115),NTABLE,NCON,IDWA,NDM,NDM2,NDOF,ND9DIM,MXNODS)
- C
- C
- RETURN
- C
- C
- 1000 FORMAT (20A4)
- C
- 2000 FORMAT (///38H S T O R A G E I N F O R M A T I O N/
- 1 //49H LENGTH OF ARRAY NEEDED FOR STORING ELEMENT GROUP/
- 2 12H DATA (GROUP,I3,26H). . . . . . . . . . . . .,
- 4 15H( MIDEST ). . =,I5//)
- C
- 2100 FORMAT (////28H *** I N P U T E R R O R -//
- 1 60H ERROR IN ELEMENT GROUP CONTROL CARDS (3-DIM FLUID ELEMENT)/
- 2 16H ELEMENT GROUP =, I5/)
- 2200 FORMAT (I5,7H. NPAR(,I2,27H) IS OUT OF RANGE ... NPAR(,I2,
- 1 3H) =,I5)
- 2250 FORMAT (6X,8H ( NPAR(,I2,15H) SHOULD BE LE.,I1,8H AND GE.,I1,2H ))
- 2300 FORMAT (I5,7H. NPAR(,I2,16H) SHOULD BE .LE., I2,10H ... NPAR(,I2,
- 1 3H) =,I5)
- 2400 FORMAT (I5,7H. NPAR(,I2,16H) SHOULD BE .GE., I2,10H ... NPAR(,I2,
- 1 3H) =,I5)
- 2450 FORMAT (I5,48H. REQUESTED MATERIAL MODEL IS NOT AVAILABLE ... ,
- 1 11H NPAR(15) =,I2)
- 2500 FORMAT (I5,7H. NPAR(,I2,3H) =,I2,10H AND NPAR(,I2,3H) =,I2,
- 1 19H ARE NOT COMPATIBLE )
- 2550 FORMAT (I5,10H. NSKEWS =,I2,10H AND NPAR(,I2,3H) =,I2,
- 1 19H ARE NOT COMPATIBLE )
- 2700 FORMAT (//25H TOTAL NUMBER OF ERRORS =,I5//
- 1 48H CARD IMAGE LISTING AND PRINT-OUT OF NPAR VECTOR/
- 2 48H (WITH DEFAULTS ENFORCED) ARE GIVEN BELOW ------)
- 2800 FORMAT (///34H CARD IMAGE LISTING OF NPAR VECTOR //29X,8(I1,9X)/
- 1 15H COLUMN NUMBERS,5X,8(10H1234567890)/
- 2 15H NPAR VECTOR ,5X,20A4 // )
- 2750 FORMAT (//// 23H STOP (ERRORS IN NPAR) )
- C
- 2900 FORMAT (36H E L E M E N T D E F I N I T I O N ///,
- 1 14H ELEMENT TYPE ,13(2H .),16H( NPAR(1) ). . =,I5/,
- 2 25H EQ.1, TRUSS ELEMENTS/,
- 3 31H EQ.2, 2-DIM SOLID ELEMENTS/,
- 4 31H EQ.3, 3-DIM SOLID ELEMENTS/,
- 5 25H EQ.4, BEAM ELEMENTS/,
- 5 28H EQ.5, ISO/BEAM ELEMENTS/,
- 6 28H EQ.6, PLATE ELEMENTS /,
- C 25H EQ.7, SHELL ELEMENTS/,
- D 25H EQ.8,9,10, EMPTY /,
- 2 32H EQ.11, 2-DIM FLUID ELEMENTS/,
- 5 32H EQ.12, 3-DIM FLUID ELEMENTS /)
- 2905 FORMAT (20H NUMBER OF ELEMENTS.,10(2H .),16H( NPAR(2) ). . =,I5//,
- 1 40H TYPE OF NONLINEAR ANALYSIS . . . . . . ,
- 2 16H( NPAR(3) ). . =,I5/,
- 3 40H EQ.0, LINEAR /,
- 4 44H EQ.1, UPDATED LAGRANGIAN FORMULATION //
- 5 32H ELEMENT BIRTH AND DEATH OPTIONS ,4(2H .),
- 6 16H( NPAR(4) ). . =,I5/,
- 7 28H EQ.0, OPTION NOT ACTIVE/,
- 8 30H EQ.1, BIRTH OPTION ACTIVE /,
- 9 30H EQ.2, DEATH OPTION ACTIVE )
- 2920 FORMAT(/23H SKEW COORDINATE SYSTEM/
- 1 40H REFERENCE INDICATOR . . . . . . . .,
- 2 16H( NPAR(6) ). . =,I5/
- 3 28H EQ.0, ALL ELEMENT NODES/
- 4 37H USE THE GLOBAL SYSTEM ONLY/
- 5 35H EQ.1, ELEMENT NODES REFER /
- 6 36H TO SKEW COORDINATE SYSTEM//
- 7 32H MAX NUMBER OF NODES DESCRIBING /,
- 8 20H ANY ONE ELEMENT,10(2H .),16H( NPAR(7) ). . =,I5//,
- 9 24H DEGENERATION INDICATOR ,8(2H .),
- A 16H( NPAR(8) ). . =,I5/,
- B 44H EQ.0, NO DEGENERATION OR NO CORRECTION /,
- C 44H FOR SPATIAL ISOTROPY /,
- D 44H EQ.1, SPATIAL ISOTROPY CORRECTIONS /,
- E 44H APPLIED TO SPECIALLY /,
- F 44H DEGENERATED 20-NODE ELEMENTS //)
- 2930 FORMAT (40H INTEGRATION ORDER (R-S DIRECTION) FOR /,
- 1 40H ELEMENT STIFFNESS GENERATION. . . .,
- 2 16H( NPAR(10)). . =,I5//,
- 3 40H INTEGRATION ORDER (T DIRECTION) FOR /,
- 4 40H ELEMENT STIFFNESS GENERATION. . . .,
- 5 16H( NPAR(11)). . =,I5//,
- 6 40H PRESSURE PRINT FLAG . . . . . . . . . .,
- 7 16H( NPAR(13)). . =,I5/
- 8 38H EQ.0, PRINT AT INTEGRATION POINTS ///)
- 2940 FORMAT (38H M A T E R I A L D E F I N I T I O N///,
- 1 16H MATERIAL MODEL.,12(2H .),16H( NPAR(15)). . =,I5/,
- 2 42H EQ. 1, INVISCID CONSTANT BULK MODULUS/
- 3 52H EQ. 2, INVISCID PRESSURE DEPENDENT BULK MODULUS/
- 4 19H EQ. 3, (EMPTY)/
- 5 19H EQ. 4, (EMPTY)/
- 6 19H EQ. 5, (EMPTY)/
- 7 19H EQ. 6, (EMPTY)/)
- 2960 FORMAT (37H NUMBER OF DIFFERENT SETS OF MATERIAL /,
- 1 14H CONSTANTS,13(2H .),16H( NPAR(16)). . =,I5//,
- 2 40H NUMBER OF MATERIAL CONSTANTS PER SET. .,
- 3 16H( NPAR(17)). . =,I5//,
- 4 32H DIMENSION OF STORAGE ARRAY (WA)/,
- 5 26H PER INTEGRATION POINT,7(2H .),16H( NPAR(20)). . =,
- 6 I5//)
- C
- END
- C *CDC* *DECK THDFL
- C *UNI* )FOR,IS N.THDFL, R.THDFL
- SUBROUTINE THDFL (RSDCOS,NODSYS,ID,X,Y,Z,HT,LM,XYZ,IELTD,IELTX,
- 1 IPST,MATP,NOD9,IREUSE,DEN,PROP,WA,S,XM,B,RE,
- 2 EDIS,ETIMV,EDISB,ISKEW,ISO,NTABLE,NCON,IDWA,
- 3 NDM,NDM2,NDOF,ND9DIM,MXNODS)
- C
- C
- C
- IMPLICIT REAL*8 (A-H,O-Z)
- COMMON /EL/ IND,ICOUNT,NPAR(20),NUMEG,NEGL,NEGNL,IMASS,IDAMP,ISTAT
- 1 ,NDOFDM,KLIN,IEIG,IMASSN,IDAMPN
- COMMON /SOL/ NUMNP,NEQ,NWK,NWM,NWC,NUMEST,MIDEST,MAXEST,NSTE,MA
- COMMON /DIM/ N0,N1,N2,N3,N4,N5,N6,N7,N8,N9,N10,N11,N12,N13,N14,N15
- COMMON /CONST/ DT,DTA,A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11
- 1 ,A12,A13,A14,A15,A16,A17,A18,A19,A20,DTOD,IOPE
- COMMON/ELSTP/TIME,IDTHF
- COMMON /VAR/ NG,MODEX,IUPDT,KSTEP,ITEMAX,IEQREF,ITE,KPRI,
- 1 IREF,IEQUIT,IPRI,KPLOTN,KPLOTE
- COMMON /PRCON/ IDATWR,IPRIC,NPB,IDC,IVC,IAC,IPC,IPNODE(3,15)
- COMMON /PORT/ INPORT,JNPORT,NPUTSV,LUNODE,LU1,LU2,LU3,JDC,JVC,JAC
- COMMON /THREED/ DE,IELD,IELX,IEL,NPT,IDW,NND9,ISOCOR
- COMMON /MTMD3D/ D(6,6),STRESS(6),STRAIN(6),IPT,N,IPS
- COMMON /DISDR/ DISD(9)
- COMMON /GAUSS/ XG(4,4),WGT(4,4),EVAL2(9,2),EVAL3(27,3),E1,E2,E3
- COMMON /EM3D/ NOD(21),NODM(21),NOD9M(13)
- COMMON /MDFRDM/ IDOF(6)
- COMMON /RANDI/ N0A,N1D,IELCPL
- COMMON /ADDB/ NEQL,NEQR,MLA,NBLOCK
- COMMON /SKEW / NSKEWS
- COMMON /ISUBST/ ISUBC,NSUBST,NSUB,NTUSE,NEGLS,NEGNLS,NUMNPS,
- 1 NODCON,NODRET,IDOFS(6),NDOFS,NEQS,NWKS,MAXESC,
- 2 MAS,NSTAPE,ILOA(13),KRSIZM,NEQC
- C
- COMMON A(1)
- REAL A
- C
- DIMENSION ID(NDOF,1),X(1),Y(1),Z(1),HT(1),LM(NDM,1),XYZ(NDM,1),
- 1 IELTD(1),IELTX(1),IPST(1),MATP(1),DEN(1),PROP(NCON,1),
- 2 WA(IDWA,1),S(1),XM(1),B(1),RE(1),EDIS(1),ETIMV(1),
- 3 NOD9(ND9DIM,1),IREUSE(1),EDISB(NDM,1),ISO(1)
- DIMENSION RSDCOS(9,1),NODSYS(1),ISKEW(MXNODS,1)
- DIMENSION XXX(63),IPTABL(8),H(21),P(3,21),XJ(3,3),XYZINT(3,64)
- C
- INTEGER ANODE
- EQUIVALENCE (NPAR(2),NUME),(NPAR(3),INDNL),(NPAR(4),IDEATH),
- 1 (NPAR(6),NEGSKS),(NPAR(10),NINT),(NPAR(11),NINTZ),
- 2 (NPAR(15),MODEL),(NPAR(16),NUMMAT),(NPAR(8),IDEGEN)
- C
- DATA ANODE /4HNODE/, RECLB1/8HTYPE-3 /, RECLB2/8HMATERAL3/,
- 1 RECLB3/8HOUTABLE3/, RECLB4/8HELEMENT3/,
- 2 RECLB5/8HNEWSTEP3/, RECLB6/8HOUTPUT-3/, RECLB7/8HIPOINT-3/
- C
- C
- C
- C .. NOTE .. DURING TIME INTEGRATION X=DISPLACEMENT
- C Y=VELOCITY
- C Z=ACCELERATION
- C
- C
- IELCPL=0
- IF (JNPORT.EQ.0) GO TO 3
- IPTABL(1)=1
- IPTABL(2)=NINTZ
- IPTABL(3)=NINTZ*(NINT-1) + 1
- IPTABL(4)=NINT*NINTZ
- IPTABL(5)=NINT*NINTZ*(NINT-1) + 1
- IPTABL(6)=IPTABL(5) + NINTZ - 1
- IPTABL(7)=IPTABL(5) + NINTZ*(NINT-1)
- IPTABL(8)=IPTABL(7) + NINTZ - 1
- C
- 3 IF (KPRI.EQ.0) GO TO 800
- IF (IND.GT.0) GO TO 420
- C
- ISCONT=0
- IF (NSKEWS.GT.0 .AND. NEGSKS.EQ.0) ISCONT=1
- IJPORT=1
- IF (JNPORT.EQ.0 .OR. NPUTSV.EQ.0) IJPORT=0
- C
- C
- C
- C R E A D A N D G E N E R A T E F L U I D
- C E L E M E N T I N F O R M A T I O N
- C
- C
- NPT=NINT*NINT*NINTZ
- IDW=IDWA/NPT
- DO 10 I=1,NUMMAT
- READ(5,1000) N,DEN(N)
- READ(5,1001) (PROP(J,N), J=1,NCON)
- 10 CALL MATWRF (N,DEN(N),PROP(1,N))
- C
- C READ FLUID ELEMENT INFORMATION
- C
- IELN=8
- IF (MXNODS.GT.8) IELN=21
- IF (IDATWR.GT.1) GO TO 95
- WRITE (6,2005) (ANODE,I,I=1,IELN)
- WRITE (6,2006)
- 95 CONTINUE
- N=1
- IREAD=5
- IF (INPORT.GT.0) IREAD=59
- C
- C*** DATA PORTHOLE (START)
- C
- IF (IJPORT.EQ.0) GO TO 100
- RECLAB=RECLB2
- WRITE (LU3) RECLAB,NUMMAT,NCON,(DEN(I),I=1,NUMMAT),
- 1 ((PROP(I,J),I=1,NCON),J=1,NUMMAT)
- RECLAB=RECLB3
- IF(NTABLE.EQ.0)
- 1 WRITE (LU3) RECLAB,NTABLE
- C
- C*** DATA PORTHOLE (END)
- C
- 100 READ (IREAD,1004) M,IELD,IELX,IPS,MTYP,IST,KG,ETIME,INTLOC
- IF (N.EQ.1 .AND. M.NE.1) GO TO 101
- IF (IDEATH.EQ.2 .AND. ETIME.EQ.0.) ETIME=100000.
- IF (IELD.EQ.0) IELD=MXNODS
- IF (IELX.EQ.0) IELX=IELD
- IEL=IELD
- IF (IELX.GT.IELD) IELX=IELD
- READ(IREAD,1005) (NOD(I),I=1,8)
- READ(IREAD,1005) (NOD(I),I=9,21)
- IF (NDM.GE.IEL*3) GO TO 105
- WRITE(6,2010) M
- STOP
- 101 WRITE (6,2011) NSUB,NG
- STOP
- 105 IF (KG.EQ.0) KG=1
- C
- IF (M.NE.N) GO TO 200
- 121 DO 110 I=1,IELN
- 110 NODM(I)=NOD(I)
- IF (IEL.EQ.8) GO TO 115
- II=0
- DO 114 I=9,21
- NN=NOD(I)
- IF (NN.EQ.0) GO TO 114
- II=II + 1
- NOD9M(II)=I
- 114 CONTINUE
- NN=II + 8
- IF (NN.EQ.IEL) GO TO 115
- WRITE(6,2090) N
- STOP
- 115 IELM=IEL
- IELDM=IELD
- IELXM=IELX
- IPSM=IPS
- MTYPE=MTYP
- ISTM=IST
- KKK=KG
- ETIM=ETIME
- INTLM=INTLOC
- C
- C SAVE FLUID ELEMENT INFORMATION
- C
- 200 I2=0
- DO 130 I=1,IELM
- II=NODM(I)
- IF (I.LE.8) GO TO 131
- JJ=NOD9M(I-8)
- II=NODM(JJ)
- 131 I2=I2 + 3
- XYZ(I2-2,N)=X(II)
- XYZ(I2-1,N)=Y(II)
- XYZ(I2,N)=Z(II)
- IF (ISCONT.EQ.0) GO TO 129
- IF (NODSYS(II).EQ.0) GO TO 130
- WRITE (6,2410) NG,N,NEGSKS
- STOP
- 129 IF (NEGSKS.GT.0) ISKEW(I,N)=NODSYS(II)
- 130 CONTINUE
- C
- IF (NEGSKS.EQ.0) GO TO 134
- DO 133 I=1,IELM
- IF (ISKEW(I,N).NE.0) GO TO 134
- 133 CONTINUE
- ISKEW(1,N)=-1
- C
- 134 IF (IDEGEN.LE.0) GO TO 136
- ISOCOR=1
- IF (IELM.NE.20 .OR. NODM(17).NE.NODM(20)) GO TO 138
- IF (NODM(1).NE.NODM(4) .OR. NODM(1).NE.NODM(12)) GO TO 138
- IF (NODM(5).NE.NODM(8) .OR. NODM(5).NE.NODM(16)) GO TO 138
- IF (NODM(1).EQ.NODM(5) .OR. NODM(2).EQ.NODM(6) .OR.
- 1 NODM(3).EQ.NODM(7)) GO TO 138
- IF (NODM(5).EQ.NODM(6) .OR. NODM(6).EQ.NODM(7) .OR.
- 1 NODM(5).EQ.NODM(7)) GO TO 138
- ICOLPS=0
- IF (NODM(3).EQ.NODM(2) .AND. NODM(10).EQ.NODM(2)) ICOLPS=ICOLPS+1
- IF (NODM(2).EQ.NODM(1) .AND. NODM(9).EQ.NODM(1)) ICOLPS=ICOLPS+1
- IF (NODM(3).EQ.NODM(1) .AND. NODM(11).EQ.NODM(1)) ICOLPS=ICOLPS+1
- IF (ICOLPS.EQ.0) ISOCOR=2
- IF (ICOLPS.EQ.3) ISOCOR=3
- IF (ISOCOR.GT.1 .AND. IELXM.NE.IELDM) IELXM=8
- 138 ISO(N)=ISOCOR
- 136 MATP(N)=MTYPE
- IELTD(N)=IELDM
- IELTX(N)=IELXM
- IPST(N)=IPSM
- IREUSE(N)=ISTM
- IF (IELM.EQ.8) GO TO 135
- NN=IELM - 8
- DO 132 I=1,NN
- 132 NOD9(I,N)=NOD9M(I)
- 135 KK=-3
- DO 140 I=1,IELM
- II=NODM(I)
- IF (I.LE.8) GO TO 137
- JJ=NOD9M(I-8)
- II=NODM(JJ)
- 137 KK=KK + 3
- LL=1
- DO 140 L=1,3
- LM(KK+L,N)=0
- IF (IDOF(L).EQ.1) GO TO 140
- LM(KK+L,N)=ID(LL,II)
- LL=LL+1
- 140 CONTINUE
- IF (IDEATH.EQ.0) GO TO 150
- IF (IDEATH.EQ.2) GO TO 156
- DO 158 L=1,NDM
- 158 EDISB(L,N)=0.
- ETIMV(N)=-ETIM
- GO TO 150
- 156 ETIMV(N)=ETIM
- C
- C UPDATE COLUMN HEIGHTS AND BANDWIDTH
- C
- 150 ND=IELM*3
- CALL COLHT(HT,ND,LM(1,N))
- C
- C PRINT FLUID ELEMENT INFORMATION
- C
- IF (IDATWR.LE.1)
- 1 WRITE (6,2004) N,IELDM,IELXM,IPSM,MTYPE,ISTM,KKK,ETIM,INTLM,
- 2 (NODM(I),I=1,IELN)
- IF (IJPORT.EQ.0 .AND. INTLM.EQ.0) GO TO 159
- C
- C CALCULATE GLOBAL COORDINATES OF INTEGRATION POINTS
- C
- KINTP=0
- IELTP=IEL
- IEL=IELM
- IELX=IELXM
- NND9=IELM-8
- DO 164 LX=1,NINT
- RINTP=XG(LX,NINT)
- DO 164 LY=1,NINT
- SINTP=XG(LY,NINT)
- DO 164 LZ=1,NINTZ
- TINTP=XG(LZ,NINTZ)
- KINTP=KINTP+1
- IX=0
- XINT=0.
- YINT=0.
- ZINT=0.
- C
- CALL FFUNCT (RINTP,SINTP,TINTP,H,P,NOD9M,XJ,DET,XYZ(1,N),1)
- C
- DO 165 NDPT=1,IELXM
- IX=IX+3
- XINT=XINT + H(NDPT)*XYZ(IX-2,N)
- YINT=YINT + H(NDPT)*XYZ(IX-1,N)
- 165 ZINT=ZINT + H(NDPT)*XYZ(IX,N)
- C
- XYZINT(1,KINTP)=XINT
- XYZINT(2,KINTP)=YINT
- XYZINT(3,KINTP)=ZINT
- C
- C PRINT INTEGRATION POINT LOCATIONS IF INTLM.GT.0
- C
- IF (IDATWR.GT.1 .OR. INTLM.LE.0) GO TO 164
- WRITE (6,2008) KINTP,(XYZINT(L,KINTP),L=1,3)
- 164 CONTINUE
- C
- IEL=IELTP
- C
- C*** DATA PORTHOLE (START)
- C
- RECLAB=RECLB4
- IF (IJPORT.EQ.0) GO TO 159
- WRITE (LU3) RECLAB,N,IELDM,IELXM,IPSM,MTYPE,ISTM,ETIM,INTLM,
- 1 IELN,(NODM(I),I=1,IELN)
- RECLAB = RECLB7
- WRITE (LU3) RECLAB,NPT,((XYZINT(L,I),L=1,3),I=1,NPT)
- C
- C*** DATA PORTHOLE (END)
- C
- C
- 159 CONTINUE
- IF (N.EQ.NUME) GO TO 170
- N=N+1
- DO 160 I=1,IELN
- IF (NODM(I).EQ.0) GO TO 160
- NODM(I)=NODM(I) + KKK
- 160 CONTINUE
- IF (N-M) 200,121,100
- C
- 170 IF (NEGSKS.EQ.0) RETURN
- DO 175 N=1,NUME
- IF (ISKEW(1,N).GE.0) GO TO 180
- 175 CONTINUE
- WRITE (6,2400) NG,NEGSKS
- C
- 180 RETURN
- C
- C
- 420 GO TO (440,560,560,700), IND
- C
- C
- C A S S E M B L E F L U I D L I N E A R
- C S T I F F N E S S M A T R I X
- C
- C
- 440 DO 445 I=1,NDM
- RE(I)=0.0
- 445 EDIS(I)=0.0
- NPT=NINT*NINT*NINTZ
- DO 500 N=1,NUME
- MTYPE=MATP(N)
- IELD=IELTD(N)
- IELX=IELTX(N)
- IEL=IELD
- IST=IREUSE(N)
- ISOCOR=ISO(N)
- ND=3*IELD
- NND9=IELD - 8
- CALL ECHECK (LM(1,N),ND,ICODE,IUPDT)
- IF (ICODE.EQ.1) GO TO 500
- IF (NBLOCK.EQ.1 .AND. IST.NE.0) GO TO 525
- DO 480 I=1,NDM2
- 480 S(I)=0.0
- C
- CALL FQUADS (ND,B,S,XYZ(1,N),PROP(1,MTYPE),
- 1 RE,EDIS,WA(1,N),NOD9(1,N))
- IF (NEGSKS.EQ.0) GO TO 525
- IF (ISKEW(1,N).LT.0) GO TO 525
- CALL ATKA (RSDCOS,S,ISKEW(1,N),IELD,3)
- C
- 525 CONTINUE
- CALL ADDBAN (A(N2),A(N1),S,RE,LM(1,N),ND,1)
- 500 CONTINUE
- C
- RETURN
- C
- C A S S E M B L E F L U I D M A S S M A T R I X
- C
- C
- 560 DO 640 N=1,NUME
- MTYPE=MATP(N)
- IELD=IELTD(N)
- IELX=IELTX(N)
- IEL=IELD
- ISOCOR=ISO(N)
- ND=3*IELD
- NND9=IELD - 8
- DE=DEN(MTYPE)
- IF (IMASS.EQ.1) GO TO 520
- CALL ECHECK (LM(1,N),ND,ICODE,IUPDT)
- IF (ICODE.EQ.1) GO TO 640
- 520 IF (NBLOCK.EQ.1 .AND. IST.NE.0) GO TO 550
- C
- CALL FQUADM (N,ND,NDM2,XM,S,XYZ(1,N),NOD9(1,N))
- C
- 550 IF (IMASS.EQ.2) GO TO 580
- CALL ADDMA (A(N4),XM,LM(1,N),ND)
- GO TO 640
- 580 IF (NEGSKS.EQ.0) GO TO 590
- IF (ISKEW(1,N).LT.0) GO TO 590
- CALL ATKA (RSDCOS,S,ISKEW(1,N),IELD,3)
- 590 CALL ADDBAN (A(N2),A(N1),S,RE,LM(1,N),ND,1)
- 640 CONTINUE
- C
- RETURN
- C
- C
- C A S S E M B L E N O N L I N E A R F I N A L F L U I D
- 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
- C
- C
- 700 MADR=N3
- IF (ICOUNT.EQ.3) MADR=N5
- ISTIF=0
- IF (ICOUNT.NE.3 .AND. IREF.EQ.0) ISTIF=1
- C
- DO 710 N=1,NUME
- MTYPE=MATP(N)
- IELD=IELTD(N)
- IELX=IELTX(N)
- ISOCOR=ISO(N)
- IEL=IELD
- ND=3*IELD
- NND9=IELD - 8
- CALL ECHECK (LM(1,N),ND,ICODE,IUPDT)
- IF (ICODE .EQ. 1) IELCPL=IELCPL + 1
- IF (ICODE.EQ.1) GO TO 710
- IF (IDEATH.EQ.0) GO TO 720
- ETIM=DABS(ETIMV(N))
- IF (IDEATH.EQ.2) GO TO 712
- IF (TIME.LT.ETIM) GO TO 710
- IF (ETIMV(N).GE.0.) GO TO 720
- ETIMV(N)=ETIM
- DO 714 I=1,ND
- II=LM(I,N)
- IF (II.EQ.0) GO TO 714
- IF (II.LT.0) II=NEQ - II
- EDISB(I,N)=X(II)
- 714 CONTINUE
- IF (NEGSKS.EQ.0) GO TO 720
- IF (ISKEW(1,N).LT.0) GO TO 720
- CALL DIRCOS (RSDCOS,EDISB(1,N),ISKEW(1,N),IELD,3,1)
- GO TO 720
- 712 IF (TIME.GT.ETIM) GO TO 710
- 720 DO 740 I=1,ND
- RE(I)=0.0
- EDIS(I)=0.0
- XXX(I)=XYZ(I,N)
- II=LM(I,N)
- IF (II) 736,740,737
- 736 II=NEQ - II
- 737 EDIS(I)=X(II)
- 740 CONTINUE
- IF (NEGSKS.EQ.0) GO TO 742
- IF (ISKEW(1,N).LT.0) GO TO 742
- CALL DIRCOS (RSDCOS,EDIS,ISKEW(1,N),IELD,3,1)
- 742 DO 750 I=1,NDM2
- 750 S(I)=0.0
- C
- IF (IDEATH.NE.1) GO TO 752
- DO 754 I=1,ND
- EDIS(I)=EDIS(I) - EDISB(I,N)
- 754 XXX(I)=XXX(I) + EDISB(I,N)
- 752 CALL FQUADS (ND,B,S,XXX,PROP(1,MTYPE),
- 1 RE,EDIS,WA(1,N),NOD9(1,N))
- C
- IF (NEGSKS.EQ.0) GO TO 760
- IF (ISKEW(1,N).LT.0) GO TO 760
- CALL DIRCOS (RSDCOS,RE,ISKEW(1,N),IELD,3,2)
- 760 CALL ADDBAN (A(MADR),A(N1),S,RE,LM(1,N),ND,2)
- C
- IF (ISTIF.EQ.0) GO TO 710
- IF (NEGSKS.EQ.0) GO TO 730
- IF (ISKEW(1,N).LT.0) GO TO 730
- CALL ATKA (RSDCOS,S,ISKEW(1,N),IELD,3)
- 730 CALL ADDBAN (A(N4),A(N1),S,RE,LM(1,N),ND,1)
- C
- 710 CONTINUE
- C
- IF (IELCPL.EQ.NUME) IELCPL=-1
- RETURN
- C
- C
- C P R E S S U R E C A L C U L A T I O N S
- C
- C
- C
- C*** DATA PORTHOLE (START)
- C
- 800 IF (JNPORT.EQ.0 .OR. KPLOTE.NE.0) GO TO 811
- RECLAB=RECLB5
- WRITE (LU3) RECLAB,NG,(NPAR(I),I=1,20),KSTEP,TIME,NEGL,NSUB
- C
- C*** DATA PORTHOLE (END)
- C
- 811 IPRNT=0
- DO 840 N=1,NUME
- IF (IDEATH.EQ.0) GO TO 790
- ETIM=DABS(ETIMV(N))
- IF (IDEATH.EQ.2) GO TO 792
- IF (TIME.LT.ETIM) GO TO 840
- GO TO 790
- 792 IF (TIME.GT.ETIM) GO TO 840
- 790 IPS=IPST(N)
- IF (IPS.EQ.0) GO TO 840
- IF (IPRI.NE.0) GO TO 802
- IPRNT=IPRNT + 1
- IF (IPRNT.NE.1) GO TO 802
- WRITE(6,2020) NG
- 802 MTYPE=MATP(N)
- IELD=IELTD(N)
- IELX=IELTX(N)
- ISOCOR=ISO(N)
- IEL=IELD
- ND=3*IEL
- NND9=IELD - 8
- C
- DO 805 I=1,ND
- EDIS(I)=0.
- II=LM(I,N)
- IF (II.EQ.0) GO TO 805
- IF (II.LT.0) II=NEQ - II
- EDIS(I)=X(II)
- 805 CONTINUE
- IF (NEGSKS.EQ.0) GO TO 845
- IF (ISKEW(1,N).LT.0) GO TO 845
- CALL DIRCOS (RSDCOS,EDIS,ISKEW(1,N),IELD,3,1)
- 845 CONTINUE
- C
- IF (IDEATH.NE.1) GO TO 801
- DO 812 I=1,ND
- 812 EDIS(I) =EDIS(I) -EDISB(I,N)
- 801 IF (INDNL.GT.0) GO TO 807
- DO 806 I=1,ND
- 806 XXX(I)=XYZ(I,N)
- IF (IDEATH.NE.1) GO TO 809
- DO 804 I=1,ND
- 804 XXX(I)=XXX(I) + EDISB(I,N)
- GO TO 809
- 807 DO 808 I=1,ND
- 808 XXX(I)=XYZ(I,N)+EDIS(I)
- C
- 809 IF (IPRI.EQ.0) WRITE (6,2035) N
- C
- C
- C CALCULATE AND PRINT PRESSURES AT INTEGRATION POINTS
- C
- IPT=0
- JPT=1
- RECLAB=RECLB6
- DO 939 LX=1,NINT
- E1=XG(LX,NINT)
- DO 939 LY=1,NINT
- E2=XG(LY,NINT)
- DO 939 LZ=1,NINTZ
- E3=XG(LZ,NINTZ)
- IPT=IPT+1
- C
- CALL FDERIQ (N,XXX,B,DET,E1,E2,E3,NOD9(1,N))
- C
- DO 910 J=1,9
- 910 DISD(J)=0.0
- DO 915 J=3,ND,3
- I=J-1
- K=J-2
- DISD(1)=DISD(1)+B(K)*EDIS(K)
- DISD(2)=DISD(2)+B(I)*EDIS(I)
- DISD(3)=DISD(3)+B(J)*EDIS(J)
- DISD(4)=DISD(4)+B(I)*EDIS(K)
- DISD(5)=DISD(5)+B(J)*EDIS(K)
- DISD(6)=DISD(6)+B(K)*EDIS(I)
- DISD(7)=DISD(7)+B(J)*EDIS(I)
- DISD(8)=DISD(8)+B(K)*EDIS(J)
- 915 DISD(9)=DISD(9)+B(I)*EDIS(J)
- C
- CALL STST3F (DISD,PRESS,PROP(1,MTYPE))
- C
- C
- IF (IPRI.EQ.0) WRITE (6,2040) IPT,PRESS
- C
- C*** DATA PORTHOLE (START)
- C
- IF (JNPORT.EQ.0 .OR. KPLOTE.NE.0) GO TO 939
- IF (IPT.NE.IPTABL(JPT)) GO TO 939
- WRITE (LU3) RECLAB,IPT,PRESS,STRAIN
- JPT=JPT + 1
- C
- C*** DATA PORTHOLE (END)
- C
- 939 CONTINUE
- 840 CONTINUE
- RETURN
- C
- C
- 1000 FORMAT (I5,F10.0)
- 1001 FORMAT (8F10.0)
- 1004 FORMAT (5I5,5X,2I5,F10.0,I5)
- 1005 FORMAT (13I5)
- 2004 FORMAT (/1H ,3I5,3X,I2,1X,3I6,2X,E11.4,2X,I4,2X,8(4X,I4)/
- 1 65X,I4,7(4X,I4)/65X,I4,7(4X,I4))
- 2005 FORMAT (///40H E L E M E N T I N F O R M A T I O N ,
- 1 ///36H M IELD IELX IPS MTYP IST
- 2 16H KG ETIME ,7H INTLOC,5X,8(A4,I1,3X)/
- 3 64X,A4,I1,3X,7(A4,I2,2X)/64X,8(A4,I2,2X))
- 2006 FORMAT (56X,11HINTEGRATION,17X,19HGLOBAL COORDINATES/
- 1 59X,5HPOINT,16X,1HX,12X,1HY,12X,1HZ)
- 2008 FORMAT (1H ,57X,I4,12X,2(E11.4,2X),E11.4)
- 2010 FORMAT(///12H *** ELEMENT,I5,46H+EXCEEDS MAXIMUM NUMBER OF NODES (
- 1NPAR(4)) ***)
- 2011 FORMAT(///23H INPUT ERROR **********/
- 1 19H SUBSTRUCTURE NO =,I3/
- 2 19H ELEMENT GROUP NO =,I3/
- 3 31H FIRST ELEMENT NUMBER MUST BE 1)
- 2020 FORMAT (1H1,47HP R E S S U R E C A L C U L A T I O N S F O R,
- 1 3X,24HE L E M E N T G R O U P,3X,I2,3X,11H(3/D FLUID)/)
- 2035 FORMAT (I8)
- 2040 FORMAT (13X,I5,E15.4)
- 2090 FORMAT(44H *** STOP - INCORRECT NODAL DATA FOR EL. NO. ,I5)
- 2400 FORMAT (///16H ELEMENT GROUP =,I2,30H (3/D FLUID ELEMENT / THDFL)
- 1 /19H ALTHOUGH NPAR(6) =,I2,22H, NONE OF THE ELEMENTS/
- 2 49H IN THIS GROUP REFERS TO SKEW COORDINATE SYSTEMS./
- 3 50H IT IS ADVISED THAT NPAR(6) BE SET TO ZERO TO SAVE,
- 4 15H STORAGE SPACE.//
- 5 39H THIS IS ONLY AN INFORMATIONAL MESSAGE.///)
- 2410 FORMAT (///16H ELEMENT GROUP =,I2,30H (3/D FLUID ELEMENT / THDFL)
- 1 /16H ELEMENT NUMBER=,I4/10H NPAR(6) =,I2//
- 2 53H SINCE NODES OF THIS ELEMENT REFER TO SKEW COORDINATE/
- 3 37H SYSTEM(S), NPAR(6) MUST BE SET TO 1.//8H S T O P)
- C
- END