Comments (4)
@eclare108213 . I just want to clarify. You want the run directory to exist before even the build script is executed, not as part of the build script (for instance), correct?
from cice.
Also, just wanted to discuss this a bit. The idea behind the scripts is that at each step, the user can make changes and continue. So cice.setup just creates the case directory, cice.build creates the executable, and cice.run sets up the run directory and runs the model. If a user wants to change the run directory name in cice.settings before doing cice.run, that works perfectly fine.
If we start to create/do things before we need to, that leads to some confusion about the order of operations and what users can change as they progress. Having said that, most people will probably use the default run directory on most machines. What we can do is have the cice.setup script create the run directories. Then, if the user changes them after the case is created, the new run directory will be created as now, when the run script is executed. But the default run directories will also exist. This might cause some confusion, but that's sort of up to the user to sort out.
The other issue with this approach is keeping unique case and run directories. So, for instance, you run into the situation where a case is created, then deleted due to an error in the cice.setup call and recreated. But maybe the run directories have been created and that creates problems later.
I think another option would be to add a new script to the case directory called something like setup_run_dirs. That would be called by the cice.run script, but it could also be run by a user anytime. I think I prefer that implementation. Would that be an acceptable approach?
from cice.
Having a separate script that the user could run independently, but which is also called by cice.run, would be fine as long as existing directories and content aren't wiped out by the second call. My aim is to be able to get the run directories set up before a job is submitted to actually run them. For standard testing this is not important, but for development or production, often the configuration needs to be tinkered with to get it right the first time, and that can't be attempted until the run directories exist and are populated, and at the moment that doesn't happen until a run job is submitted. So maybe this shouldn't be thought of as pulling the run directory creation forward so much as pushing the run command to the very end. It would be nice to be able to tinker while the code is being compiled, though, since that process takes a while. I do like that the user can change settings midway through the process and keep going, so let's try to keep that flexibility.
from cice.
Setup_run_dirs.csh was added in PR#125 in the configuration/scripts directory.
from cice.
Related Issues (20)
- ice_in variables undefined in chapter 5 of docs HOT 4
- shortwave dEdd_snicar_ad setup HOT 10
- grid_location is missing for C and CD grids for call to seabed_stress_factor_LKD HOT 1
- model abort due to dvice negative HOT 11
- Investigate T-Test in cice.t-test.py
- NLON, ELAT not computed when TLAT, TLON, ANGLET on grid file HOT 14
- Some CMIP variables are computed using a mix of U and T quantities HOT 1
- dxT and other grid length variables
- dsnow optional argument in icepack_step_therm1
- evp1d performance evaluation
- Support netcdf-4 compression & chunking HOT 1
- hist_avg on multiple streams writes the same filenames when .false. HOT 9
- Potential instability related to explicit treatment of Coriolis for C-grid HOT 3
- Arguments in update_state need if present. HOT 2
- dynamics U points are active when T points are not HOT 4
- Commit/PR process HOT 3
- PIO and hdf5 failures HOT 3
- Test various restart formats and add Derecho port that uses pio spack HOT 1
- tripole initial/restart file with inconsistent values on the tripole seam HOT 15
- CICE C-grid crash on 1/12 degree tripole HOT 11
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from cice.