diff --git a/base/serial/impl/psb_c_coo_impl.F90 b/base/serial/impl/psb_c_coo_impl.F90 index b800ce22..6cc5fd3a 100644 --- a/base/serial/impl/psb_c_coo_impl.F90 +++ b/base/serial/impl/psb_c_coo_impl.F90 @@ -4013,25 +4013,24 @@ subroutine psb_c_coo_triu(a,u,info,& nzuin = u%get_nzeros() ! At this point it should be 0 call l%allocate(mb,nb,nz) nzlin = l%get_nzeros() ! At this point it should be 0 - associate(val =>a%val, ja => a%ja, irp=>a%irp) - do i=imin_,imax_ - do k=irp(i),irp(i+1)-1 - j = ja(k) - if ((jmin_<=j).and.(j<=jmax_)) then - if ((ja(k)-i)a%val, ja => a%ja, ia=>a%ia) + loop1: do k=1,nz + i = ia(k) + j = ja(k) + if ((jmin_<=j).and.(j<=jmax_)) then + if ((j-i)a%val, ja => a%ja, irp=>a%irp) - do i=imin_,imax_ - do k=irp(i),irp(i+1)-1 - if ((jmin_<=j).and.(j<=jmax_)) then - if ((ja(k)-i)>=diag_) then - nzin = nzin + 1 - u%ia(nzin) = i - u%ja(nzin) = ja(k) - u%val(nzin) = val(k) - end if + associate(val =>a%val, ja => a%ja, ia=>a%ia) + loop2: do k=1,nz + i = ia(k) + j = ja(k) + if ((jmin_<=j).and.(j<=jmax_)) then + if ((j-i)>=diag_) then + nzin = nzin + 1 + u%ia(nzin) = i + u%ja(nzin) = ja(k) + u%val(nzin) = val(k) end if - end do - end do + end if + end do loop2 end associate call u%set_nzeros(nzin) end if diff --git a/base/serial/impl/psb_d_coo_impl.F90 b/base/serial/impl/psb_d_coo_impl.F90 index 5452ab2b..9f9f4356 100644 --- a/base/serial/impl/psb_d_coo_impl.F90 +++ b/base/serial/impl/psb_d_coo_impl.F90 @@ -4013,25 +4013,24 @@ subroutine psb_d_coo_triu(a,u,info,& nzuin = u%get_nzeros() ! At this point it should be 0 call l%allocate(mb,nb,nz) nzlin = l%get_nzeros() ! At this point it should be 0 - associate(val =>a%val, ja => a%ja, irp=>a%irp) - do i=imin_,imax_ - do k=irp(i),irp(i+1)-1 - j = ja(k) - if ((jmin_<=j).and.(j<=jmax_)) then - if ((ja(k)-i)a%val, ja => a%ja, ia=>a%ia) + loop1: do k=1,nz + i = ia(k) + j = ja(k) + if ((jmin_<=j).and.(j<=jmax_)) then + if ((j-i)a%val, ja => a%ja, irp=>a%irp) - do i=imin_,imax_ - do k=irp(i),irp(i+1)-1 - if ((jmin_<=j).and.(j<=jmax_)) then - if ((ja(k)-i)>=diag_) then - nzin = nzin + 1 - u%ia(nzin) = i - u%ja(nzin) = ja(k) - u%val(nzin) = val(k) - end if + associate(val =>a%val, ja => a%ja, ia=>a%ia) + loop2: do k=1,nz + i = ia(k) + j = ja(k) + if ((jmin_<=j).and.(j<=jmax_)) then + if ((j-i)>=diag_) then + nzin = nzin + 1 + u%ia(nzin) = i + u%ja(nzin) = ja(k) + u%val(nzin) = val(k) end if - end do - end do + end if + end do loop2 end associate call u%set_nzeros(nzin) end if diff --git a/base/serial/impl/psb_s_coo_impl.F90 b/base/serial/impl/psb_s_coo_impl.F90 index cfc4a2f9..83285cdf 100644 --- a/base/serial/impl/psb_s_coo_impl.F90 +++ b/base/serial/impl/psb_s_coo_impl.F90 @@ -4013,25 +4013,24 @@ subroutine psb_s_coo_triu(a,u,info,& nzuin = u%get_nzeros() ! At this point it should be 0 call l%allocate(mb,nb,nz) nzlin = l%get_nzeros() ! At this point it should be 0 - associate(val =>a%val, ja => a%ja, irp=>a%irp) - do i=imin_,imax_ - do k=irp(i),irp(i+1)-1 - j = ja(k) - if ((jmin_<=j).and.(j<=jmax_)) then - if ((ja(k)-i)a%val, ja => a%ja, ia=>a%ia) + loop1: do k=1,nz + i = ia(k) + j = ja(k) + if ((jmin_<=j).and.(j<=jmax_)) then + if ((j-i)a%val, ja => a%ja, irp=>a%irp) - do i=imin_,imax_ - do k=irp(i),irp(i+1)-1 - if ((jmin_<=j).and.(j<=jmax_)) then - if ((ja(k)-i)>=diag_) then - nzin = nzin + 1 - u%ia(nzin) = i - u%ja(nzin) = ja(k) - u%val(nzin) = val(k) - end if + associate(val =>a%val, ja => a%ja, ia=>a%ia) + loop2: do k=1,nz + i = ia(k) + j = ja(k) + if ((jmin_<=j).and.(j<=jmax_)) then + if ((j-i)>=diag_) then + nzin = nzin + 1 + u%ia(nzin) = i + u%ja(nzin) = ja(k) + u%val(nzin) = val(k) end if - end do - end do + end if + end do loop2 end associate call u%set_nzeros(nzin) end if diff --git a/base/serial/impl/psb_z_coo_impl.F90 b/base/serial/impl/psb_z_coo_impl.F90 index fb4aa48e..3d9562ef 100644 --- a/base/serial/impl/psb_z_coo_impl.F90 +++ b/base/serial/impl/psb_z_coo_impl.F90 @@ -4013,25 +4013,24 @@ subroutine psb_z_coo_triu(a,u,info,& nzuin = u%get_nzeros() ! At this point it should be 0 call l%allocate(mb,nb,nz) nzlin = l%get_nzeros() ! At this point it should be 0 - associate(val =>a%val, ja => a%ja, irp=>a%irp) - do i=imin_,imax_ - do k=irp(i),irp(i+1)-1 - j = ja(k) - if ((jmin_<=j).and.(j<=jmax_)) then - if ((ja(k)-i)a%val, ja => a%ja, ia=>a%ia) + loop1: do k=1,nz + i = ia(k) + j = ja(k) + if ((jmin_<=j).and.(j<=jmax_)) then + if ((j-i)a%val, ja => a%ja, irp=>a%irp) - do i=imin_,imax_ - do k=irp(i),irp(i+1)-1 - if ((jmin_<=j).and.(j<=jmax_)) then - if ((ja(k)-i)>=diag_) then - nzin = nzin + 1 - u%ia(nzin) = i - u%ja(nzin) = ja(k) - u%val(nzin) = val(k) - end if + associate(val =>a%val, ja => a%ja, ia=>a%ia) + loop2: do k=1,nz + i = ia(k) + j = ja(k) + if ((jmin_<=j).and.(j<=jmax_)) then + if ((j-i)>=diag_) then + nzin = nzin + 1 + u%ia(nzin) = i + u%ja(nzin) = ja(k) + u%val(nzin) = val(k) end if - end do - end do + end if + end do loop2 end associate call u%set_nzeros(nzin) end if