From 6e28cc2b449e7123435924111028216e1b5f6410 Mon Sep 17 00:00:00 2001 From: Cirdans-Home Date: Thu, 2 Apr 2020 15:04:50 +0200 Subject: [PATCH] Corrected c interface of psb_mask for logic output --- cbind/base/psb_c_dbase.h | 2 +- cbind/base/psb_c_sbase.h | 2 +- cbind/base/psb_d_psblas_cbind_mod.f90 | 9 ++++----- cbind/base/psb_s_psblas_cbind_mod.f90 | 9 ++++----- 4 files changed, 10 insertions(+), 12 deletions(-) diff --git a/cbind/base/psb_c_dbase.h b/cbind/base/psb_c_dbase.h index cdeb0279..a51d738c 100644 --- a/cbind/base/psb_c_dbase.h +++ b/cbind/base/psb_c_dbase.h @@ -77,7 +77,7 @@ psb_i_t psb_c_dgecmp(psb_c_dvector *xh,psb_d_t ch,psb_c_dvector *zh,psb_c_descri psb_i_t psb_c_dgeaddconst(psb_c_dvector *xh,psb_d_t bh,psb_c_dvector *zh,psb_c_descriptor *cdh); psb_d_t psb_c_dgenrm2_weight(psb_c_dvector *xh,psb_c_dvector *wh,psb_c_descriptor *cdh); psb_d_t psb_c_dgenrm2_weightmask(psb_c_dvector *xh,psb_c_dvector *wh,psb_c_dvector *idvh,psb_c_descriptor *cdh); -psb_i_t psb_c_dmask(psb_c_dvector *ch,psb_c_dvector *xh,psb_c_dvector *mh, bool t, psb_c_descriptor *cdh); +psb_i_t psb_c_dmask(psb_c_dvector *ch,psb_c_dvector *xh,psb_c_dvector *mh, void *t, psb_c_descriptor *cdh); psb_d_t psb_c_dgemin(psb_c_dvector *xh,psb_c_descriptor *cdh); psb_d_t psb_c_dminquotient(psb_c_dvector *xh,psb_c_dvector *yh, psb_c_descriptor *cdh); diff --git a/cbind/base/psb_c_sbase.h b/cbind/base/psb_c_sbase.h index 8db2d5ac..41bdb0bd 100644 --- a/cbind/base/psb_c_sbase.h +++ b/cbind/base/psb_c_sbase.h @@ -77,7 +77,7 @@ psb_i_t psb_c_sgecmp(psb_c_svector *xh,psb_s_t ch,psb_c_svector *zh,psb_c_descri psb_i_t psb_c_sgeaddconst(psb_c_svector *xh,psb_s_t bh,psb_c_svector *zh,psb_c_descriptor *cdh); psb_s_t psb_c_sgenrm2_weight(psb_c_svector *xh,psb_c_svector *wh,psb_c_descriptor *cdh); psb_s_t psb_c_sgenrm2_weightmask(psb_c_svector *xh,psb_c_svector *wh,psb_c_svector *idvh,psb_c_descriptor *cdh); -psb_i_t psb_c_smask(psb_c_svector *ch,psb_c_svector *xh,psb_c_svector *mh, bool t, psb_c_descriptor *cdh); +psb_i_t psb_c_smask(psb_c_svector *ch,psb_c_svector *xh,psb_c_svector *mh, void *t, psb_c_descriptor *cdh); psb_s_t psb_c_sgemin(psb_c_svector *xh,psb_c_descriptor *cdh); #ifdef __cplusplus diff --git a/cbind/base/psb_d_psblas_cbind_mod.f90 b/cbind/base/psb_d_psblas_cbind_mod.f90 index 0006f034..efe1620f 100644 --- a/cbind/base/psb_d_psblas_cbind_mod.f90 +++ b/cbind/base/psb_d_psblas_cbind_mod.f90 @@ -505,12 +505,12 @@ contains type(psb_c_dvector) :: ch,xh,mh type(psb_c_descriptor) :: cdh - logical(c_bool), value :: t + type(c_ptr), value :: t type(psb_desc_type), pointer :: descp type(psb_d_vect_type), pointer :: cp,xp,mp integer(psb_c_ipk_) :: info - logical :: ft + logical, pointer :: fp res = -1 @@ -534,11 +534,10 @@ contains else return end if + call c_f_pointer(t,fp) - ft = t - call psb_mask(cp,xp,mp,ft,descp,info) + call psb_mask(cp,xp,mp,fp,descp,info) - t = ft res = info end function psb_c_dmask diff --git a/cbind/base/psb_s_psblas_cbind_mod.f90 b/cbind/base/psb_s_psblas_cbind_mod.f90 index cb5681b2..3d55041c 100644 --- a/cbind/base/psb_s_psblas_cbind_mod.f90 +++ b/cbind/base/psb_s_psblas_cbind_mod.f90 @@ -505,12 +505,12 @@ contains type(psb_c_svector) :: ch,xh,mh type(psb_c_descriptor) :: cdh - logical(c_bool), value :: t + type(c_ptr), value :: t type(psb_desc_type), pointer :: descp type(psb_s_vect_type), pointer :: cp,xp,mp integer(psb_c_ipk_) :: info - logical :: ft + logical, pointer :: fp res = -1 @@ -534,11 +534,10 @@ contains else return end if + call c_f_pointer(t,fp) - ft = t - call psb_mask(cp,xp,mp,ft,descp,info) + call psb_mask(cp,xp,mp,fp,descp,info) - t = ft res = info end function psb_c_smask