Changeset 13807
- Timestamp:
- 2020-11-17T17:16:58+01:00 (4 years ago)
- Location:
- NEMO/branches/2020/dev_r13296_HPC-07_mocavero_mpi3
- Files:
-
- 20 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2020/dev_r13296_HPC-07_mocavero_mpi3/src/ICE/icedyn_adv_pra.F90
r13630 r13807 129 129 END_2D 130 130 END DO 131 #if defined key_mpi3 132 CALL lbc_lnk_nc_multi( 'icedyn_adv_pra', zhi_max, 'T', 1._wp, zhs_max, 'T', 1._wp, zhip_max, 'T', 1._wp, zsi_max, 'T', 1._wp ) 133 #else 131 134 CALL lbc_lnk_multi( 'icedyn_adv_pra', zhi_max, 'T', 1._wp, zhs_max, 'T', 1._wp, zhip_max, 'T', 1._wp, zsi_max, 'T', 1._wp ) 135 #endif 132 136 ! 133 137 ! enthalpies … … 492 496 493 497 !-- Lateral boundary conditions 498 #if defined key_mpi3 499 CALL lbc_lnk_nc_multi( 'icedyn_adv_pra', psm(:,:,1:jcat) , 'T', 1.0_wp, ps0 , 'T', 1.0_wp & 500 & , psx , 'T', -1.0_wp, psy , 'T', -1.0_wp & ! caution gradient ==> the sign changes 501 & , psxx , 'T', 1.0_wp, psyy, 'T', 1.0_wp , psxy, 'T', 1.0_wp ) 502 #else 494 503 CALL lbc_lnk_multi( 'icedyn_adv_pra', psm(:,:,1:jcat) , 'T', 1.0_wp, ps0 , 'T', 1.0_wp & 495 504 & , psx , 'T', -1.0_wp, psy , 'T', -1.0_wp & ! caution gradient ==> the sign changes 496 505 & , psxx , 'T', 1.0_wp, psyy, 'T', 1.0_wp , psxy, 'T', 1.0_wp ) 506 #endif 497 507 ! 498 508 END SUBROUTINE adv_x … … 651 661 652 662 !-- Lateral boundary conditions 663 #if defined key_mpi3 664 CALL lbc_lnk_nc_multi( 'icedyn_adv_pra', psm(:,:,1:jcat) , 'T', 1.0_wp, ps0 , 'T', 1.0_wp & 665 & , psx , 'T', -1.0_wp, psy , 'T', -1.0_wp & ! caution gradient ==> the sign changes 666 & , psxx , 'T', 1.0_wp, psyy, 'T', 1.0_wp , psxy, 'T', 1.0_wp ) 667 #else 653 668 CALL lbc_lnk_multi( 'icedyn_adv_pra', psm(:,:,1:jcat) , 'T', 1.0_wp, ps0 , 'T', 1.0_wp & 654 669 & , psx , 'T', -1.0_wp, psy , 'T', -1.0_wp & ! caution gradient ==> the sign changes 655 670 & , psxx , 'T', 1.0_wp, psyy, 'T', 1.0_wp , psxy, 'T', 1.0_wp ) 671 #endif 656 672 ! 657 673 END SUBROUTINE adv_y -
NEMO/branches/2020/dev_r13296_HPC-07_mocavero_mpi3/src/ICE/icedyn_adv_umx.F90
r13630 r13807 133 133 END_2D 134 134 END DO 135 #if defined key_mpi3 136 CALL lbc_lnk_nc_multi( 'icedyn_adv_umx', zhi_max, 'T', 1._wp, zhs_max, 'T', 1._wp, zhip_max, 'T', 1._wp, zsi_max, 'T', 1._wp ) 137 #else 135 138 CALL lbc_lnk_multi( 'icedyn_adv_umx', zhi_max, 'T', 1._wp, zhs_max, 'T', 1._wp, zhip_max, 'T', 1._wp, zsi_max, 'T', 1._wp ) 139 #endif 136 140 ! 137 141 ! enthalpies … … 562 566 END_2D 563 567 END DO 568 #if defined key_mpi3 569 CALL lbc_lnk_nc_multi( 'icedyn_adv_umx', ptc, 'T', 1.0_wp ) 570 #else 564 571 CALL lbc_lnk( 'icedyn_adv_umx', ptc, 'T', 1.0_wp ) 572 #endif 565 573 ! 566 574 END SUBROUTINE adv_umx -
NEMO/branches/2020/dev_r13296_HPC-07_mocavero_mpi3/src/ICE/icedyn_rhg_evp.F90
r13630 r13807 322 322 323 323 END_2D 324 #if defined key_mpi3 325 CALL lbc_lnk_nc_multi( 'icedyn_rhg_evp', zmf, 'T', 1.0_wp, zdt_m, 'T', 1.0_wp ) 326 #else 324 327 CALL lbc_lnk_multi( 'icedyn_rhg_evp', zmf, 'T', 1.0_wp, zdt_m, 'T', 1.0_wp ) 328 #endif 325 329 ! 326 330 ! !== Landfast ice parameterization ==! -
NEMO/branches/2020/dev_r13296_HPC-07_mocavero_mpi3/src/OCE/DOM/domutl.F90
r13571 r13807 103 103 ! 104 104 puniq(:,:) = ztstref(:,:) ! default definition 105 #if defined key_mpi3 106 CALL lbc_lnk_nc_multi( 'domwri', puniq, cdgrd, 1. ) ! apply boundary conditions 107 #else 105 108 CALL lbc_lnk( 'domwri', puniq, cdgrd, 1. ) ! apply boundary conditions 109 #endif 106 110 lluniq(:,:,1) = puniq(:,:) == ztstref(:,:) ! check which values have not been changed 107 111 ! -
NEMO/branches/2020/dev_r13296_HPC-07_mocavero_mpi3/src/OCE/DOM/domvvl.F90
r13630 r13807 724 724 & + e1e2t(ji+1,jj) * ( pe3_in(ji+1,jj,jk) - e3t_0(ji+1,jj,jk) ) ) 725 725 END_3D 726 #if defined key_mpi3 727 CALL lbc_lnk_nc_multi( 'domvvl', pe3_out(:,:,:), 'U', 1._wp ) 728 #else 726 729 CALL lbc_lnk( 'domvvl', pe3_out(:,:,:), 'U', 1._wp ) 730 #endif 727 731 pe3_out(:,:,:) = pe3_out(:,:,:) + e3u_0(:,:,:) 728 732 ! … … 733 737 & + e1e2t(ji,jj+1) * ( pe3_in(ji,jj+1,jk) - e3t_0(ji,jj+1,jk) ) ) 734 738 END_3D 739 #if defined key_mpi3 740 CALL lbc_lnk_nc_multi( 'domvvl', pe3_out(:,:,:), 'V', 1._wp ) 741 #else 735 742 CALL lbc_lnk( 'domvvl', pe3_out(:,:,:), 'V', 1._wp ) 743 #endif 736 744 pe3_out(:,:,:) = pe3_out(:,:,:) + e3v_0(:,:,:) 737 745 ! … … 743 751 & + e1e2u(ji,jj+1) * ( pe3_in(ji,jj+1,jk) - e3u_0(ji,jj+1,jk) ) ) 744 752 END_3D 753 #if defined key_mpi3 754 CALL lbc_lnk_nc_multi( 'domvvl', pe3_out(:,:,:), 'F', 1._wp ) 755 #else 745 756 CALL lbc_lnk( 'domvvl', pe3_out(:,:,:), 'F', 1._wp ) 757 #endif 746 758 pe3_out(:,:,:) = pe3_out(:,:,:) + e3f_0(:,:,:) 747 759 ! -
NEMO/branches/2020/dev_r13296_HPC-07_mocavero_mpi3/src/OCE/DYN/dynadv_ubs.F90
r13571 r13807 124 124 END_2D 125 125 END DO 126 #if defined key_mpi3 127 CALL lbc_lnk_nc_multi( 'dynadv_ubs', zlu_uu(:,:,:,1), 'U', 1.0_wp , zlu_uv(:,:,:,1), 'U', 1.0_wp, & 128 & zlu_uu(:,:,:,2), 'U', 1.0_wp , zlu_uv(:,:,:,2), 'U', 1.0_wp, & 129 & zlv_vv(:,:,:,1), 'V', 1.0_wp , zlv_vu(:,:,:,1), 'V', 1.0_wp, & 130 & zlv_vv(:,:,:,2), 'V', 1.0_wp , zlv_vu(:,:,:,2), 'V', 1.0_wp ) 131 #else 126 132 CALL lbc_lnk_multi( 'dynadv_ubs', zlu_uu(:,:,:,1), 'U', 1.0_wp , zlu_uv(:,:,:,1), 'U', 1.0_wp, & 127 133 & zlu_uu(:,:,:,2), 'U', 1.0_wp , zlu_uv(:,:,:,2), 'U', 1.0_wp, & 128 134 & zlv_vv(:,:,:,1), 'V', 1.0_wp , zlv_vu(:,:,:,1), 'V', 1.0_wp, & 129 135 & zlv_vv(:,:,:,2), 'V', 1.0_wp , zlv_vu(:,:,:,2), 'V', 1.0_wp ) 136 #endif 130 137 ! 131 138 ! ! ====================== ! -
NEMO/branches/2020/dev_r13296_HPC-07_mocavero_mpi3/src/OCE/DYN/dynatf.F90
r13571 r13807 167 167 # endif 168 168 ! 169 #if defined key_mpi3 170 CALL lbc_lnk_nc_multi( 'dynatf', puu(:,:,:,Kaa), 'U', -1.0_wp, pvv(:,:,:,Kaa), 'V', -1.0_wp ) !* local domain boundaries 171 #else 169 172 CALL lbc_lnk_multi( 'dynatf', puu(:,:,:,Kaa), 'U', -1.0_wp, pvv(:,:,:,Kaa), 'V', -1.0_wp ) !* local domain boundaries 173 #endif 170 174 ! 171 175 ! !* BDY open boundaries -
NEMO/branches/2020/dev_r13296_HPC-07_mocavero_mpi3/src/OCE/DYN/dynldf_lap_blp.F90
r13571 r13807 132 132 CALL dyn_ldf_lap( kt, Kbb, Kmm, pu, pv, zulap, zvlap, 1 ) ! rotated laplacian applied to pt (output in zlap,Kbb) 133 133 ! 134 #if defined key_mpi3 135 CALL lbc_lnk_nc_multi( 'dynldf_lap_blp', zulap, 'U', -1.0_wp, zvlap, 'V', -1.0_wp ) ! Lateral boundary conditions 136 #else 134 137 CALL lbc_lnk_multi( 'dynldf_lap_blp', zulap, 'U', -1.0_wp, zvlap, 'V', -1.0_wp ) ! Lateral boundary conditions 138 #endif 135 139 ! 136 140 CALL dyn_ldf_lap( kt, Kbb, Kmm, zulap, zvlap, pu_rhs, pv_rhs, 2 ) ! rotated laplacian applied to zlap (output in pt(:,:,:,:,Krhs)) -
NEMO/branches/2020/dev_r13296_HPC-07_mocavero_mpi3/src/OCE/DYN/dynvor.F90
r13630 r13807 618 618 END DO ! End of slab 619 619 ! 620 #if defined key_mpi3 621 CALL lbc_lnk_nc_multi( 'dynvor', zwz, 'F', 1.0_wp ) 622 #else 620 623 CALL lbc_lnk( 'dynvor', zwz, 'F', 1.0_wp ) 624 #endif 621 625 622 626 DO jk = 1, jpkm1 ! Horizontal slab … … 739 743 END DO 740 744 ! 745 #if defined key_mpi3 746 CALL lbc_lnk_nc_multi( 'dynvor', zwz, 'F', 1.0_wp ) 747 #else 741 748 CALL lbc_lnk( 'dynvor', zwz, 'F', 1.0_wp ) 749 #endif 742 750 ! 743 751 DO jk = 1, jpkm1 ! Horizontal slab -
NEMO/branches/2020/dev_r13296_HPC-07_mocavero_mpi3/src/OCE/IOM/iom.F90
r13630 r13807 1342 1342 !--- overlap areas and extra hallows (mpp) 1343 1343 IF( PRESENT(pv_r2d) .AND. idom /= jpdom_unknown .AND. cl_type /= 'Z' ) THEN 1344 #if defined key_mpi3 1345 CALL lbc_lnk_nc_multi( 'iom', pv_r2d, cl_type, zsgn, kfillmode = kfill ) 1346 #else 1344 1347 CALL lbc_lnk( 'iom', pv_r2d, cl_type, zsgn, kfillmode = kfill ) 1348 #endif 1345 1349 ELSEIF( PRESENT(pv_r3d) .AND. idom /= jpdom_unknown .AND. cl_type /= 'Z' ) THEN 1350 #if defined key_mpi3 1351 CALL lbc_lnk_nc_multi( 'iom', pv_r3d, cl_type, zsgn, kfillmode = kfill ) 1352 #else 1346 1353 CALL lbc_lnk( 'iom', pv_r3d, cl_type, zsgn, kfillmode = kfill ) 1354 #endif 1347 1355 ENDIF 1348 1356 ! … … 1363 1371 IF(lwp) WRITE(numout,*) 'XIOS RST READ (3D): ',TRIM(cdvar) 1364 1372 CALL xios_recv_field( trim(cdvar), pv_r3d) 1373 #if defined key_mpi3 1374 IF(idom /= jpdom_unknown ) CALL lbc_lnk_nc_multi( 'iom', pv_r3d,'Z', -999., kfillmode = jpfillnothing) 1375 #else 1365 1376 IF(idom /= jpdom_unknown ) CALL lbc_lnk( 'iom', pv_r3d,'Z', -999., kfillmode = jpfillnothing) 1377 #endif 1366 1378 ELSEIF( PRESENT(pv_r2d) ) THEN 1367 1379 IF(lwp) WRITE(numout,*) 'XIOS RST READ (2D): ', TRIM(cdvar) 1368 1380 CALL xios_recv_field( trim(cdvar), pv_r2d) 1381 #if defined key_mpi3 1382 IF(idom /= jpdom_unknown ) CALL lbc_lnk_nc_multi('iom', pv_r2d,'Z',-999., kfillmode = jpfillnothing) 1383 #else 1369 1384 IF(idom /= jpdom_unknown ) CALL lbc_lnk('iom', pv_r2d,'Z',-999., kfillmode = jpfillnothing) 1385 #endif 1370 1386 ELSEIF( PRESENT(pv_r1d) ) THEN 1371 1387 IF(lwp) WRITE(numout,*) 'XIOS RST READ (1D): ', TRIM(cdvar) -
NEMO/branches/2020/dev_r13296_HPC-07_mocavero_mpi3/src/OCE/LBC/mpp_nc_generic.h90
r13561 r13807 67 67 LOGICAL :: llsend_we, llsend_ea, llsend_no, llsend_so ! communication send 68 68 LOGICAL :: llrecv_we, llrecv_ea, llrecv_no, llrecv_so ! communication receive 69 LOGICAL :: lldo_nfd ! do north pole folding70 LOGICAL :: llncall = .TRUE.! default: 9-point stencil69 LOGICAL :: lldo_nfd ! do north pole folding 70 LOGICAL :: llncall ! default: 9-point stencil 71 71 72 72 !!---------------------------------------------------------------------- … … 76 76 ! ----------------------------------------- ! 77 77 ! 78 llncall = .TRUE. 78 79 ipk = K_SIZE(ptab) ! 3rd dimension 79 80 ipl = L_SIZE(ptab) ! 4th - … … 102 103 zland = 0._wp ! land filling value: zero by default 103 104 IF( PRESENT( pfillval ) ) zland = pfillval ! set land value 105 104 106 105 107 ! define the method we will use to fill the halos in each direction … … 374 376 CASE ( jpfillperio ) ! use east-weast periodicity 375 377 ishift2 = nn_hls 376 DO jf = 1, ipf ; DO jl = 1, ipl ; DO jk = 1, ipk ; DO jj = nn_hls + 1, jpj - nn_hls; DO ji = 1, nn_hls378 DO jf = 1, ipf ; DO jl = 1, ipl ; DO jk = 1, ipk ; DO jj = 1, jpj ; DO ji = 1, nn_hls 377 379 ARRAY_IN(ishift+ji,jj,jk,jl,jf) = ARRAY_IN(ishift2+ji,jj,jk,jl,jf) 378 380 END DO ; END DO ; END DO ; END DO ; END DO 379 381 CASE ( jpfillcopy ) ! filling with inner domain values 380 DO jf = 1, ipf ; DO jl = 1, ipl ; DO jk = 1, ipk ; DO jj = nn_hls + 1, jpj - nn_hls; DO ji = 1, nn_hls382 DO jf = 1, ipf ; DO jl = 1, ipl ; DO jk = 1, ipk ; DO jj = 1, jpj ; DO ji = 1, nn_hls 381 383 ARRAY_IN(ishift+ji,jj,jk,jl,jf) = ARRAY_IN(ishift,jj,jk,jl,jf) 382 384 END DO ; END DO ; END DO ; END DO ; END DO 383 385 CASE ( jpfillcst ) ! filling with constant value 384 DO jf = 1, ipf ; DO jl = 1, ipl ; DO jk = 1, ipk ; DO jj = nn_hls + 1, jpj - nn_hls; DO ji = 1, nn_hls386 DO jf = 1, ipf ; DO jl = 1, ipl ; DO jk = 1, ipk ; DO jj = 1, jpj ; DO ji = 1, nn_hls 385 387 ARRAY_IN(ishift+ji,jj,jk,jl,jf) = zland 386 END DO ; END DO ; END DO ; END DO ; END DO388 END DO ; END DO ; END DO ; END DO ; END DO 387 389 END SELECT 388 390 ! ---------------------- … … 398 400 CASE ( jpfillperio ) ! use east-weast periodicity 399 401 ishift2 = jpi - 2 * nn_hls 400 DO jf = 1, ipf ; DO jl = 1, ipl ; DO jk = 1, ipk ; DO jj = nn_hls + 1, jpj - nn_hls; DO ji = 1, nn_hls402 DO jf = 1, ipf ; DO jl = 1, ipl ; DO jk = 1, ipk ; DO jj = 1, jpj ; DO ji = 1, nn_hls 401 403 ARRAY_IN(ji,jj,jk,jl,jf) = ARRAY_IN(ishift2+ji,jj,jk,jl,jf) 402 END DO ; END DO ; END DO ; END DO ; END DO404 END DO ; END DO ; END DO ; END DO ; END DO 403 405 CASE ( jpfillcopy ) ! filling with inner domain values 404 DO jf = 1, ipf ; DO jl = 1, ipl ; DO jk = 1, ipk ; DO jj = nn_hls + 1, jpj - nn_hls; DO ji = 1, nn_hls406 DO jf = 1, ipf ; DO jl = 1, ipl ; DO jk = 1, ipk ; DO jj = 1, jpj ; DO ji = 1, nn_hls 405 407 ARRAY_IN(ji,jj,jk,jl,jf) = ARRAY_IN(nn_hls+1,jj,jk,jl,jf) 406 END DO ; END DO ; END DO ; END DO ; END DO408 END DO ; END DO ; END DO ; END DO ; END DO 407 409 CASE ( jpfillcst ) ! filling with constant value 408 DO jf = 1, ipf ; DO jl = 1, ipl ; DO jk = 1, ipk ; DO jj = nn_hls + 1, jpj - nn_hls; DO ji = 1, nn_hls410 DO jf = 1, ipf ; DO jl = 1, ipl ; DO jk = 1, ipk ; DO jj = 1, jpj ; DO ji = 1, nn_hls 409 411 ARRAY_IN(ji,jj,jk,jl,jf) = zland 410 END DO ; END DO ; END DO ; END DO ; END DO412 END DO ; END DO ; END DO ; END DO ; END DO 411 413 END SELECT 412 414 … … 426 428 CASE ( jpfillperio ) ! use east-weast periodicity 427 429 ishift2 = jpi - 2 * nn_hls 428 DO jf = 1, ipf ; DO jl = 1, ipl ; DO jk = 1, ipk ; DO jj = nn_hls + 1, jpj - nn_hls; DO ji = 1, nn_hls430 DO jf = 1, ipf ; DO jl = 1, ipl ; DO jk = 1, ipk ; DO jj = 1, jpj ; DO ji = 1, nn_hls 429 431 ARRAY_IN(ji,jj,jk,jl,jf) = ARRAY_IN(ishift2+ji,jj,jk,jl,jf) 430 END DO ; END DO ; END DO ; END DO ; END DO432 END DO ; END DO ; END DO ; END DO ; END DO 431 433 CASE ( jpfillcopy ) ! filling with inner domain values 432 DO jf = 1, ipf ; DO jl = 1, ipl ; DO jk = 1, ipk ; DO jj = nn_hls + 1, jpj - nn_hls; DO ji = 1, nn_hls434 DO jf = 1, ipf ; DO jl = 1, ipl ; DO jk = 1, ipk ; DO jj = 1, jpj ; DO ji = 1, nn_hls 433 435 ARRAY_IN(ji,jj,jk,jl,jf) = ARRAY_IN(nn_hls+1,jj,jk,jl,jf) 434 END DO ; END DO ; END DO ; END DO ; END DO436 END DO ; END DO ; END DO ; END DO ; END DO 435 437 CASE ( jpfillcst ) ! filling with constant value 436 DO jf = 1, ipf ; DO jl = 1, ipl ; DO jk = 1, ipk ; DO jj = nn_hls + 1, jpj - nn_hls; DO ji = 1, nn_hls438 DO jf = 1, ipf ; DO jl = 1, ipl ; DO jk = 1, ipk ; DO jj = 1, jpj ; DO ji = 1, nn_hls 437 439 ARRAY_IN(ji,jj,jk,jl,jf) = zland 438 END DO ; END DO ; END DO ; END DO ; END DO440 END DO ; END DO ; END DO ; END DO ; END DO 439 441 END SELECT 440 442 ! --------------------- … … 451 453 CASE ( jpfillperio ) ! use east-weast periodicity 452 454 ishift2 = nn_hls 453 DO jf = 1, ipf ; DO jl = 1, ipl ; DO jk = 1, ipk ; DO jj = nn_hls + 1, jpj - nn_hls; DO ji = 1, nn_hls455 DO jf = 1, ipf ; DO jl = 1, ipl ; DO jk = 1, ipk ; DO jj = 1, jpj ; DO ji = 1, nn_hls 454 456 ARRAY_IN(ishift+ji,jj,jk,jl,jf) = ARRAY_IN(ishift2+ji,jj,jk,jl,jf) 455 457 END DO ; END DO ; END DO ; END DO ; END DO 456 458 CASE ( jpfillcopy ) ! filling with inner domain values 457 DO jf = 1, ipf ; DO jl = 1, ipl ; DO jk = 1, ipk ; DO jj = nn_hls + 1, jpj - nn_hls; DO ji = 1, nn_hls459 DO jf = 1, ipf ; DO jl = 1, ipl ; DO jk = 1, ipk ; DO jj = 1, jpj ; DO ji = 1, nn_hls 458 460 ARRAY_IN(ishift+ji,jj,jk,jl,jf) = ARRAY_IN(ishift,jj,jk,jl,jf) 459 461 END DO ; END DO ; END DO ; END DO ; END DO 460 462 CASE ( jpfillcst ) ! filling with constant value 461 DO jf = 1, ipf ; DO jl = 1, ipl ; DO jk = 1, ipk ; DO jj = nn_hls + 1, jpj - nn_hls; DO ji = 1, nn_hls463 DO jf = 1, ipf ; DO jl = 1, ipl ; DO jk = 1, ipk ; DO jj = 1, jpj ; DO ji = 1, nn_hls 462 464 ARRAY_IN(ishift+ji,jj,jk,jl,jf) = zland 463 END DO ; END DO ; END DO ; END DO ; END DO465 END DO ; END DO ; END DO ; END DO ; END DO 464 466 END SELECT 467 465 468 ENDIF 466 469 … … 478 481 idx = idx + 1 479 482 END DO ; END DO ; END DO ; END DO ; END DO 483 IF(nonwr .eq. -1) THEN 484 ishift = jpj - nn_hls 485 SELECT CASE ( ifill_we ) 486 CASE ( jpfillperio ) 487 ishift2 = jpi - 2 * nn_hls 488 DO jf = 1, ipf ; DO jl = 1, ipl ; DO jk = 1, ipk ; DO jj = 1 + ishift, jpj ; DO ji = 1, nn_hls 489 ARRAY_IN(ji,jj,jk,jl,jf) = ARRAY_IN(ishift2+ji,jj,jk,jl,jf) 490 END DO ; END DO ; END DO ; END DO ; END DO 491 CASE ( jpfillcopy ) 492 DO jf = 1, ipf ; DO jl = 1, ipl ; DO jk = 1, ipk ; DO jj = 1 + ishift, jpj ; DO ji = 1, nn_hls 493 ARRAY_IN(ji,jj,jk,jl,jf) = ARRAY_IN(nn_hls+1,jj,jk,jl,jf) 494 END DO ; END DO ; END DO ; END DO ; END DO 495 496 CASE ( jpfillcst ) 497 DO jf = 1, ipf ; DO jl = 1, ipl ; DO jk = 1, ipk ; DO jj = 1 + ishift, jpj ; DO ji = 1, nn_hls 498 ARRAY_IN(ji,jj,jk,jl,jf) = zland 499 END DO ; END DO ; END DO ; END DO ; END DO 500 END SELECT 501 END IF 502 IF(noner .eq. -1) THEN 503 ishift = jpi - nn_hls 504 ishift2 = jpj - nn_hls 505 SELECT CASE ( ifill_ea ) 506 CASE ( jpfillperio ) 507 DO jf = 1, ipf ; DO jl = 1, ipl ; DO jk = 1, ipk ; DO jj = 1 + ishift2, jpj ; DO ji = 1, nn_hls 508 ARRAY_IN(ishift+ji,jj,jk,jl,jf) = ARRAY_IN(ji,jj,jk,jl,jf) 509 END DO ; END DO ; END DO ; END DO ; END DO 510 511 CASE ( jpfillcopy ) 512 DO jf = 1, ipf ; DO jl = 1, ipl ; DO jk = 1, ipk ; DO jj = 1 + ishift2, jpj ; DO ji = 1, nn_hls 513 ARRAY_IN(ishift+ji,jj,jk,jl,jf) = ARRAY_IN(ishift,jj,jk,jl,jf) 514 END DO ; END DO ; END DO ; END DO ; END DO 515 CASE ( jpfillcst ) 516 DO jf = 1, ipf ; DO jl = 1, ipl ; DO jk = 1, ipk ; DO jj = 1 + ishift2, jpj ; DO ji = 1, nn_hls 517 ARRAY_IN(ishift+ji,jj,jk,jl,jf) = zland 518 END DO ; END DO ; END DO ; END DO ; END DO 519 END SELECT 520 END IF 480 521 CASE ( jpfillperio ) ! use north-south periodicity 481 522 ishift2 = nn_hls 482 DO jf = 1, ipf ; DO jl = 1, ipl ; DO jk = 1, ipk ; DO jj = 1, nn_hls ; DO ji = nn_hls + 1, jpi - nn_hls523 DO jf = 1, ipf ; DO jl = 1, ipl ; DO jk = 1, ipk ; DO jj = 1, nn_hls ; DO ji = 1, jpi 483 524 ARRAY_IN(ji,ishift+jj,jk,jl,jf) = ARRAY_IN(ji,ishift2+jj,jk,jl,jf) 484 END DO ; END DO ; END DO ; END DO ; END DO525 END DO ; END DO ; END DO ; END DO ; END DO 485 526 CASE ( jpfillcopy ) ! filling with inner domain values 486 DO jf = 1, ipf ; DO jl = 1, ipl ; DO jk = 1, ipk ; DO jj = 1, nn_hls ; DO ji = nn_hls + 1, jpi - nn_hls527 DO jf = 1, ipf ; DO jl = 1, ipl ; DO jk = 1, ipk ; DO jj = 1, nn_hls ; DO ji = 1, jpi 487 528 ARRAY_IN(ji,ishift+jj,jk,jl,jf) = ARRAY_IN(ji,ishift,jk,jl,jf) 488 END DO ; END DO ; END DO ; END DO ; END DO529 END DO ; END DO ; END DO ; END DO ; END DO 489 530 CASE ( jpfillcst ) ! filling with constant value 490 DO jf = 1, ipf ; DO jl = 1, ipl ; DO jk = 1, ipk ; DO jj = 1, nn_hls ; DO ji = nn_hls + 1, jpi - nn_hls531 DO jf = 1, ipf ; DO jl = 1, ipl ; DO jk = 1, ipk ; DO jj = 1, nn_hls ; DO ji = 1, jpi 491 532 ARRAY_IN(ji,ishift+jj,jk,jl,jf) = zland 492 END DO ; END DO ; END DO ; END DO ; END DO533 END DO ; END DO ; END DO ; END DO ; END DO 493 534 END SELECT 535 494 536 ! ---------------------- 495 537 ! 2.4 fill southern halo … … 502 544 idx = idx + 1 503 545 END DO; END DO ; END DO ; END DO ; END DO 546 IF(noswr .eq. -1) THEN 547 SELECT CASE ( ifill_we ) 548 CASE ( jpfillperio ) 549 ishift2 = jpi - 2 * nn_hls 550 DO jf = 1, ipf ; DO jl = 1, ipl ; DO jk = 1, ipk ; DO jj = 1, nn_hls ; DO ji = 1, nn_hls 551 ARRAY_IN(ji,jj,jk,jl,jf) = ARRAY_IN(ishift2+ji,jj,jk,jl,jf) 552 END DO ; END DO ; END DO ; END DO ; END DO 553 CASE ( jpfillcopy ) 554 DO jf = 1, ipf ; DO jl = 1, ipl ; DO jk = 1, ipk ; DO jj = 1, nn_hls ; DO ji = 1, nn_hls 555 ARRAY_IN(ji,jj,jk,jl,jf) = ARRAY_IN(nn_hls+1,jj,jk,jl,jf) 556 END DO ; END DO ; END DO ; END DO ; END DO 557 558 CASE ( jpfillcst ) 559 DO jf = 1, ipf ; DO jl = 1, ipl ; DO jk = 1, ipk ; DO jj = 1, nn_hls ; DO ji = 1, nn_hls 560 ARRAY_IN(ji,jj,jk,jl,jf) = zland 561 END DO ; END DO ; END DO ; END DO ; END DO 562 END SELECT 563 END IF 564 IF(noser .eq. -1) THEN 565 ishift = jpi - nn_hls 566 SELECT CASE ( ifill_ea ) 567 CASE ( jpfillperio ) 568 DO jf = 1, ipf ; DO jl = 1, ipl ; DO jk = 1, ipk ; DO jj = 1, nn_hls ; DO ji = 1, nn_hls 569 ARRAY_IN(ishift+ji,jj,jk,jl,jf) = ARRAY_IN(ji+nn_hls,jj,jk,jl,jf) 570 END DO ; END DO ; END DO ; END DO ; END DO 571 572 CASE ( jpfillcopy ) 573 DO jf = 1, ipf ; DO jl = 1, ipl ; DO jk = 1, ipk ; DO jj = 1, nn_hls ; DO ji = 1, nn_hls 574 ARRAY_IN(ishift+ji,jj,jk,jl,jf) = ARRAY_IN(ishift,jj,jk,jl,jf) 575 END DO ; END DO ; END DO ; END DO ; END DO 576 CASE ( jpfillcst ) 577 DO jf = 1, ipf ; DO jl = 1, ipl ; DO jk = 1, ipk ; DO jj = 1, nn_hls ; DO ji = 1, nn_hls 578 ARRAY_IN(ishift+ji,jj,jk,jl,jf) = zland 579 END DO ; END DO ; END DO ; END DO ; END DO 580 END SELECT 581 END IF 504 582 CASE ( jpfillperio ) ! use north-south periodicity 505 583 ishift2 = jpj - 2 * nn_hls 506 DO jf = 1, ipf ; DO jl = 1, ipl ; DO jk = 1, ipk ; DO jj = 1, nn_hls ; DO ji = nn_hls + 1, jpi - nn_hls584 DO jf = 1, ipf ; DO jl = 1, ipl ; DO jk = 1, ipk ; DO jj = 1, nn_hls ; DO ji = 1, jpi 507 585 ARRAY_IN(ji,jj,jk,jl,jf) = ARRAY_IN(ji,ishift2+jj,jk,jl,jf) 508 END DO ; END DO ; END DO ; END DO ; END DO586 END DO ; END DO ; END DO ; END DO ; END DO 509 587 CASE ( jpfillcopy ) ! filling with inner domain values 510 DO jf = 1, ipf ; DO jl = 1, ipl ; DO jk = 1, ipk ; DO jj = 1, nn_hls ; DO ji = nn_hls + 1, jpi - nn_hls588 DO jf = 1, ipf ; DO jl = 1, ipl ; DO jk = 1, ipk ; DO jj = 1, nn_hls ; DO ji = 1, jpi 511 589 ARRAY_IN(ji,jj,jk,jl,jf) = ARRAY_IN(ji,nn_hls+1,jk,jl,jf) 512 END DO ; END DO ; END DO ; END DO ; END DO590 END DO ; END DO ; END DO ; END DO ; END DO 513 591 CASE ( jpfillcst ) ! filling with constant value 514 DO jf = 1, ipf ; DO jl = 1, ipl ; DO jk = 1, ipk ; DO jj = 1, nn_hls ; DO ji = nn_hls + 1, jpi - nn_hls592 DO jf = 1, ipf ; DO jl = 1, ipl ; DO jk = 1, ipk ; DO jj = 1, nn_hls ; DO ji = 1, jpi 515 593 ARRAY_IN(ji,jj,jk,jl,jf) = zland 516 END DO ; END DO ; END DO ; END DO ; END DO594 END DO ; END DO ; END DO ; END DO ; END DO 517 595 END SELECT 518 596 ELSE … … 527 605 idx = idx + 1 528 606 END DO; END DO ; END DO ; END DO ; END DO 607 IF(noswr .eq. -1) THEN 608 SELECT CASE ( ifill_we ) 609 CASE ( jpfillperio ) 610 ishift2 = jpi - 2 * nn_hls 611 DO jf = 1, ipf ; DO jl = 1, ipl ; DO jk = 1, ipk ; DO jj = 1, nn_hls ; DO ji = 1, nn_hls 612 ARRAY_IN(ji,jj,jk,jl,jf) = ARRAY_IN(ishift2+ji,jj,jk,jl,jf) 613 END DO ; END DO ; END DO ; END DO ; END DO 614 CASE ( jpfillcopy ) 615 DO jf = 1, ipf ; DO jl = 1, ipl ; DO jk = 1, ipk ; DO jj = 1, nn_hls ; DO ji = 1, nn_hls 616 ARRAY_IN(ji,jj,jk,jl,jf) = ARRAY_IN(nn_hls+1,jj,jk,jl,jf) 617 END DO ; END DO ; END DO ; END DO ; END DO 618 619 CASE ( jpfillcst ) 620 DO jf = 1, ipf ; DO jl = 1, ipl ; DO jk = 1, ipk ; DO jj = 1, nn_hls ; DO ji = 1, nn_hls 621 ARRAY_IN(ji,jj,jk,jl,jf) = zland 622 END DO ; END DO ; END DO ; END DO ; END DO 623 END SELECT 624 END IF 625 IF(noser .eq. -1) THEN 626 ishift = jpi - nn_hls 627 SELECT CASE ( ifill_ea ) 628 CASE ( jpfillperio ) 629 DO jf = 1, ipf ; DO jl = 1, ipl ; DO jk = 1, ipk ; DO jj = 1, nn_hls ; DO ji = 1, nn_hls 630 ARRAY_IN(ishift+ji,jj,jk,jl,jf) = ARRAY_IN(ji+nn_hls,jj,jk,jl,jf) 631 END DO ; END DO ; END DO ; END DO ; END DO 632 633 CASE ( jpfillcopy ) 634 DO jf = 1, ipf ; DO jl = 1, ipl ; DO jk = 1, ipk ; DO jj = 1, nn_hls ; DO ji = 1, nn_hls 635 ARRAY_IN(ishift+ji,jj,jk,jl,jf) = ARRAY_IN(ishift,jj,jk,jl,jf) 636 END DO ; END DO ; END DO ; END DO ; END DO 637 CASE ( jpfillcst ) 638 DO jf = 1, ipf ; DO jl = 1, ipl ; DO jk = 1, ipk ; DO jj = 1, nn_hls ; DO ji = 1, nn_hls 639 ARRAY_IN(ishift+ji,jj,jk,jl,jf) = zland 640 END DO ; END DO ; END DO ; END DO ; END DO 641 END SELECT 642 END IF 529 643 CASE ( jpfillperio ) ! use north-south periodicity 530 644 ishift2 = jpj - 2 * nn_hls 531 DO jf = 1, ipf ; DO jl = 1, ipl ; DO jk = 1, ipk ; DO jj = 1, nn_hls ; DO ji = nn_hls + 1, jpi - nn_hls645 DO jf = 1, ipf ; DO jl = 1, ipl ; DO jk = 1, ipk ; DO jj = 1, nn_hls ; DO ji = 1, jpi 532 646 ARRAY_IN(ji,jj,jk,jl,jf) = ARRAY_IN(ji,ishift2+jj,jk,jl,jf) 533 END DO ; END DO ; END DO ; END DO ; END DO647 END DO ; END DO ; END DO ; END DO ; END DO 534 648 CASE ( jpfillcopy ) ! filling with inner domain values 535 DO jf = 1, ipf ; DO jl = 1, ipl ; DO jk = 1, ipk ; DO jj = 1, nn_hls ; DO ji = nn_hls + 1, jpi - nn_hls649 DO jf = 1, ipf ; DO jl = 1, ipl ; DO jk = 1, ipk ; DO jj = 1, nn_hls ; DO ji = 1, jpi 536 650 ARRAY_IN(ji,jj,jk,jl,jf) = ARRAY_IN(ji,nn_hls+1,jk,jl,jf) 537 END DO ; END DO ; END DO ; END DO ; END DO651 END DO ; END DO ; END DO ; END DO ; END DO 538 652 CASE ( jpfillcst ) ! filling with constant value 539 DO jf = 1, ipf ; DO jl = 1, ipl ; DO jk = 1, ipk ; DO jj = 1, nn_hls ; DO ji = nn_hls + 1, jpi - nn_hls653 DO jf = 1, ipf ; DO jl = 1, ipl ; DO jk = 1, ipk ; DO jj = 1, nn_hls ; DO ji = 1, jpi 540 654 ARRAY_IN(ji,jj,jk,jl,jf) = zland 541 END DO ; END DO ; END DO ; END DO ; END DO655 END DO ; END DO ; END DO ; END DO ; END DO 542 656 END SELECT 657 543 658 ! ---------------------- 544 659 ! 2.4 fill northern halo … … 552 667 idx = idx + 1 553 668 END DO ; END DO ; END DO ; END DO ; END DO 669 IF(nonwr .eq. -1) THEN 670 ishift = jpj - nn_hls 671 SELECT CASE ( ifill_we ) 672 CASE ( jpfillperio ) 673 ishift2 = jpi - 2 * nn_hls 674 DO jf = 1, ipf ; DO jl = 1, ipl ; DO jk = 1, ipk ; DO jj = 1 + ishift, jpj ; DO ji = 1, nn_hls 675 ARRAY_IN(ji,jj,jk,jl,jf) = ARRAY_IN(ishift2+ji,jj,jk,jl,jf) 676 END DO ; END DO ; END DO ; END DO ; END DO 677 CASE ( jpfillcopy ) 678 DO jf = 1, ipf ; DO jl = 1, ipl ; DO jk = 1, ipk ; DO jj = 1 + ishift, jpj ; DO ji = 1, nn_hls 679 ARRAY_IN(ji,jj,jk,jl,jf) = ARRAY_IN(nn_hls+1,jj,jk,jl,jf) 680 END DO ; END DO ; END DO ; END DO ; END DO 681 682 CASE ( jpfillcst ) 683 DO jf = 1, ipf ; DO jl = 1, ipl ; DO jk = 1, ipk ; DO jj = 1 + ishift, jpj ; DO ji = 1, nn_hls 684 ARRAY_IN(ji,jj,jk,jl,jf) = zland 685 END DO ; END DO ; END DO ; END DO ; END DO 686 END SELECT 687 END IF 688 IF(noner .eq. -1) THEN 689 ishift = jpi - nn_hls 690 ishift2 = jpj - nn_hls 691 SELECT CASE ( ifill_ea ) 692 CASE ( jpfillperio ) 693 DO jf = 1, ipf ; DO jl = 1, ipl ; DO jk = 1, ipk ; DO jj = 1 + ishift2, jpj ; DO ji = 1, nn_hls 694 ARRAY_IN(ishift+ji,jj,jk,jl,jf) = ARRAY_IN(ji,jj,jk,jl,jf) 695 END DO ; END DO ; END DO ; END DO ; END DO 696 697 CASE ( jpfillcopy ) 698 DO jf = 1, ipf ; DO jl = 1, ipl ; DO jk = 1, ipk ; DO jj = 1 + ishift2, jpj ; DO ji = 1, nn_hls 699 ARRAY_IN(ishift+ji,jj,jk,jl,jf) = ARRAY_IN(ishift,jj,jk,jl,jf) 700 END DO ; END DO ; END DO ; END DO ; END DO 701 CASE ( jpfillcst ) 702 DO jf = 1, ipf ; DO jl = 1, ipl ; DO jk = 1, ipk ; DO jj = 1 + ishift2, jpj ; DO ji = 1, nn_hls 703 ARRAY_IN(ishift+ji,jj,jk,jl,jf) = zland 704 END DO ; END DO ; END DO ; END DO ; END DO 705 END SELECT 706 END IF 554 707 CASE ( jpfillperio ) ! use north-south periodicity 555 708 ishift2 = nn_hls 556 DO jf = 1, ipf ; DO jl = 1, ipl ; DO jk = 1, ipk ; DO jj = 1, nn_hls ; DO ji = nn_hls + 1, jpi - nn_hls709 DO jf = 1, ipf ; DO jl = 1, ipl ; DO jk = 1, ipk ; DO jj = 1, nn_hls ; DO ji = 1, jpi 557 710 ARRAY_IN(ji,ishift+jj,jk,jl,jf) = ARRAY_IN(ji,ishift2+jj,jk,jl,jf) 558 END DO ; END DO ; END DO ; END DO ; END DO711 END DO ; END DO ; END DO ; END DO ; END DO 559 712 CASE ( jpfillcopy ) ! filling with inner domain values 560 DO jf = 1, ipf ; DO jl = 1, ipl ; DO jk = 1, ipk ; DO jj = 1, nn_hls ; DO ji = nn_hls + 1, jpi - nn_hls713 DO jf = 1, ipf ; DO jl = 1, ipl ; DO jk = 1, ipk ; DO jj = 1, nn_hls ; DO ji = 1, jpi 561 714 ARRAY_IN(ji,ishift+jj,jk,jl,jf) = ARRAY_IN(ji,ishift,jk,jl,jf) 562 END DO ; END DO ; END DO ; END DO ; END DO715 END DO ; END DO ; END DO ; END DO ; END DO 563 716 CASE ( jpfillcst ) ! filling with constant value 564 DO jf = 1, ipf ; DO jl = 1, ipl ; DO jk = 1, ipk ; DO jj = 1, nn_hls ; DO ji = nn_hls + 1, jpi - nn_hls717 DO jf = 1, ipf ; DO jl = 1, ipl ; DO jk = 1, ipk ; DO jj = 1, nn_hls ; DO ji = 1, jpi 565 718 ARRAY_IN(ji,ishift+jj,jk,jl,jf) = zland 566 END DO ; END DO ; END DO ; END DO ; END DO719 END DO ; END DO ; END DO ; END DO ; END DO 567 720 END SELECT 568 721 ENDIF -
NEMO/branches/2020/dev_r13296_HPC-07_mocavero_mpi3/src/OCE/LDF/ldfslp.F90
r13630 r13807 229 229 !!gm end modif 230 230 END_3D 231 #if defined key_mpi3 232 CALL lbc_lnk_nc_multi( 'ldfslp', zwz, 'U', -1.0_wp, zww, 'V', -1.0_wp ) ! lateral boundary conditions 233 #else 231 234 CALL lbc_lnk_multi( 'ldfslp', zwz, 'U', -1.0_wp, zww, 'V', -1.0_wp ) ! lateral boundary conditions 235 #endif 232 236 ! 233 237 ! !* horizontal Shapiro filter … … 303 307 !!gm end modif 304 308 END_3D 309 #if defined key_mpi3 310 CALL lbc_lnk_nc_multi( 'ldfslp', zwz, 'T', -1.0_wp, zww, 'T', -1.0_wp ) ! lateral boundary conditions 311 #else 305 312 CALL lbc_lnk_multi( 'ldfslp', zwz, 'T', -1.0_wp, zww, 'T', -1.0_wp ) ! lateral boundary conditions 313 #endif 306 314 ! 307 315 ! !* horizontal Shapiro filter -
NEMO/branches/2020/dev_r13296_HPC-07_mocavero_mpi3/src/OCE/SBC/fldread.F90
r13571 r13807 372 372 CALL wgt_list( sdjf, iw ) 373 373 CALL fld_interp( sdjf%num, sdjf%clvar, iw, ipk, dta_alias(:,:,:), sdjf%nrec(1,iaa), sdjf%lsmname ) 374 #if defined key_mpi3 375 CALL lbc_lnk_nc_multi( 'fldread', dta_alias(:,:,:), sdjf%cltype, sdjf%zsgn, kfillmode = jpfillcopy ) 376 #else 374 377 CALL lbc_lnk( 'fldread', dta_alias(:,:,:), sdjf%cltype, sdjf%zsgn, kfillmode = jpfillcopy ) 378 #endif 375 379 ELSE ! default case 376 380 ! C1D case: If product of spatial dimensions == ipk, then x,y are of … … 383 387 IF( lk_c1d .AND. lmoor ) THEN 384 388 CALL iom_get( sdjf%num, jpdom_unknown, sdjf%clvar, dta_alias(2,2,:), sdjf%nrec(1,iaa) ) ! jpdom_unknown -> no lbc_lnk 389 #if defined key_mpi3 390 CALL lbc_lnk_nc_multi( 'fldread', dta_alias(:,:,:), 'T', 1., kfillmode = jpfillcopy ) 391 #else 385 392 CALL lbc_lnk( 'fldread', dta_alias(:,:,:), 'T', 1., kfillmode = jpfillcopy ) 393 #endif 386 394 ELSE 387 395 CALL iom_get( sdjf%num, jpdom_global, sdjf%clvar, dta_alias(:,:,:), sdjf%nrec(1,iaa), & -
NEMO/branches/2020/dev_r13296_HPC-07_mocavero_mpi3/src/OCE/SBC/geo2ocean.F90
r13295 r13807 272 272 ! =========================== ! 273 273 ! ! lateral boundary cond.: T-, U-, V-, F-pts, sgn 274 #if defined key_mpi3 275 CALL lbc_lnk_nc_multi( 'geo2ocean', gcost, 'T', -1.0_wp, gsint, 'T', -1.0_wp, gcosu, 'U', -1.0_wp, gsinu, 'U', -1.0_wp, & 276 & gcosv, 'V', -1.0_wp, gsinv, 'V', -1.0_wp, gcosf, 'F', -1.0_wp, gsinf, 'F', -1.0_wp ) 277 #else 274 278 CALL lbc_lnk_multi( 'geo2ocean', gcost, 'T', -1.0_wp, gsint, 'T', -1.0_wp, gcosu, 'U', -1.0_wp, gsinu, 'U', -1.0_wp, & 275 279 & gcosv, 'V', -1.0_wp, gsinv, 'V', -1.0_wp, gcosf, 'F', -1.0_wp, gsinf, 'F', -1.0_wp ) 280 #endif 276 281 ! 277 282 END SUBROUTINE angle -
NEMO/branches/2020/dev_r13296_HPC-07_mocavero_mpi3/src/OCE/SBC/sbcwave.F90
r13630 r13807 199 199 ENDIF 200 200 201 #if defined key_mpi3 202 CALL lbc_lnk_nc_multi( 'sbcwave', usd, 'U', -1.0_wp, vsd, 'V', -1.0_wp ) 203 #else 201 204 CALL lbc_lnk_multi( 'sbcwave', usd, 'U', -1.0_wp, vsd, 'V', -1.0_wp ) 205 #endif 202 206 203 207 ! -
NEMO/branches/2020/dev_r13296_HPC-07_mocavero_mpi3/src/OCE/TRA/traatf.F90
r13295 r13807 110 110 #endif 111 111 ! ! local domain boundaries (T-point, unchanged sign) 112 #if defined key_mpi3 113 CALL lbc_lnk_nc_multi( 'traatf', pts(:,:,:,jp_tem,Kaa), 'T', 1.0_wp, pts(:,:,:,jp_sal,Kaa), 'T', 1.0_wp ) 114 #else 112 115 CALL lbc_lnk_multi( 'traatf', pts(:,:,:,jp_tem,Kaa), 'T', 1.0_wp, pts(:,:,:,jp_sal,Kaa), 'T', 1.0_wp ) 116 #endif 113 117 ! 114 118 IF( ln_bdy ) CALL bdy_tra( kt, Kbb, pts, Kaa ) ! BDY open boundaries … … 156 160 ENDIF 157 161 ! 162 #if defined key_mpi3 163 CALL lbc_lnk_nc_multi( 'traatf', pts(:,:,:,jp_tem,Kbb) , 'T', 1.0_wp, pts(:,:,:,jp_sal,Kbb) , 'T', 1.0_wp, & 164 & pts(:,:,:,jp_tem,Kmm) , 'T', 1.0_wp, pts(:,:,:,jp_sal,Kmm) , 'T', 1.0_wp, & 165 & pts(:,:,:,jp_tem,Kaa), 'T', 1.0_wp, pts(:,:,:,jp_sal,Kaa), 'T', 1.0_wp ) 166 #else 158 167 CALL lbc_lnk_multi( 'traatf', pts(:,:,:,jp_tem,Kbb) , 'T', 1.0_wp, pts(:,:,:,jp_sal,Kbb) , 'T', 1.0_wp, & 159 168 & pts(:,:,:,jp_tem,Kmm) , 'T', 1.0_wp, pts(:,:,:,jp_sal,Kmm) , 'T', 1.0_wp, & 160 169 & pts(:,:,:,jp_tem,Kaa), 'T', 1.0_wp, pts(:,:,:,jp_sal,Kaa), 'T', 1.0_wp ) 170 #endif 161 171 ! 162 172 ENDIF -
NEMO/branches/2020/dev_r13296_HPC-07_mocavero_mpi3/src/OCE/lib_fortran.F90
r13571 r13807 229 229 ENDIF 230 230 END_2D 231 #if defined key_mpi3 232 CALL lbc_lnk_nc_multi( 'lib_fortran', p2d, 'T', 1.0_wp ) 233 #else 231 234 CALL lbc_lnk( 'lib_fortran', p2d, 'T', 1.0_wp ) 235 #endif 232 236 ! no need for 2nd exchange when nn_hls = 2 233 237 IF( nn_hls /= 2 ) THEN … … 248 252 IF( MOD(mjg(jpj-2), 3) == 0 ) p2d(:,jpj-1) = p2d(:, jpj) 249 253 ENDIF 254 #if defined key_mpi3 255 CALL lbc_lnk_nc_multi( 'lib_fortran', p2d, 'T', 1.0_wp ) 256 #else 250 257 CALL lbc_lnk( 'lib_fortran', p2d, 'T', 1.0_wp ) 258 #endif 251 259 ENDIF 252 260 … … 284 292 END_2D 285 293 END DO 294 #if defined key_mpi3 295 CALL lbc_lnk_nc_multi( 'lib_fortran', p3d, 'T', 1.0_wp ) 296 #else 286 297 CALL lbc_lnk( 'lib_fortran', p3d, 'T', 1.0_wp ) 298 #endif 287 299 ! no need for 2nd exchange when nn_hls = 2 288 300 IF( nn_hls /= 2 ) THEN … … 303 315 IF( MOD(mjg(jpj-2), 3) == 0 ) p3d(:,jpj-1,:) = p3d(:, jpj,:) 304 316 ENDIF 317 #if defined key_mpi3 318 CALL lbc_lnk_nc_multi( 'lib_fortran', p3d, 'T', 1.0_wp ) 319 #else 305 320 CALL lbc_lnk( 'lib_fortran', p3d, 'T', 1.0_wp ) 321 #endif 306 322 ENDIF 307 323 -
NEMO/branches/2020/dev_r13296_HPC-07_mocavero_mpi3/tests/CANAL/MY_SRC/domvvl.F90
r13632 r13807 725 725 & + e1e2t(ji+1,jj) * ( pe3_in(ji+1,jj,jk) - e3t_0(ji+1,jj,jk) ) ) 726 726 END_3D 727 #if defined key_mpi3 728 CALL lbc_lnk_nc_multi( 'domvvl', pe3_out(:,:,:), 'U', 1._wp ) 729 #else 727 730 CALL lbc_lnk( 'domvvl', pe3_out(:,:,:), 'U', 1._wp ) 731 #endif 728 732 pe3_out(:,:,:) = pe3_out(:,:,:) + e3u_0(:,:,:) 729 733 ! … … 734 738 & + e1e2t(ji,jj+1) * ( pe3_in(ji,jj+1,jk) - e3t_0(ji,jj+1,jk) ) ) 735 739 END_3D 740 #if defined key_mpi3 741 CALL lbc_lnk_nc_multi( 'domvvl', pe3_out(:,:,:), 'V', 1._wp ) 742 #else 736 743 CALL lbc_lnk( 'domvvl', pe3_out(:,:,:), 'V', 1._wp ) 744 #endif 737 745 pe3_out(:,:,:) = pe3_out(:,:,:) + e3v_0(:,:,:) 738 746 ! … … 744 752 & + e1e2u(ji,jj+1) * ( pe3_in(ji,jj+1,jk) - e3u_0(ji,jj+1,jk) ) ) 745 753 END_3D 754 #if defined key_mpi3 755 CALL lbc_lnk_nc_multi( 'domvvl', pe3_out(:,:,:), 'F', 1._wp ) 756 #else 746 757 CALL lbc_lnk( 'domvvl', pe3_out(:,:,:), 'F', 1._wp ) 758 #endif 747 759 pe3_out(:,:,:) = pe3_out(:,:,:) + e3f_0(:,:,:) 748 760 ! -
NEMO/branches/2020/dev_r13296_HPC-07_mocavero_mpi3/tests/VORTEX/MY_SRC/domvvl.F90
r13632 r13807 725 725 & + e1e2t(ji+1,jj) * ( pe3_in(ji+1,jj,jk) - e3t_0(ji+1,jj,jk) ) ) 726 726 END_3D 727 #if defined key_mpi3 728 CALL lbc_lnk_nc_multi( 'domvvl', pe3_out(:,:,:), 'U', 1._wp ) 729 #else 727 730 CALL lbc_lnk( 'domvvl', pe3_out(:,:,:), 'U', 1._wp ) 731 #endif 728 732 pe3_out(:,:,:) = pe3_out(:,:,:) + e3u_0(:,:,:) 729 733 ! … … 734 738 & + e1e2t(ji,jj+1) * ( pe3_in(ji,jj+1,jk) - e3t_0(ji,jj+1,jk) ) ) 735 739 END_3D 740 #if defined key_mpi3 741 CALL lbc_lnk_nc_multi( 'domvvl', pe3_out(:,:,:), 'V', 1._wp ) 742 #else 736 743 CALL lbc_lnk( 'domvvl', pe3_out(:,:,:), 'V', 1._wp ) 744 #endif 737 745 pe3_out(:,:,:) = pe3_out(:,:,:) + e3v_0(:,:,:) 738 746 ! … … 744 752 & + e1e2u(ji,jj+1) * ( pe3_in(ji,jj+1,jk) - e3u_0(ji,jj+1,jk) ) ) 745 753 END_3D 754 #if defined key_mpi3 755 CALL lbc_lnk_nc_multi( 'domvvl', pe3_out(:,:,:), 'F', 1._wp ) 756 #else 746 757 CALL lbc_lnk( 'domvvl', pe3_out(:,:,:), 'F', 1._wp ) 758 #endif 747 759 pe3_out(:,:,:) = pe3_out(:,:,:) + e3f_0(:,:,:) 748 760 ! -
NEMO/branches/2020/dev_r13296_HPC-07_mocavero_mpi3/tests/VORTEX/MY_SRC/usrdef_zgr.F90
r12740 r13807 190 190 z2d(:,:) = REAL( jpkm1 , wp ) ! flat bottom 191 191 ! 192 #if defined key_mpi3 193 CALL lbc_lnk_nc_multi( 'usrdef_zgr', z2d, 'T', 1. ) ! set surrounding land to zero (here jperio=0 ==>> closed) 194 #else 192 195 CALL lbc_lnk( 'usrdef_zgr', z2d, 'T', 1. ) ! set surrounding land to zero (here jperio=0 ==>> closed) 196 #endif 193 197 ! 194 198 k_bot(:,:) = NINT( z2d(:,:) ) ! =jpkm1 over the ocean point, =0 elsewhere
Note: See TracChangeset
for help on using the changeset viewer.