⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 a20.for

📁 ADINA84有限元编程学习的好例子
💻 FOR
📖 第 1 页 / 共 4 页
字号:
      EPST2(J)=EPST
  465 DEPST(J)=DPST
C
C
      INDEX=1
      CALL EFST3(EST1,SX1,SY1,SZ1,SXY1,SXZ1,SYZ1,STRSS1)
C
      IF(KCRP.EQ.0) GO TO 480
C
      DO 470 J=1,6
  470 DPSC(J)=0.D0
C
      IF(EST1.LE.TOL5) GO TO 480
      TMPM=XPARM1*TEMP1 + XPARM2*TEMP2
C
      CALL CREEP3(DT,DPSC,TMPM,EPSC1,ORIGD,NORGD,STRSS1,GAMA,CRSR1,
     1            PTIME,EST1,SX1,SY1,SZ1,SXY1,SXZ1,SYZ1,FF,RR,GG,FP,
     2            INDEX,ECSTR1)
C
      DO 475 I=1,6
  475 EPSC2(I)=EPSC1(I) + DPSC(I)
C
C
  480 IF(IPELD.EQ.2) GO TO 490
C
C
      DO 482 J=1,6
  482 STRESS(J)=0.D0
C
      DO 485 I=1,6
      DO 485 J=1,6
  485 STRESS(I)=STRESS(I) + C(I,J)*(STRAIN(J) - EPSP2(J) - EPSC2(J) -
     1          EPST2(J))
C
      RETURN
C
C
C
C
  490 DO 494 J=1,5
  494 PROPM(J)=XPARM1*PROP1(J) + XPARM2*PROP2(J)
C
C
  500 YMM=PROPM(1)
      ETM=PROPM(4)
      EETM=YMM*ETM/(YMM - ETM)
C
      CALL EPMAT3(STRSS1,ALFA1,EPSTR1,DELEPS,DPSC,DPST,CEP,XLAMDA,
     1            PROP1,PROP2,PROPM,YLD1,2,A2,B2,C1,C2,DPSP,SX1,SY1,SZ1,
     2            SXY1,SXZ1,SYZ1,INDEX,EETM)
C
      DO 505 J=1,6
      STRESS(J)=0.D0
  505 EPSP2(J)=EPSP1(J) + DPSP(J)
C
      IF (IEQREF.EQ.1 .OR. XLAMDA.LT.0.D0) GO TO 520
C
C
      DO 510 I=1,6
      DO 510 J=1,6
  510 STRESS(I)=STRESS(I) - CEP(I,J)*(DPSC(J) + DEPST(J)) + C(I,J)*
     1          (STRAIN(J) - EPSP1(J) - EPSC1(J) - EPST1(J) - DPSP(J))
C
      DO 515 I=1,6
      DO 515 J=1,6
  515 C(I,J)=CEP(I,J)
C
      RETURN
C
C
  520 DO 535 I=1,6
      DO 535 J=1,6
  535 STRESS(I)=STRESS(I) + C(I,J)*(STRAIN(J) - EPSP2(J) - EPSC2(J)
     1          - EPST2(J))
C
      RETURN
C
C
C
  600 FT=YLD2
      IF(IPELD.EQ.1) FT=SQRT(1.5*FTA)
C
C
  605 IF(INDNL.EQ.2) CALL CAUCH3
C
  610 IF (IPRI.NE.0 .OR. IPS.EQ.0) GO TO 730
      IF (IPS.LT.0) GO TO 700
C
C
      IF(IPT.GT.1) GO TO 620
C
C     PRINT HEADING *
C
      write(66,2000)
C
C
      write(66,2005) NEL
C
C
  620 write(66,2200) IPT,STATE(IPELD),(STRSS2(J),J=1,6)
      write(66,2700) TEMP2,EPSTR2,ISUB,FT,YLD2,YLDC
C
      GO TO 730
C
C
  700 IF(IPT.GT.1) GO TO 720
C
C     PRINT HEADING *
C
      write(66,2000)
C
C
      write(66,2005) NEL
