Fortran compiler¶
- class sage.misc.inline_fortran.InlineFortran(globals=None)¶
Bases:
object- add_library(s)¶
- add_library_path(s)¶
- eval(x, globals=None, locals=None)¶
Compile fortran code
xand adds the functions in it toglobals.INPUT:
x– Fortran codeglobals– a dict to which to add the functions from the fortran modulelocals– ignored
EXAMPLES:
sage: code = ''' ....: C FILE: FIB1.F ....: SUBROUTINE FIB(A,N) ....: C ....: C CALCULATE FIRST N FIBONACCI NUMBERS ....: C ....: INTEGER N ....: REAL*8 A(N) ....: DO I=1,N ....: IF (I.EQ.1) THEN ....: A(I) = 0.0D0 ....: ELSEIF (I.EQ.2) THEN ....: A(I) = 1.0D0 ....: ELSE ....: A(I) = A(I-1) + A(I-2) ....: ENDIF ....: ENDDO ....: END ....: C END FILE FIB1.F ....: ''' sage: fortran(code, globals()) sage: import numpy sage: a = numpy.array(range(10), dtype=float) sage: fib(a, 10) sage: a array([ 0., 1., 1., 2., 3., 5., 8., 13., 21., 34.])