-
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
Add src/coupled/AM3 directory #371
Conversation
…e rest of the model
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This file is later removed. In its stead is the standard version in utils/
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
JAC adopts UM/JULES practice of declaring TYPE (and corresponding pointer) in its own file which also contains subroutines for allocation, deallocation, association, nullification, initialization
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
JAC adopts UM/JULES practice of declaring TYPE (and corresponding pointer) in its own file which also contains subroutines for allocation, deallocation, association, nullification, initialization
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
JAC adopts UM/JULES practice of declaring TYPE (and corresponding pointer) in its own file which also contains subroutines for allocation, deallocation, association, nullification, initialization
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
JAC adopts UM/JULES practice of declaring TYPE (and corresponding pointer) in its own file which also contains subroutines for allocation, deallocation, association, nullification, initialization
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
JAC adopts UM/JULES practice of declaring TYPE (and corresponding pointer) in its own file which also contains subroutines for allocation, deallocation, association, nullification, initialization
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
JAC adopts UM/JULES practice of declaring TYPE (and corresponding pointer) in its own file which also contains subroutines for allocation, deallocation, association, nullification, initialization
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
JAC adopts UM/JULES practice of declaring TYPE (and corresponding pointer) in its own file which also contains subroutines for allocation, deallocation, association, nullification, initialization
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
JAC adopts UM/JULES practice of declaring TYPE (and corresponding pointer) in its own file which also contains subroutines for allocation, deallocation, association, nullification, initialization
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
JAC adopts UM/JULES practice of declaring TYPE (and corresponding pointer) in its own file which also contains subroutines for allocation, deallocation, association, nullification, initialization
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
JAC adopts UM/JULES practice of declaring TYPE (and corresponding pointer) in its own file which also contains subroutines for allocation, deallocation, association, nullification, initialization
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
JAC adopts UM/JULES practice of declaring TYPE (and corresponding pointer) in its own file which also contains subroutines for allocation, deallocation, association, nullification, initialization
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
JAC adopts UM/JULES practice of declaring TYPE (and corresponding pointer) in its own file which also contains subroutines for allocation, deallocation, association, nullification, initialization
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Phasing out - deliberately inheriting TYPEs from independent files as cable_def_types is USED throughout code. Also uses grid_constants - attempt to clarify single source where constants are defined. Offline, other apps can adopt this JAC-ified file after appropriate work done there (and of course independent TYPE files)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
explicit and implicit versions established to avoid nested/spaghetti IF conditions. Offline probably needs _impl version
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
These are namelist read in AM3. Should be extended to JAC and offline. Should incorporate namelist reading for PFT, soil params. I will have to check PFT lookup and phenology issue again. From memory, I think I decided on an ancillary (spatial) approach there.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
analogous to jules_land_.....
i.e. surf_couple layer is the branching point.
SELECT CASE( LSM_ID )
CASE( jules)
CALL jules_land_
CASE( cable)
CALL cable_land_
SUBROUTINE cable_land_
CALL cable_
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Essentially a JULES routine, still needs to be called but _cbl version differes substantially from corresponding _jls version
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Essentially a JULES routine, still needs to be called but _cbl version differes substantially from corresponding _jls version
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Essentially a JULES routine, still needs to be called but _cbl version differes substantially from corresponding _jls version
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
this is from JAC - it was necessary as rad call is before main allocation of all TYPEs and not all were needed for rad call anyway. I think I have passed these on etc where necessary BUT now that we are declaring/allocating all TYPEs at top-level - this might be wasteful doubling up requiring compensating changes later on. Unless there is a fault with the way this is working I recommend we deal with this at a later time
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
See cable_land_ discussion above
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This needs to be revised: same subroutiineexists
science/canopy/cbl_LAI_canopy_height.F90
coupled/JAC/control/shared/LAI_canopy_height_cbl.F90
coupled/AM3/control/cable/shared/LAI_canopy_height_cbl.F90
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Analogue of jules_fields_mod, the UM also has atm_fields_mod. Basically it is a data module where global fields are instantiated
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
should expand this model reader to include other model switches e.g. Medlyn, or_evap. Here it is just for icycle. Implemented this so same executable could be used for CM3, ESM3.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
definitely include offline and do away with hard-wired versions in grid_constants
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
from JAC
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
declare params for vegin/soilin. Other TYPE dec files should be shared/ as well
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
declare etc progs
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
declare etc cable types canopy% etc
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
compute "mp" at toplevel
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
it appears this isnt even being used anywhere, however a remapping that was used in CM2
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
set icycle from namelist
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
initializations at interface init at t=1/update per dt
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
initializations at interface init at t=1/update per dt
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
initializations at interface init at t=1/update per dt - governs all per "module" calls
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
map per PFT onto per mp
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
technical packing of fields
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
see cable_fields comment - this is the casa-cnp analogue
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
cnp analogue
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
cnp analogue
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
unlike other apps I haven't setup namelist reader to read these values from namelist yet - however this can/has serve(d) as the declaration list for the namelist. Default values are same as those used in offline, JAC etc
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
unlike other apps I haven't setup namelist reader to read these values from namelist yet - however this can/has serve(d) as the declaration list for the namelist. Default values are same as those used in offline, JAC etc
@bschroeter, @ccarouge, Coming back from leave again I am trying to figure out what I was up to before I left. It seems I have been building other branches onto of a quasi-main branch that assumes these things are going to merge. Needless to say that this is less than ideal and messy. This particular "part" of the AM3 merge is by far the largest and independent of any other application. It would be good to get this in so I can go back to branching from main and not have to merge this OR branch from here etc etc |
@JhanSrbinovsky Yesterday I was just discussing with Ben and we were wondering what is the purpose of the src/coupled/ directories? I'm not sure if these files are ever used and if the goal is to eventually use them. Could you clarify please? |
I'm assuming you mean these:
These are all the drivers per coupled applications which "were" supported. So for ESM1.5, the CABLE component grabs
offline builds grabbed:
coupled/ are somewhat redundant redundant as unless actually in the appropriate JULES/UM7.3 they are useless. It was more or less like not being able to throw them away. In theory, it is (and has) been the case that having them locally to at least consult (document) is useful. In theory specific application dirs should get smaller as things are dealt with in coupled/shared/, however the reality is that we've rarely had time AND a checkout of the relevant parent would be in the picture anyway. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This can go in.
AM3 application specific see issue #370
Fixes #370
Type of change
Hopefully will cover CM3 as well
Checklist
📚 Documentation preview 📚: https://cable--371.org.readthedocs.build/en/371/