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 |
19 | IMPLICIT NONE
20 |
21 | INCLUDE 'pmm_constants.h'
22 | INCLUDE 'dom_constants.h'
23 |
24 | ! LOCAL
25 | DOM_INT :: iproc, ibeg, iend, ierr
26 | DOM_INT :: i, j, k, n
27 | DOM_INT :: d_buffersize
28 | DOM_INT :: status(MPI_STATUS_SIZE)
29 | DOM_REAL, ALLOCATABLE, DIMENSION(:) :: d_buffer
30 |
31 | ! -------------------!
32 | ! Allocating buffers !
33 | ! -------------------!
34 |
35 | d_buffersize = 4*is_ndir
36 | IF (spascheme.eq.EXPON) then
37 | d_buffersize = d_buffersize + (is_ndir*is_nnodes) + &
38 | & (is_ndir*is_nnodes*is_nfacesmax)
39 | ENDIF
40 | ALLOCATE(d_buffer(d_buffersize))
41 |
42 | ! ------------------------------!
43 | ! Receiving buffers from master !
44 | ! ------------------------------!
45 |
46 | ! print*, pmm_rank," >> SLAVE: receiving vectors"
47 | CALL MPI_RECV(d_buffer, d_buffersize, MPI_DOUBLE_PRECISION, &
48 | & PMM_HOST, PMM_INVECTORS, MPI_COMM_WORLD, status, ierr)
49 |
50 | ! ----------------------!
51 | ! Writing slave vectors !
52 | ! ----------------------!
53 |
54 | ! print*, pmm_rank," >> SLAVE: filling vectors with buffer data"
55 | CALL slave_vectors(d_buffer,d_buffersize)
56 |
57 | END SUBROUTINE slave_receive_vectors
slave_receive_vectors.F could be called by: