diff --git a/base/modules/Makefile b/base/modules/Makefile index 521289de7..ee4f5e685 100644 --- a/base/modules/Makefile +++ b/base/modules/Makefile @@ -65,7 +65,7 @@ UTIL_MODS = auxil/psb_string_mod.o desc/psb_desc_const_mod.o desc/psb_indx_map_m psblas/psb_s_psblas_mod.o psblas/psb_c_psblas_mod.o \ psblas/psb_d_psblas_mod.o psblas/psb_z_psblas_mod.o \ psblas/psb_psblas_mod.o \ - auxil/psi_serial_mod.o auxil/psi_i_serial_mod.o auxil/psi_l_serial_mod.o \ + auxil/psi_serial_mod.o auxil/psi_m_serial_mod.o auxil/psi_e_serial_mod.o \ auxil/psi_s_serial_mod.o auxil/psi_d_serial_mod.o \ auxil/psi_c_serial_mod.o auxil/psi_z_serial_mod.o \ psi_mod.o psi_i_mod.o psi_l_mod.o psi_s_mod.o psi_d_mod.o psi_c_mod.o psi_z_mod.o\ @@ -185,9 +185,9 @@ auxil/psb_d_hsort_x_mod.o: auxil/psb_d_hsort_mod.o auxil/psb_c_hsort_x_mod.o: auxil/psb_c_hsort_mod.o auxil/psb_z_hsort_x_mod.o: auxil/psb_z_hsort_mod.o -auxil/psi_serial_mod.o: auxil/psi_i_serial_mod.o auxil/psi_l_serial_mod.o \ +auxil/psi_serial_mod.o: auxil/psi_m_serial_mod.o auxil/psi_e_serial_mod.o \ auxil/psi_s_serial_mod.o auxil/psi_d_serial_mod.o auxil/psi_c_serial_mod.o auxil/psi_z_serial_mod.o -auxil/psi_i_serial_mod.o auxil/psi_l_serial_mod.o auxil/psi_s_serial_mod.o auxil/psi_d_serial_mod.o auxil/psi_c_serial_mod.o auxil/psi_z_serial_mod.o: psb_const_mod.o +auxil/psi_m_serial_mod.o auxil/psi_e_serial_mod.o auxil/psi_s_serial_mod.o auxil/psi_d_serial_mod.o auxil/psi_c_serial_mod.o auxil/psi_z_serial_mod.o: psb_const_mod.o auxil/psb_ip_reord_mod.o: auxil/psb_m_ip_reord_mod.o auxil/psb_e_ip_reord_mod.o \ auxil/psb_s_ip_reord_mod.o auxil/psb_d_ip_reord_mod.o \ diff --git a/base/modules/auxil/psb_hash_mod.f90 b/base/modules/auxil/psb_hash_mod.F90 similarity index 96% rename from base/modules/auxil/psb_hash_mod.f90 rename to base/modules/auxil/psb_hash_mod.F90 index 1fd433b06..48b808ddb 100644 --- a/base/modules/auxil/psb_hash_mod.f90 +++ b/base/modules/auxil/psb_hash_mod.F90 @@ -67,25 +67,42 @@ module psb_hash_mod & HashFreeEntry = -1, HashNotFound = -256 interface psb_hash_init - module procedure psb_hash_init_v, psb_hash_init_n, & - & psb_hash_init_lv, psb_hash_init_ln - end interface - + module procedure psb_hash_init_lv, psb_hash_init_ln + end interface psb_hash_init + interface psb_sizeof module procedure psb_sizeof_hash_type end interface interface hashval - module procedure ihashval, lhashval + module procedure lhashval + end interface hashval + + interface psb_hash_searchinskey + module procedure psb_hash_lsearchinskey + end interface psb_hash_searchinskey + + interface psb_hash_searchkey + module procedure psb_hash_lsearchkey + end interface psb_hash_searchkey + +#if defined (INT_I4_L8) + interface psb_hash_init + module procedure psb_hash_init_v, psb_hash_init_n + end interface + + interface hashval + module procedure ihashval end interface hashval interface psb_hash_searchinskey - module procedure psb_hash_searchinskey, psb_hash_lsearchinskey + module procedure psb_hash_searchinskey end interface psb_hash_searchinskey interface psb_hash_searchkey - module procedure psb_hash_searchkey, psb_hash_lsearchkey + module procedure psb_hash_searchkey end interface psb_hash_searchkey +#endif interface psb_move_alloc module procedure HashTransfer diff --git a/base/modules/auxil/psi_c_serial_mod.f90 b/base/modules/auxil/psi_c_serial_mod.f90 index 894d9cc1c..5dc25dc44 100644 --- a/base/modules/auxil/psi_c_serial_mod.f90 +++ b/base/modules/auxil/psi_c_serial_mod.f90 @@ -30,7 +30,7 @@ ! ! module psi_c_serial_mod - use psb_const_mod, only : psb_ipk_, psb_spk_ + use psb_const_mod, only : psb_ipk_, psb_lpk_, psb_mpk_, psb_epk_, psb_spk_ interface psb_gelp ! 2-D version diff --git a/base/modules/auxil/psi_d_serial_mod.f90 b/base/modules/auxil/psi_d_serial_mod.f90 index d2cba11bd..541446c70 100644 --- a/base/modules/auxil/psi_d_serial_mod.f90 +++ b/base/modules/auxil/psi_d_serial_mod.f90 @@ -30,7 +30,7 @@ ! ! module psi_d_serial_mod - use psb_const_mod, only : psb_ipk_, psb_dpk_ + use psb_const_mod, only : psb_ipk_, psb_lpk_, psb_mpk_, psb_epk_, psb_dpk_ interface psb_gelp ! 2-D version diff --git a/base/modules/auxil/psi_i_serial_mod.f90 b/base/modules/auxil/psi_e_serial_mod.f90 similarity index 55% rename from base/modules/auxil/psi_i_serial_mod.f90 rename to base/modules/auxil/psi_e_serial_mod.f90 index b7802b000..f95d812b4 100644 --- a/base/modules/auxil/psi_i_serial_mod.f90 +++ b/base/modules/auxil/psi_e_serial_mod.f90 @@ -29,105 +29,105 @@ ! POSSIBILITY OF SUCH DAMAGE. ! ! -module psi_i_serial_mod - use psb_const_mod, only : psb_ipk_, psb_lpk_ +module psi_e_serial_mod + use psb_const_mod, only : psb_ipk_, psb_lpk_, psb_mpk_, psb_epk_ interface psb_gelp ! 2-D version - subroutine psb_igelp(trans,iperm,x,info) - import :: psb_ipk_, psb_lpk_ + subroutine psb_egelp(trans,iperm,x,info) + import :: psb_ipk_, psb_lpk_,psb_mpk_, psb_epk_ implicit none - integer(psb_ipk_), intent(inout) :: x(:,:) + integer(psb_epk_), intent(inout) :: x(:,:) integer(psb_ipk_), intent(in) :: iperm(:) integer(psb_ipk_), intent(out) :: info character, intent(in) :: trans - end subroutine psb_igelp - subroutine psb_igelpv(trans,iperm,x,info) - import :: psb_ipk_, psb_lpk_ + end subroutine psb_egelp + subroutine psb_egelpv(trans,iperm,x,info) + import :: psb_ipk_, psb_lpk_,psb_mpk_, psb_epk_ implicit none - integer(psb_ipk_), intent(inout) :: x(:) + integer(psb_epk_), intent(inout) :: x(:) integer(psb_ipk_), intent(in) :: iperm(:) integer(psb_ipk_), intent(out) :: info character, intent(in) :: trans - end subroutine psb_igelpv + end subroutine psb_egelpv end interface psb_gelp interface psb_geaxpby - subroutine psi_iaxpby(m,n,alpha, x, beta, y, info) - import :: psb_ipk_, psb_lpk_ + subroutine psi_eaxpby(m,n,alpha, x, beta, y, info) + import :: psb_ipk_, psb_lpk_,psb_mpk_, psb_epk_ implicit none integer(psb_ipk_), intent(in) :: m, n - integer(psb_ipk_), intent (in) :: x(:,:) - integer(psb_ipk_), intent (inout) :: y(:,:) - integer(psb_ipk_), intent (in) :: alpha, beta + integer(psb_epk_), intent (in) :: x(:,:) + integer(psb_epk_), intent (inout) :: y(:,:) + integer(psb_epk_), intent (in) :: alpha, beta integer(psb_ipk_), intent(out) :: info - end subroutine psi_iaxpby - subroutine psi_iaxpbyv(m,alpha, x, beta, y, info) - import :: psb_ipk_, psb_lpk_ + end subroutine psi_eaxpby + subroutine psi_eaxpbyv(m,alpha, x, beta, y, info) + import :: psb_ipk_, psb_lpk_,psb_mpk_, psb_epk_ implicit none integer(psb_ipk_), intent(in) :: m - integer(psb_ipk_), intent (in) :: x(:) - integer(psb_ipk_), intent (inout) :: y(:) - integer(psb_ipk_), intent (in) :: alpha, beta + integer(psb_epk_), intent (in) :: x(:) + integer(psb_epk_), intent (inout) :: y(:) + integer(psb_epk_), intent (in) :: alpha, beta integer(psb_ipk_), intent(out) :: info - end subroutine psi_iaxpbyv + end subroutine psi_eaxpbyv end interface psb_geaxpby interface psi_gth - subroutine psi_igthmv(n,k,idx,alpha,x,beta,y) - import :: psb_ipk_, psb_lpk_ + subroutine psi_egthmv(n,k,idx,alpha,x,beta,y) + import :: psb_ipk_, psb_lpk_,psb_mpk_, psb_epk_ implicit none integer(psb_ipk_) :: n, k, idx(:) - integer(psb_ipk_) :: x(:,:), y(:),alpha,beta - end subroutine psi_igthmv - subroutine psi_igthv(n,idx,alpha,x,beta,y) - import :: psb_ipk_, psb_lpk_ + integer(psb_epk_) :: x(:,:), y(:),alpha,beta + end subroutine psi_egthmv + subroutine psi_egthv(n,idx,alpha,x,beta,y) + import :: psb_ipk_, psb_lpk_,psb_mpk_, psb_epk_ implicit none integer(psb_ipk_) :: n, idx(:) - integer(psb_ipk_) :: x(:), y(:),alpha,beta - end subroutine psi_igthv - subroutine psi_igthzmv(n,k,idx,x,y) - import :: psb_ipk_, psb_lpk_ + integer(psb_epk_) :: x(:), y(:),alpha,beta + end subroutine psi_egthv + subroutine psi_egthzmv(n,k,idx,x,y) + import :: psb_ipk_, psb_lpk_,psb_mpk_, psb_epk_ implicit none integer(psb_ipk_) :: n, k, idx(:) - integer(psb_ipk_) :: x(:,:), y(:) + integer(psb_epk_) :: x(:,:), y(:) - end subroutine psi_igthzmv - subroutine psi_igthzmm(n,k,idx,x,y) - import :: psb_ipk_, psb_lpk_ + end subroutine psi_egthzmv + subroutine psi_egthzmm(n,k,idx,x,y) + import :: psb_ipk_, psb_lpk_,psb_mpk_, psb_epk_ implicit none integer(psb_ipk_) :: n, k, idx(:) - integer(psb_ipk_) :: x(:,:), y(:,:) + integer(psb_epk_) :: x(:,:), y(:,:) - end subroutine psi_igthzmm - subroutine psi_igthzv(n,idx,x,y) - import :: psb_ipk_, psb_lpk_ + end subroutine psi_egthzmm + subroutine psi_egthzv(n,idx,x,y) + import :: psb_ipk_, psb_lpk_,psb_mpk_, psb_epk_ implicit none integer(psb_ipk_) :: n, idx(:) - integer(psb_ipk_) :: x(:), y(:) - end subroutine psi_igthzv + integer(psb_epk_) :: x(:), y(:) + end subroutine psi_egthzv end interface psi_gth interface psi_sct - subroutine psi_isctmm(n,k,idx,x,beta,y) - import :: psb_ipk_, psb_lpk_ + subroutine psi_esctmm(n,k,idx,x,beta,y) + import :: psb_ipk_, psb_lpk_,psb_mpk_, psb_epk_ implicit none integer(psb_ipk_) :: n, k, idx(:) - integer(psb_ipk_) :: beta, x(:,:), y(:,:) - end subroutine psi_isctmm - subroutine psi_isctmv(n,k,idx,x,beta,y) - import :: psb_ipk_, psb_lpk_ + integer(psb_epk_) :: beta, x(:,:), y(:,:) + end subroutine psi_esctmm + subroutine psi_esctmv(n,k,idx,x,beta,y) + import :: psb_ipk_, psb_lpk_,psb_mpk_, psb_epk_ implicit none integer(psb_ipk_) :: n, k, idx(:) - integer(psb_ipk_) :: beta, x(:), y(:,:) - end subroutine psi_isctmv - subroutine psi_isctv(n,idx,x,beta,y) - import :: psb_ipk_, psb_lpk_ + integer(psb_epk_) :: beta, x(:), y(:,:) + end subroutine psi_esctmv + subroutine psi_esctv(n,idx,x,beta,y) + import :: psb_ipk_, psb_lpk_,psb_mpk_, psb_epk_ implicit none integer(psb_ipk_) :: n, idx(:) - integer(psb_ipk_) :: beta, x(:), y(:) - end subroutine psi_isctv + integer(psb_epk_) :: beta, x(:), y(:) + end subroutine psi_esctv end interface psi_sct -end module psi_i_serial_mod +end module psi_e_serial_mod diff --git a/base/modules/auxil/psi_l_serial_mod.f90 b/base/modules/auxil/psi_m_serial_mod.f90 similarity index 55% rename from base/modules/auxil/psi_l_serial_mod.f90 rename to base/modules/auxil/psi_m_serial_mod.f90 index e5e29c3f3..e9575fc7b 100644 --- a/base/modules/auxil/psi_l_serial_mod.f90 +++ b/base/modules/auxil/psi_m_serial_mod.f90 @@ -29,105 +29,105 @@ ! POSSIBILITY OF SUCH DAMAGE. ! ! -module psi_l_serial_mod - use psb_const_mod, only : psb_ipk_, psb_lpk_ +module psi_m_serial_mod + use psb_const_mod, only : psb_ipk_, psb_lpk_, psb_mpk_, psb_epk_ interface psb_gelp ! 2-D version - subroutine psb_lgelp(trans,iperm,x,info) - import :: psb_ipk_, psb_lpk_ + subroutine psb_mgelp(trans,iperm,x,info) + import :: psb_ipk_, psb_lpk_,psb_mpk_, psb_epk_ implicit none - integer(psb_lpk_), intent(inout) :: x(:,:) + integer(psb_mpk_), intent(inout) :: x(:,:) integer(psb_ipk_), intent(in) :: iperm(:) integer(psb_ipk_), intent(out) :: info character, intent(in) :: trans - end subroutine psb_lgelp - subroutine psb_lgelpv(trans,iperm,x,info) - import :: psb_ipk_, psb_lpk_ + end subroutine psb_mgelp + subroutine psb_mgelpv(trans,iperm,x,info) + import :: psb_ipk_, psb_lpk_,psb_mpk_, psb_epk_ implicit none - integer(psb_lpk_), intent(inout) :: x(:) + integer(psb_mpk_), intent(inout) :: x(:) integer(psb_ipk_), intent(in) :: iperm(:) integer(psb_ipk_), intent(out) :: info character, intent(in) :: trans - end subroutine psb_lgelpv + end subroutine psb_mgelpv end interface psb_gelp interface psb_geaxpby - subroutine psi_laxpby(m,n,alpha, x, beta, y, info) - import :: psb_ipk_, psb_lpk_ + subroutine psi_maxpby(m,n,alpha, x, beta, y, info) + import :: psb_ipk_, psb_lpk_,psb_mpk_, psb_epk_ implicit none integer(psb_ipk_), intent(in) :: m, n - integer(psb_lpk_), intent (in) :: x(:,:) - integer(psb_lpk_), intent (inout) :: y(:,:) - integer(psb_lpk_), intent (in) :: alpha, beta + integer(psb_mpk_), intent (in) :: x(:,:) + integer(psb_mpk_), intent (inout) :: y(:,:) + integer(psb_mpk_), intent (in) :: alpha, beta integer(psb_ipk_), intent(out) :: info - end subroutine psi_laxpby - subroutine psi_laxpbyv(m,alpha, x, beta, y, info) - import :: psb_ipk_, psb_lpk_ + end subroutine psi_maxpby + subroutine psi_maxpbyv(m,alpha, x, beta, y, info) + import :: psb_ipk_, psb_lpk_,psb_mpk_, psb_epk_ implicit none integer(psb_ipk_), intent(in) :: m - integer(psb_lpk_), intent (in) :: x(:) - integer(psb_lpk_), intent (inout) :: y(:) - integer(psb_lpk_), intent (in) :: alpha, beta + integer(psb_mpk_), intent (in) :: x(:) + integer(psb_mpk_), intent (inout) :: y(:) + integer(psb_mpk_), intent (in) :: alpha, beta integer(psb_ipk_), intent(out) :: info - end subroutine psi_laxpbyv + end subroutine psi_maxpbyv end interface psb_geaxpby interface psi_gth - subroutine psi_lgthmv(n,k,idx,alpha,x,beta,y) - import :: psb_ipk_, psb_lpk_ + subroutine psi_mgthmv(n,k,idx,alpha,x,beta,y) + import :: psb_ipk_, psb_lpk_,psb_mpk_, psb_epk_ implicit none integer(psb_ipk_) :: n, k, idx(:) - integer(psb_lpk_) :: x(:,:), y(:),alpha,beta - end subroutine psi_lgthmv - subroutine psi_lgthv(n,idx,alpha,x,beta,y) - import :: psb_ipk_, psb_lpk_ + integer(psb_mpk_) :: x(:,:), y(:),alpha,beta + end subroutine psi_mgthmv + subroutine psi_mgthv(n,idx,alpha,x,beta,y) + import :: psb_ipk_, psb_lpk_,psb_mpk_, psb_epk_ implicit none integer(psb_ipk_) :: n, idx(:) - integer(psb_lpk_) :: x(:), y(:),alpha,beta - end subroutine psi_lgthv - subroutine psi_lgthzmv(n,k,idx,x,y) - import :: psb_ipk_, psb_lpk_ + integer(psb_mpk_) :: x(:), y(:),alpha,beta + end subroutine psi_mgthv + subroutine psi_mgthzmv(n,k,idx,x,y) + import :: psb_ipk_, psb_lpk_,psb_mpk_, psb_epk_ implicit none integer(psb_ipk_) :: n, k, idx(:) - integer(psb_lpk_) :: x(:,:), y(:) + integer(psb_mpk_) :: x(:,:), y(:) - end subroutine psi_lgthzmv - subroutine psi_lgthzmm(n,k,idx,x,y) - import :: psb_ipk_, psb_lpk_ + end subroutine psi_mgthzmv + subroutine psi_mgthzmm(n,k,idx,x,y) + import :: psb_ipk_, psb_lpk_,psb_mpk_, psb_epk_ implicit none integer(psb_ipk_) :: n, k, idx(:) - integer(psb_lpk_) :: x(:,:), y(:,:) + integer(psb_mpk_) :: x(:,:), y(:,:) - end subroutine psi_lgthzmm - subroutine psi_lgthzv(n,idx,x,y) - import :: psb_ipk_, psb_lpk_ + end subroutine psi_mgthzmm + subroutine psi_mgthzv(n,idx,x,y) + import :: psb_ipk_, psb_lpk_,psb_mpk_, psb_epk_ implicit none integer(psb_ipk_) :: n, idx(:) - integer(psb_lpk_) :: x(:), y(:) - end subroutine psi_lgthzv + integer(psb_mpk_) :: x(:), y(:) + end subroutine psi_mgthzv end interface psi_gth interface psi_sct - subroutine psi_lsctmm(n,k,idx,x,beta,y) - import :: psb_ipk_, psb_lpk_ + subroutine psi_msctmm(n,k,idx,x,beta,y) + import :: psb_ipk_, psb_lpk_,psb_mpk_, psb_epk_ implicit none integer(psb_ipk_) :: n, k, idx(:) - integer(psb_lpk_) :: beta, x(:,:), y(:,:) - end subroutine psi_lsctmm - subroutine psi_lsctmv(n,k,idx,x,beta,y) - import :: psb_ipk_, psb_lpk_ + integer(psb_mpk_) :: beta, x(:,:), y(:,:) + end subroutine psi_msctmm + subroutine psi_msctmv(n,k,idx,x,beta,y) + import :: psb_ipk_, psb_lpk_,psb_mpk_, psb_epk_ implicit none integer(psb_ipk_) :: n, k, idx(:) - integer(psb_lpk_) :: beta, x(:), y(:,:) - end subroutine psi_lsctmv - subroutine psi_lsctv(n,idx,x,beta,y) - import :: psb_ipk_, psb_lpk_ + integer(psb_mpk_) :: beta, x(:), y(:,:) + end subroutine psi_msctmv + subroutine psi_msctv(n,idx,x,beta,y) + import :: psb_ipk_, psb_lpk_,psb_mpk_, psb_epk_ implicit none integer(psb_ipk_) :: n, idx(:) - integer(psb_lpk_) :: beta, x(:), y(:) - end subroutine psi_lsctv + integer(psb_mpk_) :: beta, x(:), y(:) + end subroutine psi_msctv end interface psi_sct -end module psi_l_serial_mod +end module psi_m_serial_mod diff --git a/base/modules/auxil/psi_s_serial_mod.f90 b/base/modules/auxil/psi_s_serial_mod.f90 index a547dc0c0..443b16fe8 100644 --- a/base/modules/auxil/psi_s_serial_mod.f90 +++ b/base/modules/auxil/psi_s_serial_mod.f90 @@ -30,7 +30,7 @@ ! ! module psi_s_serial_mod - use psb_const_mod, only : psb_ipk_, psb_spk_ + use psb_const_mod, only : psb_ipk_, psb_lpk_, psb_mpk_, psb_epk_, psb_spk_ interface psb_gelp ! 2-D version diff --git a/base/modules/auxil/psi_serial_mod.f90 b/base/modules/auxil/psi_serial_mod.f90 index fa0f7ada4..249ecaa2b 100644 --- a/base/modules/auxil/psi_serial_mod.f90 +++ b/base/modules/auxil/psi_serial_mod.f90 @@ -30,8 +30,8 @@ ! ! module psi_serial_mod - use psi_i_serial_mod - use psi_l_serial_mod + use psi_m_serial_mod + use psi_e_serial_mod use psi_s_serial_mod use psi_d_serial_mod use psi_c_serial_mod diff --git a/base/modules/auxil/psi_z_serial_mod.f90 b/base/modules/auxil/psi_z_serial_mod.f90 index 309b09ef0..f0d7dd115 100644 --- a/base/modules/auxil/psi_z_serial_mod.f90 +++ b/base/modules/auxil/psi_z_serial_mod.f90 @@ -30,7 +30,7 @@ ! ! module psi_z_serial_mod - use psb_const_mod, only : psb_ipk_, psb_dpk_ + use psb_const_mod, only : psb_ipk_, psb_lpk_, psb_mpk_, psb_epk_, psb_dpk_ interface psb_gelp ! 2-D version diff --git a/base/modules/desc/psb_gen_block_map_mod.f90 b/base/modules/desc/psb_gen_block_map_mod.f90 index 0c9044818..4b2f2ce63 100644 --- a/base/modules/desc/psb_gen_block_map_mod.f90 +++ b/base/modules/desc/psb_gen_block_map_mod.f90 @@ -111,7 +111,8 @@ module psb_gen_block_map_mod & block_get_fmt, gen_block_search, l_gen_block_search interface gen_block_search - module procedure gen_block_search, l_gen_block_search + module procedure l_gen_block_search +! module procedure gen_block_search, l_gen_block_search end interface gen_block_search integer(psb_ipk_), private :: laddsz=500 diff --git a/base/modules/desc/psb_indx_map_mod.f90 b/base/modules/desc/psb_indx_map_mod.f90 index 7ceb42de1..7ad517d31 100644 --- a/base/modules/desc/psb_indx_map_mod.f90 +++ b/base/modules/desc/psb_indx_map_mod.f90 @@ -142,12 +142,13 @@ module psb_indx_map_mod procedure, pass(idxmap) :: get_lr => base_get_lr procedure, pass(idxmap) :: get_lc => base_get_lc + procedure, pass(idxmap) :: set_gri => base_set_gri procedure, pass(idxmap) :: set_gci => base_set_gci procedure, pass(idxmap) :: set_grl => base_set_grl procedure, pass(idxmap) :: set_gcl => base_set_gcl - generic, public :: set_gr => set_gri, set_grl - generic, public :: set_gc => set_gci, set_gcl + generic, public :: set_gr => set_grl + generic, public :: set_gc => set_gcl procedure, pass(idxmap) :: set_lr => base_set_lr procedure, pass(idxmap) :: set_lc => base_set_lc @@ -216,7 +217,7 @@ module psb_indx_map_mod & base_is_upd, base_is_asb, base_is_valid, base_is_ovl,& & base_get_gr, base_get_gc, base_get_lr, base_get_lc, base_get_ctxt,& & base_get_mpic, base_sizeof, base_set_null, & - & base_set_gri, base_set_gci, base_set_grl, base_set_gcl, & + & base_set_grl, base_set_gcl, & & base_set_lr, base_set_lc, base_set_ctxt,& & base_set_mpic, base_get_fmt, base_asb, base_free,& & base_l2gs1, base_l2gs2, base_l2gv1, base_l2gv2,& diff --git a/base/serial/Makefile b/base/serial/Makefile index 5ee1b946c..7f3b7c990 100644 --- a/base/serial/Makefile +++ b/base/serial/Makefile @@ -1,7 +1,7 @@ include ../../Make.inc -FOBJS = psb_lsame.o psi_i_serial_impl.o psi_l_serial_impl.o \ +FOBJS = psb_lsame.o psi_m_serial_impl.o psi_e_serial_impl.o \ psi_s_serial_impl.o psi_d_serial_impl.o \ psi_c_serial_impl.o psi_z_serial_impl.o \ psb_srwextd.o psb_drwextd.o psb_crwextd.o psb_zrwextd.o \ diff --git a/base/serial/psi_l_serial_impl.f90 b/base/serial/psi_e_serial_impl.f90 similarity index 77% rename from base/serial/psi_l_serial_impl.f90 rename to base/serial/psi_e_serial_impl.f90 index 12462fd7d..e226e3c62 100644 --- a/base/serial/psi_l_serial_impl.f90 +++ b/base/serial/psi_e_serial_impl.f90 @@ -29,15 +29,15 @@ ! POSSIBILITY OF SUCH DAMAGE. ! ! -subroutine psi_laxpby(m,n,alpha, x, beta, y, info) +subroutine psi_eaxpby(m,n,alpha, x, beta, y, info) use psb_const_mod use psb_error_mod implicit none integer(psb_ipk_), intent(in) :: m, n - integer(psb_lpk_), intent (in) :: x(:,:) - integer(psb_lpk_), intent (inout) :: y(:,:) - integer(psb_lpk_), intent (in) :: alpha, beta + integer(psb_epk_), intent (in) :: x(:,:) + integer(psb_epk_), intent (inout) :: y(:,:) + integer(psb_epk_), intent (in) :: alpha, beta integer(psb_ipk_), intent(out) :: info integer(psb_ipk_) :: err_act integer(psb_ipk_) :: lx, ly @@ -76,7 +76,7 @@ subroutine psi_laxpby(m,n,alpha, x, beta, y, info) goto 9999 end if - if ((m>0).and.(n>0)) call laxpby(m,n,alpha,x,lx,beta,y,ly,info) + if ((m>0).and.(n>0)) call eaxpby(m,n,alpha,x,lx,beta,y,ly,info) call psb_erractionrestore(err_act) return @@ -84,17 +84,17 @@ subroutine psi_laxpby(m,n,alpha, x, beta, y, info) 9999 call psb_error_handler(err_act) return -end subroutine psi_laxpby +end subroutine psi_eaxpby -subroutine psi_laxpbyv(m,alpha, x, beta, y, info) +subroutine psi_eaxpbyv(m,alpha, x, beta, y, info) use psb_const_mod use psb_error_mod implicit none integer(psb_ipk_), intent(in) :: m - integer(psb_lpk_), intent (in) :: x(:) - integer(psb_lpk_), intent (inout) :: y(:) - integer(psb_lpk_), intent (in) :: alpha, beta + integer(psb_epk_), intent (in) :: x(:) + integer(psb_epk_), intent (inout) :: y(:) + integer(psb_epk_), intent (in) :: alpha, beta integer(psb_ipk_), intent(out) :: info integer(psb_ipk_) :: err_act integer(psb_ipk_) :: lx, ly @@ -127,7 +127,7 @@ subroutine psi_laxpbyv(m,alpha, x, beta, y, info) goto 9999 end if - if (m>0) call laxpby(m,ione,alpha,x,lx,beta,y,ly,info) + if (m>0) call eaxpby(m,ione,alpha,x,lx,beta,y,ly,info) call psb_erractionrestore(err_act) return @@ -136,30 +136,30 @@ subroutine psi_laxpbyv(m,alpha, x, beta, y, info) return -end subroutine psi_laxpbyv +end subroutine psi_eaxpbyv -subroutine psi_lgthmv(n,k,idx,alpha,x,beta,y) +subroutine psi_egthmv(n,k,idx,alpha,x,beta,y) use psb_const_mod implicit none integer(psb_ipk_) :: n, k, idx(:) - integer(psb_lpk_) :: x(:,:), y(:),alpha,beta + integer(psb_epk_) :: x(:,:), y(:),alpha,beta ! Locals integer(psb_ipk_) :: i, j, pt - if (beta == lzero) then - if (alpha == lzero) then + if (beta == ezero) then + if (alpha == ezero) then pt=0 do j=1,k do i=1,n pt=pt+1 - y(pt) = lzero + y(pt) = ezero end do end do - else if (alpha == lone) then + else if (alpha == eone) then pt=0 do j=1,k do i=1,n @@ -167,7 +167,7 @@ subroutine psi_lgthmv(n,k,idx,alpha,x,beta,y) y(pt) = x(idx(i),j) end do end do - else if (alpha == -lone) then + else if (alpha == -eone) then pt=0 do j=1,k do i=1,n @@ -185,17 +185,17 @@ subroutine psi_lgthmv(n,k,idx,alpha,x,beta,y) end do end if else - if (beta == lone) then + if (beta == eone) then ! Do nothing - else if (beta == -lone) then + else if (beta == -eone) then y(1:n*k) = -y(1:n*k) else y(1:n*k) = beta*y(1:n*k) end if - if (alpha == lzero) then + if (alpha == ezero) then ! do nothing - else if (alpha == lone) then + else if (alpha == eone) then pt=0 do j=1,k do i=1,n @@ -203,7 +203,7 @@ subroutine psi_lgthmv(n,k,idx,alpha,x,beta,y) y(pt) = y(pt) + x(idx(i),j) end do end do - else if (alpha == -lone) then + else if (alpha == -eone) then pt=0 do j=1,k do i=1,n @@ -222,28 +222,28 @@ subroutine psi_lgthmv(n,k,idx,alpha,x,beta,y) end if end if -end subroutine psi_lgthmv +end subroutine psi_egthmv -subroutine psi_lgthv(n,idx,alpha,x,beta,y) +subroutine psi_egthv(n,idx,alpha,x,beta,y) use psb_const_mod implicit none integer(psb_ipk_) :: n, idx(:) - integer(psb_lpk_) :: x(:), y(:),alpha,beta + integer(psb_epk_) :: x(:), y(:),alpha,beta ! Locals integer(psb_ipk_) :: i - if (beta == lzero) then - if (alpha == lzero) then + if (beta == ezero) then + if (alpha == ezero) then do i=1,n - y(i) = lzero + y(i) = ezero end do - else if (alpha == lone) then + else if (alpha == eone) then do i=1,n y(i) = x(idx(i)) end do - else if (alpha == -lone) then + else if (alpha == -eone) then do i=1,n y(i) = -x(idx(i)) end do @@ -253,21 +253,21 @@ subroutine psi_lgthv(n,idx,alpha,x,beta,y) end do end if else - if (beta == lone) then + if (beta == eone) then ! Do nothing - else if (beta == -lone) then + else if (beta == -eone) then y(1:n) = -y(1:n) else y(1:n) = beta*y(1:n) end if - if (alpha == lzero) then + if (alpha == ezero) then ! do nothing - else if (alpha == lone) then + else if (alpha == eone) then do i=1,n y(i) = y(i) + x(idx(i)) end do - else if (alpha == -lone) then + else if (alpha == -eone) then do i=1,n y(i) = y(i) - x(idx(i)) end do @@ -278,15 +278,15 @@ subroutine psi_lgthv(n,idx,alpha,x,beta,y) end if end if -end subroutine psi_lgthv +end subroutine psi_egthv -subroutine psi_lgthzmm(n,k,idx,x,y) +subroutine psi_egthzmm(n,k,idx,x,y) use psb_const_mod implicit none integer(psb_ipk_) :: n, k, idx(:) - integer(psb_lpk_) :: x(:,:), y(:,:) + integer(psb_epk_) :: x(:,:), y(:,:) ! Locals integer(psb_ipk_) :: i @@ -296,15 +296,15 @@ subroutine psi_lgthzmm(n,k,idx,x,y) y(i,1:k)=x(idx(i),1:k) end do -end subroutine psi_lgthzmm +end subroutine psi_egthzmm -subroutine psi_lgthzmv(n,k,idx,x,y) +subroutine psi_egthzmv(n,k,idx,x,y) use psb_const_mod implicit none integer(psb_ipk_) :: n, k, idx(:) - integer(psb_lpk_) :: x(:,:), y(:) + integer(psb_epk_) :: x(:,:), y(:) ! Locals integer(psb_ipk_) :: i, j, pt @@ -317,15 +317,15 @@ subroutine psi_lgthzmv(n,k,idx,x,y) end do end do -end subroutine psi_lgthzmv +end subroutine psi_egthzmv -subroutine psi_lgthzv(n,idx,x,y) +subroutine psi_egthzv(n,idx,x,y) use psb_const_mod implicit none integer(psb_ipk_) :: n, idx(:) - integer(psb_lpk_) :: x(:), y(:) + integer(psb_epk_) :: x(:), y(:) ! Locals integer(psb_ipk_) :: i @@ -334,24 +334,24 @@ subroutine psi_lgthzv(n,idx,x,y) y(i)=x(idx(i)) end do -end subroutine psi_lgthzv +end subroutine psi_egthzv -subroutine psi_lsctmm(n,k,idx,x,beta,y) +subroutine psi_esctmm(n,k,idx,x,beta,y) use psb_const_mod implicit none integer(psb_ipk_) :: n, k, idx(:) - integer(psb_lpk_) :: beta, x(:,:), y(:,:) + integer(psb_epk_) :: beta, x(:,:), y(:,:) ! Locals integer(psb_ipk_) :: i, j - if (beta == lzero) then + if (beta == ezero) then do i=1,n y(idx(i),1:k) = x(i,1:k) end do - else if (beta == lone) then + else if (beta == eone) then do i=1,n y(idx(i),1:k) = y(idx(i),1:k)+x(i,1:k) end do @@ -360,20 +360,20 @@ subroutine psi_lsctmm(n,k,idx,x,beta,y) y(idx(i),1:k) = beta*y(idx(i),1:k)+x(i,1:k) end do end if -end subroutine psi_lsctmm +end subroutine psi_esctmm -subroutine psi_lsctmv(n,k,idx,x,beta,y) +subroutine psi_esctmv(n,k,idx,x,beta,y) use psb_const_mod implicit none integer(psb_ipk_) :: n, k, idx(:) - integer(psb_lpk_) :: beta, x(:), y(:,:) + integer(psb_epk_) :: beta, x(:), y(:,:) ! Locals integer(psb_ipk_) :: i, j, pt - if (beta == lzero) then + if (beta == ezero) then pt=0 do j=1,k do i=1,n @@ -381,7 +381,7 @@ subroutine psi_lsctmv(n,k,idx,x,beta,y) y(idx(i),j) = x(pt) end do end do - else if (beta == lone) then + else if (beta == eone) then pt=0 do j=1,k do i=1,n @@ -398,24 +398,24 @@ subroutine psi_lsctmv(n,k,idx,x,beta,y) end do end do end if -end subroutine psi_lsctmv +end subroutine psi_esctmv -subroutine psi_lsctv(n,idx,x,beta,y) +subroutine psi_esctv(n,idx,x,beta,y) use psb_const_mod implicit none integer(psb_ipk_) :: n, idx(:) - integer(psb_lpk_) :: beta, x(:), y(:) + integer(psb_epk_) :: beta, x(:), y(:) ! Locals integer(psb_ipk_) :: i - if (beta == lzero) then + if (beta == ezero) then do i=1,n y(idx(i)) = x(i) end do - else if (beta == lone) then + else if (beta == eone) then do i=1,n y(idx(i)) = y(idx(i))+x(i) end do @@ -424,19 +424,19 @@ subroutine psi_lsctv(n,idx,x,beta,y) y(idx(i)) = beta*y(idx(i))+x(i) end do end if -end subroutine psi_lsctv +end subroutine psi_esctv -subroutine laxpby(m, n, alpha, X, lldx, beta, Y, lldy, info) +subroutine eaxpby(m, n, alpha, X, lldx, beta, Y, lldy, info) use psb_const_mod use psb_error_mod implicit none integer(psb_ipk_) :: n, m, lldx, lldy, info - integer(psb_lpk_) X(lldx,*), Y(lldy,*) - integer(psb_lpk_) alpha, beta + integer(psb_epk_) X(lldx,*), Y(lldy,*) + integer(psb_epk_) alpha, beta integer(psb_ipk_) :: i, j integer(psb_ipk_) :: int_err(5) character name*20 - name='laxpby' + name='eaxpby' ! @@ -473,19 +473,19 @@ subroutine laxpby(m, n, alpha, X, lldx, beta, Y, lldy, info) goto 9999 endif - if (alpha.eq.lzero) then - if (beta.eq.lzero) then + if (alpha.eq.ezero) then + if (beta.eq.ezero) then do j=1, n do i=1,m - y(i,j) = lzero + y(i,j) = ezero enddo enddo - else if (beta.eq.lone) then + else if (beta.eq.eone) then ! ! Do nothing! ! - else if (beta.eq.-lone) then + else if (beta.eq.-eone) then do j=1,n do i=1,m y(i,j) = - y(i,j) @@ -499,22 +499,22 @@ subroutine laxpby(m, n, alpha, X, lldx, beta, Y, lldy, info) enddo endif - else if (alpha.eq.lone) then + else if (alpha.eq.eone) then - if (beta.eq.lzero) then + if (beta.eq.ezero) then do j=1,n do i=1,m y(i,j) = x(i,j) enddo enddo - else if (beta.eq.lone) then + else if (beta.eq.eone) then do j=1,n do i=1,m y(i,j) = x(i,j) + y(i,j) enddo enddo - else if (beta.eq.-lone) then + else if (beta.eq.-eone) then do j=1,n do i=1,m y(i,j) = x(i,j) - y(i,j) @@ -528,22 +528,22 @@ subroutine laxpby(m, n, alpha, X, lldx, beta, Y, lldy, info) enddo endif - else if (alpha.eq.-lone) then + else if (alpha.eq.-eone) then - if (beta.eq.lzero) then + if (beta.eq.ezero) then do j=1,n do i=1,m y(i,j) = -x(i,j) enddo enddo - else if (beta.eq.lone) then + else if (beta.eq.eone) then do j=1,n do i=1,m y(i,j) = -x(i,j) + y(i,j) enddo enddo - else if (beta.eq.-lone) then + else if (beta.eq.-eone) then do j=1,n do i=1,m y(i,j) = -x(i,j) - y(i,j) @@ -559,20 +559,20 @@ subroutine laxpby(m, n, alpha, X, lldx, beta, Y, lldy, info) else - if (beta.eq.lzero) then + if (beta.eq.ezero) then do j=1,n do i=1,m y(i,j) = alpha*x(i,j) enddo enddo - else if (beta.eq.lone) then + else if (beta.eq.eone) then do j=1,n do i=1,m y(i,j) = alpha*x(i,j) + y(i,j) enddo enddo - else if (beta.eq.-lone) then + else if (beta.eq.-eone) then do j=1,n do i=1,m y(i,j) = alpha*x(i,j) - y(i,j) @@ -594,4 +594,4 @@ subroutine laxpby(m, n, alpha, X, lldx, beta, Y, lldy, info) call fcpsb_serror() return -end subroutine laxpby +end subroutine eaxpby diff --git a/base/serial/psi_i_serial_impl.f90 b/base/serial/psi_m_serial_impl.f90 similarity index 77% rename from base/serial/psi_i_serial_impl.f90 rename to base/serial/psi_m_serial_impl.f90 index 90d2cdeaa..a00ef6f53 100644 --- a/base/serial/psi_i_serial_impl.f90 +++ b/base/serial/psi_m_serial_impl.f90 @@ -29,15 +29,15 @@ ! POSSIBILITY OF SUCH DAMAGE. ! ! -subroutine psi_iaxpby(m,n,alpha, x, beta, y, info) +subroutine psi_maxpby(m,n,alpha, x, beta, y, info) use psb_const_mod use psb_error_mod implicit none integer(psb_ipk_), intent(in) :: m, n - integer(psb_ipk_), intent (in) :: x(:,:) - integer(psb_ipk_), intent (inout) :: y(:,:) - integer(psb_ipk_), intent (in) :: alpha, beta + integer(psb_mpk_), intent (in) :: x(:,:) + integer(psb_mpk_), intent (inout) :: y(:,:) + integer(psb_mpk_), intent (in) :: alpha, beta integer(psb_ipk_), intent(out) :: info integer(psb_ipk_) :: err_act integer(psb_ipk_) :: lx, ly @@ -76,7 +76,7 @@ subroutine psi_iaxpby(m,n,alpha, x, beta, y, info) goto 9999 end if - if ((m>0).and.(n>0)) call iaxpby(m,n,alpha,x,lx,beta,y,ly,info) + if ((m>0).and.(n>0)) call maxpby(m,n,alpha,x,lx,beta,y,ly,info) call psb_erractionrestore(err_act) return @@ -84,17 +84,17 @@ subroutine psi_iaxpby(m,n,alpha, x, beta, y, info) 9999 call psb_error_handler(err_act) return -end subroutine psi_iaxpby +end subroutine psi_maxpby -subroutine psi_iaxpbyv(m,alpha, x, beta, y, info) +subroutine psi_maxpbyv(m,alpha, x, beta, y, info) use psb_const_mod use psb_error_mod implicit none integer(psb_ipk_), intent(in) :: m - integer(psb_ipk_), intent (in) :: x(:) - integer(psb_ipk_), intent (inout) :: y(:) - integer(psb_ipk_), intent (in) :: alpha, beta + integer(psb_mpk_), intent (in) :: x(:) + integer(psb_mpk_), intent (inout) :: y(:) + integer(psb_mpk_), intent (in) :: alpha, beta integer(psb_ipk_), intent(out) :: info integer(psb_ipk_) :: err_act integer(psb_ipk_) :: lx, ly @@ -127,7 +127,7 @@ subroutine psi_iaxpbyv(m,alpha, x, beta, y, info) goto 9999 end if - if (m>0) call iaxpby(m,ione,alpha,x,lx,beta,y,ly,info) + if (m>0) call maxpby(m,ione,alpha,x,lx,beta,y,ly,info) call psb_erractionrestore(err_act) return @@ -136,30 +136,30 @@ subroutine psi_iaxpbyv(m,alpha, x, beta, y, info) return -end subroutine psi_iaxpbyv +end subroutine psi_maxpbyv -subroutine psi_igthmv(n,k,idx,alpha,x,beta,y) +subroutine psi_mgthmv(n,k,idx,alpha,x,beta,y) use psb_const_mod implicit none integer(psb_ipk_) :: n, k, idx(:) - integer(psb_ipk_) :: x(:,:), y(:),alpha,beta + integer(psb_mpk_) :: x(:,:), y(:),alpha,beta ! Locals integer(psb_ipk_) :: i, j, pt - if (beta == izero) then - if (alpha == izero) then + if (beta == mzero) then + if (alpha == mzero) then pt=0 do j=1,k do i=1,n pt=pt+1 - y(pt) = izero + y(pt) = mzero end do end do - else if (alpha == ione) then + else if (alpha == mone) then pt=0 do j=1,k do i=1,n @@ -167,7 +167,7 @@ subroutine psi_igthmv(n,k,idx,alpha,x,beta,y) y(pt) = x(idx(i),j) end do end do - else if (alpha == -ione) then + else if (alpha == -mone) then pt=0 do j=1,k do i=1,n @@ -185,17 +185,17 @@ subroutine psi_igthmv(n,k,idx,alpha,x,beta,y) end do end if else - if (beta == ione) then + if (beta == mone) then ! Do nothing - else if (beta == -ione) then + else if (beta == -mone) then y(1:n*k) = -y(1:n*k) else y(1:n*k) = beta*y(1:n*k) end if - if (alpha == izero) then + if (alpha == mzero) then ! do nothing - else if (alpha == ione) then + else if (alpha == mone) then pt=0 do j=1,k do i=1,n @@ -203,7 +203,7 @@ subroutine psi_igthmv(n,k,idx,alpha,x,beta,y) y(pt) = y(pt) + x(idx(i),j) end do end do - else if (alpha == -ione) then + else if (alpha == -mone) then pt=0 do j=1,k do i=1,n @@ -222,28 +222,28 @@ subroutine psi_igthmv(n,k,idx,alpha,x,beta,y) end if end if -end subroutine psi_igthmv +end subroutine psi_mgthmv -subroutine psi_igthv(n,idx,alpha,x,beta,y) +subroutine psi_mgthv(n,idx,alpha,x,beta,y) use psb_const_mod implicit none integer(psb_ipk_) :: n, idx(:) - integer(psb_ipk_) :: x(:), y(:),alpha,beta + integer(psb_mpk_) :: x(:), y(:),alpha,beta ! Locals integer(psb_ipk_) :: i - if (beta == izero) then - if (alpha == izero) then + if (beta == mzero) then + if (alpha == mzero) then do i=1,n - y(i) = izero + y(i) = mzero end do - else if (alpha == ione) then + else if (alpha == mone) then do i=1,n y(i) = x(idx(i)) end do - else if (alpha == -ione) then + else if (alpha == -mone) then do i=1,n y(i) = -x(idx(i)) end do @@ -253,21 +253,21 @@ subroutine psi_igthv(n,idx,alpha,x,beta,y) end do end if else - if (beta == ione) then + if (beta == mone) then ! Do nothing - else if (beta == -ione) then + else if (beta == -mone) then y(1:n) = -y(1:n) else y(1:n) = beta*y(1:n) end if - if (alpha == izero) then + if (alpha == mzero) then ! do nothing - else if (alpha == ione) then + else if (alpha == mone) then do i=1,n y(i) = y(i) + x(idx(i)) end do - else if (alpha == -ione) then + else if (alpha == -mone) then do i=1,n y(i) = y(i) - x(idx(i)) end do @@ -278,15 +278,15 @@ subroutine psi_igthv(n,idx,alpha,x,beta,y) end if end if -end subroutine psi_igthv +end subroutine psi_mgthv -subroutine psi_igthzmm(n,k,idx,x,y) +subroutine psi_mgthzmm(n,k,idx,x,y) use psb_const_mod implicit none integer(psb_ipk_) :: n, k, idx(:) - integer(psb_ipk_) :: x(:,:), y(:,:) + integer(psb_mpk_) :: x(:,:), y(:,:) ! Locals integer(psb_ipk_) :: i @@ -296,15 +296,15 @@ subroutine psi_igthzmm(n,k,idx,x,y) y(i,1:k)=x(idx(i),1:k) end do -end subroutine psi_igthzmm +end subroutine psi_mgthzmm -subroutine psi_igthzmv(n,k,idx,x,y) +subroutine psi_mgthzmv(n,k,idx,x,y) use psb_const_mod implicit none integer(psb_ipk_) :: n, k, idx(:) - integer(psb_ipk_) :: x(:,:), y(:) + integer(psb_mpk_) :: x(:,:), y(:) ! Locals integer(psb_ipk_) :: i, j, pt @@ -317,15 +317,15 @@ subroutine psi_igthzmv(n,k,idx,x,y) end do end do -end subroutine psi_igthzmv +end subroutine psi_mgthzmv -subroutine psi_igthzv(n,idx,x,y) +subroutine psi_mgthzv(n,idx,x,y) use psb_const_mod implicit none integer(psb_ipk_) :: n, idx(:) - integer(psb_ipk_) :: x(:), y(:) + integer(psb_mpk_) :: x(:), y(:) ! Locals integer(psb_ipk_) :: i @@ -334,24 +334,24 @@ subroutine psi_igthzv(n,idx,x,y) y(i)=x(idx(i)) end do -end subroutine psi_igthzv +end subroutine psi_mgthzv -subroutine psi_isctmm(n,k,idx,x,beta,y) +subroutine psi_msctmm(n,k,idx,x,beta,y) use psb_const_mod implicit none integer(psb_ipk_) :: n, k, idx(:) - integer(psb_ipk_) :: beta, x(:,:), y(:,:) + integer(psb_mpk_) :: beta, x(:,:), y(:,:) ! Locals integer(psb_ipk_) :: i, j - if (beta == izero) then + if (beta == mzero) then do i=1,n y(idx(i),1:k) = x(i,1:k) end do - else if (beta == ione) then + else if (beta == mone) then do i=1,n y(idx(i),1:k) = y(idx(i),1:k)+x(i,1:k) end do @@ -360,20 +360,20 @@ subroutine psi_isctmm(n,k,idx,x,beta,y) y(idx(i),1:k) = beta*y(idx(i),1:k)+x(i,1:k) end do end if -end subroutine psi_isctmm +end subroutine psi_msctmm -subroutine psi_isctmv(n,k,idx,x,beta,y) +subroutine psi_msctmv(n,k,idx,x,beta,y) use psb_const_mod implicit none integer(psb_ipk_) :: n, k, idx(:) - integer(psb_ipk_) :: beta, x(:), y(:,:) + integer(psb_mpk_) :: beta, x(:), y(:,:) ! Locals integer(psb_ipk_) :: i, j, pt - if (beta == izero) then + if (beta == mzero) then pt=0 do j=1,k do i=1,n @@ -381,7 +381,7 @@ subroutine psi_isctmv(n,k,idx,x,beta,y) y(idx(i),j) = x(pt) end do end do - else if (beta == ione) then + else if (beta == mone) then pt=0 do j=1,k do i=1,n @@ -398,24 +398,24 @@ subroutine psi_isctmv(n,k,idx,x,beta,y) end do end do end if -end subroutine psi_isctmv +end subroutine psi_msctmv -subroutine psi_isctv(n,idx,x,beta,y) +subroutine psi_msctv(n,idx,x,beta,y) use psb_const_mod implicit none integer(psb_ipk_) :: n, idx(:) - integer(psb_ipk_) :: beta, x(:), y(:) + integer(psb_mpk_) :: beta, x(:), y(:) ! Locals integer(psb_ipk_) :: i - if (beta == izero) then + if (beta == mzero) then do i=1,n y(idx(i)) = x(i) end do - else if (beta == ione) then + else if (beta == mone) then do i=1,n y(idx(i)) = y(idx(i))+x(i) end do @@ -424,19 +424,19 @@ subroutine psi_isctv(n,idx,x,beta,y) y(idx(i)) = beta*y(idx(i))+x(i) end do end if -end subroutine psi_isctv +end subroutine psi_msctv -subroutine iaxpby(m, n, alpha, X, lldx, beta, Y, lldy, info) +subroutine maxpby(m, n, alpha, X, lldx, beta, Y, lldy, info) use psb_const_mod use psb_error_mod implicit none integer(psb_ipk_) :: n, m, lldx, lldy, info - integer(psb_ipk_) X(lldx,*), Y(lldy,*) - integer(psb_ipk_) alpha, beta + integer(psb_mpk_) X(lldx,*), Y(lldy,*) + integer(psb_mpk_) alpha, beta integer(psb_ipk_) :: i, j integer(psb_ipk_) :: int_err(5) character name*20 - name='iaxpby' + name='maxpby' ! @@ -473,19 +473,19 @@ subroutine iaxpby(m, n, alpha, X, lldx, beta, Y, lldy, info) goto 9999 endif - if (alpha.eq.izero) then - if (beta.eq.izero) then + if (alpha.eq.mzero) then + if (beta.eq.mzero) then do j=1, n do i=1,m - y(i,j) = izero + y(i,j) = mzero enddo enddo - else if (beta.eq.ione) then + else if (beta.eq.mone) then ! ! Do nothing! ! - else if (beta.eq.-ione) then + else if (beta.eq.-mone) then do j=1,n do i=1,m y(i,j) = - y(i,j) @@ -499,22 +499,22 @@ subroutine iaxpby(m, n, alpha, X, lldx, beta, Y, lldy, info) enddo endif - else if (alpha.eq.ione) then + else if (alpha.eq.mone) then - if (beta.eq.izero) then + if (beta.eq.mzero) then do j=1,n do i=1,m y(i,j) = x(i,j) enddo enddo - else if (beta.eq.ione) then + else if (beta.eq.mone) then do j=1,n do i=1,m y(i,j) = x(i,j) + y(i,j) enddo enddo - else if (beta.eq.-ione) then + else if (beta.eq.-mone) then do j=1,n do i=1,m y(i,j) = x(i,j) - y(i,j) @@ -528,22 +528,22 @@ subroutine iaxpby(m, n, alpha, X, lldx, beta, Y, lldy, info) enddo endif - else if (alpha.eq.-ione) then + else if (alpha.eq.-mone) then - if (beta.eq.izero) then + if (beta.eq.mzero) then do j=1,n do i=1,m y(i,j) = -x(i,j) enddo enddo - else if (beta.eq.ione) then + else if (beta.eq.mone) then do j=1,n do i=1,m y(i,j) = -x(i,j) + y(i,j) enddo enddo - else if (beta.eq.-ione) then + else if (beta.eq.-mone) then do j=1,n do i=1,m y(i,j) = -x(i,j) - y(i,j) @@ -559,20 +559,20 @@ subroutine iaxpby(m, n, alpha, X, lldx, beta, Y, lldy, info) else - if (beta.eq.izero) then + if (beta.eq.mzero) then do j=1,n do i=1,m y(i,j) = alpha*x(i,j) enddo enddo - else if (beta.eq.ione) then + else if (beta.eq.mone) then do j=1,n do i=1,m y(i,j) = alpha*x(i,j) + y(i,j) enddo enddo - else if (beta.eq.-ione) then + else if (beta.eq.-mone) then do j=1,n do i=1,m y(i,j) = alpha*x(i,j) - y(i,j) @@ -594,4 +594,4 @@ subroutine iaxpby(m, n, alpha, X, lldx, beta, Y, lldy, info) call fcpsb_serror() return -end subroutine iaxpby +end subroutine maxpby diff --git a/util/psb_partidx_mod.F90 b/util/psb_partidx_mod.F90 index 2b0cbbaa3..edbdb0494 100644 --- a/util/psb_partidx_mod.F90 +++ b/util/psb_partidx_mod.F90 @@ -38,21 +38,25 @@ ! See test/pargen/psb_X_pdeNd for examples of usage ! module psb_partidx_mod - use psb_base_mod, only : psb_ipk_ + use psb_base_mod, only : psb_ipk_, psb_lpk_, psb_mpk_, psb_epk_ interface idx2ijk - module procedure idx2ijk3d, idx2ijkv, idx2ijk2d,& - & lidx2ijk3d, lidx2ijkv, lidx2ijk2d,& + module procedure idx2ijk3d, idx2ijkv, idx2ijk2d + end interface idx2ijk + + interface ijk2idx + module procedure ijk2idx3d, ijk2idxv, ijk2idx2d + end interface ijk2idx + interface idx2ijk + module procedure lidx2ijk3d, lidx2ijkv, lidx2ijk2d,& & lidx2lijk3d, lidx2lijkv, lidx2lijk2d end interface idx2ijk interface ijk2idx - module procedure ijk2idx3d, ijk2idxv, ijk2idx2d,& - & ijk2lidx3d, ijk2lidxv, ijk2lidx2d,& + module procedure ijk2lidx3d, ijk2lidxv, ijk2lidx2d,& & lijk2lidx3d, lijk2lidxv, lijk2lidx2d end interface ijk2idx - contains ! ! Given a global index IDX and the domain size (NX,NY,NZ) @@ -67,13 +71,13 @@ contains ! ijk2idx(i,j,k) = idx ! idx = idx + 1 subroutine idx2ijk3d(i,j,k,idx,nx,ny,nz,base) - use psb_base_mod, only : psb_ipk_ + use psb_base_mod, only : psb_ipk_, psb_lpk_, psb_mpk_, psb_epk_ implicit none - integer(psb_ipk_), intent(out) :: i,j,k - integer(psb_ipk_), intent(in) :: idx,nx,ny,nz - integer(psb_ipk_), intent(in), optional :: base + integer(psb_mpk_), intent(out) :: i,j,k + integer(psb_mpk_), intent(in) :: idx,nx,ny,nz + integer(psb_mpk_), intent(in), optional :: base - integer(psb_ipk_) :: coords(3) + integer(psb_mpk_) :: coords(3) call idx2ijk(coords,idx,[nx,ny,nz],base) @@ -84,13 +88,13 @@ contains end subroutine idx2ijk3d subroutine idx2ijk2d(i,j,idx,nx,ny,base) - use psb_base_mod, only : psb_ipk_ + use psb_base_mod, only : psb_ipk_, psb_lpk_, psb_mpk_, psb_epk_ implicit none - integer(psb_ipk_), intent(out) :: i,j - integer(psb_ipk_), intent(in) :: idx,nx,ny - integer(psb_ipk_), intent(in), optional :: base + integer(psb_mpk_), intent(out) :: i,j + integer(psb_mpk_), intent(in) :: idx,nx,ny + integer(psb_mpk_), intent(in), optional :: base - integer(psb_ipk_) :: coords(2) + integer(psb_mpk_) :: coords(2) call idx2ijk(coords,idx,[nx,ny],base) @@ -112,13 +116,13 @@ contains ! ijk2idx(i,j,k) = idx ! idx = idx + 1 subroutine idx2ijkv(coords,idx,dims,base) - use psb_base_mod, only : psb_ipk_ + use psb_base_mod, only : psb_ipk_, psb_lpk_, psb_mpk_, psb_epk_ implicit none - integer(psb_ipk_), intent(out) :: coords(:) - integer(psb_ipk_), intent(in) :: idx,dims(:) - integer(psb_ipk_), intent(in), optional :: base + integer(psb_mpk_), intent(out) :: coords(:) + integer(psb_mpk_), intent(in) :: idx,dims(:) + integer(psb_mpk_), intent(in), optional :: base - integer(psb_ipk_) :: base_, idx_, i, sz + integer(psb_mpk_) :: base_, idx_, i, sz if (present(base)) then base_ = base else @@ -147,14 +151,14 @@ contains end subroutine idx2ijkv subroutine lidx2ijk3d(i,j,k,idx,nx,ny,nz,base) - use psb_base_mod, only : psb_ipk_, psb_lpk_ + use psb_base_mod, only : psb_ipk_, psb_lpk_, psb_mpk_, psb_epk_ implicit none - integer(psb_ipk_), intent(out) :: i,j,k - integer(psb_lpk_), intent(in) :: idx - integer(psb_ipk_), intent(in) :: nx,ny,nz - integer(psb_ipk_), intent(in), optional :: base + integer(psb_mpk_), intent(out) :: i,j,k + integer(psb_epk_), intent(in) :: idx + integer(psb_mpk_), intent(in) :: nx,ny,nz + integer(psb_mpk_), intent(in), optional :: base - integer(psb_ipk_) :: coords(3) + integer(psb_mpk_) :: coords(3) call idx2ijk(coords,idx,[nx,ny,nz],base) @@ -165,14 +169,14 @@ contains end subroutine lidx2ijk3d subroutine lidx2ijk2d(i,j,idx,nx,ny,base) - use psb_base_mod, only : psb_ipk_, psb_lpk_ + use psb_base_mod, only : psb_ipk_, psb_lpk_, psb_mpk_, psb_epk_ implicit none - integer(psb_ipk_), intent(out) :: i,j - integer(psb_lpk_), intent(in) :: idx - integer(psb_ipk_), intent(in) :: nx,ny - integer(psb_ipk_), intent(in), optional :: base + integer(psb_mpk_), intent(out) :: i,j + integer(psb_epk_), intent(in) :: idx + integer(psb_mpk_), intent(in) :: nx,ny + integer(psb_mpk_), intent(in), optional :: base - integer(psb_ipk_) :: coords(2) + integer(psb_mpk_) :: coords(2) call idx2ijk(coords,idx,[nx,ny],base) @@ -194,15 +198,15 @@ contains ! ijk2idx(i,j,k) = idx ! idx = idx + 1 subroutine lidx2ijkv(coords,idx,dims,base) - use psb_base_mod, only : psb_ipk_, psb_lpk_ + use psb_base_mod, only : psb_ipk_, psb_lpk_, psb_mpk_, psb_epk_ implicit none - integer(psb_ipk_), intent(out) :: coords(:) - integer(psb_lpk_), intent(in) :: idx - integer(psb_ipk_), intent(in) :: dims(:) - integer(psb_ipk_), intent(in), optional :: base + integer(psb_mpk_), intent(out) :: coords(:) + integer(psb_epk_), intent(in) :: idx + integer(psb_mpk_), intent(in) :: dims(:) + integer(psb_mpk_), intent(in), optional :: base - integer(psb_lpk_) :: base_, idx_ - integer(psb_ipk_) :: i, sz + integer(psb_epk_) :: base_, idx_ + integer(psb_mpk_) :: i, sz if (present(base)) then base_ = base else @@ -231,14 +235,14 @@ contains end subroutine lidx2ijkv subroutine lidx2lijk3d(i,j,k,idx,nx,ny,nz,base) - use psb_base_mod, only : psb_ipk_, psb_lpk_ + use psb_base_mod, only : psb_ipk_, psb_lpk_, psb_mpk_, psb_epk_ implicit none - integer(psb_lpk_), intent(out) :: i,j,k - integer(psb_lpk_), intent(in) :: idx - integer(psb_lpk_), intent(in) :: nx,ny,nz - integer(psb_ipk_), intent(in), optional :: base + integer(psb_epk_), intent(out) :: i,j,k + integer(psb_epk_), intent(in) :: idx + integer(psb_epk_), intent(in) :: nx,ny,nz + integer(psb_mpk_), intent(in), optional :: base - integer(psb_lpk_) :: coords(3) + integer(psb_epk_) :: coords(3) call idx2ijk(coords,idx,[nx,ny,nz],base) @@ -249,14 +253,14 @@ contains end subroutine lidx2lijk3d subroutine lidx2lijk2d(i,j,idx,nx,ny,base) - use psb_base_mod, only : psb_ipk_, psb_lpk_ + use psb_base_mod, only : psb_ipk_, psb_lpk_, psb_mpk_, psb_epk_ implicit none - integer(psb_lpk_), intent(out) :: i,j - integer(psb_lpk_), intent(in) :: idx - integer(psb_lpk_), intent(in) :: nx,ny - integer(psb_ipk_), intent(in), optional :: base + integer(psb_epk_), intent(out) :: i,j + integer(psb_epk_), intent(in) :: idx + integer(psb_epk_), intent(in) :: nx,ny + integer(psb_mpk_), intent(in), optional :: base - integer(psb_lpk_) :: coords(2) + integer(psb_epk_) :: coords(2) call idx2ijk(coords,idx,[nx,ny],base) @@ -278,15 +282,15 @@ contains ! ijk2idx(i,j,k) = idx ! idx = idx + 1 subroutine lidx2lijkv(coords,idx,dims,base) - use psb_base_mod, only : psb_ipk_, psb_lpk_ + use psb_base_mod, only : psb_ipk_, psb_lpk_, psb_mpk_, psb_epk_ implicit none - integer(psb_lpk_), intent(out) :: coords(:) - integer(psb_lpk_), intent(in) :: idx - integer(psb_lpk_), intent(in) :: dims(:) - integer(psb_ipk_), intent(in), optional :: base + integer(psb_epk_), intent(out) :: coords(:) + integer(psb_epk_), intent(in) :: idx + integer(psb_epk_), intent(in) :: dims(:) + integer(psb_mpk_), intent(in), optional :: base - integer(psb_lpk_) :: base_, idx_ - integer(psb_lpk_) :: i, sz + integer(psb_epk_) :: base_, idx_ + integer(psb_epk_) :: i, sz if (present(base)) then base_ = base else @@ -313,7 +317,6 @@ contains end do end subroutine lidx2lijkv - ! ! Given a triple (I,J,K) and the domain size (NX,NY,NZ) ! compute the global index IDX @@ -327,13 +330,13 @@ contains ! ijk2idx(i,j,k) = idx ! idx = idx + 1 subroutine ijk2idxv(idx,coords,dims,base) - use psb_base_mod, only : psb_ipk_ + use psb_base_mod, only : psb_ipk_, psb_lpk_, psb_mpk_, psb_epk_ implicit none - integer(psb_ipk_), intent(in) :: coords(:),dims(:) - integer(psb_ipk_), intent(out) :: idx - integer(psb_ipk_), intent(in), optional :: base + integer(psb_mpk_), intent(in) :: coords(:),dims(:) + integer(psb_mpk_), intent(out) :: idx + integer(psb_mpk_), intent(in), optional :: base - integer(psb_ipk_) :: base_, i, sz + integer(psb_mpk_) :: base_, i, sz if (present(base)) then base_ = base else @@ -366,35 +369,35 @@ contains ! ijk2idx(i,j,k) = idx ! idx = idx + 1 subroutine ijk2idx3d(idx,i,j,k,nx,ny,nz,base) - use psb_base_mod, only : psb_ipk_ + use psb_base_mod, only : psb_ipk_, psb_lpk_, psb_mpk_, psb_epk_ implicit none - integer(psb_ipk_), intent(out) :: idx - integer(psb_ipk_), intent(in) :: i,j,k,nx,ny,nz - integer(psb_ipk_), intent(in), optional :: base + integer(psb_mpk_), intent(out) :: idx + integer(psb_mpk_), intent(in) :: i,j,k,nx,ny,nz + integer(psb_mpk_), intent(in), optional :: base ! idx = ((i-base_)*nz*ny + (j-base_)*nz + k - base_) + base_ call ijk2idx(idx,[i,j,k],[nx,ny,nz],base) end subroutine ijk2idx3d subroutine ijk2idx2d(idx,i,j,nx,ny,base) - use psb_base_mod, only : psb_ipk_ + use psb_base_mod, only : psb_ipk_, psb_lpk_, psb_mpk_, psb_epk_ implicit none - integer(psb_ipk_), intent(out) :: idx - integer(psb_ipk_), intent(in) :: i,j,nx,ny - integer(psb_ipk_), intent(in), optional :: base + integer(psb_mpk_), intent(out) :: idx + integer(psb_mpk_), intent(in) :: i,j,nx,ny + integer(psb_mpk_), intent(in), optional :: base ! idx = ((i-base_)*ny + (j-base_) + base_ call ijk2idx(idx,[i,j],[nx,ny],base) end subroutine ijk2idx2d subroutine ijk2lidxv(idx,coords,dims,base) - use psb_base_mod, only : psb_ipk_, psb_lpk_ + use psb_base_mod, only : psb_ipk_, psb_lpk_, psb_mpk_, psb_epk_ implicit none - integer(psb_ipk_), intent(in) :: coords(:),dims(:) - integer(psb_lpk_), intent(out) :: idx - integer(psb_ipk_), intent(in), optional :: base + integer(psb_mpk_), intent(in) :: coords(:),dims(:) + integer(psb_epk_), intent(out) :: idx + integer(psb_mpk_), intent(in), optional :: base - integer(psb_ipk_) :: base_, i, sz + integer(psb_mpk_) :: base_, i, sz if (present(base)) then base_ = base else @@ -427,22 +430,22 @@ contains ! ijk2idx(i,j,k) = idx ! idx = idx + 1 subroutine ijk2lidx3d(idx,i,j,k,nx,ny,nz,base) - use psb_base_mod, only : psb_ipk_, psb_lpk_ + use psb_base_mod, only : psb_ipk_, psb_lpk_, psb_mpk_, psb_epk_ implicit none - integer(psb_lpk_), intent(out) :: idx - integer(psb_ipk_), intent(in) :: i,j,k,nx,ny,nz - integer(psb_ipk_), intent(in), optional :: base + integer(psb_epk_), intent(out) :: idx + integer(psb_mpk_), intent(in) :: i,j,k,nx,ny,nz + integer(psb_mpk_), intent(in), optional :: base ! idx = ((i-base_)*nz*ny + (j-base_)*nz + k - base_) + base_ call ijk2idx(idx,[i,j,k],[nx,ny,nz],base) end subroutine ijk2lidx3d subroutine ijk2lidx2d(idx,i,j,nx,ny,base) - use psb_base_mod, only : psb_ipk_, psb_lpk_ + use psb_base_mod, only : psb_ipk_, psb_lpk_, psb_mpk_, psb_epk_ implicit none - integer(psb_lpk_), intent(out) :: idx - integer(psb_ipk_), intent(in) :: i,j,nx,ny - integer(psb_ipk_), intent(in), optional :: base + integer(psb_epk_), intent(out) :: idx + integer(psb_mpk_), intent(in) :: i,j,nx,ny + integer(psb_mpk_), intent(in), optional :: base ! idx = ((i-base_)*ny + (j-base_) + base_ call ijk2idx(idx,[i,j],[nx,ny],base) @@ -450,13 +453,13 @@ contains subroutine lijk2lidxv(idx,coords,dims,base) - use psb_base_mod, only : psb_ipk_, psb_lpk_ + use psb_base_mod, only : psb_ipk_, psb_lpk_, psb_mpk_, psb_epk_ implicit none - integer(psb_lpk_), intent(in) :: coords(:),dims(:) - integer(psb_lpk_), intent(out) :: idx - integer(psb_ipk_), intent(in), optional :: base + integer(psb_epk_), intent(in) :: coords(:),dims(:) + integer(psb_epk_), intent(out) :: idx + integer(psb_mpk_), intent(in), optional :: base - integer(psb_lpk_) :: base_, i, sz + integer(psb_epk_) :: base_, i, sz if (present(base)) then base_ = base else @@ -489,27 +492,26 @@ contains ! ijk2idx(i,j,k) = idx ! idx = idx + 1 subroutine lijk2lidx3d(idx,i,j,k,nx,ny,nz,base) - use psb_base_mod, only : psb_ipk_, psb_lpk_ + use psb_base_mod, only : psb_ipk_, psb_lpk_, psb_mpk_, psb_epk_ implicit none - integer(psb_lpk_), intent(out) :: idx - integer(psb_lpk_), intent(in) :: i,j,k,nx,ny,nz - integer(psb_ipk_), intent(in), optional :: base + integer(psb_epk_), intent(out) :: idx + integer(psb_epk_), intent(in) :: i,j,k,nx,ny,nz + integer(psb_mpk_), intent(in), optional :: base ! idx = ((i-base_)*nz*ny + (j-base_)*nz + k - base_) + base_ call ijk2idx(idx,[i,j,k],[nx,ny,nz],base) end subroutine lijk2lidx3d subroutine lijk2lidx2d(idx,i,j,nx,ny,base) - use psb_base_mod, only : psb_ipk_, psb_lpk_ + use psb_base_mod, only : psb_ipk_, psb_lpk_, psb_mpk_, psb_epk_ implicit none - integer(psb_lpk_), intent(out) :: idx - integer(psb_lpk_), intent(in) :: i,j,nx,ny - integer(psb_ipk_), intent(in), optional :: base + integer(psb_epk_), intent(out) :: idx + integer(psb_epk_), intent(in) :: i,j,nx,ny + integer(psb_mpk_), intent(in), optional :: base ! idx = ((i-base_)*ny + (j-base_) + base_ call ijk2idx(idx,[i,j],[nx,ny],base) end subroutine lijk2lidx2d - ! ! dist1Didx @@ -523,7 +525,7 @@ contains ! V(P+1) : first index owned by process P+1 ! subroutine dist1Didx(v,n,np,base) - use psb_base_mod, only : psb_ipk_ + use psb_base_mod, only : psb_ipk_, psb_lpk_, psb_mpk_, psb_epk_ implicit none integer(psb_ipk_), intent(out) :: v(:) integer(psb_ipk_), intent(in) :: n, np