diff --git a/base/modules/Makefile b/base/modules/Makefile index 7b448939..0e2f8987 100644 --- a/base/modules/Makefile +++ b/base/modules/Makefile @@ -6,7 +6,7 @@ UTIL_MODS = psb_string_mod.o psb_desc_const_mod.o psb_indx_map_mod.o\ psb_gen_block_map_mod.o psb_list_map_mod.o psb_repl_map_mod.o\ psb_glist_map_mod.o psb_hash_map_mod.o \ psb_desc_mod.o psb_sort_mod.o \ - psb_s_serial_mod.o psb_d_serial_mod.o psb_c_serial_mod.o psb_z_serial_mod.o + psb_s_serial_mod.o psb_d_serial_mod.o psb_c_serial_mod.o psb_z_serial_mod.o \ psb_serial_mod.o \ psb_cd_tools_mod.o psb_i_tools_mod.o psb_s_tools_mod.o psb_d_tools_mod.o\ psb_c_tools_mod.o psb_z_tools_mod.o psb_tools_mod.o \ @@ -27,7 +27,7 @@ UTIL_MODS = psb_string_mod.o psb_desc_const_mod.o psb_indx_map_mod.o\ psi_mod.o psi_i_mod.o psi_s_mod.o psi_d_mod.o psi_c_mod.o psi_z_mod.o\ psb_ip_reord_mod.o\ psb_i_sort_mod.o psb_s_sort_mod.o psb_d_sort_mod.o \ - psb_c_sort_mod.o psb_z_sort_mod.o + psb_c_sort_mod.o psb_z_sort_mod.o \ psb_check_mod.o psb_hash_mod.o\ psb_base_mat_mod.o psb_mat_mod.o\ psb_s_base_mat_mod.o psb_s_csr_mat_mod.o psb_s_csc_mat_mod.o psb_s_mat_mod.o \ diff --git a/base/modules/psb_c_sort_mod.f90 b/base/modules/psb_c_sort_mod.f90 index 35420672..967fa151 100644 --- a/base/modules/psb_c_sort_mod.f90 +++ b/base/modules/psb_c_sort_mod.f90 @@ -108,83 +108,32 @@ module psb_c_sort_mod end interface psb_hsort - interface psb_howmany_heap - function psb_c_howmany(heap) result(res) - import - class(psb_c_heap), intent(in) :: heap - integer(psb_ipk_) :: res - end function psb_c_howmany - function psb_c_idx_howmany(heap) result(res) - import - class(psb_c_idx_heap), intent(in) :: heap - integer(psb_ipk_) :: res - end function psb_c_idx_howmany - end interface psb_howmany_heap - - - interface psb_init_heap - subroutine psb_c_init_heap(heap,info,dir) - import - class(psb_c_heap), intent(inout) :: heap - integer(psb_ipk_), intent(out) :: info - integer(psb_ipk_), intent(in), optional :: dir - end subroutine psb_c_init_heap - subroutine psb_c_idx_init_heap(heap,info,dir) - import - class(psb_c_idx_heap), intent(inout) :: heap - integer(psb_ipk_), intent(out) :: info - integer(psb_ipk_), intent(in), optional :: dir - end subroutine psb_c_idx_init_heap - end interface psb_init_heap - - - interface psb_dump_heap - subroutine psb_c_dump_heap(iout,heap,info) - import - class(psb_c_heap), intent(in) :: heap - integer(psb_ipk_), intent(out) :: info - integer(psb_ipk_), intent(in) :: iout - end subroutine psb_c_dump_heap - subroutine psb_dump_c_idx_heap(iout,heap,info) - import - class(psb_c_idx_heap), intent(in) :: heap - integer(psb_ipk_), intent(out) :: info - integer(psb_ipk_), intent(in) :: iout - end subroutine psb_dump_c_idx_heap - end interface psb_dump_heap - - - interface psb_insert_heap - subroutine psb_c_insert_heap(key,heap,info) - import - complex(psb_spk_), intent(in) :: key - class(psb_c_heap), intent(inout) :: heap - integer(psb_ipk_), intent(out) :: info - end subroutine psb_c_insert_heap - subroutine psb_c_idx_insert_heap(key,index,heap,info) - import - complex(psb_spk_), intent(in) :: key - integer(psb_ipk_), intent(in) :: index - class(psb_c_idx_heap), intent(inout) :: heap - integer(psb_ipk_), intent(out) :: info - end subroutine psb_c_idx_insert_heap - end interface psb_insert_heap - - interface psb_heap_get_first - subroutine psb_c_heap_get_first(key,heap,info) - import - class(psb_c_heap), intent(inout) :: heap - complex(psb_spk_), intent(out) :: key - integer(psb_ipk_), intent(out) :: info - end subroutine psb_c_heap_get_first - subroutine psb_c_idx_heap_get_first(key,index,heap,info) - import - class(psb_c_idx_heap), intent(inout) :: heap - complex(psb_spk_), intent(out) :: key - integer(psb_ipk_), intent(out) :: index - integer(psb_ipk_), intent(out) :: info - end subroutine psb_c_idx_heap_get_first - end interface psb_heap_get_first +!!$ interface !psb_howmany_heap +!!$ module procedure psb_c_howmany, psb_c_idx_howmany +!!$ end interface +!!$ +!!$ +!!$ interface !psb_init_heap +!!$ module procedure psb_c_init_heap, psb_c_idx_init_heap +!!$ end interface +!!$ +!!$ +!!$ interface !psb_dump_heap +!!$ module procedure psb_c_dump_heap, psb_dump_c_idx_heap +!!$ end interface +!!$ +!!$ +!!$ interface !psb_insert_heap +!!$ module procedure psb_c_insert_heap, psb_c_idx_insert_heap +!!$ end interface +!!$ +!!$ interface !psb_heap_get_first +!!$ module procedure psb_c_heap_get_first, psb_c_idx_heap_get_first +!!$ end interface +!!$ +!!$ interface !psb_free_heap +!!$ module procedure psb_free_c_heap, psb_free_c_idx_heap +!!$ end interface interface subroutine psi_c_insert_heap(key,last,heap,dir,info) @@ -392,11 +341,6 @@ module psb_c_sort_mod end subroutine psi_caqsr_dw end interface - - interface psb_free_heap - module procedure psb_free_c_heap, psb_free_c_idx_heap - end interface psb_free_heap - contains subroutine psb_c_init_heap(heap,info,dir) @@ -428,7 +372,7 @@ contains function psb_c_howmany(heap) result(res) implicit none - class(psb_scomplex_heap), intent(in) :: heap + class(psb_c_heap), intent(in) :: heap integer(psb_ipk_) :: res res = heap%last end function psb_c_howmany @@ -437,7 +381,7 @@ contains use psb_realloc_mod, only : psb_ensure_size implicit none - complex(@FKIND), intent(in) :: key + complex(psb_spk_), intent(in) :: key class(psb_c_heap), intent(inout) :: heap integer(psb_ipk_), intent(out) :: info @@ -454,7 +398,7 @@ contains info = -5 return end if - call psi_c_insert_heap(key,index,& + call psi_c_insert_heap(key,& & heap%last,heap%keys,heap%dir,info) return @@ -464,13 +408,13 @@ contains implicit none class(psb_c_heap), intent(inout) :: heap - integer(psb_ipk_), intent(out) :: index,info - complex(@FKIND), intent(out) :: key + integer(psb_ipk_), intent(out) :: info + complex(psb_spk_), intent(out) :: key info = psb_success_ - call psi_c_heap_get_first(key,index,& + call psi_c_heap_get_first(key,& & heap%last,heap%keys,heap%dir,info) return @@ -500,7 +444,7 @@ contains end if end subroutine psb_c_dump_heap - subroutine psb_free_c_heap(heap,info) + subroutine psb_c_free_heap(heap,info) implicit none class(psb_c_heap), intent(inout) :: heap integer(psb_ipk_), intent(out) :: info @@ -508,7 +452,7 @@ contains info=psb_success_ if (allocated(heap%keys)) deallocate(heap%keys,stat=info) - end subroutine psb_free_c_heap + end subroutine psb_c_free_heap subroutine psb_c_idx_init_heap(heap,info,dir) use psb_realloc_mod, only : psb_ensure_size @@ -540,7 +484,7 @@ contains function psb_c_idx_howmany(heap) result(res) implicit none - class(psb_scomplex_idx_heap), intent(in) :: heap + class(psb_c_idx_heap), intent(in) :: heap integer(psb_ipk_) :: res res = heap%last end function psb_c_idx_howmany @@ -549,7 +493,7 @@ contains use psb_realloc_mod, only : psb_ensure_size implicit none - complex(@FKIND), intent(in) :: key + complex(psb_spk_), intent(in) :: key integer(psb_ipk_), intent(in) :: index class(psb_c_idx_heap), intent(inout) :: heap integer(psb_ipk_), intent(out) :: info @@ -580,7 +524,7 @@ contains class(psb_c_idx_heap), intent(inout) :: heap integer(psb_ipk_), intent(out) :: index,info - complex(@FKIND), intent(out) :: key + complex(psb_spk_), intent(out) :: key info = psb_success_ @@ -619,7 +563,7 @@ contains end if end subroutine psb_c_idx_dump_heap - subroutine psb_free_c_idx_heap(heap,info) + subroutine psb_c_idx_free_heap(heap,info) implicit none class(psb_c_idx_heap), intent(inout) :: heap integer(psb_ipk_), intent(out) :: info @@ -628,6 +572,6 @@ contains if (allocated(heap%keys)) deallocate(heap%keys,stat=info) if ((info == psb_success_).and.(allocated(heap%idxs))) deallocate(heap%idxs,stat=info) - end subroutine psb_free_c_idx_heap + end subroutine psb_c_idx_free_heap end module psb_c_sort_mod diff --git a/base/modules/psb_d_sort_mod.f90 b/base/modules/psb_d_sort_mod.f90 index 6bab1d27..4b2b86b5 100644 --- a/base/modules/psb_d_sort_mod.f90 +++ b/base/modules/psb_d_sort_mod.f90 @@ -108,83 +108,32 @@ module psb_d_sort_mod end interface psb_hsort - interface psb_howmany_heap - function psb_d_howmany(heap) result(res) - import - class(psb_d_heap), intent(in) :: heap - integer(psb_ipk_) :: res - end function psb_d_howmany - function psb_d_idx_howmany(heap) result(res) - import - class(psb_d_idx_heap), intent(in) :: heap - integer(psb_ipk_) :: res - end function psb_d_idx_howmany - end interface psb_howmany_heap - - - interface psb_init_heap - subroutine psb_d_init_heap(heap,info,dir) - import - class(psb_d_heap), intent(inout) :: heap - integer(psb_ipk_), intent(out) :: info - integer(psb_ipk_), intent(in), optional :: dir - end subroutine psb_d_init_heap - subroutine psb_d_idx_init_heap(heap,info,dir) - import - class(psb_d_idx_heap), intent(inout) :: heap - integer(psb_ipk_), intent(out) :: info - integer(psb_ipk_), intent(in), optional :: dir - end subroutine psb_d_idx_init_heap - end interface psb_init_heap - - - interface psb_dump_heap - subroutine psb_d_dump_heap(iout,heap,info) - import - class(psb_d_heap), intent(in) :: heap - integer(psb_ipk_), intent(out) :: info - integer(psb_ipk_), intent(in) :: iout - end subroutine psb_d_dump_heap - subroutine psb_dump_d_idx_heap(iout,heap,info) - import - class(psb_d_idx_heap), intent(in) :: heap - integer(psb_ipk_), intent(out) :: info - integer(psb_ipk_), intent(in) :: iout - end subroutine psb_dump_d_idx_heap - end interface psb_dump_heap - - - interface psb_insert_heap - subroutine psb_d_insert_heap(key,heap,info) - import - real(psb_dpk_), intent(in) :: key - class(psb_d_heap), intent(inout) :: heap - integer(psb_ipk_), intent(out) :: info - end subroutine psb_d_insert_heap - subroutine psb_d_idx_insert_heap(key,index,heap,info) - import - real(psb_dpk_), intent(in) :: key - integer(psb_ipk_), intent(in) :: index - class(psb_d_idx_heap), intent(inout) :: heap - integer(psb_ipk_), intent(out) :: info - end subroutine psb_d_idx_insert_heap - end interface psb_insert_heap - - interface psb_heap_get_first - subroutine psb_d_heap_get_first(key,heap,info) - import - class(psb_d_heap), intent(inout) :: heap - real(psb_dpk_), intent(out) :: key - integer(psb_ipk_), intent(out) :: info - end subroutine psb_d_heap_get_first - subroutine psb_d_idx_heap_get_first(key,index,heap,info) - import - class(psb_d_idx_heap), intent(inout) :: heap - real(psb_dpk_), intent(out) :: key - integer(psb_ipk_), intent(out) :: index - integer(psb_ipk_), intent(out) :: info - end subroutine psb_d_idx_heap_get_first - end interface psb_heap_get_first +!!$ interface !psb_howmany_heap +!!$ module procedure psb_d_howmany, psb_d_idx_howmany +!!$ end interface +!!$ +!!$ +!!$ interface !psb_init_heap +!!$ module procedure psb_d_init_heap, psb_d_idx_init_heap +!!$ end interface +!!$ +!!$ +!!$ interface !psb_dump_heap +!!$ module procedure psb_d_dump_heap, psb_dump_d_idx_heap +!!$ end interface +!!$ +!!$ +!!$ interface !psb_insert_heap +!!$ module procedure psb_d_insert_heap, psb_d_idx_insert_heap +!!$ end interface +!!$ +!!$ interface !psb_heap_get_first +!!$ module procedure psb_d_heap_get_first, psb_d_idx_heap_get_first +!!$ end interface +!!$ +!!$ interface !psb_free_heap +!!$ module procedure psb_free_d_heap, psb_free_d_idx_heap +!!$ end interface interface subroutine psi_d_insert_heap(key,last,heap,dir,info) @@ -348,11 +297,6 @@ module psb_d_sort_mod end subroutine psi_daqsr_dw end interface - - interface psb_free_heap - module procedure psb_free_d_heap, psb_free_d_idx_heap - end interface psb_free_heap - contains subroutine psb_d_init_heap(heap,info,dir) @@ -384,7 +328,7 @@ contains function psb_d_howmany(heap) result(res) implicit none - class(psb_scomplex_heap), intent(in) :: heap + class(psb_d_heap), intent(in) :: heap integer(psb_ipk_) :: res res = heap%last end function psb_d_howmany @@ -393,7 +337,7 @@ contains use psb_realloc_mod, only : psb_ensure_size implicit none - real(@FKIND), intent(in) :: key + real(psb_dpk_), intent(in) :: key class(psb_d_heap), intent(inout) :: heap integer(psb_ipk_), intent(out) :: info @@ -410,7 +354,7 @@ contains info = -5 return end if - call psi_d_insert_heap(key,index,& + call psi_d_insert_heap(key,& & heap%last,heap%keys,heap%dir,info) return @@ -420,13 +364,13 @@ contains implicit none class(psb_d_heap), intent(inout) :: heap - integer(psb_ipk_), intent(out) :: index,info - real(@FKIND), intent(out) :: key + integer(psb_ipk_), intent(out) :: info + real(psb_dpk_), intent(out) :: key info = psb_success_ - call psi_d_heap_get_first(key,index,& + call psi_d_heap_get_first(key,& & heap%last,heap%keys,heap%dir,info) return @@ -456,7 +400,7 @@ contains end if end subroutine psb_d_dump_heap - subroutine psb_free_d_heap(heap,info) + subroutine psb_d_free_heap(heap,info) implicit none class(psb_d_heap), intent(inout) :: heap integer(psb_ipk_), intent(out) :: info @@ -464,7 +408,7 @@ contains info=psb_success_ if (allocated(heap%keys)) deallocate(heap%keys,stat=info) - end subroutine psb_free_d_heap + end subroutine psb_d_free_heap subroutine psb_d_idx_init_heap(heap,info,dir) use psb_realloc_mod, only : psb_ensure_size @@ -496,7 +440,7 @@ contains function psb_d_idx_howmany(heap) result(res) implicit none - class(psb_scomplex_idx_heap), intent(in) :: heap + class(psb_d_idx_heap), intent(in) :: heap integer(psb_ipk_) :: res res = heap%last end function psb_d_idx_howmany @@ -505,7 +449,7 @@ contains use psb_realloc_mod, only : psb_ensure_size implicit none - real(@FKIND), intent(in) :: key + real(psb_dpk_), intent(in) :: key integer(psb_ipk_), intent(in) :: index class(psb_d_idx_heap), intent(inout) :: heap integer(psb_ipk_), intent(out) :: info @@ -536,7 +480,7 @@ contains class(psb_d_idx_heap), intent(inout) :: heap integer(psb_ipk_), intent(out) :: index,info - real(@FKIND), intent(out) :: key + real(psb_dpk_), intent(out) :: key info = psb_success_ @@ -575,7 +519,7 @@ contains end if end subroutine psb_d_idx_dump_heap - subroutine psb_free_d_idx_heap(heap,info) + subroutine psb_d_idx_free_heap(heap,info) implicit none class(psb_d_idx_heap), intent(inout) :: heap integer(psb_ipk_), intent(out) :: info @@ -584,6 +528,6 @@ contains if (allocated(heap%keys)) deallocate(heap%keys,stat=info) if ((info == psb_success_).and.(allocated(heap%idxs))) deallocate(heap%idxs,stat=info) - end subroutine psb_free_d_idx_heap + end subroutine psb_d_idx_free_heap end module psb_d_sort_mod diff --git a/base/modules/psb_i_sort_mod.f90 b/base/modules/psb_i_sort_mod.f90 index bc797ab6..06bbb095 100644 --- a/base/modules/psb_i_sort_mod.f90 +++ b/base/modules/psb_i_sort_mod.f90 @@ -149,83 +149,32 @@ module psb_i_sort_mod end interface psb_hsort - interface psb_howmany_heap - function psb_i_howmany(heap) result(res) - import - class(psb_i_heap), intent(in) :: heap - integer(psb_ipk_) :: res - end function psb_i_howmany - function psb_i_idx_howmany(heap) result(res) - import - class(psb_i_idx_heap), intent(in) :: heap - integer(psb_ipk_) :: res - end function psb_i_idx_howmany - end interface psb_howmany_heap - - - interface psb_init_heap - subroutine psb_i_init_heap(heap,info,dir) - import - class(psb_i_heap), intent(inout) :: heap - integer(psb_ipk_), intent(out) :: info - integer(psb_ipk_), intent(in), optional :: dir - end subroutine psb_i_init_heap - subroutine psb_i_idx_init_heap(heap,info,dir) - import - class(psb_i_idx_heap), intent(inout) :: heap - integer(psb_ipk_), intent(out) :: info - integer(psb_ipk_), intent(in), optional :: dir - end subroutine psb_i_idx_init_heap - end interface psb_init_heap - - - interface psb_dump_heap - subroutine psb_i_dump_heap(iout,heap,info) - import - class(psb_i_heap), intent(in) :: heap - integer(psb_ipk_), intent(out) :: info - integer(psb_ipk_), intent(in) :: iout - end subroutine psb_i_dump_heap - subroutine psb_dump_i_idx_heap(iout,heap,info) - import - class(psb_i_idx_heap), intent(in) :: heap - integer(psb_ipk_), intent(out) :: info - integer(psb_ipk_), intent(in) :: iout - end subroutine psb_dump_i_idx_heap - end interface psb_dump_heap - - - interface psb_insert_heap - subroutine psb_i_insert_heap(key,heap,info) - import - integer(psb_ipk_), intent(in) :: key - class(psb_i_heap), intent(inout) :: heap - integer(psb_ipk_), intent(out) :: info - end subroutine psb_i_insert_heap - subroutine psb_i_idx_insert_heap(key,index,heap,info) - import - integer(psb_ipk_), intent(in) :: key - integer(psb_ipk_), intent(in) :: index - class(psb_i_idx_heap), intent(inout) :: heap - integer(psb_ipk_), intent(out) :: info - end subroutine psb_i_idx_insert_heap - end interface psb_insert_heap - - interface psb_heap_get_first - subroutine psb_i_heap_get_first(key,heap,info) - import - class(psb_i_heap), intent(inout) :: heap - integer(psb_ipk_), intent(out) :: key - integer(psb_ipk_), intent(out) :: info - end subroutine psb_i_heap_get_first - subroutine psb_i_idx_heap_get_first(key,index,heap,info) - import - class(psb_i_idx_heap), intent(inout) :: heap - integer(psb_ipk_), intent(out) :: key - integer(psb_ipk_), intent(out) :: index - integer(psb_ipk_), intent(out) :: info - end subroutine psb_i_idx_heap_get_first - end interface psb_heap_get_first +!!$ interface !psb_howmany_heap +!!$ module procedure psb_i_howmany, psb_i_idx_howmany +!!$ end interface +!!$ +!!$ +!!$ interface !psb_init_heap +!!$ module procedure psb_i_init_heap, psb_i_idx_init_heap +!!$ end interface +!!$ +!!$ +!!$ interface !psb_dump_heap +!!$ module procedure psb_i_dump_heap, psb_dump_i_idx_heap +!!$ end interface +!!$ +!!$ +!!$ interface !psb_insert_heap +!!$ module procedure psb_i_insert_heap, psb_i_idx_insert_heap +!!$ end interface +!!$ +!!$ interface !psb_heap_get_first +!!$ module procedure psb_i_heap_get_first, psb_i_idx_heap_get_first +!!$ end interface +!!$ +!!$ interface !psb_free_heap +!!$ module procedure psb_free_i_heap, psb_free_i_idx_heap +!!$ end interface interface subroutine psi_i_insert_heap(key,last,heap,dir,info) @@ -389,11 +338,6 @@ module psb_i_sort_mod end subroutine psi_iaqsr_dw end interface - - interface psb_free_heap - module procedure psb_free_i_heap, psb_free_i_idx_heap - end interface psb_free_heap - contains subroutine psb_i_init_heap(heap,info,dir) @@ -425,7 +369,7 @@ contains function psb_i_howmany(heap) result(res) implicit none - class(psb_scomplex_heap), intent(in) :: heap + class(psb_i_heap), intent(in) :: heap integer(psb_ipk_) :: res res = heap%last end function psb_i_howmany @@ -434,7 +378,7 @@ contains use psb_realloc_mod, only : psb_ensure_size implicit none - integer(@FKIND), intent(in) :: key + integer(psb_ipk_), intent(in) :: key class(psb_i_heap), intent(inout) :: heap integer(psb_ipk_), intent(out) :: info @@ -451,7 +395,7 @@ contains info = -5 return end if - call psi_i_insert_heap(key,index,& + call psi_i_insert_heap(key,& & heap%last,heap%keys,heap%dir,info) return @@ -461,13 +405,13 @@ contains implicit none class(psb_i_heap), intent(inout) :: heap - integer(psb_ipk_), intent(out) :: index,info - integer(@FKIND), intent(out) :: key + integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), intent(out) :: key info = psb_success_ - call psi_i_heap_get_first(key,index,& + call psi_i_heap_get_first(key,& & heap%last,heap%keys,heap%dir,info) return @@ -497,7 +441,7 @@ contains end if end subroutine psb_i_dump_heap - subroutine psb_free_i_heap(heap,info) + subroutine psb_i_free_heap(heap,info) implicit none class(psb_i_heap), intent(inout) :: heap integer(psb_ipk_), intent(out) :: info @@ -505,7 +449,7 @@ contains info=psb_success_ if (allocated(heap%keys)) deallocate(heap%keys,stat=info) - end subroutine psb_free_i_heap + end subroutine psb_i_free_heap subroutine psb_i_idx_init_heap(heap,info,dir) use psb_realloc_mod, only : psb_ensure_size @@ -537,7 +481,7 @@ contains function psb_i_idx_howmany(heap) result(res) implicit none - class(psb_scomplex_idx_heap), intent(in) :: heap + class(psb_i_idx_heap), intent(in) :: heap integer(psb_ipk_) :: res res = heap%last end function psb_i_idx_howmany @@ -546,7 +490,7 @@ contains use psb_realloc_mod, only : psb_ensure_size implicit none - integer(@FKIND), intent(in) :: key + integer(psb_ipk_), intent(in) :: key integer(psb_ipk_), intent(in) :: index class(psb_i_idx_heap), intent(inout) :: heap integer(psb_ipk_), intent(out) :: info @@ -577,7 +521,7 @@ contains class(psb_i_idx_heap), intent(inout) :: heap integer(psb_ipk_), intent(out) :: index,info - integer(@FKIND), intent(out) :: key + integer(psb_ipk_), intent(out) :: key info = psb_success_ @@ -616,7 +560,7 @@ contains end if end subroutine psb_i_idx_dump_heap - subroutine psb_free_i_idx_heap(heap,info) + subroutine psb_i_idx_free_heap(heap,info) implicit none class(psb_i_idx_heap), intent(inout) :: heap integer(psb_ipk_), intent(out) :: info @@ -625,6 +569,6 @@ contains if (allocated(heap%keys)) deallocate(heap%keys,stat=info) if ((info == psb_success_).and.(allocated(heap%idxs))) deallocate(heap%idxs,stat=info) - end subroutine psb_free_i_idx_heap + end subroutine psb_i_idx_free_heap end module psb_i_sort_mod diff --git a/base/modules/psb_s_sort_mod.f90 b/base/modules/psb_s_sort_mod.f90 index 96393277..a37a4a60 100644 --- a/base/modules/psb_s_sort_mod.f90 +++ b/base/modules/psb_s_sort_mod.f90 @@ -108,83 +108,32 @@ module psb_s_sort_mod end interface psb_hsort - interface psb_howmany_heap - function psb_s_howmany(heap) result(res) - import - class(psb_s_heap), intent(in) :: heap - integer(psb_ipk_) :: res - end function psb_s_howmany - function psb_s_idx_howmany(heap) result(res) - import - class(psb_s_idx_heap), intent(in) :: heap - integer(psb_ipk_) :: res - end function psb_s_idx_howmany - end interface psb_howmany_heap - - - interface psb_init_heap - subroutine psb_s_init_heap(heap,info,dir) - import - class(psb_s_heap), intent(inout) :: heap - integer(psb_ipk_), intent(out) :: info - integer(psb_ipk_), intent(in), optional :: dir - end subroutine psb_s_init_heap - subroutine psb_s_idx_init_heap(heap,info,dir) - import - class(psb_s_idx_heap), intent(inout) :: heap - integer(psb_ipk_), intent(out) :: info - integer(psb_ipk_), intent(in), optional :: dir - end subroutine psb_s_idx_init_heap - end interface psb_init_heap - - - interface psb_dump_heap - subroutine psb_s_dump_heap(iout,heap,info) - import - class(psb_s_heap), intent(in) :: heap - integer(psb_ipk_), intent(out) :: info - integer(psb_ipk_), intent(in) :: iout - end subroutine psb_s_dump_heap - subroutine psb_dump_s_idx_heap(iout,heap,info) - import - class(psb_s_idx_heap), intent(in) :: heap - integer(psb_ipk_), intent(out) :: info - integer(psb_ipk_), intent(in) :: iout - end subroutine psb_dump_s_idx_heap - end interface psb_dump_heap - - - interface psb_insert_heap - subroutine psb_s_insert_heap(key,heap,info) - import - real(psb_spk_), intent(in) :: key - class(psb_s_heap), intent(inout) :: heap - integer(psb_ipk_), intent(out) :: info - end subroutine psb_s_insert_heap - subroutine psb_s_idx_insert_heap(key,index,heap,info) - import - real(psb_spk_), intent(in) :: key - integer(psb_ipk_), intent(in) :: index - class(psb_s_idx_heap), intent(inout) :: heap - integer(psb_ipk_), intent(out) :: info - end subroutine psb_s_idx_insert_heap - end interface psb_insert_heap - - interface psb_heap_get_first - subroutine psb_s_heap_get_first(key,heap,info) - import - class(psb_s_heap), intent(inout) :: heap - real(psb_spk_), intent(out) :: key - integer(psb_ipk_), intent(out) :: info - end subroutine psb_s_heap_get_first - subroutine psb_s_idx_heap_get_first(key,index,heap,info) - import - class(psb_s_idx_heap), intent(inout) :: heap - real(psb_spk_), intent(out) :: key - integer(psb_ipk_), intent(out) :: index - integer(psb_ipk_), intent(out) :: info - end subroutine psb_s_idx_heap_get_first - end interface psb_heap_get_first +!!$ interface !psb_howmany_heap +!!$ module procedure psb_s_howmany, psb_s_idx_howmany +!!$ end interface +!!$ +!!$ +!!$ interface !psb_init_heap +!!$ module procedure psb_s_init_heap, psb_s_idx_init_heap +!!$ end interface +!!$ +!!$ +!!$ interface !psb_dump_heap +!!$ module procedure psb_s_dump_heap, psb_dump_s_idx_heap +!!$ end interface +!!$ +!!$ +!!$ interface !psb_insert_heap +!!$ module procedure psb_s_insert_heap, psb_s_idx_insert_heap +!!$ end interface +!!$ +!!$ interface !psb_heap_get_first +!!$ module procedure psb_s_heap_get_first, psb_s_idx_heap_get_first +!!$ end interface +!!$ +!!$ interface !psb_free_heap +!!$ module procedure psb_free_s_heap, psb_free_s_idx_heap +!!$ end interface interface subroutine psi_s_insert_heap(key,last,heap,dir,info) @@ -348,11 +297,6 @@ module psb_s_sort_mod end subroutine psi_saqsr_dw end interface - - interface psb_free_heap - module procedure psb_free_s_heap, psb_free_s_idx_heap - end interface psb_free_heap - contains subroutine psb_s_init_heap(heap,info,dir) @@ -384,7 +328,7 @@ contains function psb_s_howmany(heap) result(res) implicit none - class(psb_scomplex_heap), intent(in) :: heap + class(psb_s_heap), intent(in) :: heap integer(psb_ipk_) :: res res = heap%last end function psb_s_howmany @@ -393,7 +337,7 @@ contains use psb_realloc_mod, only : psb_ensure_size implicit none - real(@FKIND), intent(in) :: key + real(psb_spk_), intent(in) :: key class(psb_s_heap), intent(inout) :: heap integer(psb_ipk_), intent(out) :: info @@ -410,7 +354,7 @@ contains info = -5 return end if - call psi_s_insert_heap(key,index,& + call psi_s_insert_heap(key,& & heap%last,heap%keys,heap%dir,info) return @@ -420,13 +364,13 @@ contains implicit none class(psb_s_heap), intent(inout) :: heap - integer(psb_ipk_), intent(out) :: index,info - real(@FKIND), intent(out) :: key + integer(psb_ipk_), intent(out) :: info + real(psb_spk_), intent(out) :: key info = psb_success_ - call psi_s_heap_get_first(key,index,& + call psi_s_heap_get_first(key,& & heap%last,heap%keys,heap%dir,info) return @@ -456,7 +400,7 @@ contains end if end subroutine psb_s_dump_heap - subroutine psb_free_s_heap(heap,info) + subroutine psb_s_free_heap(heap,info) implicit none class(psb_s_heap), intent(inout) :: heap integer(psb_ipk_), intent(out) :: info @@ -464,7 +408,7 @@ contains info=psb_success_ if (allocated(heap%keys)) deallocate(heap%keys,stat=info) - end subroutine psb_free_s_heap + end subroutine psb_s_free_heap subroutine psb_s_idx_init_heap(heap,info,dir) use psb_realloc_mod, only : psb_ensure_size @@ -496,7 +440,7 @@ contains function psb_s_idx_howmany(heap) result(res) implicit none - class(psb_scomplex_idx_heap), intent(in) :: heap + class(psb_s_idx_heap), intent(in) :: heap integer(psb_ipk_) :: res res = heap%last end function psb_s_idx_howmany @@ -505,7 +449,7 @@ contains use psb_realloc_mod, only : psb_ensure_size implicit none - real(@FKIND), intent(in) :: key + real(psb_spk_), intent(in) :: key integer(psb_ipk_), intent(in) :: index class(psb_s_idx_heap), intent(inout) :: heap integer(psb_ipk_), intent(out) :: info @@ -536,7 +480,7 @@ contains class(psb_s_idx_heap), intent(inout) :: heap integer(psb_ipk_), intent(out) :: index,info - real(@FKIND), intent(out) :: key + real(psb_spk_), intent(out) :: key info = psb_success_ @@ -575,7 +519,7 @@ contains end if end subroutine psb_s_idx_dump_heap - subroutine psb_free_s_idx_heap(heap,info) + subroutine psb_s_idx_free_heap(heap,info) implicit none class(psb_s_idx_heap), intent(inout) :: heap integer(psb_ipk_), intent(out) :: info @@ -584,6 +528,6 @@ contains if (allocated(heap%keys)) deallocate(heap%keys,stat=info) if ((info == psb_success_).and.(allocated(heap%idxs))) deallocate(heap%idxs,stat=info) - end subroutine psb_free_s_idx_heap + end subroutine psb_s_idx_free_heap end module psb_s_sort_mod diff --git a/base/modules/psb_z_sort_mod.f90 b/base/modules/psb_z_sort_mod.f90 index 9dded24b..72281eca 100644 --- a/base/modules/psb_z_sort_mod.f90 +++ b/base/modules/psb_z_sort_mod.f90 @@ -108,83 +108,32 @@ module psb_z_sort_mod end interface psb_hsort - interface psb_howmany_heap - function psb_z_howmany(heap) result(res) - import - class(psb_z_heap), intent(in) :: heap - integer(psb_ipk_) :: res - end function psb_z_howmany - function psb_z_idx_howmany(heap) result(res) - import - class(psb_z_idx_heap), intent(in) :: heap - integer(psb_ipk_) :: res - end function psb_z_idx_howmany - end interface psb_howmany_heap - - - interface psb_init_heap - subroutine psb_z_init_heap(heap,info,dir) - import - class(psb_z_heap), intent(inout) :: heap - integer(psb_ipk_), intent(out) :: info - integer(psb_ipk_), intent(in), optional :: dir - end subroutine psb_z_init_heap - subroutine psb_z_idx_init_heap(heap,info,dir) - import - class(psb_z_idx_heap), intent(inout) :: heap - integer(psb_ipk_), intent(out) :: info - integer(psb_ipk_), intent(in), optional :: dir - end subroutine psb_z_idx_init_heap - end interface psb_init_heap - - - interface psb_dump_heap - subroutine psb_z_dump_heap(iout,heap,info) - import - class(psb_z_heap), intent(in) :: heap - integer(psb_ipk_), intent(out) :: info - integer(psb_ipk_), intent(in) :: iout - end subroutine psb_z_dump_heap - subroutine psb_dump_z_idx_heap(iout,heap,info) - import - class(psb_z_idx_heap), intent(in) :: heap - integer(psb_ipk_), intent(out) :: info - integer(psb_ipk_), intent(in) :: iout - end subroutine psb_dump_z_idx_heap - end interface psb_dump_heap - - - interface psb_insert_heap - subroutine psb_z_insert_heap(key,heap,info) - import - complex(psb_dpk_), intent(in) :: key - class(psb_z_heap), intent(inout) :: heap - integer(psb_ipk_), intent(out) :: info - end subroutine psb_z_insert_heap - subroutine psb_z_idx_insert_heap(key,index,heap,info) - import - complex(psb_dpk_), intent(in) :: key - integer(psb_ipk_), intent(in) :: index - class(psb_z_idx_heap), intent(inout) :: heap - integer(psb_ipk_), intent(out) :: info - end subroutine psb_z_idx_insert_heap - end interface psb_insert_heap - - interface psb_heap_get_first - subroutine psb_z_heap_get_first(key,heap,info) - import - class(psb_z_heap), intent(inout) :: heap - complex(psb_dpk_), intent(out) :: key - integer(psb_ipk_), intent(out) :: info - end subroutine psb_z_heap_get_first - subroutine psb_z_idx_heap_get_first(key,index,heap,info) - import - class(psb_z_idx_heap), intent(inout) :: heap - complex(psb_dpk_), intent(out) :: key - integer(psb_ipk_), intent(out) :: index - integer(psb_ipk_), intent(out) :: info - end subroutine psb_z_idx_heap_get_first - end interface psb_heap_get_first +!!$ interface !psb_howmany_heap +!!$ module procedure psb_z_howmany, psb_z_idx_howmany +!!$ end interface +!!$ +!!$ +!!$ interface !psb_init_heap +!!$ module procedure psb_z_init_heap, psb_z_idx_init_heap +!!$ end interface +!!$ +!!$ +!!$ interface !psb_dump_heap +!!$ module procedure psb_z_dump_heap, psb_dump_z_idx_heap +!!$ end interface +!!$ +!!$ +!!$ interface !psb_insert_heap +!!$ module procedure psb_z_insert_heap, psb_z_idx_insert_heap +!!$ end interface +!!$ +!!$ interface !psb_heap_get_first +!!$ module procedure psb_z_heap_get_first, psb_z_idx_heap_get_first +!!$ end interface +!!$ +!!$ interface !psb_free_heap +!!$ module procedure psb_free_z_heap, psb_free_z_idx_heap +!!$ end interface interface subroutine psi_z_insert_heap(key,last,heap,dir,info) @@ -392,11 +341,6 @@ module psb_z_sort_mod end subroutine psi_zaqsr_dw end interface - - interface psb_free_heap - module procedure psb_free_z_heap, psb_free_z_idx_heap - end interface psb_free_heap - contains subroutine psb_z_init_heap(heap,info,dir) @@ -428,7 +372,7 @@ contains function psb_z_howmany(heap) result(res) implicit none - class(psb_scomplex_heap), intent(in) :: heap + class(psb_z_heap), intent(in) :: heap integer(psb_ipk_) :: res res = heap%last end function psb_z_howmany @@ -437,7 +381,7 @@ contains use psb_realloc_mod, only : psb_ensure_size implicit none - complex(@FKIND), intent(in) :: key + complex(psb_dpk_), intent(in) :: key class(psb_z_heap), intent(inout) :: heap integer(psb_ipk_), intent(out) :: info @@ -454,7 +398,7 @@ contains info = -5 return end if - call psi_z_insert_heap(key,index,& + call psi_z_insert_heap(key,& & heap%last,heap%keys,heap%dir,info) return @@ -464,13 +408,13 @@ contains implicit none class(psb_z_heap), intent(inout) :: heap - integer(psb_ipk_), intent(out) :: index,info - complex(@FKIND), intent(out) :: key + integer(psb_ipk_), intent(out) :: info + complex(psb_dpk_), intent(out) :: key info = psb_success_ - call psi_z_heap_get_first(key,index,& + call psi_z_heap_get_first(key,& & heap%last,heap%keys,heap%dir,info) return @@ -500,7 +444,7 @@ contains end if end subroutine psb_z_dump_heap - subroutine psb_free_z_heap(heap,info) + subroutine psb_z_free_heap(heap,info) implicit none class(psb_z_heap), intent(inout) :: heap integer(psb_ipk_), intent(out) :: info @@ -508,7 +452,7 @@ contains info=psb_success_ if (allocated(heap%keys)) deallocate(heap%keys,stat=info) - end subroutine psb_free_z_heap + end subroutine psb_z_free_heap subroutine psb_z_idx_init_heap(heap,info,dir) use psb_realloc_mod, only : psb_ensure_size @@ -540,7 +484,7 @@ contains function psb_z_idx_howmany(heap) result(res) implicit none - class(psb_scomplex_idx_heap), intent(in) :: heap + class(psb_z_idx_heap), intent(in) :: heap integer(psb_ipk_) :: res res = heap%last end function psb_z_idx_howmany @@ -549,7 +493,7 @@ contains use psb_realloc_mod, only : psb_ensure_size implicit none - complex(@FKIND), intent(in) :: key + complex(psb_dpk_), intent(in) :: key integer(psb_ipk_), intent(in) :: index class(psb_z_idx_heap), intent(inout) :: heap integer(psb_ipk_), intent(out) :: info @@ -580,7 +524,7 @@ contains class(psb_z_idx_heap), intent(inout) :: heap integer(psb_ipk_), intent(out) :: index,info - complex(@FKIND), intent(out) :: key + complex(psb_dpk_), intent(out) :: key info = psb_success_ @@ -619,7 +563,7 @@ contains end if end subroutine psb_z_idx_dump_heap - subroutine psb_free_z_idx_heap(heap,info) + subroutine psb_z_idx_free_heap(heap,info) implicit none class(psb_z_idx_heap), intent(inout) :: heap integer(psb_ipk_), intent(out) :: info @@ -628,6 +572,6 @@ contains if (allocated(heap%keys)) deallocate(heap%keys,stat=info) if ((info == psb_success_).and.(allocated(heap%idxs))) deallocate(heap%idxs,stat=info) - end subroutine psb_free_z_idx_heap + end subroutine psb_z_idx_free_heap end module psb_z_sort_mod diff --git a/base/modules/psi_c_mod.f90 b/base/modules/psi_c_mod.f90 index 4dd7d478..08acfb1c 100644 --- a/base/modules/psi_c_mod.f90 +++ b/base/modules/psi_c_mod.f90 @@ -36,7 +36,7 @@ module psi_c_mod interface psi_swapdata subroutine psi_cswapdatam(flag,n,beta,y,desc_a,work,info,data) - import :: psb_desc_type, psb_ipk_, psb_spk_, psb_c_base_vect_type + import integer(psb_ipk_), intent(in) :: flag, n integer(psb_ipk_), intent(out) :: info complex(psb_spk_) :: y(:,:), beta @@ -45,7 +45,7 @@ module psi_c_mod integer(psb_ipk_), optional :: data end subroutine psi_cswapdatam subroutine psi_cswapdatav(flag,beta,y,desc_a,work,info,data) - import :: psb_desc_type, psb_ipk_, psb_spk_, psb_c_base_vect_type + import integer(psb_ipk_), intent(in) :: flag integer(psb_ipk_), intent(out) :: info complex(psb_spk_) :: y(:), beta @@ -54,7 +54,7 @@ module psi_c_mod integer(psb_ipk_), optional :: data end subroutine psi_cswapdatav subroutine psi_cswapdata_vect(flag,beta,y,desc_a,work,info,data) - import :: psb_desc_type, psb_ipk_, psb_spk_, psb_c_base_vect_type + import integer(psb_ipk_), intent(in) :: flag integer(psb_ipk_), intent(out) :: info class(psb_c_base_vect_type) :: y @@ -65,7 +65,7 @@ module psi_c_mod end subroutine psi_cswapdata_vect subroutine psi_cswapidxm(ictxt,icomm,flag,n,beta,y,idx,& & totxch,totsnd,totrcv,work,info) - import :: psb_desc_type, psb_ipk_, psb_spk_, psb_c_base_vect_type + import integer(psb_ipk_), intent(in) :: ictxt,icomm,flag, n integer(psb_ipk_), intent(out) :: info complex(psb_spk_) :: y(:,:), beta @@ -74,7 +74,7 @@ module psi_c_mod end subroutine psi_cswapidxm subroutine psi_cswapidxv(ictxt,icomm,flag,beta,y,idx,& & totxch,totsnd,totrcv,work,info) - import :: psb_desc_type, psb_ipk_, psb_spk_, psb_c_base_vect_type + import integer(psb_ipk_), intent(in) :: ictxt,icomm,flag integer(psb_ipk_), intent(out) :: info complex(psb_spk_) :: y(:), beta @@ -82,7 +82,7 @@ module psi_c_mod integer(psb_ipk_), intent(in) :: idx(:),totxch,totsnd,totrcv end subroutine psi_cswapidxv subroutine psi_cswap_vidx_vect(iictxt,iicomm,flag,beta,y,idx,totxch,totsnd,totrcv,work,info) - import :: psb_desc_type, psb_ipk_, psb_spk_, psb_c_base_vect_type, psb_i_base_vect_type + import integer(psb_ipk_), intent(in) :: iictxt,iicomm,flag integer(psb_ipk_), intent(out) :: info class(psb_c_base_vect_type) :: y @@ -96,7 +96,7 @@ module psi_c_mod interface psi_swaptran subroutine psi_cswaptranm(flag,n,beta,y,desc_a,work,info,data) - import :: psb_desc_type, psb_ipk_, psb_spk_, psb_c_base_vect_type + import integer(psb_ipk_), intent(in) :: flag, n integer(psb_ipk_), intent(out) :: info complex(psb_spk_) :: y(:,:), beta @@ -105,7 +105,7 @@ module psi_c_mod integer(psb_ipk_), optional :: data end subroutine psi_cswaptranm subroutine psi_cswaptranv(flag,beta,y,desc_a,work,info,data) - import :: psb_desc_type, psb_ipk_, psb_spk_, psb_c_base_vect_type + import integer(psb_ipk_), intent(in) :: flag integer(psb_ipk_), intent(out) :: info complex(psb_spk_) :: y(:), beta @@ -114,7 +114,7 @@ module psi_c_mod integer(psb_ipk_), optional :: data end subroutine psi_cswaptranv subroutine psi_cswaptran_vect(flag,beta,y,desc_a,work,info,data) - import :: psb_desc_type, psb_ipk_, psb_spk_, psb_c_base_vect_type + import integer(psb_ipk_), intent(in) :: flag integer(psb_ipk_), intent(out) :: info class(psb_c_base_vect_type) :: y @@ -125,7 +125,7 @@ module psi_c_mod end subroutine psi_cswaptran_vect subroutine psi_ctranidxm(ictxt,icomm,flag,n,beta,y,idx,& & totxch,totsnd,totrcv,work,info) - import :: psb_desc_type, psb_ipk_, psb_spk_, psb_c_base_vect_type + import integer(psb_ipk_), intent(in) :: ictxt,icomm,flag, n integer(psb_ipk_), intent(out) :: info complex(psb_spk_) :: y(:,:), beta @@ -134,7 +134,7 @@ module psi_c_mod end subroutine psi_ctranidxm subroutine psi_ctranidxv(ictxt,icomm,flag,beta,y,idx,& & totxch,totsnd,totrcv,work,info) - import :: psb_desc_type, psb_ipk_, psb_spk_, psb_c_base_vect_type + import integer(psb_ipk_), intent(in) :: ictxt,icomm,flag integer(psb_ipk_), intent(out) :: info complex(psb_spk_) :: y(:), beta @@ -143,7 +143,7 @@ module psi_c_mod end subroutine psi_ctranidxv subroutine psi_ctranidx_vect(ictxt,icomm,flag,beta,y,idx,& & totxch,totsnd,totrcv,work,info) - import :: psb_desc_type, psb_ipk_, psb_spk_, psb_c_base_vect_type + import integer(psb_ipk_), intent(in) :: ictxt,icomm,flag integer(psb_ipk_), intent(out) :: info class(psb_c_base_vect_type) :: y @@ -155,21 +155,21 @@ module psi_c_mod interface psi_ovrl_upd subroutine psi_covrl_updr1(x,desc_a,update,info) - import :: psb_desc_type, psb_ipk_, psb_spk_, psb_c_base_vect_type + import complex(psb_spk_), intent(inout), target :: x(:) type(psb_desc_type), intent(in) :: desc_a integer(psb_ipk_), intent(in) :: update integer(psb_ipk_), intent(out) :: info end subroutine psi_covrl_updr1 subroutine psi_covrl_updr2(x,desc_a,update,info) - import :: psb_desc_type, psb_ipk_, psb_spk_, psb_c_base_vect_type + import complex(psb_spk_), intent(inout), target :: x(:,:) type(psb_desc_type), intent(in) :: desc_a integer(psb_ipk_), intent(in) :: update integer(psb_ipk_), intent(out) :: info end subroutine psi_covrl_updr2 subroutine psi_covrl_upd_vect(x,desc_a,update,info) - import :: psb_desc_type, psb_ipk_, psb_spk_, psb_c_base_vect_type + import class(psb_c_base_vect_type) :: x type(psb_desc_type), intent(in) :: desc_a integer(psb_ipk_), intent(in) :: update @@ -179,21 +179,21 @@ module psi_c_mod interface psi_ovrl_save subroutine psi_covrl_saver1(x,xs,desc_a,info) - import :: psb_desc_type, psb_ipk_, psb_spk_, psb_c_base_vect_type + import complex(psb_spk_), intent(inout) :: x(:) complex(psb_spk_), allocatable :: xs(:) type(psb_desc_type), intent(in) :: desc_a integer(psb_ipk_), intent(out) :: info end subroutine psi_covrl_saver1 subroutine psi_covrl_saver2(x,xs,desc_a,info) - import :: psb_desc_type, psb_ipk_, psb_spk_, psb_c_base_vect_type + import complex(psb_spk_), intent(inout) :: x(:,:) complex(psb_spk_), allocatable :: xs(:,:) type(psb_desc_type), intent(in) :: desc_a integer(psb_ipk_), intent(out) :: info end subroutine psi_covrl_saver2 subroutine psi_covrl_save_vect(x,xs,desc_a,info) - import :: psb_desc_type, psb_ipk_, psb_spk_, psb_c_base_vect_type + import class(psb_c_base_vect_type) :: x complex(psb_spk_), allocatable :: xs(:) type(psb_desc_type), intent(in) :: desc_a @@ -203,21 +203,21 @@ module psi_c_mod interface psi_ovrl_restore subroutine psi_covrl_restrr1(x,xs,desc_a,info) - import :: psb_desc_type, psb_ipk_, psb_spk_, psb_c_base_vect_type + import complex(psb_spk_), intent(inout) :: x(:) complex(psb_spk_) :: xs(:) type(psb_desc_type), intent(in) :: desc_a integer(psb_ipk_), intent(out) :: info end subroutine psi_covrl_restrr1 subroutine psi_covrl_restrr2(x,xs,desc_a,info) - import :: psb_desc_type, psb_ipk_, psb_spk_, psb_c_base_vect_type + import complex(psb_spk_), intent(inout) :: x(:,:) complex(psb_spk_) :: xs(:,:) type(psb_desc_type), intent(in) :: desc_a integer(psb_ipk_), intent(out) :: info end subroutine psi_covrl_restrr2 subroutine psi_covrl_restr_vect(x,xs,desc_a,info) - import :: psb_desc_type, psb_ipk_, psb_spk_, psb_c_base_vect_type + import class(psb_c_base_vect_type) :: x complex(psb_spk_) :: xs(:) type(psb_desc_type), intent(in) :: desc_a diff --git a/base/modules/psi_d_mod.f90 b/base/modules/psi_d_mod.f90 index 7f07fe3b..2fdfcbfe 100644 --- a/base/modules/psi_d_mod.f90 +++ b/base/modules/psi_d_mod.f90 @@ -36,7 +36,7 @@ module psi_d_mod interface psi_swapdata subroutine psi_dswapdatam(flag,n,beta,y,desc_a,work,info,data) - import :: psb_desc_type, psb_ipk_, psb_dpk_, psb_d_base_vect_type + import integer(psb_ipk_), intent(in) :: flag, n integer(psb_ipk_), intent(out) :: info real(psb_dpk_) :: y(:,:), beta @@ -45,7 +45,7 @@ module psi_d_mod integer(psb_ipk_), optional :: data end subroutine psi_dswapdatam subroutine psi_dswapdatav(flag,beta,y,desc_a,work,info,data) - import :: psb_desc_type, psb_ipk_, psb_dpk_, psb_d_base_vect_type + import integer(psb_ipk_), intent(in) :: flag integer(psb_ipk_), intent(out) :: info real(psb_dpk_) :: y(:), beta @@ -54,7 +54,7 @@ module psi_d_mod integer(psb_ipk_), optional :: data end subroutine psi_dswapdatav subroutine psi_dswapdata_vect(flag,beta,y,desc_a,work,info,data) - import :: psb_desc_type, psb_ipk_, psb_dpk_, psb_d_base_vect_type + import integer(psb_ipk_), intent(in) :: flag integer(psb_ipk_), intent(out) :: info class(psb_d_base_vect_type) :: y @@ -65,7 +65,7 @@ module psi_d_mod end subroutine psi_dswapdata_vect subroutine psi_dswapidxm(ictxt,icomm,flag,n,beta,y,idx,& & totxch,totsnd,totrcv,work,info) - import :: psb_desc_type, psb_ipk_, psb_dpk_, psb_d_base_vect_type + import integer(psb_ipk_), intent(in) :: ictxt,icomm,flag, n integer(psb_ipk_), intent(out) :: info real(psb_dpk_) :: y(:,:), beta @@ -74,7 +74,7 @@ module psi_d_mod end subroutine psi_dswapidxm subroutine psi_dswapidxv(ictxt,icomm,flag,beta,y,idx,& & totxch,totsnd,totrcv,work,info) - import :: psb_desc_type, psb_ipk_, psb_dpk_, psb_d_base_vect_type + import integer(psb_ipk_), intent(in) :: ictxt,icomm,flag integer(psb_ipk_), intent(out) :: info real(psb_dpk_) :: y(:), beta @@ -82,7 +82,7 @@ module psi_d_mod integer(psb_ipk_), intent(in) :: idx(:),totxch,totsnd,totrcv end subroutine psi_dswapidxv subroutine psi_dswap_vidx_vect(iictxt,iicomm,flag,beta,y,idx,totxch,totsnd,totrcv,work,info) - import :: psb_desc_type, psb_ipk_, psb_dpk_, psb_d_base_vect_type, psb_i_base_vect_type + import integer(psb_ipk_), intent(in) :: iictxt,iicomm,flag integer(psb_ipk_), intent(out) :: info class(psb_d_base_vect_type) :: y @@ -96,7 +96,7 @@ module psi_d_mod interface psi_swaptran subroutine psi_dswaptranm(flag,n,beta,y,desc_a,work,info,data) - import :: psb_desc_type, psb_ipk_, psb_dpk_, psb_d_base_vect_type + import integer(psb_ipk_), intent(in) :: flag, n integer(psb_ipk_), intent(out) :: info real(psb_dpk_) :: y(:,:), beta @@ -105,7 +105,7 @@ module psi_d_mod integer(psb_ipk_), optional :: data end subroutine psi_dswaptranm subroutine psi_dswaptranv(flag,beta,y,desc_a,work,info,data) - import :: psb_desc_type, psb_ipk_, psb_dpk_, psb_d_base_vect_type + import integer(psb_ipk_), intent(in) :: flag integer(psb_ipk_), intent(out) :: info real(psb_dpk_) :: y(:), beta @@ -114,7 +114,7 @@ module psi_d_mod integer(psb_ipk_), optional :: data end subroutine psi_dswaptranv subroutine psi_dswaptran_vect(flag,beta,y,desc_a,work,info,data) - import :: psb_desc_type, psb_ipk_, psb_dpk_, psb_d_base_vect_type + import integer(psb_ipk_), intent(in) :: flag integer(psb_ipk_), intent(out) :: info class(psb_d_base_vect_type) :: y @@ -125,7 +125,7 @@ module psi_d_mod end subroutine psi_dswaptran_vect subroutine psi_dtranidxm(ictxt,icomm,flag,n,beta,y,idx,& & totxch,totsnd,totrcv,work,info) - import :: psb_desc_type, psb_ipk_, psb_dpk_, psb_d_base_vect_type + import integer(psb_ipk_), intent(in) :: ictxt,icomm,flag, n integer(psb_ipk_), intent(out) :: info real(psb_dpk_) :: y(:,:), beta @@ -134,7 +134,7 @@ module psi_d_mod end subroutine psi_dtranidxm subroutine psi_dtranidxv(ictxt,icomm,flag,beta,y,idx,& & totxch,totsnd,totrcv,work,info) - import :: psb_desc_type, psb_ipk_, psb_dpk_, psb_d_base_vect_type + import integer(psb_ipk_), intent(in) :: ictxt,icomm,flag integer(psb_ipk_), intent(out) :: info real(psb_dpk_) :: y(:), beta @@ -143,7 +143,7 @@ module psi_d_mod end subroutine psi_dtranidxv subroutine psi_dtranidx_vect(ictxt,icomm,flag,beta,y,idx,& & totxch,totsnd,totrcv,work,info) - import :: psb_desc_type, psb_ipk_, psb_dpk_, psb_d_base_vect_type + import integer(psb_ipk_), intent(in) :: ictxt,icomm,flag integer(psb_ipk_), intent(out) :: info class(psb_d_base_vect_type) :: y @@ -155,21 +155,21 @@ module psi_d_mod interface psi_ovrl_upd subroutine psi_dovrl_updr1(x,desc_a,update,info) - import :: psb_desc_type, psb_ipk_, psb_dpk_, psb_d_base_vect_type + import real(psb_dpk_), intent(inout), target :: x(:) type(psb_desc_type), intent(in) :: desc_a integer(psb_ipk_), intent(in) :: update integer(psb_ipk_), intent(out) :: info end subroutine psi_dovrl_updr1 subroutine psi_dovrl_updr2(x,desc_a,update,info) - import :: psb_desc_type, psb_ipk_, psb_dpk_, psb_d_base_vect_type + import real(psb_dpk_), intent(inout), target :: x(:,:) type(psb_desc_type), intent(in) :: desc_a integer(psb_ipk_), intent(in) :: update integer(psb_ipk_), intent(out) :: info end subroutine psi_dovrl_updr2 subroutine psi_dovrl_upd_vect(x,desc_a,update,info) - import :: psb_desc_type, psb_ipk_, psb_dpk_, psb_d_base_vect_type + import class(psb_d_base_vect_type) :: x type(psb_desc_type), intent(in) :: desc_a integer(psb_ipk_), intent(in) :: update @@ -179,21 +179,21 @@ module psi_d_mod interface psi_ovrl_save subroutine psi_dovrl_saver1(x,xs,desc_a,info) - import :: psb_desc_type, psb_ipk_, psb_dpk_, psb_d_base_vect_type + import real(psb_dpk_), intent(inout) :: x(:) real(psb_dpk_), allocatable :: xs(:) type(psb_desc_type), intent(in) :: desc_a integer(psb_ipk_), intent(out) :: info end subroutine psi_dovrl_saver1 subroutine psi_dovrl_saver2(x,xs,desc_a,info) - import :: psb_desc_type, psb_ipk_, psb_dpk_, psb_d_base_vect_type + import real(psb_dpk_), intent(inout) :: x(:,:) real(psb_dpk_), allocatable :: xs(:,:) type(psb_desc_type), intent(in) :: desc_a integer(psb_ipk_), intent(out) :: info end subroutine psi_dovrl_saver2 subroutine psi_dovrl_save_vect(x,xs,desc_a,info) - import :: psb_desc_type, psb_ipk_, psb_dpk_, psb_d_base_vect_type + import class(psb_d_base_vect_type) :: x real(psb_dpk_), allocatable :: xs(:) type(psb_desc_type), intent(in) :: desc_a @@ -203,21 +203,21 @@ module psi_d_mod interface psi_ovrl_restore subroutine psi_dovrl_restrr1(x,xs,desc_a,info) - import :: psb_desc_type, psb_ipk_, psb_dpk_, psb_d_base_vect_type + import real(psb_dpk_), intent(inout) :: x(:) real(psb_dpk_) :: xs(:) type(psb_desc_type), intent(in) :: desc_a integer(psb_ipk_), intent(out) :: info end subroutine psi_dovrl_restrr1 subroutine psi_dovrl_restrr2(x,xs,desc_a,info) - import :: psb_desc_type, psb_ipk_, psb_dpk_, psb_d_base_vect_type + import real(psb_dpk_), intent(inout) :: x(:,:) real(psb_dpk_) :: xs(:,:) type(psb_desc_type), intent(in) :: desc_a integer(psb_ipk_), intent(out) :: info end subroutine psi_dovrl_restrr2 subroutine psi_dovrl_restr_vect(x,xs,desc_a,info) - import :: psb_desc_type, psb_ipk_, psb_dpk_, psb_d_base_vect_type + import class(psb_d_base_vect_type) :: x real(psb_dpk_) :: xs(:) type(psb_desc_type), intent(in) :: desc_a diff --git a/base/modules/psi_i_mod.f90 b/base/modules/psi_i_mod.f90 index 464e7de4..6fc32e16 100644 --- a/base/modules/psi_i_mod.f90 +++ b/base/modules/psi_i_mod.f90 @@ -36,7 +36,7 @@ module psi_i_mod interface subroutine psi_compute_size(desc_data,& & index_in, dl_lda, info) - import :: psb_desc_type, psb_ipk_ + import integer(psb_ipk_) :: info, dl_lda integer(psb_ipk_) :: desc_data(:), index_in(:) end subroutine psi_compute_size @@ -44,7 +44,7 @@ module psi_i_mod interface subroutine psi_crea_bnd_elem(bndel,desc_a,info) - import :: psb_desc_type, psb_ipk_ + import integer(psb_ipk_), allocatable :: bndel(:) type(psb_desc_type), intent(in) :: desc_a integer(psb_ipk_), intent(out) :: info @@ -53,7 +53,7 @@ module psi_i_mod interface subroutine psi_crea_index(desc_a,index_in,index_out,glob_idx,nxch,nsnd,nrcv,info) - import :: psb_desc_type, psb_ipk_ + import type(psb_desc_type), intent(in) :: desc_a integer(psb_ipk_), intent(out) :: info,nxch,nsnd,nrcv integer(psb_ipk_), intent(in) :: index_in(:) @@ -64,7 +64,7 @@ module psi_i_mod interface subroutine psi_crea_ovr_elem(me,desc_overlap,ovr_elem,info) - import :: psb_desc_type, psb_ipk_ + import integer(psb_ipk_), intent(in) :: me, desc_overlap(:) integer(psb_ipk_), allocatable, intent(out) :: ovr_elem(:,:) integer(psb_ipk_), intent(out) :: info @@ -74,7 +74,7 @@ module psi_i_mod interface subroutine psi_desc_index(desc,index_in,dep_list,& & length_dl,nsnd,nrcv,desc_index,isglob_in,info) - import :: psb_desc_type, psb_ipk_ + import type(psb_desc_type) :: desc integer(psb_ipk_) :: index_in(:),dep_list(:) integer(psb_ipk_),allocatable :: desc_index(:) @@ -85,7 +85,7 @@ module psi_i_mod interface subroutine psi_dl_check(dep_list,dl_lda,np,length_dl) - import :: psb_desc_type, psb_ipk_ + import integer(psb_ipk_) :: np,dl_lda,length_dl(0:np) integer(psb_ipk_) :: dep_list(dl_lda,0:np) end subroutine psi_dl_check @@ -93,7 +93,7 @@ module psi_i_mod interface subroutine psi_sort_dl(dep_list,l_dep_list,np,info) - import :: psb_desc_type, psb_ipk_ + import integer(psb_ipk_) :: np,dep_list(:,:), l_dep_list(:), info end subroutine psi_sort_dl end interface @@ -101,7 +101,7 @@ module psi_i_mod interface subroutine psi_extract_dep_list(ictxt,is_bld,is_upd,desc_str,dep_list,& & length_dl,np,dl_lda,mode,info) - import :: psb_desc_type, psb_ipk_, psb_mpik_ + import logical :: is_bld, is_upd integer(psb_ipk_) :: ictxt integer(psb_ipk_) :: np,dl_lda,mode, info @@ -111,7 +111,7 @@ module psi_i_mod interface psi_fnd_owner subroutine psi_fnd_owner(nv,idx,iprc,desc,info) - import :: psb_desc_type, psb_ipk_ + import integer(psb_ipk_), intent(in) :: nv integer(psb_ipk_), intent(in) :: idx(:) integer(psb_ipk_), allocatable, intent(out) :: iprc(:) @@ -122,7 +122,7 @@ module psi_i_mod interface psi_bld_tmphalo subroutine psi_bld_tmphalo(desc,info) - import :: psb_desc_type, psb_ipk_ + import type(psb_desc_type), intent(inout) :: desc integer(psb_ipk_), intent(out) :: info end subroutine psi_bld_tmphalo @@ -131,7 +131,7 @@ module psi_i_mod interface psi_bld_tmpovrl subroutine psi_bld_tmpovrl(iv,desc,info) - import :: psb_desc_type, psb_ipk_ + import integer(psb_ipk_), intent(in) :: iv(:) type(psb_desc_type), intent(inout) :: desc integer(psb_ipk_), intent(out) :: info @@ -140,7 +140,7 @@ module psi_i_mod interface psi_cnv_dsc subroutine psi_cnv_dsc(halo_in,ovrlap_in,ext_in,cdesc, info, mold) - import :: psb_desc_type, psb_ipk_, psb_i_base_vect_type + import integer(psb_ipk_), intent(in) :: halo_in(:), ovrlap_in(:),ext_in(:) type(psb_desc_type), intent(inout) :: cdesc integer(psb_ipk_), intent(out) :: info @@ -150,7 +150,7 @@ module psi_i_mod interface psi_renum_index subroutine psi_renum_index(iperm,idx,info) - import :: psb_desc_type, psb_ipk_ + import integer(psb_ipk_), intent(out) :: info integer(psb_ipk_), intent(in) :: iperm(:) integer(psb_ipk_), intent(inout) :: idx(:) @@ -159,24 +159,24 @@ module psi_i_mod interface psi_inner_cnv subroutine psi_inner_cnvs(x,hashmask,hashv,glb_lc) - import :: psb_desc_type, psb_ipk_ + import integer(psb_ipk_), intent(in) :: hashmask,hashv(0:),glb_lc(:,:) integer(psb_ipk_), intent(inout) :: x end subroutine psi_inner_cnvs subroutine psi_inner_cnvs2(x,y,hashmask,hashv,glb_lc) - import :: psb_desc_type, psb_ipk_ + import integer(psb_ipk_), intent(in) :: hashmask,hashv(0:),glb_lc(:,:) integer(psb_ipk_), intent(in) :: x integer(psb_ipk_), intent(out) :: y end subroutine psi_inner_cnvs2 subroutine psi_inner_cnv1(n,x,hashmask,hashv,glb_lc,mask) - import :: psb_desc_type, psb_ipk_ + import integer(psb_ipk_), intent(in) :: n,hashmask,hashv(0:),glb_lc(:,:) logical, intent(in), optional :: mask(:) integer(psb_ipk_), intent(inout) :: x(:) end subroutine psi_inner_cnv1 subroutine psi_inner_cnv2(n,x,y,hashmask,hashv,glb_lc,mask) - import :: psb_desc_type, psb_ipk_ + import integer(psb_ipk_), intent(in) :: n, hashmask,hashv(0:),glb_lc(:,:) logical, intent(in),optional :: mask(:) integer(psb_ipk_), intent(in) :: x(:) @@ -186,7 +186,7 @@ module psi_i_mod interface subroutine psi_bld_ovr_mst(me,ovrlap_elem,mst_idx,info) - import :: psb_desc_type, psb_ipk_ + import integer(psb_ipk_), intent(in) :: me, ovrlap_elem(:,:) integer(psb_ipk_), allocatable, intent(out) :: mst_idx(:) integer(psb_ipk_), intent(out) :: info @@ -196,7 +196,7 @@ module psi_i_mod interface psi_swapdata subroutine psi_iswapdatam(flag,n,beta,y,desc_a,work,info,data) - import :: psb_desc_type, psb_ipk_, psb_ipk_, psb_i_base_vect_type + import integer(psb_ipk_), intent(in) :: flag, n integer(psb_ipk_), intent(out) :: info integer(psb_ipk_) :: y(:,:), beta @@ -205,7 +205,7 @@ module psi_i_mod integer(psb_ipk_), optional :: data end subroutine psi_iswapdatam subroutine psi_iswapdatav(flag,beta,y,desc_a,work,info,data) - import :: psb_desc_type, psb_ipk_, psb_ipk_, psb_i_base_vect_type + import integer(psb_ipk_), intent(in) :: flag integer(psb_ipk_), intent(out) :: info integer(psb_ipk_) :: y(:), beta @@ -214,7 +214,7 @@ module psi_i_mod integer(psb_ipk_), optional :: data end subroutine psi_iswapdatav subroutine psi_iswapdata_vect(flag,beta,y,desc_a,work,info,data) - import :: psb_desc_type, psb_ipk_, psb_ipk_, psb_i_base_vect_type + import integer(psb_ipk_), intent(in) :: flag integer(psb_ipk_), intent(out) :: info class(psb_i_base_vect_type) :: y @@ -225,7 +225,7 @@ module psi_i_mod end subroutine psi_iswapdata_vect subroutine psi_iswapidxm(ictxt,icomm,flag,n,beta,y,idx,& & totxch,totsnd,totrcv,work,info) - import :: psb_desc_type, psb_ipk_, psb_ipk_, psb_i_base_vect_type + import integer(psb_ipk_), intent(in) :: ictxt,icomm,flag, n integer(psb_ipk_), intent(out) :: info integer(psb_ipk_) :: y(:,:), beta @@ -234,7 +234,7 @@ module psi_i_mod end subroutine psi_iswapidxm subroutine psi_iswapidxv(ictxt,icomm,flag,beta,y,idx,& & totxch,totsnd,totrcv,work,info) - import :: psb_desc_type, psb_ipk_, psb_ipk_, psb_i_base_vect_type + import integer(psb_ipk_), intent(in) :: ictxt,icomm,flag integer(psb_ipk_), intent(out) :: info integer(psb_ipk_) :: y(:), beta @@ -242,7 +242,7 @@ module psi_i_mod integer(psb_ipk_), intent(in) :: idx(:),totxch,totsnd,totrcv end subroutine psi_iswapidxv subroutine psi_iswap_vidx_vect(iictxt,iicomm,flag,beta,y,idx,totxch,totsnd,totrcv,work,info) - import :: psb_desc_type, psb_ipk_, psb_ipk_, psb_i_base_vect_type, psb_i_base_vect_type + import integer(psb_ipk_), intent(in) :: iictxt,iicomm,flag integer(psb_ipk_), intent(out) :: info class(psb_i_base_vect_type) :: y @@ -256,7 +256,7 @@ module psi_i_mod interface psi_swaptran subroutine psi_iswaptranm(flag,n,beta,y,desc_a,work,info,data) - import :: psb_desc_type, psb_ipk_, psb_ipk_, psb_i_base_vect_type + import integer(psb_ipk_), intent(in) :: flag, n integer(psb_ipk_), intent(out) :: info integer(psb_ipk_) :: y(:,:), beta @@ -265,7 +265,7 @@ module psi_i_mod integer(psb_ipk_), optional :: data end subroutine psi_iswaptranm subroutine psi_iswaptranv(flag,beta,y,desc_a,work,info,data) - import :: psb_desc_type, psb_ipk_, psb_ipk_, psb_i_base_vect_type + import integer(psb_ipk_), intent(in) :: flag integer(psb_ipk_), intent(out) :: info integer(psb_ipk_) :: y(:), beta @@ -274,7 +274,7 @@ module psi_i_mod integer(psb_ipk_), optional :: data end subroutine psi_iswaptranv subroutine psi_iswaptran_vect(flag,beta,y,desc_a,work,info,data) - import :: psb_desc_type, psb_ipk_, psb_ipk_, psb_i_base_vect_type + import integer(psb_ipk_), intent(in) :: flag integer(psb_ipk_), intent(out) :: info class(psb_i_base_vect_type) :: y @@ -285,7 +285,7 @@ module psi_i_mod end subroutine psi_iswaptran_vect subroutine psi_itranidxm(ictxt,icomm,flag,n,beta,y,idx,& & totxch,totsnd,totrcv,work,info) - import :: psb_desc_type, psb_ipk_, psb_ipk_, psb_i_base_vect_type + import integer(psb_ipk_), intent(in) :: ictxt,icomm,flag, n integer(psb_ipk_), intent(out) :: info integer(psb_ipk_) :: y(:,:), beta @@ -294,7 +294,7 @@ module psi_i_mod end subroutine psi_itranidxm subroutine psi_itranidxv(ictxt,icomm,flag,beta,y,idx,& & totxch,totsnd,totrcv,work,info) - import :: psb_desc_type, psb_ipk_, psb_ipk_, psb_i_base_vect_type + import integer(psb_ipk_), intent(in) :: ictxt,icomm,flag integer(psb_ipk_), intent(out) :: info integer(psb_ipk_) :: y(:), beta @@ -303,7 +303,7 @@ module psi_i_mod end subroutine psi_itranidxv subroutine psi_itranidx_vect(ictxt,icomm,flag,beta,y,idx,& & totxch,totsnd,totrcv,work,info) - import :: psb_desc_type, psb_ipk_, psb_ipk_, psb_i_base_vect_type + import integer(psb_ipk_), intent(in) :: ictxt,icomm,flag integer(psb_ipk_), intent(out) :: info class(psb_i_base_vect_type) :: y @@ -315,21 +315,21 @@ module psi_i_mod interface psi_ovrl_upd subroutine psi_iovrl_updr1(x,desc_a,update,info) - import :: psb_desc_type, psb_ipk_, psb_ipk_, psb_i_base_vect_type + import integer(psb_ipk_), intent(inout), target :: x(:) type(psb_desc_type), intent(in) :: desc_a integer(psb_ipk_), intent(in) :: update integer(psb_ipk_), intent(out) :: info end subroutine psi_iovrl_updr1 subroutine psi_iovrl_updr2(x,desc_a,update,info) - import :: psb_desc_type, psb_ipk_, psb_ipk_, psb_i_base_vect_type + import integer(psb_ipk_), intent(inout), target :: x(:,:) type(psb_desc_type), intent(in) :: desc_a integer(psb_ipk_), intent(in) :: update integer(psb_ipk_), intent(out) :: info end subroutine psi_iovrl_updr2 subroutine psi_iovrl_upd_vect(x,desc_a,update,info) - import :: psb_desc_type, psb_ipk_, psb_ipk_, psb_i_base_vect_type + import class(psb_i_base_vect_type) :: x type(psb_desc_type), intent(in) :: desc_a integer(psb_ipk_), intent(in) :: update @@ -339,21 +339,21 @@ module psi_i_mod interface psi_ovrl_save subroutine psi_iovrl_saver1(x,xs,desc_a,info) - import :: psb_desc_type, psb_ipk_, psb_ipk_, psb_i_base_vect_type + import integer(psb_ipk_), intent(inout) :: x(:) integer(psb_ipk_), allocatable :: xs(:) type(psb_desc_type), intent(in) :: desc_a integer(psb_ipk_), intent(out) :: info end subroutine psi_iovrl_saver1 subroutine psi_iovrl_saver2(x,xs,desc_a,info) - import :: psb_desc_type, psb_ipk_, psb_ipk_, psb_i_base_vect_type + import integer(psb_ipk_), intent(inout) :: x(:,:) integer(psb_ipk_), allocatable :: xs(:,:) type(psb_desc_type), intent(in) :: desc_a integer(psb_ipk_), intent(out) :: info end subroutine psi_iovrl_saver2 subroutine psi_iovrl_save_vect(x,xs,desc_a,info) - import :: psb_desc_type, psb_ipk_, psb_ipk_, psb_i_base_vect_type + import class(psb_i_base_vect_type) :: x integer(psb_ipk_), allocatable :: xs(:) type(psb_desc_type), intent(in) :: desc_a @@ -363,21 +363,21 @@ module psi_i_mod interface psi_ovrl_restore subroutine psi_iovrl_restrr1(x,xs,desc_a,info) - import :: psb_desc_type, psb_ipk_, psb_ipk_, psb_i_base_vect_type + import integer(psb_ipk_), intent(inout) :: x(:) integer(psb_ipk_) :: xs(:) type(psb_desc_type), intent(in) :: desc_a integer(psb_ipk_), intent(out) :: info end subroutine psi_iovrl_restrr1 subroutine psi_iovrl_restrr2(x,xs,desc_a,info) - import :: psb_desc_type, psb_ipk_, psb_ipk_, psb_i_base_vect_type + import integer(psb_ipk_), intent(inout) :: x(:,:) integer(psb_ipk_) :: xs(:,:) type(psb_desc_type), intent(in) :: desc_a integer(psb_ipk_), intent(out) :: info end subroutine psi_iovrl_restrr2 subroutine psi_iovrl_restr_vect(x,xs,desc_a,info) - import :: psb_desc_type, psb_ipk_, psb_ipk_, psb_i_base_vect_type + import class(psb_i_base_vect_type) :: x integer(psb_ipk_) :: xs(:) type(psb_desc_type), intent(in) :: desc_a diff --git a/base/modules/psi_s_mod.f90 b/base/modules/psi_s_mod.f90 index 62e97732..fceeca1b 100644 --- a/base/modules/psi_s_mod.f90 +++ b/base/modules/psi_s_mod.f90 @@ -36,7 +36,7 @@ module psi_s_mod interface psi_swapdata subroutine psi_sswapdatam(flag,n,beta,y,desc_a,work,info,data) - import :: psb_desc_type, psb_ipk_, psb_spk_, psb_s_base_vect_type + import integer(psb_ipk_), intent(in) :: flag, n integer(psb_ipk_), intent(out) :: info real(psb_spk_) :: y(:,:), beta @@ -45,7 +45,7 @@ module psi_s_mod integer(psb_ipk_), optional :: data end subroutine psi_sswapdatam subroutine psi_sswapdatav(flag,beta,y,desc_a,work,info,data) - import :: psb_desc_type, psb_ipk_, psb_spk_, psb_s_base_vect_type + import integer(psb_ipk_), intent(in) :: flag integer(psb_ipk_), intent(out) :: info real(psb_spk_) :: y(:), beta @@ -54,7 +54,7 @@ module psi_s_mod integer(psb_ipk_), optional :: data end subroutine psi_sswapdatav subroutine psi_sswapdata_vect(flag,beta,y,desc_a,work,info,data) - import :: psb_desc_type, psb_ipk_, psb_spk_, psb_s_base_vect_type + import integer(psb_ipk_), intent(in) :: flag integer(psb_ipk_), intent(out) :: info class(psb_s_base_vect_type) :: y @@ -65,7 +65,7 @@ module psi_s_mod end subroutine psi_sswapdata_vect subroutine psi_sswapidxm(ictxt,icomm,flag,n,beta,y,idx,& & totxch,totsnd,totrcv,work,info) - import :: psb_desc_type, psb_ipk_, psb_spk_, psb_s_base_vect_type + import integer(psb_ipk_), intent(in) :: ictxt,icomm,flag, n integer(psb_ipk_), intent(out) :: info real(psb_spk_) :: y(:,:), beta @@ -74,7 +74,7 @@ module psi_s_mod end subroutine psi_sswapidxm subroutine psi_sswapidxv(ictxt,icomm,flag,beta,y,idx,& & totxch,totsnd,totrcv,work,info) - import :: psb_desc_type, psb_ipk_, psb_spk_, psb_s_base_vect_type + import integer(psb_ipk_), intent(in) :: ictxt,icomm,flag integer(psb_ipk_), intent(out) :: info real(psb_spk_) :: y(:), beta @@ -82,7 +82,7 @@ module psi_s_mod integer(psb_ipk_), intent(in) :: idx(:),totxch,totsnd,totrcv end subroutine psi_sswapidxv subroutine psi_sswap_vidx_vect(iictxt,iicomm,flag,beta,y,idx,totxch,totsnd,totrcv,work,info) - import :: psb_desc_type, psb_ipk_, psb_spk_, psb_s_base_vect_type, psb_i_base_vect_type + import integer(psb_ipk_), intent(in) :: iictxt,iicomm,flag integer(psb_ipk_), intent(out) :: info class(psb_s_base_vect_type) :: y @@ -96,7 +96,7 @@ module psi_s_mod interface psi_swaptran subroutine psi_sswaptranm(flag,n,beta,y,desc_a,work,info,data) - import :: psb_desc_type, psb_ipk_, psb_spk_, psb_s_base_vect_type + import integer(psb_ipk_), intent(in) :: flag, n integer(psb_ipk_), intent(out) :: info real(psb_spk_) :: y(:,:), beta @@ -105,7 +105,7 @@ module psi_s_mod integer(psb_ipk_), optional :: data end subroutine psi_sswaptranm subroutine psi_sswaptranv(flag,beta,y,desc_a,work,info,data) - import :: psb_desc_type, psb_ipk_, psb_spk_, psb_s_base_vect_type + import integer(psb_ipk_), intent(in) :: flag integer(psb_ipk_), intent(out) :: info real(psb_spk_) :: y(:), beta @@ -114,7 +114,7 @@ module psi_s_mod integer(psb_ipk_), optional :: data end subroutine psi_sswaptranv subroutine psi_sswaptran_vect(flag,beta,y,desc_a,work,info,data) - import :: psb_desc_type, psb_ipk_, psb_spk_, psb_s_base_vect_type + import integer(psb_ipk_), intent(in) :: flag integer(psb_ipk_), intent(out) :: info class(psb_s_base_vect_type) :: y @@ -125,7 +125,7 @@ module psi_s_mod end subroutine psi_sswaptran_vect subroutine psi_stranidxm(ictxt,icomm,flag,n,beta,y,idx,& & totxch,totsnd,totrcv,work,info) - import :: psb_desc_type, psb_ipk_, psb_spk_, psb_s_base_vect_type + import integer(psb_ipk_), intent(in) :: ictxt,icomm,flag, n integer(psb_ipk_), intent(out) :: info real(psb_spk_) :: y(:,:), beta @@ -134,7 +134,7 @@ module psi_s_mod end subroutine psi_stranidxm subroutine psi_stranidxv(ictxt,icomm,flag,beta,y,idx,& & totxch,totsnd,totrcv,work,info) - import :: psb_desc_type, psb_ipk_, psb_spk_, psb_s_base_vect_type + import integer(psb_ipk_), intent(in) :: ictxt,icomm,flag integer(psb_ipk_), intent(out) :: info real(psb_spk_) :: y(:), beta @@ -143,7 +143,7 @@ module psi_s_mod end subroutine psi_stranidxv subroutine psi_stranidx_vect(ictxt,icomm,flag,beta,y,idx,& & totxch,totsnd,totrcv,work,info) - import :: psb_desc_type, psb_ipk_, psb_spk_, psb_s_base_vect_type + import integer(psb_ipk_), intent(in) :: ictxt,icomm,flag integer(psb_ipk_), intent(out) :: info class(psb_s_base_vect_type) :: y @@ -155,21 +155,21 @@ module psi_s_mod interface psi_ovrl_upd subroutine psi_sovrl_updr1(x,desc_a,update,info) - import :: psb_desc_type, psb_ipk_, psb_spk_, psb_s_base_vect_type + import real(psb_spk_), intent(inout), target :: x(:) type(psb_desc_type), intent(in) :: desc_a integer(psb_ipk_), intent(in) :: update integer(psb_ipk_), intent(out) :: info end subroutine psi_sovrl_updr1 subroutine psi_sovrl_updr2(x,desc_a,update,info) - import :: psb_desc_type, psb_ipk_, psb_spk_, psb_s_base_vect_type + import real(psb_spk_), intent(inout), target :: x(:,:) type(psb_desc_type), intent(in) :: desc_a integer(psb_ipk_), intent(in) :: update integer(psb_ipk_), intent(out) :: info end subroutine psi_sovrl_updr2 subroutine psi_sovrl_upd_vect(x,desc_a,update,info) - import :: psb_desc_type, psb_ipk_, psb_spk_, psb_s_base_vect_type + import class(psb_s_base_vect_type) :: x type(psb_desc_type), intent(in) :: desc_a integer(psb_ipk_), intent(in) :: update @@ -179,21 +179,21 @@ module psi_s_mod interface psi_ovrl_save subroutine psi_sovrl_saver1(x,xs,desc_a,info) - import :: psb_desc_type, psb_ipk_, psb_spk_, psb_s_base_vect_type + import real(psb_spk_), intent(inout) :: x(:) real(psb_spk_), allocatable :: xs(:) type(psb_desc_type), intent(in) :: desc_a integer(psb_ipk_), intent(out) :: info end subroutine psi_sovrl_saver1 subroutine psi_sovrl_saver2(x,xs,desc_a,info) - import :: psb_desc_type, psb_ipk_, psb_spk_, psb_s_base_vect_type + import real(psb_spk_), intent(inout) :: x(:,:) real(psb_spk_), allocatable :: xs(:,:) type(psb_desc_type), intent(in) :: desc_a integer(psb_ipk_), intent(out) :: info end subroutine psi_sovrl_saver2 subroutine psi_sovrl_save_vect(x,xs,desc_a,info) - import :: psb_desc_type, psb_ipk_, psb_spk_, psb_s_base_vect_type + import class(psb_s_base_vect_type) :: x real(psb_spk_), allocatable :: xs(:) type(psb_desc_type), intent(in) :: desc_a @@ -203,21 +203,21 @@ module psi_s_mod interface psi_ovrl_restore subroutine psi_sovrl_restrr1(x,xs,desc_a,info) - import :: psb_desc_type, psb_ipk_, psb_spk_, psb_s_base_vect_type + import real(psb_spk_), intent(inout) :: x(:) real(psb_spk_) :: xs(:) type(psb_desc_type), intent(in) :: desc_a integer(psb_ipk_), intent(out) :: info end subroutine psi_sovrl_restrr1 subroutine psi_sovrl_restrr2(x,xs,desc_a,info) - import :: psb_desc_type, psb_ipk_, psb_spk_, psb_s_base_vect_type + import real(psb_spk_), intent(inout) :: x(:,:) real(psb_spk_) :: xs(:,:) type(psb_desc_type), intent(in) :: desc_a integer(psb_ipk_), intent(out) :: info end subroutine psi_sovrl_restrr2 subroutine psi_sovrl_restr_vect(x,xs,desc_a,info) - import :: psb_desc_type, psb_ipk_, psb_spk_, psb_s_base_vect_type + import class(psb_s_base_vect_type) :: x real(psb_spk_) :: xs(:) type(psb_desc_type), intent(in) :: desc_a diff --git a/base/modules/psi_z_mod.f90 b/base/modules/psi_z_mod.f90 index 88553e63..648186c0 100644 --- a/base/modules/psi_z_mod.f90 +++ b/base/modules/psi_z_mod.f90 @@ -36,7 +36,7 @@ module psi_z_mod interface psi_swapdata subroutine psi_zswapdatam(flag,n,beta,y,desc_a,work,info,data) - import :: psb_desc_type, psb_ipk_, psb_dpk_, psb_z_base_vect_type + import integer(psb_ipk_), intent(in) :: flag, n integer(psb_ipk_), intent(out) :: info complex(psb_dpk_) :: y(:,:), beta @@ -45,7 +45,7 @@ module psi_z_mod integer(psb_ipk_), optional :: data end subroutine psi_zswapdatam subroutine psi_zswapdatav(flag,beta,y,desc_a,work,info,data) - import :: psb_desc_type, psb_ipk_, psb_dpk_, psb_z_base_vect_type + import integer(psb_ipk_), intent(in) :: flag integer(psb_ipk_), intent(out) :: info complex(psb_dpk_) :: y(:), beta @@ -54,7 +54,7 @@ module psi_z_mod integer(psb_ipk_), optional :: data end subroutine psi_zswapdatav subroutine psi_zswapdata_vect(flag,beta,y,desc_a,work,info,data) - import :: psb_desc_type, psb_ipk_, psb_dpk_, psb_z_base_vect_type + import integer(psb_ipk_), intent(in) :: flag integer(psb_ipk_), intent(out) :: info class(psb_z_base_vect_type) :: y @@ -65,7 +65,7 @@ module psi_z_mod end subroutine psi_zswapdata_vect subroutine psi_zswapidxm(ictxt,icomm,flag,n,beta,y,idx,& & totxch,totsnd,totrcv,work,info) - import :: psb_desc_type, psb_ipk_, psb_dpk_, psb_z_base_vect_type + import integer(psb_ipk_), intent(in) :: ictxt,icomm,flag, n integer(psb_ipk_), intent(out) :: info complex(psb_dpk_) :: y(:,:), beta @@ -74,7 +74,7 @@ module psi_z_mod end subroutine psi_zswapidxm subroutine psi_zswapidxv(ictxt,icomm,flag,beta,y,idx,& & totxch,totsnd,totrcv,work,info) - import :: psb_desc_type, psb_ipk_, psb_dpk_, psb_z_base_vect_type + import integer(psb_ipk_), intent(in) :: ictxt,icomm,flag integer(psb_ipk_), intent(out) :: info complex(psb_dpk_) :: y(:), beta @@ -82,7 +82,7 @@ module psi_z_mod integer(psb_ipk_), intent(in) :: idx(:),totxch,totsnd,totrcv end subroutine psi_zswapidxv subroutine psi_zswap_vidx_vect(iictxt,iicomm,flag,beta,y,idx,totxch,totsnd,totrcv,work,info) - import :: psb_desc_type, psb_ipk_, psb_dpk_, psb_z_base_vect_type, psb_i_base_vect_type + import integer(psb_ipk_), intent(in) :: iictxt,iicomm,flag integer(psb_ipk_), intent(out) :: info class(psb_z_base_vect_type) :: y @@ -96,7 +96,7 @@ module psi_z_mod interface psi_swaptran subroutine psi_zswaptranm(flag,n,beta,y,desc_a,work,info,data) - import :: psb_desc_type, psb_ipk_, psb_dpk_, psb_z_base_vect_type + import integer(psb_ipk_), intent(in) :: flag, n integer(psb_ipk_), intent(out) :: info complex(psb_dpk_) :: y(:,:), beta @@ -105,7 +105,7 @@ module psi_z_mod integer(psb_ipk_), optional :: data end subroutine psi_zswaptranm subroutine psi_zswaptranv(flag,beta,y,desc_a,work,info,data) - import :: psb_desc_type, psb_ipk_, psb_dpk_, psb_z_base_vect_type + import integer(psb_ipk_), intent(in) :: flag integer(psb_ipk_), intent(out) :: info complex(psb_dpk_) :: y(:), beta @@ -114,7 +114,7 @@ module psi_z_mod integer(psb_ipk_), optional :: data end subroutine psi_zswaptranv subroutine psi_zswaptran_vect(flag,beta,y,desc_a,work,info,data) - import :: psb_desc_type, psb_ipk_, psb_dpk_, psb_z_base_vect_type + import integer(psb_ipk_), intent(in) :: flag integer(psb_ipk_), intent(out) :: info class(psb_z_base_vect_type) :: y @@ -125,7 +125,7 @@ module psi_z_mod end subroutine psi_zswaptran_vect subroutine psi_ztranidxm(ictxt,icomm,flag,n,beta,y,idx,& & totxch,totsnd,totrcv,work,info) - import :: psb_desc_type, psb_ipk_, psb_dpk_, psb_z_base_vect_type + import integer(psb_ipk_), intent(in) :: ictxt,icomm,flag, n integer(psb_ipk_), intent(out) :: info complex(psb_dpk_) :: y(:,:), beta @@ -134,7 +134,7 @@ module psi_z_mod end subroutine psi_ztranidxm subroutine psi_ztranidxv(ictxt,icomm,flag,beta,y,idx,& & totxch,totsnd,totrcv,work,info) - import :: psb_desc_type, psb_ipk_, psb_dpk_, psb_z_base_vect_type + import integer(psb_ipk_), intent(in) :: ictxt,icomm,flag integer(psb_ipk_), intent(out) :: info complex(psb_dpk_) :: y(:), beta @@ -143,7 +143,7 @@ module psi_z_mod end subroutine psi_ztranidxv subroutine psi_ztranidx_vect(ictxt,icomm,flag,beta,y,idx,& & totxch,totsnd,totrcv,work,info) - import :: psb_desc_type, psb_ipk_, psb_dpk_, psb_z_base_vect_type + import integer(psb_ipk_), intent(in) :: ictxt,icomm,flag integer(psb_ipk_), intent(out) :: info class(psb_z_base_vect_type) :: y @@ -155,21 +155,21 @@ module psi_z_mod interface psi_ovrl_upd subroutine psi_zovrl_updr1(x,desc_a,update,info) - import :: psb_desc_type, psb_ipk_, psb_dpk_, psb_z_base_vect_type + import complex(psb_dpk_), intent(inout), target :: x(:) type(psb_desc_type), intent(in) :: desc_a integer(psb_ipk_), intent(in) :: update integer(psb_ipk_), intent(out) :: info end subroutine psi_zovrl_updr1 subroutine psi_zovrl_updr2(x,desc_a,update,info) - import :: psb_desc_type, psb_ipk_, psb_dpk_, psb_z_base_vect_type + import complex(psb_dpk_), intent(inout), target :: x(:,:) type(psb_desc_type), intent(in) :: desc_a integer(psb_ipk_), intent(in) :: update integer(psb_ipk_), intent(out) :: info end subroutine psi_zovrl_updr2 subroutine psi_zovrl_upd_vect(x,desc_a,update,info) - import :: psb_desc_type, psb_ipk_, psb_dpk_, psb_z_base_vect_type + import class(psb_z_base_vect_type) :: x type(psb_desc_type), intent(in) :: desc_a integer(psb_ipk_), intent(in) :: update @@ -179,21 +179,21 @@ module psi_z_mod interface psi_ovrl_save subroutine psi_zovrl_saver1(x,xs,desc_a,info) - import :: psb_desc_type, psb_ipk_, psb_dpk_, psb_z_base_vect_type + import complex(psb_dpk_), intent(inout) :: x(:) complex(psb_dpk_), allocatable :: xs(:) type(psb_desc_type), intent(in) :: desc_a integer(psb_ipk_), intent(out) :: info end subroutine psi_zovrl_saver1 subroutine psi_zovrl_saver2(x,xs,desc_a,info) - import :: psb_desc_type, psb_ipk_, psb_dpk_, psb_z_base_vect_type + import complex(psb_dpk_), intent(inout) :: x(:,:) complex(psb_dpk_), allocatable :: xs(:,:) type(psb_desc_type), intent(in) :: desc_a integer(psb_ipk_), intent(out) :: info end subroutine psi_zovrl_saver2 subroutine psi_zovrl_save_vect(x,xs,desc_a,info) - import :: psb_desc_type, psb_ipk_, psb_dpk_, psb_z_base_vect_type + import class(psb_z_base_vect_type) :: x complex(psb_dpk_), allocatable :: xs(:) type(psb_desc_type), intent(in) :: desc_a @@ -203,21 +203,21 @@ module psi_z_mod interface psi_ovrl_restore subroutine psi_zovrl_restrr1(x,xs,desc_a,info) - import :: psb_desc_type, psb_ipk_, psb_dpk_, psb_z_base_vect_type + import complex(psb_dpk_), intent(inout) :: x(:) complex(psb_dpk_) :: xs(:) type(psb_desc_type), intent(in) :: desc_a integer(psb_ipk_), intent(out) :: info end subroutine psi_zovrl_restrr1 subroutine psi_zovrl_restrr2(x,xs,desc_a,info) - import :: psb_desc_type, psb_ipk_, psb_dpk_, psb_z_base_vect_type + import complex(psb_dpk_), intent(inout) :: x(:,:) complex(psb_dpk_) :: xs(:,:) type(psb_desc_type), intent(in) :: desc_a integer(psb_ipk_), intent(out) :: info end subroutine psi_zovrl_restrr2 subroutine psi_zovrl_restr_vect(x,xs,desc_a,info) - import :: psb_desc_type, psb_ipk_, psb_dpk_, psb_z_base_vect_type + import class(psb_z_base_vect_type) :: x complex(psb_dpk_) :: xs(:) type(psb_desc_type), intent(in) :: desc_a diff --git a/base/serial/aux/Makefile b/base/serial/aux/Makefile index 28095f54..80f8e407 100644 --- a/base/serial/aux/Makefile +++ b/base/serial/aux/Makefile @@ -3,8 +3,7 @@ include ../../../Make.inc # The object files # -FOBJS = psi_acx_mod.o psi_alcx_mod.o psi_lcx_mod.o psi_tscx.o\ - isr.o isrx.o iasr.o iasrx.o msort_up.o msort_dw.o\ +FOBJS = isr.o isrx.o iasr.o iasrx.o msort_up.o msort_dw.o\ imsr.o imsrx.o imsru.o iamsort_up.o iamsort_dw.o idot.o inrm2.o\ dsr.o dsrx.o dasr.o dasrx.o dmsr.o dmsrx.o \ dmsort_up.o dmsort_dw.o damsort_up.o damsort_dw.o \