-
Notifications
You must be signed in to change notification settings - Fork 0
jhan_JaCAux_Proposal
This is modified since our meeting to include more detail.
- This push will leaves CABLE (lsm_id=2) non-compliant with LFRic - to the point of being unusable in LFRic (for now) but that has pretty much always been the case anyway
Assumptions:
- Ticket #940 at least makes it into JULES-5.7
- Martin’s land/sea separation work makes it into JULES-5.7
Prior to release of JULES-5.7 we need to :-
-
merge HAC into 5.6 and working on Gadi (3 working days)
-- [[Update HAC|jhan_JaCAux_Proposal_updateHAC5.6_draft1]] to branch off JULES trunk@HEAD(16253 - currently [this is 5.6+])
-
merge Ticket 940 into HAC-5.6 (5 working days) -- Yet to be seen BUT I think there are modifications which I have made that will conflict with a straight-forward merge - AND I am sure there are additional requirements in the initialisation/ that have not yet been addressed. Regardless I think this will erquire more intensive collaboration between myself and Danny
-
Clean up HAC as much as possible
-
isolate and migrate vars to top-level scope
-
Clean up HAC as much as possible
-
Declare CABLE model types as they exist now (more or less - the types do need to be dramatically cleaned up. Probably halved!!) at highest level in JULES
``` * Pass them to CABLE * But do not allocate them until we get to CABLE (I've tested this can be done albeit in a dummy model) * Probably don't need to this for rad% vegin% etc ```
-
From here on CABLE is a work in progress
* Separate canopy/soilsnow * Work on these separately * etc etc etc
Is it worth bundling/organising the necessary Tickets according to action? e.g. Tickets linked to
* inputs (any remaining to do?)
* output (any urgent changes needed? e.g. for tiled soils)
* internal to CABLE
* directory structure
* implementing the definitions/allocations of CABLE TYPED variables
* passing additional data layers to cable_radiation through JULES control (and the UM?)
* passing additional data layers and variables to cable_explicit through JULES control (and the UM?)
* passing additional data layers and variables to/from cable_implicit through JULES control (and the UM?)
* ?passing additional data layers and variables to cable_extras
* adjustments to the CABLE-JULES layers in response to Martin's land/sea split etc.
* (LATER) corresponding changes in UM to get variables/data to the appropriate places
NB: since CABLE needs additional variables/data layers in the surf_couple_explicit etc. argument list even though this effort is focused on JULES stand-alone we will need to create dummy variables in some UM code (unless #ifdef are still allowed)
Internal to CABLE we have (at least)
* removing USE statements as a means to pass data around -> argument lists
* removing the hardwired indices (and other 'roadblock' coding standards issues
* removing the use of internal memory between calls (both from rad-explicit-implicit-extras but also between time steps)
* adjusting how the prognostic bank structure works in cable_implicit (because it uses internal memory between calls)
One key decision that needs some thought concerns how/where CABLE updates it's soil temperatures/moisture: At the moment CABLE updates it's soil state variables on the second call to cable_implicit then uses internal memory to pass to cable_extras for use in the output diagnostics. We will either need to generate a means of getting the soil information out of cable_implicit, up to JULES control/UM, and back down OR recalculate the entire energy balance in cable_extras.
A discussion around whether CABLE could have a TYPED variable inside JULES so that we can pass stuff like this around in one structure.