Changeset 9094
- Timestamp:
- 2017-12-15T18:26:58+01:00 (5 years ago)
- Location:
- branches/2017/dev_merge_2017/NEMOGCM/NEMO/OPA_SRC
- Files:
-
- 16 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2017/dev_merge_2017/NEMOGCM/NEMO/OPA_SRC/LDF/ldfc1d_c2d.F90
r7753 r9094 101 101 END DO 102 102 END DO 103 CALL lbc_lnk( pah1, 'U', 1. )! Lateral boundary conditions104 CALL lbc_lnk (pah2, 'V', 1. )103 ! Lateral boundary conditions 104 CALL lbc_lnk_multi( pah1, 'U', 1. , pah2, 'V', 1. ) 105 105 ! 106 106 END SELECT -
branches/2017/dev_merge_2017/NEMOGCM/NEMO/OPA_SRC/LDF/ldfdyn.F90
r9019 r9094 321 321 ENDIF 322 322 ! 323 CALL lbc_lnk ( ahmt, 'T', 1. ) ; CALL lbc_lnk(ahmf, 'F', 1. )323 CALL lbc_lnk_multi( ahmt, 'T', 1., ahmf, 'F', 1. ) 324 324 ! 325 325 ! … … 403 403 ENDIF 404 404 ! 405 CALL lbc_lnk ( ahmt, 'T', 1. ) ; CALL lbc_lnk(ahmf, 'F', 1. )405 CALL lbc_lnk_multi( ahmt, 'T', 1. , ahmf, 'F', 1. ) 406 406 ! 407 407 END SELECT -
branches/2017/dev_merge_2017/NEMOGCM/NEMO/OPA_SRC/LDF/ldfslp.F90
r9019 r9094 231 231 END DO 232 232 END DO 233 CALL lbc_lnk ( zwz, 'U', -1. ) ; CALL lbc_lnk(zww, 'V', -1. ) ! lateral boundary conditions233 CALL lbc_lnk_multi( zwz, 'U', -1., zww, 'V', -1. ) ! lateral boundary conditions 234 234 ! 235 235 ! !* horizontal Shapiro filter … … 313 313 END DO 314 314 END DO 315 CALL lbc_lnk ( zwz, 'T', -1. ) ; CALL lbc_lnk(zww, 'T', -1. ) ! lateral boundary conditions315 CALL lbc_lnk_multi( zwz, 'T', -1., zww, 'T', -1. ) ! lateral boundary conditions 316 316 ! 317 317 ! !* horizontal Shapiro filter … … 362 362 ! IV. Lateral boundary conditions 363 363 ! =============================== 364 CALL lbc_lnk( uslp , 'U', -1. ) ; CALL lbc_lnk( vslp , 'V', -1. ) 365 CALL lbc_lnk( wslpi, 'W', -1. ) ; CALL lbc_lnk( wslpj, 'W', -1. ) 364 CALL lbc_lnk_multi( uslp , 'U', -1. , vslp , 'V', -1. , wslpi, 'W', -1., wslpj, 'W', -1. ) 366 365 367 366 IF(ln_ctl) THEN … … 726 725 END DO 727 726 !!gm this lbc_lnk should be useless.... 728 CALL lbc_lnk( uslpml , 'U', -1. ) ; CALL lbc_lnk( vslpml , 'V', -1. ) ! lateral boundary cond. (sign change) 729 CALL lbc_lnk( wslpiml, 'W', -1. ) ; CALL lbc_lnk( wslpjml, 'W', -1. ) ! lateral boundary conditions 727 CALL lbc_lnk_multi( uslpml , 'U', -1. , vslpml , 'V', -1. , wslpiml, 'W', -1. , wslpjml, 'W', -1. ) 730 728 ! 731 729 IF( ln_timing ) CALL timing_stop('ldf_slp_mxl') … … 799 797 ! END DO 800 798 ! END DO 801 ! CALL lbc_lnk( uslp , 'U', -1. ) ; CALL lbc_lnk( vslp , 'V', -1. ) ! Lateral boundary conditions 802 ! CALL lbc_lnk( wslpi, 'W', -1. ) ; CALL lbc_lnk( wslpj, 'W', -1. ) 799 ! CALL lbc_lnk_multi( uslp , 'U', -1. ; CALL lbc_lnk( vslp , 'V', -1., wslpi, 'W', -1., wslpj, 'W', -1. ) 803 800 !!gm ENDIF 804 801 ENDIF -
branches/2017/dev_merge_2017/NEMOGCM/NEMO/OPA_SRC/LDF/ldftra.F90
r9019 r9094 564 564 END DO 565 565 END DO 566 CALL lbc_lnk ( paeiu(:,:,1), 'U', 1. ) ; CALL lbc_lnk(paeiv(:,:,1), 'V', 1. ) ! lateral boundary condition566 CALL lbc_lnk_multi( paeiu(:,:,1), 'U', 1. , paeiv(:,:,1), 'V', 1. ) ! lateral boundary condition 567 567 568 568 DO jk = 2, jpkm1 !== deeper values equal the surface one ==! … … 678 678 ! 679 679 ! !== eiv stream function: output ==! 680 CALL lbc_lnk( psi_uw, 'U', -1. ) ! lateral boundary condition 681 CALL lbc_lnk( psi_vw, 'V', -1. ) 680 CALL lbc_lnk_multi( psi_uw, 'U', -1. , psi_vw, 'V', -1. ) 682 681 ! 683 682 !!gm CALL iom_put( "psi_eiv_uw", psi_uw ) ! output -
branches/2017/dev_merge_2017/NEMOGCM/NEMO/OPA_SRC/TRA/eosbn2.F90
r9019 r9094 755 755 END DO 756 756 END DO 757 ! 758 CALL lbc_lnk( pab(:,:,jp_tem), 'T', 1. ) ! Lateral boundary conditions 759 CALL lbc_lnk( pab(:,:,jp_sal), 'T', 1. ) 757 ! ! Lateral boundary conditions 758 CALL lbc_lnk_multi( pab(:,:,jp_tem), 'T', 1. , pab(:,:,jp_sal), 'T', 1. ) 760 759 ! 761 760 CASE( np_seos ) !== simplified EOS ==! … … 776 775 END DO 777 776 END DO 778 ! 779 CALL lbc_lnk( pab(:,:,jp_tem), 'T', 1. ) ! Lateral boundary conditions 780 CALL lbc_lnk( pab(:,:,jp_sal), 'T', 1. ) 777 ! ! Lateral boundary conditions 778 CALL lbc_lnk_multi( pab(:,:,jp_tem), 'T', 1. , pab(:,:,jp_sal), 'T', 1. ) 781 779 ! 782 780 CASE DEFAULT -
branches/2017/dev_merge_2017/NEMOGCM/NEMO/OPA_SRC/TRA/traadv_cen.F90
r9019 r9094 126 126 END DO 127 127 END DO 128 CALL lbc_lnk ( ztu, 'U', -1. ) ; CALL lbc_lnk(ztv, 'V', -1. ) ! Lateral boundary cond.128 CALL lbc_lnk_multi( ztu, 'U', -1. , ztv, 'V', -1. ) ! Lateral boundary cond. 129 129 ! 130 130 DO jk = 1, jpkm1 ! Horizontal advective fluxes -
branches/2017/dev_merge_2017/NEMOGCM/NEMO/OPA_SRC/TRA/traadv_fct.F90
r9019 r9094 211 211 END DO 212 212 END DO 213 CALL lbc_lnk ( zltu, 'T', 1. ) ; CALL lbc_lnk(zltv, 'T', 1. ) ! Lateral boundary cond. (unchanged sgn)213 CALL lbc_lnk_multi( zltu, 'T', 1. , zltv, 'T', 1. ) ! Lateral boundary cond. (unchanged sgn) 214 214 ! 215 215 DO jk = 1, jpkm1 ! Horizontal advective fluxes … … 236 236 END DO 237 237 END DO 238 CALL lbc_lnk ( ztu, 'U', -1. ) ; CALL lbc_lnk(ztv, 'V', -1. ) ! Lateral boundary cond. (unchanged sgn)238 CALL lbc_lnk_multi( ztu, 'U', -1. , ztv, 'V', -1. ) ! Lateral boundary cond. (unchanged sgn) 239 239 ! 240 240 DO jk = 1, jpkm1 ! Horizontal advective fluxes … … 282 282 ENDIF 283 283 ! 284 CALL lbc_lnk( zwx, 'U', -1. ) ; CALL lbc_lnk( zwy, 'V', -1. ) ! Lateral bondary conditions 285 CALL lbc_lnk( zwz, 'W', 1. ) 284 CALL lbc_lnk_multi( zwx, 'U', -1. , zwy, 'V', -1., zwz, 'W', 1. ) 286 285 ! 287 286 ! !== monotonicity algorithm ==! … … 402 401 END DO 403 402 END DO 404 CALL lbc_lnk ( zbetup, 'T', 1. ) ; CALL lbc_lnk(zbetdo, 'T', 1. ) ! lateral boundary cond. (unchanged sign)403 CALL lbc_lnk_multi( zbetup, 'T', 1. , zbetdo, 'T', 1. ) ! lateral boundary cond. (unchanged sign) 405 404 406 405 ! 3. monotonic flux in the i & j direction (paa & pbb) … … 428 427 END DO 429 428 END DO 430 CALL lbc_lnk ( paa, 'U', -1. ) ; CALL lbc_lnk(pbb, 'V', -1. ) ! lateral boundary condition (changed sign)429 CALL lbc_lnk_multi( paa, 'U', -1. , pbb, 'V', -1. ) ! lateral boundary condition (changed sign) 431 430 ! 432 431 IF( ln_timing ) CALL timing_stop('nonosc') -
branches/2017/dev_merge_2017/NEMOGCM/NEMO/OPA_SRC/TRA/traadv_mle.F90
r9019 r9094 324 324 END DO 325 325 END DO 326 CALL lbc_lnk ( rfu, 'U', 1. ) ; CALL lbc_lnk(rfv, 'V', 1. )326 CALL lbc_lnk_multi( rfu, 'U', 1. , rfv, 'V', 1. ) 327 327 ! 328 328 ELSEIF( nn_mle == 1 ) THEN ! MLE array allocation & initialisation -
branches/2017/dev_merge_2017/NEMOGCM/NEMO/OPA_SRC/TRA/traadv_mus.F90
r9019 r9094 142 142 END DO 143 143 END DO 144 CALL lbc_lnk( zwx, 'U', -1. )! lateral boundary conditions (changed sign)145 CALL lbc_lnk (zwy, 'V', -1. )144 ! lateral boundary conditions (changed sign) 145 CALL lbc_lnk_multi( zwx, 'U', -1. , zwy, 'V', -1. ) 146 146 ! !-- Slopes of tracer 147 147 zslpx(:,:,jpk) = 0._wp ! bottom values … … 191 191 END DO 192 192 END DO 193 CALL lbc_lnk ( zwx, 'U', -1. ) ; CALL lbc_lnk(zwy, 'V', -1. ) ! lateral boundary conditions (changed sign)193 CALL lbc_lnk_multi( zwx, 'U', -1. , zwy, 'V', -1. ) ! lateral boundary conditions (changed sign) 194 194 ! 195 195 DO jk = 1, jpkm1 !-- Tracer advective trend -
branches/2017/dev_merge_2017/NEMOGCM/NEMO/OPA_SRC/TRA/traadv_qck.F90
r9019 r9094 155 155 END DO 156 156 END DO 157 CALL lbc_lnk ( zfc(:,:,:), 'T', 1. ) ; CALL lbc_lnk(zfd(:,:,:), 'T', 1. ) ! Lateral boundary conditions157 CALL lbc_lnk_multi( zfc(:,:,:), 'T', 1. , zfd(:,:,:), 'T', 1. ) ! Lateral boundary conditions 158 158 159 159 ! … … 181 181 END DO 182 182 !--- Lateral boundary conditions 183 CALL lbc_lnk( zfu(:,:,:), 'T', 1. ) ; CALL lbc_lnk( zfd(:,:,:), 'T', 1. ) 184 CALL lbc_lnk( zfc(:,:,:), 'T', 1. ) ; CALL lbc_lnk( zwx(:,:,:), 'T', 1. ) 183 CALL lbc_lnk_multi( zfu(:,:,:), 'T', 1. , zfd(:,:,:), 'T', 1., zfc(:,:,:), 'T', 1., zwx(:,:,:), 'T', 1. ) 185 184 186 185 !--- QUICKEST scheme … … 271 270 END DO 272 271 END DO 273 CALL lbc_lnk ( zfc(:,:,:), 'T', 1. ) ; CALL lbc_lnk(zfd(:,:,:), 'T', 1. ) ! Lateral boundary conditions272 CALL lbc_lnk_multi( zfc(:,:,:), 'T', 1. , zfd(:,:,:), 'T', 1. ) ! Lateral boundary conditions 274 273 275 274 … … 300 299 301 300 !--- Lateral boundary conditions 302 CALL lbc_lnk( zfu(:,:,:), 'T', 1. ) ; CALL lbc_lnk( zfd(:,:,:), 'T', 1. ) 303 CALL lbc_lnk( zfc(:,:,:), 'T', 1. ) ; CALL lbc_lnk( zwy(:,:,:), 'T', 1. ) 301 CALL lbc_lnk_multi( zfu(:,:,:), 'T', 1. , zfd(:,:,:), 'T', 1., zfc(:,:,:), 'T', 1., zwy(:,:,:), 'T', 1. ) 304 302 305 303 !--- QUICKEST scheme -
branches/2017/dev_merge_2017/NEMOGCM/NEMO/OPA_SRC/TRA/trabbl.F90
r9019 r9094 123 123 & tab3d_2=tsa(:,:,:,jp_sal), clinfo2= ' Sa: ', mask2=tmask, clinfo3='tra' ) 124 124 ! lateral boundary conditions ; just need for outputs 125 CALL lbc_lnk ( ahu_bbl, 'U', 1. ) ; CALL lbc_lnk(ahv_bbl, 'V', 1. )125 CALL lbc_lnk_multi( ahu_bbl, 'U', 1. , ahv_bbl, 'V', 1. ) 126 126 CALL iom_put( "ahu_bbl", ahu_bbl ) ! bbl diffusive flux i-coef 127 127 CALL iom_put( "ahv_bbl", ahv_bbl ) ! bbl diffusive flux j-coef … … 136 136 & tab3d_2=tsa(:,:,:,jp_sal), clinfo2= ' Sa: ', mask2=tmask, clinfo3='tra' ) 137 137 ! lateral boundary conditions ; just need for outputs 138 CALL lbc_lnk ( utr_bbl, 'U', 1. ) ; CALL lbc_lnk(vtr_bbl, 'V', 1. )138 CALL lbc_lnk_multi( utr_bbl, 'U', 1. , vtr_bbl, 'V', 1. ) 139 139 CALL iom_put( "uoce_bbl", utr_bbl ) ! bbl i-transport 140 140 CALL iom_put( "voce_bbl", vtr_bbl ) ! bbl j-transport … … 491 491 INTEGER :: ji, jj ! dummy loop indices 492 492 INTEGER :: ii0, ii1, ij0, ij1, ios ! local integer 493 REAL(wp), DIMENSION(jpi,jpj) :: zmbk ! workspace493 REAL(wp), DIMENSION(jpi,jpj) :: zmbku, zmbkv ! workspace 494 494 !! 495 495 NAMELIST/nambbl/ ln_trabbl, nn_bbl_ldf, nn_bbl_adv, rn_ahtbbl, rn_gambbl … … 539 539 END DO 540 540 ! converte into REAL to use lbc_lnk ; impose a min value of 1 as a zero can be set in lbclnk 541 zmbk(:,:) = REAL( mbku_d(:,:), wp ) ; CALL lbc_lnk(zmbk,'U',1.) ; mbku_d(:,:) = MAX( INT( zmbk(:,:) ), 1 ) 542 zmbk(:,:) = REAL( mbkv_d(:,:), wp ) ; CALL lbc_lnk(zmbk,'V',1.) ; mbkv_d(:,:) = MAX( INT( zmbk(:,:) ), 1 ) 541 zmbku(:,:) = REAL( mbku_d(:,:), wp ) ; zmbkv(:,:) = REAL( mbkv_d(:,:), wp ) 542 CALL lbc_lnk_multi( zmbku,'U',1., zmbk,'V',1.) 543 mbku_d(:,:) = MAX( INT( zmbku(:,:) ), 1 ) ; mbkv_d(:,:) = MAX( INT( zmbkv(:,:) ), 1 ) 543 544 ! 544 545 !* sign of grad(H) at u- and v-points; zero if grad(H) = 0 … … 562 563 END DO 563 564 END DO 564 CALL lbc_lnk ( e3u_bbl_0, 'U', 1. ) ; CALL lbc_lnk(e3v_bbl_0, 'V', 1. ) ! lateral boundary conditions565 CALL lbc_lnk_multi( e3u_bbl_0, 'U', 1. , e3v_bbl_0, 'V', 1. ) ! lateral boundary conditions 565 566 ! 566 567 ! !* masked diffusive flux coefficients -
branches/2017/dev_merge_2017/NEMOGCM/NEMO/OPA_SRC/TRA/traldf_lap_blp.F90
r9019 r9094 227 227 END SELECT 228 228 ! 229 DO jn = 1, kjpt 230 CALL lbc_lnk( zlap(:,:,:,jn) , 'T', 1. ) ! Lateral boundary conditions (unchanged sign) 231 END DO 229 CALL lbc_lnk( zlap(:,:,:,:) , 'T', 1. ) ! Lateral boundary conditions (unchanged sign) 232 230 ! ! Partial top/bottom cell: GRADh( zlap ) 233 231 IF( ln_isfcav .AND. ln_zps ) THEN ; CALL zps_hde_isf( kt, kjpt, zlap, zglu, zglv, zgui, zgvi ) ! both top & bottom -
branches/2017/dev_merge_2017/NEMOGCM/NEMO/OPA_SRC/TRA/tranpc.F90
r9019 r9094 309 309 ENDIF 310 310 ! 311 CALL lbc_lnk ( tsa(:,:,:,jp_tem), 'T', 1. ) ; CALL lbc_lnk(tsa(:,:,:,jp_sal), 'T', 1. )311 CALL lbc_lnk_multi( tsa(:,:,:,jp_tem), 'T', 1., tsa(:,:,:,jp_sal), 'T', 1. ) 312 312 ! 313 313 IF( lwp .AND. l_LB_debug ) THEN -
branches/2017/dev_merge_2017/NEMOGCM/NEMO/OPA_SRC/TRA/tranxt.F90
r9023 r9094 106 106 CALL Agrif_tra ! AGRIF zoom boundaries 107 107 #endif 108 ! 109 CALL lbc_lnk( tsa(:,:,:,jp_tem), 'T', 1._wp ) ! local domain boundaries (T-point, unchanged sign) 110 CALL lbc_lnk( tsa(:,:,:,jp_sal), 'T', 1._wp ) 108 ! ! local domain boundaries (T-point, unchanged sign) 109 CALL lbc_lnk_multi( tsa(:,:,:,jp_tem), 'T', 1., tsa(:,:,:,jp_sal), 'T', 1. ) 111 110 ! 112 111 IF( ln_bdy ) CALL bdy_tra( kt ) ! BDY open boundaries … … 164 163 ENDIF 165 164 ! 166 DO jn = 1, jpts 167 CALL lbc_lnk( tsb(:,:,:,jn), 'T', 1._wp ) 168 CALL lbc_lnk( tsn(:,:,:,jn), 'T', 1._wp ) 169 CALL lbc_lnk( tsa(:,:,:,jn), 'T', 1._wp ) 170 END DO 165 CALL lbc_lnk_multi( tsb(:,:,:,jp_tem), 'T', 1., tsb(:,:,:,jp_sal), 'T', 1., & 166 & tsn(:,:,:,jp_tem), 'T', 1., tsn(:,:,:,jp_sal), 'T', 1., & 167 & tsa(:,:,:,jp_tem), 'T', 1., tsa(:,:,:,jp_sal), 'T', 1. ) 168 ! 171 169 ENDIF 172 170 ! -
branches/2017/dev_merge_2017/NEMOGCM/NEMO/OPA_SRC/TRA/trazdf.F90
r9019 r9094 86 86 END DO 87 87 !!gm this should be moved in trdtra.F90 and done on all trends 88 CALL lbc_lnk( ztrdt, 'T', 1. ) 89 CALL lbc_lnk( ztrds, 'T', 1. ) 88 CALL lbc_lnk_multi( ztrdt, 'T', 1. , ztrds, 'T', 1. ) 90 89 !!gm 91 90 CALL trd_tra( kt, 'TRA', jp_tem, jptra_zdf, ztrdt ) -
branches/2017/dev_merge_2017/NEMOGCM/NEMO/OPA_SRC/TRA/zpshde.F90
r9019 r9094 144 144 END DO 145 145 END DO 146 CALL lbc_lnk ( pgtu(:,:,jn), 'U', -1. ) ; CALL lbc_lnk(pgtv(:,:,jn), 'V', -1. ) ! Lateral boundary cond.146 CALL lbc_lnk_multi( pgtu(:,:,jn), 'U', -1. , pgtv(:,:,jn), 'V', -1. ) ! Lateral boundary cond. 147 147 ! 148 148 END DO … … 183 183 END DO 184 184 END DO 185 CALL lbc_lnk ( pgru , 'U', -1. ) ; CALL lbc_lnk(pgrv , 'V', -1. ) ! Lateral boundary conditions185 CALL lbc_lnk_multi( pgru , 'U', -1. , pgrv , 'V', -1. ) ! Lateral boundary conditions 186 186 ! 187 187 END IF … … 305 305 END DO 306 306 END DO 307 CALL lbc_lnk ( pgtu(:,:,jn), 'U', -1. ) ; CALL lbc_lnk(pgtv(:,:,jn), 'V', -1. ) ! Lateral boundary cond.307 CALL lbc_lnk_multi( pgtu(:,:,jn), 'U', -1. , pgtv(:,:,jn), 'V', -1. ) ! Lateral boundary cond. 308 308 ! 309 309 END DO … … 353 353 END DO 354 354 355 CALL lbc_lnk ( pgru , 'U', -1. ) ; CALL lbc_lnk(pgrv , 'V', -1. ) ! Lateral boundary conditions355 CALL lbc_lnk_multi( pgru , 'U', -1. , pgrv , 'V', -1. ) ! Lateral boundary conditions 356 356 ! 357 357 END IF … … 404 404 END DO 405 405 END DO 406 CALL lbc_lnk( pgtui(:,:,jn), 'U', -1. ); CALL lbc_lnk( pgtvi(:,:,jn), 'V', -1. ) ! Lateral boundary cond.407 406 ! 408 407 END DO 408 CALL lbc_lnk_multi( pgtui(:,:,:), 'U', -1. , pgtvi(:,:,:), 'V', -1. ) ! Lateral boundary cond. 409 409 410 410 IF( PRESENT( prd ) ) THEN !== horizontal derivative of density anomalies (rd) ==! (optional part) … … 449 449 END DO 450 450 END DO 451 CALL lbc_lnk ( pgrui , 'U', -1. ); CALL lbc_lnk( pgrvi, 'V', -1. ) ! Lateral boundary conditions451 CALL lbc_lnk_multi( pgrui, 'U', -1. , pgrvi, 'V', -1. ) ! Lateral boundary conditions 452 452 ! 453 453 END IF
Note: See TracChangeset
for help on using the changeset viewer.