-
Notifications
You must be signed in to change notification settings - Fork 6
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
The Great Library Shuffle #538
Comments
I think it is going to be less easy than that. The split of ESM1.5/ into 3 locations is going to be more tricky than that. 3 locations because we also need to create $CABLE_DIR/src/shared/ Here is what I have: Put in $CABLE_DIR/src/shared/, delete from ESM1.5/, offline/ and/or esm16/. Use version in offline/ Need to add the Files from $UM7_DIR/src/atmosphere/CABLE/src/coupled/ESM1.5 to put in $UM7_DIR/src/atmosphere/land_surface/cable/ Put in $CABLE_DIR/src/coupled/esm/, copied from $UM7_DIR/src/atmosphere/CABLE/src/coupled/ESM1.5/
Note: after the first move, there might be some files moving to other locations. For example, I would think some of the files in the $UM7_DIR could end up in the $CABLE_DIR/src/coupled/shared if AM3 using the same version. Second note: the library needs to compile files under CABLE/src/shared and CABLE/src/coupled/shared in addition to current set of files. |
Thanks @ccarouge, I expected there would be a more complicated solution here. I think we should also include a readme in the various directories ( I will revise the script and potentially set it up as a PR so that we can correct any issues inline before we go and execute the shuffle. |
Technically Im on leave but I just looked at Claire's revision. I agree with most of it but seeing cable_iovars.F90 again made me wonder what's actually in this file. SO I looked at it and I vaguely remember this from circa CMIP5 days but I thought this is all offline IO stuff, why would we need it!! So I grepped - it turns out that it is needed in cable_climate which is the other troublesome beast. Turns out that climate is only USEd from the offline drivers - so we shouldn't need it at all. That crosses 2 off the list - although I will verify first that it (ESM1.6) does indeed build/run without it. |
@JhanSrbinovsky I like the idea of the library building all of science/ rather than cherry picking stuff. If we want to reorganise the science/ stuff later on to simplify, that's fine. But I wouldn't place this as a priority. The reorganisation we are looking at here allows us to limit file duplications which is good. Once we have the library stuff working, we can look on reducing unwanted dependencies. Also, for |
Note: The files in UM7/...../CABLE/coupled/...... are the most recent. I just noticed a difference between the cable_pft_params file here VS the one in CABLE:main. I've got cable.nml reading from the top_level in the UM. I'll look at the PFT params next. Although I am technically on leave. Its likely they'll end up in CABLE/src/shared in a few days. |
getting the cable_pft_params to read through a namelist should be fairly straight forward AND using the same version of the file that is currently in offline/. i.e. something which could be moved to a shared/ directory - and then it occurred. to me why I hesitated in doing the same thing before. It isnt shared with AM3, CM2, ESM1.5. My guess is is that CM2, ESM1.5 will be dead soon anyway. ESM1.5 being absorbed as an earlier version of ESM/ anyway. AND we can in principle do this same thing for AM3 so it will indeed be shared. The story will possibly change again when JAC comes along but I cant see that happening this year. |
@bschroeter - as im sure you're aware - I was getting the veg/soil params to read from a uaelist rather than being hard-wired. In the process cable_veg/soil related TYPE decs/ allocate files were converged meaning they could be moved to src/shared. A recurring issue in reconciling them was the two different cable_define_types files. I have been reconciling these and they are now almost working. Unfortunately it is the offline version that is causing the most problems as it is referenced throughout the offline IO. |
As per meeting with @JhanSrbinovsky and @ccarouge, we are working to reconcile the source code between the CABLE and UM7 repositories, with the purpose of generating a generic library object for use between applications.
Following my notes, I've started putting together a script template to handle the shuffle of code between repositories. This issue will serve as a discussion point.
@JhanSrbinovsky and @ccarouge , please make your adjustments as you see fit and I will finalise the script and handle the shuffle.
Cheers, Ben
The text was updated successfully, but these errors were encountered: