The UIO package in IDL comes as a list of routines with names quite similar to the Fortran90 version. Instead of using global variables as in Fortran90 there are now common blocks in Include-files.
;****************************************************************************** ; Routines, functions : uio_*.pro: ; (!: most important, +: user-routine, -: comfortable, .:useful) ; . adkey1: Add one keyword to term table, keyword-value=' ', no link character ; . adkey2: Add one keyword to term table with keyword-value ; . adkey3: Add one keyword to term table with keyword-value or default ; . chconv: Actualize list of conversion types for all channels ; + chpos: Give current file position or jump to specified position ; . chunit: Initialize, store and actualize a list of free and occupied unit ; numbers ; + closrd: Close file after reading ; + closwr: Close file after writing ; - cpentr: Copy entry from one file to another ; + d: Read data from uio-file(s) in quasi direct access mode ; + data: Handle uio-file(s) in quasi direct access mode ; ! dataset_rd: Read uio file and put data into anonymous structure ; ! uio_datasetlist_rd: Read data from list of files and put it into an. structure ; deform: Determine the default output format for numbers ; dim2st: Compose dimension string ; . exkeyw: Extract value of keyword from table ; ex1trm: Extract one term from the input line ; exmtrm: Transform a list of items into its components ; . filcon: Determine file contents: list of all entries with its positions ; getenv: Get information about environment ; ! init: Initialization procedure for input/output routines ; me1trm: Merge the input term: 'keyword', 'value' -> 'keyword=value' ; memtrm: Merge a list of terms (keywords and their values) into a line table ; mkcvls: Make list with possible conversion types ; . nc2nt: From column number or entry name find table entry number ; + openrd: Open file for reading, read header ; + openwr: Open file for writing, write header ; - pptrmt: Print term table in pretty form ; qmaadd: Transform a string into a string with quotation marks if necessary ; qmadel: Parse string "inline" and remove quotation marks if necessary ; + rd: Reading scalar and array data of all types ; . rdfifo: Read file header ; + rdhdex: Read header of variable and extract keywords ; rdhead: Read header ; + rdlabl: Read label ; + rdtab: Read table of integer, real, and/or character data from file ; + skipda: Skip data block ; - slhdex: Search header of variables given by list and extract keywords ; . st2dim: Parse dimension string ; ! struct_rd: Read uio file and put data into anonymous structure ; . tab0: Create empty table structure ; + tabc: Change and modify table contents: rearrange lines. ; + tabm: Merge two tables in different ways ; + tabr: Read 1d array from 2d table array (all types) ; + tabw: Write 1d array into table (all types) ; uclose: Close file with special handling for conversion type ; uopen: Open file with special handling for conversion type ; vnanrm: Transform a string to give a correct name of a variable ; wf2rf: Produce from write format string corresponding read format string ; + wr: Writing scalar and array data of all types ; . wrfifo: Write file header ; wrhdme: Write header of variable, input: term table. ; wrhead: Write header of variable, input: line table. ; + wrlabl: Write label ; + wrtab: Write table of integer, real, and/or character data to file ;****************************************************************************** ; Include-Files uio_*.pro: ; filedefinc: ; uiocstinc: channel status information (common uio_chainf) ; uiocvlinc: convert type list of current machine (common uio_cvlist) ; uionaminc: names of types, keywords, identifiers; default formats ; (common uio_defnam) ; uiosizinc: length of strings, size of tables (trmtab, lintab) ; uiotabinc: empty table structure (common uio_taborg) ;******************************************************************************
Most of the routines are low-level ones and do not have to be worried about because they rarely will be used directly.
For accessing data in UIO format within IDL
the initialization routine uio_init
(see Sect. 4.7.1)
and the high-level reading routines (uio_struct_rd.pro
, uio_dataset_rd.pro
, and
uio_datasetlist_rd.pro
, see Sect. 4.7.3).
might suffice.