Changeset 10170
- Timestamp:
- 2018-10-03T16:49:50+02:00 (6 years ago)
- Location:
- NEMO/branches/2018/dev_r10164_HPC09_ESIWACE_PREP_MERGE
- Files:
-
- 109 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2018/dev_r10164_HPC09_ESIWACE_PREP_MERGE/src/ICE/icecor.F90
r10069 r10170 119 119 END DO 120 120 END DO 121 CALL lbc_lnk_multi( u_ice, 'U', -1., v_ice, 'V', -1. ) ! lateral boundary conditions121 CALL lbc_lnk_multi( 'icecor', u_ice, 'U', -1., v_ice, 'V', -1. ) ! lateral boundary conditions 122 122 ENDIF 123 123 -
NEMO/branches/2018/dev_r10164_HPC09_ESIWACE_PREP_MERGE/src/ICE/icedyn.F90
r10069 r10170 101 101 END DO 102 102 END DO 103 CALL lbc_lnk( zhmax(:,:,:), 'T', 1. )103 CALL lbc_lnk( 'icedyn', zhmax(:,:,:), 'T', 1. ) 104 104 ! 105 105 ! -
NEMO/branches/2018/dev_r10164_HPC09_ESIWACE_PREP_MERGE/src/ICE/icedyn_adv_pra.F90
r10069 r10170 425 425 426 426 !-- Lateral boundary conditions 427 CALL lbc_lnk_multi( psm , 'T', 1., ps0 , 'T', 1. &427 CALL lbc_lnk_multi( 'icedyn_adv_pra', psm , 'T', 1., ps0 , 'T', 1. & 428 428 & , psx , 'T', -1., psy , 'T', -1. & ! caution gradient ==> the sign changes 429 429 & , psxx, 'T', 1., psyy, 'T', 1. & … … 599 599 600 600 !-- Lateral boundary conditions 601 CALL lbc_lnk_multi( psm , 'T', 1., ps0 , 'T', 1. &601 CALL lbc_lnk_multi( 'icedyn_adv_pra', psm , 'T', 1., ps0 , 'T', 1. & 602 602 & , psx , 'T', -1., psy , 'T', -1. & ! caution gradient ==> the sign changes 603 603 & , psxx, 'T', 1., psyy, 'T', 1. & -
NEMO/branches/2018/dev_r10164_HPC09_ESIWACE_PREP_MERGE/src/ICE/icedyn_adv_umx.F90
r10069 r10170 182 182 END DO 183 183 END DO 184 CALL lbc_lnk( zt_ups, 'T', 1. ) ! Lateral boundary conditions (unchanged sign)184 CALL lbc_lnk( 'icedyn_adv_umx', zt_ups, 'T', 1. ) ! Lateral boundary conditions (unchanged sign) 185 185 186 186 ! High order (_ho) fluxes … … 229 229 END DO 230 230 END DO 231 CALL lbc_lnk( ptc, 'T', 1. )231 CALL lbc_lnk( 'icedyn_adv_umx', ptc, 'T', 1. ) 232 232 ! 233 233 END SUBROUTINE adv_umx … … 271 271 END DO 272 272 END DO 273 CALL lbc_lnk( zzt, 'T', 1. )273 CALL lbc_lnk( 'icedyn_adv_umx', zzt, 'T', 1. ) 274 274 ! 275 275 ! !-- ultimate interpolation of pt at v-point --! … … 289 289 END DO 290 290 END DO 291 CALL lbc_lnk( zzt, 'T', 1. )291 CALL lbc_lnk( 'icedyn_adv_umx', zzt, 'T', 1. ) 292 292 ! 293 293 ! !-- ultimate interpolation of pt at u-point --! … … 331 331 END DO 332 332 END DO 333 CALL lbc_lnk( ztu2, 'T', 1. )333 CALL lbc_lnk( 'icedyn_adv_umx', ztu2, 'T', 1. ) 334 334 ! 335 335 ! !-- BiLaplacian in i-direction --! … … 343 343 END DO 344 344 END DO 345 CALL lbc_lnk( ztu4, 'T', 1. )345 CALL lbc_lnk( 'icedyn_adv_umx', ztu4, 'T', 1. ) 346 346 ! 347 347 ! … … 450 450 END DO 451 451 END DO 452 CALL lbc_lnk( ztv2, 'T', 1. )452 CALL lbc_lnk( 'icedyn_adv_umx', ztv2, 'T', 1. ) 453 453 ! 454 454 ! !-- BiLaplacian in j-direction --! … … 463 463 END DO 464 464 END DO 465 CALL lbc_lnk( ztv4, 'T', 1. )465 CALL lbc_lnk( 'icedyn_adv_umx', ztv4, 'T', 1. ) 466 466 ! 467 467 ! … … 484 484 END DO 485 485 END DO 486 CALL lbc_lnk( pt_v, 'V', 1. )486 CALL lbc_lnk( 'icedyn_adv_umx', pt_v, 'V', 1. ) 487 487 ! 488 488 CASE( 3 ) !== 3rd order central TIM ==! (Eq. 24) … … 567 567 END DO 568 568 END DO 569 CALL lbc_lnk( zdiv, 'T', 1. ) ! Lateral boundary conditions (unchanged sign)569 CALL lbc_lnk( 'icedyn_adv_umx', zdiv, 'T', 1. ) ! Lateral boundary conditions (unchanged sign) 570 570 571 571 ! Determine ice masks for before and after tracers … … 605 605 END DO 606 606 END DO 607 CALL lbc_lnk_multi( zbetup, 'T', 1., zbetdo, 'T', 1. ) ! lateral boundary cond. (unchanged sign)607 CALL lbc_lnk_multi( 'icedyn_adv_umx', zbetup, 'T', 1., zbetdo, 'T', 1. ) ! lateral boundary cond. (unchanged sign) 608 608 609 609 ! monotonic flux in the i & j direction (paa & pbb) -
NEMO/branches/2018/dev_r10164_HPC09_ESIWACE_PREP_MERGE/src/ICE/icedyn_rdgrft.F90
r10069 r10170 790 790 END DO 791 791 END DO 792 CALL lbc_lnk( strength, 'T', 1. )792 CALL lbc_lnk( 'icedyn_rdgrft', strength, 'T', 1. ) 793 793 ! 794 794 CASE( 2 ) !--- Temporal smoothing … … 811 811 END DO 812 812 END DO 813 CALL lbc_lnk( strength, 'T', 1. )813 CALL lbc_lnk( 'icedyn_rdgrft', strength, 'T', 1. ) 814 814 ! 815 815 END SELECT -
NEMO/branches/2018/dev_r10164_HPC09_ESIWACE_PREP_MERGE/src/ICE/icedyn_rhg_evp.F90
r10069 r10170 189 189 END DO 190 190 END DO 191 CALL lbc_lnk( zfmask, 'F', 1._wp )191 CALL lbc_lnk( 'icedyn_rhg_evp', zfmask, 'F', 1._wp ) 192 192 193 193 ! Lateral boundary conditions on velocity (modify zfmask) … … 216 216 ENDIF 217 217 END DO 218 CALL lbc_lnk( zfmask, 'F', 1._wp )218 CALL lbc_lnk( 'icedyn_rhg_evp', zfmask, 'F', 1._wp ) 219 219 220 220 !------------------------------------------------------------------------------! … … 326 326 END DO 327 327 END DO 328 CALL lbc_lnk_multi( zmf, 'T', 1., zdt_m, 'T', 1. )328 CALL lbc_lnk_multi( 'icedyn_rhg_evp', zmf, 'T', 1., zdt_m, 'T', 1. ) 329 329 ! 330 330 !------------------------------------------------------------------------------! … … 353 353 END DO 354 354 END DO 355 CALL lbc_lnk( zds, 'F', 1. )355 CALL lbc_lnk( 'icedyn_rhg_evp', zds, 'F', 1. ) 356 356 357 357 DO jj = 2, jpj ! loop to jpi,jpj to avoid making a communication for zs1,zs2,zs12 … … 397 397 END DO 398 398 END DO 399 CALL lbc_lnk( zp_delt, 'T', 1. )399 CALL lbc_lnk( 'icedyn_rhg_evp', zp_delt, 'T', 1. ) 400 400 401 401 DO jj = 1, jpjm1 … … 492 492 END DO 493 493 END DO 494 CALL lbc_lnk( v_ice, 'V', -1. )494 CALL lbc_lnk( 'icedyn_rhg_evp', v_ice, 'V', -1. ) 495 495 ! 496 496 #if defined key_agrif … … 540 540 END DO 541 541 END DO 542 CALL lbc_lnk( u_ice, 'U', -1. )542 CALL lbc_lnk( 'icedyn_rhg_evp', u_ice, 'U', -1. ) 543 543 ! 544 544 #if defined key_agrif … … 590 590 END DO 591 591 END DO 592 CALL lbc_lnk( u_ice, 'U', -1. )592 CALL lbc_lnk( 'icedyn_rhg_evp', u_ice, 'U', -1. ) 593 593 ! 594 594 #if defined key_agrif … … 638 638 END DO 639 639 END DO 640 CALL lbc_lnk( v_ice, 'V', -1. )640 CALL lbc_lnk( 'icedyn_rhg_evp', v_ice, 'V', -1. ) 641 641 ! 642 642 #if defined key_agrif … … 703 703 END DO 704 704 END DO 705 CALL lbc_lnk_multi( pshear_i, 'T', 1., pdivu_i, 'T', 1., pdelta_i, 'T', 1. )705 CALL lbc_lnk_multi( 'icedyn_rhg_evp', pshear_i, 'T', 1., pdivu_i, 'T', 1., pdelta_i, 'T', 1. ) 706 706 707 707 ! --- Store the stress tensor for the next time step --- ! 708 CALL lbc_lnk_multi( zs1, 'T', 1., zs2, 'T', 1., zs12, 'F', 1. )708 CALL lbc_lnk_multi( 'icedyn_rhg_evp', zs1, 'T', 1., zs2, 'T', 1., zs12, 'F', 1. ) 709 709 pstress1_i (:,:) = zs1 (:,:) 710 710 pstress2_i (:,:) = zs2 (:,:) … … 750 750 END DO 751 751 END DO 752 CALL lbc_lnk_multi( zsig1, 'T', 1., zsig2, 'T', 1., zsig3, 'T', 1. )752 CALL lbc_lnk_multi( 'icedyn_rhg_evp', zsig1, 'T', 1., zsig2, 'T', 1., zsig3, 'T', 1. ) 753 753 ! 754 754 IF( iom_use('isig1') ) CALL iom_put( "isig1" , zsig1 ) … … 807 807 END DO 808 808 809 CALL lbc_lnk_multi( zdiag_sig1 , 'T', 1., zdiag_sig2 , 'T', 1., &809 CALL lbc_lnk_multi( 'icedyn_rhg_evp', zdiag_sig1 , 'T', 1., zdiag_sig2 , 'T', 1., & 810 810 & zdiag_dssh_dx, 'U', -1., zdiag_dssh_dy, 'V', -1., & 811 811 & zdiag_corstrx, 'U', -1., zdiag_corstry, 'V', -1., & 812 812 & zdiag_intstrx, 'U', -1., zdiag_intstry, 'V', -1. ) 813 813 814 CALL lbc_lnk_multi( zdiag_utau_oi , 'U', -1., zdiag_vtau_oi , 'V', -1., &814 CALL lbc_lnk_multi( 'icedyn_rhg_evp', zdiag_utau_oi , 'U', -1., zdiag_vtau_oi , 'V', -1., & 815 815 & zdiag_xmtrp_ice, 'U', -1., zdiag_xmtrp_snw, 'U', -1., & 816 816 & zdiag_xatrp , 'U', -1., zdiag_ymtrp_ice, 'V', -1., & -
NEMO/branches/2018/dev_r10164_HPC09_ESIWACE_PREP_MERGE/src/ICE/iceforcing.F90
r10069 r10170 83 83 END DO 84 84 END DO 85 CALL lbc_lnk_multi( utau_ice, 'U', -1., vtau_ice, 'V', -1. )85 CALL lbc_lnk_multi( 'iceforcing', utau_ice, 'U', -1., vtau_ice, 'V', -1. ) 86 86 ENDIF 87 87 ! -
NEMO/branches/2018/dev_r10164_HPC09_ESIWACE_PREP_MERGE/src/ICE/icethd.F90
r10069 r10170 126 126 END DO 127 127 ENDIF 128 CALL lbc_lnk( zfric, 'T', 1. )128 CALL lbc_lnk( 'icethd', zfric, 'T', 1. ) 129 129 ! 130 130 !--------------------------------------------------------------------! -
NEMO/branches/2018/dev_r10164_HPC09_ESIWACE_PREP_MERGE/src/ICE/icethd_do.F90
r10069 r10170 189 189 END DO 190 190 ! 191 CALL lbc_lnk_multi( zvrel, 'T', 1., ht_i_new, 'T', 1. )191 CALL lbc_lnk_multi( 'icethd_do', zvrel, 'T', 1., ht_i_new, 'T', 1. ) 192 192 193 193 ENDIF -
NEMO/branches/2018/dev_r10164_HPC09_ESIWACE_PREP_MERGE/src/ICE/iceupdate.F90
r10069 r10170 350 350 END DO 351 351 END DO 352 CALL lbc_lnk_multi( taum, 'T', 1., tmod_io, 'T', 1. )352 CALL lbc_lnk_multi( 'iceupdate', taum, 'T', 1., tmod_io, 'T', 1. ) 353 353 ! 354 354 utau_oce(:,:) = utau(:,:) !* save the air-ocean stresses at ice time-step … … 374 374 END DO 375 375 END DO 376 CALL lbc_lnk_multi( utau, 'U', -1., vtau, 'V', -1. ) ! lateral boundary condition376 CALL lbc_lnk_multi( 'iceupdate', utau, 'U', -1., vtau, 'V', -1. ) ! lateral boundary condition 377 377 ! 378 378 IF( ln_timing ) CALL timing_stop('ice_update_tau') -
NEMO/branches/2018/dev_r10164_HPC09_ESIWACE_PREP_MERGE/src/ICE/icewri.F90
r10069 r10170 140 140 END DO 141 141 END DO 142 CALL lbc_lnk( z2d, 'T', 1. )142 CALL lbc_lnk( 'icewri', z2d, 'T', 1. ) 143 143 IF( iom_use('icevel') ) CALL iom_put( "icevel" , z2d ) ! ice velocity module 144 144 ENDIF -
NEMO/branches/2018/dev_r10164_HPC09_ESIWACE_PREP_MERGE/src/NST/agrif_oce_sponge.F90
r10068 r10170 164 164 END DO 165 165 END DO 166 CALL lbc_lnk( fsaht_spu, 'U', 1. ) ! Lateral boundary conditions167 CALL lbc_lnk( fsaht_spv, 'V', 1. )166 CALL lbc_lnk( 'agrif_oce_sponge', fsaht_spu, 'U', 1. ) ! Lateral boundary conditions 167 CALL lbc_lnk( 'agrif_oce_sponge', fsaht_spv, 'V', 1. ) 168 168 169 169 spongedoneT = .TRUE. … … 181 181 END DO 182 182 END DO 183 CALL lbc_lnk( fsahm_spt, 'T', 1. ) ! Lateral boundary conditions184 CALL lbc_lnk( fsahm_spf, 'F', 1. )183 CALL lbc_lnk( 'agrif_oce_sponge', fsahm_spt, 'T', 1. ) ! Lateral boundary conditions 184 CALL lbc_lnk( 'agrif_oce_sponge', fsahm_spf, 'F', 1. ) 185 185 186 186 spongedoneU = .TRUE. -
NEMO/branches/2018/dev_r10164_HPC09_ESIWACE_PREP_MERGE/src/OCE/ASM/asminc.F90
r10068 r10170 421 421 END DO 422 422 END DO 423 CALL lbc_lnk( zhdiv, 'T', 1. ) ! lateral boundary cond. (no sign change)423 CALL lbc_lnk( 'asminc', zhdiv, 'T', 1. ) ! lateral boundary cond. (no sign change) 424 424 ! 425 425 DO jj = 2, jpjm1 -
NEMO/branches/2018/dev_r10164_HPC09_ESIWACE_PREP_MERGE/src/OCE/BDY/bdydyn3d.F90
r10068 r10170 319 319 END DO 320 320 ! 321 CALL lbc_lnk_multi( ua, 'U', -1., va, 'V', -1. ) ! Boundary points should be updated321 CALL lbc_lnk_multi( 'bdydyn3d', ua, 'U', -1., va, 'V', -1. ) ! Boundary points should be updated 322 322 ! 323 323 IF( ln_timing ) CALL timing_stop('bdy_dyn3d_dmp') -
NEMO/branches/2018/dev_r10164_HPC09_ESIWACE_PREP_MERGE/src/OCE/BDY/bdyini.F90
r10068 r10170 1133 1133 END DO 1134 1134 END DO 1135 CALL lbc_lnk_multi( bdyumask, 'U', 1. , bdyvmask, 'V', 1. ) ! Lateral boundary cond.1135 CALL lbc_lnk_multi( 'bdyini', bdyumask, 'U', 1. , bdyvmask, 'V', 1. ) ! Lateral boundary cond. 1136 1136 1137 1137 ! bdy masks are now set to zero on boundary points: … … 1169 1169 1170 1170 ! Lateral boundary conditions 1171 CALL lbc_lnk( zfmask, 'F', 1. )1172 CALL lbc_lnk_multi( bdyumask, 'U', 1. , bdyvmask, 'V', 1., bdytmask, 'T', 1. )1171 CALL lbc_lnk( 'bdyini', zfmask, 'F', 1. ) 1172 CALL lbc_lnk_multi( 'bdyini', bdyumask, 'U', 1. , bdyvmask, 'V', 1., bdytmask, 'T', 1. ) 1173 1173 DO ib_bdy = 1, nb_bdy ! Indices and directions of rim velocity components 1174 1174 -
NEMO/branches/2018/dev_r10164_HPC09_ESIWACE_PREP_MERGE/src/OCE/CRS/crsfld.F90
r10068 r10170 164 164 END DO 165 165 END DO 166 CALL lbc_lnk( z3d, 'T', 1. )166 CALL lbc_lnk( 'crsfld', z3d, 'T', 1. ) 167 167 ! 168 168 CALL crs_dom_ope( z3d, 'VOL', 'T', tmask, zt_crs, p_e12=e1e2t, p_e3=ze3t, psgn=1.0 ) -
NEMO/branches/2018/dev_r10164_HPC09_ESIWACE_PREP_MERGE/src/OCE/CRS/crslbclnk.F90
r10068 r10170 55 55 IF( .NOT.ll_grid_crs ) CALL dom_grid_crs ! Save the parent grid information & Switch to coarse grid domain 56 56 ! 57 IF( PRESENT( cd_mpp ) ) THEN ; CALL lbc_lnk( pt3d1, cd_type1, psgn, cd_mpp, pval=zval )58 ELSE ; CALL lbc_lnk( pt3d1, cd_type1, psgn , pval=zval )57 IF( PRESENT( cd_mpp ) ) THEN ; CALL lbc_lnk( 'crslbclnk', pt3d1, cd_type1, psgn, cd_mpp, pval=zval ) 58 ELSE ; CALL lbc_lnk( 'crslbclnk', pt3d1, cd_type1, psgn , pval=zval ) 59 59 ENDIF 60 60 ! … … 92 92 IF( .NOT.ll_grid_crs ) CALL dom_grid_crs ! Save the parent grid information & Switch to coarse grid domain 93 93 ! 94 IF( PRESENT( cd_mpp ) ) THEN ; CALL lbc_lnk( pt2d, cd_type, psgn, cd_mpp, pval=zval )95 ELSE ; CALL lbc_lnk( pt2d, cd_type, psgn , pval=zval )94 IF( PRESENT( cd_mpp ) ) THEN ; CALL lbc_lnk( 'crslbclnk', pt2d, cd_type, psgn, cd_mpp, pval=zval ) 95 ELSE ; CALL lbc_lnk( 'crslbclnk', pt2d, cd_type, psgn , pval=zval ) 96 96 ENDIF 97 97 ! -
NEMO/branches/2018/dev_r10164_HPC09_ESIWACE_PREP_MERGE/src/OCE/DIA/diaar5.F90
r10068 r10170 245 245 ENDIF 246 246 !!gm useless lbc_lnk since the computation above is performed over 1:jpi & 1:jpj 247 !!gm CALL lbc_lnk( zpe, 'T', 1._wp)247 !!gm CALL lbc_lnk( 'diaar5', zpe, 'T', 1._wp) 248 248 CALL iom_put( 'tnpeo', zpe ) 249 249 DEALLOCATE( zpe ) … … 285 285 END DO 286 286 END DO 287 CALL lbc_lnk( z2d, 'U', -1. )287 CALL lbc_lnk( 'diaar5', z2d, 'U', -1. ) 288 288 IF( cptr == 'adv' ) THEN 289 289 IF( ktra == jp_tem ) CALL iom_put( "uadv_heattr" , rau0_rcp * z2d ) ! advective heat transport in i-direction … … 303 303 END DO 304 304 END DO 305 CALL lbc_lnk( z2d, 'V', -1. )305 CALL lbc_lnk( 'diaar5', z2d, 'V', -1. ) 306 306 IF( cptr == 'adv' ) THEN 307 307 IF( ktra == jp_tem ) CALL iom_put( "vadv_heattr" , rau0_rcp * z2d ) ! advective heat transport in j-direction -
NEMO/branches/2018/dev_r10164_HPC09_ESIWACE_PREP_MERGE/src/OCE/DIA/diawri.F90
r10114 r10170 181 181 END DO 182 182 END DO 183 CALL lbc_lnk( z2d, 'T', 1. )183 CALL lbc_lnk( 'diawri', z2d, 'T', 1. ) 184 184 CALL iom_put( "taubot", z2d ) 185 185 ENDIF … … 237 237 END DO 238 238 END DO 239 CALL lbc_lnk( z2d, 'T', 1. )239 CALL lbc_lnk( 'diawri', z2d, 'T', 1. ) 240 240 CALL iom_put( "sstgrad2", z2d ) ! square of module of sst gradient 241 241 z2d(:,:) = SQRT( z2d(:,:) ) … … 281 281 END DO 282 282 END DO 283 CALL lbc_lnk( z3d, 'T', 1. )283 CALL lbc_lnk( 'diawri', z3d, 'T', 1. ) 284 284 CALL iom_put( "eken", z3d ) ! kinetic energy 285 285 ENDIF … … 307 307 END DO 308 308 END DO 309 CALL lbc_lnk( z2d, 'U', -1. )309 CALL lbc_lnk( 'diawri', z2d, 'U', -1. ) 310 310 CALL iom_put( "u_heattr", 0.5*rcp * z2d ) ! heat transport in i-direction 311 311 ENDIF … … 320 320 END DO 321 321 END DO 322 CALL lbc_lnk( z2d, 'U', -1. )322 CALL lbc_lnk( 'diawri', z2d, 'U', -1. ) 323 323 CALL iom_put( "u_salttr", 0.5 * z2d ) ! heat transport in i-direction 324 324 ENDIF … … 342 342 END DO 343 343 END DO 344 CALL lbc_lnk( z2d, 'V', -1. )344 CALL lbc_lnk( 'diawri', z2d, 'V', -1. ) 345 345 CALL iom_put( "v_heattr", 0.5*rcp * z2d ) ! heat transport in j-direction 346 346 ENDIF … … 355 355 END DO 356 356 END DO 357 CALL lbc_lnk( z2d, 'V', -1. )357 CALL lbc_lnk( 'diawri', z2d, 'V', -1. ) 358 358 CALL iom_put( "v_salttr", 0.5 * z2d ) ! heat transport in j-direction 359 359 ENDIF … … 368 368 END DO 369 369 END DO 370 CALL lbc_lnk( z2d, 'T', -1. )370 CALL lbc_lnk( 'diawri', z2d, 'T', -1. ) 371 371 CALL iom_put( "tosmint", rau0 * z2d ) ! Vertical integral of temperature 372 372 ENDIF … … 380 380 END DO 381 381 END DO 382 CALL lbc_lnk( z2d, 'T', -1. )382 CALL lbc_lnk( 'diawri', z2d, 'T', -1. ) 383 383 CALL iom_put( "somint", rau0 * z2d ) ! Vertical integral of salinity 384 384 ENDIF -
NEMO/branches/2018/dev_r10164_HPC09_ESIWACE_PREP_MERGE/src/OCE/DOM/closea.F90
r10069 r10170 396 396 emp (:,:) = emp (:,:) * tmask(:,:,1) 397 397 ! 398 CALL lbc_lnk( emp , 'T', 1._wp )398 CALL lbc_lnk( 'closea', emp , 'T', 1._wp ) 399 399 ! 400 400 END SUBROUTINE sbc_clo -
NEMO/branches/2018/dev_r10164_HPC09_ESIWACE_PREP_MERGE/src/OCE/DOM/dommsk.F90
r10068 r10170 145 145 !SF add here lbc_lnk: bug not still understood : cause now domain configuration is read ! 146 146 !!gm I don't understand why... 147 CALL lbc_lnk( tmask , 'T', 1._wp ) ! Lateral boundary conditions147 CALL lbc_lnk( 'dommsk', tmask , 'T', 1._wp ) ! Lateral boundary conditions 148 148 149 149 ! Mask corrections for bdy (read in mppini2) … … 183 183 END DO 184 184 END DO 185 CALL lbc_lnk_multi( umask, 'U', 1., vmask, 'V', 1., fmask, 'F', 1. ) ! Lateral boundary conditions185 CALL lbc_lnk_multi( 'dommsk', umask, 'U', 1., vmask, 'V', 1., fmask, 'F', 1. ) ! Lateral boundary conditions 186 186 187 187 ! Ocean/land mask at wu-, wv- and w points (computed from tmask) … … 283 283 DEALLOCATE( zwf ) 284 284 ! 285 CALL lbc_lnk( fmask, 'F', 1._wp ) ! Lateral boundary conditions on fmask285 CALL lbc_lnk( 'dommsk', fmask, 'F', 1._wp ) ! Lateral boundary conditions on fmask 286 286 ! 287 287 ! CAUTION : The fmask may be further modified in dyn_vor_init ( dynvor.F90 ) depending on ln_vorlat -
NEMO/branches/2018/dev_r10164_HPC09_ESIWACE_PREP_MERGE/src/OCE/DOM/domvvl.F90
r10068 r10170 408 408 ! ! d - thickness diffusion transport: boundary conditions 409 409 ! (stored for tracer advction and continuity equation) 410 CALL lbc_lnk_multi( un_td , 'U' , -1._wp, vn_td , 'V' , -1._wp)410 CALL lbc_lnk_multi( 'domvvl', un_td , 'U' , -1._wp, vn_td , 'V' , -1._wp) 411 411 412 412 ! 4 - Time stepping of baroclinic scale factors … … 419 419 z2dt = 2.0_wp * rdt 420 420 ENDIF 421 CALL lbc_lnk( tilde_e3t_a(:,:,:), 'T', 1._wp )421 CALL lbc_lnk( 'domvvl', tilde_e3t_a(:,:,:), 'T', 1._wp ) 422 422 tilde_e3t_a(:,:,:) = tilde_e3t_b(:,:,:) + z2dt * tmask(:,:,:) * tilde_e3t_a(:,:,:) 423 423 … … 711 711 END DO 712 712 END DO 713 CALL lbc_lnk( pe3_out(:,:,:), 'U', 1._wp )713 CALL lbc_lnk( 'domvvl', pe3_out(:,:,:), 'U', 1._wp ) 714 714 pe3_out(:,:,:) = pe3_out(:,:,:) + e3u_0(:,:,:) 715 715 ! … … 724 724 END DO 725 725 END DO 726 CALL lbc_lnk( pe3_out(:,:,:), 'V', 1._wp )726 CALL lbc_lnk( 'domvvl', pe3_out(:,:,:), 'V', 1._wp ) 727 727 pe3_out(:,:,:) = pe3_out(:,:,:) + e3v_0(:,:,:) 728 728 ! … … 738 738 END DO 739 739 END DO 740 CALL lbc_lnk( pe3_out(:,:,:), 'F', 1._wp )740 CALL lbc_lnk( 'domvvl', pe3_out(:,:,:), 'F', 1._wp ) 741 741 pe3_out(:,:,:) = pe3_out(:,:,:) + e3f_0(:,:,:) 742 742 ! -
NEMO/branches/2018/dev_r10164_HPC09_ESIWACE_PREP_MERGE/src/OCE/DOM/domwri.F90
r10068 r10170 210 210 ! 211 211 puniq(:,:) = ztstref(:,:) ! default definition 212 CALL lbc_lnk( puniq, cdgrd, 1. ) ! apply boundary conditions212 CALL lbc_lnk( 'domwri', puniq, cdgrd, 1. ) ! apply boundary conditions 213 213 lldbl(:,:,1) = puniq(:,:) == ztstref(:,:) ! check which values have been changed 214 214 ! … … 271 271 END DO 272 272 END DO 273 CALL lbc_lnk( zx1, 'T', 1. )273 CALL lbc_lnk( 'domwri', zx1, 'T', 1. ) 274 274 ! 275 275 IF( PRESENT( px1 ) ) px1 = zx1 -
NEMO/branches/2018/dev_r10164_HPC09_ESIWACE_PREP_MERGE/src/OCE/DOM/domzgr.F90
r10068 r10170 307 307 END DO 308 308 ! converte into REAL to use lbc_lnk ; impose a min value of 1 as a zero can be set in lbclnk 309 zk(:,:) = REAL( miku(:,:), wp ) ; CALL lbc_lnk( zk, 'U', 1. ) ; miku(:,:) = MAX( NINT( zk(:,:) ), 1 )310 zk(:,:) = REAL( mikv(:,:), wp ) ; CALL lbc_lnk( zk, 'V', 1. ) ; mikv(:,:) = MAX( NINT( zk(:,:) ), 1 )311 zk(:,:) = REAL( mikf(:,:), wp ) ; CALL lbc_lnk( zk, 'F', 1. ) ; mikf(:,:) = MAX( NINT( zk(:,:) ), 1 )312 ! 313 zk(:,:) = REAL( mbku(:,:), wp ) ; CALL lbc_lnk( zk, 'U', 1. ) ; mbku(:,:) = MAX( NINT( zk(:,:) ), 1 )314 zk(:,:) = REAL( mbkv(:,:), wp ) ; CALL lbc_lnk( zk, 'V', 1. ) ; mbkv(:,:) = MAX( NINT( zk(:,:) ), 1 )309 zk(:,:) = REAL( miku(:,:), wp ) ; CALL lbc_lnk( 'domzgr', zk, 'U', 1. ) ; miku(:,:) = MAX( NINT( zk(:,:) ), 1 ) 310 zk(:,:) = REAL( mikv(:,:), wp ) ; CALL lbc_lnk( 'domzgr', zk, 'V', 1. ) ; mikv(:,:) = MAX( NINT( zk(:,:) ), 1 ) 311 zk(:,:) = REAL( mikf(:,:), wp ) ; CALL lbc_lnk( 'domzgr', zk, 'F', 1. ) ; mikf(:,:) = MAX( NINT( zk(:,:) ), 1 ) 312 ! 313 zk(:,:) = REAL( mbku(:,:), wp ) ; CALL lbc_lnk( 'domzgr', zk, 'U', 1. ) ; mbku(:,:) = MAX( NINT( zk(:,:) ), 1 ) 314 zk(:,:) = REAL( mbkv(:,:), wp ) ; CALL lbc_lnk( 'domzgr', zk, 'V', 1. ) ; mbkv(:,:) = MAX( NINT( zk(:,:) ), 1 ) 315 315 ! 316 316 END SUBROUTINE zgr_top_bot -
NEMO/branches/2018/dev_r10164_HPC09_ESIWACE_PREP_MERGE/src/OCE/DOM/iscplrst.F90
r10069 r10170 175 175 END DO 176 176 END DO 177 CALL lbc_lnk_multi( sshn, 'T', 1., zsmask1, 'T', 1. )177 CALL lbc_lnk_multi( 'iscplrst', sshn, 'T', 1., zsmask1, 'T', 1. ) 178 178 zssh0 = sshn 179 179 zsmask0 = zsmask1 … … 344 344 END DO 345 345 346 CALL lbc_lnk_multi( tsn(:,:,:,jp_tem), 'T', 1., tsn(:,:,:,jp_sal), 'T', 1., ztmask1, 'T', 1.)346 CALL lbc_lnk_multi( 'iscplrst', tsn(:,:,:,jp_tem), 'T', 1., tsn(:,:,:,jp_sal), 'T', 1., ztmask1, 'T', 1.) 347 347 348 348 ! update -
NEMO/branches/2018/dev_r10164_HPC09_ESIWACE_PREP_MERGE/src/OCE/DYN/divhor.F90
r10068 r10170 104 104 IF( ln_iscpl .AND. ln_hsb ) CALL iscpl_div( hdivn ) !== ice sheet ==! (update hdivn field) 105 105 ! 106 CALL lbc_lnk( hdivn, 'T', 1. ) ! (no sign change)106 CALL lbc_lnk( 'divhor', hdivn, 'T', 1. ) ! (no sign change) 107 107 ! 108 108 IF( ln_timing ) CALL timing_stop('div_hor') -
NEMO/branches/2018/dev_r10164_HPC09_ESIWACE_PREP_MERGE/src/OCE/DYN/dynadv_ubs.F90
r10068 r10170 123 123 END DO 124 124 END DO 125 CALL lbc_lnk_multi( zlu_uu(:,:,:,1), 'U', 1. , zlu_uv(:,:,:,1), 'U', 1., &125 CALL lbc_lnk_multi( 'dynadv_ubs', zlu_uu(:,:,:,1), 'U', 1. , zlu_uv(:,:,:,1), 'U', 1., & 126 126 & zlu_uu(:,:,:,2), 'U', 1. , zlu_uv(:,:,:,2), 'U', 1., & 127 127 & zlv_vv(:,:,:,1), 'V', 1. , zlv_vu(:,:,:,1), 'V', 1., & -
NEMO/branches/2018/dev_r10164_HPC09_ESIWACE_PREP_MERGE/src/OCE/DYN/dynhpg.F90
r10068 r10170 490 490 END DO 491 491 END DO 492 CALL lbc_lnk_multi( zcpx, 'U', 1., zcpy, 'V', 1. )492 CALL lbc_lnk_multi( 'dynhpg', zcpx, 'U', 1., zcpy, 'V', 1. ) 493 493 END IF 494 494 … … 723 723 END DO 724 724 END DO 725 CALL lbc_lnk_multi( zcpx, 'U', 1., zcpy, 'V', 1. )725 CALL lbc_lnk_multi( 'dynhpg', zcpx, 'U', 1., zcpy, 'V', 1. ) 726 726 END IF 727 727 … … 883 883 END DO 884 884 END DO 885 CALL lbc_lnk_multi( rho_k, 'W', 1., rho_i, 'U', 1., rho_j, 'V', 1. )885 CALL lbc_lnk_multi( 'dynhpg', rho_k, 'W', 1., rho_i, 'U', 1., rho_j, 'V', 1. ) 886 886 887 887 ! --------------- … … 1016 1016 END DO 1017 1017 END DO 1018 CALL lbc_lnk_multi( zcpx, 'U', 1., zcpy, 'V', 1. )1018 CALL lbc_lnk_multi( 'dynhpg', zcpx, 'U', 1., zcpy, 'V', 1. ) 1019 1019 ENDIF 1020 1020 … … 1102 1102 END DO 1103 1103 1104 CALL lbc_lnk_multi ( zsshu_n, 'U', 1., zsshv_n, 'V', 1. )1104 CALL lbc_lnk_multi ('dynhpg', zsshu_n, 'U', 1., zsshv_n, 'V', 1. ) 1105 1105 1106 1106 DO jj = 2, jpjm1 -
NEMO/branches/2018/dev_r10164_HPC09_ESIWACE_PREP_MERGE/src/OCE/DYN/dynkeg.F90
r10068 r10170 158 158 END DO 159 159 END DO 160 CALL lbc_lnk( zhke, 'T', 1. )160 CALL lbc_lnk( 'dynkeg', zhke, 'T', 1. ) 161 161 ! 162 162 END SELECT -
NEMO/branches/2018/dev_r10164_HPC09_ESIWACE_PREP_MERGE/src/OCE/DYN/dynldf_iso.F90
r10068 r10170 136 136 END DO 137 137 ! Lateral boundary conditions on the slopes 138 CALL lbc_lnk_multi( uslp , 'U', -1., vslp , 'V', -1., wslpi, 'W', -1., wslpj, 'W', -1. )138 CALL lbc_lnk_multi( 'dynldf_iso', uslp , 'U', -1., vslp , 'V', -1., wslpi, 'W', -1., wslpj, 'W', -1. ) 139 139 ! 140 140 ENDIF -
NEMO/branches/2018/dev_r10164_HPC09_ESIWACE_PREP_MERGE/src/OCE/DYN/dynldf_lap_blp.F90
r10068 r10170 136 136 CALL dyn_ldf_lap( kt, pub, pvb, zulap, zvlap, 1 ) ! rotated laplacian applied to ptb (output in zlap) 137 137 ! 138 CALL lbc_lnk_multi( zulap, 'U', -1., zvlap, 'V', -1. ) ! Lateral boundary conditions138 CALL lbc_lnk_multi( 'dynldf_lap_blp', zulap, 'U', -1., zvlap, 'V', -1. ) ! Lateral boundary conditions 139 139 ! 140 140 CALL dyn_ldf_lap( kt, zulap, zvlap, pua, pva, 2 ) ! rotated laplacian applied to zlap (output in pta) -
NEMO/branches/2018/dev_r10164_HPC09_ESIWACE_PREP_MERGE/src/OCE/DYN/dynnxt.F90
r10068 r10170 144 144 # endif 145 145 ! 146 CALL lbc_lnk_multi( ua, 'U', -1., va, 'V', -1. ) !* local domain boundaries146 CALL lbc_lnk_multi( 'dynnxt', ua, 'U', -1., va, 'V', -1. ) !* local domain boundaries 147 147 ! 148 148 ! !* BDY open boundaries -
NEMO/branches/2018/dev_r10164_HPC09_ESIWACE_PREP_MERGE/src/OCE/DYN/dynspg_ts.F90
r10068 r10170 262 262 END DO 263 263 END SELECT 264 CALL lbc_lnk( zwz, 'F', 1._wp )264 CALL lbc_lnk( 'dynspg_ts', zwz, 'F', 1._wp ) 265 265 ! 266 266 ftne(1,:) = 0._wp ; ftnw(1,:) = 0._wp ; ftse(1,:) = 0._wp ; ftsw(1,:) = 0._wp … … 330 330 END DO 331 331 END DO 332 CALL lbc_lnk( zhf, 'F', 1._wp )332 CALL lbc_lnk( 'dynspg_ts', zhf, 'F', 1._wp ) 333 333 ! JC: TBC. hf should be greater than 0 334 334 DO jj = 1, jpj … … 777 777 END DO 778 778 END DO 779 CALL lbc_lnk_multi( zwx, 'U', 1._wp, zwy, 'V', 1._wp )779 CALL lbc_lnk_multi( 'dynspg_ts', zwx, 'U', 1._wp, zwy, 'V', 1._wp ) 780 780 ! 781 781 zhup2_e(:,:) = hu_0(:,:) + zwx(:,:) ! Ocean depth at U- and V-points … … 872 872 ssha_e(:,:) = ( sshn_e(:,:) - rdtbt * ( zssh_frc(:,:) + zhdiv(:,:) ) ) * ssmask(:,:) 873 873 874 CALL lbc_lnk( ssha_e, 'T', 1._wp )874 CALL lbc_lnk( 'dynspg_ts', ssha_e, 'T', 1._wp ) 875 875 876 876 ! Duplicate sea level across open boundaries (this is only cosmetic if linssh=T) … … 892 892 END DO 893 893 END DO 894 CALL lbc_lnk_multi( zsshu_a, 'U', 1._wp, zsshv_a, 'V', 1._wp )894 CALL lbc_lnk_multi( 'dynspg_ts', zsshu_a, 'U', 1._wp, zsshv_a, 'V', 1._wp ) 895 895 ENDIF 896 896 ! … … 1157 1157 ENDIF 1158 1158 ! !* domain lateral boundary 1159 CALL lbc_lnk_multi( ua_e, 'U', -1._wp, va_e , 'V', -1._wp )1159 CALL lbc_lnk_multi( 'dynspg_ts', ua_e, 'U', -1._wp, va_e , 'V', -1._wp ) 1160 1160 ! 1161 1161 ! ! open boundaries … … 1243 1243 END DO 1244 1244 END DO 1245 CALL lbc_lnk_multi( zsshu_a, 'U', 1._wp, zsshv_a, 'V', 1._wp ) ! Boundary conditions1245 CALL lbc_lnk_multi( 'dynspg_ts', zsshu_a, 'U', 1._wp, zsshv_a, 'V', 1._wp ) ! Boundary conditions 1246 1246 ! 1247 1247 DO jk=1,jpkm1 -
NEMO/branches/2018/dev_r10164_HPC09_ESIWACE_PREP_MERGE/src/OCE/DYN/dynvor.F90
r10068 r10170 242 242 END DO 243 243 ENDIF 244 CALL lbc_lnk( zwz, 'F', 1. )244 CALL lbc_lnk( 'dynvor', zwz, 'F', 1. ) 245 245 DO jj = 2, jpj 246 246 DO ji = 2, jpi ! vector opt. … … 270 270 END DO 271 271 ENDIF 272 CALL lbc_lnk( zwz, 'F', 1. )272 CALL lbc_lnk( 'dynvor', zwz, 'F', 1. ) 273 273 DO jj = 2, jpj 274 274 DO ji = 2, jpi ! vector opt. … … 635 635 ENDIF 636 636 ! 637 CALL lbc_lnk( zwz, 'F', 1. )637 CALL lbc_lnk( 'dynvor', zwz, 'F', 1. ) 638 638 ! 639 639 ! !== horizontal fluxes ==! … … 765 765 ENDIF 766 766 ! 767 CALL lbc_lnk( zwz, 'F', 1. )767 CALL lbc_lnk( 'dynvor', zwz, 'F', 1. ) 768 768 ! 769 769 ! !== horizontal fluxes ==! … … 863 863 END DO 864 864 ! 865 CALL lbc_lnk( fmask, 'F', 1._wp ) ! Lateral boundary conditions on fmask865 CALL lbc_lnk( 'dynvor', fmask, 'F', 1._wp ) ! Lateral boundary conditions on fmask 866 866 ! 867 867 ENDIF … … 903 903 END DO 904 904 END DO 905 CALL lbc_lnk_multi( di_e2u_2, 'T', -1. , dj_e1v_2, 'T', -1. ) ! Lateral boundary conditions905 CALL lbc_lnk_multi( 'dynvor', di_e2u_2, 'T', -1. , dj_e1v_2, 'T', -1. ) ! Lateral boundary conditions 906 906 ! 907 907 CASE DEFAULT !* F-point metric term : pre-compute di(e2u)/(2*e1e2f) and dj(e1v)/(2*e1e2f) … … 913 913 END DO 914 914 END DO 915 CALL lbc_lnk_multi( di_e2v_2e1e2f, 'F', -1. , dj_e1u_2e1e2f, 'F', -1. ) ! Lateral boundary conditions915 CALL lbc_lnk_multi( 'dynvor', di_e2v_2e1e2f, 'F', -1. , dj_e1u_2e1e2f, 'F', -1. ) ! Lateral boundary conditions 916 916 END SELECT 917 917 ! -
NEMO/branches/2018/dev_r10164_HPC09_ESIWACE_PREP_MERGE/src/OCE/DYN/sshwzv.F90
r10068 r10170 110 110 IF ( .NOT.ln_dynspg_ts ) THEN 111 111 IF( ln_bdy ) THEN 112 CALL lbc_lnk( ssha, 'T', 1. ) ! Not sure that's necessary112 CALL lbc_lnk( 'sshwzv', ssha, 'T', 1. ) ! Not sure that's necessary 113 113 CALL bdy_ssh( ssha ) ! Duplicate sea level across open boundaries 114 114 ENDIF … … 174 174 END DO 175 175 END DO 176 CALL lbc_lnk( zhdiv, 'T', 1.) ! - ML - Perhaps not necessary: not used for horizontal "connexions"176 CALL lbc_lnk('sshwzv', zhdiv, 'T', 1.) ! - ML - Perhaps not necessary: not used for horizontal "connexions" 177 177 ! ! Is it problematic to have a wrong vertical velocity in boundary cells? 178 178 ! ! Same question holds for hdivn. Perhaps just for security -
NEMO/branches/2018/dev_r10164_HPC09_ESIWACE_PREP_MERGE/src/OCE/DYN/wet_dry.F90
r10069 r10170 241 241 END DO 242 242 END DO 243 CALL lbc_lnk_multi( zwdlmtu, 'U', 1., zwdlmtv, 'V', 1. )243 CALL lbc_lnk_multi( 'wet_dry', zwdlmtu, 'U', 1., zwdlmtv, 'V', 1. ) 244 244 ! 245 245 IF( lk_mpp ) CALL mpp_max(jflag) !max over the global domain … … 257 257 ! 258 258 !!gm TO BE SUPPRESSED ? these lbc_lnk are useless since zwdlmtu and zwdlmtv are defined everywhere ! 259 CALL lbc_lnk_multi( un , 'U', -1., vn , 'V', -1. )260 CALL lbc_lnk_multi( un_b, 'U', -1., vn_b, 'V', -1. )259 CALL lbc_lnk_multi( 'wet_dry', un , 'U', -1., vn , 'V', -1. ) 260 CALL lbc_lnk_multi( 'wet_dry', un_b, 'U', -1., vn_b, 'V', -1. ) 261 261 !!gm 262 262 ! … … 370 370 END DO ! jj loop 371 371 ! 372 CALL lbc_lnk_multi( zwdlmtu, 'U', 1., zwdlmtv, 'V', 1. )372 CALL lbc_lnk_multi( 'wet_dry', zwdlmtu, 'U', 1., zwdlmtv, 'V', 1. ) 373 373 ! 374 374 IF(lk_mpp) CALL mpp_max(jflag) !max over the global domain … … 382 382 ! 383 383 !!gm THIS lbc_lnk is useless since it is already done at the end of the jk1-loop 384 CALL lbc_lnk_multi( zflxu, 'U', -1., zflxv, 'V', -1. )384 CALL lbc_lnk_multi( 'wet_dry', zflxu, 'U', -1., zflxv, 'V', -1. ) 385 385 !!gm end 386 386 ! -
NEMO/branches/2018/dev_r10164_HPC09_ESIWACE_PREP_MERGE/src/OCE/ICB/icbclv.F90
r10068 r10170 174 174 ! 175 175 DO jn = 1, nclasses 176 CALL lbc_lnk( berg_grid%stored_ice(:,:,jn), 'T', 1._wp )176 CALL lbc_lnk( 'icbclv', berg_grid%stored_ice(:,:,jn), 'T', 1._wp ) 177 177 END DO 178 CALL lbc_lnk( berg_grid%stored_heat, 'T', 1._wp )178 CALL lbc_lnk( 'icbclv', berg_grid%stored_heat, 'T', 1._wp ) 179 179 ! 180 180 IF( nn_verbose_level > 0 .AND. icntmax > 1 ) WRITE(numicb,*) 'icb_clv: icnt=', icnt,' on', narea -
NEMO/branches/2018/dev_r10164_HPC09_ESIWACE_PREP_MERGE/src/OCE/ICB/icbini.F90
r10068 r10170 114 114 END DO 115 115 END DO 116 CALL lbc_lnk( src_calving_hflx, 'T', 1._wp )117 CALL lbc_lnk( src_calving , 'T', 1._wp )116 CALL lbc_lnk( 'icbini', src_calving_hflx, 'T', 1._wp ) 117 CALL lbc_lnk( 'icbini', src_calving , 'T', 1._wp ) 118 118 119 119 ! work out interior of processor from exchange array -
NEMO/branches/2018/dev_r10164_HPC09_ESIWACE_PREP_MERGE/src/OCE/IOM/iom.F90
r10068 r10170 1307 1307 !--- overlap areas and extra hallows (mpp) 1308 1308 IF( PRESENT(pv_r2d) .AND. idom /= jpdom_unknown ) THEN 1309 CALL lbc_lnk( pv_r2d,'Z',-999.,'no0' )1309 CALL lbc_lnk( 'iom', pv_r2d,'Z',-999.,'no0' ) 1310 1310 ELSEIF( PRESENT(pv_r3d) .AND. idom /= jpdom_unknown ) THEN 1311 1311 ! this if could be simplified with the new lbc_lnk that works with any size of the 3rd dimension 1312 1312 IF( icnt(3) == inlev ) THEN 1313 CALL lbc_lnk( pv_r3d,'Z',-999.,'no0' )1313 CALL lbc_lnk( 'iom', pv_r3d,'Z',-999.,'no0' ) 1314 1314 ELSE ! put some arbitrary value (a call to lbc_lnk will be done later...) 1315 1315 DO jj = nlcj+1, jpj ; pv_r3d(1:nlci, jj, :) = pv_r3d(1:nlci, nlej, :) ; END DO … … 1336 1336 CALL xios_recv_field( trim(cdvar), pv_r3d) 1337 1337 IF(idom /= jpdom_unknown ) then 1338 CALL lbc_lnk( pv_r3d,'Z',-999.,'no0' )1338 CALL lbc_lnk( 'iom', pv_r3d,'Z',-999.,'no0' ) 1339 1339 ENDIF 1340 1340 ELSEIF( PRESENT(pv_r2d) ) THEN … … 1343 1343 CALL xios_recv_field( trim(cdvar), pv_r2d) 1344 1344 IF(idom /= jpdom_unknown ) THEN 1345 CALL lbc_lnk( pv_r2d,'Z',-999.,'no0')1345 CALL lbc_lnk('iom', pv_r2d,'Z',-999.,'no0') 1346 1346 ENDIF 1347 1347 ELSEIF( PRESENT(pv_r1d) ) THEN … … 1358 1358 !some final adjustments 1359 1359 ! C1D case : always call lbc_lnk to replicate the central value over the whole 3X3 domain 1360 IF( lk_c1d .AND. PRESENT(pv_r2d) ) CALL lbc_lnk( pv_r2d,'Z',1. )1361 IF( lk_c1d .AND. PRESENT(pv_r3d) ) CALL lbc_lnk( pv_r3d,'Z',1. )1360 IF( lk_c1d .AND. PRESENT(pv_r2d) ) CALL lbc_lnk( 'iom', pv_r2d,'Z',1. ) 1361 IF( lk_c1d .AND. PRESENT(pv_r3d) ) CALL lbc_lnk( 'iom', pv_r3d,'Z',1. ) 1362 1362 1363 1363 !--- Apply scale_factor and offset … … 1965 1965 SELECT CASE ( cdgrd ) 1966 1966 CASE('T') ; zmask(:,:,:) = tmask(:,:,:) 1967 CASE('U') ; zmask(2:jpim1,:,:) = tmask(2:jpim1,:,:) + tmask(3:jpi,:,:) ; CALL lbc_lnk( zmask, 'U', 1. )1968 CASE('V') ; zmask(:,2:jpjm1,:) = tmask(:,2:jpjm1,:) + tmask(:,3:jpj,:) ; CALL lbc_lnk( zmask, 'V', 1. )1967 CASE('U') ; zmask(2:jpim1,:,:) = tmask(2:jpim1,:,:) + tmask(3:jpi,:,:) ; CALL lbc_lnk( 'iom', zmask, 'U', 1. ) 1968 CASE('V') ; zmask(:,2:jpjm1,:) = tmask(:,2:jpjm1,:) + tmask(:,3:jpj,:) ; CALL lbc_lnk( 'iom', zmask, 'V', 1. ) 1969 1969 CASE('W') ; zmask(:,:,2:jpk ) = tmask(:,:,1:jpkm1) + tmask(:,:,2:jpk) ; zmask(:,:,1) = tmask(:,:,1) 1970 1970 END SELECT … … 2009 2009 ! 2010 2010 z_fld(:,:) = 1._wp 2011 CALL lbc_lnk( z_fld, cdgrd, -1. ) ! Working array for location of northfold2011 CALL lbc_lnk( 'iom', z_fld, cdgrd, -1. ) ! Working array for location of northfold 2012 2012 ! 2013 2013 ! Cell vertices that can be defined … … 2027 2027 ! Cell vertices on boundries 2028 2028 DO jn = 1, 4 2029 CALL lbc_lnk( z_bnds(jn,:,:,1), cdgrd, 1., pval=999._wp )2030 CALL lbc_lnk( z_bnds(jn,:,:,2), cdgrd, 1., pval=999._wp )2029 CALL lbc_lnk( 'iom', z_bnds(jn,:,:,1), cdgrd, 1., pval=999._wp ) 2030 CALL lbc_lnk( 'iom', z_bnds(jn,:,:,2), cdgrd, 1., pval=999._wp ) 2031 2031 END DO 2032 2032 ! -
NEMO/branches/2018/dev_r10164_HPC09_ESIWACE_PREP_MERGE/src/OCE/LBC/lbc_lnk_multi_generic.h90
r10068 r10170 14 14 # define PTR_ptab pt4d 15 15 #endif 16 SUBROUTINE ROUTINE_MULTI( pt1, cdna1, psgn1, pt2, cdna2, psgn2, pt3, cdna3, psgn3 & 16 SUBROUTINE ROUTINE_MULTI( cdname & 17 & , pt1, cdna1, psgn1, pt2, cdna2, psgn2, pt3, cdna3, psgn3 & 17 18 & , pt4, cdna4, psgn4, pt5, cdna5, psgn5, pt6, cdna6, psgn6 & 18 19 & , pt7, cdna7, psgn7, pt8, cdna8, psgn8, pt9, cdna9, psgn9, cd_mpp, pval) 19 20 !!--------------------------------------------------------------------- 21 CHARACTER(len=*) , INTENT(in ) :: cdname ! name of the calling subroutine 20 22 ARRAY_TYPE(:,:,:,:) , TARGET, INTENT(inout) :: pt1 ! arrays on which the lbc is applied 21 23 ARRAY_TYPE(:,:,:,:), OPTIONAL, TARGET, INTENT(inout) :: pt2 , pt3 , pt4 , pt5 , pt6 , pt7 , pt8 , pt9 … … 48 50 IF( PRESENT(psgn9) ) CALL ROUTINE_LOAD( pt9, cdna9, psgn9, ptab_ptr, cdna_ptr, psgn_ptr, kfld ) 49 51 ! 50 CALL lbc_lnk_ptr( ptab_ptr, cdna_ptr, psgn_ptr, kfld, cd_mpp, pval )52 CALL lbc_lnk_ptr( cdname, ptab_ptr, cdna_ptr, psgn_ptr, kfld, cd_mpp, pval ) 51 53 ! 52 54 END SUBROUTINE ROUTINE_MULTI -
NEMO/branches/2018/dev_r10164_HPC09_ESIWACE_PREP_MERGE/src/OCE/LBC/lib_mpp.F90
r10068 r10170 164 164 INTEGER , PUBLIC :: nn_buffer !: size of the buffer in case of mpi_bsend 165 165 166 ! Communications summary report 167 CHARACTER(len=128), DIMENSION(:), ALLOCATABLE :: crname !: names of calling routines 168 INTEGER, PUBLIC :: ncom_stp = 0 !: copy of time step # istp 169 INTEGER, PUBLIC , DIMENSION(:,:), ALLOCATABLE :: ncomm_sequence !: size of communicated arrays (halos) 170 INTEGER, PUBLIC :: n_sequence = 0 !: # of communicated arrays 171 LOGICAL :: l_comm_report_done = .false. !: print report only once 172 166 173 REAL(wp), DIMENSION(:), ALLOCATABLE, SAVE :: tampon ! buffer in case of bsend 167 174 -
NEMO/branches/2018/dev_r10164_HPC09_ESIWACE_PREP_MERGE/src/OCE/LBC/mpp_lnk_generic.h90
r10068 r10170 46 46 47 47 #if defined MULTI 48 SUBROUTINE ROUTINE_LNK( ptab, cd_nat, psgn, kfld, cd_mpp, pval )48 SUBROUTINE ROUTINE_LNK( cdname, ptab, cd_nat, psgn, kfld, cd_mpp, pval ) 49 49 INTEGER , INTENT(in ) :: kfld ! number of pt3d arrays 50 50 #else 51 SUBROUTINE ROUTINE_LNK( ptab, cd_nat, psgn , cd_mpp, pval )51 SUBROUTINE ROUTINE_LNK( cdname, ptab, cd_nat, psgn , cd_mpp, pval ) 52 52 #endif 53 53 ARRAY_TYPE(:,:,:,:,:) ! array or pointer of arrays on which the boundary condition is applied 54 CHARACTER(len=*) , INTENT(in ) :: cdname ! name of the calling subroutine 54 55 CHARACTER(len=1) , INTENT(in ) :: NAT_IN(:) ! nature of array grid-points 55 56 REAL(wp) , INTENT(in ) :: SGN_IN(:) ! sign used across the north fold boundary … … 61 62 INTEGER :: imigr, iihom, ijhom ! local integers 62 63 INTEGER :: ml_req1, ml_req2, ml_err ! for key_mpi_isend 64 INTEGER :: ierr 63 65 REAL(wp) :: zland 64 66 INTEGER , DIMENSION(MPI_STATUS_SIZE) :: ml_stat ! for key_mpi_isend … … 150 152 imigr = nn_hls * jpj * ipk * ipl * ipf 151 153 ! 154 IF( narea == 1 ) THEN 155 IF ( ncom_stp == nit000 ) THEN 156 IF( .NOT. ALLOCATED( ncomm_sequence) ) THEN 157 ALLOCATE( ncomm_sequence(1000,2), STAT=ierr ) 158 IF( ierr /= 0 ) CALL ctl_stop( 'STOP', 'lnk_generic, cannot allocate ncomm_sequence' ) 159 ALLOCATE( crname(1000), STAT=ierr ) 160 IF( ierr /= 0 ) CALL ctl_stop( 'STOP', 'lnk_generic, cannot allocate crname' ) 161 ENDIF 162 n_sequence = n_sequence + 1 163 IF( n_sequence > 1000 ) CALL ctl_stop( 'STOP', 'lnk_generic, increase ncomm_sequence first dimension' ) 164 ncomm_sequence(n_sequence,1) = ipk*ipl ! size of 3rd and 4th dimensions 165 ncomm_sequence(n_sequence,2) = ipf ! number of arrays to be treated (multi) 166 crname(n_sequence) = cdname ! keep the name of the calling routine 167 ELSE IF ( ncom_stp == (nit000+1) ) THEN 168 IF ( .NOT. l_comm_report_done ) THEN 169 WRITE(numout,*) ' ' 170 WRITE(numout,*) ' -----------------------------------------------' 171 WRITE(numout,*) ' Communication pattern report (first time step):' 172 WRITE(numout,*) ' -----------------------------------------------' 173 WRITE(numout,*) ' ' 174 WRITE(numout,'(A,I3)') ' Exchanged halos : ', n_sequence 175 jj = 0; jk = 0; jf = 0; jh = 0 176 DO ji = 1, n_sequence 177 IF ( ncomm_sequence(ji,1) .GT. 1 ) jk = jk + 1 178 IF ( ncomm_sequence(ji,2) .GT. 1 ) jf = jf + 1 179 IF ( ncomm_sequence(ji,1) .GT. 1 .AND. ncomm_sequence(ji,2) .GT. 1 ) jj = jj + 1 180 jh = MAX (jh, ncomm_sequence(ji,1)*ncomm_sequence(ji,2)) 181 END DO 182 WRITE(numout,'(A,I3)') ' 3D Exchanged halos : ', jk 183 WRITE(numout,'(A,I3)') ' Multi arrays exchanged halos : ', jf 184 WRITE(numout,'(A,I3)') ' from which 3D : ', jj 185 WRITE(numout,'(A,I10)') ' Array max size : ', jh*jpi*jpj 186 WRITE(numout,*) ' ' 187 WRITE(numout,*) ' lbc_lnk called' 188 jj = 1 189 DO ji = 2, n_sequence 190 IF( crname(ji-1) /= crname(ji) ) THEN 191 WRITE(numout,'(A, I4, A, A)') ' - ', jj,' times by subroutine ', TRIM(crname(ji-1)) 192 jj = 0 193 END IF 194 jj = jj + 1 195 END DO 196 WRITE(numout,'(A, I4, A, A)') ' - ', jj,' times by subroutine ', TRIM(crname(n_sequence)) 197 WRITE(numout,*) ' ' 198 WRITE(numout,*) ' -----------------------------------------------' 199 WRITE(numout,*) ' ' 200 DEALLOCATE(ncomm_sequence) 201 DEALLOCATE(crname) 202 l_comm_report_done = .TRUE. 203 ENDIF 204 ENDIF 205 ENDIF 206 ! 152 207 SELECT CASE ( nbondi ) 153 208 CASE ( -1 ) -
NEMO/branches/2018/dev_r10164_HPC09_ESIWACE_PREP_MERGE/src/OCE/LDF/ldfc1d_c2d.F90
r10069 r10170 87 87 END DO 88 88 END DO 89 CALL lbc_lnk( pah2, 'F', 1. ) ! Lateral boundary conditions89 CALL lbc_lnk( 'ldfc1d_c2d', pah2, 'F', 1. ) ! Lateral boundary conditions 90 90 ! 91 91 CASE( 'TRA' ) ! U- and V-points (zdep1 & 2 are an approximation in zps-coord.) … … 101 101 END DO 102 102 ! Lateral boundary conditions 103 CALL lbc_lnk_multi( pah1, 'U', 1. , pah2, 'V', 1. )103 CALL lbc_lnk_multi( 'ldfc1d_c2d', pah1, 'U', 1. , pah2, 'V', 1. ) 104 104 ! 105 105 CASE DEFAULT ! error -
NEMO/branches/2018/dev_r10164_HPC09_ESIWACE_PREP_MERGE/src/OCE/LDF/ldfdyn.F90
r10068 r10170 399 399 ENDIF 400 400 ! 401 CALL lbc_lnk_multi( ahmt, 'T', 1., ahmf, 'F', 1. )401 CALL lbc_lnk_multi( 'ldfdyn', ahmt, 'T', 1., ahmf, 'F', 1. ) 402 402 ! 403 403 ! … … 477 477 ENDIF 478 478 ! 479 CALL lbc_lnk_multi( ahmt, 'T', 1. , ahmf, 'F', 1. )479 CALL lbc_lnk_multi( 'ldfdyn', ahmt, 'T', 1. , ahmf, 'F', 1. ) 480 480 ! 481 481 END SELECT -
NEMO/branches/2018/dev_r10164_HPC09_ESIWACE_PREP_MERGE/src/OCE/LDF/ldfslp.F90
r10068 r10170 232 232 END DO 233 233 END DO 234 CALL lbc_lnk_multi( zwz, 'U', -1., zww, 'V', -1. ) ! lateral boundary conditions234 CALL lbc_lnk_multi( 'ldfslp', zwz, 'U', -1., zww, 'V', -1. ) ! lateral boundary conditions 235 235 ! 236 236 ! !* horizontal Shapiro filter … … 314 314 END DO 315 315 END DO 316 CALL lbc_lnk_multi( zwz, 'T', -1., zww, 'T', -1. ) ! lateral boundary conditions316 CALL lbc_lnk_multi( 'ldfslp', zwz, 'T', -1., zww, 'T', -1. ) ! lateral boundary conditions 317 317 ! 318 318 ! !* horizontal Shapiro filter … … 363 363 ! IV. Lateral boundary conditions 364 364 ! =============================== 365 CALL lbc_lnk_multi( uslp , 'U', -1. , vslp , 'V', -1. , wslpi, 'W', -1., wslpj, 'W', -1. )365 CALL lbc_lnk_multi( 'ldfslp', uslp , 'U', -1. , vslp , 'V', -1. , wslpi, 'W', -1., wslpj, 'W', -1. ) 366 366 367 367 IF(ln_ctl) THEN … … 611 611 wslp2(:,:,1) = 0._wp ! force the surface wslp to zero 612 612 613 CALL lbc_lnk( wslp2, 'W', 1. ) ! lateral boundary confition on wslp2 only ==>>> gm : necessary ? to be checked613 CALL lbc_lnk( 'ldfslp', wslp2, 'W', 1. ) ! lateral boundary confition on wslp2 only ==>>> gm : necessary ? to be checked 614 614 ! 615 615 IF( ln_timing ) CALL timing_stop('ldf_slp_triad') … … 725 725 END DO 726 726 !!gm this lbc_lnk should be useless.... 727 CALL lbc_lnk_multi( uslpml , 'U', -1. , vslpml , 'V', -1. , wslpiml, 'W', -1. , wslpjml, 'W', -1. )727 CALL lbc_lnk_multi( 'ldfslp', uslpml , 'U', -1. , vslpml , 'V', -1. , wslpiml, 'W', -1. , wslpjml, 'W', -1. ) 728 728 ! 729 729 END SUBROUTINE ldf_slp_mxl … … 793 793 ! END DO 794 794 ! END DO 795 ! CALL lbc_lnk_multi( uslp , 'U', -1. ; CALL lbc_lnk(vslp , 'V', -1., wslpi, 'W', -1., wslpj, 'W', -1. )795 ! CALL lbc_lnk_multi( 'ldfslp', uslp , 'U', -1. ; CALL lbc_lnk( 'ldfslp', vslp , 'V', -1., wslpi, 'W', -1., wslpj, 'W', -1. ) 796 796 !!gm ENDIF 797 797 ENDIF -
NEMO/branches/2018/dev_r10164_HPC09_ESIWACE_PREP_MERGE/src/OCE/LDF/ldftra.F90
r10068 r10170 707 707 END DO 708 708 END DO 709 CALL lbc_lnk( zaeiw(:,:), 'W', 1. ) ! lateral boundary condition709 CALL lbc_lnk( 'ldftra', zaeiw(:,:), 'W', 1. ) ! lateral boundary condition 710 710 ! 711 711 DO jj = 2, jpjm1 !== aei at u- and v-points ==! … … 715 715 END DO 716 716 END DO 717 CALL lbc_lnk_multi( paeiu(:,:,1), 'U', 1. , paeiv(:,:,1), 'V', 1. ) ! lateral boundary condition717 CALL lbc_lnk_multi( 'ldftra', paeiu(:,:,1), 'U', 1. , paeiv(:,:,1), 'V', 1. ) ! lateral boundary condition 718 718 719 719 DO jk = 2, jpkm1 !== deeper values equal the surface one ==! … … 821 821 !!gm to be redesigned.... 822 822 ! !== eiv stream function: output ==! 823 CALL lbc_lnk_multi( psi_uw, 'U', -1. , psi_vw, 'V', -1. )823 CALL lbc_lnk_multi( 'ldftra', psi_uw, 'U', -1. , psi_vw, 'V', -1. ) 824 824 ! 825 825 !!gm CALL iom_put( "psi_eiv_uw", psi_uw ) ! output … … 848 848 END DO 849 849 END DO 850 CALL lbc_lnk( zw3d, 'T', 1. ) ! lateral boundary condition850 CALL lbc_lnk( 'ldftra', zw3d, 'T', 1. ) ! lateral boundary condition 851 851 CALL iom_put( "woce_eiv", zw3d ) 852 852 ! … … 865 865 END DO 866 866 END DO 867 CALL lbc_lnk( zw2d, 'U', -1. )868 CALL lbc_lnk( zw3d, 'U', -1. )867 CALL lbc_lnk( 'ldftra', zw2d, 'U', -1. ) 868 CALL lbc_lnk( 'ldftra', zw3d, 'U', -1. ) 869 869 CALL iom_put( "ueiv_heattr" , zztmp * zw2d ) ! heat transport in i-direction 870 870 CALL iom_put( "ueiv_heattr3d", zztmp * zw3d ) ! heat transport in i-direction … … 881 881 END DO 882 882 END DO 883 CALL lbc_lnk( zw2d, 'V', -1. )883 CALL lbc_lnk( 'ldftra', zw2d, 'V', -1. ) 884 884 CALL iom_put( "veiv_heattr", zztmp * zw2d ) ! heat transport in j-direction 885 885 CALL iom_put( "veiv_heattr", zztmp * zw3d ) ! heat transport in j-direction … … 900 900 END DO 901 901 END DO 902 CALL lbc_lnk( zw2d, 'U', -1. )903 CALL lbc_lnk( zw3d, 'U', -1. )902 CALL lbc_lnk( 'ldftra', zw2d, 'U', -1. ) 903 CALL lbc_lnk( 'ldftra', zw3d, 'U', -1. ) 904 904 CALL iom_put( "ueiv_salttr", zztmp * zw2d ) ! salt transport in i-direction 905 905 CALL iom_put( "ueiv_salttr3d", zztmp * zw3d ) ! salt transport in i-direction … … 916 916 END DO 917 917 END DO 918 CALL lbc_lnk( zw2d, 'V', -1. )918 CALL lbc_lnk( 'ldftra', zw2d, 'V', -1. ) 919 919 CALL iom_put( "veiv_salttr", zztmp * zw2d ) ! salt transport in j-direction 920 920 CALL iom_put( "veiv_salttr", zztmp * zw3d ) ! salt transport in j-direction -
NEMO/branches/2018/dev_r10164_HPC09_ESIWACE_PREP_MERGE/src/OCE/SBC/cpl_oasis3.F90
r10112 r10170 454 454 !--- Fill the overlap areas and extra hallows (mpp) 455 455 !--- check periodicity conditions (all cases) 456 IF( .not. llfisrt ) CALL lbc_lnk( pdata(:,:,jc), srcv(kid)%clgrid, srcv(kid)%nsgn )456 IF( .not. llfisrt ) CALL lbc_lnk( 'cpl_oasis3', pdata(:,:,jc), srcv(kid)%clgrid, srcv(kid)%nsgn ) 457 457 458 458 ENDDO -
NEMO/branches/2018/dev_r10164_HPC09_ESIWACE_PREP_MERGE/src/OCE/SBC/fldread.F90
r10068 r10170 669 669 IF( sdjf%ln_tint ) THEN 670 670 CALL iom_get( sdjf%num, sdjf%clvar, sdjf%fdta(2,2,1,2), sdjf%nrec_a(1) ) 671 CALL lbc_lnk( sdjf%fdta(:,:,1,2),'Z',1. )671 CALL lbc_lnk( 'fldread', sdjf%fdta(:,:,1,2),'Z',1. ) 672 672 ELSE 673 673 CALL iom_get( sdjf%num, sdjf%clvar, sdjf%fnow(2,2,1 ), sdjf%nrec_a(1) ) 674 CALL lbc_lnk( sdjf%fnow(:,:,1 ),'Z',1. )674 CALL lbc_lnk( 'fldread', sdjf%fnow(:,:,1 ),'Z',1. ) 675 675 ENDIF 676 676 ELSE … … 683 683 IF( sdjf%ln_tint ) THEN 684 684 CALL iom_get( sdjf%num, jpdom_unknown, sdjf%clvar, sdjf%fdta(2,2,:,2), sdjf%nrec_a(1) ) 685 CALL lbc_lnk( sdjf%fdta(:,:,:,2),'Z',1. )685 CALL lbc_lnk( 'fldread', sdjf%fdta(:,:,:,2),'Z',1. ) 686 686 ELSE 687 687 CALL iom_get( sdjf%num, jpdom_unknown, sdjf%clvar, sdjf%fnow(2,2,: ), sdjf%nrec_a(1) ) 688 CALL lbc_lnk( sdjf%fnow(:,:,: ),'Z',1. )688 CALL lbc_lnk( 'fldread', sdjf%fnow(:,:,: ),'Z',1. ) 689 689 ENDIF 690 690 ELSE -
NEMO/branches/2018/dev_r10164_HPC09_ESIWACE_PREP_MERGE/src/OCE/SBC/geo2ocean.F90
r10068 r10170 280 280 ! =========================== ! 281 281 ! ! lateral boundary cond.: T-, U-, V-, F-pts, sgn 282 CALL lbc_lnk_multi( gcost, 'T', -1., gsint, 'T', -1., gcosu, 'U', -1., gsinu, 'U', -1., &282 CALL lbc_lnk_multi( 'geo2ocean', gcost, 'T', -1., gsint, 'T', -1., gcosu, 'U', -1., gsinu, 'U', -1., & 283 283 & gcosv, 'V', -1., gsinv, 'V', -1., gcosf, 'F', -1., gsinf, 'F', -1. ) 284 284 ! -
NEMO/branches/2018/dev_r10164_HPC09_ESIWACE_PREP_MERGE/src/OCE/SBC/sbc_oce.F90
r10068 r10170 216 216 END DO 217 217 END DO 218 CALL lbc_lnk( wndm(:,:) , 'T', 1. )218 CALL lbc_lnk( 'sbc_oce', wndm(:,:) , 'T', 1. ) 219 219 ! 220 220 END SUBROUTINE sbc_tau2wnd -
NEMO/branches/2018/dev_r10164_HPC09_ESIWACE_PREP_MERGE/src/OCE/SBC/sbcblk.F90
r10069 r10170 407 407 END DO 408 408 END DO 409 CALL lbc_lnk_multi( zwnd_i, 'T', -1., zwnd_j, 'T', -1. )409 CALL lbc_lnk_multi( 'sbcblk', zwnd_i, 'T', -1., zwnd_j, 'T', -1. ) 410 410 ! ... scalar wind ( = | U10m - U_oce | ) at T-point (masked) 411 411 wndm(:,:) = SQRT( zwnd_i(:,:) * zwnd_i(:,:) & … … 485 485 END DO 486 486 END DO 487 CALL lbc_lnk_multi( utau, 'U', -1., vtau, 'V', -1. )487 CALL lbc_lnk_multi( 'sbcblk', utau, 'U', -1., vtau, 'V', -1. ) 488 488 489 489 ! Turbulent fluxes over ocean … … 727 727 END DO 728 728 END DO 729 CALL lbc_lnk( wndm_ice, 'T', 1. )729 CALL lbc_lnk( 'sbcblk', wndm_ice, 'T', 1. ) 730 730 ! 731 731 ! Make ice-atm. drag dependent on ice concentration … … 761 761 END DO 762 762 END DO 763 CALL lbc_lnk_multi( utau_ice, 'U', -1., vtau_ice, 'V', -1. )763 CALL lbc_lnk_multi( 'sbcblk', utau_ice, 'U', -1., vtau_ice, 'V', -1. ) 764 764 ! 765 765 ! … … 1186 1186 END DO 1187 1187 END DO 1188 CALL lbc_lnk_multi( Cd, 'T', 1., Ch, 'T', 1. )1188 CALL lbc_lnk_multi( 'sbcblk', Cd, 'T', 1., Ch, 'T', 1. ) 1189 1189 ! 1190 1190 END SUBROUTINE Cdn10_Lupkes2015 -
NEMO/branches/2018/dev_r10164_HPC09_ESIWACE_PREP_MERGE/src/OCE/SBC/sbccpl.F90
r10068 r10170 1162 1162 END DO 1163 1163 END DO 1164 CALL lbc_lnk_multi( frcv(jpr_otx1)%z3(:,:,1), 'U', -1., frcv(jpr_oty1)%z3(:,:,1), 'V', -1. )1164 CALL lbc_lnk_multi( 'sbccpl', frcv(jpr_otx1)%z3(:,:,1), 'U', -1., frcv(jpr_oty1)%z3(:,:,1), 'V', -1. ) 1165 1165 ENDIF 1166 1166 llnewtx = .TRUE. … … 1189 1189 END DO 1190 1190 END DO 1191 CALL lbc_lnk( frcv(jpr_taum)%z3(:,:,1), 'T', 1. )1191 CALL lbc_lnk( 'sbccpl', frcv(jpr_taum)%z3(:,:,1), 'T', 1. ) 1192 1192 llnewtau = .TRUE. 1193 1193 ELSE … … 1570 1570 END SELECT 1571 1571 IF( srcv(jpr_itx1)%clgrid /= 'U' ) THEN 1572 CALL lbc_lnk_multi( p_taui, 'U', -1., p_tauj, 'V', -1. )1572 CALL lbc_lnk_multi( 'sbccpl', p_taui, 'U', -1., p_tauj, 'V', -1. ) 1573 1573 ENDIF 1574 1574 … … 2329 2329 END DO 2330 2330 END DO 2331 CALL lbc_lnk_multi( zitx1, 'T', -1., zity1, 'T', -1. )2331 CALL lbc_lnk_multi( 'sbccpl', zitx1, 'T', -1., zity1, 'T', -1. ) 2332 2332 CASE( 'mixed oce-ice' ) ! Ocean and Ice on C-grid ==> T 2333 2333 DO jj = 2, jpjm1 … … 2340 2340 END DO 2341 2341 END SELECT 2342 CALL lbc_lnk_multi( zotx1, ssnd(jps_ocx1)%clgrid, -1., zoty1, ssnd(jps_ocy1)%clgrid, -1. )2342 CALL lbc_lnk_multi( 'sbccpl', zotx1, ssnd(jps_ocx1)%clgrid, -1., zoty1, ssnd(jps_ocy1)%clgrid, -1. ) 2343 2343 ! 2344 2344 ENDIF … … 2412 2412 END DO 2413 2413 END DO 2414 CALL lbc_lnk_multi( zitx1, 'T', -1., zity1, 'T', -1. )2414 CALL lbc_lnk_multi( 'sbccpl', zitx1, 'T', -1., zity1, 'T', -1. ) 2415 2415 CASE( 'mixed oce-ice' ) ! Ocean and Ice on C-grid ==> T 2416 2416 DO jj = 2, jpjm1 … … 2423 2423 END DO 2424 2424 END SELECT 2425 CALL lbc_lnk_multi( zotx1, ssnd(jps_ocxw)%clgrid, -1., zoty1, ssnd(jps_ocyw)%clgrid, -1. )2425 CALL lbc_lnk_multi( 'sbccpl', zotx1, ssnd(jps_ocxw)%clgrid, -1., zoty1, ssnd(jps_ocyw)%clgrid, -1. ) 2426 2426 ! 2427 2427 ! -
NEMO/branches/2018/dev_r10164_HPC09_ESIWACE_PREP_MERGE/src/OCE/SBC/sbcflx.F90
r10068 r10170 157 157 END DO 158 158 taum(:,:) = taum(:,:) * tmask(:,:,1) ; wndm(:,:) = wndm(:,:) * tmask(:,:,1) 159 CALL lbc_lnk( taum(:,:), 'T', 1. ) ; CALL lbc_lnk(wndm(:,:), 'T', 1. )159 CALL lbc_lnk( 'sbcflx', taum(:,:), 'T', 1. ) ; CALL lbc_lnk( 'sbcflx', wndm(:,:), 'T', 1. ) 160 160 161 161 IF( nitend-nit000 <= 100 .AND. lwp ) THEN ! control print (if less than 100 time-step asked) -
NEMO/branches/2018/dev_r10164_HPC09_ESIWACE_PREP_MERGE/src/OCE/SBC/sbcfwb.F90
r10068 r10170 178 178 ! 179 179 !!gm ===>>>> lbc_lnk should be useless as all the computation is done over the whole domain ! 180 CALL lbc_lnk( zerp_cor, 'T', 1. )180 CALL lbc_lnk( 'sbcfwb', zerp_cor, 'T', 1. ) 181 181 ! 182 182 emp(:,:) = emp(:,:) + zerp_cor(:,:) -
NEMO/branches/2018/dev_r10164_HPC09_ESIWACE_PREP_MERGE/src/OCE/SBC/sbcice_cice.F90
r10068 r10170 217 217 ENDDO 218 218 219 CALL lbc_lnk_multi( fr_iu , 'U', 1., fr_iv , 'V', 1. )219 CALL lbc_lnk_multi( 'sbcice_cice', fr_iu , 'U', 1., fr_iv , 'V', 1. ) 220 220 221 221 ! set the snow+ice mass … … 513 513 ENDDO 514 514 ENDDO 515 CALL lbc_lnk( ss_iou , 'U', -1. )515 CALL lbc_lnk( 'sbcice_cice', ss_iou , 'U', -1. ) 516 516 517 517 ! y comp of ocean-ice stress … … 525 525 ENDDO 526 526 ENDDO 527 CALL lbc_lnk( ss_iov , 'V', -1. )527 CALL lbc_lnk( 'sbcice_cice', ss_iov , 'V', -1. ) 528 528 529 529 ! x and y comps of surface stress … … 578 578 fmmflx(:,:) = ztmp1(:,:) !!Joakim edit 579 579 580 CALL lbc_lnk_multi( emp , 'T', 1., sfx , 'T', 1. )580 CALL lbc_lnk_multi( 'sbcice_cice', emp , 'T', 1., sfx , 'T', 1. ) 581 581 582 582 ! Solar penetrative radiation and non solar surface heat flux … … 604 604 #endif 605 605 qsr(:,:)=qsr(:,:)+ztmp1(:,:) 606 CALL lbc_lnk( qsr , 'T', 1. )606 CALL lbc_lnk( 'sbcice_cice', qsr , 'T', 1. ) 607 607 608 608 DO jj=1,jpj … … 619 619 qns(:,:)=qns(:,:)+nfrzmlt(:,:)+ztmp1(:,:) 620 620 621 CALL lbc_lnk( qns , 'T', 1. )621 CALL lbc_lnk( 'sbcice_cice', qns , 'T', 1. ) 622 622 623 623 ! Prepare for the following CICE time-step … … 639 639 ENDDO 640 640 641 CALL lbc_lnk_multi( fr_iu , 'U', 1., fr_iv , 'V', 1. )641 CALL lbc_lnk_multi( 'sbcice_cice', fr_iu , 'U', 1., fr_iv , 'V', 1. ) 642 642 643 643 ! set the snow+ice mass … … 863 863 ! A. Ensure all haloes are filled in NEMO field (pn) 864 864 865 CALL lbc_lnk( pn , cd_type, psgn )865 CALL lbc_lnk( 'sbcice_cice', pn , cd_type, psgn ) 866 866 867 867 #if defined key_nemocice_decomp … … 1040 1040 ! D. Ensure all haloes are filled in pn 1041 1041 1042 CALL lbc_lnk( pn , cd_type, psgn )1042 CALL lbc_lnk( 'sbcice_cice', pn , cd_type, psgn ) 1043 1043 1044 1044 END SUBROUTINE cice2nemo -
NEMO/branches/2018/dev_r10164_HPC09_ESIWACE_PREP_MERGE/src/OCE/SBC/sbcisf.F90
r10068 r10170 157 157 158 158 ! lbclnk 159 CALL lbc_lnk_multi( risf_tsc(:,:,jp_tem), 'T', 1., risf_tsc(:,:,jp_sal), 'T', 1., fwfisf,'T', 1., qisf, 'T', 1.)159 CALL lbc_lnk_multi( 'sbcisf', risf_tsc(:,:,jp_tem), 'T', 1., risf_tsc(:,:,jp_sal), 'T', 1., fwfisf,'T', 1., qisf, 'T', 1.) 160 160 ! output 161 161 IF( iom_use('iceshelf_cea') ) CALL iom_put( 'iceshelf_cea', -fwfisf(:,:) ) ! isf mass flux … … 721 721 END DO 722 722 END DO 723 CALL lbc_lnk_multi( pgt, 'T', 1., pgs, 'T', 1.)723 CALL lbc_lnk_multi( 'sbcisf', pgt, 'T', 1., pgs, 'T', 1.) 724 724 END SELECT 725 725 ! … … 778 778 END DO 779 779 END DO 780 CALL lbc_lnk( pvarout,'T',-1.)780 CALL lbc_lnk('sbcisf', pvarout,'T',-1.) 781 781 782 782 CASE ( 'V' ) ! compute V in the top boundary layer at T- point … … 810 810 END DO 811 811 END DO 812 CALL lbc_lnk( pvarout,'T',-1.)812 CALL lbc_lnk('sbcisf', pvarout,'T',-1.) 813 813 814 814 CASE ( 'T' ) ! compute T in the top boundary layer at T- point -
NEMO/branches/2018/dev_r10164_HPC09_ESIWACE_PREP_MERGE/src/OCE/SBC/sbcmod.F90
r10068 r10170 437 437 ! icebergs may advect into haloes during the icb step and alter emp. 438 438 ! A lbc_lnk is necessary here to ensure restartability (#2113) 439 IF( .NOT. ln_passive_mode ) CALL lbc_lnk( emp, 'T', 1. ) ! ensure restartability with icebergs439 IF( .NOT. ln_passive_mode ) CALL lbc_lnk( 'sbcmod', emp, 'T', 1. ) ! ensure restartability with icebergs 440 440 ENDIF 441 441 … … 454 454 !!$!RBbug do not understand why see ticket 667 455 455 !!$!clem: it looks like it is necessary for the north fold (in certain circumstances). Don't know why. 456 !!$ CALL lbc_lnk( emp, 'T', 1. )456 !!$ CALL lbc_lnk( 'sbcmod', emp, 'T', 1. ) 457 457 ! 458 458 IF( kt == nit000 ) THEN ! set the forcing field at nit000 - 1 ! -
NEMO/branches/2018/dev_r10164_HPC09_ESIWACE_PREP_MERGE/src/OCE/SBC/sbcwave.F90
r10068 r10170 215 215 ENDIF 216 216 217 CALL lbc_lnk_multi( usd, 'U', -1., vsd, 'V', -1. )217 CALL lbc_lnk_multi( 'sbcwave', usd, 'U', -1., vsd, 'V', -1. ) 218 218 219 219 ! … … 240 240 #endif 241 241 ! 242 CALL lbc_lnk( ze3divh, 'T', 1. )242 CALL lbc_lnk( 'sbcwave', ze3divh, 'T', 1. ) 243 243 ! 244 244 IF( ln_linssh ) THEN ; ik = 1 ! none zero velocity through the sea surface … … 301 301 END DO 302 302 END DO 303 CALL lbc_lnk_multi( utau(:,:), 'U', -1. , vtau(:,:), 'V', -1. , taum(:,:) , 'T', -1. )303 CALL lbc_lnk_multi( 'sbcwave', utau(:,:), 'U', -1. , vtau(:,:), 'V', -1. , taum(:,:) , 'T', -1. ) 304 304 ENDIF 305 305 ! -
NEMO/branches/2018/dev_r10164_HPC09_ESIWACE_PREP_MERGE/src/OCE/STO/stopar.F90
r10069 r10170 172 172 ! Apply horizontal Laplacian filter to w 173 173 DO jflt = 1, sto2d_flt(jsto) 174 CALL lbc_lnk( sto2d(:,:,jsto), sto2d_typ(jsto), sto2d_sgn(jsto) )174 CALL lbc_lnk( 'stopar', sto2d(:,:,jsto), sto2d_typ(jsto), sto2d_sgn(jsto) ) 175 175 CALL sto_par_flt( sto2d(:,:,jsto) ) 176 176 END DO … … 195 195 196 196 ! Lateral boundary conditions on sto2d 197 CALL lbc_lnk( sto2d(:,:,jsto), sto2d_typ(jsto), sto2d_sgn(jsto) )197 CALL lbc_lnk( 'stopar', sto2d(:,:,jsto), sto2d_typ(jsto), sto2d_sgn(jsto) ) 198 198 END DO 199 199 ! … … 210 210 ! Apply horizontal Laplacian filter to w 211 211 DO jflt = 1, sto3d_flt(jsto) 212 CALL lbc_lnk( sto3d(:,:,jk,jsto), sto3d_typ(jsto), sto3d_sgn(jsto) )212 CALL lbc_lnk( 'stopar', sto3d(:,:,jk,jsto), sto3d_typ(jsto), sto3d_sgn(jsto) ) 213 213 CALL sto_par_flt( sto3d(:,:,jk,jsto) ) 214 214 END DO … … 233 233 END DO 234 234 ! Lateral boundary conditions on sto3d 235 CALL lbc_lnk( sto3d(:,:,:,jsto), sto3d_typ(jsto), sto3d_sgn(jsto) )235 CALL lbc_lnk( 'stopar', sto3d(:,:,:,jsto), sto3d_typ(jsto), sto3d_sgn(jsto) ) 236 236 END DO 237 237 ! … … 642 642 ! Apply horizontal Laplacian filter to w 643 643 DO jflt = 1, sto2d_flt(jsto) 644 CALL lbc_lnk( sto2d(:,:,jsto), sto2d_typ(jsto), sto2d_sgn(jsto) )644 CALL lbc_lnk( 'stopar', sto2d(:,:,jsto), sto2d_typ(jsto), sto2d_sgn(jsto) ) 645 645 CALL sto_par_flt( sto2d(:,:,jsto) ) 646 646 END DO … … 659 659 ! Apply horizontal Laplacian filter to w 660 660 DO jflt = 1, sto3d_flt(jsto) 661 CALL lbc_lnk( sto3d(:,:,jk,jsto), sto3d_typ(jsto), sto3d_sgn(jsto) )661 CALL lbc_lnk( 'stopar', sto3d(:,:,jk,jsto), sto3d_typ(jsto), sto3d_sgn(jsto) ) 662 662 CALL sto_par_flt( sto3d(:,:,jk,jsto) ) 663 663 END DO -
NEMO/branches/2018/dev_r10164_HPC09_ESIWACE_PREP_MERGE/src/OCE/STO/stopts.F90
r10069 r10170 54 54 55 55 DO jts = 1, jpts 56 CALL lbc_lnk( pts(:,:,:,jts), 'T' , 1._wp )56 CALL lbc_lnk( 'stopts', pts(:,:,:,jts), 'T' , 1._wp ) 57 57 ENDDO 58 58 … … 123 123 DO jdof = 1, nn_sto_eos 124 124 DO jts = 1, jpts 125 CALL lbc_lnk( pts_ran(:,:,:,jts,jdof), 'T' , 1._wp )125 CALL lbc_lnk( 'stopts', pts_ran(:,:,:,jts,jdof), 'T' , 1._wp ) 126 126 END DO 127 127 END DO -
NEMO/branches/2018/dev_r10164_HPC09_ESIWACE_PREP_MERGE/src/OCE/TRA/eosbn2.F90
r10068 r10170 533 533 END DO 534 534 ! 535 CALL lbc_lnk( prd, 'T', 1. ) ! Lateral boundary conditions535 CALL lbc_lnk( 'eosbn2', prd, 'T', 1. ) ! Lateral boundary conditions 536 536 ! 537 537 CASE( np_seos ) !== simplified EOS ==! … … 553 553 END DO 554 554 ! 555 CALL lbc_lnk( prd, 'T', 1. ) ! Lateral boundary conditions555 CALL lbc_lnk( 'eosbn2', prd, 'T', 1. ) ! Lateral boundary conditions 556 556 ! 557 557 END SELECT … … 756 756 END DO 757 757 ! ! Lateral boundary conditions 758 CALL lbc_lnk_multi( pab(:,:,jp_tem), 'T', 1. , pab(:,:,jp_sal), 'T', 1. )758 CALL lbc_lnk_multi( 'eosbn2', pab(:,:,jp_tem), 'T', 1. , pab(:,:,jp_sal), 'T', 1. ) 759 759 ! 760 760 CASE( np_seos ) !== simplified EOS ==! … … 776 776 END DO 777 777 ! ! Lateral boundary conditions 778 CALL lbc_lnk_multi( pab(:,:,jp_tem), 'T', 1. , pab(:,:,jp_sal), 'T', 1. )778 CALL lbc_lnk_multi( 'eosbn2', pab(:,:,jp_tem), 'T', 1. , pab(:,:,jp_sal), 'T', 1. ) 779 779 ! 780 780 CASE DEFAULT -
NEMO/branches/2018/dev_r10164_HPC09_ESIWACE_PREP_MERGE/src/OCE/TRA/traadv_cen.F90
r10069 r10170 123 123 END DO 124 124 END DO 125 CALL lbc_lnk_multi( ztu, 'U', -1. , ztv, 'V', -1. ) ! Lateral boundary cond.125 CALL lbc_lnk_multi( 'traadv_cen', ztu, 'U', -1. , ztv, 'V', -1. ) ! Lateral boundary cond. 126 126 ! 127 127 DO jk = 1, jpkm1 ! Horizontal advective fluxes -
NEMO/branches/2018/dev_r10164_HPC09_ESIWACE_PREP_MERGE/src/OCE/TRA/traadv_fct.F90
r10068 r10170 169 169 END DO 170 170 END DO 171 CALL lbc_lnk( zwi, 'T', 1. ) ! Lateral boundary conditions on zwi (unchanged sign)171 CALL lbc_lnk( 'traadv_fct', zwi, 'T', 1. ) ! Lateral boundary conditions on zwi (unchanged sign) 172 172 ! 173 173 IF( l_trd .OR. l_hst ) THEN ! trend diagnostics (contribution of upstream fluxes) … … 208 208 END DO 209 209 END DO 210 CALL lbc_lnk_multi( zltu, 'T', 1. , zltv, 'T', 1. ) ! Lateral boundary cond. (unchanged sgn)210 CALL lbc_lnk_multi( 'traadv_fct', zltu, 'T', 1. , zltv, 'T', 1. ) ! Lateral boundary cond. (unchanged sgn) 211 211 ! 212 212 DO jk = 1, jpkm1 ! Horizontal advective fluxes … … 233 233 END DO 234 234 END DO 235 CALL lbc_lnk_multi( ztu, 'U', -1. , ztv, 'V', -1. ) ! Lateral boundary cond. (unchanged sgn)235 CALL lbc_lnk_multi( 'traadv_fct', ztu, 'U', -1. , ztv, 'V', -1. ) ! Lateral boundary cond. (unchanged sgn) 236 236 ! 237 237 DO jk = 1, jpkm1 ! Horizontal advective fluxes … … 279 279 ENDIF 280 280 ! 281 CALL lbc_lnk_multi( zwx, 'U', -1. , zwy, 'V', -1., zwz, 'W', 1. )281 CALL lbc_lnk_multi( 'traadv_fct', zwx, 'U', -1. , zwy, 'V', -1., zwz, 'W', 1. ) 282 282 ! 283 283 ! !== monotonicity algorithm ==! … … 399 399 END DO 400 400 END DO 401 CALL lbc_lnk_multi( zbetup, 'T', 1. , zbetdo, 'T', 1. ) ! lateral boundary cond. (unchanged sign)401 CALL lbc_lnk_multi( 'traadv_fct', zbetup, 'T', 1. , zbetdo, 'T', 1. ) ! lateral boundary cond. (unchanged sign) 402 402 403 403 ! 3. monotonic flux in the i & j direction (paa & pbb) … … 425 425 END DO 426 426 END DO 427 CALL lbc_lnk_multi( paa, 'U', -1. , pbb, 'V', -1. ) ! lateral boundary condition (changed sign)427 CALL lbc_lnk_multi( 'traadv_fct', paa, 'U', -1. , pbb, 'V', -1. ) ! lateral boundary condition (changed sign) 428 428 ! 429 429 END SUBROUTINE nonosc -
NEMO/branches/2018/dev_r10164_HPC09_ESIWACE_PREP_MERGE/src/OCE/TRA/traadv_mus.F90
r10068 r10170 140 140 END DO 141 141 ! lateral boundary conditions (changed sign) 142 CALL lbc_lnk_multi( zwx, 'U', -1. , zwy, 'V', -1. )142 CALL lbc_lnk_multi( 'traadv_mus', zwx, 'U', -1. , zwy, 'V', -1. ) 143 143 ! !-- Slopes of tracer 144 144 zslpx(:,:,jpk) = 0._wp ! bottom values … … 188 188 END DO 189 189 END DO 190 CALL lbc_lnk_multi( zwx, 'U', -1. , zwy, 'V', -1. ) ! lateral boundary conditions (changed sign)190 CALL lbc_lnk_multi( 'traadv_mus', zwx, 'U', -1. , zwy, 'V', -1. ) ! lateral boundary conditions (changed sign) 191 191 ! 192 192 DO jk = 1, jpkm1 !-- Tracer advective trend -
NEMO/branches/2018/dev_r10164_HPC09_ESIWACE_PREP_MERGE/src/OCE/TRA/traadv_qck.F90
r10068 r10170 150 150 END DO 151 151 END DO 152 CALL lbc_lnk_multi( zfc(:,:,:), 'T', 1. , zfd(:,:,:), 'T', 1. ) ! Lateral boundary conditions152 CALL lbc_lnk_multi( 'traadv_qck', zfc(:,:,:), 'T', 1. , zfd(:,:,:), 'T', 1. ) ! Lateral boundary conditions 153 153 154 154 ! … … 176 176 END DO 177 177 !--- Lateral boundary conditions 178 CALL lbc_lnk_multi( zfu(:,:,:), 'T', 1. , zfd(:,:,:), 'T', 1., zfc(:,:,:), 'T', 1., zwx(:,:,:), 'T', 1. )178 CALL lbc_lnk_multi( 'traadv_qck', zfu(:,:,:), 'T', 1. , zfd(:,:,:), 'T', 1., zfc(:,:,:), 'T', 1., zwx(:,:,:), 'T', 1. ) 179 179 180 180 !--- QUICKEST scheme … … 189 189 END DO 190 190 END DO 191 CALL lbc_lnk( zfu(:,:,:), 'T', 1. ) ! Lateral boundary conditions191 CALL lbc_lnk( 'traadv_qck', zfu(:,:,:), 'T', 1. ) ! Lateral boundary conditions 192 192 193 193 ! … … 207 207 END DO 208 208 ! 209 CALL lbc_lnk( zwx(:,:,:), 'T', 1. ) ! Lateral boundary conditions209 CALL lbc_lnk( 'traadv_qck', zwx(:,:,:), 'T', 1. ) ! Lateral boundary conditions 210 210 ! 211 211 ! Computation of the trend … … 265 265 END DO 266 266 END DO 267 CALL lbc_lnk_multi( zfc(:,:,:), 'T', 1. , zfd(:,:,:), 'T', 1. ) ! Lateral boundary conditions267 CALL lbc_lnk_multi( 'traadv_qck', zfc(:,:,:), 'T', 1. , zfd(:,:,:), 'T', 1. ) ! Lateral boundary conditions 268 268 269 269 … … 294 294 295 295 !--- Lateral boundary conditions 296 CALL lbc_lnk_multi( zfu(:,:,:), 'T', 1. , zfd(:,:,:), 'T', 1., zfc(:,:,:), 'T', 1., zwy(:,:,:), 'T', 1. )296 CALL lbc_lnk_multi( 'traadv_qck', zfu(:,:,:), 'T', 1. , zfd(:,:,:), 'T', 1., zfc(:,:,:), 'T', 1., zwy(:,:,:), 'T', 1. ) 297 297 298 298 !--- QUICKEST scheme … … 307 307 END DO 308 308 END DO 309 CALL lbc_lnk( zfu(:,:,:), 'T', 1. ) !--- Lateral boundary conditions309 CALL lbc_lnk( 'traadv_qck', zfu(:,:,:), 'T', 1. ) !--- Lateral boundary conditions 310 310 ! 311 311 ! Tracer flux on the x-direction … … 324 324 END DO 325 325 ! 326 CALL lbc_lnk( zwy(:,:,:), 'T', 1. ) ! Lateral boundary conditions326 CALL lbc_lnk( 'traadv_qck', zwy(:,:,:), 'T', 1. ) ! Lateral boundary conditions 327 327 ! 328 328 ! Computation of the trend -
NEMO/branches/2018/dev_r10164_HPC09_ESIWACE_PREP_MERGE/src/OCE/TRA/traadv_ubs.F90
r10068 r10170 141 141 ! 142 142 END DO 143 CALL lbc_lnk( zltu, 'T', 1. ) ; CALL lbc_lnk(zltv, 'T', 1. ) ! Lateral boundary cond. (unchanged sgn)143 CALL lbc_lnk( 'traadv_ubs', zltu, 'T', 1. ) ; CALL lbc_lnk( 'traadv_ubs', zltv, 'T', 1. ) ! Lateral boundary cond. (unchanged sgn) 144 144 ! 145 145 DO jk = 1, jpkm1 !== Horizontal advective fluxes ==! (UBS) … … 226 226 END DO 227 227 END DO 228 CALL lbc_lnk( zti, 'T', 1. ) ! Lateral boundary conditions on zti, zsi (unchanged sign)228 CALL lbc_lnk( 'traadv_ubs', zti, 'T', 1. ) ! Lateral boundary conditions on zti, zsi (unchanged sign) 229 229 ! 230 230 ! !* anti-diffusive flux : high order minus low order -
NEMO/branches/2018/dev_r10164_HPC09_ESIWACE_PREP_MERGE/src/OCE/TRA/trabbc.F90
r10068 r10170 92 92 END DO 93 93 ! 94 CALL lbc_lnk( tsa(:,:,:,jp_tem) , 'T', 1. )94 CALL lbc_lnk( 'trabbc', tsa(:,:,:,jp_tem) , 'T', 1. ) 95 95 ! 96 96 IF( l_trdtra ) THEN ! Send the trend for diagnostics -
NEMO/branches/2018/dev_r10164_HPC09_ESIWACE_PREP_MERGE/src/OCE/TRA/trabbl.F90
r10068 r10170 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_multi( ahu_bbl, 'U', 1. , ahv_bbl, 'V', 1. )125 CALL lbc_lnk_multi( 'trabbl', 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_multi( utr_bbl, 'U', 1. , vtr_bbl, 'V', 1. )138 CALL lbc_lnk_multi( 'trabbl', 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 … … 525 525 ! converte into REAL to use lbc_lnk ; impose a min value of 1 as a zero can be set in lbclnk 526 526 zmbku(:,:) = REAL( mbku_d(:,:), wp ) ; zmbkv(:,:) = REAL( mbkv_d(:,:), wp ) 527 CALL lbc_lnk_multi( zmbku,'U',1., zmbkv,'V',1.)527 CALL lbc_lnk_multi( 'trabbl', zmbku,'U',1., zmbkv,'V',1.) 528 528 mbku_d(:,:) = MAX( INT( zmbku(:,:) ), 1 ) ; mbkv_d(:,:) = MAX( NINT( zmbkv(:,:) ), 1 ) 529 529 ! … … 548 548 END DO 549 549 END DO 550 CALL lbc_lnk_multi( e3u_bbl_0, 'U', 1. , e3v_bbl_0, 'V', 1. ) ! lateral boundary conditions550 CALL lbc_lnk_multi( 'trabbl', e3u_bbl_0, 'U', 1. , e3v_bbl_0, 'V', 1. ) ! lateral boundary conditions 551 551 ! 552 552 ! !* masked diffusive flux coefficients -
NEMO/branches/2018/dev_r10164_HPC09_ESIWACE_PREP_MERGE/src/OCE/TRA/traldf_lap_blp.F90
r10068 r10170 213 213 END SELECT 214 214 ! 215 CALL lbc_lnk( zlap(:,:,:,:) , 'T', 1. ) ! Lateral boundary conditions (unchanged sign)215 CALL lbc_lnk( 'traldf_lap_blp', zlap(:,:,:,:) , 'T', 1. ) ! Lateral boundary conditions (unchanged sign) 216 216 ! ! Partial top/bottom cell: GRADh( zlap ) 217 217 IF( ln_isfcav .AND. ln_zps ) THEN ; CALL zps_hde_isf( kt, kjpt, zlap, zglu, zglv, zgui, zgvi ) ! both top & bottom -
NEMO/branches/2018/dev_r10164_HPC09_ESIWACE_PREP_MERGE/src/OCE/TRA/tramle.F90
r10105 r10170 321 321 END DO 322 322 END DO 323 CALL lbc_lnk_multi( rfu, 'U', 1. , rfv, 'V', 1. )323 CALL lbc_lnk_multi( 'tramle', rfu, 'U', 1. , rfv, 'V', 1. ) 324 324 ! 325 325 ELSEIF( nn_mle == 1 ) THEN ! MLE array allocation & initialisation -
NEMO/branches/2018/dev_r10164_HPC09_ESIWACE_PREP_MERGE/src/OCE/TRA/tranpc.F90
r10068 r10170 309 309 ENDIF 310 310 ! 311 CALL lbc_lnk_multi( tsa(:,:,:,jp_tem), 'T', 1., tsa(:,:,:,jp_sal), 'T', 1. )311 CALL lbc_lnk_multi( 'tranpc', tsa(:,:,:,jp_tem), 'T', 1., tsa(:,:,:,jp_sal), 'T', 1. ) 312 312 ! 313 313 IF( lwp .AND. l_LB_debug ) THEN -
NEMO/branches/2018/dev_r10164_HPC09_ESIWACE_PREP_MERGE/src/OCE/TRA/tranxt.F90
r10095 r10170 107 107 #endif 108 108 ! ! local domain boundaries (T-point, unchanged sign) 109 CALL lbc_lnk_multi( tsa(:,:,:,jp_tem), 'T', 1., tsa(:,:,:,jp_sal), 'T', 1. )109 CALL lbc_lnk_multi( 'tranxt', tsa(:,:,:,jp_tem), 'T', 1., tsa(:,:,:,jp_sal), 'T', 1. ) 110 110 ! 111 111 IF( ln_bdy ) CALL bdy_tra( kt ) ! BDY open boundaries … … 163 163 ENDIF 164 164 ! 165 CALL lbc_lnk_multi( tsb(:,:,:,jp_tem), 'T', 1., tsb(:,:,:,jp_sal), 'T', 1., &165 CALL lbc_lnk_multi( 'tranxt', tsb(:,:,:,jp_tem), 'T', 1., tsb(:,:,:,jp_sal), 'T', 1., & 166 166 & tsn(:,:,:,jp_tem), 'T', 1., tsn(:,:,:,jp_sal), 'T', 1., & 167 167 & tsa(:,:,:,jp_tem), 'T', 1., tsa(:,:,:,jp_sal), 'T', 1. ) -
NEMO/branches/2018/dev_r10164_HPC09_ESIWACE_PREP_MERGE/src/OCE/TRA/traqsr.F90
r10068 r10170 275 275 END DO 276 276 END DO 277 CALL lbc_lnk( fraqsr_1lev(:,:), 'T', 1._wp )277 CALL lbc_lnk( 'traqsr', fraqsr_1lev(:,:), 'T', 1._wp ) 278 278 ! 279 279 IF( iom_use('qsr3d') ) THEN ! output the shortwave Radiation distribution -
NEMO/branches/2018/dev_r10164_HPC09_ESIWACE_PREP_MERGE/src/OCE/TRA/trazdf.F90
r10068 r10170 92 92 END DO 93 93 !!gm this should be moved in trdtra.F90 and done on all trends 94 CALL lbc_lnk_multi( ztrdt, 'T', 1. , ztrds, 'T', 1. )94 CALL lbc_lnk_multi( 'trazdf', ztrdt, 'T', 1. , ztrds, 'T', 1. ) 95 95 !!gm 96 96 CALL trd_tra( kt, 'TRA', jp_tem, jptra_zdf, ztrdt ) -
NEMO/branches/2018/dev_r10164_HPC09_ESIWACE_PREP_MERGE/src/OCE/TRA/zpshde.F90
r10068 r10170 144 144 END DO 145 145 END DO 146 CALL lbc_lnk_multi( pgtu(:,:,jn), 'U', -1. , pgtv(:,:,jn), 'V', -1. ) ! Lateral boundary cond.146 CALL lbc_lnk_multi( 'zpshde', 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_multi( pgru , 'U', -1. , pgrv , 'V', -1. ) ! Lateral boundary conditions185 CALL lbc_lnk_multi( 'zpshde', 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_multi( pgtu(:,:,jn), 'U', -1. , pgtv(:,:,jn), 'V', -1. ) ! Lateral boundary cond.307 CALL lbc_lnk_multi( 'zpshde', 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_multi( pgru , 'U', -1. , pgrv , 'V', -1. ) ! Lateral boundary conditions355 CALL lbc_lnk_multi( 'zpshde', pgru , 'U', -1. , pgrv , 'V', -1. ) ! Lateral boundary conditions 356 356 ! 357 357 END IF … … 406 406 ! 407 407 END DO 408 CALL lbc_lnk_multi( pgtui(:,:,:), 'U', -1. , pgtvi(:,:,:), 'V', -1. ) ! Lateral boundary cond.408 CALL lbc_lnk_multi( 'zpshde', 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_multi( pgrui, 'U', -1. , pgrvi, 'V', -1. ) ! Lateral boundary conditions451 CALL lbc_lnk_multi( 'zpshde', pgrui, 'U', -1. , pgrvi, 'V', -1. ) ! Lateral boundary conditions 452 452 ! 453 453 END IF -
NEMO/branches/2018/dev_r10164_HPC09_ESIWACE_PREP_MERGE/src/OCE/TRD/trddyn.F90
r10068 r10170 129 129 END DO 130 130 END DO 131 CALL lbc_lnk_multi( z3dx, 'U', -1., z3dy, 'V', -1. )131 CALL lbc_lnk_multi( 'trddyn', z3dx, 'U', -1., z3dy, 'V', -1. ) 132 132 CALL iom_put( "utrd_udx", z3dx ) 133 133 CALL iom_put( "vtrd_vdy", z3dy ) … … 165 165 ! END DO 166 166 ! END DO 167 ! CALL lbc_lnk_multi( z3dx, 'U', -1., z3dy, 'V', -1. )167 ! CALL lbc_lnk_multi( 'trddyn', z3dx, 'U', -1., z3dy, 'V', -1. ) 168 168 ! CALL iom_put( "utrd_bfr", z3dx ) 169 169 ! CALL iom_put( "vtrd_bfr", z3dy ) -
NEMO/branches/2018/dev_r10164_HPC09_ESIWACE_PREP_MERGE/src/OCE/TRD/trdken.F90
r10068 r10170 88 88 !!---------------------------------------------------------------------- 89 89 ! 90 CALL lbc_lnk_multi( putrd, 'U', -1. , pvtrd, 'V', -1. ) ! lateral boundary conditions90 CALL lbc_lnk_multi( 'trdken', putrd, 'U', -1. , pvtrd, 'V', -1. ) ! lateral boundary conditions 91 91 ! 92 92 nkstp = kt -
NEMO/branches/2018/dev_r10164_HPC09_ESIWACE_PREP_MERGE/src/OCE/TRD/trdmxl.F90
r10068 r10170 152 152 !!gm to be put juste before the output ! 153 153 ! ! Lateral boundary conditions 154 ! CALL lbc_lnk_multi( tmltrd(:,:,jl), 'T', 1. , smltrd(:,:,jl), 'T', 1. )154 ! CALL lbc_lnk_multi( 'trdmxl', tmltrd(:,:,jl), 'T', 1. , smltrd(:,:,jl), 'T', 1. ) 155 155 !!gm end 156 156 … … 470 470 !-- Lateral boundary conditions 471 471 ! ... temperature ... ... salinity ... 472 CALL lbc_lnk_multi( ztmltot , 'T', 1., zsmltot , 'T', 1., &472 CALL lbc_lnk_multi( 'trdmxl', ztmltot , 'T', 1., zsmltot , 'T', 1., & 473 473 & ztmlres , 'T', 1., zsmlres , 'T', 1., & 474 474 & ztmlatf , 'T', 1., zsmlatf , 'T', 1. ) … … 521 521 !-- Lateral boundary conditions 522 522 ! ... temperature ... ... salinity ... 523 CALL lbc_lnk_multi( ztmltot2, 'T', 1., zsmltot2, 'T', 1., &523 CALL lbc_lnk_multi( 'trdmxl', ztmltot2, 'T', 1., zsmltot2, 'T', 1., & 524 524 & ztmlres2, 'T', 1., zsmlres2, 'T', 1. ) 525 525 ! 526 CALL lbc_lnk_multi( ztmltrd2(:,:,:), 'T', 1., zsmltrd2(:,:,:), 'T', 1. ) ! / in the NetCDF trends file526 CALL lbc_lnk_multi( 'trdmxl', ztmltrd2(:,:,:), 'T', 1., zsmltrd2(:,:,:), 'T', 1. ) ! / in the NetCDF trends file 527 527 528 528 ! III.3 Time evolution array swap -
NEMO/branches/2018/dev_r10164_HPC09_ESIWACE_PREP_MERGE/src/OCE/TRD/trdvor.F90
r10068 r10170 161 161 162 162 zudpvor(:,:) = 0._wp ; zvdpvor(:,:) = 0._wp ! Initialisation 163 CALL lbc_lnk_multi( putrdvor, 'U', -1. , pvtrdvor, 'V', -1. ) ! lateral boundary condition163 CALL lbc_lnk_multi( 'trdvor', putrdvor, 'U', -1. , pvtrdvor, 'V', -1. ) ! lateral boundary condition 164 164 165 165 … … 250 250 zvdpvor(:,:) = 0._wp 251 251 ! ! lateral boundary condition on input momentum trends 252 CALL lbc_lnk_multi( putrdvor, 'U', -1. , pvtrdvor, 'V', -1. )252 CALL lbc_lnk_multi( 'trdvor', putrdvor, 'U', -1. , pvtrdvor, 'V', -1. ) 253 253 254 254 ! ===================================== … … 395 395 396 396 ! Boundary conditions 397 CALL lbc_lnk_multi( vor_avrtot, 'F', 1. , vor_avrres, 'F', 1. )397 CALL lbc_lnk_multi( 'trdvor', vor_avrtot, 'F', 1. , vor_avrres, 'F', 1. ) 398 398 399 399 -
NEMO/branches/2018/dev_r10164_HPC09_ESIWACE_PREP_MERGE/src/OCE/USR/usrdef_fmask.F90
r10069 r10170 143 143 ENDIF 144 144 ! 145 CALL lbc_lnk( pfmsk, 'F', 1._wp ) ! Lateral boundary conditions on fmask145 CALL lbc_lnk( 'usrdef_fmask', pfmsk, 'F', 1._wp ) ! Lateral boundary conditions on fmask 146 146 ! 147 147 END SUBROUTINE usr_def_fmask -
NEMO/branches/2018/dev_r10164_HPC09_ESIWACE_PREP_MERGE/src/OCE/USR/usrdef_sbc.F90
r10069 r10170 186 186 END DO 187 187 END DO 188 CALL lbc_lnk_multi( taum(:,:), 'T', 1. , wndm(:,:), 'T', 1. )188 CALL lbc_lnk_multi( 'usrdef_sbc', taum(:,:), 'T', 1. , wndm(:,:), 'T', 1. ) 189 189 190 190 ! ---------------------------------- ! -
NEMO/branches/2018/dev_r10164_HPC09_ESIWACE_PREP_MERGE/src/OCE/USR/usrdef_zgr.F90
r10069 r10170 202 202 z2d(:,:) = REAL( jpkm1 , wp ) ! flat bottom 203 203 ! 204 CALL lbc_lnk( z2d, 'T', 1. ) ! set surrounding land to zero (here jperio=0 ==>> closed)204 CALL lbc_lnk( 'usrdef_zgr', z2d, 'T', 1. ) ! set surrounding land to zero (here jperio=0 ==>> closed) 205 205 ! 206 206 k_bot(:,:) = NINT( z2d(:,:) ) ! =jpkm1 over the ocean point, =0 elsewhere -
NEMO/branches/2018/dev_r10164_HPC09_ESIWACE_PREP_MERGE/src/OCE/ZDF/zdfosm.F90
r10069 r10170 1287 1287 1288 1288 ! Lateral boundary conditions on zvicos (sign unchanged), needed to caclulate viscosities on u and v grids 1289 CALL lbc_lnk( zviscos(:,:,:), 'W', 1. )1289 CALL lbc_lnk( 'zdfosm', zviscos(:,:,:), 'W', 1. ) 1290 1290 1291 1291 ! GN 25/8: need to change tmask --> wmask … … 1300 1300 END DO 1301 1301 ! Lateral boundary conditions on ghamu and ghamv, currently on W-grid (sign unchanged), needed to caclulate gham[uv] on u and v grids 1302 CALL lbc_lnk_multi( p_avt, 'W', 1. , p_avm, 'W', 1., &1302 CALL lbc_lnk_multi( 'zdfosm', p_avt, 'W', 1. , p_avm, 'W', 1., & 1303 1303 & ghamu, 'W', 1. , ghamv, 'W', 1. ) 1304 1304 DO jk = 2, jpkm1 … … 1318 1318 ! Lateral boundary conditions on final outputs for gham[ts], on W-grid (sign unchanged) 1319 1319 ! Lateral boundary conditions on final outputs for gham[uv], on [UV]-grid (sign unchanged) 1320 CALL lbc_lnk_multi( ghamt, 'W', 1. , ghams, 'W', 1., &1320 CALL lbc_lnk_multi( 'zdfosm', ghamt, 'W', 1. , ghams, 'W', 1., & 1321 1321 & ghamu, 'U', 1. , ghamv, 'V', 1. ) 1322 1322 … … 1359 1359 END IF 1360 1360 ! Lateral boundary conditions on p_avt (sign unchanged) 1361 CALL lbc_lnk( p_avt(:,:,:), 'W', 1. )1361 CALL lbc_lnk( 'zdfosm', p_avt(:,:,:), 'W', 1. ) 1362 1362 ! 1363 1363 END SUBROUTINE zdf_osm -
NEMO/branches/2018/dev_r10164_HPC09_ESIWACE_PREP_MERGE/src/OCE/ZDF/zdfphy.F90
r10069 r10170 292 292 ! !* Lateral boundary conditions (sign unchanged) 293 293 IF( l_zdfsh2 ) THEN 294 CALL lbc_lnk_multi( avm_k, 'W', 1. , avt_k, 'W', 1., &294 CALL lbc_lnk_multi( 'zdfphy', avm_k, 'W', 1. , avt_k, 'W', 1., & 295 295 & avm , 'W', 1. , avt , 'W', 1. , avs , 'W', 1. ) 296 296 ELSE 297 CALL lbc_lnk_multi( avm , 'W', 1. , avt , 'W', 1. , avs , 'W', 1. )297 CALL lbc_lnk_multi( 'zdfphy', avm , 'W', 1. , avt , 'W', 1. , avs , 'W', 1. ) 298 298 ENDIF 299 299 ! 300 300 IF( l_zdfdrg ) THEN ! drag have been updated (non-linear cases) 301 IF( ln_isfcav ) THEN ; CALL lbc_lnk_multi( rCdU_top, 'T', 1. , rCdU_bot, 'T', 1. ) ! top & bot drag302 ELSE ; CALL lbc_lnk ( rCdU_bot, 'T', 1. ) ! bottom drag only301 IF( ln_isfcav ) THEN ; CALL lbc_lnk_multi( 'zdfphy', rCdU_top, 'T', 1. , rCdU_bot, 'T', 1. ) ! top & bot drag 302 ELSE ; CALL lbc_lnk ( 'zdfphy', rCdU_bot, 'T', 1. ) ! bottom drag only 303 303 ENDIF 304 304 ENDIF -
NEMO/branches/2018/dev_r10164_HPC09_ESIWACE_PREP_MERGE/src/OCE/module_example
r10068 r10170 127 127 END SELECT 128 128 ! 129 CALL lbc_lnk( avm, 'T', 1. ) ! Lateral boundary conditions (unchanged sign)129 CALL lbc_lnk( 'module_example', avm, 'T', 1. ) ! Lateral boundary conditions (unchanged sign) 130 130 ! 131 131 END SUBROUTINE exa_mpl -
NEMO/branches/2018/dev_r10164_HPC09_ESIWACE_PREP_MERGE/src/OCE/nemogcm.F90
r10068 r10170 184 184 ! 185 185 DO WHILE( istp <= nitend .AND. nstop == 0 ) 186 #if defined key_mpp_mpi 187 ncom_stp = istp 188 #endif 186 189 CALL stp ( istp ) 187 190 istp = istp + 1 -
NEMO/branches/2018/dev_r10164_HPC09_ESIWACE_PREP_MERGE/src/TOP/PISCES/P2Z/p2zbio.F90
r10068 r10170 341 341 ! 342 342 IF( lk_iomput ) THEN 343 CALL lbc_lnk( zw2d(:,:,:),'T', 1. )344 CALL lbc_lnk_multi( zw3d(:,:,:,1),'T', 1., zw3d(:,:,:,2),'T', 1., zw3d(:,:,:,3),'T', 1. )343 CALL lbc_lnk( 'p2zbio', zw2d(:,:,:),'T', 1. ) 344 CALL lbc_lnk_multi( 'p2zbio', zw3d(:,:,:,1),'T', 1., zw3d(:,:,:,2),'T', 1., zw3d(:,:,:,3),'T', 1. ) 345 345 ! Save diagnostics 346 346 CALL iom_put( "TNO3PHY", zw2d(:,:,1) ) -
NEMO/branches/2018/dev_r10164_HPC09_ESIWACE_PREP_MERGE/src/TOP/PISCES/P2Z/p2zexp.F90
r10068 r10170 113 113 END DO 114 114 115 CALL lbc_lnk( sedpocn, 'T', 1. )115 CALL lbc_lnk( 'p2zexp', sedpocn, 'T', 1. ) 116 116 117 117 ! Oa & Ek: diagnostics depending on jpdia2d ! left as example … … 229 229 END DO 230 230 END DO 231 CALL lbc_lnk( cmask , 'T', 1. ) ! lateral boundary conditions on cmask (sign unchanged)231 CALL lbc_lnk( 'p2zexp', cmask , 'T', 1. ) ! lateral boundary conditions on cmask (sign unchanged) 232 232 areacot = glob_sum( e1e2t(:,:) * cmask(:,:) ) 233 233 ! -
NEMO/branches/2018/dev_r10164_HPC09_ESIWACE_PREP_MERGE/src/TOP/PISCES/P4Z/p4zsbc.F90
r10127 r10170 449 449 END DO 450 450 ! 451 CALL lbc_lnk( zcmask , 'T', 1. ) ! lateral boundary conditions on cmask (sign unchanged)451 CALL lbc_lnk( 'p4zsbc', zcmask , 'T', 1. ) ! lateral boundary conditions on cmask (sign unchanged) 452 452 ! 453 453 DO jk = 1, jpk -
NEMO/branches/2018/dev_r10164_HPC09_ESIWACE_PREP_MERGE/src/TOP/TRP/trcnxt.F90
r10097 r10170 97 97 #endif 98 98 ! Update after tracer on domain lateral boundaries 99 CALL lbc_lnk( tra(:,:,:,:), 'T', 1. )99 CALL lbc_lnk( 'trcnxt', tra(:,:,:,:), 'T', 1. ) 100 100 101 101 IF( ln_bdy ) CALL trc_bdy( kt ) … … 164 164 ENDIF 165 165 ! 166 CALL lbc_lnk_multi( trb(:,:,:,:), 'T', 1._wp, trn(:,:,:,:), 'T', 1._wp, tra(:,:,:,:), 'T', 1._wp )166 CALL lbc_lnk_multi( 'trcnxt', trb(:,:,:,:), 'T', 1._wp, trn(:,:,:,:), 'T', 1._wp, tra(:,:,:,:), 'T', 1._wp ) 167 167 ENDIF 168 168 ! -
NEMO/branches/2018/dev_r10164_HPC09_ESIWACE_PREP_MERGE/src/TOP/TRP/trcsbc.F90
r10068 r10170 145 145 ENDIF 146 146 ! 147 CALL lbc_lnk( sbc_trc(:,:,jn), 'T', 1. )147 CALL lbc_lnk( 'trcsbc', sbc_trc(:,:,jn), 'T', 1. ) 148 148 ! Concentration dilution effect on tracers due to evaporation & precipitation 149 149 DO jj = 2, jpj -
NEMO/branches/2018/dev_r10164_HPC09_ESIWACE_PREP_MERGE/src/TOP/TRP/trdmxl_trc.F90
r10068 r10170 290 290 IF( ln_trdtrc(jn) ) THEN 291 291 DO jl = 1, jpltrd_trc 292 CALL lbc_lnk( tmltrd_trc(:,:,jl,jn), 'T', 1. ) ! lateral boundary conditions292 CALL lbc_lnk( 'trdmxl_trc', tmltrd_trc(:,:,jl,jn), 'T', 1. ) ! lateral boundary conditions 293 293 END DO 294 294 ENDIF … … 425 425 !-- Lateral boundary conditions 426 426 IF ( cn_cfg .NE. 'gyre' ) THEN 427 CALL lbc_lnk_multi( ztmltot(:,:,jn) , 'T', 1. , ztmlres(:,:,jn) , 'T', 1., &427 CALL lbc_lnk_multi( 'trdmxl_trc', ztmltot(:,:,jn) , 'T', 1. , ztmlres(:,:,jn) , 'T', 1., & 428 428 & ztmlatf(:,:,jn) , 'T', 1. , ztmlrad(:,:,jn) , 'T', 1. ) 429 429 ENDIF … … 476 476 !-- Lateral boundary conditions 477 477 IF ( cn_cfg .NE. 'gyre' ) THEN ! other than GYRE configuration 478 CALL lbc_lnk_multi( ztmltot2(:,:,jn), 'T', 1., ztmlres2(:,:,jn), 'T', 1. )478 CALL lbc_lnk_multi( 'trdmxl_trc', ztmltot2(:,:,jn), 'T', 1., ztmlres2(:,:,jn), 'T', 1. ) 479 479 DO jl = 1, jpltrd_trc 480 CALL lbc_lnk( ztmltrd2(:,:,jl,jn), 'T', 1. ) ! will be output in the NetCDF trends file480 CALL lbc_lnk( 'trdmxl_trc', ztmltrd2(:,:,jl,jn), 'T', 1. ) ! will be output in the NetCDF trends file 481 481 END DO 482 482 ENDIF -
NEMO/branches/2018/dev_r10164_HPC09_ESIWACE_PREP_MERGE/src/TOP/trcsub.F90
r10068 r10170 510 510 IF( ln_bdy ) THEN 511 511 ssha(:,:) = ssha(:,:) * bdytmask(:,:) 512 CALL lbc_lnk( ssha, 'T', 1. )512 CALL lbc_lnk( 'trcsub', ssha, 'T', 1. ) 513 513 ENDIF 514 514 ENDIF -
NEMO/branches/2018/dev_r10164_HPC09_ESIWACE_PREP_MERGE/tests/BENCH/MY_SRC/diawri.F90
r10166 r10170 181 181 END DO 182 182 END DO 183 CALL lbc_lnk( z2d, 'T', 1. )183 CALL lbc_lnk( 'diawri', z2d, 'T', 1. ) 184 184 CALL iom_put( "taubot", z2d ) 185 185 ENDIF … … 237 237 END DO 238 238 END DO 239 CALL lbc_lnk( z2d, 'T', 1. )239 CALL lbc_lnk( 'diawri', z2d, 'T', 1. ) 240 240 CALL iom_put( "sstgrad2", z2d ) ! square of module of sst gradient 241 241 z2d(:,:) = SQRT( z2d(:,:) ) … … 281 281 END DO 282 282 END DO 283 CALL lbc_lnk( z3d, 'T', 1. )283 CALL lbc_lnk( 'diawri', z3d, 'T', 1. ) 284 284 CALL iom_put( "eken", z3d ) ! kinetic energy 285 285 ENDIF … … 307 307 END DO 308 308 END DO 309 CALL lbc_lnk( z2d, 'U', -1. )309 CALL lbc_lnk( 'diawri', z2d, 'U', -1. ) 310 310 CALL iom_put( "u_heattr", 0.5*rcp * z2d ) ! heat transport in i-direction 311 311 ENDIF … … 320 320 END DO 321 321 END DO 322 CALL lbc_lnk( z2d, 'U', -1. )322 CALL lbc_lnk( 'diawri', z2d, 'U', -1. ) 323 323 CALL iom_put( "u_salttr", 0.5 * z2d ) ! heat transport in i-direction 324 324 ENDIF … … 342 342 END DO 343 343 END DO 344 CALL lbc_lnk( z2d, 'V', -1. )344 CALL lbc_lnk( 'diawri', z2d, 'V', -1. ) 345 345 CALL iom_put( "v_heattr", 0.5*rcp * z2d ) ! heat transport in j-direction 346 346 ENDIF … … 355 355 END DO 356 356 END DO 357 CALL lbc_lnk( z2d, 'V', -1. )357 CALL lbc_lnk( 'diawri', z2d, 'V', -1. ) 358 358 CALL iom_put( "v_salttr", 0.5 * z2d ) ! heat transport in j-direction 359 359 ENDIF … … 368 368 END DO 369 369 END DO 370 CALL lbc_lnk( z2d, 'T', -1. )370 CALL lbc_lnk( 'diawri', z2d, 'T', -1. ) 371 371 CALL iom_put( "tosmint", rau0 * z2d ) ! Vertical integral of temperature 372 372 ENDIF … … 380 380 END DO 381 381 END DO 382 CALL lbc_lnk( z2d, 'T', -1. )382 CALL lbc_lnk( 'diawri', z2d, 'T', -1. ) 383 383 CALL iom_put( "somint", rau0 * z2d ) ! Vertical integral of salinity 384 384 ENDIF -
NEMO/branches/2018/dev_r10164_HPC09_ESIWACE_PREP_MERGE/tests/BENCH/MY_SRC/usrdef_istate.F90
r10166 r10170 80 80 ENDDO 81 81 ! 82 CALL lbc_lnk( pssh, 'T', 1. ) ! apply boundary conditions83 CALL lbc_lnk( pts, 'T', 1. ) ! apply boundary conditions84 CALL lbc_lnk( pu, 'U', -1. ) ! apply boundary conditions85 CALL lbc_lnk( pv, 'V', -1. ) ! apply boundary conditions82 CALL lbc_lnk('usrdef_istate', pssh, 'T', 1. ) ! apply boundary conditions 83 CALL lbc_lnk( 'usrdef_istate', pts, 'T', 1. ) ! apply boundary conditions 84 CALL lbc_lnk( 'usrdef_istate', pu, 'U', -1. ) ! apply boundary conditions 85 CALL lbc_lnk( 'usrdef_istate', pv, 'V', -1. ) ! apply boundary conditions 86 86 87 87 END SUBROUTINE usr_def_istate -
NEMO/branches/2018/dev_r10164_HPC09_ESIWACE_PREP_MERGE/tests/BENCH/MY_SRC/usrdef_zgr.F90
r10166 r10170 194 194 z2d(:,:) = REAL( jpkm1 , wp ) ! flat bottom 195 195 ! 196 CALL lbc_lnk( z2d, 'T', 1. ) ! set surrounding land to zero (here jperio=0 ==>> closed)196 CALL lbc_lnk( 'usrdef_zgr', z2d, 'T', 1. ) ! set surrounding land to zero (here jperio=0 ==>> closed) 197 197 ! 198 198 k_bot(:,:) = INT( z2d(:,:) ) ! =jpkm1 over the ocean point, =0 elsewhere -
NEMO/branches/2018/dev_r10164_HPC09_ESIWACE_PREP_MERGE/tests/CANAL/MY_SRC/diawri.F90
r10074 r10170 185 185 END DO 186 186 END DO 187 CALL lbc_lnk( z2d, 'T', 1. )187 CALL lbc_lnk( 'diawri', z2d, 'T', 1. ) 188 188 CALL iom_put( "taubot", z2d ) 189 189 ENDIF … … 244 244 END DO 245 245 END DO 246 CALL lbc_lnk( z3d, 'T', 1. )246 CALL lbc_lnk( 'diawri', z3d, 'T', 1. ) 247 247 CALL iom_put( "salgrad2", z3d ) ! square of module of sal gradient 248 248 z3d(:,:,:) = SQRT( z3d(:,:,:) ) … … 260 260 END DO 261 261 END DO 262 CALL lbc_lnk( z2d, 'T', 1. )262 CALL lbc_lnk( 'diawri', z2d, 'T', 1. ) 263 263 CALL iom_put( "sstgrad2", z2d ) ! square of module of sst gradient 264 264 z2d(:,:) = SQRT( z2d(:,:) ) … … 314 314 END DO 315 315 END DO 316 CALL lbc_lnk( z3d, 'T', 1. )316 CALL lbc_lnk( 'diawri', z3d, 'T', 1. ) 317 317 CALL iom_put( "eken", z3d ) ! kinetic energy 318 318 ENDIF … … 335 335 END DO 336 336 337 CALL lbc_lnk( z3d, 'T', 1. )337 CALL lbc_lnk( 'diawri', z3d, 'T', 1. ) 338 338 CALL iom_put( "ke", z3d ) ! kinetic energy 339 339 … … 363 363 END DO 364 364 END DO 365 CALL lbc_lnk( z3d, 'F', 1. )365 CALL lbc_lnk( 'diawri', z3d, 'F', 1. ) 366 366 CALL iom_put( "relvor", z3d ) ! relative vorticity 367 367 … … 387 387 END DO 388 388 END DO 389 CALL lbc_lnk( z3d, 'F', 1. )389 CALL lbc_lnk( 'diawri', z3d, 'F', 1. ) 390 390 CALL iom_put( "potvor", z3d ) ! potential vorticity 391 391 … … 413 413 END DO 414 414 END DO 415 CALL lbc_lnk( z2d, 'U', -1. )415 CALL lbc_lnk( 'diawri', z2d, 'U', -1. ) 416 416 CALL iom_put( "u_heattr", 0.5*rcp * z2d ) ! heat transport in i-direction 417 417 ENDIF … … 426 426 END DO 427 427 END DO 428 CALL lbc_lnk( z2d, 'U', -1. )428 CALL lbc_lnk( 'diawri', z2d, 'U', -1. ) 429 429 CALL iom_put( "u_salttr", 0.5 * z2d ) ! heat transport in i-direction 430 430 ENDIF … … 448 448 END DO 449 449 END DO 450 CALL lbc_lnk( z2d, 'V', -1. )450 CALL lbc_lnk( 'diawri', z2d, 'V', -1. ) 451 451 CALL iom_put( "v_heattr", 0.5*rcp * z2d ) ! heat transport in j-direction 452 452 ENDIF … … 461 461 END DO 462 462 END DO 463 CALL lbc_lnk( z2d, 'V', -1. )463 CALL lbc_lnk( 'diawri', z2d, 'V', -1. ) 464 464 CALL iom_put( "v_salttr", 0.5 * z2d ) ! heat transport in j-direction 465 465 ENDIF … … 474 474 END DO 475 475 END DO 476 CALL lbc_lnk( z2d, 'T', -1. )476 CALL lbc_lnk( 'diawri', z2d, 'T', -1. ) 477 477 CALL iom_put( "tosmint", rau0 * z2d ) ! Vertical integral of temperature 478 478 ENDIF … … 486 486 END DO 487 487 END DO 488 CALL lbc_lnk( z2d, 'T', -1. )488 CALL lbc_lnk( 'diawri', z2d, 'T', -1. ) 489 489 CALL iom_put( "somint", rau0 * z2d ) ! Vertical integral of salinity 490 490 ENDIF -
NEMO/branches/2018/dev_r10164_HPC09_ESIWACE_PREP_MERGE/tests/CANAL/MY_SRC/domvvl.F90
r10074 r10170 385 385 ! ! d - thickness diffusion transport: boundary conditions 386 386 ! (stored for tracer advction and continuity equation) 387 CALL lbc_lnk_multi( un_td , 'U' , -1._wp, vn_td , 'V' , -1._wp)387 CALL lbc_lnk_multi( 'domvvl', un_td , 'U' , -1._wp, vn_td , 'V' , -1._wp) 388 388 389 389 ! 4 - Time stepping of baroclinic scale factors … … 396 396 z2dt = 2.0_wp * rdt 397 397 ENDIF 398 CALL lbc_lnk( tilde_e3t_a(:,:,:), 'T', 1._wp )398 CALL lbc_lnk( 'domvvl', tilde_e3t_a(:,:,:), 'T', 1._wp ) 399 399 tilde_e3t_a(:,:,:) = tilde_e3t_b(:,:,:) + z2dt * tmask(:,:,:) * tilde_e3t_a(:,:,:) 400 400 … … 688 688 END DO 689 689 END DO 690 CALL lbc_lnk( pe3_out(:,:,:), 'U', 1._wp )690 CALL lbc_lnk( 'domvvl', pe3_out(:,:,:), 'U', 1._wp ) 691 691 pe3_out(:,:,:) = pe3_out(:,:,:) + e3u_0(:,:,:) 692 692 ! … … 701 701 END DO 702 702 END DO 703 CALL lbc_lnk( pe3_out(:,:,:), 'V', 1._wp )703 CALL lbc_lnk( 'domvvl', pe3_out(:,:,:), 'V', 1._wp ) 704 704 pe3_out(:,:,:) = pe3_out(:,:,:) + e3v_0(:,:,:) 705 705 ! … … 715 715 END DO 716 716 END DO 717 CALL lbc_lnk( pe3_out(:,:,:), 'F', 1._wp )717 CALL lbc_lnk( 'domvvl', pe3_out(:,:,:), 'F', 1._wp ) 718 718 pe3_out(:,:,:) = pe3_out(:,:,:) + e3f_0(:,:,:) 719 719 ! -
NEMO/branches/2018/dev_r10164_HPC09_ESIWACE_PREP_MERGE/tests/CANAL/MY_SRC/trazdf.F90
r10074 r10170 92 92 END DO 93 93 !!gm this should be moved in trdtra.F90 and done on all trends 94 CALL lbc_lnk_multi( ztrdt, 'T', 1. , ztrds, 'T', 1. )94 CALL lbc_lnk_multi( 'trazdf', ztrdt, 'T', 1. , ztrds, 'T', 1. ) 95 95 !!gm 96 96 CALL trd_tra( kt, 'TRA', jp_tem, jptra_zdf, ztrdt ) -
NEMO/branches/2018/dev_r10164_HPC09_ESIWACE_PREP_MERGE/tests/CANAL/MY_SRC/usrdef_istate.F90
r10074 r10170 169 169 END DO 170 170 END DO 171 CALL lbc_lnk( pssh, 'T', 1. )171 CALL lbc_lnk( 'usrdef_istate', pssh, 'T', 1. ) 172 172 END DO 173 173 … … 293 293 pssh(:,:) = pssh(:,:) + ( 0.1 * zrandom(:,:) - 0.05 ) 294 294 END IF 295 CALL lbc_lnk( pssh, 'T', 1. )296 CALL lbc_lnk( pts, 'T', 1. )297 CALL lbc_lnk( pu, 'U', -1. )298 CALL lbc_lnk( pv, 'V', -1. )295 CALL lbc_lnk( 'usrdef_istate', pssh, 'T', 1. ) 296 CALL lbc_lnk( 'usrdef_istate', pts, 'T', 1. ) 297 CALL lbc_lnk( 'usrdef_istate', pu, 'U', -1. ) 298 CALL lbc_lnk( 'usrdef_istate', pv, 'V', -1. ) 299 299 300 300 END SUBROUTINE usr_def_istate -
NEMO/branches/2018/dev_r10164_HPC09_ESIWACE_PREP_MERGE/tests/CANAL/MY_SRC/usrdef_zgr.F90
r10074 r10170 204 204 END SELECT 205 205 ! 206 CALL lbc_lnk( z2d, 'T', 1. ) ! set surrounding land to zero (here jperio=0 ==>> closed)206 CALL lbc_lnk( 'usrdef_zgr', z2d, 'T', 1. ) ! set surrounding land to zero (here jperio=0 ==>> closed) 207 207 ! 208 208 k_bot(:,:) = INT( z2d(:,:) ) ! =jpkm1 over the ocean point, =0 elsewhere -
NEMO/branches/2018/dev_r10164_HPC09_ESIWACE_PREP_MERGE/tests/ISOMIP/MY_SRC/usrdef_zgr.F90
r10074 r10170 89 89 ! the ocean basin surrounded by land (1 grid-point) set through lbc_lnk call as jperio=0 90 90 z2d(:,:) = 1._wp ! surface ocean is the 1st level 91 CALL lbc_lnk( z2d, 'T', 1. ) ! closed basin since jperio = 0 (see userdef_nam.F90)91 CALL lbc_lnk( 'usrdef_zgr', z2d, 'T', 1. ) ! closed basin since jperio = 0 (see userdef_nam.F90) 92 92 zmsk(:,:) = NINT( z2d(:,:) ) 93 93 ! … … 177 177 END DO 178 178 END DO 179 CALL lbc_lnk( pe3v , 'V', 1._wp ) ; CALL lbc_lnk(pe3vw, 'V', 1._wp )180 CALL lbc_lnk( pe3f , 'F', 1._wp )179 CALL lbc_lnk( 'usrdef_zgr', pe3v , 'V', 1._wp ) ; CALL lbc_lnk( 'usrdef_zgr', pe3vw, 'V', 1._wp ) 180 CALL lbc_lnk( 'usrdef_zgr', pe3f , 'F', 1._wp ) 181 181 DO jk = 1, jpk 182 182 ! set to z-scale factor if zero (i.e. along closed boundaries) because of lbclnk -
NEMO/branches/2018/dev_r10164_HPC09_ESIWACE_PREP_MERGE/tests/LOCK_EXCHANGE/MY_SRC/usrdef_zgr.F90
r10074 r10170 88 88 ! the ocean basin surrounded by land (1 grid-point) set through lbc_lnk call as jperio=0 89 89 z2d(:,:) = 1._wp ! surface ocean is the 1st level 90 CALL lbc_lnk( z2d, 'T', 1. ) ! closed basin since jperio = 0 (see userdef_nam.F90)90 CALL lbc_lnk( 'usrdef_zgr', z2d, 'T', 1. ) ! closed basin since jperio = 0 (see userdef_nam.F90) 91 91 k_top(:,:) = NINT( z2d(:,:) ) 92 92 ! -
NEMO/branches/2018/dev_r10164_HPC09_ESIWACE_PREP_MERGE/tests/OVERFLOW/MY_SRC/usrdef_zgr.F90
r10074 r10170 93 93 zhu(ji,:) = 0.5_wp * ( zht(ji,:) + zht(ji+1,:) ) 94 94 END DO 95 CALL lbc_lnk( zhu, 'U', 1. ) ! boundary condition: this mask the surrouding grid-points95 CALL lbc_lnk( 'usrdef_zgr', zhu, 'U', 1. ) ! boundary condition: this mask the surrouding grid-points 96 96 ! ! ==>>> set by hand non-zero value on first/last columns & rows 97 97 DO ji = mi0(1), mi1(1) ! first row of global domain only … … 112 112 ! the ocean basin surrounded by land (1 grid-point) set through lbc_lnk call as jperio=0 113 113 z2d(:,:) = 1._wp ! surface ocean is the 1st level 114 CALL lbc_lnk( z2d, 'T', 1. ) ! closed basin since jperio = 0 (see userdef_nam.F90)114 CALL lbc_lnk( 'usrdef_zgr', z2d, 'T', 1. ) ! closed basin since jperio = 0 (see userdef_nam.F90) 115 115 k_top(:,:) = NINT( z2d(:,:) ) 116 116 ! -
NEMO/branches/2018/dev_r10164_HPC09_ESIWACE_PREP_MERGE/tests/VORTEX/MY_SRC/domvvl.F90
r10074 r10170 408 408 ! ! d - thickness diffusion transport: boundary conditions 409 409 ! (stored for tracer advction and continuity equation) 410 CALL lbc_lnk_multi( un_td , 'U' , -1._wp, vn_td , 'V' , -1._wp)410 CALL lbc_lnk_multi( 'domvvl', un_td , 'U' , -1._wp, vn_td , 'V' , -1._wp) 411 411 412 412 ! 4 - Time stepping of baroclinic scale factors … … 419 419 z2dt = 2.0_wp * rdt 420 420 ENDIF 421 CALL lbc_lnk( tilde_e3t_a(:,:,:), 'T', 1._wp )421 CALL lbc_lnk( 'domvvl', tilde_e3t_a(:,:,:), 'T', 1._wp ) 422 422 tilde_e3t_a(:,:,:) = tilde_e3t_b(:,:,:) + z2dt * tmask(:,:,:) * tilde_e3t_a(:,:,:) 423 423 … … 711 711 END DO 712 712 END DO 713 CALL lbc_lnk( pe3_out(:,:,:), 'U', 1._wp )713 CALL lbc_lnk( 'domvvl', pe3_out(:,:,:), 'U', 1._wp ) 714 714 pe3_out(:,:,:) = pe3_out(:,:,:) + e3u_0(:,:,:) 715 715 ! … … 724 724 END DO 725 725 END DO 726 CALL lbc_lnk( pe3_out(:,:,:), 'V', 1._wp )726 CALL lbc_lnk( 'domvvl', pe3_out(:,:,:), 'V', 1._wp ) 727 727 pe3_out(:,:,:) = pe3_out(:,:,:) + e3v_0(:,:,:) 728 728 ! … … 738 738 END DO 739 739 END DO 740 CALL lbc_lnk( pe3_out(:,:,:), 'F', 1._wp )740 CALL lbc_lnk( 'domvvl', pe3_out(:,:,:), 'F', 1._wp ) 741 741 pe3_out(:,:,:) = pe3_out(:,:,:) + e3f_0(:,:,:) 742 742 ! -
NEMO/branches/2018/dev_r10164_HPC09_ESIWACE_PREP_MERGE/tests/VORTEX/MY_SRC/usrdef_istate.F90
r10074 r10170 136 136 END DO 137 137 138 CALL lbc_lnk( pu, 'U', -1. )139 CALL lbc_lnk( pv, 'V', -1. )138 CALL lbc_lnk( 'usrdef_istate', pu, 'U', -1. ) 139 CALL lbc_lnk( 'usrdef_istate', pv, 'V', -1. ) 140 140 ! 141 141 END SUBROUTINE usr_def_istate -
NEMO/branches/2018/dev_r10164_HPC09_ESIWACE_PREP_MERGE/tests/VORTEX/MY_SRC/usrdef_zgr.F90
r10074 r10170 192 192 z2d(:,:) = REAL( jpkm1 , wp ) ! flat bottom 193 193 ! 194 CALL lbc_lnk( z2d, 'T', 1. ) ! set surrounding land to zero (here jperio=0 ==>> closed)194 CALL lbc_lnk( 'usrdef_zgr', z2d, 'T', 1. ) ! set surrounding land to zero (here jperio=0 ==>> closed) 195 195 ! 196 196 k_bot(:,:) = INT( z2d(:,:) ) ! =jpkm1 over the ocean point, =0 elsewhere -
NEMO/branches/2018/dev_r10164_HPC09_ESIWACE_PREP_MERGE/tests/WAD/MY_SRC/bdyini.F90
r10074 r10170 1133 1133 END DO 1134 1134 END DO 1135 CALL lbc_lnk_multi( bdyumask, 'U', 1. , bdyvmask, 'V', 1. ) ! Lateral boundary cond.1135 CALL lbc_lnk_multi( 'bdyini', bdyumask, 'U', 1. , bdyvmask, 'V', 1. ) ! Lateral boundary cond. 1136 1136 1137 1137 ! bdy masks are now set to zero on boundary points: … … 1169 1169 1170 1170 ! Lateral boundary conditions 1171 CALL lbc_lnk( zfmask, 'F', 1. )1172 CALL lbc_lnk_multi( bdyumask, 'U', 1. , bdyvmask, 'V', 1., bdytmask, 'T', 1. )1171 CALL lbc_lnk( 'bdyini', zfmask, 'F', 1. ) 1172 CALL lbc_lnk_multi( 'bdyini', bdyumask, 'U', 1. , bdyvmask, 'V', 1., bdytmask, 'T', 1. ) 1173 1173 DO ib_bdy = 1, nb_bdy ! Indices and directions of rim velocity components 1174 1174 -
NEMO/branches/2018/dev_r10164_HPC09_ESIWACE_PREP_MERGE/tests/WAD/MY_SRC/usrdef_zgr.F90
r10074 r10170 234 234 zhu(ji,:) = 0.5_wp * ( zht(ji,:) + zht(ji+1,:) ) 235 235 END DO 236 CALL lbc_lnk( zhu, 'U', 1. ) ! boundary condition: this mask the surrounding grid-points236 CALL lbc_lnk( 'usrdef_zgr', zhu, 'U', 1. ) ! boundary condition: this mask the surrounding grid-points 237 237 ! ! ==>>> set by hand non-zero value on first/last columns & rows 238 238 DO ji = mi0(1), mi1(1) ! first row of global domain only … … 247 247 zhv(:,jj) = 0.5_wp * ( zht(:,jj) + zht(:,jj+1) ) 248 248 END DO 249 CALL lbc_lnk( zhv, 'V', 1. ) ! boundary condition: this mask the surrounding grid-points249 CALL lbc_lnk( 'usrdef_zgr', zhv, 'V', 1. ) ! boundary condition: this mask the surrounding grid-points 250 250 DO jj = mj0(1), mj1(1) ! first row of global domain only 251 251 zhv(:,jj) = zht(:,jj) … … 272 272 273 273 274 CALL lbc_lnk( z2d, 'T', 1. ) ! closed basin since jperio = 0 (see userdef_nam.F90)274 CALL lbc_lnk( 'usrdef_zgr', z2d, 'T', 1. ) ! closed basin since jperio = 0 (see userdef_nam.F90) 275 275 k_top(:,:) = NINT( z2d(:,:) ) 276 276 ! … … 311 311 END DO 312 312 END DO 313 CALL lbc_lnk( pdept, 'T', 1. )314 CALL lbc_lnk( pdepw, 'T', 1. )315 CALL lbc_lnk( pe3t , 'T', 1. )316 CALL lbc_lnk( pe3w , 'T', 1. )317 CALL lbc_lnk( pe3u , 'U', 1. )318 CALL lbc_lnk( pe3uw, 'U', 1. )319 CALL lbc_lnk( pe3f , 'F', 1. )320 CALL lbc_lnk( pe3v , 'V', 1. )321 CALL lbc_lnk( pe3vw, 'V', 1. )313 CALL lbc_lnk( 'usrdef_zgr', pdept, 'T', 1. ) 314 CALL lbc_lnk( 'usrdef_zgr', pdepw, 'T', 1. ) 315 CALL lbc_lnk( 'usrdef_zgr', pe3t , 'T', 1. ) 316 CALL lbc_lnk( 'usrdef_zgr', pe3w , 'T', 1. ) 317 CALL lbc_lnk( 'usrdef_zgr', pe3u , 'U', 1. ) 318 CALL lbc_lnk( 'usrdef_zgr', pe3uw, 'U', 1. ) 319 CALL lbc_lnk( 'usrdef_zgr', pe3f , 'F', 1. ) 320 CALL lbc_lnk( 'usrdef_zgr', pe3v , 'V', 1. ) 321 CALL lbc_lnk( 'usrdef_zgr', pe3vw, 'V', 1. ) 322 322 WHERE( pe3t (:,:,:) == 0._wp ) pe3t (:,:,:) = 1._wp 323 323 WHERE( pe3u (:,:,:) == 0._wp ) pe3u (:,:,:) = 1._wp
Note: See TracChangeset
for help on using the changeset viewer.