Python Interface to MAPL: Difference between revisions

 
(3 intermediate revisions by the same user not shown)
Line 7: Line 7:
== GEOS-5 Application with Fortran Root Component ==
== GEOS-5 Application with Fortran Root Component ==


In this example, the very top root component is implemented entirely in a shared library.
In this example of a GEOS-5 application written in Python, 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
  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/libGEOSgcs.so')
 
 
  #  Instantiate MAPL
  #  Instantiate MAPL
  #  ----------------
  #  ----------------
     mapl = MAPL(root=gcs)
     mapl = MAPL(root=gcs)
 
 
  #  Run the cap
  #  Run the cap
  #  -----------
  #  -----------
Line 32: Line 27:
== GEOS-5 Application with Python Root Component ==
== GEOS-5 Application with Python Root Component ==


In this example, the very top root component is implemented in Python.
In this example, the very top root component is now implemented in Python.
 
""""
The GEOSgcm application written in python, starting from a
Root Component implemented in Fortran.
"""


  import MAPL
  import MAPL
Line 43: Line 33:


  if __name == "__main__":
  if __name == "__main__":
 
  #  Instantiate the Python root component
  #  Instantiate the Python root component
  #  -------------------------------------
  #  -------------------------------------
     gcs = GEOSgcs(rc='gcs.rc')
     gcs = GEOSgcs(rc='gcs.rc')
 
  #  Instantiate MAPL
  #  Instantiate MAPL
  #  ----------------
  #  ----------------
     mapl = MAPL(root=gcs)
     mapl = MAPL(root=gcs)
 
  #  Run the cap
  #  Run the cap
  #  -----------
  #  -----------
Line 135: Line 125:
In this case we implement the standard '''Run()''' method, but inherit '''Initialize()''' and '''Finalize()''' from the base class '''MAPL.GridComp'''
In this case we implement the standard '''Run()''' method, but inherit '''Initialize()''' and '''Finalize()''' from the base class '''MAPL.GridComp'''


     def Run(self):
     def Run(self,clock):
         """
         """
         Implementation of a simple run method.
         Implementation of a simple run method.
Line 142: Line 132:
  #      Run the base class method
  #      Run the base class method
  #      -------------------------
  #      -------------------------
         MAPL.GridComp.__Run__(self)
         MAPL.GridComp.__Run__(self,clock)
   
   
  #      Retrieve some data from a state
  #      Retrieve some data from a state
  #      -------------------------------
  #      -------------------------------
         uwnd, vwnd, = self.Export.GetPointer(['UWND', 'VWND'])
         uwnd, vwnd, = self.Export.GetPointer(['UWND', 'VWND'])
#      Print states
#      ------------
        self.Internal.print()
        self.Import.print()
        sllf.Export.print()
   
   
  #      Just print it
  #      Just print it