C
C
  720 write(66,2200) IPT,STATE(IPELD),(STRSS2(J),J=1,6)
      write(66,2300) (STRAIN(J),J=1,6)
      write(66,2400) (EPSP2(J),J=1,6)
      write(66,2500) (EPSC2(J),J=1,6)
      write(66,2600) (EPST2(J),J=1,6)
      write(66,2700) TEMP2,EPSTR2,ISUB,FT,YLD2,YLDC
C
C
  730 IF (JNPORT.EQ.0 .OR. KPLOTE.NE.0) GO TO 740
      IF (ISVE.EQ.0) GO TO 740
      IF (JNPORT.EQ.1)
     1   WRITE (IBPORT     ) 'OUTPUT-3',NEL,IPT,IPELD,ISUB,
     2                       (STRESS(I),I=1,6),(STRAIN(I),I=1,6),
     3                       (EPSP2(I),I=1,6),(EPSC2(I),I=1,6),
     4                       (EPST2(I),I=1,6),TEMP2,EPSTR2,FT,YLD2,YLDC
      IF (JNPORT.EQ.2)
     1   WRITE (IFPORT,9000) 'OUTPUT-3',NEL,IPT,IPELD,ISUB,
     2                       (STRESS(I),I=1,6),(STRAIN(I),I=1,6),
     3                       (EPSP2(I),I=1,6),(EPSC2(I),I=1,6),
     4                       (EPST2(I),I=1,6),TEMP2,EPSTR2,FT,YLD2,YLDC
C
 9000 FORMAT ( A,/,4I10,/,(4E20.13) )
C
C
  740 CONTINUE
      RETURN
