I would like to make such a file to use it in python. how can i make a shared library from fortran source?
I tested the code below.
gfortran -c mod.f90 #gfortran -c sub1.f90 gfortran -c func.f90 gfortran -shared -fPIC -o func.so func.f90 mod.o
but I could not import it in python. I used the module file in the fortran source code. and I imported the fortran source code from python. I am not sure that I am right.
[===>14:47:59]f1:python Python 2.7.2+ (default, Oct 4 2011, 20:03:08) [GCC 4.6.1] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> import func Traceback (most recent call last): File "<stdin>", line 1, in <module> ImportError: dynamic module does not define init function (initfunc) func.f90 ----------------------------------------- program func use mod_test switch1 = .true. switch2 = .false. x = 1.2 !call test(x, z) print *, b, str, z, switch1, switch2 !print *, 'hello' end program func ----------------------------------------- mod.f90 ----------------------------------------- module mod_test !implicit none integer a real x, y, z real*8 :: b = 3.4 logical*2 switch1, switch2 character*5, parameter :: str = 'good' end module mod_test ----------------------------------------- sub1.f90 ----------------------------------------- subroutine test(input, output) real, intent(in) :: input real, intent(out) :: output output = (input + input) end subroutine -----------------------------------------
source share