Eigenvalue SoLvers for Petaflop-Applications (ELPA) 2024.03.001
Loading...
Searching...
No Matches
distribute_global_column_template.F90
Go to the documentation of this file.
1subroutine distribute_global_column_&
2&precision&
3&(obj, g_col, l_col, noff, nlen, my_prow, np_rows, nblk)
4 use precision
6 implicit none
7#include "../general/precision_kinds.F90"
8
9 class(elpa_abstract_impl_t), intent(inout) :: obj
10 integer(kind=ik) :: noff, nlen, my_prow, np_rows, nblk
11 real(kind=rk) :: g_col(nlen), l_col(*) ! chnage this to proper 2d 1d matching ! remove assumed size
12
13 integer(kind=ik) :: nbs, nbe, jb, g_off, l_off, js, je
14
15 nbs = noff/(nblk*np_rows)
16 nbe = (noff+nlen-1)/(nblk*np_rows)
17
18 do jb = nbs, nbe
19 g_off = jb*nblk*np_rows + nblk*my_prow
20 l_off = jb*nblk
21
22 js = max(noff+1-g_off,1)
23 je = min(noff+nlen-g_off,nblk)
24
25 if (je<js) cycle
26
27 l_col(l_off+js:l_off+je) = g_col(g_off+js-noff:g_off+je-noff)
28
29 enddo
30end subroutine distribute_global_column_&
31&precision
Fortran module to provide an abstract definition of the implementation. Do not use directly....
Definition elpa_abstract_impl.F90:50
Definition elpa_abstract_impl.F90:73