What variables and config files define the paths for the namelists and the executables? #648
-
@tsemmler05 wrote
NOTE: I received the email above, and I am working on a reply. |
Beta Was this translation helpful? Give feedback.
Replies: 2 comments 4 replies
-
My recommendation is running the Searching for the executables and namelists in
Here |
Beta Was this translation helpful? Give feedback.
-
Hi @tsemmler05, Before we startWe are aware that this is difficult for the user. At the same time this is what allows ESM-Tools to be extremely modular and that component and machine files can be shared across different groups and coupled systems. To overcome the difficulty for the users, @pgierz has made great progresses on adding a feature to help the users to identify the provenance of variables. This is one of the top priorities for us in the coming months, so things will become more intuitive soon without the need of radically changing the ESM-Tools design. In the mean time you'll need to understand well the structure of the config files you are using so here is a detailed explanation: Where the executable and namelist sources are set depends entirely on how the person/group that configured the particular model you are using decided to do so. For Another important concept to refresh is that variables, such as For more information on the hierarchy, please read https://esm-tools.readthedocs.io/en/latest/yaml_hierarchy.html model_dir for AWI-CM3So let's start from the bottom of the hierarchy, first with FESOM. In esm_tools/configs/components/fesom/fesom-2.0.yaml Lines 295 to 296 in ee4e403 As you can see the path for the binary is composed by two variables: esm_tools/configs/components/fesom/fesom-2.0.yaml Lines 93 to 94 in ee4e403 Now the question is whether these variables are edited somewhere else in a config file that is higher in the hierarchy: esm_tools/configs/setups/awicm3/awicm3.yaml Line 247 in ee4e403 So this wins over the setup_dir defined in the fesom-2.0.yaml and takes the model_dir from the general section of awicm3.yaml :esm_tools/configs/setups/awicm3/awicm3.yaml Lines 1 to 8 in ee4e403 Users of AWI-CM3 always define their the directory where the coupled setup is built, under the The same process can be followed for If you want to check what is the actual source of the executables you can search for the Advance exampleLet's imagine you now to source the executables from different setup folders (we strongly advance against this, but it's just an example). As seen before, in general:
[ ... ]
fesom:
setup_dir: "/a/path/here/"
oifs:
setup_dir: "/a/different/path/here/" namelist_changes in AWI-CM3This is very similar to the previous case, but now the featured variable that controls the copying of the namelists is esm_tools/configs/components/fesom/fesom-2.0.yaml Lines 307 to 313 in ee4e403 We see here that the path of the namelist sources depends on but this is overridden by the hierarchically higher esm_tools/configs/setups/awicm3/awicm3.yaml Lines 101 to 108 in ee4e403 where general.esm_namelist_dir is a special ESM-Tools variable that gives the path to the ESM-Tools installation.
ExampleYou could choose to change your namelist sources (not recommended, unless stricly needed), for example for FESOM only, by adding to your runscript: fesom:
namelist_dir: "/your/path/to/your/namelists/" Bare in mind that ESM-Tools will still modify your namelists with the Please, let us know if that solve your questions. |
Beta Was this translation helpful? Give feedback.
Hi @tsemmler05,
Before we start
We are aware that this is difficult for the user. At the same time this is what allows ESM-Tools to be extremely modular and that component and machine files can be shared across different groups and coupled systems. To overcome the difficulty for the users, @pgierz has made great progresses on adding a feature to help the users to identify the provenance of variables. This is one of the top priorities for us in the coming months, so things will become more intuitive soon without the need of radically changing the ESM-Tools design. In the mean time you'll need to understand well the structure of the config files you are using so here is a detailed explanation: