diff --git a/configure b/configure index c4db5d56..b3643e2b 100755 --- a/configure +++ b/configure @@ -5326,6 +5326,15 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_f90_modflag" >&5 $as_echo "$ax_f90_modflag" >&6; } FMFLAG="${ax_f90_modflag%% *}" +# Last resort attempt +if test "x$FMFLAG" == "xnot" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: Fortran inclusion flag detection failed, trying with -I" >&5 +$as_echo "$as_me: Fortran inclusion flag detection failed, trying with -I" >&6;} + MODEXT=".mod" + FMFLAG="-I" + FIFLAG="-I" +fi + ac_objext='.o' ac_ext='f90' ac_compile='${MPIFC-$FC} -c -o conftest${ac_objext} $FMFLAG$PSBLAS_DIR/include $FMFLAG$PSBLAS_DIR/lib conftest.$ac_ext 1>&5' diff --git a/configure.ac b/configure.ac index c1c7816b..69367bad 100755 --- a/configure.ac +++ b/configure.ac @@ -233,6 +233,14 @@ fi ############################################################################### AX_F90_MODULE_FLAG FMFLAG="${ax_f90_modflag%%[ ]*}" +# Last resort attempt +if test "x$FMFLAG" == "xnot" ; then + AC_MSG_NOTICE([Fortran inclusion flag detection failed, trying with -I]) + MODEXT=".mod" + FMFLAG="-I" + FIFLAG="-I" +fi + PAC_FORTRAN_HAVE_PSBLAS([AC_MSG_RESULT([yes.])],[AC_MSG_ERROR([no. Could not find working version of PSBLAS.])]) diff --git a/mlprec/Makefile b/mlprec/Makefile index e1c6ff0d..0650ba5d 100644 --- a/mlprec/Makefile +++ b/mlprec/Makefile @@ -35,7 +35,7 @@ MODOBJS=mld_base_prec_type.o mld_prec_type.o mld_prec_mod.o \ OBJS=$(MODOBJS) -LIBMOD=mld_prec_mod$(.mod) +#LIBMOD=mld_prec_mod$(.mod) LOCAL_MODS=$(MODOBJS:.o=$(.mod)) LIBNAME=libmld_prec.a @@ -48,10 +48,10 @@ lib: $(OBJS) impld $(AR) $(HERE)/$(LIBNAME) $(OBJS) $(RANLIB) $(HERE)/$(LIBNAME) /bin/cp -p $(HERE)/$(LIBNAME) $(LIBDIR) - /bin/cp -p $(LIBMOD) $(LOCAL_MODS) mld_const.h $(LIBDIR) + /bin/cp -p *$(.mod) mld_const.h $(LIBDIR) -$(MODOBJS): $(PSBINCDIR)/psb_base_mod$(.mod) +$(MODOBJS): $(PSBINCDIR)/$(BASEMODNAME)$(.mod) mld_base_prec_type.o: mld_const.h mld_s_prec_type.o mld_d_prec_type.o mld_c_prec_type.o mld_z_prec_type.o : mld_base_prec_type.o diff --git a/mlprec/impl/mld_cmlprec_aply.f90 b/mlprec/impl/mld_cmlprec_aply.f90 index 3b8abdb2..a20438c2 100644 --- a/mlprec/impl/mld_cmlprec_aply.f90 +++ b/mlprec/impl/mld_cmlprec_aply.f90 @@ -922,6 +922,7 @@ subroutine mld_cmlprec_aply_vect(alpha,p,x,beta,y,desc_data,trans,work,info) & p%precv(level)%base_desc,info,& & scratch=.true.,mold=x%v) if (psb_errstatus_fatal()) then + nc2l = p%precv(level)%base_desc%get_local_cols() info=psb_err_alloc_request_ call psb_errpush(info,name,i_err=(/2*nc2l,0,0,0,0/),& & a_err='complex(psb_spk_)') @@ -951,6 +952,7 @@ subroutine mld_cmlprec_aply_vect(alpha,p,x,beta,y,desc_data,trans,work,info) call mlprec_wrk(level)%vty%free(info) if (psb_errstatus_fatal()) then info=psb_err_alloc_request_ + nc2l = p%precv(level)%base_desc%get_local_cols() call psb_errpush(info,name,i_err=(/2*nc2l,0,0,0,0/),& & a_err='complex(psb_spk_)') goto 9999 diff --git a/mlprec/impl/mld_dmlprec_aply.f90 b/mlprec/impl/mld_dmlprec_aply.f90 index 71bb6718..3b7ee7d1 100644 --- a/mlprec/impl/mld_dmlprec_aply.f90 +++ b/mlprec/impl/mld_dmlprec_aply.f90 @@ -922,6 +922,7 @@ subroutine mld_dmlprec_aply_vect(alpha,p,x,beta,y,desc_data,trans,work,info) & p%precv(level)%base_desc,info,& & scratch=.true.,mold=x%v) if (psb_errstatus_fatal()) then + nc2l = p%precv(level)%base_desc%get_local_cols() info=psb_err_alloc_request_ call psb_errpush(info,name,i_err=(/2*nc2l,0,0,0,0/),& & a_err='real(psb_dpk_)') @@ -951,6 +952,7 @@ subroutine mld_dmlprec_aply_vect(alpha,p,x,beta,y,desc_data,trans,work,info) call mlprec_wrk(level)%vty%free(info) if (psb_errstatus_fatal()) then info=psb_err_alloc_request_ + nc2l = p%precv(level)%base_desc%get_local_cols() call psb_errpush(info,name,i_err=(/2*nc2l,0,0,0,0/),& & a_err='real(psb_dpk_)') goto 9999 diff --git a/mlprec/impl/mld_smlprec_aply.f90 b/mlprec/impl/mld_smlprec_aply.f90 index f659fc0c..dd64fd47 100644 --- a/mlprec/impl/mld_smlprec_aply.f90 +++ b/mlprec/impl/mld_smlprec_aply.f90 @@ -922,6 +922,7 @@ subroutine mld_smlprec_aply_vect(alpha,p,x,beta,y,desc_data,trans,work,info) & p%precv(level)%base_desc,info,& & scratch=.true.,mold=x%v) if (psb_errstatus_fatal()) then + nc2l = p%precv(level)%base_desc%get_local_cols() info=psb_err_alloc_request_ call psb_errpush(info,name,i_err=(/2*nc2l,0,0,0,0/),& & a_err='real(psb_spk_)') @@ -951,6 +952,7 @@ subroutine mld_smlprec_aply_vect(alpha,p,x,beta,y,desc_data,trans,work,info) call mlprec_wrk(level)%vty%free(info) if (psb_errstatus_fatal()) then info=psb_err_alloc_request_ + nc2l = p%precv(level)%base_desc%get_local_cols() call psb_errpush(info,name,i_err=(/2*nc2l,0,0,0,0/),& & a_err='real(psb_spk_)') goto 9999 diff --git a/mlprec/impl/mld_zmlprec_aply.f90 b/mlprec/impl/mld_zmlprec_aply.f90 index 2988f558..635219be 100644 --- a/mlprec/impl/mld_zmlprec_aply.f90 +++ b/mlprec/impl/mld_zmlprec_aply.f90 @@ -922,6 +922,7 @@ subroutine mld_zmlprec_aply_vect(alpha,p,x,beta,y,desc_data,trans,work,info) & p%precv(level)%base_desc,info,& & scratch=.true.,mold=x%v) if (psb_errstatus_fatal()) then + nc2l = p%precv(level)%base_desc%get_local_cols() info=psb_err_alloc_request_ call psb_errpush(info,name,i_err=(/2*nc2l,0,0,0,0/),& & a_err='complex(psb_dpk_)') @@ -951,6 +952,7 @@ subroutine mld_zmlprec_aply_vect(alpha,p,x,beta,y,desc_data,trans,work,info) call mlprec_wrk(level)%vty%free(info) if (psb_errstatus_fatal()) then info=psb_err_alloc_request_ + nc2l = p%precv(level)%base_desc%get_local_cols() call psb_errpush(info,name,i_err=(/2*nc2l,0,0,0,0/),& & a_err='complex(psb_dpk_)') goto 9999 diff --git a/mlprec/mld_c_as_smoother.f90 b/mlprec/mld_c_as_smoother.f90 index bc1b07e3..61b25b76 100644 --- a/mlprec/mld_c_as_smoother.f90 +++ b/mlprec/mld_c_as_smoother.f90 @@ -80,16 +80,16 @@ module mld_c_as_smoother & prolong_names(0:3)=(/'none ','sum ','average ','square root'/) - interface mld_c_as_smoother_check + interface subroutine mld_c_as_smoother_check(sm,info) import :: psb_cspmat_type, psb_c_vect_type, psb_c_base_vect_type, & & psb_spk_, mld_c_as_smoother_type, psb_long_int_k_, psb_desc_type class(mld_c_as_smoother_type), intent(inout) :: sm integer, intent(out) :: info end subroutine mld_c_as_smoother_check - end interface mld_c_as_smoother_check + end interface - interface mld_c_as_smoother_apply_vect + interface subroutine mld_c_as_smoother_apply_vect(alpha,sm,x,beta,y,desc_data,trans,sweeps,work,info) import :: psb_cspmat_type, psb_c_vect_type, psb_c_base_vect_type, & & psb_spk_, mld_c_as_smoother_type, psb_long_int_k_, psb_desc_type @@ -103,9 +103,9 @@ module mld_c_as_smoother complex(psb_spk_),target, intent(inout) :: work(:) integer, intent(out) :: info end subroutine mld_c_as_smoother_apply_vect - end interface mld_c_as_smoother_apply_vect + end interface - interface mld_c_as_smoother_apply + interface subroutine mld_c_as_smoother_apply(alpha,sm,x,beta,y,desc_data,trans,sweeps,work,info) import :: psb_cspmat_type, psb_c_vect_type, psb_c_base_vect_type, & & psb_spk_, mld_c_as_smoother_type, psb_long_int_k_, psb_desc_type @@ -119,9 +119,9 @@ module mld_c_as_smoother complex(psb_spk_),target, intent(inout) :: work(:) integer, intent(out) :: info end subroutine mld_c_as_smoother_apply - end interface mld_c_as_smoother_apply + end interface - interface mld_c_as_smoother_bld + interface subroutine mld_c_as_smoother_bld(a,desc_a,sm,upd,info,amold,vmold) import :: psb_cspmat_type, psb_c_vect_type, psb_c_base_vect_type, & & psb_spk_, mld_c_as_smoother_type, psb_long_int_k_, & @@ -134,9 +134,9 @@ module mld_c_as_smoother class(psb_c_base_sparse_mat), intent(in), optional :: amold class(psb_c_base_vect_type), intent(in), optional :: vmold end subroutine mld_c_as_smoother_bld - end interface mld_c_as_smoother_bld + end interface - interface mld_c_as_smoother_seti + interface subroutine mld_c_as_smoother_seti(sm,what,val,info) import :: psb_cspmat_type, psb_c_vect_type, psb_c_base_vect_type, & & psb_spk_, mld_c_as_smoother_type, psb_long_int_k_, psb_desc_type @@ -145,9 +145,9 @@ module mld_c_as_smoother integer, intent(in) :: val integer, intent(out) :: info end subroutine mld_c_as_smoother_seti - end interface mld_c_as_smoother_seti + end interface - interface mld_c_as_smoother_setc + interface subroutine mld_c_as_smoother_setc(sm,what,val,info) import :: psb_cspmat_type, psb_c_vect_type, psb_c_base_vect_type, & & psb_spk_, mld_c_as_smoother_type, psb_long_int_k_, psb_desc_type @@ -156,9 +156,9 @@ module mld_c_as_smoother character(len=*), intent(in) :: val integer, intent(out) :: info end subroutine mld_c_as_smoother_setc - end interface mld_c_as_smoother_setc + end interface - interface mld_c_as_smoother_setr + interface subroutine mld_c_as_smoother_setr(sm,what,val,info) import :: psb_cspmat_type, psb_c_vect_type, psb_c_base_vect_type, & & psb_spk_, mld_c_as_smoother_type, psb_long_int_k_, psb_desc_type @@ -167,18 +167,18 @@ module mld_c_as_smoother real(psb_spk_), intent(in) :: val integer, intent(out) :: info end subroutine mld_c_as_smoother_setr - end interface mld_c_as_smoother_setr + end interface - interface mld_c_as_smoother_free + interface subroutine mld_c_as_smoother_free(sm,info) import :: psb_cspmat_type, psb_c_vect_type, psb_c_base_vect_type, & & psb_spk_, mld_c_as_smoother_type, psb_long_int_k_, psb_desc_type class(mld_c_as_smoother_type), intent(inout) :: sm integer, intent(out) :: info end subroutine mld_c_as_smoother_free - end interface mld_c_as_smoother_free + end interface - interface mld_c_as_smoother_dmp + interface subroutine mld_c_as_smoother_dmp(sm,ictxt,level,info,prefix,head,smoother,solver) import :: psb_cspmat_type, psb_c_vect_type, psb_c_base_vect_type, & & psb_spk_, mld_c_as_smoother_type, psb_long_int_k_, psb_desc_type @@ -188,7 +188,7 @@ module mld_c_as_smoother character(len=*), intent(in), optional :: prefix, head logical, optional, intent(in) :: smoother, solver end subroutine mld_c_as_smoother_dmp - end interface mld_c_as_smoother_dmp + end interface contains diff --git a/mlprec/mld_c_base_smoother_mod.f90 b/mlprec/mld_c_base_smoother_mod.f90 index 89f4175d..31767fa8 100644 --- a/mlprec/mld_c_base_smoother_mod.f90 +++ b/mlprec/mld_c_base_smoother_mod.f90 @@ -115,7 +115,7 @@ module mld_c_base_smoother_mod - interface mld_c_base_smoother_apply + interface subroutine mld_c_base_smoother_apply(alpha,sm,x,beta,y,desc_data,trans,sweeps,work,info) import :: psb_desc_type, psb_cspmat_type, psb_c_base_sparse_mat, & & psb_c_vect_type, psb_c_base_vect_type, psb_spk_, mld_c_base_smoother_type @@ -129,9 +129,9 @@ module mld_c_base_smoother_mod complex(psb_spk_),target, intent(inout) :: work(:) integer, intent(out) :: info end subroutine mld_c_base_smoother_apply - end interface mld_c_base_smoother_apply + end interface - interface mld_c_base_smoother_apply_vect + interface subroutine mld_c_base_smoother_apply_vect(alpha,sm,x,beta,y,desc_data,& & trans,sweeps,work,info) import :: psb_desc_type, psb_cspmat_type, psb_c_base_sparse_mat, & @@ -146,9 +146,9 @@ module mld_c_base_smoother_mod complex(psb_spk_),target, intent(inout) :: work(:) integer, intent(out) :: info end subroutine mld_c_base_smoother_apply_vect - end interface mld_c_base_smoother_apply_vect + end interface - interface mld_c_base_smoother_check + interface subroutine mld_c_base_smoother_check(sm,info) import :: psb_desc_type, psb_cspmat_type, psb_c_base_sparse_mat, & & psb_c_vect_type, psb_c_base_vect_type, psb_spk_, mld_c_base_smoother_type @@ -156,9 +156,9 @@ module mld_c_base_smoother_mod class(mld_c_base_smoother_type), intent(inout) :: sm integer, intent(out) :: info end subroutine mld_c_base_smoother_check - end interface mld_c_base_smoother_check + end interface - interface mld_c_base_smoother_seti + interface subroutine mld_c_base_smoother_seti(sm,what,val,info) import :: psb_desc_type, psb_cspmat_type, psb_c_base_sparse_mat, & & psb_c_vect_type, psb_c_base_vect_type, psb_spk_, mld_c_base_smoother_type @@ -168,9 +168,9 @@ module mld_c_base_smoother_mod integer, intent(in) :: val integer, intent(out) :: info end subroutine mld_c_base_smoother_seti - end interface mld_c_base_smoother_seti + end interface - interface mld_c_base_smoother_setc + interface subroutine mld_c_base_smoother_setc(sm,what,val,info) import :: psb_desc_type, psb_cspmat_type, psb_c_base_sparse_mat, & & psb_c_vect_type, psb_c_base_vect_type, psb_spk_, mld_c_base_smoother_type @@ -179,9 +179,9 @@ module mld_c_base_smoother_mod character(len=*), intent(in) :: val integer, intent(out) :: info end subroutine mld_c_base_smoother_setc - end interface mld_c_base_smoother_setc + end interface - interface mld_c_base_smoother_setr + interface subroutine mld_c_base_smoother_setr(sm,what,val,info) import :: psb_desc_type, psb_cspmat_type, psb_c_base_sparse_mat, & & psb_c_vect_type, psb_c_base_vect_type, psb_spk_, mld_c_base_smoother_type @@ -191,9 +191,9 @@ module mld_c_base_smoother_mod real(psb_spk_), intent(in) :: val integer, intent(out) :: info end subroutine mld_c_base_smoother_setr - end interface mld_c_base_smoother_setr + end interface - interface mld_c_base_smoother_bld + interface subroutine mld_c_base_smoother_bld(a,desc_a,sm,upd,info,amold,vmold) import :: psb_desc_type, psb_cspmat_type, psb_c_base_sparse_mat, & & psb_c_vect_type, psb_c_base_vect_type, psb_spk_, mld_c_base_smoother_type @@ -206,9 +206,9 @@ module mld_c_base_smoother_mod class(psb_c_base_sparse_mat), intent(in), optional :: amold class(psb_c_base_vect_type), intent(in), optional :: vmold end subroutine mld_c_base_smoother_bld - end interface mld_c_base_smoother_bld + end interface - interface mld_c_base_smoother_free + interface subroutine mld_c_base_smoother_free(sm,info) import :: psb_desc_type, psb_cspmat_type, psb_c_base_sparse_mat, & & psb_c_vect_type, psb_c_base_vect_type, psb_spk_, mld_c_base_smoother_type @@ -216,9 +216,9 @@ module mld_c_base_smoother_mod class(mld_c_base_smoother_type), intent(inout) :: sm integer, intent(out) :: info end subroutine mld_c_base_smoother_free - end interface mld_c_base_smoother_free + end interface - interface mld_c_base_smoother_descr + interface subroutine mld_c_base_smoother_descr(sm,info,iout,coarse) import :: psb_desc_type, psb_cspmat_type, psb_c_base_sparse_mat, & & psb_c_vect_type, psb_c_base_vect_type, psb_spk_, mld_c_base_smoother_type @@ -228,9 +228,9 @@ module mld_c_base_smoother_mod integer, intent(in), optional :: iout logical, intent(in), optional :: coarse end subroutine mld_c_base_smoother_descr - end interface mld_c_base_smoother_descr + end interface - interface mld_c_base_smoother_dmp + interface subroutine mld_c_base_smoother_dmp(sm,ictxt,level,info,prefix,head,smoother,solver) import :: psb_desc_type, psb_cspmat_type, psb_c_base_sparse_mat, & & psb_c_vect_type, psb_c_base_vect_type, psb_spk_, mld_c_base_smoother_type @@ -240,7 +240,7 @@ module mld_c_base_smoother_mod character(len=*), intent(in), optional :: prefix, head logical, optional, intent(in) :: smoother, solver end subroutine mld_c_base_smoother_dmp - end interface mld_c_base_smoother_dmp + end interface contains ! diff --git a/mlprec/mld_c_base_solver_mod.f90 b/mlprec/mld_c_base_solver_mod.f90 index 9a5f7f95..73d94802 100644 --- a/mlprec/mld_c_base_solver_mod.f90 +++ b/mlprec/mld_c_base_solver_mod.f90 @@ -105,7 +105,7 @@ module mld_c_base_solver_mod & c_base_solver_get_nzeros - interface mld_c_base_solver_apply + interface subroutine mld_c_base_solver_apply(alpha,sv,x,beta,y,desc_data,trans,work,info) import :: psb_desc_type, psb_cspmat_type, psb_c_base_sparse_mat, & & psb_c_vect_type, psb_c_base_vect_type, psb_spk_, mld_c_base_solver_type @@ -118,10 +118,10 @@ module mld_c_base_solver_mod complex(psb_spk_),target, intent(inout) :: work(:) integer, intent(out) :: info end subroutine mld_c_base_solver_apply - end interface mld_c_base_solver_apply + end interface - interface mld_c_base_solver_apply_vect + interface subroutine mld_c_base_solver_apply_vect(alpha,sv,x,beta,y,desc_data,trans,work,info) import :: psb_desc_type, psb_cspmat_type, psb_c_base_sparse_mat, & & psb_c_vect_type, psb_c_base_vect_type, psb_spk_, mld_c_base_solver_type @@ -135,9 +135,9 @@ module mld_c_base_solver_mod complex(psb_spk_),target, intent(inout) :: work(:) integer, intent(out) :: info end subroutine mld_c_base_solver_apply_vect - end interface mld_c_base_solver_apply_vect + end interface - interface mld_c_base_solver_bld + interface subroutine mld_c_base_solver_bld(a,desc_a,sv,upd,info,b,amold,vmold) import :: psb_desc_type, psb_cspmat_type, psb_c_base_sparse_mat, & & psb_c_vect_type, psb_c_base_vect_type, psb_spk_, mld_c_base_solver_type @@ -154,9 +154,9 @@ module mld_c_base_solver_mod class(psb_c_base_sparse_mat), intent(in), optional :: amold class(psb_c_base_vect_type), intent(in), optional :: vmold end subroutine mld_c_base_solver_bld - end interface mld_c_base_solver_bld + end interface - interface mld_c_base_solver_check + interface subroutine mld_c_base_solver_check(sv,info) import :: psb_desc_type, psb_cspmat_type, psb_c_base_sparse_mat, & & psb_c_vect_type, psb_c_base_vect_type, psb_spk_, mld_c_base_solver_type @@ -167,9 +167,9 @@ module mld_c_base_solver_mod class(mld_c_base_solver_type), intent(inout) :: sv integer, intent(out) :: info end subroutine mld_c_base_solver_check - end interface mld_c_base_solver_check + end interface - interface mld_c_base_solver_seti + interface subroutine mld_c_base_solver_seti(sv,what,val,info) import :: psb_desc_type, psb_cspmat_type, psb_c_base_sparse_mat, & & psb_c_vect_type, psb_c_base_vect_type, psb_spk_, mld_c_base_solver_type @@ -182,9 +182,9 @@ module mld_c_base_solver_mod integer, intent(in) :: val integer, intent(out) :: info end subroutine mld_c_base_solver_seti - end interface mld_c_base_solver_seti + end interface - interface mld_c_base_solver_setc + interface subroutine mld_c_base_solver_setc(sv,what,val,info) import :: psb_desc_type, psb_cspmat_type, psb_c_base_sparse_mat, & & psb_c_vect_type, psb_c_base_vect_type, psb_spk_, mld_c_base_solver_type @@ -196,9 +196,9 @@ module mld_c_base_solver_mod character(len=*), intent(in) :: val integer, intent(out) :: info end subroutine mld_c_base_solver_setc - end interface mld_c_base_solver_setc + end interface - interface mld_c_base_solver_setr + interface subroutine mld_c_base_solver_setr(sv,what,val,info) import :: psb_desc_type, psb_cspmat_type, psb_c_base_sparse_mat, & & psb_c_vect_type, psb_c_base_vect_type, psb_spk_, mld_c_base_solver_type @@ -211,9 +211,9 @@ module mld_c_base_solver_mod real(psb_spk_), intent(in) :: val integer, intent(out) :: info end subroutine mld_c_base_solver_setr - end interface mld_c_base_solver_setr + end interface - interface mld_c_base_solver_free + interface subroutine mld_c_base_solver_free(sv,info) import :: psb_desc_type, psb_cspmat_type, psb_c_base_sparse_mat, & & psb_c_vect_type, psb_c_base_vect_type, psb_spk_, mld_c_base_solver_type @@ -223,9 +223,9 @@ module mld_c_base_solver_mod class(mld_c_base_solver_type), intent(inout) :: sv integer, intent(out) :: info end subroutine mld_c_base_solver_free - end interface mld_c_base_solver_free + end interface - interface mld_c_base_solver_descr + interface subroutine mld_c_base_solver_descr(sv,info,iout,coarse) import :: psb_desc_type, psb_cspmat_type, psb_c_base_sparse_mat, & & psb_c_vect_type, psb_c_base_vect_type, psb_spk_, mld_c_base_solver_type @@ -239,9 +239,9 @@ module mld_c_base_solver_mod logical, intent(in), optional :: coarse end subroutine mld_c_base_solver_descr - end interface mld_c_base_solver_descr + end interface - interface mld_c_base_solver_dmp + interface subroutine mld_c_base_solver_dmp(sv,ictxt,level,info,prefix,head,solver) import :: psb_desc_type, psb_cspmat_type, psb_c_base_sparse_mat, & & psb_c_vect_type, psb_c_base_vect_type, psb_spk_, mld_c_base_solver_type @@ -253,7 +253,7 @@ module mld_c_base_solver_mod character(len=*), intent(in), optional :: prefix, head logical, optional, intent(in) :: solver end subroutine mld_c_base_solver_dmp - end interface mld_c_base_solver_dmp + end interface diff --git a/mlprec/mld_c_diag_solver.f90 b/mlprec/mld_c_diag_solver.f90 index cae39949..b86161b7 100644 --- a/mlprec/mld_c_diag_solver.f90 +++ b/mlprec/mld_c_diag_solver.f90 @@ -70,7 +70,7 @@ module mld_c_diag_solver & c_diag_solver_get_nzeros - interface mld_c_diag_solver_apply_vect + interface subroutine mld_c_diag_solver_apply_vect(alpha,sv,x,beta,y,desc_data,trans,work,info) import :: psb_desc_type, psb_cspmat_type, psb_c_base_sparse_mat, & & psb_c_vect_type, psb_c_base_vect_type, psb_spk_, mld_c_diag_solver_type @@ -83,9 +83,9 @@ module mld_c_diag_solver complex(psb_spk_),target, intent(inout) :: work(:) integer, intent(out) :: info end subroutine mld_c_diag_solver_apply_vect - end interface mld_c_diag_solver_apply_vect + end interface - interface mld_c_diag_solver_apply + interface subroutine mld_c_diag_solver_apply(alpha,sv,x,beta,y,desc_data,trans,work,info) import :: psb_desc_type, psb_cspmat_type, psb_c_base_sparse_mat, & & psb_c_vect_type, psb_c_base_vect_type, psb_spk_, mld_c_diag_solver_type @@ -98,9 +98,9 @@ module mld_c_diag_solver complex(psb_spk_),target, intent(inout) :: work(:) integer, intent(out) :: info end subroutine mld_c_diag_solver_apply - end interface mld_c_diag_solver_apply + end interface - interface mld_c_diag_solver_bld + interface subroutine mld_c_diag_solver_bld(a,desc_a,sv,upd,info,b,amold,vmold) import :: psb_desc_type, psb_cspmat_type, psb_c_base_sparse_mat, & & psb_c_vect_type, psb_c_base_vect_type, psb_spk_, mld_c_diag_solver_type @@ -113,7 +113,7 @@ module mld_c_diag_solver class(psb_c_base_sparse_mat), intent(in), optional :: amold class(psb_c_base_vect_type), intent(in), optional :: vmold end subroutine mld_c_diag_solver_bld - end interface mld_c_diag_solver_bld + end interface contains diff --git a/mlprec/mld_c_id_solver.f90 b/mlprec/mld_c_id_solver.f90 index 5e5e654b..f0fcfd3e 100644 --- a/mlprec/mld_c_id_solver.f90 +++ b/mlprec/mld_c_id_solver.f90 @@ -65,7 +65,7 @@ module mld_c_id_solver & c_id_solver_setc, c_id_solver_setr,& & c_id_solver_descr - interface mld_c_id_solver_apply_vect + interface subroutine mld_c_id_solver_apply_vect(alpha,sv,x,beta,y,desc_data,trans,work,info) import :: psb_desc_type, psb_cspmat_type, psb_c_base_sparse_mat, & & psb_c_vect_type, psb_c_base_vect_type, psb_spk_, mld_c_id_solver_type @@ -78,9 +78,9 @@ module mld_c_id_solver complex(psb_spk_),target, intent(inout) :: work(:) integer, intent(out) :: info end subroutine mld_c_id_solver_apply_vect - end interface mld_c_id_solver_apply_vect + end interface - interface mld_c_id_solver_apply + interface subroutine mld_c_id_solver_apply(alpha,sv,x,beta,y,desc_data,trans,work,info) import :: psb_desc_type, psb_cspmat_type, psb_c_base_sparse_mat, & & psb_c_vect_type, psb_c_base_vect_type, psb_spk_, mld_c_id_solver_type @@ -93,7 +93,7 @@ module mld_c_id_solver complex(psb_spk_),target, intent(inout) :: work(:) integer, intent(out) :: info end subroutine mld_c_id_solver_apply - end interface mld_c_id_solver_apply + end interface contains diff --git a/mlprec/mld_c_ilu_solver.f90 b/mlprec/mld_c_ilu_solver.f90 index ad0cde2e..002f1d68 100644 --- a/mlprec/mld_c_ilu_solver.f90 +++ b/mlprec/mld_c_ilu_solver.f90 @@ -87,7 +87,7 @@ module mld_c_ilu_solver & 'MILU(n) ','ILU(t,n) '/) - interface mld_c_ilu_solver_apply_vect + interface subroutine mld_c_ilu_solver_apply_vect(alpha,sv,x,beta,y,desc_data,trans,work,info) import :: psb_desc_type, mld_c_ilu_solver_type, psb_c_vect_type, psb_spk_, & & psb_cspmat_type, psb_c_base_sparse_mat, psb_c_base_vect_type @@ -100,9 +100,9 @@ module mld_c_ilu_solver complex(psb_spk_),target, intent(inout) :: work(:) integer, intent(out) :: info end subroutine mld_c_ilu_solver_apply_vect - end interface mld_c_ilu_solver_apply_vect + end interface - interface mld_c_ilu_solver_apply + interface subroutine mld_c_ilu_solver_apply(alpha,sv,x,beta,y,desc_data,trans,work,info) import :: psb_desc_type, mld_c_ilu_solver_type, psb_c_vect_type, psb_spk_, & & psb_cspmat_type, psb_c_base_sparse_mat, psb_c_base_vect_type @@ -115,9 +115,9 @@ module mld_c_ilu_solver complex(psb_spk_),target, intent(inout) :: work(:) integer, intent(out) :: info end subroutine mld_c_ilu_solver_apply - end interface mld_c_ilu_solver_apply + end interface - interface mld_c_ilu_solver_bld + interface subroutine mld_c_ilu_solver_bld(a,desc_a,sv,upd,info,b,amold,vmold) import :: psb_desc_type, mld_c_ilu_solver_type, psb_c_vect_type, psb_spk_, & & psb_cspmat_type, psb_c_base_sparse_mat, psb_c_base_vect_type @@ -130,9 +130,9 @@ module mld_c_ilu_solver class(psb_c_base_sparse_mat), intent(in), optional :: amold class(psb_c_base_vect_type), intent(in), optional :: vmold end subroutine mld_c_ilu_solver_bld - end interface mld_c_ilu_solver_bld + end interface - interface mld_c_ilu_solver_dmp + interface subroutine mld_c_ilu_solver_dmp(sv,ictxt,level,info,prefix,head,solver) import :: psb_desc_type, mld_c_ilu_solver_type, psb_c_vect_type, psb_spk_, & & psb_cspmat_type, psb_c_base_sparse_mat, psb_c_base_vect_type @@ -142,7 +142,7 @@ module mld_c_ilu_solver character(len=*), intent(in), optional :: prefix, head logical, optional, intent(in) :: solver end subroutine mld_c_ilu_solver_dmp - end interface mld_c_ilu_solver_dmp + end interface contains diff --git a/mlprec/mld_c_jac_smoother.f90 b/mlprec/mld_c_jac_smoother.f90 index a3374d9c..92624a70 100644 --- a/mlprec/mld_c_jac_smoother.f90 +++ b/mlprec/mld_c_jac_smoother.f90 @@ -73,7 +73,7 @@ module mld_c_jac_smoother & c_jac_smoother_get_nzeros - interface mld_c_jac_smoother_apply_vect + interface subroutine mld_c_jac_smoother_apply_vect(alpha,sm,x,beta,y,desc_data,trans,sweeps,work,info) import :: psb_desc_type, mld_c_jac_smoother_type, psb_c_vect_type, psb_spk_, & & psb_cspmat_type, psb_c_base_sparse_mat, psb_c_base_vect_type @@ -88,9 +88,9 @@ module mld_c_jac_smoother complex(psb_spk_),target, intent(inout) :: work(:) integer, intent(out) :: info end subroutine mld_c_jac_smoother_apply_vect - end interface mld_c_jac_smoother_apply_vect + end interface - interface mld_c_jac_smoother_apply + interface subroutine mld_c_jac_smoother_apply(alpha,sm,x,beta,y,desc_data,trans,sweeps,work,info) import :: psb_desc_type, mld_c_jac_smoother_type, psb_c_vect_type, psb_spk_, & & psb_cspmat_type, psb_c_base_sparse_mat, psb_c_base_vect_type @@ -104,9 +104,9 @@ module mld_c_jac_smoother complex(psb_spk_),target, intent(inout) :: work(:) integer, intent(out) :: info end subroutine mld_c_jac_smoother_apply - end interface mld_c_jac_smoother_apply + end interface - interface mld_c_jac_smoother_bld + interface subroutine mld_c_jac_smoother_bld(a,desc_a,sm,upd,info,amold,vmold) import :: psb_desc_type, mld_c_jac_smoother_type, psb_c_vect_type, psb_spk_, & & psb_cspmat_type, psb_c_base_sparse_mat, psb_c_base_vect_type @@ -118,7 +118,7 @@ module mld_c_jac_smoother class(psb_c_base_sparse_mat), intent(in), optional :: amold class(psb_c_base_vect_type), intent(in), optional :: vmold end subroutine mld_c_jac_smoother_bld - end interface mld_c_jac_smoother_bld + end interface contains diff --git a/mlprec/mld_c_move_alloc_mod.f90 b/mlprec/mld_c_move_alloc_mod.f90 index a22635a0..85f8120b 100644 --- a/mlprec/mld_c_move_alloc_mod.f90 +++ b/mlprec/mld_c_move_alloc_mod.f90 @@ -77,7 +77,7 @@ contains type(mld_cprec_type), intent(inout) :: a type(mld_cprec_type), intent(inout), target :: b integer, intent(out) :: info - integer :: i,isz + integer :: i if (allocated(b%precv)) then ! This might not be required if FINAL procedures are available. @@ -90,7 +90,7 @@ contains call move_alloc(a%precv,b%precv) ! Fix the pointers except on level 1. - do i=2, isz + do i=2, size(b%precv) b%precv(i)%base_a => b%precv(i)%ac b%precv(i)%base_desc => b%precv(i)%desc_ac b%precv(i)%map%p_desc_X => b%precv(i-1)%base_desc diff --git a/mlprec/mld_c_onelev_mod.f90 b/mlprec/mld_c_onelev_mod.f90 index 256ebbd3..ba329fb7 100644 --- a/mlprec/mld_c_onelev_mod.f90 +++ b/mlprec/mld_c_onelev_mod.f90 @@ -146,7 +146,7 @@ module mld_c_onelev_mod - interface mld_c_base_onelev_descr + interface subroutine mld_c_base_onelev_descr(lv,il,nl,info,iout) import :: psb_cspmat_type, psb_c_vect_type, psb_c_base_vect_type, & & psb_clinmap_type, psb_spk_, mld_c_onelev_type, psb_long_int_k_, psb_desc_type @@ -157,9 +157,9 @@ module mld_c_onelev_mod integer, intent(out) :: info integer, intent(in), optional :: iout end subroutine mld_c_base_onelev_descr - end interface mld_c_base_onelev_descr + end interface - interface mld_c_base_onelev_free + interface subroutine mld_c_base_onelev_free(lv,info) import :: psb_cspmat_type, psb_c_vect_type, psb_c_base_vect_type, & & psb_clinmap_type, psb_spk_, mld_c_onelev_type, psb_long_int_k_, psb_desc_type @@ -168,9 +168,9 @@ module mld_c_onelev_mod class(mld_c_onelev_type), intent(inout) :: lv integer, intent(out) :: info end subroutine mld_c_base_onelev_free - end interface mld_c_base_onelev_free + end interface - interface mld_c_base_onelev_check + interface subroutine mld_c_base_onelev_check(lv,info) import :: psb_cspmat_type, psb_c_vect_type, psb_c_base_vect_type, & & psb_clinmap_type, psb_spk_, mld_c_onelev_type, psb_long_int_k_, psb_desc_type @@ -179,9 +179,9 @@ module mld_c_onelev_mod class(mld_c_onelev_type), intent(inout) :: lv integer, intent(out) :: info end subroutine mld_c_base_onelev_check - end interface mld_c_base_onelev_check + end interface - interface mld_c_base_onelev_seti + interface subroutine mld_c_base_onelev_seti(lv,what,val,info) import :: psb_cspmat_type, psb_c_vect_type, psb_c_base_vect_type, & & psb_clinmap_type, psb_spk_, mld_c_onelev_type, psb_long_int_k_, psb_desc_type @@ -193,9 +193,9 @@ module mld_c_onelev_mod integer, intent(in) :: val integer, intent(out) :: info end subroutine mld_c_base_onelev_seti - end interface mld_c_base_onelev_seti + end interface - interface mld_c_base_onelev_setc + interface subroutine mld_c_base_onelev_setc(lv,what,val,info) import :: psb_cspmat_type, psb_c_vect_type, psb_c_base_vect_type, & & psb_clinmap_type, psb_spk_, mld_c_onelev_type, psb_long_int_k_, psb_desc_type @@ -206,9 +206,9 @@ module mld_c_onelev_mod character(len=*), intent(in) :: val integer, intent(out) :: info end subroutine mld_c_base_onelev_setc - end interface mld_c_base_onelev_setc + end interface - interface mld_c_base_onelev_setr + interface subroutine mld_c_base_onelev_setr(lv,what,val,info) import :: psb_cspmat_type, psb_c_vect_type, psb_c_base_vect_type, & & psb_clinmap_type, psb_spk_, mld_c_onelev_type, psb_long_int_k_, psb_desc_type @@ -219,9 +219,9 @@ module mld_c_onelev_mod real(psb_spk_), intent(in) :: val integer, intent(out) :: info end subroutine mld_c_base_onelev_setr - end interface mld_c_base_onelev_setr + end interface - interface mld_c_base_onelev_dump + interface subroutine mld_c_base_onelev_dump(lv,level,info,prefix,head,ac,rp,smoother,solver) import :: psb_cspmat_type, psb_c_vect_type, psb_c_base_vect_type, & & psb_clinmap_type, psb_spk_, mld_c_onelev_type, psb_long_int_k_, psb_desc_type @@ -232,7 +232,7 @@ module mld_c_onelev_mod character(len=*), intent(in), optional :: prefix, head logical, optional, intent(in) :: ac, rp, smoother, solver end subroutine mld_c_base_onelev_dump - end interface mld_c_base_onelev_dump + end interface contains diff --git a/mlprec/mld_d_as_smoother.f90 b/mlprec/mld_d_as_smoother.f90 index fede0318..11af6277 100644 --- a/mlprec/mld_d_as_smoother.f90 +++ b/mlprec/mld_d_as_smoother.f90 @@ -80,16 +80,16 @@ module mld_d_as_smoother & prolong_names(0:3)=(/'none ','sum ','average ','square root'/) - interface mld_d_as_smoother_check + interface subroutine mld_d_as_smoother_check(sm,info) import :: psb_dspmat_type, psb_d_vect_type, psb_d_base_vect_type, & & psb_dpk_, mld_d_as_smoother_type, psb_long_int_k_, psb_desc_type class(mld_d_as_smoother_type), intent(inout) :: sm integer, intent(out) :: info end subroutine mld_d_as_smoother_check - end interface mld_d_as_smoother_check + end interface - interface mld_d_as_smoother_apply_vect + interface subroutine mld_d_as_smoother_apply_vect(alpha,sm,x,beta,y,desc_data,trans,sweeps,work,info) import :: psb_dspmat_type, psb_d_vect_type, psb_d_base_vect_type, & & psb_dpk_, mld_d_as_smoother_type, psb_long_int_k_, psb_desc_type @@ -103,9 +103,9 @@ module mld_d_as_smoother real(psb_dpk_),target, intent(inout) :: work(:) integer, intent(out) :: info end subroutine mld_d_as_smoother_apply_vect - end interface mld_d_as_smoother_apply_vect + end interface - interface mld_d_as_smoother_apply + interface subroutine mld_d_as_smoother_apply(alpha,sm,x,beta,y,desc_data,trans,sweeps,work,info) import :: psb_dspmat_type, psb_d_vect_type, psb_d_base_vect_type, & & psb_dpk_, mld_d_as_smoother_type, psb_long_int_k_, psb_desc_type @@ -119,9 +119,9 @@ module mld_d_as_smoother real(psb_dpk_),target, intent(inout) :: work(:) integer, intent(out) :: info end subroutine mld_d_as_smoother_apply - end interface mld_d_as_smoother_apply + end interface - interface mld_d_as_smoother_bld + interface subroutine mld_d_as_smoother_bld(a,desc_a,sm,upd,info,amold,vmold) import :: psb_dspmat_type, psb_d_vect_type, psb_d_base_vect_type, & & psb_dpk_, mld_d_as_smoother_type, psb_long_int_k_, & @@ -134,9 +134,9 @@ module mld_d_as_smoother class(psb_d_base_sparse_mat), intent(in), optional :: amold class(psb_d_base_vect_type), intent(in), optional :: vmold end subroutine mld_d_as_smoother_bld - end interface mld_d_as_smoother_bld + end interface - interface mld_d_as_smoother_seti + interface subroutine mld_d_as_smoother_seti(sm,what,val,info) import :: psb_dspmat_type, psb_d_vect_type, psb_d_base_vect_type, & & psb_dpk_, mld_d_as_smoother_type, psb_long_int_k_, psb_desc_type @@ -145,9 +145,9 @@ module mld_d_as_smoother integer, intent(in) :: val integer, intent(out) :: info end subroutine mld_d_as_smoother_seti - end interface mld_d_as_smoother_seti + end interface - interface mld_d_as_smoother_setc + interface subroutine mld_d_as_smoother_setc(sm,what,val,info) import :: psb_dspmat_type, psb_d_vect_type, psb_d_base_vect_type, & & psb_dpk_, mld_d_as_smoother_type, psb_long_int_k_, psb_desc_type @@ -156,9 +156,9 @@ module mld_d_as_smoother character(len=*), intent(in) :: val integer, intent(out) :: info end subroutine mld_d_as_smoother_setc - end interface mld_d_as_smoother_setc + end interface - interface mld_d_as_smoother_setr + interface subroutine mld_d_as_smoother_setr(sm,what,val,info) import :: psb_dspmat_type, psb_d_vect_type, psb_d_base_vect_type, & & psb_dpk_, mld_d_as_smoother_type, psb_long_int_k_, psb_desc_type @@ -167,18 +167,18 @@ module mld_d_as_smoother real(psb_dpk_), intent(in) :: val integer, intent(out) :: info end subroutine mld_d_as_smoother_setr - end interface mld_d_as_smoother_setr + end interface - interface mld_d_as_smoother_free + interface subroutine mld_d_as_smoother_free(sm,info) import :: psb_dspmat_type, psb_d_vect_type, psb_d_base_vect_type, & & psb_dpk_, mld_d_as_smoother_type, psb_long_int_k_, psb_desc_type class(mld_d_as_smoother_type), intent(inout) :: sm integer, intent(out) :: info end subroutine mld_d_as_smoother_free - end interface mld_d_as_smoother_free + end interface - interface mld_d_as_smoother_dmp + interface subroutine mld_d_as_smoother_dmp(sm,ictxt,level,info,prefix,head,smoother,solver) import :: psb_dspmat_type, psb_d_vect_type, psb_d_base_vect_type, & & psb_dpk_, mld_d_as_smoother_type, psb_long_int_k_, psb_desc_type @@ -188,7 +188,7 @@ module mld_d_as_smoother character(len=*), intent(in), optional :: prefix, head logical, optional, intent(in) :: smoother, solver end subroutine mld_d_as_smoother_dmp - end interface mld_d_as_smoother_dmp + end interface contains diff --git a/mlprec/mld_d_base_smoother_mod.f90 b/mlprec/mld_d_base_smoother_mod.f90 index ff33d062..99f04789 100644 --- a/mlprec/mld_d_base_smoother_mod.f90 +++ b/mlprec/mld_d_base_smoother_mod.f90 @@ -115,7 +115,7 @@ module mld_d_base_smoother_mod - interface mld_d_base_smoother_apply + interface subroutine mld_d_base_smoother_apply(alpha,sm,x,beta,y,desc_data,trans,sweeps,work,info) import :: psb_desc_type, psb_dspmat_type, psb_d_base_sparse_mat, & & psb_d_vect_type, psb_d_base_vect_type, psb_dpk_, mld_d_base_smoother_type @@ -129,9 +129,9 @@ module mld_d_base_smoother_mod real(psb_dpk_),target, intent(inout) :: work(:) integer, intent(out) :: info end subroutine mld_d_base_smoother_apply - end interface mld_d_base_smoother_apply + end interface - interface mld_d_base_smoother_apply_vect + interface subroutine mld_d_base_smoother_apply_vect(alpha,sm,x,beta,y,desc_data,& & trans,sweeps,work,info) import :: psb_desc_type, psb_dspmat_type, psb_d_base_sparse_mat, & @@ -146,9 +146,9 @@ module mld_d_base_smoother_mod real(psb_dpk_),target, intent(inout) :: work(:) integer, intent(out) :: info end subroutine mld_d_base_smoother_apply_vect - end interface mld_d_base_smoother_apply_vect + end interface - interface mld_d_base_smoother_check + interface subroutine mld_d_base_smoother_check(sm,info) import :: psb_desc_type, psb_dspmat_type, psb_d_base_sparse_mat, & & psb_d_vect_type, psb_d_base_vect_type, psb_dpk_, mld_d_base_smoother_type @@ -156,9 +156,9 @@ module mld_d_base_smoother_mod class(mld_d_base_smoother_type), intent(inout) :: sm integer, intent(out) :: info end subroutine mld_d_base_smoother_check - end interface mld_d_base_smoother_check + end interface - interface mld_d_base_smoother_seti + interface subroutine mld_d_base_smoother_seti(sm,what,val,info) import :: psb_desc_type, psb_dspmat_type, psb_d_base_sparse_mat, & & psb_d_vect_type, psb_d_base_vect_type, psb_dpk_, mld_d_base_smoother_type @@ -168,9 +168,9 @@ module mld_d_base_smoother_mod integer, intent(in) :: val integer, intent(out) :: info end subroutine mld_d_base_smoother_seti - end interface mld_d_base_smoother_seti + end interface - interface mld_d_base_smoother_setc + interface subroutine mld_d_base_smoother_setc(sm,what,val,info) import :: psb_desc_type, psb_dspmat_type, psb_d_base_sparse_mat, & & psb_d_vect_type, psb_d_base_vect_type, psb_dpk_, mld_d_base_smoother_type @@ -179,9 +179,9 @@ module mld_d_base_smoother_mod character(len=*), intent(in) :: val integer, intent(out) :: info end subroutine mld_d_base_smoother_setc - end interface mld_d_base_smoother_setc + end interface - interface mld_d_base_smoother_setr + interface subroutine mld_d_base_smoother_setr(sm,what,val,info) import :: psb_desc_type, psb_dspmat_type, psb_d_base_sparse_mat, & & psb_d_vect_type, psb_d_base_vect_type, psb_dpk_, mld_d_base_smoother_type @@ -191,9 +191,9 @@ module mld_d_base_smoother_mod real(psb_dpk_), intent(in) :: val integer, intent(out) :: info end subroutine mld_d_base_smoother_setr - end interface mld_d_base_smoother_setr + end interface - interface mld_d_base_smoother_bld + interface subroutine mld_d_base_smoother_bld(a,desc_a,sm,upd,info,amold,vmold) import :: psb_desc_type, psb_dspmat_type, psb_d_base_sparse_mat, & & psb_d_vect_type, psb_d_base_vect_type, psb_dpk_, mld_d_base_smoother_type @@ -206,9 +206,9 @@ module mld_d_base_smoother_mod class(psb_d_base_sparse_mat), intent(in), optional :: amold class(psb_d_base_vect_type), intent(in), optional :: vmold end subroutine mld_d_base_smoother_bld - end interface mld_d_base_smoother_bld + end interface - interface mld_d_base_smoother_free + interface subroutine mld_d_base_smoother_free(sm,info) import :: psb_desc_type, psb_dspmat_type, psb_d_base_sparse_mat, & & psb_d_vect_type, psb_d_base_vect_type, psb_dpk_, mld_d_base_smoother_type @@ -216,9 +216,9 @@ module mld_d_base_smoother_mod class(mld_d_base_smoother_type), intent(inout) :: sm integer, intent(out) :: info end subroutine mld_d_base_smoother_free - end interface mld_d_base_smoother_free + end interface - interface mld_d_base_smoother_descr + interface subroutine mld_d_base_smoother_descr(sm,info,iout,coarse) import :: psb_desc_type, psb_dspmat_type, psb_d_base_sparse_mat, & & psb_d_vect_type, psb_d_base_vect_type, psb_dpk_, mld_d_base_smoother_type @@ -228,9 +228,9 @@ module mld_d_base_smoother_mod integer, intent(in), optional :: iout logical, intent(in), optional :: coarse end subroutine mld_d_base_smoother_descr - end interface mld_d_base_smoother_descr + end interface - interface mld_d_base_smoother_dmp + interface subroutine mld_d_base_smoother_dmp(sm,ictxt,level,info,prefix,head,smoother,solver) import :: psb_desc_type, psb_dspmat_type, psb_d_base_sparse_mat, & & psb_d_vect_type, psb_d_base_vect_type, psb_dpk_, mld_d_base_smoother_type @@ -240,7 +240,7 @@ module mld_d_base_smoother_mod character(len=*), intent(in), optional :: prefix, head logical, optional, intent(in) :: smoother, solver end subroutine mld_d_base_smoother_dmp - end interface mld_d_base_smoother_dmp + end interface contains ! diff --git a/mlprec/mld_d_base_solver_mod.f90 b/mlprec/mld_d_base_solver_mod.f90 index f382a2a9..71ca6b0b 100644 --- a/mlprec/mld_d_base_solver_mod.f90 +++ b/mlprec/mld_d_base_solver_mod.f90 @@ -105,7 +105,7 @@ module mld_d_base_solver_mod & d_base_solver_get_nzeros - interface mld_d_base_solver_apply + interface subroutine mld_d_base_solver_apply(alpha,sv,x,beta,y,desc_data,trans,work,info) import :: psb_desc_type, psb_dspmat_type, psb_d_base_sparse_mat, & & psb_d_vect_type, psb_d_base_vect_type, psb_dpk_, mld_d_base_solver_type @@ -118,10 +118,10 @@ module mld_d_base_solver_mod real(psb_dpk_),target, intent(inout) :: work(:) integer, intent(out) :: info end subroutine mld_d_base_solver_apply - end interface mld_d_base_solver_apply + end interface - interface mld_d_base_solver_apply_vect + interface subroutine mld_d_base_solver_apply_vect(alpha,sv,x,beta,y,desc_data,trans,work,info) import :: psb_desc_type, psb_dspmat_type, psb_d_base_sparse_mat, & & psb_d_vect_type, psb_d_base_vect_type, psb_dpk_, mld_d_base_solver_type @@ -135,9 +135,9 @@ module mld_d_base_solver_mod real(psb_dpk_),target, intent(inout) :: work(:) integer, intent(out) :: info end subroutine mld_d_base_solver_apply_vect - end interface mld_d_base_solver_apply_vect + end interface - interface mld_d_base_solver_bld + interface subroutine mld_d_base_solver_bld(a,desc_a,sv,upd,info,b,amold,vmold) import :: psb_desc_type, psb_dspmat_type, psb_d_base_sparse_mat, & & psb_d_vect_type, psb_d_base_vect_type, psb_dpk_, mld_d_base_solver_type @@ -154,9 +154,9 @@ module mld_d_base_solver_mod class(psb_d_base_sparse_mat), intent(in), optional :: amold class(psb_d_base_vect_type), intent(in), optional :: vmold end subroutine mld_d_base_solver_bld - end interface mld_d_base_solver_bld + end interface - interface mld_d_base_solver_check + interface subroutine mld_d_base_solver_check(sv,info) import :: psb_desc_type, psb_dspmat_type, psb_d_base_sparse_mat, & & psb_d_vect_type, psb_d_base_vect_type, psb_dpk_, mld_d_base_solver_type @@ -167,9 +167,9 @@ module mld_d_base_solver_mod class(mld_d_base_solver_type), intent(inout) :: sv integer, intent(out) :: info end subroutine mld_d_base_solver_check - end interface mld_d_base_solver_check + end interface - interface mld_d_base_solver_seti + interface subroutine mld_d_base_solver_seti(sv,what,val,info) import :: psb_desc_type, psb_dspmat_type, psb_d_base_sparse_mat, & & psb_d_vect_type, psb_d_base_vect_type, psb_dpk_, mld_d_base_solver_type @@ -182,9 +182,9 @@ module mld_d_base_solver_mod integer, intent(in) :: val integer, intent(out) :: info end subroutine mld_d_base_solver_seti - end interface mld_d_base_solver_seti + end interface - interface mld_d_base_solver_setc + interface subroutine mld_d_base_solver_setc(sv,what,val,info) import :: psb_desc_type, psb_dspmat_type, psb_d_base_sparse_mat, & & psb_d_vect_type, psb_d_base_vect_type, psb_dpk_, mld_d_base_solver_type @@ -196,9 +196,9 @@ module mld_d_base_solver_mod character(len=*), intent(in) :: val integer, intent(out) :: info end subroutine mld_d_base_solver_setc - end interface mld_d_base_solver_setc + end interface - interface mld_d_base_solver_setr + interface subroutine mld_d_base_solver_setr(sv,what,val,info) import :: psb_desc_type, psb_dspmat_type, psb_d_base_sparse_mat, & & psb_d_vect_type, psb_d_base_vect_type, psb_dpk_, mld_d_base_solver_type @@ -211,9 +211,9 @@ module mld_d_base_solver_mod real(psb_dpk_), intent(in) :: val integer, intent(out) :: info end subroutine mld_d_base_solver_setr - end interface mld_d_base_solver_setr + end interface - interface mld_d_base_solver_free + interface subroutine mld_d_base_solver_free(sv,info) import :: psb_desc_type, psb_dspmat_type, psb_d_base_sparse_mat, & & psb_d_vect_type, psb_d_base_vect_type, psb_dpk_, mld_d_base_solver_type @@ -223,9 +223,9 @@ module mld_d_base_solver_mod class(mld_d_base_solver_type), intent(inout) :: sv integer, intent(out) :: info end subroutine mld_d_base_solver_free - end interface mld_d_base_solver_free + end interface - interface mld_d_base_solver_descr + interface subroutine mld_d_base_solver_descr(sv,info,iout,coarse) import :: psb_desc_type, psb_dspmat_type, psb_d_base_sparse_mat, & & psb_d_vect_type, psb_d_base_vect_type, psb_dpk_, mld_d_base_solver_type @@ -239,9 +239,9 @@ module mld_d_base_solver_mod logical, intent(in), optional :: coarse end subroutine mld_d_base_solver_descr - end interface mld_d_base_solver_descr + end interface - interface mld_d_base_solver_dmp + interface subroutine mld_d_base_solver_dmp(sv,ictxt,level,info,prefix,head,solver) import :: psb_desc_type, psb_dspmat_type, psb_d_base_sparse_mat, & & psb_d_vect_type, psb_d_base_vect_type, psb_dpk_, mld_d_base_solver_type @@ -253,7 +253,7 @@ module mld_d_base_solver_mod character(len=*), intent(in), optional :: prefix, head logical, optional, intent(in) :: solver end subroutine mld_d_base_solver_dmp - end interface mld_d_base_solver_dmp + end interface diff --git a/mlprec/mld_d_diag_solver.f90 b/mlprec/mld_d_diag_solver.f90 index 50f4c25e..eb124959 100644 --- a/mlprec/mld_d_diag_solver.f90 +++ b/mlprec/mld_d_diag_solver.f90 @@ -70,7 +70,7 @@ module mld_d_diag_solver & d_diag_solver_get_nzeros - interface mld_d_diag_solver_apply_vect + interface subroutine mld_d_diag_solver_apply_vect(alpha,sv,x,beta,y,desc_data,trans,work,info) import :: psb_desc_type, psb_dspmat_type, psb_d_base_sparse_mat, & & psb_d_vect_type, psb_d_base_vect_type, psb_dpk_, mld_d_diag_solver_type @@ -83,9 +83,9 @@ module mld_d_diag_solver real(psb_dpk_),target, intent(inout) :: work(:) integer, intent(out) :: info end subroutine mld_d_diag_solver_apply_vect - end interface mld_d_diag_solver_apply_vect + end interface - interface mld_d_diag_solver_apply + interface subroutine mld_d_diag_solver_apply(alpha,sv,x,beta,y,desc_data,trans,work,info) import :: psb_desc_type, psb_dspmat_type, psb_d_base_sparse_mat, & & psb_d_vect_type, psb_d_base_vect_type, psb_dpk_, mld_d_diag_solver_type @@ -98,9 +98,9 @@ module mld_d_diag_solver real(psb_dpk_),target, intent(inout) :: work(:) integer, intent(out) :: info end subroutine mld_d_diag_solver_apply - end interface mld_d_diag_solver_apply + end interface - interface mld_d_diag_solver_bld + interface subroutine mld_d_diag_solver_bld(a,desc_a,sv,upd,info,b,amold,vmold) import :: psb_desc_type, psb_dspmat_type, psb_d_base_sparse_mat, & & psb_d_vect_type, psb_d_base_vect_type, psb_dpk_, mld_d_diag_solver_type @@ -113,7 +113,7 @@ module mld_d_diag_solver class(psb_d_base_sparse_mat), intent(in), optional :: amold class(psb_d_base_vect_type), intent(in), optional :: vmold end subroutine mld_d_diag_solver_bld - end interface mld_d_diag_solver_bld + end interface contains diff --git a/mlprec/mld_d_id_solver.f90 b/mlprec/mld_d_id_solver.f90 index b6cde41a..22f9b1b3 100644 --- a/mlprec/mld_d_id_solver.f90 +++ b/mlprec/mld_d_id_solver.f90 @@ -65,7 +65,7 @@ module mld_d_id_solver & d_id_solver_setc, d_id_solver_setr,& & d_id_solver_descr - interface mld_d_id_solver_apply_vect + interface subroutine mld_d_id_solver_apply_vect(alpha,sv,x,beta,y,desc_data,trans,work,info) import :: psb_desc_type, psb_dspmat_type, psb_d_base_sparse_mat, & & psb_d_vect_type, psb_d_base_vect_type, psb_dpk_, mld_d_id_solver_type @@ -78,9 +78,9 @@ module mld_d_id_solver real(psb_dpk_),target, intent(inout) :: work(:) integer, intent(out) :: info end subroutine mld_d_id_solver_apply_vect - end interface mld_d_id_solver_apply_vect + end interface - interface mld_d_id_solver_apply + interface subroutine mld_d_id_solver_apply(alpha,sv,x,beta,y,desc_data,trans,work,info) import :: psb_desc_type, psb_dspmat_type, psb_d_base_sparse_mat, & & psb_d_vect_type, psb_d_base_vect_type, psb_dpk_, mld_d_id_solver_type @@ -93,7 +93,7 @@ module mld_d_id_solver real(psb_dpk_),target, intent(inout) :: work(:) integer, intent(out) :: info end subroutine mld_d_id_solver_apply - end interface mld_d_id_solver_apply + end interface contains diff --git a/mlprec/mld_d_ilu_solver.f90 b/mlprec/mld_d_ilu_solver.f90 index 5535d519..732130ec 100644 --- a/mlprec/mld_d_ilu_solver.f90 +++ b/mlprec/mld_d_ilu_solver.f90 @@ -87,7 +87,7 @@ module mld_d_ilu_solver & 'MILU(n) ','ILU(t,n) '/) - interface mld_d_ilu_solver_apply_vect + interface subroutine mld_d_ilu_solver_apply_vect(alpha,sv,x,beta,y,desc_data,trans,work,info) import :: psb_desc_type, mld_d_ilu_solver_type, psb_d_vect_type, psb_dpk_, & & psb_dspmat_type, psb_d_base_sparse_mat, psb_d_base_vect_type @@ -100,9 +100,9 @@ module mld_d_ilu_solver real(psb_dpk_),target, intent(inout) :: work(:) integer, intent(out) :: info end subroutine mld_d_ilu_solver_apply_vect - end interface mld_d_ilu_solver_apply_vect + end interface - interface mld_d_ilu_solver_apply + interface subroutine mld_d_ilu_solver_apply(alpha,sv,x,beta,y,desc_data,trans,work,info) import :: psb_desc_type, mld_d_ilu_solver_type, psb_d_vect_type, psb_dpk_, & & psb_dspmat_type, psb_d_base_sparse_mat, psb_d_base_vect_type @@ -115,9 +115,9 @@ module mld_d_ilu_solver real(psb_dpk_),target, intent(inout) :: work(:) integer, intent(out) :: info end subroutine mld_d_ilu_solver_apply - end interface mld_d_ilu_solver_apply + end interface - interface mld_d_ilu_solver_bld + interface subroutine mld_d_ilu_solver_bld(a,desc_a,sv,upd,info,b,amold,vmold) import :: psb_desc_type, mld_d_ilu_solver_type, psb_d_vect_type, psb_dpk_, & & psb_dspmat_type, psb_d_base_sparse_mat, psb_d_base_vect_type @@ -130,9 +130,9 @@ module mld_d_ilu_solver class(psb_d_base_sparse_mat), intent(in), optional :: amold class(psb_d_base_vect_type), intent(in), optional :: vmold end subroutine mld_d_ilu_solver_bld - end interface mld_d_ilu_solver_bld + end interface - interface mld_d_ilu_solver_dmp + interface subroutine mld_d_ilu_solver_dmp(sv,ictxt,level,info,prefix,head,solver) import :: psb_desc_type, mld_d_ilu_solver_type, psb_d_vect_type, psb_dpk_, & & psb_dspmat_type, psb_d_base_sparse_mat, psb_d_base_vect_type @@ -142,7 +142,7 @@ module mld_d_ilu_solver character(len=*), intent(in), optional :: prefix, head logical, optional, intent(in) :: solver end subroutine mld_d_ilu_solver_dmp - end interface mld_d_ilu_solver_dmp + end interface contains diff --git a/mlprec/mld_d_jac_smoother.f90 b/mlprec/mld_d_jac_smoother.f90 index cc8e1f15..d6a589df 100644 --- a/mlprec/mld_d_jac_smoother.f90 +++ b/mlprec/mld_d_jac_smoother.f90 @@ -73,7 +73,7 @@ module mld_d_jac_smoother & d_jac_smoother_get_nzeros - interface mld_d_jac_smoother_apply_vect + interface subroutine mld_d_jac_smoother_apply_vect(alpha,sm,x,beta,y,desc_data,trans,sweeps,work,info) import :: psb_desc_type, mld_d_jac_smoother_type, psb_d_vect_type, psb_dpk_, & & psb_dspmat_type, psb_d_base_sparse_mat, psb_d_base_vect_type @@ -88,9 +88,9 @@ module mld_d_jac_smoother real(psb_dpk_),target, intent(inout) :: work(:) integer, intent(out) :: info end subroutine mld_d_jac_smoother_apply_vect - end interface mld_d_jac_smoother_apply_vect + end interface - interface mld_d_jac_smoother_apply + interface subroutine mld_d_jac_smoother_apply(alpha,sm,x,beta,y,desc_data,trans,sweeps,work,info) import :: psb_desc_type, mld_d_jac_smoother_type, psb_d_vect_type, psb_dpk_, & & psb_dspmat_type, psb_d_base_sparse_mat, psb_d_base_vect_type @@ -104,9 +104,9 @@ module mld_d_jac_smoother real(psb_dpk_),target, intent(inout) :: work(:) integer, intent(out) :: info end subroutine mld_d_jac_smoother_apply - end interface mld_d_jac_smoother_apply + end interface - interface mld_d_jac_smoother_bld + interface subroutine mld_d_jac_smoother_bld(a,desc_a,sm,upd,info,amold,vmold) import :: psb_desc_type, mld_d_jac_smoother_type, psb_d_vect_type, psb_dpk_, & & psb_dspmat_type, psb_d_base_sparse_mat, psb_d_base_vect_type @@ -118,7 +118,7 @@ module mld_d_jac_smoother class(psb_d_base_sparse_mat), intent(in), optional :: amold class(psb_d_base_vect_type), intent(in), optional :: vmold end subroutine mld_d_jac_smoother_bld - end interface mld_d_jac_smoother_bld + end interface contains diff --git a/mlprec/mld_d_move_alloc_mod.f90 b/mlprec/mld_d_move_alloc_mod.f90 index f9e0ea33..d7bc7f1e 100644 --- a/mlprec/mld_d_move_alloc_mod.f90 +++ b/mlprec/mld_d_move_alloc_mod.f90 @@ -77,7 +77,7 @@ contains type(mld_dprec_type), intent(inout) :: a type(mld_dprec_type), intent(inout), target :: b integer, intent(out) :: info - integer :: i,isz + integer :: i if (allocated(b%precv)) then ! This might not be required if FINAL procedures are available. @@ -90,7 +90,7 @@ contains call move_alloc(a%precv,b%precv) ! Fix the pointers except on level 1. - do i=2, isz + do i=2, size(b%precv) b%precv(i)%base_a => b%precv(i)%ac b%precv(i)%base_desc => b%precv(i)%desc_ac b%precv(i)%map%p_desc_X => b%precv(i-1)%base_desc diff --git a/mlprec/mld_d_onelev_mod.f90 b/mlprec/mld_d_onelev_mod.f90 index a1ef9fad..a17a0333 100644 --- a/mlprec/mld_d_onelev_mod.f90 +++ b/mlprec/mld_d_onelev_mod.f90 @@ -146,7 +146,7 @@ module mld_d_onelev_mod - interface mld_d_base_onelev_descr + interface subroutine mld_d_base_onelev_descr(lv,il,nl,info,iout) import :: psb_dspmat_type, psb_d_vect_type, psb_d_base_vect_type, & & psb_dlinmap_type, psb_dpk_, mld_d_onelev_type, psb_long_int_k_, psb_desc_type @@ -157,9 +157,9 @@ module mld_d_onelev_mod integer, intent(out) :: info integer, intent(in), optional :: iout end subroutine mld_d_base_onelev_descr - end interface mld_d_base_onelev_descr + end interface - interface mld_d_base_onelev_free + interface subroutine mld_d_base_onelev_free(lv,info) import :: psb_dspmat_type, psb_d_vect_type, psb_d_base_vect_type, & & psb_dlinmap_type, psb_dpk_, mld_d_onelev_type, psb_long_int_k_, psb_desc_type @@ -168,9 +168,9 @@ module mld_d_onelev_mod class(mld_d_onelev_type), intent(inout) :: lv integer, intent(out) :: info end subroutine mld_d_base_onelev_free - end interface mld_d_base_onelev_free + end interface - interface mld_d_base_onelev_check + interface subroutine mld_d_base_onelev_check(lv,info) import :: psb_dspmat_type, psb_d_vect_type, psb_d_base_vect_type, & & psb_dlinmap_type, psb_dpk_, mld_d_onelev_type, psb_long_int_k_, psb_desc_type @@ -179,9 +179,9 @@ module mld_d_onelev_mod class(mld_d_onelev_type), intent(inout) :: lv integer, intent(out) :: info end subroutine mld_d_base_onelev_check - end interface mld_d_base_onelev_check + end interface - interface mld_d_base_onelev_seti + interface subroutine mld_d_base_onelev_seti(lv,what,val,info) import :: psb_dspmat_type, psb_d_vect_type, psb_d_base_vect_type, & & psb_dlinmap_type, psb_dpk_, mld_d_onelev_type, psb_long_int_k_, psb_desc_type @@ -193,9 +193,9 @@ module mld_d_onelev_mod integer, intent(in) :: val integer, intent(out) :: info end subroutine mld_d_base_onelev_seti - end interface mld_d_base_onelev_seti + end interface - interface mld_d_base_onelev_setc + interface subroutine mld_d_base_onelev_setc(lv,what,val,info) import :: psb_dspmat_type, psb_d_vect_type, psb_d_base_vect_type, & & psb_dlinmap_type, psb_dpk_, mld_d_onelev_type, psb_long_int_k_, psb_desc_type @@ -206,9 +206,9 @@ module mld_d_onelev_mod character(len=*), intent(in) :: val integer, intent(out) :: info end subroutine mld_d_base_onelev_setc - end interface mld_d_base_onelev_setc + end interface - interface mld_d_base_onelev_setr + interface subroutine mld_d_base_onelev_setr(lv,what,val,info) import :: psb_dspmat_type, psb_d_vect_type, psb_d_base_vect_type, & & psb_dlinmap_type, psb_dpk_, mld_d_onelev_type, psb_long_int_k_, psb_desc_type @@ -219,9 +219,9 @@ module mld_d_onelev_mod real(psb_dpk_), intent(in) :: val integer, intent(out) :: info end subroutine mld_d_base_onelev_setr - end interface mld_d_base_onelev_setr + end interface - interface mld_d_base_onelev_dump + interface subroutine mld_d_base_onelev_dump(lv,level,info,prefix,head,ac,rp,smoother,solver) import :: psb_dspmat_type, psb_d_vect_type, psb_d_base_vect_type, & & psb_dlinmap_type, psb_dpk_, mld_d_onelev_type, psb_long_int_k_, psb_desc_type @@ -232,7 +232,7 @@ module mld_d_onelev_mod character(len=*), intent(in), optional :: prefix, head logical, optional, intent(in) :: ac, rp, smoother, solver end subroutine mld_d_base_onelev_dump - end interface mld_d_base_onelev_dump + end interface contains diff --git a/mlprec/mld_s_as_smoother.f90 b/mlprec/mld_s_as_smoother.f90 index b023a31e..7c7eb0eb 100644 --- a/mlprec/mld_s_as_smoother.f90 +++ b/mlprec/mld_s_as_smoother.f90 @@ -80,16 +80,16 @@ module mld_s_as_smoother & prolong_names(0:3)=(/'none ','sum ','average ','square root'/) - interface mld_s_as_smoother_check + interface subroutine mld_s_as_smoother_check(sm,info) import :: psb_sspmat_type, psb_s_vect_type, psb_s_base_vect_type, & & psb_spk_, mld_s_as_smoother_type, psb_long_int_k_, psb_desc_type class(mld_s_as_smoother_type), intent(inout) :: sm integer, intent(out) :: info end subroutine mld_s_as_smoother_check - end interface mld_s_as_smoother_check + end interface - interface mld_s_as_smoother_apply_vect + interface subroutine mld_s_as_smoother_apply_vect(alpha,sm,x,beta,y,desc_data,trans,sweeps,work,info) import :: psb_sspmat_type, psb_s_vect_type, psb_s_base_vect_type, & & psb_spk_, mld_s_as_smoother_type, psb_long_int_k_, psb_desc_type @@ -103,9 +103,9 @@ module mld_s_as_smoother real(psb_spk_),target, intent(inout) :: work(:) integer, intent(out) :: info end subroutine mld_s_as_smoother_apply_vect - end interface mld_s_as_smoother_apply_vect + end interface - interface mld_s_as_smoother_apply + interface subroutine mld_s_as_smoother_apply(alpha,sm,x,beta,y,desc_data,trans,sweeps,work,info) import :: psb_sspmat_type, psb_s_vect_type, psb_s_base_vect_type, & & psb_spk_, mld_s_as_smoother_type, psb_long_int_k_, psb_desc_type @@ -119,9 +119,9 @@ module mld_s_as_smoother real(psb_spk_),target, intent(inout) :: work(:) integer, intent(out) :: info end subroutine mld_s_as_smoother_apply - end interface mld_s_as_smoother_apply + end interface - interface mld_s_as_smoother_bld + interface subroutine mld_s_as_smoother_bld(a,desc_a,sm,upd,info,amold,vmold) import :: psb_sspmat_type, psb_s_vect_type, psb_s_base_vect_type, & & psb_spk_, mld_s_as_smoother_type, psb_long_int_k_, & @@ -134,9 +134,9 @@ module mld_s_as_smoother class(psb_s_base_sparse_mat), intent(in), optional :: amold class(psb_s_base_vect_type), intent(in), optional :: vmold end subroutine mld_s_as_smoother_bld - end interface mld_s_as_smoother_bld + end interface - interface mld_s_as_smoother_seti + interface subroutine mld_s_as_smoother_seti(sm,what,val,info) import :: psb_sspmat_type, psb_s_vect_type, psb_s_base_vect_type, & & psb_spk_, mld_s_as_smoother_type, psb_long_int_k_, psb_desc_type @@ -145,9 +145,9 @@ module mld_s_as_smoother integer, intent(in) :: val integer, intent(out) :: info end subroutine mld_s_as_smoother_seti - end interface mld_s_as_smoother_seti + end interface - interface mld_s_as_smoother_setc + interface subroutine mld_s_as_smoother_setc(sm,what,val,info) import :: psb_sspmat_type, psb_s_vect_type, psb_s_base_vect_type, & & psb_spk_, mld_s_as_smoother_type, psb_long_int_k_, psb_desc_type @@ -156,9 +156,9 @@ module mld_s_as_smoother character(len=*), intent(in) :: val integer, intent(out) :: info end subroutine mld_s_as_smoother_setc - end interface mld_s_as_smoother_setc + end interface - interface mld_s_as_smoother_setr + interface subroutine mld_s_as_smoother_setr(sm,what,val,info) import :: psb_sspmat_type, psb_s_vect_type, psb_s_base_vect_type, & & psb_spk_, mld_s_as_smoother_type, psb_long_int_k_, psb_desc_type @@ -167,18 +167,18 @@ module mld_s_as_smoother real(psb_spk_), intent(in) :: val integer, intent(out) :: info end subroutine mld_s_as_smoother_setr - end interface mld_s_as_smoother_setr + end interface - interface mld_s_as_smoother_free + interface subroutine mld_s_as_smoother_free(sm,info) import :: psb_sspmat_type, psb_s_vect_type, psb_s_base_vect_type, & & psb_spk_, mld_s_as_smoother_type, psb_long_int_k_, psb_desc_type class(mld_s_as_smoother_type), intent(inout) :: sm integer, intent(out) :: info end subroutine mld_s_as_smoother_free - end interface mld_s_as_smoother_free + end interface - interface mld_s_as_smoother_dmp + interface subroutine mld_s_as_smoother_dmp(sm,ictxt,level,info,prefix,head,smoother,solver) import :: psb_sspmat_type, psb_s_vect_type, psb_s_base_vect_type, & & psb_spk_, mld_s_as_smoother_type, psb_long_int_k_, psb_desc_type @@ -188,7 +188,7 @@ module mld_s_as_smoother character(len=*), intent(in), optional :: prefix, head logical, optional, intent(in) :: smoother, solver end subroutine mld_s_as_smoother_dmp - end interface mld_s_as_smoother_dmp + end interface contains diff --git a/mlprec/mld_s_base_smoother_mod.f90 b/mlprec/mld_s_base_smoother_mod.f90 index 98452054..8615c822 100644 --- a/mlprec/mld_s_base_smoother_mod.f90 +++ b/mlprec/mld_s_base_smoother_mod.f90 @@ -115,7 +115,7 @@ module mld_s_base_smoother_mod - interface mld_s_base_smoother_apply + interface subroutine mld_s_base_smoother_apply(alpha,sm,x,beta,y,desc_data,trans,sweeps,work,info) import :: psb_desc_type, psb_sspmat_type, psb_s_base_sparse_mat, & & psb_s_vect_type, psb_s_base_vect_type, psb_spk_, mld_s_base_smoother_type @@ -129,9 +129,9 @@ module mld_s_base_smoother_mod real(psb_spk_),target, intent(inout) :: work(:) integer, intent(out) :: info end subroutine mld_s_base_smoother_apply - end interface mld_s_base_smoother_apply + end interface - interface mld_s_base_smoother_apply_vect + interface subroutine mld_s_base_smoother_apply_vect(alpha,sm,x,beta,y,desc_data,& & trans,sweeps,work,info) import :: psb_desc_type, psb_sspmat_type, psb_s_base_sparse_mat, & @@ -146,9 +146,9 @@ module mld_s_base_smoother_mod real(psb_spk_),target, intent(inout) :: work(:) integer, intent(out) :: info end subroutine mld_s_base_smoother_apply_vect - end interface mld_s_base_smoother_apply_vect + end interface - interface mld_s_base_smoother_check + interface subroutine mld_s_base_smoother_check(sm,info) import :: psb_desc_type, psb_sspmat_type, psb_s_base_sparse_mat, & & psb_s_vect_type, psb_s_base_vect_type, psb_spk_, mld_s_base_smoother_type @@ -156,9 +156,9 @@ module mld_s_base_smoother_mod class(mld_s_base_smoother_type), intent(inout) :: sm integer, intent(out) :: info end subroutine mld_s_base_smoother_check - end interface mld_s_base_smoother_check + end interface - interface mld_s_base_smoother_seti + interface subroutine mld_s_base_smoother_seti(sm,what,val,info) import :: psb_desc_type, psb_sspmat_type, psb_s_base_sparse_mat, & & psb_s_vect_type, psb_s_base_vect_type, psb_spk_, mld_s_base_smoother_type @@ -168,9 +168,9 @@ module mld_s_base_smoother_mod integer, intent(in) :: val integer, intent(out) :: info end subroutine mld_s_base_smoother_seti - end interface mld_s_base_smoother_seti + end interface - interface mld_s_base_smoother_setc + interface subroutine mld_s_base_smoother_setc(sm,what,val,info) import :: psb_desc_type, psb_sspmat_type, psb_s_base_sparse_mat, & & psb_s_vect_type, psb_s_base_vect_type, psb_spk_, mld_s_base_smoother_type @@ -179,9 +179,9 @@ module mld_s_base_smoother_mod character(len=*), intent(in) :: val integer, intent(out) :: info end subroutine mld_s_base_smoother_setc - end interface mld_s_base_smoother_setc + end interface - interface mld_s_base_smoother_setr + interface subroutine mld_s_base_smoother_setr(sm,what,val,info) import :: psb_desc_type, psb_sspmat_type, psb_s_base_sparse_mat, & & psb_s_vect_type, psb_s_base_vect_type, psb_spk_, mld_s_base_smoother_type @@ -191,9 +191,9 @@ module mld_s_base_smoother_mod real(psb_spk_), intent(in) :: val integer, intent(out) :: info end subroutine mld_s_base_smoother_setr - end interface mld_s_base_smoother_setr + end interface - interface mld_s_base_smoother_bld + interface subroutine mld_s_base_smoother_bld(a,desc_a,sm,upd,info,amold,vmold) import :: psb_desc_type, psb_sspmat_type, psb_s_base_sparse_mat, & & psb_s_vect_type, psb_s_base_vect_type, psb_spk_, mld_s_base_smoother_type @@ -206,9 +206,9 @@ module mld_s_base_smoother_mod class(psb_s_base_sparse_mat), intent(in), optional :: amold class(psb_s_base_vect_type), intent(in), optional :: vmold end subroutine mld_s_base_smoother_bld - end interface mld_s_base_smoother_bld + end interface - interface mld_s_base_smoother_free + interface subroutine mld_s_base_smoother_free(sm,info) import :: psb_desc_type, psb_sspmat_type, psb_s_base_sparse_mat, & & psb_s_vect_type, psb_s_base_vect_type, psb_spk_, mld_s_base_smoother_type @@ -216,9 +216,9 @@ module mld_s_base_smoother_mod class(mld_s_base_smoother_type), intent(inout) :: sm integer, intent(out) :: info end subroutine mld_s_base_smoother_free - end interface mld_s_base_smoother_free + end interface - interface mld_s_base_smoother_descr + interface subroutine mld_s_base_smoother_descr(sm,info,iout,coarse) import :: psb_desc_type, psb_sspmat_type, psb_s_base_sparse_mat, & & psb_s_vect_type, psb_s_base_vect_type, psb_spk_, mld_s_base_smoother_type @@ -228,9 +228,9 @@ module mld_s_base_smoother_mod integer, intent(in), optional :: iout logical, intent(in), optional :: coarse end subroutine mld_s_base_smoother_descr - end interface mld_s_base_smoother_descr + end interface - interface mld_s_base_smoother_dmp + interface subroutine mld_s_base_smoother_dmp(sm,ictxt,level,info,prefix,head,smoother,solver) import :: psb_desc_type, psb_sspmat_type, psb_s_base_sparse_mat, & & psb_s_vect_type, psb_s_base_vect_type, psb_spk_, mld_s_base_smoother_type @@ -240,7 +240,7 @@ module mld_s_base_smoother_mod character(len=*), intent(in), optional :: prefix, head logical, optional, intent(in) :: smoother, solver end subroutine mld_s_base_smoother_dmp - end interface mld_s_base_smoother_dmp + end interface contains ! diff --git a/mlprec/mld_s_base_solver_mod.f90 b/mlprec/mld_s_base_solver_mod.f90 index f9444641..9c16ab60 100644 --- a/mlprec/mld_s_base_solver_mod.f90 +++ b/mlprec/mld_s_base_solver_mod.f90 @@ -105,7 +105,7 @@ module mld_s_base_solver_mod & s_base_solver_get_nzeros - interface mld_s_base_solver_apply + interface subroutine mld_s_base_solver_apply(alpha,sv,x,beta,y,desc_data,trans,work,info) import :: psb_desc_type, psb_sspmat_type, psb_s_base_sparse_mat, & & psb_s_vect_type, psb_s_base_vect_type, psb_spk_, mld_s_base_solver_type @@ -118,10 +118,10 @@ module mld_s_base_solver_mod real(psb_spk_),target, intent(inout) :: work(:) integer, intent(out) :: info end subroutine mld_s_base_solver_apply - end interface mld_s_base_solver_apply + end interface - interface mld_s_base_solver_apply_vect + interface subroutine mld_s_base_solver_apply_vect(alpha,sv,x,beta,y,desc_data,trans,work,info) import :: psb_desc_type, psb_sspmat_type, psb_s_base_sparse_mat, & & psb_s_vect_type, psb_s_base_vect_type, psb_spk_, mld_s_base_solver_type @@ -135,9 +135,9 @@ module mld_s_base_solver_mod real(psb_spk_),target, intent(inout) :: work(:) integer, intent(out) :: info end subroutine mld_s_base_solver_apply_vect - end interface mld_s_base_solver_apply_vect + end interface - interface mld_s_base_solver_bld + interface subroutine mld_s_base_solver_bld(a,desc_a,sv,upd,info,b,amold,vmold) import :: psb_desc_type, psb_sspmat_type, psb_s_base_sparse_mat, & & psb_s_vect_type, psb_s_base_vect_type, psb_spk_, mld_s_base_solver_type @@ -154,9 +154,9 @@ module mld_s_base_solver_mod class(psb_s_base_sparse_mat), intent(in), optional :: amold class(psb_s_base_vect_type), intent(in), optional :: vmold end subroutine mld_s_base_solver_bld - end interface mld_s_base_solver_bld + end interface - interface mld_s_base_solver_check + interface subroutine mld_s_base_solver_check(sv,info) import :: psb_desc_type, psb_sspmat_type, psb_s_base_sparse_mat, & & psb_s_vect_type, psb_s_base_vect_type, psb_spk_, mld_s_base_solver_type @@ -167,9 +167,9 @@ module mld_s_base_solver_mod class(mld_s_base_solver_type), intent(inout) :: sv integer, intent(out) :: info end subroutine mld_s_base_solver_check - end interface mld_s_base_solver_check + end interface - interface mld_s_base_solver_seti + interface subroutine mld_s_base_solver_seti(sv,what,val,info) import :: psb_desc_type, psb_sspmat_type, psb_s_base_sparse_mat, & & psb_s_vect_type, psb_s_base_vect_type, psb_spk_, mld_s_base_solver_type @@ -182,9 +182,9 @@ module mld_s_base_solver_mod integer, intent(in) :: val integer, intent(out) :: info end subroutine mld_s_base_solver_seti - end interface mld_s_base_solver_seti + end interface - interface mld_s_base_solver_setc + interface subroutine mld_s_base_solver_setc(sv,what,val,info) import :: psb_desc_type, psb_sspmat_type, psb_s_base_sparse_mat, & & psb_s_vect_type, psb_s_base_vect_type, psb_spk_, mld_s_base_solver_type @@ -196,9 +196,9 @@ module mld_s_base_solver_mod character(len=*), intent(in) :: val integer, intent(out) :: info end subroutine mld_s_base_solver_setc - end interface mld_s_base_solver_setc + end interface - interface mld_s_base_solver_setr + interface subroutine mld_s_base_solver_setr(sv,what,val,info) import :: psb_desc_type, psb_sspmat_type, psb_s_base_sparse_mat, & & psb_s_vect_type, psb_s_base_vect_type, psb_spk_, mld_s_base_solver_type @@ -211,9 +211,9 @@ module mld_s_base_solver_mod real(psb_spk_), intent(in) :: val integer, intent(out) :: info end subroutine mld_s_base_solver_setr - end interface mld_s_base_solver_setr + end interface - interface mld_s_base_solver_free + interface subroutine mld_s_base_solver_free(sv,info) import :: psb_desc_type, psb_sspmat_type, psb_s_base_sparse_mat, & & psb_s_vect_type, psb_s_base_vect_type, psb_spk_, mld_s_base_solver_type @@ -223,9 +223,9 @@ module mld_s_base_solver_mod class(mld_s_base_solver_type), intent(inout) :: sv integer, intent(out) :: info end subroutine mld_s_base_solver_free - end interface mld_s_base_solver_free + end interface - interface mld_s_base_solver_descr + interface subroutine mld_s_base_solver_descr(sv,info,iout,coarse) import :: psb_desc_type, psb_sspmat_type, psb_s_base_sparse_mat, & & psb_s_vect_type, psb_s_base_vect_type, psb_spk_, mld_s_base_solver_type @@ -239,9 +239,9 @@ module mld_s_base_solver_mod logical, intent(in), optional :: coarse end subroutine mld_s_base_solver_descr - end interface mld_s_base_solver_descr + end interface - interface mld_s_base_solver_dmp + interface subroutine mld_s_base_solver_dmp(sv,ictxt,level,info,prefix,head,solver) import :: psb_desc_type, psb_sspmat_type, psb_s_base_sparse_mat, & & psb_s_vect_type, psb_s_base_vect_type, psb_spk_, mld_s_base_solver_type @@ -253,7 +253,7 @@ module mld_s_base_solver_mod character(len=*), intent(in), optional :: prefix, head logical, optional, intent(in) :: solver end subroutine mld_s_base_solver_dmp - end interface mld_s_base_solver_dmp + end interface diff --git a/mlprec/mld_s_diag_solver.f90 b/mlprec/mld_s_diag_solver.f90 index 8ed27149..cf41fdba 100644 --- a/mlprec/mld_s_diag_solver.f90 +++ b/mlprec/mld_s_diag_solver.f90 @@ -70,7 +70,7 @@ module mld_s_diag_solver & s_diag_solver_get_nzeros - interface mld_s_diag_solver_apply_vect + interface subroutine mld_s_diag_solver_apply_vect(alpha,sv,x,beta,y,desc_data,trans,work,info) import :: psb_desc_type, psb_sspmat_type, psb_s_base_sparse_mat, & & psb_s_vect_type, psb_s_base_vect_type, psb_spk_, mld_s_diag_solver_type @@ -83,9 +83,9 @@ module mld_s_diag_solver real(psb_spk_),target, intent(inout) :: work(:) integer, intent(out) :: info end subroutine mld_s_diag_solver_apply_vect - end interface mld_s_diag_solver_apply_vect + end interface - interface mld_s_diag_solver_apply + interface subroutine mld_s_diag_solver_apply(alpha,sv,x,beta,y,desc_data,trans,work,info) import :: psb_desc_type, psb_sspmat_type, psb_s_base_sparse_mat, & & psb_s_vect_type, psb_s_base_vect_type, psb_spk_, mld_s_diag_solver_type @@ -98,9 +98,9 @@ module mld_s_diag_solver real(psb_spk_),target, intent(inout) :: work(:) integer, intent(out) :: info end subroutine mld_s_diag_solver_apply - end interface mld_s_diag_solver_apply + end interface - interface mld_s_diag_solver_bld + interface subroutine mld_s_diag_solver_bld(a,desc_a,sv,upd,info,b,amold,vmold) import :: psb_desc_type, psb_sspmat_type, psb_s_base_sparse_mat, & & psb_s_vect_type, psb_s_base_vect_type, psb_spk_, mld_s_diag_solver_type @@ -113,7 +113,7 @@ module mld_s_diag_solver class(psb_s_base_sparse_mat), intent(in), optional :: amold class(psb_s_base_vect_type), intent(in), optional :: vmold end subroutine mld_s_diag_solver_bld - end interface mld_s_diag_solver_bld + end interface contains diff --git a/mlprec/mld_s_id_solver.f90 b/mlprec/mld_s_id_solver.f90 index 93776b87..4cede8c6 100644 --- a/mlprec/mld_s_id_solver.f90 +++ b/mlprec/mld_s_id_solver.f90 @@ -65,7 +65,7 @@ module mld_s_id_solver & s_id_solver_setc, s_id_solver_setr,& & s_id_solver_descr - interface mld_s_id_solver_apply_vect + interface subroutine mld_s_id_solver_apply_vect(alpha,sv,x,beta,y,desc_data,trans,work,info) import :: psb_desc_type, psb_sspmat_type, psb_s_base_sparse_mat, & & psb_s_vect_type, psb_s_base_vect_type, psb_spk_, mld_s_id_solver_type @@ -78,9 +78,9 @@ module mld_s_id_solver real(psb_spk_),target, intent(inout) :: work(:) integer, intent(out) :: info end subroutine mld_s_id_solver_apply_vect - end interface mld_s_id_solver_apply_vect + end interface - interface mld_s_id_solver_apply + interface subroutine mld_s_id_solver_apply(alpha,sv,x,beta,y,desc_data,trans,work,info) import :: psb_desc_type, psb_sspmat_type, psb_s_base_sparse_mat, & & psb_s_vect_type, psb_s_base_vect_type, psb_spk_, mld_s_id_solver_type @@ -93,7 +93,7 @@ module mld_s_id_solver real(psb_spk_),target, intent(inout) :: work(:) integer, intent(out) :: info end subroutine mld_s_id_solver_apply - end interface mld_s_id_solver_apply + end interface contains diff --git a/mlprec/mld_s_ilu_solver.f90 b/mlprec/mld_s_ilu_solver.f90 index d35c68bb..94c0522c 100644 --- a/mlprec/mld_s_ilu_solver.f90 +++ b/mlprec/mld_s_ilu_solver.f90 @@ -87,7 +87,7 @@ module mld_s_ilu_solver & 'MILU(n) ','ILU(t,n) '/) - interface mld_s_ilu_solver_apply_vect + interface subroutine mld_s_ilu_solver_apply_vect(alpha,sv,x,beta,y,desc_data,trans,work,info) import :: psb_desc_type, mld_s_ilu_solver_type, psb_s_vect_type, psb_spk_, & & psb_sspmat_type, psb_s_base_sparse_mat, psb_s_base_vect_type @@ -100,9 +100,9 @@ module mld_s_ilu_solver real(psb_spk_),target, intent(inout) :: work(:) integer, intent(out) :: info end subroutine mld_s_ilu_solver_apply_vect - end interface mld_s_ilu_solver_apply_vect + end interface - interface mld_s_ilu_solver_apply + interface subroutine mld_s_ilu_solver_apply(alpha,sv,x,beta,y,desc_data,trans,work,info) import :: psb_desc_type, mld_s_ilu_solver_type, psb_s_vect_type, psb_spk_, & & psb_sspmat_type, psb_s_base_sparse_mat, psb_s_base_vect_type @@ -115,9 +115,9 @@ module mld_s_ilu_solver real(psb_spk_),target, intent(inout) :: work(:) integer, intent(out) :: info end subroutine mld_s_ilu_solver_apply - end interface mld_s_ilu_solver_apply + end interface - interface mld_s_ilu_solver_bld + interface subroutine mld_s_ilu_solver_bld(a,desc_a,sv,upd,info,b,amold,vmold) import :: psb_desc_type, mld_s_ilu_solver_type, psb_s_vect_type, psb_spk_, & & psb_sspmat_type, psb_s_base_sparse_mat, psb_s_base_vect_type @@ -130,9 +130,9 @@ module mld_s_ilu_solver class(psb_s_base_sparse_mat), intent(in), optional :: amold class(psb_s_base_vect_type), intent(in), optional :: vmold end subroutine mld_s_ilu_solver_bld - end interface mld_s_ilu_solver_bld + end interface - interface mld_s_ilu_solver_dmp + interface subroutine mld_s_ilu_solver_dmp(sv,ictxt,level,info,prefix,head,solver) import :: psb_desc_type, mld_s_ilu_solver_type, psb_s_vect_type, psb_spk_, & & psb_sspmat_type, psb_s_base_sparse_mat, psb_s_base_vect_type @@ -142,7 +142,7 @@ module mld_s_ilu_solver character(len=*), intent(in), optional :: prefix, head logical, optional, intent(in) :: solver end subroutine mld_s_ilu_solver_dmp - end interface mld_s_ilu_solver_dmp + end interface contains diff --git a/mlprec/mld_s_jac_smoother.f90 b/mlprec/mld_s_jac_smoother.f90 index 594d49e1..02b57c8d 100644 --- a/mlprec/mld_s_jac_smoother.f90 +++ b/mlprec/mld_s_jac_smoother.f90 @@ -73,7 +73,7 @@ module mld_s_jac_smoother & s_jac_smoother_get_nzeros - interface mld_s_jac_smoother_apply_vect + interface subroutine mld_s_jac_smoother_apply_vect(alpha,sm,x,beta,y,desc_data,trans,sweeps,work,info) import :: psb_desc_type, mld_s_jac_smoother_type, psb_s_vect_type, psb_spk_, & & psb_sspmat_type, psb_s_base_sparse_mat, psb_s_base_vect_type @@ -88,9 +88,9 @@ module mld_s_jac_smoother real(psb_spk_),target, intent(inout) :: work(:) integer, intent(out) :: info end subroutine mld_s_jac_smoother_apply_vect - end interface mld_s_jac_smoother_apply_vect + end interface - interface mld_s_jac_smoother_apply + interface subroutine mld_s_jac_smoother_apply(alpha,sm,x,beta,y,desc_data,trans,sweeps,work,info) import :: psb_desc_type, mld_s_jac_smoother_type, psb_s_vect_type, psb_spk_, & & psb_sspmat_type, psb_s_base_sparse_mat, psb_s_base_vect_type @@ -104,9 +104,9 @@ module mld_s_jac_smoother real(psb_spk_),target, intent(inout) :: work(:) integer, intent(out) :: info end subroutine mld_s_jac_smoother_apply - end interface mld_s_jac_smoother_apply + end interface - interface mld_s_jac_smoother_bld + interface subroutine mld_s_jac_smoother_bld(a,desc_a,sm,upd,info,amold,vmold) import :: psb_desc_type, mld_s_jac_smoother_type, psb_s_vect_type, psb_spk_, & & psb_sspmat_type, psb_s_base_sparse_mat, psb_s_base_vect_type @@ -118,7 +118,7 @@ module mld_s_jac_smoother class(psb_s_base_sparse_mat), intent(in), optional :: amold class(psb_s_base_vect_type), intent(in), optional :: vmold end subroutine mld_s_jac_smoother_bld - end interface mld_s_jac_smoother_bld + end interface contains diff --git a/mlprec/mld_s_move_alloc_mod.f90 b/mlprec/mld_s_move_alloc_mod.f90 index acb96e56..d23fefe9 100644 --- a/mlprec/mld_s_move_alloc_mod.f90 +++ b/mlprec/mld_s_move_alloc_mod.f90 @@ -77,7 +77,7 @@ contains type(mld_sprec_type), intent(inout) :: a type(mld_sprec_type), intent(inout), target :: b integer, intent(out) :: info - integer :: i,isz + integer :: i if (allocated(b%precv)) then ! This might not be required if FINAL procedures are available. @@ -90,7 +90,7 @@ contains call move_alloc(a%precv,b%precv) ! Fix the pointers except on level 1. - do i=2, isz + do i=2, size(b%precv) b%precv(i)%base_a => b%precv(i)%ac b%precv(i)%base_desc => b%precv(i)%desc_ac b%precv(i)%map%p_desc_X => b%precv(i-1)%base_desc diff --git a/mlprec/mld_s_onelev_mod.f90 b/mlprec/mld_s_onelev_mod.f90 index a0352543..17f69512 100644 --- a/mlprec/mld_s_onelev_mod.f90 +++ b/mlprec/mld_s_onelev_mod.f90 @@ -146,7 +146,7 @@ module mld_s_onelev_mod - interface mld_s_base_onelev_descr + interface subroutine mld_s_base_onelev_descr(lv,il,nl,info,iout) import :: psb_sspmat_type, psb_s_vect_type, psb_s_base_vect_type, & & psb_slinmap_type, psb_spk_, mld_s_onelev_type, psb_long_int_k_, psb_desc_type @@ -157,9 +157,9 @@ module mld_s_onelev_mod integer, intent(out) :: info integer, intent(in), optional :: iout end subroutine mld_s_base_onelev_descr - end interface mld_s_base_onelev_descr + end interface - interface mld_s_base_onelev_free + interface subroutine mld_s_base_onelev_free(lv,info) import :: psb_sspmat_type, psb_s_vect_type, psb_s_base_vect_type, & & psb_slinmap_type, psb_spk_, mld_s_onelev_type, psb_long_int_k_, psb_desc_type @@ -168,9 +168,9 @@ module mld_s_onelev_mod class(mld_s_onelev_type), intent(inout) :: lv integer, intent(out) :: info end subroutine mld_s_base_onelev_free - end interface mld_s_base_onelev_free + end interface - interface mld_s_base_onelev_check + interface subroutine mld_s_base_onelev_check(lv,info) import :: psb_sspmat_type, psb_s_vect_type, psb_s_base_vect_type, & & psb_slinmap_type, psb_spk_, mld_s_onelev_type, psb_long_int_k_, psb_desc_type @@ -179,9 +179,9 @@ module mld_s_onelev_mod class(mld_s_onelev_type), intent(inout) :: lv integer, intent(out) :: info end subroutine mld_s_base_onelev_check - end interface mld_s_base_onelev_check + end interface - interface mld_s_base_onelev_seti + interface subroutine mld_s_base_onelev_seti(lv,what,val,info) import :: psb_sspmat_type, psb_s_vect_type, psb_s_base_vect_type, & & psb_slinmap_type, psb_spk_, mld_s_onelev_type, psb_long_int_k_, psb_desc_type @@ -193,9 +193,9 @@ module mld_s_onelev_mod integer, intent(in) :: val integer, intent(out) :: info end subroutine mld_s_base_onelev_seti - end interface mld_s_base_onelev_seti + end interface - interface mld_s_base_onelev_setc + interface subroutine mld_s_base_onelev_setc(lv,what,val,info) import :: psb_sspmat_type, psb_s_vect_type, psb_s_base_vect_type, & & psb_slinmap_type, psb_spk_, mld_s_onelev_type, psb_long_int_k_, psb_desc_type @@ -206,9 +206,9 @@ module mld_s_onelev_mod character(len=*), intent(in) :: val integer, intent(out) :: info end subroutine mld_s_base_onelev_setc - end interface mld_s_base_onelev_setc + end interface - interface mld_s_base_onelev_setr + interface subroutine mld_s_base_onelev_setr(lv,what,val,info) import :: psb_sspmat_type, psb_s_vect_type, psb_s_base_vect_type, & & psb_slinmap_type, psb_spk_, mld_s_onelev_type, psb_long_int_k_, psb_desc_type @@ -219,9 +219,9 @@ module mld_s_onelev_mod real(psb_spk_), intent(in) :: val integer, intent(out) :: info end subroutine mld_s_base_onelev_setr - end interface mld_s_base_onelev_setr + end interface - interface mld_s_base_onelev_dump + interface subroutine mld_s_base_onelev_dump(lv,level,info,prefix,head,ac,rp,smoother,solver) import :: psb_sspmat_type, psb_s_vect_type, psb_s_base_vect_type, & & psb_slinmap_type, psb_spk_, mld_s_onelev_type, psb_long_int_k_, psb_desc_type @@ -232,7 +232,7 @@ module mld_s_onelev_mod character(len=*), intent(in), optional :: prefix, head logical, optional, intent(in) :: ac, rp, smoother, solver end subroutine mld_s_base_onelev_dump - end interface mld_s_base_onelev_dump + end interface contains diff --git a/mlprec/mld_z_as_smoother.f90 b/mlprec/mld_z_as_smoother.f90 index 9b7455e6..94353152 100644 --- a/mlprec/mld_z_as_smoother.f90 +++ b/mlprec/mld_z_as_smoother.f90 @@ -80,16 +80,16 @@ module mld_z_as_smoother & prolong_names(0:3)=(/'none ','sum ','average ','square root'/) - interface mld_z_as_smoother_check + interface subroutine mld_z_as_smoother_check(sm,info) import :: psb_zspmat_type, psb_z_vect_type, psb_z_base_vect_type, & & psb_dpk_, mld_z_as_smoother_type, psb_long_int_k_, psb_desc_type class(mld_z_as_smoother_type), intent(inout) :: sm integer, intent(out) :: info end subroutine mld_z_as_smoother_check - end interface mld_z_as_smoother_check + end interface - interface mld_z_as_smoother_apply_vect + interface subroutine mld_z_as_smoother_apply_vect(alpha,sm,x,beta,y,desc_data,trans,sweeps,work,info) import :: psb_zspmat_type, psb_z_vect_type, psb_z_base_vect_type, & & psb_dpk_, mld_z_as_smoother_type, psb_long_int_k_, psb_desc_type @@ -103,9 +103,9 @@ module mld_z_as_smoother complex(psb_dpk_),target, intent(inout) :: work(:) integer, intent(out) :: info end subroutine mld_z_as_smoother_apply_vect - end interface mld_z_as_smoother_apply_vect + end interface - interface mld_z_as_smoother_apply + interface subroutine mld_z_as_smoother_apply(alpha,sm,x,beta,y,desc_data,trans,sweeps,work,info) import :: psb_zspmat_type, psb_z_vect_type, psb_z_base_vect_type, & & psb_dpk_, mld_z_as_smoother_type, psb_long_int_k_, psb_desc_type @@ -119,9 +119,9 @@ module mld_z_as_smoother complex(psb_dpk_),target, intent(inout) :: work(:) integer, intent(out) :: info end subroutine mld_z_as_smoother_apply - end interface mld_z_as_smoother_apply + end interface - interface mld_z_as_smoother_bld + interface subroutine mld_z_as_smoother_bld(a,desc_a,sm,upd,info,amold,vmold) import :: psb_zspmat_type, psb_z_vect_type, psb_z_base_vect_type, & & psb_dpk_, mld_z_as_smoother_type, psb_long_int_k_, & @@ -134,9 +134,9 @@ module mld_z_as_smoother class(psb_z_base_sparse_mat), intent(in), optional :: amold class(psb_z_base_vect_type), intent(in), optional :: vmold end subroutine mld_z_as_smoother_bld - end interface mld_z_as_smoother_bld + end interface - interface mld_z_as_smoother_seti + interface subroutine mld_z_as_smoother_seti(sm,what,val,info) import :: psb_zspmat_type, psb_z_vect_type, psb_z_base_vect_type, & & psb_dpk_, mld_z_as_smoother_type, psb_long_int_k_, psb_desc_type @@ -145,9 +145,9 @@ module mld_z_as_smoother integer, intent(in) :: val integer, intent(out) :: info end subroutine mld_z_as_smoother_seti - end interface mld_z_as_smoother_seti + end interface - interface mld_z_as_smoother_setc + interface subroutine mld_z_as_smoother_setc(sm,what,val,info) import :: psb_zspmat_type, psb_z_vect_type, psb_z_base_vect_type, & & psb_dpk_, mld_z_as_smoother_type, psb_long_int_k_, psb_desc_type @@ -156,9 +156,9 @@ module mld_z_as_smoother character(len=*), intent(in) :: val integer, intent(out) :: info end subroutine mld_z_as_smoother_setc - end interface mld_z_as_smoother_setc + end interface - interface mld_z_as_smoother_setr + interface subroutine mld_z_as_smoother_setr(sm,what,val,info) import :: psb_zspmat_type, psb_z_vect_type, psb_z_base_vect_type, & & psb_dpk_, mld_z_as_smoother_type, psb_long_int_k_, psb_desc_type @@ -167,18 +167,18 @@ module mld_z_as_smoother real(psb_dpk_), intent(in) :: val integer, intent(out) :: info end subroutine mld_z_as_smoother_setr - end interface mld_z_as_smoother_setr + end interface - interface mld_z_as_smoother_free + interface subroutine mld_z_as_smoother_free(sm,info) import :: psb_zspmat_type, psb_z_vect_type, psb_z_base_vect_type, & & psb_dpk_, mld_z_as_smoother_type, psb_long_int_k_, psb_desc_type class(mld_z_as_smoother_type), intent(inout) :: sm integer, intent(out) :: info end subroutine mld_z_as_smoother_free - end interface mld_z_as_smoother_free + end interface - interface mld_z_as_smoother_dmp + interface subroutine mld_z_as_smoother_dmp(sm,ictxt,level,info,prefix,head,smoother,solver) import :: psb_zspmat_type, psb_z_vect_type, psb_z_base_vect_type, & & psb_dpk_, mld_z_as_smoother_type, psb_long_int_k_, psb_desc_type @@ -188,7 +188,7 @@ module mld_z_as_smoother character(len=*), intent(in), optional :: prefix, head logical, optional, intent(in) :: smoother, solver end subroutine mld_z_as_smoother_dmp - end interface mld_z_as_smoother_dmp + end interface contains diff --git a/mlprec/mld_z_base_smoother_mod.f90 b/mlprec/mld_z_base_smoother_mod.f90 index 5dad5b9d..a4e5f02c 100644 --- a/mlprec/mld_z_base_smoother_mod.f90 +++ b/mlprec/mld_z_base_smoother_mod.f90 @@ -115,7 +115,7 @@ module mld_z_base_smoother_mod - interface mld_z_base_smoother_apply + interface subroutine mld_z_base_smoother_apply(alpha,sm,x,beta,y,desc_data,trans,sweeps,work,info) import :: psb_desc_type, psb_zspmat_type, psb_z_base_sparse_mat, & & psb_z_vect_type, psb_z_base_vect_type, psb_dpk_, mld_z_base_smoother_type @@ -129,9 +129,9 @@ module mld_z_base_smoother_mod complex(psb_dpk_),target, intent(inout) :: work(:) integer, intent(out) :: info end subroutine mld_z_base_smoother_apply - end interface mld_z_base_smoother_apply + end interface - interface mld_z_base_smoother_apply_vect + interface subroutine mld_z_base_smoother_apply_vect(alpha,sm,x,beta,y,desc_data,& & trans,sweeps,work,info) import :: psb_desc_type, psb_zspmat_type, psb_z_base_sparse_mat, & @@ -146,9 +146,9 @@ module mld_z_base_smoother_mod complex(psb_dpk_),target, intent(inout) :: work(:) integer, intent(out) :: info end subroutine mld_z_base_smoother_apply_vect - end interface mld_z_base_smoother_apply_vect + end interface - interface mld_z_base_smoother_check + interface subroutine mld_z_base_smoother_check(sm,info) import :: psb_desc_type, psb_zspmat_type, psb_z_base_sparse_mat, & & psb_z_vect_type, psb_z_base_vect_type, psb_dpk_, mld_z_base_smoother_type @@ -156,9 +156,9 @@ module mld_z_base_smoother_mod class(mld_z_base_smoother_type), intent(inout) :: sm integer, intent(out) :: info end subroutine mld_z_base_smoother_check - end interface mld_z_base_smoother_check + end interface - interface mld_z_base_smoother_seti + interface subroutine mld_z_base_smoother_seti(sm,what,val,info) import :: psb_desc_type, psb_zspmat_type, psb_z_base_sparse_mat, & & psb_z_vect_type, psb_z_base_vect_type, psb_dpk_, mld_z_base_smoother_type @@ -168,9 +168,9 @@ module mld_z_base_smoother_mod integer, intent(in) :: val integer, intent(out) :: info end subroutine mld_z_base_smoother_seti - end interface mld_z_base_smoother_seti + end interface - interface mld_z_base_smoother_setc + interface subroutine mld_z_base_smoother_setc(sm,what,val,info) import :: psb_desc_type, psb_zspmat_type, psb_z_base_sparse_mat, & & psb_z_vect_type, psb_z_base_vect_type, psb_dpk_, mld_z_base_smoother_type @@ -179,9 +179,9 @@ module mld_z_base_smoother_mod character(len=*), intent(in) :: val integer, intent(out) :: info end subroutine mld_z_base_smoother_setc - end interface mld_z_base_smoother_setc + end interface - interface mld_z_base_smoother_setr + interface subroutine mld_z_base_smoother_setr(sm,what,val,info) import :: psb_desc_type, psb_zspmat_type, psb_z_base_sparse_mat, & & psb_z_vect_type, psb_z_base_vect_type, psb_dpk_, mld_z_base_smoother_type @@ -191,9 +191,9 @@ module mld_z_base_smoother_mod real(psb_dpk_), intent(in) :: val integer, intent(out) :: info end subroutine mld_z_base_smoother_setr - end interface mld_z_base_smoother_setr + end interface - interface mld_z_base_smoother_bld + interface subroutine mld_z_base_smoother_bld(a,desc_a,sm,upd,info,amold,vmold) import :: psb_desc_type, psb_zspmat_type, psb_z_base_sparse_mat, & & psb_z_vect_type, psb_z_base_vect_type, psb_dpk_, mld_z_base_smoother_type @@ -206,9 +206,9 @@ module mld_z_base_smoother_mod class(psb_z_base_sparse_mat), intent(in), optional :: amold class(psb_z_base_vect_type), intent(in), optional :: vmold end subroutine mld_z_base_smoother_bld - end interface mld_z_base_smoother_bld + end interface - interface mld_z_base_smoother_free + interface subroutine mld_z_base_smoother_free(sm,info) import :: psb_desc_type, psb_zspmat_type, psb_z_base_sparse_mat, & & psb_z_vect_type, psb_z_base_vect_type, psb_dpk_, mld_z_base_smoother_type @@ -216,9 +216,9 @@ module mld_z_base_smoother_mod class(mld_z_base_smoother_type), intent(inout) :: sm integer, intent(out) :: info end subroutine mld_z_base_smoother_free - end interface mld_z_base_smoother_free + end interface - interface mld_z_base_smoother_descr + interface subroutine mld_z_base_smoother_descr(sm,info,iout,coarse) import :: psb_desc_type, psb_zspmat_type, psb_z_base_sparse_mat, & & psb_z_vect_type, psb_z_base_vect_type, psb_dpk_, mld_z_base_smoother_type @@ -228,9 +228,9 @@ module mld_z_base_smoother_mod integer, intent(in), optional :: iout logical, intent(in), optional :: coarse end subroutine mld_z_base_smoother_descr - end interface mld_z_base_smoother_descr + end interface - interface mld_z_base_smoother_dmp + interface subroutine mld_z_base_smoother_dmp(sm,ictxt,level,info,prefix,head,smoother,solver) import :: psb_desc_type, psb_zspmat_type, psb_z_base_sparse_mat, & & psb_z_vect_type, psb_z_base_vect_type, psb_dpk_, mld_z_base_smoother_type @@ -240,7 +240,7 @@ module mld_z_base_smoother_mod character(len=*), intent(in), optional :: prefix, head logical, optional, intent(in) :: smoother, solver end subroutine mld_z_base_smoother_dmp - end interface mld_z_base_smoother_dmp + end interface contains ! diff --git a/mlprec/mld_z_base_solver_mod.f90 b/mlprec/mld_z_base_solver_mod.f90 index 642d1ca0..ab55054f 100644 --- a/mlprec/mld_z_base_solver_mod.f90 +++ b/mlprec/mld_z_base_solver_mod.f90 @@ -105,7 +105,7 @@ module mld_z_base_solver_mod & z_base_solver_get_nzeros - interface mld_z_base_solver_apply + interface subroutine mld_z_base_solver_apply(alpha,sv,x,beta,y,desc_data,trans,work,info) import :: psb_desc_type, psb_zspmat_type, psb_z_base_sparse_mat, & & psb_z_vect_type, psb_z_base_vect_type, psb_dpk_, mld_z_base_solver_type @@ -118,10 +118,10 @@ module mld_z_base_solver_mod complex(psb_dpk_),target, intent(inout) :: work(:) integer, intent(out) :: info end subroutine mld_z_base_solver_apply - end interface mld_z_base_solver_apply + end interface - interface mld_z_base_solver_apply_vect + interface subroutine mld_z_base_solver_apply_vect(alpha,sv,x,beta,y,desc_data,trans,work,info) import :: psb_desc_type, psb_zspmat_type, psb_z_base_sparse_mat, & & psb_z_vect_type, psb_z_base_vect_type, psb_dpk_, mld_z_base_solver_type @@ -135,9 +135,9 @@ module mld_z_base_solver_mod complex(psb_dpk_),target, intent(inout) :: work(:) integer, intent(out) :: info end subroutine mld_z_base_solver_apply_vect - end interface mld_z_base_solver_apply_vect + end interface - interface mld_z_base_solver_bld + interface subroutine mld_z_base_solver_bld(a,desc_a,sv,upd,info,b,amold,vmold) import :: psb_desc_type, psb_zspmat_type, psb_z_base_sparse_mat, & & psb_z_vect_type, psb_z_base_vect_type, psb_dpk_, mld_z_base_solver_type @@ -154,9 +154,9 @@ module mld_z_base_solver_mod class(psb_z_base_sparse_mat), intent(in), optional :: amold class(psb_z_base_vect_type), intent(in), optional :: vmold end subroutine mld_z_base_solver_bld - end interface mld_z_base_solver_bld + end interface - interface mld_z_base_solver_check + interface subroutine mld_z_base_solver_check(sv,info) import :: psb_desc_type, psb_zspmat_type, psb_z_base_sparse_mat, & & psb_z_vect_type, psb_z_base_vect_type, psb_dpk_, mld_z_base_solver_type @@ -167,9 +167,9 @@ module mld_z_base_solver_mod class(mld_z_base_solver_type), intent(inout) :: sv integer, intent(out) :: info end subroutine mld_z_base_solver_check - end interface mld_z_base_solver_check + end interface - interface mld_z_base_solver_seti + interface subroutine mld_z_base_solver_seti(sv,what,val,info) import :: psb_desc_type, psb_zspmat_type, psb_z_base_sparse_mat, & & psb_z_vect_type, psb_z_base_vect_type, psb_dpk_, mld_z_base_solver_type @@ -182,9 +182,9 @@ module mld_z_base_solver_mod integer, intent(in) :: val integer, intent(out) :: info end subroutine mld_z_base_solver_seti - end interface mld_z_base_solver_seti + end interface - interface mld_z_base_solver_setc + interface subroutine mld_z_base_solver_setc(sv,what,val,info) import :: psb_desc_type, psb_zspmat_type, psb_z_base_sparse_mat, & & psb_z_vect_type, psb_z_base_vect_type, psb_dpk_, mld_z_base_solver_type @@ -196,9 +196,9 @@ module mld_z_base_solver_mod character(len=*), intent(in) :: val integer, intent(out) :: info end subroutine mld_z_base_solver_setc - end interface mld_z_base_solver_setc + end interface - interface mld_z_base_solver_setr + interface subroutine mld_z_base_solver_setr(sv,what,val,info) import :: psb_desc_type, psb_zspmat_type, psb_z_base_sparse_mat, & & psb_z_vect_type, psb_z_base_vect_type, psb_dpk_, mld_z_base_solver_type @@ -211,9 +211,9 @@ module mld_z_base_solver_mod real(psb_dpk_), intent(in) :: val integer, intent(out) :: info end subroutine mld_z_base_solver_setr - end interface mld_z_base_solver_setr + end interface - interface mld_z_base_solver_free + interface subroutine mld_z_base_solver_free(sv,info) import :: psb_desc_type, psb_zspmat_type, psb_z_base_sparse_mat, & & psb_z_vect_type, psb_z_base_vect_type, psb_dpk_, mld_z_base_solver_type @@ -223,9 +223,9 @@ module mld_z_base_solver_mod class(mld_z_base_solver_type), intent(inout) :: sv integer, intent(out) :: info end subroutine mld_z_base_solver_free - end interface mld_z_base_solver_free + end interface - interface mld_z_base_solver_descr + interface subroutine mld_z_base_solver_descr(sv,info,iout,coarse) import :: psb_desc_type, psb_zspmat_type, psb_z_base_sparse_mat, & & psb_z_vect_type, psb_z_base_vect_type, psb_dpk_, mld_z_base_solver_type @@ -239,9 +239,9 @@ module mld_z_base_solver_mod logical, intent(in), optional :: coarse end subroutine mld_z_base_solver_descr - end interface mld_z_base_solver_descr + end interface - interface mld_z_base_solver_dmp + interface subroutine mld_z_base_solver_dmp(sv,ictxt,level,info,prefix,head,solver) import :: psb_desc_type, psb_zspmat_type, psb_z_base_sparse_mat, & & psb_z_vect_type, psb_z_base_vect_type, psb_dpk_, mld_z_base_solver_type @@ -253,7 +253,7 @@ module mld_z_base_solver_mod character(len=*), intent(in), optional :: prefix, head logical, optional, intent(in) :: solver end subroutine mld_z_base_solver_dmp - end interface mld_z_base_solver_dmp + end interface diff --git a/mlprec/mld_z_diag_solver.f90 b/mlprec/mld_z_diag_solver.f90 index afd2d350..3d248e8f 100644 --- a/mlprec/mld_z_diag_solver.f90 +++ b/mlprec/mld_z_diag_solver.f90 @@ -70,7 +70,7 @@ module mld_z_diag_solver & z_diag_solver_get_nzeros - interface mld_z_diag_solver_apply_vect + interface subroutine mld_z_diag_solver_apply_vect(alpha,sv,x,beta,y,desc_data,trans,work,info) import :: psb_desc_type, psb_zspmat_type, psb_z_base_sparse_mat, & & psb_z_vect_type, psb_z_base_vect_type, psb_dpk_, mld_z_diag_solver_type @@ -83,9 +83,9 @@ module mld_z_diag_solver complex(psb_dpk_),target, intent(inout) :: work(:) integer, intent(out) :: info end subroutine mld_z_diag_solver_apply_vect - end interface mld_z_diag_solver_apply_vect + end interface - interface mld_z_diag_solver_apply + interface subroutine mld_z_diag_solver_apply(alpha,sv,x,beta,y,desc_data,trans,work,info) import :: psb_desc_type, psb_zspmat_type, psb_z_base_sparse_mat, & & psb_z_vect_type, psb_z_base_vect_type, psb_dpk_, mld_z_diag_solver_type @@ -98,9 +98,9 @@ module mld_z_diag_solver complex(psb_dpk_),target, intent(inout) :: work(:) integer, intent(out) :: info end subroutine mld_z_diag_solver_apply - end interface mld_z_diag_solver_apply + end interface - interface mld_z_diag_solver_bld + interface subroutine mld_z_diag_solver_bld(a,desc_a,sv,upd,info,b,amold,vmold) import :: psb_desc_type, psb_zspmat_type, psb_z_base_sparse_mat, & & psb_z_vect_type, psb_z_base_vect_type, psb_dpk_, mld_z_diag_solver_type @@ -113,7 +113,7 @@ module mld_z_diag_solver class(psb_z_base_sparse_mat), intent(in), optional :: amold class(psb_z_base_vect_type), intent(in), optional :: vmold end subroutine mld_z_diag_solver_bld - end interface mld_z_diag_solver_bld + end interface contains diff --git a/mlprec/mld_z_id_solver.f90 b/mlprec/mld_z_id_solver.f90 index f634f891..d29e2f9b 100644 --- a/mlprec/mld_z_id_solver.f90 +++ b/mlprec/mld_z_id_solver.f90 @@ -65,7 +65,7 @@ module mld_z_id_solver & z_id_solver_setc, z_id_solver_setr,& & z_id_solver_descr - interface mld_z_id_solver_apply_vect + interface subroutine mld_z_id_solver_apply_vect(alpha,sv,x,beta,y,desc_data,trans,work,info) import :: psb_desc_type, psb_zspmat_type, psb_z_base_sparse_mat, & & psb_z_vect_type, psb_z_base_vect_type, psb_dpk_, mld_z_id_solver_type @@ -78,9 +78,9 @@ module mld_z_id_solver complex(psb_dpk_),target, intent(inout) :: work(:) integer, intent(out) :: info end subroutine mld_z_id_solver_apply_vect - end interface mld_z_id_solver_apply_vect + end interface - interface mld_z_id_solver_apply + interface subroutine mld_z_id_solver_apply(alpha,sv,x,beta,y,desc_data,trans,work,info) import :: psb_desc_type, psb_zspmat_type, psb_z_base_sparse_mat, & & psb_z_vect_type, psb_z_base_vect_type, psb_dpk_, mld_z_id_solver_type @@ -93,7 +93,7 @@ module mld_z_id_solver complex(psb_dpk_),target, intent(inout) :: work(:) integer, intent(out) :: info end subroutine mld_z_id_solver_apply - end interface mld_z_id_solver_apply + end interface contains diff --git a/mlprec/mld_z_ilu_solver.f90 b/mlprec/mld_z_ilu_solver.f90 index b287a332..9612605c 100644 --- a/mlprec/mld_z_ilu_solver.f90 +++ b/mlprec/mld_z_ilu_solver.f90 @@ -87,7 +87,7 @@ module mld_z_ilu_solver & 'MILU(n) ','ILU(t,n) '/) - interface mld_z_ilu_solver_apply_vect + interface subroutine mld_z_ilu_solver_apply_vect(alpha,sv,x,beta,y,desc_data,trans,work,info) import :: psb_desc_type, mld_z_ilu_solver_type, psb_z_vect_type, psb_dpk_, & & psb_zspmat_type, psb_z_base_sparse_mat, psb_z_base_vect_type @@ -100,9 +100,9 @@ module mld_z_ilu_solver complex(psb_dpk_),target, intent(inout) :: work(:) integer, intent(out) :: info end subroutine mld_z_ilu_solver_apply_vect - end interface mld_z_ilu_solver_apply_vect + end interface - interface mld_z_ilu_solver_apply + interface subroutine mld_z_ilu_solver_apply(alpha,sv,x,beta,y,desc_data,trans,work,info) import :: psb_desc_type, mld_z_ilu_solver_type, psb_z_vect_type, psb_dpk_, & & psb_zspmat_type, psb_z_base_sparse_mat, psb_z_base_vect_type @@ -115,9 +115,9 @@ module mld_z_ilu_solver complex(psb_dpk_),target, intent(inout) :: work(:) integer, intent(out) :: info end subroutine mld_z_ilu_solver_apply - end interface mld_z_ilu_solver_apply + end interface - interface mld_z_ilu_solver_bld + interface subroutine mld_z_ilu_solver_bld(a,desc_a,sv,upd,info,b,amold,vmold) import :: psb_desc_type, mld_z_ilu_solver_type, psb_z_vect_type, psb_dpk_, & & psb_zspmat_type, psb_z_base_sparse_mat, psb_z_base_vect_type @@ -130,9 +130,9 @@ module mld_z_ilu_solver class(psb_z_base_sparse_mat), intent(in), optional :: amold class(psb_z_base_vect_type), intent(in), optional :: vmold end subroutine mld_z_ilu_solver_bld - end interface mld_z_ilu_solver_bld + end interface - interface mld_z_ilu_solver_dmp + interface subroutine mld_z_ilu_solver_dmp(sv,ictxt,level,info,prefix,head,solver) import :: psb_desc_type, mld_z_ilu_solver_type, psb_z_vect_type, psb_dpk_, & & psb_zspmat_type, psb_z_base_sparse_mat, psb_z_base_vect_type @@ -142,7 +142,7 @@ module mld_z_ilu_solver character(len=*), intent(in), optional :: prefix, head logical, optional, intent(in) :: solver end subroutine mld_z_ilu_solver_dmp - end interface mld_z_ilu_solver_dmp + end interface contains diff --git a/mlprec/mld_z_jac_smoother.f90 b/mlprec/mld_z_jac_smoother.f90 index 499a0a42..30f6a5e7 100644 --- a/mlprec/mld_z_jac_smoother.f90 +++ b/mlprec/mld_z_jac_smoother.f90 @@ -73,7 +73,7 @@ module mld_z_jac_smoother & z_jac_smoother_get_nzeros - interface mld_z_jac_smoother_apply_vect + interface subroutine mld_z_jac_smoother_apply_vect(alpha,sm,x,beta,y,desc_data,trans,sweeps,work,info) import :: psb_desc_type, mld_z_jac_smoother_type, psb_z_vect_type, psb_dpk_, & & psb_zspmat_type, psb_z_base_sparse_mat, psb_z_base_vect_type @@ -88,9 +88,9 @@ module mld_z_jac_smoother complex(psb_dpk_),target, intent(inout) :: work(:) integer, intent(out) :: info end subroutine mld_z_jac_smoother_apply_vect - end interface mld_z_jac_smoother_apply_vect + end interface - interface mld_z_jac_smoother_apply + interface subroutine mld_z_jac_smoother_apply(alpha,sm,x,beta,y,desc_data,trans,sweeps,work,info) import :: psb_desc_type, mld_z_jac_smoother_type, psb_z_vect_type, psb_dpk_, & & psb_zspmat_type, psb_z_base_sparse_mat, psb_z_base_vect_type @@ -104,9 +104,9 @@ module mld_z_jac_smoother complex(psb_dpk_),target, intent(inout) :: work(:) integer, intent(out) :: info end subroutine mld_z_jac_smoother_apply - end interface mld_z_jac_smoother_apply + end interface - interface mld_z_jac_smoother_bld + interface subroutine mld_z_jac_smoother_bld(a,desc_a,sm,upd,info,amold,vmold) import :: psb_desc_type, mld_z_jac_smoother_type, psb_z_vect_type, psb_dpk_, & & psb_zspmat_type, psb_z_base_sparse_mat, psb_z_base_vect_type @@ -118,7 +118,7 @@ module mld_z_jac_smoother class(psb_z_base_sparse_mat), intent(in), optional :: amold class(psb_z_base_vect_type), intent(in), optional :: vmold end subroutine mld_z_jac_smoother_bld - end interface mld_z_jac_smoother_bld + end interface contains diff --git a/mlprec/mld_z_move_alloc_mod.f90 b/mlprec/mld_z_move_alloc_mod.f90 index 75c967b7..098d763a 100644 --- a/mlprec/mld_z_move_alloc_mod.f90 +++ b/mlprec/mld_z_move_alloc_mod.f90 @@ -77,7 +77,7 @@ contains type(mld_zprec_type), intent(inout) :: a type(mld_zprec_type), intent(inout), target :: b integer, intent(out) :: info - integer :: i,isz + integer :: i if (allocated(b%precv)) then ! This might not be required if FINAL procedures are available. @@ -90,7 +90,7 @@ contains call move_alloc(a%precv,b%precv) ! Fix the pointers except on level 1. - do i=2, isz + do i=2, size(b%precv) b%precv(i)%base_a => b%precv(i)%ac b%precv(i)%base_desc => b%precv(i)%desc_ac b%precv(i)%map%p_desc_X => b%precv(i-1)%base_desc diff --git a/mlprec/mld_z_onelev_mod.f90 b/mlprec/mld_z_onelev_mod.f90 index 43b1bd3f..6dfed8c2 100644 --- a/mlprec/mld_z_onelev_mod.f90 +++ b/mlprec/mld_z_onelev_mod.f90 @@ -146,7 +146,7 @@ module mld_z_onelev_mod - interface mld_z_base_onelev_descr + interface subroutine mld_z_base_onelev_descr(lv,il,nl,info,iout) import :: psb_zspmat_type, psb_z_vect_type, psb_z_base_vect_type, & & psb_zlinmap_type, psb_dpk_, mld_z_onelev_type, psb_long_int_k_, psb_desc_type @@ -157,9 +157,9 @@ module mld_z_onelev_mod integer, intent(out) :: info integer, intent(in), optional :: iout end subroutine mld_z_base_onelev_descr - end interface mld_z_base_onelev_descr + end interface - interface mld_z_base_onelev_free + interface subroutine mld_z_base_onelev_free(lv,info) import :: psb_zspmat_type, psb_z_vect_type, psb_z_base_vect_type, & & psb_zlinmap_type, psb_dpk_, mld_z_onelev_type, psb_long_int_k_, psb_desc_type @@ -168,9 +168,9 @@ module mld_z_onelev_mod class(mld_z_onelev_type), intent(inout) :: lv integer, intent(out) :: info end subroutine mld_z_base_onelev_free - end interface mld_z_base_onelev_free + end interface - interface mld_z_base_onelev_check + interface subroutine mld_z_base_onelev_check(lv,info) import :: psb_zspmat_type, psb_z_vect_type, psb_z_base_vect_type, & & psb_zlinmap_type, psb_dpk_, mld_z_onelev_type, psb_long_int_k_, psb_desc_type @@ -179,9 +179,9 @@ module mld_z_onelev_mod class(mld_z_onelev_type), intent(inout) :: lv integer, intent(out) :: info end subroutine mld_z_base_onelev_check - end interface mld_z_base_onelev_check + end interface - interface mld_z_base_onelev_seti + interface subroutine mld_z_base_onelev_seti(lv,what,val,info) import :: psb_zspmat_type, psb_z_vect_type, psb_z_base_vect_type, & & psb_zlinmap_type, psb_dpk_, mld_z_onelev_type, psb_long_int_k_, psb_desc_type @@ -193,9 +193,9 @@ module mld_z_onelev_mod integer, intent(in) :: val integer, intent(out) :: info end subroutine mld_z_base_onelev_seti - end interface mld_z_base_onelev_seti + end interface - interface mld_z_base_onelev_setc + interface subroutine mld_z_base_onelev_setc(lv,what,val,info) import :: psb_zspmat_type, psb_z_vect_type, psb_z_base_vect_type, & & psb_zlinmap_type, psb_dpk_, mld_z_onelev_type, psb_long_int_k_, psb_desc_type @@ -206,9 +206,9 @@ module mld_z_onelev_mod character(len=*), intent(in) :: val integer, intent(out) :: info end subroutine mld_z_base_onelev_setc - end interface mld_z_base_onelev_setc + end interface - interface mld_z_base_onelev_setr + interface subroutine mld_z_base_onelev_setr(lv,what,val,info) import :: psb_zspmat_type, psb_z_vect_type, psb_z_base_vect_type, & & psb_zlinmap_type, psb_dpk_, mld_z_onelev_type, psb_long_int_k_, psb_desc_type @@ -219,9 +219,9 @@ module mld_z_onelev_mod real(psb_dpk_), intent(in) :: val integer, intent(out) :: info end subroutine mld_z_base_onelev_setr - end interface mld_z_base_onelev_setr + end interface - interface mld_z_base_onelev_dump + interface subroutine mld_z_base_onelev_dump(lv,level,info,prefix,head,ac,rp,smoother,solver) import :: psb_zspmat_type, psb_z_vect_type, psb_z_base_vect_type, & & psb_zlinmap_type, psb_dpk_, mld_z_onelev_type, psb_long_int_k_, psb_desc_type @@ -232,7 +232,7 @@ module mld_z_onelev_mod character(len=*), intent(in), optional :: prefix, head logical, optional, intent(in) :: ac, rp, smoother, solver end subroutine mld_z_base_onelev_dump - end interface mld_z_base_onelev_dump + end interface contains