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 5878 for branches/UKMO/dev_r5518_bdy_sponge_temp/NEMOGCM/NEMO/OPA_SRC/TRA/traldf_lap.F90 – NEMO

Ignore:
Timestamp:
2015-11-11T19:11:01+01:00 (8 years ago)
Author:
deazer
Message:

Adds simple ramp of diffusion coefficient in BDY rim using TANH weighting

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/UKMO/dev_r5518_bdy_sponge_temp/NEMOGCM/NEMO/OPA_SRC/TRA/traldf_lap.F90

    r5876 r5878  
    2626   USE lib_mpp         ! MPP library 
    2727   USE timing          ! Timing 
     28#if defined key_bdy  
     29   USE bdy_oce  
     30#endif 
    2831 
    2932   IMPLICIT NONE 
     
    7780      INTEGER  ::   iku, ikv, ierr       ! local integers 
    7881      REAL(wp) ::   zabe1, zabe2, zbtr   ! local scalars 
     82      REAL(wp), DIMENSION(jpi,jpj)     ::   zfactor  ! multiplier for diffusion 
    7983      !!---------------------------------------------------------------------- 
    8084      ! 
     
    8690         IF(lwp) WRITE(numout,*) '~~~~~~~~~~~ ' 
    8791      ENDIF 
     92#if defined key_bdy 
     93     zfactor(:,:) = sponge_factor(:,:) 
     94#else 
     95     zfactor(:,:) = 1.0 
     96#endif 
    8897 
    8998      !                                                          ! =========== ! 
     
    96105            DO jj = 1, jpjm1 
    97106               DO ji = 1, fs_jpim1   ! vector opt. 
    98                   zabe1 = fsahtu(ji,jj,jk) * umask(ji,jj,jk) * re2u_e1u(ji,jj) * fse3u_n(ji,jj,jk) 
    99                   zabe2 = fsahtv(ji,jj,jk) * vmask(ji,jj,jk) * re1v_e2v(ji,jj) * fse3v_n(ji,jj,jk) 
     107                  zabe1 = zfactor(ji,jj) * fsahtu(ji,jj,jk) * umask(ji,jj,jk) * re2u_e1u(ji,jj) * fse3u_n(ji,jj,jk) 
     108                  zabe2 = zfactor(ji,jj) * fsahtv(ji,jj,jk) * vmask(ji,jj,jk) * re1v_e2v(ji,jj) * fse3v_n(ji,jj,jk) 
    100109                  ztu(ji,jj,jk) = zabe1 * ( ptb(ji+1,jj  ,jk,jn) - ptb(ji,jj,jk,jn) ) 
    101110                  ztv(ji,jj,jk) = zabe2 * ( ptb(ji  ,jj+1,jk,jn) - ptb(ji,jj,jk,jn) ) 
     
    109118                     ikv = mbkv(ji,jj) 
    110119                     IF( iku == jk ) THEN 
    111                         zabe1 = fsahtu(ji,jj,iku) * umask(ji,jj,iku) * re2u_e1u(ji,jj) * fse3u_n(ji,jj,iku) 
     120                        zabe1 = zfactor(ji,jj) * fsahtu(ji,jj,iku) * umask(ji,jj,iku) * re2u_e1u(ji,jj) * fse3u_n(ji,jj,iku) 
    112121                        ztu(ji,jj,jk) = zabe1 * pgu(ji,jj,jn) 
    113122                     ENDIF 
    114123                     IF( ikv == jk ) THEN 
    115                         zabe2 = fsahtv(ji,jj,ikv) * vmask(ji,jj,ikv) * re1v_e2v(ji,jj) * fse3v_n(ji,jj,ikv) 
     124                        zabe2 = zfactor(ji,jj) * fsahtv(ji,jj,ikv) * vmask(ji,jj,ikv) * re1v_e2v(ji,jj) * fse3v_n(ji,jj,ikv) 
    116125                        ztv(ji,jj,jk) = zabe2 * pgv(ji,jj,jn) 
    117126                     ENDIF 
     
    128137                     ikv = mikv(ji,jj)  
    129138                     IF( iku == MAX(2,jk) ) THEN  
    130                         zabe1 = fsahtu(ji,jj,iku) * umask(ji,jj,iku) * re2u_e1u(ji,jj) * fse3u_n(ji,jj,iku)  
     139                        zabe1 = zfactor(ji,jj) * fsahtu(ji,jj,iku) * umask(ji,jj,iku) * re2u_e1u(ji,jj) * fse3u_n(ji,jj,iku)  
    131140                        ztu(ji,jj,jk) = zabe1 * pgui(ji,jj,jn)  
    132141                     ENDIF  
    133142                     IF( ikv == MAX(2,jk) ) THEN  
    134                         zabe2 = fsahtv(ji,jj,ikv) * vmask(ji,jj,ikv) * re1v_e2v(ji,jj) * fse3v_n(ji,jj,ikv)  
     143                        zabe2 = zfactor(ji,jj) * fsahtv(ji,jj,ikv) * vmask(ji,jj,ikv) * re1v_e2v(ji,jj) * fse3v_n(ji,jj,ikv)  
    135144                        ztv(ji,jj,jk) = zabe2 * pgvi(ji,jj,jn)  
    136145                     END IF  
Note: See TracChangeset for help on using the changeset viewer.