This works for me:

 
a = Cdouble[100.0]
b = Cdouble[10.0]
c = Cdouble[1.0]
ppmm = ccall((:multiply_, "fsbrtn"), Void,
             (Ptr{Float64},Ptr{Float64},Ptr{Float64}),a,b,c)
println(c[1])




On Wednesday, February 11, 2015 at 12:45:57 PM UTC-5, DP wrote:
>
> Trying to work with subroutines (I am a MATLAB person without fortran and 
> julia knowledge)
>
> File Name : fsbrtn.f90
>
> SUBROUTINE MULTIPLY(A,B,C) 
> DOUBLE PRECISION A,B,C 
> C = A*B 
> RETURN 
> END
>
> gfortran -shared -O2 fsbrtn.f90 -fPIC -o fsbrtn.so
>
> a = 100.0
> b = 10.0
> c = 1.0
> ppmm = ccall((:multiply_, "/home/juser/ManUTD/fortran_try/fsbrtn"),
>    Void,(Ptr{Float64},Ptr{Float64},Ptr{Float64}),&a,&b,c)
> println(c)
>
> Output
> 1.0
>
> Where am I going wrong?
> ​
>
> ergerg
>

Reply via email to