mirror of
https://github.com/sfilippone/amg4psblas.git
synced 2026-10-06 22:55:12 +00:00
Added JMIN:JMAX to internal COPYIN routines.
This commit is contained in:
@@ -198,9 +198,9 @@ contains
|
||||
!
|
||||
d(i) = dzero
|
||||
if (i<=ma) then
|
||||
call iluk_copyin(i,ma,a,m,row,rowlevs,heap,ktrw,trw)
|
||||
call iluk_copyin(i,ma,a,1,m,row,rowlevs,heap,ktrw,trw)
|
||||
else
|
||||
call iluk_copyin(i-ma,mb,b,m,row,rowlevs,heap,ktrw,trw)
|
||||
call iluk_copyin(i-ma,mb,b,1,m,row,rowlevs,heap,ktrw,trw)
|
||||
endif
|
||||
|
||||
if (debug) write(0,*)'LUINT: input Copy done'
|
||||
@@ -249,14 +249,14 @@ contains
|
||||
end subroutine mld_diluk_fctint
|
||||
|
||||
|
||||
subroutine iluk_copyin(i,m,a,jmax,row,rowlevs,heap,ktrw,trw)
|
||||
subroutine iluk_copyin(i,m,a,jmin,jmax,row,rowlevs,heap,ktrw,trw)
|
||||
use psb_base_mod
|
||||
implicit none
|
||||
type(psb_dspmat_type) :: a,trw
|
||||
integer :: i, rowlevs(:),m,ktrw,jmax
|
||||
integer :: i, rowlevs(:),m,ktrw,jmin,jmax
|
||||
real(kind(1.d0)) :: row(:)
|
||||
type(psb_int_heap) :: heap
|
||||
|
||||
|
||||
integer :: k,j,info,irb
|
||||
integer, parameter :: nrb=16
|
||||
character(len=20), parameter :: name='mld_diluk_fctint'
|
||||
@@ -273,10 +273,10 @@ contains
|
||||
!
|
||||
if (toupper(a%fida)=='CSR') then
|
||||
call psb_init_heap(heap,info)
|
||||
|
||||
|
||||
do j = a%ia2(i), a%ia2(i+1) - 1
|
||||
k = a%ia1(j)
|
||||
if ((1<=k).and.(k<=jmax)) then
|
||||
if ((jmin<=k).and.(k<=jmax)) then
|
||||
row(k) = a%aspk(j)
|
||||
rowlevs(k) = 0
|
||||
call psb_insert_heap(k,heap,info)
|
||||
@@ -294,12 +294,12 @@ contains
|
||||
end if
|
||||
ktrw=1
|
||||
end if
|
||||
|
||||
|
||||
do
|
||||
if (ktrw > trw%infoa(psb_nnz_)) exit
|
||||
if (trw%ia1(ktrw) > i) exit
|
||||
k = trw%ia2(ktrw)
|
||||
if ((1<=k).and.(k<=jmax)) then
|
||||
if ((jmin<=k).and.(k<=jmax)) then
|
||||
row(k) = trw%aspk(ktrw)
|
||||
rowlevs(k) = 0
|
||||
call psb_insert_heap(k,heap,info)
|
||||
|
||||
@@ -200,9 +200,9 @@ contains
|
||||
!
|
||||
d(i) = dzero
|
||||
if (i<=ma) then
|
||||
call ilut_copyin(i,ma,a,i,m,nlw,nup,jmaxup,nrmi,row,heap,ktrw,trw)
|
||||
call ilut_copyin(i,ma,a,i,1,m,nlw,nup,jmaxup,nrmi,row,heap,ktrw,trw)
|
||||
else
|
||||
call ilut_copyin(i-ma,mb,b,i,m,nlw,nup,jmaxup,nrmi,row,heap,ktrw,trw)
|
||||
call ilut_copyin(i-ma,mb,b,i,1,m,nlw,nup,jmaxup,nrmi,row,heap,ktrw,trw)
|
||||
endif
|
||||
|
||||
if (debug) write(0,*)'LUINT: input Copy done'
|
||||
@@ -250,11 +250,11 @@ contains
|
||||
end subroutine mld_dilut_fctint
|
||||
|
||||
|
||||
subroutine ilut_copyin(i,m,a,jd,jmax,nlw,nup,jmaxup,nrmi,row,heap,ktrw,trw)
|
||||
subroutine ilut_copyin(i,m,a,jd,jmin,jmax,nlw,nup,jmaxup,nrmi,row,heap,ktrw,trw)
|
||||
use psb_base_mod
|
||||
implicit none
|
||||
type(psb_dspmat_type) :: a,trw
|
||||
integer :: i, m,ktrw,jmax,jd,nlw,nup,jmaxup
|
||||
integer :: i, m,ktrw,jmin,jmax,jd,nlw,nup,jmaxup
|
||||
real(kind(1.d0)) :: nrmi,row(:)
|
||||
type(psb_int_heap) :: heap
|
||||
|
||||
@@ -285,7 +285,7 @@ contains
|
||||
call psb_init_heap(heap,info)
|
||||
do j = a%ia2(i), a%ia2(i+1) - 1
|
||||
k = a%ia1(j)
|
||||
if ((1<=k).and.(k<=jmax)) then
|
||||
if ((jmin<=k).and.(k<=jmax)) then
|
||||
row(k) = a%aspk(j)
|
||||
call psb_insert_heap(k,heap,info)
|
||||
end if
|
||||
@@ -318,7 +318,7 @@ contains
|
||||
if (ktrw > trw%infoa(psb_nnz_)) exit
|
||||
if (trw%ia1(ktrw) > i) exit
|
||||
k = trw%ia2(ktrw)
|
||||
if ((1<=k).and.(k<=jmax)) then
|
||||
if ((jmin<=k).and.(k<=jmax)) then
|
||||
row(k) = trw%aspk(ktrw)
|
||||
call psb_insert_heap(k,heap,info)
|
||||
end if
|
||||
|
||||
@@ -197,9 +197,9 @@ contains
|
||||
!
|
||||
d(i) = zzero
|
||||
if (i<=ma) then
|
||||
call iluk_copyin(i,ma,a,m,row,rowlevs,heap,ktrw,trw)
|
||||
call iluk_copyin(i,ma,a,1,m,row,rowlevs,heap,ktrw,trw)
|
||||
else
|
||||
call iluk_copyin(i-ma,mb,b,m,row,rowlevs,heap,ktrw,trw)
|
||||
call iluk_copyin(i-ma,mb,b,1,m,row,rowlevs,heap,ktrw,trw)
|
||||
endif
|
||||
|
||||
if (debug) write(0,*)'LUINT: input Copy done'
|
||||
@@ -248,11 +248,11 @@ contains
|
||||
end subroutine mld_ziluk_fctint
|
||||
|
||||
|
||||
subroutine iluk_copyin(i,m,a,jmax,row,rowlevs,heap,ktrw,trw)
|
||||
subroutine iluk_copyin(i,m,a,jmin,jmax,row,rowlevs,heap,ktrw,trw)
|
||||
use psb_base_mod
|
||||
implicit none
|
||||
type(psb_zspmat_type) :: a,trw
|
||||
integer :: i, rowlevs(:),m,ktrw,jmax
|
||||
integer :: i, rowlevs(:),m,ktrw,jmin,jmax
|
||||
complex(kind(1.d0)) :: row(:)
|
||||
type(psb_int_heap) :: heap
|
||||
|
||||
@@ -275,7 +275,7 @@ contains
|
||||
|
||||
do j = a%ia2(i), a%ia2(i+1) - 1
|
||||
k = a%ia1(j)
|
||||
if ((1<=k).and.(k<=jmax)) then
|
||||
if ((jmin<=k).and.(k<=jmax)) then
|
||||
row(k) = a%aspk(j)
|
||||
rowlevs(k) = 0
|
||||
call psb_insert_heap(k,heap,info)
|
||||
@@ -298,7 +298,7 @@ contains
|
||||
if (ktrw > trw%infoa(psb_nnz_)) exit
|
||||
if (trw%ia1(ktrw) > i) exit
|
||||
k = trw%ia2(ktrw)
|
||||
if ((1<=k).and.(k<=jmax)) then
|
||||
if ((jmin<=k).and.(k<=jmax)) then
|
||||
row(k) = trw%aspk(ktrw)
|
||||
rowlevs(k) = 0
|
||||
call psb_insert_heap(k,heap,info)
|
||||
|
||||
@@ -200,9 +200,9 @@ contains
|
||||
!
|
||||
d(i) = zzero
|
||||
if (i<=ma) then
|
||||
call ilut_copyin(i,ma,a,i,m,nlw,nup,jmaxup,nrmi,row,heap,ktrw,trw)
|
||||
call ilut_copyin(i,ma,a,i,1,m,nlw,nup,jmaxup,nrmi,row,heap,ktrw,trw)
|
||||
else
|
||||
call ilut_copyin(i-ma,mb,b,i,m,nlw,nup,jmaxup,nrmi,row,heap,ktrw,trw)
|
||||
call ilut_copyin(i-ma,mb,b,i,1,m,nlw,nup,jmaxup,nrmi,row,heap,ktrw,trw)
|
||||
endif
|
||||
|
||||
if (debug) write(0,*)'LUINT: input Copy done'
|
||||
@@ -250,11 +250,11 @@ contains
|
||||
end subroutine mld_zilut_fctint
|
||||
|
||||
|
||||
subroutine ilut_copyin(i,m,a,jd,jmax,nlw,nup,jmaxup,nrmi,row,heap,ktrw,trw)
|
||||
subroutine ilut_copyin(i,m,a,jd,jmin,jmax,nlw,nup,jmaxup,nrmi,row,heap,ktrw,trw)
|
||||
use psb_base_mod
|
||||
implicit none
|
||||
type(psb_zspmat_type) :: a,trw
|
||||
integer :: i, m,ktrw,jmax,jd,nlw,nup,jmaxup
|
||||
integer :: i, m,ktrw,jmin,jmax,jd,nlw,nup,jmaxup
|
||||
real(kind(1.d0)) :: nrmi
|
||||
complex(kind(1.d0)) :: row(:)
|
||||
type(psb_int_heap) :: heap
|
||||
@@ -286,7 +286,7 @@ contains
|
||||
call psb_init_heap(heap,info)
|
||||
do j = a%ia2(i), a%ia2(i+1) - 1
|
||||
k = a%ia1(j)
|
||||
if ((1<=k).and.(k<=jmax)) then
|
||||
if ((jmin<=k).and.(k<=jmax)) then
|
||||
row(k) = a%aspk(j)
|
||||
call psb_insert_heap(k,heap,info)
|
||||
end if
|
||||
@@ -319,7 +319,7 @@ contains
|
||||
if (ktrw > trw%infoa(psb_nnz_)) exit
|
||||
if (trw%ia1(ktrw) > i) exit
|
||||
k = trw%ia2(ktrw)
|
||||
if ((1<=k).and.(k<=jmax)) then
|
||||
if ((jmin<=k).and.(k<=jmax)) then
|
||||
row(k) = trw%aspk(ktrw)
|
||||
call psb_insert_heap(k,heap,info)
|
||||
end if
|
||||
|
||||
Reference in New Issue
Block a user