@@ -452,4 +452,57 @@ _EXTERN_C_ void mpi_irecv_(MPI_Fint *buf, MPI_Fint *count, MPI_Fint *datatype, M
452
452
453
453
_EXTERN_C_ void mpi_irecv__ (MPI_Fint * buf , MPI_Fint * count , MPI_Fint * datatype , MPI_Fint * source , MPI_Fint * tag , MPI_Fint * comm , MPI_Fint * request , MPI_Fint * ierr ) {
454
454
MPI_Irecv_fortran_wrapper (buf , count , datatype , source , tag , comm , request , ierr );
455
+ }
456
+
457
+
458
+ static void MPI_Barrier_fortran_wrapper (MPI_Fint * comm , MPI_Fint * ierr ) {
459
+ int _wrap_py_return_val = 0 ;
460
+
461
+ Tsc const tsc = rdtsc ();
462
+
463
+ #if (!defined(MPICH_HAS_C2F ) && defined(MPICH_NAME ) && (MPICH_NAME == 1 )) /* MPICH test */
464
+ _wrap_py_return_val = PMPI_Barrier ((MPI_Comm )(* comm ));
465
+ #else /* MPI-2 safe call */
466
+ _wrap_py_return_val = PMPI_Barrier (MPI_Comm_f2c (* comm ));
467
+ #endif /* MPICH test */
468
+
469
+ Tsc const duration = rdtsc () - tsc ;
470
+
471
+ MpiCall const barrier = {
472
+ .kind = Barrier ,
473
+ .time = -1.0 ,
474
+ .tsc = tsc ,
475
+ .duration = duration ,
476
+ .current_rank = current_rank ,
477
+ .partner_rank = -1 ,
478
+ .nb_bytes_s = 0 ,
479
+ .nb_bytes_r = 0 ,
480
+ .comm = PMPI_Comm_c2f ((MPI_Comm )comm ),
481
+ .req = -1 ,
482
+ .tag = -1 ,
483
+ .required_thread_lvl = -1 ,
484
+ .provided_thread_lvl = -1 ,
485
+ .op_type = -1 ,
486
+ .finished = false,
487
+ };
488
+
489
+ register_mpi_call (barrier );
490
+
491
+ * ierr = _wrap_py_return_val ;
492
+ }
493
+
494
+ _EXTERN_C_ void MPI_BARRIER (MPI_Fint * comm , MPI_Fint * ierr ) {
495
+ MPI_Barrier_fortran_wrapper (comm , ierr );
496
+ }
497
+
498
+ _EXTERN_C_ void mpi_barrier (MPI_Fint * comm , MPI_Fint * ierr ) {
499
+ MPI_Barrier_fortran_wrapper (comm , ierr );
500
+ }
501
+
502
+ _EXTERN_C_ void mpi_barrier_ (MPI_Fint * comm , MPI_Fint * ierr ) {
503
+ MPI_Barrier_fortran_wrapper (comm , ierr );
504
+ }
505
+
506
+ _EXTERN_C_ void mpi_barrier__ (MPI_Fint * comm , MPI_Fint * ierr ) {
507
+ MPI_Barrier_fortran_wrapper (comm , ierr );
455
508
}
0 commit comments