From 5c46c2bc1de27fb46dd6c308eda05d7508edec1a Mon Sep 17 00:00:00 2001 From: Sibylle TECHENE <techenes@irene192.c-irene.tgcc.ccc.cea.fr> Date: Fri, 11 Feb 2022 11:47:44 +0100 Subject: [PATCH] correct coriolis management to go from barocline mode to barotrope mode --- src/OCE/DYN/dynspg_ts.F90 | 16 +++++++++++++++- src/OCE/stp2d.F90 | 13 ++++--------- 2 files changed, 19 insertions(+), 10 deletions(-) diff --git a/src/OCE/DYN/dynspg_ts.F90 b/src/OCE/DYN/dynspg_ts.F90 index db3a442a..3beee827 100644 --- a/src/OCE/DYN/dynspg_ts.F90 +++ b/src/OCE/DYN/dynspg_ts.F90 @@ -247,10 +247,24 @@ CONTAINS zCdU_v (:,:) = CdU_v (:,:) !!gm ==>>> !!ts ISSUe her on en discute changer les cas ENS ENE et triad ? + ! + ! != remove 2D Coriolis trend =! + ! ! -------------------------- ! + ! IF( kt == nit000 .OR. .NOT. ln_linssh ) CALL dyn_cor_2D_init( Kmm ) ! Set zwz, the barotropic Coriolis force coefficient ! ! recompute zwz = f/depth at every time step for (.NOT.ln_linssh) as the water colomn height changes ! - + zhU(:,:) = puu_b(:,:,Kmm) * hu(:,:,Kmm) * e2u(:,:) ! now fluxes + zhV(:,:) = pvv_b(:,:,Kmm) * hv(:,:,Kmm) * e1v(:,:) ! NB: FULL domain : put a value in last row and column + ! + CALL dyn_cor_2D( ht(:,:), hu(:,:,Kmm), hv(:,:,Kmm), puu_b(:,:,Kmm), pvv_b(:,:,Kmm), zhU, zhV, & ! <<== in + & zu_trd, zv_trd ) ! ==>> out + ! + DO_2D( 0, 0, 0, 0 ) ! Remove coriolis term (and possibly spg) from barotropic trend + zu_frc(ji,jj) = zu_frc(ji,jj) - zu_trd(ji,jj) * ssumask(ji,jj) + zv_frc(ji,jj) = zv_frc(ji,jj) - zv_trd(ji,jj) * ssvmask(ji,jj) + END_2D + #else ! !========================================! ! !== Phase 1 for MLF time integration ==! diff --git a/src/OCE/stp2d.F90 b/src/OCE/stp2d.F90 index 3f3db5de..0cea844f 100644 --- a/src/OCE/stp2d.F90 +++ b/src/OCE/stp2d.F90 @@ -109,16 +109,12 @@ CONTAINS uu(:,:,:,Krhs) = 0._wp ! set dynamics trends to zero vv(:,:,:,Krhs) = 0._wp ! - ! !* compute advection *! + ! !* compute advection + coriolis *! ! - CALL dyn_adv( kstp, Kbb, Kbb , uu, vv, Krhs) !- vector form KEG+ZAD + CALL dyn_adv( kt, Kbb, Kbb , uu, vv, Krhs) !- vector form KEG+ZAD ! !- flux form ADV - SELECT CASE( n_dynadv ) - CASE( np_VEC_c2 ) !- vector form (add relative vorticity term) - CALL dyn_vor( kt, Kbb, uu, vv, Krhs, np_RVO ) - CASE( np_FLX_c2 , np_FLX_ubs ) !- flux form (add metric term) - CALL dyn_vor ( kt , Kbb, uu, vv, Krhs, np_MET ) - END SELECT + CALL dyn_vor( kt, Kbb, uu, vv, Krhs ) !- vector form COR+RVO + ! !- flux form COR+MET ! ! !* lateral viscosity *! CALL dyn_ldf( kt, Kbb, Kbb, uu, vv, Krhs ) @@ -145,7 +141,6 @@ CONTAINS CALL dyn_drg_init( Kbb, Kbb, uu, vv, uu_b, vv_b, Ue_rhs, Ve_rhs, CdU_u, CdU_v ) ! ! !* wind forcing *! -!!st ATTENTION stoke drift !! IF( ln_bt_fw ) THEN DO_2D( 0, 0, 0, 0 ) Ue_rhs(ji,jj) = Ue_rhs(ji,jj) + r1_rho0 * utau(ji,jj) * r1_hu(ji,jj,Kbb) -- GitLab