35
36
37
39
40
41
42 USE spmd_comm_world_mod, ONLY : spmd_comm_world
43#include "implicit_f.inc"
44
45
46
47#include "spmd.inc"
48
49
50
51#include "task_c.inc"
52#include "chara_c.inc"
53#include "com01_c.inc"
54#include "com08_c.inc"
55
56
57
58
59
60
61
62#ifdef MPI
63
64 INTEGER STATUS(MPI_STATUS_SIZE),IERROR,MSGTYP2,
65 . REQ_R(NSPMD),REQ_S(NSPMD), IRINDEX(NSPMD),
66 . INDEX, NBIRECV,I,MSGTYP,MSGOFF
67 DATA msgoff/100/
68
69
71 . ttrec,ttst
72
73 CHARACTER FILNAM*100, FILNAM1*100,RSRUN*4,RSRUN1*4
74
75
76 IF (ispmd/=0) THEN
77
78
79 msgtyp = msgoff
80 CALL mpi_send(tt,1,real,it_spmd(1),msgtyp,
81 . spmd_comm_world,ierror)
82 ELSE
83 DO i=2,nspmd
84
85 msgtyp = msgoff
86 CALL mpi_recv(ttrec,1,real,it_spmd(i),
87 . msgtyp,spmd_comm_world,status,ierror)
88 IF (ttrec/=tt) THEN
89
90 WRITE(rsrun1,'(I4.4)')1
91 filnam1=rootnam(1:rootlen)
92 . //'_'//chrun//'_'//rsrun1//'.rst'
93
94 WRITE(rsrun,'(I4.4)')i
95 filnam=rootnam(1:rootlen)
96 . //'_'//chrun//'_'//rsrun//'.rst'
97
98 CALL ancmsg(msgid=24,anmode=aninfo_blind,
99 . c1=filnam1(1:rootlen+15),
100 . c2=filnam(1:rootlen+15))
102 ENDIF
103
104 ENDDO
105
106 ENDIF
107#endif
108 RETURN
subroutine mpi_recv(buf, cnt, datatype, source, tag, comm, status, ierr)
subroutine mpi_send(buf, cnt, datatype, dest, tag, comm, ierr)
subroutine ancmsg(msgid, msgtype, anmode, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17, i18, i19, i20, r1, r2, r3, r4, r5, r6, r7, r8, r9, c1, c2, c3, c4, c5, c6, c7, c8, c9, prmode)