slave_receive_vectors.F [SRC] [CPP] [JOB] [SCAN]
SOURCES / MAIN / SLAVE



   1 | include(dom.inc)
   2 | 
   3 |       SUBROUTINE slave_receive_vectors
   4 | 
   5 | !       ================================================================!
   6 | !                                                                       !
   7 | !       slave_receive.F : Receives I/O vectors from master proces.      !
   8 | !                                                                       !
   9 | !       out             : Global vectors.                               !
  10 | !                                                                       !
  11 | !       author          : J. AMAYA (october 2007)                       !
  12 | !                                                                       !
  13 | !       ================================================================!
  14 | 
  15 |         USE mod_pmm
  16 |         USE mod_inout
  17 |         USE mod_slave
  18 | #ifdef USEPALM
  19 |         USE palmlib
  20 | #endif
  21 | 
  22 |         IMPLICIT NONE
  23 | 
  24 |         INCLUDE 'pmm_constants.h'
  25 |         INCLUDE 'dom_constants.h'
  26 | 
  27 | !       LOCAL
  28 |         DOM_INT          :: iproc, ibeg, iend, ierr
  29 |         DOM_INT          :: i, j, k, n
  30 |         DOM_INT          :: d_buffersize
  31 |         DOM_INT          :: status(MPI_STATUS_SIZE)
  32 |         DOM_REAL, ALLOCATABLE, DIMENSION(:) :: d_buffer
  33 | 
  34 | !       -------------------!
  35 | !       Allocating buffers !
  36 | !       -------------------!
  37 | 
  38 |         d_buffersize = 4*is_ndir
  39 |         ALLOCATE(d_buffer(d_buffersize))
  40 | 
  41 | !       ------------------------------!
  42 | !       Receiving buffers from master !
  43 | !       ------------------------------!
  44 | 
  45 | !       print*, pmm_rank," >> SLAVE: receiving vectors"
  46 | #ifdef USEPALM
  47 |         CALL MPI_RECV(d_buffer, d_buffersize, MPI_DOUBLE_PRECISION,     &
  48 |      &       PMM_HOST, PMM_INVECTORS, PL_COMM_EXEC  , status, ierr)
  49 | #else
  50 |         CALL MPI_RECV(d_buffer, d_buffersize, MPI_DOUBLE_PRECISION,     &
  51 |      &       PMM_HOST, PMM_INVECTORS, MPI_COMM_WORLD, status, ierr)
  52 | #endif
  53 | 
  54 | !       ----------------------!
  55 | !       Writing slave vectors !
  56 | !       ----------------------!
  57 | 
  58 | !       print*, pmm_rank," >> SLAVE: filling vectors with buffer data"
  59 |         CALL slave_vectors(d_buffer,d_buffersize)
  60 | 
  61 |       END SUBROUTINE slave_receive_vectors


slave_receive_vectors.F could be called by:
Makefile [SOURCES] - 157
slave_receive.F [SOURCES/MAIN/SLAVE] - 52