Unverified Commit fc80ad07 authored by Andreas Marek's avatar Andreas Marek
Browse files

Change of get_elpa_row_col_comms to a function

The procedure "get_elpa_row_col_comms" is now a function instead
a subroutine and returns an error code.

This should have been done previously when all the other ELPA
function have been updated to return an error code.

This requires an ABI change in the next ELPA release !
parent 6515c5ea
...@@ -115,7 +115,7 @@ contains ...@@ -115,7 +115,7 @@ contains
!------------------------------------------------------------------------------- !-------------------------------------------------------------------------------
subroutine get_elpa_row_col_comms(mpi_comm_global, my_prow, my_pcol, mpi_comm_rows, mpi_comm_cols) function get_elpa_row_col_comms(mpi_comm_global, my_prow, my_pcol, mpi_comm_rows, mpi_comm_cols) result(mpierr)
!------------------------------------------------------------------------------- !-------------------------------------------------------------------------------
! get_elpa_row_col_comms: ! get_elpa_row_col_comms:
...@@ -152,7 +152,7 @@ subroutine get_elpa_row_col_comms(mpi_comm_global, my_prow, my_pcol, mpi_comm_ro ...@@ -152,7 +152,7 @@ subroutine get_elpa_row_col_comms(mpi_comm_global, my_prow, my_pcol, mpi_comm_ro
call mpi_comm_split(mpi_comm_global,my_pcol,my_prow,mpi_comm_rows,mpierr) call mpi_comm_split(mpi_comm_global,my_pcol,my_prow,mpi_comm_rows,mpierr)
call mpi_comm_split(mpi_comm_global,my_prow,my_pcol,mpi_comm_cols,mpierr) call mpi_comm_split(mpi_comm_global,my_prow,my_pcol,mpi_comm_cols,mpierr)
end subroutine get_elpa_row_col_comms end function get_elpa_row_col_comms
!------------------------------------------------------------------------------- !-------------------------------------------------------------------------------
......
...@@ -281,7 +281,7 @@ program test_complex ...@@ -281,7 +281,7 @@ program test_complex
! All ELPA routines need MPI communicators for communicating within ! All ELPA routines need MPI communicators for communicating within
! rows or columns of processes, these are set in get_elpa_row_col_comms. ! rows or columns of processes, these are set in get_elpa_row_col_comms.
call get_elpa_row_col_comms(mpi_comm_world, my_prow, my_pcol, & mpierr = get_elpa_row_col_comms(mpi_comm_world, my_prow, my_pcol, &
mpi_comm_rows, mpi_comm_cols) mpi_comm_rows, mpi_comm_cols)
if (myid==0) then if (myid==0) then
......
...@@ -309,7 +309,7 @@ program test_complex2 ...@@ -309,7 +309,7 @@ program test_complex2
! All ELPA routines need MPI communicators for communicating within ! All ELPA routines need MPI communicators for communicating within
! rows or columns of processes, these are set in get_elpa_row_col_comms. ! rows or columns of processes, these are set in get_elpa_row_col_comms.
call get_elpa_row_col_comms(mpi_comm_world, my_prow, my_pcol, & mpierr = get_elpa_row_col_comms(mpi_comm_world, my_prow, my_pcol, &
mpi_comm_rows, mpi_comm_cols) mpi_comm_rows, mpi_comm_cols)
! Determine the necessary size of the distributed matrices, ! Determine the necessary size of the distributed matrices,
......
...@@ -306,7 +306,7 @@ program test_complex2 ...@@ -306,7 +306,7 @@ program test_complex2
! All ELPA routines need MPI communicators for communicating within ! All ELPA routines need MPI communicators for communicating within
! rows or columns of processes, these are set in get_elpa_row_col_comms. ! rows or columns of processes, these are set in get_elpa_row_col_comms.
call get_elpa_row_col_comms(mpi_comm_world, my_prow, my_pcol, & mpierr = get_elpa_row_col_comms(mpi_comm_world, my_prow, my_pcol, &
mpi_comm_rows, mpi_comm_cols) mpi_comm_rows, mpi_comm_cols)
if (myid==0) then if (myid==0) then
......
...@@ -307,7 +307,7 @@ program test_complex2 ...@@ -307,7 +307,7 @@ program test_complex2
! All ELPA routines need MPI communicators for communicating within ! All ELPA routines need MPI communicators for communicating within
! rows or columns of processes, these are set in get_elpa_row_col_comms. ! rows or columns of processes, these are set in get_elpa_row_col_comms.
call get_elpa_row_col_comms(mpi_comm_world, my_prow, my_pcol, & mpierr = get_elpa_row_col_comms(mpi_comm_world, my_prow, my_pcol, &
mpi_comm_rows, mpi_comm_cols) mpi_comm_rows, mpi_comm_cols)
if (myid==0) then if (myid==0) then
print '(a)','| Past split communicator setup for rows and columns.' print '(a)','| Past split communicator setup for rows and columns.'
......
...@@ -286,7 +286,7 @@ program test_real ...@@ -286,7 +286,7 @@ program test_real
! All ELPA routines need MPI communicators for communicating within ! All ELPA routines need MPI communicators for communicating within
! rows or columns of processes, these are set in get_elpa_row_col_comms. ! rows or columns of processes, these are set in get_elpa_row_col_comms.
call get_elpa_row_col_comms(mpi_comm_world, my_prow, my_pcol, & mpierr = get_elpa_row_col_comms(mpi_comm_world, my_prow, my_pcol, &
mpi_comm_rows, mpi_comm_cols) mpi_comm_rows, mpi_comm_cols)
if (myid==0) then if (myid==0) then
......
...@@ -315,7 +315,7 @@ program test_real2 ...@@ -315,7 +315,7 @@ program test_real2
! All ELPA routines need MPI communicators for communicating within ! All ELPA routines need MPI communicators for communicating within
! rows or columns of processes, these are set in get_elpa_row_col_comms. ! rows or columns of processes, these are set in get_elpa_row_col_comms.
call get_elpa_row_col_comms(mpi_comm_world, my_prow, my_pcol, & mpierr = get_elpa_row_col_comms(mpi_comm_world, my_prow, my_pcol, &
mpi_comm_rows, mpi_comm_cols) mpi_comm_rows, mpi_comm_cols)
if (myid==0) then if (myid==0) then
......
...@@ -300,7 +300,7 @@ program test_real2 ...@@ -300,7 +300,7 @@ program test_real2
! All ELPA routines need MPI communicators for communicating within ! All ELPA routines need MPI communicators for communicating within
! rows or columns of processes, these are set in get_elpa_row_col_comms. ! rows or columns of processes, these are set in get_elpa_row_col_comms.
call get_elpa_row_col_comms(mpi_comm_world, my_prow, my_pcol, & mpierr = get_elpa_row_col_comms(mpi_comm_world, my_prow, my_pcol, &
mpi_comm_rows, mpi_comm_cols) mpi_comm_rows, mpi_comm_cols)
if (myid==0) then if (myid==0) then
......
...@@ -299,7 +299,7 @@ program test_real2 ...@@ -299,7 +299,7 @@ program test_real2
! All ELPA routines need MPI communicators for communicating within ! All ELPA routines need MPI communicators for communicating within
! rows or columns of processes, these are set in get_elpa_row_col_comms. ! rows or columns of processes, these are set in get_elpa_row_col_comms.
call get_elpa_row_col_comms(mpi_comm_world, my_prow, my_pcol, & mpierr = get_elpa_row_col_comms(mpi_comm_world, my_prow, my_pcol, &
mpi_comm_rows, mpi_comm_cols) mpi_comm_rows, mpi_comm_cols)
if (myid==0) then if (myid==0) then
......
...@@ -145,10 +145,6 @@ program test_real2 ...@@ -145,10 +145,6 @@ program test_real2
success = .true. success = .true.
write_to_file = .false. write_to_file = .false.
nblk = 2
na = 4000
nev = 1500
if (COMMAND_ARGUMENT_COUNT() == 3) then if (COMMAND_ARGUMENT_COUNT() == 3) then
call GET_COMMAND_ARGUMENT(1, arg1) call GET_COMMAND_ARGUMENT(1, arg1)
call GET_COMMAND_ARGUMENT(2, arg2) call GET_COMMAND_ARGUMENT(2, arg2)
...@@ -169,6 +165,11 @@ program test_real2 ...@@ -169,6 +165,11 @@ program test_real2
read(arg3, *) nblk read(arg3, *) nblk
endif endif
nblk = 2
na = 4000
nev = 1500
!------------------------------------------------------------------------------- !-------------------------------------------------------------------------------
! MPI Initialization ! MPI Initialization
#ifndef WITH_OPENMP #ifndef WITH_OPENMP
...@@ -301,7 +302,7 @@ program test_real2 ...@@ -301,7 +302,7 @@ program test_real2
! All ELPA routines need MPI communicators for communicating within ! All ELPA routines need MPI communicators for communicating within
! rows or columns of processes, these are set in get_elpa_row_col_comms. ! rows or columns of processes, these are set in get_elpa_row_col_comms.
call get_elpa_row_col_comms(mpi_comm_world, my_prow, my_pcol, & mpierr = get_elpa_row_col_comms(mpi_comm_world, my_prow, my_pcol, &
mpi_comm_rows, mpi_comm_cols) mpi_comm_rows, mpi_comm_cols)
if (myid==0) then if (myid==0) then
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment