id,summary,reporter,owner,description,type,status,priority,milestone,component,version,severity,resolution,keywords,cc 2291,Bugs with adaptive vertical advection: 2) Interaction with time splitting,jchanut,systeam,"==== 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 }}} ",Defect,closed,low,,DYN,v4.0,minor,fixed,v4.0,