Also you're going to be better off using the MinGW-w64 cross-compilers, 
rather than the Cygwin's own gfortran. Try installing 
mingw64-x86_64-gcc-fortran through Cygwin's setup for 64 bit, or 
mingw64-i686-gcc-fortran for 32 bit. Then instead of calling gfortran to 
compile your Fortran code, call x86_64-w64-mingw32-gfortran (or 
i686-w64-mingw32-gfortran for 32 bit). Everything else should work more or 
less the same.


On Tuesday, December 16, 2014 6:04:43 PM UTC-8, Vathy M. Kamulete wrote:

> 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