C
 2000 FORMAT (1X,7HELEMENT,4X,6HSTRESS,2X,13HSTRESS/STRAIN,14X,2HXX,
     1        13X,2HYY,13X,2HZZ,13X,2HXY,13X,2HXZ,13X,2HYZ,/,1X,
     2        7HNUM/IPT,5X,5HSTATE,2X,10HCOMPONENTS)
 2005 FORMAT (/,1X,I3)
 2200 FORMAT (6X,I2,2X,A2,6HLASTIC,2X,6HSTRESS,9X,6(E14.6,1X))
 2300 FORMAT (20X,12HSTRAIN-TOTAL,3X,6(E14.6,1X))
 2400 FORMAT (25X,7HPLASTIC,3X,6(E14.6,1X))
 2500 FORMAT (27X,5HCREEP,3X,6(E14.6,1X))
 2600 FORMAT (25X,7HTHERMAL,3X,6(E14.6,1X))
 2700 FORMAT (20X,14HTEMPERATURE = ,E14.6,1X,
     1        29HACCUM. EFF. PLASTIC STRAIN = ,E14.6,1X,
     2        25HNUMBER OF SUBDIVISIONS = ,I5,/,20X,
     3        12HEFF STRESS = ,E14.6,1X,
     4        13HYLD STRESS = ,E14.6,1X,
     5        41HYLD STRESS(TMP.,ACC. EFF. PLAS. STRN.) = ,E14.6,/)
 3001 FORMAT(//,68H    ERROR   STRESS LOOP NO. 1 FAILED TO CONVERGE   (S
     1UBROUTINE EPC3))
 3002 FORMAT(//,5X,10HELEMENT = ,I5,2X,20HINTEGRATION POINT = ,I5,2X,
     1       13HSUBDIVISION = ,I5,/,5X,
     2       38HTIME RELATIVE TO START OF TIME STEP = ,E14.6,2X,
     3       40HAPPROXIMATE REQUIRED SUBDIVISION SIZE = ,E14.6)
 3003 FORMAT(//,68H    ERROR   STRESS LOOP NO. 2 FAILED TO CONVERGE   (S
     1UBROUTINE EPC3))
 3004 FORMAT(//,115H    ERROR   SUBDIVISION SIZE REQUIRED TO ELIMINATE D
     1IVERGENCE IS TOO SMALL IN STRESS LOOP NO. 1   (SUBROUTINE EPC3))
 3006 FORMAT(//,129H    ERROR   SUBDIVISION SIZE REQUIRED TO SATISFY INE
     1LASTIC STRAIN TOLERANCE IS TOO SMALL IN STRESS LOOP NO. 1   (SUBRO
     2UTINE EPC3))
 3007 FORMAT(//,114H    ERROR   MAXIMUM NUMBER OF SUBDIVISIONS WILL NOT
     1REACH END OF TIME STEP IN STRESS LOOP NO. 1 (SUBROUTINE EPC3)    )
 3008 FORMAT(//,115H    ERROR   SUBDIVISION SIZE REQUIRED TO ELIMINATE D
     1IVERGENCE IS TOO SMALL IN STRESS LOOP NO. 2   (SUBROUTINE EPC3))
 3009 FORMAT(//,129H    ERROR   SUBDIVISION SIZE REQUIRED TO SATISFY INE
     1LASTIC STRAIN TOLERANCE IS TOO SMALL IN STRESS LOOP NO. 2   (SUBRO
     2UTINE EPC3))
 3010 FORMAT(//,114H    ERROR   MAXIMUM NUMBER OF SUBDIVISIONS WILL NOT
     1REACH END OF TIME STEP IN STRESS LOOP NO. 2 (SUBROUTINE EPC3)    )
 3011 FORMAT(//,5X,10HELEMENT = ,I5,2X,20HINTEGRATION POINT = ,I5,2X,
     1       14HSUBDIVISION = ,I5,/,5X,
     2       38HTIME RELATIVE TO START OF TIME STEP = ,E14.6,2X,
     3       24HLAST SUBDIVISION SIZE = ,E14.6)
 3012 FORMAT(//,70H    ERROR   INCORRECT VALUE CALCULATED FOR *RATIO*
     1(SUBROUTINE EPC3)        )
 3013 FORMAT(//,5X,10HELEMENT = ,I5,1X,20HINTEGRATION POINT = ,I5,1X,
     1       14HSUBDIVISION = ,I5,1X,
     2       38HTIME RELATIVE TO START OF TIME STEP = ,E14.6,1X,
     3        7HIPEL = ,I2,/,5X,
     4        5HRA = ,E14.6,1X,5HRB = ,E14.6,1X,5HRD = ,E14.6,
     5        5HRE = ,E14.6,1X,5HRF = ,E14.6,1X,5HRG = ,E14.6,/,5X,
     6        8HRATIO = ,E14.6,//)
 3014 FORMAT(//,101H    ERROR   DIFFERENCE BETWEEN THE TWO MEASURES OF Y
     1IELD STRESS EXCEEDS TOLERANCE   (SUBROUTINE EPC3))
 3015 FORMAT(//,5X,10HELEMENT = ,I5,2X,20HINTEGRATION POINT = ,I5,2X,
     1       14HSUBDIVISION = ,I5,2X,
     2       38HTIME RELATIVE TO START OF TIME STEP = ,E14.6,/,5X,
     3       35HYIELD STRESS (FROM STRESS STATE) = ,E14.6,2X,
     4       48HYIELD STRESS (FROM TEMP. AND ACCUM. EFF. PLASTIC   ,
     5       10HSTRAIN) = ,E14.6,//)
C
      END
      SUBROUTINE SIGMA3(STRSS2,EPS2,EPSP2,EPST2,EPSC1,EPSC2,DPSC,GAMA,
     1                  PTIME,STRNR,F,R,G,FP,EST,SX,SY,SZ,SXY,SXZ,SYZ,
     2                  DELT,XB2,XC2,XD2)
C
C
C
C
C
      IMPLICIT DOUBLE PRECISION ( A-H,O-Z )
C***END:DPR***
      COMMON /SOLPM3/ TREF,XINTP,XCON1,XCON2,XPARM1,XPARM2,TOLIL,TOLPC,
     1              TOL1,TOL2,TOL3,TOL4,TOL5,TOL6,TCHK,CRPCON(8),DTMN,
     2              SUBDD,RNGL,RNGU,DTT,TOL7,
     3              KCRP,NITE,NALG,IINTP,NPTS,ITCHK
      COMMON /MTMD3D/ C(6,6),STRESS(6),STRAIN(6),IPT,NEL,IPS,ISVE
C
      DIMENSION STRSS2(*),EPS2(*),EPSP2(*),EPST2(*),EPSC1(*),EPSC2(*),
     1          DPSC(*),TSTRSS(6),RH(6),TC(6,6),TTC(6,6)
C
C
C
C
      DO 10 J=1,6
      TSTRSS(J)=STRSS2(J)
   10 RH(J)=0.D0
C
      DO 20 I=1,6
      DO 20 J=1,6
   20 TC(I,J)=0.D0
C
C
      DO 25 I=1,6
      DO 25 J=1,6
   25 RH(I)=RH(I) + C(I,J)*(EPS2(J) - EPSP2(J) - EPSC1(J) - DPSC(J)
     1      - EPST2(J))
C
      IF (XPARM2.GT.0.D0.AND.KCRP.GT.0.AND.EST.GT.TOL5) GO TO 35
C
      DO 30 I=1,6
      EPSC2(I)=EPSC1(I) + DPSC(I)
   30 STRSS2(I)=RH(I)
C
      RETURN
C
C
   35 A0=CRPCON(1)
      A1=CRPCON(2)
      A2=CRPCON(3)
      A3=CRPCON(4)
      A4=CRPCON(5)
      A5=CRPCON(6)
      A6=CRPCON(7)
      A7=CRPCON(8)
C
      IF (KCRP - 2) 60,40,70
C
C     CREEP LAW NO. 1 **
C
   60 GG=1.5*(A1 - A2)*GAMA / (A2*EST*EST)
      GO TO 50
C
C     CREEP LAW NO. 2 **
C
   40 C2=A4 - 1.0
      C1=1.5*A2*A4*(A3**(-A4))
      C3=1.5*A1
      C4=1.5*A6
C
      D1=EXP(-R*PTIME)*F
      D2=EST**C2
C
      DTPSP=(D1*(C3 - PTIME*C1*D2) - C3*F - PTIME*C4*G)/STRNR
C
      GG=(1.5*D1*(C1*D2 - R*(PTIME*C1*D2 + R*DTPSP - C3)) + 1.5*C4*G -
     1   1.5*GAMA)/(EST*EST)
      GO TO 50
C
C     CREEP LAW NO. 3 **
C
   70 C1=A2*(A2 - 1.)
      C2=A2 - 1.
      C3=A3*A4*(A4 - 1.)
      C4=A4 - 2.
      C5=A5*A6*(A6 - 1.)
      C6=A6 - 2.
C
      HP=C1*PTIME**C2 + C3*PTIME**C4 + C5*PTIME**C6
C
      C7=A0*A1
      C8=A1 - 1.
C
      GG=1.5*((1.5*C7*EST**C8*FP - R*HP*F/(FP*EST))*G - GAMA)/(EST*EST)
C
   50 COEF=2.0*XC2*XPARM2*DELT
C
      TC(1,1)=COEF*(GG*SX*SX + XCON1*GAMA)
      TC(1,2)=COEF*(GG*SX*SY - XCON2*GAMA)
      TC(1,3)=COEF*(GG*SX*SZ - XCON2*GAMA)
      TC(1,4)=COEF*(2.0*GG*SX*SXY)
      TC(1,5)=COEF*(2.0*GG*SX*SXZ)
      TC(1,6)=COEF*(2.0*GG*SX*SYZ)
C
      TC(2,1)=TC(1,2)
      TC(2,2)=COEF*(GG*SY*SY + XCON1*GAMA)
      TC(2,3)=COEF*(GG*SY*SZ - XCON2*GAMA)
      TC(2,4)=COEF*(2.0*GG*SY*SXY)
      TC(2,5)=COEF*(2.0*GG*SY*SXZ)
      TC(2,6)=COEF*(2.0*GG*SY*SYZ)
C
      TC(3,1)=TC(1,3)
      TC(3,2)=TC(2,3)
      TC(3,3)=COEF*(GG*SZ*SZ + XCON1*GAMA)
      TC(3,4)=COEF*(2.0*GG*SZ*SXY)
      TC(3,5)=COEF*(2.0*GG*SZ*SXZ)
      TC(3,6)=COEF*(2.0*GG*SZ*SYZ)
C
      TC(4,1)=TC(1,4)
      TC(4,2)=TC(2,4)
      TC(4,3)=TC(3,4)
      TC(4,4)=COEF*(2.0*GG*SXY*SXY + GAMA)
      TC(4,5)=COEF*(2.0*GG*SXY*SXZ)
      TC(4,6)=COEF*(2.0*GG*SXY*SYZ)
C
      TC(5,1)=TC(1,5)
      TC(5,2)=TC(2,5)
      TC(5,3)=TC(3,5)
      TC(5,4)=TC(4,5)
      TC(5,5)=COEF*(2.0*GG*SXZ*SXZ + GAMA)
      TC(5,6)=COEF*(2.0*GG*SXZ*SYZ)
C
      TC(6,1)=TC(1,6)
      TC(6,2)=TC(2,6)
      TC(6,3)=TC(3,6)
      TC(6,4)=TC(4,6)
      TC(6,5)=TC(5,6)
      TC(6,6)=COEF*(2.0*GG*SYZ*SYZ + GAMA)
C
      DO 55 I=1,6
      DO 55 J=1,6
   55 TTC(I,J)=TC(I,J)/(2.0*XC2)
C
C
   80 DO 95 I=1,6
      DO 95 J=1,6
   95 RH(I)=RH(I) + TC(I,J)*STRSS2(J)
C
      DO 110 J=1,6
  110 TC(J,J)=TC(J,J) + 1.0
C
C
      CALL EQSOL3(TC,RH,1,6)
C
      DO 130 J=1,6
  130 STRSS2(J)=RH(J)
C
C
      DO 160 I=1,6
      DO 150 J=1,6
  150 DPSC(I)=DPSC(I) + TTC(I,J)*(STRSS2(J) - TSTRSS(J))
  160 EPSC2(I)=EPSC1(I) + DPSC(I)
C
      RETURN
C
      END
      SUBROUTINE EQSOL3(A,R,KEY,N)
C
C
C
C
C
      IMPLICIT DOUBLE PRECISION ( A-H,O-Z )
C***END:DPR***
C
      DIMENSION A(6,6),R(6),ICOL(6),TR(6),IROW(6)
C
C
C
      EPS=1.D-35
      NN=N-1
      IF(KEY.EQ.2) GO TO 110
C
      DO 10 I=1,N
      IROW(I)=I
   10 ICOL(I)=I
C
      DO 100 J=1,NN
C
C
      PIVI=0.D0
      DO 20 I=J,N
      DO 20 K=J,N
      IF(ABS(A(I,K)).LE.ABS(PIVI)) GO TO 20
      IMAX=I
      KMAX=K
      PIVI=A(I,K)
   20 CONTINUE
C
      IF(ABS(PIVI).GT.EPS) GO TO 25
      write(66,7000)
      write(66,7010) J
      STOP
C
C
   25 IF(KMAX.EQ.J) GO TO 40
C
      ISAVE=ICOL(KMAX)
      ICOL(KMAX)=ICOL(J)
      ICOL(J)=ISAVE
C
      DO 30 JJ=1,N
      SAVE=A(JJ,KMAX)
      A(JJ,KMAX)=A(JJ,J)
   30 A(JJ,J)=SAVE
C
C
   40 IF(IMAX.EQ.J) GO TO 85
C
      ISAVE=IROW(IMAX)
      IROW(IMAX)=IROW(J)
      IROW(J)=ISAVE
C
      DO 50 K=1,N
      SAVE=A(J,K)
      A(J,K)=A(IMAX,K)
   50 A(IMAX,K)=SAVE
C
      SAVE=R(J)
      R(J)=R(IMAX)
      R(IMAX)=SAVE
C
C
   85 I2=J + 1
      DO 90 K2=I2,N
      XMULT=A(K2,J)/PIVI
      A(K2,J)=XMULT
      DO 90 J2=I2,N
   90 A(K2,J2)=A(K2,J2) - XMULT*A(J,J2)
C
  100 CONTINUE
      GO TO 150
C
C
C
  110 DO 120 J=1,N
      K=IROW(J)
  120 TR(J)=R(K)
C
      DO 130 J=1,N
  130 R(J)=TR(J)
C
  150 DO 200 J=1,NN
      I2=J + 1
      DO 200 K2=I2,N
      XMULT=A(K2,J)
  200 R(K2)=R(K2) - XMULT*R(J)
C
C
      DO 320 I=1,N
      TSUM=0.D0
      II=N + 1 - I
      IF(II.EQ.N) GO TO 315
      JJ=II + 1
C
      DO 310 K=JJ,N
  310 TSUM=TSUM + A(II,K)*R(K)
C
  315 R(II)=(R(II) - TSUM)/A(II,II)
  320 CONTINUE
C
C
      DO 330 J=1,N
      K=ICOL(J)
  330 TR(K)=R(J)
C
      DO 340 J=1,N
  340 R(J)=TR(J)
C
      RETURN
C
 7000 FORMAT(///,64H   ERROR   UNABLE TO OBTAIN NON-ZERO PIVOT   (SUBROU
     1TINE EQSOL3))
 7010 FORMAT(/,10X,15HPIVOT NUMBER = ,I5)
C
      END
      SUBROUTINE EFST3(EST,SX,SY,SZ,SXY,SXZ,SYZ,STRESS)
C
C
C
C
C
      IMPLICIT DOUBLE PRECISION ( A-H,O-Z )
C***END:DPR***
      COMMON /SOLPM3/ TREF,XINTP,XCON1,XCON2,XPARM1,XPARM2,TOLIL,TOLPC,
     1                TOL1,TOL2,TOL3,TOL4,TOL5,TOL6,TCHK,CRPCON(8),DTMN,
     2                SUBDD,RNGL,RNGU,DTT,TOL7,
     3                KCRP,NITE,NALG,IINTP,NPTS,ITCHK
C
      DIMENSION STRESS(6)
C
C
C
      SM=(STRESS(1) + STRESS(2) + STRESS(3))*XCON2
C
      SX=STRESS(1)-SM
      SY=STRESS(2)-SM
      SZ=STRESS(3)-SM
      SXY=STRESS(4)
      SXZ=STRESS(5)
      SYZ=STRESS(6)
C
      EST=SQRT(1.5*(SX*SX + SY*SY + SZ*SZ + 2.0*(SXY*SXY + SXZ*SXZ +
     1         SYZ*SYZ)))
C
      RETURN
C
      END
      SUBROUTINE EPMAT3(STRSSM,ALFAM,EPSTRM,DEPS,DPSC,DPST,CEP,XLAMDA,
     1                  PROP1,PROP2,PROPM,YLDM,KEY,A2,B2,C1,C2,DPSP,
     2                  SXM,SYM,SZM,SXYM,SXZM,SYZM,INDEX,EETM)
C
C
C
C
C
      IMPLICIT DOUBLE PRECISION ( A-H,O-Z )
C***END:DPR***
      COMMON /EL/ IND,ICOUNT,NPAR(20),NUMEG,NEGL,NEGNL,IMASS,IDAMP,ISTAT
     1           ,NDOF,KLIN,IEIG,IMASSN,IDAMPN
      COMMON /MTMD3D/ C(6,6),STRESS(6),STRAIN(6),IPT,NEL,IPS,ISVE
      COMMON /VAR/ NG,MODEX,IUPDT,KSTEP,ITEMAX,IEQREF,ITE,KPRI,
     1             IREF,IEQUIT,IPRI,KPLOTN,KPLOTE
      COMMON /SOLPM3/ TREF,XINTP,XCON1,XCON2,XPARM1,XPARM2,TOLIL,TOLPC,
     1               TOL1,TOL2,TOL3,TOL4,TOL5,TOL6,TCHK,CRPCON(8),DTMN,
     2               SUBDD,RNGL,RNGU,DTT,TOL7,
     3               KCRP,NITE,NALG,IINTP,NPTS,ITCHK
      COMMON /TPLAS3/ EETD,PRM,CM,CD,YSD
C
      DIMENSION STRSSM(*),ALFAM(*),DEPS(*),DPSC(*),PROP1(*),
     1          PROP2(*),PROPM(*),CEP(6,6),DPSP(6)
C
      EQUIVALENCE (NPAR(15),MODEL)
C
C
C
C
C

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -