jan@lipari.usc.edu.UUCP (11/19/87)
Can someone out there help me with the foreign function
interface of Common Lisp running on a Sun 3/260?
The problem is as follows:
I am trying to call a fortran77 function from lisp.
So far all works fine except, except that I don't
seem to be able to write anything to output, or to
a file for that matter, from a fortran routine.
All it does is create the file (for std. output this
is fort.6) and only occasionally writes something into
this file. The command "call flush(6)" helps a bit with that.
To load the fortran function and libraries I do the following
in Lisp:
(define-fortran-function foo (S i) :result-type :integer)
(load-foreign-files '("foo.o") '("-lU77" "-lF77" "-lI77" "-lc"))
where foo.o is the f77 -c foo.f of something like:
Integer function foo(S,I)
Integer i
character*10 s
print*, "WhyDoesN'T ThisPRINT", i
....
C More irrelevant stuff
....
foo = i+1
return
end
I tried all kinds of things (formatted output, creating new files,
etc), but nothing has worked so far. When foo is linked with a regular
fortran program, it works just fine.
Anyone have an idea? My impression is that somehow some print buffer
doesn't get "flushed" to regular output but I have no clue on what to do
about that.
Any suggestions are greatly appreciated.
Jan
jan%lipari@oberon.usc.edu
arpa: jan%lipari@oberon.usc.edu
vdb@usc-cse.csnet (or vdb%usc-cse@csnet-relay.arpa), vdb@usc-cse.usc.edu
uucp: ..!{{decvax,ucbvax}!sdcsvax,hplabs,allegra,trwrb}!sdcrdcf!uscvax!vdb