From a7e4ac064554b3796c1e205d49eee3bae2be3f11 Mon Sep 17 00:00:00 2001 From: Salvatore Filippone Date: Fri, 10 Jun 2016 14:40:45 +0000 Subject: [PATCH] Summary: Add mld_equal_aggregation method. --- mlprec/mld_base_prec_type.F90 | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/mlprec/mld_base_prec_type.F90 b/mlprec/mld_base_prec_type.F90 index 4b3b66df..c469a473 100644 --- a/mlprec/mld_base_prec_type.F90 +++ b/mlprec/mld_base_prec_type.F90 @@ -363,6 +363,10 @@ module mld_base_prec_type module procedure mld_ml_bcast, mld_sml_bcast, mld_dml_bcast end interface psb_bcast + interface mld_equal_aggregation + module procedure mld_d_equal_aggregation, mld_s_equal_aggregation + end interface mld_equal_aggregation + contains ! @@ -1101,4 +1105,34 @@ contains end subroutine d_ml_parms_clone + function mld_s_equal_aggregation(parms1, parms2) result(val) + type(mld_sml_parms), intent(in) :: parms1, parms2 + logical :: val + + val = (parms1%aggr_alg == parms2%aggr_alg ) .and. & + & (parms1%aggr_ord == parms2%aggr_ord ) .and. & + & (parms1%aggr_kind == parms2%aggr_kind ) .and. & + & (parms1%aggr_omega_alg == parms2%aggr_omega_alg ) .and. & + & (parms1%aggr_eig == parms2%aggr_eig ) .and. & + & (parms1%aggr_filter == parms2%aggr_filter ) .and. & + & (parms1%aggr_omega_val == parms2%aggr_omega_val ) .and. & + & (parms1%aggr_scale == parms2%aggr_scale ) .and. & + & (parms1%aggr_thresh == parms2%aggr_thresh ) + end function mld_s_equal_aggregation + + function mld_d_equal_aggregation(parms1, parms2) result(val) + type(mld_dml_parms), intent(in) :: parms1, parms2 + logical :: val + + val = (parms1%aggr_alg == parms2%aggr_alg ) .and. & + & (parms1%aggr_ord == parms2%aggr_ord ) .and. & + & (parms1%aggr_kind == parms2%aggr_kind ) .and. & + & (parms1%aggr_omega_alg == parms2%aggr_omega_alg ) .and. & + & (parms1%aggr_eig == parms2%aggr_eig ) .and. & + & (parms1%aggr_filter == parms2%aggr_filter ) .and. & + & (parms1%aggr_omega_val == parms2%aggr_omega_val ) .and. & + & (parms1%aggr_scale == parms2%aggr_scale ) .and. & + & (parms1%aggr_thresh == parms2%aggr_thresh ) + end function mld_d_equal_aggregation + end module mld_base_prec_type