Commit 9e3d83a1 by Pavel Kus

### some intents (in, out, inout) added. Should be done properly

parent eb4e54e1
 ... @@ -536,14 +536,18 @@ function solve_evp_real_1stage_double(na, nev, a, lda, ev, q, ldq, nblk, & ... @@ -536,14 +536,18 @@ function solve_evp_real_1stage_double(na, nev, a, lda, ev, q, ldq, nblk, & use elpa1_compute use elpa1_compute implicit none implicit none integer(kind=c_int), intent(in) :: na, nev, lda, ldq, nblk, matrixCols, mpi_comm_rows, mpi_comm_cols, mpi_comm_all integer(kind=c_int), intent(in) :: na, nev, lda, ldq, nblk, matrixCols, mpi_comm_rows, mpi_comm_cols, mpi_comm_all real(kind=REAL_DATATYPE) :: ev(na) real(kind=REAL_DATATYPE), intent(out) :: ev(na) #ifdef USE_ASSUMED_SIZE #ifdef USE_ASSUMED_SIZE real(kind=REAL_DATATYPE) :: a(lda,*), q(ldq,*) real(kind=REAL_DATATYPE), intent(inout) :: a(lda,*) real(kind=REAL_DATATYPE), intent(out) :: q(ldq,*) #else #else real(kind=REAL_DATATYPE) :: a(lda,matrixCols), q(ldq,matrixCols) real(kind=REAL_DATATYPE), intent(inout) :: a(lda,matrixCols) real(kind=REAL_DATATYPE), intent(out) :: q(ldq,matrixCols) #endif #endif integer(kind=ik), intent(in), optional :: THIS_REAL_ELPA_KERNEL_API integer(kind=ik), intent(in), optional :: THIS_REAL_ELPA_KERNEL_API logical :: success integer(kind=ik) :: THIS_REAL_ELPA_KERNEL integer(kind=ik) :: THIS_REAL_ELPA_KERNEL logical :: useGPU logical :: useGPU ... @@ -552,7 +556,6 @@ function solve_evp_real_1stage_double(na, nev, a, lda, ev, q, ldq, nblk, & ... @@ -552,7 +556,6 @@ function solve_evp_real_1stage_double(na, nev, a, lda, ev, q, ldq, nblk, & integer(kind=c_int) :: my_pe, n_pes, my_prow, my_pcol, mpierr integer(kind=c_int) :: my_pe, n_pes, my_prow, my_pcol, mpierr real(kind=REAL_DATATYPE), allocatable :: e(:), tau(:) real(kind=REAL_DATATYPE), allocatable :: e(:), tau(:) real(kind=c_double) :: ttt0, ttt1 ! MPI_WTIME always needs double real(kind=c_double) :: ttt0, ttt1 ! MPI_WTIME always needs double logical :: success logical, save :: firstCall = .true. logical, save :: firstCall = .true. logical :: wantDebug logical :: wantDebug ... @@ -712,23 +715,26 @@ function solve_evp_real_1stage_single(na, nev, a, lda, ev, q, ldq, nblk, matrixC ... @@ -712,23 +715,26 @@ function solve_evp_real_1stage_single(na, nev, a, lda, ev, q, ldq, nblk, matrixC use elpa1_compute use elpa1_compute implicit none implicit none integer(kind=c_int), intent(in) :: na, nev, lda, ldq, nblk, matrixCols, mpi_comm_rows, mpi_comm_cols, mpi_comm_all integer(kind=c_int), intent(in) :: na, nev, lda, ldq, nblk, matrixCols, mpi_comm_rows, mpi_comm_cols, mpi_comm_all real(kind=REAL_DATATYPE) :: ev(na) real(kind=REAL_DATATYPE), intent(out) :: ev(na) #ifdef USE_ASSUMED_SIZE #ifdef USE_ASSUMED_SIZE real(kind=REAL_DATATYPE) :: a(lda,*), q(ldq,*) real(kind=REAL_DATATYPE), intent(inout) :: a(lda,*) real(kind=REAL_DATATYPE), intent(out) :: q(ldq,*) #else #else real(kind=REAL_DATATYPE) :: a(lda,matrixCols), q(ldq,matrixCols) real(kind=REAL_DATATYPE), intent(inout) :: a(lda,matrixCols) real(kind=REAL_DATATYPE), intent(out) :: q(ldq,matrixCols) #endif #endif integer(kind=ik), intent(in), optional :: THIS_REAL_ELPA_KERNEL_API logical :: success integer(kind=c_int) :: my_pe, n_pes, my_prow, my_pcol, mpierr integer(kind=c_int) :: my_pe, n_pes, my_prow, my_pcol, mpierr real(kind=REAL_DATATYPE), allocatable :: e(:), tau(:) real(kind=REAL_DATATYPE), allocatable :: e(:), tau(:) real(kind=c_double) :: ttt0, ttt1 ! MPI_WTIME always needs double real(kind=c_double) :: ttt0, ttt1 ! MPI_WTIME always needs double logical :: success logical, save :: firstCall = .true. logical, save :: firstCall = .true. logical :: wantDebug logical :: wantDebug integer(kind=ik), intent(in), optional :: THIS_REAL_ELPA_KERNEL_API integer(kind=ik) :: THIS_REAL_ELPA_KERNEL integer(kind=ik) :: THIS_REAL_ELPA_KERNEL logical :: useGPU logical :: useGPU ... @@ -893,11 +899,16 @@ function solve_evp_complex_1stage_double(na, nev, a, lda, ev, q, ldq, nblk, matr ... @@ -893,11 +899,16 @@ function solve_evp_complex_1stage_double(na, nev, a, lda, ev, q, ldq, nblk, matr integer(kind=c_int), intent(in) :: na, nev, lda, ldq, nblk, matrixCols, mpi_comm_rows, mpi_comm_cols, mpi_comm_all integer(kind=c_int), intent(in) :: na, nev, lda, ldq, nblk, matrixCols, mpi_comm_rows, mpi_comm_cols, mpi_comm_all #ifdef USE_ASSUMED_SIZE #ifdef USE_ASSUMED_SIZE complex(kind=COMPLEX_DATATYPE) :: a(lda,*), q(ldq,*) complex(kind=COMPLEX_DATATYPE), intent(inout) :: a(lda,*) complex(kind=COMPLEX_DATATYPE), intent(out) :: q(ldq,*) #else #else complex(kind=COMPLEX_DATATYPE) :: a(lda,matrixCols), q(ldq,matrixCols) complex(kind=COMPLEX_DATATYPE), intent(inout) :: a(lda,matrixCols) complex(kind=COMPLEX_DATATYPE), intent(out) :: q(ldq,matrixCols) #endif #endif real(kind=REAL_DATATYPE) :: ev(na) real(kind=REAL_DATATYPE), intent(out) :: ev(na) logical :: success integer(kind=ik), intent(in), optional :: THIS_REAL_ELPA_KERNEL_API integer(kind=c_int) :: my_pe, n_pes, my_prow, my_pcol, np_rows, np_cols, mpierr integer(kind=c_int) :: my_pe, n_pes, my_prow, my_pcol, np_rows, np_cols, mpierr integer(kind=c_int) :: l_rows, l_cols, l_cols_nev integer(kind=c_int) :: l_rows, l_cols, l_cols_nev ... @@ -905,11 +916,9 @@ function solve_evp_complex_1stage_double(na, nev, a, lda, ev, q, ldq, nblk, matr ... @@ -905,11 +916,9 @@ function solve_evp_complex_1stage_double(na, nev, a, lda, ev, q, ldq, nblk, matr complex(kind=COMPLEX_DATATYPE), allocatable :: tau(:) complex(kind=COMPLEX_DATATYPE), allocatable :: tau(:) real(kind=c_double) :: ttt0, ttt1 ! MPI_WTIME always needs double real(kind=c_double) :: ttt0, ttt1 ! MPI_WTIME always needs double logical :: success logical, save :: firstCall = .true. logical, save :: firstCall = .true. logical :: wantDebug logical :: wantDebug integer(kind=ik), intent(in), optional :: THIS_REAL_ELPA_KERNEL_API integer(kind=ik) :: THIS_REAL_ELPA_KERNEL integer(kind=ik) :: THIS_REAL_ELPA_KERNEL logical :: useGPU logical :: useGPU ... @@ -1083,13 +1092,19 @@ function solve_evp_complex_1stage_single(na, nev, a, lda, ev, q, ldq, nblk, matr ... @@ -1083,13 +1092,19 @@ function solve_evp_complex_1stage_single(na, nev, a, lda, ev, q, ldq, nblk, matr use elpa1_compute use elpa1_compute implicit none implicit none integer(kind=c_int), intent(in) :: na, nev, lda, ldq, nblk, matrixCols, mpi_comm_rows, mpi_comm_cols, mpi_comm_all integer(kind=c_int), intent(in) :: na, nev, lda, ldq, nblk, matrixCols integer(kind=c_int), intent(in) :: mpi_comm_rows, mpi_comm_cols, mpi_comm_all #ifdef USE_ASSUMED_SIZE #ifdef USE_ASSUMED_SIZE complex(kind=COMPLEX_DATATYPE) :: a(lda,*), q(ldq,*) complex(kind=COMPLEX_DATATYPE), intent(inout) :: a(lda,*) complex(kind=COMPLEX_DATATYPE), intent(out) :: q(ldq,*) #else #else complex(kind=COMPLEX_DATATYPE) :: a(lda,matrixCols), q(ldq,matrixCols) complex(kind=COMPLEX_DATATYPE), intent(inout) :: a(lda,matrixCols) complex(kind=COMPLEX_DATATYPE), intent(out) :: q(ldq,matrixCols) #endif #endif real(kind=REAL_DATATYPE) :: ev(na) real(kind=REAL_DATATYPE), intent(out) :: ev(na) integer(kind=ik), intent(in), optional :: THIS_REAL_ELPA_KERNEL_API logical :: success integer(kind=c_int) :: my_pe, n_pes, my_prow, my_pcol, np_rows, np_cols, mpierr integer(kind=c_int) :: my_pe, n_pes, my_prow, my_pcol, np_rows, np_cols, mpierr integer(kind=c_int) :: l_rows, l_cols, l_cols_nev integer(kind=c_int) :: l_rows, l_cols, l_cols_nev ... @@ -1097,11 +1112,9 @@ function solve_evp_complex_1stage_single(na, nev, a, lda, ev, q, ldq, nblk, matr ... @@ -1097,11 +1112,9 @@ function solve_evp_complex_1stage_single(na, nev, a, lda, ev, q, ldq, nblk, matr complex(kind=COMPLEX_DATATYPE), allocatable :: tau(:) complex(kind=COMPLEX_DATATYPE), allocatable :: tau(:) real(kind=c_double) :: ttt0, ttt1 ! MPI_WTIME always needs double real(kind=c_double) :: ttt0, ttt1 ! MPI_WTIME always needs double logical :: success logical, save :: firstCall = .true. logical, save :: firstCall = .true. logical :: wantDebug logical :: wantDebug integer(kind=ik), intent(in), optional :: THIS_REAL_ELPA_KERNEL_API integer(kind=ik) :: THIS_REAL_ELPA_KERNEL integer(kind=ik) :: THIS_REAL_ELPA_KERNEL logical :: useGPU logical :: useGPU ... ...
 ... @@ -62,15 +62,17 @@ ... @@ -62,15 +62,17 @@ use precision use precision implicit none implicit none integer(kind=ik) :: na, nm, ldq, nqoff, nblk, matrixCols, mpi_comm_rows, & integer(kind=ik), intent(in) :: na, nm, ldq, nqoff, nblk, matrixCols, mpi_comm_rows, & mpi_comm_cols, npc_0, npc_n mpi_comm_cols, npc_0, npc_n integer(kind=ik) :: l_col(na), p_col(na), l_col_out(na), p_col_out(na) integer(kind=ik), intent(in) :: l_col(na), p_col(na), l_col_out(na), p_col_out(na) real(kind=REAL_DATATYPE) :: d(na), e real(kind=REAL_DATATYPE), intent(inout) :: d(na), e #ifdef USE_ASSUMED_SIZE #ifdef USE_ASSUMED_SIZE real(kind=REAL_DATATYPE) :: q(ldq,*) real(kind=REAL_DATATYPE), intent(inout) :: q(ldq,*) #else #else real(kind=REAL_DATATYPE) :: q(ldq,matrixCols) real(kind=REAL_DATATYPE), intent(inout) :: q(ldq,matrixCols) #endif #endif logical, intent(in) :: wantDebug logical, intent(out) :: success integer(kind=ik), parameter :: max_strip=128 integer(kind=ik), parameter :: max_strip=128 ... @@ -99,8 +101,6 @@ ... @@ -99,8 +101,6 @@ integer(kind=ik) :: idx(na), idx1(na), idx2(na) integer(kind=ik) :: idx(na), idx1(na), idx2(na) integer(kind=ik) :: coltyp(na), idxq1(na), idxq2(na) integer(kind=ik) :: coltyp(na), idxq1(na), idxq2(na) logical, intent(in) :: wantDebug logical, intent(out) :: success integer(kind=ik) :: istat integer(kind=ik) :: istat character(200) :: errorMessage character(200) :: errorMessage ... ...
 ... @@ -63,21 +63,21 @@ subroutine M_solve_tridi_PRECISION( na, nev, d, e, q, ldq, nblk, matrixCols, mpi ... @@ -63,21 +63,21 @@ subroutine M_solve_tridi_PRECISION( na, nev, d, e, q, ldq, nblk, matrixCols, mpi use precision use precision implicit none implicit none integer(kind=ik) :: na, nev, ldq, nblk, matrixCols, mpi_comm_rows, mpi_comm_cols integer(kind=ik), intent(in) :: na, nev, ldq, nblk, matrixCols, mpi_comm_rows, mpi_comm_cols real(kind=REAL_DATATYPE) :: d(na), e(na) real(kind=REAL_DATATYPE), intent(inout) :: d(na), e(na) #ifdef USE_ASSUMED_SIZE #ifdef USE_ASSUMED_SIZE real(kind=REAL_DATATYPE) :: q(ldq,*) real(kind=REAL_DATATYPE), intent(inout) :: q(ldq,*) #else #else real(kind=REAL_DATATYPE) :: q(ldq,matrixCols) real(kind=REAL_DATATYPE), intent(inout) :: q(ldq,matrixCols) #endif #endif logical, intent(in) :: wantDebug logical, intent(out) :: success integer(kind=ik) :: i, j, n, np, nc, nev1, l_cols, l_rows integer(kind=ik) :: i, j, n, np, nc, nev1, l_cols, l_rows integer(kind=ik) :: my_prow, my_pcol, np_rows, np_cols, mpierr integer(kind=ik) :: my_prow, my_pcol, np_rows, np_cols, mpierr integer(kind=ik), allocatable :: limits(:), l_col(:), p_col(:), l_col_bc(:), p_col_bc(:) integer(kind=ik), allocatable :: limits(:), l_col(:), p_col(:), l_col_bc(:), p_col_bc(:) logical, intent(in) :: wantDebug logical, intent(out) :: success integer(kind=ik) :: istat integer(kind=ik) :: istat character(200) :: errorMessage character(200) :: errorMessage ... ...
 ... @@ -97,14 +97,14 @@ ... @@ -97,14 +97,14 @@ use precision use precision implicit none implicit none integer(kind=ik) :: na, nqc, lda, ldq, nblk, matrixCols, mpi_comm_rows, mpi_comm_cols integer(kind=ik), intent(in) :: na, nqc, lda, ldq, nblk, matrixCols, mpi_comm_rows, mpi_comm_cols complex(kind=COMPLEX_DATATYPE) :: tau(na) complex(kind=COMPLEX_DATATYPE), intent(in) :: tau(na) #ifdef USE_ASSUMED_SIZE #ifdef USE_ASSUMED_SIZE complex(kind=COMPLEX_DATATYPE) :: a_mat(lda,*), q_mat(ldq,*) complex(kind=COMPLEX_DATATYPE), intent(inout) :: a_mat(lda,*), q_mat(ldq,*) #else #else complex(kind=COMPLEX_DATATYPE) :: a_mat(lda,matrixCols), q_mat(ldq,matrixCols) complex(kind=COMPLEX_DATATYPE), intent(inout) :: a_mat(lda,matrixCols), q_mat(ldq,matrixCols) #endif #endif logical, intent(in) :: useGPU logical, intent(in) :: useGPU integer(kind=ik) :: max_stored_rows integer(kind=ik) :: max_stored_rows #ifdef DOUBLE_PRECISION_COMPLEX #ifdef DOUBLE_PRECISION_COMPLEX ... ...
 ... @@ -96,14 +96,14 @@ ... @@ -96,14 +96,14 @@ use precision use precision implicit none implicit none integer(kind=ik) :: na, nqc, lda, ldq, nblk, matrixCols, mpi_comm_rows, mpi_comm_cols integer(kind=ik), intent(in) :: na, nqc, lda, ldq, nblk, matrixCols, mpi_comm_rows, mpi_comm_cols real(kind=REAL_DATATYPE) :: tau(na) real(kind=REAL_DATATYPE), intent(in) :: tau(na) #ifdef USE_ASSUMED_SIZE #ifdef USE_ASSUMED_SIZE real(kind=REAL_DATATYPE) :: a_mat(lda,*), q_mat(ldq,*) real(kind=REAL_DATATYPE), intent(inout) :: a_mat(lda,*), q_mat(ldq,*) #else #else real(kind=REAL_DATATYPE) :: a_mat(lda,matrixCols), q_mat(ldq,matrixCols) real(kind=REAL_DATATYPE), intent(inout) :: a_mat(lda,matrixCols), q_mat(ldq,matrixCols) #endif #endif logical, intent(in) :: useGPU logical, intent(in) :: useGPU integer(kind=ik) :: max_stored_rows integer(kind=ik) :: max_stored_rows ... ...
 ... @@ -95,11 +95,11 @@ ... @@ -95,11 +95,11 @@ integer(kind=ik), intent(in) :: na, lda, nblk, matrixCols, mpi_comm_rows, mpi_comm_cols integer(kind=ik), intent(in) :: na, lda, nblk, matrixCols, mpi_comm_rows, mpi_comm_cols logical, intent(in) :: useGPU logical, intent(in) :: useGPU complex(kind=COMPLEX_DATATYPE) :: tau(na) complex(kind=COMPLEX_DATATYPE), intent(out) :: tau(na) #ifdef USE_ASSUMED_SIZE #ifdef USE_ASSUMED_SIZE complex(kind=COMPLEX_DATATYPE) :: a_mat(lda,*) complex(kind=COMPLEX_DATATYPE), intent(inout) :: a_mat(lda,*) #else #else complex(kind=COMPLEX_DATATYPE) :: a_mat(lda,matrixCols) complex(kind=COMPLEX_DATATYPE), intent(inout) :: a_mat(lda,matrixCols) #endif #endif real(kind=REAL_DATATYPE), intent(out) :: d_vec(na), e_vec(na) real(kind=REAL_DATATYPE), intent(out) :: d_vec(na), e_vec(na) ... ...
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!