Method clear_data for SLU and SLUDIST

pizdaint-runs
Salvatore Filippone 5 years ago
parent d55dd1f21b
commit 3dd15cc007

@ -67,6 +67,7 @@ module mld_c_slu_solver
procedure, pass(sv) :: apply_a => c_slu_solver_apply procedure, pass(sv) :: apply_a => c_slu_solver_apply
procedure, pass(sv) :: apply_v => c_slu_solver_apply_vect procedure, pass(sv) :: apply_v => c_slu_solver_apply_vect
procedure, pass(sv) :: free => c_slu_solver_free procedure, pass(sv) :: free => c_slu_solver_free
procedure, pass(sv) :: clear_data => c_slu_solver_clear_data
procedure, pass(sv) :: descr => c_slu_solver_descr procedure, pass(sv) :: descr => c_slu_solver_descr
procedure, pass(sv) :: sizeof => c_slu_solver_sizeof procedure, pass(sv) :: sizeof => c_slu_solver_sizeof
procedure, nopass :: get_fmt => c_slu_solver_get_fmt procedure, nopass :: get_fmt => c_slu_solver_get_fmt
@ -80,7 +81,8 @@ module mld_c_slu_solver
private :: c_slu_solver_bld, c_slu_solver_apply, & private :: c_slu_solver_bld, c_slu_solver_apply, &
& c_slu_solver_free, c_slu_solver_descr, & & c_slu_solver_free, c_slu_solver_descr, &
& c_slu_solver_sizeof, c_slu_solver_apply_vect, & & c_slu_solver_sizeof, c_slu_solver_apply_vect, &
& c_slu_solver_get_fmt, c_slu_solver_get_id & c_slu_solver_get_fmt, c_slu_solver_get_id, &
& c_slu_solver_clear_data
#if defined(HAVE_FINAL) #if defined(HAVE_FINAL)
private :: c_slu_solver_finalize private :: c_slu_solver_finalize
#endif #endif
@ -333,8 +335,9 @@ contains
call psb_erractionsave(err_act) call psb_erractionsave(err_act)
info = psb_success_ info = psb_success_
if (c_associated(sv%lufactors)) info = mld_cslu_free(sv%lufactors)
sv%lufactors = c_null_ptr call sv%clear_data(info)
if (info /= psb_success_) goto 9999 if (info /= psb_success_) goto 9999
call psb_erractionrestore(err_act) call psb_erractionrestore(err_act)
@ -344,6 +347,30 @@ contains
return return
end subroutine c_slu_solver_free end subroutine c_slu_solver_free
subroutine c_slu_solver_clear_data(sv,info)
Implicit None
! Arguments
class(mld_c_slu_solver_type), intent(inout) :: sv
integer, intent(out) :: info
Integer :: err_act
character(len=20) :: name='c_slu_solver_clear_data'
call psb_erractionsave(err_act)
info = psb_success_
if (c_associated(sv%lufactors)) info = mld_cslu_free(sv%lufactors)
sv%lufactors = c_null_ptr
if (info /= psb_success_) goto 9999
call psb_erractionrestore(err_act)
return
9999 call psb_error_handler(err_act)
return
end subroutine c_slu_solver_clear_data
#if defined(HAVE_FINAL) #if defined(HAVE_FINAL)
subroutine c_slu_solver_finalize(sv) subroutine c_slu_solver_finalize(sv)

