У меня есть простой FORtran код следующим образом:Assembler ошибка при использовании инструмента f2py с FORtran кодом
subroutine square_cube(i, isquare, icube)
integer, intent(in) :: i
integer, intent(out) :: isquare, icube
isquare = i**2
icube = i**3
end subroutine square_cube
subroutine hellofortran (n)
integer n
do 100 i=0, n
print *, "Fortran says hello"
100 continue
end subroutine hellofortran
program xx
implicit none
integer :: i, isq, icub
i = 4
call square_cube(i, isq, icub)
print*, "i,i^2,i^3=", i, isq, icub
call hellofortran (i)
end program xx
Эта программа отлично работает, когда я построить и запустить его на Code :: Blocks 13.12. This и this post предлагают изменить имя модуля python или расширение источника fortran. Я переименовал источник с расширениями .f90
и '.f95', и все же он не дает ошибок в Code :: Blocks.
Я использую Cygwin для всего этого. Когда источник Fortran скомпилирован, я получаю .o
и файл .exe
. Когда я пытаюсь построить FORtran кода, используя f2py -c -m fmod test1.f95
Я всегда получаю некоторые ошибки ассемблера, как:
....
E:\cygwin64\tmp/cc6Dk38U.s:34: Error: invalid instruction suffix for `push'
E:\cygwin64\tmp/cc6Dk38U.s:35: Error: invalid instruction suffix for `push'
E:\cygwin64\tmp/cc6Dk38U.s:39: Error: invalid instruction suffix for `push'
E:\cygwin64\tmp/cc6Dk38U.s:41: Error: invalid instruction suffix for `push'
E:\cygwin64\tmp/cc6Dk38U.s:43: Error: invalid instruction suffix for `push'
E:\cygwin64\tmp/cc6Dk38U.s:58: Error: invalid instruction suffix for `push'
E:\cygwin64\tmp/cc6Dk38U.s:59: Error: invalid instruction suffix for `push'
E:\cygwin64\tmp/cc6Dk38U.s:62: Error: invalid instruction suffix for `push'
E:\cygwin64\tmp/cc6Dk38U.s:63: Error: invalid instruction suffix for `push'
E:\cygwin64\tmp/cc6Dk38U.s:66: Error: invalid instruction suffix for `push'
....
error: Command "/cygdrive/e/g95/bin/g95 -ffixed-form -fno-second-underscore -O -I/tmp/tmpKd7WH9/src.cygwin-1.7.33-x86_64-2.7 -I/usr/lib/python2.7/site-packages/numpy/core/include -I/usr/include/python2.7 -c -c test1.f95 -o /tmp/tmpKd7WH9/test1.o" failed with exit status 1
У меня есть g95 компилятор Фортрана.
В чем может быть проблема?
Не используйте теги, специфичные для версии, без основного тега ('fortran') в следующий раз. –