[R] Help running a Fortran subroutine from R
Ray Brownrigg
Ray.Brownrigg at ecs.vuw.ac.nz
Wed Mar 17 01:45:20 CET 2010
On Wed, 17 Mar 2010, dc896148 wrote:
> The output will be an array of the same dimension as 'array', the first
> argument passed to the subroutine. The output array is the second
> argument, 'array1', which will be populated with the smoothed values
> according to the subroutine.
> I can run the subroutine in R without receiving an error, it's just that
> the returned values in 'array1' appear incorrect. I know they are wrong,
> because if the subroutine is just averaging nearby elements together, the
> results should be of somewhat similar magnitude. However, in the output, I
> receive values such as 1.5e+200, which is astronomically huge!
> Missing values are REALS and denoted 999.00 in the text file. The output
> can and will contain missing values because if there are no values to
> average within a nx x ny window, the result returned is missing.
>
> Hope this makes sense. I also hope someone can get some reasonable output.
> I compiled the filter2d.f file with g77, so I don't know if this would be a
> problem to. I am trying R CMD SHLIB to re-create the DLL file, but I
> haven't had any luck yet. If anyone else is able to, please let me know.
>
> Thanks in advance.
But you said in your original message:
Then I run the Fortran subroutine...
out <- .Fortran("filter2d",
as.single(array),
as.single(array),
as.integer(nx),
as.integer(ny),
as.integer(halfintx),
as.integer(halfinty),
as.single(mask),
as.single(subarray),
as.single(subarray1))
So you are overwriting the input array with the output (or was that just a typo?)
Ray
More information about the R-help
mailing list