[comp.lang.fortran] Fortran/C Mixed lang. problems

voss@mdcbbs.com (04/10/91)

I have been trying to call C routines from fortran under Ultrix
with little success in passing strings or returning an exit status.

From what I could gather from the fortran documentation ( the section
is hopeless at best )and lots of trial and error, fortran passes strings 
implicitly as (address,length) whereas C requires an explicit declaration

ie fortran call of C function :
	status = str_func(str)

where the C function is declared as 
	integer str_func_ (str,str_len)
	char *str;
	int str_len;

Can anyone explain what is going on here ?  Also, if the C function contains
a return statement to return say a status code, the character string str will
have garbage appended to it and variable status will not contain the correct
value.  ???

Another interesting point I can't find a simple solution to is the fact 
that the Ultrix fortran compiler appends an underscore to function names.  
By doing so, how do you link with the standard C libraries which don't use 
this convention ?  I have been painfully writing little C functions that are
nothing more than shells around the standard routines but the names of these
shells have an underscore appended to their names.  YUCH !!!

Some solid examples of mixed language programming under ultrix would be a 
great benefit to understanding this stuff.

Any clues greatly appreciated.


					Frank Voss
					Husky Injection Molding Systems Ltd.
					(416) 951 5000