#8427: notebook fortran mode does not work with blank first line (or subroutine
starting on first line)
-------------------------------------+-------------------------------------
Reporter: jason | Owner: was
Type: defect | Status: closed
Priority: major | Milestone: sage-
Component: interfaces | duplicate/invalid/wontfix
Keywords: | Resolution: fixed
Authors: | Merged in:
Report Upstream: Fixed upstream, | Reviewers: Jeroen Demeyer
but not in a stable release. | Work issues:
Branch: | Commit:
Dependencies: | Stopgaps:
-------------------------------------+-------------------------------------
Description changed by chapoton:
Old description:
> This example does not work from the tutorial
> http://www.sagemath.org/doc/numerical_sage/f2py.html:
>
> {{{
> %fortran
>
> Subroutine Rescale(a,b,n)
> Implicit none
> Integer n,i,j
> Real*8 a(n,n), b
> Cf2py intent(in,out) a
> do i = 1,n
> do j=1,n
> a(i,j)=b*a(i,j)
> end do
> end do
> end
> }}}
>
> The error is:
>
> {{{
> Traceback (most recent call last):
> File "<string>", line 1, in <module>
> File "/usr/local/sage2/local/lib/python2.6/site-
> packages/numpy/f2py/f2py2e.py", line 557, in main
> run_compile()
> File "/usr/local/sage2/local/lib/python2.6/site-
> packages/numpy/f2py/f2py2e.py", line 543, in run_compile
> setup(ext_modules = [ext])
> File "/usr/local/sage2/local/lib/python2.6/site-
> packages/numpy/distutils/core.py", line 184, in setup
> return old_setup(**new_attr)
> File "/usr/local/sage2/local/lib/python/distutils/core.py", line 152,
> in setup
> dist.run_commands()
> File "/usr/local/sage2/local/lib/python/distutils/dist.py", line 975,
> in run_commands
> self.run_command(cmd)
> File "/usr/local/sage2/local/lib/python/distutils/dist.py", line 995,
> in run_command
> cmd_obj.run()
> File "/usr/local/sage2/local/lib/python2.6/site-
> packages/numpy/distutils/command/build.py", line 37, in run
> old_build.run(self)
> File "/usr/local/sage2/local/lib/python/distutils/command/build.py",
> line 134, in run
> self.run_command(cmd_name)
> File "/usr/local/sage2/local/lib/python/distutils/cmd.py", line 333, in
> run_command
> self.distribution.run_command(command)
> File "/usr/local/sage2/local/lib/python/distutils/dist.py", line 995,
> in run_command
> cmd_obj.run()
> File "/usr/local/sage2/local/lib/python2.6/site-
> packages/numpy/distutils/command/build_src.py", line 130, in run
> self.build_sources()
> File "/usr/local/sage2/local/lib/python2.6/site-
> packages/numpy/distutils/command/build_src.py", line 147, in
> build_sources
> self.build_extension_sources(ext)
> File "/usr/local/sage2/local/lib/python2.6/site-
> packages/numpy/distutils/command/build_src.py", line 256, in
> build_extension_sources
> sources = self.f2py_sources(sources, ext)
> File "/usr/local/sage2/local/lib/python2.6/site-
> packages/numpy/distutils/command/build_src.py", line 514, in f2py_sources
> ['-m',ext_name]+f_sources)
> File "/usr/local/sage2/local/lib/python2.6/site-
> packages/numpy/f2py/f2py2e.py", line 338, in run_main
> postlist=callcrackfortran(files,options)
> File "/usr/local/sage2/local/lib/python2.6/site-
> packages/numpy/f2py/f2py2e.py", line 276, in callcrackfortran
> postlist=crackfortran.crackfortran(files)
> File "/usr/local/sage2/local/lib/python2.6/site-
> packages/numpy/f2py/crackfortran.py", line 2683, in crackfortran
> readfortrancode(files,crackline)
> File "/usr/local/sage2/local/lib/python2.6/site-
> packages/numpy/f2py/crackfortran.py", line 346, in readfortrancode
> 'this code is in fix form?\n\tline=%s' % `l`)
> Exception: readfortrancode: Found non-(space,digit) char in the first
> column.
> Are you sure that this code is in fix form?
> line='Subroutine Rescale(a,b,n)'
>
> Traceback (most recent call last):
> File "<stdin>", line 1, in <module>
> File "_sage_input_2.py", line 19, in <module>
> end''',
> '/sagenb/sagenb/sage_notebook.sagenb/home/jason3/382/cells/1')
> File "/usr/local/sage2/local/lib/python2.6/site-
> packages/sagenb-0.7.5.1-py2.6.egg/sagenb/misc/support.py", line 473, in
> syseval
> return system.eval(cmd, sage_globals, locals = sage_globals)
> File "/usr/local/sage2/local/lib/python2.6/site-
> packages/sage/misc/inline_fortran.py", line 92, in eval
> os.unlink(name + '.so')
> OSError: [Errno 2] No such file or directory: 'fortran_module_0.so'
>
> }}}
>
> I get the same error if I delete the blank line after %fortran.
>
> However, if I change the notebook cell to have a comment as the first
> line, it seems to work just fine:
>
> {{{
> %fortran
> C
> Subroutine Rescale(a,b,n)
> Implicit none
> Integer n,i,j
> Real*8 a(n,n), b
> Cf2py intent(in,out) a
> do i = 1,n
> do j=1,n
> a(i,j)=b*a(i,j)
> end do
> end do
> end
> }}}
>
> This is on Sage 4.3.3 (sagenb.org)
New description:
This example does not work from the tutorial
http://www.sagemath.org/doc/numerical_sage/f2py.html:
{{{
%fortran
Subroutine Rescale(a,b,n)
Implicit none
Integer n,i,j
Real*8 a(n,n), b
Cf2py intent(in,out) a
do i = 1,n
do j=1,n
a(i,j)=b*a(i,j)
end do
end do
end
}}}
The error is:
{{{
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/usr/local/sage2/local/lib/python2.6/site-
packages/numpy/f2py/f2py2e.py", line 557, in main
run_compile()
File "/usr/local/sage2/local/lib/python2.6/site-
packages/numpy/f2py/f2py2e.py", line 543, in run_compile
setup(ext_modules = [ext])
File "/usr/local/sage2/local/lib/python2.6/site-
packages/numpy/distutils/core.py", line 184, in setup
return old_setup(**new_attr)
File "/usr/local/sage2/local/lib/python/distutils/core.py", line 152, in
setup
dist.run_commands()
File "/usr/local/sage2/local/lib/python/distutils/dist.py", line 975, in
run_commands
self.run_command(cmd)
File "/usr/local/sage2/local/lib/python/distutils/dist.py", line 995, in
run_command
cmd_obj.run()
File "/usr/local/sage2/local/lib/python2.6/site-
packages/numpy/distutils/command/build.py", line 37, in run
old_build.run(self)
File "/usr/local/sage2/local/lib/python/distutils/command/build.py",
line 134, in run
self.run_command(cmd_name)
File "/usr/local/sage2/local/lib/python/distutils/cmd.py", line 333, in
run_command
self.distribution.run_command(command)
File "/usr/local/sage2/local/lib/python/distutils/dist.py", line 995, in
run_command
cmd_obj.run()
File "/usr/local/sage2/local/lib/python2.6/site-
packages/numpy/distutils/command/build_src.py", line 130, in run
self.build_sources()
File "/usr/local/sage2/local/lib/python2.6/site-
packages/numpy/distutils/command/build_src.py", line 147, in build_sources
self.build_extension_sources(ext)
File "/usr/local/sage2/local/lib/python2.6/site-
packages/numpy/distutils/command/build_src.py", line 256, in
build_extension_sources
sources = self.f2py_sources(sources, ext)
File "/usr/local/sage2/local/lib/python2.6/site-
packages/numpy/distutils/command/build_src.py", line 514, in f2py_sources
['-m',ext_name]+f_sources)
File "/usr/local/sage2/local/lib/python2.6/site-
packages/numpy/f2py/f2py2e.py", line 338, in run_main
postlist=callcrackfortran(files,options)
File "/usr/local/sage2/local/lib/python2.6/site-
packages/numpy/f2py/f2py2e.py", line 276, in callcrackfortran
postlist=crackfortran.crackfortran(files)
File "/usr/local/sage2/local/lib/python2.6/site-
packages/numpy/f2py/crackfortran.py", line 2683, in crackfortran
readfortrancode(files,crackline)
File "/usr/local/sage2/local/lib/python2.6/site-
packages/numpy/f2py/crackfortran.py", line 346, in readfortrancode
'this code is in fix form?\n\tline=%s' % `l`)
Exception: readfortrancode: Found non-(space,digit) char in the first
column.
Are you sure that this code is in fix form?
line='Subroutine Rescale(a,b,n)'
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "_sage_input_2.py", line 19, in <module>
end''', '/sagenb/sagenb/sage_notebook.sagenb/home/jason3/382/cells/1')
File "/usr/local/sage2/local/lib/python2.6/site-
packages/sagenb-0.7.5.1-py2.6.egg/sagenb/misc/support.py", line 473, in
syseval
return system.eval(cmd, sage_globals, locals = sage_globals)
File "/usr/local/sage2/local/lib/python2.6/site-
packages/sage/misc/inline_fortran.py", line 92, in eval
os.unlink(name + '.so')
OSError: [Errno 2] No such file or directory: 'fortran_module_0.so'
}}}
I get the same error if I delete the blank line after %fortran.
However, if I change the notebook cell to have a comment as the first
line, it seems to work just fine:
{{{
%fortran
C
Subroutine Rescale(a,b,n)
Implicit none
Integer n,i,j
Real*8 a(n,n), b
Cf2py intent(in,out) a
do i = 1,n
do j=1,n
a(i,j)=b*a(i,j)
end do
end do
end
}}}
This is on Sage 4.3.3 (sagenb.org)
--
--
Ticket URL: <http://trac.sagemath.org/ticket/8427#comment:12>
Sage <http://www.sagemath.org>
Sage: Creating a Viable Open Source Alternative to Magma, Maple, Mathematica,
and MATLAB
--
You received this message because you are subscribed to the Google Groups
"sage-trac" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/sage-trac.
For more options, visit https://groups.google.com/d/optout.