Changeset 963 for codes/icosagcm/trunk/src/parallel/transfert.F90
- Timestamp:
- 07/25/19 11:36:36 (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
codes/icosagcm/trunk/src/parallel/transfert.F90
r711 r963 1 MODULE transfert_mod 2 1 module transfert_mod 3 2 #ifdef CPP_USING_MPI 4 USE transfert_mpi_mod, ONLY : init_transfert, transfert_request=>transfert_request_mpi, req_i1,req_e1_vect, & 5 req_e1_scal, req_z1_scal, req_i0, req_e0_vect, req_e0_scal, request_add_point, & 6 create_request, gather_field, scatter_field, & 7 t_message, init_message=>init_message_mpi, & 8 transfert_message=>transfert_message_mpi, & 9 send_message=>send_message_mpi, & 10 test_message=>test_message_mpi, & 11 wait_message=>wait_message_mpi,barrier,bcast_mpi 12 #else 13 USE transfert_mpi_mod, ONLY : init_transfert, transfert_request=>transfert_request_seq, req_i1,req_e1_vect, & 14 req_e1_scal, req_z1_scal, req_i0, req_e0_vect, req_e0_scal, & 15 request_add_point, create_request, gather_field, & 16 scatter_field, t_message, & 17 init_message=>init_message_seq, & 18 transfert_message=>transfert_message_seq, & 19 send_message=>send_message_seq, & 20 test_message=>test_message_seq, & 21 wait_message=>wait_message_seq,barrier, bcast_mpi 3 4 #if defined(CPP_USING_MPI_LEGACY) 5 #warning("Using legacy transfert_mpi (not default)") 6 use transfert_mpi_legacy_mod, only : t_message, t_request, & 7 req_i1, req_e1_scal, req_e1_vect, & 8 req_i0, req_e0_scal, req_e0_vect, & 9 req_z1_scal, & 10 init_transfert, & 11 init_message => init_message_mpi, & 12 finalize_message => finalize_message_mpi, & 13 send_message => send_message_mpi, & 14 wait_message => wait_message_mpi, & 15 test_message => test_message_mpi 16 #else 17 ! transfert_mpi using manual pack/unpack (default) 18 use transfert_mpi_mod, only : t_message, t_request, & 19 req_i1, req_e1_scal, req_e1_vect, & 20 req_i0, req_e0_scal, req_e0_vect, & 21 req_z1_scal, & 22 init_transfert, & 23 init_message, & 24 finalize_message, & 25 send_message, & 26 wait_message, & 27 test_message 22 28 #endif 23 24 USE transfert_omp_mod 25 26 INTERFACE bcast 27 MODULE PROCEDURE bcast_c, & 28 bcast_i,bcast_i1,bcast_i2,bcast_i3,bcast_i4, & 29 bcast_r,bcast_r1,bcast_r2,bcast_r3,bcast_r4, & 30 bcast_l,bcast_l1,bcast_l2,bcast_l3,bcast_l4 31 32 END INTERFACE 33 34 35 CONTAINS 36 29 #else 30 #warning("Using transfert_seq (unmaintained)") 31 use transfert_mpi_legacy_mod, only : t_message, t_request, & 32 req_i1, req_e1_scal, req_e1_vect, & 33 req_i0, req_e0_scal, req_e0_vect, & 34 req_z1_scal, & 35 init_transfert, & 36 init_message=>init_message_seq, & 37 finalize_message => finalize_message_seq, & 38 send_message => send_message_seq, & 39 wait_message => wait_message_seq, & 40 test_message => test_message_seq 41 #endif 42 use transfert_mpi_collectives_mod, only : gather_field, scatter_field, bcast_field, bcast_mpi 43 use transfert_omp_mod, only : bcast_omp 44 45 implicit none 46 private 47 public :: t_message, t_request, & 48 req_i1, req_e1_scal, req_e1_vect, & 49 req_i0, req_e0_scal, req_e0_vect, & 50 !req_z1_scal, & 51 init_transfert, & 52 init_message, & 53 finalize_message, & 54 send_message, & 55 wait_message, & 56 test_message, & 57 transfert_request, & 58 transfert_message, & 59 gather_field, scatter_field, bcast_field, bcast, bcast_omp 60 61 interface bcast 62 module procedure bcast_c, & 63 bcast_i,bcast_i1,bcast_i2,bcast_i3,bcast_i4, & 64 bcast_r,bcast_r1,bcast_r2,bcast_r3,bcast_r4, & 65 bcast_l,bcast_l1,bcast_l2,bcast_l3,bcast_l4 66 end interface 67 68 contains 69 subroutine transfert_message(field, message) 70 use field_mod, only : t_field 71 type(t_field), pointer :: field(:) 72 type(t_message) :: message 73 74 call send_message(field, message) 75 call wait_message(message) 76 end subroutine 77 78 subroutine transfert_request(field, request) 79 use field_mod, only : t_field 80 type(t_field),pointer :: field(:) 81 type(t_request),pointer :: request(:) 82 type(t_message), save :: message ! Save because shared between threads 83 84 call init_message(field, request, message) 85 call transfert_message(field, message) 86 call finalize_message(message) 87 end subroutine 37 88 38 89 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! … … 40 91 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 41 92 42 !! -- Les chaine de charact ère -- !!93 !! -- Les chaine de charactï¿œre -- !! 43 94 44 95 SUBROUTINE bcast_c(var)
Note: See TracChangeset
for help on using the changeset viewer.