Python Interface to MAPL: Difference between revisions

From GEOS-5
Jump to navigation Jump to search
No edit summary
Line 9: Line 9:
In this example, the very top root component is implemented entirely in a shared library.
In this example, the very top root component is implemented entirely in a shared library.


""""
""""
The GEOSgcm application written in python, starting from a  
The GEOSgcm application written in python, starting from a  
Root Component implemented in Fortran.
Root Component implemented in Fortran.
"""
"""


import MAPL
import MAPL


if __name == "__main__":
if __name == "__main__":


#  Instantiate the root component
#  Instantiate the root component
#  ------------------------------
#  ------------------------------
    gcs = MAPL.GridComp(lib='/some/path/libGEOSana.so')
    gcs = MAPL.GridComp(lib='/some/path/libGEOSana.so')


#  Instantiate MAPL, using a "Fortran" as a root component
#  Instantiate MAPL, using a "Fortran" as a root component
#  -------------------------------------------------------
#  -------------------------------------------------------
    mapl = MAPL(root=gcs)
    mapl = MAPL(root=gcs)


#  Run the cap
#  Run the cap
#  -----------
#  -----------
    mapl.go()
    mapl.go()

Revision as of 11:46, 18 August 2008

This document presents a very high level description of a python interface to MAPL.

GEOS-5 Use Cases

The examples below are based on the actual GEOS-5 GCM Application, and a few components at the very top of the hierarchy. Here we assumed that MAPL Grid Components can be implemented entirely in C/Fortran or in Python.

GEOS-5 Application with Fortran Root Component =

In this example, the very top root component is implemented entirely in a shared library.

""""
The GEOSgcm application written in python, starting from a 
Root Component implemented in Fortran.
"""
import MAPL
if __name == "__main__":
#   Instantiate the root component
#   ------------------------------
    gcs = MAPL.GridComp(lib='/some/path/libGEOSana.so')
#   Instantiate MAPL, using a "Fortran" as a root component
#   -------------------------------------------------------
    mapl = MAPL(root=gcs)
#   Run the cap
#   -----------
    mapl.go()