From 11cae8ed089f6f16882ac255d0eb41044710f62b Mon Sep 17 00:00:00 2001 From: Andreas Marek <amarek@rzg.mpg.de> Date: Fri, 19 May 2017 22:32:12 +0200 Subject: [PATCH] Start to cleanup test programs --- Makefile.am | 806 +++++++++--------- .../elpa_1stage_c_interface.F90 | 8 +- .../legacy_complex_driver_c_version.c} | 0 .../legacy_real_driver_c_version.c} | 0 .../legacy_single_complex_driver_c_version.c | 292 +++++++ .../legacy_single_real_driver_c_version.c} | 0 .../legacy_complex_1stage_c_version.c} | 0 .../legacy_real_1stage_c_version.c} | 0 .../legacy_complex_2stage_c_version.c} | 0 .../legacy_real_2stage_c_version.c} | 0 .../legacy_complex_driver.F90} | 2 +- .../legacy_interface/legacy_real_driver.F90} | 2 +- .../legacy_single_complex_driver.F90} | 2 +- .../legacy_single_real_driver.F90} | 2 +- test/Fortran/{ => elpa1}/complex_1stage.F90 | 2 +- .../{ => elpa1}/complex_1stage_gpu.F90 | 2 +- .../legacy_complex.F90} | 2 +- .../legacy_complex_cholesky.F90} | 0 .../legacy_complex_gpu.F90} | 2 +- .../legacy_complex_invert_trm.F90} | 0 .../legacy_complex_transpose_multiply.F90} | 0 .../legacy_real.F90} | 2 +- .../legacy_real_1stage_with_c.F90} | 0 .../legacy_real_cholesky.F90} | 0 .../legacy_real_gpu.F90} | 2 +- .../legacy_real_invert_trm.F90} | 0 .../legacy_real_transpose_multiply.F90} | 0 .../legacy_single_complex.F90} | 2 +- .../legacy_single_complex_cholesky.F90} | 0 .../legacy_single_complex_gpu.F90} | 2 +- .../legacy_single_complex_invert_trm.F90} | 0 ...acy_single_complex_transpose_multiply.F90} | 0 .../legacy_single_real.F90} | 2 +- .../legacy_single_real_cholesky.F90} | 0 .../legacy_single_real_gpu.F90} | 2 +- .../legacy_single_real_invert_trm.F90} | 0 ...legacy_single_real_transpose_multiply.F90} | 0 .../legacy_single_toeplitz.F90} | 2 +- .../legacy_toeplitz.F90} | 2 +- test/Fortran/{ => elpa1}/real_1stage.F90 | 2 +- test/Fortran/{ => elpa1}/real_1stage_gpu.F90 | 2 +- .../{ => elpa1}/single_complex_1stage.F90 | 2 +- .../{ => elpa1}/single_complex_1stage_gpu.F90 | 2 +- .../{ => elpa1}/single_real_1stage.F90 | 2 +- .../{ => elpa1}/single_real_1stage_gpu.F90 | 2 +- test/Fortran/{ => elpa2}/complex_2stage.F90 | 2 +- .../{ => elpa2}/complex_2stage_banded.F90 | 4 +- .../{ => elpa2}/complex_2stage_gpu.F90 | 2 +- .../legacy_complex.F90} | 2 +- .../legacy_complex_api.F90} | 2 +- .../legacy_complex_default_kernel.F90} | 2 +- .../legacy_complex_gpu.F90} | 2 +- .../legacy_real.F90} | 2 +- .../legacy_real_api.F90} | 2 +- .../legacy_real_default_kernel.F90} | 2 +- .../legacy_real_gpu.F90} | 2 +- .../legacy_real_qr.F90} | 2 +- .../legacy_single_complex.F90} | 2 +- .../legacy_single_complex_api.F90} | 2 +- .../legacy_single_complex_default_kernel.F90} | 2 +- .../legacy_single_complex_gpu.F90} | 2 +- .../legacy_single_real.F90} | 2 +- .../legacy_single_real_api.F90} | 2 +- .../legacy_single_real_default_kernel.F90} | 2 +- .../legacy_single_real_gpu.F90} | 2 +- .../legacy_single_real_qr.F90} | 2 +- test/Fortran/{ => elpa2}/real_2stage.F90 | 2 +- .../{ => elpa2}/real_2stage_banded.F90 | 4 +- test/Fortran/{ => elpa2}/real_2stage_gpu.F90 | 2 +- .../{ => elpa2}/single_complex_2stage.F90 | 2 +- .../single_complex_2stage_banded.F90 | 4 +- .../{ => elpa2}/single_complex_2stage_gpu.F90 | 2 +- .../{ => elpa2}/single_real_2stage.F90 | 2 +- .../{ => elpa2}/single_real_2stage_banded.F90 | 4 +- .../{ => elpa2}/single_real_2stage_gpu.F90 | 2 +- ...test_transpose_multiply_complex_2stage.F90 | 316 ------- ...anspose_multiply_complex_single_2stage.F90 | 316 ------- ..._transpose_multiply_real_single_2stage.F90 | 320 ------- test/shared/call_elpa1.c | 2 +- test/shared/prepare_matrix_template.X90 | 2 +- 80 files changed, 760 insertions(+), 1414 deletions(-) rename test/C/{elpa_driver_complex_c_version.c => driver/legacy_interface/legacy_complex_driver_c_version.c} (100%) rename test/C/{elpa_driver_real_c_version.c => driver/legacy_interface/legacy_real_driver_c_version.c} (100%) create mode 100644 test/C/driver/legacy_interface/legacy_single_complex_driver_c_version.c rename test/C/{elpa_driver_real_c_version_single.c => driver/legacy_interface/legacy_single_real_driver_c_version.c} (100%) rename test/C/{elpa1_test_complex_c_version.c => elpa1/legacy_interface/legacy_complex_1stage_c_version.c} (100%) rename test/C/{elpa1_test_real_c_version.c => elpa1/legacy_interface/legacy_real_1stage_c_version.c} (100%) rename test/C/{elpa2_test_complex_c_version.c => elpa2/legacy_interface/legacy_complex_2stage_c_version.c} (100%) rename test/C/{elpa2_test_real_c_version.c => elpa2/legacy_interface/legacy_real_2stage_c_version.c} (100%) rename test/Fortran/{test_driver_complex.F90 => driver/legacy_interface/legacy_complex_driver.F90} (99%) rename test/Fortran/{test_driver_real.F90 => driver/legacy_interface/legacy_real_driver.F90} (99%) rename test/Fortran/{test_driver_complex_single.F90 => driver/legacy_interface/legacy_single_complex_driver.F90} (99%) rename test/Fortran/{test_driver_real_single.F90 => driver/legacy_interface/legacy_single_real_driver.F90} (99%) rename test/Fortran/{ => elpa1}/complex_1stage.F90 (99%) rename test/Fortran/{ => elpa1}/complex_1stage_gpu.F90 (99%) rename test/Fortran/elpa1/{complex.F90 => legacy_interface/legacy_complex.F90} (99%) rename test/Fortran/elpa1/{complex_cholesky.F90 => legacy_interface/legacy_complex_cholesky.F90} (100%) rename test/Fortran/elpa1/{complex_gpu.F90 => legacy_interface/legacy_complex_gpu.F90} (99%) rename test/Fortran/elpa1/{complex_invert_trm.F90 => legacy_interface/legacy_complex_invert_trm.F90} (100%) rename test/Fortran/{test_transpose_multiply_complex.F90 => elpa1/legacy_interface/legacy_complex_transpose_multiply.F90} (100%) rename test/Fortran/elpa1/{real.F90 => legacy_interface/legacy_real.F90} (99%) rename test/Fortran/{test_real_with_c.F90 => elpa1/legacy_interface/legacy_real_1stage_with_c.F90} (100%) rename test/Fortran/elpa1/{real_cholesky.F90 => legacy_interface/legacy_real_cholesky.F90} (100%) rename test/Fortran/elpa1/{real_gpu.F90 => legacy_interface/legacy_real_gpu.F90} (99%) rename test/Fortran/elpa1/{real_invert_trm.F90 => legacy_interface/legacy_real_invert_trm.F90} (100%) rename test/Fortran/{test_transpose_multiply_real.F90 => elpa1/legacy_interface/legacy_real_transpose_multiply.F90} (100%) rename test/Fortran/elpa1/{single_complex.F90 => legacy_interface/legacy_single_complex.F90} (99%) rename test/Fortran/elpa1/{single_complex_cholesky.F90 => legacy_interface/legacy_single_complex_cholesky.F90} (100%) rename test/Fortran/elpa1/{single_complex_gpu.F90 => legacy_interface/legacy_single_complex_gpu.F90} (99%) rename test/Fortran/elpa1/{single_complex_invert_trm.F90 => legacy_interface/legacy_single_complex_invert_trm.F90} (100%) rename test/Fortran/{test_transpose_multiply_complex_single.F90 => elpa1/legacy_interface/legacy_single_complex_transpose_multiply.F90} (100%) rename test/Fortran/elpa1/{single_real.F90 => legacy_interface/legacy_single_real.F90} (99%) rename test/Fortran/elpa1/{single_real_cholesky.F90 => legacy_interface/legacy_single_real_cholesky.F90} (100%) rename test/Fortran/elpa1/{single_real_gpu.F90 => legacy_interface/legacy_single_real_gpu.F90} (99%) rename test/Fortran/elpa1/{single_real_invert_trm.F90 => legacy_interface/legacy_single_real_invert_trm.F90} (100%) rename test/Fortran/{test_transpose_multiply_real_single.F90 => elpa1/legacy_interface/legacy_single_real_transpose_multiply.F90} (100%) rename test/Fortran/elpa1/{single_toeplitz.F90 => legacy_interface/legacy_single_toeplitz.F90} (99%) rename test/Fortran/elpa1/{toeplitz.F90 => legacy_interface/legacy_toeplitz.F90} (99%) rename test/Fortran/{ => elpa1}/real_1stage.F90 (99%) rename test/Fortran/{ => elpa1}/real_1stage_gpu.F90 (99%) rename test/Fortran/{ => elpa1}/single_complex_1stage.F90 (99%) rename test/Fortran/{ => elpa1}/single_complex_1stage_gpu.F90 (99%) rename test/Fortran/{ => elpa1}/single_real_1stage.F90 (99%) rename test/Fortran/{ => elpa1}/single_real_1stage_gpu.F90 (99%) rename test/Fortran/{ => elpa2}/complex_2stage.F90 (99%) rename test/Fortran/{ => elpa2}/complex_2stage_banded.F90 (99%) rename test/Fortran/{ => elpa2}/complex_2stage_gpu.F90 (99%) rename test/Fortran/elpa2/{complex.F90 => legacy_interface/legacy_complex.F90} (99%) rename test/Fortran/elpa2/{complex_api.F90 => legacy_interface/legacy_complex_api.F90} (99%) rename test/Fortran/elpa2/{complex_default_kernel.F90 => legacy_interface/legacy_complex_default_kernel.F90} (99%) rename test/Fortran/elpa2/{complex_gpu.F90 => legacy_interface/legacy_complex_gpu.F90} (99%) rename test/Fortran/elpa2/{real.F90 => legacy_interface/legacy_real.F90} (99%) rename test/Fortran/elpa2/{real_api.F90 => legacy_interface/legacy_real_api.F90} (99%) rename test/Fortran/elpa2/{real_default_kernel.F90 => legacy_interface/legacy_real_default_kernel.F90} (99%) rename test/Fortran/elpa2/{real_gpu.F90 => legacy_interface/legacy_real_gpu.F90} (99%) rename test/Fortran/elpa2/{real_qr.F90 => legacy_interface/legacy_real_qr.F90} (99%) rename test/Fortran/elpa2/{single_complex.F90 => legacy_interface/legacy_single_complex.F90} (99%) rename test/Fortran/elpa2/{single_complex_api.F90 => legacy_interface/legacy_single_complex_api.F90} (99%) rename test/Fortran/elpa2/{single_complex_default_kernel.F90 => legacy_interface/legacy_single_complex_default_kernel.F90} (99%) rename test/Fortran/elpa2/{single_complex_gpu.F90 => legacy_interface/legacy_single_complex_gpu.F90} (99%) rename test/Fortran/elpa2/{single_real.F90 => legacy_interface/legacy_single_real.F90} (99%) rename test/Fortran/elpa2/{single_real_api.F90 => legacy_interface/legacy_single_real_api.F90} (99%) rename test/Fortran/elpa2/{single_real_default_kernel.F90 => legacy_interface/legacy_single_real_default_kernel.F90} (99%) rename test/Fortran/elpa2/{single_real_gpu.F90 => legacy_interface/legacy_single_real_gpu.F90} (99%) rename test/Fortran/elpa2/{single_real_qr.F90 => legacy_interface/legacy_single_real_qr.F90} (99%) rename test/Fortran/{ => elpa2}/real_2stage.F90 (99%) rename test/Fortran/{ => elpa2}/real_2stage_banded.F90 (99%) rename test/Fortran/{ => elpa2}/real_2stage_gpu.F90 (99%) rename test/Fortran/{ => elpa2}/single_complex_2stage.F90 (99%) rename test/Fortran/{ => elpa2}/single_complex_2stage_banded.F90 (99%) rename test/Fortran/{ => elpa2}/single_complex_2stage_gpu.F90 (99%) rename test/Fortran/{ => elpa2}/single_real_2stage.F90 (99%) rename test/Fortran/{ => elpa2}/single_real_2stage_banded.F90 (99%) rename test/Fortran/{ => elpa2}/single_real_2stage_gpu.F90 (99%) delete mode 100644 test/Fortran/test_transpose_multiply_complex_2stage.F90 delete mode 100644 test/Fortran/test_transpose_multiply_complex_single_2stage.F90 delete mode 100644 test/Fortran/test_transpose_multiply_real_single_2stage.F90 diff --git a/Makefile.am b/Makefile.am index f2dace98..153ba9a3 100644 --- a/Makefile.am +++ b/Makefile.am @@ -465,77 +465,77 @@ endif if ENABLE_LEGACY noinst_PROGRAMS += \ - elpa1_test_real@SUFFIX@ \ - elpa1_test_complex@SUFFIX@ \ - elpa2_test_real@SUFFIX@ \ - elpa2_test_real_default@SUFFIX@ \ - elpa2_test_real_qr@SUFFIX@ \ - elpa2_test_real_api@SUFFIX@ \ - elpa2_test_complex@SUFFIX@ \ - elpa2_test_complex_default@SUFFIX@ \ - elpa2_test_complex_api@SUFFIX@ \ - elpa_driver_real@SUFFIX@ \ - elpa_driver_complex@SUFFIX@ \ - elpa1_real_toeplitz@SUFFIX@ \ - elpa1_real_transpose_multiply@SUFFIX@ \ - elpa1_complex_transpose_multiply@SUFFIX@ \ - elpa1_real_cholesky@SUFFIX@ \ - elpa1_real_invert_trm@SUFFIX@ \ - elpa1_complex_cholesky@SUFFIX@ \ - elpa1_complex_invert_trm@SUFFIX@ \ - elpa1_test_real_with_c@SUFFIX@ \ - elpa1_test_real_c_version@SUFFIX@ \ - elpa1_test_complex_c_version@SUFFIX@ \ - elpa2_test_real_c_version@SUFFIX@ \ - elpa2_test_complex_c_version@SUFFIX@ \ - elpa_driver_real_c_version@SUFFIX@ \ - elpa_driver_complex_c_version@SUFFIX@ + legacy_real_1stage@SUFFIX@ \ + legacy_complex_1stage@SUFFIX@ \ + legacy_real_2stage@SUFFIX@ \ + legacy_real_2stage_default@SUFFIX@ \ + legacy_real_2stage_qr@SUFFIX@ \ + legacy_real_2stage_api@SUFFIX@ \ + legacy_complex_2stage@SUFFIX@ \ + legacy_complex_2stage_default@SUFFIX@ \ + legacy_complex_2stage_api@SUFFIX@ \ + legacy_real_driver@SUFFIX@ \ + legacy_complex_driver@SUFFIX@ \ + legacy_real_toeplitz@SUFFIX@ \ + legacy_real_transpose_multiply@SUFFIX@ \ + legacy_complex_transpose_multiply@SUFFIX@ \ + legacy_real_cholesky@SUFFIX@ \ + legacy_real_invert_trm@SUFFIX@ \ + legacy_complex_cholesky@SUFFIX@ \ + legacy_complex_invert_trm@SUFFIX@ \ + legacy_real_1stage_with_c@SUFFIX@ \ + legacy_real_1stage_c_version@SUFFIX@ \ + legacy_complex_1stage_c_version@SUFFIX@ \ + legacy_real_2stage_c_version@SUFFIX@ \ + legacy_complex_2stage_c_version@SUFFIX@ \ + legacy_real_driver_c_version@SUFFIX@ \ + legacy_complex_driver_c_version@SUFFIX@ if WANT_SINGLE_PRECISION_COMPLEX noinst_PROGRAMS += \ - elpa1_test_complex_single_precision@SUFFIX@ \ - elpa2_test_complex_single_precision@SUFFIX@ \ - elpa2_test_complex_default_single_precision@SUFFIX@ \ - elpa1_complex_transpose_multiply_single_precision@SUFFIX@ \ - elpa_driver_complex_single_precision@SUFFIX@ \ - elpa1_complex_cholesky_single_precision@SUFFIX@ \ - elpa1_complex_invert_trm_single_precision@SUFFIX@ \ - elpa2_test_complex_api_single_precision@SUFFIX@ \ - elpa_driver_complex_c_version_single_precision@SUFFIX@ + legacy_single_complex_1stage@SUFFIX@ \ + legacy_single_complex_2stage@SUFFIX@ \ + legacy_single_complex_2stage_default@SUFFIX@ \ + legacy_single_complex_transpose_multiply@SUFFIX@ \ + legacy_single_complex_driver@SUFFIX@ \ + legacy_single_complex_cholesky@SUFFIX@ \ + legacy_single_complex_invert_trm@SUFFIX@ \ + legacy_single_complex_2stage_api@SUFFIX@ \ + legacy_single_complex_driver_c_version@SUFFIX@ endif if WANT_SINGLE_PRECISION_REAL noinst_PROGRAMS += \ - elpa1_test_real_single_precision@SUFFIX@ \ - elpa2_test_real_single_precision@SUFFIX@ \ - elpa2_test_real_default_single_precision@SUFFIX@ \ - elpa2_test_real_qr_single_precision@SUFFIX@ \ - elpa2_test_real_api_single_precision@SUFFIX@ \ - elpa_driver_real_single_precision@SUFFIX@ \ - elpa1_real_transpose_multiply_single_precision@SUFFIX@ \ - elpa1_real_cholesky_single_precision@SUFFIX@ \ - elpa1_real_invert_trm_single_precision@SUFFIX@ \ - elpa_driver_real_c_version_single_precision@SUFFIX@ \ - elpa1_real_toeplitz_single_precision@SUFFIX@ + legacy_single_real_1stage@SUFFIX@ \ + legacy_single_real_2stage@SUFFIX@ \ + legacy_single_real_2stage_default@SUFFIX@ \ + legacy_single_real_2stage_qr@SUFFIX@ \ + legacy_single_real_2stage_api@SUFFIX@ \ + legacy_single_real_driver@SUFFIX@ \ + legacy_single_real_transpose_multiply@SUFFIX@ \ + legacy_single_real_cholesky@SUFFIX@ \ + legacy_single_real_invert_trm@SUFFIX@ \ + legacy_single_real_driver_c_version@SUFFIX@ \ + legacy_single_real_toeplitz@SUFFIX@ endif if WITH_GPU_VERSION noinst_PROGRAMS += \ - elpa1_test_complex_gpu@SUFFIX@ \ - elpa1_test_real_gpu@SUFFIX@ \ - elpa2_test_complex_gpu@SUFFIX@ \ - elpa2_test_real_gpu@SUFFIX@ + legacy_complex_1stage_gpu@SUFFIX@ \ + legacy_real_1stage_gpu@SUFFIX@ \ + legacy_complex_2stage_gpu@SUFFIX@ \ + legacy_real_2stage_gpu@SUFFIX@ if WANT_SINGLE_PRECISION_REAL noinst_PROGRAMS += \ - elpa1_test_real_gpu_single_precision@SUFFIX@ \ - elpa2_test_real_gpu_single_precision@SUFFIX@ + legacy_single_real_1stage_gpu@SUFFIX@ \ + legacy_single_real_2stage_gpu@SUFFIX@ endif if WANT_SINGLE_PRECISION_COMPLEX noinst_PROGRAMS += \ - elpa1_test_complex_gpu_single_precision@SUFFIX@ \ - elpa2_test_complex_gpu_single_precision@SUFFIX@ + legacy_single_complex_1stage_gpu@SUFFIX@ \ + legacy_single_complex_2stage_gpu@SUFFIX@ endif endif endif @@ -637,92 +637,111 @@ test_single_complex_2stage_FCFLAGS = $(AM_FCFLAGS) $(FC_MODOUT)private_modules $ -DTEST_SOLVER_2STAGE \ -DTEST_GPU=0 endif +real_2stage_banded@SUFFIX@_SOURCES = test/Fortran/elpa2/real_2stage_banded.F90 +real_2stage_banded@SUFFIX@_LDADD = $(build_lib) +real_2stage_banded@SUFFIX@_FCFLAGS = $(AM_FCFLAGS) $(FC_MODOUT)private_modules $(FC_MODINC)private_modules +EXTRA_real_2stage_banded@SUFFIX@_DEPENDENCIES = test/Fortran/elpa_print_headers.X90 -real_2stage@SUFFIX@_SOURCES = test/Fortran/real_2stage.F90 +complex_2stage_banded@SUFFIX@_SOURCES = test/Fortran/elpa2/complex_2stage_banded.F90 +complex_2stage_banded@SUFFIX@_LDADD = $(build_lib) +complex_2stage_banded@SUFFIX@_FCFLAGS = $(AM_FCFLAGS) $(FC_MODOUT)private_modules $(FC_MODINC)private_modules +EXTRA_complex_2stage_banded@SUFFIX@_DEPENDENCIES = test/Fortran/elpa_print_headers.X90 + +real_2stage@SUFFIX@_SOURCES = test/Fortran/elpa2/real_2stage.F90 real_2stage@SUFFIX@_LDADD = $(build_lib) $(FCLIBS) real_2stage@SUFFIX@_FCFLAGS = $(AM_FCFLAGS) $(FC_MODOUT)private_modules $(FC_MODINC)private_modules EXTRA_real_2stage@SUFFIX@_DEPENDENCIES = test/Fortran/elpa_print_headers.X90 -complex_2stage@SUFFIX@_SOURCES = test/Fortran/complex_2stage.F90 +complex_2stage@SUFFIX@_SOURCES = test/Fortran/elpa2/complex_2stage.F90 complex_2stage@SUFFIX@_LDADD = $(build_lib) $(FCLIBS) complex_2stage@SUFFIX@_FCFLAGS = $(AM_FCFLAGS) $(FC_MODOUT)private_modules $(FC_MODINC)private_modules EXTRA_complex_2stage@SUFFIX@_DEPENDENCIES = test/Fortran/elpa_print_headers.X90 -real_1stage@SUFFIX@_SOURCES = test/Fortran/real_1stage.F90 +real_1stage@SUFFIX@_SOURCES = test/Fortran/elpa1/real_1stage.F90 real_1stage@SUFFIX@_LDADD = $(build_lib) $(FCLIBS) real_1stage@SUFFIX@_FCFLAGS = $(AM_FCFLAGS) $(FC_MODOUT)private_modules $(FC_MODINC)private_modules EXTRA_real_1stage@SUFFIX@_DEPENDENCIES = test/Fortran/elpa_print_headers.X90 -complex_1stage@SUFFIX@_SOURCES = test/Fortran/complex_1stage.F90 +complex_1stage@SUFFIX@_SOURCES = test/Fortran/elpa1/complex_1stage.F90 complex_1stage@SUFFIX@_LDADD = $(build_lib) $(FCLIBS) complex_1stage@SUFFIX@_FCFLAGS = $(AM_FCFLAGS) $(FC_MODOUT)private_modules $(FC_MODINC)private_modules EXTRA_complex_1stage@SUFFIX@_DEPENDENCIES = test/Fortran/elpa_print_headers.X90 if WANT_SINGLE_PRECISION_REAL -single_real_2stage@SUFFIX@_SOURCES = test/Fortran/single_real_2stage.F90 +single_real_2stage@SUFFIX@_SOURCES = test/Fortran/elpa2/single_real_2stage.F90 single_real_2stage@SUFFIX@_LDADD = $(build_lib) $(FCLIBS) single_real_2stage@SUFFIX@_FCFLAGS = $(AM_FCFLAGS) $(FC_MODOUT)private_modules $(FC_MODINC)private_modules EXTRA_single_real_2stage@SUFFIX@_DEPENDENCIES = test/Fortran/elpa_print_headers.X90 -single_real_1stage@SUFFIX@_SOURCES = test/Fortran/single_real_1stage.F90 +single_real_1stage@SUFFIX@_SOURCES = test/Fortran/elpa1/single_real_1stage.F90 single_real_1stage@SUFFIX@_LDADD = $(build_lib) $(FCLIBS) single_real_1stage@SUFFIX@_FCFLAGS = $(AM_FCFLAGS) $(FC_MODOUT)private_modules $(FC_MODINC)private_modules EXTRA_single_real_1stage@SUFFIX@_DEPENDENCIES = test/Fortran/elpa_print_headers.X90 endif if WANT_SINGLE_PRECISION_COMPLEX -single_complex_2stage@SUFFIX@_SOURCES = test/Fortran/single_complex_2stage.F90 +single_complex_2stage@SUFFIX@_SOURCES = test/Fortran/elpa2/single_complex_2stage.F90 single_complex_2stage@SUFFIX@_LDADD = $(build_lib) $(FCLIBS) single_complex_2stage@SUFFIX@_FCFLAGS = $(AM_FCFLAGS) $(FC_MODOUT)private_modules $(FC_MODINC)private_modules EXTRA_single_complex_2stage@SUFFIX@_DEPENDENCIES = test/Fortran/elpa_print_headers.X90 -single_complex_1stage@SUFFIX@_SOURCES = test/Fortran/single_complex_1stage.F90 +single_complex_1stage@SUFFIX@_SOURCES = test/Fortran/elpa1/single_complex_1stage.F90 single_complex_1stage@SUFFIX@_LDADD = $(build_lib) $(FCLIBS) single_complex_1stage@SUFFIX@_FCFLAGS = $(AM_FCFLAGS) $(FC_MODOUT)private_modules $(FC_MODINC)private_modules EXTRA_single_complex_1stage@SUFFIX@_DEPENDENCIES = test/Fortran/elpa_print_headers.X90 endif if WITH_GPU_VERSION -real_1stage_gpu@SUFFIX@_SOURCES = test/Fortran/real_1stage_gpu.F90 +real_1stage_gpu@SUFFIX@_SOURCES = test/Fortran/elpa1/real_1stage_gpu.F90 real_1stage_gpu@SUFFIX@_LDADD = $(build_lib) real_1stage_gpu@SUFFIX@_FCFLAGS = $(AM_FCFLAGS) $(FC_MODOUT)private_modules $(FC_MODINC)private_modules EXTRA_real_1stage_gpu@SUFFIX@_DEPENDENCIES = test/Fortran/elpa_print_headers.X90 -complex_1stage_gpu@SUFFIX@_SOURCES = test/Fortran/complex_1stage_gpu.F90 +complex_1stage_gpu@SUFFIX@_SOURCES = test/Fortran/elpa1/complex_1stage_gpu.F90 complex_1stage_gpu@SUFFIX@_LDADD = $(build_lib) complex_1stage_gpu@SUFFIX@_FCFLAGS = $(AM_FCFLAGS) $(FC_MODOUT)private_modules $(FC_MODINC)private_modules EXTRA_complex_1stage_gpu@SUFFIX@_DEPENDENCIES = test/Fortran/elpa_print_headers.X90 -real_2stage_gpu@SUFFIX@_SOURCES = test/Fortran/real_2stage_gpu.F90 +real_2stage_gpu@SUFFIX@_SOURCES = test/Fortran/elpa2/real_2stage_gpu.F90 real_2stage_gpu@SUFFIX@_LDADD = $(build_lib) real_2stage_gpu@SUFFIX@_FCFLAGS = $(AM_FCFLAGS) $(FC_MODOUT)private_modules $(FC_MODINC)private_modules EXTRA_real_2stage_gpu@SUFFIX@_DEPENDENCIES = test/Fortran/elpa_print_headers.X90 -complex_2stage_gpu@SUFFIX@_SOURCES = test/Fortran/complex_2stage_gpu.F90 +complex_2stage_gpu@SUFFIX@_SOURCES = test/Fortran/elpa2/complex_2stage_gpu.F90 complex_2stage_gpu@SUFFIX@_LDADD = $(build_lib) complex_2stage_gpu@SUFFIX@_FCFLAGS = $(AM_FCFLAGS) $(FC_MODOUT)private_modules $(FC_MODINC)private_modules EXTRA_complex_2stage_gpu@SUFFIX@_DEPENDENCIES = test/Fortran/elpa_print_headers.X90 endif if WANT_SINGLE_PRECISION_REAL -single_real_1stage_gpu@SUFFIX@_SOURCES = test/Fortran/single_real_1stage_gpu.F90 +single_real_2stage_banded@SUFFIX@_SOURCES = test/Fortran/elpa2/single_real_2stage_banded.F90 +single_real_2stage_banded@SUFFIX@_LDADD = $(build_lib) +single_real_2stage_banded@SUFFIX@_FCFLAGS = $(AM_FCFLAGS) $(FC_MODOUT)private_modules $(FC_MODINC)private_modules +EXTRA_single_real_2stage_banded@SUFFIX@_DEPENDENCIES = test/Fortran/elpa_print_headers.X90 + +single_real_1stage_gpu@SUFFIX@_SOURCES = test/Fortran/elpa1/single_real_1stage_gpu.F90 single_real_1stage_gpu@SUFFIX@_LDADD = $(build_lib) single_real_1stage_gpu@SUFFIX@_FCFLAGS = $(AM_FCFLAGS) $(FC_MODOUT)private_modules $(FC_MODINC)private_modules EXTRA_single_real_1stage_gpu@SUFFIX@_DEPENDENCIES = test/Fortran/elpa_print_headers.X90 -single_real_2stage_gpu@SUFFIX@_SOURCES = test/Fortran/single_real_2stage_gpu.F90 +single_real_2stage_gpu@SUFFIX@_SOURCES = test/Fortran/elpa2/single_real_2stage_gpu.F90 single_real_2stage_gpu@SUFFIX@_LDADD = $(build_lib) single_real_2stage_gpu@SUFFIX@_FCFLAGS = $(AM_FCFLAGS) $(FC_MODOUT)private_modules $(FC_MODINC)private_modules EXTRA_single_real_2stage_gpu@SUFFIX@_DEPENDENCIES = test/Fortran/elpa_print_headers.X90 endif if WANT_SINGLE_PRECISION_COMPLEX -single_complex_1stage_gpu@SUFFIX@_SOURCES = test/Fortran/single_complex_1stage_gpu.F90 +single_complex_2stage_banded@SUFFIX@_SOURCES = test/Fortran/elpa2/single_complex_2stage_banded.F90 +single_complex_2stage_banded@SUFFIX@_LDADD = $(build_lib) +single_complex_2stage_banded@SUFFIX@_FCFLAGS = $(AM_FCFLAGS) $(FC_MODOUT)private_modules $(FC_MODINC)private_modules +EXTRA_single_complex_2stage_banded@SUFFIX@_DEPENDENCIES = test/Fortran/elpa_print_headers.X90 + +single_complex_1stage_gpu@SUFFIX@_SOURCES = test/Fortran/elpa1/single_complex_1stage_gpu.F90 single_complex_1stage_gpu@SUFFIX@_LDADD = $(build_lib) single_complex_1stage_gpu@SUFFIX@_FCFLAGS = $(AM_FCFLAGS) $(FC_MODOUT)private_modules $(FC_MODINC)private_modules EXTRA_single_complex_1stage_gpu@SUFFIX@_DEPENDENCIES = test/Fortran/elpa_print_headers.X90 -single_complex_2stage_gpu@SUFFIX@_SOURCES = test/Fortran/single_complex_2stage_gpu.F90 +single_complex_2stage_gpu@SUFFIX@_SOURCES = test/Fortran/elpa2/single_complex_2stage_gpu.F90 single_complex_2stage_gpu@SUFFIX@_LDADD = $(build_lib) single_complex_2stage_gpu@SUFFIX@_FCFLAGS = $(AM_FCFLAGS) $(FC_MODOUT)private_modules $(FC_MODINC)private_modules EXTRA_single_complex_2stage_gpu@SUFFIX@_DEPENDENCIES = test/Fortran/elpa_print_headers.X90 @@ -730,304 +749,284 @@ endif if ENABLE_LEGACY -elpa1_test_real_c_version@SUFFIX@_SOURCES = test/C/elpa1_test_real_c_version.c -elpa1_test_real_c_version@SUFFIX@_LDADD = $(build_lib) $(FCLIBS) -elpa1_test_real_c_version@SUFFIX@_FCFLAGS = $(AM_FCFLAGS) $(FC_MODOUT)private_modules $(FC_MODINC)private_modules -EXTRA_elpa1_test_real_c_version@SUFFIX@_DEPENDENCIES = test/Fortran/elpa_print_headers.X90 - -elpa1_test_real_with_c@SUFFIX@_SOURCES = test/Fortran/test_real_with_c.F90 -elpa1_test_real_with_c@SUFFIX@_LDADD = $(build_lib) -elpa1_test_real_with_c@SUFFIX@_FCFLAGS = $(AM_FCFLAGS) $(FC_MODOUT)private_modules $(FC_MODINC)private_modules -EXTRA_elpa1_test_real_with_c@SUFFIX@_DEPENDENCIES = test/Fortran/elpa_print_headers.X90 - -elpa_driver_real_c_version@SUFFIX@_SOURCES = test/C/elpa_driver_real_c_version.c -elpa_driver_real_c_version@SUFFIX@_LDADD = $(build_lib) $(FCLIBS) -elpa_driver_real_c_version@SUFFIX@_FCFLAGS = $(AM_FCFLAGS) $(FC_MODOUT)private_modules $(FC_MODINC)private_modules -EXTRA_elpa_driver_real_c_version@SUFFIX@_DEPENDENCIES = test/Fortran/elpa_print_headers.X90 - -elpa1_test_complex_c_version@SUFFIX@_SOURCES = test/C/elpa1_test_complex_c_version.c -elpa1_test_complex_c_version@SUFFIX@_LDADD = $(build_lib) $(FCLIBS) -elpa1_test_complex_c_version@SUFFIX@_FCFLAGS = $(AM_FCFLAGS) $(FC_MODOUT)private_modules $(FC_MODINC)private_modules -EXTRA_elpa1_test_complex_c_version@SUFFIX@_DEPENDENCIES = test/Fortran/elpa_print_headers.X90 - -elpa_driver_complex_c_version@SUFFIX@_SOURCES = test/C/elpa_driver_complex_c_version.c -elpa_driver_complex_c_version@SUFFIX@_LDADD = $(build_lib) $(FCLIBS) -elpa_driver_complex_c_version@SUFFIX@_FCFLAGS = $(AM_FCFLAGS) $(FC_MODOUT)private_modules $(FC_MODINC)private_modules -EXTRA_elpa_driver_complex_c_version@SUFFIX@_DEPENDENCIES = test/Fortran/elpa_print_headers.X90 - -elpa2_test_real_c_version@SUFFIX@_SOURCES = test/C/elpa2_test_real_c_version.c -elpa2_test_real_c_version@SUFFIX@_LDADD = $(build_lib) $(FCLIBS) -elpa2_test_real_c_version@SUFFIX@_FCFLAGS = $(AM_FCFLAGS) $(FC_MODOUT)private_modules $(FC_MODINC)private_modules -EXTRA_elpa2_test_real_c_version@SUFFIX@_DEPENDENCIES = test/Fortran/elpa_print_headers.X90 - -elpa2_test_complex_c_version@SUFFIX@_SOURCES = test/C/elpa2_test_complex_c_version.c -elpa2_test_complex_c_version@SUFFIX@_LDADD = $(build_lib) $(FCLIBS) -elpa2_test_complex_c_version@SUFFIX@_FCFLAGS = $(AM_FCFLAGS) $(FC_MODOUT)private_modules $(FC_MODINC)private_modules -EXTRA_elpa2_test_complex_c_version@SUFFIX@_DEPENDENCIES = test/Fortran/elpa_print_headers.X90 - -elpa1_test_real@SUFFIX@_SOURCES = test/Fortran/elpa1/real.F90 -elpa1_test_real@SUFFIX@_LDADD = $(build_lib) -elpa1_test_real@SUFFIX@_FCFLAGS = $(AM_FCFLAGS) $(FC_MODOUT)private_modules $(FC_MODINC)private_modules -EXTRA_elpa1_test_real@SUFFIX@_DEPENDENCIES = test/Fortran/elpa_print_headers.X90 - -elpa1_real_toeplitz@SUFFIX@_SOURCES = test/Fortran/elpa1/toeplitz.F90 -elpa1_real_toeplitz@SUFFIX@_LDADD = $(build_lib) -elpa1_real_toeplitz@SUFFIX@_FCFLAGS = $(AM_FCFLAGS) $(FC_MODOUT)private_modules $(FC_MODINC)private_modules -EXTRA_elpa1_real_toeplitz@SUFFIX@_DEPENDENCIES = test/Fortran/elpa_print_headers.X90 - -elpa1_real_transpose_multiply@SUFFIX@_SOURCES = test/Fortran/test_transpose_multiply_real.F90 -elpa1_real_transpose_multiply@SUFFIX@_LDADD = $(build_lib) -elpa1_real_transpose_multiply@SUFFIX@_FCFLAGS = $(AM_FCFLAGS) $(FC_MODOUT)private_modules $(FC_MODINC)private_modules -EXTRA_elpa1_real_transpose_multiply@SUFFIX@_DEPENDENCIES = test/Fortran/elpa_print_headers.X90 - -elpa1_complex_transpose_multiply@SUFFIX@_SOURCES = test/Fortran/test_transpose_multiply_complex.F90 -elpa1_complex_transpose_multiply@SUFFIX@_LDADD = $(build_lib) -elpa1_complex_transpose_multiply@SUFFIX@_FCFLAGS = $(AM_FCFLAGS) $(FC_MODOUT)private_modules $(FC_MODINC)private_modules -EXTRA_elpa1_complex_transpose_multiply@SUFFIX@_DEPENDENCIES = test/Fortran/elpa_print_headers.X90 - -elpa1_real_cholesky@SUFFIX@_SOURCES = test/Fortran/elpa1/real_cholesky.F90 -elpa1_real_cholesky@SUFFIX@_LDADD = $(build_lib) -elpa1_real_cholesky@SUFFIX@_FCFLAGS = $(AM_FCFLAGS) $(FC_MODOUT)private_modules $(FC_MODINC)private_modules -EXTRA_elpa1_real_cholesky@SUFFIX@_DEPENDENCIES = test/Fortran/elpa_print_headers.X90 - -elpa1_real_invert_trm@SUFFIX@_SOURCES = test/Fortran/elpa1/real_invert_trm.F90 -elpa1_real_invert_trm@SUFFIX@_LDADD = $(build_lib) -elpa1_real_invert_trm@SUFFIX@_FCFLAGS = $(AM_FCFLAGS) $(FC_MODOUT)private_modules $(FC_MODINC)private_modules -EXTRA_elpa1_real_invert_trm@SUFFIX@_DEPENDENCIES = test/Fortran/elpa_print_headers.X90 - -elpa1_complex_cholesky@SUFFIX@_SOURCES = test/Fortran/elpa1/complex_cholesky.F90 -elpa1_complex_cholesky@SUFFIX@_LDADD = $(build_lib) -elpa1_complex_cholesky@SUFFIX@_FCFLAGS = $(AM_FCFLAGS) $(FC_MODOUT)private_modules $(FC_MODINC)private_modules -EXTRA_elpa1_complex_cholesky@SUFFIX@_DEPENDENCIES = test/Fortran/elpa_print_headers.X90 - -elpa1_complex_invert_trm@SUFFIX@_SOURCES = test/Fortran/elpa1/complex_invert_trm.F90 -elpa1_complex_invert_trm@SUFFIX@_LDADD = $(build_lib) -elpa1_complex_invert_trm@SUFFIX@_FCFLAGS = $(AM_FCFLAGS) $(FC_MODOUT)private_modules $(FC_MODINC)private_modules -EXTRA_elpa1_complex_invert_trm@SUFFIX@_DEPENDENCIES = test/Fortran/elpa_print_headers.X90 - -elpa2_test_real@SUFFIX@_SOURCES = test/Fortran/elpa2/real.F90 -elpa2_test_real@SUFFIX@_LDADD = $(build_lib) -elpa2_test_real@SUFFIX@_FCFLAGS = $(AM_FCFLAGS) $(FC_MODOUT)private_modules $(FC_MODINC)private_modules -EXTRA_elpa2_test_real@SUFFIX@_DEPENDENCIES = test/Fortran/elpa_print_headers.X90 - -elpa2_test_real_default@SUFFIX@_SOURCES = test/Fortran/elpa2/real_default_kernel.F90 -elpa2_test_real_default@SUFFIX@_LDADD = $(build_lib) -elpa2_test_real_default@SUFFIX@_FCFLAGS = $(AM_FCFLAGS) $(FC_MODOUT)private_modules $(FC_MODINC)private_modules -EXTRA_elpa2_test_real_default@SUFFIX@_DEPENDENCIES = test/Fortran/elpa_print_headers.X90 - -elpa2_test_real_qr@SUFFIX@_SOURCES = test/Fortran/elpa2/real_qr.F90 -elpa2_test_real_qr@SUFFIX@_LDADD = $(build_lib) -elpa2_test_real_qr@SUFFIX@_FCFLAGS = $(AM_FCFLAGS) $(FC_MODOUT)private_modules $(FC_MODINC)private_modules -EXTRA_elpa2_test_real_qr@SUFFIX@_DEPENDENCIES = test/Fortran/elpa_print_headers.X90 - -elpa2_test_real_api@SUFFIX@_SOURCES = test/Fortran/elpa2/real_api.F90 -elpa2_test_real_api@SUFFIX@_LDADD = $(build_lib) -elpa2_test_real_api@SUFFIX@_FCFLAGS = $(AM_FCFLAGS) $(FC_MODOUT)private_modules $(FC_MODINC)private_modules -EXTRA_elpa2_test_real_api@SUFFIX@_DEPENDENCIES = test/Fortran/elpa_print_headers.X90 - -real_2stage_banded@SUFFIX@_SOURCES = test/Fortran/real_2stage_banded.F90 -real_2stage_banded@SUFFIX@_LDADD = $(build_lib) -real_2stage_banded@SUFFIX@_FCFLAGS = $(AM_FCFLAGS) $(FC_MODOUT)private_modules $(FC_MODINC)private_modules -EXTRA_real_2stage_banded@SUFFIX@_DEPENDENCIES = test/Fortran/elpa_print_headers.X90 - -elpa1_test_complex@SUFFIX@_SOURCES = test/Fortran/elpa1/complex.F90 -elpa1_test_complex@SUFFIX@_LDADD = $(build_lib) -elpa1_test_complex@SUFFIX@_FCFLAGS = $(AM_FCFLAGS) $(FC_MODOUT)private_modules $(FC_MODINC)private_modules -EXTRA_elpa1_test_complex@SUFFIX@_DEPENDENCIES = test/Fortran/elpa_print_headers.X90 - -elpa2_test_complex@SUFFIX@_SOURCES = test/Fortran/elpa2/complex.F90 -elpa2_test_complex@SUFFIX@_LDADD = $(build_lib) -elpa2_test_complex@SUFFIX@_FCFLAGS = $(AM_FCFLAGS) $(FC_MODOUT)private_modules $(FC_MODINC)private_modules -EXTRA_elpa2_test_complex@SUFFIX@_DEPENDENCIES = test/Fortran/elpa_print_headers.X90 - -elpa2_test_complex_default@SUFFIX@_SOURCES = test/Fortran/elpa2/complex_default_kernel.F90 -elpa2_test_complex_default@SUFFIX@_LDADD = $(build_lib) -elpa2_test_complex_default@SUFFIX@_FCFLAGS = $(AM_FCFLAGS) $(FC_MODOUT)private_modules $(FC_MODINC)private_modules -EXTRA_elpa2_test_complex_default@SUFFIX@_DEPENDENCIES = test/Fortran/elpa_print_headers.X90 - -elpa2_test_complex_api@SUFFIX@_SOURCES = test/Fortran/elpa2/complex_api.F90 -elpa2_test_complex_api@SUFFIX@_LDADD = $(build_lib) -elpa2_test_complex_api@SUFFIX@_FCFLAGS = $(AM_FCFLAGS) $(FC_MODOUT)private_modules $(FC_MODINC)private_modules -EXTRA_elpa2_test_complex_api@SUFFIX@_DEPENDENCIES = test/Fortran/elpa_print_headers.X90 - -complex_2stage_banded@SUFFIX@_SOURCES = test/Fortran/complex_2stage_banded.F90 -complex_2stage_banded@SUFFIX@_LDADD = $(build_lib) -complex_2stage_banded@SUFFIX@_FCFLAGS = $(AM_FCFLAGS) $(FC_MODOUT)private_modules $(FC_MODINC)private_modules -EXTRA_complex_2stage_banded@SUFFIX@_DEPENDENCIES = test/Fortran/elpa_print_headers.X90 - - -elpa_driver_real@SUFFIX@_SOURCES = test/Fortran/test_driver_real.F90 -elpa_driver_real@SUFFIX@_LDADD = $(build_lib) -elpa_driver_real@SUFFIX@_FCFLAGS = $(AM_FCFLAGS) $(FC_MODOUT)private_modules $(FC_MODINC)private_modules -EXTRA_elpa_driver_real@SUFFIX@_DEPENDENCIES = test/Fortran/elpa_print_headers.X90 - -elpa_driver_complex@SUFFIX@_SOURCES = test/Fortran/test_driver_complex.F90 -elpa_driver_complex@SUFFIX@_LDADD = $(build_lib) -elpa_driver_complex@SUFFIX@_FCFLAGS = $(AM_FCFLAGS) $(FC_MODOUT)private_modules $(FC_MODINC)private_modules -EXTRA_elpa_driver_complex@SUFFIX@_DEPENDENCIES = test/Fortran/elpa_print_headers.X90 +legacy_real_1stage_c_version@SUFFIX@_SOURCES = test/C/elpa1/legacy_interface/legacy_real_1stage_c_version.c +legacy_real_1stage_c_version@SUFFIX@_LDADD = $(build_lib) $(FCLIBS) +legacy_real_1stage_c_version@SUFFIX@_FCFLAGS = $(AM_FCFLAGS) $(FC_MODOUT)private_modules $(FC_MODINC)private_modules +EXTRA_legacy_real_1stage_c_version@SUFFIX@_DEPENDENCIES = test/Fortran/elpa_print_headers.X90 + +legacy_real_1stage_with_c@SUFFIX@_SOURCES = test/Fortran/elpa1/legacy_interface/legacy_real_1stage_with_c.F90 +legacy_real_1stage_with_c@SUFFIX@_LDADD = $(build_lib) +legacy_real_1stage_with_c@SUFFIX@_FCFLAGS = $(AM_FCFLAGS) $(FC_MODOUT)private_modules $(FC_MODINC)private_modules +EXTRA_legacy_real_1stage_with_c@SUFFIX@_DEPENDENCIES = test/Fortran/elpa_print_headers.X90 + +legacy_real_driver_c_version@SUFFIX@_SOURCES = test/C/driver/legacy_interface/legacy_real_driver_c_version.c +legacy_real_driver_c_version@SUFFIX@_LDADD = $(build_lib) $(FCLIBS) +legacy_real_driver_c_version@SUFFIX@_FCFLAGS = $(AM_FCFLAGS) $(FC_MODOUT)private_modules $(FC_MODINC)private_modules +EXTRA_legacy_real_driver_c_version@SUFFIX@_DEPENDENCIES = test/Fortran/elpa_print_headers.X90 + +legacy_complex_1stage_c_version@SUFFIX@_SOURCES = test/C/elpa1/legacy_interface/legacy_complex_1stage_c_version.c +legacy_complex_1stage_c_version@SUFFIX@_LDADD = $(build_lib) $(FCLIBS) +legacy_complex_1stage_c_version@SUFFIX@_FCFLAGS = $(AM_FCFLAGS) $(FC_MODOUT)private_modules $(FC_MODINC)private_modules +EXTRA_legacy_complex_1stage_c_version@SUFFIX@_DEPENDENCIES = test/Fortran/elpa_print_headers.X90 + +legacy_complex_driver_c_version@SUFFIX@_SOURCES = test/C/driver/legacy_interface/legacy_complex_driver_c_version.c +legacy_complex_driver_c_version@SUFFIX@_LDADD = $(build_lib) $(FCLIBS) +legacy_complex_driver_c_version@SUFFIX@_FCFLAGS = $(AM_FCFLAGS) $(FC_MODOUT)private_modules $(FC_MODINC)private_modules +EXTRA_legacy_complex_driver_c_version@SUFFIX@_DEPENDENCIES = test/Fortran/elpa_print_headers.X90 + +legacy_real_2stage_c_version@SUFFIX@_SOURCES = test/C/elpa2/legacy_interface/legacy_real_2stage_c_version.c +legacy_real_2stage_c_version@SUFFIX@_LDADD = $(build_lib) $(FCLIBS) +legacy_real_2stage_c_version@SUFFIX@_FCFLAGS = $(AM_FCFLAGS) $(FC_MODOUT)private_modules $(FC_MODINC)private_modules +EXTRA_legacy_real_2stage_c_version@SUFFIX@_DEPENDENCIES = test/Fortran/elpa_print_headers.X90 + +legacy_complex_2stage_c_version@SUFFIX@_SOURCES = test/C/elpa2/legacy_interface/legacy_complex_2stage_c_version.c +legacy_complex_2stage_c_version@SUFFIX@_LDADD = $(build_lib) $(FCLIBS) +legacy_complex_2stage_c_version@SUFFIX@_FCFLAGS = $(AM_FCFLAGS) $(FC_MODOUT)private_modules $(FC_MODINC)private_modules +EXTRA_legacy_complex_2stage_c_version@SUFFIX@_DEPENDENCIES = test/Fortran/elpa_print_headers.X90 + +legacy_real_1stage@SUFFIX@_SOURCES = test/Fortran/elpa1/legacy_interface/legacy_real.F90 +legacy_real_1stage@SUFFIX@_LDADD = $(build_lib) +legacy_real_1stage@SUFFIX@_FCFLAGS = $(AM_FCFLAGS) $(FC_MODOUT)private_modules $(FC_MODINC)private_modules +EXTRA_legacy_real_1stage@SUFFIX@_DEPENDENCIES = test/Fortran/elpa_print_headers.X90 + +legacy_real_toeplitz@SUFFIX@_SOURCES = test/Fortran/elpa1/legacy_interface/legacy_toeplitz.F90 +legacy_real_toeplitz@SUFFIX@_LDADD = $(build_lib) +legacy_real_toeplitz@SUFFIX@_FCFLAGS = $(AM_FCFLAGS) $(FC_MODOUT)private_modules $(FC_MODINC)private_modules +EXTRA_legacy_real_toeplitz@SUFFIX@_DEPENDENCIES = test/Fortran/elpa_print_headers.X90 + +legacy_real_transpose_multiply@SUFFIX@_SOURCES = test/Fortran/elpa1/legacy_interface/legacy_real_transpose_multiply.F90 +legacy_real_transpose_multiply@SUFFIX@_LDADD = $(build_lib) +legacy_real_transpose_multiply@SUFFIX@_FCFLAGS = $(AM_FCFLAGS) $(FC_MODOUT)private_modules $(FC_MODINC)private_modules +EXTRA_legacy_real_transpose_multiply@SUFFIX@_DEPENDENCIES = test/Fortran/elpa_print_headers.X90 + +legacy_complex_transpose_multiply@SUFFIX@_SOURCES = test/Fortran/elpa1/legacy_interface/legacy_complex_transpose_multiply.F90 +legacy_complex_transpose_multiply@SUFFIX@_LDADD = $(build_lib) +legacy_complex_transpose_multiply@SUFFIX@_FCFLAGS = $(AM_FCFLAGS) $(FC_MODOUT)private_modules $(FC_MODINC)private_modules +EXTRA_legacy_complex_transpose_multiply@SUFFIX@_DEPENDENCIES = test/Fortran/elpa_print_headers.X90 + +legacy_real_cholesky@SUFFIX@_SOURCES = test/Fortran/elpa1/legacy_interface/legacy_real_cholesky.F90 +legacy_real_cholesky@SUFFIX@_LDADD = $(build_lib) +legacy_real_cholesky@SUFFIX@_FCFLAGS = $(AM_FCFLAGS) $(FC_MODOUT)private_modules $(FC_MODINC)private_modules +EXTRA_legacy_real_cholesky@SUFFIX@_DEPENDENCIES = test/Fortran/elpa_print_headers.X90 + +legacy_real_invert_trm@SUFFIX@_SOURCES = test/Fortran/elpa1/legacy_interface/legacy_real_invert_trm.F90 +legacy_real_invert_trm@SUFFIX@_LDADD = $(build_lib) +legacy_real_invert_trm@SUFFIX@_FCFLAGS = $(AM_FCFLAGS) $(FC_MODOUT)private_modules $(FC_MODINC)private_modules +EXTRA_legacy_real_invert_trm@SUFFIX@_DEPENDENCIES = test/Fortran/elpa_print_headers.X90 + +legacy_complex_cholesky@SUFFIX@_SOURCES = test/Fortran/elpa1/legacy_interface/legacy_complex_cholesky.F90 +legacy_complex_cholesky@SUFFIX@_LDADD = $(build_lib) +legacy_complex_cholesky@SUFFIX@_FCFLAGS = $(AM_FCFLAGS) $(FC_MODOUT)private_modules $(FC_MODINC)private_modules +EXTRA_legacy_complex_cholesky@SUFFIX@_DEPENDENCIES = test/Fortran/elpa_print_headers.X90 + +legacy_complex_invert_trm@SUFFIX@_SOURCES = test/Fortran/elpa1/legacy_interface/legacy_complex_invert_trm.F90 +legacy_complex_invert_trm@SUFFIX@_LDADD = $(build_lib) +legacy_complex_invert_trm@SUFFIX@_FCFLAGS = $(AM_FCFLAGS) $(FC_MODOUT)private_modules $(FC_MODINC)private_modules +EXTRA_legacy_complex_invert_trm@SUFFIX@_DEPENDENCIES = test/Fortran/elpa_print_headers.X90 + +legacy_real_2stage@SUFFIX@_SOURCES = test/Fortran/elpa2/legacy_interface/legacy_real.F90 +legacy_real_2stage@SUFFIX@_LDADD = $(build_lib) +legacy_real_2stage@SUFFIX@_FCFLAGS = $(AM_FCFLAGS) $(FC_MODOUT)private_modules $(FC_MODINC)private_modules +EXTRA_legacy_real_2stage@SUFFIX@_DEPENDENCIES = test/Fortran/elpa_print_headers.X90 + +legacy_real_2stage_default@SUFFIX@_SOURCES = test/Fortran/elpa2/legacy_interface/legacy_real_default_kernel.F90 +legacy_real_2stage_default@SUFFIX@_LDADD = $(build_lib) +legacy_real_2stage_default@SUFFIX@_FCFLAGS = $(AM_FCFLAGS) $(FC_MODOUT)private_modules $(FC_MODINC)private_modules +EXTRA_legacy_real_2stage_default@SUFFIX@_DEPENDENCIES = test/Fortran/elpa_print_headers.X90 + +legacy_real_2stage_qr@SUFFIX@_SOURCES = test/Fortran/elpa2/legacy_interface/legacy_real_qr.F90 +legacy_real_2stage_qr@SUFFIX@_LDADD = $(build_lib) +legacy_real_2stage_qr@SUFFIX@_FCFLAGS = $(AM_FCFLAGS) $(FC_MODOUT)private_modules $(FC_MODINC)private_modules +EXTRA_legacy_real_2stage_qr@SUFFIX@_DEPENDENCIES = test/Fortran/elpa_print_headers.X90 + +legacy_real_2stage_api@SUFFIX@_SOURCES = test/Fortran/elpa2/legacy_interface/legacy_real_api.F90 +legacy_real_2stage_api@SUFFIX@_LDADD = $(build_lib) +legacy_real_2stage_api@SUFFIX@_FCFLAGS = $(AM_FCFLAGS) $(FC_MODOUT)private_modules $(FC_MODINC)private_modules +EXTRA_legacy_real_2stage_api@SUFFIX@_DEPENDENCIES = test/Fortran/elpa_print_headers.X90 + +legacy_complex_1stage@SUFFIX@_SOURCES = test/Fortran/elpa1/legacy_interface/legacy_complex.F90 +legacy_complex_1stage@SUFFIX@_LDADD = $(build_lib) +legacy_complex_1stage@SUFFIX@_FCFLAGS = $(AM_FCFLAGS) $(FC_MODOUT)private_modules $(FC_MODINC)private_modules +EXTRA_legacy_complex_1stage@SUFFIX@_DEPENDENCIES = test/Fortran/elpa_print_headers.X90 + +legacy_complex_2stage@SUFFIX@_SOURCES = test/Fortran/elpa2/legacy_interface/legacy_complex.F90 +legacy_complex_2stage@SUFFIX@_LDADD = $(build_lib) +legacy_complex_2stage@SUFFIX@_FCFLAGS = $(AM_FCFLAGS) $(FC_MODOUT)private_modules $(FC_MODINC)private_modules +EXTRA_legacy_complex_2stage@SUFFIX@_DEPENDENCIES = test/Fortran/elpa_print_headers.X90 + +legacy_complex_2stage_default@SUFFIX@_SOURCES = test/Fortran/elpa2/legacy_interface/legacy_complex_default_kernel.F90 +legacy_complex_2stage_default@SUFFIX@_LDADD = $(build_lib) +legacy_complex_2stage_default@SUFFIX@_FCFLAGS = $(AM_FCFLAGS) $(FC_MODOUT)private_modules $(FC_MODINC)private_modules +EXTRA_legacy_complex_2stage_default@SUFFIX@_DEPENDENCIES = test/Fortran/elpa_print_headers.X90 + +legacy_complex_2stage_api@SUFFIX@_SOURCES = test/Fortran/elpa2/legacy_interface/legacy_complex_api.F90 +legacy_complex_2stage_api@SUFFIX@_LDADD = $(build_lib) +legacy_complex_2stage_api@SUFFIX@_FCFLAGS = $(AM_FCFLAGS) $(FC_MODOUT)private_modules $(FC_MODINC)private_modules +EXTRA_legacy_complex_2stage_api@SUFFIX@_DEPENDENCIES = test/Fortran/elpa_print_headers.X90 + +legacy_real_driver@SUFFIX@_SOURCES = test/Fortran/driver/legacy_interface/legacy_real_driver.F90 +legacy_real_driver@SUFFIX@_LDADD = $(build_lib) +legacy_real_driver@SUFFIX@_FCFLAGS = $(AM_FCFLAGS) $(FC_MODOUT)private_modules $(FC_MODINC)private_modules +EXTRA_legacy_real_driver@SUFFIX@_DEPENDENCIES = test/Fortran/elpa_print_headers.X90 + +legacy_complex_driver@SUFFIX@_SOURCES = test/Fortran/driver/legacy_interface/legacy_complex_driver.F90 +legacy_complex_driver@SUFFIX@_LDADD = $(build_lib) +legacy_complex_driver@SUFFIX@_FCFLAGS = $(AM_FCFLAGS) $(FC_MODOUT)private_modules $(FC_MODINC)private_modules +EXTRA_legacy_complex_driver@SUFFIX@_DEPENDENCIES = test/Fortran/elpa_print_headers.X90 elpa_tests@SUFFIX@_SOURCES = test/Fortran/elpa_tests.F90 elpa_tests@SUFFIX@_LDADD = $(build_lib) elpa_tests@SUFFIX@_FCFLAGS = $(AM_FCFLAGS) $(FC_MODOUT)private_modules $(FC_MODINC)private_modules if WANT_SINGLE_PRECISION_REAL -single_real_2stage_banded@SUFFIX@_SOURCES = test/Fortran/single_real_2stage_banded.F90 -single_real_2stage_banded@SUFFIX@_LDADD = $(build_lib) -single_real_2stage_banded@SUFFIX@_FCFLAGS = $(AM_FCFLAGS) $(FC_MODOUT)private_modules $(FC_MODINC)private_modules -EXTRA_single_real_2stage_banded@SUFFIX@_DEPENDENCIES = test/Fortran/elpa_print_headers.X90 -elpa1_test_real_single_precision@SUFFIX@_SOURCES = test/Fortran/elpa1/single_real.F90 -elpa1_test_real_single_precision@SUFFIX@_LDADD = $(build_lib) -elpa1_test_real_single_precision@SUFFIX@_FCFLAGS = $(AM_FCFLAGS) $(FC_MODOUT)private_modules $(FC_MODINC)private_modules -EXTRA_elpa1_test_real_single_precision@SUFFIX@_DEPENDENCIES = test/Fortran/elpa_print_headers.X90 - -elpa2_test_real_single_precision@SUFFIX@_SOURCES = test/Fortran/elpa2/single_real.F90 -elpa2_test_real_single_precision@SUFFIX@_LDADD = $(build_lib) -elpa2_test_real_single_precision@SUFFIX@_FCFLAGS = $(AM_FCFLAGS) $(FC_MODOUT)private_modules $(FC_MODINC)private_modules -EXTRA_elpa2_test_real_single_precision@SUFFIX@_DEPENDENCIES = test/Fortran/elpa_print_headers.X90 - -elpa_driver_real_single_precision@SUFFIX@_SOURCES = test/Fortran/test_driver_real_single.F90 -elpa_driver_real_single_precision@SUFFIX@_LDADD = $(build_lib) -elpa_driver_real_single_precision@SUFFIX@_FCFLAGS = $(AM_FCFLAGS) $(FC_MODOUT)private_modules $(FC_MODINC)private_modules -EXTRA_elpa_driver_real_single_precision@SUFFIX@_DEPENDENCIES = test/Fortran/elpa_print_headers.X90 - -elpa1_real_toeplitz_single_precision@SUFFIX@_SOURCES = test/Fortran/elpa1/single_toeplitz.F90 -elpa1_real_toeplitz_single_precision@SUFFIX@_LDADD = $(build_lib) -elpa1_real_toeplitz_single_precision@SUFFIX@_FCFLAGS = $(AM_FCFLAGS) $(FC_MODOUT)private_modules $(FC_MODINC)private_modules -EXTRA_elpa1_real_toeplitz_single_precision@SUFFIX@_DEPENDENCIES = test/Fortran/elpa_print_headers.X90 - -elpa1_real_transpose_multiply_single_precision@SUFFIX@_SOURCES = test/Fortran/test_transpose_multiply_real_single.F90 -elpa1_real_transpose_multiply_single_precision@SUFFIX@_LDADD = $(build_lib) -elpa1_real_transpose_multiply_single_precision@SUFFIX@_FCFLAGS = $(AM_FCFLAGS) $(FC_MODOUT)private_modules $(FC_MODINC)private_modules -EXTRA_elpa1_real_transpose_multiply_single_precision@SUFFIX@_DEPENDENCIES = test/Fortran/elpa_print_headers.X90 - -elpa_driver_real_c_version_single_precision@SUFFIX@_SOURCES = test/C/elpa_driver_real_c_version_single.c -elpa_driver_real_c_version_single_precision@SUFFIX@_LDADD = $(build_lib) $(FCLIBS) -elpa_driver_real_c_version_single_precision@SUFFIX@_FCFLAGS = $(AM_FCFLAGS) $(FC_MODOUT)private_modules $(FC_MODINC)private_modules -EXTRA_elpa_driver_real_c_version_single_precision@SUFFIX@_DEPENDENCIES = test/Fortran/elpa_print_headers.X90 - -elpa1_real_cholesky_single_precision@SUFFIX@_SOURCES = test/Fortran/elpa1/single_real_cholesky.F90 -elpa1_real_cholesky_single_precision@SUFFIX@_LDADD = $(build_lib) -elpa1_real_cholesky_single_precision@SUFFIX@_FCFLAGS = $(AM_FCFLAGS) $(FC_MODOUT)private_modules $(FC_MODINC)private_modules -EXTRA_elpa1_real_cholesky_single_precision@SUFFIX@_DEPENDENCIES = test/Fortran/elpa_print_headers.X90 - -elpa1_real_invert_trm_single_precision@SUFFIX@_SOURCES = test/Fortran/elpa1/single_real_invert_trm.F90 -elpa1_real_invert_trm_single_precision@SUFFIX@_LDADD = $(build_lib) -elpa1_real_invert_trm_single_precision@SUFFIX@_FCFLAGS = $(AM_FCFLAGS) $(FC_MODOUT)private_modules $(FC_MODINC)private_modules -EXTRA_elpa1_real_invert_trm_single_precision@SUFFIX@_DEPENDENCIES = test/Fortran/elpa_print_headers.X90 - -elpa2_test_real_default_single_precision@SUFFIX@_SOURCES = test/Fortran/elpa2/single_real_default_kernel.F90 -elpa2_test_real_default_single_precision@SUFFIX@_LDADD = $(build_lib) -elpa2_test_real_default_single_precision@SUFFIX@_FCFLAGS = $(AM_FCFLAGS) $(FC_MODOUT)private_modules $(FC_MODINC)private_modules -EXTRA_elpa2_test_real_default_single_precision@SUFFIX@_DEPENDENCIES = test/Fortran/elpa_print_headers.X90 - -elpa2_test_real_qr_single_precision@SUFFIX@_SOURCES = \ - test/Fortran/elpa2/single_real_qr.F90 -elpa2_test_real_qr_single_precision@SUFFIX@_LDADD = $(build_lib) -elpa2_test_real_qr_single_precision@SUFFIX@_FCFLAGS = $(AM_FCFLAGS) $(FC_MODOUT)private_modules $(FC_MODINC)private_modules -EXTRA_elpa2_test_real_qr_single_precision@SUFFIX@_DEPENDENCIES = test/Fortran/elpa_print_headers.X90 - -elpa2_test_real_api_single_precision@SUFFIX@_SOURCES = test/Fortran/elpa2/single_real_api.F90 -elpa2_test_real_api_single_precision@SUFFIX@_LDADD = $(build_lib) -elpa2_test_real_api_single_precision@SUFFIX@_FCFLAGS = $(AM_FCFLAGS) $(FC_MODOUT)private_modules $(FC_MODINC)private_modules -EXTRA_elpa2_test_real_api_single_precision@SUFFIX@_DEPENDENCIES = test/Fortran/elpa_print_headers.X90 +legacy_single_real_1stage@SUFFIX@_SOURCES = test/Fortran/elpa1/legacy_interface/legacy_single_real.F90 +legacy_single_real_1stage@SUFFIX@_LDADD = $(build_lib) +legacy_single_real_1stage@SUFFIX@_FCFLAGS = $(AM_FCFLAGS) $(FC_MODOUT)private_modules $(FC_MODINC)private_modules +EXTRA_legacy_single_real_1stage@SUFFIX@_DEPENDENCIES = test/Fortran/elpa_print_headers.X90 + +legacy_single_real_2stage@SUFFIX@_SOURCES = test/Fortran/elpa2/legacy_interface/legacy_single_real.F90 +legacy_single_real_2stage@SUFFIX@_LDADD = $(build_lib) +legacy_single_real_2stage@SUFFIX@_FCFLAGS = $(AM_FCFLAGS) $(FC_MODOUT)private_modules $(FC_MODINC)private_modules +EXTRA_legacy_single_real_2stage@SUFFIX@_DEPENDENCIES = test/Fortran/elpa_print_headers.X90 + +legacy_single_real_driver@SUFFIX@_SOURCES = test/Fortran/driver/legacy_interface/legacy_single_real_driver.F90 +legacy_single_real_driver@SUFFIX@_LDADD = $(build_lib) +legacy_single_real_driver@SUFFIX@_FCFLAGS = $(AM_FCFLAGS) $(FC_MODOUT)private_modules $(FC_MODINC)private_modules +EXTRA_legacy_single_real_driver@SUFFIX@_DEPENDENCIES = test/Fortran/elpa_print_headers.X90 + +legacy_single_real_toeplitz@SUFFIX@_SOURCES = test/Fortran/elpa1/legacy_interface/legacy_single_toeplitz.F90 +legacy_single_real_toeplitz@SUFFIX@_LDADD = $(build_lib) +legacy_single_real_toeplitz@SUFFIX@_FCFLAGS = $(AM_FCFLAGS) $(FC_MODOUT)private_modules $(FC_MODINC)private_modules +EXTRA_legacy_single_real_toeplitz@SUFFIX@_DEPENDENCIES = test/Fortran/elpa_print_headers.X90 + +legacy_single_real_transpose_multiply@SUFFIX@_SOURCES = test/Fortran/elpa1/legacy_interface/legacy_single_real_transpose_multiply.F90 +legacy_single_real_transpose_multiply@SUFFIX@_LDADD = $(build_lib) +legacy_single_real_transpose_multiply@SUFFIX@_FCFLAGS = $(AM_FCFLAGS) $(FC_MODOUT)private_modules $(FC_MODINC)private_modules +EXTRA_legacy_single_real_transpose_multiply@SUFFIX@_DEPENDENCIES = test/Fortran/elpa_print_headers.X90 + +legacy_single_real_driver_c_version@SUFFIX@_SOURCES = test/C/driver/legacy_interface/legacy_single_real_driver_c_version.c +legacy_single_real_driver_c_version@SUFFIX@_LDADD = $(build_lib) $(FCLIBS) +legacy_single_real_driver_c_version@SUFFIX@_FCFLAGS = $(AM_FCFLAGS) $(FC_MODOUT)private_modules $(FC_MODINC)private_modules +EXTRA_legacy_single_real_driver_c_version@SUFFIX@_DEPENDENCIES = test/Fortran/elpa_print_headers.X90 + +legacy_single_real_cholesky@SUFFIX@_SOURCES = test/Fortran/elpa1/legacy_interface/legacy_single_real_cholesky.F90 +legacy_single_real_cholesky@SUFFIX@_LDADD = $(build_lib) +legacy_single_real_cholesky@SUFFIX@_FCFLAGS = $(AM_FCFLAGS) $(FC_MODOUT)private_modules $(FC_MODINC)private_modules +EXTRA_legacy_single_real_cholesky@SUFFIX@_DEPENDENCIES = test/Fortran/elpa_print_headers.X90 + +legacy_single_real_invert_trm@SUFFIX@_SOURCES = test/Fortran/elpa1/legacy_interface/legacy_single_real_invert_trm.F90 +legacy_single_real_invert_trm@SUFFIX@_LDADD = $(build_lib) +legacy_single_real_invert_trm@SUFFIX@_FCFLAGS = $(AM_FCFLAGS) $(FC_MODOUT)private_modules $(FC_MODINC)private_modules +EXTRA_legacy_single_real_invert_trm@SUFFIX@_DEPENDENCIES = test/Fortran/elpa_print_headers.X90 + +legacy_single_real_2stage_default@SUFFIX@_SOURCES = test/Fortran/elpa2/legacy_interface/legacy_single_real_default_kernel.F90 +legacy_single_real_2stage_default@SUFFIX@_LDADD = $(build_lib) +legacy_single_real_2stage_default@SUFFIX@_FCFLAGS = $(AM_FCFLAGS) $(FC_MODOUT)private_modules $(FC_MODINC)private_modules +EXTRA_legacy_single_real_2stage_default@SUFFIX@_DEPENDENCIES = test/Fortran/elpa_print_headers.X90 + +legacy_single_real_2stage_qr@SUFFIX@_SOURCES = \ + test/Fortran/elpa2/legacy_interface/legacy_single_real_qr.F90 +legacy_single_real_2stage_qr@SUFFIX@_LDADD = $(build_lib) +legacy_single_real_2stage_qr@SUFFIX@_FCFLAGS = $(AM_FCFLAGS) $(FC_MODOUT)private_modules $(FC_MODINC)private_modules +EXTRA_legacy_single_real_2stage_qr@SUFFIX@_DEPENDENCIES = test/Fortran/elpa_print_headers.X90 + +legacy_single_real_2stage_api@SUFFIX@_SOURCES = test/Fortran/elpa2/legacy_interface/legacy_single_real_api.F90 +legacy_single_real_2stage_api@SUFFIX@_LDADD = $(build_lib) +legacy_single_real_2stage_api@SUFFIX@_FCFLAGS = $(AM_FCFLAGS) $(FC_MODOUT)private_modules $(FC_MODINC)private_modules +EXTRA_legacy_single_real_2stage_api@SUFFIX@_DEPENDENCIES = test/Fortran/elpa_print_headers.X90 endif if WANT_SINGLE_PRECISION_COMPLEX -single_complex_2stage_banded@SUFFIX@_SOURCES = test/Fortran/single_complex_2stage_banded.F90 -single_complex_2stage_banded@SUFFIX@_LDADD = $(build_lib) -single_complex_2stage_banded@SUFFIX@_FCFLAGS = $(AM_FCFLAGS) $(FC_MODOUT)private_modules $(FC_MODINC)private_modules -EXTRA_single_complex_2stage_banded@SUFFIX@_DEPENDENCIES = test/Fortran/elpa_print_headers.X90 - -elpa1_test_complex_single_precision@SUFFIX@_SOURCES = test/Fortran/elpa1/single_complex.F90 -elpa1_test_complex_single_precision@SUFFIX@_LDADD = $(build_lib) -elpa1_test_complex_single_precision@SUFFIX@_FCFLAGS = $(AM_FCFLAGS) $(FC_MODOUT)private_modules $(FC_MODINC)private_modules -EXTRA_elpa1_test_complex_single_precision@SUFFIX@_DEPENDENCIES = test/Fortran/elpa_print_headers.X90 - -elpa_driver_complex_single_precision@SUFFIX@_SOURCES = test/Fortran/test_driver_complex_single.F90 -elpa_driver_complex_single_precision@SUFFIX@_LDADD = $(build_lib) -elpa_driver_complex_single_precision@SUFFIX@_FCFLAGS = $(AM_FCFLAGS) $(FC_MODOUT)private_modules $(FC_MODINC)private_modules -EXTRA_elpa_driver_complex_single_precision@SUFFIX@_DEPENDENCIES = test/Fortran/elpa_print_headers.X90 - -elpa_driver_complex_c_version_single_precision@SUFFIX@_SOURCES = test/C/elpa_driver_complex_c_version_single.c -elpa_driver_complex_c_version_single_precision@SUFFIX@_LDADD = $(build_lib) $(FCLIBS) -elpa_driver_complex_c_version_single_precision@SUFFIX@_FCFLAGS = $(AM_FCFLAGS) $(FC_MODOUT)private_modules $(FC_MODINC)private_modules -EXTRA_elpa_driver_complex_c_version_single_precision@SUFFIX@_DEPENDENCIES = test/Fortran/elpa_print_headers.X90 - -elpa2_test_complex_single_precision@SUFFIX@_SOURCES = test/Fortran/elpa2/single_complex.F90 -elpa2_test_complex_single_precision@SUFFIX@_LDADD = $(build_lib) -elpa2_test_complex_single_precision@SUFFIX@_FCFLAGS = $(AM_FCFLAGS) $(FC_MODOUT)private_modules $(FC_MODINC)private_modules -EXTRA_elpa2_test_complex_single_precision@SUFFIX@_DEPENDENCIES = test/Fortran/elpa_print_headers.X90 - -elpa2_test_complex_default_single_precision@SUFFIX@_SOURCES = test/Fortran/elpa2/single_complex_default_kernel.F90 $(shared_sources) $(redirect_sources) -elpa2_test_complex_default_single_precision@SUFFIX@_LDADD = $(build_lib) -elpa2_test_complex_default_single_precision@SUFFIX@_FCFLAGS = $(AM_FCFLAGS) $(FC_MODOUT)private_modules $(FC_MODINC)private_modules -EXTRA_elpa2_test_complex_default_single_precision@SUFFIX@_DEPENDENCIES = test/Fortran/elpa_print_headers.X90 - -elpa1_complex_transpose_multiply_single_precision@SUFFIX@_SOURCES = test/Fortran/test_transpose_multiply_complex_single.F90 -elpa1_complex_transpose_multiply_single_precision@SUFFIX@_LDADD = $(build_lib) -elpa1_complex_transpose_multiply_single_precision@SUFFIX@_FCFLAGS = $(AM_FCFLAGS) $(FC_MODOUT)private_modules $(FC_MODINC)private_modules -EXTRA_elpa1_complex_transpose_multiply_single_precision@SUFFIX@_DEPENDENCIES = test/Fortran/elpa_print_headers.X90 - -elpa1_complex_cholesky_single_precision@SUFFIX@_SOURCES = test/Fortran/elpa1/single_complex_cholesky.F90 -elpa1_complex_cholesky_single_precision@SUFFIX@_LDADD = $(build_lib) -elpa1_complex_cholesky_single_precision@SUFFIX@_FCFLAGS = $(AM_FCFLAGS) $(FC_MODOUT)private_modules $(FC_MODINC)private_modules -EXTRA_elpa1_complex_cholesky_single_precision@SUFFIX@_DEPENDENCIES = test/Fortran/elpa_print_headers.X90 - -elpa1_complex_invert_trm_single_precision@SUFFIX@_SOURCES = test/Fortran/elpa1/single_complex_invert_trm.F90 -elpa1_complex_invert_trm_single_precision@SUFFIX@_LDADD = $(build_lib) -elpa1_complex_invert_trm_single_precision@SUFFIX@_FCFLAGS = $(AM_FCFLAGS) $(FC_MODOUT)private_modules $(FC_MODINC)private_modules -EXTRA_elpa1_complex_invert_trm_single_precision@SUFFIX@_DEPENDENCIES = test/Fortran/elpa_print_headers.X90 - -elpa2_test_complex_api_single_precision@SUFFIX@_SOURCES = test/Fortran/elpa2/single_complex_api.F90 -elpa2_test_complex_api_single_precision@SUFFIX@_LDADD = $(build_lib) -elpa2_test_complex_api_single_precision@SUFFIX@_FCFLAGS = $(AM_FCFLAGS) $(FC_MODOUT)private_modules $(FC_MODINC)private_modules -EXTRA_elpa2_test_complex_api_single_precision@SUFFIX@_DEPENDENCIES = test/Fortran/elpa_print_headers.X90 +legacy_single_complex_1stage@SUFFIX@_SOURCES = test/Fortran/elpa1/legacy_interface/legacy_single_complex.F90 +legacy_single_complex_1stage@SUFFIX@_LDADD = $(build_lib) +legacy_single_complex_1stage@SUFFIX@_FCFLAGS = $(AM_FCFLAGS) $(FC_MODOUT)private_modules $(FC_MODINC)private_modules +EXTRA_legacy_single_complex_1stage@SUFFIX@_DEPENDENCIES = test/Fortran/elpa_print_headers.X90 + +legacy_single_complex_driver@SUFFIX@_SOURCES = test/Fortran/driver/legacy_interface/legacy_single_complex_driver.F90 +legacy_single_complex_driver@SUFFIX@_LDADD = $(build_lib) +legacy_single_complex_driver@SUFFIX@_FCFLAGS = $(AM_FCFLAGS) $(FC_MODOUT)private_modules $(FC_MODINC)private_modules +EXTRA_legacy_single_complex_driver@SUFFIX@_DEPENDENCIES = test/Fortran/elpa_print_headers.X90 + +legacy_single_complex_driver_c_version@SUFFIX@_SOURCES = test/C/driver/legacy_interface/legacy_single_complex_driver_c_version.c +legacy_single_complex_driver_c_version@SUFFIX@_LDADD = $(build_lib) $(FCLIBS) +legacy_single_complex_driver_c_version@SUFFIX@_FCFLAGS = $(AM_FCFLAGS) $(FC_MODOUT)private_modules $(FC_MODINC)private_modules +legacy_single_complex_driver_c_version@SUFFIX@_DEPENDENCIES = test/Fortran/elpa_print_headers.X90 + +legacy_single_complex_2stage@SUFFIX@_SOURCES = test/Fortran/elpa2/legacy_interface/legacy_single_complex.F90 +legacy_single_complex_2stage@SUFFIX@_LDADD = $(build_lib) +legacy_single_complex_2stage@SUFFIX@_FCFLAGS = $(AM_FCFLAGS) $(FC_MODOUT)private_modules $(FC_MODINC)private_modules +EXTRA_legacy_single_complex_2stage@SUFFIX@_DEPENDENCIES = test/Fortran/elpa_print_headers.X90 + +legacy_single_complex_2stage_default@SUFFIX@_SOURCES = test/Fortran/elpa2/legacy_interface/legacy_single_complex_default_kernel.F90 $(shared_sources) $(redirect_sources) +legacy_single_complex_2stage_default@SUFFIX@_LDADD = $(build_lib) +legacy_single_complex_2stage_default@SUFFIX@_FCFLAGS = $(AM_FCFLAGS) $(FC_MODOUT)private_modules $(FC_MODINC)private_modules +EXTRA_legacy_single_complex_2stage_default@SUFFIX@_DEPENDENCIES = test/Fortran/elpa_print_headers.X90 + +legacy_single_complex_transpose_multiply@SUFFIX@_SOURCES = test/Fortran/elpa1/legacy_interface/legacy_single_complex_transpose_multiply.F90 +legacy_single_complex_transpose_multiply@SUFFIX@_LDADD = $(build_lib) +legacy_single_complex_transpose_multiply@SUFFIX@_FCFLAGS = $(AM_FCFLAGS) $(FC_MODOUT)private_modules $(FC_MODINC)private_modules +EXTRA_legacy_single_complex_transpose_multiply@SUFFIX@_DEPENDENCIES = test/Fortran/elpa_print_headers.X90 + +legacy_single_complex_cholesky@SUFFIX@_SOURCES = test/Fortran/elpa1/legacy_interface/legacy_single_complex_cholesky.F90 +legacy_single_complex_cholesky@SUFFIX@_LDADD = $(build_lib) +legacy_single_complex_cholesky@SUFFIX@_FCFLAGS = $(AM_FCFLAGS) $(FC_MODOUT)private_modules $(FC_MODINC)private_modules +EXTRA_legacy_single_complex_cholesky@SUFFIX@_DEPENDENCIES = test/Fortran/elpa_print_headers.X90 + +legacy_single_complex_invert_trm@SUFFIX@_SOURCES = test/Fortran/elpa1/legacy_interface/legacy_single_complex_invert_trm.F90 +legacy_single_complex_invert_trm@SUFFIX@_LDADD = $(build_lib) +legacy_single_complex_invert_trm@SUFFIX@_FCFLAGS = $(AM_FCFLAGS) $(FC_MODOUT)private_modules $(FC_MODINC)private_modules +EXTRA_legacy_single_complex_invert_trm@SUFFIX@_DEPENDENCIES = test/Fortran/elpa_print_headers.X90 + +legacy_single_complex_2stage_api@SUFFIX@_SOURCES = test/Fortran/elpa2/legacy_interface/legacy_single_complex_api.F90 +legacy_single_complex_2stage_api@SUFFIX@_LDADD = $(build_lib) +legacy_single_complex_2stage_api@SUFFIX@_FCFLAGS = $(AM_FCFLAGS) $(FC_MODOUT)private_modules $(FC_MODINC)private_modules +EXTRA_legacy_single_complex_2stage_api@SUFFIX@_DEPENDENCIES = test/Fortran/elpa_print_headers.X90 endif if WITH_GPU_VERSION -elpa1_test_real_gpu@SUFFIX@_SOURCES = test/Fortran/elpa1/real_gpu.F90 -elpa1_test_real_gpu@SUFFIX@_LDADD = $(build_lib) -elpa1_test_real_gpu@SUFFIX@_FCFLAGS = $(AM_FCFLAGS) $(FC_MODOUT)private_modules $(FC_MODINC)private_modules -EXTRA_elpa1_test_real_gpu@SUFFIX@_DEPENDENCIES = test/Fortran/elpa_print_headers.X90 - -elpa1_test_complex_gpu@SUFFIX@_SOURCES = test/Fortran/elpa1/complex_gpu.F90 -elpa1_test_complex_gpu@SUFFIX@_LDADD = $(build_lib) -elpa1_test_complex_gpu@SUFFIX@_FCFLAGS = $(AM_FCFLAGS) $(FC_MODOUT)private_modules $(FC_MODINC)private_modules -EXTRA_elpa1_test_complex_gpu@SUFFIX@_DEPENDENCIES = test/Fortran/elpa_print_headers.X90 - -elpa2_test_real_gpu@SUFFIX@_SOURCES = test/Fortran/elpa2/real_gpu.F90 -elpa2_test_real_gpu@SUFFIX@_LDADD = $(build_lib) -elpa2_test_real_gpu@SUFFIX@_FCFLAGS = $(AM_FCFLAGS) $(FC_MODOUT)private_modules $(FC_MODINC)private_modules -EXTRA_elpa2_test_real_gpu@SUFFIX@_DEPENDENCIES = test/Fortran/elpa_print_headers.X90 - -elpa2_test_complex_gpu@SUFFIX@_SOURCES = test/Fortran/elpa2/complex_gpu.F90 -elpa2_test_complex_gpu@SUFFIX@_LDADD = $(build_lib) -elpa2_test_complex_gpu@SUFFIX@_FCFLAGS = $(AM_FCFLAGS) $(FC_MODOUT)private_modules $(FC_MODINC)private_modules -EXTRA_elpa2_test_complex_gpu@SUFFIX@_DEPENDENCIES = test/Fortran/elpa_print_headers.X90 +legacy_real_1stage_gpu@SUFFIX@_SOURCES = test/Fortran/elpa1/legacy_interface/legacy_real_gpu.F90 +legacy_real_1stage_gpu@SUFFIX@_LDADD = $(build_lib) +legacy_real_1stage_gpu@SUFFIX@_FCFLAGS = $(AM_FCFLAGS) $(FC_MODOUT)private_modules $(FC_MODINC)private_modules +EXTRA_legacy_real_1stage_gpu@SUFFIX@_DEPENDENCIES = test/Fortran/elpa_print_headers.X90 + +legacy_complex_1stage_gpu@SUFFIX@_SOURCES = test/Fortran/elpa1/legacy_interface/legacy_complex_gpu.F90 +legacy_complex_1stage_gpu@SUFFIX@_LDADD = $(build_lib) +legacy_complex_1stage_gpu@SUFFIX@_FCFLAGS = $(AM_FCFLAGS) $(FC_MODOUT)private_modules $(FC_MODINC)private_modules +EXTRA_legacy_complex_1stage_gpu@SUFFIX@_DEPENDENCIES = test/Fortran/elpa_print_headers.X90 + +legacy_real_2stage_gpu@SUFFIX@_SOURCES = test/Fortran/elpa2/legacy_interface/legacy_real_gpu.F90 +legacy_real_2stage_gpu@SUFFIX@_LDADD = $(build_lib) +legacy_real_2stage_gpu@SUFFIX@_FCFLAGS = $(AM_FCFLAGS) $(FC_MODOUT)private_modules $(FC_MODINC)private_modules +EXTRA_legacy_real_2stage_gpu@SUFFIX@_DEPENDENCIES = test/Fortran/elpa_print_headers.X90 + +legacy_complex_2stage_gpu@SUFFIX@_SOURCES = test/Fortran/elpa2/legacy_interface/legacy_complex_gpu.F90 +legacy_complex_2stage_gpu@SUFFIX@_LDADD = $(build_lib) +legacy_complex_2stage_gpu@SUFFIX@_FCFLAGS = $(AM_FCFLAGS) $(FC_MODOUT)private_modules $(FC_MODINC)private_modules +EXTRA_legacy_complex_2stage_gpu@SUFFIX@_DEPENDENCIES = test/Fortran/elpa_print_headers.X90 if WANT_SINGLE_PRECISION_REAL -elpa1_test_real_gpu_single_precision@SUFFIX@_SOURCES = test/Fortran/elpa1/single_real_gpu.F90 -elpa1_test_real_gpu_single_precision@SUFFIX@_LDADD = $(build_lib) -elpa1_test_real_gpu_single_precision@SUFFIX@_FCFLAGS = $(AM_FCFLAGS) $(FC_MODOUT)private_modules $(FC_MODINC)private_modules -EXTRA_elpa1_test_real_gpu_single_precision@SUFFIX@_DEPENDENCIES = test/Fortran/elpa_print_headers.X90 +legacy_single_real_1stage_gpu@SUFFIX@_SOURCES = test/Fortran/elpa1/legacy_interface/legacy_single_real_gpu.F90 +legacy_single_real_1stage_gpu@SUFFIX@_LDADD = $(build_lib) +legacy_single_real_1stage_gpu@SUFFIX@_FCFLAGS = $(AM_FCFLAGS) $(FC_MODOUT)private_modules $(FC_MODINC)private_modules +EXTRA_legacy_single_real_1stage_gpu@SUFFIX@_DEPENDENCIES = test/Fortran/elpa_print_headers.X90 -elpa2_test_real_gpu_single_precision@SUFFIX@_SOURCES = test/Fortran/elpa2/single_real_gpu.F90 -elpa2_test_real_gpu_single_precision@SUFFIX@_LDADD = $(build_lib) -elpa2_test_real_gpu_single_precision@SUFFIX@_FCFLAGS = $(AM_FCFLAGS) $(FC_MODOUT)private_modules $(FC_MODINC)private_modules -EXTRA_elpa2_test_real_gpu_single_precision@SUFFIX@_DEPENDENCIES = test/Fortran/elpa_print_headers.X90 +legacy_single_real_2stage_gpu@SUFFIX@_SOURCES = test/Fortran/elpa2/legacy_interface/legacy_single_real_gpu.F90 +legacy_single_real_2stage_gpu@SUFFIX@_LDADD = $(build_lib) +legacy_single_real_2stage_gpu@SUFFIX@_FCFLAGS = $(AM_FCFLAGS) $(FC_MODOUT)private_modules $(FC_MODINC)private_modules +EXTRA_legacy_single_real_2stage_gpu@SUFFIX@_DEPENDENCIES = test/Fortran/elpa_print_headers.X90 endif if WANT_SINGLE_PRECISION_COMPLEX -elpa1_test_complex_gpu_single_precision@SUFFIX@_SOURCES = test/Fortran/elpa1/single_complex_gpu.F90 -elpa1_test_complex_gpu_single_precision@SUFFIX@_LDADD = $(build_lib) -elpa1_test_complex_gpu_single_precision@SUFFIX@_FCFLAGS = $(AM_FCFLAGS) $(FC_MODOUT)private_modules $(FC_MODINC)private_modules -EXTRA_elpa1_test_complex_gpu_single_precision@SUFFIX@_DEPENDENCIES = test/Fortran/elpa_print_headers.X90 +legacy_single_complex_1stage_gpu@SUFFIX@_SOURCES = test/Fortran/elpa1/legacy_interface/legacy_single_complex_gpu.F90 +legacy_single_complex_1stage_gpu@SUFFIX@_LDADD = $(build_lib) +legacy_single_complex_1stage_gpu@SUFFIX@_FCFLAGS = $(AM_FCFLAGS) $(FC_MODOUT)private_modules $(FC_MODINC)private_modules +EXTRA_legacy_single_complex_1stage_gpu@SUFFIX@_DEPENDENCIES = test/Fortran/elpa_print_headers.X90 -elpa2_test_complex_gpu_single_precision@SUFFIX@_SOURCES = test/Fortran/elpa2/single_complex_gpu.F90 -elpa2_test_complex_gpu_single_precision@SUFFIX@_LDADD = $(build_lib) -elpa2_test_complex_gpu_single_precision@SUFFIX@_FCFLAGS = $(AM_FCFLAGS) $(FC_MODOUT)private_modules $(FC_MODINC)private_modules -EXTRA_elpa2_test_complex_gpu_single_precision@SUFFIX@_DEPENDENCIES = test/Fortran/elpa_print_headers.X90 +legacy_single_complex_2stage_gpu@SUFFIX@_SOURCES = test/Fortran/elpa2/legacy_interface/legacy_single_complex_gpu.F90 +legacy_single_complex_2stage_gpu@SUFFIX@_LDADD = $(build_lib) +legacy_single_complex_2stage_gpu@SUFFIX@_FCFLAGS = $(AM_FCFLAGS) $(FC_MODOUT)private_modules $(FC_MODINC)private_modules +EXTRA_legacy_single_complex_2stage_gpu@SUFFIX@_DEPENDENCIES = test/Fortran/elpa_print_headers.X90 endif endif endif @@ -1084,76 +1083,75 @@ endif if ENABLE_LEGACY check_SCRIPTS += \ - elpa1_test_real@SUFFIX@.sh \ - elpa2_test_real@SUFFIX@.sh \ - elpa2_test_real_default@SUFFIX@.sh \ - elpa1_test_complex@SUFFIX@.sh \ - elpa2_test_complex@SUFFIX@.sh \ - elpa2_test_real_qr@SUFFIX@.sh \ - elpa2_test_complex_default@SUFFIX@.sh \ - elpa2_test_real_api@SUFFIX@.sh \ - elpa2_test_complex_api@SUFFIX@.sh \ - elpa_driver_real@SUFFIX@.sh \ - elpa_driver_complex@SUFFIX@.sh \ - elpa1_real_toeplitz@SUFFIX@.sh \ - elpa1_test_real_with_c@SUFFIX@.sh \ - elpa1_real_cholesky@SUFFIX@.sh \ - elpa1_real_invert_trm@SUFFIX@.sh \ - elpa1_real_transpose_multiply@SUFFIX@.sh \ - elpa1_complex_cholesky@SUFFIX@.sh \ - elpa1_complex_invert_trm@SUFFIX@.sh \ - elpa1_complex_transpose_multiply@SUFFIX@.sh \ - elpa2_print_kernels@SUFFIX@ \ - elpa1_test_real_c_version@SUFFIX@.sh \ - elpa1_test_complex_c_version@SUFFIX@.sh \ - elpa2_test_real_c_version@SUFFIX@.sh \ - elpa2_test_complex_c_version@SUFFIX@.sh \ - elpa_driver_real_c_version@SUFFIX@.sh \ - elpa_driver_complex_c_version@SUFFIX@.sh + legacy_real_1stage@SUFFIX@.sh \ + legacy_real_2stage@SUFFIX@.sh \ + legacy_real_2stage_default@SUFFIX@.sh \ + legacy_complex_1stage@SUFFIX@.sh \ + legacy_complex_2stage@SUFFIX@.sh \ + legacy_real_2stage_qr@SUFFIX@.sh \ + legacy_complex_2stage_default@SUFFIX@.sh \ + legacy_real_2stage_api@SUFFIX@.sh \ + legacy_complex_2stage_api@SUFFIX@.sh \ + legacy_real_driver@SUFFIX@.sh \ + legacy_complex_driver@SUFFIX@.sh \ + legacy_real_toeplitz@SUFFIX@.sh \ + legacy_real_1stage_with_c@SUFFIX@.sh \ + legacy_real_cholesky@SUFFIX@.sh \ + legacy_real_invert_trm@SUFFIX@.sh \ + legacy_real_transpose_multiply@SUFFIX@.sh \ + legacy_complex_cholesky@SUFFIX@.sh \ + legacy_complex_invert_trm@SUFFIX@.sh \ + legacy_complex_transpose_multiply@SUFFIX@.sh \ + legacy_real_1stage_c_version@SUFFIX@.sh \ + legacy_complex_1stage_c_version@SUFFIX@.sh \ + legacy_real_2stage_c_version@SUFFIX@.sh \ + legacy_complex_2stage_c_version@SUFFIX@.sh \ + legacy_real_driver_c_version@SUFFIX@.sh \ + legacy_complex_driver_c_version@SUFFIX@.sh if WANT_SINGLE_PRECISION_REAL check_SCRIPTS += \ - elpa1_test_real_single_precision@SUFFIX@.sh \ - elpa2_test_real_single_precision@SUFFIX@.sh \ - elpa2_test_real_default_single_precision@SUFFIX@.sh \ - elpa2_test_real_qr_single_precision@SUFFIX@.sh \ - elpa_driver_real_single_precision@SUFFIX@.sh \ - elpa1_real_cholesky_single_precision@SUFFIX@.sh \ - elpa1_real_invert_trm_single_precision@SUFFIX@.sh \ - elpa1_real_transpose_multiply_single_precision@SUFFIX@.sh \ - elpa2_test_real_api_single_precision@SUFFIX@.sh \ - elpa_driver_real_c_version_single_precision@SUFFIX@.sh + legacy_single_real_1stage@SUFFIX@.sh \ + legacy_single_real_2stage@SUFFIX@.sh \ + legacy_single_real_2stage_default@SUFFIX@.sh \ + legacy_single_real_2stage_qr@SUFFIX@.sh \ + legacy_single_real_driver@SUFFIX@.sh \ + legacy_single_real_cholesky@SUFFIX@.sh \ + legacy_single_real_invert_trm@SUFFIX@.sh \ + legacy_single_real_transpose_multiply@SUFFIX@.sh \ + legacy_single_real_2stage_api@SUFFIX@.sh \ + legacy_single_real_driver_c_version@SUFFIX@.sh endif if WANT_SINGLE_PRECISION_COMPLEX check_SCRIPTS += \ - elpa1_test_complex_single_precision@SUFFIX@.sh \ - elpa2_test_complex_single_precision@SUFFIX@.sh \ - elpa2_test_complex_default_single_precision@SUFFIX@.sh \ - elpa1_complex_cholesky_single_precision@SUFFIX@.sh \ - elpa_driver_complex_single_precision@SUFFIX@.sh \ - elpa1_complex_invert_trm_single_precision@SUFFIX@.sh \ - elpa1_complex_transpose_multiply_single_precision@SUFFIX@.sh \ - elpa2_test_complex_api_single_precision@SUFFIX@.sh \ - elpa_driver_complex_c_version_single_precision@SUFFIX@.sh + legacy_single_complex_1stage@SUFFIX@.sh \ + legacy_single_complex_2stage@SUFFIX@.sh \ + legacy_single_complex_2stage_default@SUFFIX@.sh \ + legacy_single_complex_cholesky@SUFFIX@.sh \ + legacy_single_complex_driver@SUFFIX@.sh \ + legacy_single_complex_invert_trm@SUFFIX@.sh \ + legacy_single_complex_transpose_multiply@SUFFIX@.sh \ + legacy_single_complex_2stage_api@SUFFIX@.sh \ + legacy_single_complex_driver_c_version@SUFFIX@.sh endif if WITH_GPU_VERSION check_SCRIPTS += \ - elpa1_test_real_gpu@SUFFIX@.sh \ - elpa1_test_complex_gpu@SUFFIX@.sh \ - elpa2_test_real_gpu@SUFFIX@.sh \ - elpa2_test_complex_gpu@SUFFIX@.sh + legacy_real_1stage_gpu@SUFFIX@.sh \ + legacy_complex_1stage_gpu@SUFFIX@.sh \ + legacy_real_2stage_gpu@SUFFIX@.sh \ + legacy_complex_2stage_gpu@SUFFIX@.sh if WANT_SINGLE_PRECISION_REAL check_SCRIPTS += \ - elpa1_test_real_gpu_single_precision@SUFFIX@.sh \ - elpa2_test_real_gpu_single_precision@SUFFIX@.sh + legacy_single_real_1stage_gpu@SUFFIX@.sh \ + legacy_single_real_2stage_gpu@SUFFIX@.sh endif if WANT_SINGLE_PRECISION_COMPLEX check_SCRIPTS += \ - elpa1_test_complex_gpu_single_precision@SUFFIX@.sh \ - elpa2_test_complex_gpu_single_precision@SUFFIX@.sh + legacy_single_complex_1stage_gpu@SUFFIX@.sh \ + legacy_single_complex_2stage_gpu@SUFFIX@.sh endif endif endif @@ -1180,6 +1178,14 @@ CLEANFILES = \ elpa1_real* \ elpa*.sh \ test*.sh \ + legacy_real* \ + legacy_complex* \ + legacy_single_real* \ + legacy_single_complex* \ + single_real* \ + single_complex* \ + real* \ + complex* \ *.i clean-local: diff --git a/src/elpa1/legacy_interface/elpa_1stage_c_interface.F90 b/src/elpa1/legacy_interface/elpa_1stage_c_interface.F90 index 5be98d29..7eeef9fa 100644 --- a/src/elpa1/legacy_interface/elpa_1stage_c_interface.F90 +++ b/src/elpa1/legacy_interface/elpa_1stage_c_interface.F90 @@ -255,7 +255,7 @@ #define SINGLE_PRECISION #include "../../general/precision_macros.h" - !lc> int elpa_solve_evp_complex_1stage_single_precision(int na, int nev, complex *a, int lda, float *ev, complex *q, int ldq, int nblk, int matrixCols, int mpi_comm_rows, int mpi_comm_cols, int mpi_comm_all, int useGPU); + !lc> int elpa_solve_evp_complex_1stage_single_precision(int na, int nev, complex float *a, int lda, float *ev, complex float *q, int ldq, int nblk, int matrixCols, int mpi_comm_rows, int mpi_comm_cols, int mpi_comm_all, int useGPU); #include "./elpa1_c_interface_template.X90" @@ -491,7 +491,7 @@ !lc> \result success int reports success (1) or failure (0) !lc> */ - !lc> int elpa_mult_ah_b_complex_single(char uplo_a, char uplo_c, int na, int ncb, complex *a, int lda, int ldaCols, complex *b, int ldb, int ldbCols, int nblk, int mpi_comm_rows, int mpi_comm_cols, complex *c, int ldc, int ldcCols); + !lc> int elpa_mult_ah_b_complex_single(char uplo_a, char uplo_c, int na, int ncb, complex float *a, int lda, int ldaCols, complex float *b, int ldb, int ldbCols, int nblk, int mpi_comm_rows, int mpi_comm_cols, complex float *c, int ldc, int ldcCols); #define COMPLEXCASE 1 #define SINGLE_PRECISION 1 #include "../../general/precision_macros.h" @@ -598,7 +598,7 @@ !lc> \result succes int reports success (1) or failure (0) !lc> */ - !lc> int elpa_invert_trm_complex_single(int na, complex *a, int lda, int nblk, int matrixCols, int mpi_comm_rows, int mpi_comm_cols, int wantDebug); + !lc> int elpa_invert_trm_complex_single(int na, complex float *a, int lda, int nblk, int matrixCols, int mpi_comm_rows, int mpi_comm_cols, int wantDebug); #define COMPLEXCASE 1 #define SINGLE_PRECISION 1 #include "../../general/precision_macros.h" @@ -714,7 +714,7 @@ !lc> \result succes int reports success (1) or failure (0) !lc> */ - !lc> int elpa_cholesky_complex_single(int na, complex *a, int lda, int nblk, int matrixCols, int mpi_comm_rows, int mpi_comm_cols, int wantDebug); + !lc> int elpa_cholesky_complex_single(int na, complex float *a, int lda, int nblk, int matrixCols, int mpi_comm_rows, int mpi_comm_cols, int wantDebug); #define COMPLEXCASE 1 #define SINGLE_PRECISION 1 #include "../../general/precision_macros.h" diff --git a/test/C/elpa_driver_complex_c_version.c b/test/C/driver/legacy_interface/legacy_complex_driver_c_version.c similarity index 100% rename from test/C/elpa_driver_complex_c_version.c rename to test/C/driver/legacy_interface/legacy_complex_driver_c_version.c diff --git a/test/C/elpa_driver_real_c_version.c b/test/C/driver/legacy_interface/legacy_real_driver_c_version.c similarity index 100% rename from test/C/elpa_driver_real_c_version.c rename to test/C/driver/legacy_interface/legacy_real_driver_c_version.c diff --git a/test/C/driver/legacy_interface/legacy_single_complex_driver_c_version.c b/test/C/driver/legacy_interface/legacy_single_complex_driver_c_version.c new file mode 100644 index 00000000..f66e7d2e --- /dev/null +++ b/test/C/driver/legacy_interface/legacy_single_complex_driver_c_version.c @@ -0,0 +1,292 @@ +/* This file is part of ELPA. */ +/* */ +/* The ELPA library was originally created by the ELPA consortium, */ +/* consisting of the following organizations: */ +/* */ +/* - Max Planck Computing and Data Facility (MPCDF), formerly known as */ +/* Rechenzentrum Garching der Max-Planck-Gesellschaft (RZG), */ +/* - Bergische Universität Wuppertal, Lehrstuhl für angewandte */ +/* Informatik, */ +/* - Technische Universität München, Lehrstuhl für Informatik mit */ +/* Schwerpunkt Wissenschaftliches Rechnen , */ +/* - Fritz-Haber-Institut, Berlin, Abt. Theorie, */ +/* - Max-Plack-Institut für Mathematik in den Naturwissenschaften, */ +/* Leipzig, Abt. Komplexe Strukutren in Biologie und Kognition, */ +/* and */ +/* - IBM Deutschland GmbH */ +/* */ +/* */ +/* More information can be found here: */ +/* http://elpa.mpcdf.mpg.de/ */ +/* */ +/* ELPA is free software: you can redistribute it and/or modify */ +/* it under the terms of the version 3 of the license of the */ +/* GNU Lesser General Public License as published by the Free */ +/* Software Foundation. */ +/* */ +/* ELPA is distributed in the hope that it will be useful, */ +/* but WITHOUT ANY WARRANTY; without even the implied warranty of */ +/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */ +/* GNU Lesser General Public License for more details. */ +/* */ +/* You should have received a copy of the GNU Lesser General Public License */ +/* along with ELPA. If not, see <http://www.gnu.org/licenses/> */ +/* */ +/* ELPA reflects a substantial effort on the part of the original */ +/* ELPA consortium, and we ask you to respect the spirit of the */ +/* license that we chose: i.e., please contribute any changes you */ +/* may have back to the original ELPA library distribution, and keep */ +/* any derivatives of ELPA under the same license that we chose for */ +/* the original distribution, the GNU Lesser General Public License. */ +/* */ +/* */ + +#include "config-f90.h" + +#include <stdio.h> +#include <stdlib.h> +#ifdef WITH_MPI +#include <mpi.h> +#endif +#include <math.h> + +#include <elpa/elpa_legacy.h> +#include <test/shared/generated.h> +#include <complex.h> + +int main(int argc, char** argv) { + int myid; + int nprocs; +#ifndef WITH_MPI + int MPI_COMM_WORLD; +#endif + int na, nev, nblk; + + int status; + + int np_cols, np_rows, np_colsStart; + + int my_blacs_ctxt, nprow, npcol, my_prow, my_pcol; + + int mpierr; + + int my_mpi_comm_world; + int mpi_comm_rows, mpi_comm_cols; + + int info, *sc_desc; + + int na_rows, na_cols; + float startVal; + + complex float *a, *z, *as; + + float *ev; + + int success; + int i; + + int useGPU, THIS_COMPLEX_ELPA_KERNEL_API; +#ifdef WITH_MPI + MPI_Init(&argc, &argv); + MPI_Comm_size(MPI_COMM_WORLD, &nprocs); + MPI_Comm_rank(MPI_COMM_WORLD, &myid); +#else + nprocs = 1; + myid =0; + MPI_COMM_WORLD=1; +#endif + na = 1000; + nev = 500; + nblk = 16; + + if (myid == 0) { + printf("This is the c version of an ELPA test-programm\n"); + printf("\n"); + printf("It will call the ELPA complex solver for a matrix\n"); + printf("of matrix size %d. It will compute %d eigenvalues\n",na,nev); + printf("and uses a blocksize of %d\n",nblk); + printf("\n"); + printf("This is an example program with much less functionality\n"); + printf("as it's Fortran counterpart. It's only purpose is to show how \n"); + printf("to evoke ELPA1 from a c programm\n"); + + printf("\n"); + + } + + status = 0; + + startVal = sqrt((float) nprocs); + np_colsStart = (int) round(startVal); + for (np_cols=np_colsStart;np_cols>1;np_cols--){ + if (nprocs %np_cols ==0){ + break; + } + } + + np_rows = nprocs/np_cols; + + if (myid == 0) { + printf("\n"); + printf("Number of processor rows %d, cols %d, total %d \n",np_rows,np_cols,nprocs); + } + + /* set up blacs */ + /* convert communicators before */ +#ifdef WITH_MPI + my_mpi_comm_world = MPI_Comm_c2f(MPI_COMM_WORLD); +#else + my_mpi_comm_world = 1; +#endif + set_up_blacsgrid_f(my_mpi_comm_world, &my_blacs_ctxt, &np_rows, &np_cols, &nprow, &npcol, &my_prow, &my_pcol); + + if (myid == 0) { + printf("\n"); + printf("Past BLACS_Gridinfo...\n"); + printf("\n"); + } + + /* get the ELPA row and col communicators. */ + /* These are NOT usable in C without calling the MPI_Comm_f2c function on them !! */ +#ifdef WITH_MPI + my_mpi_comm_world = MPI_Comm_c2f(MPI_COMM_WORLD); +#endif + mpierr = elpa_get_communicators(my_mpi_comm_world, my_prow, my_pcol, &mpi_comm_rows, &mpi_comm_cols); + + if (myid == 0) { + printf("\n"); + printf("Past split communicator setup for rows and columns...\n"); + printf("\n"); + } + + sc_desc = malloc(9*sizeof(int)); + + set_up_blacs_descriptor_f(na, nblk, my_prow, my_pcol, np_rows, np_cols, &na_rows, &na_cols, sc_desc, my_blacs_ctxt, &info); + + if (myid == 0) { + printf("\n"); + printf("Past scalapack descriptor setup...\n"); + printf("\n"); + } + + /* allocate the matrices needed for elpa */ + if (myid == 0) { + printf("\n"); + printf("Allocating matrices with na_rows=%d and na_cols=%d\n",na_rows, na_cols); + printf("\n"); + } + + a = malloc(na_rows*na_cols*sizeof(complex float)); + z = malloc(na_rows*na_cols*sizeof(complex float)); + as = malloc(na_rows*na_cols*sizeof(complex float)); + ev = malloc(na*sizeof(float)); + + prepare_matrix_complex_single_f(na, myid, na_rows, na_cols, sc_desc, a, z, as); + + if (myid == 0) { + printf("\n"); + printf("Entering ELPA 1stage complex solver\n"); + printf("\n"); + } +#ifdef WITH_MPI + mpierr = MPI_Barrier(MPI_COMM_WORLD); +#endif + useGPU = 0; + THIS_COMPLEX_ELPA_KERNEL_API = ELPA_2STAGE_COMPLEX_DEFAULT; + success = elpa_solve_evp_complex_single(na, nev, a, na_rows, ev, z, na_rows, nblk, na_cols, mpi_comm_rows, mpi_comm_cols, my_mpi_comm_world, THIS_COMPLEX_ELPA_KERNEL_API, useGPU, "1stage"); + + if (success != 1) { + printf("error in ELPA solve \n"); +#ifdef WITH_MPI + mpierr = MPI_Abort(MPI_COMM_WORLD, 99); +#endif + } + + + if (myid == 0) { + printf("\n"); + printf("1stage ELPA complex solver complete\n"); + printf("\n"); + } + + for (i=0;i<na_rows*na_cols;i++){ + a[i] = as[i]; + z[i] = as[i]; + } + if (myid == 0) { + printf("\n"); + printf("Entering ELPA 2stage complex solver\n"); + printf("\n"); + } +#ifdef WITH_MPI + mpierr = MPI_Barrier(MPI_COMM_WORLD); +#endif + useGPU =0; + THIS_COMPLEX_ELPA_KERNEL_API = ELPA_2STAGE_COMPLEX_DEFAULT; + success = elpa_solve_evp_complex_single(na, nev, a, na_rows, ev, z, na_rows, nblk, na_cols, mpi_comm_rows, mpi_comm_cols, my_mpi_comm_world, THIS_COMPLEX_ELPA_KERNEL_API, useGPU, "2stage"); + + if (success != 1) { + printf("error in ELPA solve \n"); +#ifdef WITH_MPI + mpierr = MPI_Abort(MPI_COMM_WORLD, 99); +#endif + } + + if (myid == 0) { + printf("\n"); + printf("2stage ELPA complex solver complete\n"); + printf("\n"); + } + + for (i=0;i<na_rows*na_cols;i++){ + a[i] = as[i]; + z[i] = as[i]; + } + if (myid == 0) { + printf("\n"); + printf("Entering auto-chosen ELPA complex solver\n"); + printf("\n"); + } +#ifdef WITH_MPI + mpierr = MPI_Barrier(MPI_COMM_WORLD); +#endif + useGPU = 0; + THIS_COMPLEX_ELPA_KERNEL_API = ELPA_2STAGE_COMPLEX_DEFAULT; + success = elpa_solve_evp_complex_single(na, nev, a, na_rows, ev, z, na_rows, nblk, na_cols, mpi_comm_rows, mpi_comm_cols, my_mpi_comm_world, THIS_COMPLEX_ELPA_KERNEL_API, useGPU, "auto"); + + if (success != 1) { + printf("error in ELPA solve \n"); +#ifdef WITH_MPI + mpierr = MPI_Abort(MPI_COMM_WORLD, 99); +#endif + } + + if (myid == 0) { + printf("\n"); + printf("Auto-chosen ELPA complex solver complete\n"); + printf("\n"); + } + + /* check the results */ + status = check_correctness_complex_single_f(na, nev, na_rows, na_cols, as, z, ev, sc_desc, myid); + + if (status !=0){ + printf("The computed EVs are not correct !\n"); + } + if (status ==0){ + if (myid == 0) { + printf("All ok!\n"); + } + } + + free(sc_desc); + free(a); + free(z); + free(as); + free(ev); + +#ifdef WITH_MPI + MPI_Finalize(); +#endif + return 0; +} diff --git a/test/C/elpa_driver_real_c_version_single.c b/test/C/driver/legacy_interface/legacy_single_real_driver_c_version.c similarity index 100% rename from test/C/elpa_driver_real_c_version_single.c rename to test/C/driver/legacy_interface/legacy_single_real_driver_c_version.c diff --git a/test/C/elpa1_test_complex_c_version.c b/test/C/elpa1/legacy_interface/legacy_complex_1stage_c_version.c similarity index 100% rename from test/C/elpa1_test_complex_c_version.c rename to test/C/elpa1/legacy_interface/legacy_complex_1stage_c_version.c diff --git a/test/C/elpa1_test_real_c_version.c b/test/C/elpa1/legacy_interface/legacy_real_1stage_c_version.c similarity index 100% rename from test/C/elpa1_test_real_c_version.c rename to test/C/elpa1/legacy_interface/legacy_real_1stage_c_version.c diff --git a/test/C/elpa2_test_complex_c_version.c b/test/C/elpa2/legacy_interface/legacy_complex_2stage_c_version.c similarity index 100% rename from test/C/elpa2_test_complex_c_version.c rename to test/C/elpa2/legacy_interface/legacy_complex_2stage_c_version.c diff --git a/test/C/elpa2_test_real_c_version.c b/test/C/elpa2/legacy_interface/legacy_real_2stage_c_version.c similarity index 100% rename from test/C/elpa2_test_real_c_version.c rename to test/C/elpa2/legacy_interface/legacy_real_2stage_c_version.c diff --git a/test/Fortran/test_driver_complex.F90 b/test/Fortran/driver/legacy_interface/legacy_complex_driver.F90 similarity index 99% rename from test/Fortran/test_driver_complex.F90 rename to test/Fortran/driver/legacy_interface/legacy_complex_driver.F90 index 31ccc937..a0e6fca6 100644 --- a/test/Fortran/test_driver_complex.F90 +++ b/test/Fortran/driver/legacy_interface/legacy_complex_driver.F90 @@ -144,7 +144,7 @@ program test_complex2 STATUS = 0 #define DATATYPE COMPLEX -#include "elpa_print_headers.X90" +#include "../../elpa_print_headers.X90" #ifdef HAVE_DETAILED_TIMINGS diff --git a/test/Fortran/test_driver_real.F90 b/test/Fortran/driver/legacy_interface/legacy_real_driver.F90 similarity index 99% rename from test/Fortran/test_driver_real.F90 rename to test/Fortran/driver/legacy_interface/legacy_real_driver.F90 index a444416e..948d537c 100644 --- a/test/Fortran/test_driver_real.F90 +++ b/test/Fortran/driver/legacy_interface/legacy_real_driver.F90 @@ -144,7 +144,7 @@ program test_real2 STATUS = 0 #define DATATYPE REAL -#include "elpa_print_headers.X90" +#include "../../elpa_print_headers.X90" #ifdef HAVE_DETAILED_TIMINGS diff --git a/test/Fortran/test_driver_complex_single.F90 b/test/Fortran/driver/legacy_interface/legacy_single_complex_driver.F90 similarity index 99% rename from test/Fortran/test_driver_complex_single.F90 rename to test/Fortran/driver/legacy_interface/legacy_single_complex_driver.F90 index f7341336..c3723245 100644 --- a/test/Fortran/test_driver_complex_single.F90 +++ b/test/Fortran/driver/legacy_interface/legacy_single_complex_driver.F90 @@ -144,7 +144,7 @@ program test_complex2 STATUS = 0 #define DATATYPE COMPLEX -#include "elpa_print_headers.X90" +#include "../../elpa_print_headers.X90" #ifdef HAVE_DETAILED_TIMINGS diff --git a/test/Fortran/test_driver_real_single.F90 b/test/Fortran/driver/legacy_interface/legacy_single_real_driver.F90 similarity index 99% rename from test/Fortran/test_driver_real_single.F90 rename to test/Fortran/driver/legacy_interface/legacy_single_real_driver.F90 index 2ea0539b..12cc85b5 100644 --- a/test/Fortran/test_driver_real_single.F90 +++ b/test/Fortran/driver/legacy_interface/legacy_single_real_driver.F90 @@ -143,7 +143,7 @@ program test_real2 STATUS = 0 #define DATATYPE REAL -#include "elpa_print_headers.X90" +#include "../../elpa_print_headers.X90" #ifdef HAVE_DETAILED_TIMINGS diff --git a/test/Fortran/complex_1stage.F90 b/test/Fortran/elpa1/complex_1stage.F90 similarity index 99% rename from test/Fortran/complex_1stage.F90 rename to test/Fortran/elpa1/complex_1stage.F90 index 122488e2..f18c04f6 100644 --- a/test/Fortran/complex_1stage.F90 +++ b/test/Fortran/elpa1/complex_1stage.F90 @@ -42,7 +42,7 @@ ! #include "config-f90.h" -#include "assert.h" +#include "../assert.h" program test_interface use precision diff --git a/test/Fortran/complex_1stage_gpu.F90 b/test/Fortran/elpa1/complex_1stage_gpu.F90 similarity index 99% rename from test/Fortran/complex_1stage_gpu.F90 rename to test/Fortran/elpa1/complex_1stage_gpu.F90 index 63cdb981..802ef5ea 100644 --- a/test/Fortran/complex_1stage_gpu.F90 +++ b/test/Fortran/elpa1/complex_1stage_gpu.F90 @@ -42,7 +42,7 @@ ! #include "config-f90.h" -#include "assert.h" +#include "../assert.h" program test_interface use precision diff --git a/test/Fortran/elpa1/complex.F90 b/test/Fortran/elpa1/legacy_interface/legacy_complex.F90 similarity index 99% rename from test/Fortran/elpa1/complex.F90 rename to test/Fortran/elpa1/legacy_interface/legacy_complex.F90 index e7aee895..cb0d58f1 100644 --- a/test/Fortran/elpa1/complex.F90 +++ b/test/Fortran/elpa1/legacy_interface/legacy_complex.F90 @@ -139,7 +139,7 @@ program test_complex_double_precision #define COMPLEXCASE #define ELPA1 -#include "../elpa_print_headers.X90" +#include "../../elpa_print_headers.X90" #ifdef HAVE_DETAILED_TIMINGS diff --git a/test/Fortran/elpa1/complex_cholesky.F90 b/test/Fortran/elpa1/legacy_interface/legacy_complex_cholesky.F90 similarity index 100% rename from test/Fortran/elpa1/complex_cholesky.F90 rename to test/Fortran/elpa1/legacy_interface/legacy_complex_cholesky.F90 diff --git a/test/Fortran/elpa1/complex_gpu.F90 b/test/Fortran/elpa1/legacy_interface/legacy_complex_gpu.F90 similarity index 99% rename from test/Fortran/elpa1/complex_gpu.F90 rename to test/Fortran/elpa1/legacy_interface/legacy_complex_gpu.F90 index 035a838c..33752be7 100644 --- a/test/Fortran/elpa1/complex_gpu.F90 +++ b/test/Fortran/elpa1/legacy_interface/legacy_complex_gpu.F90 @@ -147,7 +147,7 @@ program test_complex_gpu_version_double_precision #define COMPLEXCASE #define ELPA1 -#include "../elpa_print_headers.X90" +#include "../../elpa_print_headers.X90" #ifdef HAVE_DETAILED_TIMINGS diff --git a/test/Fortran/elpa1/complex_invert_trm.F90 b/test/Fortran/elpa1/legacy_interface/legacy_complex_invert_trm.F90 similarity index 100% rename from test/Fortran/elpa1/complex_invert_trm.F90 rename to test/Fortran/elpa1/legacy_interface/legacy_complex_invert_trm.F90 diff --git a/test/Fortran/test_transpose_multiply_complex.F90 b/test/Fortran/elpa1/legacy_interface/legacy_complex_transpose_multiply.F90 similarity index 100% rename from test/Fortran/test_transpose_multiply_complex.F90 rename to test/Fortran/elpa1/legacy_interface/legacy_complex_transpose_multiply.F90 diff --git a/test/Fortran/elpa1/real.F90 b/test/Fortran/elpa1/legacy_interface/legacy_real.F90 similarity index 99% rename from test/Fortran/elpa1/real.F90 rename to test/Fortran/elpa1/legacy_interface/legacy_real.F90 index 95aa98dd..47854888 100644 --- a/test/Fortran/elpa1/real.F90 +++ b/test/Fortran/elpa1/legacy_interface/legacy_real.F90 @@ -141,7 +141,7 @@ program test_real_double_precision #define REALCASE #define ELPA1 -#include "../elpa_print_headers.X90" +#include "../../elpa_print_headers.X90" #ifdef HAVE_DETAILED_TIMINGS diff --git a/test/Fortran/test_real_with_c.F90 b/test/Fortran/elpa1/legacy_interface/legacy_real_1stage_with_c.F90 similarity index 100% rename from test/Fortran/test_real_with_c.F90 rename to test/Fortran/elpa1/legacy_interface/legacy_real_1stage_with_c.F90 diff --git a/test/Fortran/elpa1/real_cholesky.F90 b/test/Fortran/elpa1/legacy_interface/legacy_real_cholesky.F90 similarity index 100% rename from test/Fortran/elpa1/real_cholesky.F90 rename to test/Fortran/elpa1/legacy_interface/legacy_real_cholesky.F90 diff --git a/test/Fortran/elpa1/real_gpu.F90 b/test/Fortran/elpa1/legacy_interface/legacy_real_gpu.F90 similarity index 99% rename from test/Fortran/elpa1/real_gpu.F90 rename to test/Fortran/elpa1/legacy_interface/legacy_real_gpu.F90 index 97a6175a..7b7ea360 100644 --- a/test/Fortran/elpa1/real_gpu.F90 +++ b/test/Fortran/elpa1/legacy_interface/legacy_real_gpu.F90 @@ -149,7 +149,7 @@ program test_real_gpu_version_double_precision #define REALCASE #define ELPA1 -#include "../elpa_print_headers.X90" +#include "../../elpa_print_headers.X90" #ifdef HAVE_DETAILED_TIMINGS diff --git a/test/Fortran/elpa1/real_invert_trm.F90 b/test/Fortran/elpa1/legacy_interface/legacy_real_invert_trm.F90 similarity index 100% rename from test/Fortran/elpa1/real_invert_trm.F90 rename to test/Fortran/elpa1/legacy_interface/legacy_real_invert_trm.F90 diff --git a/test/Fortran/test_transpose_multiply_real.F90 b/test/Fortran/elpa1/legacy_interface/legacy_real_transpose_multiply.F90 similarity index 100% rename from test/Fortran/test_transpose_multiply_real.F90 rename to test/Fortran/elpa1/legacy_interface/legacy_real_transpose_multiply.F90 diff --git a/test/Fortran/elpa1/single_complex.F90 b/test/Fortran/elpa1/legacy_interface/legacy_single_complex.F90 similarity index 99% rename from test/Fortran/elpa1/single_complex.F90 rename to test/Fortran/elpa1/legacy_interface/legacy_single_complex.F90 index cade218b..13746c8f 100644 --- a/test/Fortran/elpa1/single_complex.F90 +++ b/test/Fortran/elpa1/legacy_interface/legacy_single_complex.F90 @@ -139,7 +139,7 @@ program test_complex_single_precision #define COMPLEXCASE #define ELPA1 -#include "../elpa_print_headers.X90" +#include "../../elpa_print_headers.X90" #ifdef HAVE_DETAILED_TIMINGS diff --git a/test/Fortran/elpa1/single_complex_cholesky.F90 b/test/Fortran/elpa1/legacy_interface/legacy_single_complex_cholesky.F90 similarity index 100% rename from test/Fortran/elpa1/single_complex_cholesky.F90 rename to test/Fortran/elpa1/legacy_interface/legacy_single_complex_cholesky.F90 diff --git a/test/Fortran/elpa1/single_complex_gpu.F90 b/test/Fortran/elpa1/legacy_interface/legacy_single_complex_gpu.F90 similarity index 99% rename from test/Fortran/elpa1/single_complex_gpu.F90 rename to test/Fortran/elpa1/legacy_interface/legacy_single_complex_gpu.F90 index b74874b8..069757ed 100644 --- a/test/Fortran/elpa1/single_complex_gpu.F90 +++ b/test/Fortran/elpa1/legacy_interface/legacy_single_complex_gpu.F90 @@ -147,7 +147,7 @@ program test_complex_gpu_version_single_precision #define COMPLEXCASE #define ELPA1 -#include "../elpa_print_headers.X90" +#include "../../elpa_print_headers.X90" #ifdef HAVE_DETAILED_TIMINGS diff --git a/test/Fortran/elpa1/single_complex_invert_trm.F90 b/test/Fortran/elpa1/legacy_interface/legacy_single_complex_invert_trm.F90 similarity index 100% rename from test/Fortran/elpa1/single_complex_invert_trm.F90 rename to test/Fortran/elpa1/legacy_interface/legacy_single_complex_invert_trm.F90 diff --git a/test/Fortran/test_transpose_multiply_complex_single.F90 b/test/Fortran/elpa1/legacy_interface/legacy_single_complex_transpose_multiply.F90 similarity index 100% rename from test/Fortran/test_transpose_multiply_complex_single.F90 rename to test/Fortran/elpa1/legacy_interface/legacy_single_complex_transpose_multiply.F90 diff --git a/test/Fortran/elpa1/single_real.F90 b/test/Fortran/elpa1/legacy_interface/legacy_single_real.F90 similarity index 99% rename from test/Fortran/elpa1/single_real.F90 rename to test/Fortran/elpa1/legacy_interface/legacy_single_real.F90 index d637c677..4a25d713 100644 --- a/test/Fortran/elpa1/single_real.F90 +++ b/test/Fortran/elpa1/legacy_interface/legacy_single_real.F90 @@ -140,7 +140,7 @@ program test_real_single_precision #define REALCASE #define ELPA1 -#include "../elpa_print_headers.X90" +#include "../../elpa_print_headers.X90" #ifdef HAVE_DETAILED_TIMINGS diff --git a/test/Fortran/elpa1/single_real_cholesky.F90 b/test/Fortran/elpa1/legacy_interface/legacy_single_real_cholesky.F90 similarity index 100% rename from test/Fortran/elpa1/single_real_cholesky.F90 rename to test/Fortran/elpa1/legacy_interface/legacy_single_real_cholesky.F90 diff --git a/test/Fortran/elpa1/single_real_gpu.F90 b/test/Fortran/elpa1/legacy_interface/legacy_single_real_gpu.F90 similarity index 99% rename from test/Fortran/elpa1/single_real_gpu.F90 rename to test/Fortran/elpa1/legacy_interface/legacy_single_real_gpu.F90 index 7b0670da..44b8a32a 100644 --- a/test/Fortran/elpa1/single_real_gpu.F90 +++ b/test/Fortran/elpa1/legacy_interface/legacy_single_real_gpu.F90 @@ -149,7 +149,7 @@ program test_real_gpu_version_single_precision #define REALCASE #define ELPA1 -#include "../elpa_print_headers.X90" +#include "../../elpa_print_headers.X90" #ifdef HAVE_DETAILED_TIMINGS diff --git a/test/Fortran/elpa1/single_real_invert_trm.F90 b/test/Fortran/elpa1/legacy_interface/legacy_single_real_invert_trm.F90 similarity index 100% rename from test/Fortran/elpa1/single_real_invert_trm.F90 rename to test/Fortran/elpa1/legacy_interface/legacy_single_real_invert_trm.F90 diff --git a/test/Fortran/test_transpose_multiply_real_single.F90 b/test/Fortran/elpa1/legacy_interface/legacy_single_real_transpose_multiply.F90 similarity index 100% rename from test/Fortran/test_transpose_multiply_real_single.F90 rename to test/Fortran/elpa1/legacy_interface/legacy_single_real_transpose_multiply.F90 diff --git a/test/Fortran/elpa1/single_toeplitz.F90 b/test/Fortran/elpa1/legacy_interface/legacy_single_toeplitz.F90 similarity index 99% rename from test/Fortran/elpa1/single_toeplitz.F90 rename to test/Fortran/elpa1/legacy_interface/legacy_single_toeplitz.F90 index a284dfcf..dd88ef45 100644 --- a/test/Fortran/elpa1/single_toeplitz.F90 +++ b/test/Fortran/elpa1/legacy_interface/legacy_single_toeplitz.F90 @@ -131,7 +131,7 @@ program test_solve_tridi_single !#define DATATYPE REAL !#define ELPA1 -!#include "../elpa_print_headers.X90" +!#include "../../elpa_print_headers.X90" #ifdef HAVE_DETAILED_TIMINGS diff --git a/test/Fortran/elpa1/toeplitz.F90 b/test/Fortran/elpa1/legacy_interface/legacy_toeplitz.F90 similarity index 99% rename from test/Fortran/elpa1/toeplitz.F90 rename to test/Fortran/elpa1/legacy_interface/legacy_toeplitz.F90 index a41ef112..6bbfee35 100644 --- a/test/Fortran/elpa1/toeplitz.F90 +++ b/test/Fortran/elpa1/legacy_interface/legacy_toeplitz.F90 @@ -131,7 +131,7 @@ program test_solve_tridi !#define DATATYPE REAL !#define ELPA1 -!#include "../elpa_print_headers.X90" +!#include "../../elpa_print_headers.X90" #ifdef HAVE_DETAILED_TIMINGS diff --git a/test/Fortran/real_1stage.F90 b/test/Fortran/elpa1/real_1stage.F90 similarity index 99% rename from test/Fortran/real_1stage.F90 rename to test/Fortran/elpa1/real_1stage.F90 index 73bc3bd8..90383191 100644 --- a/test/Fortran/real_1stage.F90 +++ b/test/Fortran/elpa1/real_1stage.F90 @@ -42,7 +42,7 @@ ! #include "config-f90.h" -#include "assert.h" +#include "../assert.h" program test_interface use precision diff --git a/test/Fortran/real_1stage_gpu.F90 b/test/Fortran/elpa1/real_1stage_gpu.F90 similarity index 99% rename from test/Fortran/real_1stage_gpu.F90 rename to test/Fortran/elpa1/real_1stage_gpu.F90 index 40e0ed8b..ec859a51 100644 --- a/test/Fortran/real_1stage_gpu.F90 +++ b/test/Fortran/elpa1/real_1stage_gpu.F90 @@ -42,7 +42,7 @@ ! #include "config-f90.h" -#include "assert.h" +#include "../assert.h" program test_interface use precision diff --git a/test/Fortran/single_complex_1stage.F90 b/test/Fortran/elpa1/single_complex_1stage.F90 similarity index 99% rename from test/Fortran/single_complex_1stage.F90 rename to test/Fortran/elpa1/single_complex_1stage.F90 index f1f7f281..0a1a4dfd 100644 --- a/test/Fortran/single_complex_1stage.F90 +++ b/test/Fortran/elpa1/single_complex_1stage.F90 @@ -42,7 +42,7 @@ ! #include "config-f90.h" -#include "assert.h" +#include "../assert.h" program test_interface use precision diff --git a/test/Fortran/single_complex_1stage_gpu.F90 b/test/Fortran/elpa1/single_complex_1stage_gpu.F90 similarity index 99% rename from test/Fortran/single_complex_1stage_gpu.F90 rename to test/Fortran/elpa1/single_complex_1stage_gpu.F90 index e96712bb..f48f59ee 100644 --- a/test/Fortran/single_complex_1stage_gpu.F90 +++ b/test/Fortran/elpa1/single_complex_1stage_gpu.F90 @@ -42,7 +42,7 @@ ! #include "config-f90.h" -#include "assert.h" +#include "../assert.h" program test_interface use precision diff --git a/test/Fortran/single_real_1stage.F90 b/test/Fortran/elpa1/single_real_1stage.F90 similarity index 99% rename from test/Fortran/single_real_1stage.F90 rename to test/Fortran/elpa1/single_real_1stage.F90 index 8190fd4e..c255c789 100644 --- a/test/Fortran/single_real_1stage.F90 +++ b/test/Fortran/elpa1/single_real_1stage.F90 @@ -42,7 +42,7 @@ ! #include "config-f90.h" -#include "assert.h" +#include "../assert.h" program test_interface use precision diff --git a/test/Fortran/single_real_1stage_gpu.F90 b/test/Fortran/elpa1/single_real_1stage_gpu.F90 similarity index 99% rename from test/Fortran/single_real_1stage_gpu.F90 rename to test/Fortran/elpa1/single_real_1stage_gpu.F90 index fc4725e1..1252405d 100644 --- a/test/Fortran/single_real_1stage_gpu.F90 +++ b/test/Fortran/elpa1/single_real_1stage_gpu.F90 @@ -42,7 +42,7 @@ ! #include "config-f90.h" -#include "assert.h" +#include "../assert.h" program test_interface use precision diff --git a/test/Fortran/complex_2stage.F90 b/test/Fortran/elpa2/complex_2stage.F90 similarity index 99% rename from test/Fortran/complex_2stage.F90 rename to test/Fortran/elpa2/complex_2stage.F90 index 6178bb48..31f4415b 100644 --- a/test/Fortran/complex_2stage.F90 +++ b/test/Fortran/elpa2/complex_2stage.F90 @@ -42,7 +42,7 @@ ! #include "config-f90.h" -#include "assert.h" +#include "../assert.h" program test_interface use precision diff --git a/test/Fortran/complex_2stage_banded.F90 b/test/Fortran/elpa2/complex_2stage_banded.F90 similarity index 99% rename from test/Fortran/complex_2stage_banded.F90 rename to test/Fortran/elpa2/complex_2stage_banded.F90 index e7b4c054..23c31e53 100644 --- a/test/Fortran/complex_2stage_banded.F90 +++ b/test/Fortran/elpa2/complex_2stage_banded.F90 @@ -41,7 +41,7 @@ ! ! #include "config-f90.h" -#include "assert.h" +#include "../assert.h" !> !> Fortran test programm to demonstrates the use of !> ELPA 2 complex case library. @@ -154,7 +154,7 @@ program test_complex2_double_banded STATUS = 0 -#include "elpa_print_headers.X90" +#include "../elpa_print_headers.X90" #ifdef HAVE_DETAILED_TIMINGS diff --git a/test/Fortran/complex_2stage_gpu.F90 b/test/Fortran/elpa2/complex_2stage_gpu.F90 similarity index 99% rename from test/Fortran/complex_2stage_gpu.F90 rename to test/Fortran/elpa2/complex_2stage_gpu.F90 index 751e9ee9..63102043 100644 --- a/test/Fortran/complex_2stage_gpu.F90 +++ b/test/Fortran/elpa2/complex_2stage_gpu.F90 @@ -42,7 +42,7 @@ ! #include "config-f90.h" -#include "assert.h" +#include "../assert.h" program test_interface use precision diff --git a/test/Fortran/elpa2/complex.F90 b/test/Fortran/elpa2/legacy_interface/legacy_complex.F90 similarity index 99% rename from test/Fortran/elpa2/complex.F90 rename to test/Fortran/elpa2/legacy_interface/legacy_complex.F90 index bc0a74b8..5d29d30e 100644 --- a/test/Fortran/elpa2/complex.F90 +++ b/test/Fortran/elpa2/legacy_interface/legacy_complex.F90 @@ -154,7 +154,7 @@ program test_complex2_double_precision STATUS = 0 -#include "../elpa_print_headers.X90" +#include "../../elpa_print_headers.X90" #ifdef HAVE_DETAILED_TIMINGS diff --git a/test/Fortran/elpa2/complex_api.F90 b/test/Fortran/elpa2/legacy_interface/legacy_complex_api.F90 similarity index 99% rename from test/Fortran/elpa2/complex_api.F90 rename to test/Fortran/elpa2/legacy_interface/legacy_complex_api.F90 index 00d2efd5..40692972 100644 --- a/test/Fortran/elpa2/complex_api.F90 +++ b/test/Fortran/elpa2/legacy_interface/legacy_complex_api.F90 @@ -154,7 +154,7 @@ program test_complex2_choose_kernel_with_api_double_precision STATUS = 0 #define COMPLEXCASE -#include "../elpa_print_headers.X90" +#include "../../elpa_print_headers.X90" #ifdef HAVE_DETAILED_TIMINGS diff --git a/test/Fortran/elpa2/complex_default_kernel.F90 b/test/Fortran/elpa2/legacy_interface/legacy_complex_default_kernel.F90 similarity index 99% rename from test/Fortran/elpa2/complex_default_kernel.F90 rename to test/Fortran/elpa2/legacy_interface/legacy_complex_default_kernel.F90 index f5bd725c..0462107a 100644 --- a/test/Fortran/elpa2/complex_default_kernel.F90 +++ b/test/Fortran/elpa2/legacy_interface/legacy_complex_default_kernel.F90 @@ -154,7 +154,7 @@ program test_complex2_default_kernel_double_precision STATUS = 0 #define COMPLEXCASE -#include "../elpa_print_headers.X90" +#include "../../elpa_print_headers.X90" #ifdef HAVE_DETAILED_TIMINGS diff --git a/test/Fortran/elpa2/complex_gpu.F90 b/test/Fortran/elpa2/legacy_interface/legacy_complex_gpu.F90 similarity index 99% rename from test/Fortran/elpa2/complex_gpu.F90 rename to test/Fortran/elpa2/legacy_interface/legacy_complex_gpu.F90 index 1c121d5c..efcb2bda 100644 --- a/test/Fortran/elpa2/complex_gpu.F90 +++ b/test/Fortran/elpa2/legacy_interface/legacy_complex_gpu.F90 @@ -155,7 +155,7 @@ program test_complex2_gpu_version_double_precision STATUS = 0 #define COMPLEXCASE -#include "../elpa_print_headers.X90" +#include "../../elpa_print_headers.X90" #ifdef HAVE_DETAILED_TIMINGS diff --git a/test/Fortran/elpa2/real.F90 b/test/Fortran/elpa2/legacy_interface/legacy_real.F90 similarity index 99% rename from test/Fortran/elpa2/real.F90 rename to test/Fortran/elpa2/legacy_interface/legacy_real.F90 index 7ac2a8ba..aa5dec1d 100644 --- a/test/Fortran/elpa2/real.F90 +++ b/test/Fortran/elpa2/legacy_interface/legacy_real.F90 @@ -149,7 +149,7 @@ program test_real2_double_precision STATUS = 0 #define REALCASE -#include "../elpa_print_headers.X90" +#include "../../elpa_print_headers.X90" #ifdef HAVE_DETAILED_TIMINGS diff --git a/test/Fortran/elpa2/real_api.F90 b/test/Fortran/elpa2/legacy_interface/legacy_real_api.F90 similarity index 99% rename from test/Fortran/elpa2/real_api.F90 rename to test/Fortran/elpa2/legacy_interface/legacy_real_api.F90 index 429adafe..a3d08513 100644 --- a/test/Fortran/elpa2/real_api.F90 +++ b/test/Fortran/elpa2/legacy_interface/legacy_real_api.F90 @@ -152,7 +152,7 @@ program test_real2_choose_kernel_with_api_double_precision STATUS = 0 #define REALCASE -#include "../elpa_print_headers.X90" +#include "../../elpa_print_headers.X90" #ifdef HAVE_DETAILED_TIMINGS diff --git a/test/Fortran/elpa2/real_default_kernel.F90 b/test/Fortran/elpa2/legacy_interface/legacy_real_default_kernel.F90 similarity index 99% rename from test/Fortran/elpa2/real_default_kernel.F90 rename to test/Fortran/elpa2/legacy_interface/legacy_real_default_kernel.F90 index 07deeed0..b6a7465a 100644 --- a/test/Fortran/elpa2/real_default_kernel.F90 +++ b/test/Fortran/elpa2/legacy_interface/legacy_real_default_kernel.F90 @@ -150,7 +150,7 @@ program test_real2_default_kernel_double_precision STATUS = 0 #define REALCASE -#include "../elpa_print_headers.X90" +#include "../../elpa_print_headers.X90" #ifdef HAVE_DETAILED_TIMINGS diff --git a/test/Fortran/elpa2/real_gpu.F90 b/test/Fortran/elpa2/legacy_interface/legacy_real_gpu.F90 similarity index 99% rename from test/Fortran/elpa2/real_gpu.F90 rename to test/Fortran/elpa2/legacy_interface/legacy_real_gpu.F90 index b832968a..f12e420b 100644 --- a/test/Fortran/elpa2/real_gpu.F90 +++ b/test/Fortran/elpa2/legacy_interface/legacy_real_gpu.F90 @@ -153,7 +153,7 @@ program test_real2_gpu_version_double_precision STATUS = 0 #define REALCASE -#include "../elpa_print_headers.X90" +#include "../../elpa_print_headers.X90" #ifdef HAVE_DETAILED_TIMINGS diff --git a/test/Fortran/elpa2/real_qr.F90 b/test/Fortran/elpa2/legacy_interface/legacy_real_qr.F90 similarity index 99% rename from test/Fortran/elpa2/real_qr.F90 rename to test/Fortran/elpa2/legacy_interface/legacy_real_qr.F90 index ec5eab1c..2eae8cf7 100644 --- a/test/Fortran/elpa2/real_qr.F90 +++ b/test/Fortran/elpa2/legacy_interface/legacy_real_qr.F90 @@ -191,7 +191,7 @@ program test_real2_default_kernel_qr_decomposition_double_precision #define REALCASE -#include "../elpa_print_headers.X90" +#include "../../elpa_print_headers.X90" #ifdef HAVE_DETAILED_TIMINGS diff --git a/test/Fortran/elpa2/single_complex.F90 b/test/Fortran/elpa2/legacy_interface/legacy_single_complex.F90 similarity index 99% rename from test/Fortran/elpa2/single_complex.F90 rename to test/Fortran/elpa2/legacy_interface/legacy_single_complex.F90 index a6e74a57..c22c7c9b 100644 --- a/test/Fortran/elpa2/single_complex.F90 +++ b/test/Fortran/elpa2/legacy_interface/legacy_single_complex.F90 @@ -154,7 +154,7 @@ program test_complex2_single_precision STATUS = 0 #define COMPLEXCASE -#include "../elpa_print_headers.X90" +#include "../../elpa_print_headers.X90" #ifdef HAVE_DETAILED_TIMINGS diff --git a/test/Fortran/elpa2/single_complex_api.F90 b/test/Fortran/elpa2/legacy_interface/legacy_single_complex_api.F90 similarity index 99% rename from test/Fortran/elpa2/single_complex_api.F90 rename to test/Fortran/elpa2/legacy_interface/legacy_single_complex_api.F90 index 1ee819c5..0155cd1f 100644 --- a/test/Fortran/elpa2/single_complex_api.F90 +++ b/test/Fortran/elpa2/legacy_interface/legacy_single_complex_api.F90 @@ -154,7 +154,7 @@ program test_complex2_choose_kernel_with_api_single_precision STATUS = 0 #define COMPLEXCASE -#include "../elpa_print_headers.X90" +#include "../../elpa_print_headers.X90" #ifdef HAVE_DETAILED_TIMINGS diff --git a/test/Fortran/elpa2/single_complex_default_kernel.F90 b/test/Fortran/elpa2/legacy_interface/legacy_single_complex_default_kernel.F90 similarity index 99% rename from test/Fortran/elpa2/single_complex_default_kernel.F90 rename to test/Fortran/elpa2/legacy_interface/legacy_single_complex_default_kernel.F90 index 3ee9aedd..74b9f266 100644 --- a/test/Fortran/elpa2/single_complex_default_kernel.F90 +++ b/test/Fortran/elpa2/legacy_interface/legacy_single_complex_default_kernel.F90 @@ -154,7 +154,7 @@ program test_complex2_default_kernel_single_precision STATUS = 0 #define COMPLEXCASE -#include "../elpa_print_headers.X90" +#include "../../elpa_print_headers.X90" #ifdef HAVE_DETAILED_TIMINGS diff --git a/test/Fortran/elpa2/single_complex_gpu.F90 b/test/Fortran/elpa2/legacy_interface/legacy_single_complex_gpu.F90 similarity index 99% rename from test/Fortran/elpa2/single_complex_gpu.F90 rename to test/Fortran/elpa2/legacy_interface/legacy_single_complex_gpu.F90 index d5fd7e1d..b4946e9d 100644 --- a/test/Fortran/elpa2/single_complex_gpu.F90 +++ b/test/Fortran/elpa2/legacy_interface/legacy_single_complex_gpu.F90 @@ -155,7 +155,7 @@ program test_complex2_gpu_version_single_precision STATUS = 0 #define COMPLEXCASE -#include "../elpa_print_headers.X90" +#include "../../elpa_print_headers.X90" #ifdef HAVE_DETAILED_TIMINGS diff --git a/test/Fortran/elpa2/single_real.F90 b/test/Fortran/elpa2/legacy_interface/legacy_single_real.F90 similarity index 99% rename from test/Fortran/elpa2/single_real.F90 rename to test/Fortran/elpa2/legacy_interface/legacy_single_real.F90 index dfa5c670..bbe7d10d 100644 --- a/test/Fortran/elpa2/single_real.F90 +++ b/test/Fortran/elpa2/legacy_interface/legacy_single_real.F90 @@ -149,7 +149,7 @@ program test_real2_single_precision STATUS = 0 #define REALCASE -#include "../elpa_print_headers.X90" +#include "../../elpa_print_headers.X90" #ifdef HAVE_DETAILED_TIMINGS diff --git a/test/Fortran/elpa2/single_real_api.F90 b/test/Fortran/elpa2/legacy_interface/legacy_single_real_api.F90 similarity index 99% rename from test/Fortran/elpa2/single_real_api.F90 rename to test/Fortran/elpa2/legacy_interface/legacy_single_real_api.F90 index 7380ee5b..933005b8 100644 --- a/test/Fortran/elpa2/single_real_api.F90 +++ b/test/Fortran/elpa2/legacy_interface/legacy_single_real_api.F90 @@ -152,7 +152,7 @@ program test_real2_choose_kernel_with_api_single_precision STATUS = 0 #define REALCASE -#include "../elpa_print_headers.X90" +#include "../../elpa_print_headers.X90" #ifdef HAVE_DETAILED_TIMINGS diff --git a/test/Fortran/elpa2/single_real_default_kernel.F90 b/test/Fortran/elpa2/legacy_interface/legacy_single_real_default_kernel.F90 similarity index 99% rename from test/Fortran/elpa2/single_real_default_kernel.F90 rename to test/Fortran/elpa2/legacy_interface/legacy_single_real_default_kernel.F90 index a2c03b00..cf7a009a 100644 --- a/test/Fortran/elpa2/single_real_default_kernel.F90 +++ b/test/Fortran/elpa2/legacy_interface/legacy_single_real_default_kernel.F90 @@ -150,7 +150,7 @@ program test_real2_default_kernel_single_precision STATUS = 0 #define REALCASE -#include "../elpa_print_headers.X90" +#include "../../elpa_print_headers.X90" #ifdef HAVE_DETAILED_TIMINGS diff --git a/test/Fortran/elpa2/single_real_gpu.F90 b/test/Fortran/elpa2/legacy_interface/legacy_single_real_gpu.F90 similarity index 99% rename from test/Fortran/elpa2/single_real_gpu.F90 rename to test/Fortran/elpa2/legacy_interface/legacy_single_real_gpu.F90 index 4ad959e3..6ae92532 100644 --- a/test/Fortran/elpa2/single_real_gpu.F90 +++ b/test/Fortran/elpa2/legacy_interface/legacy_single_real_gpu.F90 @@ -153,7 +153,7 @@ program test_real2_gpu_version_single_precision STATUS = 0 #define REALCASE -#include "../elpa_print_headers.X90" +#include "../../elpa_print_headers.X90" #ifdef HAVE_DETAILED_TIMINGS diff --git a/test/Fortran/elpa2/single_real_qr.F90 b/test/Fortran/elpa2/legacy_interface/legacy_single_real_qr.F90 similarity index 99% rename from test/Fortran/elpa2/single_real_qr.F90 rename to test/Fortran/elpa2/legacy_interface/legacy_single_real_qr.F90 index e975b50d..4b4460b1 100644 --- a/test/Fortran/elpa2/single_real_qr.F90 +++ b/test/Fortran/elpa2/legacy_interface/legacy_single_real_qr.F90 @@ -195,7 +195,7 @@ program test_real2_default_kernel_qr_decomposition_single_precision endif #define REALCASE -#include "../elpa_print_headers.X90" +#include "../../elpa_print_headers.X90" #ifdef HAVE_DETAILED_TIMINGS diff --git a/test/Fortran/real_2stage.F90 b/test/Fortran/elpa2/real_2stage.F90 similarity index 99% rename from test/Fortran/real_2stage.F90 rename to test/Fortran/elpa2/real_2stage.F90 index 103ede13..4bda2617 100644 --- a/test/Fortran/real_2stage.F90 +++ b/test/Fortran/elpa2/real_2stage.F90 @@ -42,7 +42,7 @@ ! #include "config-f90.h" -#include "assert.h" +#include "../assert.h" program test_interface use precision diff --git a/test/Fortran/real_2stage_banded.F90 b/test/Fortran/elpa2/real_2stage_banded.F90 similarity index 99% rename from test/Fortran/real_2stage_banded.F90 rename to test/Fortran/elpa2/real_2stage_banded.F90 index 156cf4ef..3854ee71 100644 --- a/test/Fortran/real_2stage_banded.F90 +++ b/test/Fortran/elpa2/real_2stage_banded.F90 @@ -41,7 +41,7 @@ ! ! #include "config-f90.h" -#include "assert.h" +#include "../assert.h" !> !> Fortran test programm to demonstrates the use of !> ELPA 2 real case library. @@ -149,7 +149,7 @@ program test_real2_double_banded STATUS = 0 #define REALCASE -#include "elpa_print_headers.X90" +#include "../elpa_print_headers.X90" #ifdef HAVE_DETAILED_TIMINGS diff --git a/test/Fortran/real_2stage_gpu.F90 b/test/Fortran/elpa2/real_2stage_gpu.F90 similarity index 99% rename from test/Fortran/real_2stage_gpu.F90 rename to test/Fortran/elpa2/real_2stage_gpu.F90 index 4a1e2620..c3421928 100644 --- a/test/Fortran/real_2stage_gpu.F90 +++ b/test/Fortran/elpa2/real_2stage_gpu.F90 @@ -42,7 +42,7 @@ ! #include "config-f90.h" -#include "assert.h" +#include "../assert.h" program test_interface use precision diff --git a/test/Fortran/single_complex_2stage.F90 b/test/Fortran/elpa2/single_complex_2stage.F90 similarity index 99% rename from test/Fortran/single_complex_2stage.F90 rename to test/Fortran/elpa2/single_complex_2stage.F90 index 68229b18..2073c004 100644 --- a/test/Fortran/single_complex_2stage.F90 +++ b/test/Fortran/elpa2/single_complex_2stage.F90 @@ -42,7 +42,7 @@ ! #include "config-f90.h" -#include "assert.h" +#include "../assert.h" program test_interface use precision diff --git a/test/Fortran/single_complex_2stage_banded.F90 b/test/Fortran/elpa2/single_complex_2stage_banded.F90 similarity index 99% rename from test/Fortran/single_complex_2stage_banded.F90 rename to test/Fortran/elpa2/single_complex_2stage_banded.F90 index d5de958e..e82abf83 100644 --- a/test/Fortran/single_complex_2stage_banded.F90 +++ b/test/Fortran/elpa2/single_complex_2stage_banded.F90 @@ -41,7 +41,7 @@ ! ! #include "config-f90.h" -#include "assert.h" +#include "../assert.h" !> !> Fortran test programm to demonstrates the use of !> ELPA 2 complex case library. @@ -154,7 +154,7 @@ program test_complex2_single_banded STATUS = 0 -#include "elpa_print_headers.X90" +#include "../elpa_print_headers.X90" #ifdef HAVE_DETAILED_TIMINGS diff --git a/test/Fortran/single_complex_2stage_gpu.F90 b/test/Fortran/elpa2/single_complex_2stage_gpu.F90 similarity index 99% rename from test/Fortran/single_complex_2stage_gpu.F90 rename to test/Fortran/elpa2/single_complex_2stage_gpu.F90 index c364d367..542cb79c 100644 --- a/test/Fortran/single_complex_2stage_gpu.F90 +++ b/test/Fortran/elpa2/single_complex_2stage_gpu.F90 @@ -42,7 +42,7 @@ ! #include "config-f90.h" -#include "assert.h" +#include "../assert.h" program test_interface use precision diff --git a/test/Fortran/single_real_2stage.F90 b/test/Fortran/elpa2/single_real_2stage.F90 similarity index 99% rename from test/Fortran/single_real_2stage.F90 rename to test/Fortran/elpa2/single_real_2stage.F90 index de44180f..73e900ae 100644 --- a/test/Fortran/single_real_2stage.F90 +++ b/test/Fortran/elpa2/single_real_2stage.F90 @@ -42,7 +42,7 @@ ! #include "config-f90.h" -#include "assert.h" +#include "../assert.h" program test_interface use precision diff --git a/test/Fortran/single_real_2stage_banded.F90 b/test/Fortran/elpa2/single_real_2stage_banded.F90 similarity index 99% rename from test/Fortran/single_real_2stage_banded.F90 rename to test/Fortran/elpa2/single_real_2stage_banded.F90 index 6f2f9fa0..405dc850 100644 --- a/test/Fortran/single_real_2stage_banded.F90 +++ b/test/Fortran/elpa2/single_real_2stage_banded.F90 @@ -41,7 +41,7 @@ ! ! #include "config-f90.h" -#include "assert.h" +#include "../assert.h" !> !> Fortran test programm to demonstrates the use of !> ELPA 2 real case library. @@ -149,7 +149,7 @@ program test_real2_single_banded STATUS = 0 #define REALCASE -#include "elpa_print_headers.X90" +#include "../elpa_print_headers.X90" #ifdef HAVE_DETAILED_TIMINGS diff --git a/test/Fortran/single_real_2stage_gpu.F90 b/test/Fortran/elpa2/single_real_2stage_gpu.F90 similarity index 99% rename from test/Fortran/single_real_2stage_gpu.F90 rename to test/Fortran/elpa2/single_real_2stage_gpu.F90 index cbc2bc74..6a78bf98 100644 --- a/test/Fortran/single_real_2stage_gpu.F90 +++ b/test/Fortran/elpa2/single_real_2stage_gpu.F90 @@ -42,7 +42,7 @@ ! #include "config-f90.h" -#include "assert.h" +#include "../assert.h" program test_interface use precision diff --git a/test/Fortran/test_transpose_multiply_complex_2stage.F90 b/test/Fortran/test_transpose_multiply_complex_2stage.F90 deleted file mode 100644 index 126c4583..00000000 --- a/test/Fortran/test_transpose_multiply_complex_2stage.F90 +++ /dev/null @@ -1,316 +0,0 @@ -! This file is part of ELPA. -! -! The ELPA library was originally created by the ELPA consortium, -! consisting of the following organizations: -! -! - Max Planck Computing and Data Facility (MPCDF), formerly known as -! Rechenzentrum Garching der Max-Planck-Gesellschaft (RZG), -! - Bergische Universität Wuppertal, Lehrstuhl für angewandte -! Informatik, -! - Technische Universität München, Lehrstuhl für Informatik mit -! Schwerpunkt Wissenschaftliches Rechnen , -! - Fritz-Haber-Institut, Berlin, Abt. Theorie, -! - Max-Plack-Institut für Mathematik in den Naturwissenschaften, -! Leipzig, Abt. Komplexe Strukutren in Biologie und Kognition, -! and -! - IBM Deutschland GmbH -! -! -! More information can be found here: -! http://elpa.mpcdf.mpg.de/ -! -! ELPA is free software: you can redistribute it and/or modify -! it under the terms of the version 3 of the license of the -! GNU Lesser General Public License as published by the Free -! Software Foundation. -! -! ELPA is distributed in the hope that it will be useful, -! but WITHOUT ANY WARRANTY; without even the implied warranty of -! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -! GNU Lesser General Public License for more details. -! -! You should have received a copy of the GNU Lesser General Public License -! along with ELPA. If not, see <http://www.gnu.org/licenses/> -! -! ELPA reflects a substantial effort on the part of the original -! ELPA consortium, and we ask you to respect the spirit of the -! license that we chose: i.e., please contribute any changes you -! may have back to the original ELPA library distribution, and keep -! any derivatives of ELPA under the same license that we chose for -! the original distribution, the GNU Lesser General Public License. -! -! -#include "config-f90.h" -!> - -program test_transpose_multiply - - use precision - use elpa1 - use elpa_utilities, only : error_unit -#ifdef WITH_OPENMP - use test_util -#endif - - use mod_read_input_parameters - use mod_check_correctness - use mod_setup_mpi - use mod_blacs_infrastructure - use mod_prepare_matrix - - use elpa_mpi -#ifdef HAVE_REDIRECT - use redirect -#endif -#ifdef HAVE_DETAILED_TIMINGS - use timings -#endif - use output_types - - implicit none - - !------------------------------------------------------------------------------- - ! Please set system size parameters below! - ! na: System size - ! nev: Number of eigenvectors to be calculated - ! nblk: Blocking factor in block cyclic distribution - !------------------------------------------------------------------------------- - integer(kind=ik) :: nblk - integer(kind=ik) :: na, nev - - integer(kind=ik) :: np_rows, np_cols, na_rows, na_cols - - integer(kind=ik) :: myid, nprocs, my_prow, my_pcol, mpi_comm_rows, mpi_comm_cols - integer(kind=ik) :: i, mpierr, my_blacs_ctxt, sc_desc(9), info, nprow, npcol - - integer, external :: numroc - - real(kind=rk8), allocatable :: ev(:) - complex(kind=ck8), allocatable :: a(:,:), b(:,:), c(:,:), z(:,:), tmp1(:,:), tmp2(:,:), as(:,:) - complex(kind=ck8), parameter :: CZERO = (0.0_rk8,0.0_rk8), CONE = (1.0_rk8,0.0_rk8) - real(kind=rk8) :: norm, normmax -#ifdef WITH_MPI - real(kind=rk8) :: pzlange -#else - real(kind=rk8) :: zlange -#endif - integer(kind=ik) :: STATUS -#ifdef WITH_OPENMP - integer(kind=ik) :: omp_get_max_threads, required_mpi_thread_level, & - provided_mpi_thread_level -#endif - type(output_t) :: write_to_file - logical :: success - character(len=8) :: task_suffix - integer(kind=ik) :: j - !------------------------------------------------------------------------------- - - success = .true. - - call read_input_parameters_traditional(na, nev, nblk, write_to_file) - - !------------------------------------------------------------------------------- - ! MPI Initialization - call setup_mpi(myid, nprocs) - - STATUS = 0 - -#ifdef HAVE_DETAILED_TIMINGS - - ! initialise the timing functionality - -#ifdef HAVE_LIBPAPI - call timer%measure_flops(.true.) -#endif - - call timer%measure_allocated_memory(.true.) - call timer%measure_virtual_memory(.true.) - call timer%measure_max_allocated_memory(.true.) - - call timer%set_print_options(& -#ifdef HAVE_LIBPAPI - print_flop_count=.true., & - print_flop_rate=.true., & -#endif - print_allocated_memory = .true. , & - print_virtual_memory=.true., & - print_max_allocated_memory=.true.) - - - call timer%enable() - - call timer%start("program") -#endif - - do np_cols = NINT(SQRT(REAL(nprocs))),2,-1 - if(mod(nprocs,np_cols) == 0 ) exit - enddo - - ! at the end of the above loop, nprocs is always divisible by np_cols - - np_rows = nprocs/np_cols - - if(myid==0) then - print '(3(a,i0))','Matrix size=',na,', Block size=',nblk - print '(3(a,i0))','Number of processor rows=',np_rows,', cols=',np_cols,', total=',nprocs - print * - endif - - !------------------------------------------------------------------------------- - ! Set up BLACS context and MPI communicators - ! - ! The BLACS context is only necessary for using Scalapack. - ! - ! For ELPA, the MPI communicators along rows/cols are sufficient, - ! and the grid setup may be done in an arbitrary way as long as it is - ! consistent (i.e. 0<=my_prow<np_rows, 0<=my_pcol<np_cols and every - ! process has a unique (my_prow,my_pcol) pair). - - call set_up_blacsgrid(mpi_comm_world, my_blacs_ctxt, np_rows, np_cols, & - nprow, npcol, my_prow, my_pcol) - - if (myid==0) then - print '(a)','| Past BLACS_Gridinfo.' - end if - - ! All ELPA routines need MPI communicators for communicating within - ! rows or columns of processes, these are set in elpa_get_communicators. - - mpierr = elpa_get_communicators(mpi_comm_world, my_prow, my_pcol, & - mpi_comm_rows, mpi_comm_cols) - - if (myid==0) then - print '(a)','| Past split communicator setup for rows and columns.' - end if - - call set_up_blacs_descriptor(na ,nblk, my_prow, my_pcol, np_rows, np_cols, & - na_rows, na_cols, sc_desc, my_blacs_ctxt, info) - - if (myid==0) then - print '(a)','| Past scalapack descriptor setup.' - end if - - !------------------------------------------------------------------------------- - ! Allocate matrices and set up a test matrix for the eigenvalue problem -#ifdef HAVE_DETAILED_TIMINGS - call timer%start("set up matrix") -#endif - allocate(a (na_rows,na_cols)) - allocate(b (na_rows,na_cols)) - allocate(c (na_rows,na_cols)) - - allocate(z (na_rows,na_cols)) - allocate(as(na_rows,na_cols)) - - allocate(ev(na)) - call prepare_matrix(na, myid, sc_desc, a, z, as) - b(:,:) = 2.0_ck8 * a(:,:) - c(:,:) = 0.0_ck8 - -#ifdef HAVE_DETAILED_TIMINGS - call timer%stop("set up matrix") -#endif - - !------------------------------------------------------------------------------- - ! Calculate eigenvalues/eigenvectors - - if (myid==0) then - print '(a)','| Compute c= a**T * b ... ' - print * - end if -#ifdef WITH_MPI - call mpi_barrier(mpi_comm_world, mpierr) ! for correct timings only -#endif - - success = elpa_mult_ah_b_complex_double("F","F", na, na, a, na_rows, na_cols, b, na_rows, na_cols, & - nblk, mpi_comm_rows, mpi_comm_cols, c, na_rows, na_cols) - - if (.not.(success)) then - write(error_unit,*) " elpa_mult_at_b_complex produced an error! Aborting..." -#ifdef WITH_MPI - call MPI_ABORT(mpi_comm_world, 1, mpierr) -#endif - endif - - - if (myid==0) then - print '(a)','| Solve c = a**T * b complete.' - print * - end if - - - !------------------------------------------------------------------------------- - ! Test correctness of result (using plain scalapack routines) - allocate(tmp1(na_rows,na_cols)) - allocate(tmp2(na_rows,na_cols)) - - tmp1(:,:) = 0.0_ck8 - - ! tmp1 = a**T -#ifdef WITH_MPI - call pztranc(na, na, CONE, a, 1, 1, sc_desc, CZERO, tmp1, 1, 1, sc_desc) -#else - tmp1 = transpose(conjg(a)) -#endif - ! tmp2 = tmp1 * b -#ifdef WITH_MPI - call pzgemm("N","N", na, na, na, CONE, tmp1, 1, 1, sc_desc, b, 1, 1, & - sc_desc, CZERO, tmp2, 1, 1, sc_desc) -#else - call zgemm("N","N", na, na, na, CONE, tmp1, na, b, na, CZERO, tmp2, na) -#endif - - ! compare tmp2 with c - tmp2(:,:) = tmp2(:,:) - c(:,:) - -#ifdef WITH_MPI - norm = pzlange("M",na, na, tmp2, 1, 1, sc_desc, tmp1) -#else - norm = zlange("M",na, na, tmp2, na_rows, tmp1) -#endif -#ifdef WITH_MPI - call mpi_allreduce(norm,normmax,1,MPI_REAL8,MPI_MAX,MPI_COMM_WORLD,mpierr) -#else - normmax = norm -#endif - if (myid .eq. 0) then - print *," Maximum error of result: ", normmax - endif - - if (normmax .gt. 5e-11_rk8) then - status = 1 - endif - - deallocate(a) - deallocate(b) - deallocate(c) - - deallocate(as) - - deallocate(z) - deallocate(tmp1) - deallocate(tmp2) - deallocate(ev) - -#ifdef HAVE_DETAILED_TIMINGS - call timer%stop("program") - print *," " - print *,"Timings program:" - print *," " - call timer%print("program") - print *," " - print *,"End timings program" - print *," " -#endif - -#ifdef WITH_MPI - call blacs_gridexit(my_blacs_ctxt) - call mpi_finalize(mpierr) -#endif - - call EXIT(STATUS) - - -end - -!------------------------------------------------------------------------------- diff --git a/test/Fortran/test_transpose_multiply_complex_single_2stage.F90 b/test/Fortran/test_transpose_multiply_complex_single_2stage.F90 deleted file mode 100644 index e9bb669f..00000000 --- a/test/Fortran/test_transpose_multiply_complex_single_2stage.F90 +++ /dev/null @@ -1,316 +0,0 @@ -! This file is part of ELPA. -! -! The ELPA library was originally created by the ELPA consortium, -! consisting of the following organizations: -! -! - Max Planck Computing and Data Facility (MPCDF), formerly known as -! Rechenzentrum Garching der Max-Planck-Gesellschaft (RZG), -! - Bergische Universität Wuppertal, Lehrstuhl für angewandte -! Informatik, -! - Technische Universität München, Lehrstuhl für Informatik mit -! Schwerpunkt Wissenschaftliches Rechnen , -! - Fritz-Haber-Institut, Berlin, Abt. Theorie, -! - Max-Plack-Institut für Mathematik in den Naturwissenschaften, -! Leipzig, Abt. Komplexe Strukutren in Biologie und Kognition, -! and -! - IBM Deutschland GmbH -! -! -! More information can be found here: -! http://elpa.mpcdf.mpg.de/ -! -! ELPA is free software: you can redistribute it and/or modify -! it under the terms of the version 3 of the license of the -! GNU Lesser General Public License as published by the Free -! Software Foundation. -! -! ELPA is distributed in the hope that it will be useful, -! but WITHOUT ANY WARRANTY; without even the implied warranty of -! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -! GNU Lesser General Public License for more details. -! -! You should have received a copy of the GNU Lesser General Public License -! along with ELPA. If not, see <http://www.gnu.org/licenses/> -! -! ELPA reflects a substantial effort on the part of the original -! ELPA consortium, and we ask you to respect the spirit of the -! license that we chose: i.e., please contribute any changes you -! may have back to the original ELPA library distribution, and keep -! any derivatives of ELPA under the same license that we chose for -! the original distribution, the GNU Lesser General Public License. -! -! -#include "config-f90.h" -!> - -program test_transpose_multiply - - use precision - use elpa1 - use elpa_utilities, only : error_unit -#ifdef WITH_OPENMP - use test_util -#endif - - use mod_read_input_parameters - use mod_check_correctness - use mod_setup_mpi - use mod_blacs_infrastructure - use mod_prepare_matrix - - use elpa_mpi -#ifdef HAVE_REDIRECT - use redirect -#endif -#ifdef HAVE_DETAILED_TIMINGS - use timings -#endif - use output_types - - implicit none - - !------------------------------------------------------------------------------- - ! Please set system size parameters below! - ! na: System size - ! nev: Number of eigenvectors to be calculated - ! nblk: Blocking factor in block cyclic distribution - !------------------------------------------------------------------------------- - integer(kind=ik) :: nblk - integer(kind=ik) :: na, nev - - integer(kind=ik) :: np_rows, np_cols, na_rows, na_cols - - integer(kind=ik) :: myid, nprocs, my_prow, my_pcol, mpi_comm_rows, mpi_comm_cols - integer(kind=ik) :: i, mpierr, my_blacs_ctxt, sc_desc(9), info, nprow, npcol - - integer, external :: numroc - - real(kind=rk4), allocatable :: ev(:) - complex(kind=ck4), allocatable :: a(:,:), b(:,:), c(:,:), z(:,:), tmp1(:,:), tmp2(:,:), as(:,:) - complex(kind=ck4), parameter :: CZERO = (0.0_rk4,0.0_rk4), CONE = (1.0_rk4,0.0_rk4) - real(kind=rk4) :: norm, normmax -#ifdef WITH_MPI - real(kind=rk4) :: pclange -#else - real(kind=rk4) :: clange -#endif - integer(kind=ik) :: STATUS -#ifdef WITH_OPENMP - integer(kind=ik) :: omp_get_max_threads, required_mpi_thread_level, & - provided_mpi_thread_level -#endif - type(output_t) :: write_to_file - logical :: success - character(len=8) :: task_suffix - integer(kind=ik) :: j - !------------------------------------------------------------------------------- - - success = .true. - - call read_input_parameters_traditional(na, nev, nblk, write_to_file) - - !------------------------------------------------------------------------------- - ! MPI Initialization - call setup_mpi(myid, nprocs) - - STATUS = 0 - -#ifdef HAVE_DETAILED_TIMINGS - - ! initialise the timing functionality - -#ifdef HAVE_LIBPAPI - call timer%measure_flops(.true.) -#endif - - call timer%measure_allocated_memory(.true.) - call timer%measure_virtual_memory(.true.) - call timer%measure_max_allocated_memory(.true.) - - call timer%set_print_options(& -#ifdef HAVE_LIBPAPI - print_flop_count=.true., & - print_flop_rate=.true., & -#endif - print_allocated_memory = .true. , & - print_virtual_memory=.true., & - print_max_allocated_memory=.true.) - - - call timer%enable() - - call timer%start("program") -#endif - - do np_cols = NINT(SQRT(REAL(nprocs))),2,-1 - if(mod(nprocs,np_cols) == 0 ) exit - enddo - - ! at the end of the above loop, nprocs is always divisible by np_cols - - np_rows = nprocs/np_cols - - if(myid==0) then - print '(3(a,i0))','Matrix size=',na,', Block size=',nblk - print '(3(a,i0))','Number of processor rows=',np_rows,', cols=',np_cols,', total=',nprocs - print * - endif - - !------------------------------------------------------------------------------- - ! Set up BLACS context and MPI communicators - ! - ! The BLACS context is only necessary for using Scalapack. - ! - ! For ELPA, the MPI communicators along rows/cols are sufficient, - ! and the grid setup may be done in an arbitrary way as long as it is - ! consistent (i.e. 0<=my_prow<np_rows, 0<=my_pcol<np_cols and every - ! process has a unique (my_prow,my_pcol) pair). - - call set_up_blacsgrid(mpi_comm_world, my_blacs_ctxt, np_rows, np_cols, & - nprow, npcol, my_prow, my_pcol) - - if (myid==0) then - print '(a)','| Past BLACS_Gridinfo.' - end if - - ! All ELPA routines need MPI communicators for communicating within - ! rows or columns of processes, these are set in elpa_get_communicators. - - mpierr = elpa_get_communicators(mpi_comm_world, my_prow, my_pcol, & - mpi_comm_rows, mpi_comm_cols) - - if (myid==0) then - print '(a)','| Past split communicator setup for rows and columns.' - end if - - call set_up_blacs_descriptor(na ,nblk, my_prow, my_pcol, np_rows, np_cols, & - na_rows, na_cols, sc_desc, my_blacs_ctxt, info) - - if (myid==0) then - print '(a)','| Past scalapack descriptor setup.' - end if - - !------------------------------------------------------------------------------- - ! Allocate matrices and set up a test matrix for the eigenvalue problem -#ifdef HAVE_DETAILED_TIMINGS - call timer%start("set up matrix") -#endif - allocate(a (na_rows,na_cols)) - allocate(b (na_rows,na_cols)) - allocate(c (na_rows,na_cols)) - - allocate(z (na_rows,na_cols)) - allocate(as(na_rows,na_cols)) - - allocate(ev(na)) - call prepare_matrix(na, myid, sc_desc, a, z, as) - b(:,:) = 2.0_ck4 * a(:,:) - c(:,:) = 0.0_ck4 - -#ifdef HAVE_DETAILED_TIMINGS - call timer%stop("set up matrix") -#endif - - !------------------------------------------------------------------------------- - ! Calculate eigenvalues/eigenvectors - - if (myid==0) then - print '(a)','| Compute c= a**T * b ... ' - print * - end if -#ifdef WITH_MPI - call mpi_barrier(mpi_comm_world, mpierr) ! for correct timings only -#endif - - success = elpa_mult_ah_b_complex_single("F","F", na, na, a, na_rows, na_cols, b, na_rows, na_cols, & - nblk, mpi_comm_rows, mpi_comm_cols, c, na_rows, na_cols) - - if (.not.(success)) then - write(error_unit,*) " elpa_mult_at_b_complex produced an error! Aborting..." -#ifdef WITH_MPI - call MPI_ABORT(mpi_comm_world, 1, mpierr) -#endif - endif - - - if (myid==0) then - print '(a)','| Solve c = a**T * b complete.' - print * - end if - - - !------------------------------------------------------------------------------- - ! Test correctness of result (using plain scalapack routines) - allocate(tmp1(na_rows,na_cols)) - allocate(tmp2(na_rows,na_cols)) - - tmp1(:,:) = 0.0_ck4 - - ! tmp1 = a**T -#ifdef WITH_MPI - call pctranc(na, na, CONE, a, 1, 1, sc_desc, CZERO, tmp1, 1, 1, sc_desc) -#else - tmp1 = transpose(conjg(a)) -#endif - ! tmp2 = tmp1 * b -#ifdef WITH_MPI - call pcgemm("N","N", na, na, na, CONE, tmp1, 1, 1, sc_desc, b, 1, 1, & - sc_desc, CZERO, tmp2, 1, 1, sc_desc) -#else - call cgemm("N","N", na, na, na, CONE, tmp1, na, b, na, CZERO, tmp2, na) -#endif - - ! compare tmp2 with c - tmp2(:,:) = tmp2(:,:) - c(:,:) - -#ifdef WITH_MPI - norm = pclange("M",na, na, tmp2, 1, 1, sc_desc, tmp1) -#else - norm = clange("M",na, na, tmp2, na_rows, tmp1) -#endif -#ifdef WITH_MPI - call mpi_allreduce(norm,normmax,1,MPI_REAL4,MPI_MAX,MPI_COMM_WORLD,mpierr) -#else - normmax = norm -#endif - if (myid .eq. 0) then - print *," Maximum error of result: ", normmax - endif - - if (normmax .gt. 5e-2_rk4) then - status = 1 - endif - - deallocate(a) - deallocate(b) - deallocate(c) - - deallocate(as) - - deallocate(z) - deallocate(tmp1) - deallocate(tmp2) - deallocate(ev) - -#ifdef HAVE_DETAILED_TIMINGS - call timer%stop("program") - print *," " - print *,"Timings program:" - print *," " - call timer%print("program") - print *," " - print *,"End timings program" - print *," " -#endif - -#ifdef WITH_MPI - call blacs_gridexit(my_blacs_ctxt) - call mpi_finalize(mpierr) -#endif - - call EXIT(STATUS) - - -end - -!------------------------------------------------------------------------------- diff --git a/test/Fortran/test_transpose_multiply_real_single_2stage.F90 b/test/Fortran/test_transpose_multiply_real_single_2stage.F90 deleted file mode 100644 index aa877d21..00000000 --- a/test/Fortran/test_transpose_multiply_real_single_2stage.F90 +++ /dev/null @@ -1,320 +0,0 @@ -! This file is part of ELPA. -! -! The ELPA library was originally created by the ELPA consortium, -! consisting of the following organizations: -! -! - Max Planck Computing and Data Facility (MPCDF), formerly known as -! Rechenzentrum Garching der Max-Planck-Gesellschaft (RZG), -! - Bergische Universität Wuppertal, Lehrstuhl für angewandte -! Informatik, -! - Technische Universität München, Lehrstuhl für Informatik mit -! Schwerpunkt Wissenschaftliches Rechnen , -! - Fritz-Haber-Institut, Berlin, Abt. Theorie, -! - Max-Plack-Institut für Mathematik in den Naturwissenschaften, -! Leipzig, Abt. Komplexe Strukutren in Biologie und Kognition, -! and -! - IBM Deutschland GmbH -! -! -! More information can be found here: -! http://elpa.mpcdf.mpg.de/ -! -! ELPA is free software: you can redistribute it and/or modify -! it under the terms of the version 3 of the license of the -! GNU Lesser General Public License as published by the Free -! Software Foundation. -! -! ELPA is distributed in the hope that it will be useful, -! but WITHOUT ANY WARRANTY; without even the implied warranty of -! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -! GNU Lesser General Public License for more details. -! -! You should have received a copy of the GNU Lesser General Public License -! along with ELPA. If not, see <http://www.gnu.org/licenses/> -! -! ELPA reflects a substantial effort on the part of the original -! ELPA consortium, and we ask you to respect the spirit of the -! license that we chose: i.e., please contribute any changes you -! may have back to the original ELPA library distribution, and keep -! any derivatives of ELPA under the same license that we chose for -! the original distribution, the GNU Lesser General Public License. -! -! -#include "config-f90.h" -!> - -program test_transpose_multiply - - use precision - use elpa1 - use elpa_utilities, only : error_unit -#ifdef WITH_OPENMP - use test_util -#endif - - use mod_read_input_parameters - use mod_check_correctness - use mod_setup_mpi - use mod_blacs_infrastructure - use mod_prepare_matrix - - use elpa_mpi -#ifdef HAVE_REDIRECT - use redirect -#endif -#ifdef HAVE_DETAILED_TIMINGS - use timings -#endif - use output_types - - implicit none - - !------------------------------------------------------------------------------- - ! Please set system size parameters below! - ! na: System size - ! nev: Number of eigenvectors to be calculated - ! nblk: Blocking factor in block cyclic distribution - !------------------------------------------------------------------------------- - integer(kind=ik) :: nblk - integer(kind=ik) :: na, nev - - integer(kind=ik) :: np_rows, np_cols, na_rows, na_cols - - integer(kind=ik) :: myid, nprocs, my_prow, my_pcol, mpi_comm_rows, mpi_comm_cols - integer(kind=ik) :: i, mpierr, my_blacs_ctxt, sc_desc(9), info, nprow, npcol - - integer, external :: numroc - - real(kind=rk4), allocatable :: a(:,:), b(:,:), c(:,:), z(:,:), tmp1(:,:), tmp2(:,:), as(:,:), ev(:) - - real(kind=rk4) :: norm, normmax -#ifdef WITH_MPI - real(kind=rk4) :: pslange -#else - real(kind=rk4) :: slange -#endif - - integer(kind=ik) :: STATUS -#ifdef WITH_OPENMP - integer(kind=ik) :: omp_get_max_threads, required_mpi_thread_level, & - provided_mpi_thread_level -#endif - type(output_t) :: write_to_file - logical :: success - character(len=8) :: task_suffix - integer(kind=ik) :: j - !------------------------------------------------------------------------------- - - success = .true. - - call read_input_parameters_traditional(na, nev, nblk, write_to_file) - - !------------------------------------------------------------------------------- - ! MPI Initialization - call setup_mpi(myid, nprocs) - - STATUS = 0 - -#ifdef HAVE_DETAILED_TIMINGS - - ! initialise the timing functionality - -#ifdef HAVE_LIBPAPI - call timer%measure_flops(.true.) -#endif - - call timer%measure_allocated_memory(.true.) - call timer%measure_virtual_memory(.true.) - call timer%measure_max_allocated_memory(.true.) - - call timer%set_print_options(& -#ifdef HAVE_LIBPAPI - print_flop_count=.true., & - print_flop_rate=.true., & -#endif - print_allocated_memory = .true. , & - print_virtual_memory=.true., & - print_max_allocated_memory=.true.) - - - call timer%enable() - - call timer%start("program") -#endif - - do np_cols = NINT(SQRT(REAL(nprocs))),2,-1 - if(mod(nprocs,np_cols) == 0 ) exit - enddo - - ! at the end of the above loop, nprocs is always divisible by np_cols - - np_rows = nprocs/np_cols - - if(myid==0) then - print '(3(a,i0))','Matrix size=',na,', Block size=',nblk - print '(3(a,i0))','Number of processor rows=',np_rows,', cols=',np_cols,', total=',nprocs - print * - endif - - !------------------------------------------------------------------------------- - ! Set up BLACS context and MPI communicators - ! - ! The BLACS context is only necessary for using Scalapack. - ! - ! For ELPA, the MPI communicators along rows/cols are sufficient, - ! and the grid setup may be done in an arbitrary way as long as it is - ! consistent (i.e. 0<=my_prow<np_rows, 0<=my_pcol<np_cols and every - ! process has a unique (my_prow,my_pcol) pair). - - call set_up_blacsgrid(mpi_comm_world, my_blacs_ctxt, np_rows, np_cols, & - nprow, npcol, my_prow, my_pcol) - - if (myid==0) then - print '(a)','| Past BLACS_Gridinfo.' - end if - - ! All ELPA routines need MPI communicators for communicating within - ! rows or columns of processes, these are set in elpa_get_communicators. - - mpierr = elpa_get_communicators(mpi_comm_world, my_prow, my_pcol, & - mpi_comm_rows, mpi_comm_cols) - - if (myid==0) then - print '(a)','| Past split communicator setup for rows and columns.' - end if - - call set_up_blacs_descriptor(na ,nblk, my_prow, my_pcol, np_rows, np_cols, & - na_rows, na_cols, sc_desc, my_blacs_ctxt, info) - - if (myid==0) then - print '(a)','| Past scalapack descriptor setup.' - end if - - !------------------------------------------------------------------------------- - ! Allocate matrices and set up a test matrix for the eigenvalue problem -#ifdef HAVE_DETAILED_TIMINGS - call timer%start("set up matrix") -#endif - allocate(a (na_rows,na_cols)) - allocate(b (na_rows,na_cols)) - allocate(c (na_rows,na_cols)) - - allocate(z (na_rows,na_cols)) - allocate(as(na_rows,na_cols)) - - allocate(ev(na)) - - call prepare_matrix(na, myid, sc_desc, a, z, as) - - b(:,:) = 2.0_rk4 * a(:,:) - c(:,:) = 0.0_rk4 - -#ifdef HAVE_DETAILED_TIMINGS - call timer%stop("set up matrix") -#endif - - !------------------------------------------------------------------------------- - ! Calculate eigenvalues/eigenvectors - - if (myid==0) then - print '(a)','| Compute c= a**T * b ... ' - print * - end if -#ifdef WITH_MPI - call mpi_barrier(mpi_comm_world, mpierr) ! for correct timings only -#endif - - success = elpa_mult_at_b_real_single("F","F", na, na, a, na_rows, na_cols, b, na_rows, & - na_cols, nblk, mpi_comm_rows, mpi_comm_cols, c, & - na_rows, na_cols) - - if (.not.(success)) then - write(error_unit,*) "elpa_mult_at_b_real produced an error! Aborting..." -#ifdef WITH_MPI - call MPI_ABORT(mpi_comm_world, 1, mpierr) -#endif - endif - - - if (myid==0) then - print '(a)','| Solve c = a**T * b complete.' - print * - end if - - - !------------------------------------------------------------------------------- - ! Test correctness of result (using plain scalapack routines) - allocate(tmp1(na_rows,na_cols)) - allocate(tmp2(na_rows,na_cols)) - - tmp1(:,:) = 0.0_rk4 - - ! tmp1 = a**T -#ifdef WITH_MPI - call pstran(na, na, 1.0_rk4, a, 1, 1, sc_desc, 0.0_rk4, tmp1, 1, 1, sc_desc) -#else - tmp1 = transpose(a) -#endif - ! tmp2 = tmp1 * b -#ifdef WITH_MPI - call psgemm("N","N", na, na, na, 1.0_rk4, tmp1, 1, 1, sc_desc, b, 1, 1, & - sc_desc, 0.0_rk4, tmp2, 1, 1, sc_desc) -#else - call sgemm("N","N", na, na, na, 1.0_rk4, tmp1, na, b, na, 0.0_rk4, tmp2, na) -#endif - - ! compare tmp2 with c - tmp2(:,:) = tmp2(:,:) - c(:,:) - -#ifdef WITH_MPI - norm = pslange("M", na, na, tmp2, 1, 1, sc_desc, tmp1) -#else - norm = slange("M", na, na, tmp2, na_rows, tmp1) -#endif - -#ifdef WITH_MPI - call mpi_allreduce(norm,normmax,1,MPI_REAL4,MPI_MAX,MPI_COMM_WORLD,mpierr) -#else - normmax = norm -#endif - if (myid .eq. 0) then - print *," Maximum error of result: ", normmax - endif - - if (normmax .gt. 5e-2_rk4) then - status = 1 - endif - - deallocate(a) - deallocate(b) - deallocate(c) - - deallocate(as) - - deallocate(z) - deallocate(tmp1) - deallocate(tmp2) - deallocate(ev) - -#ifdef HAVE_DETAILED_TIMINGS - call timer%stop("program") - print *," " - print *,"Timings program:" - print *," " - call timer%print("program") - print *," " - print *,"End timings program" - print *," " -#endif - -#ifdef WITH_MPI - call blacs_gridexit(my_blacs_ctxt) - call mpi_finalize(mpierr) -#endif - - call EXIT(STATUS) - - -end - -!------------------------------------------------------------------------------- diff --git a/test/shared/call_elpa1.c b/test/shared/call_elpa1.c index f34c67e4..392745ca 100644 --- a/test/shared/call_elpa1.c +++ b/test/shared/call_elpa1.c @@ -60,7 +60,7 @@ int call_elpa1_complex_solver_from_c_double(int na, int nev, complex double *a, return elpa_solve_evp_complex_1stage_double_precision(na, nev, a, lda, ev, q, ldq, nblk, ncols, mpi_comm_rows, mpi_comm_cols, mpi_comm_all, useGPU); } #ifdef WANT_SINGLE_PRECISION_COMPLEX -int call_elpa1_complex_solver_from_c_single(int na, int nev, complex *a, int lda, float *ev, complex *q, int ldq, int nblk, int ncols, int mpi_comm_rows, int mpi_comm_cols, int mpi_comm_all, int useGPU) { +int call_elpa1_complex_solver_from_c_single(int na, int nev, complex float *a, int lda, float *ev, complex float *q, int ldq, int nblk, int ncols, int mpi_comm_rows, int mpi_comm_cols, int mpi_comm_all, int useGPU) { return elpa_solve_evp_complex_1stage_single_precision(na, nev, a, lda, ev, q, ldq, nblk, ncols, mpi_comm_rows, mpi_comm_cols, mpi_comm_all, useGPU); } #endif diff --git a/test/shared/prepare_matrix_template.X90 b/test/shared/prepare_matrix_template.X90 index 036926c8..94ee647c 100644 --- a/test/shared/prepare_matrix_template.X90 +++ b/test/shared/prepare_matrix_template.X90 @@ -166,7 +166,7 @@ #else !c> void prepare_matrix_complex_single_f(int na, int myid, int na_rows, int na_cols, !c> int sc_desc[9], - !c> complex *a, complex *z, complex *as); + !c> complex float *a, complex float *z, complex float *as); #endif #endif /* COMPLEXCASE */ -- GitLab