@ -67,6 +67,7 @@ module mld_d_slu_solver
procedure, pass(sv) :: apply_a => d_slu_solver_apply procedure, pass(sv) :: apply_a => d_slu_solver_apply
procedure, pass(sv) :: apply_v => d_slu_solver_apply_vect procedure, pass(sv) :: apply_v => d_slu_solver_apply_vect
procedure, pass(sv) :: free => d_slu_solver_free procedure, pass(sv) :: free => d_slu_solver_free
procedure, pass(sv) :: clear_data => d_slu_solver_clear_data
procedure, pass(sv) :: descr => d_slu_solver_descr procedure, pass(sv) :: descr => d_slu_solver_descr
procedure, pass(sv) :: sizeof => d_slu_solver_sizeof procedure, pass(sv) :: sizeof => d_slu_solver_sizeof
procedure, nopass :: get_fmt => d_slu_solver_get_fmt procedure, nopass :: get_fmt => d_slu_solver_get_fmt
@ -80,7 +81,8 @@ module mld_d_slu_solver
private :: d_slu_solver_bld, d_slu_solver_apply, & private :: d_slu_solver_bld, d_slu_solver_apply, &
& d_slu_solver_free, d_slu_solver_descr, & & d_slu_solver_free, d_slu_solver_descr, &
& d_slu_solver_sizeof, d_slu_solver_apply_vect, & & d_slu_solver_sizeof, d_slu_solver_apply_vect, &
& d_slu_solver_get_fmt, d_slu_solver_get_id & d_slu_solver_get_fmt, d_slu_solver_get_id, &
& d_slu_solver_clear_data
#if defined(HAVE_FINAL) #if defined(HAVE_FINAL)
private :: d_slu_solver_finalize private :: d_slu_solver_finalize
#endif #endif
@ -333,8 +335,9 @@ contains
call psb_erractionsave(err_act) call psb_erractionsave(err_act)
info = psb_success_ info = psb_success_
if (c_associated(sv%lufactors)) info = mld_dslu_free(sv%lufactors)
sv%lufactors = c_null_ptr call sv%clear_data(info)
if (info /= psb_success_) goto 9999 if (info /= psb_success_) goto 9999
call psb_erractionrestore(err_act) call psb_erractionrestore(err_act)
@ -344,6 +347,30 @@ contains
return return
end subroutine d_slu_solver_free end subroutine d_slu_solver_free
subroutine d_slu_solver_clear_data(sv,info)
Implicit None
! Arguments
class(mld_d_slu_solver_type), intent(inout) :: sv
integer, intent(out) :: info
Integer :: err_act
character(len=20) :: name='d_slu_solver_clear_data'
call psb_erractionsave(err_act)
info = psb_success_
if (c_associated(sv%lufactors)) info = mld_dslu_free(sv%lufactors)
sv%lufactors = c_null_ptr
if (info /= psb_success_) goto 9999
call psb_erractionrestore(err_act)
return
9999 call psb_error_handler(err_act)
return
end subroutine d_slu_solver_clear_data
#if defined(HAVE_FINAL) #if defined(HAVE_FINAL)
subroutine d_slu_solver_finalize(sv) subroutine d_slu_solver_finalize(sv)

@ -66,6 +66,7 @@ module mld_d_sludist_solver
procedure, pass(sv) :: apply_a => d_sludist_solver_apply procedure, pass(sv) :: apply_a => d_sludist_solver_apply
procedure, pass(sv) :: apply_v => d_sludist_solver_apply_vect procedure, pass(sv) :: apply_v => d_sludist_solver_apply_vect
procedure, pass(sv) :: free => d_sludist_solver_free procedure, pass(sv) :: free => d_sludist_solver_free
procedure, pass(sv) :: clear_data => d_sludist_solver_clear_data
procedure, pass(sv) :: descr => d_sludist_solver_descr procedure, pass(sv) :: descr => d_sludist_solver_descr
procedure, pass(sv) :: sizeof => d_sludist_solver_sizeof procedure, pass(sv) :: sizeof => d_sludist_solver_sizeof
procedure, nopass :: get_fmt => d_sludist_solver_get_fmt procedure, nopass :: get_fmt => d_sludist_solver_get_fmt
@ -81,7 +82,7 @@ module mld_d_sludist_solver
& d_sludist_solver_free, d_sludist_solver_descr, & & d_sludist_solver_free, d_sludist_solver_descr, &
& d_sludist_solver_sizeof, d_sludist_solver_apply_vect, & & d_sludist_solver_sizeof, d_sludist_solver_apply_vect, &
& d_sludist_solver_get_fmt, d_sludist_solver_get_id, & & d_sludist_solver_get_fmt, d_sludist_solver_get_id, &
& d_sludist_solver_is_global & d_sludist_solver_is_global, d_sludist_solver_clear_data
#if defined(HAVE_FINAL) #if defined(HAVE_FINAL)
private :: d_sludist_solver_finalize private :: d_sludist_solver_finalize
#endif #endif
@ -341,6 +342,29 @@ contains
Integer :: err_act Integer :: err_act
character(len=20) :: name='d_sludist_solver_free' character(len=20) :: name='d_sludist_solver_free'
call psb_erractionsave(err_act)
info = 0
call sv%clear_data(info)
if (info /= psb_success_) goto 9999
call psb_erractionrestore(err_act)
return
9999 call psb_error_handler(err_act)
return
end subroutine d_sludist_solver_free
subroutine d_sludist_solver_clear_data(sv,info)
Implicit None
! Arguments
class(mld_d_sludist_solver_type), intent(inout) :: sv
integer, intent(out) :: info
Integer :: err_act
character(len=20) :: name='d_sludist_solver_clear_data'
call psb_erractionsave(err_act) call psb_erractionsave(err_act)
info = psb_success_ info = psb_success_
@ -354,7 +378,7 @@ contains
9999 call psb_error_handler(err_act) 9999 call psb_error_handler(err_act)
return return
end subroutine d_sludist_solver_free end subroutine d_sludist_solver_clear_data
! !
function d_sludist_solver_is_global(sv) result(val) function d_sludist_solver_is_global(sv) result(val)

