Lines Matching refs:lhs
41 SUBROUTINE svLS_LHS_CREATE(lhs, commu, gnNo, nNo, nnz, gNodes, argument
46 TYPE(svLS_lhsType), INTENT(INOUT) :: lhs local
59 IF (lhs%foC) THEN
64 lhs%foC = .TRUE.
65 lhs%gnNo = gnNo
66 lhs%nNo = nNo
67 lhs%nnz = nnz
68 lhs%commu = commu
69 lhs%nFaces = nFaces
75 ALLOCATE (lhs%colPtr(nnz), lhs%rowPtr(2,nNo), lhs%diagPtr(nNo),
76 2 lhs%map(nNo), lhs%cS(nTasks), lhs%face(nFaces))
80 lhs%colPtr(i) = colPtr(i)
88 lhs%diagPtr(Ac) = i
93 lhs%rowPtr(1,Ac) = s
94 lhs%rowPtr(2,Ac) = e
96 lhs%map(Ac) = Ac
99 lhs%mynNo = nNo
145 lhs%cS(1)%ptr = 1
147 lhs%cS(i)%n = 0
148 lhs%cS(i)%ptr = j
150 lhs%cS(i)%ptr = lhs%cS(i-1)%ptr + lhs%cS(i-1)%n
156 lhs%cS(i)%n = lhs%cS(i)%n + 1
167 lhs%cS(i)%tag = nTasks*i + tF
169 lhs%cS(i)%tag = nTasks*tF + i
171 IF (lhs%cS(i)%n .EQ. 0) lhs%cS(i)%tag = 0
174 lhs%cS(tF)%tag = 0
175 lhs%mynNo = lhs%cS(tF)%ptr + lhs%cS(tF)%n - 1
184 lhs%map(a) = gtlPtr(Ac)
190 Ac = lhs%map(a)
191 lhs%rowPtr(1,Ac) = rowPtr(a)
192 lhs%rowPtr(2,Ac) = rowPtr(a+1) - 1
196 lhs%colPtr(i) = lhs%map(colPtr(i))
200 DO i=lhs%rowPtr(1,Ac), lhs%rowPtr(2,Ac)
201 a = lhs%colPtr(i)
203 lhs%diagPtr(Ac) = i
211 i = lhs%cS(i)%ptr + lhs%cS(i)%n - 1
216 lhs%cS(i)%nBl = 0
217 IF (lhs%cS(i)%tag .NE. 0) THEN
218 s = lhs%cS(i)%ptr
219 e = s + lhs%cS(i)%n - 1
221 CALL MPI_RECV(part(s:e), lhs%cS(i)%n, mpint, i-1,
222 2 lhs%cS(i)%tag, comm, stat, ierr)
228 lhs%cS(i)%nBl = lhs%cS(i)%nBl + 1
229 DO k=1, lhs%cS(tF)%ptr
234 a = lhs%cS(i)%nBl
235 ALLOCATE(lhs%cS(i)%blPtr(a), lhs%cS(i)%blN(a))
243 lhs%cS(i)%blN(a) = 1
244 DO k=1, lhs%cS(tF)%ptr
246 lhs%cS(i)%blPtr(a) = k
251 lhs%cS(i)%blN(a) = lhs%cS(i)%blN(a) + 1
255 CALL MPI_SEND(ltg(s:e), lhs%cS(i)%n, mpint, i-1,
256 2 lhs%cS(i)%tag, comm, stat, ierr)
269 SUBROUTINE svLS_LHS_FREE(lhs) argument
273 TYPE(svLS_lhsType), INTENT(INOUT) :: lhs local
277 IF (.NOT.lhs%foC) THEN
283 DO faIn = 1, lhs%nFaces
284 IF (lhs%face(faIn)%foC) CALL svLS_BC_FREE(lhs, faIn)
287 DO i=1, lhs%commu%nTasks
288 IF (ALLOCATED(lhs%cS(i)%blPtr)) THEN
289 DEALLOCATE(lhs%cS(i)%blPtr, lhs%cS(i)%blN)
293 lhs%foC = .FALSE.
294 lhs%gnNo = 0
295 lhs%nNo = 0
296 lhs%nnz = 0
297 lhs%nFaces = 0
299 DEALLOCATE (lhs%colPtr, lhs%rowPtr, lhs%diagPtr, lhs%map, lhs%cS,
300 2 lhs%face)
318 TYPE(svLS_lhsType), TARGET, SAVE :: lhs local
320 CALL svLS_LHS_CREATE(lhs, commu, gnNo, nNo, nnz, gNodes,
323 pLHS => lhs