New URL for NEMO forge!   http://forge.nemo-ocean.eu

Since March 2022 along with NEMO 4.2 release, the code development moved to a self-hosted GitLab.
This present forge is now archived and remained online for history.
Changeset 7029 for branches/NERC/dev_r6998_ORCHESTRA/NEMOGCM/NEMO/OPA_SRC/DYN/dynkeg.F90 – NEMO

Ignore:
Timestamp:
2016-10-14T11:10:43+02:00 (8 years ago)
Author:
jamesharle
Message:

Adding ORCHESTRA configuration
Merging with branches/2016/dev_r5549_BDY_ZEROGRAD
Merging with branches/2016/dev_r5840_BDY_MSK
Merging with branches/2014/dev_r4621_NOC4_BDY_VERT_INTERP

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/NERC/dev_r6998_ORCHESTRA/NEMOGCM/NEMO/OPA_SRC/DYN/dynkeg.F90

    r5328 r7029  
    2424   USE wrk_nemo        ! Memory Allocation 
    2525   USE timing          ! Timing 
     26#if defined key_bdy  
     27   USE bdy_oce         ! ocean open boundary conditions 
     28#endif 
    2629 
    2730   IMPLICIT NONE 
     
    7881      REAL(wp), POINTER, DIMENSION(:,:,:) :: zhke 
    7982      REAL(wp), POINTER, DIMENSION(:,:,:) :: ztrdu, ztrdv  
     83#if defined key_bdy 
     84      INTEGER  ::   jb                 ! dummy loop indices 
     85      INTEGER  ::   ii, ij, igrd, ib_bdy   ! local integers 
     86      INTEGER  ::   fu, fv 
     87#endif 
    8088      !!---------------------------------------------------------------------- 
    8189      ! 
     
    98106      zhke(:,:,jpk) = 0._wp 
    99107       
     108#if defined key_bdy 
     109      ! Maria Luneva & Fred Wobus: July-2016 
     110      ! compensate for lack of turbulent kinetic energy on liquid bdy points 
     111      DO ib_bdy = 1, nb_bdy 
     112         IF( cn_dyn3d(ib_bdy) /= 'none' ) THEN 
     113            igrd = 2           ! Copying normal velocity into points outside bdy 
     114            DO jb = 1, idx_bdy(ib_bdy)%nblenrim(igrd) 
     115               DO jk = 1, jpkm1 
     116                  ii   = idx_bdy(ib_bdy)%nbi(jb,igrd) 
     117                  ij   = idx_bdy(ib_bdy)%nbj(jb,igrd) 
     118                  fu   = NINT( idx_bdy(ib_bdy)%flagu(jb,igrd) ) 
     119                  un(ii-fu,ij,jk) = un(ii,ij,jk) * umask(ii,ij,jk) 
     120               END DO 
     121            END DO 
     122            ! 
     123            igrd = 3           ! Copying normal velocity into points outside bdy 
     124            DO jb = 1, idx_bdy(ib_bdy)%nblenrim(igrd) 
     125               DO jk = 1, jpkm1 
     126                  ii   = idx_bdy(ib_bdy)%nbi(jb,igrd) 
     127                  ij   = idx_bdy(ib_bdy)%nbj(jb,igrd) 
     128                  fv   = NINT( idx_bdy(ib_bdy)%flagv(jb,igrd) ) 
     129                  vn(ii,ij-fv,jk) = vn(ii,ij,jk) * vmask(ii,ij,jk) 
     130               END DO 
     131            END DO 
     132         ENDIF 
     133      ENDDO   
     134#endif  
     135 
    100136      SELECT CASE ( kscheme )             !== Horizontal kinetic energy at T-point  ==! 
    101137      ! 
     
    133169         ! 
    134170      END SELECT 
     171 
     172#if defined key_bdy 
     173      ! restore velocity masks at points outside boundary 
     174      un(:,:,:) = un(:,:,:) * umask(:,:,:) 
     175      vn(:,:,:) = vn(:,:,:) * vmask(:,:,:) 
     176#endif       
     177 
     178 
    135179      ! 
    136180      DO jk = 1, jpkm1                    !==  grad( KE ) added to the general momentum trends  ==! 
Note: See TracChangeset for help on using the changeset viewer.