* a path to a directory containing a bacy with initial conditions for your experiment
* a path to a directory containing a bacy with initial conditions for your experiment
* a icon gridfile, a radiation gridfile and extpar-Data. You can create these using the `icongridgen`
* a icon gridfile, a radiation gridfile and extpar-Data. You can create these using the `icongridgen`
or via the [web](https://webservice.dwd.de/cgi-bin/spp1167/webservice.cgi) interface at DWD (user icon-web, pw: icon@dwd).
or via the [web](https://webservice.dwd.de/cgi-bin/spp1167/webservice.cgi) interface at DWD (user icon-web, pw: icon@dwd).
* a working bacy, cloned eihter from [`git@gitlab.dkrz.de:dace/dace_bacy.git`](./bacy.md#markdown-header-how-to-get-bacy_1.0?) or from another bacy using `bacy_clone.sh`
* a working bacy, cloned eihter from [`git@gitlab.dkrz.de:dace/dace_bacy.git`](./bacy.md#how-to-get-bacy_10) or from another bacy using `bacy/bacy_clone`
This will start the process in the background, writing its output to the file `cycle.log`.
This will start the process in the background, writing its output to the file `cycle.log`.
*Pro Tip*: You can read the output using `less`. While in `less` press `SHIFT + F` to read it like a feed. To exit this mode press `CTRL + C` and then `q` to exit `less`.
*Pro Tip:* You can read the output using `less`. While in `less` press `SHIFT + F` to read it like a feed. To exit this mode press `CTRL + C` and then `q` to exit `less`.
### Interrupting and Restarting the cycle
### Interrupting and Restarting the cycle
To interrupt a cycle you can create a file named `STOP_CYCLE` (eg. `touch STOP_CYCLE`) in the `cycle` directory. After completion of the current step, the cycle will break.
To interrupt a cycle you can create a file named `STOP_CYCLE` (eg. `touch STOP_CYCLE`) in the `cycle` directory. After completion of the current step, the cycle will break.
...
@@ -100,6 +100,15 @@ To restart a interrupted cycle at any of the past times, delete `STOP_CYCLE` and
...
@@ -100,6 +100,15 @@ To restart a interrupted cycle at any of the past times, delete `STOP_CYCLE` and
~~~
~~~
./cycle --cycle=5 --task=7 ICON-LAM ASS 2023112812 2023112912
./cycle --cycle=5 --task=7 ICON-LAM ASS 2023112812 2023112912
~~~
~~~
restarts the former cycle at 28.11.2023 - 16 UTC, at the 7th task, which is the `core` module (assimilation).
restarts the former cycle at 28.11.2023 - 16 UTC, at the 7th task, which is the `core` module (assimilation). This of course also works with `nohup`.
## Adapting bacy
You can also change the `enddate` when resarting a cycle. Just make sure you also change the name of a logfile `bacy/data/cycle_icon-lam_ass.log_20230928120000_20231129120000` so the last number matches your new `endtime`.
\ No newline at end of file
## Adapting bacy
Bacy is modular and quite flexible. The challenge is to know where to find the settings you want to change. A few hints:
* "global" settings can be changed in `modules/common/bacy_conf.sh` This includes parameters like the ensemble size (`BA_ENSIZE_ASS`), on-off switches for snow, surface and sst analysis (`BA_RUN_SNW`, `BA_RUN_SMA`, `BA_RUN_SST`) and several settings regarding the icon grid (serach for `GRID`)
* each module has
- namelists, which can be found in the `modules/module-name/const/` folder. Only the namelists without the `.default` ending affect the run. Inside there probably all paramters of the said module can be set.
- the file `module_name_conf.sh` containing high-level configurations of the module
- the scripts `prep_module-name`, `module-name`, `save_module-name` which make use of `prep_module-name_fcns.sh`, `module-name_fcns.sh`, `save_module-name_fcns.sh`. Inside said functions the real work of the module (file logistics, putting the namelists together and filling them with values, starting and monitoring the jobs and saving the output) is done. You can insert `ksh` prompts inside the functions to get your code executed at the desired time. Be aware that many functions differentiate between cycle and model modes, so make sure your code is actually executed where you put it.