GENIE Coupling
Coupling, the controlled passing of variables between models, is currently achieved using bespoke code within the GENIE framework. The GENIE community requires a more general and flexible coupling approach for the following reasons:
- It will be easier for modellers to couple new models and revised implementations of existing GENIE models (for instance, operating at new resolutions) if a standard coupling interface is used. For instance, modellers will only need to provide coupling meta-data -- specifying what fields are to be coupled on what grids without having to write bespoke code themselves to implement the coupling.
- GENIE runs may be performed more quickly by harnessing the parallel execution facilities provided by a general coupler to run models simultaneously
- Alternative methods of spatial interpolation for translating variables between different model grids may be used without the addition of more bespoke code to GENIE. Sensitivity of the GENIE framework to different methods of interpolation, for instance nearest-neighbour, bilinear, or bicubic, can be investigated.
The GENIE earth system modelling framework will incorporate the Program for Integrated Earth System Modelling (PRISM) coupler, OASIS. The OASIS coupler is part of a community standard tool set for earth system models, and will enable the coupling of full complexity models in future. The 'glue code' holding the framework together will be generated by the Bespoke Framework Generator (BFG). BFG will help insulate GENIE models from changes in OASIS (or indeed the use of a different coupler).
What will be coupled and how?
This section outlines which GENIE models will be coupled, and provides more detail about how the coupling will be achieved.
IGCM and GOLDSTEIN
The GENIE team would like to couple the IGCM atmosphere and GOLDSTEIN ocean models. By coupling two models that are already coupled with the GENIE framework, it will be possible to compare directly the results and performance of OASIS coupling compared with the bespoke coupling currently used in GENIE (largely implmented in Genie.F). In addition, IGCM and GOLDSTEIN use different spatial grids: long/lat for IGCM, and equal area for GOLDSTEIN. The use of different grids will allow investigation and comparison of the different interpolation algorithms provided by OASIS (nearest neighbour, bilinear, and bicubic). IGCM and GOLDSTEIN resolutions of 64x32x7 (T21) and 36x36x8 (baseline) will be used to begin with.
OASIS4
The GENIE coupling project will use the latest version of the OASIS coupler, OASIS4. OASIS4 is a significant rewrite of the previous PRISM release, OASIS3. OASIS4 is currently at a beta release stage (functionally complete, but not stable). The GENIE coupling project will use OASIS4 however, for the following reasons:
- OASIS4 supports 3D field passing in addition to the 2D field passing supported by OASIS3. If we want to implement OASIS coupling for all GENIE model combinations, we will need OASIS4 because GOLDSTEIN-BIOGEM coupling passes 3D fields (as would future atmospheric chemistry).
- The significant change in the user interfaces for OASIS3 and 4: OASIS4 uses a different structure and language (XML) for metadata, meaning a time-consuming and costly switch at a later date if OASIS3 is used now.
- A GUI for OASIS4, PrepOASIS, is also in development, making OASIS4 more user-friendly for the GENIE community.
- The use of a pre-release version of OASIS will also allow us to provide feedback to PRISM, helping to improve the coupler and benefitting both PRISM and the GENIE project.
Known issues
- OASIS4 has not (yet) been compiled or tested under Windows. Since members of the GENIE community use GENIE under Windows, it is important that OASIS4 also works under Windows. OASIS4 will need to be tested under Windows, and any issues will need to be resolved with the PRISM development team.
BFG2
The GENIE coupling project will use the latest version of the Bespoke Framework Generator (BFG), a prototype implementation of the University of Manchester's Flexible Coupling Approach (FCA). BFG will be used to generate the framework code that 'stitches together' IGCM, GOLDSTEIN, and the OASIS coupler. The BFG2 prototype is much more suitable than the BFG1 prototype because:
- BFG2 supports multiple entry points to a model - for instance the calling of explicit "initialise" functions as well as a "timestep" function. (GOLDSTEIN and IGCM have separate initialise and timestep functions.)
- BFG2 supports models with an argument-passing interface. (In BFG1, the model's timestep function could not take any arguments, and fields therefore had to be passed between models via BFG put and get function calls.)