1 |
jmc |
1.2 |
C $Header: $ |
2 |
|
|
C $Name: $ |
3 |
|
|
|
4 |
jmc |
1.1 |
!======================================================================= |
5 |
|
|
subroutine MITCOMPONENT_register( nx, ny, i0, j0 ) |
6 |
|
|
implicit none |
7 |
|
|
|
8 |
|
|
! Arguments |
9 |
|
|
integer nx,ny,i0,j0 |
10 |
|
|
|
11 |
|
|
! MPI variables |
12 |
|
|
#include "mpif.h" |
13 |
|
|
integer myid, numprocs, ierr, rc |
14 |
|
|
|
15 |
|
|
! Predefined constants/arrays |
16 |
|
|
#include "CPLR_SIG.h" |
17 |
|
|
|
18 |
|
|
! Functions |
19 |
|
|
integer mitcplr_match_comp |
20 |
|
|
integer generate_tag |
21 |
|
|
|
22 |
|
|
! Local |
23 |
|
|
integer bi,bj,num_tiles,bibj |
24 |
|
|
integer count,datatype,dest,tag,comm |
25 |
|
|
|
26 |
|
|
! ------------------------------------------------------------------ |
27 |
|
|
|
28 |
|
|
! Set up buffer |
29 |
|
|
ibuf(1)=1 |
30 |
|
|
ibuf(2)=nx |
31 |
|
|
ibuf(3)=ny |
32 |
|
|
ibuf(4)=i0 |
33 |
|
|
ibuf(5)=j0 |
34 |
|
|
|
35 |
|
|
my_num_tiles=1 |
36 |
|
|
my_tile_nx(1)=nx |
37 |
|
|
my_tile_ny(1)=ny |
38 |
|
|
my_tile_i0(1)=i0 |
39 |
|
|
my_tile_j0(1)=j0 |
40 |
|
|
|
41 |
|
|
! Send message |
42 |
|
|
count=5 |
43 |
|
|
datatype=MPI_INTEGER |
44 |
|
|
dest=my_coupler_rank |
45 |
|
|
tag=generate_tag(115,my_rank_in_global,'Register') |
46 |
|
|
comm=MPI_COMM_myglobal |
47 |
|
|
|
48 |
|
|
call MPI_Send( ibuf, count, datatype, dest, tag, comm, ierr ) |
49 |
jmc |
1.2 |
|
50 |
jmc |
1.1 |
if (ierr.ne.0) then |
51 |
|
|
write(LogUnit,*) 'MITCOMPONENT_register: rank(W,G,L)=', |
52 |
|
|
& my_rank_in_world,my_rank_in_global,my_rank_in_local, |
53 |
|
|
& ' ierr=',ierr |
54 |
|
|
stop 'MITCOMPONENT_register: MPI_Send failed' |
55 |
|
|
endif |
56 |
|
|
|
57 |
|
|
! ------------------------------------------------------------------ |
58 |
|
|
call flush(LogUnit) |
59 |
|
|
return |
60 |
|
|
end |
61 |
|
|
!======================================================================= |