Memory allocation fixes for CSR/CSC.

psblas-3.6-maint
Salvatore Filippone 6 years ago
parent e79850acbd
commit adc3d37a11

@ -2298,7 +2298,7 @@ subroutine psb_c_mv_csc_from_coo(a,b,info)
call move_alloc(b%ja,itemp)
call move_alloc(b%ia,a%ia)
call move_alloc(b%val,a%val)
call psb_realloc(max(nr+1,nc+1),a%icp,info)
call psb_realloc(nc+1,a%icp,info)
call b%free()
a%icp(:) = 0
@ -2570,8 +2570,7 @@ subroutine psb_c_csc_reallocate_nz(nz,a)
call psb_realloc(max(nz,ione),a%ia,info)
if (info == psb_success_) call psb_realloc(max(nz,ione),a%val,info)
if (info == psb_success_) call psb_realloc(max(nz,a%get_nrows()+1,&
& a%get_ncols()+1), a%icp,info)
if (info == psb_success_) call psb_realloc(a%get_ncols()+1, a%icp,info)
if (info /= psb_success_) then
call psb_errpush(psb_err_alloc_dealloc_,name)
goto 9999

@ -1712,8 +1712,7 @@ subroutine psb_c_csr_reallocate_nz(nz,a)
call psb_realloc(max(nz,ione),a%ja,info)
if (info == psb_success_) call psb_realloc(max(nz,ione),a%val,info)
if (info == psb_success_) call psb_realloc(&
& max(nz,a%get_nrows()+1,a%get_ncols()+1),a%irp,info)
if (info == psb_success_) call psb_realloc(a%get_nrows()+1,a%irp,info)
if (info /= psb_success_) then
call psb_errpush(psb_err_alloc_dealloc_,name)
goto 9999
@ -2962,7 +2961,7 @@ subroutine psb_c_cp_csr_from_coo(a,b,info)
call move_alloc(tmp%ia,itemp)
call move_alloc(tmp%ja,a%ja)
call move_alloc(tmp%val,a%val)
call psb_realloc(max(nr+1,nc+1),a%irp,info)
call psb_realloc(nr+1,a%irp,info)
call tmp%free()
else
@ -2980,7 +2979,7 @@ subroutine psb_c_cp_csr_from_coo(a,b,info)
call psb_safe_ab_cpy(b%ia,itemp,info)
if (info == psb_success_) call psb_safe_ab_cpy(b%ja,a%ja,info)
if (info == psb_success_) call psb_safe_ab_cpy(b%val,a%val,info)
if (info == psb_success_) call psb_realloc(max(nr+1,nc+1),a%irp,info)
if (info == psb_success_) call psb_realloc(nr+1,a%irp,info)
endif
@ -3131,7 +3130,7 @@ subroutine psb_c_mv_csr_from_coo(a,b,info)
call move_alloc(b%ia,itemp)
call move_alloc(b%ja,a%ja)
call move_alloc(b%val,a%val)
call psb_realloc(max(nr+1,nc+1),a%irp,info)
call psb_realloc(nr+1,a%irp,info)
call b%free()

@ -2298,7 +2298,7 @@ subroutine psb_d_mv_csc_from_coo(a,b,info)
call move_alloc(b%ja,itemp)
call move_alloc(b%ia,a%ia)
call move_alloc(b%val,a%val)
call psb_realloc(max(nr+1,nc+1),a%icp,info)
call psb_realloc(nc+1,a%icp,info)
call b%free()
a%icp(:) = 0
@ -2570,8 +2570,7 @@ subroutine psb_d_csc_reallocate_nz(nz,a)
call psb_realloc(max(nz,ione),a%ia,info)
if (info == psb_success_) call psb_realloc(max(nz,ione),a%val,info)
if (info == psb_success_) call psb_realloc(max(nz,a%get_nrows()+1,&
& a%get_ncols()+1), a%icp,info)
if (info == psb_success_) call psb_realloc(a%get_ncols()+1, a%icp,info)
if (info /= psb_success_) then
call psb_errpush(psb_err_alloc_dealloc_,name)
goto 9999

