[R] Problem with writeBin and importing into gfortran compiled programs
jgarcia at ija.csic.es
jgarcia at ija.csic.es
Thu Jan 7 20:05:48 CET 2010
Hi all,
I'm having problems trying to export binary arrays from R and importing
them into fortran (linux openSUSE 10.3 (x86_64), gfortran compiler,
fortran 90/95 program).
Let's say the problem can be expressed as:
R part
------------
>whini <- runif(1000)
>writeBin(whini,"fwhini.dat")
f90 part
------------
PROGRAM foo
INTEGER, PARAMETER :: DP = KIND(1.0D0)
INTEGER :: status
REAL(DP), DIMENSION(10,100) :: whini
OPEN(UNIT=5, FILE='fwhini.dat', STATUS='OLD', ACTION='READ', &
FORM='UNFORMATTED', IOSTAT=status)
READ(5) whini
CLOSE(5)
WRITE(*,*) whini
END PROGRAM
Now, if within the R session I check
>typeof(whini)
[1] "double"
and try
>whini.copy <- readBin("fwhini.dat",what=double(),n=1000)
the copy of whini is right. However, execution of the fortran program
gives the message:
Fortran runtime error: Unformatted file structure has been corrupted.
I've tried also to declare whini in the fortran part as SINGLE precision,
and to force writeBin using the "size" argument.
size=4 and size=8 give the same error (whini as double in the fortran
part), while size=16 gives the alternative error
"Fortran runtime error: I/O past end of record on unformatted file"
Please, could you help me with this problem?
Thanks,
Javier
---
More information about the R-help
mailing list