@ -67,6 +67,7 @@ module mld_s_slu_solver
procedure, pass(sv) :: apply_a => s_slu_solver_apply procedure, pass(sv) :: apply_a => s_slu_solver_apply
procedure, pass(sv) :: apply_v => s_slu_solver_apply_vect procedure, pass(sv) :: apply_v => s_slu_solver_apply_vect
procedure, pass(sv) :: free => s_slu_solver_free procedure, pass(sv) :: free => s_slu_solver_free
procedure, pass(sv) :: clear_data => s_slu_solver_clear_data
procedure, pass(sv) :: descr => s_slu_solver_descr procedure, pass(sv) :: descr => s_slu_solver_descr
procedure, pass(sv) :: sizeof => s_slu_solver_sizeof procedure, pass(sv) :: sizeof => s_slu_solver_sizeof
procedure, nopass :: get_fmt => s_slu_solver_get_fmt procedure, nopass :: get_fmt => s_slu_solver_get_fmt
@ -80,7 +81,8 @@ module mld_s_slu_solver
private :: s_slu_solver_bld, s_slu_solver_apply, & private :: s_slu_solver_bld, s_slu_solver_apply, &
& s_slu_solver_free, s_slu_solver_descr, & & s_slu_solver_free, s_slu_solver_descr, &
& s_slu_solver_sizeof, s_slu_solver_apply_vect, & & s_slu_solver_sizeof, s_slu_solver_apply_vect, &
& s_slu_solver_get_fmt, s_slu_solver_get_id & s_slu_solver_get_fmt, s_slu_solver_get_id, &
& s_slu_solver_clear_data
#if defined(HAVE_FINAL) #if defined(HAVE_FINAL)
private :: s_slu_solver_finalize private :: s_slu_solver_finalize
#endif #endif
@ -333,8 +335,9 @@ contains
call psb_erractionsave(err_act) call psb_erractionsave(err_act)
info = psb_success_ info = psb_success_
if (c_associated(sv%lufactors)) info = mld_sslu_free(sv%lufactors)
sv%lufactors = c_null_ptr call sv%clear_data(info)
if (info /= psb_success_) goto 9999 if (info /= psb_success_) goto 9999
call psb_erractionrestore(err_act) call psb_erractionrestore(err_act)
@ -344,6 +347,30 @@ contains
return return
end subroutine s_slu_solver_free end subroutine s_slu_solver_free
subroutine s_slu_solver_clear_data(sv,info)
Implicit None
! Arguments
class(mld_s_slu_solver_type), intent(inout) :: sv
integer, intent(out) :: info
Integer :: err_act
character(len=20) :: name='s_slu_solver_clear_data'
call psb_erractionsave(err_act)
info = psb_success_
if (c_associated(sv%lufactors)) info = mld_sslu_free(sv%lufactors)
sv%lufactors = c_null_ptr
if (info /= psb_success_) goto 9999
call psb_erractionrestore(err_act)
return
9999 call psb_error_handler(err_act)
return
end subroutine s_slu_solver_clear_data
#if defined(HAVE_FINAL) #if defined(HAVE_FINAL)
subroutine s_slu_solver_finalize(sv) subroutine s_slu_solver_finalize(sv)

