1 | include(dom.inc)
2 |
3 | SUBROUTINE pmm_sendpartition(i_buffer, i_buffersize, iproc)
4 |
5 | ! ================================================================!
6 | ! !
7 | ! pmm_sendpartition.F : Do MPI calls to send partition data from !
8 | ! master to slaves !
9 | ! !
10 | ! out : !
11 | ! !
12 | ! author : J. AMAYA (october 2007) !
13 | ! !
14 | ! ================================================================!
15 |
16 | USE mod_pmm
17 |
18 | IMPLICIT NONE
19 |
20 | include 'pmm_constants.h'
21 |
22 | ! IN
23 | DOM_INT :: i_buffersize, iproc
24 |
25 | DOM_INT, DIMENSION(i_buffersize) :: i_buffer
26 |
27 | ! LOCAL
28 | DOM_INT :: ierr
29 |
30 | ! -----------------------!
31 | ! Send buffers to slaves !
32 | ! -----------------------!
33 |
34 | WRITE(*,*) " (",pmm_rank,") Sending partition to slave ",iproc-1
35 | ! print*, " (",pmm_rank,") ", i_buffer
36 |
37 | IF ((iproc-1).eq.PMM_HOST) THEN
38 | ! print*, " (",pmm_rank,") partition with copy for master"
39 | CALL slave_partition(i_buffer, i_buffersize)
40 | ELSE
41 | ! print*, " (",pmm_rank,") partition with send for slaves"
42 | CALL MPI_SEND(i_buffer, i_buffersize, MPI_INTEGER, iproc-1, &
43 | & PMM_PARTITION, MPI_COMM_WORLD, ierr)
44 | ENDIF
45 |
46 | END SUBROUTINE pmm_sendpartition
pmm_sendpartition.F could be called by: