Skip to content

Change the UI for run_towers #2943

Open
@ekluzek

Description

#2406 brings in some changes that allow PLUMBER2 sites as well as NEON sites to be run from the run_towers script. @adrifoster @TeaganKing and I met and we envisioned using the same pattern as we have in subset data, where there is a positional argument to give the type of site that will be run (currently only neon or plumber). Then there can be different options for each, and eventually other types can be added:

So the --help might look something like:

./run_tower --help
usage: run_tower [-h] [-d] [-v] [-s] 
                 [--base-case BASE_CASE_ROOT] [--output-root OUTPUT_ROOT]
                 [--overwrite] [--setup-only] [--rerun] [--no-batch]
                 [--run-type {ad,postad,transient}] [--prism]
                 [--experiment EXPERIMENT] [--run-from-postad]

                <type> 
                 type == neon options:
                 [--sites {ABBY,BARR,BART,BLAN,BONA,CLBJ,CPER,DCFS,DEJU,DELA,DSNY,GRSM,GUAN,HARV,HEAL,JERC,JORN,KONA,KONZ,LAJA,LENO,MLBS,MOAB,NIWO,NOGP,OAES,ONAQ,ORNL,OSBS,PUUM,RMNP,SCBI,SERC,SJER,SOAP,SRER,STEI,STER,TALL,TEAK,TOOL,TREE,UKFS,UNDE,WOOD,WREF,YELL,all,None} [{ABBY,BARR,BART,BLAN,BONA,CLBJ,CPER,DCFS,DEJU,DELA,DSNY,GRSM,GUAN,HARV,HEAL,JERC,JORN,KONA,KONZ,LAJA,LENO,MLBS,MOAB,NIWO,NOGP,OAES,ONAQ,ORNL,OSBS,PUUM,RMNP,SCBI,SERC,SJER,SOAP,SRER,STEI,STER,TALL,TEAK,TOOL,TREE,UKFS,UNDE,WOOD,WREF,YELL,all,None} ...]
                 [--prism]
                  [--version {v1,v2,v3}]

                 type == plumber options:
                 [--sites {AR-SLu,AT-Neu,AU-ASM,AU-Cow,AU-Cpr,AU-Ctr,AU-Cum,AU-DaP,AU-DaS,AU-Dry,AU-Emr,AU-GWW,AU-Gin,AU-How,AU-Lit,AU-Otw,AU-Rig,AU-Rob,AU-Sam,AU-Stp,AU-TTE,AU-Tum,AU-Whr,AU-Wrr,AU-Ync,BE-Bra,BE-Lon,BE-Vie,BR-Sa3,BW-Ma1,CA-NS1,CA-NS2,CA-NS4,CA-NS5,CA-NS6,CA-NS7,CA-Qcu,CA-Qfo,CA-SF1,CA-SF2,CA-SF3,CH-Cha,CH-Dav,CH-Fru,CH-Oe1,CN-Cha,CN-Cng,CN-Dan,CN-Din,CN-Du2,CN-HaM,CN-Qia,CZ-wet,DE-Bay,DE-Geb,DE-Gri,DE-Hai,DE-Kli,DE-Meh,DE-Obe,DE-Seh,DE-SfN,DE-Tha,DE-Wet,DK-Fou,DK-Lva,DK-Ris,DK-Sor,DK-ZaH,ES-ES1,ES-ES2,ES-LMa,ES-LgS,ES-VDA,FI-Hyy,FI-Kaa,FI-Lom,FI-Sod,FR-Fon,FR-Gri,FR-Hes,FR-LBr,FR-Lq1,FR-Lq2,FR-Pue,GF-Guy,HU-Bug,ID-Pag,IE-Ca1,IE-Dri,IT-Amp,IT-BCi,IT-CA1,IT-CA2,IT-CA3,IT-Col,IT-Cpz,IT-Isp,IT-LMa,IT-Lav,IT-MBo,IT-Mal,IT-Noe,IT-Non,IT-PT1,IT-Ren,IT-Ro1,IT-Ro2,IT-SR2,IT-SRo,JP-SMF,NL-Ca1,NL-Hor,NL-Loo,PL-wet,PT-Esp,PT-Mi1,PT-Mi2,RU-Che,RU-Fyo,RU-Zot,SD-Dem,SE-Deg,UK-Gri,UK-Ham,UK-PL3,US-AR1,US-AR2,US-ARM,US-Aud,US-Bar,US-Bkg,US-Blo,US-Bo1,US-Cop,US-FPe,US-GLE,US-Goo,US-Ha1,US-Ho1,US-KS2,US-Los,US-MMS,US-MOz,US-Me2,US-Me4,US-Me6,US-Myb,US-NR1,US-Ne1,US-Ne2,US-Ne3,US-PFa,US-Prr,US-SP1,US-SP2,US-SP3,US-SRG,US-SRM,US-Syv,US-Ton,US-Tw4,US-Twt,US-UMB,US-Var,US-WCr,US-Whs,US-Wkg,ZA-Kru,ZM-Mon,all,None} [{AR-SLu,AT-Neu,AU-ASM,AU-Cow,AU-Cpr,AU-Ctr,AU-Cum,AU-DaP,AU-DaS,AU-Dry,AU-Emr,AU-GWW,AU-Gin,AU-How,AU-Lit,AU-Otw,AU-Rig,AU-Rob,AU-Sam,AU-Stp,AU-TTE,AU-Tum,AU-Whr,AU-Wrr,AU-Ync,BE-Bra,BE-Lon,BE-Vie,BR-Sa3,BW-Ma1,CA-NS1,CA-NS2,CA-NS4,CA-NS5,CA-NS6,CA-NS7,CA-Qcu,CA-Qfo,CA-SF1,CA-SF2,CA-SF3,CH-Cha,CH-Dav,CH-Fru,CH-Oe1,CN-Cha,CN-Cng,CN-Dan,CN-Din,CN-Du2,CN-HaM,CN-Qia,CZ-wet,DE-Bay,DE-Geb,DE-Gri,DE-Hai,DE-Kli,DE-Meh,DE-Obe,DE-Seh,DE-SfN,DE-Tha,DE-Wet,DK-Fou,DK-Lva,DK-Ris,DK-Sor,DK-ZaH,ES-ES1,ES-ES2,ES-LMa,ES-LgS,ES-VDA,FI-Hyy,FI-Kaa,FI-Lom,FI-Sod,FR-Fon,FR-Gri,FR-Hes,FR-LBr,FR-Lq1,FR-Lq2,FR-Pue,GF-Guy,HU-Bug,ID-Pag,IE-Ca1,IE-Dri,IT-Amp,IT-BCi,IT-CA1,IT-CA2,IT-CA3,IT-Col,IT-Cpz,IT-Isp,IT-LMa,IT-Lav,IT-MBo,IT-Mal,IT-Noe,IT-Non,IT-PT1,IT-Ren,IT-Ro1,IT-Ro2,IT-SR2,IT-SRo,JP-SMF,NL-Ca1,NL-Hor,NL-Loo,PL-wet,PT-Esp,PT-Mi1,PT-Mi2,RU-Che,RU-Fyo,RU-Zot,SD-Dem,SE-Deg,UK-Gri,UK-Ham,UK-PL3,US-AR1,US-AR2,US-ARM,US-Aud,US-Bar,US-Bkg,US-Blo,US-Bo1,US-Cop,US-FPe,US-GLE,US-Goo,US-Ha1,US-Ho1,US-KS2,US-Los,US-MMS,US-MOz,US-Me2,US-Me4,US-Me6,US-Myb,US-NR1,US-Ne1,US-Ne2,US-Ne3,US-PFa,US-Prr,US-SP1,US-SP2,US-SP3,US-SRG,US-SRM,US-Syv,US-Ton,US-Tw4,US-Twt,US-UMB,US-Var,US-WCr,US-Whs,US-Wkg,ZA-Kru,ZM-Mon,all,None} ...]]

This script first creates and builds a generic base case.
Next, it will clone the base_case for different neon sites and run
types to reduce the need to build ctsm everytime.

This script will do the following:
    1) Create a generic base case for cloning.
    2) Make the case for the specific neon site(s).
    3) Make changes to the case, for:
        a. AD spinup
        b. post-AD spinup
        c. transient
        #---------------
        d. SASU or Matrix spinup
    4) Build and submit the case.

----------------------------------------------------------------
To see all available options for running tower sites:
    ./run_tower --help
----------------------------------------------------------------
Instructions for running using conda python environments:
../../py_env_create
conda activate ctsm_pylib

optional arguments:
  -h, --help            show this help message and exit


NEON optional arguments:
  --prism          Uses the PRISM reanaylsis precipitation data for the
                        site instead of the NEON data (only available over
                        Continental US)
  --version {v1,v2,v3}
                        Neon data version to use for this simulation.
                        [default: use the latest data available]
  -sites {ABBY,BARR,BART,BLAN,BONA,CLBJ,CPER,DCFS,DEJU,DELA,DSNY,GRSM,GUAN,HARV,HEAL,JERC,JORN,KONA,KONZ,LAJA,LENO,MLBS,MOAB,NIWO,NOGP,OAES,ONAQ,ORNL,OSBS,PUUM,RMNP,SCBI,SERC,SJER,SOAP,SRER,STEI,STER,TALL,TEAK,TOOL,TREE,UKFS,UNDE,WOOD,WREF,YELL,all,None} [{ABBY,BARR,BART,BLAN,BONA,CLBJ,CPER,DCFS,DEJU,DELA,DSNY,GRSM,GUAN,HARV,HEAL,JERC,JORN,KONA,KONZ,LAJA,LENO,MLBS,MOAB,NIWO,NOGP,OAES,ONAQ,ORNL,OSBS,PUUM,RMNP,SCBI,SERC,SJER,SOAP,SRER,STEI,STER,TALL,TEAK,TOOL,TREE,UKFS,UNDE,WOOD,WREF,YELL,all,None} ...]
                        4-letter neon site code.

