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 11769 for NEMO/branches/2019/dev_r11233_AGRIF-05_jchanut_vert_coord_interp/src/NST/agrif_top_sponge.F90 – NEMO

Ignore:
Timestamp:
2019-10-23T12:08:33+02:00 (4 years ago)
Author:
jchanut
Message:

#2222 1) change sponge definition to add time relaxation in addition to Laplacian diffusion (WRF like): Add new parameters in namelist.
2) Reduce sponge width by 1 child grid point to match coarse grid cells.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • NEMO/branches/2019/dev_r11233_AGRIF-05_jchanut_vert_coord_interp/src/NST/agrif_top_sponge.F90

    r11625 r11769  
    6767      ! 
    6868      INTEGER  ::   ji, jj, jk, jn   ! dummy loop indices 
    69       REAL(wp) ::   zabe1, zabe2 
     69      REAL(wp) ::   zabe1, zabe2, ztrelax 
    7070      REAL(wp), DIMENSION(i1:i2,j1:j2)               ::   ztu, ztv 
    7171      REAL(wp), DIMENSION(i1:i2,j1:j2,k1:k2,1:jptra) ::   trbdiff 
     
    136136         ENDDO 
    137137 
     138         !* set relaxation time scale 
     139         IF( neuler == 0 .AND. lk_agrif_fstep ) THEN   ;   ztrelax =   rn_trelax_tra  / (        rdt ) 
     140         ELSE                                          ;   ztrelax =   rn_trelax_tra  / (2._wp * rdt ) 
     141         ENDIF 
     142 
    138143         DO jn = 1, jptra 
    139144            DO jk = 1, jpkm1 
    140145               DO jj = j1,j2-1 
    141146                  DO ji = i1,i2-1 
    142                      zabe1 = fsaht_spu(ji,jj) * e2_e1u(ji,jj) * e3u_n(ji,jj,jk) * umask(ji,jj,jk) 
    143                      zabe2 = fsaht_spv(ji,jj) * e1_e2v(ji,jj) * e3v_n(ji,jj,jk) * vmask(ji,jj,jk) 
     147                     zabe1 = rn_sponge_tra * fspu(ji,jj) * e2_e1u(ji,jj) * e3u_n(ji,jj,jk) * umask(ji,jj,jk) 
     148                     zabe2 = rn_sponge_tra * fspv(ji,jj) * e1_e2v(ji,jj) * e3v_n(ji,jj,jk) * vmask(ji,jj,jk) 
    144149                     ztu(ji,jj) = zabe1 * ( trbdiff(ji+1,jj  ,jk,jn) - trbdiff(ji,jj,jk,jn) ) 
    145150                     ztv(ji,jj) = zabe2 * ( trbdiff(ji  ,jj+1,jk,jn) - trbdiff(ji,jj,jk,jn) ) 
     
    152157                        tra(ji,jj,jk,jn) = tra(ji,jj,jk,jn) + (  ztu(ji,jj) - ztu(ji-1,jj  )     & 
    153158                           &                                   + ztv(ji,jj) - ztv(ji  ,jj-1)  )  & 
    154                            &                                * r1_e1e2t(ji,jj) / e3t_n(ji,jj,jk) 
     159                           &                                * r1_e1e2t(ji,jj) / e3t_n(ji,jj,jk)  & 
     160                           &                                - ztrelax * fspt(ji,jj) * trbdiff(ji,jj,jk,jn) 
    155161                     ENDIF 
    156162                  END DO 
Note: See TracChangeset for help on using the changeset viewer.