@@ -314,8 +314,6 @@ module MOM
314
314
logical :: useMEKE ! < If true, call the MEKE parameterization.
315
315
logical :: use_stochastic_EOS ! < If true, use the stochastic EOS parameterizations.
316
316
logical :: useWaves ! < If true, update Stokes drift
317
- logical :: use_diabatic_time_bug ! < If true, uses the wrong calendar time for diabatic processes,
318
- ! ! as was done in MOM6 versions prior to February 2018.
319
317
real :: dtbt_reset_period ! < The time interval between dynamic recalculation of the
320
318
! ! barotropic time step [T ~> s]. If this is negative dtbt is never
321
319
! ! calculated, and if it is 0, dtbt is calculated every step.
@@ -840,15 +838,9 @@ subroutine step_MOM(forces_in, fluxes_in, sfc_state, Time_start, time_int_in, CS
840
838
841
839
rel_time = 0.0
842
840
do n= 1 ,n_max
843
- if (CS% use_diabatic_time_bug) then
844
- ! This wrong form of update was used until Feb 2018, recovered with CS%use_diabatic_time_bug=T.
845
- CS% Time = Time_start + real_to_time(US% T_to_s* int (floor (rel_time+0.5 * dt+0.5 )))
846
- rel_time = rel_time + dt
847
- else
848
- rel_time = rel_time + dt ! The relative time at the end of the step.
849
- ! Set the universally visible time to the middle of the time step.
850
- CS% Time = Time_start + real_to_time(US% T_to_s* (rel_time - 0.5 * dt))
851
- endif
841
+ rel_time = rel_time + dt ! The relative time at the end of the step.
842
+ ! Set the universally visible time to the middle of the time step.
843
+ CS% Time = Time_start + real_to_time(US% T_to_s* (rel_time - 0.5 * dt))
852
844
! Set the local time to the end of the time step.
853
845
Time_local = Time_start + real_to_time(US% T_to_s* rel_time)
854
846
@@ -878,16 +870,12 @@ subroutine step_MOM(forces_in, fluxes_in, sfc_state, Time_start, time_int_in, CS
878
870
endif
879
871
880
872
end_time_thermo = Time_local
881
- if (dtdia > dt .and. .not. CS % use_diabatic_time_bug ) then
873
+ if (dtdia > dt) then
882
874
! If necessary, temporarily reset CS%Time to the center of the period covered
883
875
! by the call to step_MOM_thermo, noting that they begin at the same time.
884
- ! This step was missing prior to Feb 2018, and is skipped with CS%use_diabatic_time_bug=T.
885
876
CS% Time = CS% Time + real_to_time(0.5 * US% T_to_s* (dtdia- dt))
886
- endif
887
- if (dtdia > dt .or. CS% use_diabatic_time_bug) then
888
877
! The end-time of the diagnostic interval needs to be set ahead if there
889
878
! are multiple dynamic time steps worth of thermodynamics applied here.
890
- ! This line was not conditional prior to Feb 2018, recovered with CS%use_diabatic_time_bug=T.
891
879
end_time_thermo = Time_local + real_to_time(US% T_to_s* (dtdia- dt))
892
880
endif
893
881
@@ -903,8 +891,7 @@ subroutine step_MOM(forces_in, fluxes_in, sfc_state, Time_start, time_int_in, CS
903
891
CS% t_dyn_rel_thermo = - dtdia
904
892
if (showCallTree) call callTree_waypoint(" finished diabatic_first (step_MOM)" )
905
893
906
- if (dtdia > dt .and. .not. CS% use_diabatic_time_bug) & ! Reset CS%Time to its previous value.
907
- ! This step was missing prior to Feb 2018, recovered with CS%use_diabatic_time_bug=T.
894
+ if (dtdia > dt) & ! Reset CS%Time to its previous value.
908
895
CS% Time = Time_start + real_to_time(US% T_to_s* (rel_time - 0.5 * dt))
909
896
endif ! end of block "(CS%diabatic_first .and. (CS%t_dyn_rel_adv==0.0))"
910
897
@@ -1004,8 +991,7 @@ subroutine step_MOM(forces_in, fluxes_in, sfc_state, Time_start, time_int_in, CS
1004
991
1005
992
! If necessary, temporarily reset CS%Time to the center of the period covered
1006
993
! by the call to step_MOM_thermo, noting that they end at the same time.
1007
- ! This step was missing prior to Feb 2018, and is skipped with CS%use_diabatic_time_bug=T.
1008
- if (dtdia > dt .and. .not. CS% use_diabatic_time_bug) &
994
+ if (dtdia > dt) &
1009
995
CS% Time = CS% Time - real_to_time(0.5 * US% T_to_s* (dtdia- dt))
1010
996
1011
997
! Apply diabatic forcing, do mixing, and regrid.
@@ -1024,8 +1010,7 @@ subroutine step_MOM(forces_in, fluxes_in, sfc_state, Time_start, time_int_in, CS
1024
1010
endif
1025
1011
1026
1012
! Reset CS%Time to its previous value.
1027
- ! This step was missing prior to Feb 2018, and is skipped with CS%use_diabatic_time_bug=T.
1028
- if (dtdia > dt .and. .not. CS% use_diabatic_time_bug) &
1013
+ if (dtdia > dt) &
1029
1014
CS% Time = Time_start + real_to_time(US% T_to_s* (rel_time - 0.5 * dt))
1030
1015
endif
1031
1016
@@ -2733,11 +2718,6 @@ subroutine initialize_MOM(Time, Time_init, param_file, dirs, CS, &
2733
2718
default= default_answer_date, do_not_log= non_Bous)
2734
2719
if (non_Bous) CS% answer_date = 99991231
2735
2720
2736
- call get_param(param_file, " MOM" , " USE_DIABATIC_TIME_BUG" , CS% use_diabatic_time_bug, &
2737
- " If true, uses the wrong calendar time for diabatic processes, as was " // &
2738
- " done in MOM6 versions prior to February 2018. This is not recommended." , &
2739
- default= .false. )
2740
-
2741
2721
call get_param(param_file, " MOM" , " SAVE_INITIAL_CONDS" , save_IC, &
2742
2722
" If true, write the initial conditions to a file given " // &
2743
2723
" by IC_OUTPUT_FILE." , default= .false. )
0 commit comments