ENVYN() is a Fortran wrapper calling the C envync()
LOGICAL FUNCTION ENVYN( LNAME, DESCRIP, DEFAULT, STATUS ) CHARACTER*(*) LNAME ! logical name to evaluate CHARACTER*(*) DESCRIP ! description of the value LOGICAL DEFAULT ! default value (if LNAME not set, or empty) INTEGER STATUS ! for distinguishing error/default-value cases
int envync( const char * lname , const char * description , int defaultval , int * status )
Treats ".T"... and ".F"... as though they were "T"... and "F"..., respectively.
Returns DEFAULT in case that LNAME not defined, that LNAME is defined but has an empty value, or that the value of LNAME does not begin with 'T' or 'Y' (for TRUE) or 'F' or 'N' (for FALSE).
STATUS takes the following values:
For Fortran-90 declarations and interface checking:
USE M3UTILIO
See also
ENVDBLE,
ENVINT,
ENVREAL,
ENVSTR,
ENVYN,
NAMEVAL, and
SETENVVAR.
#include "iodecl3.h"
if called from C.
LNAME and DESCRIP have length at most 256. (NOTE: POSIX says that environment variables may have lengths this long.)
... setenv FOOFLAG True ... /mydirectory/myprogram ...
... LOGICAL ENVYN LOGICAL FOOFLAG INTEGER STATUS ... FOOFLAG = ENVYN( 'FOOFLAG', & 'Some flag or other, called FOO', & .FALSE. , & STATUS ) IF ( STATUS .GT. 0 ) THEN ... bad value for FOOFLAG; do something. END IF ...
#include "iodecl3.h" ... int status, value ; value = envync( "FOOOFLAG", "Here is where I put a description", 0 , & status ) ) if ( status > 0 ) { ... stuff for bad value of this environment variable } else if ( status == -1 ) { ... stuff for empty-but-defined FOO } else if ( status == -2 ) { ... stuff for not-defined-at-all FOO } if ( value ) { ... stuff for FOOFLAG TRUE } else{ ...stuff for FOOFLAG FALSE } ...
Next: FIND1, FIND2, FIND3, FIND4
To: Models-3/EDSS I/O API: The Help Pages