- Timestamp:
- 2018-11-09T16:35:08+01:00 (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2018/dev_r10164_HPC09_ESIWACE_PREP_MERGE/src/OCE/LBC/lib_mpp.F90
r10180 r10292 83 83 PUBLIC mpp_lbc_north_icb 84 84 PUBLIC mpp_min, mpp_max, mpp_sum, mpp_minloc, mpp_maxloc 85 PUBLIC mpp_ilor 85 86 PUBLIC mpp_max_multiple 86 87 PUBLIC mppscatter, mppgather … … 633 634 ptab = zwork 634 635 END SUBROUTINE mppmax_real 636 !! 637 SUBROUTINE mpp_ilor( ld_switch, ldlast, kcom ) 638 ! WARNING: must be used only once (by ice_dyn_adv_umx) because ll_switch and ireq are SAVE 639 !!---------------------------------------------------------------------- 640 LOGICAL, INTENT(inout), DIMENSION(2) :: ld_switch 641 LOGICAL, INTENT(in ), OPTIONAL :: ldlast 642 INTEGER, INTENT(in ), OPTIONAL :: kcom 643 INTEGER :: ierror, ilocalcomm 644 LOGICAL, SAVE :: ll_switch 645 INTEGER, SAVE :: ireq = -1 646 !!---------------------------------------------------------------------- 647 ilocalcomm = mpi_comm_oce 648 IF( PRESENT(kcom) ) ilocalcomm = kcom 649 650 IF ( ireq /= -1 ) THEN ! get ld_switch(2) from ll_switch (from previous call) 651 CALL mpi_wait(ireq, MPI_STATUS_IGNORE, ierror ) 652 ld_switch(2) = ll_switch 653 ENDIF 654 IF( .NOT. ldlast ) & ! send ll_switch to be received on next call 655 CALL mpi_iallreduce( ld_switch(1), ll_switch, 1, MPI_LOGICAL, mpi_lor, ilocalcomm, ireq, ierror ) 656 657 END SUBROUTINE mpp_ilor 635 658 636 659 … … 1720 1743 END SUBROUTINE mpp_maxloc3d 1721 1744 1745 SUBROUTINE mpp_ilor( ld_switch, ldlast, kcom ) 1746 LOGICAL, INTENT(in ), DIMENSION(2) :: ld_switch 1747 LOGICAL, INTENT(in ), OPTIONAL :: ldlast 1748 INTEGER, INTENT(in ), OPTIONAL :: kcom ! ??? 1749 WRITE(*,*) 'mpp_ilor: You should not have seen this print! error?', ld_switch 1750 END SUBROUTINE mpp_ilor 1751 1722 1752 SUBROUTINE mppstop 1723 1753 STOP ! non MPP case, just stop the run
Note: See TracChangeset
for help on using the changeset viewer.