ENVGET()is the Fortran-90-generic (I/O API-3.2 or later only) that calls the following (or various other routines), as determined by the argument-list:
ENVREAL()is a Fortran wrapper calling the Cenvrealc()
BENVREAL()also hasMINVALO, MAXVALarguments (I/O API-3.2 or later only)
REAL FUNCTION ENVREAL( LNAME, DESCRIP, DEFAULT, STATUS )
CHARACTER*(*), INTENT(IN ) :: LNAME ! logical name to evaluate
CHARACTER*(*), INTENT(IN ) :: DESCRIP ! description of the value
REAL , INTENT(IN ) :: DEFAULT ! default value (if LNAME not set, or empty)
INTEGER , INTENT( OUT) :: STAT ! for error/default-case detection
REAL FUNCTION BENVREAL( LNAME, DESCRIP, MINVAL, MAXVAL, DEFAULT, STATUS )
CHARACTER*(*), INTENT(IN ) :: LNAME ! logical name to evaluate
CHARACTER*(*), INTENT(IN ) :: DESCRIP ! description of the value
REAL , INTENT(IN ) :: MINVAL
REAL , INTENT(IN ) :: MAXVAL
REAL , INTENT(IN ) :: DEFAULT ! default value (if LNAME not set, or empty)
INTEGER , INTENT( OUT) :: STAT ! for error/default-case detection
float envrealc( const char * lname ,
const char * description ,
float defaultval ,
int * status )
STAT takes the following values:
DEFAULT
DEFAULT)
DEFAULT)
For Fortran-90 declarations and interface checking:
USE M3UTILIO
See also
ENVGET (generic environment-value routine, I/O API-3.2 or later),
ENVLIST (generic environment-list routine, I/O API-3.1 or later),
ENVDBLE,
ENVINT,
ENVSTR,
ENVYN,
NAMEVAL; and
SETENVVAR() for setting environment variables from within a program
.
#include "iodecl3.h" if called from C.
LNAME and DESCRIP have length at most 512 for I/O API-3.0 or earlier, 65535 for I/O API-3.1. (NOTE: POSIX says that environment variables with lengths at least 512 must be supported.)
... setenv FOOFLAG True ... /mydirectory/myprogram ...
...
INTEGER FOO
INTEGER STATUS
...
FOO = ENVREAL( 'FOO',
& 'Some control parameter or other, called FOO',
& 17.0 ,
& STATUS )
IF ( STATUS .GT. 0 ) THEN
... bad value for FOO; do something.
END IF
...
#include "iodecl3.h"
...
int status ;
double value ;
...
value = envrealc( "FOO",
"Here is where I put a description",
17.0 ,
& status ) )
if ( status > 0 )
{
... stuff for bad (non-integer) value of environment variable FOO
}
else if ( status == -1 )
{
... stuff for empty-but-defined FOO
}
else if ( status == -2 )
{
... stuff for not-defined-at-all FOO
}
...
use value...
To: Models-3/EDSS I/O API: The Help Pages