@@ -175,7 +175,8 @@ module MOM_dynamics_split_RK2b
175
175
logical :: debug_OBC ! < If true, do debugging calls for open boundary conditions.
176
176
logical :: fpmix = .false. ! < If true, applies profiles of momentum flux magnitude and direction.
177
177
logical :: module_is_initialized = .false. ! < Record whether this module has been initialized.
178
- logical :: visc_rem_dt_fix = .false. ! <If true, use dt rather than dt_pred for vertvisc_rem at the end of predictor.
178
+ logical :: visc_rem_dt_bug = .true. ! < If true, recover a bug that uses dt_pred rather than dt for vertvisc_rem
179
+ ! ! at the end of predictor.
179
180
180
181
! >@{ Diagnostic IDs
181
182
! integer :: id_uold = -1, id_vold = -1
@@ -754,10 +755,10 @@ subroutine step_MOM_dyn_split_RK2b(u_av, v_av, h, tv, visc, Time_local, dt, forc
754
755
call start_group_pass(CS% pass_uvp, G% Domain, clock= id_clock_pass)
755
756
call cpu_clock_begin(id_clock_vertvisc)
756
757
endif
757
- if (CS% visc_rem_dt_fix) then
758
- call vertvisc_remnant(visc, CS% visc_rem_u, CS% visc_rem_v, dt, G, GV, US, CS% vertvisc_CSp)
759
- else
758
+ if (CS% visc_rem_dt_bug) then
760
759
call vertvisc_remnant(visc, CS% visc_rem_u, CS% visc_rem_v, dt_pred, G, GV, US, CS% vertvisc_CSp)
760
+ else
761
+ call vertvisc_remnant(visc, CS% visc_rem_u, CS% visc_rem_v, dt, G, GV, US, CS% vertvisc_CSp)
761
762
endif
762
763
call cpu_clock_end(id_clock_vertvisc)
763
764
@@ -1355,16 +1356,15 @@ subroutine initialize_dyn_split_RK2b(u, v, h, tv, uh, vh, eta, Time, G, GV, US,
1355
1356
default= .false. )
1356
1357
call get_param(param_file, mdl, " VISC_REM_BUG" , visc_rem_bug, &
1357
1358
" If true, visc_rem_[uv] in split mode is incorrectly calculated or accounted " // &
1358
- " for in three places. This parameter controls the defaults of three individual " // &
1359
- " flags, VISC_REM_TIMESTEP_FIX in MOM_dynamics_split_RK2(b), " // &
1360
- " VISC_REM_BT_WEIGHT_FIX in MOM_barotropic, and VISC_REM_CONT_HVEL_FIX in " // &
1361
- " MOM_continuity_PPM. Eventually, the three individual flags should be removed " // &
1362
- " after tests and the default of VISC_REM_BUG should be to False." , default= .true. )
1363
- call get_param(param_file, mdl, " VISC_REM_TIMESTEP_FIX" , CS% visc_rem_dt_fix, &
1364
- " If true, use dt rather than dt_pred in vertvisc_remnant() at the end of " // &
1365
- " predictor stage for the following continuity() call and btstep() call " // &
1366
- " in the corrector step. Default of this flag is set by VISC_REM_BUG. " // &
1367
- " This flag should be used with VISC_REM_BT_WEIGHT_FIX." , default= .not. visc_rem_bug)
1359
+ " for in two places. This parameter controls the defaults of two individual " // &
1360
+ " flags, VISC_REM_TIMESTEP_BUG in MOM_dynamics_split_RK2(b) and " // &
1361
+ " VISC_REM_BT_WEIGHT_BUG in MOM_barotropic." , default= .true. )
1362
+ call get_param(param_file, mdl, " VISC_REM_TIMESTEP_BUG" , CS% visc_rem_dt_bug, &
1363
+ " If true, recover a bug that uses dt_pred rather than dt in " // &
1364
+ " vertvisc_remnant() at the end of predictor stage for the following " // &
1365
+ " continuity() and btstep() calls in the corrector step. Default of this flag " // &
1366
+ " is set by VISC_REM_BUG" , default= visc_rem_bug)
1367
+
1368
1368
1369
1369
allocate (CS% taux_bot(IsdB:IedB,jsd:jed), source= 0.0 )
1370
1370
allocate (CS% tauy_bot(isd:ied,JsdB:JedB), source= 0.0 )
0 commit comments