@ -1712,8 +1712,7 @@ subroutine psb_d_csr_reallocate_nz(nz,a)
call psb_realloc(max(nz,ione),a%ja,info)
if (info == psb_success_) call psb_realloc(max(nz,ione),a%val,info)
if (info == psb_success_) call psb_realloc(&
& max(nz,a%get_nrows()+1,a%get_ncols()+1),a%irp,info)
if (info == psb_success_) call psb_realloc(a%get_nrows()+1,a%irp,info)
if (info /= psb_success_) then
call psb_errpush(psb_err_alloc_dealloc_,name)
goto 9999
@ -2962,7 +2961,7 @@ subroutine psb_d_cp_csr_from_coo(a,b,info)
call move_alloc(tmp%ia,itemp)
call move_alloc(tmp%ja,a%ja)
call move_alloc(tmp%val,a%val)
call psb_realloc(max(nr+1,nc+1),a%irp,info)
call psb_realloc(nr+1,a%irp,info)
call tmp%free()
else
@ -2980,7 +2979,7 @@ subroutine psb_d_cp_csr_from_coo(a,b,info)
call psb_safe_ab_cpy(b%ia,itemp,info)
if (info == psb_success_) call psb_safe_ab_cpy(b%ja,a%ja,info)
if (info == psb_success_) call psb_safe_ab_cpy(b%val,a%val,info)
if (info == psb_success_) call psb_realloc(max(nr+1,nc+1),a%irp,info)
if (info == psb_success_) call psb_realloc(nr+1,a%irp,info)
endif
@ -3131,7 +3130,7 @@ subroutine psb_d_mv_csr_from_coo(a,b,info)
call move_alloc(b%ia,itemp)
call move_alloc(b%ja,a%ja)
call move_alloc(b%val,a%val)
call psb_realloc(max(nr+1,nc+1),a%irp,info)
call psb_realloc(nr+1,a%irp,info)
call b%free()

@ -2298,7 +2298,7 @@ subroutine psb_s_mv_csc_from_coo(a,b,info)
call move_alloc(b%ja,itemp)
call move_alloc(b%ia,a%ia)
call move_alloc(b%val,a%val)
call psb_realloc(max(nr+1,nc+1),a%icp,info)
call psb_realloc(nc+1,a%icp,info)
call b%free()
a%icp(:) = 0
@ -2570,8 +2570,7 @@ subroutine psb_s_csc_reallocate_nz(nz,a)
call psb_realloc(max(nz,ione),a%ia,info)
if (info == psb_success_) call psb_realloc(max(nz,ione),a%val,info)
if (info == psb_success_) call psb_realloc(max(nz,a%get_nrows()+1,&
& a%get_ncols()+1), a%icp,info)
if (info == psb_success_) call psb_realloc(a%get_ncols()+1, a%icp,info)
if (info /= psb_success_) then
call psb_errpush(psb_err_alloc_dealloc_,name)
goto 9999

