1 | include(dom.inc)
2 |
3 | SUBROUTINE pmm_sendvectors(d_buffer, d_buffersize, iproc)
4 |
5 | ! ================================================================!
6 | ! !
7 | ! pmm_sendvectors.F : Do MPI calls to send global data from !
8 | ! master to slaves !
9 | ! !
10 | ! out : !
11 | ! !
12 | ! author : J. AMAYA (october 2007) !
13 | ! !
14 | ! ================================================================!
15 |
16 | USE mod_pmm
17 | #ifdef USEPALM
18 | USE palmlib
19 | #endif
20 |
21 | IMPLICIT NONE
22 |
23 | include 'pmm_constants.h'
24 |
25 | ! IN
26 | DOM_INT :: d_buffersize, iproc
27 | DOM_REAL, DIMENSION(d_buffersize) :: d_buffer
28 |
29 | ! LOCAL
30 | DOM_INT :: ierr
31 |
32 | ! -----------------------!
33 | ! Send buffers to slaves !
34 | ! -----------------------!
35 |
36 | ! print*, " MASTER: Sending vectors to proc ", iproc
37 |
38 | IF ((iproc-1).eq.PMM_HOST) THEN
39 |
40 | CALL slave_vectors(d_buffer,d_buffersize)
41 |
42 | ELSE
43 |
44 | #ifdef USEPALM
45 | CALL MPI_SEND(d_buffer, d_buffersize, MPI_DOUBLE_PRECISION, &
46 | & iproc-1,PMM_INVECTORS, PL_COMM_EXEC , ierr)
47 | #else
48 | CALL MPI_SEND(d_buffer, d_buffersize, MPI_DOUBLE_PRECISION, &
49 | & iproc-1,PMM_INVECTORS, MPI_COMM_WORLD, ierr)
50 | #endif
51 |
52 | ENDIF
53 |
54 | END SUBROUTINE pmm_sendvectors
pmm_sendvectors.F could be called by: