diff --git a/src/ICE/icedyn_adv_umx.F90 b/src/ICE/icedyn_adv_umx.F90 index 00f4d58e3b8d2709d5234e9c77b8e13bcb486888..2aa6a5eb7983c14b9485aeee34b4f18d4d70b41c 100644 --- a/src/ICE/icedyn_adv_umx.F90 +++ b/src/ICE/icedyn_adv_umx.F90 @@ -664,7 +664,6 @@ CONTAINS pt_ups(ji,jj,jl) = ( pt(ji,jj,jl) + ztra * pdt * r1_e1e2t(ji,jj) ) * tmask(ji,jj,1) END_2D END DO - IF( nn_hls == 1 ) CALL lbc_lnk( 'icedyn_adv_umx', pt_ups, 'T', 1.0_wp ) END SUBROUTINE upstream @@ -895,7 +894,6 @@ CONTAINS !!$ END DO !!$ END DO END DO - IF( nn_hls == 1 ) CALL lbc_lnk( 'icedyn_adv_umx', ztu2, 'T', 1.0_wp ) ! ! !-- BiLaplacian in i-direction --! DO jl = 1, jpl @@ -1043,7 +1041,6 @@ CONTAINS ztv2(ji,jj,jl) = ( ztv1(ji,jj,jl) - ztv1(ji,jj-1,jl) ) * r1_e2t(ji,jj) END_2D END DO - IF( nn_hls == 1 ) CALL lbc_lnk( 'icedyn_adv_umx', ztv2, 'T', 1.0_wp ) ! ! !-- BiLaplacian in j-direction --! DO jl = 1, jpl @@ -1331,7 +1328,6 @@ CONTAINS zslpx(ji,jj,jl) = ( pt(ji+1,jj,jl) - pt(ji,jj,jl) ) * umask(ji,jj,1) END_2D END DO - IF( nn_hls == 1 ) CALL lbc_lnk( 'icedyn_adv_umx', zslpx, 'U', -1.0_wp) ! lateral boundary cond. DO jl = 1, jpl DO_2D( nn_hls-1, 0, 0, 0 ) @@ -1395,7 +1391,6 @@ CONTAINS ENDIF END_2D END DO - IF( nn_hls == 1 ) CALL lbc_lnk( 'icedyn_adv_umx', pfu_ho, 'U', -1.0_wp) ! lateral boundary cond. ! END SUBROUTINE limiter_x @@ -1422,7 +1417,6 @@ CONTAINS zslpy(ji,jj,jl) = ( pt(ji,jj+1,jl) - pt(ji,jj,jl) ) * vmask(ji,jj,1) END_2D END DO - IF( nn_hls == 1 ) CALL lbc_lnk( 'icedyn_adv_umx', zslpy, 'V', -1.0_wp) ! lateral boundary cond. DO jl = 1, jpl DO_2D( 0, 0, nn_hls-1, 0 ) @@ -1487,7 +1481,6 @@ CONTAINS ENDIF END_2D END DO - IF( nn_hls == 1 ) CALL lbc_lnk( 'icedyn_adv_umx', pfv_ho, 'V', -1.0_wp) ! lateral boundary cond. ! END SUBROUTINE limiter_y diff --git a/src/ICE/icedyn_rhg_eap.F90 b/src/ICE/icedyn_rhg_eap.F90 index 7ab1d2ccaa87405badb326ea43e27584fea3b3b0..18f923ee460333f89acda1cb3b6f2ff291262e55 100644 --- a/src/ICE/icedyn_rhg_eap.F90 +++ b/src/ICE/icedyn_rhg_eap.F90 @@ -574,7 +574,6 @@ CONTAINS & ) * zmsk00y(ji,jj) ENDIF END_2D - IF( nn_hls == 1 ) CALL lbc_lnk( 'icedyn_rhg_eap', v_ice, 'V', -1.0_wp ) ! DO_2D( 0, 0, 0, 0 ) ! !--- tau_io/(u_oce - u_ice) @@ -620,9 +619,8 @@ CONTAINS & ) * zmsk00x(ji,jj) ENDIF END_2D - IF( nn_hls == 1 ) THEN ; CALL lbc_lnk( 'icedyn_rhg_eap', u_ice, 'U', -1.0_wp ) - ELSE ; CALL lbc_lnk( 'icedyn_rhg_eap', u_ice, 'U', -1.0_wp, v_ice, 'V', -1.0_wp ) - ENDIF + + CALL lbc_lnk( 'icedyn_rhg_eap', u_ice, 'U', -1.0_wp, v_ice, 'V', -1.0_wp ) ! ELSE ! odd iterations ! @@ -670,7 +668,6 @@ CONTAINS & ) * zmsk00x(ji,jj) ENDIF END_2D - IF( nn_hls == 1 ) CALL lbc_lnk( 'icedyn_rhg_eap', u_ice, 'U', -1.0_wp ) ! DO_2D( 0, 0, 0, 0 ) ! !--- tau_io/(v_oce - v_ice) @@ -716,9 +713,8 @@ CONTAINS & ) * zmsk00y(ji,jj) ENDIF END_2D - IF( nn_hls == 1 ) THEN ; CALL lbc_lnk( 'icedyn_rhg_eap', v_ice, 'V', -1.0_wp ) - ELSE ; CALL lbc_lnk( 'icedyn_rhg_eap', u_ice, 'U', -1.0_wp, v_ice, 'V', -1.0_wp ) - ENDIF + ! + CALL lbc_lnk( 'icedyn_rhg_eap', u_ice, 'U', -1.0_wp, v_ice, 'V', -1.0_wp ) ! ENDIF #if defined key_agrif diff --git a/src/ICE/icedyn_rhg_evp.F90 b/src/ICE/icedyn_rhg_evp.F90 index 46898cf6b8f307dca435c2832a99035f3c50bcdf..200e2b2e4164874b2bf29fb6d33aa3fcd584012f 100644 --- a/src/ICE/icedyn_rhg_evp.F90 +++ b/src/ICE/icedyn_rhg_evp.F90 @@ -557,7 +557,6 @@ CONTAINS ! END_2D ! - IF( nn_hls == 1 ) CALL lbc_lnk( 'icedyn_rhg_evp', v_ice, 'V', -1.0_wp ) ! DO_2D( 0, 0, 0, 0 ) ! !--- tau_io/(u_oce - u_ice) @@ -606,9 +605,7 @@ CONTAINS ! END_2D ! - IF( nn_hls == 1 ) THEN ; CALL lbc_lnk( 'icedyn_rhg_evp', u_ice, 'U', -1.0_wp ) - ELSE ; CALL lbc_lnk( 'icedyn_rhg_evp', u_ice, 'U', -1.0_wp, v_ice, 'V', -1.0_wp ) - ENDIF + CALL lbc_lnk( 'icedyn_rhg_evp', u_ice, 'U', -1.0_wp, v_ice, 'V', -1.0_wp ) ! ELSE ! odd iterations ! @@ -659,7 +656,6 @@ CONTAINS ! END_2D ! - IF( nn_hls == 1 ) CALL lbc_lnk( 'icedyn_rhg_evp', u_ice, 'U', -1.0_wp ) ! DO_2D( 0, 0, 0, 0 ) ! !--- tau_io/(v_oce - v_ice) @@ -708,9 +704,7 @@ CONTAINS ! END_2D ! - IF( nn_hls == 1 ) THEN ; CALL lbc_lnk( 'icedyn_rhg_evp', v_ice, 'V', -1.0_wp ) - ELSE ; CALL lbc_lnk( 'icedyn_rhg_evp', u_ice, 'U', -1.0_wp, v_ice, 'V', -1.0_wp ) - ENDIF + CALL lbc_lnk( 'icedyn_rhg_evp', u_ice, 'U', -1.0_wp, v_ice, 'V', -1.0_wp ) ! ENDIF ! diff --git a/src/ICE/icedyn_rhg_vp.F90 b/src/ICE/icedyn_rhg_vp.F90 index 53073a428a35e5f8dd37e56e7b26db449c3353ff..3486e77cd349c835d0f38f6c419b60cbe2f05ea9 100644 --- a/src/ICE/icedyn_rhg_vp.F90 +++ b/src/ICE/icedyn_rhg_vp.F90 @@ -1623,8 +1623,6 @@ CONTAINS END_2D - IF( nn_hls == 1 ) CALL lbc_lnk( 'icedyn_rhg_cvg_vp', zu_res, 'U', 1., zv_res , 'V', 1. ) - DO_2D( 0, 0, 0, 0 ) !clem check bounds pvel_res(ji,jj) = 0.25_wp * ( ( zu_res(ji-1,jj) + zu_res(ji,jj) ) + ( zv_res(ji,jj-1) + zv_res(ji,jj) ) ) diff --git a/src/ICE/iceupdate.F90 b/src/ICE/iceupdate.F90 index 3e6a29c042560bf92cb6efeb89ee02bd319d06f8..397c7f4af63a7bd8f19deab97baf6dea67043303 100644 --- a/src/ICE/iceupdate.F90 +++ b/src/ICE/iceupdate.F90 @@ -372,7 +372,6 @@ CONTAINS ! tmod_io(ji,jj) = zrhoco * SQRT( zmodt ) END_2D - IF( nn_hls == 1 ) CALL lbc_lnk( 'iceupdate', tmod_io, 'T', 1._wp ) ! DO_2D( 0, 0, 0, 0 ) !* save the air-ocean stresses at ice time-step ! ! 2*(U_ice-U_oce) at T-point diff --git a/src/OCE/BDY/bdydyn2d.F90 b/src/OCE/BDY/bdydyn2d.F90 index f3971aea4d74d612d59d3acb0dd7906fa99cc860..a40d289767d53cae7f97a792e8ccc39bcc1678d4 100644 --- a/src/OCE/BDY/bdydyn2d.F90 +++ b/src/OCE/BDY/bdydyn2d.F90 @@ -80,11 +80,7 @@ CONTAINS END SELECT ENDDO ! - IF( nn_hls > 1 .AND. ir == 1 ) CYCLE ! at least 2 halos will be corrected -> no need to correct rim 1 before rim 0 - IF( nn_hls == 1 ) THEN - llsend2(:) = .false. ; llrecv2(:) = .false. - llsend3(:) = .false. ; llrecv3(:) = .false. - END IF + IF( ir == 1 ) CYCLE ! at least 2 halos will be corrected -> no need to correct rim 1 before rim 0 DO ib_bdy=1, nb_bdy SELECT CASE( cn_dyn2d(ib_bdy) ) CASE('flather') @@ -321,7 +317,6 @@ CONTAINS !!---------------------------------------------------------------------- llsend1(:) = .false. ; llrecv1(:) = .false. DO ir = 1, 0, -1 ! treat rim 1 before rim 0 - IF( nn_hls == 1 ) THEN ; llsend1(:) = .false. ; llrecv1(:) = .false. ; END IF IF( ir == 0 ) THEN ; llrim0 = .TRUE. ELSE ; llrim0 = .FALSE. END IF @@ -330,7 +325,7 @@ CONTAINS llsend1(:) = llsend1(:) .OR. lsend_bdyint(ib_bdy,1,:,ir) ! possibly every direction, T points llrecv1(:) = llrecv1(:) .OR. lrecv_bdyint(ib_bdy,1,:,ir) ! possibly every direction, T points END DO - IF( nn_hls > 1 .AND. ir == 1 ) CYCLE ! at least 2 halos will be corrected -> no need to correct rim 1 before rim 0 + IF( ir == 1 ) CYCLE ! at least 2 halos will be corrected -> no need to correct rim 1 before rim 0 IF( ANY(llsend1) .OR. ANY(llrecv1) ) THEN ! if need to send/recv in at least one direction CALL lbc_lnk( 'bdydyn2d', zssh(:,:,1), 'T', 1.0_wp, kfillmode=jpfillnothing ,lsend=llsend1, lrecv=llrecv1 ) END IF diff --git a/src/OCE/BDY/bdydyn3d.F90 b/src/OCE/BDY/bdydyn3d.F90 index 8b4bd77d39a793a058f71f28bc797589b66d90eb..5011da6eb7bb6281587d52205b3275b1942f670a 100644 --- a/src/OCE/BDY/bdydyn3d.F90 +++ b/src/OCE/BDY/bdydyn3d.F90 @@ -73,11 +73,7 @@ CONTAINS END SELECT END DO ! - IF( nn_hls > 1 .AND. ir == 1 ) CYCLE ! at least 2 halos will be corrected -> no need to correct rim 1 before rim 0 - IF( nn_hls == 1 ) THEN - llsend2(:) = .false. ; llrecv2(:) = .false. - llsend3(:) = .false. ; llrecv3(:) = .false. - END IF + IF( ir == 1 ) CYCLE ! at least 2 halos will be corrected -> no need to correct rim 1 before rim 0 DO ib_bdy=1, nb_bdy SELECT CASE( cn_dyn3d(ib_bdy) ) CASE('orlanski', 'orlanski_npo') diff --git a/src/OCE/BDY/bdyice.F90 b/src/OCE/BDY/bdyice.F90 index 409e0cadc2213b470cfe119587520af8330799d8..c5357c3bf8994fe2503f5b2dd1f90aed36c5632f 100644 --- a/src/OCE/BDY/bdyice.F90 +++ b/src/OCE/BDY/bdyice.F90 @@ -81,8 +81,7 @@ CONTAINS END DO ! ! Update bdy points - IF( nn_hls > 1 .AND. ir == 1 ) CYCLE ! at least 2 halos will be corrected -> no need to correct rim 1 before rim 0 - IF( nn_hls == 1 ) THEN ; llsend1(:) = .false. ; llrecv1(:) = .false. ; END IF + IF( ir == 1 ) CYCLE ! at least 2 halos will be corrected -> no need to correct rim 1 before rim 0 DO jbdy = 1, nb_bdy IF( cn_ice(jbdy) == 'frs' ) THEN llsend1(:) = llsend1(:) .OR. lsend_bdyint(jbdy,1,:,ir) ! possibly every direction, T points @@ -431,8 +430,7 @@ CONTAINS ! SELECT CASE ( cd_type ) CASE ( 'U' ) - IF( nn_hls > 1 .AND. ir == 1 ) CYCLE ! at least 2 halos will be corrected -> no need to correct rim 1 before rim 0 - IF( nn_hls == 1 ) THEN ; llsend2(:) = .false. ; llrecv2(:) = .false. ; END IF + IF( ir == 1 ) CYCLE ! at least 2 halos will be corrected -> no need to correct rim 1 before rim 0 DO jbdy = 1, nb_bdy IF( cn_ice(jbdy) == 'frs' .AND. nn_ice_dta(jbdy) /= 0 ) THEN llsend2( : ) = llsend2( : ) .OR. lsend_bdyint(jbdy,2, : ,ir) ! possibly every direction, U points @@ -447,8 +445,7 @@ CONTAINS CALL lbc_lnk( 'bdyice', u_ice, 'U', -1.0_wp, kfillmode=jpfillnothing ,lsend=llsend2, lrecv=llrecv2 ) END IF CASE ( 'V' ) - IF( nn_hls > 1 .AND. ir == 1 ) CYCLE ! at least 2 halos will be corrected -> no need to correct rim 1 before rim 0 - IF( nn_hls == 1 ) THEN ; llsend3(:) = .false. ; llrecv3(:) = .false. ; END IF + IF( ir == 1 ) CYCLE ! at least 2 halos will be corrected -> no need to correct rim 1 before rim 0 DO jbdy = 1, nb_bdy IF( cn_ice(jbdy) == 'frs' .AND. nn_ice_dta(jbdy) /= 0 ) THEN llsend3( : ) = llsend3( : ) .OR. lsend_bdyint(jbdy,3, : ,ir) ! possibly every direction, V points diff --git a/src/OCE/BDY/bdytra.F90 b/src/OCE/BDY/bdytra.F90 index 333fdf7f3f21d73a24ff0642aef7d988020e46e1..db4cfcf2ab6b707432430931dc2f44d30e4eff7c 100644 --- a/src/OCE/BDY/bdytra.F90 +++ b/src/OCE/BDY/bdytra.F90 @@ -87,8 +87,7 @@ CONTAINS END DO END DO ! - IF( nn_hls > 1 .AND. ir == 1 ) CYCLE ! at least 2 halos will be corrected -> no need to correct rim 1 before rim 0 - IF( nn_hls == 1 ) THEN ; llsend1(:) = .false. ; llrecv1(:) = .false. ; ENDIF + IF( ir == 1 ) CYCLE ! at least 2 halos will be corrected -> no need to correct rim 1 before rim 0 DO ib_bdy=1, nb_bdy SELECT CASE( cn_tra(ib_bdy) ) CASE('neumann','runoff') diff --git a/src/OCE/DOM/domqco.F90 b/src/OCE/DOM/domqco.F90 index 678fd864db49e27b9bca9dc2a2a07b04b88a7a86..f5a27e9e694a2b9593b642aa5e306f371b27228f 100644 --- a/src/OCE/DOM/domqco.F90 +++ b/src/OCE/DOM/domqco.F90 @@ -132,9 +132,9 @@ CONTAINS CALL dom_qco_r3c( ssh(:,:,Kmm), r3t(:,:,Kmm), r3u(:,:,Kmm), r3v(:,:,Kmm), r3f(:,:) ) #endif ! dom_qco_r3c defines over [nn_hls, nn_hls-1, nn_hls, nn_hls-1] - IF( nn_hls == 2 ) CALL lbc_lnk( 'dom_qco_zgr', r3u(:,:,Kbb), 'U', 1._wp, r3v(:,:,Kbb), 'V', 1._wp, & - & r3u(:,:,Kmm), 'U', 1._wp, r3v(:,:,Kmm), 'V', 1._wp, r3f(:,:), 'F', 1._wp ) - ! ! r3f is needed for agrif + CALL lbc_lnk( 'dom_qco_zgr', r3u(:,:,Kbb), 'U', 1._wp, r3v(:,:,Kbb), 'V', 1._wp, & + & r3u(:,:,Kmm), 'U', 1._wp, r3v(:,:,Kmm), 'V', 1._wp, r3f(:,:), 'F', 1._wp ) + ! ! r3f is needed for agrif END SUBROUTINE dom_qco_zgr @@ -170,11 +170,7 @@ CONTAINS & + e1e2t(ji,jj+1) * pssh(ji,jj+1) ) * r1_hv_0(ji,jj) * r1_e1e2v(ji,jj) END_2D ! - IF( .NOT.PRESENT( pr3f ) ) THEN !- lbc on ratio at u-, v-points only - IF (nn_hls==1) CALL lbc_lnk( 'dom_qco_r3c', pr3u, 'U', 1._wp, pr3v, 'V', 1._wp ) - ! - ! - ELSE !== ratio at f-point ==! + IF( PRESENT( pr3f ) ) THEN !== ratio at f-point ==! ! DO_2D_OVR( nn_hls, nn_hls-1, nn_hls, nn_hls-1 ) ! round brackets added to fix the order of floating point operations @@ -185,8 +181,6 @@ CONTAINS & + e1e2t(ji+1,jj+1) * pssh(ji+1,jj+1) ) & ! add () for NP reproducibility & ) * r1_hf_0(ji,jj) * r1_e1e2f(ji,jj) END_2D - ! ! lbc on ratio at u-,v-,f-points - IF (nn_hls==1) CALL lbc_lnk( 'dom_qco_r3c', pr3u, 'U', 1._wp, pr3v, 'V', 1._wp, pr3f, 'F', 1._wp ) ! ENDIF ! diff --git a/src/OCE/DOM/domtile.F90 b/src/OCE/DOM/domtile.F90 index dd391b709044048c4aade3bd090ddb86c87d713b..5b493ca99f74cab0956d804b1f89d7edc79b39a9 100644 --- a/src/OCE/DOM/domtile.F90 +++ b/src/OCE/DOM/domtile.F90 @@ -50,8 +50,6 @@ CONTAINS INTEGER :: jt ! dummy loop argument INTEGER :: iitile, ijtile ! Local integers !!---------------------------------------------------------------------- - IF( ln_tile .AND. nn_hls /= 2 ) CALL ctl_stop('dom_tile_init: Tiling is only supported for nn_hls = 2') - ntile = 0 ! Initialise to full domain nijtile = 1 ntsi = Nis0 diff --git a/src/OCE/DYN/dynatf_qco.F90 b/src/OCE/DYN/dynatf_qco.F90 index f8a64ee9713786f743047b3392cb04eaa1ec8324..c3a5899e6bbb05965a2e86ecf582ffd3f8732ee5 100644 --- a/src/OCE/DYN/dynatf_qco.F90 +++ b/src/OCE/DYN/dynatf_qco.F90 @@ -188,7 +188,7 @@ CONTAINS ENDIF ! .NOT. l_1st_euler ! ! This is needed for dyn_ldf_blp to be restartable - IF( nn_hls == 2 ) CALL lbc_lnk( 'dynatfqco', puu(:,:,:,Kmm), 'U', -1.0_wp, pvv(:,:,:,Kmm), 'V', -1.0_wp ) + CALL lbc_lnk( 'dynatfqco', puu(:,:,:,Kmm), 'U', -1.0_wp, pvv(:,:,:,Kmm), 'V', -1.0_wp ) ! Set "now" and "before" barotropic velocities for next time step: ! JC: Would be more clever to swap variables than to make a full vertical diff --git a/src/OCE/DYN/dynhpg.F90 b/src/OCE/DYN/dynhpg.F90 index ffc642b7722a6ccd25ac41393d37ea52e639c823..e66ab1f2aa4451b073f5f12ed8b1ce798f053cf1 100644 --- a/src/OCE/DYN/dynhpg.F90 +++ b/src/OCE/DYN/dynhpg.F90 @@ -41,7 +41,6 @@ MODULE dynhpg ! USE in_out_manager ! I/O manager USE prtctl ! Print control - USE lbclnk ! lateral boundary condition USE lib_mpp ! MPP library USE eosbn2 ! compute density USE timing ! Timing @@ -715,8 +714,6 @@ CONTAINS zdzy (ji,jj,jk) = gdept_z0(ji ,jj ,jk,Kmm) - gdept_z0(ji ,jj+1,jk,Kmm) END_3D - IF( nn_hls == 1 ) CALL lbc_lnk( 'dynhpg', zdrhox, 'U', -1._wp, zdzx, 'U', -1._wp, zdrhoy, 'V', -1._wp, zdzy, 'V', -1._wp ) - !------------------------------------------------------------------------- ! 6. compute harmonic averages using eq. 5.18 !------------------------------------------------------------------------- diff --git a/src/OCE/DYN/dynldf_iso.F90 b/src/OCE/DYN/dynldf_iso.F90 index 9c8d84f11e35956a86c6f4004bb2ccbc4ab11979..397016824df12cba63f83e21071bd6bce4a9c730 100644 --- a/src/OCE/DYN/dynldf_iso.F90 +++ b/src/OCE/DYN/dynldf_iso.F90 @@ -144,8 +144,6 @@ CONTAINS wslpi(ji,jj,jk) = - ( gdepw(ji+1,jj,jk,Kbb) - gdepw(ji-1,jj,jk,Kbb) ) * r1_e1t(ji,jj) * tmask(ji,jj,jk) * 0.5 wslpj(ji,jj,jk) = - ( gdepw(ji,jj+1,jk,Kbb) - gdepw(ji,jj-1,jk,Kbb) ) * r1_e2t(ji,jj) * tmask(ji,jj,jk) * 0.5 END_3D - ! Lateral boundary conditions on the slopes - IF (nn_hls == 1) CALL lbc_lnk( 'dynldf_iso', uslp , 'U', -1.0_wp, vslp , 'V', -1.0_wp, wslpi, 'W', -1.0_wp, wslpj, 'W', -1.0_wp ) ! ENDIF diff --git a/src/OCE/DYN/sshwzv.F90 b/src/OCE/DYN/sshwzv.F90 index f4c74fb5983d0219e0ddee0466111aa5014d5ef7..2517dd15f5d584f623ee6f3a1d97aba3e7cb4007 100644 --- a/src/OCE/DYN/sshwzv.F90 +++ b/src/OCE/DYN/sshwzv.F90 @@ -121,7 +121,7 @@ CONTAINS #endif END_2D ! pssh must be defined everywhere (true for dyn_spg_ts, not for dyn_spg_exp) - IF ( .NOT. ln_dynspg_ts .AND. nn_hls == 2 ) CALL lbc_lnk( 'sshwzv', pssh(:,:,Kaa), 'T', 1.0_wp ) + IF ( .NOT. ln_dynspg_ts ) CALL lbc_lnk( 'sshwzv', pssh(:,:,Kaa), 'T', 1.0_wp ) ! #if defined key_agrif Kbb_a = Kbb ; Kmm_a = Kmm ; Krhs_a = Kaa @@ -130,7 +130,6 @@ CONTAINS ! IF ( .NOT.ln_dynspg_ts ) THEN IF( ln_bdy ) THEN - IF (nn_hls==1) CALL lbc_lnk( 'sshwzv', pssh(:,:,Kaa), 'T', 1.0_wp ) ! Not sure that's necessary CALL bdy_ssh( pssh(:,:,Kaa) ) ! Duplicate sea level across open boundaries ENDIF ENDIF diff --git a/src/OCE/LBC/mppini.F90 b/src/OCE/LBC/mppini.F90 index 3e335b8fc71219f4f8f545fab873d42bccb62e18..5c25eca926f9a983ee0c2a3c5f4e12b26114665d 100644 --- a/src/OCE/LBC/mppini.F90 +++ b/src/OCE/LBC/mppini.F90 @@ -1406,7 +1406,7 @@ ENDIF IF( l_Iperio ) THEN ! in case the ew-periodicity was done before calling the NP folding lnfd_same(mi0(nn_hls,nn_hls):mi1(nn_hls ,nn_hls),1) = .FALSE. lnfd_same(mi0( 1,nn_hls):mi1(nn_hls ,nn_hls),3) = .FALSE. - IF( nn_hls > 1 ) lnfd_same(mi0( 1,nn_hls):mi1(nn_hls-1,nn_hls),4) = .FALSE. + lnfd_same(mi0( 1,nn_hls):mi1(nn_hls-1,nn_hls),4) = .FALSE. ENDIF ENDIF WHERE( lnfd_same ) nfd_jisnd(:,1,:) = HUGE(0) ! make sure we dont use it diff --git a/src/OCE/LDF/ldftra.F90 b/src/OCE/LDF/ldftra.F90 index 7304aabdce41935afdc209f2fc0a7bdb698f7c3c..74c0c67ce5ef19111a91a5ed087d4734eda54a5e 100644 --- a/src/OCE/LDF/ldftra.F90 +++ b/src/OCE/LDF/ldftra.F90 @@ -680,7 +680,6 @@ CONTAINS zzaei = MIN( 1._wp, ABS( ff_t(ji,jj) * z1_f20 ) ) * zaeiw(ji,jj) ! tropical decrease zaeiw(ji,jj) = MIN( zzaei , paei0 ) ! Max value = paei0 END_2D - IF( nn_hls == 1 ) CALL lbc_lnk( 'ldftra', zaeiw(:,:), 'W', 1.0_wp ) ! lateral boundary condition ! DO_2D( 0, 0, 0, 0 ) paeiu(ji,jj,1) = 0.5_wp * ( zaeiw(ji,jj) + zaeiw(ji+1,jj ) ) * umask(ji,jj,1) diff --git a/src/OCE/SBC/sbcmod.F90 b/src/OCE/SBC/sbcmod.F90 index cb1c832f29e34d6d4c4eecd6ad3fbfa98e629d72..cc4b11f463e2d3d1394ff7194e2305d938cb122e 100644 --- a/src/OCE/SBC/sbcmod.F90 +++ b/src/OCE/SBC/sbcmod.F90 @@ -557,7 +557,6 @@ CONTAINS vtauV (ji,jj) = 0.5_wp * ( vtau(ji,jj) + vtau(ji,jj+1) ) * & & ( 2. - vmask(ji,jj,1) ) * MAX( tmask(ji,jj,1), tmask(ji,jj+1,1) ) END_2D - IF( nn_hls == 1 ) CALL lbc_lnk( 'sbcmod', utauU, 'U', -1.0_wp, vtauV, 'V', -1.0_wp ) ! IF( kt == nit000 ) THEN ! set the forcing field at nit000 - 1 ! ! ! ---------------------------------------- ! diff --git a/src/OCE/TRA/traadv_fct.F90 b/src/OCE/TRA/traadv_fct.F90 index 95b3255d225294f0c140b2813804f1c89a8d19f8..ce6121a6ebbf686a009ea5431b5c24b976d6d412 100644 --- a/src/OCE/TRA/traadv_fct.F90 +++ b/src/OCE/TRA/traadv_fct.F90 @@ -254,7 +254,6 @@ CONTAINS ztu(ji,jj,jk) = ( pt(ji+1,jj ,jk,jn,Kmm) - pt(ji,jj,jk,jn,Kmm) ) * umask(ji,jj,jk) ztv(ji,jj,jk) = ( pt(ji ,jj+1,jk,jn,Kmm) - pt(ji,jj,jk,jn,Kmm) ) * vmask(ji,jj,jk) END_3D - IF (nn_hls==1) CALL lbc_lnk( 'traadv_fct', ztu, 'U', -1.0_wp , ztv, 'V', -1.0_wp, ld4only= .TRUE. ) ! Lateral boundary cond. (unchanged sgn) ! DO_3D( 0, 0, 0, 0, 1, jpkm1 ) ! Horizontal advective fluxes zC2t_u = pt(ji,jj,jk,jn,Kmm) + pt(ji+1,jj ,jk,jn,Kmm) ! 2 x C2 interpolation of T at u- & v-points (x2) @@ -266,7 +265,7 @@ CONTAINS zwx(ji,jj,jk) = 0.5_wp * pU(ji,jj,jk) * zC4t_u - zwx(ji,jj,jk) zwy(ji,jj,jk) = 0.5_wp * pV(ji,jj,jk) * zC4t_v - zwy(ji,jj,jk) END_3D - IF (nn_hls==2) CALL lbc_lnk( 'traadv_fct', zwx, 'U', -1.0_wp , zwy, 'V', -1.0_wp ) ! Lateral boundary cond. (unchanged sgn) + CALL lbc_lnk( 'traadv_fct', zwx, 'U', -1.0_wp , zwy, 'V', -1.0_wp ) ! Lateral boundary cond. (unchanged sgn) ! END SELECT ! @@ -289,11 +288,7 @@ CONTAINS zwz(:,:,1) = 0._wp ! only ocean surface as interior zwz values have been w-masked ENDIF ! - IF (nn_hls==1) THEN - CALL lbc_lnk( 'traadv_fct', zwi, 'T', 1.0_wp, zwx, 'U', -1.0_wp , zwy, 'V', -1.0_wp, zwz, 'T', 1.0_wp ) - ELSE - CALL lbc_lnk( 'traadv_fct', zwi, 'T', 1.0_wp) - END IF + CALL lbc_lnk( 'traadv_fct', zwi, 'T', 1.0_wp) ! IF ( ll_zAimp ) THEN DO_3D( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1, 1, jpkm1 ) !* trend and after field with monotonic scheme @@ -447,7 +442,6 @@ CONTAINS zbetdo(ji,jj,jk) = ( paft(ji,jj,jk) - zdo ) / ( zneg + zrtrn ) * zbt END_2D END DO - IF (nn_hls==1) CALL lbc_lnk( 'traadv_fct', zbetup, 'T', 1.0_wp , zbetdo, 'T', 1.0_wp, ld4only= .TRUE. ) ! lateral boundary cond. (unchanged sign) ! 3. monotonic flux in the i & j direction (paa & pbb) ! ---------------------------------------- diff --git a/src/OCE/TRA/traadv_qck.F90 b/src/OCE/TRA/traadv_qck.F90 index a12d399498288f0faf8118753ee26599fc8b5b80..3200d1737a9e9bc42d3b1387177c0584824f6e75 100644 --- a/src/OCE/TRA/traadv_qck.F90 +++ b/src/OCE/TRA/traadv_qck.F90 @@ -146,8 +146,6 @@ CONTAINS zfc(ji,jj,jk) = pt(ji-1,jj,jk,jn,Kbb) ! Upstream in the x-direction for the tracer zfd(ji,jj,jk) = pt(ji+1,jj,jk,jn,Kbb) ! Downstream in the x-direction for the tracer END_3D - IF (nn_hls==1) CALL lbc_lnk( 'traadv_qck', zfc(:,:,:), 'T', 1.0_wp , zfd(:,:,:), 'T', 1.0_wp, ld4only= .TRUE. ) ! Lateral boundary conditions - ! ! Horizontal advective fluxes ! --------------------------- @@ -163,8 +161,6 @@ CONTAINS zfc(ji,jj,jk) = zdir * pt(ji ,jj,jk,jn,Kbb) + ( 1. - zdir ) * pt(ji+1,jj,jk,jn,Kbb) ! FC in the x-direction for T zfd(ji,jj,jk) = zdir * pt(ji+1,jj,jk,jn,Kbb) + ( 1. - zdir ) * pt(ji ,jj,jk,jn,Kbb) ! FD in the x-direction for T END_3D - !--- Lateral boundary conditions - IF (nn_hls==1) CALL lbc_lnk( 'traadv_qck', zfu(:,:,:), 'T', 1.0_wp , zfd(:,:,:), 'T', 1.0_wp, zfc(:,:,:), 'T', 1.0_wp, zwx(:,:,:), 'T', 1.0_wp ) !--- QUICKEST scheme CALL quickest( zfu, zfd, zfc, zwx ) @@ -173,8 +169,6 @@ CONTAINS DO_3D( nn_hls-1, nn_hls-1, 0, 0, 1, jpkm1 ) zfu(ji,jj,jk) = tmask(ji-1,jj,jk) + tmask(ji,jj,jk) + tmask(ji+1,jj,jk) - 2. END_3D - IF (nn_hls==1) CALL lbc_lnk( 'traadv_qck', zfu(:,:,:), 'T', 1.0_wp, ld4only= .TRUE. ) ! Lateral boundary conditions - ! ! Tracer flux on the x-direction DO_3D( 1, 0, 0, 0, 1, jpkm1 ) @@ -232,15 +226,6 @@ CONTAINS ! Downstream in the x-direction for the tracer zfd(ji,jj,jk) = pt(ji,jj+1,jk,jn,Kbb) END_3D - - IF (nn_hls==1) CALL lbc_lnk( 'traadv_qck', zfc(:,:,:), 'T', 1.0_wp , zfd(:,:,:), 'T', 1.0_wp, ld4only= .TRUE. ) ! Lateral boundary conditions - - ! Correct zfd on northfold after lbc_lnk; see #2640 - IF( nn_hls == 1 .AND. l_IdoNFold .AND. ntej == Nje0 ) THEN - DO jk = 1, jpkm1 - WHERE( tmask_i(ntsi:ntei,ntej:jpj) == 0._wp ) zfd(ntsi:ntei,ntej:jpj,jk) = zfc(ntsi:ntei,ntej:jpj,jk) - END DO - ENDIF ! ! Horizontal advective fluxes ! --------------------------- @@ -258,9 +243,6 @@ CONTAINS zfd(ji,jj,jk) = zdir * pt(ji,jj+1,jk,jn,Kbb) + ( 1. - zdir ) * pt(ji,jj ,jk,jn,Kbb) ! FD in the x-direction for T END_3D - !--- Lateral boundary conditions - IF (nn_hls==1) CALL lbc_lnk( 'traadv_qck', zfu(:,:,:), 'T', 1.0_wp , zfd(:,:,:), 'T', 1.0_wp, zfc(:,:,:), 'T', 1.0_wp, zwy(:,:,:), 'T', 1.0_wp ) - !--- QUICKEST scheme CALL quickest( zfu, zfd, zfc, zwy ) ! @@ -268,7 +250,6 @@ CONTAINS DO_3D( 0, 0, nn_hls-1, nn_hls-1, 1, jpkm1 ) zfu(ji,jj,jk) = tmask(ji,jj-1,jk) + tmask(ji,jj,jk) + tmask(ji,jj+1,jk) - 2. END_3D - IF (nn_hls==1) CALL lbc_lnk( 'traadv_qck', zfu(:,:,:), 'T', 1.0_wp, ld4only= .TRUE. ) !--- Lateral boundary conditions ! ! Tracer flux on the x-direction DO_3D( 0, 0, 1, 0, 1, jpkm1 ) diff --git a/src/OCE/TRA/traadv_ubs.F90 b/src/OCE/TRA/traadv_ubs.F90 index 3c83aa9c7f70b82033ab12c0e16688d992937035..02d4d064912b58a344d7b7a1e135b7d66eca3bef 100644 --- a/src/OCE/TRA/traadv_ubs.F90 +++ b/src/OCE/TRA/traadv_ubs.F90 @@ -138,7 +138,6 @@ CONTAINS END_2D ! END DO - IF (nn_hls==1) CALL lbc_lnk( 'traadv_ubs', zltu, 'T', 1.0_wp, zltv, 'T', 1.0_wp, ld4only= .TRUE. ) ! Lateral boundary cond. (unchanged sgn) ! DO_3D( 1, 0, 1, 0, 1, jpkm1 ) !== Horizontal advective fluxes ==! (UBS) zfp_ui = pU(ji,jj,jk) + ABS( pU(ji,jj,jk) ) ! upstream transport (x2) diff --git a/src/OCE/TRA/traldf_lev.F90 b/src/OCE/TRA/traldf_lev.F90 index 3d554e33394629b4f69bbdfcc89af8110f4f03ff..3bbfa0190d9671137bcad17ed5288012fe501b39 100644 --- a/src/OCE/TRA/traldf_lev.F90 +++ b/src/OCE/TRA/traldf_lev.F90 @@ -144,7 +144,6 @@ CONTAINS !!---------------------------------------------------------------------- !! *** ROUTINE tra_ldf_blp *** !! - !! nn_hls >= 2 !! !! NO use of zps_hde ==>> New HPG calculation !! ** ******* diff --git a/src/OCE/TRA/traldf_triad.F90 b/src/OCE/TRA/traldf_triad.F90 index 09a1e3469c5c3d0de9a606e7287aab286460ad7b..df6a91949a21991cab0956b4dfcc81778c95ac97 100644 --- a/src/OCE/TRA/traldf_triad.F90 +++ b/src/OCE/TRA/traldf_triad.F90 @@ -518,8 +518,6 @@ CONTAINS ! !== 1st laplacian applied to pt (output in zlap) ==! CALL traldf_triad_lap( kt, Kmm, kit000, cdtype, pahu, pahv, pt, pt, zlap, kjpt, 1 ) ! - IF (nn_hls==1) CALL lbc_lnk( 'traldf_lap_blp', zlap(:,:,:,:) , 'T', 1.0_wp ) ! Lateral boundary conditions (unchanged sign) - ! ! !== 2nd laplacian applied to zlap (output in pt_rhs) ==! CALL traldf_triad_lap( kt, Kmm, kit000, cdtype, pahu, pahv, zlap, pt , pt_rhs, kjpt, 2 ) ! diff --git a/src/OCE/ZDF/zdfosm.F90 b/src/OCE/ZDF/zdfosm.F90 index cc76f85fbe4395d587ab5209c1ad00e8eb815a2a..dc4436d1c9e780f4944beda1d5ad5060e74dbfe2 100644 --- a/src/OCE/ZDF/zdfosm.F90 +++ b/src/OCE/ZDF/zdfosm.F90 @@ -997,8 +997,6 @@ CONTAINS ! v grids IF ( .NOT. l_istiled .OR. ntile == nijtile ) THEN ! Finalise ghamu, ghamv, hbl, and hmle only after full domain has been ! ! processed - IF ( nn_hls == 1 ) CALL lbc_lnk( 'zdfosm', ghamu, 'W', 1.0_wp, & - & ghamv, 'W', 1.0_wp ) DO jk = 2, jpkm1 DO jj = Njs0, Nje0 DO ji = Nis0, Nie0 diff --git a/src/OCE/ZDF/zdfphy.F90 b/src/OCE/ZDF/zdfphy.F90 index aa83add78a0fb35fdbab61e28e1992386fd86fcb..39d2bfa6ce7979b20ae99d7047b540d79007be01 100644 --- a/src/OCE/ZDF/zdfphy.F90 +++ b/src/OCE/ZDF/zdfphy.F90 @@ -355,10 +355,6 @@ CONTAINS IF( .NOT. l_istiled .OR. ntile == nijtile ) THEN CALL lbc_lnk( 'zdfphy', avm, 'W', 1.0_wp ) ! lbc_lnk for avm_k is in stp - ! TEMP: [zdfosm_avt_diag] Needed only to preserve diagnostics along the eastern half of the north fold (T-pivot) - IF( nn_hls == 1 .AND. ln_zdfosm .AND. ln_osm_mle ) & - & CALL lbc_lnk( 'zdfphy', avt, 'W', 1.0_wp, avs, 'W', 1.0_wp ) - IF( l_zdfdrg ) THEN ! drag have been updated (non-linear cases) IF( ln_isfcav ) THEN ; CALL lbc_lnk( 'zdfphy', rCdU_top, 'T', 1.0_wp , rCdU_bot, 'T', 1.0_wp ) ! top & bot drag ELSE ; CALL lbc_lnk( 'zdfphy', rCdU_bot, 'T', 1.0_wp ) ! bottom drag only diff --git a/src/OCE/lib_fortran.F90 b/src/OCE/lib_fortran.F90 index ded29e259a8577fe61084798a745f9299e5e0bd6..e7538e7c89cd3ee0a45db16bda946154de5e0ad3 100644 --- a/src/OCE/lib_fortran.F90 +++ b/src/OCE/lib_fortran.F90 @@ -172,28 +172,6 @@ CONTAINS ENDIF END_2D CALL lbc_lnk( 'lib_fortran', p2d, 'T', 1.0_wp ) - ! no need for 2nd exchange when nn_hls > 1 - IF( nn_hls == 1 ) THEN - IF( mpiRnei(nn_hls,jpwe) > -1 ) THEN ! 1st column was changed during the previous call to lbc_lnk - IF( MOD(mig( 1,nn_hls), 3) == 1 ) & ! 1st box start at i=1 -> column 1 to 3 correctly computed locally - p2d( 1,:) = p2d( 2,:) ! previous lbc_lnk corrupted column 1 -> put it back using column 2 - IF( MOD(mig( 1,nn_hls), 3) == 2 ) & ! 1st box start at i=3 -> column 1 and 2 correctly computed on w-neighbourh - p2d( 2,:) = p2d( 1,:) ! previous lbc_lnk fix column 1 -> copy it to column 2 - ENDIF - IF( mpiRnei(nn_hls,jpea) > -1 ) THEN - IF( MOD(mig(jpi-2,nn_hls), 3) == 1 ) p2d( jpi,:) = p2d(jpi-1,:) - IF( MOD(mig(jpi-2,nn_hls), 3) == 0 ) p2d(jpi-1,:) = p2d( jpi,:) - ENDIF - IF( mpiRnei(nn_hls,jpso) > -1 ) THEN - IF( MOD(mjg( 1,nn_hls), 3) == 1 ) p2d(:, 1) = p2d(:, 2) - IF( MOD(mjg( 1,nn_hls), 3) == 2 ) p2d(:, 2) = p2d(:, 1) - ENDIF - IF( mpiRnei(nn_hls,jpno) > -1 ) THEN - IF( MOD(mjg(jpj-2,nn_hls), 3) == 1 ) p2d(:, jpj) = p2d(:,jpj-1) - IF( MOD(mjg(jpj-2,nn_hls), 3) == 0 ) p2d(:,jpj-1) = p2d(:, jpj) - ENDIF - CALL lbc_lnk( 'lib_fortran', p2d, 'T', 1.0_wp ) - ENDIF END SUBROUTINE sum3x3_2d @@ -229,28 +207,6 @@ CONTAINS END_2D END DO CALL lbc_lnk( 'lib_fortran', p3d, 'T', 1.0_wp ) - ! no need for 2nd exchange when nn_hls > 1 - IF( nn_hls == 1 ) THEN - IF( mpiRnei(nn_hls,jpwe) > -1 ) THEN ! 1st column was changed during the previous call to lbc_lnk - IF( MOD(mig( 1,nn_hls), 3) == 1 ) & ! 1st box start at i=1 -> column 1 to 3 correctly computed locally - p3d( 1,:,:) = p3d( 2,:,:) ! previous lbc_lnk corrupted column 1 -> put it back using column 2 - IF( MOD(mig( 1,nn_hls), 3) == 2 ) & ! 1st box start at i=3 -> column 1 and 2 correctly computed on w-neighbourh - p3d( 2,:,:) = p3d( 1,:,:) ! previous lbc_lnk fix column 1 -> copy it to column 2 - ENDIF - IF( mpiRnei(nn_hls,jpea) > -1 ) THEN - IF( MOD(mig(jpi-2,nn_hls), 3) == 1 ) p3d( jpi,:,:) = p3d(jpi-1,:,:) - IF( MOD(mig(jpi-2,nn_hls), 3) == 0 ) p3d(jpi-1,:,:) = p3d( jpi,:,:) - ENDIF - IF( mpiRnei(nn_hls,jpso) > -1 ) THEN - IF( MOD(mjg( 1,nn_hls), 3) == 1 ) p3d(:, 1,:) = p3d(:, 2,:) - IF( MOD(mjg( 1,nn_hls), 3) == 2 ) p3d(:, 2,:) = p3d(:, 1,:) - ENDIF - IF( mpiRnei(nn_hls,jpno) > -1 ) THEN - IF( MOD(mjg(jpj-2,nn_hls), 3) == 1 ) p3d(:, jpj,:) = p3d(:,jpj-1,:) - IF( MOD(mjg(jpj-2,nn_hls), 3) == 0 ) p3d(:,jpj-1,:) = p3d(:, jpj,:) - ENDIF - CALL lbc_lnk( 'lib_fortran', p3d, 'T', 1.0_wp ) - ENDIF END SUBROUTINE sum3x3_3d diff --git a/src/OCE/stpmlf.F90 b/src/OCE/stpmlf.F90 index 04667fa6dee792e4059836f2559cdaa6028cfe08..6a49213c47f818a2189ac110fa366df8d017f667 100644 --- a/src/OCE/stpmlf.F90 +++ b/src/OCE/stpmlf.F90 @@ -545,7 +545,7 @@ CONTAINS IF( l_zdfsh2 ) CALL lbc_lnk( 'stp', avm_k, 'W', 1.0_wp ) ! dom_qco_r3c defines over [nn_hls, nn_hls-1, nn_hls, nn_hls-1] - IF( nn_hls == 2 .AND. .NOT. lk_linssh ) THEN + IF( .NOT. lk_linssh ) THEN CALL lbc_lnk( 'finalize_lbc', r3u(:,:,Kaa), 'U', 1._wp, r3v(:,:,Kaa), 'V', 1._wp, & & r3u_f(:,:), 'U', 1._wp, r3v_f(:,:), 'V', 1._wp ) ENDIF diff --git a/src/OCE/stprk3_stg.F90 b/src/OCE/stprk3_stg.F90 index 63395d5c34bce7a11bd35d46b8de00f6d3eb441d..d1c35aa965a955da0346005d378d7f854e9ae0db 100644 --- a/src/OCE/stprk3_stg.F90 +++ b/src/OCE/stprk3_stg.F90 @@ -450,7 +450,7 @@ CONTAINS CALL lbc_lnk( 'stp_RK3_stg', uu(:,:,:, Kaa), 'U', -1., vv(:,:,: ,Kaa), 'V', -1. & & , ts(:,:,:,jp_tem,Kaa), 'T', 1., ts(:,:,:,jp_sal,Kaa), 'T', 1. ) ! - IF( nn_hls == 2 .AND. l_zdfsh2 ) CALL lbc_lnk( 'stp_RK3_stg', avm_k, 'W', 1.0_wp ) ! lbc_lnk needed for zdf_sh2 when using nn_hls = 2, moved here to allow tiling in zdf_phy + IF( l_zdfsh2 ) CALL lbc_lnk( 'stp_RK3_stg', avm_k, 'W', 1.0_wp ) ! lbc_lnk needed for zdf_sh2, moved here to allow tiling in zdf_phy ! ! !* BDY open boundaries IF( ln_bdy ) THEN diff --git a/src/SWE/nemogcm.F90 b/src/SWE/nemogcm.F90 index e943cc2f30e4748e9460fb45d5189b70cc022c66..531eab0219518caeb70676985860e8484d17a4fa 100644 --- a/src/SWE/nemogcm.F90 +++ b/src/SWE/nemogcm.F90 @@ -274,10 +274,6 @@ CONTAINS ! !-----------------------------------------! CALL mpp_init - IF( nn_hls == 1 ) THEN - CALL ctl_stop( 'STOP', 'nemogcm : Loop fusion can be used only with extra-halo' ) - ENDIF - CALL halo_mng_init() ! Now we know the dimensions of the grid and numout has been set: we can allocate arrays CALL nemo_alloc() diff --git a/src/SWE/stpmlf.F90 b/src/SWE/stpmlf.F90 index 4c49e55aaaab7aa745a49bcbfee63991a4c92743..4c542fb18111582d1888d1f036758de17b59b3ea 100644 --- a/src/SWE/stpmlf.F90 +++ b/src/SWE/stpmlf.F90 @@ -196,9 +196,9 @@ CONTAINS ENDIF ENDIF - CALL lbc_lnk( 'stp_MLF', uu(:,:,:,Nnn), 'U', -1., vv(:,:,:,Nnn), 'V', -1., & !* local domain boundaries - & uu(:,:,:,Naa), 'U', -1., vv(:,:,:,Naa), 'V', -1. ) - IF (nn_hls==2) CALL lbc_lnk( 'stp_MLF', r3u(:,:,Naa), 'U', 1., r3v(:,:,Naa), 'V', 1.) + CALL lbc_lnk( 'stp_MLF', uu (:,:,:,Nnn), 'U', -1., vv (:,:,:,Nnn), 'V', -1., & !* local domain boundaries + & uu (:,:,:,Naa), 'U', -1., vv (:,:,:,Naa), 'V', -1. ) + CALL lbc_lnk( 'stp_MLF', r3u(:,:, Naa), 'U', 1., r3v(:,:, Naa), 'V', 1. ) !>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> ! Set boundary conditions, time filter and swap time levels diff --git a/src/SWE/stprk3.F90 b/src/SWE/stprk3.F90 index 2fded6aea76692509a6c7d870a9c91b6497f4928..0aa6cd2f7a22b14fa7ddf69adb2abaec2a5d975a 100644 --- a/src/SWE/stprk3.F90 +++ b/src/SWE/stprk3.F90 @@ -170,8 +170,8 @@ CONTAINS END_3D ENDIF ! - CALL lbc_lnk( 'stp_RK3', uu(:,:,:,Naa), 'U', -1., vv(:,:,:,Naa), 'V', -1. ) - IF (nn_hls==2) CALL lbc_lnk( 'stp_RK3', r3u(:,:,Naa), 'U', 1., r3v(:,:,Naa), 'V', 1.) + CALL lbc_lnk( 'stp_RK3', uu (:,:,:,Naa), 'U', -1., vv (:,:,:,Naa), 'V', -1. ) + CALL lbc_lnk( 'stp_RK3', r3u(:,:, Naa), 'U', 1., r3v(:,:, Naa), 'V', 1. ) ! ! !== Swap time levels ==! Nrhs= Nnn @@ -236,8 +236,8 @@ CONTAINS END_3D ENDIF ! - CALL lbc_lnk( 'stp_RK3', uu(:,:,:,Naa), 'U', -1., vv(:,:,:,Naa), 'V', -1. ) - IF (nn_hls==2) CALL lbc_lnk( 'stp_RK3', r3u(:,:,Naa), 'U', 1., r3v(:,:,Naa), 'V', 1.) + CALL lbc_lnk( 'stp_RK3', uu (:,:,:,Naa), 'U', -1., vv (:,:,:,Naa), 'V', -1. ) + CALL lbc_lnk( 'stp_RK3', r3u(:,:, Naa), 'U', 1., r3v(:,:, Naa), 'V', 1. ) ! ! !== Swap time levels ==! Nrhs= Nnn @@ -300,8 +300,8 @@ CONTAINS END_3D ENDIF ! - CALL lbc_lnk( 'stp_RK3', uu(:,:,:,Naa), 'U', -1., vv(:,:,:,Naa), 'V', -1. ) - IF (nn_hls==2) CALL lbc_lnk( 'stp_RK3', r3u(:,:,Naa), 'U', 1., r3v(:,:,Naa), 'V', 1.) + CALL lbc_lnk( 'stp_RK3', uu (:,:,:,Naa), 'U', -1., vv (:,:,:,Naa), 'V', -1. ) + CALL lbc_lnk( 'stp_RK3', r3u(:,:, Naa), 'U', 1., r3v(:,:, Naa), 'V', 1. ) ! ! !== Swap time levels ==! ! diff --git a/src/TOP/trcbdy.F90 b/src/TOP/trcbdy.F90 index 90b52848a27e2697366d1fefc3fb77cc0fa53dd8..062ad24f6e624aa18a9b461edb2993900ebc9cff 100644 --- a/src/TOP/trcbdy.F90 +++ b/src/TOP/trcbdy.F90 @@ -89,8 +89,7 @@ CONTAINS ! END DO ! - IF( nn_hls > 1 .AND. ir == 1 ) CYCLE ! at least 2 halos will be corrected -> no need to correct rim 1 before rim 0 - IF( nn_hls == 1 ) THEN ; llsend1(:) = .false. ; llrecv1(:) = .false. ; ENDIF + IF( ir == 1 ) CYCLE ! at least 2 halos will be corrected -> no need to correct rim 1 before rim 0 DO ib_bdy=1, nb_bdy SELECT CASE( cn_tra(ib_bdy) ) CASE('neumann')