diff --git a/cbind/linsolve/psb_base_linsolve_cbind_mod.f90 b/cbind/linsolve/psb_base_linsolve_cbind_mod.f90 index a00a68bf..db9f9d35 100644 --- a/cbind/linsolve/psb_base_linsolve_cbind_mod.f90 +++ b/cbind/linsolve/psb_base_linsolve_cbind_mod.f90 @@ -15,7 +15,6 @@ contains implicit none type(solveroptions) :: options integer(psb_c_ipk_) :: res - options%itmax = 1000 options%itrace = 0 options%istop = 2 @@ -24,6 +23,21 @@ contains res = 0 end function psb_c_DefaultSolverOptions + + function psb_c_PrintSolverOptions(options)& + & bind(c,name='psb_c_PrintSolverOptions') result(res) + implicit none + type(solveroptions) :: options + integer(psb_c_ipk_) :: res + + write(*,*) 'PSBLAS C Interface Solver Options ' + write(*,*) ' Maximum number of iterations :', options%itmax + write(*,*) ' Tracing :', options%itrace + write(*,*) ' Stopping Criterion :', options%istop + write(*,*) ' Restart :', options%irst + write(*,*) ' EPS (tolerance) :', options%eps + res = 0 + end function psb_c_PrintSolverOptions end module psb_base_linsolve_cbind_mod diff --git a/cbind/linsolve/psb_linsolve_cbind.h b/cbind/linsolve/psb_linsolve_cbind.h index 6dd7aa3c..d1ed4a92 100644 --- a/cbind/linsolve/psb_linsolve_cbind.h +++ b/cbind/linsolve/psb_linsolve_cbind.h @@ -25,7 +25,8 @@ typedef struct psb_c_solveroptions { } psb_c_SolverOptions; int psb_c_DefaultSolverOptions(psb_c_SolverOptions *opt); - +int psb_c_PrintSolverOptions(psb_c_SolverOptions *opt); + int psb_c_skrylov(const char *method, psb_c_sspmat *ah, psb_c_sprec *ph, psb_c_svector *bh, psb_c_svector *xh, psb_c_descriptor *cdh, psb_c_SolverOptions *opt);