7 allocated_space, cols, values, row_lengths, ierr)
11 integer(kind=kint),
intent(in) :: id
12 integer(kind=kint),
intent(in) :: n_requested_rows
13 integer(kind=kint),
intent(in) :: requested_rows(n_requested_rows)
14 integer(kind=kint),
intent(in) :: allocated_space
15 integer(kind=kint),
intent(out) :: cols(allocated_space)
16 real(kind=
kreal),
intent(out) :: values(allocated_space)
17 integer(kind=kint),
intent(out) :: row_lengths(n_requested_rows)
18 integer(kind=kint),
intent(out) :: ierr
21 integer(kind=kint) :: m, i, row, inod, idof, nl, nd, nu, js, je, j, jj, jdof, start
25 do i = 1, n_requested_rows
26 row = requested_rows(i) + 1
28 idof = row - (inod-1)*3
29 nl = (hecmat%indexL(inod) - hecmat%indexL(inod-1)) * 3
31 nu = (hecmat%indexU(inod) - hecmat%indexU(inod-1)) * 3
32 if (allocated_space < m + nl + nd + nu)
return
34 js = hecmat%indexL(inod-1)+1
35 je = hecmat%indexL(inod)
39 cols(m) = (jj-1)*3 + jdof - 1
40 values(m) = hecmat%AL((j-1)*9 + (idof-1)*3 + jdof)
45 cols(m) = (inod-1)*3 + jdof - 1
46 values(m) = hecmat%D((inod-1)*9 + (idof-1)*3 + jdof)
49 js = hecmat%indexU(inod-1)+1
50 je = hecmat%indexU(inod)
54 cols(m) = (jj-1)*3 + jdof - 1
55 values(m) = hecmat%AU((j-1)*9 + (idof-1)*3 + jdof)
59 row_lengths(i) = m - start
69 integer(kind=kint),
intent(in) :: id
70 integer(kind=kint),
intent(in) :: in_length
71 real(kind=
kreal),
intent(in) :: p(in_length)
72 integer(kind=kint),
intent(in) :: out_length
73 real(kind=
kreal),
intent(out) :: ap(out_length)
74 integer(kind=kint),
intent(out) :: ierr
77 real(kind=
kreal),
allocatable :: w(:)
78 integer(kind=kint) :: i
80 allocate(w(hecmat%NP*hecmat%NDOF))
81 do i = 1, hecmat%N*hecmat%NDOF
94 integer(kind=kint),
intent(in) :: id
95 real(kind=
kreal),
intent(inout) :: x(*)
96 integer(kind=kint),
intent(out) :: ierr
109 integer(kind=kint),
intent(in) :: id
110 integer(kind=kint),
intent(out) :: ierr
125 integer(kind=kint),
intent(in) :: id
126 integer(kind=kint),
intent(in) :: x_length
127 real(kind=
kreal),
intent(inout) :: x(x_length)
128 integer(kind=kint),
intent(in) :: rhs_length
129 real(kind=
kreal),
intent(in) :: rhs(rhs_length)
130 integer(kind=kint),
intent(out) :: ierr
134 real(kind=
kreal),
allocatable :: resid(:)
135 integer(kind=kint) :: i
136 real(kind=
kreal) :: commtime
137 integer(kind=kint) :: num_sweeps, i_sweep
138 integer(kind=kint) :: opt(10)
143 allocate(resid(hecmat%NP * hecmat%NDOF))
144 do i_sweep = 1, num_sweeps
151 x(i) = x(i) + resid(i)
163 integer(kind=kint),
intent(in) :: id
164 integer(kind=kint),
intent(out) :: ierr
177 integer(kind=kint),
intent(in) :: id
178 integer(kind=kint),
intent(out) :: ierr
193 integer(kind=kint),
intent(in) :: id
194 integer(kind=kint),
intent(in) :: x_length
195 real(kind=
kreal),
intent(inout) :: x(x_length)
196 integer(kind=kint),
intent(in) :: rhs_length
197 real(kind=
kreal),
intent(in) :: rhs(rhs_length)
198 integer(kind=kint),
intent(out) :: ierr
202 real(kind=
kreal),
allocatable :: resid(:)
203 integer(kind=kint) :: i
204 real(kind=
kreal) :: commtime
205 integer(kind=kint) :: num_sweeps, i_sweep
206 integer(kind=kint) :: opt(10)
211 allocate(resid(hecmat%NP * hecmat%NDOF))
212 do i_sweep = 1, num_sweeps
219 x(i) = x(i) + resid(i)
231 integer(kind=kint),
intent(in) :: id
232 integer(kind=kint),
intent(out) :: ierr