[AIT logo]

Institut für Astronomie und Astrophysik

Abteilung Astronomie

Waldhäuser Str. 64, D-72076 Tübingen, Germany
[Uni logo]


COPY_STRUCT_INX Source code in copy_struct_inx.pro

COPY_STRUCT_INX

Name
       COPY_STRUCT_INX
Purpose
       Copy matching tags & specified indices from one structure to another
Explanation
       Copy all fields with matching tag names (except for "except_Tags")
       from one structure array to another structure array of different type.
       This allows copying of tag values when equating the structures of
       different types is not allowed, or when not all tags are to be copied.
       Can also recursively copy from/to structures nested within structures.
       This procedure is same as copy_struct with option to
       specify indices (subscripts) of which array elements to copy from/to.
Calling Sequence
       copy_struct_inx, struct_From, struct_To, NT_copied, INDEX_FROM=subf
       copy_struct_inx, struct_From, struct_To, INDEX_FROM=subf, INDEX_TO=subto
Input Parameters
       struct_From = structure array to copy from.
       struct_To = structure array to copy values to.
Keyword Parameters
       INDEX_FROM = indices (subscripts) of which elements of array to copy.
               (default is all elements of input structure array)
       INDEX_TO = indices (subscripts) of which elements to copy to.
               (default is all elements of output structure array)
       EXCEPT_TAGS = string array of Tag names to ignore (to NOT copy).
               Used at all levels of recursion.
       SELECT_TAGS = Tag names to copy (takes priority over EXCEPT).
               This keyword is not passed to recursive calls in order
               to avoid the confusion of not copying tags in sub-structures.
       /RECUR_FROM = search for sub-structures in struct_From, and then
               call copy_struct recursively for those nested structures.
       /RECUR_TO = search for sub-structures of struct_To, and then
               call copy_struct recursively for those nested structures.
       /RECUR_TANDEM = call copy_struct recursively for the sub-structures
               with matching Tag names in struct_From and struct_To
               (for use when Tag names match but sub-structure types differ).
Output Parameters
       struct_To = structure array to which new tag values are copied.
       NT_copied = incremented by total # of tags copied (optional)
Internal
       Recur_Level = # of times copy_struct_inx calls itself.
               This argument is for internal recursive execution only.
               The user call is 1, subsequent recursive calls increment it,
               and the counter is decremented before returning.
               The counter is used just to find out if argument checking
               should be performed, and to set NT_copied = 0 first call.
Procedures Used
       pro match       (when keyword SELECT_TAGS is specified)
Procedure
       Match Tag names and then use corresponding Tag numbers,
       apply the sub-indices during = and recursion.
Revision History
       adapted from copy_struct: 1991 Frank Varosi STX @ NASA/GSFC
       mod Aug.95 by F.V. to fix match of a single selected tag.
       mod Mar.97 by F.V. do not pass the SELECT_TAGS keyword in recursion,
               and check validity of INDEX_FROM and INDEX_TO in more detail.
       Converted to IDL V5.0   W. Landsman   September 1997
       Use long integers W. Landsman May 2001

Last modified by pro2html on 2001 August 07 at 09:56 UTC

[Home Page] [Software, Documentation] [IDL Documentation] [Quick Reference] [Feedback]

Jörn Wilms (wilms@astro.uni-tuebingen.de)
Updated automatically