PLUMBER2 optional arguments:
  --sites {AR-SLu,AT-Neu,AU-ASM,AU-Cow,AU-Cpr,AU-Ctr,AU-Cum,AU-DaP,AU-DaS,AU-Dry,AU-Emr,AU-GWW,AU-Gin,AU-How,AU-Lit,AU-Otw,AU-Rig,AU-Rob,AU-Sam,AU-Stp,AU-TTE,AU-Tum,AU-Whr,AU-Wrr,AU-Ync,BE-Bra,BE-Lon,BE-Vie,BR-Sa3,BW-Ma1,CA-NS1,CA-NS2,CA-NS4,CA-NS5,CA-NS6,CA-NS7,CA-Qcu,CA-Qfo,CA-SF1,CA-SF2,CA-SF3,CH-Cha,CH-Dav,CH-Fru,CH-Oe1,CN-Cha,CN-Cng,CN-Dan,CN-Din,CN-Du2,CN-HaM,CN-Qia,CZ-wet,DE-Bay,DE-Geb,DE-Gri,DE-Hai,DE-Kli,DE-Meh,DE-Obe,DE-Seh,DE-SfN,DE-Tha,DE-Wet,DK-Fou,DK-Lva,DK-Ris,DK-Sor,DK-ZaH,ES-ES1,ES-ES2,ES-LMa,ES-LgS,ES-VDA,FI-Hyy,FI-Kaa,FI-Lom,FI-Sod,FR-Fon,FR-Gri,FR-Hes,FR-LBr,FR-Lq1,FR-Lq2,FR-Pue,GF-Guy,HU-Bug,ID-Pag,IE-Ca1,IE-Dri,IT-Amp,IT-BCi,IT-CA1,IT-CA2,IT-CA3,IT-Col,IT-Cpz,IT-Isp,IT-LMa,IT-Lav,IT-MBo,IT-Mal,IT-Noe,IT-Non,IT-PT1,IT-Ren,IT-Ro1,IT-Ro2,IT-SR2,IT-SRo,JP-SMF,NL-Ca1,NL-Hor,NL-Loo,PL-wet,PT-Esp,PT-Mi1,PT-Mi2,RU-Che,RU-Fyo,RU-Zot,SD-Dem,SE-Deg,UK-Gri,UK-Ham,UK-PL3,US-AR1,US-AR2,US-ARM,US-Aud,US-Bar,US-Bkg,US-Blo,US-Bo1,US-Cop,US-FPe,US-GLE,US-Goo,US-Ha1,US-Ho1,US-KS2,US-Los,US-MMS,US-MOz,US-Me2,US-Me4,US-Me6,US-Myb,US-NR1,US-Ne1,US-Ne2,US-Ne3,US-PFa,US-Prr,US-SP1,US-SP2,US-SP3,US-SRG,US-SRM,US-Syv,US-Ton,US-Tw4,US-Twt,US-UMB,US-Var,US-WCr,US-Whs,US-Wkg,ZA-Kru,ZM-Mon,all,None} [{AR-SLu,AT-Neu,AU-ASM,AU-Cow,AU-Cpr,AU-Ctr,AU-Cum,AU-DaP,AU-DaS,AU-Dry,AU-Emr,AU-GWW,AU-Gin,AU-How,AU-Lit,AU-Otw,AU-Rig,AU-Rob,AU-Sam,AU-Stp,AU-TTE,AU-Tum,AU-Whr,AU-Wrr,AU-Ync,BE-Bra,BE-Lon,BE-Vie,BR-Sa3,BW-Ma1,CA-NS1,CA-NS2,CA-NS4,CA-NS5,CA-NS6,CA-NS7,CA-Qcu,CA-Qfo,CA-SF1,CA-SF2,CA-SF3,CH-Cha,CH-Dav,CH-Fru,CH-Oe1,CN-Cha,CN-Cng,CN-Dan,CN-Din,CN-Du2,CN-HaM,CN-Qia,CZ-wet,DE-Bay,DE-Geb,DE-Gri,DE-Hai,DE-Kli,DE-Meh,DE-Obe,DE-Seh,DE-SfN,DE-Tha,DE-Wet,DK-Fou,DK-Lva,DK-Ris,DK-Sor,DK-ZaH,ES-ES1,ES-ES2,ES-LMa,ES-LgS,ES-VDA,FI-Hyy,FI-Kaa,FI-Lom,FI-Sod,FR-Fon,FR-Gri,FR-Hes,FR-LBr,FR-Lq1,FR-Lq2,FR-Pue,GF-Guy,HU-Bug,ID-Pag,IE-Ca1,IE-Dri,IT-Amp,IT-BCi,IT-CA1,IT-CA2,IT-CA3,IT-Col,IT-Cpz,IT-Isp,IT-LMa,IT-Lav,IT-MBo,IT-Mal,IT-Noe,IT-Non,IT-PT1,IT-Ren,IT-Ro1,IT-Ro2,IT-SR2,IT-SRo,JP-SMF,NL-Ca1,NL-Hor,NL-Loo,PL-wet,PT-Esp,PT-Mi1,PT-Mi2,RU-Che,RU-Fyo,RU-Zot,SD-Dem,SE-Deg,UK-Gri,UK-Ham,UK-PL3,US-AR1,US-AR2,US-ARM,US-Aud,US-Bar,US-Bkg,US-Blo,US-Bo1,US-Cop,US-FPe,US-GLE,US-Goo,US-Ha1,US-Ho1,US-KS2,US-Los,US-MMS,US-MOz,US-Me2,US-Me4,US-Me6,US-Myb,US-NR1,US-Ne1,US-Ne2,US-Ne3,US-PFa,US-Prr,US-SP1,US-SP2,US-SP3,US-SRG,US-SRM,US-Syv,US-Ton,US-Tw4,US-Twt,US-UMB,US-Var,US-WCr,US-Whs,US-Wkg,ZA-Kru,ZM-Mon,all,None} ...]
                        six character PLUMBER2 site code (eg, AR-SLu)

