- Timestamp:
- 2018-07-11T10:24:17+02:00 (6 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2018/dev_r9838_ENHANCE04_MLF/src/OCE/BDY/bdylib.F90
r9598 r9923 4 4 !! Unstructured Open Boundary Cond. : Library module of generic boundary algorithms. 5 5 !!====================================================================== 6 !! History : 3.6 ! 2013 (D. Storkey) original code7 !! 4.0 ! 2014 (T. Lovato) Generalize OBC structure6 !! History : 3.6 ! 2013 (D. Storkey) original code 7 !! 4.0 ! 2014 (T. Lovato) Generalize OBC structure 8 8 !!---------------------------------------------------------------------- 9 9 10 !!---------------------------------------------------------------------- 10 !! bdy_orlanski_2d 11 !! bdy_orlanski_3d 11 !! bdy_frs : Apply the Flow Relaxation Scheme (tracers) 12 !! bdy_spe : Apply a specified value (tracers) 13 !! bdy_orl : Apply Orlanski radiation (tracers) 14 !! bdy_orlanski_2d: 2D - - - 15 !! bdy_orlanski_3d: 3D - - - 16 !! bdy_nmn : Duplicate the value at open boundaries (zero gradient) 12 17 !!---------------------------------------------------------------------- 13 18 USE oce ! ocean dynamics and tracers … … 22 27 PRIVATE 23 28 24 PUBLIC bdy_frs, bdy_spe, bdy_nmn, bdy_orl 25 PUBLIC bdy_orlanski_2d 26 PUBLIC bdy_orlanski_3d 29 PUBLIC bdy_frs, bdy_spe, bdy_nmn 30 PUBLIC bdy_orl, bdy_orlanski_2d, bdy_orlanski_3d 27 31 28 32 !!---------------------------------------------------------------------- … … 230 234 ! Note no rdt factor in expression for zdt because it cancels in the expressions for 231 235 ! zrx and zry. 232 zdt = phia(iibm1,ijbm1) - phib(iibm1,ijbm1)236 zdt = phia(iibm1,ijbm1) - phib(iibm1,ijbm1) 233 237 zdx = ( ( phia(iibm1,ijbm1) - phia(iibm2,ijbm2) ) / zex2 ) * zmask_x 234 238 zdy_1 = ( ( phib(iibm1 ,ijbm1 ) - phib(iibm1jm1,ijbm1jm1) ) / zey1 ) * zmask_y1 … … 247 251 zout = sign( 1., zrx ) 248 252 zout = 0.5*( zout + abs(zout) ) 249 zwgt = 2.*rdt*( (1.-zout) * idx%nbd(jb,igrd) + zout * idx%nbdout(jb,igrd) )253 zwgt = rDt*( (1.-zout) * idx%nbd(jb,igrd) + zout * idx%nbdout(jb,igrd) ) 250 254 ! only apply radiation on outflow points 251 255 if( ll_npo ) then !! NPO version !! … … 385 389 ! Centred derivative is calculated as average of "left" and "right" derivatives for 386 390 ! this reason. 387 zdt = phia(iibm1,ijbm1,jk) - phib(iibm1,ijbm1,jk)391 zdt = phia(iibm1,ijbm1,jk) - phib(iibm1,ijbm1,jk) 388 392 zdx = ( ( phia(iibm1,ijbm1,jk) - phia(iibm2,ijbm2,jk) ) / zex2 ) * zmask_x 389 393 zdy_1 = ( ( phib(iibm1 ,ijbm1 ,jk) - phib(iibm1jm1,ijbm1jm1,jk) ) / zey1 ) * zmask_y1 … … 403 407 zout = sign( 1., zrx ) 404 408 zout = 0.5*( zout + abs(zout) ) 405 zwgt = 2.*rdt*( (1.-zout) * idx%nbd(jb,igrd) + zout * idx%nbdout(jb,igrd) )409 zwgt = rDt*( (1.-zout) * idx%nbd(jb,igrd) + zout * idx%nbdout(jb,igrd) ) 406 410 ! only apply radiation on outflow points 407 411 if( ll_npo ) then !! NPO version !! … … 426 430 ! 427 431 END SUBROUTINE bdy_orlanski_3d 432 428 433 429 434 SUBROUTINE bdy_nmn( idx, igrd, phia )
Note: See TracChangeset
for help on using the changeset viewer.