Ignore:
Timestamp:
2018-11-19T10:41:29+01:00 (22 months ago)
Author:
smasson
Message:

dev_r10164_HPC09_ESIWACE_PREP_MERGE: action 6: find the best mpi domain decomposition, see #2133

File:
1 edited

Legend:

Unmodified
Added
Removed
  • NEMO/branches/2018/dev_r10164_HPC09_ESIWACE_PREP_MERGE/src/OCE/LBC/lib_mpp.F90

    r10314 r10330  
    8686   PUBLIC   mppscatter, mppgather 
    8787   PUBLIC   mpp_ini_znl 
    88    PUBLIC   mppsize 
    8988   PUBLIC   mppsend, mpprecv                          ! needed by TAM and ICB routines 
    9089   PUBLIC   mpp_lnk_bdy_2d, mpp_lnk_bdy_3d, mpp_lnk_bdy_4d 
    91    PUBLIC   mpprank 
    9290    
    9391   !! * Interfaces 
     
    123121   INTEGER, PARAMETER         ::   nprocmax = 2**10   ! maximun dimension (required to be a power of 2) 
    124122 
    125    INTEGER ::   mppsize        ! number of process 
    126    INTEGER ::   mpprank        ! process number  [ 0 - size-1 ] 
     123   INTEGER, PUBLIC ::   mppsize        ! number of process 
     124   INTEGER, PUBLIC ::   mpprank        ! process number  [ 0 - size-1 ] 
    127125!$AGRIF_DO_NOT_TREAT 
    128126   INTEGER, PUBLIC ::   mpi_comm_oce   ! opa local communicator 
     
    220218      WRITE(ldtxt(ii),*) '      size exported buffer   nn_buffer   = ', nn_buffer,' bytes';   ii = ii + 1 
    221219      ! 
    222 #if defined key_agrif 
    223       IF( .NOT. Agrif_Root() ) THEN 
    224          jpni  = Agrif_Parent(jpni ) 
    225          jpnj  = Agrif_Parent(jpnj ) 
    226          jpnij = Agrif_Parent(jpnij) 
    227       ENDIF 
    228 #endif 
    229       ! 
    230       IF( jpnij < 1 ) THEN         ! If jpnij is not specified in namelist then we calculate it 
    231          jpnij = jpni * jpnj       ! this means there will be no land cutting out. 
    232       ENDIF 
    233  
    234220      IF( jpni < 1 .OR. jpnj < 1  ) THEN 
    235221         WRITE(ldtxt(ii),*) '      jpni, jpnj and jpnij will be calculated automatically' ;   ii = ii + 1 
     
    237223         WRITE(ldtxt(ii),*) '      processor grid extent in i         jpni = ',jpni       ;   ii = ii + 1 
    238224         WRITE(ldtxt(ii),*) '      processor grid extent in j         jpnj = ',jpnj       ;   ii = ii + 1 
    239          WRITE(ldtxt(ii),*) '      number of local domains           jpnij = ',jpnij      ;   ii = ii + 1 
    240225      ENDIF 
    241226 
     
    765750 
    766751 
    767    SUBROUTINE mppstop 
     752   SUBROUTINE mppstop( ldfinal )  
    768753      !!---------------------------------------------------------------------- 
    769754      !!                  ***  routine mppstop  *** 
     
    772757      !! 
    773758      !!---------------------------------------------------------------------- 
     759      LOGICAL, OPTIONAL, INTENT(in) :: ldfinal    ! source process number 
     760      LOGICAL ::   llfinal 
    774761      INTEGER ::   info 
    775762      !!---------------------------------------------------------------------- 
     
    777764      CALL mppsync 
    778765      CALL mpi_finalize( info ) 
     766      llfinal = .FALSE. 
     767      IF( PRESENT(ldfinal) ) llfinal = ldfinal 
     768      IF( .NOT. llfinal ) STOP 123456 
    779769      ! 
    780770   END SUBROUTINE mppstop 
     
    16821672      IF(lwp) THEN 
    16831673         WRITE(numout,cform_err) 
    1684          IF( PRESENT(cd1 ) )   WRITE(numout,*) cd1 
    1685          IF( PRESENT(cd2 ) )   WRITE(numout,*) cd2 
    1686          IF( PRESENT(cd3 ) )   WRITE(numout,*) cd3 
    1687          IF( PRESENT(cd4 ) )   WRITE(numout,*) cd4 
    1688          IF( PRESENT(cd5 ) )   WRITE(numout,*) cd5 
    1689          IF( PRESENT(cd6 ) )   WRITE(numout,*) cd6 
    1690          IF( PRESENT(cd7 ) )   WRITE(numout,*) cd7 
    1691          IF( PRESENT(cd8 ) )   WRITE(numout,*) cd8 
    1692          IF( PRESENT(cd9 ) )   WRITE(numout,*) cd9 
    1693          IF( PRESENT(cd10) )   WRITE(numout,*) cd10 
     1674         IF( PRESENT(cd1 ) )   WRITE(numout,*) TRIM(cd1) 
     1675         IF( PRESENT(cd2 ) )   WRITE(numout,*) TRIM(cd2) 
     1676         IF( PRESENT(cd3 ) )   WRITE(numout,*) TRIM(cd3) 
     1677         IF( PRESENT(cd4 ) )   WRITE(numout,*) TRIM(cd4) 
     1678         IF( PRESENT(cd5 ) )   WRITE(numout,*) TRIM(cd5) 
     1679         IF( PRESENT(cd6 ) )   WRITE(numout,*) TRIM(cd6) 
     1680         IF( PRESENT(cd7 ) )   WRITE(numout,*) TRIM(cd7) 
     1681         IF( PRESENT(cd8 ) )   WRITE(numout,*) TRIM(cd8) 
     1682         IF( PRESENT(cd9 ) )   WRITE(numout,*) TRIM(cd9) 
     1683         IF( PRESENT(cd10) )   WRITE(numout,*) TRIM(cd10) 
    16941684      ENDIF 
    16951685                               CALL FLUSH(numout    ) 
     
    17211711      IF(lwp) THEN 
    17221712         WRITE(numout,cform_war) 
    1723          IF( PRESENT(cd1 ) ) WRITE(numout,*) cd1 
    1724          IF( PRESENT(cd2 ) ) WRITE(numout,*) cd2 
    1725          IF( PRESENT(cd3 ) ) WRITE(numout,*) cd3 
    1726          IF( PRESENT(cd4 ) ) WRITE(numout,*) cd4 
    1727          IF( PRESENT(cd5 ) ) WRITE(numout,*) cd5 
    1728          IF( PRESENT(cd6 ) ) WRITE(numout,*) cd6 
    1729          IF( PRESENT(cd7 ) ) WRITE(numout,*) cd7 
    1730          IF( PRESENT(cd8 ) ) WRITE(numout,*) cd8 
    1731          IF( PRESENT(cd9 ) ) WRITE(numout,*) cd9 
    1732          IF( PRESENT(cd10) ) WRITE(numout,*) cd10 
     1713         IF( PRESENT(cd1 ) ) WRITE(numout,*) TRIM(cd1) 
     1714         IF( PRESENT(cd2 ) ) WRITE(numout,*) TRIM(cd2) 
     1715         IF( PRESENT(cd3 ) ) WRITE(numout,*) TRIM(cd3) 
     1716         IF( PRESENT(cd4 ) ) WRITE(numout,*) TRIM(cd4) 
     1717         IF( PRESENT(cd5 ) ) WRITE(numout,*) TRIM(cd5) 
     1718         IF( PRESENT(cd6 ) ) WRITE(numout,*) TRIM(cd6) 
     1719         IF( PRESENT(cd7 ) ) WRITE(numout,*) TRIM(cd7) 
     1720         IF( PRESENT(cd8 ) ) WRITE(numout,*) TRIM(cd8) 
     1721         IF( PRESENT(cd9 ) ) WRITE(numout,*) TRIM(cd9) 
     1722         IF( PRESENT(cd10) ) WRITE(numout,*) TRIM(cd10) 
    17331723      ENDIF 
    17341724      CALL FLUSH(numout) 
     
    17711761      knum=get_unit() 
    17721762#endif 
     1763      IF( TRIM(cdfile) == '/dev/null' )   clfile = TRIM(cdfile)   ! force the use of /dev/null 
    17731764      ! 
    17741765      iost=0 
     
    17781769         OPEN( UNIT=knum, FILE=clfile, FORM=cdform, ACCESS=cdacce, STATUS=cdstat             , ERR=100, IOSTAT=iost ) 
    17791770      ENDIF 
     1771      IF( iost /= 0 .AND. TRIM(clfile) == '/dev/null' ) & 
     1772         &  OPEN(UNIT=knum,FILE='NUL', FORM=cdform, ACCESS=cdacce, STATUS=cdstat             , ERR=100, IOSTAT=iost )   ! for windows 
    17801773      IF( iost == 0 ) THEN 
    17811774         IF(ldwp) THEN 
Note: See TracChangeset for help on using the changeset viewer.