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(mvsiz,3,3),qcg(mvsiz,3,3),qgc(mvsiz,3,3),qg(mvsiz,3,3),
47 . g3(mvsiz,3),cc(mvsiz,3,3),
cg(mvsiz,3,3),g33(mvsiz,3,3)
48
49
50
51 INTEGER I,J,K,ISYM
52
54 . a(mvsiz,3,3),b(mvsiz,3,3)
55
56 isym = 0
57 DO j= 1,3
58 DO k= j,3
59 DO i=jft,jlt
60 a(i,j,k)=cc(i,j,k)
61 b(i,j,k)=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(i,k,j)=cc(i,j,k)
70 b(i,k,j)=zero
71 ENDDO
72 ENDDO
73 ENDDO
74
75 DO j= 1,3
76 DO i=jft,jlt
77 b(i,j,j)=g3(i,j)
78 ENDDO
79 ENDDO
81 CALL cbatran3v(jft ,jlt ,qgc ,b ,qg ,isym)
82
83 DO j= 1,3
84 DO k= 1,3
85 DO i=jft,jlt
86 cg(i,j,k)=half*a(i,j,k)+two*b(i,j,k)
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(i,j,k)=cc(i,j,k)
96 b(i,j,k)=zero
97 ENDDO
98 ENDDO
99 ENDDO
100
101 DO j= 1,3
102 DO i=jft,jlt
103 b(i,j,j)=g3(i,j)
104 ENDDO
105 ENDDO
106 CALL cbatran3v(jft ,jlt ,qcg ,a ,qcg,isym)
107 CALL cbatran3v(jft ,jlt ,qg ,b ,qg ,isym)
108
109 DO j= 1,3
110 DO k= j,3
111 DO i=jft,jlt
112 g33(i,j,k)=fourth*a(i,j,k)+b(i,j,k)
113 ENDDO
114 ENDDO
115 ENDDO
116
117 DO j= 1,3
118 DO k= j,3
119 DO i=jft,jlt
120 a(i,j,k)=cc(i,j,k)
121 b(i,j,k)=zero
122 ENDDO
123 ENDDO
124 ENDDO
125
126 DO j= 1,3
127 DO i=jft,jlt
128 b(i,j,j)=g3(i,j)
129 ENDDO
130 ENDDO
131 CALL cbatran3v(jft ,jlt ,qc ,a ,qc ,isym)
132 CALL cbatran3v(jft ,jlt ,qgc ,b ,qgc,isym)
133
134 DO j= 1,3
135 DO k= j,3
136 DO i=jft,jlt
137 cc(i,j,k)=a(i,j,k)+four*b(i,j,k)
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(i,k,j)=cc(i,j,k)
146 g33(i,k,j)=g33(i,j,k)
147 ENDDO
148 ENDDO
149 ENDDO
150
151 RETURN
subroutine cbatran3v(jft, jlt, vqi, kk, vqj, isym)
subroutine cg(dim, mat, rhs, sol, max_iter, tol)