Optional arguments for all types (NEON or PLUMBER2):

  --base-case BASE_CASE_ROOT
                        Root Directory of base case build [default: None]
  --output-root OUTPUT_ROOT
                        Root output directory of cases [default:
                        CIME_OUTPUT_ROOT as defined in cime]
  --overwrite           overwrite existing case directories [default: False]
  --setup-only          Only setup the requested cases, do not build or run
                        [default: False]
  --rerun               If the case exists but does not appear to be complete,
                        restart it. [default: False]
  --no-batch            Run locally, do not use batch queueing system (if
                        defined for Machine) [default: False]
  --run-type {ad,postad,transient}
                        Type of run to do [default: None]

  --experiment EXPERIMENT
                        Appends the case name with string for model experiment
  --run-from-postad     For transient runs only - should we start from the
                        postad spinup or finidat? By default start from
                        finidat, if this flag is used the postad run must be
                        available.


Logging options:
  -d, --debug           Print debug information (very verbose) to file /glade/
                        work/erik/ctsm_worktrees/newbranch/tools/site_and_regi
                        onal/run_tower.log
  -v, --verbose         Add additional context (time and file) to log messages
  -s, --silent          Print only warnings and error messages

Metadata

Assignees

Labels

bfbbit-for-bitcode healthimproving internal code structure to make easier to maintain (sustainability)enhancementnew capability or improved behavior of existing capabilitytest: pythonPass clm_pymods test suite plus Python sys/unit tests before mergingusabilityImprove or clarify user-facing options

Projects

Relationships

None yet

Development

No branches or pull requests

Issue actions