-
Notifications
You must be signed in to change notification settings - Fork 9
Description
An issue to keep track of CCPP work for CLUBB. Here are the main tasks, in general. This list will likely be updated as work continues.
-
Remove all CAM specific code in CLUBB.
This may not require any code changes as CLUBB has always been very portable and not engineered for any specific host model. But I'd like to do a careful check to make sure there's no surprises or lingering old CAM code that snuck its way in over the years. -
Create a CCPP cap for the main CLUBB api calls.
CCPP allows for 6 calling routines: [parameterization]_register, [parameterization]_init, [parameterization]_timestep_init, [parameterization]_run, [parameterization]_timestep_final, [parameterization]_final. We will need to write a cap that calls all of the needed CLUBB functionality from these 6 routines or a subset of them. -
Create metadata files for the cap and any derived data types used in the CCPP interface.
The metadata caps are XML files that describe all of the input and output parameters to a scheme, and specify them via standard names and units that are agreed upon by all CCPP host models. Derived data types are not currently supported, but we will put the XML in place for once the framework is updated. This is how DDTs in other schemes are being handled currently. -
Possible/optional Add a github action that validates the metadata after every update/pr to the repo
Github actions that automatically test the metadata for correctness with any repository update are being implemented in some CCPP parameterization repos. I can see a lot of value to this, but it's not a requirement. Something to discuss when we get to this point.