Environment Variables for the I/O API

Standard I/O API environment variables

The following are standard environment variables supported or used by the I/O API. These should be set using setenv, for example, if you are using csh). Note that for environment variables with multi-word values (i.e., values containing blanks), you will need to quote the value in order for setenv to handle it correctly—for example:
        setenv  EXECUTION_ID  'This run will pling the Inghams'
        setenv  MYLIST        '1, 2, 3, 4, 5, 6, 7'

The following environment variables are for I/O API-3.2 or later only:

OpenMP Parallel Control

Generally, all OpenMP parallel programs use environment variable OMP_NUM_THREADS to control how many parallel threads/processors are used for program execution. In particular, this applies to "m3tools" programs M3AGMASK, M3AGMAX, M3COMBO, M3TPROC and VERTINTEGRAL for I/O API version 3.1 later than Nov. 21, 2013, and programs built with I/O API routines BILIN(), BMATVEC(), DMATVEC, CBARNES1(), and CBARNESN() using I/O API versions later than Sept. 12, 2014.

I/O API Environment-Variable Routines

Routine SETENVVAR() can be used to set environment variables from within the currently-executing program.

For single-valued environment variables of various types. ENVDBLE(), ENVINT(), ENVREAL() , ENVSTR(), and ENVYN() can be used from programs to find values of types DOUBLE PRECISION, INTEGER, REAL, CHARACTER string, or LOGICAL.
For I/O API-3.2 or later, ENVGET() is a generic routine for single-value environment variables of any of these types.
These routines contain a "description" argument, which is copied to the program log for audit-trail reasons, and which is useful for program self-description. Subverting this mechanism by using a blank or ASCII-null description should be considered a serious offense against modeling integrity.

For environment variables whose values are comma-delimited lists INTLIST(), REALLIST(), DBLLIST(), and STRLIST() are type-specific for lists of types INTEGER, REAL, REAL*8 or CHARACTER string; for I/O API-3.2 or later, ENVLIST() is the generic.
All of thes routines log the value retrieved, convert it to the indicated type, and return the number of values and the array of values retrieved to the caller.

Routine NAMEVAL(), which performs a similar function for CHARACTER STRINGs, but does not log the transaction, is used internally by the I/O API; this should not be used by modeling codes, for log-integrity reasons.

Previous Section: Logical Names

Next Section: Grids and Coordinate Systems

Up: Conventions

To: Models-3/EDSS I/O API: The Help Pages