Changeset 10957 for NEMO/branches/2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps/src/OCE/BDY/bdydyn3d.F90
- Timestamp:
- 2019-05-10T12:26:38+02:00 (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps/src/OCE/BDY/bdydyn3d.F90
r10529 r10957 33 33 CONTAINS 34 34 35 SUBROUTINE bdy_dyn3d( kt )35 SUBROUTINE bdy_dyn3d( kt, Kbb, puu, pvv, Kaa ) 36 36 !!---------------------------------------------------------------------- 37 37 !! *** SUBROUTINE bdy_dyn3d *** … … 40 40 !! 41 41 !!---------------------------------------------------------------------- 42 INTEGER, INTENT(in) :: kt ! Main time step counter 42 INTEGER , INTENT( in ) :: kt ! Main time step counter 43 INTEGER , INTENT( in ) :: Kbb, Kaa ! Time level indices 44 REAL(wp), DIMENSION(jpi,jpj,jpk,jpt), INTENT( inout ) :: puu, pvv ! Ocean velocities (to be updated at open boundaries) 43 45 ! 44 46 INTEGER :: ib_bdy ! loop index … … 49 51 SELECT CASE( cn_dyn3d(ib_bdy) ) 50 52 CASE('none') ; CYCLE 51 CASE('frs' ) ; CALL bdy_dyn3d_frs( idx_bdy(ib_bdy), dta_bdy(ib_bdy), kt, ib_bdy )52 CASE('specified') ; CALL bdy_dyn3d_spe( idx_bdy(ib_bdy), dta_bdy(ib_bdy), kt, ib_bdy )53 CASE('zero') ; CALL bdy_dyn3d_zro( idx_bdy(ib_bdy), dta_bdy(ib_bdy), kt, ib_bdy )54 CASE('orlanski' ) ; CALL bdy_dyn3d_orlanski( idx_bdy(ib_bdy), dta_bdy(ib_bdy), ib_bdy, ll_npo=.false. )55 CASE('orlanski_npo'); CALL bdy_dyn3d_orlanski( idx_bdy(ib_bdy), dta_bdy(ib_bdy), ib_bdy, ll_npo=.true. )56 CASE('zerograd') ; CALL bdy_dyn3d_zgrad( idx_bdy(ib_bdy), dta_bdy(ib_bdy), kt, ib_bdy )57 CASE('neumann') ; CALL bdy_dyn3d_nmn( idx_bdy(ib_bdy), ib_bdy )53 CASE('frs' ) ; CALL bdy_dyn3d_frs( puu, pvv, Kaa, idx_bdy(ib_bdy), dta_bdy(ib_bdy), ib_bdy ) 54 CASE('specified') ; CALL bdy_dyn3d_spe( puu, pvv, Kaa, idx_bdy(ib_bdy), dta_bdy(ib_bdy), ib_bdy ) 55 CASE('zero') ; CALL bdy_dyn3d_zro( puu, pvv, Kaa, idx_bdy(ib_bdy), dta_bdy(ib_bdy), ib_bdy ) 56 CASE('orlanski' ) ; CALL bdy_dyn3d_orlanski( Kbb, puu, pvv, Kaa, idx_bdy(ib_bdy), dta_bdy(ib_bdy), ib_bdy, ll_npo=.false. ) 57 CASE('orlanski_npo'); CALL bdy_dyn3d_orlanski( Kbb, puu, pvv, Kaa, idx_bdy(ib_bdy), dta_bdy(ib_bdy), ib_bdy, ll_npo=.true. ) 58 CASE('zerograd') ; CALL bdy_dyn3d_zgrad( puu, pvv, Kaa, idx_bdy(ib_bdy), dta_bdy(ib_bdy), ib_bdy ) 59 CASE('neumann') ; CALL bdy_dyn3d_nmn( puu, pvv, Kaa, idx_bdy(ib_bdy), ib_bdy ) 58 60 CASE DEFAULT ; CALL ctl_stop( 'bdy_dyn3d : unrecognised option for open boundaries for baroclinic velocities' ) 59 61 END SELECT … … 63 65 64 66 65 SUBROUTINE bdy_dyn3d_spe( idx, dta, kt, ib_bdy )67 SUBROUTINE bdy_dyn3d_spe( puu, pvv, Kaa, idx, dta, ib_bdy ) 66 68 !!---------------------------------------------------------------------- 67 69 !! *** SUBROUTINE bdy_dyn3d_spe *** … … 71 73 !! 72 74 !!---------------------------------------------------------------------- 73 INTEGER , INTENT(in) :: kt ! time step index 74 TYPE(OBC_INDEX), INTENT(in) :: idx ! OBC indices 75 TYPE(OBC_DATA) , INTENT(in) :: dta ! OBC external data 76 INTEGER , INTENT(in) :: ib_bdy ! BDY set index 75 INTEGER , INTENT( in ) :: Kaa ! Time level index 76 REAL(wp), DIMENSION(jpi,jpj,jpk,jpt), INTENT( inout ) :: puu, pvv ! Ocean velocities (to be updated at open boundaries) 77 TYPE(OBC_INDEX) , INTENT( in ) :: idx ! OBC indices 78 TYPE(OBC_DATA) , INTENT( in ) :: dta ! OBC external data 79 INTEGER , INTENT( in ) :: ib_bdy ! BDY set index 77 80 ! 78 81 INTEGER :: jb, jk ! dummy loop indices … … 86 89 ii = idx%nbi(jb,igrd) 87 90 ij = idx%nbj(jb,igrd) 88 ua(ii,ij,jk) = dta%u3d(jb,jk) * umask(ii,ij,jk)91 puu(ii,ij,jk,Kaa) = dta%u3d(jb,jk) * umask(ii,ij,jk) 89 92 END DO 90 93 END DO … … 95 98 ii = idx%nbi(jb,igrd) 96 99 ij = idx%nbj(jb,igrd) 97 va(ii,ij,jk) = dta%v3d(jb,jk) * vmask(ii,ij,jk) 98 END DO 99 END DO 100 CALL lbc_bdy_lnk( 'bdydyn3d', ua, 'U', -1., ib_bdy ) ! Boundary points should be updated 101 CALL lbc_bdy_lnk( 'bdydyn3d', va, 'V', -1., ib_bdy ) 102 ! 103 IF( kt == nit000 ) CLOSE( unit = 102 ) 100 pvv(ii,ij,jk,Kaa) = dta%v3d(jb,jk) * vmask(ii,ij,jk) 101 END DO 102 END DO 103 CALL lbc_bdy_lnk( 'bdydyn3d', puu(:,:,:,Kaa), 'U', -1., ib_bdy ) ! Boundary points should be updated 104 CALL lbc_bdy_lnk( 'bdydyn3d', pvv(:,:,:,Kaa), 'V', -1., ib_bdy ) 104 105 ! 105 106 END SUBROUTINE bdy_dyn3d_spe 106 107 107 108 108 SUBROUTINE bdy_dyn3d_zgrad( idx, dta, kt, ib_bdy )109 SUBROUTINE bdy_dyn3d_zgrad( puu, pvv, Kaa, idx, dta, ib_bdy ) 109 110 !!---------------------------------------------------------------------- 110 111 !! *** SUBROUTINE bdy_dyn3d_zgrad *** … … 113 114 !! 114 115 !!---------------------------------------------------------------------- 115 INTEGER :: kt 116 TYPE(OBC_INDEX), INTENT(in) :: idx ! OBC indices 117 TYPE(OBC_DATA), INTENT(in) :: dta ! OBC external data 118 INTEGER, INTENT(in) :: ib_bdy ! BDY set index 116 INTEGER , INTENT( in ) :: Kaa ! Time level index 117 REAL(wp), DIMENSION(jpi,jpj,jpk,jpt), INTENT( inout ) :: puu, pvv ! Ocean velocities (to be updated at open boundaries) 118 TYPE(OBC_INDEX) , INTENT( in ) :: idx ! OBC indices 119 TYPE(OBC_DATA) , INTENT( in ) :: dta ! OBC external data 120 INTEGER , INTENT( in ) :: ib_bdy ! BDY set index 119 121 !! 120 122 INTEGER :: jb, jk ! dummy loop indices … … 130 132 ij = idx%nbj(jb,igrd) 131 133 fu = ABS( ABS (NINT( idx%flagu(jb,igrd) ) ) - 1 ) 132 ua(ii,ij,jk) = ua(ii,ij,jk) * REAL( 1 - fu) + ( ua(ii,ij+fu,jk) * umask(ii,ij+fu,jk) &133 &+ ua(ii,ij-fu,jk) * umask(ii,ij-fu,jk) ) * umask(ii,ij,jk) * REAL( fu )134 puu(ii,ij,jk,Kaa) = puu(ii,ij,jk,Kaa) * REAL( 1 - fu) + ( puu(ii,ij+fu,jk,Kaa) * umask(ii,ij+fu,jk) & 135 &+ puu(ii,ij-fu,jk,Kaa) * umask(ii,ij-fu,jk) ) * umask(ii,ij,jk) * REAL( fu ) 134 136 END DO 135 137 END DO … … 141 143 ij = idx%nbj(jb,igrd) 142 144 fv = ABS( ABS (NINT( idx%flagv(jb,igrd) ) ) - 1 ) 143 va(ii,ij,jk) = va(ii,ij,jk) * REAL( 1 - fv ) + ( va(ii+fv,ij,jk) * vmask(ii+fv,ij,jk) & 144 &+ va(ii-fv,ij,jk) * vmask(ii-fv,ij,jk) ) * vmask(ii,ij,jk) * REAL( fv ) 145 END DO 146 END DO 147 CALL lbc_bdy_lnk( 'bdydyn3d', ua, 'U', -1., ib_bdy ) ! Boundary points should be updated 148 CALL lbc_bdy_lnk( 'bdydyn3d', va, 'V', -1., ib_bdy ) 149 ! 150 IF( kt == nit000 ) CLOSE( unit = 102 ) 145 pvv(ii,ij,jk,Kaa) = pvv(ii,ij,jk,Kaa) * REAL( 1 - fv ) + ( pvv(ii+fv,ij,jk,Kaa) * vmask(ii+fv,ij,jk) & 146 &+ pvv(ii-fv,ij,jk,Kaa) * vmask(ii-fv,ij,jk) ) * vmask(ii,ij,jk) * REAL( fv ) 147 END DO 148 END DO 149 CALL lbc_bdy_lnk( 'bdydyn3d', puu(:,:,:,Kaa), 'U', -1., ib_bdy ) ! Boundary points should be updated 150 CALL lbc_bdy_lnk( 'bdydyn3d', pvv(:,:,:,Kaa), 'V', -1., ib_bdy ) 151 151 ! 152 152 END SUBROUTINE bdy_dyn3d_zgrad 153 153 154 154 155 SUBROUTINE bdy_dyn3d_zro( idx, dta, kt, ib_bdy )155 SUBROUTINE bdy_dyn3d_zro( puu, pvv, Kaa, idx, dta, ib_bdy ) 156 156 !!---------------------------------------------------------------------- 157 157 !! *** SUBROUTINE bdy_dyn3d_zro *** … … 160 160 !! 161 161 !!---------------------------------------------------------------------- 162 INTEGER , INTENT(in) :: kt ! time step index 163 TYPE(OBC_INDEX), INTENT(in) :: idx ! OBC indices 164 TYPE(OBC_DATA) , INTENT(in) :: dta ! OBC external data 165 INTEGER, INTENT(in) :: ib_bdy ! BDY set index 162 INTEGER , INTENT( in ) :: Kaa ! Time level index 163 REAL(wp), DIMENSION(jpi,jpj,jpk,jpt), INTENT( inout ) :: puu, pvv ! Ocean velocities (to be updated at open boundaries) 164 TYPE(OBC_INDEX) , INTENT( in ) :: idx ! OBC indices 165 TYPE(OBC_DATA) , INTENT( in ) :: dta ! OBC external data 166 INTEGER , INTENT( in ) :: ib_bdy ! BDY set index 166 167 ! 167 168 INTEGER :: ib, ik ! dummy loop indices … … 175 176 ij = idx%nbj(ib,igrd) 176 177 DO ik = 1, jpkm1 177 ua(ii,ij,ik) = 0._wp178 puu(ii,ij,ik,Kaa) = 0._wp 178 179 END DO 179 180 END DO … … 184 185 ij = idx%nbj(ib,igrd) 185 186 DO ik = 1, jpkm1 186 va(ii,ij,ik) = 0._wp 187 END DO 188 END DO 189 ! 190 CALL lbc_bdy_lnk( 'bdydyn3d', ua, 'U', -1., ib_bdy ) ; CALL lbc_bdy_lnk( 'bdydyn3d', va, 'V', -1.,ib_bdy ) ! Boundary points should be updated 191 ! 192 IF( kt == nit000 ) CLOSE( unit = 102 ) 187 pvv(ii,ij,ik,Kaa) = 0._wp 188 END DO 189 END DO 190 ! 191 CALL lbc_bdy_lnk( 'bdydyn3d', puu(:,:,:,Kaa), 'U', -1., ib_bdy ) ; CALL lbc_bdy_lnk( 'bdydyn3d', pvv(:,:,:,Kaa), 'V', -1.,ib_bdy ) ! Boundary points should be updated 193 192 ! 194 193 END SUBROUTINE bdy_dyn3d_zro 195 194 196 195 197 SUBROUTINE bdy_dyn3d_frs( idx, dta, kt, ib_bdy )196 SUBROUTINE bdy_dyn3d_frs( puu, pvv, Kaa, idx, dta, ib_bdy ) 198 197 !!---------------------------------------------------------------------- 199 198 !! *** SUBROUTINE bdy_dyn3d_frs *** … … 206 205 !! topography. Tellus, 365-382. 207 206 !!---------------------------------------------------------------------- 208 INTEGER , INTENT(in) :: kt ! time step index 209 TYPE(OBC_INDEX), INTENT(in) :: idx ! OBC indices 210 TYPE(OBC_DATA) , INTENT(in) :: dta ! OBC external data 211 INTEGER, INTENT(in) :: ib_bdy ! BDY set index 207 INTEGER , INTENT( in ) :: Kaa ! Time level index 208 REAL(wp), DIMENSION(jpi,jpj,jpk,jpt), INTENT( inout ) :: puu, pvv ! Ocean velocities (to be updated at open boundaries) 209 TYPE(OBC_INDEX) , INTENT( in ) :: idx ! OBC indices 210 TYPE(OBC_DATA) , INTENT( in ) :: dta ! OBC external data 211 INTEGER , INTENT( in ) :: ib_bdy ! BDY set index 212 212 ! 213 213 INTEGER :: jb, jk ! dummy loop indices … … 222 222 ij = idx%nbj(jb,igrd) 223 223 zwgt = idx%nbw(jb,igrd) 224 ua(ii,ij,jk) = ( ua(ii,ij,jk) + zwgt * ( dta%u3d(jb,jk) - ua(ii,ij,jk) ) ) * umask(ii,ij,jk)224 puu(ii,ij,jk,Kaa) = ( puu(ii,ij,jk,Kaa) + zwgt * ( dta%u3d(jb,jk) - puu(ii,ij,jk,Kaa) ) ) * umask(ii,ij,jk) 225 225 END DO 226 226 END DO … … 232 232 ij = idx%nbj(jb,igrd) 233 233 zwgt = idx%nbw(jb,igrd) 234 va(ii,ij,jk) = ( va(ii,ij,jk) + zwgt * ( dta%v3d(jb,jk) - va(ii,ij,jk) ) ) * vmask(ii,ij,jk)234 pvv(ii,ij,jk,Kaa) = ( pvv(ii,ij,jk,Kaa) + zwgt * ( dta%v3d(jb,jk) - pvv(ii,ij,jk,Kaa) ) ) * vmask(ii,ij,jk) 235 235 END DO 236 236 END DO 237 CALL lbc_bdy_lnk( 'bdydyn3d', ua, 'U', -1., ib_bdy ) ! Boundary points should be updated 238 CALL lbc_bdy_lnk( 'bdydyn3d', va, 'V', -1., ib_bdy ) 239 ! 240 IF( kt == nit000 ) CLOSE( unit = 102 ) 237 CALL lbc_bdy_lnk( 'bdydyn3d', puu(:,:,:,Kaa), 'U', -1., ib_bdy ) ! Boundary points should be updated 238 CALL lbc_bdy_lnk( 'bdydyn3d', pvv(:,:,:,Kaa), 'V', -1., ib_bdy ) 241 239 ! 242 240 END SUBROUTINE bdy_dyn3d_frs 243 241 244 242 245 SUBROUTINE bdy_dyn3d_orlanski( idx, dta, ib_bdy, ll_npo )243 SUBROUTINE bdy_dyn3d_orlanski( Kbb, puu, pvv, Kaa, idx, dta, ib_bdy, ll_npo ) 246 244 !!---------------------------------------------------------------------- 247 245 !! *** SUBROUTINE bdy_dyn3d_orlanski *** … … 253 251 !! References: Marchesiello, McWilliams and Shchepetkin, Ocean Modelling vol. 3 (2001) 254 252 !!---------------------------------------------------------------------- 255 TYPE(OBC_INDEX), INTENT(in) :: idx ! OBC indices 256 TYPE(OBC_DATA), INTENT(in) :: dta ! OBC external data 257 INTEGER, INTENT(in) :: ib_bdy ! BDY set index 258 LOGICAL, INTENT(in) :: ll_npo ! switch for NPO version 253 INTEGER , INTENT( in ) :: Kbb, Kaa ! Time level indices 254 REAL(wp), DIMENSION(jpi,jpj,jpk,jpt), INTENT( inout ) :: puu, pvv ! Ocean velocities (to be updated at open boundaries) 255 TYPE(OBC_INDEX) , INTENT( in ) :: idx ! OBC indices 256 TYPE(OBC_DATA) , INTENT( in ) :: dta ! OBC external data 257 INTEGER , INTENT( in ) :: ib_bdy ! BDY set index 258 LOGICAL , INTENT( in ) :: ll_npo ! switch for NPO version 259 259 260 260 INTEGER :: jb, igrd ! dummy loop indices 261 261 !!---------------------------------------------------------------------- 262 262 ! 263 !! Note that at this stage the ub and uaarrays contain the baroclinic velocities.263 !! Note that at this stage the puu(:,:,:,Kbb) and puu(:,:,:,Kaa) arrays contain the baroclinic velocities. 264 264 ! 265 265 igrd = 2 ! Orlanski bc on u-velocity; 266 266 ! 267 CALL bdy_orlanski_3d( idx, igrd, ub, ua, dta%u3d, ll_npo )267 CALL bdy_orlanski_3d( idx, igrd, puu(:,:,:,Kbb), puu(:,:,:,Kaa), dta%u3d, ll_npo ) 268 268 269 269 igrd = 3 ! Orlanski bc on v-velocity 270 270 ! 271 CALL bdy_orlanski_3d( idx, igrd, vb, va, dta%v3d, ll_npo )272 ! 273 CALL lbc_bdy_lnk( 'bdydyn3d', ua, 'U', -1., ib_bdy ) ! Boundary points should be updated274 CALL lbc_bdy_lnk( 'bdydyn3d', va, 'V', -1., ib_bdy )271 CALL bdy_orlanski_3d( idx, igrd, pvv(:,:,:,Kbb), pvv(:,:,:,Kaa), dta%v3d, ll_npo ) 272 ! 273 CALL lbc_bdy_lnk( 'bdydyn3d', puu(:,:,:,Kaa), 'U', -1., ib_bdy ) ! Boundary points should be updated 274 CALL lbc_bdy_lnk( 'bdydyn3d', pvv(:,:,:,Kaa), 'V', -1., ib_bdy ) 275 275 ! 276 276 END SUBROUTINE bdy_dyn3d_orlanski 277 277 278 278 279 SUBROUTINE bdy_dyn3d_dmp( kt )279 SUBROUTINE bdy_dyn3d_dmp( kt, Kbb, puu, pvv, Krhs ) 280 280 !!---------------------------------------------------------------------- 281 281 !! *** SUBROUTINE bdy_dyn3d_dmp *** … … 284 284 !! 285 285 !!---------------------------------------------------------------------- 286 INTEGER, INTENT(in) :: kt ! time step index 286 INTEGER , INTENT( in ) :: kt ! time step 287 INTEGER , INTENT( in ) :: Kbb, Krhs ! Time level indices 288 REAL(wp), DIMENSION(jpi,jpj,jpk,jpt), INTENT( inout ) :: puu, pvv ! Ocean velocities and trends (to be updated at open boundaries) 287 289 ! 288 290 INTEGER :: jb, jk ! dummy loop indices … … 302 304 zwgt = idx_bdy(ib_bdy)%nbd(jb,igrd) 303 305 DO jk = 1, jpkm1 304 ua(ii,ij,jk) = ( ua(ii,ij,jk) + zwgt * ( dta_bdy(ib_bdy)%u3d(jb,jk) - &305 ub(ii,ij,jk) + ub_b(ii,ij)) ) * umask(ii,ij,jk)306 puu(ii,ij,jk,Krhs) = ( puu(ii,ij,jk,Krhs) + zwgt * ( dta_bdy(ib_bdy)%u3d(jb,jk) - & 307 puu(ii,ij,jk,Kbb) + uu_b(ii,ij,Kbb)) ) * umask(ii,ij,jk) 306 308 END DO 307 309 END DO … … 313 315 zwgt = idx_bdy(ib_bdy)%nbd(jb,igrd) 314 316 DO jk = 1, jpkm1 315 va(ii,ij,jk) = ( va(ii,ij,jk) + zwgt * ( dta_bdy(ib_bdy)%v3d(jb,jk) - &316 vb(ii,ij,jk) + vb_b(ii,ij)) ) * vmask(ii,ij,jk)317 pvv(ii,ij,jk,Krhs) = ( pvv(ii,ij,jk,Krhs) + zwgt * ( dta_bdy(ib_bdy)%v3d(jb,jk) - & 318 pvv(ii,ij,jk,Kbb) + vv_b(ii,ij,Kbb)) ) * vmask(ii,ij,jk) 317 319 END DO 318 320 END DO … … 320 322 END DO 321 323 ! 322 CALL lbc_lnk_multi( 'bdydyn3d', ua, 'U', -1., va, 'V', -1. ) ! Boundary points should be updated324 CALL lbc_lnk_multi( 'bdydyn3d', puu(:,:,:,Krhs), 'U', -1., pvv(:,:,:,Krhs), 'V', -1. ) ! Boundary points should be updated 323 325 ! 324 326 IF( ln_timing ) CALL timing_stop('bdy_dyn3d_dmp') … … 327 329 328 330 329 SUBROUTINE bdy_dyn3d_nmn( idx, ib_bdy )331 SUBROUTINE bdy_dyn3d_nmn( puu, pvv, Kaa, idx, ib_bdy ) 330 332 !!---------------------------------------------------------------------- 331 333 !! *** SUBROUTINE bdy_dyn3d_nmn *** … … 336 338 !! 337 339 !!---------------------------------------------------------------------- 338 TYPE(OBC_INDEX), INTENT(in) :: idx ! OBC indices 339 INTEGER, INTENT(in) :: ib_bdy ! BDY set index 340 INTEGER , INTENT( in ) :: Kaa ! Time level index 341 REAL(wp), DIMENSION(jpi,jpj,jpk,jpt), INTENT( inout ) :: puu, pvv ! Ocean velocities (to be updated at open boundaries) 342 TYPE(OBC_INDEX) , INTENT( in ) :: idx ! OBC indices 343 INTEGER , INTENT( in ) :: ib_bdy ! BDY set index 340 344 341 345 INTEGER :: jb, igrd ! dummy loop indices 342 346 !!---------------------------------------------------------------------- 343 347 ! 344 !! Note that at this stage the ub and uaarrays contain the baroclinic velocities.348 !! Note that at this stage the puu(:,:,:,Kbb) and puu(:,:,:,Kaa) arrays contain the baroclinic velocities. 345 349 ! 346 350 igrd = 2 ! Neumann bc on u-velocity; 347 351 ! 348 CALL bdy_nmn( idx, igrd, ua)352 CALL bdy_nmn( idx, igrd, puu(:,:,:,Kaa) ) 349 353 350 354 igrd = 3 ! Neumann bc on v-velocity 351 355 ! 352 CALL bdy_nmn( idx, igrd, va)353 ! 354 CALL lbc_bdy_lnk( 'bdydyn3d', ua, 'U', -1., ib_bdy ) ! Boundary points should be updated355 CALL lbc_bdy_lnk( 'bdydyn3d', va, 'V', -1., ib_bdy )356 CALL bdy_nmn( idx, igrd, pvv(:,:,:,Kaa) ) 357 ! 358 CALL lbc_bdy_lnk( 'bdydyn3d', puu(:,:,:,Kaa), 'U', -1., ib_bdy ) ! Boundary points should be updated 359 CALL lbc_bdy_lnk( 'bdydyn3d', pvv(:,:,:,Kaa), 'V', -1., ib_bdy ) 356 360 ! 357 361 END SUBROUTINE bdy_dyn3d_nmn
Note: See TracChangeset
for help on using the changeset viewer.