17 type (hecmwST_local_mesh) :: hecMESH
19 integer(kind=kint):: ierr
20 call mpi_barrier (hecmesh%MPI_COMM, ierr)
27 double precision :: sbuf(*)
28 integer(kind=kint) :: sc(*)
29 integer(kind=kint) :: disp(*)
30 double precision :: rbuf(*)
31 integer(kind=kint) :: rc
32 integer(kind=kint) :: root
33 integer(kind=kint) :: comm
35 integer(kind=kint) :: ierr
36 call mpi_scatterv( sbuf, sc, disp, mpi_double_precision, &
37 rbuf, rc, mpi_double_precision, &
49 integer(kind=kint) :: operation
66 integer(kind=kint) :: sbuf(*)
67 integer(kind=kint) :: rval
68 integer(kind=kint) :: root
69 integer(kind=kint) :: comm
71 integer(kind=kint) :: ierr
72 call mpi_scatter( sbuf, 1, mpi_integer, &
73 & rval, 1, mpi_integer, root, comm, ierr )
82 integer(kind=kint) :: sval
83 integer(kind=kint) :: rbuf(*)
84 integer(kind=kint) :: root
85 integer(kind=kint) :: comm
87 integer(kind=kint) :: ierr
88 call mpi_gather( sval, 1, mpi_integer, &
89 & rbuf, 1, mpi_integer, root, comm, ierr )
98 integer(kind=kint) :: sval
99 integer(kind=kint) :: rbuf(*)
100 integer(kind=kint) :: comm
102 integer(kind=kint) :: ierr
103 call mpi_allgather( sval, 1, mpi_integer, &
104 & rbuf, 1, mpi_integer, comm, ierr )
111 & rbuf, rc, root, comm)
114 real(kind=
kreal) :: sbuf(*)
115 integer(kind=kint) :: scs(*)
116 integer(kind=kint) :: disp(*)
117 real(kind=
kreal) :: rbuf(*)
118 integer(kind=kint) :: rc
119 integer(kind=kint) :: root
120 integer(kind=kint) :: comm
122 integer(kind=kint) :: ierr
123 call mpi_scatterv( sbuf, scs, disp, mpi_real8, &
124 & rbuf, rc, mpi_real8, root, comm, ierr )
126 rbuf(1:rc)=sbuf(1:rc)
131 & rbuf, rcs, disp, root, comm)
134 real(kind=
kreal) :: sbuf(*)
135 integer(kind=kint) :: sc
136 real(kind=
kreal) :: rbuf(*)
137 integer(kind=kint) :: rcs(*)
138 integer(kind=kint) :: disp(*)
139 integer(kind=kint) :: root
140 integer(kind=kint) :: comm
142 integer(kind=kint) :: ierr
143 call mpi_gatherv( sbuf, sc, mpi_real8, &
144 & rbuf, rcs, disp, mpi_real8, root, comm, ierr )
146 rbuf(1:sc)=sbuf(1:sc)
151 & rbuf, rcs, disp, root, comm)
154 integer(kind=kint) :: sbuf(*)
155 integer(kind=kint) :: sc
156 integer(kind=kint) :: rbuf(*)
157 integer(kind=kint) :: rcs(*)
158 integer(kind=kint) :: disp(*)
159 integer(kind=kint) :: root
160 integer(kind=kint) :: comm
162 integer(kind=kint) :: ierr
163 call mpi_gatherv( sbuf, sc, mpi_integer, &
164 & rbuf, rcs, disp, mpi_integer, root, comm, ierr )
166 rbuf(1:sc)=sbuf(1:sc)
173 integer(kind=kint) :: sval
174 integer(kind=kint) :: rval
175 integer(kind=kint):: op, comm, ierr
177 call mpi_allreduce(sval, rval, 1, mpi_integer, &
187 integer(kind=kint) :: sbuf(*)
188 integer(kind=kint) :: sc
189 integer(kind=kint) :: rbuf(*)
190 integer(kind=kint) :: rc
191 integer(kind=kint) :: comm
193 integer(kind=kint) :: ierr
194 call mpi_alltoall( sbuf, sc, mpi_integer, &
195 & rbuf, rc, mpi_integer, comm, ierr )
197 rbuf(1:sc)=sbuf(1:sc)
204 integer(kind=kint) :: sbuf(*)
205 integer(kind=kint) :: sc
206 integer(kind=kint) :: rbuf(*)
207 integer(kind=kint) :: rcs(*)
208 integer(kind=kint) :: disp(*)
209 integer(kind=kint) :: comm
211 integer(kind=kint) :: ierr
212 call mpi_allgatherv( sbuf, sc, mpi_integer, &
213 & rbuf, rcs, disp, mpi_integer, comm, ierr )
215 rbuf(disp(1)+1:disp(1)+sc) = sbuf(1:sc)
222 real(kind=
kreal) :: sbuf(*)
223 integer(kind=kint) :: sc
224 real(kind=
kreal) :: rbuf(*)
225 integer(kind=kint) :: rcs(*)
226 integer(kind=kint) :: disp(*)
227 integer(kind=kint) :: comm
229 integer(kind=kint) :: ierr
230 call mpi_allgatherv( sbuf, sc, mpi_real8, &
231 & rbuf, rcs, disp, mpi_real8, comm, ierr )
233 rbuf(disp(1)+1:disp(1)+sc) = sbuf(1:sc)
240 integer(kind=kint) :: sbuf(*)
241 integer(kind=kint) :: scs(*)
242 integer(kind=kint) :: sdisp(*)
243 integer(kind=kint) :: rbuf(*)
244 integer(kind=kint) :: rcs(*)
245 integer(kind=kint) :: rdisp(*)
246 integer(kind=kint) :: comm
248 integer(kind=kint) :: ierr
249 call mpi_alltoallv( sbuf, scs, sdisp, mpi_integer, &
250 & rbuf, rcs, rdisp, mpi_integer, comm, ierr )
252 rbuf(rdisp(1)+1:rdisp(1)+rcs(1)) = sbuf(sdisp(1)+1:sdisp(1)+scs(1))
259 real(kind=
kreal) :: sbuf(*)
260 integer(kind=kint) :: scs(*)
261 integer(kind=kint) :: sdisp(*)
262 real(kind=
kreal) :: rbuf(*)
263 integer(kind=kint) :: rcs(*)
264 integer(kind=kint) :: rdisp(*)
265 integer(kind=kint) :: comm
267 integer(kind=kint) :: ierr
268 call mpi_alltoallv( sbuf, scs, sdisp, mpi_real8, &
269 & rbuf, rcs, rdisp, mpi_real8, comm, ierr )
271 rbuf(rdisp(1)+1:rdisp(1)+rcs(1)) = sbuf(sdisp(1)+1:sdisp(1)+scs(1))
281 integer(kind=kint) :: n, ntag, comm
282 integer(kind=kint) :: val(*)
284 integer(kind=kint) :: ierr
288 integer(kind=kint) :: VALM(n)
290 if (ntag .eq.
hecmw_sum)
call mpi_allreduce(val, valm, n, mpi_integer, mpi_sum, comm, ierr)
291 if (ntag .eq.
hecmw_max)
call mpi_allreduce(val, valm, n, mpi_integer, mpi_max, comm, ierr)
292 if (ntag .eq.
hecmw_min)
call mpi_allreduce(val, valm, n, mpi_integer, mpi_min, comm, ierr)
300 integer(kind=kint) :: n, ntag, comm
301 real(kind=
kreal) :: val(*)
303 integer(kind=kint) :: ierr
306 real(kind=
kreal) :: valm(n)
308 if (ntag .eq.
hecmw_sum)
call mpi_allreduce(val, valm, n, mpi_double_precision, mpi_sum, comm, ierr)
309 if (ntag .eq.
hecmw_max)
call mpi_allreduce(val, valm, n, mpi_double_precision, mpi_max, comm, ierr)
310 if (ntag .eq.
hecmw_min)
call mpi_allreduce(val, valm, n, mpi_double_precision, mpi_min, comm, ierr)
319 integer(kind=kint) :: comm, isize
321 integer(kind=kint) :: ierr
322 call mpi_comm_size(comm, isize, ierr)
332 integer(kind=kint) :: sbuf(*)
333 integer(kind=kint) :: sc
334 integer(kind=kint) :: dest
335 integer(kind=kint) :: tag
336 integer(kind=kint) :: comm
337 integer(kind=kint) :: req
339 integer(kind=kint) :: ierr
340 call mpi_isend(sbuf, sc, mpi_integer, &
341 & dest, tag, comm, req, ierr)
349 integer(kind=kint) :: sc
350 double precision,
dimension(sc) :: sbuf
351 integer(kind=kint) :: dest
352 integer(kind=kint) :: tag
353 integer(kind=kint) :: comm
354 integer(kind=kint) :: req
356 integer(kind=kint) :: ierr
357 call mpi_isend(sbuf, sc, mpi_double_precision, &
358 & dest, tag, comm, req, ierr)
366 integer(kind=kint) :: rbuf(*)
367 integer(kind=kint) :: rc
368 integer(kind=kint) :: source
369 integer(kind=kint) :: tag
370 integer(kind=kint) :: comm
371 integer(kind=kint) :: req
373 integer(kind=kint) :: ierr
374 call mpi_irecv(rbuf, rc, mpi_integer, &
375 & source, tag, comm, req, ierr)
383 integer(kind=kint) :: rc
384 double precision,
dimension(rc) :: rbuf
385 integer(kind=kint) :: source
386 integer(kind=kint) :: tag
387 integer(kind=kint) :: comm
388 integer(kind=kint) :: req
390 integer(kind=kint) :: ierr
391 call mpi_irecv(rbuf, rc, mpi_double_precision, &
392 & source, tag, comm, req, ierr)
399 integer(kind=kint) :: cnt
400 integer(kind=kint) :: reqs(*)
401 integer(kind=kint) :: stats(HECMW_STATUS_SIZE,*)
403 integer(kind=kint) :: ierr
404 call mpi_waitall(cnt, reqs, stats, ierr)
412 integer(kind=kint) :: rbuf(*)
413 integer(kind=kint) :: rc
414 integer(kind=kint) :: source
415 integer(kind=kint) :: tag
416 integer(kind=kint) :: comm
417 integer(kind=kint) :: stat(HECMW_STATUS_SIZE)
419 integer(kind=kint) :: ierr
420 call mpi_recv(rbuf, rc, mpi_integer, &
421 & source, tag, comm, stat, ierr)
429 integer(kind=kint) :: rc
430 double precision,
dimension(rc) :: rbuf
431 integer(kind=kint) :: source
432 integer(kind=kint) :: tag
433 integer(kind=kint) :: comm
434 integer(kind=kint) :: stat(HECMW_STATUS_SIZE)
436 integer(kind=kint) :: ierr
437 call mpi_recv(rbuf, rc, mpi_double_precision, &
438 & source, tag, comm, stat, ierr)
449 integer(kind=kint) :: n, hec_op,op, comm, ierr
450 double precision,
dimension(n) :: val
451 double precision,
dimension(n) :: VALM
453 select case( hec_op )
463 call mpi_allreduce(val,valm,n,mpi_double_precision,op,comm,ierr)
465 integer(kind=kint) :: i
475 integer(kind=kint) :: hec_op, comm
476 double precision :: s1, s2
477 double precision,
dimension(1) :: val
478 double precision,
dimension(1) :: VALM
497 integer(kind=kint):: n, ntag
498 real(kind=
kreal),
dimension(n) :: val
499 type (hecmwST_local_mesh) :: hecMESH
501 integer(kind=kint):: ierr
502 real(kind=
kreal),
dimension(:),
allocatable :: valm, sbuf
504 allocate (valm(n), sbuf(n))
509 & (sbuf, valm, n, mpi_double_precision, mpi_sum, &
510 & hecmesh%MPI_COMM, ierr)
515 & (sbuf, valm, n, mpi_double_precision, mpi_max, &
516 & hecmesh%MPI_COMM, ierr)
521 & (sbuf, valm, n, mpi_double_precision, mpi_min, &
522 & hecmesh%MPI_COMM, ierr)
526 deallocate (valm, sbuf)
533 integer(kind=kint):: ntag
534 real(kind=
kreal) :: s
535 type (hecmwST_local_mesh) :: hecMESH
537 real(kind=
kreal),
dimension(1) :: val
552 integer(kind=kint):: n, ntag
553 integer(kind=kint),
dimension(n) :: val
554 type (hecmwST_local_mesh) :: hecMESH
556 integer(kind=kint):: ierr
557 integer(kind=kint),
dimension(:),
allocatable :: VALM, sbuf
559 allocate (valm(n), sbuf(n))
564 & (sbuf, valm, n, mpi_integer, mpi_sum, &
565 & hecmesh%MPI_COMM, ierr)
570 & (sbuf, valm, n, mpi_integer, mpi_max, &
571 & hecmesh%MPI_COMM, ierr)
576 & (sbuf, valm, n, mpi_integer, mpi_min, &
577 & hecmesh%MPI_COMM, ierr)
582 deallocate (valm, sbuf)
589 integer(kind=kint):: ntag, s
590 type (hecmwST_local_mesh) :: hecMESH
592 integer(kind=kint),
dimension(1) :: val
603 integer(kind=kint):: ntag
605 type (hecmwST_local_mesh) :: hecMESH
607 integer(kind=kint):: ierr
613 & (flag, flagm, 1, mpi_logical, mpi_lor, &
614 & hecmesh%MPI_COMM, ierr)
619 & (flag, flagm, 1, mpi_logical, mpi_land, &
620 & hecmesh%MPI_COMM, ierr)
635 integer(kind=kint):: n, nbase
636 real(kind=
kreal),
dimension(n) :: val
637 type (hecmwST_local_mesh) :: hecMESH
639 integer(kind=kint):: ierr
640 call mpi_bcast (val, n, mpi_double_precision, nbase, hecmesh%MPI_COMM, ierr)
647 integer(kind=kint):: n, nbase
648 real(kind=
kreal),
dimension(n) :: val
649 integer(kind=kint):: comm
651 integer(kind=kint):: ierr
652 call mpi_bcast (val, n, mpi_double_precision, nbase, comm, ierr)
659 integer(kind=kint):: nbase, ierr
660 real(kind=
kreal) :: s
661 type (hecmwST_local_mesh) :: hecMESH
663 real(kind=
kreal),
dimension(1) :: val
665 call mpi_bcast (val, 1, mpi_double_precision, nbase, hecmesh%MPI_COMM, ierr)
673 integer(kind=kint):: nbase
674 real(kind=
kreal) :: s
675 integer(kind=kint):: comm
677 integer(kind=kint):: ierr
678 real(kind=
kreal),
dimension(1) :: val
680 call mpi_bcast (val, 1, mpi_double_precision, nbase, comm, ierr)
692 integer(kind=kint):: n, nbase
693 integer(kind=kint),
dimension(n) :: val
694 type (hecmwST_local_mesh) :: hecMESH
696 integer(kind=kint):: ierr
697 call mpi_bcast (val, n, mpi_integer, nbase, hecmesh%MPI_COMM, ierr)
704 integer(kind=kint):: n, nbase
705 integer(kind=kint),
dimension(n) :: val
706 integer(kind=kint):: comm
708 integer(kind=kint):: ierr
709 call mpi_bcast (val, n, mpi_integer, nbase, comm, ierr)
716 integer(kind=kint):: nbase, s
717 type (hecmwST_local_mesh) :: hecMESH
719 integer(kind=kint):: ierr
720 integer(kind=kint),
dimension(1) :: val
722 call mpi_bcast (val, 1, mpi_integer, nbase, hecmesh%MPI_COMM, ierr)
730 integer(kind=kint):: nbase, s
731 integer(kind=kint):: comm
733 integer(kind=kint):: ierr
734 integer(kind=kint),
dimension(1) :: val
736 call mpi_bcast (val, 1, mpi_integer, nbase, comm, ierr)
748 integer(kind=kint):: n, nn, nbase
749 character(len=n) :: val(nn)
750 type (hecmwST_local_mesh) :: hecMESH
752 integer(kind=kint):: ierr
753 call mpi_bcast (val, n*nn, mpi_character, nbase, hecmesh%MPI_COMM,&
761 integer(kind=kint):: n, nn, nbase
762 character(len=n) :: val(nn)
763 integer(kind=kint):: comm
765 integer(kind=kint):: ierr
766 call mpi_bcast (val, n*nn, mpi_character, nbase, comm,&
780 integer(kind=kint):: n, m
781 real(kind=
kreal),
dimension(m*n) :: val
782 type (hecmwST_local_mesh) :: hecMESH
784 integer(kind=kint):: ns, nr
785 real(kind=
kreal),
dimension(:),
allocatable :: ws, wr
787 if( hecmesh%n_neighbor_pe == 0 )
return
789 ns = hecmesh%import_index(hecmesh%n_neighbor_pe)
790 nr = hecmesh%export_index(hecmesh%n_neighbor_pe)
792 allocate (ws(m*ns), wr(m*nr))
794 & ( n, m, hecmesh%n_neighbor_pe, hecmesh%neighbor_pe, &
795 & hecmesh%import_index, hecmesh%import_item, &
796 & hecmesh%export_index, hecmesh%export_item, &
797 & ws, wr, val , hecmesh%MPI_COMM, hecmesh%my_rank)
811 integer(kind=kint):: n, m
812 integer(kind=kint),
dimension(m*n) :: val
813 type (hecmwST_local_mesh) :: hecMESH
815 integer(kind=kint):: ns, nr
816 integer(kind=kint),
dimension(:),
allocatable :: WS, WR
818 if( hecmesh%n_neighbor_pe == 0 )
return
820 ns = hecmesh%import_index(hecmesh%n_neighbor_pe)
821 nr = hecmesh%export_index(hecmesh%n_neighbor_pe)
823 allocate (ws(m*ns), wr(m*nr))
825 & ( n, m, hecmesh%n_neighbor_pe, hecmesh%neighbor_pe, &
826 & hecmesh%import_index, hecmesh%import_item, &
827 & hecmesh%export_index, hecmesh%export_item, &
828 & ws, wr, val , hecmesh%MPI_COMM, hecmesh%my_rank)
843 integer(kind=kint):: n, m
844 real(kind=
kreal),
dimension(m*n) :: val
845 type (hecmwST_local_mesh) :: hecMESH
847 integer(kind=kint):: ns, nr
848 real(kind=
kreal),
dimension(:),
allocatable :: ws, wr
850 if( hecmesh%n_neighbor_pe == 0 )
return
852 ns = hecmesh%export_index(hecmesh%n_neighbor_pe)
853 nr = hecmesh%import_index(hecmesh%n_neighbor_pe)
855 allocate (ws(m*ns), wr(m*nr))
857 & ( n, m, hecmesh%n_neighbor_pe, hecmesh%neighbor_pe, &
858 & hecmesh%import_index, hecmesh%import_item, &
859 & hecmesh%export_index, hecmesh%export_item, &
860 & ws, wr, val , hecmesh%MPI_COMM, hecmesh%my_rank)
876 integer(kind=kint):: n, m, ireq
877 real(kind=
kreal),
dimension(m*n) :: val
878 type (hecmwST_local_mesh) :: hecMESH
880 if( hecmesh%n_neighbor_pe == 0 )
return
883 & ( n, m, hecmesh%n_neighbor_pe, hecmesh%neighbor_pe, &
884 & hecmesh%import_index, hecmesh%import_item, &
885 & hecmesh%export_index, hecmesh%export_item, &
886 & val , hecmesh%MPI_COMM, hecmesh%my_rank, ireq)
901 integer(kind=kint):: ireq
902 type (hecmwST_local_mesh) :: hecMESH
904 if( hecmesh%n_neighbor_pe == 0 )
return
921 integer(kind=kint):: n, m
922 integer(kind=kint),
dimension(m*n) :: val
923 type (hecmwST_local_mesh) :: hecMESH
925 integer(kind=kint):: ns, nr
926 integer(kind=kint),
dimension(:),
allocatable :: WS, WR
928 if( hecmesh%n_neighbor_pe == 0 )
return
930 ns = hecmesh%export_index(hecmesh%n_neighbor_pe)
931 nr = hecmesh%import_index(hecmesh%n_neighbor_pe)
933 allocate (ws(m*ns), wr(m*nr))
935 & ( n, m, hecmesh%n_neighbor_pe, hecmesh%neighbor_pe, &
936 & hecmesh%import_index, hecmesh%import_item, &
937 & hecmesh%export_index, hecmesh%export_item, &
938 & ws, wr, val , hecmesh%MPI_COMM, hecmesh%my_rank)
subroutine hecmw_solve_send_recv_i(N, m, NEIBPETOT, NEIBPE, STACK_IMPORT, NOD_IMPORT, STACK_EXPORT, NOD_EXPORT, WS, WR, X, SOLVER_COMM, my_rank)
subroutine hecmw_solve_rev_send_recv_i(N, M, NEIBPETOT, NEIBPE, STACK_IMPORT, NOD_IMPORT, STACK_EXPORT, NOD_EXPORT, WS, WR, X, SOLVER_COMM, my_rank)
subroutine hecmw_solve_isend_irecv_wait(m, ireq)
subroutine hecmw_solve_isend_irecv(N, M, NEIBPETOT, NEIBPE, STACK_IMPORT, NOD_IMPORT, STACK_EXPORT, NOD_EXPORT, X, SOLVER_COMM, my_rank, ireq)
subroutine hecmw_solve_send_recv(N, m, NEIBPETOT, NEIBPE, STACK_IMPORT, NOD_IMPORT, STACK_EXPORT, NOD_EXPORT, WS, WR, X, SOLVER_COMM, my_rank)
subroutine hecmw_solve_rev_send_recv(N, M, NEIBPETOT, NEIBPE, STACK_IMPORT, NOD_IMPORT, STACK_EXPORT, NOD_EXPORT, WS, WR, X, SOLVER_COMM, my_rank)
integer(kind=kint), parameter hecmw_land
integer(kind=kint), parameter hecmw_sum
integer(kind=kint), parameter hecmw_prod
integer(kind=kint), parameter hecmw_max
integer(kind=4), parameter kreal
integer(kind=kint), parameter hecmw_lor
integer(kind=kint), parameter hecmw_min
subroutine hecmw_assemble_r(hecMESH, val, n, m)
subroutine hecmw_bcast_c_comm(val, n, nn, nbase, comm)
subroutine hecmw_gatherv_real(sbuf, sc, rbuf, rcs, disp, root, comm)
subroutine hecmw_update_r(hecMESH, val, n, m)
subroutine hecmw_isend_int(sbuf, sc, dest, tag, comm, req)
subroutine hecmw_scatterv_real(sbuf, scs, disp, rbuf, rc, root, comm)
subroutine hecmw_allgatherv_int(sbuf, sc, rbuf, rcs, disp, comm)
subroutine hecmw_alltoallv_real(sbuf, scs, sdisp, rbuf, rcs, rdisp, comm)
subroutine hecmw_recv_int(rbuf, rc, source, tag, comm, stat)
subroutine hecmw_bcast_r_comm(val, n, nbase, comm)
subroutine hecmw_allgatherv_real(sbuf, sc, rbuf, rcs, disp, comm)
subroutine hecmw_bcast_c(hecMESH, val, n, nn, nbase)
subroutine hecmw_isend_r(sbuf, sc, dest, tag, comm, req)
subroutine hecmw_allreduce_i1(hecMESH, s, ntag)
subroutine hecmw_gather_int_1(sval, rbuf, root, comm)
subroutine hecmw_bcast_i_comm(val, n, nbase, comm)
subroutine hecmw_allreduce_i(hecMESH, val, n, ntag)
subroutine hecmw_allreduce_r(hecMESH, val, n, ntag)
subroutine hecmw_bcast_i1(hecMESH, s, nbase)
subroutine hecmw_allgather_int_1(sval, rbuf, comm)
subroutine hecmw_allreduce_dp1(s1, s2, hec_op, comm)
subroutine hecmw_waitall(cnt, reqs, stats)
subroutine hecmw_assemble_i(hecMESH, val, n, m)
subroutine hecmw_comm_size(comm, isize)
Number of ranks in an explicit communicator (1 when serial).
subroutine hecmw_allreduce_dp(val, VALM, n, hec_op, comm)
subroutine hecmw_bcast_r(hecMESH, val, n, nbase)
subroutine hecmw_alltoallv_int(sbuf, scs, sdisp, rbuf, rcs, rdisp, comm)
subroutine hecmw_irecv_int(rbuf, rc, source, tag, comm, req)
subroutine hecmw_bcast_r1_comm(s, nbase, comm)
subroutine hecmw_scatter_int_1(sbuf, rval, root, comm)
subroutine hecmw_irecv_r(rbuf, rc, source, tag, comm, req)
subroutine hecmw_allreduce_l1(hecMESH, flag, ntag)
subroutine hecmw_bcast_i(hecMESH, val, n, nbase)
subroutine hecmw_update_r_async(hecMESH, val, n, m, ireq)
subroutine hecmw_allreduce_r_comm(val, n, ntag, comm)
subroutine hecmw_update_i(hecMESH, val, n, m)
subroutine hecmw_recv_r(rbuf, rc, source, tag, comm, stat)
subroutine hecmw_allreduce_r1(hecMESH, s, ntag)
subroutine hecmw_alltoall_int(sbuf, sc, rbuf, rc, comm)
subroutine hecmw_update_r_wait(hecMESH, ireq)
subroutine hecmw_bcast_r1(hecMESH, s, nbase)
subroutine hecmw_scatterv_dp(sbuf, sc, disp, rbuf, rc, root, comm)
subroutine hecmw_allreduce_int_1(sval, rval, op, comm)
subroutine hecmw_gatherv_int(sbuf, sc, rbuf, rcs, disp, root, comm)
subroutine hecmw_barrier(hecMESH)
subroutine hecmw_allreduce_i_comm(val, n, ntag, comm)
Allreduce over an explicit communicator (ntag = hecmw_sum / hecmw_max / hecmw_min)....
integer(kind=kint) function hecmw_operation_hec2mpi(operation)
subroutine hecmw_bcast_i1_comm(s, nbase, comm)