Fix cnv method for unallocated vectors

tspmm
Salvatore Filippone 3 years ago
parent a8d7cd5111
commit 00c69bfee9

@ -526,9 +526,11 @@ contains
allocate(tmp,stat=info,mold=psb_c_get_base_vect_default()) allocate(tmp,stat=info,mold=psb_c_get_base_vect_default())
end if end if
if (allocated(x%v)) then if (allocated(x%v)) then
if (allocated(x%v%v)) then
call x%v%sync() call x%v%sync()
if (info == psb_success_) call tmp%bld(x%v%v) if (info == psb_success_) call tmp%bld(x%v%v)
call x%v%free(info) call x%v%free(info)
endif
end if end if
call move_alloc(tmp,x%v) call move_alloc(tmp,x%v)

@ -533,9 +533,11 @@ contains
allocate(tmp,stat=info,mold=psb_d_get_base_vect_default()) allocate(tmp,stat=info,mold=psb_d_get_base_vect_default())
end if end if
if (allocated(x%v)) then if (allocated(x%v)) then
if (allocated(x%v%v)) then
call x%v%sync() call x%v%sync()
if (info == psb_success_) call tmp%bld(x%v%v) if (info == psb_success_) call tmp%bld(x%v%v)
call x%v%free(info) call x%v%free(info)
endif
end if end if
call move_alloc(tmp,x%v) call move_alloc(tmp,x%v)

@ -473,9 +473,11 @@ contains
allocate(tmp,stat=info,mold=psb_i_get_base_vect_default()) allocate(tmp,stat=info,mold=psb_i_get_base_vect_default())
end if end if
if (allocated(x%v)) then if (allocated(x%v)) then
if (allocated(x%v%v)) then
call x%v%sync() call x%v%sync()
if (info == psb_success_) call tmp%bld(x%v%v) if (info == psb_success_) call tmp%bld(x%v%v)
call x%v%free(info) call x%v%free(info)
endif
end if end if
call move_alloc(tmp,x%v) call move_alloc(tmp,x%v)

@ -474,9 +474,11 @@ contains
allocate(tmp,stat=info,mold=psb_l_get_base_vect_default()) allocate(tmp,stat=info,mold=psb_l_get_base_vect_default())
end if end if
if (allocated(x%v)) then if (allocated(x%v)) then
if (allocated(x%v%v)) then
call x%v%sync() call x%v%sync()
if (info == psb_success_) call tmp%bld(x%v%v) if (info == psb_success_) call tmp%bld(x%v%v)
call x%v%free(info) call x%v%free(info)
endif
end if end if
call move_alloc(tmp,x%v) call move_alloc(tmp,x%v)

@ -533,9 +533,11 @@ contains
allocate(tmp,stat=info,mold=psb_s_get_base_vect_default()) allocate(tmp,stat=info,mold=psb_s_get_base_vect_default())
end if end if
if (allocated(x%v)) then if (allocated(x%v)) then
if (allocated(x%v%v)) then
call x%v%sync() call x%v%sync()
if (info == psb_success_) call tmp%bld(x%v%v) if (info == psb_success_) call tmp%bld(x%v%v)
call x%v%free(info) call x%v%free(info)
endif
end if end if
call move_alloc(tmp,x%v) call move_alloc(tmp,x%v)

@ -526,9 +526,11 @@ contains
allocate(tmp,stat=info,mold=psb_z_get_base_vect_default()) allocate(tmp,stat=info,mold=psb_z_get_base_vect_default())
end if end if
if (allocated(x%v)) then if (allocated(x%v)) then
if (allocated(x%v%v)) then
call x%v%sync() call x%v%sync()
if (info == psb_success_) call tmp%bld(x%v%v) if (info == psb_success_) call tmp%bld(x%v%v)
call x%v%free(info) call x%v%free(info)
endif
end if end if
call move_alloc(tmp,x%v) call move_alloc(tmp,x%v)

Loading…
Cancel
Save