Changeset 14327
- Timestamp:
- 2021-01-22T11:50:04+01:00 (3 years ago)
- Location:
- NEMO/branches/2021/dev_r14312_MPI_Interface/src/OCE
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2021/dev_r14312_MPI_Interface/src/OCE/ICB/icbini.F90
r14314 r14327 189 189 190 190 ! north fold 191 IF( l_ NFoldT .OR. l_NFoldF) THEN191 IF( l_IdoNFold ) THEN 192 192 ! 193 193 ! icebergs in row nicbej+1 get passed across fold … … 235 235 WRITE(numicb,*) "j point" 236 236 WRITE(numicb,*) (INT(src_calving(ji,jj)), jj=1,jpj) 237 IF( l_ NFoldT .OR. l_NFoldF) THEN237 IF( l_IdoNFold ) THEN 238 238 WRITE(numicb,*) 'north fold destination points ' 239 239 WRITE(numicb,*) nicbfldpts -
NEMO/branches/2021/dev_r14312_MPI_Interface/src/OCE/ICB/icblbc.F90
r14314 r14327 105 105 IF( l_Jperio) CALL ctl_stop(' north-south periodicity not implemented for icebergs') 106 106 ! north fold 107 IF( l_ NFoldT .OR. l_NFoldF) CALL icb_lbc_nfld()107 IF( l_IdoNFold ) CALL icb_lbc_nfld() 108 108 ! 109 109 END SUBROUTINE icb_lbc … … 185 185 ! 186 186 ! at northern line of processors with north fold handle bergs differently 187 IF( l_ NFoldT .OR. l_NFoldF) ipe_N = -1187 IF( l_IdoNFold ) ipe_N = -1 188 188 189 189 ! if there's only one processor in x direction then don't let mpp try to handle periodicity … … 285 285 ENDIF 286 286 287 IF( ibergs_to_send_w > 0 ) CALL mppsend( 13, obuffer_w% DATA, ibergs_to_send_w*jp_buffer_width, ipe_W, iml_req2 )288 IF( ibergs_to_send_e > 0 ) CALL mppsend( 14, obuffer_e% DATA, ibergs_to_send_e*jp_buffer_width, ipe_E, iml_req3 )287 IF( ibergs_to_send_w > 0 ) CALL mppsend( 13, obuffer_w%data, ibergs_to_send_w*jp_buffer_width, ipe_W, iml_req2 ) 288 IF( ibergs_to_send_e > 0 ) CALL mppsend( 14, obuffer_e%data, ibergs_to_send_e*jp_buffer_width, ipe_E, iml_req3 ) 289 289 IF( ibergs_rcvd_from_e > 0 ) THEN 290 290 CALL icb_increase_ibuffer(ibuffer_e, ibergs_rcvd_from_e) 291 CALL mpprecv( 13, ibuffer_e% DATA, ibergs_rcvd_from_e*jp_buffer_width )291 CALL mpprecv( 13, ibuffer_e%data, ibergs_rcvd_from_e*jp_buffer_width ) 292 292 ENDIF 293 293 IF( ibergs_rcvd_from_w > 0 ) THEN 294 294 CALL icb_increase_ibuffer(ibuffer_w, ibergs_rcvd_from_w) 295 CALL mpprecv( 14, ibuffer_w% DATA, ibergs_rcvd_from_w*jp_buffer_width )295 CALL mpprecv( 14, ibuffer_w%data, ibergs_rcvd_from_w*jp_buffer_width ) 296 296 ENDIF 297 297 IF( ibergs_to_send_w > 0 ) CALL mpi_wait( iml_req2, iml_stat, iml_err ) … … 299 299 DO i = 1, ibergs_rcvd_from_e 300 300 IF( nn_verbose_level >= 4 ) THEN 301 WRITE(numicb,*) 'bergstep ',nktberg,' unpacking berg ',INT(ibuffer_e% DATA(16,i)),' from east'301 WRITE(numicb,*) 'bergstep ',nktberg,' unpacking berg ',INT(ibuffer_e%data(16,i)),' from east' 302 302 CALL FLUSH( numicb ) 303 303 ENDIF … … 306 306 DO i = 1, ibergs_rcvd_from_w 307 307 IF( nn_verbose_level >= 4 ) THEN 308 WRITE(numicb,*) 'bergstep ',nktberg,' unpacking berg ',INT(ibuffer_w% DATA(16,i)),' from west'308 WRITE(numicb,*) 'bergstep ',nktberg,' unpacking berg ',INT(ibuffer_w%data(16,i)),' from west' 309 309 CALL FLUSH( numicb ) 310 310 ENDIF 311 311 CALL icb_unpack_from_buffer(first_berg, ibuffer_w, i) 312 END DO312 END DO 313 313 314 314 ! Find number of bergs that headed north/south … … 370 370 ENDIF 371 371 372 IF( ibergs_to_send_s > 0 ) CALL mppsend( 17, obuffer_s% DATA, ibergs_to_send_s*jp_buffer_width, ipe_S, iml_req2 )373 IF( ibergs_to_send_n > 0 ) CALL mppsend( 18, obuffer_n% DATA, ibergs_to_send_n*jp_buffer_width, ipe_N, iml_req3 )372 IF( ibergs_to_send_s > 0 ) CALL mppsend( 17, obuffer_s%data, ibergs_to_send_s*jp_buffer_width, ipe_S, iml_req2 ) 373 IF( ibergs_to_send_n > 0 ) CALL mppsend( 18, obuffer_n%data, ibergs_to_send_n*jp_buffer_width, ipe_N, iml_req3 ) 374 374 IF( ibergs_rcvd_from_n > 0 ) THEN 375 375 CALL icb_increase_ibuffer(ibuffer_n, ibergs_rcvd_from_n) 376 CALL mpprecv( 17, ibuffer_n% DATA, ibergs_rcvd_from_n*jp_buffer_width )376 CALL mpprecv( 17, ibuffer_n%data, ibergs_rcvd_from_n*jp_buffer_width ) 377 377 ENDIF 378 378 IF( ibergs_rcvd_from_s > 0 ) THEN 379 379 CALL icb_increase_ibuffer(ibuffer_s, ibergs_rcvd_from_s) 380 CALL mpprecv( 18, ibuffer_s% DATA, ibergs_rcvd_from_s*jp_buffer_width )380 CALL mpprecv( 18, ibuffer_s%data, ibergs_rcvd_from_s*jp_buffer_width ) 381 381 ENDIF 382 382 IF( ibergs_to_send_s > 0 ) CALL mpi_wait( iml_req2, iml_stat, iml_err ) … … 384 384 DO i = 1, ibergs_rcvd_from_n 385 385 IF( nn_verbose_level >= 4 ) THEN 386 WRITE(numicb,*) 'bergstep ',nktberg,' unpacking berg ',INT(ibuffer_n% DATA(16,i)),' from north'386 WRITE(numicb,*) 'bergstep ',nktberg,' unpacking berg ',INT(ibuffer_n%data(16,i)),' from north' 387 387 CALL FLUSH( numicb ) 388 388 ENDIF … … 391 391 DO i = 1, ibergs_rcvd_from_s 392 392 IF( nn_verbose_level >= 4 ) THEN 393 WRITE(numicb,*) 'bergstep ',nktberg,' unpacking berg ',INT(ibuffer_s% DATA(16,i)),' from south'393 WRITE(numicb,*) 'bergstep ',nktberg,' unpacking berg ',INT(ibuffer_s%data(16,i)),' from south' 394 394 CALL FLUSH( numicb ) 395 395 ENDIF 396 396 CALL icb_unpack_from_buffer(first_berg, ibuffer_s, i) 397 END DO397 END DO 398 398 399 399 IF( nn_verbose_level > 0 ) THEN … … 435 435 ! deal with north fold if we necessary when there is more than one top row processor 436 436 ! note that for jpni=1 north fold has been dealt with above in call to icb_lbc 437 IF( ( l_NFoldT .OR. l_NFoldF ).AND. jpni > 1 ) CALL icb_lbc_mpp_nfld( )437 IF( l_IdoNFold .AND. jpni > 1 ) CALL icb_lbc_mpp_nfld( ) 438 438 439 439 IF( nn_verbose_level > 0 ) THEN -
NEMO/branches/2021/dev_r14312_MPI_Interface/src/OCE/LBC/mpp_lnk_icb_generic.h90
r14314 r14327 85 85 ! north fold treatment 86 86 ! ----------------------- 87 IF( l_ NFoldT .OR. l_NFoldF) THEN87 IF( l_IdoNFold ) THEN 88 88 ! 89 89 SELECT CASE ( jpni ) … … 158 158 IF( mpinei(jpno) >= 0 ) CALL RECVROUTINE( 3, r2dns(1-kexti,1,2), imigr, mpinei(jpno) ) 159 159 IF( mpinei(jpso) >= 0 ) CALL mpi_wait(ml_req1,ml_stat,ml_err) 160 IF( mpinei(jp so) >= 0 ) CALL mpi_wait(ml_req2,ml_stat,ml_err)160 IF( mpinei(jpno) >= 0 ) CALL mpi_wait(ml_req2,ml_stat,ml_err) 161 161 ! 162 162 IF( ln_timing ) CALL tic_tac(.FALSE.) -
NEMO/branches/2021/dev_r14312_MPI_Interface/src/OCE/LBC/mppini.F90
r14320 r14327 494 494 ! ! Prepare mpp north fold 495 495 ! 496 llmpiNfold = jpn j> 1 .AND. ( l_NFoldT .OR. l_NFoldF ) ! is the North fold done with an MPI communication?496 llmpiNfold = jpni > 1 .AND. ( l_NFoldT .OR. l_NFoldF ) ! is the North fold done with an MPI communication? 497 497 l_IdoNFold = ijn(narea) == jpnj .AND. ( l_NFoldT .OR. l_NFoldF ) ! is this process doing North fold? 498 498 !
Note: See TracChangeset
for help on using the changeset viewer.