Unverified Commit 069b84b3 authored by Andreas Marek's avatar Andreas Marek
Browse files

Prepare that test programs can write more output

parent 9af253bc
...@@ -171,7 +171,7 @@ else ...@@ -171,7 +171,7 @@ else
endif endif
shared_sources = test/shared_sources/util.F90 test/shared_sources/read_input_parameters.F90 test/shared_sources/check_correctnes.F90 test/shared_sources/setup_mpi.F90 \ shared_sources = test/shared_sources/util.F90 test/shared_sources/read_input_parameters.F90 test/shared_sources/check_correctnes.F90 test/shared_sources/setup_mpi.F90 \
test/shared_sources/blacs_infrastructure.F90 test/shared_sources/prepare_matrix.F90 test/shared_sources/blacs_infrastructure.F90 test/shared_sources/prepare_matrix.F90 test/shared_sources/mod_output_types.F90
elpa1_test_real_c_version@SUFFIX@_SOURCES = test/c_test_programs/elpa1_test_real_c_version.c $(shared_sources) $(redirect_sources) elpa1_test_real_c_version@SUFFIX@_SOURCES = test/c_test_programs/elpa1_test_real_c_version.c $(shared_sources) $(redirect_sources)
elpa1_test_real_c_version@SUFFIX@_LDADD = $(build_lib) elpa1_test_real_c_version@SUFFIX@_LDADD = $(build_lib)
......
...@@ -143,8 +143,12 @@ ...@@ -143,8 +143,12 @@
endif endif
#endif /* ELPA1 */ #endif /* ELPA1 */
if (write_to_file) then if (write_to_file%eigenvectors) then
if (myid .eq. 0) print *,"Writing output files" if (myid .eq. 0) print *,"Writing Eigenvectors to files"
endif
if (write_to_file%eigenvalues) then
if (myid .eq. 0) print *,"Writing Eigenvalues to files"
endif endif
...@@ -92,6 +92,7 @@ program test_complex ...@@ -92,6 +92,7 @@ program test_complex
#ifdef HAVE_DETAILED_TIMINGS #ifdef HAVE_DETAILED_TIMINGS
use timings use timings
#endif #endif
use output_types
implicit none implicit none
!------------------------------------------------------------------------------- !-------------------------------------------------------------------------------
...@@ -120,7 +121,7 @@ program test_complex ...@@ -120,7 +121,7 @@ program test_complex
#ifdef WITH_OPENMP #ifdef WITH_OPENMP
integer(kind=ik) :: omp_get_max_threads, required_mpi_thread_level, provided_mpi_thread_level integer(kind=ik) :: omp_get_max_threads, required_mpi_thread_level, provided_mpi_thread_level
#endif #endif
logical :: write_to_file type(output_t) :: write_to_file
logical :: success logical :: success
success = .true. success = .true.
...@@ -273,7 +274,7 @@ program test_complex ...@@ -273,7 +274,7 @@ program test_complex
if(myid == 0) print *,'Time trans_ev_complex :',time_evp_back if(myid == 0) print *,'Time trans_ev_complex :',time_evp_back
if(myid == 0) print *,'Total time (sum above):',time_evp_back+time_evp_solve+time_evp_fwd if(myid == 0) print *,'Total time (sum above):',time_evp_back+time_evp_solve+time_evp_fwd
if(write_to_file) then if(write_to_file%eigenvectors) then
if (myid == 0) then if (myid == 0) then
open(17,file="EVs_complex_out.txt",form='formatted',status='new') open(17,file="EVs_complex_out.txt",form='formatted',status='new')
do i=1,na do i=1,na
...@@ -282,6 +283,18 @@ program test_complex ...@@ -282,6 +283,18 @@ program test_complex
close(17) close(17)
endif endif
endif endif
if(write_to_file%eigenvalues) then
if (myid == 0) then
open(17,file="Eigenvalues_complex_out.txt",form='formatted',status='new')
do i=1,na
write(17,*) i,ev(i)
enddo
close(17)
endif
endif
!------------------------------------------------------------------------------- !-------------------------------------------------------------------------------
! Test correctness of result (using plain scalapack routines) ! Test correctness of result (using plain scalapack routines)
allocate(tmp1(na_rows,na_cols)) allocate(tmp1(na_rows,na_cols))
......
...@@ -98,6 +98,7 @@ program test_complex2 ...@@ -98,6 +98,7 @@ program test_complex2
#ifdef HAVE_DETAILED_TIMINGS #ifdef HAVE_DETAILED_TIMINGS
use timings use timings
#endif #endif
use output_types
implicit none implicit none
!------------------------------------------------------------------------------- !-------------------------------------------------------------------------------
...@@ -129,7 +130,7 @@ program test_complex2 ...@@ -129,7 +130,7 @@ program test_complex2
#ifdef WITH_OPENMP #ifdef WITH_OPENMP
integer(kind=ik) :: omp_get_max_threads, required_mpi_thread_level, provided_mpi_thread_level integer(kind=ik) :: omp_get_max_threads, required_mpi_thread_level, provided_mpi_thread_level
#endif #endif
logical :: write_to_file type(output_t) :: write_to_file
logical :: success logical :: success
success = .true. success = .true.
...@@ -275,7 +276,7 @@ program test_complex2 ...@@ -275,7 +276,7 @@ program test_complex2
if(myid == 0) print *,'Time transform back EVs :',time_evp_back if(myid == 0) print *,'Time transform back EVs :',time_evp_back
if(myid == 0) print *,'Total time (sum above) :',time_evp_back+time_evp_solve+time_evp_fwd if(myid == 0) print *,'Total time (sum above) :',time_evp_back+time_evp_solve+time_evp_fwd
if(write_to_file) then if(write_to_file%eigenvectors) then
if (myid == 0) then if (myid == 0) then
open(17,file="EVs_complex2_out.txt",form='formatted',status='new') open(17,file="EVs_complex2_out.txt",form='formatted',status='new')
do i=1,na do i=1,na
...@@ -284,6 +285,16 @@ program test_complex2 ...@@ -284,6 +285,16 @@ program test_complex2
close(17) close(17)
endif endif
endif endif
if(write_to_file%eigenvalues) then
if (myid == 0) then
open(17,file="Eigenvalues_complex2_out.txt",form='formatted',status='new')
do i=1,na
write(17,*) i,ev(i)
enddo
close(17)
endif
endif
!------------------------------------------------------------------------------- !-------------------------------------------------------------------------------
! Test correctness of result (using plain scalapack routines) ! Test correctness of result (using plain scalapack routines)
allocate(tmp1(na_rows,na_cols)) allocate(tmp1(na_rows,na_cols))
......
...@@ -101,6 +101,7 @@ program test_complex2 ...@@ -101,6 +101,7 @@ program test_complex2
#ifdef HAVE_DETAILED_TIMINGS #ifdef HAVE_DETAILED_TIMINGS
use timings use timings
#endif #endif
use output_types
implicit none implicit none
...@@ -132,7 +133,7 @@ program test_complex2 ...@@ -132,7 +133,7 @@ program test_complex2
#ifdef WITH_OPENMP #ifdef WITH_OPENMP
integer(kind=ik) :: omp_get_max_threads, required_mpi_thread_level, provided_mpi_thread_level integer(kind=ik) :: omp_get_max_threads, required_mpi_thread_level, provided_mpi_thread_level
#endif #endif
logical :: write_to_file type(output_t) :: write_to_file
logical :: success logical :: success
success = .true. success = .true.
...@@ -174,10 +175,6 @@ program test_complex2 ...@@ -174,10 +175,6 @@ program test_complex2
call timer%start("program") call timer%start("program")
#endif #endif
if (write_to_file) then
if (myid .eq. 0) print *,"Writing output files"
endif
!------------------------------------------------------------------------------- !-------------------------------------------------------------------------------
! Selection of number of processor rows/columns ! Selection of number of processor rows/columns
! We try to set up the grid square-like, i.e. start the search for possible ! We try to set up the grid square-like, i.e. start the search for possible
...@@ -303,7 +300,7 @@ program test_complex2 ...@@ -303,7 +300,7 @@ program test_complex2
if(myid == 0) print *,'Time transform back EVs :',time_evp_back if(myid == 0) print *,'Time transform back EVs :',time_evp_back
if(myid == 0) print *,'Total time (sum above) :',time_evp_back+time_evp_solve+time_evp_fwd if(myid == 0) print *,'Total time (sum above) :',time_evp_back+time_evp_solve+time_evp_fwd
if(write_to_file) then if(write_to_file%eigenvectors) then
if (myid == 0) then if (myid == 0) then
open(17,file="EVs_complex2_out.txt",form='formatted',status='new') open(17,file="EVs_complex2_out.txt",form='formatted',status='new')
do i=1,na do i=1,na
...@@ -312,6 +309,18 @@ program test_complex2 ...@@ -312,6 +309,18 @@ program test_complex2
close(17) close(17)
endif endif
endif endif
if(write_to_file%eigenvalues) then
if (myid == 0) then
open(17,file="Eigenvalues_complex2_out.txt",form='formatted',status='new')
do i=1,na
write(17,*) i,ev(i)
enddo
close(17)
endif
endif
!------------------------------------------------------------------------------- !-------------------------------------------------------------------------------
! Test correctness of result (using plain scalapack routines) ! Test correctness of result (using plain scalapack routines)
allocate(tmp1(na_rows,na_cols)) allocate(tmp1(na_rows,na_cols))
......
...@@ -100,6 +100,7 @@ program test_complex2 ...@@ -100,6 +100,7 @@ program test_complex2
#ifdef HAVE_DETAILED_TIMINGS #ifdef HAVE_DETAILED_TIMINGS
use timings use timings
#endif #endif
use output_types
implicit none implicit none
!------------------------------------------------------------------------------- !-------------------------------------------------------------------------------
...@@ -131,7 +132,7 @@ program test_complex2 ...@@ -131,7 +132,7 @@ program test_complex2
#ifdef WITH_OPENMP #ifdef WITH_OPENMP
integer(kind=ik) :: omp_get_max_threads, required_mpi_thread_level, provided_mpi_thread_level integer(kind=ik) :: omp_get_max_threads, required_mpi_thread_level, provided_mpi_thread_level
#endif #endif
logical :: write_to_file type(output_t) :: write_to_file
logical :: success logical :: success
success = .true. success = .true.
...@@ -300,7 +301,7 @@ program test_complex2 ...@@ -300,7 +301,7 @@ program test_complex2
if(myid == 0) print *,'Time transform back EVs :',time_evp_back if(myid == 0) print *,'Time transform back EVs :',time_evp_back
if(myid == 0) print *,'Total time (sum above) :',time_evp_back+time_evp_solve+time_evp_fwd if(myid == 0) print *,'Total time (sum above) :',time_evp_back+time_evp_solve+time_evp_fwd
if(write_to_file) then if(write_to_file%eigenvectors) then
if (myid == 0) then if (myid == 0) then
open(17,file="EVs_complex2_out.txt",form='formatted',status='new') open(17,file="EVs_complex2_out.txt",form='formatted',status='new')
do i=1,na do i=1,na
...@@ -309,6 +310,18 @@ program test_complex2 ...@@ -309,6 +310,18 @@ program test_complex2
close(17) close(17)
endif endif
endif endif
if(write_to_file%eigenvalues) then
if (myid == 0) then
open(17,file="Eigenvalues_complex2_out.txt",form='formatted',status='new')
do i=1,na
write(17,*) i,ev(i)
enddo
close(17)
endif
endif
!------------------------------------------------------------------------------- !-------------------------------------------------------------------------------
! Test correctness of result (using plain scalapack routines) ! Test correctness of result (using plain scalapack routines)
allocate(tmp1(na_rows,na_cols)) allocate(tmp1(na_rows,na_cols))
......
...@@ -93,6 +93,7 @@ program test_real ...@@ -93,6 +93,7 @@ program test_real
#ifdef HAVE_DETAILED_TIMINGS #ifdef HAVE_DETAILED_TIMINGS
use timings use timings
#endif #endif
use output_types
implicit none implicit none
...@@ -121,7 +122,7 @@ program test_real ...@@ -121,7 +122,7 @@ program test_real
integer(kind=ik) :: omp_get_max_threads, required_mpi_thread_level, & integer(kind=ik) :: omp_get_max_threads, required_mpi_thread_level, &
provided_mpi_thread_level provided_mpi_thread_level
#endif #endif
logical :: write_to_file type(output_t) :: write_to_file
logical :: success logical :: success
integer :: j integer :: j
...@@ -279,7 +280,7 @@ program test_real ...@@ -279,7 +280,7 @@ program test_real
if(myid == 0) print *,'Time solve_tridi :',time_evp_solve if(myid == 0) print *,'Time solve_tridi :',time_evp_solve
if(myid == 0) print *,'Time trans_ev_real :',time_evp_back if(myid == 0) print *,'Time trans_ev_real :',time_evp_back
if(myid == 0) print *,'Total time (sum above):',time_evp_back+time_evp_solve+time_evp_fwd if(myid == 0) print *,'Total time (sum above):',time_evp_back+time_evp_solve+time_evp_fwd
if(write_to_file) then if(write_to_file%eigenvectors) then
if (myid == 0) then if (myid == 0) then
open(17,file="EVs_real_out.txt",form='formatted',status='new') open(17,file="EVs_real_out.txt",form='formatted',status='new')
do i=1,na do i=1,na
...@@ -288,6 +289,16 @@ program test_real ...@@ -288,6 +289,16 @@ program test_real
close(17) close(17)
endif endif
endif endif
if(write_to_file%eigenvalues) then
if (myid == 0) then
open(17,file="Eigenvalues_real_out.txt",form='formatted',status='new')
do i=1,na
write(17,*) i,ev(i)
enddo
close(17)
endif
endif
!------------------------------------------------------------------------------- !-------------------------------------------------------------------------------
! Test correctness of result (using plain scalapack routines) ! Test correctness of result (using plain scalapack routines)
......
...@@ -98,6 +98,7 @@ program test_real2 ...@@ -98,6 +98,7 @@ program test_real2
#ifdef HAVE_DETAILED_TIMINGS #ifdef HAVE_DETAILED_TIMINGS
use timings use timings
#endif #endif
use output_types
implicit none implicit none
!------------------------------------------------------------------------------- !-------------------------------------------------------------------------------
...@@ -124,7 +125,7 @@ program test_real2 ...@@ -124,7 +125,7 @@ program test_real2
#ifdef WITH_OPENMP #ifdef WITH_OPENMP
integer(kind=ik) :: omp_get_max_threads, required_mpi_thread_level, provided_mpi_thread_level integer(kind=ik) :: omp_get_max_threads, required_mpi_thread_level, provided_mpi_thread_level
#endif #endif
logical :: write_to_file type(output_t) :: write_to_file
logical :: success logical :: success
success = .true. success = .true.
...@@ -273,7 +274,7 @@ program test_real2 ...@@ -273,7 +274,7 @@ program test_real2
if(myid == 0) print *,'Total time (sum above) :',time_evp_back+time_evp_solve+time_evp_fwd if(myid == 0) print *,'Total time (sum above) :',time_evp_back+time_evp_solve+time_evp_fwd
if(write_to_file) then if(write_to_file%eigenvectors) then
if (myid == 0) then if (myid == 0) then
open(17,file="EVs_real2_out.txt",form='formatted',status='new') open(17,file="EVs_real2_out.txt",form='formatted',status='new')
do i=1,na do i=1,na
...@@ -282,6 +283,18 @@ program test_real2 ...@@ -282,6 +283,18 @@ program test_real2
close(17) close(17)
endif endif
endif endif
if(write_to_file%eigenvalues) then
if (myid == 0) then
open(17,file="Eigenvalues_real2_out.txt",form='formatted',status='new')
do i=1,na
write(17,*) i,ev(i)
enddo
close(17)
endif
endif
!------------------------------------------------------------------------------- !-------------------------------------------------------------------------------
! Test correctness of result (using plain scalapack routines) ! Test correctness of result (using plain scalapack routines)
allocate(tmp1(na_rows,na_cols)) allocate(tmp1(na_rows,na_cols))
......
...@@ -102,7 +102,7 @@ program test_real2 ...@@ -102,7 +102,7 @@ program test_real2
#ifdef HAVE_DETAILED_TIMINGS #ifdef HAVE_DETAILED_TIMINGS
use timings use timings
#endif #endif
use output_types
implicit none implicit none
!------------------------------------------------------------------------------- !-------------------------------------------------------------------------------
...@@ -129,7 +129,7 @@ program test_real2 ...@@ -129,7 +129,7 @@ program test_real2
#ifdef WITH_OPENMP #ifdef WITH_OPENMP
integer(kind=ik) :: omp_get_max_threads, required_mpi_thread_level, provided_mpi_thread_level integer(kind=ik) :: omp_get_max_threads, required_mpi_thread_level, provided_mpi_thread_level
#endif #endif
logical :: write_to_file type(output_t) :: write_to_file
logical :: success logical :: success
success = .true. success = .true.
...@@ -295,7 +295,7 @@ program test_real2 ...@@ -295,7 +295,7 @@ program test_real2
if(myid == 0) print *,'Time transform back EVs :',time_evp_back if(myid == 0) print *,'Time transform back EVs :',time_evp_back
if(myid == 0) print *,'Total time (sum above) :',time_evp_back+time_evp_solve+time_evp_fwd if(myid == 0) print *,'Total time (sum above) :',time_evp_back+time_evp_solve+time_evp_fwd
if(write_to_file) then if(write_to_file%eigenvectors) then
if (myid == 0) then if (myid == 0) then
open(17,file="EVs_real2_out.txt",form='formatted',status='new') open(17,file="EVs_real2_out.txt",form='formatted',status='new')
do i=1,na do i=1,na
...@@ -304,6 +304,17 @@ program test_real2 ...@@ -304,6 +304,17 @@ program test_real2
close(17) close(17)
endif endif
endif endif
if(write_to_file%eigenvalues) then
if (myid == 0) then
open(17,file="Eigenvalues_real2_out.txt",form='formatted',status='new')
do i=1,na
write(17,*) i,ev(i)
enddo
close(17)
endif
endif
!------------------------------------------------------------------------------- !-------------------------------------------------------------------------------
! Test correctness of result (using plain scalapack routines) ! Test correctness of result (using plain scalapack routines)
......
...@@ -101,6 +101,7 @@ program test_real2 ...@@ -101,6 +101,7 @@ program test_real2
#ifdef HAVE_DETAILED_TIMINGS #ifdef HAVE_DETAILED_TIMINGS
use timings use timings
#endif #endif
use output_types
implicit none implicit none
!------------------------------------------------------------------------------- !-------------------------------------------------------------------------------
...@@ -127,7 +128,7 @@ program test_real2 ...@@ -127,7 +128,7 @@ program test_real2
#ifdef WITH_OPENMP #ifdef WITH_OPENMP
integer(kind=ik) :: omp_get_max_threads, required_mpi_thread_level, provided_mpi_thread_level integer(kind=ik) :: omp_get_max_threads, required_mpi_thread_level, provided_mpi_thread_level
#endif #endif
logical :: write_to_file type(output_t) :: write_to_file
logical :: success logical :: success
success = .true. success = .true.
...@@ -293,7 +294,7 @@ program test_real2 ...@@ -293,7 +294,7 @@ program test_real2
if(myid == 0) print *,'Time transform back EVs :',time_evp_back if(myid == 0) print *,'Time transform back EVs :',time_evp_back
if(myid == 0) print *,'Total time (sum above) :',time_evp_back+time_evp_solve+time_evp_fwd if(myid == 0) print *,'Total time (sum above) :',time_evp_back+time_evp_solve+time_evp_fwd
if(write_to_file) then if(write_to_file%eigenvectors) then
if (myid == 0) then if (myid == 0) then
open(17,file="EVs_real2_out.txt",form='formatted',status='new') open(17,file="EVs_real2_out.txt",form='formatted',status='new')
do i=1,na do i=1,na
...@@ -302,6 +303,17 @@ program test_real2 ...@@ -302,6 +303,17 @@ program test_real2
close(17) close(17)
endif endif
endif endif
if(write_to_file%eigenvalues) then
if (myid == 0) then
open(17,file="Eigenvalues_real2_out.txt",form='formatted',status='new')
do i=1,na
write(17,*) i,ev(i)
enddo
close(17)
endif
endif
!------------------------------------------------------------------------------- !-------------------------------------------------------------------------------
! Test correctness of result (using plain scalapack routines) ! Test correctness of result (using plain scalapack routines)
allocate(tmp1(na_rows,na_cols)) allocate(tmp1(na_rows,na_cols))
......
...@@ -102,6 +102,7 @@ program test_real2 ...@@ -102,6 +102,7 @@ program test_real2
#ifdef HAVE_DETAILED_TIMINGS #ifdef HAVE_DETAILED_TIMINGS
use timings use timings
#endif #endif
use output_types
implicit none implicit none
!------------------------------------------------------------------------------- !-------------------------------------------------------------------------------
...@@ -128,11 +129,10 @@ program test_real2 ...@@ -128,11 +129,10 @@ program test_real2
#ifdef WITH_OPENMP #ifdef WITH_OPENMP
integer(kind=ik) :: omp_get_max_threads, required_mpi_thread_level, provided_mpi_thread_level integer(kind=ik) :: omp_get_max_threads, required_mpi_thread_level, provided_mpi_thread_level
#endif #endif
logical :: write_to_file type(output_t) :: write_to_file
logical :: success logical :: success
success = .true. success = .true.
write_to_file = .false.
if (COMMAND_ARGUMENT_COUNT() /= 0) then