Rather than communicate everything through hub component. Not have an independent hub component. Application driver coordinates the communication between components.
- Couple between 2 components directly.
- Each component has a hub component to take care of remapping, redist
- atmhub_gc
- lndhub_gc
- ocnhub_gc
- icehub_gc
- atmocn_cpl
- atmlnd_cpl
- atmice_cpl
- Atmosphere produces: a2h_a
- Ocean produces: o2_h_o
(maps to Fa2h_o Sa2h_o, Xa2h_o) - Coupler moves a2h_a to a2h_i
Have two composite states for each components state to distinquish between fluxes and states. This is important because the way mappings are done is different depending on whether something is a flux (conservative) or state (bi-linear). - Coupler moves o2h_o to o2h_i
(maps to cpl_map_a2i, and cpl_map_o2i)
Then ice_hub takes a2h_i and o2h_i to the h2i_i
(maps to gc_merge_x2i)
At initialization, have each component send the number of run and init phases it has (either 1 or 2).