ufs-community / ufs-weather-model

UFS Weather Model
Other
142 stars 248 forks source link

SEDI_SEMI incorrectly halves DT_ATMOS in tests/default_vars.sh #2496

Open NickSzapiro-NOAA opened 1 week ago

NickSzapiro-NOAA commented 1 week ago

Description

Currently in default_vars.sh#L1178: if [[ ${SEDI_SEMI} = .true. ]]; then export DT_ATMOS=$((DT_ATMOS/2)); fi

Presumably, semi-Lagrangian method should have a longer timestep, not shorter. This also conflicts with what's in global-workflow config.fcst#L210-L212

export dt_inner=$((DELTIM/2))
export sedi_semi=.true.
if [[ "${sedi_semi}" == .true. ]]; then export dt_inner=${DELTIM} ; fi

In default_vars, maybe the corresponding implementation is: if [[ ${SEDI_SEMI} = .false. ]]; then export DT_INNER=$((DT_ATMOS/2)); fi

This bug would increase test wallclock for tests calling export_ugwpv1() @dpsarmie @BrianCurtis-NOAA @DeniseWorthen @junwang-noaa @jkbk2004 Any adjusted k_split, n_split we're running should be revisited too

DeniseWorthen commented 4 days ago

I noticed a secondary issue w/rt the DT settings. WW3 gets it's timestep length from the binary mod_def file. When WW3 is in the fast loop, if ATM and ICE are at 360 (like now), WAV is still at 720.

I'm really not sure we're doing in that case....WAV will integrate to the end of it's global (dtmax) timestep, which is 720 and won't return from the model Advance until then. But ATM and ICE are trying to chug along at DT 360, sending fields at that frequency?