@ -1712,8 +1712,7 @@ subroutine psb_s_csr_reallocate_nz(nz,a)
call psb_realloc(max(nz,ione),a%ja,info)
if (info == psb_success_) call psb_realloc(max(nz,ione),a%val,info)
if (info == psb_success_) call psb_realloc(&
& max(nz,a%get_nrows()+1,a%get_ncols()+1),a%irp,info)
if (info == psb_success_) call psb_realloc(a%get_nrows()+1,a%irp,info)
if (info /= psb_success_) then
call psb_errpush(psb_err_alloc_dealloc_,name)
goto 9999
@ -2962,7 +2961,7 @@ subroutine psb_s_cp_csr_from_coo(a,b,info)
call move_alloc(tmp%ia,itemp)
call move_alloc(tmp%ja,a%ja)
call move_alloc(tmp%val,a%val)
call psb_realloc(max(nr+1,nc+1),a%irp,info)
call psb_realloc(nr+1,a%irp,info)
call tmp%free()
else
@ -2980,7 +2979,7 @@ subroutine psb_s_cp_csr_from_coo(a,b,info)
call psb_safe_ab_cpy(b%ia,itemp,info)
if (info == psb_success_) call psb_safe_ab_cpy(b%ja,a%ja,info)
if (info == psb_success_) call psb_safe_ab_cpy(b%val,a%val,info)
if (info == psb_success_) call psb_realloc(max(nr+1,nc+1),a%irp,info)
if (info == psb_success_) call psb_realloc(nr+1,a%irp,info)
endif
@ -3131,7 +3130,7 @@ subroutine psb_s_mv_csr_from_coo(a,b,info)
call move_alloc(b%ia,itemp)
call move_alloc(b%ja,a%ja)
call move_alloc(b%val,a%val)
call psb_realloc(max(nr+1,nc+1),a%irp,info)
call psb_realloc(nr+1,a%irp,info)
call b%free()

@ -2298,7 +2298,7 @@ subroutine psb_z_mv_csc_from_coo(a,b,info)
call move_alloc(b%ja,itemp)
call move_alloc(b%ia,a%ia)
call move_alloc(b%val,a%val)
call psb_realloc(max(nr+1,nc+1),a%icp,info)
call psb_realloc(nc+1,a%icp,info)
call b%free()
a%icp(:) = 0
@ -2570,8 +2570,7 @@ subroutine psb_z_csc_reallocate_nz(nz,a)
call psb_realloc(max(nz,ione),a%ia,info)
if (info == psb_success_) call psb_realloc(max(nz,ione),a%val,info)
if (info == psb_success_) call psb_realloc(max(nz,a%get_nrows()+1,&
& a%get_ncols()+1), a%icp,info)
if (info == psb_success_) call psb_realloc(a%get_ncols()+1, a%icp,info)
if (info /= psb_success_) then
call psb_errpush(psb_err_alloc_dealloc_,name)
goto 9999

@ -1712,8 +1712,7 @@ subroutine psb_z_csr_reallocate_nz(nz,a)
call psb_realloc(max(nz,ione),a%ja,info)
if (info == psb_success_) call psb_realloc(max(nz,ione),a%val,info)
if (info == psb_success_) call psb_realloc(&
& max(nz,a%get_nrows()+1,a%get_ncols()+1),a%irp,info)
if (info == psb_success_) call psb_realloc(a%get_nrows()+1,a%irp,info)
if (info /= psb_success_) then
call psb_errpush(psb_err_alloc_dealloc_,name)
goto 9999
@ -2962,7 +2961,7 @@ subroutine psb_z_cp_csr_from_coo(a,b,info)
call move_alloc(tmp%ia,itemp)
call move_alloc(tmp%ja,a%ja)
call move_alloc(tmp%val,a%val)
call psb_realloc(max(nr+1,nc+1),a%irp,info)
call psb_realloc(nr+1,a%irp,info)
call tmp%free()
else
@ -2980,7 +2979,7 @@ subroutine psb_z_cp_csr_from_coo(a,b,info)
call psb_safe_ab_cpy(b%ia,itemp,info)
if (info == psb_success_) call psb_safe_ab_cpy(b%ja,a%ja,info)
if (info == psb_success_) call psb_safe_ab_cpy(b%val,a%val,info)
if (info == psb_success_) call psb_realloc(max(nr+1,nc+1),a%irp,info)
if (info == psb_success_) call psb_realloc(nr+1,a%irp,info)
endif
@ -3131,7 +3130,7 @@ subroutine psb_z_mv_csr_from_coo(a,b,info)
call move_alloc(b%ia,itemp)
call move_alloc(b%ja,a%ja)
call move_alloc(b%val,a%val)
call psb_realloc(max(nr+1,nc+1),a%irp,info)
call psb_realloc(nr+1,a%irp,info)
call b%free()

Loading…
Cancel
Save