Changeset 41c5343
- Timestamp:
- 12/15/10 18:20:30 (2 years ago)
- Branches:
- master, external, fix-prolong, refactor, refactor-subsolvers
- Children:
- 609702e
- Parents:
- 82697a3
- git-author:
- Oleg Batrashev <ogbash@…> (12/15/10 18:20:30)
- git-committer:
- Oleg Batrashev <ogbash@…> (12/15/10 18:20:30)
- File:
-
- 1 edited
-
src/solvers/subsolvers.F90 (modified) (6 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/solvers/subsolvers.F90
r82697a3 r41c5343 27 27 use DOUG_utils 28 28 use Fact_class 29 use SpMtx_class 30 use SpMtx_arrangement 29 31 implicit none 30 32 … … 49 51 contains 50 52 51 subroutine sum_with_interf(nnz, val, indi, indj, & 52 nnz_interf, val_interf, indi_interf, indj_interf, & 53 snnz, sval, sindi, sindj) 53 subroutine sum_with_interf(nfreds, & 54 nnz, val, indi, indj, & 55 nnz_interf, val_interf, indi_interf, indj_interf, & 56 snnz, sval, sindi, sindj) 54 57 implicit none 55 integer,intent(in) :: nnz 58 integer,intent(in) :: nnz, nfreds 56 59 real(kind=rk),dimension(:) :: val 57 60 integer,dimension(:) :: indi,indj … … 63 66 integer,dimension(:) :: sindi,sindj 64 67 integer :: i, ii 68 type(SpMtx) :: TmpA ! temporary sparse matrix to sort the entries 65 69 66 70 if (numprocs==1.or..not.present(nnz_interf)) then … … 73 77 enddo 74 78 else 79 TmpA = SpMtx_newInit(nnz,nrows=nfreds,indi=indi(1:nnz),indj=indj(1:nnz),val=val(1:nnz)) 80 call SpMtx_arrange(TmpA,sort=.true.) 81 indi(1:nnz) = TmpA%indi; indj(1:nnz) = TmpA%indj; val(1:nnz) = TmpA%val 82 call SpMtx_destroy(TmpA) 83 75 84 i=1;ii=1 76 85 snnz=0 … … 974 983 else !}{ 975 984 ! the case of a single subdomain per processor: 976 call sum_with_interf(nnz, val, indi, indj, & 977 nnz_interf, val_interf, indi_interf, indj_interf, & 978 snnz, sval, sindi, sindj) 985 call sum_with_interf(nfreds, & 986 nnz, val, indi, indj, & 987 nnz_interf, val_interf, indi_interf, indj_interf, & 988 snnz, sval, sindi, sindj) 979 989 nselind=nfreds 980 990 selind(1:nselind)=(/ (i,i=1,nselind) /) … … 1361 1371 else !-} {- 1362 1372 ! the case of a single subdomain per processor: 1363 call sum_with_interf(nnz, val, indi, indj, & 1364 nnz_interf, val_interf, indi_interf, indj_interf, & 1365 snnz, sval, sindi, sindj) 1373 call sum_with_interf(nfreds, & 1374 nnz, val, indi, indj, & 1375 nnz_interf, val_interf, indi_interf, indj_interf, & 1376 snnz, sval, sindi, sindj) 1366 1377 nselind=nfreds 1367 1378 selind(1:nselind)=(/ (i,i=1,nselind) /)
Note: See TracChangeset
for help on using the changeset viewer.
