MAPL "wrappings" of ocean GCMs
From Maplcode.org
Contents |
[edit] MAPL-based Ocean GCMs in GEOS-5
GEOS-5 requires that the ocean GCM (OGCM) show a particular MAPL interface. Since OGCMs currently available are not MAPL-based, or even ESMF-based, it is necessary to wrap them in a MAPL enclosure to connect them to GEOS-5. Once wrapped in this way, the OGCM can not only be easily used in GEOS-5, but is also a general ESMF Gridded Component that can be used in other ESMF-based, nonMAPL applications.
In addition to the MAPL wrapping, the GEOS-5 interface to the OGCM also imposes some requirements on the physical quantities exchanged, their names and properties on the GEOS-5 side, and how the various ocean processes (radiation, biology, etc.) are packaged.
Ocean models in GEOS-5 are assumed to be modularized as shown in the figure at right, with separate ESMF Gridded Components for ocean dynamics, sea ice, radiation, and biogeochemistry. These are connected through a Composite Component (OGCM_GridComp) which is the root of the ocean hierarchy in the larger GEOS-5 tree.
The Codes describe here implement the Ocean dynamics only. The interface is implemented using a "socket-plug" pair of gridded components. On the GEOS-5 side, we have a "universal socket" called GuestOcean_GridComp that can be used with any of the OGCMs. On the OGCM side, the wrapping consists of writing a "plug" that fits into that "socket". This plug handles both the MAPL/ESMF wrapping and the physical connections expected by GEOS-5. Below we describe the plugs for the three OGCMs currently used in GEOS-5. Any of these can be used as a template for wrapping other nonESMF or nonMAPL codes.
[edit] MAPL interface to POSEIDON
Poseidon is a hybrid coordinate ocean model developed by Paul Schopf.
The MAPL interface to Poseidon is implemented through a Plug component that wraps Poseidon's nonESMF objects and methods and satisfies the requirements of the GEOS-5 socket.
Poseidon is an object-oriented code that uses uses older libraries for parallelization, communications, input and output, and clock/calendar services. This plug allows these legacy systems to function in sync with their corresponding ESMF versions. It then uses the MAPL framework to present Poseidon as an ESMF gridded component that can easily couple to GEOS-5 and can still work with any other ESMF-based superstructure.
[edit] MAPL interface to MITgcm
The MITgcm (MIT General Circulation Model) is a numerical model designed for study of the atmosphere, ocean, and climate. Its non-hydrostatic formulation enables it to simulate fluid phenomena over a wide range of scales; its adjoint capability enables it to be applied to parameter and state estimation problems.
The code is implemented in Fortran and its implementation is constrained by the requirement that it be amenable to automatic differentiation tools. This precludes the widespread use of truly dynamic, instantiable programming practices.
The plug that wraps the MITgcm in MAPL also enables limited multiple instantiation capabilities.
[edit] MAPL interface to MOM4
The GFDL MOM4 model is a community supported global ocean circulation model. Under the MAPL project, MOM4 is distributed as a MAPL-enabled ocean dynamical core.
Several interesting issues about coupling architecture were raised during the creation of a MAPL-MOM4 component. Most notably, MAPL architecture conceived of "ocean physics" and "ocean biology" as siblings of "ocean dynamics", whereas MOM4's native architecture conceived of them as children. Reconciling architectural issues of this nature are among the most interesting, and challenging, aspects of making MAPL applications.
