Custom WW3 wave grids for custom ocean grids#42
Conversation
|
This closes #33 |
|
I got this error on building a case from visualCaseGen with ww3 (custom): There doesn't seem to be anything in my user_nl_ww3, but the files are written to my ocnice |
|
@manishvenu Could you update to the latest WW3 tags and retry: I think we'll need to update CESM version checking accordingly. |
Changing to this, passed the namelist build stage with |
manishvenu
left a comment
There was a problem hiding this comment.
My case successfully ran for 5 days and I left one comment here. I didn't get any ww3 output files, but I did get restart files and cpl hist for ww3.
| # Run case.setup | ||
| run_case_setup(do_exec, self._is_non_local(), self._out) | ||
|
|
||
| # Copy ww3 input files to RUNDIR if needed (only when the custom ocean grid is reused as |
There was a problem hiding this comment.
Thinking about this from the CrocoDash perspective, having some input files in the run directory is kind of confusing if every other input is in the input directory. Is there a way in WW3 to point to a new input directory for those files?
Let users choose, in the custom-grid flow, whether WW3 uses a standard wave grid
or reuses the newly created custom ocean grid. Adds a Wave Grid stage with a
WAV_GRID_MODEtoggle; when "Custom Ocean Grid" is selected, the WW3 grid-preprocessorinput files (
*.inp) are generated from the saved ocean grid via mom6_forge.Built on a new
relevance_conditionmechanism so irrelevant stages (e.g. Land/Runoff/Wavefor stub components) are skipped entirely instead of shown as empty boxes.
Changes
ProConPy/stage.py:Stage.relevance_condition— irrelevant stages are skipped(variables auto-resolved, no UI), and
revert()skips back over them. Factored a sharedcondition_holds(); renamed Guard'scondition→branch_conditionso the two conditionconcepts read as duals rather than parent/child.
stages/grid_stages.py: Wave Grid Mode / Wave Grid / Wave Input Files stages;relevance_conditionapplied to Land and Runoff stages.custom_widget_types/ww3_input_generator.py(new): inline generator that reconstructsthe grid/topo from the saved ocean files and writes the WW3
*.inpfiles; readsmin_depthfrom the topog attribute so the WW3 land/sea mask matches the ocean mask.
case_creator.py: branches onWAV_GRID_MODE— reuse-ocean-grid (legacy coupling +copy
*.inp) vs. standard wave grid (setWAV_GRID/WAV_DOMAIN_MESH).specs/grid_options.py,widgets/grid_widgets.py,config_vars/grid_vars.py: options,widgets, and config vars for the wave grid.
button is clicked;
T_REFcommits on enter.Testing
test_stage_relevance.py,test_ww3_coupling.pywave-grid options, and a mom6_forgewrite_ww3_inputround-trip).global custom-ocean (custom & standard wave), custom ridge bathymetry (land masking), and
the full Ridge World example (CAM/CLM/CICE/MOM6/WW3) with custom and standard wave grids.