nameres.h

Go to the documentation of this file.
00001 /*
00002 
00003   Copyright (C) 2000, 2001 Silicon Graphics, Inc.  All Rights Reserved.
00004 
00005   This program is free software; you can redistribute it and/or modify it
00006   under the terms of version 2 of the GNU General Public License as
00007   published by the Free Software Foundation.
00008 
00009   This program is distributed in the hope that it would be useful, but
00010   WITHOUT ANY WARRANTY; without even the implied warranty of
00011   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  
00012 
00013   Further, this software is distributed without any warranty that it is
00014   free of the rightful claim of any third person regarding infringement 
00015   or the like.  Any license provided herein, whether implied or 
00016   otherwise, applies only to this software file.  Patent licenses, if 
00017   any, provided herein do not apply to combinations of this program with 
00018   other software, or any other product whatsoever.  
00019 
00020   You should have received a copy of the GNU General Public License along
00021   with this program; if not, write the Free Software Foundation, Inc., 59
00022   Temple Place - Suite 330, Boston MA 02111-1307, USA.
00023 
00024   Contact information:  Silicon Graphics, Inc., 1600 Amphitheatre Pky,
00025   Mountain View, CA 94043, or:
00026 
00027   http://www.sgi.com
00028 
00029   For further information regarding this notice, see:
00030 
00031   http://oss.sgi.com/projects/GenInfo/NoticeExplan
00032 
00033 */
00034 
00035 
00036 
00037 /* USMID:  "\n@(#)5.0_pl/headers/nameres.h      5.1     04/29/99 21:22:31\n" */
00038 
00039 /******************************************************************************\
00040 |*                                                                            *|
00041 |*  This module holds tables for semantic checking for declarations and       *|
00042 |*  uses of attrs.  The routine fnd_semantic_err uses these tables to look    *|
00043 |*  for problems and to issue errors.  Tables obj_to_attr, obj_to_name and    *|
00044 |*  obj_to_others are used to detect errors.  There is an enum obj_values     *|
00045 |*  (defined in globals.h).  This enum holds a value for things that can      *|
00046 |*  be added to a symbol table attribute entry.  (ie: Obj_Cri_Pointee         *|
00047 |*  means make this symbol table attribute entry a Cray_Pointee.)  So tbl     *|
00048 |*  obj_to_attr says, can I add this obj_... info to a symbol table entry     *|
00049 |*  that has this attribute?   Table obj_to_name says can I add this          *|
00050 |*  obj_... to a symbol table attribute entry that is a Name_... ?  Table     *|
00051 |*  obj_to_other says can I add this obj_... to a symbol table attribute      *|
00052 |*  entry that already has this Other_... information?  The attributes,       *|
00053 |*  names, and others each have their own enums.  (attr_obj_values            *|
00054 |*  defined in sytb.h, name_obj_values and other_obj_values defined in        *|
00055 |*  this module.)  There are 2 reasons that there are 3 enums.  1)  It        *|
00056 |*  makes issuing messages easier.  Common messages can be used for           *|
00057 |*  attr to attr, attr to name, and name to attr.  Unique messages only       *|
00058 |*  need to be written for others.  2)  We want common code for the           *|
00059 |*  different machines we run on, so we want to keep the number of 'bits'     *|
00060 |*  per entry less than 32.  Each entry in a obj_to_attr table is a long.     *|
00061 |*  There is one entry for each Obj_.... enum value.  Each entry is a         *|
00062 |*  bunch of bits.  Each bit stands for one of the attr_obj_values enums.     *|
00063 |*  The obj_to_name and obj_to_other tables are set up the same way, and      *|
00064 |*  use enums name_obj_values and other_obj_values, respectively.             *|
00065 |*  The tables attr_msg_num, name_msg_num, and other_msg_num have the         *|
00066 |*  error messages to be printed out for bad combinations.  These are         *|
00067 |*  2 dimensional arrays.  (Arrays of arrays if you're speaking C.)           *|
00068 |*  Each entry is a long and is addressed by [Obj_....][Attr...] for          *|
00069 |*  attr_msg_num table.  name_msg_num and other_msg_num tables work the       *|
00070 |*  same way.  There is DEBUG routine, verify_semantic_tbls, that runs        *|
00071 |*  once each time a DEBUG compiler is executed.  This routine makes sure     *|
00072 |*  that the obj_to_.... and the ...._msg_num tables are in sync.  If a       *|
00073 |*  combination is bad, it better have an error message.  If the combo is     *|
00074 |*  good it better have 0, as an error message.  A fatal error message is     *|
00075 |*  issued for each bad entry in the message table.  Then an internal msg     *|
00076 |*  is issued to stop compilation.                                            *|
00077 |*                                                                            *|
00078 \******************************************************************************/
00079 
00080 /****************************************\
00081 |* static data used within this module. *|
00082 \****************************************/
00083 
00084 /* These are names that a symbol table entry can be. */
00085 
00086 enum    attr_obj_values        {Attr_Assumed_Type_Ch,   Attr_Dimension,
00087                                 Attr_Explicit_Shp_Arr,  Attr_Assumed_Size_Arr,
00088                                 Attr_Deferred_Shp_Arr,  Attr_Assumed_Shp_Arr,
00089                                 Attr_Allocatable,       Attr_Parameter,
00090                                 Attr_Intent,            Attr_Optional,
00091                                 Attr_Private,           Attr_Public,
00092                                 Attr_Target,            Attr_Equivalence,
00093                                 Attr_Save,              Attr_Pointer,
00094                                 Attr_External,          Attr_Intrinsic,
00095                                 Attr_Data_Init,         Attr_Type,
00096                                 Attr_Co_Array,          Attr_Automatic,
00097                                 Attr_Volatile,          Attr_Done };
00098 
00099 enum    dir_obj_values         {Dir_Auxiliary,          Dir_Vfunction,
00100                                 Dir_No_Side_Effects,    Dir_Inline,
00101                                 Dir_Symmetric,          Dir_Copy_Assumed_Shape,
00102                                 Dir_Align_Symbol,       Dir_Fill_Symbol,
00103                                 Dir_Section_Gp,         Dir_Section_Non_Gp,
00104                                 Dir_Ignore_TKR,         Dir_Optional,
00105                                 Dir_Ipa,                Dir_Name,               
00106                                 Dir_Done };
00107 
00108 enum    name_obj_values        {Name_Variable,          Name_Common_Obj,
00109                                 Name_Cri_Pointer,       Name_Cri_Pointee,
00110                                 Name_Cri_Ch_Pointee,    Name_Func_Result,
00111                                 Name_Dummy_Arg,
00112                                 Name_Module_Proc,       Name_Derived_Type,
00113                                 Name_Generic_Interface, Name_Namelist_Group,
00114                                 Name_Namelist_Group_Obj,Name_Statement_Func,
00115                                 Name_Construct,         Name_Intrinsic_Func,
00116                                 Name_Intrinsic_Subr,    Name_Module,
00117                                 Name_Blockdata,         Name_Program,
00118                                 Name_Function,          Name_Curr_Func,
00119                                 Name_Curr_Subr,         Name_Internal_Func,
00120                                 Name_Internal_Subr,     Name_Done };
00121 
00122 
00123 /* These are other things that a symbol table can be.  For being in the      */
00124 /* Curr_.. or Use_.., fnd_sem_err is smart enough to enter the kind of       */
00125 /* function or subroutine.  ie:  external function,  module subroutine ect.. */
00126 
00127 enum    other_obj_values       {Other_Var_Len_Ch,       Other_Var_Len_Arr,      
00128                                 Other_Expl_Interface,
00129                                 Other_Use_Func,         Other_Use_Subr,
00130                                 Other_Use_Variable,     Other_Use_Dummy_Arg,
00131                                 Other_Host_Assoc,       Other_Use_Assoc,
00132                                 Other_Use_Char_Rslt,    Other_Not_Visible,
00133                                 Other_Npes,             Other_Done
00134                                };
00135 
00136 /* These strings are used to put out error messages about these attributes.   */
00137 /* The enumerations for attrs are found in sytb.h, because they are symbol    */
00138 /* table related, and are kept in the symbol table.                           */
00139 /* Note: Type is treated slightly different, so the error msgs make sense.    */
00140 
00141 static  char    *attr_str[Attr_Done] =          {     
00142                         "CHARACTER*(*)",
00143                         "DIMENSION",
00144                         "explicit-shape DIMENSION",
00145                         "assumed-size DIMENSION",
00146                         "deferred-shape DIMENSION",
00147                         "assumed-shape DIMENSION",
00148                         "ALLOCATABLE",
00149                         "PARAMETER",
00150                         "INTENT",
00151                         "OPTIONAL",
00152                         "PRIVATE",
00153                         "PUBLIC",
00154                         "TARGET",
00155                         "EQUIVALENCE",
00156                         "SAVE",
00157                         "POINTER",
00158                         "EXTERNAL",
00159                         "INTRINSIC",
00160                         "DATA initialized",
00161                         "type-spec",            /* This turns into the     */
00162                                                 /* actual type.  ie:  REAL */
00163                         "co-array DIMENSION",
00164                         "AUTOMATIC",
00165                         "VOLATILE"};
00166 
00167 static  char    *dir_str[Dir_Done]      =       {
00168                         "AUXILIARY",
00169                         "VFUNCTION",
00170                         "NO SIDE EFFECTS",
00171                         "INLINE",
00172                         "SYMMETRIC",
00173                         "COPY_ASSUMED_SHAPE",
00174                         "ALIGN_SYMBOL",
00175                         "FILL_SYMBOL",
00176                         "SECTION_GP",
00177                         "SECTION_NON_GP",
00178                         "IGNORE_TKR",
00179                         "OPTIONAL",
00180                         "IPA",
00181                         "NAME",
00182                          };
00183 
00184 /* These strings are used to put out error messages about these names.  */
00185 
00186 static  char    *name_str[Name_Done] =          {
00187                         "variable",              "common-block-object",
00188                         "Cray pointer",          "Cray pointee",
00189                         "Cray character pointee","result-name",
00190                         "dummy-argument",        "module-subprogram",
00191                         "type-name",             "generic-name",
00192                         "namelist-group-name",   "namelist-group-object",
00193                         "statement function",    "construct-name",
00194                         "intrinsic function",    "intrinsic subroutine",
00195                         "module",                "block-data",
00196                         "program-name",          "function",
00197                         "function",              "subroutine",
00198                         "internal function",     "internal subroutine" };
00199 
00200 
00201 /* These tables are used to add the Obj_ item to the current attr.            */
00202 /* The 1 << Attr item means that it is an error if this attribute is set in   */
00203 /* the symbol table and you're trying to add the Obj_ attribute/name/other to */
00204 /* this attribute entry.                                                      */
00205 
00206 long    obj_to_attr[Obj_Done]   =       {
00207 
00208         /*  Obj_Assum_Type_Ch           ie: CHARACTER*(*) A             */
00209         /*  Must be a dummy argument or constant, but have to declare   */
00210         /*  the type first, then make it a Parameter                    */
00211         /*  It can also be used to declare the result of the external   */
00212         /*  function that is actually being compiled.  This function    */
00213         /*  cannot be array-valued or a pointer.                        */
00214 
00215         ((0 << Attr_Assumed_Type_Ch) |  (1 << Attr_Parameter) |
00216          (0 << Attr_Explicit_Shp_Arr) | (0 << Attr_Dimension) |
00217          (0 << Attr_Assumed_Size_Arr) | (0 << Attr_Deferred_Shp_Arr) |
00218          (0 << Attr_Assumed_Shp_Arr) |  (1 << Attr_Allocatable) |
00219          (0 << Attr_Intent) |   
00220          (0 << Attr_Optional) |         (0 << Attr_Public) |
00221          (0 << Attr_Private) |          (0 << Attr_Target) |
00222          (1 << Attr_Data_Init) |        (1 << Attr_Equivalence) |
00223          (1 << Attr_Save) |             (0 << Attr_Pointer) |
00224          (0 << Attr_External) |         (1 << Attr_Intrinsic) |
00225          (1 << Attr_Type) |             (0 << Attr_Co_Array) |
00226          (1 << Attr_Automatic) |        (0 << Attr_Volatile)
00227         ),
00228 
00229         /*  Obj_Expl_Shp_Arr            ie: DIMENSION A(1)       */
00230         /*  NOTES: Must declare as array then data initialize it */
00231 
00232         ((0 << Attr_Assumed_Type_Ch) |  (1 << Attr_Parameter) |
00233          (0 << Attr_Explicit_Shp_Arr) | (0 << Attr_Dimension) | 
00234          (1 << Attr_Assumed_Size_Arr) | (1 << Attr_Deferred_Shp_Arr) |
00235          (1 << Attr_Assumed_Shp_Arr) |  (1 << Attr_Allocatable) |
00236          (0 << Attr_Intent) |
00237          (0 << Attr_Optional) |         (0 << Attr_Public) |
00238          (0 << Attr_Private) |          (0 << Attr_Target) |
00239          (1 << Attr_Data_Init) |        (0 << Attr_Equivalence) |
00240          (0 << Attr_Save) |             (1 << Attr_Pointer) |
00241          (1 << Attr_External) |         (1 << Attr_Intrinsic) |
00242          (0 << Attr_Type) |             (0 << Attr_Co_Array) |
00243          (0 << Attr_Automatic) |        (0 << Attr_Volatile)
00244         ),
00245 
00246 
00247         /*  Obj_Assum_Size_Arr          ie: DIMENSION A(*)      */
00248 
00249         ((0 << Attr_Assumed_Type_Ch) |  (1 << Attr_Parameter) |
00250          (1 << Attr_Explicit_Shp_Arr) | (0 << Attr_Dimension) | 
00251          (0 << Attr_Assumed_Size_Arr) | (1 << Attr_Deferred_Shp_Arr) |
00252          (1 << Attr_Assumed_Shp_Arr) |  (1 << Attr_Allocatable) |
00253          (0 << Attr_Intent) |
00254          (0 << Attr_Optional) |         (0 << Attr_Public) |
00255          (0 << Attr_Private) |          (0 << Attr_Target) |
00256          (1 << Attr_Data_Init) |        (1 << Attr_Equivalence) |
00257          (1 << Attr_Save) |             (1 << Attr_Pointer) |
00258          (1 << Attr_External) |         (1 << Attr_Intrinsic) |
00259          (0 << Attr_Type) |             (0 << Attr_Co_Array) |
00260          (1 << Attr_Automatic) |        (0 << Attr_Volatile)
00261         ),
00262 
00263         /*  Obj_Defrd_Shp_Arr           ie: DIMENSION A(:)      */
00264 
00265         ((0 << Attr_Assumed_Type_Ch) |  (1 << Attr_Parameter) |
00266 /*       (1 << Attr_Explicit_Shp_Arr) | (0 << Attr_Dimension) | */
00267 /* for module temporary use */
00268          (0 << Attr_Explicit_Shp_Arr) | (0 << Attr_Dimension) |
00269          (1 << Attr_Assumed_Size_Arr) | (0 << Attr_Deferred_Shp_Arr) |
00270          (1 << Attr_Assumed_Shp_Arr) |  (0 << Attr_Allocatable) |
00271          (0 << Attr_Intent) |
00272          (0 << Attr_Optional) |         (0 << Attr_Public) |
00273          (0 << Attr_Private) |          (0 << Attr_Target) |
00274          (1 << Attr_Data_Init) |        (1 << Attr_Equivalence) |
00275          (0 << Attr_Save) |             (0 << Attr_Pointer) |
00276          (1 << Attr_External) |         (1 << Attr_Intrinsic) |
00277          (0 << Attr_Type) |             (0 << Attr_Co_Array) |
00278          (0 << Attr_Automatic) |        (0 << Attr_Volatile)
00279         ),
00280 
00281         /*  Obj_Assum_Shp_Arr           ie: DIMENSION A (1:)    */
00282 
00283         ((0 << Attr_Assumed_Type_Ch) |  (1 << Attr_Parameter) |
00284          (1 << Attr_Explicit_Shp_Arr) | (0 << Attr_Dimension) | 
00285          (1 << Attr_Assumed_Size_Arr) | (1 << Attr_Deferred_Shp_Arr) |
00286          (0 << Attr_Assumed_Shp_Arr) |  (1 << Attr_Allocatable) |
00287          (0 << Attr_Intent) |   
00288          (0 << Attr_Optional) |         (1 << Attr_Public) |
00289          (1 << Attr_Private) |          (0 << Attr_Target) |
00290          (1 << Attr_Data_Init) |        (1 << Attr_Equivalence) |
00291          (1 << Attr_Save) |             (1 << Attr_Pointer) |
00292          (1 << Attr_External) |         (1 << Attr_Intrinsic) |
00293          (0 << Attr_Type) |             (1 << Attr_Co_Array) |
00294          (1 << Attr_Automatic) |        (0 << Attr_Volatile)
00295         ),
00296 
00297         /*  Obj_Co_Array                ie: DIMENSION A[3,4]    */
00298 
00299         ((0 << Attr_Assumed_Type_Ch) |  (1 << Attr_Parameter) |
00300          (0 << Attr_Explicit_Shp_Arr) | (0 << Attr_Dimension) |
00301          (0 << Attr_Assumed_Size_Arr) | (0 << Attr_Deferred_Shp_Arr) |
00302          (1 << Attr_Assumed_Shp_Arr) |  (0 << Attr_Allocatable) |
00303          (0 << Attr_Intent) |
00304          (0 << Attr_Optional) |         (0 << Attr_Public) |
00305          (0 << Attr_Private) |          (0 << Attr_Target) |
00306          (0 << Attr_Data_Init) |        (0 << Attr_Equivalence) |
00307          (0 << Attr_Save) |             (1 << Attr_Pointer) |
00308          (1 << Attr_External) |         (1 << Attr_Intrinsic) |
00309          (0 << Attr_Type) |             (1 << Attr_Co_Array) |
00310          (1 << Attr_Automatic) |        (0 << Attr_Volatile)
00311         ),
00312 
00313         /*  Obj_Allocatable             ie: ALLOCATABLE A(:)    */
00314 
00315         ((1 << Attr_Assumed_Type_Ch) |  (1 << Attr_Parameter) |
00316          (1 << Attr_Explicit_Shp_Arr) | (0 << Attr_Dimension) |
00317          (1 << Attr_Assumed_Size_Arr) | (0 << Attr_Deferred_Shp_Arr) |
00318          (1 << Attr_Assumed_Shp_Arr) |  (0 << Attr_Allocatable) |
00319          (1 << Attr_Intent) |
00320          (1 << Attr_Optional) |         (0 << Attr_Public) |
00321          (0 << Attr_Private) |          (0 << Attr_Target) |
00322          (1 << Attr_Data_Init) |        (1 << Attr_Equivalence) |
00323          (0 << Attr_Save) |             (1 << Attr_Pointer) |
00324          (1 << Attr_External) |         (1 << Attr_Intrinsic) |
00325          (0 << Attr_Type) |             (0 << Attr_Co_Array) |
00326          (1 << Attr_Automatic) |        (0 << Attr_Volatile)
00327         ),
00328 
00329         /*  Obj_Constant                ie: PARAMETER (A=1.0)   */
00330 
00331         ((0 << Attr_Assumed_Type_Ch) |  (1 << Attr_Parameter) |
00332          (0 << Attr_Explicit_Shp_Arr) | (0 << Attr_Dimension) |
00333          (1 << Attr_Assumed_Size_Arr) | (1 << Attr_Deferred_Shp_Arr) |
00334          (1 << Attr_Assumed_Shp_Arr) |  (1 << Attr_Allocatable) |
00335          (1 << Attr_Intent) |
00336          (1 << Attr_Optional) |         (0 << Attr_Public) |
00337          (0 << Attr_Private) |          (1 << Attr_Target) |
00338          (1 << Attr_Data_Init) |        (1 << Attr_Equivalence) |
00339          (1 << Attr_Save) |             (1 << Attr_Pointer) |
00340          (1 << Attr_External) |         (1 << Attr_Intrinsic) |
00341          (0 << Attr_Type) |             (1 << Attr_Co_Array) |
00342          (1 << Attr_Automatic) |        (1 << Attr_Volatile)
00343         ),
00344 
00345         /*  Obj_Intent                  ie: INTENT (IN) A                   */
00346         /*      Intent can be specified for a deferred-shape array, because */
00347         /*      it may become an assumed-shape array.   If it doesn't       */
00348 
00349         ((0 << Attr_Assumed_Type_Ch) |  (1 << Attr_Parameter) |
00350          (0 << Attr_Explicit_Shp_Arr) | (0 << Attr_Dimension) |
00351          (0 << Attr_Assumed_Size_Arr) | (0 << Attr_Deferred_Shp_Arr) |
00352          (0 << Attr_Assumed_Shp_Arr) |  (1 << Attr_Allocatable) |
00353          (0 << Attr_Intent) |
00354          (0 << Attr_Optional) |         (0 << Attr_Public) |
00355          (0 << Attr_Private) |          (0 << Attr_Target) |
00356          (1 << Attr_Data_Init) |        (1 << Attr_Equivalence) |
00357          (1 << Attr_Save) |             (1 << Attr_Pointer) |
00358          (1 << Attr_External) |         (1 << Attr_Intrinsic) |
00359          (0 << Attr_Type) |             (0 << Attr_Co_Array) |
00360          (1 << Attr_Automatic) |        (0 << Attr_Volatile)
00361         ),
00362 
00363         /*  Obj_Optional                ie: OPTIONAL A  */
00364 
00365         ((0 << Attr_Assumed_Type_Ch) |  (1 << Attr_Parameter) |
00366          (0 << Attr_Explicit_Shp_Arr) | (0 << Attr_Dimension) |
00367          (0 << Attr_Deferred_Shp_Arr) | (0 << Attr_Assumed_Size_Arr) |
00368          (0 << Attr_Assumed_Shp_Arr) |  (1 << Attr_Allocatable) |
00369          (0 << Attr_Intent) |
00370          (0 << Attr_Optional) |         (0 << Attr_Public) |
00371          (0 << Attr_Private) |          (0 << Attr_Target) |
00372          (1 << Attr_Data_Init) |        (1 << Attr_Equivalence) |
00373          (1 << Attr_Save) |             (0 << Attr_Pointer) |
00374          (0 << Attr_External) |         (1 << Attr_Intrinsic) |
00375          (0 << Attr_Type) |             (0 << Attr_Co_Array) |
00376          (1 << Attr_Automatic) |        (0 << Attr_Volatile)
00377         ),
00378 
00379         /*  Obj_Private                 ie: PRIVATE A   */
00380 
00381         ((0 << Attr_Assumed_Type_Ch) |  (0 << Attr_Parameter) |
00382          (0 << Attr_Explicit_Shp_Arr) | (0 << Attr_Dimension) |
00383          (0 << Attr_Assumed_Size_Arr) | (0 << Attr_Deferred_Shp_Arr) |
00384          (0 << Attr_Assumed_Shp_Arr) |  (0 << Attr_Allocatable) |       
00385          (0 << Attr_Intent) |
00386          (0 << Attr_Optional) |         (1 << Attr_Public) |
00387          (0 << Attr_Private) |          (0 << Attr_Target) |
00388          (0 << Attr_Data_Init) |        (0 << Attr_Equivalence) |
00389          (0 << Attr_Save) |             (0 << Attr_Pointer) |
00390          (0 << Attr_External) |         (0 << Attr_Intrinsic) |
00391          (0 << Attr_Type) |             (0 << Attr_Co_Array) |
00392          (0 << Attr_Automatic) |        (0 << Attr_Volatile)
00393         ),
00394 
00395         /*  Obj_Public                  ie: PUBLIC A    */
00396 
00397         ((0 << Attr_Assumed_Type_Ch) |  (0 << Attr_Parameter) |
00398          (0 << Attr_Explicit_Shp_Arr) | (0 << Attr_Dimension) |
00399          (0 << Attr_Assumed_Size_Arr) | (0 << Attr_Deferred_Shp_Arr) |
00400          (0 << Attr_Assumed_Shp_Arr) |  (0 << Attr_Allocatable) |
00401          (0 << Attr_Intent) |
00402          (0 << Attr_Optional) |         (0 << Attr_Public) |
00403          (1 << Attr_Private) |          (0 << Attr_Target) |
00404          (0 << Attr_Data_Init) |        (0 << Attr_Equivalence) |
00405          (0 << Attr_Save) |             (0 << Attr_Pointer) |
00406          (0 << Attr_External) |         (0 << Attr_Intrinsic) |
00407          (0 << Attr_Type) |             (0 << Attr_Co_Array) |
00408          (0 << Attr_Automatic) |        (0 << Attr_Volatile)
00409         ),
00410 
00411         /*  Obj_Target                  ie: TARGET A    */
00412 
00413         ((0 << Attr_Assumed_Type_Ch) |  (1 << Attr_Parameter) |
00414          (0 << Attr_Explicit_Shp_Arr) | (0 << Attr_Dimension) |
00415          (0 << Attr_Assumed_Size_Arr) | (0 << Attr_Deferred_Shp_Arr) |
00416          (0 << Attr_Assumed_Shp_Arr) |  (0 << Attr_Allocatable) |
00417          (0 << Attr_Intent) |
00418          (0 << Attr_Optional) |         (0 << Attr_Public) |
00419          (0 << Attr_Private) |          (0 << Attr_Target) |
00420          (0 << Attr_Data_Init) |        (1 << Attr_Equivalence) |
00421          (0 << Attr_Save) |             (1 << Attr_Pointer) |
00422          (1 << Attr_External) |         (1 << Attr_Intrinsic) |
00423          (0 << Attr_Type) |             (0 << Attr_Co_Array) |
00424          (0 << Attr_Automatic) |        (0 << Attr_Volatile)
00425         ),
00426 
00427         /*  Obj_Equiv                   ie: EQUIVALENCE (AB)    */
00428 
00429         ((1 << Attr_Assumed_Type_Ch) |  (1 << Attr_Parameter) |
00430          (0 << Attr_Explicit_Shp_Arr) | (0 << Attr_Dimension) |
00431          (1 << Attr_Assumed_Size_Arr) | (1 << Attr_Deferred_Shp_Arr) |
00432          (1 << Attr_Assumed_Shp_Arr) |  (1 << Attr_Allocatable) |
00433          (1 << Attr_Intent) |
00434          (1 << Attr_Optional) |         (0 << Attr_Public) |
00435          (0 << Attr_Private) |          (1 << Attr_Target) |
00436          (0 << Attr_Data_Init) |        (0 << Attr_Equivalence) |
00437          (0 << Attr_Save) |             (1 << Attr_Pointer) |
00438          (1 << Attr_External) |         (1 << Attr_Intrinsic) |
00439          (0 << Attr_Type) |             (0 << Attr_Co_Array) |
00440          (0 << Attr_Automatic) |        (0 << Attr_Volatile)
00441         ),
00442 
00443         /*  Obj_Saved                   ie: SAVE A      */
00444 
00445         ((1 << Attr_Assumed_Type_Ch) |  (1 << Attr_Parameter) | 
00446          (0 << Attr_Explicit_Shp_Arr) | (0 << Attr_Dimension) |
00447          (1 << Attr_Assumed_Size_Arr) | (0 << Attr_Deferred_Shp_Arr) |
00448          (1 << Attr_Assumed_Shp_Arr) |  (0 << Attr_Allocatable) |
00449          (1 << Attr_Intent) |
00450          (1 << Attr_Optional) |         (0 << Attr_Public) |
00451          (0 << Attr_Private) |          (0 << Attr_Target) |
00452          (0 << Attr_Data_Init) |        (0 << Attr_Equivalence) |
00453          (0 << Attr_Save) |             (0 << Attr_Pointer) |
00454          (1 << Attr_External) |         (1 << Attr_Intrinsic) |
00455          (0 << Attr_Type) |             (0 << Attr_Co_Array) |
00456          (1 << Attr_Automatic) |        (0 << Attr_Volatile)
00457         ),
00458 
00459         /*  Obj_Automatic               ie: AUTOMATIC A */
00460 
00461         ((1 << Attr_Assumed_Type_Ch) |  (1 << Attr_Parameter) | 
00462          (0 << Attr_Explicit_Shp_Arr) | (0 << Attr_Dimension) |
00463          (1 << Attr_Assumed_Size_Arr) | (0 << Attr_Deferred_Shp_Arr) |
00464          (1 << Attr_Assumed_Shp_Arr) |  (1 << Attr_Allocatable) |
00465          (1 << Attr_Intent) |
00466          (1 << Attr_Optional) |         (0 << Attr_Public) |
00467          (0 << Attr_Private) |          (0 << Attr_Target) |
00468          (1 << Attr_Data_Init) |        (0 << Attr_Equivalence) |
00469          (1 << Attr_Save) |             (0 << Attr_Pointer) |
00470          (1 << Attr_External) |         (1 << Attr_Intrinsic) |
00471          (0 << Attr_Type) |             (1 << Attr_Co_Array) |
00472          (0 << Attr_Automatic) |        (0 << Attr_Volatile)
00473         ),
00474 
00475         /*  Obj_Pointer                 ie: POINTER :: A        */
00476 
00477         ((0 << Attr_Assumed_Type_Ch) |  (1 << Attr_Parameter) | 
00478          (1 << Attr_Explicit_Shp_Arr) | (0 << Attr_Dimension) |
00479          (1 << Attr_Assumed_Size_Arr) | (0 << Attr_Deferred_Shp_Arr) |
00480          (1 << Attr_Assumed_Shp_Arr) |  (1 << Attr_Allocatable) |
00481          (1 << Attr_Intent) |
00482          (0 << Attr_Optional) |         (0 << Attr_Public) |
00483          (0 << Attr_Private) |          (1 << Attr_Target) |
00484          (0 << Attr_Data_Init) |        (1 << Attr_Equivalence) |
00485          (0 << Attr_Save) |             (0 << Attr_Pointer) |
00486          (1 << Attr_External) |         (1 << Attr_Intrinsic) |
00487          (0 << Attr_Type) |             (1 << Attr_Co_Array) |
00488          (0 << Attr_Automatic) |        (0 << Attr_Volatile)
00489         ),
00490 
00491         /*  Obj_Dcl_Extern              ie: EXTERNAL A  */
00492 
00493         ((0 << Attr_Assumed_Type_Ch) |  (1 << Attr_Parameter) |
00494          (1 << Attr_Explicit_Shp_Arr) | (1 << Attr_Dimension) |
00495          (1 << Attr_Assumed_Size_Arr) | (1 << Attr_Deferred_Shp_Arr) |
00496          (1 << Attr_Assumed_Shp_Arr) |  (1 << Attr_Allocatable) |
00497          (1 << Attr_Intent) |   
00498          (0 << Attr_Optional) |         (0 << Attr_Public) |
00499          (0 << Attr_Private) |          (1 << Attr_Target) |
00500          (1 << Attr_Data_Init) |        (1 << Attr_Equivalence) |
00501          (1 << Attr_Save) |             (1 << Attr_Pointer) |
00502          (0 << Attr_External) |         (1 << Attr_Intrinsic) |
00503          (0 << Attr_Type) |             (1 << Attr_Co_Array) |
00504          (1 << Attr_Automatic) |        (1 << Attr_Volatile)
00505         ),
00506 
00507         /*  Obj_Dcl_Intrin              ie: INTRINSIC A */
00508 
00509         ((1 << Attr_Assumed_Type_Ch) |  (1 << Attr_Parameter) | 
00510          (1 << Attr_Explicit_Shp_Arr) | (1 << Attr_Dimension) |
00511          (1 << Attr_Assumed_Size_Arr) | (1 << Attr_Deferred_Shp_Arr) |
00512          (1 << Attr_Assumed_Shp_Arr) |  (1 << Attr_Allocatable) |
00513          (1 << Attr_Intent) |
00514          (1 << Attr_Optional) |         (0 << Attr_Public) |
00515          (0 << Attr_Private) |          (1 << Attr_Target) |
00516          (1 << Attr_Data_Init) |        (1 << Attr_Equivalence) |
00517          (1 << Attr_Save) |             (1 << Attr_Pointer) |
00518          (1 << Attr_External) |         (0 << Attr_Intrinsic) |
00519          (0 << Attr_Type) |             (1 << Attr_Co_Array) |
00520          (1 << Attr_Automatic) |        (1 << Attr_Volatile)
00521         ),
00522 
00523         /*  Obj_Data_Init               ie: DATA A /1.0/        */
00524 
00525         ((1 << Attr_Assumed_Type_Ch) |  (1 << Attr_Parameter) |
00526          (0 << Attr_Explicit_Shp_Arr) | (0 << Attr_Dimension) |
00527          (1 << Attr_Assumed_Size_Arr) | (0 << Attr_Deferred_Shp_Arr) |
00528          (1 << Attr_Assumed_Shp_Arr) |  (1 << Attr_Allocatable) |
00529          (1 << Attr_Intent) |
00530          (1 << Attr_Optional) |         (0 << Attr_Public) |
00531          (0 << Attr_Private) |          (0 << Attr_Target) |
00532          (0 << Attr_Data_Init) |        (0 << Attr_Equivalence) |
00533          (0 << Attr_Save) |             (0 << Attr_Pointer) |
00534          (1 << Attr_External) |         (1 << Attr_Intrinsic) |
00535          (0 << Attr_Type) |             (0 << Attr_Co_Array) |
00536          (1 << Attr_Automatic) |        (0 << Attr_Volatile)
00537         ),
00538 
00539         /*  Obj_Typed                   ie: INTEGER A   */
00540 
00541         /* If it's assumed_type char, it had to have been in a type stmt */
00542         /* so ATD_TYPED will be set.                                     */
00543 
00544         ((1 << Attr_Assumed_Type_Ch) |  (0 << Attr_Parameter) |
00545          (0 << Attr_Explicit_Shp_Arr) | (0 << Attr_Dimension) |
00546          (0 << Attr_Assumed_Size_Arr) | (0 << Attr_Deferred_Shp_Arr) |
00547          (0 << Attr_Assumed_Shp_Arr) |  (0 << Attr_Allocatable) |
00548          (0 << Attr_Intent) |
00549          (0 << Attr_Optional) |         (0 << Attr_Public) |
00550          (0 << Attr_Private) |          (0 << Attr_Target) |
00551          (0 << Attr_Data_Init) |        (0 << Attr_Equivalence) |
00552          (0 << Attr_Save) |             (0 << Attr_Pointer) |
00553          (0 << Attr_External) |         (0 << Attr_Intrinsic) |
00554          (0 << Attr_Type) |             (0 << Attr_Co_Array) |
00555          (0 << Attr_Automatic) |        (0 << Attr_Volatile)
00556         ),
00557 
00558         /*  Obj_Volatile                ie: VOLATILE A  */
00559 
00560         ((0 << Attr_Assumed_Type_Ch) |  (1 << Attr_Parameter) |
00561          (0 << Attr_Explicit_Shp_Arr) | (0 << Attr_Dimension) |
00562          (0 << Attr_Assumed_Size_Arr) | (0 << Attr_Deferred_Shp_Arr) |
00563          (0 << Attr_Assumed_Shp_Arr) |  (0 << Attr_Allocatable) |
00564          (0 << Attr_Intent) |
00565          (0 << Attr_Optional) |         (0 << Attr_Public) |
00566          (0 << Attr_Private) |          (0 << Attr_Target) |
00567          (0 << Attr_Data_Init) |        (0 << Attr_Equivalence) |
00568          (0 << Attr_Save) |             (0 << Attr_Pointer) |
00569          (1 << Attr_External) |         (1 << Attr_Intrinsic) |
00570          (0 << Attr_Type) |             (0 << Attr_Co_Array) |
00571          (0 << Attr_Automatic) |        (0 << Attr_Volatile)
00572         ),
00573 
00574         /*  Obj_Copy_Assumed_Shape      ie: !DIR$ COPY_ASSUMED_SHAPE A  */
00575 
00576         ((0 << Attr_Assumed_Type_Ch) |  (1 << Attr_Parameter) |
00577          (1 << Attr_Explicit_Shp_Arr) | (0 << Attr_Dimension) |
00578          (1 << Attr_Assumed_Size_Arr) | (0 << Attr_Deferred_Shp_Arr) |
00579          (0 << Attr_Assumed_Shp_Arr) |  (1 << Attr_Allocatable) |
00580          (0 << Attr_Intent) |
00581          (0 << Attr_Optional) |         (0 << Attr_Public) |
00582          (0 << Attr_Private) |          (1 << Attr_Target) |
00583          (1 << Attr_Data_Init) |        (1 << Attr_Equivalence) |
00584          (1 << Attr_Save) |             (1 << Attr_Pointer) |
00585          (1 << Attr_External) |         (1 << Attr_Intrinsic) |
00586          (0 << Attr_Type) |             (1 << Attr_Co_Array) |
00587          (1 << Attr_Automatic) |        (0 << Attr_Volatile)
00588         ),
00589 
00590         /*  Obj_Auxiliary               ie: !DIR$ AUXILIARY A   */
00591 
00592         ((1 << Attr_Assumed_Type_Ch) |  (1 << Attr_Parameter) |
00593          (0 << Attr_Explicit_Shp_Arr) | (0 << Attr_Dimension) | 
00594          (0 << Attr_Assumed_Size_Arr) | (1 << Attr_Deferred_Shp_Arr) |  
00595          (1 << Attr_Assumed_Shp_Arr) |  (1 << Attr_Allocatable) |
00596          (0 << Attr_Intent) |
00597          (0 << Attr_Optional) |         (0 << Attr_Public) |
00598          (0 << Attr_Private) |          (1 << Attr_Target) |
00599          (1 << Attr_Data_Init) |        (0 << Attr_Equivalence) |
00600          (1 << Attr_Save) |             (1 << Attr_Pointer) |
00601          (1 << Attr_External) |         (1 << Attr_Intrinsic) |
00602          (0 << Attr_Type) |             (1 << Attr_Co_Array) |
00603          (1 << Attr_Automatic) |        (0 << Attr_Volatile)
00604         ),
00605 
00606         /*  Obj_Vfunction               ie: !DIR$ VFUNCTION A   */
00607 
00608         ((1 << Attr_Assumed_Type_Ch) |  (1 << Attr_Parameter) |
00609          (1 << Attr_Explicit_Shp_Arr) | (1 << Attr_Dimension) |
00610          (1 << Attr_Assumed_Size_Arr) | (1 << Attr_Deferred_Shp_Arr) |
00611          (1 << Attr_Assumed_Shp_Arr) |  (1 << Attr_Allocatable) |
00612          (1 << Attr_Intent) |
00613          (1 << Attr_Optional) |         (0 << Attr_Public) |
00614          (0 << Attr_Private) |          (1 << Attr_Target) |
00615          (1 << Attr_Data_Init) |        (1 << Attr_Equivalence) |
00616          (1 << Attr_Save) |             (1 << Attr_Pointer) |
00617          (1 << Attr_External) |         (1 << Attr_Intrinsic) |
00618          (0 << Attr_Type) |             (1 << Attr_Co_Array) |
00619          (1 << Attr_Automatic) |        (1 << Attr_Volatile)
00620         ),
00621 
00622         /*  Obj_No_Side_Effects         ie: !DIR$ NOSIDEEFFECTS A */
00623 
00624         ((0 << Attr_Assumed_Type_Ch) |  (1 << Attr_Parameter) |
00625          (0 << Attr_Explicit_Shp_Arr) | (0 << Attr_Dimension) |
00626          (1 << Attr_Assumed_Size_Arr) | (0 << Attr_Deferred_Shp_Arr) |
00627          (1 << Attr_Assumed_Shp_Arr) |  (1 << Attr_Allocatable) |
00628          (1 << Attr_Intent) |
00629          (1 << Attr_Optional) |         (0 << Attr_Public) |
00630          (0 << Attr_Private) |          (0 << Attr_Target) |
00631          (1 << Attr_Data_Init) |        (1 << Attr_Equivalence) |
00632          (1 << Attr_Save) |             (0 << Attr_Pointer) |
00633          (0 << Attr_External) |         (1 << Attr_Intrinsic) |
00634          (0 << Attr_Type) |             (1 << Attr_Co_Array) |
00635          (1 << Attr_Automatic) |        (1 << Attr_Volatile)
00636         ),
00637 
00638         /*  Obj_Symmetric               ie: !DIR$ SYMMETRIC A */
00639 
00640         ((1 << Attr_Assumed_Type_Ch) |  (1 << Attr_Parameter) |
00641          (0 << Attr_Explicit_Shp_Arr) | (0 << Attr_Dimension) |
00642          (1 << Attr_Assumed_Size_Arr) | (1 << Attr_Deferred_Shp_Arr) |  
00643          (1 << Attr_Assumed_Shp_Arr) |  (1 << Attr_Allocatable) |
00644          (1 << Attr_Intent) |
00645          (1 << Attr_Optional) |         (0 << Attr_Public) |
00646          (0 << Attr_Private) |          (1 << Attr_Target) |    
00647          (1 << Attr_Data_Init) |        (1 << Attr_Equivalence) |
00648          (1 << Attr_Save) |             (1 << Attr_Pointer) |
00649          (1 << Attr_External) |         (1 << Attr_Intrinsic) |
00650          (0 << Attr_Type) |             (1 << Attr_Co_Array) |
00651          (1 << Attr_Automatic) |        (0 << Attr_Volatile)
00652         ),
00653 
00654         /*  Obj_Inline                  ie: !DIR$ INLINE ALWAYS/NEVER A */
00655 
00656         ((0 << Attr_Assumed_Type_Ch) |  (1 << Attr_Parameter) |
00657          (0 << Attr_Explicit_Shp_Arr) | (0 << Attr_Dimension) |
00658          (1 << Attr_Assumed_Size_Arr) | (0 << Attr_Deferred_Shp_Arr) |  
00659          (1 << Attr_Assumed_Shp_Arr) |  (1 << Attr_Allocatable) |
00660          (1 << Attr_Intent) |
00661          (1 << Attr_Optional) |         (0 << Attr_Public) |
00662          (0 << Attr_Private) |          (0 << Attr_Target) |    
00663          (1 << Attr_Data_Init) |        (1 << Attr_Equivalence) |
00664          (1 << Attr_Save) |             (0 << Attr_Pointer) |
00665          (0 << Attr_External) |         (0 << Attr_Intrinsic) |
00666          (0 << Attr_Type) |             (1 << Attr_Co_Array) |
00667          (0 << Attr_Automatic) |        (1 << Attr_Volatile)
00668         ),
00669 
00670         /*  Obj_Ipa                     ie: !*$* IPA  */
00671 
00672         ((0 << Attr_Assumed_Type_Ch) |  (1 << Attr_Parameter) |
00673          (0 << Attr_Explicit_Shp_Arr) | (0 << Attr_Dimension) |
00674          (1 << Attr_Assumed_Size_Arr) | (0 << Attr_Deferred_Shp_Arr) |  
00675          (1 << Attr_Assumed_Shp_Arr) |  (1 << Attr_Allocatable) |
00676          (1 << Attr_Intent) |
00677          (1 << Attr_Optional) |         (0 << Attr_Public) |
00678          (0 << Attr_Private) |          (0 << Attr_Target) |    
00679          (1 << Attr_Data_Init) |        (1 << Attr_Equivalence) |
00680          (1 << Attr_Save) |             (0 << Attr_Pointer) |
00681          (0 << Attr_External) |         (0 << Attr_Intrinsic) |
00682          (0 << Attr_Type) |             (1 << Attr_Co_Array) |
00683          (0 << Attr_Automatic) |        (1 << Attr_Volatile)
00684         ),
00685 
00686         /*  Obj_Align_Symbol            ie: !*$* ALIGN_SYMBOL A */
00687 
00688         ((1 << Attr_Assumed_Type_Ch) |  (1 << Attr_Parameter) |
00689          (0 << Attr_Explicit_Shp_Arr) | (0 << Attr_Dimension) |
00690          (1 << Attr_Assumed_Size_Arr) | (0 << Attr_Deferred_Shp_Arr) |  
00691          (1 << Attr_Assumed_Shp_Arr) |  (1 << Attr_Allocatable) |
00692          (1 << Attr_Intent) |
00693          (1 << Attr_Optional) |         (0 << Attr_Public) |
00694          (0 << Attr_Private) |          (0 << Attr_Target) |    
00695          (0 << Attr_Data_Init) |        (1 << Attr_Equivalence) |
00696          (0 << Attr_Save) |             (0 << Attr_Pointer) |
00697          (1 << Attr_External) |         (1 << Attr_Intrinsic) |
00698          (0 << Attr_Type) |             (1 << Attr_Co_Array) |
00699          (0 << Attr_Automatic) |        (0 << Attr_Volatile)
00700         ),
00701 
00702         /*  Obj_Fill_Symbol             ie: !*$* FILL_SYMBOL A */
00703 
00704         ((1 << Attr_Assumed_Type_Ch) |  (1 << Attr_Parameter) |
00705          (0 << Attr_Explicit_Shp_Arr) | (0 << Attr_Dimension) |
00706          (1 << Attr_Assumed_Size_Arr) | (0 << Attr_Deferred_Shp_Arr) |  
00707          (1 << Attr_Assumed_Shp_Arr) |  (1 << Attr_Allocatable) |
00708          (1 << Attr_Intent) |
00709          (1 << Attr_Optional) |         (0 << Attr_Public) |
00710          (0 << Attr_Private) |          (0 << Attr_Target) |    
00711          (0 << Attr_Data_Init) |        (1 << Attr_Equivalence) |
00712          (0 << Attr_Save) |             (0 << Attr_Pointer) |
00713          (1 << Attr_External) |         (1 << Attr_Intrinsic) |
00714          (0 << Attr_Type) |             (1 << Attr_Co_Array) |
00715          (0 << Attr_Automatic) |        (0 << Attr_Volatile)
00716         ),
00717 
00718         /*  Obj_Section_Gp              ie: !*$* SECTION_GP A */
00719 
00720         ((1 << Attr_Assumed_Type_Ch) |  (1 << Attr_Parameter) |
00721          (0 << Attr_Explicit_Shp_Arr) | (0 << Attr_Dimension) |
00722          (1 << Attr_Assumed_Size_Arr) | (0 << Attr_Deferred_Shp_Arr) |  
00723          (1 << Attr_Assumed_Shp_Arr) |  (1 << Attr_Allocatable) |
00724          (1 << Attr_Intent) |
00725          (1 << Attr_Optional) |         (0 << Attr_Public) |
00726          (0 << Attr_Private) |          (0 << Attr_Target) |    
00727          (0 << Attr_Data_Init) |        (0 << Attr_Equivalence) |
00728          (0 << Attr_Save) |             (0 << Attr_Pointer) |
00729          (1 << Attr_External) |         (1 << Attr_Intrinsic) |
00730          (0 << Attr_Type) |             (1 << Attr_Co_Array) |
00731          (1 << Attr_Automatic) |        (0 << Attr_Volatile)
00732         ),
00733 
00734         /*  Obj_Section_Non_Gp          ie: !*$* SECTION_NON_GP A */
00735 
00736         ((1 << Attr_Assumed_Type_Ch) |  (1 << Attr_Parameter) |
00737          (0 << Attr_Explicit_Shp_Arr) | (0 << Attr_Dimension) |
00738          (1 << Attr_Assumed_Size_Arr) | (0 << Attr_Deferred_Shp_Arr) |  
00739          (1 << Attr_Assumed_Shp_Arr) |  (1 << Attr_Allocatable) |
00740          (1 << Attr_Intent) |
00741          (1 << Attr_Optional) |         (0 << Attr_Public) |
00742          (0 << Attr_Private) |          (0 << Attr_Target) |    
00743          (0 << Attr_Data_Init) |        (0 << Attr_Equivalence) |
00744          (0 << Attr_Save) |             (0 << Attr_Pointer) |
00745          (1 << Attr_External) |         (1 << Attr_Intrinsic) |
00746          (0 << Attr_Type) |             (1 << Attr_Co_Array) |
00747          (1 << Attr_Automatic) |        (0 << Attr_Volatile)
00748         ),
00749 
00750         /*  Obj_Ignore_TKR              ie: !DIR$ IGNORE_TKR darg */
00751 
00752         ((0 << Attr_Assumed_Type_Ch) |  (1 << Attr_Parameter) |
00753          (0 << Attr_Explicit_Shp_Arr) | (0 << Attr_Dimension) |
00754          (0 << Attr_Deferred_Shp_Arr) | (0 << Attr_Assumed_Size_Arr) |
00755          (1 << Attr_Assumed_Shp_Arr) |  (1 << Attr_Allocatable) |
00756          (0 << Attr_Intent) |
00757          (0 << Attr_Optional) |         (0 << Attr_Public) |
00758          (0 << Attr_Private) |          (0 << Attr_Target) |
00759          (1 << Attr_Data_Init) |        (1 << Attr_Equivalence) |
00760          (1 << Attr_Save) |             (1 << Attr_Pointer) |
00761          (1 << Attr_External) |         (1 << Attr_Intrinsic) |
00762          (0 << Attr_Type) |             (0 << Attr_Co_Array) |
00763          (1 << Attr_Automatic) |        (0 << Attr_Volatile)
00764         ),
00765 
00766         /*  Obj_Optional_Dir            ie: !*$* optional(External name) */
00767 
00768         ((0 << Attr_Assumed_Type_Ch) |  (1 << Attr_Parameter) |         
00769          (1 << Attr_Explicit_Shp_Arr) | (1 << Attr_Dimension) |
00770          (1 << Attr_Assumed_Size_Arr) | (1 << Attr_Deferred_Shp_Arr) |
00771          (1 << Attr_Assumed_Shp_Arr) |  (1 << Attr_Allocatable) |
00772          (1 << Attr_Intent) |           (0 << Attr_Optional) |
00773          (0 << Attr_Public) |           (0 << Attr_Private) |
00774          (1 << Attr_Target) |           (1 << Attr_Data_Init) |
00775          (1 << Attr_Equivalence) |      (1 << Attr_Save) |
00776          (1 << Attr_Pointer) |          (0 << Attr_External) |
00777          (1 << Attr_Intrinsic) |        (0 << Attr_Type) |
00778          (1 << Attr_Co_Array) |         (1 << Attr_Automatic) | 
00779          (1 << Attr_Volatile)
00780         ),
00781 
00782         /*  Obj_Name                    ie: !DIR$ Name(Fort_name="ext_name") */
00783 
00784         ((0 << Attr_Assumed_Type_Ch) |  (1 << Attr_Parameter) |         
00785          (1 << Attr_Explicit_Shp_Arr) | (1 << Attr_Dimension) |
00786          (1 << Attr_Assumed_Size_Arr) | (1 << Attr_Deferred_Shp_Arr) |
00787          (1 << Attr_Assumed_Shp_Arr) |  (1 << Attr_Allocatable) |
00788          (1 << Attr_Intent) |
00789          (0 << Attr_Optional) |         (0 << Attr_Public) |
00790          (0 << Attr_Private) |          (1 << Attr_Target) |
00791          (1 << Attr_Data_Init) |        (1 << Attr_Equivalence) |
00792          (1 << Attr_Save) |             (1 << Attr_Pointer) |
00793          (0 << Attr_External) |         (1 << Attr_Intrinsic) |
00794          (0 << Attr_Type) |             (1 << Attr_Co_Array) |
00795          (1 << Attr_Automatic) |        (1 << Attr_Volatile)
00796         ),
00797 
00798         /*  Obj_Cri_Ptr                 ie: POINTER (A,B)       */
00799 
00800         ((1 << Attr_Assumed_Type_Ch) |  (1 << Attr_Parameter) |
00801          (1 << Attr_Explicit_Shp_Arr) | (1 << Attr_Dimension) |
00802          (1 << Attr_Assumed_Size_Arr) | (1 << Attr_Deferred_Shp_Arr) |
00803          (1 << Attr_Assumed_Shp_Arr) |  (1 << Attr_Allocatable) |
00804          (1 << Attr_Intent) |
00805          (0 << Attr_Optional) |         (0 << Attr_Public) |
00806          (0 << Attr_Private) |          (1 << Attr_Target) |
00807          (1 << Attr_Data_Init) |        (0 << Attr_Equivalence) |
00808          (0 << Attr_Save) |             (1 << Attr_Pointer) |
00809          (1 << Attr_External) |         (1 << Attr_Intrinsic) |
00810          (1 << Attr_Type) |             (1 << Attr_Co_Array) |
00811          (0 << Attr_Automatic) |        (0 << Attr_Volatile)
00812         ),
00813 
00814         /*  Obj_Cri_Pointee             ie: POINTER (B,A)               */
00815 
00816         ((1 << Attr_Assumed_Type_Ch) |  (1 << Attr_Parameter) |
00817          (0 << Attr_Explicit_Shp_Arr) | (0 << Attr_Dimension) |
00818          (0 << Attr_Assumed_Size_Arr) | (1 << Attr_Deferred_Shp_Arr) |
00819          (1 << Attr_Assumed_Shp_Arr) |  (1 << Attr_Allocatable) |
00820          (1 << Attr_Intent) |
00821          (1 << Attr_Optional) |         (0 << Attr_Public) |
00822          (0 << Attr_Private) |          (1 << Attr_Target) |
00823          (1 << Attr_Data_Init) |        (1 << Attr_Equivalence) |
00824          (1 << Attr_Save) |             (1 << Attr_Pointer) |
00825          (1 << Attr_External) |         (1 << Attr_Intrinsic) |
00826          (0 << Attr_Type) |             (1 << Attr_Co_Array) |
00827          (1 << Attr_Automatic) |        (0 << Attr_Volatile)
00828         ),
00829 
00830         /*  Obj_Cri_Ch_Pointee          ie: POINTER (B,A)               */
00831         /*      *(*) is what makes an assumed-size character pointer    */
00832 
00833         ((0 << Attr_Assumed_Type_Ch) |  (1 << Attr_Parameter) |
00834 
00835 # if defined(_EXTENDED_CRI_CHAR_POINTER)
00836          (0 << Attr_Explicit_Shp_Arr) | (0 << Attr_Dimension) |
00837          (0 << Attr_Assumed_Size_Arr) | (1 << Attr_Deferred_Shp_Arr) |
00838 # else
00839          (1 << Attr_Explicit_Shp_Arr) | (1 << Attr_Dimension) |
00840          (1 << Attr_Assumed_Size_Arr) | (1 << Attr_Deferred_Shp_Arr) |
00841 # endif
00842          (1 << Attr_Assumed_Shp_Arr) |  (1 << Attr_Allocatable) |
00843          (1 << Attr_Intent) |
00844          (1 << Attr_Optional) |         (0 << Attr_Public) |
00845          (0 << Attr_Private) |          (1 << Attr_Target) |
00846          (1 << Attr_Data_Init) |        (1 << Attr_Equivalence) |
00847          (1 << Attr_Save) |             (1 << Attr_Pointer) |
00848          (1 << Attr_External) |         (1 << Attr_Intrinsic) |
00849          (0 << Attr_Type) |             (1 << Attr_Co_Array) |
00850          (1 << Attr_Automatic) |        (0 << Attr_Volatile)
00851         ),
00852 
00853         /*  Obj_Ntry_Func_Result        ie: ENTRY ABC() RESULT A        */
00854         /* To be adjustable it must be a dummy arg.     Can't change a  */
00855         /* dummy arg into a function result.                            */
00856 
00857         ((0 << Attr_Assumed_Type_Ch) |  (1 << Attr_Parameter) |
00858          (0 << Attr_Explicit_Shp_Arr) | (0 << Attr_Dimension) |
00859          (1 << Attr_Assumed_Size_Arr) | (0 << Attr_Deferred_Shp_Arr) |
00860          (1 << Attr_Assumed_Shp_Arr) |  (1 << Attr_Allocatable) |
00861          (1 << Attr_Intent) |
00862          (1 << Attr_Optional) |         (0 << Attr_Public) |
00863          (0 << Attr_Private) |          (0 << Attr_Target) |
00864          (1 << Attr_Data_Init) |        (1 << Attr_Equivalence) |
00865          (1 << Attr_Save) |             (0 << Attr_Pointer) |
00866          (1 << Attr_External) |         (1 << Attr_Intrinsic) |
00867          (0 << Attr_Type) |             (1 << Attr_Co_Array) |
00868          (0 << Attr_Automatic) |        (1 << Attr_Volatile)
00869         ),
00870 
00871         /*  Obj_Dummy_Arg               ie: FUNCTION ABC(A)             */
00872         /*                              ie: ENTRY ABC(A)                */
00873 
00874         ((0 << Attr_Assumed_Type_Ch) |  (1 << Attr_Parameter) |
00875          (0 << Attr_Explicit_Shp_Arr) | (0 << Attr_Dimension) |
00876          (0 << Attr_Assumed_Size_Arr) | (0 << Attr_Deferred_Shp_Arr) |
00877          (0 << Attr_Assumed_Shp_Arr) |  (1 << Attr_Allocatable) |
00878          (0 << Attr_Intent) |
00879          (0 << Attr_Optional) |         (0 << Attr_Public) |
00880          (0 << Attr_Private) |          (0 << Attr_Target) |
00881          (1 << Attr_Data_Init) |        (1 << Attr_Equivalence) |
00882          (1 << Attr_Save) |             (0 << Attr_Pointer) |
00883          (0 << Attr_External) |         (1 << Attr_Intrinsic) |
00884          (0 << Attr_Type) |             (0 << Attr_Co_Array) |
00885          (1 << Attr_Automatic) |        (0 << Attr_Volatile)
00886         ),
00887 
00888         /*  Obj_Common_Obj              ie: COMMON // A */
00889 
00890         ((1 << Attr_Assumed_Type_Ch) |  (1 << Attr_Parameter) | 
00891          (0 << Attr_Explicit_Shp_Arr) | (0 << Attr_Dimension) |
00892          (1 << Attr_Assumed_Size_Arr) | (0 << Attr_Deferred_Shp_Arr) |
00893          (1 << Attr_Assumed_Shp_Arr) |  (1 << Attr_Allocatable) |
00894          (1 << Attr_Intent) |   
00895          (1 << Attr_Optional) |         (0 << Attr_Public) |
00896          (0 << Attr_Private) |          (0 << Attr_Target) |
00897          (0 << Attr_Data_Init) |        (0 << Attr_Equivalence) |
00898          (1 << Attr_Save) |             (0 << Attr_Pointer) |
00899          (1 << Attr_External) |         (1 << Attr_Intrinsic) |
00900          (0 << Attr_Type) |             (0 << Attr_Co_Array) |
00901          (1 << Attr_Automatic) |        (0 << Attr_Volatile)
00902         ),
00903 
00904         /*  Obj_Namelist_Obj            ie: NAMELIST /G/ A      */
00905 
00906         ((1 << Attr_Assumed_Type_Ch) |  (1 << Attr_Parameter) |
00907          (0 << Attr_Explicit_Shp_Arr) | (0 << Attr_Dimension) |
00908          (1 << Attr_Assumed_Size_Arr) | (1 << Attr_Deferred_Shp_Arr) |
00909          (1 << Attr_Assumed_Shp_Arr) |  (1 << Attr_Allocatable) |
00910          (0 << Attr_Intent) |
00911          (0 << Attr_Optional) |         (0 << Attr_Public) |
00912          (0 << Attr_Private) |          (0 << Attr_Target) |
00913          (0 << Attr_Data_Init) |        (0 << Attr_Equivalence) |
00914          (0 << Attr_Save) |             (1 << Attr_Pointer) |
00915          (1 << Attr_External) |         (1 << Attr_Intrinsic) |
00916          (0 << Attr_Type) |             (0 << Attr_Co_Array) |
00917          (0 << Attr_Automatic) |        (0 << Attr_Volatile)
00918         ),
00919 
00920         /*  Obj_Module_Proc             ie: MODULE PROCEDURE A  */
00921 
00922         ((1 << Attr_Assumed_Type_Ch) |  (1 << Attr_Parameter) |
00923          (1 << Attr_Explicit_Shp_Arr) | (1 << Attr_Dimension) |
00924          (1 << Attr_Assumed_Size_Arr) | (1 << Attr_Deferred_Shp_Arr) |
00925          (1 << Attr_Assumed_Shp_Arr) |  (1 << Attr_Allocatable) |
00926          (1 << Attr_Intent) |
00927          (1 << Attr_Optional) |         (0 << Attr_Public) |
00928          (0 << Attr_Private) |          (1 << Attr_Target) |
00929          (1 << Attr_Data_Init) |        (1 << Attr_Equivalence) |
00930          (1 << Attr_Save) |             (1 << Attr_Pointer) |
00931          (1 << Attr_External) |         (1 << Attr_Intrinsic) |
00932          (1 << Attr_Type) |             (1 << Attr_Co_Array) |
00933          (0 << Attr_Automatic) |        (1 << Attr_Volatile)
00934         ),
00935 
00936         /*  Obj_Derived_Type            ie: TYPE A      */
00937 
00938         ((1 << Attr_Assumed_Type_Ch) |  (1 << Attr_Parameter) |
00939          (1 << Attr_Explicit_Shp_Arr) | (1 << Attr_Dimension) |
00940          (1 << Attr_Assumed_Size_Arr) | (1 << Attr_Deferred_Shp_Arr) |
00941          (1 << Attr_Assumed_Shp_Arr) |  (1 << Attr_Allocatable) |
00942          (1 << Attr_Intent) |   
00943          (1 << Attr_Optional) |         (0 << Attr_Public) |
00944          (0 << Attr_Private) |          (1 << Attr_Target) |
00945          (1 << Attr_Data_Init) |        (1 << Attr_Equivalence) |
00946          (1 << Attr_Save) |             (1 << Attr_Pointer) |
00947          (1 << Attr_External) |         (1 << Attr_Intrinsic) |
00948          (1 << Attr_Type) |             (1 << Attr_Co_Array) |
00949          (1 << Attr_Automatic) |        (1 << Attr_Volatile)
00950         ),
00951 
00952         /*  Obj_Generic_Interface       ie: INTERFACE A */
00953 
00954         ((1 << Attr_Assumed_Type_Ch) |  (1 << Attr_Parameter) | 
00955          (1 << Attr_Explicit_Shp_Arr) | (1 << Attr_Dimension) |
00956          (1 << Attr_Assumed_Size_Arr) | (1 << Attr_Deferred_Shp_Arr) |
00957          (1 << Attr_Assumed_Shp_Arr) |  (1 << Attr_Allocatable) |
00958          (1 << Attr_Intent) |   
00959          (1 << Attr_Optional) |         (0 << Attr_Public) |
00960          (0 << Attr_Private) |          (1 << Attr_Target) |
00961          (1 << Attr_Data_Init) |        (1 << Attr_Equivalence) |
00962          (1 << Attr_Save) |             (1 << Attr_Pointer) |
00963          (1 << Attr_External) |         (0 << Attr_Intrinsic) |
00964          (0 << Attr_Type) |             (1 << Attr_Co_Array) |
00965          (1 << Attr_Automatic) |        (1 << Attr_Volatile)
00966         ),
00967         
00968         /*  Obj_Namelist_Grp            ie: NAMELIST /A/ B      */
00969 
00970         ((1 << Attr_Assumed_Type_Ch) |  (1 << Attr_Parameter) | 
00971          (1 << Attr_Explicit_Shp_Arr) | (1 << Attr_Dimension) |
00972          (1 << Attr_Assumed_Size_Arr) | (1 << Attr_Deferred_Shp_Arr) |
00973          (1 << Attr_Assumed_Shp_Arr) |  (1 << Attr_Allocatable) |
00974          (1 << Attr_Intent) |   
00975          (1 << Attr_Optional) |         (0 << Attr_Public) |
00976          (0 << Attr_Private) |          (1 << Attr_Target) |
00977          (1 << Attr_Data_Init) |        (1 << Attr_Equivalence) |
00978          (1 << Attr_Save) |             (1 << Attr_Pointer) |
00979          (1 << Attr_External) |         (1 << Attr_Intrinsic) |
00980          (1 << Attr_Type) |             (1 << Attr_Co_Array) |
00981          (1 << Attr_Automatic) |        (1 << Attr_Volatile)
00982         ),
00983 
00984         /*  Obj_Stmt_Func               ie: A(XY) = ...         */
00985         /*      Types must be scalar and have constant bounds   */
00986 
00987         ((1 << Attr_Assumed_Type_Ch) |  (1 << Attr_Parameter) | 
00988          (1 << Attr_Explicit_Shp_Arr) | (1 << Attr_Dimension) |
00989          (1 << Attr_Assumed_Size_Arr) | (1 << Attr_Deferred_Shp_Arr) |
00990          (1 << Attr_Assumed_Shp_Arr) |  (1 << Attr_Allocatable) |
00991          (1 << Attr_Intent) |   
00992          (1 << Attr_Optional) |         (1 << Attr_Public) |
00993          (1 << Attr_Private) |          (1 << Attr_Target) |
00994          (1 << Attr_Data_Init) |        (1 << Attr_Equivalence) |
00995          (1 << Attr_Save) |             (1 << Attr_Pointer) |
00996          (1 << Attr_External) |         (1 << Attr_Intrinsic) |
00997          (0 << Attr_Type) |             (1 << Attr_Co_Array) |
00998          (1 << Attr_Automatic) |        (1 << Attr_Volatile)
00999         ),
01000 
01001         /*  Obj_Construct               ie: A : IF (I.EQ.J) THEN        */
01002 
01003         ((1 << Attr_Assumed_Type_Ch) |  (1 << Attr_Parameter) | 
01004          (1 << Attr_Explicit_Shp_Arr) | (1 << Attr_Dimension) |
01005          (1 << Attr_Assumed_Size_Arr) | (1 << Attr_Deferred_Shp_Arr) |
01006          (1 << Attr_Assumed_Shp_Arr) |  (1 << Attr_Allocatable) |
01007          (1 << Attr_Intent) |   
01008          (1 << Attr_Optional) |         (1 << Attr_Public) |
01009          (1 << Attr_Private) |          (1 << Attr_Target) |
01010          (1 << Attr_Data_Init) |        (1 << Attr_Equivalence) |
01011          (1 << Attr_Save) |             (1 << Attr_Pointer) |
01012          (1 << Attr_External) |         (1 << Attr_Intrinsic) |
01013          (1 << Attr_Type) |             (1 << Attr_Co_Array) |
01014          (1 << Attr_Automatic) |        (1 << Attr_Volatile)
01015         ),
01016 
01017         /*  Obj_Entry_Func              ie: ENTRY A     */
01018 
01019         ((0 << Attr_Assumed_Type_Ch) |  (1 << Attr_Parameter) |
01020          (0 << Attr_Explicit_Shp_Arr) | (0 << Attr_Dimension) |
01021          (1 << Attr_Assumed_Size_Arr) | (0 << Attr_Deferred_Shp_Arr) |
01022          (1 << Attr_Assumed_Shp_Arr) |  (1 << Attr_Allocatable) |
01023          (1 << Attr_Intent) |   
01024          (1 << Attr_Optional) |         (0 << Attr_Public) |
01025          (0 << Attr_Private) |          (0 << Attr_Target) |
01026          (1 << Attr_Data_Init) |        (1 << Attr_Equivalence) |
01027          (1 << Attr_Save) |             (0 << Attr_Pointer) |
01028          (1 << Attr_External) |         (1 << Attr_Intrinsic) |
01029          (0 << Attr_Type) |             (1 << Attr_Co_Array) |
01030          (0 << Attr_Automatic) |        (1 << Attr_Volatile)
01031         ),
01032 
01033         /*  Obj_Entry_Subr              ie: ENTRY A     */
01034 
01035         ((1 << Attr_Assumed_Type_Ch) |  (1 << Attr_Parameter) | 
01036          (1 << Attr_Explicit_Shp_Arr) | (1 << Attr_Dimension) |
01037          (1 << Attr_Assumed_Size_Arr) | (1 << Attr_Deferred_Shp_Arr) |
01038          (1 << Attr_Assumed_Shp_Arr) |  (1 << Attr_Allocatable) |
01039          (1 << Attr_Intent) |   
01040          (1 << Attr_Optional) |         (0 << Attr_Public) |
01041          (0 << Attr_Private) |          (1 << Attr_Target) |
01042          (1 << Attr_Data_Init) |        (1 << Attr_Equivalence) |
01043          (1 << Attr_Save) |             (1 << Attr_Pointer) |
01044          (1 << Attr_External) |         (1 << Attr_Intrinsic) |
01045          (1 << Attr_Type) |             (1 << Attr_Co_Array) |
01046          (1 << Attr_Automatic) |        (1 << Attr_Volatile)
01047         ),
01048 
01049         /*  Obj_Intern_Func             ie: FUNCTION A()        */
01050 
01051         ((1 << Attr_Assumed_Type_Ch) |  (1 << Attr_Parameter) | 
01052          (1 << Attr_Explicit_Shp_Arr) | (1 << Attr_Dimension) |
01053          (1 << Attr_Assumed_Size_Arr) | (1 << Attr_Deferred_Shp_Arr) |
01054          (1 << Attr_Assumed_Shp_Arr) |  (1 << Attr_Allocatable) |
01055          (1 << Attr_Intent) |   
01056          (1 << Attr_Optional) |         (0 << Attr_Public) |
01057          (0 << Attr_Private) |          (1 << Attr_Target) |
01058          (1 << Attr_Data_Init) |        (1 << Attr_Equivalence) |
01059          (1 << Attr_Save) |             (1 << Attr_Pointer) |
01060          (1 << Attr_External) |         (1 << Attr_Intrinsic) |
01061          (1 << Attr_Type) |             (1 << Attr_Co_Array) |
01062          (1 << Attr_Automatic) |        (1 << Attr_Volatile)
01063         ),
01064 
01065         /*  Obj_Intern_Subr             ie: SUBROUTINE A()      */
01066 
01067         ((1 << Attr_Assumed_Type_Ch) |  (1 << Attr_Parameter) | 
01068          (1 << Attr_Explicit_Shp_Arr) | (1 << Attr_Dimension) |
01069          (1 << Attr_Assumed_Size_Arr) | (1 << Attr_Deferred_Shp_Arr) |
01070          (1 << Attr_Assumed_Shp_Arr) |  (1 << Attr_Allocatable) |
01071          (1 << Attr_Intent) |   
01072          (1 << Attr_Optional) |         (0 << Attr_Public) |
01073          (0 << Attr_Private) |          (1 << Attr_Target) |
01074          (1 << Attr_Data_Init) |        (1 << Attr_Equivalence) |
01075          (1 << Attr_Save) |             (1 << Attr_Pointer) |
01076          (1 << Attr_External) |         (1 << Attr_Intrinsic) |
01077          (1 << Attr_Type) |             (1 << Attr_Co_Array) |
01078          (1 << Attr_Automatic) |        (1 << Attr_Volatile)
01079         ),
01080 
01081         /*  Obj_Module_Func             ie: FUNCTION A()        */
01082 
01083         ((1 << Attr_Assumed_Type_Ch) |  (1 << Attr_Parameter) | 
01084          (1 << Attr_Explicit_Shp_Arr) | (1 << Attr_Dimension) |
01085          (1 << Attr_Assumed_Size_Arr) | (1 << Attr_Deferred_Shp_Arr) |
01086          (1 << Attr_Assumed_Shp_Arr) |  (1 << Attr_Allocatable) |
01087          (1 << Attr_Intent) |   
01088          (1 << Attr_Optional) |         (0 << Attr_Public) |
01089          (0 << Attr_Private) |          (1 << Attr_Target) |
01090          (1 << Attr_Data_Init) |        (1 << Attr_Equivalence) |
01091          (1 << Attr_Save) |             (1 << Attr_Pointer) |
01092          (1 << Attr_External) |         (1 << Attr_Intrinsic) |
01093          (1 << Attr_Type) |             (1 << Attr_Co_Array) |
01094          (0 << Attr_Automatic) |        (1 << Attr_Volatile)
01095         ),
01096 
01097         /*  Obj_Module_Subr             ie: SUBROUTINE A()      */
01098 
01099         ((1 << Attr_Assumed_Type_Ch) |  (1 << Attr_Parameter) |         
01100          (1 << Attr_Explicit_Shp_Arr) | (1 << Attr_Dimension) |
01101          (1 << Attr_Assumed_Size_Arr) | (1 << Attr_Deferred_Shp_Arr) |
01102          (1 << Attr_Assumed_Shp_Arr) |  (1 << Attr_Allocatable) |
01103          (1 << Attr_Intent) |           
01104          (1 << Attr_Optional) |         (0 << Attr_Public) |
01105          (0 << Attr_Private) |          (1 << Attr_Target) |
01106          (1 << Attr_Data_Init) |        (1 << Attr_Equivalence) |
01107          (1 << Attr_Save) |             (1 << Attr_Pointer) |
01108          (1 << Attr_External) |         (1 << Attr_Intrinsic) |
01109          (1 << Attr_Type) |             (1 << Attr_Co_Array) |
01110          (1 << Attr_Automatic) |        (1 << Attr_Volatile)
01111         ),
01112 
01113         /*  Obj_Sf_Darg                 ie: sf(A) =     */
01114 
01115         ((1 << Attr_Assumed_Type_Ch) |  (1 << Attr_Parameter) |         
01116          (1 << Attr_Explicit_Shp_Arr) | (1 << Attr_Dimension) |
01117          (1 << Attr_Assumed_Size_Arr) | (1 << Attr_Deferred_Shp_Arr) |
01118          (1 << Attr_Assumed_Shp_Arr) |  (1 << Attr_Allocatable) |
01119          (0 << Attr_Intent) |           
01120          (0 << Attr_Optional) |         (0 << Attr_Public) |
01121          (0 << Attr_Private) |          (0 << Attr_Target) |
01122          (0 << Attr_Data_Init) |        (0 << Attr_Equivalence) |
01123          (0 << Attr_Save) |             (0 << Attr_Pointer) |
01124          (1 << Attr_External) |         (1 << Attr_Intrinsic) |
01125          (0 << Attr_Type) |             (1 << Attr_Co_Array) |
01126          (0 << Attr_Automatic) |        (1 << Attr_Volatile)
01127         ),
01128 
01129         /*  Obj_Sf_Actual_Arg           ie: x = sf(A)           */
01130 
01131         ((0 << Attr_Assumed_Type_Ch) |  (0 << Attr_Parameter) |         
01132          (0 << Attr_Explicit_Shp_Arr) | (0 << Attr_Dimension) |
01133          (0 << Attr_Assumed_Size_Arr) | (0 << Attr_Deferred_Shp_Arr) |
01134          (0 << Attr_Assumed_Shp_Arr) |  (0 << Attr_Allocatable) |
01135          (0 << Attr_Intent) |           
01136          (0 << Attr_Optional) |         (0 << Attr_Public) |
01137          (0 << Attr_Private) |          (0 << Attr_Target) |
01138          (0 << Attr_Data_Init) |        (0 << Attr_Equivalence) |
01139          (0 << Attr_Save) |             (0 << Attr_Pointer) |
01140          (1 << Attr_External) |         (1 << Attr_Intrinsic) |
01141          (0 << Attr_Type) |             (1 << Attr_Co_Array) |
01142          (0 << Attr_Automatic) |        (0 << Attr_Volatile)
01143         ),
01144 
01145         /*  Obj_Var_Len_Ch              ie: CHARACTER*(N) A         */
01146         /*  Covers both automatic and adjustable.                   */
01147         /*  Always called at end pass1.  Obj_type is called when the        */
01148         /*  character statement is seen.  If the bounds do not resolve to a */ 
01149         /*  constant, then fnd_semantic_err is called with Obj_Var_Len_Ch.  */
01150         /*  That is why Attr_Type is allowed to be set.                     */
01151 
01152         ((1 << Attr_Assumed_Type_Ch) |  (1 << Attr_Parameter) |
01153          (0 << Attr_Explicit_Shp_Arr) | (0 << Attr_Dimension) | 
01154          (0 << Attr_Assumed_Size_Arr) | (0 << Attr_Deferred_Shp_Arr) |
01155          (0 << Attr_Assumed_Shp_Arr) |  (0 << Attr_Allocatable) |
01156          (0 << Attr_Intent) |           
01157          (0 << Attr_Optional) |         (0 << Attr_Public) |
01158          (0 << Attr_Private) |          (0 << Attr_Target) |
01159          (1 << Attr_Data_Init) |        (1 << Attr_Equivalence) |
01160          (1 << Attr_Save) |             (0 << Attr_Pointer) |
01161          (0 << Attr_External) |         (0 << Attr_Intrinsic) |
01162          (0 << Attr_Type) |             (0 << Attr_Co_Array) |
01163          (1 << Attr_Automatic) |        (0 << Attr_Volatile)
01164         ),
01165 
01166         /*  Obj_Var_Len_Arr             ie: DIMENSION A(N)                  */
01167         /*  Obj_Var_Len_Arr is used at declaration semantics. The thing is  */
01168         /*  already an explicit shape array, but now it is variable length. */
01169         /*  Because this is at end pass1, the item may have the Auxiliary   */
01170         /*  attribute.                                                      */
01171 
01172         ((0 << Attr_Assumed_Type_Ch) |  (1 << Attr_Parameter) |
01173          (0 << Attr_Explicit_Shp_Arr) | (0 << Attr_Dimension) | 
01174          (1 << Attr_Assumed_Size_Arr) |        (0 << Attr_Deferred_Shp_Arr) |
01175          (0 << Attr_Assumed_Shp_Arr) |  (0 << Attr_Allocatable) |
01176          (0 << Attr_Intent) |           
01177          (0 << Attr_Optional) |         (0 << Attr_Public) |
01178          (0 << Attr_Private) |          (0 << Attr_Target) |
01179          (1 << Attr_Data_Init) |        (1 << Attr_Equivalence) |
01180          (1 << Attr_Save) |             (1 << Attr_Pointer) |
01181          (1 << Attr_External) |         (1 << Attr_Intrinsic) |
01182          (0 << Attr_Type) |             (0 << Attr_Co_Array) |
01183          (1 << Attr_Automatic) |        (0 << Attr_Volatile)
01184         ),
01185 
01186         /*  Obj_Sym_Constant_Array      ie: DIMENSION A(N$PES)   */
01187 
01188         ((0 << Attr_Assumed_Type_Ch) |  (1 << Attr_Parameter) |
01189          (0 << Attr_Explicit_Shp_Arr) | (0 << Attr_Dimension) | 
01190          (0 << Attr_Assumed_Size_Arr) | (1 << Attr_Deferred_Shp_Arr) |
01191          (0 << Attr_Assumed_Shp_Arr) |  (1 << Attr_Allocatable) |
01192          (0 << Attr_Intent) |
01193          (0 << Attr_Optional) |         (0 << Attr_Public) |
01194          (0 << Attr_Private) |          (0 << Attr_Target) |
01195          (1 << Attr_Data_Init) |        (1 << Attr_Equivalence) |
01196          (0 << Attr_Save) |             (1 << Attr_Pointer) |
01197          (1 << Attr_External) |         (1 << Attr_Intrinsic) |
01198          (0 << Attr_Type) |             (1 << Attr_Co_Array) |
01199          (0 << Attr_Automatic) |        (1 << Attr_Volatile)
01200         ),
01201 
01202         /*  Obj_Interface_Func          ie: FUNCTION ABC()      */
01203 
01204         ((1 << Attr_Assumed_Type_Ch) |  (1 << Attr_Parameter) |
01205          (1 << Attr_Explicit_Shp_Arr) | (1 << Attr_Dimension) |
01206          (1 << Attr_Assumed_Size_Arr) | (1 << Attr_Deferred_Shp_Arr) |
01207          (1 << Attr_Assumed_Shp_Arr) |  (1 << Attr_Allocatable) |
01208          (1 << Attr_Intent) |
01209          (0 << Attr_Optional) |         (0 << Attr_Public) |
01210          (0 << Attr_Private) |          (1 << Attr_Target) |
01211          (1 << Attr_Data_Init) |        (1 << Attr_Equivalence) |
01212          (1 << Attr_Save) |             (1 << Attr_Pointer) |
01213          (1 << Attr_External) |         (1 << Attr_Intrinsic) |
01214          (1 << Attr_Type) |             (1 << Attr_Co_Array) |
01215          (0 << Attr_Automatic) |        (1 << Attr_Volatile)
01216         ),
01217 
01218         /*  Obj_Interface_Subr          ie: SUBROUTINE ABC()    */
01219 
01220         ((1 << Attr_Assumed_Type_Ch) |  (1 << Attr_Parameter) |
01221          (1 << Attr_Explicit_Shp_Arr) | (1 << Attr_Dimension) |
01222          (1 << Attr_Assumed_Size_Arr) | (1 << Attr_Deferred_Shp_Arr) |
01223          (1 << Attr_Assumed_Shp_Arr) |  (1 << Attr_Allocatable) |
01224          (1 << Attr_Intent) |
01225          (0 << Attr_Optional) |         (0 << Attr_Public) |
01226          (0 << Attr_Private) |          (1 << Attr_Target) |
01227          (1 << Attr_Data_Init) |        (1 << Attr_Equivalence) |
01228          (1 << Attr_Save) |             (1 << Attr_Pointer) |
01229          (1 << Attr_External) |         (1 << Attr_Intrinsic) |
01230          (1 << Attr_Type) |             (1 << Attr_Co_Array) |
01231          (1 << Attr_Automatic) |        (1 << Attr_Volatile)
01232         ),
01233 
01234         /*  Obj_Use_Extern_Func         ie: B = A()              */
01235 
01236         ((0 << Attr_Assumed_Type_Ch) |  (1 << Attr_Parameter) | 
01237          (0 << Attr_Explicit_Shp_Arr) | (0 << Attr_Dimension) |
01238          (1 << Attr_Assumed_Size_Arr) | (0 << Attr_Deferred_Shp_Arr) |
01239          (1 << Attr_Assumed_Shp_Arr) |  (1 << Attr_Allocatable) |
01240          (1 << Attr_Intent) |   
01241          (0 << Attr_Optional) |         (0 << Attr_Public) |
01242          (0 << Attr_Private) |          (1 << Attr_Target) |
01243          (1 << Attr_Data_Init) |        (1 << Attr_Equivalence) |
01244          (1 << Attr_Save) |             (0 << Attr_Pointer) |
01245          (0 << Attr_External) |         (0 << Attr_Intrinsic) |
01246          (0 << Attr_Type) |             (1 << Attr_Co_Array) |
01247          (0 << Attr_Automatic) |        (1 << Attr_Volatile)
01248         ),
01249 
01250         /*  Obj_Use_Extern_Subr         ie: CALL A()    */
01251 
01252         ((1 << Attr_Assumed_Type_Ch) |  (1 << Attr_Parameter) | 
01253          (1 << Attr_Explicit_Shp_Arr) | (1 << Attr_Dimension) |
01254          (1 << Attr_Assumed_Size_Arr) | (1 << Attr_Deferred_Shp_Arr) |
01255          (1 << Attr_Assumed_Shp_Arr) |  (1 << Attr_Allocatable) |
01256          (1 << Attr_Intent) |   
01257          (0 << Attr_Optional) |         (0 << Attr_Public) |
01258          (0 << Attr_Private) |          (1 << Attr_Target) |
01259          (1 << Attr_Data_Init) |        (1 << Attr_Equivalence) |
01260          (1 << Attr_Save) |             (1 << Attr_Pointer) |
01261          (0 << Attr_External) |         (0 << Attr_Intrinsic) |
01262          (1 << Attr_Type) |             (1 << Attr_Co_Array) |
01263          (1 << Attr_Automatic) |        (1 << Attr_Volatile)
01264         ),
01265 
01266         /*  Obj_Use_In_Expr             ie: X = A + B   */
01267 
01268         ((0 << Attr_Assumed_Type_Ch) |  (0 << Attr_Parameter) | 
01269          (0 << Attr_Explicit_Shp_Arr) | (0 << Attr_Dimension) |
01270          (0 << Attr_Assumed_Size_Arr) | (0 << Attr_Deferred_Shp_Arr) |
01271          (0 << Attr_Assumed_Shp_Arr) |  (0 << Attr_Allocatable) |
01272          (0 << Attr_Intent) |           
01273          (0 << Attr_Optional) |         (0 << Attr_Public) |
01274          (0 << Attr_Private) |          (0 << Attr_Target) |
01275          (0 << Attr_Data_Init) |        (0 << Attr_Equivalence) |
01276          (0 << Attr_Save) |             (0 << Attr_Pointer) |
01277          (0 << Attr_External) |         (0 << Attr_Intrinsic) |
01278          (0 << Attr_Type) |             (0 << Attr_Co_Array) |
01279          (0 << Attr_Automatic) |        (0 << Attr_Volatile)
01280         ),
01281 
01282         /*  Obj_Use_Derived_Type        ie: TYPE (A)    */
01283 
01284         ((1 << Attr_Assumed_Type_Ch) |  (1 << Attr_Parameter) | 
01285          (1 << Attr_Explicit_Shp_Arr) | (1 << Attr_Dimension) |
01286          (1 << Attr_Assumed_Size_Arr) | (1 << Attr_Deferred_Shp_Arr) |
01287          (1 << Attr_Assumed_Shp_Arr) |  (1 << Attr_Allocatable) |
01288          (1 << Attr_Intent) |
01289          (1 << Attr_Optional) |         (0 << Attr_Public) |
01290          (0 << Attr_Private) |          (1 << Attr_Target) |
01291          (1 << Attr_Data_Init) |        (1 << Attr_Equivalence) |
01292          (1 << Attr_Save) |             (1 << Attr_Pointer) |
01293          (1 << Attr_External) |         (1 << Attr_Intrinsic) |
01294          (1 << Attr_Type) |             (1 << Attr_Co_Array) |
01295          (1 << Attr_Automatic) |        (1 << Attr_Volatile)
01296         ),
01297 
01298         /*  Obj_Use_Spec_Expr           ie: DIMENSION ARRAY(A) */
01299 
01300         ((0 << Attr_Assumed_Type_Ch) |  (0 << Attr_Parameter) | 
01301          (0 << Attr_Explicit_Shp_Arr) | (0 << Attr_Dimension) |
01302          (0 << Attr_Assumed_Size_Arr) | (0 << Attr_Deferred_Shp_Arr) |
01303          (0 << Attr_Assumed_Shp_Arr) |  (0 << Attr_Allocatable) |
01304          (0 << Attr_Intent) |
01305          (1 << Attr_Optional) |         (0 << Attr_Public) |
01306          (0 << Attr_Private) |          (0 << Attr_Target) |
01307          (0 << Attr_Data_Init) |        (0 << Attr_Equivalence) |
01308          (0 << Attr_Save) |             (0 << Attr_Pointer) |
01309          (0 << Attr_External) |         (0 << Attr_Intrinsic) |
01310          (0 << Attr_Type) |             (0 << Attr_Co_Array) |
01311          (0 << Attr_Automatic) |        (0 << Attr_Volatile)
01312         ),
01313 
01314         /*  Obj_Use_Init_Expr           ie: PARAMETER (I=A)     */
01315 
01316         ((0 << Attr_Assumed_Type_Ch) |  (0 << Attr_Parameter) |
01317          (0 << Attr_Explicit_Shp_Arr) | (0 << Attr_Dimension) |
01318          (1 << Attr_Assumed_Size_Arr) | (1 << Attr_Deferred_Shp_Arr) |
01319          (1 << Attr_Assumed_Shp_Arr) |  (1 << Attr_Allocatable) |
01320          (1 << Attr_Intent) |
01321          (1 << Attr_Optional) |         (0 << Attr_Public) |
01322          (0 << Attr_Private) |          (1 << Attr_Target) |
01323          (1 << Attr_Data_Init) |        (1 << Attr_Equivalence) |
01324          (1 << Attr_Save) |             (1 << Attr_Pointer) |
01325          (1 << Attr_External) |         (1 << Attr_Intrinsic) |
01326          (0 << Attr_Type) |             (1 << Attr_Co_Array) |
01327          (0 << Attr_Automatic) |        (1 << Attr_Volatile)
01328 
01329         ) };
01330 
01331 
01332 long    obj_to_dir[Obj_Done]    =       {
01333 
01334         /*  Obj_Assum_Type_Ch           ie: CHARACTER*(*) A             */
01335         /*  Must be a dummy argument or constant, but have to declare   */
01336         /*  the type first, then make it a Parameter.                   */
01337         /*  It can also be used to declare the result of the external   */
01338         /*  function that is actually being compiled.   This function   */
01339         /*  cannot be array-valued or a pointer.                        */
01340 
01341         ((1 << Dir_Auxiliary) |         (1 << Dir_Vfunction) |
01342          (0 << Dir_No_Side_Effects) |   (0 << Dir_Inline) |
01343          (1 << Dir_Symmetric) |         (0 << Dir_Copy_Assumed_Shape) |
01344          (1 << Dir_Align_Symbol) |      (1 << Dir_Fill_Symbol) |
01345          (1 << Dir_Section_Gp) |        (1 << Dir_Section_Non_Gp) |
01346          (0 << Dir_Optional) |          (0 << Dir_Ignore_TKR) |
01347          (0 << Dir_Ipa) |               (0 << Dir_Name)),
01348 
01349         /*      Obj_Expl_Shp_Arr        ie: DIMENSION A (1)     */
01350         /*      NOTES: Must declare as array then data initialize it    */
01351 
01352         ((0 << Dir_Auxiliary) |         (1 << Dir_Vfunction) |
01353          (0 << Dir_No_Side_Effects) |   (0 << Dir_Inline) |
01354          (0 << Dir_Symmetric) |         (1 << Dir_Copy_Assumed_Shape) |
01355          (0 << Dir_Align_Symbol) |      (0 << Dir_Fill_Symbol) |
01356          (0 << Dir_Section_Gp) |        (0 << Dir_Section_Non_Gp) |
01357          (1 << Dir_Optional) |          (0 << Dir_Ignore_TKR) |
01358          (0 << Dir_Ipa) |               (1 << Dir_Name)),
01359 
01360         /*      Obj_Assum_Size_Arr      ie: DIMENSION A(*)      */
01361 
01362         ((0 << Dir_Auxiliary) |         (1 << Dir_Vfunction) |
01363          (1 << Dir_No_Side_Effects) |   (1 << Dir_Inline) |
01364          (1 << Dir_Symmetric) |         (1 << Dir_Copy_Assumed_Shape) |
01365          (1 << Dir_Align_Symbol) |      (1 << Dir_Fill_Symbol) |
01366          (1 << Dir_Section_Gp) |        (1 << Dir_Section_Non_Gp) |
01367          (1 << Dir_Optional) |          (0 << Dir_Ignore_TKR) |
01368          (1 << Dir_Ipa) |               (1 << Dir_Name)),
01369 
01370         /*      Obj_Defrd_Shp_Arr       ie: DIMENSION A(:)      */
01371 
01372         ((1 << Dir_Auxiliary) |         (1 << Dir_Vfunction) |
01373          (0 << Dir_No_Side_Effects) |   (0 << Dir_Inline) |
01374          (1 << Dir_Symmetric) |         (0 << Dir_Copy_Assumed_Shape) |
01375          (0 << Dir_Align_Symbol) |      (0 << Dir_Fill_Symbol) |
01376          (0 << Dir_Section_Gp) |        (0 << Dir_Section_Non_Gp) |
01377          (1 << Dir_Optional) |          (0 << Dir_Ignore_TKR) |
01378          (0 << Dir_Ipa) |               (1 << Dir_Name)),
01379 
01380         /*      Obj_Assum_Shp_Arr       ie: DIMENSION A (1:)    */
01381 
01382         ((1 << Dir_Auxiliary) |         (1 << Dir_Vfunction) |
01383          (1 << Dir_No_Side_Effects) |   (1 << Dir_Inline) |
01384          (1 << Dir_Symmetric) |         (0 << Dir_Copy_Assumed_Shape) |
01385          (1 << Dir_Align_Symbol) |      (1 << Dir_Fill_Symbol) |
01386          (1 << Dir_Section_Gp) |        (1 << Dir_Section_Non_Gp) |
01387          (1 << Dir_Optional) |          (1 << Dir_Ignore_TKR) |
01388          (1 << Dir_Ipa) |               (1 << Dir_Name)),
01389 
01390         /*      Obj_Co_Array    ie: DIMENSION A[3,4]    */
01391 
01392         ((1 << Dir_Auxiliary) |         (1 << Dir_Vfunction) |
01393          (1 << Dir_No_Side_Effects) |   (1 << Dir_Inline) |
01394          (1 << Dir_Symmetric) |         (1 << Dir_Copy_Assumed_Shape) |
01395          (1 << Dir_Align_Symbol) |      (1 << Dir_Fill_Symbol) |
01396          (1 << Dir_Section_Gp) |        (1 << Dir_Section_Non_Gp) |
01397          (1 << Dir_Optional) |          (0 << Dir_Ignore_TKR) |
01398          (1 << Dir_Ipa) |               (1 << Dir_Name)),
01399 
01400         /*      Obj_Allocatable         ie: ALLOCATABLE A(:)    */
01401 
01402         ((1 << Dir_Auxiliary) |         (1 << Dir_Vfunction) |
01403          (1 << Dir_No_Side_Effects) |   (1 << Dir_Inline) |
01404          (1 << Dir_Symmetric) |         (1 << Dir_Copy_Assumed_Shape) |
01405          (1 << Dir_Align_Symbol) |      (1 << Dir_Fill_Symbol) |
01406          (1 << Dir_Section_Gp) |        (1 << Dir_Section_Non_Gp) |
01407          (1 << Dir_Optional) |          (1 << Dir_Ignore_TKR) |
01408          (1 << Dir_Ipa) |               (1 << Dir_Name)),
01409 
01410         /*      Obj_Constant            ie: PARAMETER (A=1.0)   */
01411 
01412         ((1 << Dir_Auxiliary) |         (1 << Dir_Vfunction) |
01413          (1 << Dir_No_Side_Effects) |   (1 << Dir_Inline) |
01414          (1 << Dir_Symmetric) |         (1 << Dir_Copy_Assumed_Shape) |
01415          (1 << Dir_Align_Symbol) |      (1 << Dir_Fill_Symbol) |
01416          (1 << Dir_Section_Gp) |        (1 << Dir_Section_Non_Gp) |
01417          (1 << Dir_Optional) |          (1 << Dir_Ignore_TKR) |
01418          (1 << Dir_Ipa) |               (1 << Dir_Name)),
01419 
01420         /*      Obj_Intent              ie: INTENT (IN) A               */
01421         /*  Intent can be specified for a deferred-shape array, because */
01422         /*  it may become an assumed-shape array.       If it doesn't   */
01423 
01424         ((0 << Dir_Auxiliary) |         (1 << Dir_Vfunction) |
01425          (1 << Dir_No_Side_Effects) |   (1 << Dir_Inline) |
01426          (1 << Dir_Symmetric) |         (0 << Dir_Copy_Assumed_Shape) |
01427          (1 << Dir_Align_Symbol) |      (1 << Dir_Fill_Symbol) |
01428          (1 << Dir_Section_Gp) |        (1 << Dir_Section_Non_Gp) |
01429          (1 << Dir_Optional) |          (0 << Dir_Ignore_TKR) |
01430          (1 << Dir_Ipa) |               (1 << Dir_Name)),
01431 
01432         /*      Obj_Optional            ie: OPTIONAL A  */
01433 
01434         ((0 << Dir_Auxiliary) |         (1 << Dir_Vfunction) |
01435          (1 << Dir_No_Side_Effects) |   (1 << Dir_Inline) |
01436          (1 << Dir_Symmetric) |         (0 << Dir_Copy_Assumed_Shape) |
01437          (1 << Dir_Align_Symbol) |      (1 << Dir_Fill_Symbol) |
01438          (1 << Dir_Section_Gp) |        (1 << Dir_Section_Non_Gp) |
01439          (0 << Dir_Optional) |          (0 << Dir_Ignore_TKR) |
01440          (1 << Dir_Ipa) |               (0 << Dir_Name)),
01441 
01442         /*      Obj_Private             ie: PRIVATE A   */
01443 
01444         ((0 << Dir_Auxiliary) |         (0 << Dir_Vfunction) |
01445          (0 << Dir_No_Side_Effects) |   (0 << Dir_Inline) |
01446          (0 << Dir_Symmetric) |         (0 << Dir_Copy_Assumed_Shape) |
01447          (0 << Dir_Align_Symbol) |      (0 << Dir_Fill_Symbol) |
01448          (0 << Dir_Section_Gp) |        (0 << Dir_Section_Non_Gp) |
01449          (0 << Dir_Optional) |          (0 << Dir_Ignore_TKR) |
01450          (0 << Dir_Ipa) |               (0 << Dir_Name)),
01451 
01452         /*      Obj_Public              ie: PUBLIC A    */
01453 
01454         ((0 << Dir_Auxiliary) |         (0 << Dir_Vfunction) |
01455          (0 << Dir_No_Side_Effects) |   (0 << Dir_Inline) |
01456          (0 << Dir_Symmetric) |         (0 << Dir_Copy_Assumed_Shape) |
01457          (0 << Dir_Align_Symbol) |      (0 << Dir_Fill_Symbol) |
01458          (0 << Dir_Section_Gp) |        (0 << Dir_Section_Non_Gp) |
01459          (0 << Dir_Optional) |          (0 << Dir_Ignore_TKR) |
01460          (0 << Dir_Ipa) |               (0 << Dir_Name)),
01461 
01462         /*      Obj_Target              ie: TARGET A    */
01463 
01464         ((1 << Dir_Auxiliary) |         (1 << Dir_Vfunction) |
01465          (0 << Dir_No_Side_Effects) |   (0 << Dir_Inline) |
01466          (1 << Dir_Symmetric) |         (1 << Dir_Copy_Assumed_Shape) |
01467          (0 << Dir_Align_Symbol) |      (0 << Dir_Fill_Symbol) |
01468          (0 << Dir_Section_Gp) |        (0 << Dir_Section_Non_Gp) |
01469          (1 << Dir_Optional) |          (0 << Dir_Ignore_TKR) |
01470          (0 << Dir_Ipa) |               (1 << Dir_Name)),
01471 
01472         /*      Obj_Equiv               ie: EQUIVALENCE (AB)    */
01473 
01474         ((0 << Dir_Auxiliary) |         (1 << Dir_Vfunction) |
01475          (1 << Dir_No_Side_Effects) |   (1 << Dir_Inline) |
01476          (1 << Dir_Symmetric) |         (1 << Dir_Copy_Assumed_Shape) |
01477          (1 << Dir_Align_Symbol) |      (1 << Dir_Fill_Symbol) |
01478          (1 << Dir_Section_Gp) |        (1 << Dir_Section_Non_Gp) |
01479          (1 << Dir_Optional) |          (1 << Dir_Ignore_TKR) |
01480          (1 << Dir_Ipa) |               (1 << Dir_Name)),
01481 
01482         /*      Obj_Saved               ie: SAVE A      */
01483 
01484         ((1 << Dir_Auxiliary) |         (1 << Dir_Vfunction) |
01485          (1 << Dir_No_Side_Effects) |   (1 << Dir_Inline) |
01486          (1 << Dir_Symmetric) |         (1 << Dir_Copy_Assumed_Shape) |
01487          (0 << Dir_Align_Symbol) |      (0 << Dir_Fill_Symbol) |
01488          (0 << Dir_Section_Gp) |        (0 << Dir_Section_Non_Gp) |
01489          (1 << Dir_Optional) |          (1 << Dir_Ignore_TKR) |
01490          (1 << Dir_Ipa) |               (1 << Dir_Name)),
01491 
01492         /*      Obj_Automatic           ie: AUTOMATIC A */
01493 
01494         ((1 << Dir_Auxiliary) |         (1 << Dir_Vfunction) |
01495          (1 << Dir_No_Side_Effects) |   (1 << Dir_Inline) |
01496          (1 << Dir_Symmetric) |         (1 << Dir_Copy_Assumed_Shape) |
01497          (0 << Dir_Align_Symbol) |      (0 << Dir_Fill_Symbol) |
01498          (1 << Dir_Section_Gp) |        (1 << Dir_Section_Non_Gp) |
01499          (1 << Dir_Optional) |          (1 << Dir_Ignore_TKR) |
01500          (1 << Dir_Ipa) |               (1 << Dir_Name)),
01501 
01502         /*      Obj_Pointer             ie: POINTER :: A        */
01503 
01504         ((1 << Dir_Auxiliary) |         (1 << Dir_Vfunction) |
01505          (0 << Dir_No_Side_Effects) |   (0 << Dir_Inline) |
01506          (1 << Dir_Symmetric) |         (1 << Dir_Copy_Assumed_Shape) |
01507          (0 << Dir_Align_Symbol) |      (0 << Dir_Fill_Symbol) |
01508          (0 << Dir_Section_Gp) |        (0 << Dir_Section_Non_Gp) |
01509          (1 << Dir_Optional) |          (1 << Dir_Ignore_TKR) |
01510          (0 << Dir_Ipa) |               (1 << Dir_Name)),
01511 
01512         /*      Obj_Dcl_Extern          ie: EXTERNAL A  */
01513 
01514         ((1 << Dir_Auxiliary) |         (1 << Dir_Vfunction) |
01515          (0 << Dir_No_Side_Effects) |   (0 << Dir_Inline) |
01516          (1 << Dir_Symmetric) |         (1 << Dir_Copy_Assumed_Shape) |
01517          (1 << Dir_Align_Symbol) |      (1 << Dir_Fill_Symbol) |
01518          (1 << Dir_Section_Gp) |        (1 << Dir_Section_Non_Gp) |
01519          (0 << Dir_Optional) |          (1 << Dir_Ignore_TKR) |
01520          (0 << Dir_Ipa) |               (0 << Dir_Name)),
01521 
01522         /*      Obj_Dcl_Intrin          ie: INTRINSIC A */
01523 
01524         ((1 << Dir_Auxiliary) |         (1 << Dir_Vfunction) |
01525          (1 << Dir_No_Side_Effects) |   (1 << Dir_Inline) |
01526          (1 << Dir_Symmetric) |         (1 << Dir_Copy_Assumed_Shape) |
01527          (1 << Dir_Align_Symbol) |      (1 << Dir_Fill_Symbol) |
01528          (1 << Dir_Section_Gp) |        (1 << Dir_Section_Non_Gp) |
01529          (0 << Dir_Optional) |          (1 << Dir_Ignore_TKR) |
01530          (1 << Dir_Ipa) |               (1 << Dir_Name)),
01531 
01532         /*      Obj_Data_Init           ie: DATA A /1.0/        */
01533 
01534         ((1 << Dir_Auxiliary) |         (1 << Dir_Vfunction) |
01535          (1 << Dir_No_Side_Effects) |   (1 << Dir_Inline) |
01536          (1 << Dir_Symmetric) |         (1 << Dir_Copy_Assumed_Shape) |
01537          (1 << Dir_Align_Symbol) |      (1 << Dir_Fill_Symbol) |
01538          (1 << Dir_Section_Gp) |        (1 << Dir_Section_Non_Gp) |
01539          (1 << Dir_Optional) |          (1 << Dir_Ignore_TKR) |
01540          (1 << Dir_Ipa) |               (1 << Dir_Name)),
01541 
01542         /*  Obj_Typed                   ie: INTEGER A                   */
01543 
01544         /*  If it's assumed_type char, it had to have been in a type    */
01545         /*  stmt so ATD_TYPED will be set.                              */
01546 
01547         ((0 << Dir_Auxiliary) |         (0 << Dir_Vfunction) |
01548          (0 << Dir_No_Side_Effects) |   (0 << Dir_Inline) |
01549          (0 << Dir_Symmetric) |         (0 << Dir_Copy_Assumed_Shape) |
01550          (0 << Dir_Align_Symbol) |      (0 << Dir_Fill_Symbol) |
01551          (0 << Dir_Section_Gp) |        (0 << Dir_Section_Non_Gp) |
01552          (0 << Dir_Optional) |          (0 << Dir_Ignore_TKR) |
01553          (0 << Dir_Ipa) |               (0 << Dir_Name)),
01554 
01555         /*  Obj_Volatile                ie: VOLATILE A                  */
01556 
01557         ((0 << Dir_Auxiliary) |         (1 << Dir_Vfunction) |
01558          (1 << Dir_No_Side_Effects) |   (1 << Dir_Inline) |
01559          (0 << Dir_Symmetric) |         (0 << Dir_Copy_Assumed_Shape) |
01560          (0 << Dir_Align_Symbol) |      (0 << Dir_Fill_Symbol) |
01561          (0 << Dir_Section_Gp) |        (0 << Dir_Section_Non_Gp) |
01562          (1 << Dir_Optional) |          (0 << Dir_Ignore_TKR) |
01563          (1 << Dir_Ipa) |               (1 << Dir_Name)),
01564 
01565         /*      Obj_Copy_Assumed_Shape  ie: !DIR$ COPY_ASSUMED_SHAPE A  */
01566 
01567         ((1 << Dir_Auxiliary) |         (1 << Dir_Vfunction) |
01568          (1 << Dir_No_Side_Effects) |   (1 << Dir_Inline) |
01569          (1 << Dir_Symmetric) |         (1 << Dir_Copy_Assumed_Shape) |
01570          (1 << Dir_Align_Symbol) |      (1 << Dir_Fill_Symbol) |
01571          (1 << Dir_Section_Gp) |        (1 << Dir_Section_Non_Gp) |
01572          (1 << Dir_Optional) |          (0 << Dir_Ignore_TKR) |
01573          (1 << Dir_Ipa) |               (1 << Dir_Name)),
01574 
01575         /*      Obj_Auxiliary           ie: !DIR$ AUXILIARY A   */
01576 
01577         ((0 << Dir_Auxiliary) |         (1 << Dir_Vfunction) |
01578          (1 << Dir_No_Side_Effects) |   (1 << Dir_Inline) |
01579          (1 << Dir_Symmetric) |         (1 << Dir_Copy_Assumed_Shape) |
01580          (1 << Dir_Align_Symbol) |      (1 << Dir_Fill_Symbol) |
01581          (1 << Dir_Section_Gp) |        (1 << Dir_Section_Non_Gp) |
01582          (1 << Dir_Optional) |          (0 << Dir_Ignore_TKR) |
01583          (1 << Dir_Ipa) |               (1 << Dir_Name)),
01584 
01585         /*      Obj_Vfunction           ie: !DIR$ VFUNCTION A   */
01586 
01587         ((1 << Dir_Auxiliary) |         (1 << Dir_Vfunction) |
01588          (0 << Dir_No_Side_Effects) |   (0 << Dir_Inline) |
01589          (1 << Dir_Symmetric) |         (1 << Dir_Copy_Assumed_Shape) |
01590          (1 << Dir_Align_Symbol) |      (1 << Dir_Fill_Symbol) |
01591          (1 << Dir_Section_Gp) |        (1 << Dir_Section_Non_Gp) |
01592          (0 << Dir_Optional) |          (1 << Dir_Ignore_TKR) |
01593          (0 << Dir_Ipa) |               (0 << Dir_Name)),
01594 
01595         /*      Obj_No_Side_Effects      ie: !DIR$ NO SIDE EFFECTS A    */
01596 
01597         ((1 << Dir_Auxiliary) |         (0 << Dir_Vfunction) |
01598          (0 << Dir_No_Side_Effects) |   (0 << Dir_Inline) |
01599          (1 << Dir_Symmetric) |         (1 << Dir_Copy_Assumed_Shape) |
01600          (1 << Dir_Align_Symbol) |      (1 << Dir_Fill_Symbol) |
01601          (1 << Dir_Section_Gp) |        (1 << Dir_Section_Non_Gp) |
01602          (0 << Dir_Optional) |          (1 << Dir_Ignore_TKR) |
01603          (0 << Dir_Ipa) |               (0 << Dir_Name)),
01604 
01605         /*      Obj_Symmetric           ie: !DIR$ SYMMETRIC A */
01606 
01607         ((1 << Dir_Auxiliary) |         (1 << Dir_Vfunction) |          
01608          (1 << Dir_No_Side_Effects) |   (1 << Dir_Inline) |
01609          (1 << Dir_Symmetric) |         (1 << Dir_Copy_Assumed_Shape) |
01610          (1 << Dir_Align_Symbol) |      (1 << Dir_Fill_Symbol) |
01611          (1 << Dir_Section_Gp) |        (1 << Dir_Section_Non_Gp) |
01612          (1 << Dir_Optional) |          (1 << Dir_Ignore_TKR) |
01613          (1 << Dir_Ipa) |               (1 << Dir_Name)),
01614 
01615         /*      Obj_Inline              ie: !DIR$ INLINE ALWAYS/NEVER A */
01616 
01617         ((1 << Dir_Auxiliary) |         (0 << Dir_Vfunction) |          
01618          (0 << Dir_No_Side_Effects) |   (0 << Dir_Inline) |
01619          (1 << Dir_Symmetric) |         (1 << Dir_Copy_Assumed_Shape) |
01620          (1 << Dir_Align_Symbol) |      (1 << Dir_Fill_Symbol) |
01621          (1 << Dir_Section_Gp) |        (1 << Dir_Section_Non_Gp) |
01622          (0 << Dir_Optional) |          (1 << Dir_Ignore_TKR) |
01623          (0 << Dir_Ipa) |               (0 << Dir_Name)),
01624 
01625         /*      Obj_Ipa                 ie: !*$* IPA */
01626 
01627         ((1 << Dir_Auxiliary) |         (0 << Dir_Vfunction) |          
01628          (0 << Dir_No_Side_Effects) |   (0 << Dir_Inline) |
01629          (1 << Dir_Symmetric) |         (1 << Dir_Copy_Assumed_Shape) |
01630          (1 << Dir_Align_Symbol) |      (1 << Dir_Fill_Symbol) |
01631          (1 << Dir_Section_Gp) |        (1 << Dir_Section_Non_Gp) |
01632          (0 << Dir_Optional) |          (1 << Dir_Ignore_TKR) |
01633          (0 << Dir_Ipa) |               (0 << Dir_Name)),
01634 
01635         /*      Obj_Align_Symbol        ie: !*$* ALIGN_SYMBOL A */
01636 
01637         ((1 << Dir_Auxiliary) |         (1 << Dir_Vfunction) |          
01638          (1 << Dir_No_Side_Effects) |   (1 << Dir_Inline) |
01639          (1 << Dir_Symmetric) |         (1 << Dir_Copy_Assumed_Shape) |
01640          (1 << Dir_Align_Symbol) |      (1 << Dir_Fill_Symbol) |
01641          (0 << Dir_Section_Gp) |        (0 << Dir_Section_Non_Gp) |
01642          (1 << Dir_Optional) |          (1 << Dir_Ignore_TKR) |
01643          (1 << Dir_Ipa) |               (1 << Dir_Name)),
01644 
01645         /*      Obj_Fill_Symbol         ie: !*$* FILL_SYMBOL A */
01646 
01647         ((1 << Dir_Auxiliary) |         (1 << Dir_Vfunction) |          
01648          (1 << Dir_No_Side_Effects) |   (1 << Dir_Inline) |
01649          (1 << Dir_Symmetric) |         (1 << Dir_Copy_Assumed_Shape) |
01650          (1 << Dir_Align_Symbol) |      (1 << Dir_Fill_Symbol) |
01651          (0 << Dir_Section_Gp) |        (0 << Dir_Section_Non_Gp) |
01652          (1 << Dir_Optional) |          (1 << Dir_Ignore_TKR) |
01653          (1 << Dir_Ipa) |               (1 << Dir_Name)),
01654 
01655         /*      Obj_Section_Gp          ie: !*$* SECTION_GP A */
01656 
01657         ((1 << Dir_Auxiliary) |         (1 << Dir_Vfunction) |          
01658          (1 << Dir_No_Side_Effects) |   (1 << Dir_Inline) |
01659          (1 << Dir_Symmetric) |         (1 << Dir_Copy_Assumed_Shape) |
01660          (0 << Dir_Align_Symbol) |      (0 << Dir_Fill_Symbol) |
01661          (1 << Dir_Section_Gp) |        (1 << Dir_Section_Non_Gp) |
01662          (1 << Dir_Optional) |          (1 << Dir_Ignore_TKR) |
01663          (1 << Dir_Ipa) |               (1 << Dir_Name)),
01664 
01665         /*      Obj_Section_Non_Gp      ie: !*$* SECTION_NON_GP A */
01666 
01667         ((1 << Dir_Auxiliary) |         (1 << Dir_Vfunction) |          
01668          (1 << Dir_No_Side_Effects) |   (1 << Dir_Inline) |
01669          (1 << Dir_Symmetric) |         (1 << Dir_Copy_Assumed_Shape) |
01670          (0 << Dir_Align_Symbol) |      (0 << Dir_Fill_Symbol) |
01671          (1 << Dir_Section_Gp) |        (1 << Dir_Section_Non_Gp) |
01672          (1 << Dir_Optional) |          (1 << Dir_Ignore_TKR) |
01673          (1 << Dir_Ipa) |               (1 << Dir_Name)),
01674 
01675         /* Obj_Ignore_TKR               ie: !DIR$ IGNORE_TKR darg */
01676 
01677         ((0 << Dir_Auxiliary) |         (1 << Dir_Vfunction) |
01678          (1 << Dir_No_Side_Effects) |   (1 << Dir_Inline) |
01679          (1 << Dir_Symmetric) |         (0 << Dir_Copy_Assumed_Shape) |
01680          (1 << Dir_Align_Symbol) |      (1 << Dir_Fill_Symbol) |
01681          (1 << Dir_Section_Gp) |        (1 << Dir_Section_Non_Gp) |
01682          (1 << Dir_Optional) |          (1 << Dir_Ignore_TKR) |
01683          (1 << Dir_Ipa) |               (1 << Dir_Name)),
01684 
01685         /*      Obj_Optional_Dir        ie: !*$* optional(extern)       */
01686 
01687         ((1 << Dir_Auxiliary) |         (0 << Dir_Vfunction) |
01688          (0 << Dir_No_Side_Effects) |   (0 << Dir_Inline) |
01689          (1 << Dir_Symmetric) |         (1 << Dir_Copy_Assumed_Shape) |
01690          (1 << Dir_Align_Symbol) |      (1 << Dir_Fill_Symbol) |
01691          (1 << Dir_Section_Gp) |        (1 << Dir_Section_Non_Gp) |
01692          (1 << Dir_Optional) |          (1 << Dir_Ignore_TKR) |
01693          (0 << Dir_Ipa) |               (0 << Dir_Name)),
01694 
01695         /*      Obj_Name                ie: !DIR$ Name(Fort_name="ext_name") */
01696 
01697         ((1 << Dir_Auxiliary) |         (0 << Dir_Vfunction) |
01698          (0 << Dir_No_Side_Effects) |   (0 << Dir_Inline) |
01699          (1 << Dir_Symmetric) |         (1 << Dir_Copy_Assumed_Shape) |
01700          (1 << Dir_Align_Symbol) |      (1 << Dir_Fill_Symbol) |
01701          (1 << Dir_Section_Gp) |        (1 << Dir_Section_Non_Gp) |
01702          (1 << Dir_Optional) |          (1 << Dir_Ignore_TKR) |
01703          (0 << Dir_Ipa) |               (1 << Dir_Name)),
01704 
01705         /*      Obj_Cri_Ptr              ie: POINTER (A,B)      */
01706 
01707         ((1 << Dir_Auxiliary) |         (1 << Dir_Vfunction) |
01708          (1 << Dir_No_Side_Effects) |   (1 << Dir_Inline) |
01709          (0 << Dir_Symmetric) |         (1 << Dir_Copy_Assumed_Shape) |
01710          (1 << Dir_Align_Symbol) |      (1 << Dir_Fill_Symbol) |
01711          (1 << Dir_Section_Gp) |        (1 << Dir_Section_Non_Gp) |
01712          (1 << Dir_Optional) |          (0 << Dir_Ignore_TKR) |
01713          (1 << Dir_Ipa) |               (1 << Dir_Name)),
01714 
01715         /*      Obj_Cri_Pointee         ie: POINTER (B,A)        */
01716 
01717         ((1 << Dir_Auxiliary) |         (1 << Dir_Vfunction) |
01718          (1 << Dir_No_Side_Effects) |   (1 << Dir_Inline) |
01719          (1 << Dir_Symmetric) |         (1 << Dir_Copy_Assumed_Shape) |
01720          (1 << Dir_Align_Symbol) |      (1 << Dir_Fill_Symbol) |
01721          (1 << Dir_Section_Gp) |        (1 << Dir_Section_Non_Gp) |
01722          (1 << Dir_Optional) |          (1 << Dir_Ignore_TKR) |
01723          (1 << Dir_Ipa) |               (1 << Dir_Name)),
01724 
01725         /*      Obj_Cri_Ch_Pointee      ie: POINTER (B,A)        */
01726         /*      *(*) is what makes an assumed-size character pointer */
01727 
01728         ((1 << Dir_Auxiliary) |         (1 << Dir_Vfunction) |
01729          (1 << Dir_No_Side_Effects) |   (1 << Dir_Inline) |
01730          (1 << Dir_Symmetric) |         (1 << Dir_Copy_Assumed_Shape) |
01731          (1 << Dir_Align_Symbol) |      (1 << Dir_Fill_Symbol) |
01732          (1 << Dir_Section_Gp) |        (1 << Dir_Section_Non_Gp) |
01733          (1 << Dir_Optional) |          (1 << Dir_Ignore_TKR) |
01734          (1 << Dir_Ipa) |               (1 << Dir_Name)),
01735 
01736         /*      Obj_Ntry_Func_Result    ie: ENTRY ABC() RESULT A        */
01737         /*      To be adjustable it must be a dummy arg. Can't change a */
01738         /*      dummy arg into a function result.                       */
01739 
01740         ((1 << Dir_Auxiliary) |         (1 << Dir_Vfunction) |
01741          (1 << Dir_No_Side_Effects) |   (1 << Dir_Inline) |
01742          (1 << Dir_Symmetric) |         (1 << Dir_Copy_Assumed_Shape) |
01743          (1 << Dir_Align_Symbol) |      (1 << Dir_Fill_Symbol) |
01744          (1 << Dir_Section_Gp) |        (1 << Dir_Section_Non_Gp) |
01745          (1 << Dir_Optional) |          (1 << Dir_Ignore_TKR) |
01746          (1 << Dir_Ipa) |               (1 << Dir_Name)),
01747 
01748         /*      Obj_Dummy_Arg           ie: FUNCTION ABC(A)             */
01749         /*                              ie: ENTRY ABC(A)                */
01750 
01751         ((0 << Dir_Auxiliary) |         (1 << Dir_Vfunction) |
01752          (1 << Dir_No_Side_Effects) |   (1 << Dir_Inline) |
01753          (1 << Dir_Symmetric) |         (0 << Dir_Copy_Assumed_Shape) |
01754          (1 << Dir_Align_Symbol) |      (1 << Dir_Fill_Symbol) |
01755          (1 << Dir_Section_Gp) |        (1 << Dir_Section_Non_Gp) |
01756          (0 << Dir_Optional) |          (0 << Dir_Ignore_TKR) |
01757          (1 << Dir_Ipa) |               (0 << Dir_Name)),
01758 
01759         /*      Obj_Common_Obj          ie: COMMON // A */
01760 
01761         ((0 << Dir_Auxiliary) |         (1 << Dir_Vfunction) |
01762          (1 << Dir_No_Side_Effects) |   (1 << Dir_Inline) |
01763          (1 << Dir_Symmetric) |         (1 << Dir_Copy_Assumed_Shape) |
01764          (0 << Dir_Align_Symbol) |      (0 << Dir_Fill_Symbol) |
01765          (0 << Dir_Section_Gp) |        (0 << Dir_Section_Non_Gp) |
01766          (1 << Dir_Optional) |          (1 << Dir_Ignore_TKR) |
01767          (1 << Dir_Ipa) |               (1 << Dir_Name)),
01768 
01769         /*      Obj_Namelist_Obj        ie: NAMELIST /G/ A      */
01770 
01771         ((1 << Dir_Auxiliary) |         (1 << Dir_Vfunction) |
01772          (1 << Dir_No_Side_Effects) |   (1 << Dir_Inline) |
01773          (0 << Dir_Symmetric) |         (1 << Dir_Copy_Assumed_Shape) |
01774          (0 << Dir_Align_Symbol) |      (0 << Dir_Fill_Symbol) |
01775          (0 << Dir_Section_Gp) |        (0 << Dir_Section_Non_Gp) |
01776          (1 << Dir_Optional) |          (0 << Dir_Ignore_TKR) |
01777          (1 << Dir_Ipa) |               (1 << Dir_Name)),
01778 
01779         /*      Obj_Module_Proc         ie: MODULE PROCEDURE A  */
01780 
01781         ((1 << Dir_Auxiliary) |         (1 << Dir_Vfunction) |
01782          (1 << Dir_No_Side_Effects) |   (0 << Dir_Inline) |
01783          (1 << Dir_Symmetric) |         (1 << Dir_Copy_Assumed_Shape) |
01784          (1 << Dir_Align_Symbol) |      (1 << Dir_Fill_Symbol) |
01785          (1 << Dir_Section_Gp) |        (1 << Dir_Section_Non_Gp) |
01786          (1 << Dir_Optional) |          (1 << Dir_Ignore_TKR) |
01787          (0 << Dir_Ipa) |               (1 << Dir_Name)),
01788 
01789         /*      Obj_Derived_Type        ie: TYPE A      */
01790 
01791         ((1 << Dir_Auxiliary) |         (1 << Dir_Vfunction) |
01792          (1 << Dir_No_Side_Effects) |   (1 << Dir_Inline) |
01793          (1 << Dir_Symmetric) |         (1 << Dir_Copy_Assumed_Shape) |
01794          (1 << Dir_Align_Symbol) |      (1 << Dir_Fill_Symbol) |
01795          (1 << Dir_Section_Gp) |        (1 << Dir_Section_Non_Gp) |
01796          (1 << Dir_Optional) |          (1 << Dir_Ignore_TKR) |
01797          (1 << Dir_Ipa) |               (1 << Dir_Name)),
01798 
01799         /*      Obj_Generic_Interface   ie: INTERFACE A */
01800 
01801         ((1 << Dir_Auxiliary) |         (1 << Dir_Vfunction) |
01802          (1 << Dir_No_Side_Effects) |   (0 << Dir_Inline) |
01803          (1 << Dir_Symmetric) |         (1 << Dir_Copy_Assumed_Shape) |
01804          (1 << Dir_Align_Symbol) |      (1 << Dir_Fill_Symbol) |
01805          (1 << Dir_Section_Gp) |        (1 << Dir_Section_Non_Gp) |
01806          (1 << Dir_Optional) |          (1 << Dir_Ignore_TKR) |
01807          (0 << Dir_Ipa) |               (1 << Dir_Name)),
01808 
01809         /*      Obj_Namelist_Grp        ie: NAMELIST /A/ B      */
01810 
01811         ((1 << Dir_Auxiliary) |         (1 << Dir_Vfunction) |
01812          (1 << Dir_No_Side_Effects) |   (1 << Dir_Inline) |
01813          (1 << Dir_Symmetric) |         (1 << Dir_Copy_Assumed_Shape) |
01814          (1 << Dir_Align_Symbol) |      (1 << Dir_Fill_Symbol) |
01815          (1 << Dir_Section_Gp) |        (1 << Dir_Section_Non_Gp) |
01816          (1 << Dir_Optional) |          (1 << Dir_Ignore_TKR) |
01817          (1 << Dir_Ipa) |               (1 << Dir_Name)),
01818 
01819         /*      Obj_Stmt_Func           ie: A(XY) = ... */
01820         /*      Types must be scalar and have constant bounds */
01821 
01822         ((1 << Dir_Auxiliary) |         (1 << Dir_Vfunction) |
01823          (1 << Dir_No_Side_Effects) |   (1 << Dir_Inline) |
01824          (1 << Dir_Symmetric) |         (1 << Dir_Copy_Assumed_Shape) |
01825          (1 << Dir_Align_Symbol) |      (1 << Dir_Fill_Symbol) |
01826          (1 << Dir_Section_Gp) |        (1 << Dir_Section_Non_Gp) |
01827          (1 << Dir_Optional) |          (1 << Dir_Ignore_TKR) |
01828          (1 << Dir_Ipa) |               (1 << Dir_Name)),
01829 
01830         /*      Obj_Construct           ie: A : IF (I.EQ.J) THEN        */
01831 
01832         ((1 << Dir_Auxiliary) |         (1 << Dir_Vfunction) |
01833          (1 << Dir_No_Side_Effects) |   (1 << Dir_Inline) |
01834          (1 << Dir_Symmetric) |         (1 << Dir_Copy_Assumed_Shape) |
01835          (1 << Dir_Align_Symbol) |      (1 << Dir_Fill_Symbol) |
01836          (1 << Dir_Section_Gp) |        (1 << Dir_Section_Non_Gp) |
01837          (1 << Dir_Optional) |          (1 << Dir_Ignore_TKR) |
01838          (1 << Dir_Ipa) |               (1 << Dir_Name)),
01839 
01840         /*      Obj_Entry_Func          ie: ENTRY A     */
01841 
01842         ((1 << Dir_Auxiliary) |         (1 << Dir_Vfunction) |
01843          (1 << Dir_No_Side_Effects) |   (1 << Dir_Inline) |
01844          (1 << Dir_Symmetric) |         (1 << Dir_Copy_Assumed_Shape) |
01845          (1 << Dir_Align_Symbol) |      (1 << Dir_Fill_Symbol) |
01846          (1 << Dir_Section_Gp) |        (1 << Dir_Section_Non_Gp) |
01847          (1 << Dir_Optional) |          (1 << Dir_Ignore_TKR) |
01848          (1 << Dir_Ipa) |               (1 << Dir_Name)),
01849 
01850         /*      Obj_Entry_Subr          ie: ENTRY A     */
01851 
01852         ((1 << Dir_Auxiliary) |         (1 << Dir_Vfunction) |
01853          (1 << Dir_No_Side_Effects) |   (1 << Dir_Inline) |
01854          (1 << Dir_Symmetric) |         (1 << Dir_Copy_Assumed_Shape) |
01855          (1 << Dir_Align_Symbol) |      (1 << Dir_Fill_Symbol) |
01856          (1 << Dir_Section_Gp) |        (1 << Dir_Section_Non_Gp) |
01857          (1 << Dir_Optional) |          (1 << Dir_Ignore_TKR) |
01858          (1 << Dir_Ipa) |               (1 << Dir_Name)),
01859 
01860         /*      Obj_Intern_Func         ie: FUNCTION A()        */
01861 
01862         ((1 << Dir_Auxiliary) |         (1 << Dir_Vfunction) |
01863          (1 << Dir_No_Side_Effects) |   (0 << Dir_Inline) |
01864          (1 << Dir_Symmetric) |         (1 << Dir_Copy_Assumed_Shape) |
01865          (1 << Dir_Align_Symbol) |      (1 << Dir_Fill_Symbol) |
01866          (1 << Dir_Section_Gp) |        (1 << Dir_Section_Non_Gp) |
01867          (1 << Dir_Optional) |          (1 << Dir_Ignore_TKR) |
01868          (0 << Dir_Ipa) |               (1 << Dir_Name)),
01869 
01870         /*      Obj_Intern_Subr         ie: SUBROUTINE A()      */
01871 
01872         ((1 << Dir_Auxiliary) |         (1 << Dir_Vfunction) |
01873          (1 << Dir_No_Side_Effects) |   (0 << Dir_Inline) |
01874          (1 << Dir_Symmetric) |         (1 << Dir_Copy_Assumed_Shape) |
01875          (1 << Dir_Align_Symbol) |      (1 << Dir_Fill_Symbol) |
01876          (1 << Dir_Section_Gp) |        (1 << Dir_Section_Non_Gp) |
01877          (1 << Dir_Optional) |          (1 << Dir_Ignore_TKR) |
01878          (0 << Dir_Ipa) |               (1 << Dir_Name)),
01879 
01880         /*      Obj_Module_Func         ie: FUNCTION A()        */
01881 
01882         ((1 << Dir_Auxiliary) |         (1 << Dir_Vfunction) |
01883          (1 << Dir_No_Side_Effects) |   (0 << Dir_Inline) |
01884          (1 << Dir_Symmetric) |         (1 << Dir_Copy_Assumed_Shape) |
01885          (1 << Dir_Align_Symbol) |      (1 << Dir_Fill_Symbol) |
01886          (1 << Dir_Section_Gp) |        (1 << Dir_Section_Non_Gp) |
01887          (1 << Dir_Optional) |          (1 << Dir_Ignore_TKR) |
01888          (0 << Dir_Ipa) |               (1 << Dir_Name)),
01889 
01890         /*      Obj_Module_Subr         ie: SUBROUTINE A()      */
01891 
01892         ((1 << Dir_Auxiliary) |         (1 << Dir_Vfunction) |
01893          (1 << Dir_No_Side_Effects) |   (0 << Dir_Inline) |
01894          (1 << Dir_Symmetric) |         (1 << Dir_Copy_Assumed_Shape) |
01895          (1 << Dir_Align_Symbol) |      (1 << Dir_Fill_Symbol) |
01896          (1 << Dir_Section_Gp) |        (1 << Dir_Section_Non_Gp) |
01897          (1 << Dir_Optional) |          (1 << Dir_Ignore_TKR) |
01898          (0 << Dir_Ipa) |               (1 << Dir_Name)),
01899 
01900         /*      Obj_Sf_Darg             ie: sf(A) =     */
01901 
01902         ((1 << Dir_Auxiliary) |         (1 << Dir_Vfunction) |
01903          (1 << Dir_No_Side_Effects) |   (1 << Dir_Inline) |
01904          (0 << Dir_Symmetric) |         (1 << Dir_Copy_Assumed_Shape) |
01905          (1 << Dir_Align_Symbol) |      (1 << Dir_Fill_Symbol) |
01906          (1 << Dir_Section_Gp) |        (1 << Dir_Section_Non_Gp) |
01907          (1 << Dir_Optional) |          (0 << Dir_Ignore_TKR) |
01908          (1 << Dir_Ipa) |               (1 << Dir_Name)),
01909 
01910         /*      Obj_Sf_Actual_Arg       ie: x = sf(A)           */
01911 
01912         ((0 << Dir_Auxiliary) |         (1 << Dir_Vfunction) |
01913          (1 << Dir_No_Side_Effects) |   (1 << Dir_Inline) |
01914          (0 << Dir_Symmetric) |         (0 << Dir_Copy_Assumed_Shape) |
01915          (0 << Dir_Align_Symbol) |      (0 << Dir_Fill_Symbol) |
01916          (0 << Dir_Section_Gp) |        (0 << Dir_Section_Non_Gp) |
01917          (1 << Dir_Optional) |          (0 << Dir_Ignore_TKR) |
01918          (1 << Dir_Ipa) |               (1 << Dir_Name)),
01919 
01920         /*  Obj_Var_Len_Ch              ie: CHARACTER*(N) A                 */
01921 
01922         /*  Covers both automatic and adjustable.                           */
01923         /*  Always called at end pass1.  Obj_type is called when the        */
01924         /*  character statement is seen.  If the bounds do not resolve to a */
01925         /*  constant, then fnd_semantic_err is called with Obj_Var_Len_Ch.  */
01926         /*  That is why Attr_Type is allowed to be set.                     */
01927 
01928         ((1 << Dir_Auxiliary) |         (1 << Dir_Vfunction) |
01929          (0 << Dir_No_Side_Effects) |   (0 << Dir_Inline) |
01930          (0 << Dir_Symmetric) |         (0 << Dir_Copy_Assumed_Shape) |
01931          (1 << Dir_Align_Symbol) |      (1 << Dir_Fill_Symbol) |
01932          (1 << Dir_Section_Gp) |        (1 << Dir_Section_Non_Gp) |
01933          (1 << Dir_Optional) |          (0 << Dir_Ignore_TKR) |
01934          (0 << Dir_Ipa) |               (1 << Dir_Name)),
01935 
01936         /*  Obj_Var_Len_Arr             ie: DIMENSION A(N)                  */
01937         /*  Obj_Var_Len_Arr is used at declaration semantics.  The thing is */
01938         /*  already an explicit shape array, but now it is variable length. */
01939         /*  Because this is at end pass1, the item may have the Auxiliary   */
01940         /*  attribute.                                                      */
01941 
01942         ((0 << Dir_Auxiliary) |         (1 << Dir_Vfunction) |
01943          (0 << Dir_No_Side_Effects) |   (0 << Dir_Inline) |
01944          (0 << Dir_Symmetric) |         (1 << Dir_Copy_Assumed_Shape) |
01945          (0 << Dir_Align_Symbol) |      (0 << Dir_Fill_Symbol) |
01946          (1 << Dir_Section_Gp) |        (1 << Dir_Section_Non_Gp) |
01947          (1 << Dir_Optional) |          (0 << Dir_Ignore_TKR) |
01948          (0 << Dir_Ipa) |               (1 << Dir_Name)),
01949 
01950         /*      Obj_Sym_Constant_Array  ie: DIMENSION A(N$PES)  */
01951 
01952         ((0 << Dir_Auxiliary) |         (1 << Dir_Vfunction) |
01953          (0 << Dir_No_Side_Effects) |   (0 << Dir_Inline) |
01954          (0 << Dir_Symmetric) |         (0 << Dir_Copy_Assumed_Shape) |
01955          (1 << Dir_Align_Symbol) |      (1 << Dir_Fill_Symbol) |
01956          (1 << Dir_Section_Gp) |        (1 << Dir_Section_Non_Gp) |
01957          (1 << Dir_Optional) |          (1 << Dir_Ignore_TKR) |
01958          (0 << Dir_Ipa) |               (1 << Dir_Name)),
01959 
01960         /*      Obj_Interface_Func      ie: FUNCTION ABC()      */
01961 
01962         ((1 << Dir_Auxiliary) |         (1 << Dir_Vfunction) |
01963          (1 << Dir_No_Side_Effects) |   (0 << Dir_Inline) |
01964          (1 << Dir_Symmetric) |         (1 << Dir_Copy_Assumed_Shape) |
01965          (1 << Dir_Align_Symbol) |      (1 << Dir_Fill_Symbol) |
01966          (1 << Dir_Section_Gp) |        (1 << Dir_Section_Non_Gp) |
01967          (1 << Dir_Optional) |          (1 << Dir_Ignore_TKR) |
01968          (0 << Dir_Ipa) |               (1 << Dir_Name)),
01969 
01970         /*      Obj_Interface_Subr      ie: SUBROUTINE ABC()    */
01971 
01972         ((1 << Dir_Auxiliary) |         (1 << Dir_Vfunction) |
01973          (1 << Dir_No_Side_Effects) |   (0 << Dir_Inline) |
01974          (1 << Dir_Symmetric) |         (1 << Dir_Copy_Assumed_Shape) |
01975          (1 << Dir_Align_Symbol) |      (1 << Dir_Fill_Symbol) |
01976          (1 << Dir_Section_Gp) |        (1 << Dir_Section_Non_Gp) |
01977          (1 << Dir_Optional) |          (1 << Dir_Ignore_TKR) |
01978          (0 << Dir_Ipa) |               (1 << Dir_Name)),
01979 
01980         /*      Obj_Use_Extern_Func     ie: B = A()             */
01981 
01982         ((1 << Dir_Auxiliary) |         (0 << Dir_Vfunction) |
01983          (0 << Dir_No_Side_Effects) |   (0 << Dir_Inline) |
01984          (1 << Dir_Symmetric) |         (1 << Dir_Copy_Assumed_Shape) |
01985          (1 << Dir_Align_Symbol) |      (1 << Dir_Fill_Symbol) |
01986          (1 << Dir_Section_Gp) |        (1 << Dir_Section_Non_Gp) |
01987          (0 << Dir_Optional) |          (1 << Dir_Ignore_TKR) |
01988          (0 << Dir_Ipa) |               (0 << Dir_Name)),
01989 
01990         /*      Obj_Use_Extern_Subr      ie: CALL A()   */
01991 
01992         ((1 << Dir_Auxiliary) |         (1 << Dir_Vfunction) |
01993          (0 << Dir_No_Side_Effects) |   (0 << Dir_Inline) |
01994          (1 << Dir_Symmetric) |         (1 << Dir_Copy_Assumed_Shape) |
01995          (1 << Dir_Align_Symbol) |      (1 << Dir_Fill_Symbol) |
01996          (1 << Dir_Section_Gp) |        (1 << Dir_Section_Non_Gp) |
01997          (0 << Dir_Optional) |          (1 << Dir_Ignore_TKR) |
01998          (0 << Dir_Ipa) |               (0 << Dir_Name)),
01999 
02000         /*      Obj_Use_In_Expr         ie: X = A + B   */
02001 
02002         ((0 << Dir_Auxiliary) |         (0 << Dir_Vfunction) |
02003          (0 << Dir_No_Side_Effects) |   (0 << Dir_Inline) |
02004          (0 << Dir_Symmetric) |         (0 << Dir_Copy_Assumed_Shape) |
02005          (0 << Dir_Align_Symbol) |      (0 << Dir_Fill_Symbol) |
02006          (0 << Dir_Section_Gp) |        (0 << Dir_Section_Non_Gp) |
02007          (0 << Dir_Optional) |          (0 << Dir_Ignore_TKR) |
02008          (0 << Dir_Ipa) |               (0 << Dir_Name)),
02009 
02010         /*      Obj_Use_Derived_Type    ie: TYPE (A)    */
02011 
02012         ((1 << Dir_Auxiliary) |         (1 << Dir_Vfunction) |
02013          (1 << Dir_No_Side_Effects) |   (1 << Dir_Inline) |
02014          (1 << Dir_Symmetric) |         (1 << Dir_Copy_Assumed_Shape) |
02015          (1 << Dir_Align_Symbol) |      (1 << Dir_Fill_Symbol) |
02016          (1 << Dir_Section_Gp) |        (1 << Dir_Section_Non_Gp) |
02017          (1 << Dir_Optional) |          (1 << Dir_Ignore_TKR) |
02018          (1 << Dir_Ipa) |               (1 << Dir_Name)),
02019 
02020         /*      Obj_Use_Spec_Expr       ie: DIMENSION ARRAY(A) */
02021 
02022         ((0 << Dir_Auxiliary) |         (0 << Dir_Vfunction) |
02023          (0 << Dir_No_Side_Effects) |   (0 << Dir_Inline) |
02024          (0 << Dir_Symmetric) |         (0 << Dir_Copy_Assumed_Shape) |
02025          (0 << Dir_Align_Symbol) |      (0 << Dir_Fill_Symbol) |
02026          (0 << Dir_Section_Gp) |        (0 << Dir_Section_Non_Gp) |
02027          (0 << Dir_Optional) |          (0 << Dir_Ignore_TKR) |
02028          (0 << Dir_Ipa) |               (0 << Dir_Name)),
02029 
02030         /*      Obj_Use_Init_Expr       ie: PARAMETER (I=A)     */
02031 
02032         ((1 << Dir_Auxiliary) |         (1 << Dir_Vfunction) |
02033          (0 << Dir_No_Side_Effects) |   (0 << Dir_Inline) |
02034          (0 << Dir_Symmetric) |         (1 << Dir_Copy_Assumed_Shape) |
02035          (1 << Dir_Align_Symbol) |      (1 << Dir_Fill_Symbol) |
02036          (1 << Dir_Section_Gp) |        (1 << Dir_Section_Non_Gp) |
02037          (1 << Dir_Optional) |          (1 << Dir_Ignore_TKR) |
02038          (0 << Dir_Ipa) |               (1 << Dir_Name))
02039         };
02040 
02041 
02042 long    obj_to_name[Obj_Done]   =       {
02043 
02044         /*      Obj_Assum_Type_Ch       ie: CHARACTER*(*) A                */
02045         /*      Have to declare the type before declaring it as a pointee. */
02046         /*      It can be the function result of an external program,      */
02047         /*      so the others will have to be caught inline.  Allow it to  */
02048         /*      be a cri pointee.       An explicit message will be issued */
02049         /*      by merge_type.                                             */
02050 
02051         ((0 << Name_Variable) |         (1 << Name_Common_Obj) |
02052          (1 << Name_Cri_Pointer) |      (0 << Name_Dummy_Arg) |
02053 
02054 # if defined(_EXTENDED_CRI_CHAR_POINTER)
02055          (0 << Name_Cri_Pointee) |      (0 << Name_Cri_Ch_Pointee) |
02056 # else
02057          (1 << Name_Cri_Pointee) |      (1 << Name_Cri_Ch_Pointee) |
02058 # endif
02059          (0 << Name_Func_Result) |      (1 << Name_Intrinsic_Func) |
02060          (1 << Name_Intrinsic_Subr) |   (1 << Name_Module_Proc) |
02061          (1 << Name_Derived_Type) |     (1 << Name_Generic_Interface) |
02062          (1 << Name_Namelist_Group) |   (1 << Name_Namelist_Group_Obj)|
02063          (1 << Name_Statement_Func) |   (1 << Name_Construct) |
02064          (1 << Name_Module) |           (1 << Name_Blockdata) |
02065          (1 << Name_Program) |          (0 << Name_Function) |
02066          (0 << Name_Curr_Func) |        (1 << Name_Curr_Subr) |
02067          (1 << Name_Internal_Func) |    (1 << Name_Internal_Subr)),
02068 
02069         /*      Obj_Expl_Shp_Arr        ie: DIMENSION A (1)     */
02070 
02071         ((0 << Name_Variable) |         (0 << Name_Common_Obj) |
02072          (1 << Name_Cri_Pointer) |      (0 << Name_Dummy_Arg) |
02073 
02074 # if defined(_EXTENDED_CRI_CHAR_POINTER)
02075          (0 << Name_Cri_Pointee) |      (0 << Name_Cri_Ch_Pointee) |
02076 # else
02077          (0 << Name_Cri_Pointee) |      (1 << Name_Cri_Ch_Pointee) |
02078 # endif
02079          (0 << Name_Func_Result) |      (1 << Name_Intrinsic_Func) |
02080          (1 << Name_Intrinsic_Subr) |   (1 << Name_Module_Proc) |
02081          (1 << Name_Derived_Type) |     (1 << Name_Generic_Interface) |
02082          (1 << Name_Namelist_Group) |   (0 << Name_Namelist_Group_Obj)|
02083          (1 << Name_Statement_Func) |   (1 << Name_Construct) |
02084          (1 << Name_Module) |           (1 << Name_Blockdata) |
02085          (1 << Name_Program) |          (0 << Name_Function) |
02086          (0 << Name_Curr_Func) |        (1 << Name_Curr_Subr) |
02087          (1 << Name_Internal_Func) |    (1 << Name_Internal_Subr)),
02088 
02089         /*      Obj_Assum_Size_Arr      ie: DIMENSION A(*)      */
02090 
02091         ((1 << Name_Variable) |         (1 << Name_Common_Obj) |
02092          (1 << Name_Cri_Pointer) |      (0 << Name_Dummy_Arg) |
02093 
02094 # if defined(_EXTENDED_CRI_CHAR_POINTER)
02095          (0 << Name_Cri_Pointee) |      (0 << Name_Cri_Ch_Pointee) |
02096 # else
02097          (0 << Name_Cri_Pointee) |      (1 << Name_Cri_Ch_Pointee) |
02098 # endif
02099          (1 << Name_Func_Result) |      (1 << Name_Intrinsic_Func) |
02100          (1 << Name_Intrinsic_Subr) |   (1 << Name_Module_Proc) |
02101          (1 << Name_Derived_Type) |     (1 << Name_Generic_Interface) |
02102          (1 << Name_Namelist_Group) |   (1 << Name_Namelist_Group_Obj)|
02103          (1 << Name_Statement_Func) |   (1 << Name_Construct) |
02104          (1 << Name_Module) |           (1 << Name_Blockdata) |
02105          (1 << Name_Program) |          (1 << Name_Function) |
02106          (1 << Name_Curr_Func) |        (1 << Name_Curr_Subr) |
02107          (1 << Name_Internal_Func) |    (1 << Name_Internal_Subr)),
02108 
02109         /*      Obj_Defrd_Shp_Arr       ie: DIMENSION A(:)      */
02110 
02111         ((0 << Name_Variable) |         (0 << Name_Common_Obj) |
02112          (1 << Name_Cri_Pointer) |      (0 << Name_Dummy_Arg) |
02113          (1 << Name_Cri_Pointee) |      (1 << Name_Cri_Ch_Pointee) |
02114          (0 << Name_Func_Result) |      (1 << Name_Intrinsic_Func) |
02115          (1 << Name_Intrinsic_Subr) |   (1 << Name_Module_Proc) |
02116          (1 << Name_Derived_Type) |     (1 << Name_Generic_Interface) |
02117          (1 << Name_Namelist_Group) |   (1 << Name_Namelist_Group_Obj)|
02118          (1 << Name_Statement_Func) |   (1 << Name_Construct) |
02119          (1 << Name_Module) |           (1 << Name_Blockdata) |
02120          (1 << Name_Program) |          (0 << Name_Function) |
02121          (0 << Name_Curr_Func) |        (1 << Name_Curr_Subr) |
02122          (1 << Name_Internal_Func) |    (1 << Name_Internal_Subr)),
02123 
02124         /*  Obj_Assum_Shp_Arr   ie: DIMENSION A (1:)    */
02125         /*  NOTE:  This can be a referenced variable, because assumed-shape */
02126         /*      is added at end_pass1, but must check if AT_REFERENCED set  */
02127         /*      if this is an original declaration of an assumed-shape arr  */
02128 
02129         ((0 << Name_Variable) |         (1 << Name_Common_Obj) |
02130          (1 << Name_Cri_Pointer) |      (0 << Name_Dummy_Arg) |
02131          (1 << Name_Cri_Pointee) |      (1 << Name_Cri_Ch_Pointee) |
02132          (1 << Name_Func_Result) |      (1 << Name_Intrinsic_Func) |
02133          (1 << Name_Intrinsic_Subr) |   (1 << Name_Module_Proc) |
02134          (1 << Name_Derived_Type) |     (1 << Name_Generic_Interface) |
02135          (1 << Name_Namelist_Group) |   (1 << Name_Namelist_Group_Obj)|
02136          (1 << Name_Statement_Func) |   (1 << Name_Construct) |
02137          (1 << Name_Module) |           (1 << Name_Blockdata) |
02138          (1 << Name_Program) |          (1 << Name_Function) |
02139          (1 << Name_Curr_Func) |        (1 << Name_Curr_Subr) |
02140          (1 << Name_Internal_Func) |    (1 << Name_Internal_Subr)),
02141 
02142         /*      Obj_Co_Array    ie: Dimension A[3,4]    */
02143 
02144         ((0 << Name_Variable) |         (0 << Name_Common_Obj) |
02145          (1 << Name_Cri_Pointer) |      (0 << Name_Dummy_Arg) |
02146          (1 << Name_Cri_Pointee) |      (1 << Name_Cri_Ch_Pointee) |
02147          (1 << Name_Func_Result) |      (1 << Name_Intrinsic_Func) |
02148          (1 << Name_Intrinsic_Subr) |   (1 << Name_Module_Proc) |
02149          (1 << Name_Derived_Type) |     (1 << Name_Generic_Interface) |
02150          (1 << Name_Namelist_Group) |   (0 << Name_Namelist_Group_Obj)|
02151          (1 << Name_Statement_Func) |   (1 << Name_Construct) |
02152          (1 << Name_Module) |           (1 << Name_Blockdata) |
02153          (1 << Name_Program) |          (1 << Name_Function) |
02154          (1 << Name_Curr_Func) |        (1 << Name_Curr_Subr) |
02155          (1 << Name_Internal_Func) |    (1 << Name_Internal_Subr)),
02156 
02157 
02158         /*      Obj_Allocatable         ie: ALLOCATABLE A(:)    */
02159 
02160         ((0 << Name_Variable) |         (1 << Name_Common_Obj) |
02161          (1 << Name_Cri_Pointer) |      (1 << Name_Dummy_Arg) |
02162          (1 << Name_Cri_Pointee) |      (1 << Name_Cri_Ch_Pointee) |
02163          (1 << Name_Func_Result) |      (1 << Name_Intrinsic_Func) |
02164          (1 << Name_Intrinsic_Subr) |   (1 << Name_Module_Proc) |
02165          (1 << Name_Derived_Type) |     (1 << Name_Generic_Interface) |
02166          (1 << Name_Namelist_Group) |   (1 << Name_Namelist_Group_Obj)|
02167          (1 << Name_Statement_Func) |   (1 << Name_Construct) |
02168          (1 << Name_Module) |           (1 << Name_Blockdata) |
02169          (1 << Name_Program) |          (1 << Name_Function) |
02170          (1 << Name_Curr_Func) |        (1 << Name_Curr_Subr) |
02171          (1 << Name_Internal_Func) |    (1 << Name_Internal_Subr)),
02172 
02173         /*      Obj_Constant            ie: PARAMETER (A=1.0)   */
02174 
02175         ((1 << Name_Variable) |         (1 << Name_Common_Obj) |
02176          (1 << Name_Cri_Pointer) |      (1 << Name_Dummy_Arg) |
02177          (1 << Name_Cri_Pointee) |      (1 << Name_Cri_Ch_Pointee) |
02178          (1 << Name_Func_Result) |      (1 << Name_Intrinsic_Func) |
02179          (1 << Name_Intrinsic_Subr) |   (1 << Name_Module_Proc) |
02180          (1 << Name_Derived_Type) |     (1 << Name_Generic_Interface) |
02181          (1 << Name_Namelist_Group) |   (1 << Name_Namelist_Group_Obj)|
02182          (1 << Name_Statement_Func) |   (1 << Name_Construct) |
02183          (1 << Name_Module) |           (1 << Name_Blockdata) |
02184          (1 << Name_Program) |          (1 << Name_Function) |
02185          (1 << Name_Curr_Func) |        (1 << Name_Curr_Subr) |
02186          (1 << Name_Internal_Func) |    (1 << Name_Internal_Subr)),
02187 
02188         /*      Obj_Intent              ie: INTENT (IN) A       */
02189 
02190         ((1 << Name_Variable) |         (1 << Name_Common_Obj) |
02191          (1 << Name_Cri_Pointer) |      (0 << Name_Dummy_Arg) |
02192          (1 << Name_Cri_Pointee) |      (1 << Name_Cri_Ch_Pointee) |
02193          (1 << Name_Func_Result) |      (1 << Name_Intrinsic_Func) |
02194          (1 << Name_Intrinsic_Subr) |   (1 << Name_Module_Proc) |
02195          (1 << Name_Derived_Type) |     (1 << Name_Generic_Interface) |
02196          (1 << Name_Namelist_Group) |   (0 << Name_Namelist_Group_Obj)|
02197          (1 << Name_Statement_Func) |   (1 << Name_Construct) |
02198          (1 << Name_Module) |           (1 << Name_Blockdata) |
02199          (1 << Name_Program) |          (1 << Name_Function) |
02200          (1 << Name_Curr_Func) |        (1 << Name_Curr_Subr) |
02201          (1 << Name_Internal_Func) |    (1 << Name_Internal_Subr)),
02202 
02203         /*      Obj_Optional            ie: OPTIONAL A  */
02204 
02205         ((1 << Name_Variable) |         (1 << Name_Common_Obj) |
02206          (0 << Name_Cri_Pointer) |      (0 << Name_Dummy_Arg) |
02207          (1 << Name_Cri_Pointee) |      (1 << Name_Cri_Ch_Pointee) |
02208          (1 << Name_Func_Result) |      (1 << Name_Intrinsic_Func) |
02209          (1 << Name_Intrinsic_Subr) |   (1 << Name_Module_Proc) |
02210          (1 << Name_Derived_Type) |     (1 << Name_Generic_Interface) |
02211          (1 << Name_Namelist_Group) |   (0 << Name_Namelist_Group_Obj)|
02212          (1 << Name_Statement_Func) |   (1 << Name_Construct) |
02213          (1 << Name_Module) |           (1 << Name_Blockdata) |
02214          (1 << Name_Program) |          (0 << Name_Function) |
02215          (1 << Name_Curr_Func) |        (1 << Name_Curr_Subr) |
02216          (1 << Name_Internal_Func) |    (1 << Name_Internal_Subr)),
02217 
02218         /*      Obj_Private             ie: PRIVATE A   */
02219 
02220         ((0 << Name_Variable) |         (0 << Name_Common_Obj) |
02221          (0 << Name_Cri_Pointer) |      (0 << Name_Dummy_Arg) |
02222          (0 << Name_Cri_Pointee) |      (0 << Name_Cri_Ch_Pointee) |
02223          (1 << Name_Func_Result) |      (0 << Name_Intrinsic_Func) |
02224          (0 << Name_Intrinsic_Subr) |   (0 << Name_Module_Proc) |
02225          (0 << Name_Derived_Type) |     (0 << Name_Generic_Interface) |
02226          (0 << Name_Namelist_Group) |   (0 << Name_Namelist_Group_Obj)|
02227          (1 << Name_Statement_Func) |   (1 << Name_Construct) |
02228          (1 << Name_Module) |           (1 << Name_Blockdata) |
02229          (1 << Name_Program) |          (0 << Name_Function) |
02230          (1 << Name_Curr_Func) |        (1 << Name_Curr_Subr) |
02231          (1 << Name_Internal_Func) |    (1 << Name_Internal_Subr)),
02232 
02233         /*      Obj_Public              ie: PUBLIC A    */
02234 
02235         ((0 << Name_Variable) |         (0 << Name_Common_Obj) |
02236          (0 << Name_Cri_Pointer) |      (0 << Name_Dummy_Arg) |
02237          (0 << Name_Cri_Pointee) |      (0 << Name_Cri_Ch_Pointee) |
02238          (1 << Name_Func_Result) |      (0 << Name_Intrinsic_Func) |
02239          (0 << Name_Intrinsic_Subr) |   (0 << Name_Module_Proc) |
02240          (0 << Name_Derived_Type) |     (0 << Name_Generic_Interface) |
02241          (0 << Name_Namelist_Group) |   (0 << Name_Namelist_Group_Obj)| 
02242          (1 << Name_Statement_Func) |   (1 << Name_Construct) |
02243          (1 << Name_Module) |           (1 << Name_Blockdata) |
02244          (1 << Name_Program) |          (0 << Name_Function) |
02245          (1 << Name_Curr_Func) |        (1 << Name_Curr_Subr) |
02246          (1 << Name_Internal_Func) |    (1 << Name_Internal_Subr)),
02247 
02248         /*      Obj_Target              ie: TARGET A    */
02249 
02250         ((0 << Name_Variable) |         (0 << Name_Common_Obj) |
02251          (1 << Name_Cri_Pointer) |      (0 << Name_Dummy_Arg) |
02252          (1 << Name_Cri_Pointee) |      (1 << Name_Cri_Ch_Pointee) |
02253          (0 << Name_Func_Result) |      (1 << Name_Intrinsic_Func) |
02254          (1 << Name_Intrinsic_Subr) |   (1 << Name_Module_Proc) |
02255          (1 << Name_Derived_Type) |     (1 << Name_Generic_Interface) |
02256          (1 << Name_Namelist_Group) |   (0 << Name_Namelist_Group_Obj)|
02257          (1 << Name_Statement_Func) |   (1 << Name_Construct) |
02258          (1 << Name_Module) |           (1 << Name_Blockdata) |
02259          (1 << Name_Program) |          (0 << Name_Function) |
02260          (0 << Name_Curr_Func) |        (1 << Name_Curr_Subr) |
02261          (1 << Name_Internal_Func) |    (1 << Name_Internal_Subr)),
02262 
02263         /*      Obj_Equiv               ie: EQUIVALENCE (AB)    */
02264 
02265         ((0 << Name_Variable) |         (0 << Name_Common_Obj) |
02266          (0 << Name_Cri_Pointer) |      (1 << Name_Dummy_Arg) |
02267          (1 << Name_Cri_Pointee) |      (1 << Name_Cri_Ch_Pointee) |
02268          (1 << Name_Func_Result) |      (1 << Name_Intrinsic_Func) |
02269          (1 << Name_Intrinsic_Subr) |   (1 << Name_Module_Proc) |
02270          (1 << Name_Module) |           (1 << Name_Blockdata) |
02271          (1 << Name_Program) |          (1 << Name_Function) |
02272          (1 << Name_Derived_Type) |     (1 << Name_Generic_Interface) |
02273          (1 << Name_Namelist_Group) |   (0 << Name_Namelist_Group_Obj)| 
02274          (1 << Name_Statement_Func) |   (1 << Name_Construct) |
02275          (1 << Name_Curr_Func) |        (1 << Name_Curr_Subr) |
02276          (1 << Name_Internal_Func) |    (1 << Name_Internal_Subr)),
02277 
02278         /*      Obj_Saved                       ie: SAVE A      */
02279 
02280         ((0 << Name_Variable) |         (1 << Name_Common_Obj) |
02281          (0 << Name_Cri_Pointer) |      (1 << Name_Dummy_Arg) |
02282          (1 << Name_Cri_Pointee) |      (1 << Name_Cri_Ch_Pointee) |
02283          (1 << Name_Func_Result) |      (1 << Name_Intrinsic_Func) |
02284          (1 << Name_Intrinsic_Subr) |   (1 << Name_Module_Proc) |
02285          (1 << Name_Module) |           (1 << Name_Blockdata) |
02286          (1 << Name_Program) |          (1 << Name_Function) |
02287          (1 << Name_Derived_Type) |     (1 << Name_Generic_Interface) |
02288          (1 << Name_Namelist_Group) |   (0 << Name_Namelist_Group_Obj)|
02289          (1 << Name_Statement_Func) |   (1 << Name_Construct) |
02290          (1 << Name_Curr_Func) |        (1 << Name_Curr_Subr) |
02291          (1 << Name_Internal_Func) |    (1 << Name_Internal_Subr)),
02292 
02293         /*      Obj_Automatic           ie: AUTOMATIC A */
02294 
02295         ((0 << Name_Variable) |         (1 << Name_Common_Obj) |
02296          (0 << Name_Cri_Pointer) |      (1 << Name_Dummy_Arg) |
02297          (1 << Name_Cri_Pointee) |      (1 << Name_Cri_Ch_Pointee) |
02298          (0 << Name_Func_Result) |      (1 << Name_Intrinsic_Func) |
02299          (1 << Name_Intrinsic_Subr) |   (0 << Name_Module_Proc) |
02300          (1 << Name_Module) |           (1 << Name_Blockdata) |
02301          (1 << Name_Program) |          (0 << Name_Function) |
02302          (1 << Name_Derived_Type) |     (1 << Name_Generic_Interface) |
02303          (1 << Name_Namelist_Group) |   (0 << Name_Namelist_Group_Obj)|
02304          (1 << Name_Statement_Func) |   (1 << Name_Construct) |
02305          (0 << Name_Curr_Func) |        (1 << Name_Curr_Subr) |
02306          (0 << Name_Internal_Func) |    (1 << Name_Internal_Subr)),
02307 
02308         /*      Obj_Pointer             ie: POINTER :: A        */
02309 
02310         ((0 << Name_Variable) |         (0 << Name_Common_Obj) |                
02311          (1 << Name_Cri_Pointer) |      (0 << Name_Dummy_Arg) |
02312          (1 << Name_Cri_Pointee) |      (1 << Name_Cri_Ch_Pointee) |
02313          (0 << Name_Func_Result) |      (1 << Name_Intrinsic_Func) |
02314          (1 << Name_Intrinsic_Subr) |   (1 << Name_Module_Proc) |
02315          (1 << Name_Module) |           (1 << Name_Blockdata) |
02316          (1 << Name_Program) |          (0 << Name_Function) |
02317          (1 << Name_Derived_Type) |     (1 << Name_Generic_Interface) |
02318          (1 << Name_Namelist_Group) |   (1 << Name_Namelist_Group_Obj)|
02319          (1 << Name_Statement_Func) |   (1 << Name_Construct) |
02320          (0 << Name_Curr_Func) |        (1 << Name_Curr_Subr) |
02321          (1 << Name_Internal_Func) |    (1 << Name_Internal_Subr)),
02322 
02323         /*      Obj_Dcl_Extern          ie: EXTERNAL A  */
02324 
02325         ((1 << Name_Variable) |         (1 << Name_Common_Obj) |
02326          (1 << Name_Cri_Pointer) |      (0 << Name_Dummy_Arg) |
02327          (1 << Name_Cri_Pointee) |      (1 << Name_Cri_Ch_Pointee) |
02328          (1 << Name_Func_Result) |      (1 << Name_Intrinsic_Func) |
02329          (1 << Name_Intrinsic_Subr) |   (1 << Name_Module_Proc) |
02330          (1 << Name_Module) |           (0 << Name_Blockdata) |
02331          (1 << Name_Program) |          (0 << Name_Function) |
02332          (1 << Name_Derived_Type) |     (1 << Name_Generic_Interface) |
02333          (1 << Name_Namelist_Group) |   (1 << Name_Namelist_Group_Obj)|
02334          (1 << Name_Statement_Func) |   (1 << Name_Construct) |
02335          (1 << Name_Curr_Func) |        (0 << Name_Curr_Subr) |
02336          (1 << Name_Internal_Func) |    (1 << Name_Internal_Subr)),
02337 
02338         /*      Obj_Dcl_Intrin          ie: INTRINSIC A */
02339 
02340         ((1 << Name_Variable) |         (1 << Name_Common_Obj) |
02341          (1 << Name_Cri_Pointer) |      (1 << Name_Dummy_Arg) |
02342          (1 << Name_Cri_Pointee) |      (1 << Name_Cri_Ch_Pointee) |
02343          (1 << Name_Func_Result) |      (0 << Name_Intrinsic_Func) |
02344          (0 << Name_Intrinsic_Subr) |   (1 << Name_Module_Proc) |
02345          (1 << Name_Module) |           (1 << Name_Blockdata) |
02346          (1 << Name_Program) |          (0 << Name_Function) |
02347          (1 << Name_Derived_Type) |     (0 << Name_Generic_Interface) |
02348          (1 << Name_Namelist_Group) |   (1 << Name_Namelist_Group_Obj)| 
02349          (1 << Name_Statement_Func) |   (1 << Name_Construct) |
02350          (1 << Name_Curr_Func) |        (1 << Name_Curr_Subr) |
02351          (1 << Name_Internal_Func) |    (1 << Name_Internal_Subr)),
02352 
02353         /*      Obj_Data_Init           ie: DATA A /1.0/        */
02354 
02355         ((0 << Name_Variable) |         (0 << Name_Common_Obj) |
02356          (0 << Name_Cri_Pointer) |      (1 << Name_Dummy_Arg) |
02357          (1 << Name_Cri_Pointee) |      (1 << Name_Cri_Ch_Pointee) |
02358          (1 << Name_Func_Result) |      (1 << Name_Intrinsic_Func) |
02359          (1 << Name_Intrinsic_Subr) |   (1 << Name_Module_Proc) |
02360          (1 << Name_Module) |           (1 << Name_Blockdata) |
02361          (1 << Name_Program) |          (1 << Name_Function) |
02362          (1 << Name_Derived_Type) |     (1 << Name_Generic_Interface) |
02363          (1 << Name_Namelist_Group) |   (0 << Name_Namelist_Group_Obj)|
02364          (1 << Name_Statement_Func) |   (1 << Name_Construct) |
02365          (1 << Name_Curr_Func) |        (1 << Name_Curr_Subr) |
02366          (1 << Name_Internal_Func) |    (1 << Name_Internal_Subr)),
02367 
02368         /*      Obj_Typed               ie: INTEGER A   */
02369 
02370         ((0 << Name_Variable) |         (0 << Name_Common_Obj) |
02371          (1 << Name_Cri_Pointer) |      (0 << Name_Dummy_Arg) |
02372          (0 << Name_Cri_Pointee) |      (1 << Name_Cri_Ch_Pointee) |
02373          (0 << Name_Func_Result) |      (0 << Name_Intrinsic_Func) |
02374          (1 << Name_Intrinsic_Subr) |   (1 << Name_Module_Proc) |
02375          (1 << Name_Module) |           (1 << Name_Blockdata) |
02376          (1 << Name_Program) |          (0 << Name_Function) |
02377          (1 << Name_Derived_Type) |     (0 << Name_Generic_Interface) |
02378          (1 << Name_Namelist_Group) |   (0 << Name_Namelist_Group_Obj)|
02379          (1 << Name_Statement_Func) |   (1 << Name_Construct) |
02380          (0 << Name_Curr_Func) |        (1 << Name_Curr_Subr) |
02381          (1 << Name_Internal_Func) |    (1 << Name_Internal_Subr)),
02382 
02383         /*      Obj_Volatile            ie: VOLATILE A  */
02384 
02385         ((0 << Name_Variable) |         (0 << Name_Common_Obj) |
02386          (0 << Name_Cri_Pointer) |      (0 << Name_Dummy_Arg) |
02387          (0 << Name_Cri_Pointee) |      (0 << Name_Cri_Ch_Pointee) |
02388          (1 << Name_Func_Result) |      (1 << Name_Intrinsic_Func) |
02389          (1 << Name_Intrinsic_Subr) |   (1 << Name_Module_Proc) |
02390          (1 << Name_Module) |           (1 << Name_Blockdata) |
02391          (1 << Name_Program) |          (1 << Name_Function) |
02392          (1 << Name_Derived_Type) |     (1 << Name_Generic_Interface) |
02393          (1 << Name_Namelist_Group) |   (0 << Name_Namelist_Group_Obj)|
02394          (1 << Name_Statement_Func) |   (1 << Name_Construct) |
02395          (1 << Name_Curr_Func) |        (1 << Name_Curr_Subr) |
02396          (1 << Name_Internal_Func) |    (1 << Name_Internal_Subr)),
02397 
02398         /*      Obj_Copy_Assumed_Shape  ie: !DIR$ COPY_ASSUMED_SHAPE A  */
02399 
02400         ((0 << Name_Variable) |         (1 << Name_Common_Obj) |
02401          (1 << Name_Cri_Pointer) |      (0 << Name_Dummy_Arg) |
02402          (1 << Name_Cri_Pointee) |      (1 << Name_Cri_Ch_Pointee) |
02403          (1 << Name_Func_Result) |      (1 << Name_Intrinsic_Func) |
02404          (1 << Name_Intrinsic_Subr) |   (1 << Name_Module_Proc) |
02405          (1 << Name_Derived_Type) |     (1 << Name_Generic_Interface) |
02406          (1 << Name_Namelist_Group) |   (1 << Name_Namelist_Group_Obj)|
02407          (1 << Name_Statement_Func) |   (1 << Name_Construct) |
02408          (1 << Name_Module) |           (1 << Name_Blockdata) |
02409          (1 << Name_Program) |          (1 << Name_Function) |
02410          (1 << Name_Curr_Func) |        (1 << Name_Curr_Subr) |
02411          (1 << Name_Internal_Func) |    (1 << Name_Internal_Subr)),
02412 
02413         /*      Obj_Auxiliary           ie: !DIR$ AUXILIARY A   */
02414 
02415         ((0 << Name_Variable) |         (0 << Name_Common_Obj) |
02416          (1 << Name_Cri_Pointer) |      (0 << Name_Dummy_Arg) |
02417          (1 << Name_Cri_Pointee) |      (1 << Name_Cri_Ch_Pointee) |
02418          (1 << Name_Func_Result) |      (1 << Name_Intrinsic_Func) |
02419          (1 << Name_Intrinsic_Subr) |   (1 << Name_Module_Proc) |
02420          (1 << Name_Module) |           (1 << Name_Blockdata) |
02421          (1 << Name_Program) |          (1 << Name_Function) |
02422          (1 << Name_Derived_Type) |     (1 << Name_Generic_Interface) |
02423          (1 << Name_Namelist_Group) |   (1 << Name_Namelist_Group_Obj)|
02424          (1 << Name_Statement_Func) |   (1 << Name_Construct) |
02425          (1 << Name_Curr_Func) |        (1 << Name_Curr_Subr) |
02426          (1 << Name_Internal_Func) |    (1 << Name_Internal_Subr)),
02427 
02428         /*      Obj_Vfunction           ie: !DIR$ VFUNCTION A   */
02429 
02430         ((1 << Name_Variable) |         (1 << Name_Common_Obj) |
02431          (1 << Name_Cri_Pointer) |      (1 << Name_Dummy_Arg) |
02432          (1 << Name_Cri_Pointee) |      (1 << Name_Cri_Ch_Pointee) |
02433          (1 << Name_Func_Result) |      (1 << Name_Intrinsic_Func) |
02434          (1 << Name_Intrinsic_Subr) |   (1 << Name_Module_Proc) |
02435          (1 << Name_Module) |           (1 << Name_Blockdata) |
02436          (1 << Name_Program) |          (0 << Name_Function) |
02437          (1 << Name_Derived_Type) |     (1 << Name_Generic_Interface) |
02438          (1 << Name_Namelist_Group) |   (1 << Name_Namelist_Group_Obj)|
02439          (1 << Name_Statement_Func) |   (1 << Name_Construct) |
02440          (1 << Name_Curr_Func) |        (1 << Name_Curr_Subr) |
02441          (1 << Name_Internal_Func) |    (1 << Name_Internal_Subr)),
02442 
02443         /*      Obj_No_Side_Effects     ie: !DIR$ NOSIDEEFFECTS A       */
02444 
02445         ((1 << Name_Variable) |         (1 << Name_Common_Obj) |
02446          (1 << Name_Cri_Pointer) |      (1 << Name_Dummy_Arg) |
02447          (1 << Name_Cri_Pointee) |      (1 << Name_Cri_Ch_Pointee) |
02448          (1 << Name_Func_Result) |      (1 << Name_Intrinsic_Func) |
02449          (1 << Name_Intrinsic_Subr) |   (1 << Name_Module_Proc) |
02450          (1 << Name_Module) |           (1 << Name_Blockdata) |
02451          (1 << Name_Program) |          (0 << Name_Function) |
02452          (1 << Name_Derived_Type) |     (1 << Name_Generic_Interface) |
02453          (1 << Name_Namelist_Group) |   (1 << Name_Namelist_Group_Obj)|
02454          (1 << Name_Statement_Func) |   (1 << Name_Construct) |
02455          (0 << Name_Curr_Func) |        (0 << Name_Curr_Subr) |
02456          (1 << Name_Internal_Func) |    (1 << Name_Internal_Subr)),
02457 
02458         /*      Obj_Symmetric           ie : !DIR$ SYMMETRIC A */
02459 
02460         ((0 << Name_Variable) |         (1 << Name_Common_Obj) |
02461          (0 << Name_Cri_Pointer) |      (1 << Name_Dummy_Arg) |
02462          (1 << Name_Cri_Pointee) |      (1 << Name_Cri_Ch_Pointee) |
02463          (1 << Name_Func_Result) |      (1 << Name_Intrinsic_Func) |
02464          (1 << Name_Intrinsic_Subr) |   (1 << Name_Module_Proc) |
02465          (1 << Name_Module) |           (1 << Name_Blockdata) |
02466          (1 << Name_Program) |          (1 << Name_Function) |
02467          (1 << Name_Derived_Type) |     (1 << Name_Generic_Interface) |
02468          (1 << Name_Namelist_Group) |   (0 << Name_Namelist_Group_Obj)|
02469          (1 << Name_Statement_Func) |   (1 << Name_Construct) |
02470          (1 << Name_Curr_Func) |        (1 << Name_Curr_Subr) |
02471          (1 << Name_Internal_Func) |    (1 << Name_Internal_Subr)),
02472 
02473         /*      Obj_Inline              ie: !DIR$ INLINE ALWAYS/NEVER A */
02474 
02475         ((1 << Name_Variable) |         (1 << Name_Common_Obj) |
02476          (1 << Name_Cri_Pointer) |      (1 << Name_Dummy_Arg) |
02477          (1 << Name_Cri_Pointee) |      (1 << Name_Cri_Ch_Pointee) |
02478          (1 << Name_Func_Result) |      (0 << Name_Intrinsic_Func) |
02479          (0 << Name_Intrinsic_Subr) |   (0 << Name_Module_Proc) |
02480          (1 << Name_Module) |           (1 << Name_Blockdata) |
02481          (1 << Name_Program) |          (0 << Name_Function) |
02482          (1 << Name_Derived_Type) |     (0 << Name_Generic_Interface) |
02483          (1 << Name_Namelist_Group) |   (1 << Name_Namelist_Group_Obj)|
02484          (1 << Name_Statement_Func) |   (1 << Name_Construct) |
02485          (0 << Name_Curr_Func) |        (0 << Name_Curr_Subr) |
02486          (0 << Name_Internal_Func) |    (0 << Name_Internal_Subr)),
02487 
02488         /*      Obj_Ipa                 ie: !*$* IPA */
02489 
02490         ((1 << Name_Variable) |         (1 << Name_Common_Obj) |
02491          (1 << Name_Cri_Pointer) |      (1 << Name_Dummy_Arg) |
02492          (1 << Name_Cri_Pointee) |      (1 << Name_Cri_Ch_Pointee) |
02493          (1 << Name_Func_Result) |      (0 << Name_Intrinsic_Func) |
02494          (0 << Name_Intrinsic_Subr) |   (0 << Name_Module_Proc) |
02495          (1 << Name_Module) |           (1 << Name_Blockdata) |
02496          (1 << Name_Program) |          (0 << Name_Function) |
02497          (1 << Name_Derived_Type) |     (0 << Name_Generic_Interface) |
02498          (1 << Name_Namelist_Group) |   (1 << Name_Namelist_Group_Obj)|
02499          (1 << Name_Statement_Func) |   (1 << Name_Construct) |
02500          (0 << Name_Curr_Func) |        (0 << Name_Curr_Subr) |
02501          (0 << Name_Internal_Func) |    (0 << Name_Internal_Subr)),
02502 
02503         /*      Obj_Align_Symbol        ie: !*$* ALIGN_SYMBOL A */
02504 
02505         ((0 << Name_Variable) |         (0 << Name_Common_Obj) |
02506          (0 << Name_Cri_Pointer) |      (1 << Name_Dummy_Arg) |
02507          (0 << Name_Cri_Pointee) |      (0 << Name_Cri_Ch_Pointee) |
02508          (1 << Name_Func_Result) |      (1 << Name_Intrinsic_Func) |
02509          (1 << Name_Intrinsic_Subr) |   (1 << Name_Module_Proc) |
02510          (1 << Name_Module) |           (1 << Name_Blockdata) |
02511          (1 << Name_Program) |          (1 << Name_Function) |
02512          (1 << Name_Derived_Type) |     (1 << Name_Generic_Interface) |
02513          (1 << Name_Namelist_Group) |   (0 << Name_Namelist_Group_Obj)|
02514          (1 << Name_Statement_Func) |   (1 << Name_Construct) |
02515          (1 << Name_Curr_Func) |        (1 << Name_Curr_Subr) |
02516          (1 << Name_Internal_Func) |    (1 << Name_Internal_Subr)),
02517 
02518         /*      Obj_Fill_Symbol         ie: !*$* FILL_SYMBOL A  */
02519 
02520         ((0 << Name_Variable) |         (0 << Name_Common_Obj) |
02521          (0 << Name_Cri_Pointer) |      (1 << Name_Dummy_Arg) |
02522          (0 << Name_Cri_Pointee) |      (0 << Name_Cri_Ch_Pointee) |
02523          (1 << Name_Func_Result) |      (1 << Name_Intrinsic_Func) |
02524          (1 << Name_Intrinsic_Subr) |   (1 << Name_Module_Proc) |
02525          (1 << Name_Module) |           (1 << Name_Blockdata) |
02526          (1 << Name_Program) |          (1 << Name_Function) |
02527          (1 << Name_Derived_Type) |     (1 << Name_Generic_Interface) |
02528          (1 << Name_Namelist_Group) |   (0 << Name_Namelist_Group_Obj)|
02529          (1 << Name_Statement_Func) |   (1 << Name_Construct) |
02530          (1 << Name_Curr_Func) |        (1 << Name_Curr_Subr) |
02531          (1 << Name_Internal_Func) |    (1 << Name_Internal_Subr)),
02532 
02533         /*      Obj_Section_Gp          ie: !*$* SECTION_GP A   */
02534 
02535         ((0 << Name_Variable) |         (0 << Name_Common_Obj) |
02536          (0 << Name_Cri_Pointer) |      (1 << Name_Dummy_Arg) |
02537          (1 << Name_Cri_Pointee) |      (1 << Name_Cri_Ch_Pointee) |
02538          (1 << Name_Func_Result) |      (1 << Name_Intrinsic_Func) |
02539          (1 << Name_Intrinsic_Subr) |   (1 << Name_Module_Proc) |
02540          (0 << Name_Module) |           (1 << Name_Blockdata) |
02541          (1 << Name_Program) |          (1 << Name_Function) |
02542          (1 << Name_Derived_Type) |     (1 << Name_Generic_Interface) |
02543          (1 << Name_Namelist_Group) |   (0 << Name_Namelist_Group_Obj)|
02544          (1 << Name_Statement_Func) |   (1 << Name_Construct) |
02545          (1 << Name_Curr_Func) |        (1 << Name_Curr_Subr) |
02546          (1 << Name_Internal_Func) |    (1 << Name_Internal_Subr)),
02547 
02548         /*      Obj_Section_Non_Gp      ie: !*$* SECTION_NON_GP A       */
02549 
02550         ((0 << Name_Variable) |         (0 << Name_Common_Obj) |
02551          (0 << Name_Cri_Pointer) |      (1 << Name_Dummy_Arg) |
02552          (1 << Name_Cri_Pointee) |      (1 << Name_Cri_Ch_Pointee) |
02553          (1 << Name_Func_Result) |      (1 << Name_Intrinsic_Func) |
02554          (1 << Name_Intrinsic_Subr) |   (1 << Name_Module_Proc) |
02555          (0 << Name_Module) |           (1 << Name_Blockdata) |
02556          (1 << Name_Program) |          (1 << Name_Function) |
02557          (1 << Name_Derived_Type) |     (1 << Name_Generic_Interface) |
02558          (1 << Name_Namelist_Group) |   (0 << Name_Namelist_Group_Obj)|
02559          (1 << Name_Statement_Func) |   (1 << Name_Construct) |
02560          (1 << Name_Curr_Func) |        (1 << Name_Curr_Subr) |
02561          (1 << Name_Internal_Func) |    (1 << Name_Internal_Subr)),
02562 
02563         /*  Obj_Ignore_TKR               ie: !DIR$ IGNORE_TKR   */
02564 
02565         ((1 << Name_Variable) |         (1 << Name_Common_Obj) |
02566          (0 << Name_Cri_Pointer) |      (0 << Name_Dummy_Arg) |
02567          (1 << Name_Cri_Pointee) |      (1 << Name_Cri_Ch_Pointee) |
02568          (1 << Name_Func_Result) |      (1 << Name_Intrinsic_Func) |
02569          (1 << Name_Intrinsic_Subr) |   (1 << Name_Module_Proc) |
02570          (1 << Name_Derived_Type) |     (1 << Name_Generic_Interface) |
02571          (1 << Name_Namelist_Group) |   (0 << Name_Namelist_Group_Obj)|
02572          (1 << Name_Statement_Func) |   (1 << Name_Construct) |
02573          (1 << Name_Module) |           (1 << Name_Blockdata) |
02574          (1 << Name_Program) |          (1 << Name_Function) |
02575          (1 << Name_Curr_Func) |        (1 << Name_Curr_Subr) |
02576          (1 << Name_Internal_Func) |    (1 << Name_Internal_Subr)),
02577 
02578         /*      Obj_Optional_Dir        ie !*$* optional(extern) */
02579 
02580         ((1 << Name_Variable) |         (1 << Name_Common_Obj) |
02581          (1 << Name_Cri_Pointer) |      (0 << Name_Dummy_Arg) |
02582          (1 << Name_Cri_Pointee) |      (1 << Name_Cri_Ch_Pointee) |
02583          (1 << Name_Func_Result) |      (1 << Name_Intrinsic_Func) |
02584          (1 << Name_Intrinsic_Subr) |   (0 << Name_Module_Proc) |
02585          (1 << Name_Module) |           (0 << Name_Blockdata) |
02586          (1 << Name_Program) |          (0 << Name_Function) |
02587          (1 << Name_Derived_Type) |     (1 << Name_Generic_Interface) |
02588          (1 << Name_Namelist_Group) |   (1 << Name_Namelist_Group_Obj)| 
02589          (1 << Name_Statement_Func) |   (1 << Name_Construct) |
02590          (0 << Name_Curr_Func) |        (0 << Name_Curr_Subr) |
02591          (1 << Name_Internal_Func) |    (1 << Name_Internal_Subr)),
02592 
02593         /*      Obj_Name                ie: !DIR$ Name(Fort_name="ext_name") */
02594 
02595         ((1 << Name_Variable) |         (1 << Name_Common_Obj) |
02596          (1 << Name_Cri_Pointer) |      (0 << Name_Dummy_Arg) |
02597          (1 << Name_Cri_Pointee) |      (1 << Name_Cri_Ch_Pointee) |
02598          (1 << Name_Func_Result) |      (1 << Name_Intrinsic_Func) |
02599          (1 << Name_Intrinsic_Subr) |   (1 << Name_Module_Proc) |
02600          (1 << Name_Module) |           (1 << Name_Blockdata) |
02601          (1 << Name_Program) |          (0 << Name_Function) |
02602          (1 << Name_Derived_Type) |     (1 << Name_Generic_Interface) |
02603          (1 << Name_Namelist_Group) |   (1 << Name_Namelist_Group_Obj)| 
02604          (1 << Name_Statement_Func) |   (1 << Name_Construct) |
02605          (1 << Name_Curr_Func) |        (1 << Name_Curr_Subr) |
02606          (1 << Name_Internal_Func) |    (1 << Name_Internal_Subr)),
02607 
02608         /*      Obj_Cri_Ptr             ie: POINTER (A,B)       */
02609 
02610         ((0 << Name_Variable) |         (0 << Name_Common_Obj) |
02611          (0 << Name_Cri_Pointer) |      (0 << Name_Dummy_Arg) |
02612          (1 << Name_Cri_Pointee) |      (1 << Name_Cri_Ch_Pointee) |
02613          (1 << Name_Func_Result) |      (1 << Name_Intrinsic_Func) |
02614          (1 << Name_Intrinsic_Subr) |   (1 << Name_Module_Proc) |
02615          (1 << Name_Module) |           (1 << Name_Blockdata) |
02616          (1 << Name_Program) |          (1 << Name_Function) |
02617          (1 << Name_Derived_Type) |     (1 << Name_Generic_Interface) |
02618          (1 << Name_Namelist_Group) |   (0 << Name_Namelist_Group_Obj)|
02619          (1 << Name_Statement_Func) |   (1 << Name_Construct) |
02620          (1 << Name_Curr_Func) |        (1 << Name_Curr_Subr) |
02621          (1 << Name_Internal_Func) |    (1 << Name_Internal_Subr)),
02622 
02623         /*      Obj_Cri_Pointee         ie: POINTER (B,A)       */
02624 
02625         ((1 << Name_Variable) |         (1 << Name_Common_Obj) |
02626          (1 << Name_Cri_Pointer) |      (1 << Name_Dummy_Arg) |
02627          (1 << Name_Cri_Pointee) |      (1 << Name_Cri_Ch_Pointee) |
02628          (1 << Name_Func_Result) |      (1 << Name_Intrinsic_Func) |
02629          (1 << Name_Intrinsic_Subr) |   (1 << Name_Module_Proc) |
02630          (1 << Name_Module) |           (1 << Name_Blockdata) |
02631          (1 << Name_Program) |          (1 << Name_Function) |
02632          (1 << Name_Derived_Type) |     (1 << Name_Generic_Interface) |
02633          (1 << Name_Namelist_Group) |   (1 << Name_Namelist_Group_Obj)|
02634          (1 << Name_Statement_Func) |   (1 << Name_Construct) |
02635          (1 << Name_Curr_Func) |        (1 << Name_Curr_Subr) |
02636          (1 << Name_Internal_Func) |    (1 << Name_Internal_Subr)),
02637 
02638         /*      Obj_Cri_Ch_Pointee      ie: POINTER (B,A)       */
02639 
02640         ((1 << Name_Variable) |         (1 << Name_Common_Obj) |
02641          (1 << Name_Cri_Pointer) |      (1 << Name_Dummy_Arg) |
02642          (1 << Name_Cri_Pointee) |      (1 << Name_Cri_Ch_Pointee) |
02643          (1 << Name_Func_Result) |      (1 << Name_Intrinsic_Func) |
02644          (1 << Name_Intrinsic_Subr) |   (1 << Name_Module_Proc) |
02645          (1 << Name_Module) |           (1 << Name_Blockdata) |
02646          (1 << Name_Program) |          (1 << Name_Function) |
02647          (1 << Name_Derived_Type) |     (1 << Name_Generic_Interface) |
02648          (1 << Name_Namelist_Group) |   (1 << Name_Namelist_Group_Obj)|
02649          (1 << Name_Statement_Func) |   (1 << Name_Construct) |
02650          (1 << Name_Curr_Func) |        (1 << Name_Curr_Subr) |
02651          (1 << Name_Internal_Func) |    (1 << Name_Internal_Subr)),
02652 
02653         /*      Obj_Ntry_Func_Result    ie: ENTRY ABC() RESULT A        */
02654 
02655         ((1 << Name_Variable) |         (1 << Name_Common_Obj) |
02656          (1 << Name_Cri_Pointer) |      (1 << Name_Dummy_Arg) |
02657          (1 << Name_Cri_Pointee) |      (1 << Name_Cri_Ch_Pointee) |
02658          (0 << Name_Func_Result) |      (1 << Name_Intrinsic_Func) |
02659          (1 << Name_Intrinsic_Subr) |   (1 << Name_Module_Proc) |
02660          (1 << Name_Module) |           (1 << Name_Blockdata) |
02661          (1 << Name_Program) |          (1 << Name_Function) |
02662          (1 << Name_Derived_Type) |     (1 << Name_Generic_Interface) |
02663          (1 << Name_Namelist_Group) |   (0 << Name_Namelist_Group_Obj)|
02664          (1 << Name_Statement_Func) |   (1 << Name_Construct) |
02665          (1 << Name_Curr_Func) |        (1 << Name_Curr_Subr) |
02666          (1 << Name_Internal_Func) |    (1 << Name_Internal_Subr)),
02667 
02668         /*      Obj_Dummy_Arg           ie: FUNCTION ABC(A)             */
02669 
02670         ((0 << Name_Variable) |         (1 << Name_Common_Obj) |
02671          (0 << Name_Cri_Pointer) |      (0 << Name_Dummy_Arg) |
02672          (1 << Name_Cri_Pointee) |      (1 << Name_Cri_Ch_Pointee) |
02673          (1 << Name_Func_Result) |      (1 << Name_Intrinsic_Func) |
02674          (1 << Name_Intrinsic_Subr) |   (1 << Name_Module_Proc) |
02675          (1 << Name_Derived_Type) |     (1 << Name_Generic_Interface) |
02676          (1 << Name_Namelist_Group) |   (0 << Name_Namelist_Group_Obj)| 
02677          (1 << Name_Statement_Func) |   (1 << Name_Construct) |
02678          (1 << Name_Module) |           (1 << Name_Blockdata) |
02679          (1 << Name_Program) |          (0 << Name_Function) |
02680          (1 << Name_Curr_Func) |        (1 << Name_Curr_Subr) |
02681          (1 << Name_Internal_Func) |    (1 << Name_Internal_Subr)),
02682 
02683         /*      Obj_Common_Obj          ie: COMMON // A */
02684 
02685         ((0 << Name_Variable) |         (1 << Name_Common_Obj) |
02686          (0 << Name_Cri_Pointer) |      (1 << Name_Dummy_Arg) |
02687          (1 << Name_Cri_Pointee) |      (1 << Name_Cri_Ch_Pointee) |
02688          (1 << Name_Func_Result) |      (1 << Name_Intrinsic_Func) |
02689          (1 << Name_Intrinsic_Subr) |   (1 << Name_Module_Proc) |
02690          (1 << Name_Module) |           (1 << Name_Blockdata) |
02691          (1 << Name_Program) |          (1 << Name_Function) |
02692          (1 << Name_Derived_Type) |     (1 << Name_Generic_Interface) |
02693          (1 << Name_Namelist_Group) |   (0 << Name_Namelist_Group_Obj)|
02694          (1 << Name_Statement_Func) |   (1 << Name_Construct) |
02695          (1 << Name_Curr_Func) |        (1 << Name_Curr_Subr) |
02696          (1 << Name_Internal_Func) |    (1 << Name_Internal_Subr)),
02697 
02698         /*      Obj_Namelist_Obj        ie: NAMELIST /G/ A        */
02699         /*  The namelist object could be referenced by this time. */
02700 
02701         ((0 << Name_Variable) |         (0 << Name_Common_Obj) |
02702          (0 << Name_Cri_Pointer) |      (0 << Name_Dummy_Arg) |
02703          (1 << Name_Cri_Pointee) |      (1 << Name_Cri_Ch_Pointee) |
02704          (0 << Name_Func_Result) |      (1 << Name_Intrinsic_Func) |
02705          (1 << Name_Intrinsic_Subr) |   (1 << Name_Module_Proc) |
02706          (1 << Name_Module) |           (1 << Name_Blockdata) |
02707          (1 << Name_Program) |          (1 << Name_Function) |
02708          (1 << Name_Derived_Type) |     (1 << Name_Generic_Interface) |
02709          (1 << Name_Namelist_Group) |   (0 << Name_Namelist_Group_Obj)|
02710          (1 << Name_Statement_Func) |   (1 << Name_Construct) |
02711          (1 << Name_Curr_Func) |        (1 << Name_Curr_Subr) |
02712          (1 << Name_Internal_Func) |    (1 << Name_Internal_Subr)),
02713 
02714         /*      Obj_Module_Proc         ie: MODULE PROCEDURE A  */
02715 
02716         ((1 << Name_Variable) |         (1 << Name_Common_Obj) |
02717          (1 << Name_Cri_Pointer) |      (1 << Name_Dummy_Arg) |
02718          (1 << Name_Cri_Pointee) |      (1 << Name_Cri_Ch_Pointee) |
02719          (1 << Name_Func_Result) |      (0 << Name_Intrinsic_Func) |
02720          (0 << Name_Intrinsic_Subr) |   (0 << Name_Module_Proc) |
02721          (1 << Name_Module) |           (1 << Name_Blockdata) |
02722          (1 << Name_Program) |          (1 << Name_Function) |
02723          (1 << Name_Derived_Type) |     (1 << Name_Generic_Interface) |
02724          (1 << Name_Namelist_Group) |   (1 << Name_Namelist_Group_Obj)|
02725          (1 << Name_Statement_Func) |   (1 << Name_Construct) |
02726          (1 << Name_Curr_Func) |        (1 << Name_Curr_Subr) |
02727          (1 << Name_Internal_Func) |    (1 << Name_Internal_Subr)),
02728 
02729         /*      Obj_Derived_Type                ie: TYPE A      */
02730 
02731         ((1 << Name_Variable) |         (1 << Name_Common_Obj) |
02732          (1 << Name_Cri_Pointer) |      (1 << Name_Dummy_Arg) |
02733          (1 << Name_Cri_Pointee) |      (1 << Name_Cri_Ch_Pointee) |
02734          (1 << Name_Func_Result) |      (1 << Name_Intrinsic_Func) |
02735          (1 << Name_Intrinsic_Subr) |   (1 << Name_Module_Proc) |
02736          (1 << Name_Module) |           (1 << Name_Blockdata) |
02737          (1 << Name_Program) |          (1 << Name_Function) |
02738          (1 << Name_Derived_Type) |     (1 << Name_Generic_Interface) |
02739          (1 << Name_Namelist_Group) |   (1 << Name_Namelist_Group_Obj)|
02740          (1 << Name_Statement_Func) |   (1 << Name_Construct) |
02741          (1 << Name_Curr_Func) |        (1 << Name_Curr_Subr) |
02742          (1 << Name_Internal_Func) |    (1 << Name_Internal_Subr)),
02743 
02744         /*      Obj_Generic_Interface   ie: INTERFACE A */
02745 
02746         ((1 << Name_Variable) |         (1 << Name_Common_Obj) |
02747          (1 << Name_Cri_Pointer) |      (1 << Name_Dummy_Arg) |
02748          (1 << Name_Cri_Pointee) |      (1 << Name_Cri_Ch_Pointee) |
02749          (1 << Name_Func_Result) |      (0 << Name_Intrinsic_Func) |
02750          (0 << Name_Intrinsic_Subr) |   (0 << Name_Module_Proc) |
02751          (1 << Name_Module) |           (1 << Name_Blockdata) |
02752          (1 << Name_Program) |          (0 << Name_Function) |
02753          (1 << Name_Derived_Type) |     (0 << Name_Generic_Interface) |
02754          (1 << Name_Namelist_Group) |   (1 << Name_Namelist_Group_Obj)|
02755          (1 << Name_Statement_Func) |   (1 << Name_Construct) |
02756          (1 << Name_Curr_Func) |        (1 << Name_Curr_Subr) |
02757          (1 << Name_Internal_Func) |    (1 << Name_Internal_Subr)),
02758 
02759         /*      Obj_Namelist_Grp        ie: NAMELIST /A/ B      */
02760 
02761         ((1 << Name_Variable) |         (1 << Name_Common_Obj) |
02762          (1 << Name_Cri_Pointer) |      (1 << Name_Dummy_Arg) |
02763          (1 << Name_Cri_Pointee) |      (1 << Name_Cri_Ch_Pointee) |
02764          (1 << Name_Func_Result) |      (1 << Name_Intrinsic_Func) |
02765          (1 << Name_Intrinsic_Subr) |   (1 << Name_Module_Proc) |
02766          (1 << Name_Module) |           (1 << Name_Blockdata) |
02767          (1 << Name_Program) |          (1 << Name_Function) |
02768          (1 << Name_Derived_Type) |     (1 << Name_Generic_Interface) |
02769          (0 << Name_Namelist_Group) |   (1 << Name_Namelist_Group_Obj)|
02770          (1 << Name_Statement_Func) |   (1 << Name_Construct) |
02771          (1 << Name_Curr_Func) |        (1 << Name_Curr_Subr) |
02772          (1 << Name_Internal_Func) |    (1 << Name_Internal_Subr)),
02773 
02774         /*      Obj_Stmt_Func           ie: A(XY) = ... */
02775 
02776         ((1 << Name_Variable) |         (1 << Name_Common_Obj) |
02777          (1 << Name_Cri_Pointer) |      (1 << Name_Dummy_Arg) |
02778          (1 << Name_Cri_Pointee) |      (1 << Name_Cri_Ch_Pointee) |
02779          (1 << Name_Func_Result) |      (1 << Name_Intrinsic_Func) |
02780          (1 << Name_Intrinsic_Subr) |   (1 << Name_Module_Proc) |
02781          (1 << Name_Module) |           (1 << Name_Blockdata) |
02782          (1 << Name_Program) |          (1 << Name_Function) |
02783          (1 << Name_Derived_Type) |     (1 << Name_Generic_Interface) |
02784          (1 << Name_Namelist_Group) |   (1 << Name_Namelist_Group_Obj)|
02785          (1 << Name_Statement_Func) |   (1 << Name_Construct) |
02786          (1 << Name_Curr_Func) |        (1 << Name_Curr_Subr) |
02787          (1 << Name_Internal_Func) |    (1 << Name_Internal_Subr)),
02788 
02789         /*      Obj_Construct           ie: A : IF (I.EQ.J) THEN        */
02790 
02791         ((1 << Name_Variable) |         (1 << Name_Common_Obj) |
02792          (1 << Name_Cri_Pointer) |      (1 << Name_Dummy_Arg) |
02793          (1 << Name_Cri_Pointee) |      (1 << Name_Cri_Ch_Pointee) |
02794          (1 << Name_Func_Result) |      (1 << Name_Intrinsic_Func) |
02795          (1 << Name_Intrinsic_Subr) |   (1 << Name_Module_Proc) |
02796          (1 << Name_Module) |           (1 << Name_Blockdata) |
02797          (1 << Name_Program) |          (1 << Name_Function) |
02798          (1 << Name_Derived_Type) |     (1 << Name_Generic_Interface) |
02799          (1 << Name_Namelist_Group) |   (1 << Name_Namelist_Group_Obj)|
02800          (1 << Name_Statement_Func) |   (1 << Name_Construct) |
02801          (1 << Name_Curr_Func) |        (1 << Name_Curr_Subr) |
02802          (1 << Name_Internal_Func) |    (1 << Name_Internal_Subr)),
02803 
02804         /*      Obj_Entry_Func          ie: ENTRY A     */
02805 
02806         ((1 << Name_Variable) |         (1 << Name_Common_Obj) |
02807          (1 << Name_Cri_Pointer) |      (1 << Name_Dummy_Arg) |
02808          (1 << Name_Cri_Pointee) |      (1 << Name_Cri_Ch_Pointee) |
02809          (1 << Name_Func_Result) |      (1 << Name_Intrinsic_Func) |
02810          (1 << Name_Intrinsic_Subr) |   (1 << Name_Module_Proc) |
02811          (1 << Name_Module) |           (1 << Name_Blockdata) |
02812          (1 << Name_Program) |          (0 << Name_Function) |
02813          (1 << Name_Derived_Type) |     (1 << Name_Generic_Interface) |
02814          (1 << Name_Namelist_Group) |   (1 << Name_Namelist_Group_Obj)|
02815          (1 << Name_Statement_Func) |   (1 << Name_Construct) |
02816          (1 << Name_Curr_Func) |        (1 << Name_Curr_Subr) |
02817          (1 << Name_Internal_Func) |    (1 << Name_Internal_Subr)),
02818 
02819         /*      Obj_Entry_Subr          ie: ENTRY A     */
02820 
02821         ((1 << Name_Variable) |         (1 << Name_Common_Obj) |
02822          (1 << Name_Cri_Pointer) |      (1 << Name_Dummy_Arg) |
02823          (1 << Name_Cri_Pointee) |      (1 << Name_Cri_Ch_Pointee) |
02824          (1 << Name_Func_Result) |      (1 << Name_Intrinsic_Func) |
02825          (1 << Name_Intrinsic_Subr) |   (1 << Name_Module_Proc) |
02826          (1 << Name_Module) |           (1 << Name_Blockdata) |
02827          (1 << Name_Program) |          (1 << Name_Function) |
02828          (1 << Name_Derived_Type) |     (1 << Name_Generic_Interface) |
02829          (1 << Name_Namelist_Group) |   (1 << Name_Namelist_Group_Obj)|
02830          (1 << Name_Statement_Func) |   (1 << Name_Construct) |
02831          (1 << Name_Curr_Func) |        (1 << Name_Curr_Subr) |
02832          (1 << Name_Internal_Func) |    (1 << Name_Internal_Subr)),
02833 
02834         /*      Obj_Intern_Func         ie: FUNCTION A()             */
02835         /* This can be a referenced variable, because of the forward */
02836         /* referencing problem.                                      */
02837 
02838         ((1 << Name_Variable) |         (1 << Name_Common_Obj) |
02839          (1 << Name_Cri_Pointer) |      (1 << Name_Dummy_Arg) |
02840          (1 << Name_Cri_Pointee) |      (1 << Name_Cri_Ch_Pointee) |
02841          (1 << Name_Func_Result) |      (0 << Name_Intrinsic_Func) |
02842          (0 << Name_Intrinsic_Subr) |   (1 << Name_Module_Proc) |
02843          (1 << Name_Module) |           (1 << Name_Blockdata) |
02844          (1 << Name_Program) |          (0 << Name_Function) |
02845          (1 << Name_Derived_Type) |     (1 << Name_Generic_Interface) |
02846          (1 << Name_Namelist_Group) |   (1 << Name_Namelist_Group_Obj)|
02847          (1 << Name_Statement_Func) |   (1 << Name_Construct) |
02848          (1 << Name_Curr_Func) |        (1 << Name_Curr_Subr) |
02849          (1 << Name_Internal_Func) |    (1 << Name_Internal_Subr)),
02850 
02851         /*      Obj_Intern_Subr         ie: SUBROUTINE A()      */
02852 
02853         ((1 << Name_Variable) |         (1 << Name_Common_Obj) |
02854          (1 << Name_Cri_Pointer) |      (1 << Name_Dummy_Arg) |
02855          (1 << Name_Cri_Pointee) |      (1 << Name_Cri_Ch_Pointee) |
02856          (1 << Name_Func_Result) |      (0 << Name_Intrinsic_Func) |
02857          (0 << Name_Intrinsic_Subr) |   (1 << Name_Module_Proc) |
02858          (1 << Name_Module) |           (1 << Name_Blockdata) |
02859          (1 << Name_Program) |          (1 << Name_Function) |
02860          (1 << Name_Derived_Type) |     (1 << Name_Generic_Interface) |
02861          (1 << Name_Namelist_Group) |   (1 << Name_Namelist_Group_Obj)|
02862          (1 << Name_Statement_Func) |   (1 << Name_Construct) |
02863          (1 << Name_Curr_Func) |        (1 << Name_Curr_Subr) |
02864          (1 << Name_Internal_Func) |    (1 << Name_Internal_Subr)),
02865 
02866         /*      Obj_Module_Func         ie: FUNCTION A()        */
02867 
02868         ((1 << Name_Variable) |         (1 << Name_Common_Obj) |
02869          (1 << Name_Cri_Pointer) |      (1 << Name_Dummy_Arg) |
02870          (1 << Name_Cri_Pointee) |      (1 << Name_Cri_Ch_Pointee) |
02871          (1 << Name_Func_Result) |      (0 << Name_Intrinsic_Func) |
02872          (0 << Name_Intrinsic_Subr) |   (0 << Name_Module_Proc) |
02873          (1 << Name_Module) |           (1 << Name_Blockdata) |
02874          (1 << Name_Program) |          (0 << Name_Function) |
02875          (1 << Name_Derived_Type) |     (0 << Name_Generic_Interface) |
02876          (1 << Name_Namelist_Group) |   (1 << Name_Namelist_Group_Obj)|
02877          (1 << Name_Statement_Func) |   (1 << Name_Construct) |
02878          (1 << Name_Curr_Func) |        (1 << Name_Curr_Subr) |
02879          (1 << Name_Internal_Func) |    (1 << Name_Internal_Subr)),
02880 
02881         /*      Obj_Module_Subr         ie: SUBROUTINE A()      */
02882 
02883         ((1 << Name_Variable) |         (1 << Name_Common_Obj) |
02884          (1 << Name_Cri_Pointer) |      (1 << Name_Dummy_Arg) |
02885          (1 << Name_Cri_Pointee) |      (1 << Name_Cri_Ch_Pointee) |
02886          (1 << Name_Func_Result) |      (0 << Name_Intrinsic_Func) |
02887          (0 << Name_Intrinsic_Subr) |   (0 << Name_Module_Proc) |
02888          (1 << Name_Module) |           (1 << Name_Blockdata) |
02889          (1 << Name_Program) |          (1 << Name_Function) |
02890          (1 << Name_Derived_Type) |     (0 << Name_Generic_Interface) |
02891          (1 << Name_Namelist_Group) |   (1 << Name_Namelist_Group_Obj)|
02892          (1 << Name_Statement_Func) |   (1 << Name_Construct) |
02893          (1 << Name_Curr_Func) |        (1 << Name_Curr_Subr) |
02894          (1 << Name_Internal_Func) |    (1 << Name_Internal_Subr)),
02895 
02896         /*      Obj_Sf_Darg             ie: sfunc(A) =  */
02897 
02898         ((0 << Name_Variable) |         (0 << Name_Common_Obj) |
02899          (1 << Name_Cri_Pointer) |      (0 << Name_Dummy_Arg) |
02900          (0 << Name_Cri_Pointee) |      (1 << Name_Cri_Ch_Pointee) |
02901          (0 << Name_Func_Result) |      (1 << Name_Intrinsic_Func) |
02902          (1 << Name_Intrinsic_Subr) |   (1 << Name_Module_Proc) |
02903          (1 << Name_Module) |           (1 << Name_Blockdata) |
02904          (1 << Name_Program) |          (1 << Name_Function) |
02905          (1 << Name_Derived_Type) |     (1 << Name_Generic_Interface) |
02906          (1 << Name_Namelist_Group) |   (0 << Name_Namelist_Group_Obj)| 
02907          (1 << Name_Statement_Func) |   (1 << Name_Construct) |
02908          (1 << Name_Curr_Func) |        (1 << Name_Curr_Subr) |
02909          (1 << Name_Internal_Func) |    (1 << Name_Internal_Subr)),
02910 
02911         /*      Obj_Sf_Actual_Arg               ie: = sf(A)     */
02912 
02913         ((0 << Name_Variable) |         (0 << Name_Common_Obj) |
02914          (0 << Name_Cri_Pointer) |      (0 << Name_Dummy_Arg) |
02915          (0 << Name_Cri_Pointee) |      (0 << Name_Cri_Ch_Pointee) |
02916          (0 << Name_Func_Result) |      (1 << Name_Intrinsic_Func) |
02917          (1 << Name_Intrinsic_Subr) |   (1 << Name_Module_Proc) |
02918          (1 << Name_Module) |           (1 << Name_Blockdata) |
02919          (1 << Name_Program) |          (1 << Name_Function) |
02920          (1 << Name_Derived_Type) |     (1 << Name_Generic_Interface) |
02921          (1 << Name_Namelist_Group) |   (0 << Name_Namelist_Group_Obj)|
02922          (1 << Name_Statement_Func) |   (1 << Name_Construct) |
02923          (1 << Name_Curr_Func) |        (1 << Name_Curr_Subr) |
02924          (1 << Name_Internal_Func) |    (1 << Name_Internal_Subr)),
02925 
02926         /*  Obj_Var_Len_Ch              ie: CHARACTER*(N) A             */
02927         /*      This is added at end of pass1, so the variable          */
02928         /*      would be referenced by this time.                       */
02929 
02930         ((0 << Name_Variable) |         (1 << Name_Common_Obj) |
02931          (1 << Name_Cri_Pointer) |      (0 << Name_Dummy_Arg) |
02932 # if defined(_EXTENDED_CRI_CHAR_POINTER)
02933          (0 << Name_Cri_Pointee) |      (0 << Name_Cri_Ch_Pointee) |
02934 # else
02935          (1 << Name_Cri_Pointee) |      (1 << Name_Cri_Ch_Pointee) |
02936 # endif
02937          (0 << Name_Func_Result) |      (0 << Name_Intrinsic_Func) |
02938          (1 << Name_Intrinsic_Subr) |   (1 << Name_Module_Proc) |
02939          (1 << Name_Module) |           (1 << Name_Blockdata) |
02940          (1 << Name_Program) |          (0 << Name_Function) |
02941          (1 << Name_Derived_Type) |     (1 << Name_Generic_Interface) |
02942          (1 << Name_Namelist_Group) |   (1 << Name_Namelist_Group_Obj) |        
02943          (1 << Name_Statement_Func) |   (1 << Name_Construct) |
02944          (0 << Name_Curr_Func) |        (1 << Name_Curr_Subr) |
02945          (1 << Name_Internal_Func) |    (1 << Name_Internal_Subr)),
02946 
02947         /* Obj_Var_Len_Arr              ie: DIMENSION A(N)              */
02948         /*   This is added at end of pass1, so the variable would be    */
02949         /*      referenced by this time.                                */
02950 
02951         ((0 << Name_Variable) |         (1 << Name_Common_Obj) |
02952          (1 << Name_Cri_Pointer) |      (0 << Name_Dummy_Arg) |
02953 # if defined(_EXTENDED_CRI_CHAR_POINTER)
02954          (0 << Name_Cri_Pointee) |      (0 << Name_Cri_Ch_Pointee) |
02955 # else
02956          (0 << Name_Cri_Pointee) |      (1 << Name_Cri_Ch_Pointee) |
02957 # endif
02958          (0 << Name_Func_Result) |      (1 << Name_Intrinsic_Func) |
02959          (1 << Name_Intrinsic_Subr) |   (1 << Name_Module_Proc) |
02960          (1 << Name_Module) |           (1 << Name_Blockdata) |
02961          (1 << Name_Program) |          (0 << Name_Function) |
02962          (1 << Name_Derived_Type) |     (1 << Name_Generic_Interface) |
02963          (1 << Name_Namelist_Group) |   (1 << Name_Namelist_Group_Obj)| 
02964          (1 << Name_Statement_Func) |   (1 << Name_Construct) |
02965          (0 << Name_Curr_Func) |        (1 << Name_Curr_Subr) |
02966          (1 << Name_Internal_Func) |    (1 << Name_Internal_Subr)),
02967 
02968         /*      Obj_Sym_Constant_Array  ie: DIMENSION A(N$PES)  */
02969 
02970         ((0 << Name_Variable) |         (0 << Name_Common_Obj) |
02971          (1 << Name_Cri_Pointer) |      (0 << Name_Dummy_Arg) |
02972          (0 << Name_Cri_Pointee) |      (0 << Name_Cri_Ch_Pointee) |
02973          (0 << Name_Func_Result) |      (1 << Name_Intrinsic_Func) |
02974          (1 << Name_Intrinsic_Subr) |   (1 << Name_Module_Proc) |
02975          (1 << Name_Derived_Type) |     (1 << Name_Generic_Interface) |
02976          (1 << Name_Namelist_Group) |   (1 << Name_Namelist_Group_Obj)|
02977          (1 << Name_Statement_Func) |   (1 << Name_Construct) |
02978          (1 << Name_Module) |           (1 << Name_Blockdata) |
02979          (1 << Name_Program) |          (0 << Name_Function) |
02980          (0 << Name_Curr_Func) |        (1 << Name_Curr_Subr) |
02981          (1 << Name_Internal_Func) |    (1 << Name_Internal_Subr)),
02982 
02983         /*      Obj_Interface_Func      ie: FUNCTION ABC()      */
02984 
02985         ((1 << Name_Variable) |         (1 << Name_Common_Obj) |
02986          (1 << Name_Cri_Pointer) |      (0 << Name_Dummy_Arg) |
02987          (1 << Name_Cri_Pointee) |      (1 << Name_Cri_Ch_Pointee) |
02988          (1 << Name_Func_Result) |      (0 << Name_Intrinsic_Func) |
02989          (1 << Name_Intrinsic_Subr) |   (1 << Name_Module_Proc) |
02990          (1 << Name_Module) |           (1 << Name_Blockdata) |
02991          (1 << Name_Program) |          (0 << Name_Function) |
02992          (1 << Name_Derived_Type) |     (1 << Name_Generic_Interface) |
02993          (1 << Name_Namelist_Group) |   (1 << Name_Namelist_Group_Obj)|
02994          (1 << Name_Statement_Func) |   (1 << Name_Construct) |
02995          (1 << Name_Curr_Func) |        (1 << Name_Curr_Subr) |
02996          (1 << Name_Internal_Func) |    (1 << Name_Internal_Subr)),
02997 
02998         /*      Obj_Interface_Subr      ie: SUBROUTINE ABC()    */
02999 
03000         ((1 << Name_Variable) |         (1 << Name_Common_Obj) |
03001          (1 << Name_Cri_Pointer) |      (0 << Name_Dummy_Arg) |
03002          (1 << Name_Cri_Pointee) |      (1 << Name_Cri_Ch_Pointee) |
03003          (1 << Name_Func_Result) |      (1 << Name_Intrinsic_Func) |
03004          (0 << Name_Intrinsic_Subr) |   (1 << Name_Module_Proc) |
03005          (1 << Name_Module) |           (1 << Name_Blockdata) |
03006          (1 << Name_Program) |          (1 << Name_Function) |
03007          (1 << Name_Derived_Type) |     (1 << Name_Generic_Interface) |
03008          (1 << Name_Namelist_Group) |   (1 << Name_Namelist_Group_Obj)|
03009          (1 << Name_Statement_Func) |   (1 << Name_Construct) |
03010          (1 << Name_Curr_Func) |        (1 << Name_Curr_Subr) |
03011          (1 << Name_Internal_Func) |    (1 << Name_Internal_Subr)),
03012 
03013         /*      Obj_Use_Extern_Func     ie: B = A()     */
03014 
03015         ((1 << Name_Variable) |         (1 << Name_Common_Obj) |
03016          (1 << Name_Cri_Pointer) |      (0 << Name_Dummy_Arg) |
03017          (1 << Name_Cri_Pointee) |      (1 << Name_Cri_Ch_Pointee) |
03018          (1 << Name_Func_Result) |      (0 << Name_Intrinsic_Func) |
03019          (1 << Name_Intrinsic_Subr) |   (0 << Name_Module_Proc) |
03020          (1 << Name_Module) |           (1 << Name_Blockdata) |
03021          (1 << Name_Program) |          (0 << Name_Function) |
03022          (1 << Name_Derived_Type) |     (0 << Name_Generic_Interface) |
03023          (1 << Name_Namelist_Group) |   (1 << Name_Namelist_Group_Obj)|
03024          (1 << Name_Statement_Func) |   (1 << Name_Construct) |
03025          (0 << Name_Curr_Func) |        (1 << Name_Curr_Subr) |
03026          (1 << Name_Internal_Func) |    (1 << Name_Internal_Subr)),
03027 
03028         /*      Obj_Use_Extern_Subr     ie: CALL A()    */
03029 
03030         ((1 << Name_Variable) |         (1 << Name_Common_Obj) |
03031          (1 << Name_Cri_Pointer) |      (0 << Name_Dummy_Arg) |
03032          (1 << Name_Cri_Pointee) |      (1 << Name_Cri_Ch_Pointee) |
03033          (1 << Name_Func_Result) |      (1 << Name_Intrinsic_Func) |
03034          (0 << Name_Intrinsic_Subr) |   (0 << Name_Module_Proc) |
03035          (1 << Name_Module) |           (1 << Name_Blockdata) |
03036          (1 << Name_Program) |          (1 << Name_Function) |
03037          (1 << Name_Derived_Type) |     (0 << Name_Generic_Interface) |
03038          (1 << Name_Namelist_Group) |   (1 << Name_Namelist_Group_Obj)|
03039          (1 << Name_Statement_Func) |   (1 << Name_Construct) |
03040          (1 << Name_Curr_Func) |        (0 << Name_Curr_Subr) |
03041          (1 << Name_Internal_Func) |    (1 << Name_Internal_Subr)),
03042 
03043         /*      Obj_Use_In_Expr         ie: X = A + B   */
03044 
03045         ((0 << Name_Variable) |         (0 << Name_Common_Obj) |
03046          (0 << Name_Cri_Pointer) |      (0 << Name_Dummy_Arg) |
03047          (0 << Name_Cri_Pointee) |      (0 << Name_Cri_Ch_Pointee) |
03048          (0 << Name_Func_Result) |      (0 << Name_Intrinsic_Func) |
03049          (1 << Name_Intrinsic_Subr) |   (0 << Name_Module_Proc) |
03050          (1 << Name_Module) |           (1 << Name_Blockdata) |
03051          (1 << Name_Program) |          (0 << Name_Function) |
03052          (1 << Name_Derived_Type) |     (0 << Name_Generic_Interface) |
03053          (1 << Name_Namelist_Group) |   (0 << Name_Namelist_Group_Obj)|
03054          (0 << Name_Statement_Func) |   (1 << Name_Construct) |
03055          (0 << Name_Curr_Func) |        (1 << Name_Curr_Subr) |
03056          (0 << Name_Internal_Func) |    (1 << Name_Internal_Subr)),
03057 
03058         /*      Obj_Use_Derived_Type    ie: TYPE (A)    */
03059 
03060         ((1 << Name_Variable) |         (1 << Name_Common_Obj) |
03061          (1 << Name_Cri_Pointer) |      (1 << Name_Dummy_Arg) |
03062          (1 << Name_Cri_Pointee) |      (1 << Name_Cri_Ch_Pointee) |
03063          (1 << Name_Func_Result) |      (1 << Name_Intrinsic_Func) |
03064          (1 << Name_Intrinsic_Subr) |   (1 << Name_Module_Proc) |
03065          (1 << Name_Module) |           (1 << Name_Blockdata) |
03066          (1 << Name_Program) |          (1 << Name_Function) |
03067          (0 << Name_Derived_Type) |     (1 << Name_Generic_Interface) |
03068          (1 << Name_Namelist_Group) |   (1 << Name_Namelist_Group_Obj)|
03069          (1 << Name_Statement_Func) |   (1 << Name_Construct) |
03070          (1 << Name_Curr_Func) |        (1 << Name_Curr_Subr) |
03071          (1 << Name_Internal_Func) |    (1 << Name_Internal_Subr)),
03072 
03073         /*      Obj_Use_Spec_Expr       ie: DIMENSION I(A) */
03074 
03075         ((0 << Name_Variable) |         (0 << Name_Common_Obj) |                
03076          (1 << Name_Cri_Pointer) |      (0 << Name_Dummy_Arg) |
03077          (1 << Name_Cri_Pointee) |      (1 << Name_Cri_Ch_Pointee) |
03078          (1 << Name_Func_Result) |      (0 << Name_Intrinsic_Func) |
03079          (1 << Name_Intrinsic_Subr) |   (1 << Name_Module_Proc) |
03080          (1 << Name_Derived_Type) |     (1 << Name_Generic_Interface) |
03081          (1 << Name_Namelist_Group) |   (0 << Name_Namelist_Group_Obj)|
03082          (1 << Name_Statement_Func) |   (1 << Name_Construct) |
03083          (1 << Name_Module) |           (1 << Name_Blockdata) |
03084          (1 << Name_Program) |          (0 << Name_Function) |
03085          (1 << Name_Curr_Func) |        (1 << Name_Curr_Subr) |
03086          (1 << Name_Internal_Func) |    (1 << Name_Internal_Subr)),
03087 
03088         /*      Obj_Use_Init_Expr       ie: PARAMETER (I=A)     */
03089 
03090         ((0 << Name_Variable) |         (1 << Name_Common_Obj) |
03091          (1 << Name_Cri_Pointer) |      (1 << Name_Dummy_Arg) |
03092          (1 << Name_Cri_Pointee) |      (1 << Name_Cri_Ch_Pointee) |
03093          (1 << Name_Func_Result) |      (0 << Name_Intrinsic_Func) |
03094          (1 << Name_Intrinsic_Subr) |   (1 << Name_Module_Proc) |
03095          (1 << Name_Derived_Type) |     (1 << Name_Generic_Interface) |
03096          (1 << Name_Namelist_Group) |   (1 << Name_Namelist_Group_Obj)|
03097          (1 << Name_Statement_Func) |   (1 << Name_Construct) |
03098          (1 << Name_Module) |           (1 << Name_Blockdata) |
03099          (1 << Name_Program) |          (0 << Name_Function) |
03100          (1 << Name_Curr_Func) |        (1 << Name_Curr_Subr) |
03101          (1 << Name_Internal_Func) |    (1 << Name_Internal_Subr))
03102 
03103         };
03104 
03105 
03106 long    obj_to_other[Obj_Done]  =       {
03107 
03108         /* NOTE: An internal function/subroutine can be called in an outer   */
03109         /*      scope before it is defined as an in