43
44
45
46 USE timer_mod
47 USE intbufdef_mod
50
51
52
53#include "implicit_f.inc"
54#include "comlock.inc"
55#include "macro.inc"
56
57
58
59#include "com01_c.inc"
60#include "com04_c.inc"
61#include "param_c.inc"
62#include "timeri_c.inc"
63
64
65
66 TYPE(TIMER_) :: TIMERS
67 INTEGER IPARI(NPARI,NINTER),ITASK,INTLIST25(*)
68 INTEGER ISENDTO(NSPMD+1,*),IRECVFROM(NSPMD+1,*)
69
70 TYPE(INTBUF_STRUCT_),DIMENSION(NINTER) :: INTBUF_TAB
71
72
73
74 INTEGER N, NIN, NRTM, IEDGE, NEDGE
75
76
77 DO n = 1,ninter25
78 nin = intlist25(n)
79
80 nrtm = ipari(4,nin)
81 iedge = ipari(58,nin)
82 nedge = ipari(68,nin)
83
84 IF(iedge/=0)THEN
86 . itask+1,intbuf_tab(nin)%STFM,intbuf_tab(nin)%STFE,intbuf_tab(nin)%MVOISIN,iedge,
87 . nedge,intbuf_tab(nin)%LEDGE)
88
90
91 END IF
92
93
95 1 nrtm,intbuf_tab(nin)%MVOISIN,intbuf_tab(nin)%IRECTM,intbuf_tab(nin)%STFM,
96 . intbuf_tab(nin)%NRTM_FREE,
97 2 intbuf_tab(nin)%FREE_IRECT_ID)
98
99 END DO
100
101 IF (imon>0 .AND. itask==0) THEN
102 CALL startime(timers,macro_timer_t25stfe)
103 ENDIF
104
105
106 DO n = 1,ninter25
107 nin = intlist25(n)
109 IF(ipari(macro_iedge,nin) > 0) THEN
110
111
113 . intbuf_tab(nin)%STFE, ipari(macro_nedge,nin), intbuf_tab(nin)%LEDGE,
114 . nin , isendto, irecvfrom, intbuf_tab(nin)%MPI_COMM, intbuf_tab(nin)%RANK,
115 . intbuf_tab(nin)%NSPMD)
116 ENDIF
117 ENDDO
118
119
120 IF (imon>0 .AND. itask==0) THEN
121 CALL stoptime(timers,macro_timer_t25stfe)
122 ENDIF
123
124 RETURN
subroutine i25edge_switch(jtask, stifm, stfe, mvoisin, iedge, nedge, ledge)
subroutine i25free_bound(nrtm, mvoisin, irect, stifm, nrtm_free, free_irect_id)
subroutine spmd_get_stif25_edg(stfe, nedge, ledge, nin, isendto, ircvfrom, comm, rank, comsize)
subroutine startime(event, itask)
subroutine stoptime(event, itask)