A Channel implements low-level input/output for the AST library. Writing an Object to a Channel (using AST_WRITE) will generate a textual representation of that Object, and reading from a Channel (using AST_READ) will create a new Object from its textual representation.
Normally, when you use a Channel, you should provide "
source"
and "
sink"
routines which connect
it to an external data store by reading and writing the resulting text. By default, however, a Channel
will read from standard input and write to standard output. Alternatively, a Channel can be told to
read or write from specific text files using the SinkFile and SourceFile attributes, in which case no
sink or source function need be supplied.
If the null routine AST_NULL is suppied as the SOURCE value, and no value has been set for the SourceFile attribute, the Channel will read from standard input instead.
If the null routine AST_NULL is suppied as the SINK value, and no value has been set for the SinkFile attribute, the Channel will write to standard output instead.
The names of the routines supplied for the SOURCE and SINK arguments should appear in EXTERNAL statements in the Fortran routine which invokes AST_CHANNEL. However, this is not generally necessary for the null routine AST_NULL (so long as the AST_PAR include file has been used).
A null Object pointer (AST__NULL) will be returned if this function is invoked with STATUS set to an error value, or if it should fail for any reason.
Note that the null routine AST_NULL (one underscore) is different to AST__NULL (two underscores), which is the null Object pointer.