OUTATT ( attrib, bufsiz, owner, ivals, rvals, slens, chars, ifail ) =================================================================== Output an attribute. Can be called from the GO. Receives: KI_tag_attribute *attrib --- attribute <KI_int_nitems> *bufsiz --- amount of space available in --- chars Returns: KI_tag_entity *owner --- entity to which attribute is --- attached <KI_tag_list_int> *ivals --- list of integer values <KI_tag_list_dbl> *rvals --- list of real values <KI_tag_list_int> *slens --- list of string lengths KI_chr_string chars[bufsiz] --- array of data for string fields KI_cod_error *ifail --- error code Description: The owner and contents of an attribute are output. To find the type, and hence any other information dependent only on the type, use ENDFAT. The integer fields are returned in the integer list ivals. The real values for the fields of types real, axis, vector, coordinate and direction are returned in rvals, in the order of the fields (which may be obtained by calling OUATDF with the type of the attribute, obtained from ENDFAT). Thus the real values held in the first field of any of the above types appear first, followed by the real values held in the next field of any of these types. Each real field yields one real value, each axis six and each field of type coordinate, vector or direction three. The string fields are returned, concatenated, in the array 'chars'; the lengths of the strings are returned in the list 'slens'. Thus if we denote the first entry in 'slens' by 'slens\1' and so on, the first string field is given by the first 'slens\1' values in 'chars', the second by the next 'slens\2' and so on. OUTATT does not attempt to write more than 'bufsiz' characters to 'chars', nor does it fail on account of there being more than this to write; if there is too little space, it returns 'ifail' as zero so that it can return the lengths of the strings in 'slens'. As many string fields as fit into less than 'bufsiz' are also returned in 'chars'. Thus the values in 'slens' should be compared with 'bufsiz' after a call to OUTATT; if the sum of the lengths of the string fields up to the last one required is greater than 'bufsiz', then a second call to the function, using more space (how much more being computed from the values in 'slens') in 'chars', will return all the required data.