Changeset 14229 for NEMO/trunk/src
- Timestamp:
- 2020-12-20T13:45:55+01:00 (3 years ago)
- Location:
- NEMO/trunk/src
- Files:
-
- 21 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/trunk/src/NST/agrif_user.F90
r14218 r14229 889 889 890 890 891 # if defined key_mpp_mpi891 # if ! defined key_mpi_off 892 892 SUBROUTINE Agrif_InvLoc( indloc, nprocloc, i, indglob ) 893 893 !!---------------------------------------------------------------------- -
NEMO/trunk/src/OCE/DIA/diaptr.F90
r14215 r14229 578 578 REAL(wp), DIMENSION(A1Dj(nn_hls),nbasin), INTENT(in) :: pva ! 579 579 INTEGER :: jj 580 #if defined key_mpp_mpi580 #if ! defined key_mpi_off 581 581 INTEGER, DIMENSION(1) :: ish1d 582 582 INTEGER, DIMENSION(2) :: ish2d … … 588 588 END DO 589 589 590 #if defined key_mpp_mpi590 #if ! defined key_mpi_off 591 591 IF( ntile == 0 .OR. ntile == nijtile ) THEN 592 592 ish1d(1) = jpj*nbasin … … 614 614 REAL(wp), DIMENSION(A1Dj(nn_hls),jpk,nbasin), INTENT(in) :: pva ! 615 615 INTEGER :: jj, jk 616 #if defined key_mpp_mpi616 #if ! defined key_mpi_off 617 617 INTEGER, DIMENSION(1) :: ish1d 618 618 INTEGER, DIMENSION(3) :: ish3d … … 626 626 END DO 627 627 628 #if defined key_mpp_mpi628 #if ! defined key_mpi_off 629 629 IF( ntile == 0 .OR. ntile == nijtile ) THEN 630 630 ish1d(1) = jpj*jpk*nbasin -
NEMO/trunk/src/OCE/FLO/floblk.F90
r13286 r14229 105 105 iloop = 0 106 106 222 DO jfl = 1, jpnfl 107 # if defined key_mpp_mpi107 # if ! defined key_mpi_off 108 108 IF( iil(jfl) >= mig(Nis0) .AND. iil(jfl) <= mig(Nie0) .AND. & 109 109 ijl(jfl) >= mjg(Njs0) .AND. ijl(jfl) <= mjg(Nje0) ) THEN … … 329 329 ! reinitialisation of the age of FLOAT 330 330 zagefl(jfl) = zagenewfl(jfl) 331 # if defined key_mpp_mpi331 # if ! defined key_mpi_off 332 332 ELSE 333 333 ! we put zgifl, zgjfl, zgkfl, zagefl -
NEMO/trunk/src/OCE/FLO/flodom.F90
r13286 r14229 154 154 ivtest(jfl) = 0 155 155 ikmfl(jfl) = 0 156 # if defined key_mpp_mpi156 # if ! defined key_mpi_off 157 157 DO ji = MAX(Nis0,2), Nie0 158 158 DO jj = MAX(Njs0,2), Nje0 ! NO vector opt. -
NEMO/trunk/src/OCE/ICB/icblbc.F90
r13226 r14229 36 36 PRIVATE 37 37 38 #if defined key_mpp_mpi38 #if ! defined key_mpi_off 39 39 40 40 !$AGRIF_DO_NOT_TREAT … … 145 145 END SUBROUTINE icb_lbc_nfld 146 146 147 #if defined key_mpp_mpi147 #if ! defined key_mpi_off 148 148 !!---------------------------------------------------------------------- 149 !! 'key_mpp_mpi'MPI massively parallel processing library149 !! MPI massively parallel processing library 150 150 !!---------------------------------------------------------------------- 151 151 -
NEMO/trunk/src/OCE/LBC/lbclnk.F90
r14072 r14229 66 66 PUBLIC lbc_lnk_nc_multi ! modified ocean/ice lateral boundary conditions (MPI3 version) 67 67 68 #if defined key_mpp_mpi68 #if ! defined key_mpi_off 69 69 !$AGRIF_DO_NOT_TREAT 70 70 INCLUDE 'mpif.h' -
NEMO/trunk/src/OCE/LBC/lib_mpp.F90
r14072 r14229 73 73 PUBLIC mpp_bcast_nml 74 74 PUBLIC tic_tac 75 #if ! defined key_mpp_mpi75 #if defined key_mpp_off 76 76 PUBLIC MPI_wait 77 77 PUBLIC MPI_Wtime … … 110 110 !! MPI variable definition !! 111 111 !! ========================= !! 112 #if defined key_mpp_mpi112 #if ! defined key_mpi_off 113 113 !$AGRIF_DO_NOT_TREAT 114 114 INCLUDE 'mpif.h' … … 209 209 LOGICAL :: llmpi_init 210 210 !!---------------------------------------------------------------------- 211 #if defined key_mpp_mpi211 #if ! defined key_mpi_off 212 212 ! 213 213 CALL mpi_initialized ( llmpi_init, ierr ) … … 271 271 !!---------------------------------------------------------------------- 272 272 ! 273 #if defined key_mpp_mpi273 #if ! defined key_mpi_off 274 274 IF (wp == dp) THEN 275 275 mpi_working_type = mpi_double_precision … … 299 299 !!---------------------------------------------------------------------- 300 300 ! 301 #if defined key_mpp_mpi301 #if ! defined key_mpi_off 302 302 CALL mpi_isend( pmess, kbytes, mpi_double_precision, kdest , ktyp, mpi_comm_oce, md_req, iflag ) 303 303 #endif … … 322 322 !!---------------------------------------------------------------------- 323 323 ! 324 #if defined key_mpp_mpi324 #if ! defined key_mpi_off 325 325 CALL mpi_isend( pmess, kbytes, mpi_real, kdest , ktyp, mpi_comm_oce, md_req, iflag ) 326 326 #endif … … 347 347 !!---------------------------------------------------------------------- 348 348 ! 349 #if defined key_mpp_mpi349 #if ! defined key_mpi_off 350 350 ! If a specific process number has been passed to the receive call, 351 351 ! use that one. Default is to use mpi_any_source … … 380 380 !!---------------------------------------------------------------------- 381 381 ! 382 #if defined key_mpp_mpi382 #if ! defined key_mpi_off 383 383 ! If a specific process number has been passed to the receive call, 384 384 ! use that one. Default is to use mpi_any_source … … 409 409 !!---------------------------------------------------------------------- 410 410 ! 411 #if defined key_mpp_mpi411 #if ! defined key_mpi_off 412 412 ! If a specific process number has been passed to the receive call, 413 413 ! use that one. Default is to use mpi_any_source … … 437 437 ! 438 438 itaille = jpi * jpj 439 #if defined key_mpp_mpi439 #if ! defined key_mpi_off 440 440 CALL mpi_gather( ptab, itaille, mpi_double_precision, pio, itaille , & 441 441 & mpi_double_precision, kp , mpi_comm_oce, ierror ) … … 464 464 itaille = jpi * jpj 465 465 ! 466 #if defined key_mpp_mpi466 #if ! defined key_mpi_off 467 467 CALL mpi_scatter( pio, itaille, mpi_double_precision, ptab, itaille , & 468 468 & mpi_double_precision, kp , mpi_comm_oce, ierror ) … … 493 493 COMPLEX(dp), ALLOCATABLE, DIMENSION(:) :: ytmp 494 494 !!---------------------------------------------------------------------- 495 #if defined key_mpp_mpi495 #if ! defined key_mpi_off 496 496 ilocalcomm = mpi_comm_oce 497 497 IF( PRESENT(kcom) ) ilocalcomm = kcom … … 568 568 !!---------------------------------------------------------------------- 569 569 570 #if defined key_mpp_mpi570 #if ! defined key_mpi_off 571 571 if( wp == dp ) then 572 572 MPI_TYPE = MPI_DOUBLE_PRECISION … … 640 640 INTEGER :: ierr 641 641 !!---------------------------------------------------------------------- 642 #if defined key_mpp_mpi642 #if ! defined key_mpi_off 643 643 IF( ln_timing ) CALL tic_tac( .TRUE., ld_global = .TRUE.) 644 644 ! test on ndelayid(kid) useless as mpi_wait return immediatly if the request handle is MPI_REQUEST_NULL … … 662 662 !!---------------------------------------------------------------------- 663 663 ! 664 #if defined key_mpp_mpi664 #if ! defined key_mpi_off 665 665 call MPI_BCAST(kleng, 1, MPI_INT, 0, mpi_comm_oce, iflag) 666 666 call MPI_BARRIER(mpi_comm_oce, iflag) … … 928 928 !!----------------------------------------------------------------------- 929 929 ! 930 #if defined key_mpp_mpi930 #if ! defined key_mpi_off 931 931 CALL mpi_barrier( mpi_comm_oce, ierror ) 932 932 #endif … … 949 949 IF( PRESENT(ld_abort) ) ll_abort = ld_abort 950 950 ! 951 #if defined key_mpp_mpi951 #if ! defined key_mpi_off 952 952 IF(ll_abort) THEN 953 953 CALL mpi_abort( MPI_COMM_WORLD ) … … 969 969 !!---------------------------------------------------------------------- 970 970 ! 971 #if defined key_mpp_mpi971 #if ! defined key_mpi_off 972 972 CALL MPI_COMM_FREE(kcom, ierr) 973 973 #endif … … 1001 1001 INTEGER, ALLOCATABLE, DIMENSION(:) :: kwork 1002 1002 !!---------------------------------------------------------------------- 1003 #if defined key_mpp_mpi1003 #if ! defined key_mpi_off 1004 1004 !-$$ WRITE (numout,*) 'mpp_ini_znl ', nproc, ' - ngrp_world : ', ngrp_world 1005 1005 !-$$ WRITE (numout,*) 'mpp_ini_znl ', nproc, ' - mpi_comm_world : ', mpi_comm_world … … 1094 1094 LOGICAL, PARAMETER :: ireord = .FALSE. 1095 1095 1096 #if defined key_mpp_mpi1096 #if ! defined key_mpi_off 1097 1097 1098 1098 ideg = 0 … … 1248 1248 !!---------------------------------------------------------------------- 1249 1249 ! 1250 #if defined key_mpp_mpi1250 #if ! defined key_mpi_off 1251 1251 njmppmax = MAXVAL( njmppt ) 1252 1252 ! … … 1330 1330 INTEGER :: ji, jj, jk, jh, jf, jcount ! dummy loop indices 1331 1331 !!---------------------------------------------------------------------- 1332 #if defined key_mpp_mpi1332 #if ! defined key_mpi_off 1333 1333 ! 1334 1334 ll_lbc = .FALSE. … … 1451 1451 REAL(dp), SAVE :: tic_ct = 0._dp 1452 1452 INTEGER :: ii 1453 #if defined key_mpp_mpi1453 #if ! defined key_mpi_off 1454 1454 1455 1455 IF( ncom_stp <= nit000 ) RETURN … … 1471 1471 END SUBROUTINE tic_tac 1472 1472 1473 #if ! defined key_mpp_mpi1473 #if defined key_mpi_off 1474 1474 SUBROUTINE mpi_wait(request, status, ierror) 1475 1475 INTEGER , INTENT(in ) :: request … … 1792 1792 !write(*,'(32A)') cdnambuff 1793 1793 ENDIF 1794 #if defined key_mpp_mpi1794 #if ! defined key_mpi_off 1795 1795 CALL mpp_bcast_nml( cdnambuff, itot ) 1796 1796 #endif -
NEMO/trunk/src/OCE/LBC/mpp_allreduce_generic.h90
r13226 r14229 48 48 INTEGER, OPTIONAL, INTENT(in ) :: kdim ! optional pointer dimension 49 49 INTEGER, OPTIONAL, INTENT(in ) :: kcom ! optional communicator 50 #if defined key_mpp_mpi50 #if ! defined key_mpi_off 51 51 ! 52 52 INTEGER :: ipi, ii, ierr -
NEMO/trunk/src/OCE/LBC/mpp_lbc_north_icb_generic.h90
r13438 r14229 42 42 REAL(PRECISION), DIMENSION(:,:,:), ALLOCATABLE :: znorthgloio_e 43 43 !!---------------------------------------------------------------------- 44 #if defined key_mpp_mpi44 #if ! defined key_mpi_off 45 45 ! 46 46 ipj=4 … … 67 67 ! 68 68 IF( ln_timing ) CALL tic_tac(.TRUE.) 69 #if defined key_mpp_mpi69 #if ! defined key_mpi_off 70 70 CALL MPI_ALLGATHER( znorthloc_e(1,1-kextj) , itaille, MPI_TYPE, & 71 71 & znorthgloio_e(1,1-kextj,1), itaille, MPI_TYPE, & -
NEMO/trunk/src/OCE/LBC/mpp_loc_generic.h90
r13458 r14229 2 2 # if defined SINGLE_PRECISION 3 3 # define ARRAY_TYPE(i,j,k) REAL(sp) , INTENT(in ) :: ARRAY_IN(i,j,k) 4 #if defined key_mpp_mpi4 #if ! defined key_mpi_off 5 5 # define MPI_TYPE MPI_2REAL 6 6 #endif … … 8 8 # else 9 9 # define ARRAY_TYPE(i,j,k) REAL(dp) , INTENT(in ) :: ARRAY_IN(i,j,k) 10 #if defined key_mpp_mpi10 #if ! defined key_mpi_off 11 11 # define MPI_TYPE MPI_2DOUBLE_PRECISION 12 12 #endif … … 95 95 zain(2,:) = REAL(index0, PRECISION) 96 96 ! 97 #if defined key_mpp_mpi97 #if ! defined key_mpi_off 98 98 IF( ln_timing ) CALL tic_tac(.TRUE., ld_global = .TRUE.) 99 99 CALL MPI_ALLREDUCE( zain, zaout, 1, MPI_TYPE, MPI_OPERATION ,MPI_COMM_OCE, ierror) … … 131 131 #undef MASK_IN 132 132 #undef K_SIZE 133 #if defined key_mpp_mpi133 #if ! defined key_mpi_off 134 134 # undef MPI_TYPE 135 135 #endif -
NEMO/trunk/src/OCE/LBC/mpp_nfd_generic.h90
r13438 r14229 317 317 ! start waiting time measurement 318 318 IF( ln_timing ) CALL tic_tac(.TRUE.) 319 #if defined key_mpp_mpi319 #if ! defined key_mpi_off 320 320 CALL MPI_ALLGATHER( znorthloc, ibuffsize, MPI_TYPE, znorthglo, ibuffsize, MPI_TYPE, ncomm_north, ierr ) 321 321 #endif -
NEMO/trunk/src/OCE/LBC/mppini.F90
r14072 r14229 47 47 CONTAINS 48 48 49 #if ! defined key_mpp_mpi49 #if defined key_mpi_off 50 50 !!---------------------------------------------------------------------- 51 51 !! Default option : shared memory computing … … 107 107 #else 108 108 !!---------------------------------------------------------------------- 109 !! 'key_mpp_mpi'MPI massively parallel processing109 !! MPI massively parallel processing 110 110 !!---------------------------------------------------------------------- 111 111 -
NEMO/trunk/src/OCE/OBS/mpp_map.F90
r13286 r14229 13 13 USE par_oce , ONLY : jpi, jpj, Nis0, Nie0, Njs0, Nje0 ! Ocean parameters 14 14 USE dom_oce , ONLY : mig, mjg, narea ! Ocean space and time domain variables 15 #if defined key_mpp_mpi15 #if ! defined key_mpi_off 16 16 USE lib_mpp , ONLY : mpi_comm_oce ! MPP library 17 17 #endif … … 45 45 !!---------------------------------------------------------------------- 46 46 INTEGER, DIMENSION(:,:), ALLOCATABLE :: imppmap ! 47 #if defined key_mpp_mpi47 #if ! defined key_mpi_off 48 48 INTEGER :: ierr 49 49 … … 69 69 ! Get global data 70 70 71 #if defined key_mpp_mpi71 #if ! defined key_mpi_off 72 72 73 73 ! Call the MPI library to find the max across processors -
NEMO/trunk/src/OCE/OBS/obs_mpp.F90
r10068 r14229 21 21 USE mpp_map, ONLY : mppmap 22 22 USE in_out_manager 23 #if defined key_mpp_mpi23 #if ! defined key_mpi_off 24 24 USE lib_mpp, ONLY : mpi_comm_oce ! MPP library 25 25 #endif … … 61 61 INTEGER, DIMENSION(kno), INTENT(inout) :: kvals ! Array to send on kroot, receive for non-kroot 62 62 ! 63 #if defined key_mpp_mpi63 #if ! defined key_mpi_off 64 64 ! 65 65 INTEGER :: ierr … … 95 95 INTEGER, DIMENSION(kno), INTENT(inout) :: kvals ! Array to send on kroot, receive for non-kroot 96 96 ! 97 #if defined key_mpp_mpi97 #if ! defined key_mpi_off 98 98 ! 99 99 INTEGER :: ierr … … 134 134 INTEGER, DIMENSION(kno), INTENT(inout) :: kobsp 135 135 ! 136 #if defined key_mpp_mpi136 #if ! defined key_mpi_off 137 137 ! 138 138 ! … … 192 192 INTEGER, DIMENSION(kno), INTENT( out) :: kvalsout 193 193 ! 194 #if defined key_mpp_mpi194 #if ! defined key_mpi_off 195 195 ! 196 196 INTEGER :: ierr … … 230 230 INTEGER, INTENT( out) :: kvalout 231 231 ! 232 #if defined key_mpp_mpi232 #if ! defined key_mpi_off 233 233 ! 234 234 INTEGER :: ierr … … 270 270 INTEGER :: ierr 271 271 ! 272 #if defined key_mpp_mpi272 #if ! defined key_mpi_off 273 273 ! 274 274 INCLUDE 'mpif.h' … … 318 318 INTEGER :: ierr 319 319 ! 320 #if defined key_mpp_mpi320 #if ! defined key_mpi_off 321 321 ! 322 322 INCLUDE 'mpif.h' … … 360 360 INTEGER :: jproc 361 361 ! 362 #if defined key_mpp_mpi362 #if ! defined key_mpi_off 363 363 ! 364 364 INCLUDE 'mpif.h' … … 412 412 INTEGER :: jproc 413 413 ! 414 #if defined key_mpp_mpi414 #if ! defined key_mpi_off 415 415 ! 416 416 INCLUDE 'mpif.h' -
NEMO/trunk/src/OCE/SBC/sbcmod.F90
r14227 r14229 120 120 IF(lwm) WRITE( numond, namsbc ) 121 121 ! 122 #if defined key_mpp_mpi122 #if ! defined key_mpi_off 123 123 ncom_fsbc = nn_fsbc ! make nn_fsbc available for lib_mpp 124 124 #endif -
NEMO/trunk/src/OCE/nemogcm.F90
r14227 r14229 87 87 CHARACTER(lc) :: cform_aaa="( /, 'AAAAAAAA', / ) " ! flag for output listing 88 88 89 #if defined key_mpp_mpi89 #if ! defined key_mpi_off 90 90 ! need MPI_Wtime 91 91 INCLUDE 'mpif.h' -
NEMO/trunk/src/OCE/timing.F90
r14072 r14229 31 31 PUBLIC timing_start, timing_stop ! called in each routine to time 32 32 33 #if defined key_mpp_mpi33 #if ! defined key_mpi_off 34 34 INCLUDE 'mpif.h' 35 35 #endif … … 116 116 CALL CPU_TIME( s_timer%t_cpu ) 117 117 ! clock time collection 118 #if defined key_mpp_mpi118 #if ! defined key_mpi_off 119 119 s_timer%t_clock= MPI_Wtime() 120 120 #else … … 142 142 143 143 ! clock time collection 144 #if defined key_mpp_mpi144 #if ! defined key_mpi_off 145 145 zmpitime = MPI_Wtime() 146 146 #else … … 166 166 167 167 ! clock time correction 168 #if defined key_mpp_mpi168 #if ! defined key_mpi_off 169 169 zclock_raw = zmpitime - s_timer%t_clock - t_overclock ! total time including child 170 170 s_timer%t_clock = zclock_raw - t_overclock - s_timer%tsub_clock … … 249 249 250 250 ! Compute clock function overhead 251 #if defined key_mpp_mpi251 #if ! defined key_mpi_off 252 252 t_overclock = MPI_WTIME() 253 253 t_overclock = MPI_WTIME() - t_overclock … … 274 274 275 275 CALL CPU_TIME(t_cpu(1)) 276 #if defined key_mpp_mpi276 #if ! defined key_mpi_off 277 277 ! Start elapsed and CPU time counters 278 278 t_elaps(1) = MPI_WTIME() … … 305 305 CALL CPU_TIME(t_cpu(2)) 306 306 t_cpu(2) = t_cpu(2) - t_cpu(1) - t_overcpu 307 #if defined key_mpp_mpi307 #if ! defined key_mpi_off 308 308 t_elaps(2) = MPI_WTIME() - t_elaps(1) - t_overclock 309 309 #else … … 336 336 ENDIF 337 337 338 #if defined key_mpp_mpi338 #if ! defined key_mpi_off 339 339 ! in MPI gather some info 340 340 ALLOCATE( all_etime(jpnij), all_ctime(jpnij) ) … … 360 360 IF( lwriter ) WRITE(numtime,'(5x,f12.3,1x,f12.3)') tot_etime, tot_ctime 361 361 IF( lwriter ) WRITE(numtime,*) 362 #if defined key_mpp_mpi362 #if ! defined key_mpi_off 363 363 IF( ll_averep ) CALL waver_info 364 364 CALL wmpi_info … … 377 377 & czone(1:3), czone(4:5) 378 378 379 #if defined key_mpp_mpi379 #if ! defined key_mpi_off 380 380 ALLOCATE(timing_glob(4*jpnij), stat=icode) 381 381 CALL MPI_GATHER( (/compute_time, waiting_time(1), waiting_time(2), elapsed_time/), & … … 458 458 END SUBROUTINE wcurrent_info 459 459 460 #if defined key_mpp_mpi460 #if ! defined key_mpi_off 461 461 SUBROUTINE waver_info 462 462 !!---------------------------------------------------------------------- -
NEMO/trunk/src/OFF/nemogcm.F90
r14227 r14229 77 77 78 78 CHARACTER (len=64) :: cform_aaa="( /, 'AAAAAAAA', / ) " ! flag for output listing 79 #if defined key_mpp_mpi79 #if ! defined key_mpi_off 80 80 ! need MPI_Wtime 81 81 INCLUDE 'mpif.h' -
NEMO/trunk/src/SAS/nemogcm.F90
r14227 r14229 58 58 CHARACTER(lc) :: cform_aaa="( /, 'AAAAAAAA', / ) " ! flag for output listing 59 59 60 #if defined key_mpp_mpi60 #if ! defined key_mpi_off 61 61 ! need MPI_Wtime 62 62 INCLUDE 'mpif.h' -
NEMO/trunk/src/SWE/nemogcm.F90
r14227 r14229 44 44 CHARACTER(lc) :: cform_aaa="( /, 'AAAAAAAA', / ) " ! flag for output listing 45 45 46 #if defined key_mpp_mpi46 #if ! defined key_mpi_off 47 47 ! need MPI_Wtime 48 48 INCLUDE 'mpif.h' -
NEMO/trunk/src/TOP/README.rst
r11734 r14229 320 320 .. code-block:: perl 321 321 322 bld::tool::fppkeys key_iomput key_ mpp_mpi key_top322 bld::tool::fppkeys key_iomput key_top 323 323 324 324 the compilation with :file:`makenemo` will be executed through the following syntax … … 348 348 .. code-block:: perl 349 349 350 bld::tool::fppkeys key_iomput key_ mpp_mpi key_top350 bld::tool::fppkeys key_iomput key_top 351 351 352 352 src::MYBGC::initialization <MYBGCPATH>/initialization … … 376 376 .. code-block:: perl 377 377 378 bld::tool::fppkeys key_zdftke key_dynspg_ts key_iomput key_ mpp_mpi key_top378 bld::tool::fppkeys key_zdftke key_dynspg_ts key_iomput key_top 379 379 inc <MYBGCPATH>/MYBGC.fcm 380 380
Note: See TracChangeset
for help on using the changeset viewer.