diff --git a/mlprec/mld_cilut_fact.f90 b/mlprec/mld_cilut_fact.f90 index bf842b14..c2c138bb 100644 --- a/mlprec/mld_cilut_fact.f90 +++ b/mlprec/mld_cilut_fact.f90 @@ -526,7 +526,7 @@ contains complex(psb_spk_), intent(inout) :: row(:) real(psb_spk_), intent(in) :: weight type(psb_int_heap), intent(inout) :: heap - + integer :: k,j,irb,kin,nz integer, parameter :: nrb=40 real(psb_spk_) :: dmaxup @@ -556,26 +556,26 @@ contains jmaxup = 0 dmaxup = szero nrmi = szero - + select type (aa=> a%a) type is (psb_c_csr_sparse_mat) ! ! Take a fast shortcut if the matrix is stored in CSR format ! - + do j = aa%irp(i), aa%irp(i+1) - 1 k = aa%ja(j) if ((jmin<=k).and.(k<=jmax)) then row(k) = aa%val(j)*weight call psb_insert_heap(k,heap,info) if (info /= psb_success_) exit - end if - if (kjd) then - nup = nup + 1 - if (abs(row(k))>dmaxup) then - jmaxup = k - dmaxup = abs(row(k)) + if (kjd) then + nup = nup + 1 + if (abs(row(k))>dmaxup) then + jmaxup = k + dmaxup = abs(row(k)) + end if end if end if end do @@ -584,13 +584,13 @@ contains call psb_errpush(info,name,a_err='psb_insert_heap') goto 9999 end if - + nz = aa%irp(i+1) - aa%irp(i) nrmi = weight*dnrm2(nz,aa%val(aa%irp(i)),ione) class default - + ! ! Otherwise use psb_sp_getblk, slower but able (in principle) of ! handling any format. In this case, a block of rows is extracted @@ -609,7 +609,7 @@ contains end if ktrw=1 end if - + kin = ktrw nz = trw%get_nzeros() do @@ -620,14 +620,13 @@ contains row(k) = trw%val(ktrw)*weight call psb_insert_heap(k,heap,info) if (info /= psb_success_) exit - - end if - if (kjd) then - nup = nup + 1 - if (abs(row(k))>dmaxup) then - jmaxup = k - dmaxup = abs(row(k)) + if (kjd) then + nup = nup + 1 + if (abs(row(k))>dmaxup) then + jmaxup = k + dmaxup = abs(row(k)) + end if end if end if ktrw = ktrw + 1 diff --git a/mlprec/mld_dilut_fact.f90 b/mlprec/mld_dilut_fact.f90 index 6a9a3bf5..65526c60 100644 --- a/mlprec/mld_dilut_fact.f90 +++ b/mlprec/mld_dilut_fact.f90 @@ -524,7 +524,7 @@ contains real(psb_dpk_), intent(inout) :: nrmi,row(:) real(psb_dpk_), intent(in) :: weight type(psb_int_heap), intent(inout) :: heap - + integer :: k,j,irb,kin,nz integer, parameter :: nrb=40 real(psb_dpk_) :: dmaxup @@ -554,26 +554,26 @@ contains jmaxup = 0 dmaxup = dzero nrmi = dzero - + select type (aa=> a%a) type is (psb_d_csr_sparse_mat) ! ! Take a fast shortcut if the matrix is stored in CSR format ! - + do j = aa%irp(i), aa%irp(i+1) - 1 k = aa%ja(j) if ((jmin<=k).and.(k<=jmax)) then row(k) = aa%val(j)*weight call psb_insert_heap(k,heap,info) if (info /= psb_success_) exit - end if - if (kjd) then - nup = nup + 1 - if (abs(row(k))>dmaxup) then - jmaxup = k - dmaxup = abs(row(k)) + if (kjd) then + nup = nup + 1 + if (abs(row(k))>dmaxup) then + jmaxup = k + dmaxup = abs(row(k)) + end if end if end if end do @@ -582,13 +582,13 @@ contains call psb_errpush(info,name,a_err='psb_insert_heap') goto 9999 end if - + nz = aa%irp(i+1) - aa%irp(i) nrmi = weight*dnrm2(nz,aa%val(aa%irp(i)),ione) class default - + ! ! Otherwise use psb_sp_getblk, slower but able (in principle) of ! handling any format. In this case, a block of rows is extracted @@ -607,7 +607,7 @@ contains end if ktrw=1 end if - + kin = ktrw nz = trw%get_nzeros() do @@ -618,14 +618,14 @@ contains row(k) = trw%val(ktrw)*weight call psb_insert_heap(k,heap,info) if (info /= psb_success_) exit - - end if - if (kjd) then - nup = nup + 1 - if (abs(row(k))>dmaxup) then - jmaxup = k - dmaxup = abs(row(k)) + + if (kjd) then + nup = nup + 1 + if (abs(row(k))>dmaxup) then + jmaxup = k + dmaxup = abs(row(k)) + end if end if end if ktrw = ktrw + 1 diff --git a/mlprec/mld_silut_fact.f90 b/mlprec/mld_silut_fact.f90 index 667d31a2..3b8b6d65 100644 --- a/mlprec/mld_silut_fact.f90 +++ b/mlprec/mld_silut_fact.f90 @@ -525,7 +525,7 @@ contains real(psb_spk_), intent(inout) :: nrmi,row(:) real(psb_spk_), intent(in) :: weight type(psb_int_heap), intent(inout) :: heap - + integer :: k,j,irb,kin,nz integer, parameter :: nrb=40 real(psb_spk_) :: dmaxup @@ -555,26 +555,26 @@ contains jmaxup = 0 dmaxup = szero nrmi = szero - + select type (aa=> a%a) type is (psb_s_csr_sparse_mat) ! ! Take a fast shortcut if the matrix is stored in CSR format ! - + do j = aa%irp(i), aa%irp(i+1) - 1 k = aa%ja(j) if ((jmin<=k).and.(k<=jmax)) then row(k) = aa%val(j)*weight call psb_insert_heap(k,heap,info) if (info /= psb_success_) exit - end if - if (kjd) then - nup = nup + 1 - if (abs(row(k))>dmaxup) then - jmaxup = k - dmaxup = abs(row(k)) + if (kjd) then + nup = nup + 1 + if (abs(row(k))>dmaxup) then + jmaxup = k + dmaxup = abs(row(k)) + end if end if end if end do @@ -583,13 +583,13 @@ contains call psb_errpush(info,name,a_err='psb_insert_heap') goto 9999 end if - + nz = aa%irp(i+1) - aa%irp(i) nrmi = weight*dnrm2(nz,aa%val(aa%irp(i)),ione) class default - + ! ! Otherwise use psb_sp_getblk, slower but able (in principle) of ! handling any format. In this case, a block of rows is extracted @@ -597,7 +597,7 @@ contains ! rows are copied one by one into the array row, through successive ! calls to ilut_copyin. ! - + if ((mod(i,nrb) == 1).or.(nrb == 1)) then irb = min(m-i+1,nrb) call aa%csget(i,i+irb-1,trw,info) @@ -619,14 +619,13 @@ contains row(k) = trw%val(ktrw)*weight call psb_insert_heap(k,heap,info) if (info /= psb_success_) exit - - end if - if (kjd) then - nup = nup + 1 - if (abs(row(k))>dmaxup) then - jmaxup = k - dmaxup = abs(row(k)) + if (kjd) then + nup = nup + 1 + if (abs(row(k))>dmaxup) then + jmaxup = k + dmaxup = abs(row(k)) + end if end if end if ktrw = ktrw + 1 diff --git a/mlprec/mld_zilut_fact.f90 b/mlprec/mld_zilut_fact.f90 index 6be599c7..b3885648 100644 --- a/mlprec/mld_zilut_fact.f90 +++ b/mlprec/mld_zilut_fact.f90 @@ -526,7 +526,7 @@ contains complex(psb_dpk_), intent(inout) :: row(:) real(psb_dpk_), intent(in) :: weight type(psb_int_heap), intent(inout) :: heap - + integer :: k,j,irb,kin,nz integer, parameter :: nrb=40 real(psb_dpk_) :: dmaxup @@ -556,26 +556,26 @@ contains jmaxup = 0 dmaxup = dzero nrmi = dzero - + select type (aa=> a%a) type is (psb_z_csr_sparse_mat) ! ! Take a fast shortcut if the matrix is stored in CSR format ! - + do j = aa%irp(i), aa%irp(i+1) - 1 k = aa%ja(j) if ((jmin<=k).and.(k<=jmax)) then row(k) = aa%val(j)*weight call psb_insert_heap(k,heap,info) if (info /= psb_success_) exit - end if - if (kjd) then - nup = nup + 1 - if (abs(row(k))>dmaxup) then - jmaxup = k - dmaxup = abs(row(k)) + if (kjd) then + nup = nup + 1 + if (abs(row(k))>dmaxup) then + jmaxup = k + dmaxup = abs(row(k)) + end if end if end if end do @@ -587,17 +587,17 @@ contains nz = aa%irp(i+1) - aa%irp(i) nrmi = weight*dnrm2(nz,aa%val(aa%irp(i)),ione) - - + + class default - ! - ! Otherwise use psb_sp_getblk, slower but able (in principle) of - ! handling any format. In this case, a block of rows is extracted - ! instead of a single row, for performance reasons, and these - ! rows are copied one by one into the array row, through successive - ! calls to ilut_copyin. - ! + ! + ! Otherwise use psb_sp_getblk, slower but able (in principle) of + ! handling any format. In this case, a block of rows is extracted + ! instead of a single row, for performance reasons, and these + ! rows are copied one by one into the array row, through successive + ! calls to ilut_copyin. + ! if ((mod(i,nrb) == 1).or.(nrb == 1)) then irb = min(m-i+1,nrb) @@ -609,7 +609,7 @@ contains end if ktrw=1 end if - + kin = ktrw nz = trw%get_nzeros() do @@ -620,14 +620,13 @@ contains row(k) = trw%val(ktrw)*weight call psb_insert_heap(k,heap,info) if (info /= psb_success_) exit - - end if - if (kjd) then - nup = nup + 1 - if (abs(row(k))>dmaxup) then - jmaxup = k - dmaxup = abs(row(k)) + if (kjd) then + nup = nup + 1 + if (abs(row(k))>dmaxup) then + jmaxup = k + dmaxup = abs(row(k)) + end if end if end if ktrw = ktrw + 1 diff --git a/tests/pdegen/ppde.f90 b/tests/pdegen/ppde.f90 index 3c50b939..5207b03d 100644 --- a/tests/pdegen/ppde.f90 +++ b/tests/pdegen/ppde.f90 @@ -258,7 +258,7 @@ program ppde t2 = psb_wtime() - t1 call psb_amx(ictxt,t2) - amatsize = psb_sizeof(a) + amatsize = a%sizeof() descsize = desc_a%sizeof() precsize = mld_sizeof(prec) call psb_sum(ictxt,amatsize) diff --git a/tests/pdegen/runs/ppde.inp b/tests/pdegen/runs/ppde.inp index fcd3cc66..39f0ee41 100644 --- a/tests/pdegen/runs/ppde.inp +++ b/tests/pdegen/runs/ppde.inp @@ -17,7 +17,7 @@ ILU ! Subdomain solver DSCALE ILU MILU ILUT UMF SLU 1 ! Smoother/Jacobi sweeps BJAC ! Smoother type JACOBI BJAC AS; ignored for non-ML 3 ! Number of levels in a multilevel preconditioner -MINENERGY ! Kind of aggregation: SMOOTHED, NONSMOOTHED +SMOOTHED ! Kind of aggregation: SMOOTHED, NONSMOOTHED DEC ! Type of aggregation DEC SYMDEC GLB MULT ! Type of multilevel correction: ADD MULT TWOSIDE ! Side of correction PRE POST TWOSIDE (ignored for ADD)