CABLE-LSM / CABLE-Trac-archive

Archive CABLE Trac contents as issues
Other
0 stars 0 forks source link

Transition to CABLE-3.0 #296

Closed penguian closed 2 years ago

penguian commented 2 years ago

keyword_CABLE-3.0 keyword_CABLE3 keyword_CBL3_nogit owner:jxs599@nci.org.au resolution_fixed type_model improvement | by srb001@csiro.au


CABLE is in the process of being integrated into the JULES release cycle. This endeavour is known as the JAC (JULES and CABLE) project. In JAC, we use the JULES standalone IO (or later the UM) to drive the CABLE science model. It is preferable, and in some instances indeed a prerequisite that CABLE's presence in JULES follows the JULES framework.

CABLE's current structure comprises 3 subdirectories: offline/ UM/ and core/. Relevant to JAC are only UM/ and core/ anyway. In the first instance we rename UM as coupled/ as we expect more than one set of specific drivers here. i.e. Those for standalone, ESM1.5, UM. Broadly speaking, we restructure core/ into science/"sub-category". Where the subcategory might be canopy/ albedo/ etc.

Within the JULES repository there is then science/subcategory and science_cable/subcategory. This also gives us the opportunity to carve up some of the rather large files, whilst they still remain in that subcategory of science. For e.g. cable_radiation.F90 => science/radiation/subcategory files . Where there are 5 "subcategory files". Apart from improving the readability, maintainability, potentially performance and flow of the code, this allows us to also achieve a second key requirement of the JAC project. This is that, CABLE albedo can be called prior to and independently of calling the entire CABLE science model.

In the above example we referenced the sub-division of cable_radiation.F90 in the radiation/ directory. This has also happened in the albedo/ directory. The subroutine surface_albedo() has also been re-written to clarify what it actually needs as input and what it is returning to whence it is called. For the most part it has also been re-written to be consistent with requirements of the UKMO's Next Generation Modelling Systems (NGMS) which include LFRic (the intended UM replacement).

Maintaining the version of CABLE in JAC, and the version CABLE in the trunk are problematic. Given the splitting of files and the revised directory structure it is impossible to use svn tools. Thus we are updating. the trunk to adopt this new structure.

CAVEAT: This destroys backwards compatibility - technically.

Extensive testing has been done with CABLE offline at both single sites and with global forcing GSWP2 GSWP3, Trendy. There is almost no difference between results output from the trunk and CABLE-3. The only differences are due to trivially inserting brackets into an equation and so on. This can all be reviewed in much greater detail in Ticket #250 (and links therein).

In addition to the modifications outlined in Ticket #250, there are also the modifications outlined in the CABLE-3.0_beta tag which several members of the CABLE group have been developing and testing. These are (but not limited to) the inclusion of Tickets #291:#295. Also the build process has been revised so that a single Makefile compiles code relevant across offline applications with seperate serial and MPI scripts.


Issue migrated from trac:296 at 2023-11-27 11:37:37 +1100

penguian commented 2 years ago

@jxs599@nci.org.au changed status from new to closed

penguian commented 2 years ago

@jxs599@nci.org.au set resolution to fixed

penguian commented 2 years ago

@jxs599@nci.org.au changed milestone from 2. Submission to 1. Closed

penguian commented 2 years ago

@jxs599@nci.org.au commented


CABLE3 established in trunk @November

penguian commented 1 year ago

@ccc561@nci.org.au changed keywords from CABLE-3.0, CABLE3, CBL3 to CABLE-3.0, CABLE3, CBL3 nogit