gather.F [SRC] [CPP] [JOB] [SCAN]
SOURCES / FUNCTIONS



   1 | include(dom.inc)
   2 | 
   3 |       SUBROUTINE GATHER(vect, vect_cell, ndata)
   4 | 
   5 |       USE mod_pmm
   6 |       USE mod_slave
   7 | #ifdef USEPALM
   8 |       USE palmlib
   9 | #endif
  10 | 
  11 |       IMPLICIT NONE
  12 | 
  13 | !     IN
  14 |       DOM_INT                              :: ndata
  15 |       DOM_REAL,DIMENSION(ndata,is_nnodes)  :: vect
  16 | 
  17 | !     LOCAL
  18 |       DOM_INT :: j, inode, k, ierr
  19 |       DOM_REAL, DIMENSION(ndata,is_ncells) :: local_vect_cell
  20 | 
  21 | !     OUT
  22 |       DOM_REAL, DIMENSION(ndata,is_ncells) :: vect_cell
  23 | 
  24 | 
  25 |       vect_cell  = 0.
  26 | 
  27 | !     -----------------------------!
  28 | !     Initializing local cell data !
  29 | !     -----------------------------!
  30 | 
  31 |       local_vect_cell  = 0.
  32 | 
  33 |        DO j= is_cellb, is_cellf 
  34 |           DO inode=1,is_cnodes(j)
  35 |             k = is_cnnode(inode,j)
  36 |             local_vect_cell(:,j) = local_vect_cell(:,j)  + vect(:,k)
  37 |           ENDDO
  38 |         local_vect_cell(:,j) = local_vect_cell(:,j)/ real(is_cnodes(j))
  39 | 
  40 |       ENDDO
  41 | 
  42 | #ifdef USEPALM
  43 |       CALL MPI_ALLREDUCE(local_vect_cell, vect_cell, is_ncells*ndata,   &
  44 |      &                   MPI_DOUBLE_PRECISION,MPI_SUM, PL_COMM_EXEC  ,  &
  45 |      &                   ierr)
  46 | #else
  47 |       CALL MPI_ALLREDUCE(local_vect_cell, vect_cell, is_ncells*ndata,   &
  48 |      &                   MPI_DOUBLE_PRECISION,MPI_SUM, MPI_COMM_WORLD,  &
  49 |      &                   ierr)
  50 | #endif
  51 | 
  52 |       END SUBROUTINE GATHER


gather.F could be called by:
band_integ.F [SOURCES/SCHEMES] - 61
Makefile [SOURCES] - 168
slave.F [SOURCES/MAIN/SLAVE] - 272 - 273 - 274 - 322 - 323