35
36
37
38#include "implicit_f.inc"
39
40
41
42#include "param_c.inc"
43
44
45
46 INTEGER, INTENT(IN) :: NEL
47 INTEGER MXT(*)
49 1 dxx(*) ,dyy(*) ,dzz(*) ,d4(*) ,d5(*) ,d6(*) ,
50 2 rx(*) ,ry(*) ,rz(*) ,sx(*) ,sy(*) ,sz(*) ,
51 3 tx(*) ,ty(*) ,tz(*) ,eint(*),vol0(*),sigs(*),
52 4 pm(npropm,*), dt1
53 DOUBLE PRECISION
54 . VOL0DP(*)
55
56
57
58 INTEGER I,MX
60 . aa, dxy, dyz, dzx, drr, dss, dtt, drs, dst, dtr,
61 . shf,a11,a12,a13,a21,a22,a23,a31,a32,a33,e,nu,d11
62
63 mx = mxt(1)
64 e = pm(20,mx)
65 nu = pm(21,mx)
66 DO i=1,nel
67 shf = five_over_6
68 aa = em01 * sigs(i)* ((one +nu) * (one -nu-nu)) / (e * (one -nu))
69
70 dxy = half * d4(i)
71 dyz = half * d5(i)
72 dzx = half * d6(i)
73
74 a11 = dxx(i)*rx(i)+dxy*ry(i)+dzx*rz(i)
75 a12 = dxx(i)*sx(i)+dxy*sy(i)+dzx*sz(i)
76 a13 = dxx(i)*tx(i)+dxy*ty(i)+dzx*tz(i)
77 a21 = dxy*rx(i)+dyy(i)*ry(i)+dyz*rz(i)
78 a22 = dxy*sx(i)+dyy(i)*sy(i)+dyz*sz(i)
79 a23 = dxy*tx(i)+dyy(i)*ty(i)+dyz*tz(i)
80 a31 = dzx*rx(i)+dyz*ry(i)+dzz(i)*rz(i)
81 a32 = dzx*sx(i)+dyz*sy(i)+dzz(i)*sz(i)
82 a33 = dzx*tx(i)+dyz*ty(i)+dzz(i)*tz(i)
83
84 drr = rx(i)*a11+ry(i)*a21+rz(i)*a31
85 dss = sx(i)*a12+sy(i)*a22+sz(i)*a32
86 dtt = tx(i)*a13+ty(i)*a23+tz(i)*a33
87 dtr = tx(i)*a11+ty(i)*a21+tz(i)*a31
88 drs = rx(i)*a12+ry(i)*a22+rz(i)*a32
89 dst = sx(i)*a13+sy(i)*a23+sz(i)*a33
90
91 vol0(i) = vol0(i) * (one + aa)
92 vol0dp(i) = vol0dp(i) * (one + aa)
93 eint(i) = eint(i) / (1. + aa)
94 dss = dss - aa/dt1
95
96 drs = drs * shf
97 dst = dst * shf
98
99 a11 = drr*rx(i)+drs*sx(i)+dtr*tx(i)
100 a12 = drr*ry(i)+drs*sy(i)+dtr*ty(i)
101 a13 = drr*rz(i)+drs*sz(i)+dtr*tz(i)
102 a21 = drs*rx(i)+dss*sx(i)+dst*tx(i)
103 a22 = drs*ry(i)+dss*sy(i)+dst*ty(i)
104 a23 = drs*rz(i)+dss*sz(i)+dst*tz(i)
105 a31 = dtr*rx(i)+dst*sx(i)+dtt*tx(i)
106 a32 = dtr*ry(i)+dst*sy(i)+dtt*ty(i)
107 a33 = dtr*rz(i)+dst*sz(i)+dtt*tz(i)
108
109 dxx(i)= rx(i)*a11+sx(i)*a21+tx(i)*a31
110 dyy(i)= ry(i)*a12+sy(i)*a22+ty(i)*a32
111 dzz(i)= rz(i)*a13+sz(i)*a23+tz(i)*a33
112 dzx = rz(i)*a11+sz(i)*a21+tz(i)*a31
113 dxy = rx(i)*a12+sx(i)*a22+tx(i)*a32
114 dyz = ry(i)*a13+sy(i)*a23+ty(i)*a33
115
116 d4(i) = two * dxy
117 d5(i) = two * dyz
118 d6(i) = two * dzx
119 ENDDO
120
121 RETURN