On 04/05/2011 8:26 AM, vioravis wrote:
I have the following FORTRAN code converted to a DLL:
! my_xmean.f90
!
! FUNCTIONS/SUBROUTINES exported from my_function.dll:
! my_function - subroutine
!
subroutine my_xmean(X,N,XMEAN)
! Expose subroutine my_function to users of this DLL
!
!DEC$ ATTRIBUTES DLLEXPORT,C,REFERENCE,ALIAS:'my_xmean_'::my_xmean
! Body of my_function
DOUBLE PRECISION X(N)
XMEAN=0D0
DO J=1,N
XMEAN=XMEAN+X(J)
END DO
XMEAN=XMEAN/N
RETURN
end subroutine my_xmean
When I call this DLL from R, it gets loaded properly but the values of XMEAN
calcualted are way off:
x<- 1:6
> .Fortran("my_xmean",as.double(X),as.integer(length(X)),double(1))
[[1]]
[1] 1 2 3 4 5 6
[[2]]
[1] 6
$xmean
[1] 5.336073e-315
Can someone please let me what is causing this huge difference??? Thank you.
I don't see a declaration of its type in the Fortran code, so it
probably defaulted to REAL, not DOUBLE PRECISION.
Duncan Murdoch
______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel