summaryrefslogtreecommitdiff
path: root/doc/f2py/index.html
diff options
context:
space:
mode:
authorPauli Virtanen <pav@iki.fi>2014-01-02 22:12:01 +0200
committerPauli Virtanen <pav@iki.fi>2014-01-02 22:19:47 +0200
commit75c2d2fe3cc9daa6589707fb6b8512ffa48fc365 (patch)
tree32e729ca94dd28e06c7c2e10fd250f2ce4b91a2a /doc/f2py/index.html
parenta32807e61b25205cc08d552127234b56709c6242 (diff)
downloadnumpy-75c2d2fe3cc9daa6589707fb6b8512ffa48fc365.tar.gz
DOC: move f2py documentation under doc/ and link its user guide with Sphinx
Diffstat (limited to 'doc/f2py/index.html')
-rw-r--r--doc/f2py/index.html264
1 files changed, 264 insertions, 0 deletions
diff --git a/doc/f2py/index.html b/doc/f2py/index.html
new file mode 100644
index 000000000..e162ed41a
--- /dev/null
+++ b/doc/f2py/index.html
@@ -0,0 +1,264 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
+<HTML>
+<HEAD>
+<META name="Author" content="Pearu Peterson">
+<!-- You may add here some keywords (comma separeted list) -->
+<META name="Keywords" content="fortran,python,interface,f2py,f2py2e,wrapper,fpig">
+<TITLE>F2PY - Fortran to Python Interface Generator</TITLE>
+<LINK rel="stylesheet" type="text/css" href="/styles/userstyle.css">
+</HEAD>
+
+<BODY>
+<!-- Begin of user text -->
+<H1>F2PY &shy; Fortran to Python Interface Generator</H1>
+by <em>Pearu Peterson</em>
+
+<h2>What's new?</h2>
+
+See <a href="NEWS.txt">NEWS.txt</a> for the latest changes in <code>f2py</code>.
+<dl>
+ <dt> July ??, 2002
+ <dd> Implemented prototype calculator, complete tests for scalar F77
+ functions, --help-compiler option. Fixed number of bugs and
+ removed obsolete features.
+ <dt> April 4, 2002
+ <dd> Fixed a nasty bug of copying one-dimensional non-contiguous arrays.
+ (Thanks to Travis O. for pointing this out).
+ <dt> March 26, 2002
+ <dd> Bug fixes, turned off F2PY_REPORT_ATEXIT by default.
+ <dt> March 13, 2002
+ <dd> MAC support, fixed incomplete dependency calculator, minor bug fixes.
+ <dt> March 3, 2002
+ <dd> Fixed memory leak and copying of multi-dimensional complex arrays.
+ <dt> <a href="oldnews.html">Old news</a>.
+</dl>
+
+<h2>Introduction</h2>
+
+Writing Python C/API wrappers for Fortran routines can be a very
+tedious task, especially if a Fortran routine takes more than 20
+arguments but only few of them are relevant for the problems that they
+solve. So, I have developed a tool that generates the C/API modules
+containing wrapper functions of Fortran routines. I call this
+tool as <em>F2PY &shy; Fortran to Python Interface Generator</em>.
+It is completely written in <a href="http://www.python.org">Python</a>
+language and can be called from the command line as <code>f2py</code>.
+<em>F2PY</em> (in NumPy) is released under the terms of the NumPy License.
+
+
+<h2><code>f2py</code>, Second Edition</h2>
+
+The development of <code>f2py</code> started in summer of 1999.
+For now (January, 2000) it has reached to stage of being a
+complete tool: it scans real Fortran code, creates signature file
+that the user can modify, constructs C/API module that can be
+complied and imported to Python, and it creates LaTeX documentation
+for wrapper functions. Below is a bit longer list of
+<code>f2py</code> features:
+<ol>
+ <li> <code>f2py</code> scans real Fortran codes and produces the signature files.
+ The syntax of the signature files is borrowed from the Fortran 90/95
+ language specification with some extensions.
+ <li> <code>f2py</code> generates a GNU Makefile that can be used
+ for building shared modules (see below for a list of supported
+ platforms/compilers). Starting from the third release,
+ <code>f2py</code> generates <code>setup_modulename.py</code> for
+ building extension modules using <code>distutils</code> tools.
+ <li> <code>f2py</code> uses the signature files to produce the wrappers for
+ Fortran 77 routines and their <code>COMMON</code> blocks.
+ <li> For <code>external</code> arguments <code>f2py</code> constructs a very flexible
+ call-back mechanism so that Python functions can be called from
+ Fortran.
+ <li> You can pass in almost arbitrary Python objects to wrapper
+ functions. If needed, <code>f2py</code> takes care of type-casting and
+ non-contiguous arrays.
+ <li> You can modify the signature files so that <code>f2py</code> will generate
+ wrapper functions with desired signatures. <code>depend()</code>
+ attribute is introduced to control the initialization order of the
+ variables. <code>f2py</code> introduces <code>intent(hide)</code>
+ attribute to remove
+ the particular argument from the argument list of the wrapper
+ function and <code>intent(c)</code> that is useful for wrapping C
+libraries. In addition, <code>optional</code> and
+<code>required</code>
+ attributes are introduced and employed.
+ <li> <code>f2py</code> supports almost all standard Fortran 77/90/95 constructs
+ and understands all basic Fortran types, including
+ (multi-dimensional, complex) arrays and character strings with
+ adjustable and assumed sizes/lengths.
+ <li> <code>f2py</code> generates a LaTeX document containing the
+ documentations of the wrapped functions (argument types, dimensions,
+ etc). The user can easily add some human readable text to the
+ documentation by inserting <code>note(&lt;LaTeX text&gt;)</code> attribute to
+ the definition of routine signatures.
+ <li> With <code>f2py</code> one can access also Fortran 90/95
+ module subroutines from Python.
+</ol>
+
+For more information, see the <a href="usersguide.html">User's
+Guide</a> of the tool. Windows users should also take a look at
+<a href="win32_notes.txt">f2py HOWTO for Win32</a> (its latest version
+can be found <a
+href="http://www.numpy.org/Members/eric/f2py_win32">here</a>).
+
+<h3>Requirements</h3>
+<ol>
+ <li> You'll need <a
+ href="http://www.python.org/download/">Python</a>
+ (1.5.2 or later, 2.2 is recommended) to run <code>f2py</code>
+ (because it uses exchanged module <code>re</code>).
+ To build generated extension modules with distutils setup script,
+ you'll need Python 2.x.
+ <li> You'll need <a
+ href="http://sourceforge.net/project/?group_id=1369">Numerical
+ Python</a>
+ (version 13 or later, 20.3 is recommended) to compile
+ C/API modules (because they use function
+ <code>PyArray_FromDimsAndDataAndDescr</code>)
+</ol>
+
+<h3>Download</h3>
+
+<dl>
+ <dt> User's Guide:
+ <dd> <a href="usersguide.html">usersguide.html</a>,
+ <a href="usersguide.pdf">usersguide.pdf</a>,
+ <a href="usersguide.ps.gz">usersguide.ps.gz</a>,
+ <a href="usersguide.dvi">usersguide.dvi</a>.
+ <dt> Snapshots of the fifth public release:
+ <dd> <a href="2.x">2.x</a>/<a href="2.x/F2PY-2-latest.tar.gz">F2PY-2-latest.tar.gz</a>
+ <dt> Snapshots of earlier releases:
+ <dd> <a href="rel-5.x">rel-5.x</a>, <a href="rel-4.x">rel-4.x</a>,
+ <a href="rel-3.x">rel-3.x</a>,
+ <a href="rel-2.x">rel-2.x</a>,<a href="rel-1.x">rel-1.x</a>,
+ <a href="rel-0.x">rel-0.x</a>
+</dl>
+
+<h3>Installation</h3>
+
+Unpack the source file, change to directory <code>f2py-?-???</code>
+and run <code>python setup.py install</code>. That's it!
+
+<h3>Platform/Compiler Related Notes</h3>
+
+<code>f2py</code> has been successfully tested on
+<ul>
+ <li> Intel Linux (MD7.0,RH6.1,RH4.2,Debian woody), Athlon Linux (RH6.1), Alpha Linux (RH5.2,RH6.1) with <a
+href="http://gcc.gnu.org/">gcc</a> (versions egcs-2.91.60,egcs-2.91.66, and 2.95.2).
+ <li> Intel Linux (MD7.0) with <a
+ href="http://www.psrv.com/index.html">Pacific-Sierra
+ Research</a> <a href="http://www.psrv.com/lnxf90.html">Personal
+ Linux VAST/f90 Fortran 90 compiler</a> (version V3.4N5).
+ <li> Intel Linux (RH6.1) with <a href="http://www.absoft.com/">Absoft F77/F90</a> compilers for Linux.
+ <li> IRIX64 with <a href="http://gcc.gnu.org/">gcc</a> (2.95.2) and <a
+href="http://www.sgi.com/developers/devtools/languages/mipspro.html">MIPSpro
+7 Compilers</a> (f77,f90,cc versions 7.30).
+ <li> Alpha Linux (RH5.2,RH6.1) with <a href="http://www.digital.com/fortran/linux/">Compaq Fortran </a> compiler (version V1.0-920).
+ <li> Linux with <a href="http://www.nag.co.uk/">NAGWare</a> Fortran
+ 95 compiler.
+ <li> <a href="http://developer.intel.com/software/products/compilers/f50/linux/">
+ Intel(R) Fortran Compiler for Linux</a>
+ <li> Windows 2000 with <a href="http://www.mingw.org">mingw32</a>.
+</ul>
+<code>f2py</code> will probably run on other UN*X systems as
+well. Additions to the list of platforms/compilers where
+<code>f2py</code> has been successfully used are most welcome.
+<P>
+<em>Note:</em>
+Using Compaq Fortran
+compiler on Alpha Linux is succesful unless when
+wrapping Fortran callback functions returning
+<code>COMPLEX</code>. This applies also for IRIX64.
+<P>
+<em>Note:</em>
+Fortran 90/95 module support is currently tested with Absoft F90, VAST/f90, Intel F90 compilers on Linux (MD7.0,Debian woody).
+
+
+<h3><a name="f2py-users">Mailing list</a></h3>
+
+There is a mailing list <a
+href="http://cens.ioc.ee/pipermail/f2py-users/">f2py-users</a>
+available for the users of the <code>f2py</code>
+program and it is open for discussion, questions, and answers. You can subscribe
+the list <a href="http://cens.ioc.ee/mailman/listinfo/f2py-users">here</a>.
+
+<h3><a href="http://cens.ioc.ee/cgi-bin/cvsweb/python/f2py2e/">CVS Repository</a></h3>
+
+<code>f2py</code> is being developed under <a href="http://www.sourcegear.com/CVS">CVS</a> and those who are
+interested in the really latest version of <code>f2py</code> (possibly
+unstable) can get it from the repository as follows:
+<ol>
+ <li> First you need to login (the password is <code>guest</code>):
+<pre>
+> cvs -d :pserver:anonymous@cens.ioc.ee:/home/cvs login
+</pre>
+ <li> and then do the checkout:
+<pre>
+> cvs -z6 -d :pserver:anonymous@cens.ioc.ee:/home/cvs checkout f2py2e
+</pre>
+ <li> In the directory <code>f2py2e</code> you can get the updates by hitting
+<pre>
+> cvs -z6 update -P -d
+</pre>
+</ol>
+You can browse <code>f2py</code> CVS repository <a href="http://cens.ioc.ee/cgi-bin/cvsweb/python/f2py2e/">here</a>.
+
+<h2>Related sites</h2>
+
+<ol>
+ <li> <a href="http://pfdubois.com/numpy/" target="_top">Numerical Python</a>.
+ <li> <a href="http://pyfortran.sourceforge.net/" target="_top">Pyfort</a> -- The Python-Fortran connection tool.
+ <li> <a href="http://starship.python.net/crew/hinsen/scientific.html" target="_top">Scientific Python</a>.
+ <li> <a href="http://numpy.org/" target="_top">SciPy</a> -- Scientific tools for Python (includes Multipack).
+ <li> <a href="http://www.fortran.com/fortran/" target="_top">The Fortran Company</a>.
+ <li> <a href="http://www.j3-fortran.org/" target="_top">Fortran Standards</a>.
+
+ <li> <a href="http://www.fortran.com/fortran/F77_std/rjcnf.html">American National Standard Programming Language FORTRAN ANSI(R) X3.9-1978</a>
+ <li> <a href="http://www.mathtools.net" target="_top">Mathtools.net</a> -- A technical computing portal for all scientific and engineering needs.
+
+</ol>
+
+<!-- End of user text -->
+<HR>
+<ADDRESS>
+<A href="http://validator.w3.org/"><IMG border=0 align=right src="/icons/vh40.gif" alt="Valid HTML 4.0!" height=31 width=88></A>
+<A href="http://cens.ioc.ee/~pearu/" target="_top">Pearu Peterson</A>
+<A href="mailto:pearu(at)ioc.ee">&lt;pearu(at)ioc.ee&gt;</A><BR>
+<!-- hhmts start -->
+Last modified: Fri Jan 20 14:55:12 MST 2006
+<!-- hhmts end -->
+</ADDRESS>
+<!-- You may want to comment the following line out when the document is final-->
+<!-- Check that the reference is right -->
+<!--A href="http://validator.w3.org/check?uri=http://cens.ioc.ee/projects/f2py2e/index.html;ss"> Submit this page for validation</A-->
+
+<p>
+<center>
+This <a href="http://www.ctv.es/USERS/irmina/pythonring.html">Python
+ring</a> site owned by <a href="mailto:pearu(at)ioc.ee">Pearu Peterson</a>.
+<br>
+[
+ <a href="http://nav.webring.org/cgi-bin/navcgi?ring=python_ring;id=12;prev5">Previous 5 Sites</a>
+|
+ <a href="http://nav.webring.org/cgi-bin/navcgi?ring=python_ring;id=12;prev">Previous</a>
+|
+ <a href="http://nav.webring.org/cgi-bin/navcgi?ring=python_ring;id=12;next">Next</a>
+|
+ <a href="http://nav.webring.org/cgi-bin/navcgi?ring=python_ring;id=12;next5">Next 5 Sites</a>
+|
+ <a href="http://nav.webring.org/cgi-bin/navcgi?ring=python_ring;random">Random Site</a>
+|
+ <a href="http://nav.webring.org/cgi-bin/navcgi?ring=python_ring;list">List Sites</a>
+]
+</center>
+<p>
+
+
+
+</BODY>
+
+
+</HTML>
+
+
+