I posted this on StackOverflow. It was recommended I post here. See here 
<http://stackoverflow.com/q/27498755/1965432>for background.

Where can I find good examples of integrating (modern) Fortran code with 
Julia? 

I am using the GNU gfortran compiler (on Cygwin) for my own module. A good 
example will hopefully start from the compilation stage, address mangled 
names and call the subroutine from Julia via ccall. Most examples I've seen 
skip the first two stages. On the SO post, I refer to Modern Fortran 
explicitly because what I've seen so far tends to be for legacy code -- 
think punchcard-style fixed-width formatting Fortran (that goes for GLMNet, 
which was allegedly written in 2008 but adheres to those conventions).

So imagine that I have the following module in Fortran90 file named 
'f90tojl.f90':

module m
contains
   integer function five()
      five = 5
   end function five
end module m

This example is from here 
<http://en.wikipedia.org/wiki/Name_mangling#Name_mangling_in_Fortran>. I 
compile it with gfortan as follows to create a shared library:

 gfortran -shared -O2 f90tojl.f90 -o -fPIC f90tojl.so

And my, admittedly shaky, understanding from reading the julia docs suggest 
that I should be able to call the function five like so:

ccall( (:__m_MOD_five, "f90tojl"), Int, () )

It didn't work for me. I get ''error compiling anonymous: could not load 
module f90tojl... ". Anyone cares to enlighten me? I got the sneaky sense 
I'm doing something silly....

Thanks in advance,

V.

Reply via email to