From f120015ff55fcf70bc7aebe6e28f27cd7a22ca47 Mon Sep 17 00:00:00 2001 From: Fabio Durastante Date: Fri, 3 Oct 2025 15:16:28 +0200 Subject: [PATCH] Exposed psb_c_cd_is_asb to check is descriptor is assembled --- cbind/base/psb_base_tools_cbind_mod.F90 | 21 +++++++++++++++++++++ cbind/base/psb_c_base.h | 1 + 2 files changed, 22 insertions(+) diff --git a/cbind/base/psb_base_tools_cbind_mod.F90 b/cbind/base/psb_base_tools_cbind_mod.F90 index d8aa0769..5f9cdf75 100644 --- a/cbind/base/psb_base_tools_cbind_mod.F90 +++ b/cbind/base/psb_base_tools_cbind_mod.F90 @@ -277,6 +277,27 @@ contains return end function psb_c_cdins + function psb_c_cd_is_asb(cdh) bind(c,name='psb_c_cd_is_asb') result(res) + implicit none + + logical(c_bool) :: res + type(psb_c_object_type) :: cdh + + type(psb_desc_type), pointer :: descp + + res = .false. + + if (c_associated(cdh%item)) then + call c_f_pointer(cdh%item,descp) + if (descp%is_asb()) then + res = .true. + else + res = .false. + end if + end if + + end function psb_c_cd_is_asb + function psb_c_cd_get_local_rows(cdh) bind(c,name='psb_c_cd_get_local_rows') result(res) diff --git a/cbind/base/psb_c_base.h b/cbind/base/psb_c_base.h index 6dacb3de..5ae62cac 100644 --- a/cbind/base/psb_c_base.h +++ b/cbind/base/psb_c_base.h @@ -81,6 +81,7 @@ extern "C" { psb_i_t psb_c_cdfree(psb_c_descriptor *cd); psb_i_t psb_c_cdins(psb_i_t nz, const psb_l_t *ia, const psb_l_t *ja, psb_c_descriptor *cd); bool psb_c_is_owned(psb_l_t gindex, psb_c_descriptor *cd); + bool psb_c_cd_is_asb(psb_c_descriptor *cd); psb_i_t psb_c_cd_get_local_rows(psb_c_descriptor *cd); psb_i_t psb_c_cd_get_local_cols(psb_c_descriptor *cd);