Changeset 10314 for NEMO/branches/2018/dev_r10164_HPC09_ESIWACE_PREP_MERGE/src/OCE/LBC/mpp_allreduce_generic.h90
- Timestamp:
- 2018-11-15T17:27:18+01:00 (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2018/dev_r10164_HPC09_ESIWACE_PREP_MERGE/src/OCE/LBC/mpp_allreduce_generic.h90
r10300 r10314 42 42 INTEGER, OPTIONAL, INTENT(in ) :: kdim ! optional pointer dimension 43 43 INTEGER, OPTIONAL, INTENT(in ) :: kcom ! optional communicator 44 #if defined key_mpp_mpi 44 45 ! 45 46 INTEGER :: ipi, ii, ierr 46 47 INTEGER :: ierror, ilocalcomm 47 48 TMP_TYPE(:) 49 !!----------------------------------------------------------------------- 50 ! 51 IF( narea == 1 .AND. numcom == -1 ) CALL mpp_report( cdname, ld_glb = .TRUE. ) 48 52 ! 49 53 ilocalcomm = mpi_comm_oce … … 55 59 ipi = I_SIZE(ptab) ! 1st dimension 56 60 ENDIF 57 61 ! 62 ALLOCATE(work(ipi)) 58 63 IF( ln_timing ) CALL tic_tac(.TRUE., ld_global = .TRUE.) 59 ALLOCATE(work(ipi))60 64 CALL mpi_allreduce( ARRAY_IN(:), work, ipi, MPI_TYPE, MPI_OPERATION, ilocalcomm, ierror ) 65 IF( ln_timing ) CALL tic_tac(.FALSE., ld_global = .TRUE.) 61 66 DO ii = 1, ipi 62 67 ARRAY_IN(ii) = work(ii) 63 68 ENDDO 64 69 DEALLOCATE(work) 65 IF( ln_timing ) CALL tic_tac(.FALSE., ld_global = .TRUE.) 66 ! 67 IF( narea == 1 .AND. ncom_stp == nit000+5 ) THEN 68 IF( .NOT. ALLOCATED( crname_glb) ) THEN 69 ALLOCATE( crname_glb(2000), STAT=ierr ) 70 IF( ierr /= 0 ) CALL ctl_stop( 'STOP', 'allreduce_generic, cannot allocate crname' ) 71 ENDIF 72 n_sequence_glb = n_sequence_glb + 1 73 IF( n_sequence_glb > 2000 ) CALL ctl_stop( 'STOP', 'allreduce_generic, increase crname_glb first dimension' ) 74 crname_glb(n_sequence_glb) = cdname ! keep the name of the calling routine 75 ENDIF 70 #else 71 WRITE(*,*) 'ROUTINE_ALLREDUCE: You should not have seen this print! error?' 72 #endif 76 73 77 74 END SUBROUTINE ROUTINE_ALLREDUCE
Note: See TracChangeset
for help on using the changeset viewer.