37
38
39
40#include "implicit_f.inc"
41
42
43
44#include "mvsiz_p.inc"
45
46
47
48 INTEGER LFT,LLT,NEL
50 . fhour(nel,3,4),jr0(*),js0(*),jt0(*) ,nu(*),nu2(*),
51 . h11(*), h22(*), h33(*),fcl(*),
52 . h12(*), h13(*), h23(*),
53 . hgx1(*), hgx2(*), hgx3(*), hgx4(*),
54 . hgy1(*), hgy2(*), hgy3(*), hgy4(*),
55 . hgz1(*), hgz2(*), hgz3(*), hgz4(*),
56 . jr_1(*),js_1(*),jt_1(*),nfhour(mvsiz,3,4)
58 . cc(mvsiz,3,3),
cg(mvsiz,3,3),g33(mvsiz,3,3)
59
60
61
62 INTEGER I, MX, J,K
64 . t13,t22,t31,t32,sxy,syz,sxz,syx,szy,szx,
65 . s1211,s1222,s1311,s1333,s2322,s2333,
66 . t1211,t1222,t1311,t1333,t2322,t2333,t12,t23
68 . fhourt(3,4),nucc(mvsiz,3,3),r1,r2,r3
69
70 DO j=1,3
71 DO k=j,3
72 DO i=lft,llt
73 nucc(i,j,k) = nu2(i)*cc(i,j,k)
74 nucc(i,k,j) = nucc(i,j,k)
75 ENDDO
76 ENDDO
77 ENDDO
78 DO i=lft,llt
79 fhourt(1,1) = fhour(i,1,1)*jr0(i)+fcl(i)*hgx1(i)
80 fhourt(1,2) = fhour(i,1,2)*jr0(i)+fcl(i)*hgx2(i)
81 fhourt(1,3) = fhour(i,1,3)*jr0(i)+fcl(i)*hgx3(i)
82 fhourt(1,4) = fhour(i,1,4)*jr0(i)+fcl(i)*hgx4(i)
83 fhourt(2,1) = fhour(i,2,1)*js0(i)+fcl(i)*hgy1(i)
84 fhourt(2,2) = fhour(i,2,2)*js0(i)+fcl(i)*hgy2(i)
85 fhourt(2,3) = fhour(i,2,3)*js0(i)+fcl(i)*hgy3(i)
86 fhourt(2,4) = fhour(i,2,4)*js0(i)+fcl(i)*hgy4(i)
87 fhourt(3,1) = fhour(i,3,1)*jt0(i)+fcl(i)*hgz1(i)
88 fhourt(3,2) = fhour(i,3,2)*jt0(i)+fcl(i)*hgz2(i)
89 fhourt(3,3) = fhour(i,3,3)*jt0(i)+fcl(i)*hgz3(i)
90 fhourt(3,4) = fhour(i,3,4)*jt0(i)+fcl(i)*hgz4(i)
91
92 t31 = nu2(i)*
cg(i,3,1)
93 t12 = nu2(i)*
cg(i,1,2)
94 t23 = nu2(i)*
cg(i,2,3)
95 sxy = (
cg(i,1,1)-t31)*fhourt(1,2)
96 syx = (
cg(i,2,1)-t31)*fhourt(2,1)
97 syz = (
cg(i,2,2)-t12)*fhourt(2,3)
98 szy = (
cg(i,3,2)-t12)*fhourt(3,2)
99 sxz = (
cg(i,1,3)-t23)*fhourt(1,3)
100 szx = (
cg(i,3,3)-t23)*fhourt(3,1)
101 s1211 = jr0(i)*js_1(i)*fhourt(1,1)
102 s1222 = js0(i)*jr_1(i)*fhourt(2,2)
103 s1311 = jr0(i)*jt_1(i)*fhourt(1,1)
104 s1333 = jt0(i)*jr_1(i)*fhourt(3,3)
105 s2322 = js0(i)*jt_1(i)*fhourt(2,2)
106 s2333 = jt0(i)*js_1(i)*fhourt(3,3)
107 t1211 = s1211*g33(i,1,1)
108 t1222 = s1222*g33(i,1,1)
109
110 t1311 = s1311*g33(i,3,3)
111 t1333 = s1333*g33(i,3,3)
112 t2322 = s2322*g33(i,2,2)
113 t2333 = s2333*g33(i,2,2)
114 nfhour(i,1,1) = h12(i)*(sxy+t1211)+h22(i)*(syx+t1222)+
115 . h13(i)*(sxz+t1311)+h33(i)*(szx+t1333)
116 nfhour(i,2,2) = h11(i)*(sxy+t1211)+h12(i)*(syx+t1222)+
117 . h23(i)*(syz+t2322)+h33(i)*(szy+t2333)
118 nfhour(i,3,3) = h11(i)*(sxz+t1311)+h13(i)*(szx+t1333)+
119 . h22(i)*(syz+t2322)+h23(i)*(szy+t2333)
120
121 nfhour(i,1,2) = h11(i)*fhourt(1,2)*(
122 . (cc(i,1,1)-nucc(i,1,3)-nu2(i)*(cc(i,3,1)-nucc(i,3,3))))+
123 . h12(i)*fhourt(2,1)*(
124 . (cc(i,1,2)-nucc(i,1,3)-nu2(i)*(cc(i,3,2)-nucc(i,3,3))))+
125 . (
cg(i,1,1)-t31)*(h11(i)*s1211+h12(i)*s1222)
126 nfhour(i,1,3) =h11(i)*fhourt(1,3)*(
127 . (cc(i,1,1)-nucc(i,1,2)-nu2(i)*(cc(i,2,1)-nucc(i,2,2))))+
128 . h13(i)*fhourt(3,1)*(
129 . (cc(i,1,3)-nucc(i,1,2)-nu2(i)*(cc(i,2,3)-nucc(i,2,2))))+
130 . (
cg(i,1,3)-t23)*(h11(i)*s1311+h13(i)*s1333)
131 nfhour(i,1,4) = third*h11(i)*fhourt(1,4)*(
132 . (cc(i,1,1)-nu(i)*(two*(cc(i,1,2)+cc(i,1,3)-nu(i)*cc(i,2,3))-
133 . nu(i)*(cc(i,2,2)+cc(i,3,3)))))
134
135 nfhour(i,2,1) = h12(i)*fhourt(1,2)*(
136 . (cc(i,2,1)-nucc(i,2,3)-nu2(i)*(cc(i,3,1)-nucc(i,3,3))))+
137 . h22(i)*fhourt(2,1)*(
138 . (cc(i,2,2)-nucc(i,2,3)-nu2(i)*(cc(i,3,2)-nucc(i,3,3))))+
139 . (
cg(i,2,1)-t31)*(h12(i)*s1211+h22(i)*s1222)
140 nfhour(i,2,3) = h22(i)*fhourt(2,3)*(
141 . (cc(i,2,2)-nucc(i,2,1)-nu2(i)*(cc(i,1,2)-nucc(i,1,1))))+
142 . h23(i)*fhourt(3,2)*(
143 . (cc(i,2,3)-nucc(i,2,1)-nu2(i)*(cc(i,1,3)-nucc(i,1,1))))+
144 . (
cg(i,2,2)-t12)*(h22(i)*s2322+h23(i)*s2333)
145 nfhour(i,2,4) = third*h22(i)*fhourt(2,4)*(
146 . (cc(i,2,2)-nu(i)*(two*(cc(i,1,2)+cc(i,2,3)-nu(i)*cc(i,1,3))-
147 . nu(i)*(cc(i,1,1)+cc(i,3,3)))))
148
149 nfhour(i,3,1) = h13(i)*fhourt(1,3)*(
150 . (cc(i,3,1)-nucc(i,3,2)-nu2(i)*(cc(i,2,1)-nucc(i,2,2))))+
151 . h33(i)*fhourt(3,1)*(
152 . (cc(i,3,3)-nucc(i,3,2)-nu2(i)*(cc(i,2,3)-nucc(i,2,2))))+
153 . (
cg(i,3,3)-t23)*(h13(i)*s1311+h33(i)*s1333)
154 nfhour(i,3,2) = h23(i)*fhourt(2,3)*(
155 . (cc(i,3,2)-nucc(i,3,1)-nu2(i)*(cc(i,1,2)-nucc(i,1,1))))+
156 . h33(i)*fhourt(3,2)*(
157 . (cc(i,3,3)-nucc(i,3,1)-nu2(i)*(cc(i,1,3)-nucc(i,1,1))))+
158 . (
cg(i,3,2)-t12)*(h23(i)*s2322+h33(i)*s2333)
159 nfhour(i,3,4) = third*h33(i)*fhourt(3,4)*(
160 . (cc(i,3,3)-nu(i)*(two*(cc(i,1,3)+cc(i,2,3)-nu(i)*cc(i,1,2))-
161 . nu(i)*(cc(i,1,1)+cc(i,2,2)))))
162 ENDDO
163
164 RETURN
subroutine cg(dim, mat, rhs, sol, max_iter, tol)