MODULE transfert_mod #ifdef CPP_USING_MPI USE transfert_mpi_mod, ONLY : init_transfert, transfert_request=>transfert_request_mpi, req_i1,req_e1_vect, & req_e1_scal, req_i0, req_e0_vect, req_e0_scal, request_add_point, & create_request, gather_field, scatter_field, & t_message, init_message=>init_message_mpi, & transfert_message=>transfert_message_mpi, & send_message=>send_message_mpi, & test_message=>test_message_mpi, & wait_message=>wait_message_mpi,barrier,bcast_mpi #else USE transfert_mpi_mod, ONLY : init_transfert, transfert_request=>transfert_request_seq, req_i1,req_e1_vect, & req_e1_scal,req_i0, req_e0_vect, req_e0_scal, & request_add_point, create_request, gather_field, & scatter_field, t_message, & init_message=>init_message_seq, & transfert_message=>transfert_message_seq, & send_message=>send_message_seq, & test_message=>test_message_seq, & wait_message=>wait_message_seq,barrier, bcast_mpi #endif USE transfert_omp_mod INTERFACE bcast MODULE PROCEDURE bcast_c, & bcast_i,bcast_i1,bcast_i2,bcast_i3,bcast_i4, & bcast_r,bcast_r1,bcast_r2,bcast_r3,bcast_r4, & bcast_l,bcast_l1,bcast_l2,bcast_l3,bcast_l4 END INTERFACE CONTAINS !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !! Definition des Broadcast --> 4D !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !! -- Les chaine de charactère -- !! SUBROUTINE bcast_c(var) IMPLICIT NONE CHARACTER(LEN=*),INTENT(INOUT) :: Var !$OMP MASTER CALL bcast_mpi(Var) !$OMP END MASTER CALL bcast_omp(Var) END SUBROUTINE bcast_c !! -- Les entiers -- !! SUBROUTINE bcast_i(var) IMPLICIT NONE INTEGER,INTENT(INOUT) :: Var !$OMP MASTER CALL bcast_mpi(Var) !$OMP END MASTER CALL bcast_omp(Var) END SUBROUTINE bcast_i SUBROUTINE bcast_i1(var) IMPLICIT NONE INTEGER,INTENT(INOUT) :: Var(:) !$OMP MASTER CALL bcast_mpi(Var) !$OMP END MASTER CALL bcast_omp(Var) END SUBROUTINE bcast_i1 SUBROUTINE bcast_i2(var) IMPLICIT NONE INTEGER,INTENT(INOUT) :: Var(:,:) !$OMP MASTER CALL bcast_mpi(Var) !$OMP END MASTER CALL bcast_omp(Var) END SUBROUTINE bcast_i2 SUBROUTINE bcast_i3(var) IMPLICIT NONE INTEGER,INTENT(INOUT) :: Var(:,:,:) !$OMP MASTER CALL bcast_mpi(Var) !$OMP END MASTER CALL bcast_omp(Var) END SUBROUTINE bcast_i3 SUBROUTINE bcast_i4(var) IMPLICIT NONE INTEGER,INTENT(INOUT) :: Var(:,:,:,:) !$OMP MASTER CALL bcast_mpi(Var) !$OMP END MASTER CALL bcast_omp(Var) END SUBROUTINE bcast_i4 !! -- Les reels -- !! SUBROUTINE bcast_r(var) IMPLICIT NONE REAL,INTENT(INOUT) :: Var !$OMP MASTER CALL bcast_mpi(Var) !$OMP END MASTER CALL bcast_omp(Var) END SUBROUTINE bcast_r SUBROUTINE bcast_r1(var) IMPLICIT NONE REAL,INTENT(INOUT) :: Var(:) !$OMP MASTER CALL bcast_mpi(Var) !$OMP END MASTER CALL bcast_omp(Var) END SUBROUTINE bcast_r1 SUBROUTINE bcast_r2(var) IMPLICIT NONE REAL,INTENT(INOUT) :: Var(:,:) !$OMP MASTER CALL bcast_mpi(Var) !$OMP END MASTER CALL bcast_omp(Var) END SUBROUTINE bcast_r2 SUBROUTINE bcast_r3(var) IMPLICIT NONE REAL,INTENT(INOUT) :: Var(:,:,:) !$OMP MASTER CALL bcast_mpi(Var) !$OMP END MASTER CALL bcast_omp(Var) END SUBROUTINE bcast_r3 SUBROUTINE bcast_r4(var) IMPLICIT NONE REAL,INTENT(INOUT) :: Var(:,:,:,:) !$OMP MASTER CALL bcast_mpi(Var) !$OMP END MASTER CALL bcast_omp(Var) END SUBROUTINE bcast_r4 !! -- Les booleens -- !! SUBROUTINE bcast_l(var) IMPLICIT NONE LOGICAL,INTENT(INOUT) :: Var !$OMP MASTER CALL bcast_mpi(Var) !$OMP END MASTER CALL bcast_omp(Var) END SUBROUTINE bcast_l SUBROUTINE bcast_l1(var) IMPLICIT NONE LOGICAL,INTENT(INOUT) :: Var(:) !$OMP MASTER CALL bcast_mpi(Var) !$OMP END MASTER CALL bcast_omp(Var) END SUBROUTINE bcast_l1 SUBROUTINE bcast_l2(var) IMPLICIT NONE LOGICAL,INTENT(INOUT) :: Var(:,:) !$OMP MASTER CALL bcast_mpi(Var) !$OMP END MASTER CALL bcast_omp(Var) END SUBROUTINE bcast_l2 SUBROUTINE bcast_l3(var) IMPLICIT NONE LOGICAL,INTENT(INOUT) :: Var(:,:,:) !$OMP MASTER CALL bcast_mpi(Var) !$OMP END MASTER CALL bcast_omp(Var) END SUBROUTINE bcast_l3 SUBROUTINE bcast_l4(var) IMPLICIT NONE LOGICAL,INTENT(INOUT) :: Var(:,:,:,:) !$OMP MASTER CALL bcast_mpi(Var) !$OMP END MASTER CALL bcast_omp(Var) END SUBROUTINE bcast_l4 END MODULE transfert_mod