Unverified Commit 98a4db33 authored by Andreas Marek's avatar Andreas Marek
Browse files

Remove some more assumed size arrays

The assumed size definitions are not needed, and are removed.
This will imply a chnage of the so-Versioning number
parent c03e7828
...@@ -616,7 +616,8 @@ module ELPA1_compute ...@@ -616,7 +616,8 @@ module ELPA1_compute
end subroutine trans_ev_real end subroutine trans_ev_real
subroutine mult_at_b_real(uplo_a, uplo_c, na, ncb, a, lda, b, ldb, nblk, mpi_comm_rows, mpi_comm_cols, c, ldc) subroutine mult_at_b_real(uplo_a, uplo_c, na, ncb, a, lda, ldaCols, b, ldb, ldbCols, nblk, &
mpi_comm_rows, mpi_comm_cols, c, ldc, ldcCols)
!------------------------------------------------------------------------------- !-------------------------------------------------------------------------------
! mult_at_b_real: Performs C := A**T * B ! mult_at_b_real: Performs C := A**T * B
...@@ -649,8 +650,10 @@ module ELPA1_compute ...@@ -649,8 +650,10 @@ module ELPA1_compute
! a Matrix A ! a Matrix A
! !
! lda Leading dimension of a ! lda Leading dimension of a
! ldaCols Columns of Matrix a
! !
! b Matrix B ! b Matrix B
! ldbCol Columns of Matrix b
! !
! ldb Leading dimension of b ! ldb Leading dimension of b
! !
...@@ -663,7 +666,7 @@ module ELPA1_compute ...@@ -663,7 +666,7 @@ module ELPA1_compute
! c Matrix C ! c Matrix C
! !
! ldc Leading dimension of c ! ldc Leading dimension of c
! ! ldcCol Columns of Matrix c
!------------------------------------------------------------------------------- !-------------------------------------------------------------------------------
#ifdef HAVE_DETAILED_TIMINGS #ifdef HAVE_DETAILED_TIMINGS
use timings use timings
...@@ -673,8 +676,9 @@ module ELPA1_compute ...@@ -673,8 +676,9 @@ module ELPA1_compute
character*1 :: uplo_a, uplo_c character*1 :: uplo_a, uplo_c
integer(kind=ik) :: na, ncb, lda, ldb, nblk, mpi_comm_rows, mpi_comm_cols, ldc integer(kind=ik), intent(in) :: na, lda, ldaCols, ldb, ldbCols, ldc, ldcCols, nblk
real(kind=rk) :: a(lda,*), b(ldb,*), c(ldc,*) integer(kind=ik) :: ncb, mpi_comm_rows, mpi_comm_cols
real(kind=rk) :: a(lda,ldaCols), b(ldb,ldbCols), c(ldc,ldcCols)
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) :: l_cols, l_rows, l_rows_np integer(kind=ik) :: l_cols, l_rows, l_rows_np
...@@ -690,6 +694,30 @@ module ELPA1_compute ...@@ -690,6 +694,30 @@ module ELPA1_compute
#ifdef HAVE_DETAILED_TIMINGS #ifdef HAVE_DETAILED_TIMINGS
call timer%start("mult_at_b_real") call timer%start("mult_at_b_real")
#endif #endif
if (na .lt. lda) then
print *,"na lt lda ",na,lda
stop
endif
if (na .lt. ldb) then
print *,"na lt ldb ",na,ldb
stop
endif
if (na .lt. ldc) then
print *,"na lt ldc ",na,ldc
stop
endif
if (na .lt. ldaCols) then
print *,"na lt ldaCols ",na,ldaCols
stop
endif
if (na .lt. ldbCols) then
print *,"na lt ldbCols ",na,ldbCols
stop
endif
if (na .lt. ldcCols) then
print *,"na lt ldcCols ",na,ldcCols
stop
endif
call mpi_comm_rank(mpi_comm_rows,my_prow,mpierr) call mpi_comm_rank(mpi_comm_rows,my_prow,mpierr)
call mpi_comm_size(mpi_comm_rows,np_rows,mpierr) call mpi_comm_size(mpi_comm_rows,np_rows,mpierr)
call mpi_comm_rank(mpi_comm_cols,my_pcol,mpierr) call mpi_comm_rank(mpi_comm_cols,my_pcol,mpierr)
...@@ -1393,7 +1421,8 @@ module ELPA1_compute ...@@ -1393,7 +1421,8 @@ module ELPA1_compute
end subroutine trans_ev_complex end subroutine trans_ev_complex
subroutine mult_ah_b_complex(uplo_a, uplo_c, na, ncb, a, lda, b, ldb, nblk, mpi_comm_rows, mpi_comm_cols, c, ldc) subroutine mult_ah_b_complex(uplo_a, uplo_c, na, ncb, a, lda, ldaCols, b, ldb, ldbCols, nblk, &
mpi_comm_rows, mpi_comm_cols, c, ldc, ldcCols)
!------------------------------------------------------------------------------- !-------------------------------------------------------------------------------
! mult_ah_b_complex: Performs C := A**H * B ! mult_ah_b_complex: Performs C := A**H * B
...@@ -1426,10 +1455,12 @@ module ELPA1_compute ...@@ -1426,10 +1455,12 @@ module ELPA1_compute
! a Matrix A ! a Matrix A
! !
! lda Leading dimension of a ! lda Leading dimension of a
! ldaCols Columns of Matrix a
! !
! b Matrix B ! b Matrix B
! !
! ldb Leading dimension of b ! ldb Leading dimension of b
! ldbCols Columns of Matrix b
! !
! nblk blocksize of cyclic distribution, must be the same in both directions! ! nblk blocksize of cyclic distribution, must be the same in both directions!
! !
...@@ -1440,6 +1471,7 @@ module ELPA1_compute ...@@ -1440,6 +1471,7 @@ module ELPA1_compute
! c Matrix C ! c Matrix C
! !
! ldc Leading dimension of c ! ldc Leading dimension of c
! ldcCols Columns of Matrix C
! !
!------------------------------------------------------------------------------- !-------------------------------------------------------------------------------
#ifdef HAVE_DETAILED_TIMINGS #ifdef HAVE_DETAILED_TIMINGS
...@@ -1449,9 +1481,9 @@ module ELPA1_compute ...@@ -1449,9 +1481,9 @@ module ELPA1_compute
implicit none implicit none
character*1 :: uplo_a, uplo_c character*1 :: uplo_a, uplo_c
integer(kind=ik), intent(in) :: lda, ldaCols, ldb, ldbCols, ldc, ldcCols
integer(kind=ik) :: na, ncb, lda, ldb, nblk, mpi_comm_rows, mpi_comm_cols, ldc integer(kind=ik) :: na, ncb, nblk, mpi_comm_rows, mpi_comm_cols
complex(kind=ck) :: a(lda,*), b(ldb,*), c(ldc,*) complex(kind=ck) :: a(lda,ldaCols), b(ldb,ldbCols), c(ldc,ldcCols)
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) :: l_cols, l_rows, l_rows_np integer(kind=ik) :: l_cols, l_rows, l_rows_np
...@@ -1467,6 +1499,31 @@ module ELPA1_compute ...@@ -1467,6 +1499,31 @@ module ELPA1_compute
#ifdef HAVE_DETAILED_TIMINGS #ifdef HAVE_DETAILED_TIMINGS
call timer%start("mult_ah_b_complex") call timer%start("mult_ah_b_complex")
#endif #endif
if (na .lt. lda) then
print *,"na lt lda ",na,lda
stop
endif
if (na .lt. ldb) then
print *,"na lt ldb ",na,ldb
stop
endif
if (na .lt. ldc) then
print *,"na lt ldc ",na,ldc
stop
endif
if (na .lt. ldaCols) then
print *,"na lt ldaCols ",na,ldaCols
stop
endif
if (na .lt. ldbCols) then
print *,"na lt ldbCols ",na,ldbCols
stop
endif
if (na .lt. ldcCols) then
print *,"na lt ldcCols ",na,ldcCols
stop
endif
call mpi_comm_rank(mpi_comm_rows,my_prow,mpierr) call mpi_comm_rank(mpi_comm_rows,my_prow,mpierr)
call mpi_comm_size(mpi_comm_rows,np_rows,mpierr) call mpi_comm_size(mpi_comm_rows,np_rows,mpierr)
call mpi_comm_rank(mpi_comm_cols,my_pcol,mpierr) call mpi_comm_rank(mpi_comm_cols,my_pcol,mpierr)
......
...@@ -9013,7 +9013,7 @@ end subroutine ...@@ -9013,7 +9013,7 @@ end subroutine
end subroutine end subroutine
subroutine band_band_real(na, nb, nb2, ab, ab2, d, e, mpi_comm) subroutine band_band_real(na, nb, nbCol, nb2, nb2Col, ab, ab2, d, e, mpi_comm)
!------------------------------------------------------------------------------- !-------------------------------------------------------------------------------
! band_band_real: ! band_band_real:
...@@ -9049,9 +9049,9 @@ end subroutine ...@@ -9049,9 +9049,9 @@ end subroutine
use precision use precision
implicit none implicit none
integer(kind=ik), intent(in) :: na, nb, nb2, mpi_comm integer(kind=ik), intent(in) :: na, nb, nbCol, nb2, nb2Col, mpi_comm
real(kind=rk), intent(inout) :: ab(2*nb,*) real(kind=rk), intent(inout) :: ab(2*nb,nbCol)
real(kind=rk), intent(inout) :: ab2(2*nb2,*) real(kind=rk), intent(inout) :: ab2(2*nb2,nb2Col)
real(kind=rk), intent(out) :: d(na), e(na) ! set only on PE 0 real(kind=rk), intent(out) :: d(na), e(na) ! set only on PE 0
real(kind=rk) :: hv(nb,nb2), w(nb,nb2), w_new(nb,nb2), tau(nb2), hv_new(nb,nb2), & real(kind=rk) :: hv(nb,nb2), w(nb,nb2), w_new(nb,nb2), tau(nb2), hv_new(nb,nb2), &
...@@ -9077,6 +9077,23 @@ end subroutine ...@@ -9077,6 +9077,23 @@ end subroutine
#ifdef HAVE_DETAILED_TIMINGS #ifdef HAVE_DETAILED_TIMINGS
call timer%start("band_band_real") call timer%start("band_band_real")
#endif #endif
if (na .lt. 2*nb) then
print *,"na lt 2*nb ",na,2*nb
stop
endif
if (na .lt. 2*nb2) then
print *,"na lt 2*nb2 ",na,2*nb2
stop
endif
if (na .lt. nbCol) then
print *,"na lt nbCol ",na,nbCol
stop
endif
if (na .lt. nb2Col) then
print *,"na lt nb2Col ",na,nb2Col
stop
endif
call mpi_comm_rank(mpi_comm,my_pe,mpierr) call mpi_comm_rank(mpi_comm,my_pe,mpierr)
call mpi_comm_size(mpi_comm,n_pes,mpierr) call mpi_comm_size(mpi_comm,n_pes,mpierr)
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment