NOAA-EMC / global-workflow

Global Superstructure/Workflow supporting the Global Forecast System (GFS)
https://global-workflow.readthedocs.io/en/latest
GNU Lesser General Public License v3.0
74 stars 166 forks source link

Forecast segments do not increase monotonically #2930

Closed benjamin-cash closed 1 day ago

benjamin-cash commented 1 day ago

What is wrong?

Hi @WalterKolczynski-NOAA - I am back to trying to set up a run on Hercules, and I am still getting the following error:

[cash@hercules-login-3 workflow]$ ./setup_xml.py /work/noaa/nems/cash/UFS-coupled/C96_19940501 Traceback (most recent call last): File "/work/noaa/nems/cash/global-workflow/workflow/./setup_xml.py", line 79, in main() File "/work/noaa/nems/cash/global-workflow/workflow/./setup_xml.py", line 70, in main app_config = app_configfactory.create(f'{net}{mode}', cfg) File "/home/cash/.local/lib/python3.10/site-packages/wxflow/factory.py", line 71, in create return self._builders[key](*args, *kwargs) File "/work/noaa/nems/cash/global-workflow/workflow/applications/applications.py", line 21, in call obj = type.call(cls, args, **kwargs) File "/work/noaa/nems/cash/global-workflow/workflow/applications/gefs.py", line 11, in init super().init(conf) File "/work/noaa/nems/cash/global-workflow/workflow/applications/applications.py", line 73, in init raise ValueError(f'Forecast segments do not increase monotonically: {",".join(self.fcst_segments)}') ValueError: Forecast segments do not increase monotonically: 0,,,4,8,,,1,2,0 My experiment setup command was: [cash@hercules-login-3 workflow]$ ./setup_expt.py gefs forecast-only --idate 19940501 --edate 19940502 --app S2S --start cold --gfs_cyc 1 --resdetatmos 96 --resensatmos 96 --resensatmos 96 --resdetocean 1 --comroot /work/noaa/nems/cash/UFS-coupled/comrot --expdir /work/noaa/nems/cash/UFS-coupled --nens 10 --pslot C96_19940501

What should have happened?

./setup_xml should have run to completion.

What machines are impacted?

Hercules

Steps to reproduce

  1. ./setup_expt.py gefs forecast-only --idate 19940501 --edate 19940502 --app S2S --start cold --gfs_cyc 1 --resdetatmos 96 --resensatmos 96 --resensatmos 96 --resdetocean 1 --comroot /work/noaa/nems/cash/UFS-coupled/comrot --expdir /work/noaa/nems/cash/UFS-coupled --nens 10 --pslot C96_1994050
  2. ./setup_xml.py /work/noaa/nems/cash/UFS-coupled/C96_19940501

Additional information

This is a problem I saw previously on Hercules.

Do you have a proposed solution?

No response

WalterKolczynski-NOAA commented 1 day ago

First problem is your idate and edate do not have a HH at the end. Format is YYYYMMDDHH.

benjamin-cash commented 1 day ago

HI @WalterKolczynski-NOAA - Thanks for catching that! I fixed that but the error did not resolve.

WalterKolczynski-NOAA commented 1 day ago

Is this a fresh clone of global-workflow?

benjamin-cash commented 1 day ago

No, but it is something I pulled fairly recently. The fix is relatively simple, I just removed FCST_SEGMENTS in config.base:

Original

# GFS output and frequency
export FHMIN_GFS=0
export FHMAX_GFS="120"
# Intermediate times to stop forecast when running in segments
breakpnts="48"
export FCST_SEGMENTS="${FHMIN_GFS},${breakpnts:+${breakpnts},}${FHMAX_GFS}"

Fix

# Intermediate times to stop forecast when running in segments
breakpnts="48"
#export FCST_SEGMENTS="${FHMIN_GFS},${breakpnts:+${breakpnts},}${FHMAX_GFS}"
export FCST_SEGMENTS=""

It looks that line in applications.py is joining each element of "0,48,120" together with a comma to get "0,,,4,8,,,1,2,0"

WalterKolczynski-NOAA commented 1 day ago

That's not really a fix, it is just ignoring the problem.

Can you build current develop, rather than your own branch?

benjamin-cash commented 1 day ago

Hi @WalterKolczynski-NOAA - Will do. Out of curiosity, does FCST_SEGMENTS look different in your own config.base?

benjamin-cash commented 1 day ago

Appears to have been a module issue, closing.