From 08335a8eea374e331f325e2d42caff88da3d57bb Mon Sep 17 00:00:00 2001 From: Salvatore Filippone Date: Tue, 29 Jan 2019 16:47:21 +0000 Subject: [PATCH] New recursive keyword for all Krylov methods --- krylov/psb_cbicg.f90 | 2 +- krylov/psb_ccgs.f90 | 2 +- krylov/psb_ccgstab.f90 | 2 +- krylov/psb_ccgstabl.f90 | 2 +- krylov/psb_cfcg.F90 | 2 +- krylov/psb_cgcr.f90 | 2 +- krylov/psb_ckrylov.f90 | 4 ++-- krylov/psb_crgmres.f90 | 2 +- krylov/psb_dbicg.f90 | 2 +- krylov/psb_dcgs.f90 | 2 +- krylov/psb_dcgstab.f90 | 2 +- krylov/psb_dcgstabl.f90 | 2 +- krylov/psb_dfcg.F90 | 2 +- krylov/psb_dgcr.f90 | 2 +- krylov/psb_dkrylov.f90 | 4 ++-- krylov/psb_drgmres.f90 | 2 +- krylov/psb_sbicg.f90 | 2 +- krylov/psb_scgs.f90 | 2 +- krylov/psb_scgstab.f90 | 2 +- krylov/psb_scgstabl.f90 | 2 +- krylov/psb_sfcg.F90 | 2 +- krylov/psb_sgcr.f90 | 2 +- krylov/psb_skrylov.f90 | 4 ++-- krylov/psb_srgmres.f90 | 2 +- krylov/psb_zbicg.f90 | 2 +- krylov/psb_zcgs.f90 | 2 +- krylov/psb_zcgstab.f90 | 2 +- krylov/psb_zcgstabl.f90 | 2 +- krylov/psb_zfcg.F90 | 2 +- krylov/psb_zgcr.f90 | 2 +- krylov/psb_zkrylov.f90 | 4 ++-- krylov/psb_zrgmres.f90 | 2 +- 32 files changed, 36 insertions(+), 36 deletions(-) diff --git a/krylov/psb_cbicg.f90 b/krylov/psb_cbicg.f90 index bb957ef1..f2e591b5 100644 --- a/krylov/psb_cbicg.f90 +++ b/krylov/psb_cbicg.f90 @@ -94,7 +94,7 @@ ! ! -subroutine psb_cbicg_vect(a,prec,b,x,eps,desc_a,info,& +recursive subroutine psb_cbicg_vect(a,prec,b,x,eps,desc_a,info,& & itmax,iter,err,itrace,istop) use psb_base_mod use psb_prec_mod diff --git a/krylov/psb_ccgs.f90 b/krylov/psb_ccgs.f90 index b6542aae..5ebed145 100644 --- a/krylov/psb_ccgs.f90 +++ b/krylov/psb_ccgs.f90 @@ -92,7 +92,7 @@ ! where r is the (preconditioned, recursive ! estimate of) residual. ! -Subroutine psb_ccgs_vect(a,prec,b,x,eps,desc_a,info,& +recursive Subroutine psb_ccgs_vect(a,prec,b,x,eps,desc_a,info,& & itmax,iter,err,itrace,istop) use psb_base_mod use psb_prec_mod diff --git a/krylov/psb_ccgstab.f90 b/krylov/psb_ccgstab.f90 index 9cbc3f90..d03ee885 100644 --- a/krylov/psb_ccgstab.f90 +++ b/krylov/psb_ccgstab.f90 @@ -93,7 +93,7 @@ ! where r is the (preconditioned, recursive ! estimate of) residual. ! -Subroutine psb_ccgstab_vect(a,prec,b,x,eps,desc_a,info,itmax,iter,err,itrace,istop) +recursive Subroutine psb_ccgstab_vect(a,prec,b,x,eps,desc_a,info,itmax,iter,err,itrace,istop) use psb_base_mod use psb_prec_mod use psb_c_krylov_conv_mod diff --git a/krylov/psb_ccgstabl.f90 b/krylov/psb_ccgstabl.f90 index 8ab0453a..d9792621 100644 --- a/krylov/psb_ccgstabl.f90 +++ b/krylov/psb_ccgstabl.f90 @@ -103,7 +103,7 @@ ! ! ! -Subroutine psb_ccgstabl_vect(a,prec,b,x,eps,desc_a,info,& +recursive Subroutine psb_ccgstabl_vect(a,prec,b,x,eps,desc_a,info,& & itmax,iter,err,itrace,irst,istop) use psb_base_mod use psb_prec_mod diff --git a/krylov/psb_cfcg.F90 b/krylov/psb_cfcg.F90 index 16579e6d..5efaaf25 100644 --- a/krylov/psb_cfcg.F90 +++ b/krylov/psb_cfcg.F90 @@ -101,7 +101,7 @@ ! stopped when |r| <= eps * |b| ! where r is the (preconditioned, recursive ! estimate of) residual. -! +! ! recursive subroutine psb_cfcg_vect(a,prec,b,x,eps,desc_a,info,& & itmax,iter,err,itrace,istop,cond) diff --git a/krylov/psb_cgcr.f90 b/krylov/psb_cgcr.f90 index 1ce78fc3..094e59b9 100644 --- a/krylov/psb_cgcr.f90 +++ b/krylov/psb_cgcr.f90 @@ -105,7 +105,7 @@ ! irst - integer(optional) Input: restart parameter ! -subroutine psb_cgcr_vect(a,prec,b,x,eps,desc_a,info,& +recursive subroutine psb_cgcr_vect(a,prec,b,x,eps,desc_a,info,& & itmax,iter,err,itrace, irst, istop) use psb_base_mod use psb_prec_mod diff --git a/krylov/psb_ckrylov.f90 b/krylov/psb_ckrylov.f90 index dd86a387..32063ae9 100644 --- a/krylov/psb_ckrylov.f90 +++ b/krylov/psb_ckrylov.f90 @@ -99,7 +99,7 @@ Subroutine psb_ckrylov_vect(method,a,prec,b,x,eps,desc_a,info,& abstract interface - subroutine psb_ckryl_vect(a,prec,b,x,eps,& + recursive subroutine psb_ckryl_vect(a,prec,b,x,eps,& & desc_a,info,itmax,iter,err,itrace,istop) import :: psb_ipk_, psb_spk_, psb_desc_type, & & psb_cspmat_type, psb_cprec_type, psb_c_vect_type @@ -114,7 +114,7 @@ Subroutine psb_ckrylov_vect(method,a,prec,b,x,eps,desc_a,info,& integer(psb_ipk_), optional, intent(out) :: iter real(psb_spk_), optional, intent(out) :: err end subroutine psb_ckryl_vect - Subroutine psb_ckryl_rest_vect(a,prec,b,x,eps,desc_a,info,& + recursive Subroutine psb_ckryl_rest_vect(a,prec,b,x,eps,desc_a,info,& &itmax,iter,err, itrace,irst,istop) import :: psb_ipk_, psb_spk_, psb_desc_type, & & psb_cspmat_type, psb_cprec_type, psb_c_vect_type diff --git a/krylov/psb_crgmres.f90 b/krylov/psb_crgmres.f90 index f68dc74b..cd63c852 100644 --- a/krylov/psb_crgmres.f90 +++ b/krylov/psb_crgmres.f90 @@ -106,7 +106,7 @@ ! irst - integer(optional) Input: restart parameter ! -subroutine psb_crgmres_vect(a,prec,b,x,eps,desc_a,info,& +recursive subroutine psb_crgmres_vect(a,prec,b,x,eps,desc_a,info,& & itmax,iter,err,itrace,irst,istop) use psb_base_mod use psb_prec_mod diff --git a/krylov/psb_dbicg.f90 b/krylov/psb_dbicg.f90 index be2ed48f..c9fe2906 100644 --- a/krylov/psb_dbicg.f90 +++ b/krylov/psb_dbicg.f90 @@ -94,7 +94,7 @@ ! ! -subroutine psb_dbicg_vect(a,prec,b,x,eps,desc_a,info,& +recursive subroutine psb_dbicg_vect(a,prec,b,x,eps,desc_a,info,& & itmax,iter,err,itrace,istop) use psb_base_mod use psb_prec_mod diff --git a/krylov/psb_dcgs.f90 b/krylov/psb_dcgs.f90 index dca1748b..44df19df 100644 --- a/krylov/psb_dcgs.f90 +++ b/krylov/psb_dcgs.f90 @@ -92,7 +92,7 @@ ! where r is the (preconditioned, recursive ! estimate of) residual. ! -Subroutine psb_dcgs_vect(a,prec,b,x,eps,desc_a,info,& +recursive Subroutine psb_dcgs_vect(a,prec,b,x,eps,desc_a,info,& & itmax,iter,err,itrace,istop) use psb_base_mod use psb_prec_mod diff --git a/krylov/psb_dcgstab.f90 b/krylov/psb_dcgstab.f90 index 73b0662d..e1815138 100644 --- a/krylov/psb_dcgstab.f90 +++ b/krylov/psb_dcgstab.f90 @@ -93,7 +93,7 @@ ! where r is the (preconditioned, recursive ! estimate of) residual. ! -Subroutine psb_dcgstab_vect(a,prec,b,x,eps,desc_a,info,itmax,iter,err,itrace,istop) +recursive Subroutine psb_dcgstab_vect(a,prec,b,x,eps,desc_a,info,itmax,iter,err,itrace,istop) use psb_base_mod use psb_prec_mod use psb_d_krylov_conv_mod diff --git a/krylov/psb_dcgstabl.f90 b/krylov/psb_dcgstabl.f90 index c85f562b..175f2878 100644 --- a/krylov/psb_dcgstabl.f90 +++ b/krylov/psb_dcgstabl.f90 @@ -103,7 +103,7 @@ ! ! ! -Subroutine psb_dcgstabl_vect(a,prec,b,x,eps,desc_a,info,& +recursive Subroutine psb_dcgstabl_vect(a,prec,b,x,eps,desc_a,info,& & itmax,iter,err,itrace,irst,istop) use psb_base_mod use psb_prec_mod diff --git a/krylov/psb_dfcg.F90 b/krylov/psb_dfcg.F90 index c64e6193..188f0337 100644 --- a/krylov/psb_dfcg.F90 +++ b/krylov/psb_dfcg.F90 @@ -101,7 +101,7 @@ ! stopped when |r| <= eps * |b| ! where r is the (preconditioned, recursive ! estimate of) residual. -! +! ! recursive subroutine psb_dfcg_vect(a,prec,b,x,eps,desc_a,info,& & itmax,iter,err,itrace,istop,cond) diff --git a/krylov/psb_dgcr.f90 b/krylov/psb_dgcr.f90 index acbaa5a7..e73b3837 100644 --- a/krylov/psb_dgcr.f90 +++ b/krylov/psb_dgcr.f90 @@ -105,7 +105,7 @@ ! irst - integer(optional) Input: restart parameter ! -subroutine psb_dgcr_vect(a,prec,b,x,eps,desc_a,info,& +recursive subroutine psb_dgcr_vect(a,prec,b,x,eps,desc_a,info,& & itmax,iter,err,itrace, irst, istop) use psb_base_mod use psb_prec_mod diff --git a/krylov/psb_dkrylov.f90 b/krylov/psb_dkrylov.f90 index 53f3702e..0dff1af0 100644 --- a/krylov/psb_dkrylov.f90 +++ b/krylov/psb_dkrylov.f90 @@ -99,7 +99,7 @@ Subroutine psb_dkrylov_vect(method,a,prec,b,x,eps,desc_a,info,& abstract interface - subroutine psb_dkryl_vect(a,prec,b,x,eps,& + recursive subroutine psb_dkryl_vect(a,prec,b,x,eps,& & desc_a,info,itmax,iter,err,itrace,istop) import :: psb_ipk_, psb_dpk_, psb_desc_type, & & psb_dspmat_type, psb_dprec_type, psb_d_vect_type @@ -114,7 +114,7 @@ Subroutine psb_dkrylov_vect(method,a,prec,b,x,eps,desc_a,info,& integer(psb_ipk_), optional, intent(out) :: iter real(psb_dpk_), optional, intent(out) :: err end subroutine psb_dkryl_vect - Subroutine psb_dkryl_rest_vect(a,prec,b,x,eps,desc_a,info,& + recursive Subroutine psb_dkryl_rest_vect(a,prec,b,x,eps,desc_a,info,& &itmax,iter,err, itrace,irst,istop) import :: psb_ipk_, psb_dpk_, psb_desc_type, & & psb_dspmat_type, psb_dprec_type, psb_d_vect_type diff --git a/krylov/psb_drgmres.f90 b/krylov/psb_drgmres.f90 index 9b577903..e52c7df8 100644 --- a/krylov/psb_drgmres.f90 +++ b/krylov/psb_drgmres.f90 @@ -106,7 +106,7 @@ ! irst - integer(optional) Input: restart parameter ! -subroutine psb_drgmres_vect(a,prec,b,x,eps,desc_a,info,& +recursive subroutine psb_drgmres_vect(a,prec,b,x,eps,desc_a,info,& & itmax,iter,err,itrace,irst,istop) use psb_base_mod use psb_prec_mod diff --git a/krylov/psb_sbicg.f90 b/krylov/psb_sbicg.f90 index 2afaa716..b4779bf2 100644 --- a/krylov/psb_sbicg.f90 +++ b/krylov/psb_sbicg.f90 @@ -94,7 +94,7 @@ ! ! -subroutine psb_sbicg_vect(a,prec,b,x,eps,desc_a,info,& +recursive subroutine psb_sbicg_vect(a,prec,b,x,eps,desc_a,info,& & itmax,iter,err,itrace,istop) use psb_base_mod use psb_prec_mod diff --git a/krylov/psb_scgs.f90 b/krylov/psb_scgs.f90 index d053444a..30460244 100644 --- a/krylov/psb_scgs.f90 +++ b/krylov/psb_scgs.f90 @@ -92,7 +92,7 @@ ! where r is the (preconditioned, recursive ! estimate of) residual. ! -Subroutine psb_scgs_vect(a,prec,b,x,eps,desc_a,info,& +recursive Subroutine psb_scgs_vect(a,prec,b,x,eps,desc_a,info,& & itmax,iter,err,itrace,istop) use psb_base_mod use psb_prec_mod diff --git a/krylov/psb_scgstab.f90 b/krylov/psb_scgstab.f90 index c0ca345c..36c5b462 100644 --- a/krylov/psb_scgstab.f90 +++ b/krylov/psb_scgstab.f90 @@ -93,7 +93,7 @@ ! where r is the (preconditioned, recursive ! estimate of) residual. ! -Subroutine psb_scgstab_vect(a,prec,b,x,eps,desc_a,info,itmax,iter,err,itrace,istop) +recursive Subroutine psb_scgstab_vect(a,prec,b,x,eps,desc_a,info,itmax,iter,err,itrace,istop) use psb_base_mod use psb_prec_mod use psb_s_krylov_conv_mod diff --git a/krylov/psb_scgstabl.f90 b/krylov/psb_scgstabl.f90 index 0f888980..6b6f6949 100644 --- a/krylov/psb_scgstabl.f90 +++ b/krylov/psb_scgstabl.f90 @@ -103,7 +103,7 @@ ! ! ! -Subroutine psb_scgstabl_vect(a,prec,b,x,eps,desc_a,info,& +recursive Subroutine psb_scgstabl_vect(a,prec,b,x,eps,desc_a,info,& & itmax,iter,err,itrace,irst,istop) use psb_base_mod use psb_prec_mod diff --git a/krylov/psb_sfcg.F90 b/krylov/psb_sfcg.F90 index 6af103dc..d3d582b8 100644 --- a/krylov/psb_sfcg.F90 +++ b/krylov/psb_sfcg.F90 @@ -101,7 +101,7 @@ ! stopped when |r| <= eps * |b| ! where r is the (preconditioned, recursive ! estimate of) residual. -! +! ! recursive subroutine psb_sfcg_vect(a,prec,b,x,eps,desc_a,info,& & itmax,iter,err,itrace,istop,cond) diff --git a/krylov/psb_sgcr.f90 b/krylov/psb_sgcr.f90 index 08333af2..bcff94f6 100644 --- a/krylov/psb_sgcr.f90 +++ b/krylov/psb_sgcr.f90 @@ -105,7 +105,7 @@ ! irst - integer(optional) Input: restart parameter ! -subroutine psb_sgcr_vect(a,prec,b,x,eps,desc_a,info,& +recursive subroutine psb_sgcr_vect(a,prec,b,x,eps,desc_a,info,& & itmax,iter,err,itrace, irst, istop) use psb_base_mod use psb_prec_mod diff --git a/krylov/psb_skrylov.f90 b/krylov/psb_skrylov.f90 index feb6b759..ce69e48a 100644 --- a/krylov/psb_skrylov.f90 +++ b/krylov/psb_skrylov.f90 @@ -99,7 +99,7 @@ Subroutine psb_skrylov_vect(method,a,prec,b,x,eps,desc_a,info,& abstract interface - subroutine psb_skryl_vect(a,prec,b,x,eps,& + recursive subroutine psb_skryl_vect(a,prec,b,x,eps,& & desc_a,info,itmax,iter,err,itrace,istop) import :: psb_ipk_, psb_spk_, psb_desc_type, & & psb_sspmat_type, psb_sprec_type, psb_s_vect_type @@ -114,7 +114,7 @@ Subroutine psb_skrylov_vect(method,a,prec,b,x,eps,desc_a,info,& integer(psb_ipk_), optional, intent(out) :: iter real(psb_spk_), optional, intent(out) :: err end subroutine psb_skryl_vect - Subroutine psb_skryl_rest_vect(a,prec,b,x,eps,desc_a,info,& + recursive Subroutine psb_skryl_rest_vect(a,prec,b,x,eps,desc_a,info,& &itmax,iter,err, itrace,irst,istop) import :: psb_ipk_, psb_spk_, psb_desc_type, & & psb_sspmat_type, psb_sprec_type, psb_s_vect_type diff --git a/krylov/psb_srgmres.f90 b/krylov/psb_srgmres.f90 index 2e458d82..aa941322 100644 --- a/krylov/psb_srgmres.f90 +++ b/krylov/psb_srgmres.f90 @@ -106,7 +106,7 @@ ! irst - integer(optional) Input: restart parameter ! -subroutine psb_srgmres_vect(a,prec,b,x,eps,desc_a,info,& +recursive subroutine psb_srgmres_vect(a,prec,b,x,eps,desc_a,info,& & itmax,iter,err,itrace,irst,istop) use psb_base_mod use psb_prec_mod diff --git a/krylov/psb_zbicg.f90 b/krylov/psb_zbicg.f90 index 969280d3..032bf4ea 100644 --- a/krylov/psb_zbicg.f90 +++ b/krylov/psb_zbicg.f90 @@ -94,7 +94,7 @@ ! ! -subroutine psb_zbicg_vect(a,prec,b,x,eps,desc_a,info,& +recursive subroutine psb_zbicg_vect(a,prec,b,x,eps,desc_a,info,& & itmax,iter,err,itrace,istop) use psb_base_mod use psb_prec_mod diff --git a/krylov/psb_zcgs.f90 b/krylov/psb_zcgs.f90 index 3130427a..1ff4e678 100644 --- a/krylov/psb_zcgs.f90 +++ b/krylov/psb_zcgs.f90 @@ -92,7 +92,7 @@ ! where r is the (preconditioned, recursive ! estimate of) residual. ! -Subroutine psb_zcgs_vect(a,prec,b,x,eps,desc_a,info,& +recursive Subroutine psb_zcgs_vect(a,prec,b,x,eps,desc_a,info,& & itmax,iter,err,itrace,istop) use psb_base_mod use psb_prec_mod diff --git a/krylov/psb_zcgstab.f90 b/krylov/psb_zcgstab.f90 index 68381c48..95d7b53e 100644 --- a/krylov/psb_zcgstab.f90 +++ b/krylov/psb_zcgstab.f90 @@ -93,7 +93,7 @@ ! where r is the (preconditioned, recursive ! estimate of) residual. ! -Subroutine psb_zcgstab_vect(a,prec,b,x,eps,desc_a,info,itmax,iter,err,itrace,istop) +recursive Subroutine psb_zcgstab_vect(a,prec,b,x,eps,desc_a,info,itmax,iter,err,itrace,istop) use psb_base_mod use psb_prec_mod use psb_z_krylov_conv_mod diff --git a/krylov/psb_zcgstabl.f90 b/krylov/psb_zcgstabl.f90 index 5ddbf309..bcec546e 100644 --- a/krylov/psb_zcgstabl.f90 +++ b/krylov/psb_zcgstabl.f90 @@ -103,7 +103,7 @@ ! ! ! -Subroutine psb_zcgstabl_vect(a,prec,b,x,eps,desc_a,info,& +recursive Subroutine psb_zcgstabl_vect(a,prec,b,x,eps,desc_a,info,& & itmax,iter,err,itrace,irst,istop) use psb_base_mod use psb_prec_mod diff --git a/krylov/psb_zfcg.F90 b/krylov/psb_zfcg.F90 index dd56d68f..37d6c47d 100644 --- a/krylov/psb_zfcg.F90 +++ b/krylov/psb_zfcg.F90 @@ -101,7 +101,7 @@ ! stopped when |r| <= eps * |b| ! where r is the (preconditioned, recursive ! estimate of) residual. -! +! ! recursive subroutine psb_zfcg_vect(a,prec,b,x,eps,desc_a,info,& & itmax,iter,err,itrace,istop,cond) diff --git a/krylov/psb_zgcr.f90 b/krylov/psb_zgcr.f90 index 40b4cf7f..314d2830 100644 --- a/krylov/psb_zgcr.f90 +++ b/krylov/psb_zgcr.f90 @@ -105,7 +105,7 @@ ! irst - integer(optional) Input: restart parameter ! -subroutine psb_zgcr_vect(a,prec,b,x,eps,desc_a,info,& +recursive subroutine psb_zgcr_vect(a,prec,b,x,eps,desc_a,info,& & itmax,iter,err,itrace, irst, istop) use psb_base_mod use psb_prec_mod diff --git a/krylov/psb_zkrylov.f90 b/krylov/psb_zkrylov.f90 index 0ae6e5f5..09be68dd 100644 --- a/krylov/psb_zkrylov.f90 +++ b/krylov/psb_zkrylov.f90 @@ -99,7 +99,7 @@ Subroutine psb_zkrylov_vect(method,a,prec,b,x,eps,desc_a,info,& abstract interface - subroutine psb_zkryl_vect(a,prec,b,x,eps,& + recursive subroutine psb_zkryl_vect(a,prec,b,x,eps,& & desc_a,info,itmax,iter,err,itrace,istop) import :: psb_ipk_, psb_dpk_, psb_desc_type, & & psb_zspmat_type, psb_zprec_type, psb_z_vect_type @@ -114,7 +114,7 @@ Subroutine psb_zkrylov_vect(method,a,prec,b,x,eps,desc_a,info,& integer(psb_ipk_), optional, intent(out) :: iter real(psb_dpk_), optional, intent(out) :: err end subroutine psb_zkryl_vect - Subroutine psb_zkryl_rest_vect(a,prec,b,x,eps,desc_a,info,& + recursive Subroutine psb_zkryl_rest_vect(a,prec,b,x,eps,desc_a,info,& &itmax,iter,err, itrace,irst,istop) import :: psb_ipk_, psb_dpk_, psb_desc_type, & & psb_zspmat_type, psb_zprec_type, psb_z_vect_type diff --git a/krylov/psb_zrgmres.f90 b/krylov/psb_zrgmres.f90 index 10738699..eea9369f 100644 --- a/krylov/psb_zrgmres.f90 +++ b/krylov/psb_zrgmres.f90 @@ -106,7 +106,7 @@ ! irst - integer(optional) Input: restart parameter ! -subroutine psb_zrgmres_vect(a,prec,b,x,eps,desc_a,info,& +recursive subroutine psb_zrgmres_vect(a,prec,b,x,eps,desc_a,info,& & itmax,iter,err,itrace,irst,istop) use psb_base_mod use psb_prec_mod