Thanks for your help,
I had read those web pages already, and the post you referred to
already.
So I will try to give more details to what I have done till now
First I must mention again that I am using a mac under tiger. So
I am using .so files.
My fortran file is called kmeans.f, and my subroutine or wrapper
I named it "wrapper"
There is my first line of code
subroutine wrapper(n, p, nran, mat, ishort, w, z, ntran,
istand, k1, k2, iassign, iseed)
In the terminal:
R CMD SHLIB ~/Desktop/Fortan_kmeans/kmeans3.fg77
-fno-common -g -O2 -c /Users/sebas/Desktop/Fortan_kmeans/
kmeans3.f -o /Users/sebas/Desktop/Fortan_kmeans/kmeans3.o
gcc-3.3 -bundle -flat_namespace -undefined suppress -L/
usr/ local/lib -o
/Users/sebas/Desktop/Fortan_kmeans/kmeans3.so /Users/
sebas/ Desktop/Fortan_kmeans/kmeans3.o
-L/usr/local/lib/gcc/powerpc-apple-darwin6.8/3.4.2 -lg2c -
lSystem -framework R
The files append to compile without any warnings.
In R:
dyn.load("/Users/sebas/Desktop/Fortan_kmeans/kmeans3.so")
getLoadedDLLs()
Filename
base
base
grDevices /Library/Frameworks/R.framework/Resources/library/
grDevices/ libs/grDevices.so
stats /Library/Frameworks/R.framework/Resources/
library/ stats/libs/stats.so
methods /Library/Frameworks/R.framework/Resources/library/
methods/libs/methods.so
kmeans3 /Users/sebas/Desktop/
Fortan_kmeans/kmeans3.so
Dynamic.Lookup
base FALSE
grDevices FALSE
stats FALSE
methods FALSE
kmeans3 TRUE
Dyn.load seems to work since if I type in getLoadedDLLs() I can
see the link.
zozo=.Fortran(symbol.For("wrapper"),n=as.integer(n),
p=as.integer (p), nran=as.integer(nran), mat=as.matrix(mat),
ishort=as.vector (ishort), w=as.vector(w),ntran=as.integer(ntran),
istand=as.integer (istand), k1=as.integer(k1), k2=as.integer(k2),
iassign=as.integer (iassign), iseed=as.integer(iseed))
Erreur dans .Fortran(symbol.For("wrapper"), n = as.integer(n), p
= as.integer(p), :
nom de fonction "Fortran" absent de la table d'allocation
Even so I am using in the name parameter of the .Fortran
function, "wrapper", "kmeans3", "wrapper_" or "kmeans3_"
I always get the same error call telling me that the fonction
"Fortran" is not in the allocation table
That is where I am at now, it has been 4 days I am digging into
docs but I haven't been able to find what I am doing wrong.
R is so great, I got tons of Fortran lines and subroutine to
implement in R but I guess I am missing a little thing to make it
work and now I really don't have a cue how to solve that problem.
Cheers
I will be anxiously waiting for any reply
Sébastien
If I understand correctly, you used
.Fortran("wrapper",....)
The problem might be that the function name ("wrapper") was
changed in the
compilation of the code! See the mail bellow for clues (a
previous post on
R-help by Duncan Murdoch)
Natalie Hawkins wrote:
Using R 2.0.1 on Windows XP, I am getting an error
msg:
Error in .Fortran("conic", nxy = nxy, npt = npt, CP =
cp, EP1 = ep1, EP2 = ep2, :
Fortran function name not in load table
I am wondering if there is a way to see what function
names are in the load table? Maybe the function name
has been altered?
You need to look at the DLL to see what name it is exporting. I
believe
R would be looking for "conic_". If your Fortran compiler doesn't
append underscores, you'll get this error.
You might want to look at this page
http://www.stats.uwo.ca/faculty/murdoch/software/compilingDLLs/
index.html#badname
or this one
http://www.stats.uwo.ca/faculty/murdoch/software/compilingDLLs/
fortran.html
for more help.
Duncan Murdoch
[[alternative HTML version deleted]]
---------------------------------------------------------------------
---
______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel