Changeset 11398 for NEMO/branches/2019/dev_r10984_HPC-13_IRRMANN_BDY_optimization/src/OCE/LBC/mppini.F90
- Timestamp:
- 2019-08-02T18:43:29+02:00 (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2019/dev_r10984_HPC-13_IRRMANN_BDY_optimization/src/OCE/LBC/mppini.F90
r11317 r11398 154 154 LOGICAL :: llbest, llauto 155 155 LOGICAL :: llwrtlay 156 LOGICAL :: ln_listonly 156 157 INTEGER, ALLOCATABLE, DIMENSION(:) :: iin, ii_nono, ii_noea ! 1D workspace 157 158 INTEGER, ALLOCATABLE, DIMENSION(:) :: ijn, ii_noso, ii_nowe ! - - … … 168 169 & rn_ice_tem, rn_ice_sal, rn_ice_age, & 169 170 & ln_vol, nn_volctl, nn_rimwidth 170 NAMELIST/nammpp/ jpni, jpnj, ln_nnogather 171 NAMELIST/nammpp/ jpni, jpnj, ln_nnogather, ln_listonly 171 172 !!---------------------------------------------------------------------- 172 173 ! … … 206 207 IF( ln_read_cfg ) CALL iom_open( cn_domcfg, numbot ) 207 208 IF( ln_bdy .AND. ln_mask_file ) CALL iom_open( cn_mask_file, numbdy ) 209 ! 210 IF( ln_listonly ) CALL mpp_init_bestpartition( MAX(mppsize,jpni*jpnj), ldlist = .TRUE. ) ! must be done by all core 208 211 ! 209 212 ! 1. Dimension arrays for subdomains … … 268 271 CALL ctl_stop( ctmp1, ctmp2, ctmp3, ' ', ctmp4, ' ' ) 269 272 CALL mpp_init_bestpartition( mppsize, ldlist = .TRUE. ) ! must be done by all core 270 CALL ctl_stop( 'STOP' )271 273 ENDIF 272 274 … … 293 295 ENDIF 294 296 CALL mpp_init_bestpartition( mppsize, ldlist = .TRUE. ) ! must be done by all core 295 CALL ctl_stop( 'STOP' )296 297 ENDIF 297 298 … … 843 844 INTEGER :: isziref, iszjref 844 845 INTEGER :: inbij, iszij 845 INTEGER :: inbimax, inbjmax, inbijmax 846 INTEGER :: inbimax, inbjmax, inbijmax, inbijold 846 847 INTEGER :: isz0, isz1 847 848 INTEGER, DIMENSION( :), ALLOCATABLE :: indexok … … 968 969 DEALLOCATE( indexok, inbi1, inbj1, iszi1, iszj1 ) 969 970 970 IF( llist ) THEN ! we print about 21 best partitions971 IF( llist ) THEN 971 972 IF(lwp) THEN 972 973 WRITE(numout,*) 973 WRITE(numout, 974 WRITE(numout, '(a,i5,a)') ' list of the best partitions around ', knbij, ' mpi processes'975 WRITE(numout, *) ' --------------------------------------', '-----', '--------------'974 WRITE(numout,*) ' For your information:' 975 WRITE(numout,*) ' list of the best partitions including land supression' 976 WRITE(numout,*) ' -----------------------------------------------------' 976 977 WRITE(numout,*) 977 978 END IF 978 iitarget = MINLOC( inbi0(:)*inbj0(:), mask = inbi0(:)*inbj0(:) >= knbij, dim = 1 ) 979 DO ji = MAX(1,iitarget-10), MIN(isz0,iitarget+10) 979 ji = isz0 ! initialization with the largest value 980 ALLOCATE( llisoce(inbi0(ji), inbj0(ji)) ) 981 CALL mpp_init_isoce( inbi0(ji), inbj0(ji), llisoce ) ! Warning: must be call by all cores (call mpp_sum) 982 inbijold = COUNT(llisoce) 983 DEALLOCATE( llisoce ) 984 DO ji =isz0-1,1,-1 980 985 ALLOCATE( llisoce(inbi0(ji), inbj0(ji)) ) 981 986 CALL mpp_init_isoce( inbi0(ji), inbj0(ji), llisoce ) ! Warning: must be call by all cores (call mpp_sum) 982 987 inbij = COUNT(llisoce) 983 988 DEALLOCATE( llisoce ) 984 IF(lwp) WRITE(numout,'(a, i5, a, i5, a, i4, a, i4, a, i9, a, i5, a, i5, a)') & 985 & 'nb_cores ' , inbij,' oce + ', inbi0(ji)*inbj0(ji) - inbij & 986 & , ' land ( ', inbi0(ji),' x ', inbj0(ji), & 987 & ' ), nb_points ', iszi0(ji)*iszj0(ji),' ( ', iszi0(ji),' x ', iszj0(ji),' )' 989 IF(lwp .AND. inbij < inbijold) THEN 990 WRITE(numout,'(a, i6, a, i6, a, f4.1, a, i9, a, i6, a, i6, a)') & 991 & 'nb_cores oce: ', inbij, ', land domains excluded: ', inbi0(ji)*inbj0(ji) - inbij, & 992 & ' (', REAL(inbi0(ji)*inbj0(ji) - inbij,wp) / REAL(inbi0(ji)*inbj0(ji),wp) *100., & 993 & '%), largest oce domain: ', iszi0(ji)*iszj0(ji), ' ( ', iszi0(ji),' x ', iszj0(ji), ' )' 994 inbijold = inbij 995 END IF 988 996 END DO 989 997 DEALLOCATE( inbi0, inbj0, iszi0, iszj0 ) 990 RETURN 998 IF(lwp) THEN 999 WRITE(numout,*) 1000 WRITE(numout,*) ' -----------------------------------------------------------' 1001 ENDIF 1002 CALL mppsync 1003 CALL mppstop( ld_abort = .TRUE. ) 991 1004 ENDIF 992 1005
Note: See TracChangeset
for help on using the changeset viewer.