42
43
44
45 USE timer_mod
46 USE intbufdef_mod
48
49
50
51#include "implicit_f.inc"
52#include "comlock.inc"
53#include "macro.inc"
54
55
56
57#include "com01_c.inc"
58#include "com04_c.inc"
59#include "param_c.inc"
60#include "timeri_c.inc"
61
62
63
64 TYPE(TIMER_) :: TIMERS
65 INTEGER IPARI(NPARI,NINTER),ITASK,INTLIST25(*)
66 INTEGER ISENDTO(NSPMD+1,*),IRECVFROM(NSPMD+1,*)
67
68 TYPE(INTBUF_STRUCT_),DIMENSION(NINTER) :: INTBUF_TAB
69
70
71
72 INTEGER N, NIN, NRTM, IEDGE, NEDGE
73
75 . startt, stopt
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)
108 IF(ipari(macro_iedge,nin) > 0) THEN
109
110
112 . intbuf_tab(nin)%STFE, ipari(macro_nedge,nin), intbuf_tab(nin)%LEDGE,
113 . nin , isendto, irecvfrom, intbuf_tab(nin)%MPI_COMM, intbuf_tab(nin)%RANK,
114 . intbuf_tab(nin)%NSPMD)
115 ENDIF
116 ENDDO
117
118
119 IF (imon>0 .AND. itask==0) THEN
120 CALL stoptime(timers,macro_timer_t25stfe)
121 ENDIF
122
123 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)