[comp.lang.fortran] MS Fortran calling C function GETENV

sun@me.utoronto.ca (Andy Sun) (06/12/91)

This sounds absurd but it is really what happened. I am using Microsoft
Fortran 5.00 and need to use GETENV. I flipped through all the manuals
(well, almost all, I didn't bother checking the edtior user's guide)
and couldn't find any reference to GETENV (they have SYSTEM and SPAWNLP
only). The "Advanced Topics" menu have this line:

	"The FORTRAN run-time libraries MLIBFORx.LIB and LLIBFORx.lib
	 include the system routine and a subset of the spawnlp routine
	 (as well as other routines) originally from the C library.
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^

Can someone who bought MS Fortran tell me if you find the list of "as
well as other routines" anywhere is the manual? I can't. I might have
overlooked it but I am pretty sure at least the indices do not have this.

Anyway, I guessed they might have GETENV (since they have GETTIM and GETDAT)
and went by trial-and-error to create the interface module like the following:

	interface to character*80 funtion getenv[c]
       & (string[reference])
	character*1 string
	end

and the calling program

	character*80 getenv
	character*10 var
	var = getenv ("PROMPT"c)
	end

and it compiled and ran. My question is: do I have to specify character*80
for GETENV or I can do it dynamically? Just putting character does not seem
to work. I can see why I have to explicitly declare variable 'var', but
I am suspicious about the function call itself. Is a string of 80 characters
enough? Too much? I would appreciate it if someone can give me the answer
to this or at least educated guesses (mine aren't. They are semi-blind guesses
based on MS C getenv function call arguments).

Andy