@ -67,6 +67,7 @@ module mld_z_slu_solver
procedure, pass(sv) :: apply_a => z_slu_solver_apply procedure, pass(sv) :: apply_a => z_slu_solver_apply
procedure, pass(sv) :: apply_v => z_slu_solver_apply_vect procedure, pass(sv) :: apply_v => z_slu_solver_apply_vect
procedure, pass(sv) :: free => z_slu_solver_free procedure, pass(sv) :: free => z_slu_solver_free
procedure, pass(sv) :: clear_data => z_slu_solver_clear_data
procedure, pass(sv) :: descr => z_slu_solver_descr procedure, pass(sv) :: descr => z_slu_solver_descr
procedure, pass(sv) :: sizeof => z_slu_solver_sizeof procedure, pass(sv) :: sizeof => z_slu_solver_sizeof
procedure, nopass :: get_fmt => z_slu_solver_get_fmt procedure, nopass :: get_fmt => z_slu_solver_get_fmt
@ -80,7 +81,8 @@ module mld_z_slu_solver
private :: z_slu_solver_bld, z_slu_solver_apply, & private :: z_slu_solver_bld, z_slu_solver_apply, &
& z_slu_solver_free, z_slu_solver_descr, & & z_slu_solver_free, z_slu_solver_descr, &
& z_slu_solver_sizeof, z_slu_solver_apply_vect, & & z_slu_solver_sizeof, z_slu_solver_apply_vect, &
& z_slu_solver_get_fmt, z_slu_solver_get_id & z_slu_solver_get_fmt, z_slu_solver_get_id, &
& z_slu_solver_clear_data
#if defined(HAVE_FINAL) #if defined(HAVE_FINAL)
private :: z_slu_solver_finalize private :: z_slu_solver_finalize
#endif #endif
@ -333,8 +335,9 @@ contains
call psb_erractionsave(err_act) call psb_erractionsave(err_act)
info = psb_success_ info = psb_success_
if (c_associated(sv%lufactors)) info = mld_zslu_free(sv%lufactors)
sv%lufactors = c_null_ptr call sv%clear_data(info)
if (info /= psb_success_) goto 9999 if (info /= psb_success_) goto 9999
call psb_erractionrestore(err_act) call psb_erractionrestore(err_act)
@ -344,6 +347,30 @@ contains
return return
end subroutine z_slu_solver_free end subroutine z_slu_solver_free
subroutine z_slu_solver_clear_data(sv,info)
Implicit None
! Arguments
class(mld_z_slu_solver_type), intent(inout) :: sv
integer, intent(out) :: info
Integer :: err_act
character(len=20) :: name='z_slu_solver_clear_data'
call psb_erractionsave(err_act)
info = psb_success_
if (c_associated(sv%lufactors)) info = mld_zslu_free(sv%lufactors)
sv%lufactors = c_null_ptr
if (info /= psb_success_) goto 9999
call psb_erractionrestore(err_act)
return
9999 call psb_error_handler(err_act)
return
end subroutine z_slu_solver_clear_data
#if defined(HAVE_FINAL) #if defined(HAVE_FINAL)
subroutine z_slu_solver_finalize(sv) subroutine z_slu_solver_finalize(sv)

@ -66,6 +66,7 @@ module mld_z_sludist_solver
procedure, pass(sv) :: apply_a => z_sludist_solver_apply procedure, pass(sv) :: apply_a => z_sludist_solver_apply
procedure, pass(sv) :: apply_v => z_sludist_solver_apply_vect procedure, pass(sv) :: apply_v => z_sludist_solver_apply_vect
procedure, pass(sv) :: free => z_sludist_solver_free procedure, pass(sv) :: free => z_sludist_solver_free
procedure, pass(sv) :: clear_data => z_sludist_solver_clear_data
procedure, pass(sv) :: descr => z_sludist_solver_descr procedure, pass(sv) :: descr => z_sludist_solver_descr
procedure, pass(sv) :: sizeof => z_sludist_solver_sizeof procedure, pass(sv) :: sizeof => z_sludist_solver_sizeof
procedure, nopass :: get_fmt => z_sludist_solver_get_fmt procedure, nopass :: get_fmt => z_sludist_solver_get_fmt
@ -81,7 +82,7 @@ module mld_z_sludist_solver
& z_sludist_solver_free, z_sludist_solver_descr, & & z_sludist_solver_free, z_sludist_solver_descr, &
& z_sludist_solver_sizeof, z_sludist_solver_apply_vect, & & z_sludist_solver_sizeof, z_sludist_solver_apply_vect, &
& z_sludist_solver_get_fmt, z_sludist_solver_get_id, & & z_sludist_solver_get_fmt, z_sludist_solver_get_id, &
& z_sludist_solver_is_global & z_sludist_solver_is_global, z_sludist_solver_clear_data
#if defined(HAVE_FINAL) #if defined(HAVE_FINAL)
private :: z_sludist_solver_finalize private :: z_sludist_solver_finalize
#endif #endif
@ -341,6 +342,29 @@ contains
Integer :: err_act Integer :: err_act
character(len=20) :: name='z_sludist_solver_free' character(len=20) :: name='z_sludist_solver_free'
call psb_erractionsave(err_act)
info = 0
call sv%clear_data(info)
if (info /= psb_success_) goto 9999
call psb_erractionrestore(err_act)
return
9999 call psb_error_handler(err_act)
return
end subroutine z_sludist_solver_free
subroutine z_sludist_solver_clear_data(sv,info)
Implicit None
! Arguments
class(mld_z_sludist_solver_type), intent(inout) :: sv
integer, intent(out) :: info
Integer :: err_act
character(len=20) :: name='z_sludist_solver_clear_data'
call psb_erractionsave(err_act) call psb_erractionsave(err_act)
info = psb_success_ info = psb_success_
@ -354,7 +378,7 @@ contains
9999 call psb_error_handler(err_act) 9999 call psb_error_handler(err_act)
return return
end subroutine z_sludist_solver_free end subroutine z_sludist_solver_clear_data
! !
function z_sludist_solver_is_global(sv) result(val) function z_sludist_solver_is_global(sv) result(val)

Loading…
Cancel
Save