A generic source processing stage
Participants were nonplussed by having to be explicit about C and Fortran preprocessing. There was a feeling that there might be a generic "preprocessor" source processing stage which used some means (possibly file extension) to dispatch files to the correct processor. This might be extensible so additional source processing stages, e.g. PSyclone or CLAW, could also be handled.
The FabBase class makes it easy to define and add processing stages.
It could also be used to 'hide' the two preprocessing steps (i.e. FabBase would have one preprocess step, which would call the two steps internally (though with the base class a user script actually doesn't have to bother to explicitly call this anyway).
While PSyclone triggering is not covered in the base class, then the LFRic fab base class should also trigger preprocessing of X90 files during this preprocessing step (instead of running this as part of the