-
Notifications
You must be signed in to change notification settings - Fork 64
Description
In order to control the complexity of suites, we could allow a <suite> keyword in the suite definition file (SDF) in order to allow for some modularity. For instance, if a suite needs to run a chemistry suite in the middle of a group, it could just add that suite in the desired place. Moving chemistry then becomes as simple as moving a single line in the SDF.
The framework would treat a <suite> keyword much like a C pre-processor #include statement -- it would simply (recursively) add the entries of the referenced SDF as if they were part of the main SDF being processed.
Post-framework displays of the suite would act as if the suite was monolithic (no indication that there were sub-SDFs) or could include a comment to mark those locations.
Example with two SDFs
<suite name="B" version="1.0">
<group name="G">
<scheme>A</scheme>
<scheme>S</scheme>
</group>
</suite>
<suite name="A" version="1.0">
<group name="phys">
<scheme>B</scheme>
<scheme>L</scheme>
<suite name="B" group="G" />
<scheme>T</scheme>
</group>
</suite>
would be equivalent to:
<suite name="A" version="1.0">
<group name="phys">
<scheme>B</scheme>
<scheme>L</scheme>
<scheme>A</scheme>
<scheme>S</scheme>
<scheme>T</scheme>
</group>
</suite>
Another use would be to group suites together but not merge them. In this case, we would have something like:
<suite name="physics" version="1.0">
<group name="phys">
<scheme>B</scheme>
<scheme>L</scheme>
<scheme>T</scheme>
</group>
</suite>
<suite name="dycore" version="1.0">
<group name="fast">
<scheme>H</scheme>
<scheme>R</scheme>
</group>
</suite>
<suite name="UFS" version="1.0" merge="FALSE">
<suite name="physics" />
<suite name="dycore" />
</suite>
In this case, two suite caps would be generated which could be called from different parts of the executables acting as separate host models. If we adopt this approach, the first example above might need a merge="TRUE" attribute.
Thoughts?
Metadata
Metadata
Assignees
Labels
Type
Projects
Status