Changeset 14225
- Timestamp:
- 2020-12-19T15:58:39+01:00 (3 years ago)
- Location:
- NEMO/trunk
- Files:
-
- 19 added
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/trunk/src/OCE/DYN/dynspg.F90
r14202 r14225 57 57 CONTAINS 58 58 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 ) 60 60 !!---------------------------------------------------------------------- 61 61 !! *** ROUTINE dyn_spg *** … … 79 79 REAL(wp), DIMENSION(jpi,jpj,jpk,jpt), INTENT(inout) :: puu, pvv ! ocean velocities and RHS of momentum equation 80 80 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 81 82 ! 82 83 INTEGER :: ji, jj, jk ! dummy loop indices … … 166 167 SELECT CASE ( nspg ) !== surface pressure gradient computed and add to the general trend ==! 167 168 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-splitting169 CASE ( np_TS ) ; CALL dyn_spg_ts ( kt, Kbb, Kmm, Krhs, puu, pvv, pssh, puu_b, pvv_b, Kaa, k_only_ADV ) ! time-splitting 169 170 END SELECT 170 171 ! -
NEMO/trunk/src/OCE/DYN/dynspg_ts.F90
r14215 r14225 117 117 118 118 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 ) 120 120 !!---------------------------------------------------------------------- 121 121 !! … … 146 146 REAL(wp), DIMENSION(jpi,jpj,jpk,jpt), INTENT(inout) :: puu, pvv ! ocean velocities and RHS of momentum equation 147 147 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 148 149 ! 149 150 INTEGER :: ji, jj, jk, jn ! dummy loop indices … … 255 256 ! ! recompute zwz = f/depth at every time step for (.NOT.ln_linssh) as the water colomn height changes 256 257 ! 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 268 270 ! 269 271 ! != Add bottom stress contribution from baroclinic velocities =! 270 272 ! ! ----------------------------------------------------------- ! 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 272 281 ! 273 282 ! != Add atmospheric pressure forcing =! -
NEMO/trunk/tests/README.rst
r13207 r14225 210 210 | This test case checks the OASIS interface in OCE/SBC, allowing to set up 211 211 a coupled configuration through OASIS. See CPL_OASIS/README.md for more information. 212 213 TSUNAMI 214 --------- 215 | just use dynspg_ts to simulate the propagation of an ssh anomaly (cosinus) in a box configuration 216 with flat bottom and jpk=2 -
NEMO/trunk/tests/demo_cfgs.txt
r14086 r14225 16 16 ICE_RHEO OCE SAS ICE 17 17 DOME OCE NST 18 TSUNAMI OCE
Note: See TracChangeset
for help on using the changeset viewer.