@@ -9,6 +9,7 @@ submodule(stdlib_linalg_iterative_solvers) stdlib_linalg_iterative_pcg
99 use stdlib_sparse
1010 use stdlib_constants
1111 use stdlib_linalg_iterative_solvers
12+ use stdlib_optval, only: optval
1213 implicit none
1314
1415 enum, bind(c)
@@ -93,7 +94,7 @@ contains
9394 ${t}$, intent(in) :: b(:)
9495 ${t}$, intent(inout) :: x(:)
9596 ${t}$, intent(in), optional :: tol
96- logical(1 ), intent(in), optional, target :: di(:)
97+ logical(int8 ), intent(in), optional, target :: di(:)
9798 integer, intent(in), optional :: maxiter
9899 logical, intent(in), optional :: restart
99100 integer, intent(in), optional :: precond
@@ -106,18 +107,18 @@ contains
106107 integer :: n, maxiter_
107108 ${t}$ :: tol_
108109 logical :: restart_
109- logical(1 ), pointer :: di_(:)
110+ logical(int8 ), pointer :: di_(:)
110111 !-------------------------
111112 ! working data for preconditioner
112113 integer :: precond_
113114 ${t}$, allocatable :: diagonal(:)
114115
115116 !-------------------------
116117 n = size(b)
117- maxiter_ = n; if(present( maxiter)) maxiter_ = maxiter
118- restart_ = .true.; if(present( restart)) restart_ = restart
119- tol_ = 1.e-4_${s}$; if(present(tol)) tol_ = tol
120- precond_ = pc_none; if(present( precond)) precond_ = precond
118+ maxiter_ = optval(x= maxiter, default=n)
119+ restart_ = optval(x= restart, default=.true.)
120+ tol_ = optval(x=tol, default= 1.e-4_${s}$)
121+ precond_ = optval(x= precond, default=pc_none)
121122 !-------------------------
122123 ! internal memory setup
123124 ! preconditioner
0 commit comments