#2291 closed Defect (fixed)

Bugs with adaptive vertical advection: 2) Interaction with time splitting

Reported by: jchanut Owned by: systeam
Priority: low Milestone:
Component: DYN Version: release-4.0
Severity: minor Keywords:
Cc:

Description

Context

Adaptive (based on courant number) vertical advection, ln_zad_Aimp=.true.

Analysis

With split explicit free surface, vertical velocity is refreshed after completion of the barotropic loop. A new split between implicit and explicit vertical velocities is computed and the "new" implicit vertical velocities are then used to complete momentum vertical advection in dynzdf. It seems to me that one should rather use the initial linear split of vertical velocities.

Recommendation

In step.F90, instead of:

      IF( ln_dynspg_ts ) THEN                         ! vertical scale factors and vertical velocity need to be updated
                            CALL div_hor    ( kstp )              ! Horizontal divergence  (2nd call in time-split case)
         IF(.NOT.ln_linssh) CALL dom_vvl_sf_nxt( kstp, kcall=2 )  ! after vertical scale factors (update depth average component)
                            CALL wzv        ( kstp )              ! now cross-level velocity 
         IF( ln_zad_Aimp )  CALL wAimp      ( kstp )  ! Adaptive-implicit vertical advection partitioning
      ENDIF
                         CALL dyn_zdf       ( kstp )  ! vertical diffusion

rather do:

      IF( ln_dynspg_ts ) THEN                         ! vertical scale factors and vertical velocity need to be updated
                            CALL div_hor    ( kstp )              ! Horizontal divergence  (2nd call in time-split case)
         IF(.NOT.ln_linssh) CALL dom_vvl_sf_nxt( kstp, kcall=2 )  ! after vertical scale factors (update depth average component)
      ENDIF
                         CALL dyn_zdf       ( kstp )  ! vertical diffusion

      IF( ln_dynspg_ts ) THEN                         
                            CALL wzv        ( kstp )              ! now cross-level velocity 
         IF( ln_zad_Aimp )  CALL wAimp      ( kstp )  ! Adaptive-implicit vertical advection partitioning
      ENDIF

Commit History (2)

ChangesetAuthorTimeChangeLog
11288jchanut2019-07-18T12:01:54+02:00

#2291, Adaptive vertical advection: change order of calls with split explicit free surface

11287jchanut2019-07-18T11:54:49+02:00

#2291, Adaptive vertical advection: change order of calls with split explicit free surface

Change History (3)

comment:1 Changed 13 months ago by jchanut

In 11287:

#2291, Adaptive vertical advection: change order of calls with split explicit free surface

comment:2 Changed 13 months ago by jchanut

In 11288:

#2291, Adaptive vertical advection: change order of calls with split explicit free surface

comment:3 Changed 13 months ago by jchanut

  • Resolution set to fixed
  • Status changed from new to closed
Note: See TracTickets for help on using tickets.