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 14225 – NEMO

Changeset 14225


Ignore:
Timestamp:
2020-12-19T15:58:39+01:00 (3 years ago)
Author:
smasson
Message:

trunk: add TSUNAMI test case

Location:
NEMO/trunk
Files:
19 added
4 edited

Legend:

Unmodified
Added
Removed
  • NEMO/trunk/src/OCE/DYN/dynspg.F90

    r14202 r14225  
    5757CONTAINS 
    5858 
    59    SUBROUTINE dyn_spg( kt, Kbb, Kmm, Krhs, puu, pvv, pssh, puu_b, pvv_b, Kaa ) 
     59   SUBROUTINE dyn_spg( kt, Kbb, Kmm, Krhs, puu, pvv, pssh, puu_b, pvv_b, Kaa, k_only_ADV ) 
    6060      !!---------------------------------------------------------------------- 
    6161      !!                  ***  ROUTINE dyn_spg  *** 
     
    7979      REAL(wp), DIMENSION(jpi,jpj,jpk,jpt), INTENT(inout) ::  puu, pvv            ! ocean velocities and RHS of momentum equation 
    8080      REAL(wp), DIMENSION(jpi,jpj,jpt)    , INTENT(inout) ::  pssh, puu_b, pvv_b  ! SSH and barotropic velocities at main time levels 
     81      INTEGER , OPTIONAL                  , INTENT( in )  ::  k_only_ADV          ! only Advection in the RHS 
    8182      ! 
    8283      INTEGER  ::   ji, jj, jk                   ! dummy loop indices 
     
    166167      SELECT CASE ( nspg )                   !== surface pressure gradient computed and add to the general trend ==! 
    167168      CASE ( np_EXP )   ;   CALL dyn_spg_exp( kt,      Kmm,       puu, pvv, Krhs )                    ! explicit 
    168       CASE ( np_TS  )   ;   CALL dyn_spg_ts ( kt, Kbb, Kmm, Krhs, puu, pvv, pssh, puu_b, pvv_b, Kaa ) ! time-splitting 
     169      CASE ( np_TS  )   ;   CALL dyn_spg_ts ( kt, Kbb, Kmm, Krhs, puu, pvv, pssh, puu_b, pvv_b, Kaa, k_only_ADV ) ! time-splitting 
    169170      END SELECT 
    170171      ! 
  • NEMO/trunk/src/OCE/DYN/dynspg_ts.F90

    r14215 r14225  
    117117 
    118118 
    119    SUBROUTINE dyn_spg_ts( kt, Kbb, Kmm, Krhs, puu, pvv, pssh, puu_b, pvv_b, Kaa ) 
     119   SUBROUTINE dyn_spg_ts( kt, Kbb, Kmm, Krhs, puu, pvv, pssh, puu_b, pvv_b, Kaa, k_only_ADV ) 
    120120      !!---------------------------------------------------------------------- 
    121121      !! 
     
    146146      REAL(wp), DIMENSION(jpi,jpj,jpk,jpt), INTENT(inout) ::  puu, pvv            ! ocean velocities and RHS of momentum equation 
    147147      REAL(wp), DIMENSION(jpi,jpj,jpt)    , INTENT(inout) ::  pssh, puu_b, pvv_b  ! SSH and barotropic velocities at main time levels 
     148      INTEGER , OPTIONAL                  , INTENT( in )  ::  k_only_ADV          ! only Advection in the RHS 
    148149      ! 
    149150      INTEGER  ::   ji, jj, jk, jn        ! dummy loop indices 
     
    255256      !                      ! recompute zwz = f/depth  at every time step for (.NOT.ln_linssh) as the water colomn height changes 
    256257      ! 
    257       !                                         !* 2D Coriolis trends 
    258       zhU(:,:) = puu_b(:,:,Kmm) * hu(:,:,Kmm) * e2u(:,:)        ! now fluxes  
    259       zhV(:,:) = pvv_b(:,:,Kmm) * hv(:,:,Kmm) * e1v(:,:)        ! NB: FULL domain : put a value in last row and column 
    260       ! 
    261       CALL dyn_cor_2d( ht(:,:), hu(:,:,Kmm), hv(:,:,Kmm), puu_b(:,:,Kmm), pvv_b(:,:,Kmm), zhU, zhV,  &   ! <<== in 
    262          &                                                                          zu_trd, zv_trd   )   ! ==>> out 
    263       ! 
    264       DO_2D( 0, 0, 0, 0 )                          ! Remove coriolis term (and possibly spg) from barotropic trend 
    265           zu_frc(ji,jj) = zu_frc(ji,jj) - zu_trd(ji,jj) * ssumask(ji,jj) 
    266           zv_frc(ji,jj) = zv_frc(ji,jj) - zv_trd(ji,jj) * ssvmask(ji,jj) 
    267       END_2D 
     258      IF( .NOT. PRESENT(k_only_ADV) ) THEN   !* remove the 2D Coriolis trend   
     259         zhU(:,:) = puu_b(:,:,Kmm) * hu(:,:,Kmm) * e2u(:,:)        ! now fluxes  
     260         zhV(:,:) = pvv_b(:,:,Kmm) * hv(:,:,Kmm) * e1v(:,:)        ! NB: FULL domain : put a value in last row and column 
     261         ! 
     262         CALL dyn_cor_2d( ht(:,:), hu(:,:,Kmm), hv(:,:,Kmm), puu_b(:,:,Kmm), pvv_b(:,:,Kmm), zhU, zhV,  &   ! <<== in 
     263            &                                                                          zu_trd, zv_trd   )   ! ==>> out 
     264         ! 
     265         DO_2D( 0, 0, 0, 0 )                          ! Remove coriolis term (and possibly spg) from barotropic trend 
     266            zu_frc(ji,jj) = zu_frc(ji,jj) - zu_trd(ji,jj) * ssumask(ji,jj) 
     267            zv_frc(ji,jj) = zv_frc(ji,jj) - zv_trd(ji,jj) * ssvmask(ji,jj) 
     268         END_2D 
     269      ENDIF 
    268270      ! 
    269271      !                                   !=  Add bottom stress contribution from baroclinic velocities  =! 
    270272      !                                   !  -----------------------------------------------------------  ! 
    271       CALL dyn_drg_init( Kbb, Kmm, puu, pvv, puu_b ,pvv_b, zu_frc, zv_frc,  zCdU_u, zCdU_v )      ! also provide the barotropic drag coefficients 
     273      IF( PRESENT(k_only_ADV) ) THEN         !* only Advection in the RHS : provide the barotropic bottom drag coefficients 
     274         DO_2D( 0, 0, 0, 0 ) 
     275            zCdU_u(ji,jj) = r1_2*( rCdU_bot(ji+1,jj)+rCdU_bot(ji,jj) ) 
     276            zCdU_v(ji,jj) = r1_2*( rCdU_bot(ji,jj+1)+rCdU_bot(ji,jj) ) 
     277         END_2D 
     278      ELSE                !* remove baroclinic drag AND provide the barotropic drag coefficients 
     279         CALL dyn_drg_init( Kbb, Kmm, puu, pvv, puu_b, pvv_b, zu_frc, zv_frc, zCdU_u, zCdU_v ) 
     280      ENDIF 
    272281      ! 
    273282      !                                   !=  Add atmospheric pressure forcing  =! 
  • NEMO/trunk/tests/README.rst

    r13207 r14225  
    210210| This test case checks the OASIS interface in OCE/SBC, allowing to set up  
    211211a coupled configuration through OASIS. See CPL_OASIS/README.md for more information. 
     212 
     213TSUNAMI 
     214--------- 
     215| just use dynspg_ts to simulate the propagation of an ssh anomaly (cosinus) in a box configuration 
     216with flat bottom and jpk=2 
  • NEMO/trunk/tests/demo_cfgs.txt

    r14086 r14225  
    1616ICE_RHEO OCE SAS ICE 
    1717DOME OCE NST 
     18TSUNAMI OCE 
Note: See TracChangeset for help on using the changeset viewer.