Replies: 11 comments 16 replies
-
I would prefer not to have infrastructure under external, but I would promote it up one level to be at the same level as drivers and memory, to avoid excessively long pathnames and to reflect that at least one infrastructure directory is needed, whereas it is not necessary to use any of the other directories under external. |
Beta Was this translation helpful? Give feedback.
-
Ah! That wasn't my intent. Making trees by hand is harder than making the actual tree of directories! I meant like this:
|
Beta Was this translation helpful? Give feedback.
-
Is the |
Beta Was this translation helpful? Give feedback.
-
This makes perfect sense. No objections. One minor suggestion I have is to drop the "_driver" suffixes, since they are now redundant, I guess
|
Beta Was this translation helpful? Give feedback.
-
Once we get something working, a potential phase 2:
|
Beta Was this translation helpful? Give feedback.
-
Also, I feel obliged to mention that submodules were introduced to address this problem. They are not necessary to achieve what we want, but they would allow us to compile the One downside is that many compilers do not have a long history of support for them, many having only recently added them. I don't think we need to pursue this, but wanted to at least make sure it was part of the discussion. |
Beta Was this translation helpful? Give feedback.
-
|
Beta Was this translation helpful? Give feedback.
-
All of this opens up lots of possibilities. Once all sorted out and ready to go!
|
Beta Was this translation helpful? Give feedback.
-
I have some questions that I would like to raise about documenting the interfaces with this new structure for FMS2:
|
Beta Was this translation helpful? Give feedback.
-
We've realized it is very hard to separate the io and communications from each other. When you combine IO with comms, and see what's left, almost everything is interconnected and the point of the fine grain directory structure is lost. The only things that look self contained are things like calendar, but even that is then used by time_interp. We are thus thinking we might stay with something more like in |
Beta Was this translation helpful? Give feedback.
-
After reflecting on various proposals and considering how they might actually be implemented I think that we are approaching a consensus for the new structure. The new proposal is for the new structure to be the following:
The directories in parentheses do not exist, but are just placeholders for things that someone might want to add later. We are likely to start implementing this for a PR by mid-February, so any further comments by then would be appreciated. |
Beta Was this translation helpful? Give feedback.
-
The current directory tree of compilable source code is
where the some of the cirectories within
config_src/
are exclusive. e.g. you should only include eitherdynamic/
ordynamic_symmetric/
in the search path for the compiler. Similarly only one of the*_driver/
directories should be used, and the different choices yield different forms of the model.We wish to add directories containing a thin layer that translates between a MOM6-defined API and infrastructure libraries. We envision different directories corresponding to different versions of infrastructure, initially fms1 and fms2, and later someone can add one for esmf. On the dev call we just discussed that rather than add yet more directories to
config_src/
we should re-structure into something like:Better yet would be to group the infrastructure by operation. Proposals welcome...
Beta Was this translation helpful? Give feedback.
All reactions