32
33
34
35#include "implicit_f.inc"
36
37
38
39#include "mvsiz_p.inc"
40
41
42
43 INTEGER JFT, JLT
44
46 . qc(3,3,*),qcg(3,3,*),qgc(3,3,*),qg(3,3,*),
47 . g3(3,*),cc(3,3,*),
cg(3,3,*),g33(3,3,*)
48
49
50
51 INTEGER I,J,K,ISYM
52
54 . a(3,3,mvsiz),b(3,3,mvsiz)
55
56 isym = 0
57 DO j= 1,3
58 DO k= j,3
59 DO i=jft,jlt
60 a(j,k,i)=cc(j,k,i)
61 b(j,k,i)=zero
62 ENDDO
63 ENDDO
64 ENDDO
65
66 DO j= 1,3
67 DO k= j+1,3
68 DO i=jft,jlt
69 a(k,j,i)=cc(j,k,i)
70 b(k,j,i)=zero
71 ENDDO
72 ENDDO
73 ENDDO
74
75 DO j= 1,3
76 DO i=jft,jlt
77 b(j,j,i)=g3(j,i)
78 ENDDO
79 ENDDO
80 CALL cbatran3(jft ,jlt ,qc ,a ,qcg,isym)
81 CALL cbatran3(jft ,jlt ,qgc ,b ,qg ,isym)
82
83 DO j= 1,3
84 DO k= 1,3
85 DO i=jft,jlt
86 cg(j,k,i)=half*a(j,k,i)+two*b(j,k,i)
87 ENDDO
88 ENDDO
89 ENDDO
90
91 isym = 1
92 DO j= 1,3
93 DO k= j,3
94 DO i=jft,jlt
95 a(j,k,i)=cc(j,k,i)
96 b(j,k,i)=zero
97 ENDDO
98 ENDDO
99 ENDDO
100
101 DO j= 1,3
102 DO i=jft,jlt
103 b(j,j,i)=g3(j,i)
104 ENDDO
105 ENDDO
106 CALL cbatran3(jft ,jlt ,qcg ,a ,qcg,isym)
107 CALL cbatran3(jft ,jlt ,qg ,b ,qg ,isym)
108
109 DO j= 1,3
110 DO k= j,3
111 DO i=jft,jlt
112 g33(j,k,i)=fourth*a(j,k,i)+b(j,k,i)
113 ENDDO
114 ENDDO
115 ENDDO
116
117 DO j= 1,3
118 DO k= j,3
119 DO i=jft,jlt
120 a(j,k,i)=cc(j,k,i)
121 b(j,k,i)=zero
122 ENDDO
123 ENDDO
124 ENDDO
125
126 DO j= 1,3
127 DO i=jft,jlt
128 b(j,j,i)=g3(j,i)
129 ENDDO
130 ENDDO
131 CALL cbatran3(jft ,jlt ,qc ,a ,qc ,isym)
132 CALL cbatran3(jft ,jlt ,qgc ,b ,qgc,isym)
133
134 DO j= 1,3
135 DO k= j,3
136 DO i=jft,jlt
137 cc(j,k,i)=a(j,k,i)+four*b(j,k,i)
138 ENDDO
139 ENDDO
140 ENDDO
141
142 DO j= 1,3
143 DO k= j+1,3
144 DO i=jft,jlt
145 cc(k,j,i)=cc(j,k,i)
146 g33(k,j,i)=g33(j,k,i)
147 ENDDO
148 ENDDO
149 ENDDO
150
151 RETURN
subroutine cbatran3(jft, jlt, vqi, kk, vqj, isym)
subroutine cg(dim, mat, rhs, sol, max_iter, tol)