Pre-processor changes for array types

Array types require additional modification of the pre-processor.

For a vector type, for example, we would define in the macros file the following:

#define REALVEC(A)             ARRAY(REAL,A)
Similarly, for a BUFFERVEC type, representing a vector of BUFFER's we would define in the macros file
#define BUFFERVEC(A)             ARRAY(BUFFER,A)
This type does nopt currently exist in TONTO.

Array types also require a modification of the foo.perl script. You should tell the script what type of component each array holds. For example, a REALVEC type hold an array where each element is a REAL number

%component_type = (     # Components of the vector types
    'REALVEC'           => 'REAL',
If a BUFFERVEC types was defined, you would insert at the end of the list in the foo.perl script
%component_type = (     # Components of the vector types
    'BUFFERVEC'     => 'BUFFER',

For an array type, you must also tell the foo.perl script how to convert assumed size arrays in type declarations. For example, for a REALVEC type the following substitution must be effected

%subst = (          # Substitutions .................
      :
    'REALVEC '      => 'REALVEC(:) ',
      :
If a BUFFERVEC types was defined, you would insert at the end of the list in the foo.perl script
    'BUFFERVEC ' => 'BUFFERVEC(:) ',