From 116219b6fedeee89cf301e66a50d9879dbab8791 Mon Sep 17 00:00:00 2001 From: Fabio Durastante Date: Thu, 26 Mar 2026 16:00:36 +0100 Subject: [PATCH] Added support for CSC matrices in c interfaces --- cbind/base/psb_c_tools_cbind_mod.F90 | 7 ++++++- cbind/base/psb_d_tools_cbind_mod.F90 | 7 ++++++- cbind/base/psb_s_tools_cbind_mod.F90 | 7 ++++++- cbind/base/psb_z_tools_cbind_mod.F90 | 7 ++++++- 4 files changed, 24 insertions(+), 4 deletions(-) diff --git a/cbind/base/psb_c_tools_cbind_mod.F90 b/cbind/base/psb_c_tools_cbind_mod.F90 index 0163f544..76849283 100644 --- a/cbind/base/psb_c_tools_cbind_mod.F90 +++ b/cbind/base/psb_c_tools_cbind_mod.F90 @@ -440,6 +440,7 @@ contains #endif type(psb_c_ell_sparse_mat), target :: aell type(psb_c_csr_sparse_mat), target :: acsr + type(psb_c_csc_sparse_mat), target :: acsc type(psb_c_coo_sparse_mat), target :: acoo type(psb_c_hll_sparse_mat), target :: ahll type(psb_c_hdia_sparse_mat), target :: ahdia @@ -484,6 +485,8 @@ contains amold => ahll case('CSR') amold => acsr + case('CSC') + amold => acsc case('DNS') amold => adns case default @@ -498,6 +501,8 @@ contains amold => ahdia case('CSR') amold => acsr + case('CSC') + amold => acsc case('DNS') amold => adns case default @@ -514,7 +519,7 @@ contains & upd=upd,mold=arsb) #endif #endif - case('ELL','HLL','CSR','DNS') + case('ELL','HLL','CSR','DNS','CSC') call psb_spasb(ap,descp,info,upd=upd,mold=amold) #if defined(PSB_HAVE_CUDA) case('ELG','HLG','CSRG') diff --git a/cbind/base/psb_d_tools_cbind_mod.F90 b/cbind/base/psb_d_tools_cbind_mod.F90 index f8037773..daa28026 100644 --- a/cbind/base/psb_d_tools_cbind_mod.F90 +++ b/cbind/base/psb_d_tools_cbind_mod.F90 @@ -440,6 +440,7 @@ contains #endif type(psb_d_ell_sparse_mat), target :: aell type(psb_d_csr_sparse_mat), target :: acsr + type(psb_d_csc_sparse_mat), target :: acsc type(psb_d_coo_sparse_mat), target :: acoo type(psb_d_hll_sparse_mat), target :: ahll type(psb_d_hdia_sparse_mat), target :: ahdia @@ -489,6 +490,8 @@ contains amold => ahdia case('CSR') amold => acsr + case('CSC') + amold => acsc case('DNS') amold => adns case default @@ -504,6 +507,8 @@ contains amold => ahdia case('CSR') amold => acsr + case('CSC') + amold => acsc case('DNS') amold => adns case default @@ -520,7 +525,7 @@ contains & upd=upd,mold=arsb) #endif #endif - case('ELL','HLL','CSR','DNS') + case('ELL','HLL','CSR','DNS','CSC') call psb_spasb(ap,descp,info,upd=upd,mold=amold) case('HDIA') call psb_spasb(ap,descp,info,upd=upd,mold=amold) diff --git a/cbind/base/psb_s_tools_cbind_mod.F90 b/cbind/base/psb_s_tools_cbind_mod.F90 index 43ac426e..2bc6b2d6 100644 --- a/cbind/base/psb_s_tools_cbind_mod.F90 +++ b/cbind/base/psb_s_tools_cbind_mod.F90 @@ -440,6 +440,7 @@ contains #endif type(psb_s_ell_sparse_mat), target :: aell type(psb_s_csr_sparse_mat), target :: acsr + type(psb_s_csc_sparse_mat), target :: acsc type(psb_s_coo_sparse_mat), target :: acoo type(psb_s_hll_sparse_mat), target :: ahll type(psb_s_hdia_sparse_mat), target :: ahdia @@ -489,6 +490,8 @@ contains amold => ahdia case('CSR') amold => acsr + case('CSC') + amold => acsc case('DNS') amold => adns case default @@ -504,6 +507,8 @@ contains amold => ahdia case('CSR') amold => acsr + case('CSC') + amold => acsc case('DNS') amold => adns case default @@ -520,7 +525,7 @@ contains & upd=upd,mold=arsb) #endif #endif - case('ELL','HLL','CSR','DNS') + case('ELL','HLL','CSR','DNS','CSC') call psb_spasb(ap,descp,info,upd=upd,mold=amold) case('HDIA') call psb_spasb(ap,descp,info,upd=upd,mold=amold) diff --git a/cbind/base/psb_z_tools_cbind_mod.F90 b/cbind/base/psb_z_tools_cbind_mod.F90 index a4bda8c9..fe6c69b6 100644 --- a/cbind/base/psb_z_tools_cbind_mod.F90 +++ b/cbind/base/psb_z_tools_cbind_mod.F90 @@ -440,6 +440,7 @@ contains #endif type(psb_z_ell_sparse_mat), target :: aell type(psb_z_csr_sparse_mat), target :: acsr + type(psb_z_csc_sparse_mat), target :: acsc type(psb_z_coo_sparse_mat), target :: acoo type(psb_z_hll_sparse_mat), target :: ahll type(psb_z_hdia_sparse_mat), target :: ahdia @@ -484,6 +485,8 @@ contains amold => ahll case('CSR') amold => acsr + case('CSC') + amold => acsc case('DNS') amold => adns case default @@ -498,6 +501,8 @@ contains amold => ahdia case('CSR') amold => acsr + case('CSC') + amold => acsc case('DNS') amold => adns case default @@ -514,7 +519,7 @@ contains & upd=upd,mold=arsb) #endif #endif - case('ELL','HLL','CSR','DNS') + case('ELL','HLL','CSR','DNS','CSC') call psb_spasb(ap,descp,info,upd=upd,mold=amold) #if defined(PSB_HAVE_CUDA) case('ELG','HLG','CSRG')