Open64 (mfef90, whirl2f, and IR tools)  TAG: version-openad; SVN changeset: 916
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 internal procedure.    This */
03110         /*      is handled by using Other_Curr_Func when you're actually in  */
03111         /*      the routine declaring the FUNCTION.  Outside of the routine  */
03112         /*      you cannot declare anything for the internal function.       */
03113 
03114         /*      Obj_Assum_Type_Ch               ie: CHARACTER*(*) A     */
03115 
03116         ((0 << Other_Var_Len_Ch) |
03117          (0 << Other_Var_Len_Arr) |
03118          (0 << Other_Use_Func) |
03119          (1 << Other_Use_Subr) |
03120          (1 << Other_Expl_Interface) |
03121          (0 << Other_Use_Variable) |
03122          (0 << Other_Use_Dummy_Arg) |
03123          (1 << Other_Host_Assoc) |
03124          (1 << Other_Use_Assoc) |
03125          (0 << Other_Use_Char_Rslt) |
03126          (1 << Other_Not_Visible) |
03127          (1 << Other_Npes)),
03128 
03129         /*      Obj_Expl_Shp_Arr                ie: DIMENSION A (1)     */
03130 
03131         ((0 << Other_Var_Len_Ch) |
03132          (1 << Other_Var_Len_Arr) |
03133          (1 << Other_Use_Func) |
03134          (1 << Other_Use_Subr) |
03135          (1 << Other_Expl_Interface) |
03136          (1 << Other_Use_Variable) |
03137          (1 << Other_Use_Dummy_Arg) |
03138          (1 << Other_Host_Assoc) |
03139          (1 << Other_Use_Assoc) |
03140          (0 << Other_Use_Char_Rslt) |
03141          (1 << Other_Not_Visible) |
03142          (1 << Other_Npes)),
03143 
03144         /*      Obj_Assum_Size_Arr              ie: DIMENSION A(*)      */
03145 
03146         ((0 << Other_Var_Len_Ch) |
03147          (1 << Other_Var_Len_Arr) |
03148          (1 << Other_Use_Func) |                
03149          (1 << Other_Use_Subr) |
03150          (1 << Other_Expl_Interface) |
03151          (1 << Other_Use_Variable) |
03152          (1 << Other_Use_Dummy_Arg) |
03153          (1 << Other_Host_Assoc) |
03154          (1 << Other_Use_Assoc) |
03155          (0 << Other_Use_Char_Rslt) |
03156          (1 << Other_Not_Visible) |
03157          (1 << Other_Npes)),
03158 
03159         /*      Obj_Defrd_Shp_Arr               ie: DIMENSION A(:)      */
03160 
03161         ((0 << Other_Var_Len_Ch) |
03162          (1 << Other_Var_Len_Arr) |
03163          (1 << Other_Use_Func) |
03164          (1 << Other_Use_Subr) |
03165          (1 << Other_Expl_Interface) |
03166          (1 << Other_Use_Variable) |
03167          (1 << Other_Use_Dummy_Arg) |
03168          (1 << Other_Host_Assoc) |
03169          (1 << Other_Use_Assoc) |
03170          (0 << Other_Use_Char_Rslt) |
03171          (1 << Other_Not_Visible) |
03172          (1 << Other_Npes)),
03173 
03174         /*      Obj_Assum_Shp_Arr               ie: DIMENSION A (1:)    */
03175 
03176         ((0 << Other_Var_Len_Ch) |
03177          (1 << Other_Var_Len_Arr) |
03178          (1 << Other_Use_Func) |
03179          (1 << Other_Use_Subr) |
03180          (1 << Other_Expl_Interface) |
03181          (1 << Other_Use_Variable) |
03182          (1 << Other_Use_Dummy_Arg) |
03183          (1 << Other_Host_Assoc) |
03184          (1 << Other_Use_Assoc) |
03185          (0 << Other_Use_Char_Rslt) |
03186          (1 << Other_Not_Visible) |
03187          (1 << Other_Npes)),
03188 
03189         /*      Obj_Co_Array            ie: DIMENSION A[3,4]    */
03190 
03191         ((0 << Other_Var_Len_Ch) |
03192          (0 << Other_Var_Len_Arr) |
03193          (1 << Other_Use_Func) |
03194          (1 << Other_Use_Subr) |
03195          (1 << Other_Expl_Interface) |
03196          (0 << Other_Use_Variable) |
03197          (0 << Other_Use_Dummy_Arg) |
03198          (0 << Other_Host_Assoc) |
03199          (0 << Other_Use_Assoc) |
03200          (0 << Other_Use_Char_Rslt) |
03201          (1 << Other_Not_Visible) |
03202          (1 << Other_Npes)),
03203 
03204         /*      Obj_Allocatable         ie: ALLOCATABLE A(:)    */
03205 
03206         ((0 << Other_Var_Len_Ch) |
03207          (1 << Other_Var_Len_Arr) |
03208          (1 << Other_Use_Func) |
03209          (1 << Other_Use_Subr) |
03210          (1 << Other_Expl_Interface) |
03211          (1 << Other_Use_Variable) |
03212          (1 << Other_Use_Dummy_Arg) |
03213          (1 << Other_Host_Assoc) |
03214          (1 << Other_Use_Assoc) |
03215          (0 << Other_Use_Char_Rslt) |
03216          (1 << Other_Not_Visible) |
03217          (1 << Other_Npes)),
03218 
03219         /*      Obj_Constant            ie: PARAMETER (A=1.0)   */
03220 
03221         ((1 << Other_Var_Len_Ch) |
03222          (1 << Other_Var_Len_Arr) |
03223          (1 << Other_Use_Func) |
03224          (1 << Other_Use_Subr) |
03225          (1 << Other_Expl_Interface) |
03226          (0 << Other_Use_Variable) |
03227          (1 << Other_Use_Dummy_Arg) |
03228          (1 << Other_Host_Assoc) |
03229          (1 << Other_Use_Assoc) |
03230          (0 << Other_Use_Char_Rslt) |
03231          (1 << Other_Not_Visible) |
03232          (1 << Other_Npes)),
03233 
03234         /*      Obj_Intent              ie: INTENT (IN) A       */
03235 
03236         ((0 << Other_Var_Len_Ch) |              
03237          (0 << Other_Var_Len_Arr) |
03238          (1 << Other_Use_Func) |
03239          (1 << Other_Use_Subr) |
03240          (1 << Other_Expl_Interface) |
03241          (0 << Other_Use_Variable) |
03242          (0 << Other_Use_Dummy_Arg) |
03243          (1 << Other_Host_Assoc) |
03244          (1 << Other_Use_Assoc) |
03245          (0 << Other_Use_Char_Rslt) |
03246          (1 << Other_Not_Visible) |
03247          (1 << Other_Npes)),
03248 
03249         /*      Obj_Optional            ie: OPTIONAL A  */
03250 
03251         ((0 << Other_Var_Len_Ch) |
03252          (0 << Other_Var_Len_Arr) |
03253          (0 << Other_Use_Func) |        
03254          (1 << Other_Use_Subr) |
03255          (0 << Other_Expl_Interface) |
03256          (0 << Other_Use_Variable) |
03257          (0 << Other_Use_Dummy_Arg) |
03258          (1 << Other_Host_Assoc) |
03259          (1 << Other_Use_Assoc) |
03260          (0 << Other_Use_Char_Rslt) |
03261          (1 << Other_Not_Visible) |
03262          (1 << Other_Npes)),
03263 
03264         /*      Obj_Private                     ie: PRIVATE A   */
03265 
03266         ((0 << Other_Var_Len_Ch) |
03267          (0 << Other_Var_Len_Arr) |
03268          (0 << Other_Use_Func) |        
03269          (1 << Other_Use_Subr) |
03270          (0 << Other_Expl_Interface) |  
03271          (0 << Other_Use_Variable) |
03272          (0 << Other_Use_Dummy_Arg) |
03273          (1 << Other_Host_Assoc) |
03274          (0 << Other_Use_Assoc) |
03275          (0 << Other_Use_Char_Rslt) |
03276          (1 << Other_Not_Visible) |
03277          (1 << Other_Npes)),
03278 
03279         /*      Obj_Public                      ie: PUBLIC A    */
03280 
03281         ((0 << Other_Var_Len_Ch) |
03282          (0 << Other_Var_Len_Arr) |
03283          (0 << Other_Use_Func) |
03284          (1 << Other_Use_Subr) |
03285          (0 << Other_Expl_Interface) |
03286          (0 << Other_Use_Variable) |
03287          (0 << Other_Use_Dummy_Arg) |
03288          (1 << Other_Host_Assoc) |
03289          (0 << Other_Use_Assoc) |
03290          (0 << Other_Use_Char_Rslt) |
03291          (1 << Other_Not_Visible) |
03292          (1 << Other_Npes)),
03293 
03294         /*      Obj_Target                      ie: TARGET A    */
03295 
03296         ((0 << Other_Var_Len_Ch) |      
03297          (0 << Other_Var_Len_Arr) |
03298          (0 << Other_Use_Func) |        
03299          (1 << Other_Use_Subr) |
03300          (1 << Other_Expl_Interface) |
03301          (0 << Other_Use_Variable) |
03302          (0 << Other_Use_Dummy_Arg) |
03303          (1 << Other_Host_Assoc) |
03304          (1 << Other_Use_Assoc) |
03305          (0 << Other_Use_Char_Rslt) |
03306          (1 << Other_Not_Visible) |
03307          (1 << Other_Npes)),
03308 
03309         /*      Obj_Equiv                       ie: EQUIVALENCE (AB)    */
03310 
03311         ((1 << Other_Var_Len_Ch) |              
03312          (1 << Other_Var_Len_Arr) |
03313          (1 << Other_Use_Func) |        
03314          (1 << Other_Use_Subr) |
03315          (1 << Other_Expl_Interface) |
03316          (0 << Other_Use_Variable) |
03317          (0 << Other_Use_Dummy_Arg) |
03318          (1 << Other_Host_Assoc) |
03319          (1 << Other_Use_Assoc) |
03320          (0 << Other_Use_Char_Rslt) |
03321          (1 << Other_Not_Visible) |
03322          (1 << Other_Npes)),
03323 
03324         /*      Obj_Saved                       ie: SAVE A      */
03325 
03326         ((1 << Other_Var_Len_Ch) |
03327          (1 << Other_Var_Len_Arr) |
03328          (1 << Other_Use_Func) |
03329          (1 << Other_Use_Subr) |        
03330          (1 << Other_Expl_Interface) |
03331          (0 << Other_Use_Variable) |
03332          (0 << Other_Use_Dummy_Arg) |
03333          (1 << Other_Host_Assoc) |
03334          (1 << Other_Use_Assoc) |
03335          (0 << Other_Use_Char_Rslt) |
03336          (1 << Other_Not_Visible) |
03337          (1 << Other_Npes)),
03338 
03339         /*      Obj_Automatic                   ie: AUTOMATIC A */
03340 
03341         ((1 << Other_Var_Len_Ch) |
03342          (1 << Other_Var_Len_Arr) |
03343          (0 << Other_Use_Func) |
03344          (1 << Other_Use_Subr) |        
03345          (0 << Other_Expl_Interface) |
03346          (0 << Other_Use_Variable) |
03347          (1 << Other_Use_Dummy_Arg) |
03348          (0 << Other_Host_Assoc) |
03349          (1 << Other_Use_Assoc) |
03350          (0 << Other_Use_Char_Rslt) |
03351          (1 << Other_Not_Visible) |
03352          (1 << Other_Npes)),
03353 
03354         /*      Obj_Pointer                     ie: POINTER :: A        */
03355 
03356         ((0 << Other_Var_Len_Ch) |      
03357          (1 << Other_Var_Len_Arr) |
03358          (0 << Other_Use_Func) |        
03359          (1 << Other_Use_Subr) |
03360          (1 << Other_Expl_Interface) |
03361          (0 << Other_Use_Variable) |
03362          (0 << Other_Use_Dummy_Arg) |
03363          (1 << Other_Host_Assoc) |
03364          (1 << Other_Use_Assoc) |
03365          (0 << Other_Use_Char_Rslt) |
03366          (1 << Other_Not_Visible) |
03367          (1 << Other_Npes)),
03368 
03369         /*      Obj_Dcl_Extern          ie: EXTERNAL A  */
03370 
03371         ((1 << Other_Var_Len_Ch) |
03372          (1 << Other_Var_Len_Arr) |
03373          (0 << Other_Use_Func) |        
03374          (1 << Other_Use_Subr) |
03375          (1 << Other_Expl_Interface) |
03376          (0 << Other_Use_Variable) |
03377          (0 << Other_Use_Dummy_Arg) |
03378          (1 << Other_Host_Assoc) |
03379          (1 << Other_Use_Assoc) |
03380          (0 << Other_Use_Char_Rslt) |
03381          (1 << Other_Not_Visible) |
03382          (1 << Other_Npes)),
03383 
03384         /*      Obj_Dcl_Intrin          ie: INTRINSIC A */
03385 
03386         ((1 << Other_Var_Len_Ch) |
03387          (1 << Other_Var_Len_Arr) |
03388          (0 << Other_Use_Func) |        
03389          (1 << Other_Use_Subr) |
03390          (1 << Other_Expl_Interface) |
03391          (1 << Other_Use_Variable) |
03392          (1 << Other_Use_Dummy_Arg) |
03393          (1 << Other_Host_Assoc) |
03394          (1 << Other_Use_Assoc) |
03395          (0 << Other_Use_Char_Rslt) |
03396          (1 << Other_Not_Visible) |
03397          (1 << Other_Npes)),
03398 
03399         /*      Obj_Data_Init           ie: DATA A /1.0/        */
03400 
03401         ((1 << Other_Var_Len_Ch) |
03402          (1 << Other_Var_Len_Arr) |     
03403          (1 << Other_Use_Func) |
03404          (1 << Other_Use_Subr) |
03405          (1 << Other_Expl_Interface) |
03406          (0 << Other_Use_Variable) |
03407          (0 << Other_Use_Dummy_Arg) |
03408          (1 << Other_Host_Assoc) |
03409          (1 << Other_Use_Assoc) |
03410          (0 << Other_Use_Char_Rslt) |
03411          (1 << Other_Not_Visible) |
03412          (1 << Other_Npes)),
03413 
03414         /*      Obj_Typed                       ie: INTEGER A   */
03415 
03416         ((0 << Other_Var_Len_Ch) |
03417          (0 << Other_Var_Len_Arr) |     
03418          (0 << Other_Use_Func) |
03419          (1 << Other_Use_Subr) |
03420          (1 << Other_Expl_Interface) |
03421          (0 << Other_Use_Variable) |
03422          (0 << Other_Use_Dummy_Arg) |
03423          (1 << Other_Host_Assoc) |
03424          (1 << Other_Use_Assoc) |
03425          (0 << Other_Use_Char_Rslt) |
03426          (1 << Other_Not_Visible) |
03427          (1 << Other_Npes)),
03428 
03429         /*      Obj_Volatile                    ie: VOLATILE A  */
03430 
03431         ((0 << Other_Var_Len_Ch) |
03432          (0 << Other_Var_Len_Arr) |     
03433          (1 << Other_Use_Func) |
03434          (1 << Other_Use_Subr) |
03435          (1 << Other_Expl_Interface) |
03436          (0 << Other_Use_Variable) |
03437          (0 << Other_Use_Dummy_Arg) |
03438          (1 << Other_Host_Assoc) |
03439          (1 << Other_Use_Assoc) |
03440          (0 << Other_Use_Char_Rslt) |
03441          (1 << Other_Not_Visible) |
03442          (1 << Other_Npes)),
03443 
03444 
03445         /*      Obj_Copy_Assumed_Shape  ie: !DIR$ COPY_ASSUMED_SHAPE A  */
03446 
03447         ((0 << Other_Var_Len_Ch) |
03448          (1 << Other_Var_Len_Arr) |
03449          (1 << Other_Use_Func) |
03450          (1 << Other_Use_Subr) |
03451          (1 << Other_Expl_Interface) |
03452          (1 << Other_Use_Variable) |
03453          (1 << Other_Use_Dummy_Arg) |
03454          (1 << Other_Host_Assoc) |
03455          (1 << Other_Use_Assoc) |
03456          (1 << Other_Use_Char_Rslt) |
03457          (1 << Other_Not_Visible) |
03458          (1 << Other_Npes)),
03459 
03460         /*      Obj_Auxiliary           ie: !DIR$ AUXILIARY A   */
03461 
03462         ((1 << Other_Var_Len_Ch) |      
03463          (0 << Other_Var_Len_Arr) |
03464          (1 << Other_Use_Func) |
03465          (1 << Other_Use_Subr) |
03466          (1 << Other_Expl_Interface) |
03467          (0 << Other_Use_Variable) |
03468          (0 << Other_Use_Dummy_Arg) |
03469          (1 << Other_Host_Assoc) |
03470          (1 << Other_Use_Assoc) |
03471          (0 << Other_Use_Char_Rslt) |
03472          (1 << Other_Not_Visible) |
03473          (1 << Other_Npes)),
03474 
03475         /*      Obj_Vfunction           ie: !DIR$ VFUNCTION A   */
03476 
03477         ((1 << Other_Var_Len_Ch) |
03478          (1 << Other_Var_Len_Arr) |     
03479          (0 << Other_Use_Func) |
03480          (1 << Other_Use_Subr) |
03481          (1 << Other_Expl_Interface) |
03482          (1 << Other_Use_Variable) |
03483          (1 << Other_Use_Dummy_Arg) |
03484          (1 << Other_Host_Assoc) |
03485          (1 << Other_Use_Assoc) |
03486          (1 << Other_Use_Char_Rslt) |
03487          (1 << Other_Not_Visible) |
03488          (1 << Other_Npes)),
03489 
03490         /*      Obj_No_Side_Effects     ie: !DIR$ NOSIDEEFFECTS A */
03491 
03492         ((1 << Other_Var_Len_Ch) |
03493          (0 << Other_Var_Len_Arr) |     
03494          (0 << Other_Use_Func) |
03495          (0 << Other_Use_Subr) |
03496          (1 << Other_Expl_Interface) |
03497          (1 << Other_Use_Variable) |
03498          (1 << Other_Use_Dummy_Arg) |
03499          (1 << Other_Host_Assoc) |
03500          (1 << Other_Use_Assoc) |
03501          (1 << Other_Use_Char_Rslt) |
03502          (1 << Other_Not_Visible) |
03503          (1 << Other_Npes)),
03504 
03505         /*      Obj_Symmetric           ie: !DIR$ SYMMETRIC A */
03506 
03507         ((0 << Other_Var_Len_Ch) |
03508          (0 << Other_Var_Len_Arr) |     
03509          (1 << Other_Use_Func) |
03510          (1 << Other_Use_Subr) |
03511          (1 << Other_Expl_Interface) |
03512          (0 << Other_Use_Variable) |
03513          (1 << Other_Use_Dummy_Arg) |
03514          (1 << Other_Host_Assoc) |
03515          (1 << Other_Use_Assoc) |
03516          (1 << Other_Use_Char_Rslt) |
03517          (1 << Other_Not_Visible) |
03518          (1 << Other_Npes)),
03519 
03520         /*      Obj_Inline              ie: !DIR$ INLINE ALWAYS/NEVER A */
03521 
03522         ((0 << Other_Var_Len_Ch) |
03523          (0 << Other_Var_Len_Arr) |     
03524          (0 << Other_Use_Func) |
03525          (0 << Other_Use_Subr) |
03526          (0 << Other_Expl_Interface) |
03527          (1 << Other_Use_Variable) |
03528          (1 << Other_Use_Dummy_Arg) |
03529          (1 << Other_Host_Assoc) |
03530          (0 << Other_Use_Assoc) |
03531          (1 << Other_Use_Char_Rslt) |
03532          (1 << Other_Not_Visible) |
03533          (1 << Other_Npes)),
03534 
03535         /*      Obj_Ipa         ie: !*$* IPA */
03536 
03537         ((0 << Other_Var_Len_Ch) |
03538          (0 << Other_Var_Len_Arr) |     
03539          (0 << Other_Use_Func) |
03540          (0 << Other_Use_Subr) |
03541          (0 << Other_Expl_Interface) |
03542          (1 << Other_Use_Variable) |
03543          (1 << Other_Use_Dummy_Arg) |
03544          (1 << Other_Host_Assoc) |
03545          (0 << Other_Use_Assoc) |
03546          (1 << Other_Use_Char_Rslt) |
03547          (1 << Other_Not_Visible) |
03548          (1 << Other_Npes)),
03549 
03550         /*      Obj_Align_Symbol        ie: !*$* ALIGN_SYMBOL A */
03551 
03552         ((1 << Other_Var_Len_Ch) |
03553          (0 << Other_Var_Len_Arr) |     
03554          (1 << Other_Use_Func) |
03555          (1 << Other_Use_Subr) |
03556          (1 << Other_Expl_Interface) |
03557          (0 << Other_Use_Variable) |
03558          (1 << Other_Use_Dummy_Arg) |
03559          (1 << Other_Host_Assoc) |
03560          (1 << Other_Use_Assoc) |
03561          (1 << Other_Use_Char_Rslt) |
03562          (1 << Other_Not_Visible) |
03563          (1 << Other_Npes)),
03564 
03565         /*      Obj_Fill_Symbol         ie: !*$* FILL_SYMBOL A */
03566 
03567         ((1 << Other_Var_Len_Ch) |
03568          (0 << Other_Var_Len_Arr) |     
03569          (1 << Other_Use_Func) |
03570          (1 << Other_Use_Subr) |
03571          (1 << Other_Expl_Interface) |
03572          (0 << Other_Use_Variable) |
03573          (1 << Other_Use_Dummy_Arg) |
03574          (1 << Other_Host_Assoc) |
03575          (1 << Other_Use_Assoc) |
03576          (1 << Other_Use_Char_Rslt) |
03577          (1 << Other_Not_Visible) |
03578          (1 << Other_Npes)),
03579 
03580         /*      Obj_Section_Gp          ie: !*$* SECTION_GP A */
03581 
03582         ((1 << Other_Var_Len_Ch) |
03583          (1 << Other_Var_Len_Arr) |     
03584          (1 << Other_Use_Func) |
03585          (1 << Other_Use_Subr) |
03586          (1 << Other_Expl_Interface) |
03587          (0 << Other_Use_Variable) |
03588          (1 << Other_Use_Dummy_Arg) |
03589          (1 << Other_Host_Assoc) |
03590          (1 << Other_Use_Assoc) |
03591          (1 << Other_Use_Char_Rslt) |
03592          (1 << Other_Not_Visible) |
03593          (1 << Other_Npes)),
03594 
03595         /*      Obj_Section_Non_Gp      ie: !*$* SECTION_NON_GP A */
03596 
03597         ((1 << Other_Var_Len_Ch) |
03598          (1 << Other_Var_Len_Arr) |     
03599          (1 << Other_Use_Func) |
03600          (1 << Other_Use_Subr) |
03601          (1 << Other_Expl_Interface) |
03602          (0 << Other_Use_Variable) |
03603          (1 << Other_Use_Dummy_Arg) |
03604          (1 << Other_Host_Assoc) |
03605          (1 << Other_Use_Assoc) |
03606          (1 << Other_Use_Char_Rslt) |
03607          (1 << Other_Not_Visible) |
03608          (1 << Other_Npes)),
03609 
03610         /*      Obj_Ignore_TKR          ie: !DIR$ IGNORE_TKR darg */
03611 
03612         ((0 << Other_Var_Len_Ch) |
03613          (0 << Other_Var_Len_Arr) |
03614          (1 << Other_Use_Func) |        
03615          (1 << Other_Use_Subr) |
03616          (1 << Other_Expl_Interface) |
03617          (0 << Other_Use_Variable) |
03618          (0 << Other_Use_Dummy_Arg) |
03619          (1 << Other_Host_Assoc) |
03620          (1 << Other_Use_Assoc) |
03621          (0 << Other_Use_Char_Rslt) |
03622          (1 << Other_Not_Visible) |
03623          (1 << Other_Npes)),
03624 
03625         /*      Obj_Optional_Dir        ie: !*$* optional(darg) */
03626 
03627         ((1 << Other_Var_Len_Ch) |
03628          (1 << Other_Var_Len_Arr) |
03629          (0 << Other_Use_Func) |        
03630          (0 << Other_Use_Subr) |
03631          (0 << Other_Expl_Interface) |
03632          (1 << Other_Use_Variable) |
03633          (1 << Other_Use_Dummy_Arg) |
03634          (1 << Other_Host_Assoc) |
03635          (1 << Other_Use_Assoc) |
03636          (1 << Other_Use_Char_Rslt) |
03637          (1 << Other_Not_Visible) |
03638          (1 << Other_Npes)),
03639 
03640         /*      Obj_Name                ie: !DIR$ Name(Fort_name="ext_name") */
03641 
03642         ((1 << Other_Var_Len_Ch) |
03643          (1 << Other_Var_Len_Arr) |
03644          (0 << Other_Use_Func) |        
03645          (0 << Other_Use_Subr) |
03646          (1 << Other_Expl_Interface) |
03647          (1 << Other_Use_Variable) |
03648          (1 << Other_Use_Dummy_Arg) |
03649          (1 << Other_Host_Assoc) |
03650          (1 << Other_Use_Assoc) |
03651          (1 << Other_Use_Char_Rslt) |
03652          (1 << Other_Not_Visible) |
03653          (1 << Other_Npes)),
03654 
03655         /*      Obj_Cri_Ptr             ie: POINTER (A,B)       */
03656 
03657         ((0 << Other_Var_Len_Ch) |
03658          (1 << Other_Var_Len_Arr) |
03659          (1 << Other_Use_Func) |        
03660          (1 << Other_Use_Subr) |
03661          (1 << Other_Expl_Interface) |
03662          (1 << Other_Use_Variable) |
03663          (1 << Other_Use_Dummy_Arg) |
03664          (1 << Other_Host_Assoc) |
03665          (1 << Other_Use_Assoc) |
03666          (1 << Other_Use_Char_Rslt) |
03667          (1 << Other_Not_Visible) |
03668          (1 << Other_Npes)),
03669 
03670         /*      Obj_Cri_Pointee         ie: POINTER (B,A)       */
03671 
03672         ((1 << Other_Var_Len_Ch) |
03673          (0 << Other_Var_Len_Arr) |
03674          (1 << Other_Use_Func) |        
03675          (1 << Other_Use_Subr) |
03676          (1 << Other_Expl_Interface) |
03677          (1 << Other_Use_Variable) |
03678          (1 << Other_Use_Dummy_Arg) |
03679          (1 << Other_Host_Assoc) |
03680          (1 << Other_Use_Assoc) |
03681          (1 << Other_Use_Char_Rslt) |
03682          (1 << Other_Not_Visible) |
03683          (1 << Other_Npes)),
03684 
03685         /*      Obj_Cri_Ch_Pointee      ie: POINTER (B,A)       */
03686 
03687         ((1 << Other_Var_Len_Ch) |
03688          (1 << Other_Var_Len_Arr) |
03689          (1 << Other_Use_Func) |        
03690          (1 << Other_Use_Subr) |
03691          (1 << Other_Expl_Interface) |
03692          (1 << Other_Use_Variable) |
03693          (1 << Other_Use_Dummy_Arg) |
03694          (1 << Other_Host_Assoc) |
03695          (1 << Other_Use_Assoc) |
03696          (1 << Other_Use_Char_Rslt) |
03697          (1 << Other_Not_Visible) |
03698          (1 << Other_Npes)),
03699 
03700         /*      Obj_Ntry_Func_Result    ie: ENTRY ABC() RESULT A        */
03701 
03702         ((0 << Other_Var_Len_Ch) |
03703          (0 << Other_Var_Len_Arr) |
03704          (1 << Other_Use_Func) |        
03705          (1 << Other_Use_Subr) |
03706          (1 << Other_Expl_Interface) |
03707          (1 << Other_Use_Variable) |
03708          (1 << Other_Use_Dummy_Arg) |
03709          (1 << Other_Host_Assoc) |
03710          (1 << Other_Use_Assoc) |
03711          (1 << Other_Use_Char_Rslt) |
03712          (1 << Other_Not_Visible) |
03713          (1 << Other_Npes)),
03714 
03715         /*      Obj_Dummy_Arg           ie: FUNCTION ABC(A)     */
03716         /*                              ie: ENTRY ABC(A)        */
03717 
03718         ((0 << Other_Var_Len_Ch) |
03719          (0 << Other_Var_Len_Arr) |
03720          (0 << Other_Use_Func) |        
03721          (1 << Other_Use_Subr) |
03722          (0 << Other_Expl_Interface) |
03723          (0 << Other_Use_Variable) |
03724          (0 << Other_Use_Dummy_Arg) |
03725          (1 << Other_Host_Assoc) |
03726          (1 << Other_Use_Assoc) |
03727          (0 << Other_Use_Char_Rslt) |
03728          (1 << Other_Not_Visible) |
03729          (1 << Other_Npes)),
03730 
03731         /*      Obj_Common_Obj          ie: COMMON // A */
03732 
03733         ((1 << Other_Var_Len_Ch) |
03734          (1 << Other_Var_Len_Arr) |
03735          (1 << Other_Use_Func) |        
03736          (1 << Other_Use_Subr) |
03737          (1 << Other_Expl_Interface) |
03738          (0 << Other_Use_Variable) |
03739          (0 << Other_Use_Dummy_Arg) |
03740          (0 << Other_Host_Assoc) |
03741          (1 << Other_Use_Assoc) |
03742          (0 << Other_Use_Char_Rslt) |
03743          (1 << Other_Not_Visible) |
03744          (1 << Other_Npes)),
03745 
03746         /*      Obj_Namelist_Obj        ie: NAMELIST /G/ A      */
03747 
03748         ((1 << Other_Var_Len_Ch) |
03749          (1 << Other_Var_Len_Arr) |
03750          (1 << Other_Use_Func) |        
03751          (1 << Other_Use_Subr) |
03752          (1 << Other_Expl_Interface) |
03753          (0 << Other_Use_Variable) |
03754          (0 << Other_Use_Dummy_Arg) |
03755          (0 << Other_Host_Assoc) |
03756          (0 << Other_Use_Assoc) |
03757          (0 << Other_Use_Char_Rslt) |
03758          (1 << Other_Not_Visible) |
03759          (1 << Other_Npes)),
03760 
03761         /*      Obj_Module_Proc         ie: MODULE PROCEDURE A  */
03762 
03763         ((1 << Other_Var_Len_Ch) |      
03764          (1 << Other_Var_Len_Arr) |
03765          (1 << Other_Use_Func) |        
03766          (1 << Other_Use_Subr) |
03767          (1 << Other_Expl_Interface) |
03768          (1 << Other_Use_Variable) |
03769          (1 << Other_Use_Dummy_Arg) |
03770          (1 << Other_Host_Assoc) |
03771          (0 << Other_Use_Assoc) |
03772          (0 << Other_Use_Char_Rslt) |
03773          (1 << Other_Not_Visible) |
03774          (1 << Other_Npes)),
03775 
03776         /*      Obj_Derived_Type                ie: TYPE A      */
03777 
03778         ((1 << Other_Var_Len_Ch) |
03779          (1 << Other_Var_Len_Arr) |
03780          (1 << Other_Use_Func) |        
03781          (1 << Other_Use_Subr) |
03782          (1 << Other_Expl_Interface) |
03783          (1 << Other_Use_Variable) |
03784          (1 << Other_Use_Dummy_Arg) |
03785          (1 << Other_Host_Assoc) |
03786          (1 << Other_Use_Assoc) |
03787          (1 << Other_Use_Char_Rslt) |
03788          (1 << Other_Not_Visible) |
03789          (1 << Other_Npes)),
03790 
03791         /*      Obj_Generic_Interface   ie: INTERFACE A */
03792 
03793         ((1 << Other_Var_Len_Ch) |
03794          (1 << Other_Var_Len_Arr) |
03795          (1 << Other_Use_Func) |        
03796          (1 << Other_Use_Subr) |
03797          (0 << Other_Expl_Interface) |
03798          (1 << Other_Use_Variable) |
03799          (1 << Other_Use_Dummy_Arg) |
03800          (1 << Other_Host_Assoc) |
03801          (0 << Other_Use_Assoc) |
03802          (0 << Other_Use_Char_Rslt) |
03803          (1 << Other_Not_Visible) |
03804          (1 << Other_Npes)),
03805 
03806         /*      Obj_Namelist_Grp                ie: NAMELIST /A/ B      */
03807 
03808         ((1 << Other_Var_Len_Ch) |
03809          (1 << Other_Var_Len_Arr) |     
03810          (1 << Other_Use_Func) |        
03811          (1 << Other_Use_Subr) |
03812          (1 << Other_Expl_Interface) |
03813          (1 << Other_Use_Variable) |
03814          (1 << Other_Use_Dummy_Arg) |
03815          (1 << Other_Host_Assoc) |
03816          (1 << Other_Use_Assoc) |
03817          (1 << Other_Use_Char_Rslt) |
03818          (1 << Other_Not_Visible) |
03819          (1 << Other_Npes)),
03820 
03821         /*      Obj_Stmt_Func           ie: A(XY) = ... */
03822 
03823         ((1 << Other_Var_Len_Ch) |
03824          (1 << Other_Var_Len_Arr) |
03825          (1 << Other_Use_Func) |        
03826          (1 << Other_Use_Subr) |
03827          (1 << Other_Expl_Interface) |
03828          (1 << Other_Use_Variable) |
03829          (1 << Other_Use_Dummy_Arg) |
03830          (1 << Other_Host_Assoc) |
03831          (1 << Other_Use_Assoc) |
03832          (0 << Other_Use_Char_Rslt) |
03833          (1 << Other_Not_Visible) |
03834          (1 << Other_Npes)),
03835 
03836         /*      Obj_Construct           ie: A : IF (I.EQ.J) THEN        */
03837 
03838         ((1 << Other_Var_Len_Ch) |
03839          (1 << Other_Var_Len_Arr) |
03840          (1 << Other_Use_Func) |        
03841          (1 << Other_Use_Subr) |
03842          (1 << Other_Expl_Interface) |
03843          (1 << Other_Use_Variable) |
03844          (1 << Other_Use_Dummy_Arg) |
03845          (1 << Other_Host_Assoc) |
03846          (1 << Other_Use_Assoc) |
03847          (1 << Other_Use_Char_Rslt) |
03848          (1 << Other_Not_Visible) |
03849          (1 << Other_Npes)),
03850 
03851         /*      Obj_Entry_Func          ie: ENTRY A     */
03852 
03853         ((0 << Other_Var_Len_Ch) |
03854          (0 << Other_Var_Len_Arr) |
03855          (0 << Other_Use_Func) |        
03856          (1 << Other_Use_Subr) |
03857          (1 << Other_Expl_Interface) |
03858          (1 << Other_Use_Variable) |
03859          (1 << Other_Use_Dummy_Arg) |
03860          (1 << Other_Host_Assoc) |
03861          (1 << Other_Use_Assoc) |
03862          (1 << Other_Use_Char_Rslt) |
03863          (1 << Other_Not_Visible) |
03864          (1 << Other_Npes)),
03865 
03866         /*      Obj_Entry_Subr          ie: ENTRY A     */
03867 
03868         ((1 << Other_Var_Len_Ch) |
03869          (1 << Other_Var_Len_Arr) |
03870          (1 << Other_Use_Func) |        
03871          (0 << Other_Use_Subr) |
03872          (1 << Other_Expl_Interface) |
03873          (1 << Other_Use_Variable) |
03874          (1 << Other_Use_Dummy_Arg) |
03875          (1 << Other_Host_Assoc) |
03876          (1 << Other_Use_Assoc) |
03877          (1 << Other_Use_Char_Rslt) |
03878          (1 << Other_Not_Visible) |
03879          (1 << Other_Npes)),
03880 
03881         /*      Obj_Intern_Func         ie: FUNCTION A()        */
03882 
03883         ((1 << Other_Var_Len_Ch) |
03884          (1 << Other_Var_Len_Arr) |
03885          (0 << Other_Use_Func) |        
03886          (1 << Other_Use_Subr) |
03887          (1 << Other_Expl_Interface) |
03888          (0 << Other_Use_Variable) |
03889          (0 << Other_Use_Dummy_Arg) |
03890          (0 << Other_Host_Assoc) |
03891          (1 << Other_Use_Assoc) |
03892          (0 << Other_Use_Char_Rslt) |
03893          (1 << Other_Not_Visible) |
03894          (1 << Other_Npes)),
03895 
03896         /*      Obj_Intern_Subr         ie: SUBROUTINE A()      */
03897 
03898         ((1 << Other_Var_Len_Ch) |
03899          (1 << Other_Var_Len_Arr) |
03900          (1 << Other_Use_Func) |        
03901          (0 << Other_Use_Subr) |
03902          (1 << Other_Expl_Interface) |
03903          (0 << Other_Use_Variable) |
03904          (0 << Other_Use_Dummy_Arg) |
03905          (0 << Other_Host_Assoc) |
03906          (1 << Other_Use_Assoc) |
03907          (1 << Other_Use_Char_Rslt) |
03908          (1 << Other_Not_Visible) |
03909          (1 << Other_Npes)),
03910 
03911         /*      Obj_Module_Func         ie: FUNCTION A()        */
03912 
03913         ((1 << Other_Var_Len_Ch) |
03914          (1 << Other_Var_Len_Arr) |
03915          (1 << Other_Use_Func) |        
03916          (1 << Other_Use_Subr) |
03917          (1 << Other_Expl_Interface) |
03918          (1 << Other_Use_Variable) |
03919          (1 << Other_Use_Dummy_Arg) |
03920          (1 << Other_Host_Assoc) |
03921          (1 << Other_Use_Assoc) |
03922          (0 << Other_Use_Char_Rslt) |
03923          (1 << Other_Not_Visible) |
03924          (1 << Other_Npes)),
03925 
03926         /*      Obj_Module_Subr         ie: SUBROUTINE A()      */
03927 
03928         ((1 << Other_Var_Len_Ch) |
03929          (1 << Other_Var_Len_Arr) |
03930          (1 << Other_Use_Func) |        
03931          (1 << Other_Use_Subr) |
03932          (1 << Other_Expl_Interface) |
03933          (1 << Other_Use_Variable) |
03934          (1 << Other_Use_Dummy_Arg) |
03935          (1 << Other_Host_Assoc) |
03936          (1 << Other_Use_Assoc) |
03937          (1 << Other_Use_Char_Rslt) |
03938          (1 << Other_Not_Visible) |
03939          (1 << Other_Npes)),
03940 
03941         /*      Obj_Sf_Darg                     ie: sfunc(A) =  */
03942 
03943         ((1 << Other_Var_Len_Ch) |
03944          (1 << Other_Var_Len_Arr) |
03945          (1 << Other_Use_Func) |        
03946          (1 << Other_Use_Subr) |
03947          (1 << Other_Expl_Interface) |
03948          (0 << Other_Use_Variable) |
03949          (0 << Other_Use_Dummy_Arg) |
03950          (0 << Other_Host_Assoc) |
03951          (0 << Other_Use_Assoc) |
03952          (0 << Other_Use_Char_Rslt) |
03953          (1 << Other_Not_Visible) |
03954          (1 << Other_Npes)),
03955 
03956         /*      Obj_Sf_Actual_Arg               ie: = sfunc(A)          */
03957 
03958         ((0 << Other_Var_Len_Ch) |
03959          (0 << Other_Var_Len_Arr) |
03960          (1 << Other_Use_Func) |        
03961          (1 << Other_Use_Subr) |
03962          (1 << Other_Expl_Interface) |
03963          (0 << Other_Use_Variable) |
03964          (0 << Other_Use_Dummy_Arg) |
03965          (0 << Other_Host_Assoc) |
03966          (0 << Other_Use_Assoc) |
03967          (0 << Other_Use_Char_Rslt) |
03968          (1 << Other_Not_Visible) |
03969          (0 << Other_Npes)),
03970 
03971 
03972         /*      Obj_Var_Len_Ch          ie: CHARACTER*(N) A     */
03973 
03974         ((0 << Other_Var_Len_Ch) |
03975          (0 << Other_Var_Len_Arr) |
03976          (0 << Other_Use_Func) |        
03977          (1 << Other_Use_Subr) |
03978          (1 << Other_Expl_Interface) |
03979          (0 << Other_Use_Variable) |
03980          (0 << Other_Use_Dummy_Arg) |
03981          (1 << Other_Host_Assoc) |
03982          (1 << Other_Use_Assoc) |
03983          (0 << Other_Use_Char_Rslt) |
03984          (1 << Other_Not_Visible) |
03985          (1 << Other_Npes)),
03986 
03987         /*  Obj_Var_Len_Arr             ie: DIMENSION A(N)                 */
03988         /*  This is added at end pass1, so the Function may have been used */
03989         /*  by that time.                                                  */
03990 
03991         ((0 << Other_Var_Len_Ch) |
03992          (0 << Other_Var_Len_Arr) |
03993          (1 << Other_Use_Func) |        
03994          (1 << Other_Use_Subr) |
03995          (1 << Other_Expl_Interface) |
03996          (0 << Other_Use_Variable) |
03997          (0 << Other_Use_Dummy_Arg) |
03998          (1 << Other_Host_Assoc) |
03999          (1 << Other_Use_Assoc) |
04000          (0 << Other_Use_Char_Rslt) |
04001          (1 << Other_Not_Visible) |
04002          (1 << Other_Npes)),
04003 
04004         /*      Obj_Sym_Constant_Array  ie: DIMENSION A(N$PES)  */
04005 
04006         ((0 << Other_Var_Len_Ch) |
04007          (0 << Other_Var_Len_Arr) |
04008          (0 << Other_Use_Func) |
04009          (1 << Other_Use_Subr) |
04010          (1 << Other_Expl_Interface) |
04011          (0 << Other_Use_Variable) |
04012          (0 << Other_Use_Dummy_Arg) |
04013          (1 << Other_Host_Assoc) |
04014          (1 << Other_Use_Assoc) |
04015          (0 << Other_Use_Char_Rslt) |
04016          (1 << Other_Not_Visible) |
04017          (1 << Other_Npes)),
04018 
04019         /*      Obj_Interface_Func              ie: FUNCTION ABC()      */
04020 
04021         ((1 << Other_Var_Len_Ch) |
04022          (1 << Other_Var_Len_Arr) |
04023          (1 << Other_Use_Func) |        
04024          (1 << Other_Use_Subr) |
04025          (1 << Other_Expl_Interface) |
04026          (1 << Other_Use_Variable) |
04027          (1 << Other_Use_Dummy_Arg) |
04028          (1 << Other_Host_Assoc) |
04029          (1 << Other_Use_Assoc) |
04030          (0 << Other_Use_Char_Rslt) |
04031          (1 << Other_Not_Visible) |
04032          (1 << Other_Npes)),
04033 
04034         /*      Obj_Interface_Subr              ie: SUBROUTINE ABC()    */
04035 
04036         ((1 << Other_Var_Len_Ch) |
04037          (1 << Other_Var_Len_Arr) |
04038          (1 << Other_Use_Func) |        
04039          (1 << Other_Use_Subr) |
04040          (1 << Other_Expl_Interface) |
04041          (1 << Other_Use_Variable) |
04042          (1 << Other_Use_Dummy_Arg) |
04043          (1 << Other_Host_Assoc) |
04044          (1 << Other_Use_Assoc) |
04045          (1 << Other_Use_Char_Rslt) |
04046          (1 << Other_Not_Visible) |
04047          (1 << Other_Npes)),
04048 
04049         /*      Obj_Use_Extern_Func             ie: B = A()     */
04050 
04051         ((0 << Other_Var_Len_Ch) |
04052          (0 << Other_Var_Len_Arr) |
04053          (0 << Other_Use_Func) |        
04054          (1 << Other_Use_Subr) |
04055          (0 << Other_Expl_Interface) |
04056          (1 << Other_Use_Variable) |
04057          (1 << Other_Use_Dummy_Arg) |
04058          (0 << Other_Host_Assoc) |
04059          (0 << Other_Use_Assoc) |
04060          (0 << Other_Use_Char_Rslt) |
04061          (1 << Other_Not_Visible) |
04062          (1 << Other_Npes)),
04063 
04064         /*      Obj_Use_Extern_Subr             ie: CALL A()    */
04065 
04066         ((1 << Other_Var_Len_Ch) |
04067          (1 << Other_Var_Len_Arr) |
04068          (1 << Other_Use_Func) |        
04069          (0 << Other_Use_Subr) |
04070          (0 << Other_Expl_Interface) |
04071          (1 << Other_Use_Variable) |
04072          (1 << Other_Use_Dummy_Arg) |
04073          (0 << Other_Host_Assoc) |
04074          (0 << Other_Use_Assoc) |
04075          (1 << Other_Use_Char_Rslt) |
04076          (1 << Other_Not_Visible) |
04077          (1 << Other_Npes)),
04078 
04079         /*      Obj_Use_In_Expr         ie: X = A + B   */
04080 
04081         ((0 << Other_Var_Len_Ch) |
04082          (0 << Other_Var_Len_Arr) |
04083          (0 << Other_Use_Func) |        
04084          (1 << Other_Use_Subr) |
04085          (0 << Other_Expl_Interface) |
04086          (0 << Other_Use_Variable) |
04087          (0 << Other_Use_Dummy_Arg) |
04088          (0 << Other_Host_Assoc) |
04089          (0 << Other_Use_Assoc) |
04090          (0 << Other_Use_Char_Rslt) |
04091          (1 << Other_Not_Visible) |
04092          (0 << Other_Npes)),
04093 
04094         /*      Obj_Use_Derived_Type    ie: TYPE (A)    */
04095 
04096         ((1 << Other_Var_Len_Ch) |
04097          (1 << Other_Var_Len_Arr) |
04098          (1 << Other_Use_Func) |
04099          (1 << Other_Use_Subr) |
04100          (1 << Other_Expl_Interface) |
04101          (1 << Other_Use_Variable) |
04102          (1 << Other_Use_Dummy_Arg) |
04103          (0 << Other_Host_Assoc) |
04104          (0 << Other_Use_Assoc) |
04105          (1 << Other_Use_Char_Rslt) |
04106          (1 << Other_Not_Visible) |
04107          (1 << Other_Npes)),
04108 
04109         /*      Obj_Use_Spec_Expr               ie: DIMENSION I(A) */
04110 
04111         ((0 << Other_Var_Len_Ch) |
04112          (0 << Other_Var_Len_Arr) |
04113          (0 << Other_Use_Func) |        
04114          (1 << Other_Use_Subr) |
04115          (0 << Other_Expl_Interface) |
04116          (0 << Other_Use_Variable) |
04117          (0 << Other_Use_Dummy_Arg) |
04118          (0 << Other_Host_Assoc) |
04119          (0 << Other_Use_Assoc) |
04120          (0 << Other_Use_Char_Rslt) |
04121          (1 << Other_Not_Visible) |
04122          (0 << Other_Npes)),
04123 
04124         /*      Obj_Use_Init_Expr               ie: PARAMETER (I=A)     */
04125 
04126         ((1 << Other_Var_Len_Ch) |
04127          (1 << Other_Var_Len_Arr) |
04128          (1 << Other_Use_Func) |
04129          (1 << Other_Use_Subr) |
04130          (1 << Other_Expl_Interface) |
04131          (0 << Other_Use_Variable) |
04132          (0 << Other_Use_Dummy_Arg) |
04133          (0 << Other_Host_Assoc) |
04134          (0 << Other_Use_Assoc) |
04135          (0 << Other_Use_Char_Rslt) |
04136          (1 << Other_Not_Visible) |
04137          (1 << Other_Npes))
04138 
04139         };
04140 
04141 
04142 /* These tables contain the error messages for bad combinations of new       */
04143 /* information being added to an existing attribute.  There are 3 tables to  */
04144 /* to match the 3 divisions that existing objects have. (attributes, names,  */
04145 /* and others.) Before each Obj_... section will be the name and any kind of */
04146 /* definition provided by the standard. Beneath a specific message number    */
04147 /* will be information as to why the message exists (or in some cases why    */
04148 /* something is legal). The numbers referred to are from the Fortran 90      */
04149 /* standard.    If any bits are flipped or messages are added or deleted,    */
04150 /* update the documentation for this table.                                  */
04151 
04152 /* A basic rule used for alot of proof is 14.1.2.  Specifically this states  */
04153 /* that a named variable, a named constant, a named construct, a statement   */
04154 /* function, an internal procedure, a module procedure, a dummy procedure,   */
04155 /* an intrinsic procedure, generic identifiers, derived types and namelist   */
04156 /* group names are distinct objects and the same name may not be used for    */
04157 /* more than one of these items in a scoping unit.  Further, program units   */
04158 /* and external procedures are global entities and are distinct.  They may   */
04159 /* have the same name as any other global or local entity in that scoping    */
04160 /* unit.  This comes from 14.1.1.  A function result is a variable.          */
04161 /* (12.5.2.2) discussion.  A dummy argument can be either a dummy procedure  */
04162 /* (listed above) or a variable.  (2.4.3.1.1 and 2.5.1 discussion).  That    */
04163 /* means that function results, dummy args and the things listed above are   */
04164 /* all distinct names in the same scoping unit.  This will be listed as      */
04165 /* 14.1.2 distinct entities (see documentation before attr_msg_num table).   */
04166 
04167 long    attr_msg_num[Obj_Done] [Attr_Done]      = {
04168 
04169         /********************** Obj_Assum_Type_Ch **************************/
04170         /* A length type value of star may only be used as a dummy         */
04171         /* argument, a constant, or the name of the function result        */
04172         /* in the external function begin compiled.     (5.1.1.5)          */
04173         /* It also can be a Cray character pointer.                        */
04174         /*******************************************************************/
04175 
04176         {   0,  /* Obj_Assum_Type_Ch            Attr_Assumed_Type_Ch    */
04177 
04178                 /* The implicit type cannot be assumed type character   */
04179                 /* by definition (5.1.1.5) and you cannot retype        */
04180                 /* something.   (Constraint in 5.1)                     */
04181 
04182             0,  /* Obj_Assum_Type_Ch            Attr_Dimension          */
04183             0,  /* Obj_Assum_Type_Ch            Attr_Explicit_Shp_Arr   */
04184             0,  /* Obj_Assum_Type_Ch            Attr_Assumed_Size_Arr   */
04185             0,  /* Obj_Assum_Type_Ch            Attr_Deferred_Shp_Arr   */
04186             0,  /* Obj_Assum_Type_Ch            Attr_Assumed_Shp_Arr    */
04187 
04188           550,  /* Obj_Assum_Type_Ch            Attr_Allocatable        */
04189                 /* Allocatable is not darg, constant, or func rslt.     */
04190                 /* Constraints in 5.2.6 and 5.1                         */
04191 
04192           550,  /* Obj_Assum_Type_Ch            Attr_Parameter          */
04193                 /* Can't type something after it's a parameter, unless  */
04194                 /* the type agrees with the implicit typing.    Assumed */
04195                 /* type character is not an implicit type (5.1.1.5),    */
04196                 /* so this is illegal. (5.2.10)                         */
04197 
04198             0,  /* Obj_Assum_Type_Ch            Attr_Intent             */
04199             0,  /* Obj_Assum_Type_Ch            Attr_Optional           */
04200             0,  /* Obj_Assum_Type_Ch            Attr_Private            */
04201             0,  /* Obj_Assum_Type_Ch            Attr_Public             */
04202             0,  /* Obj_Assum_Type_Ch            Attr_Target             */
04203 
04204           550,  /* Obj_Assum_Type_Ch            Attr_Equivalence        */
04205                 /* A constraint on equivalence (5.5.1) disallows an     */
04206                 /* equivalenced object from being a darg, a constant,   */
04207                 /* or a function result.                                */
04208 
04209           550,  /* Obj_Assum_Type_Ch            Attr_Save               */
04210 
04211             0,  /* Obj_Assum_Type_Ch            Attr_Pointer            */
04212                 /* A pointer can be a dummy argument or func result     */
04213 
04214             0,  /* Obj_Assum_Type_Ch            Attr_External           */
04215 
04216           550,  /* Obj_Assum_Type_Ch            Attr_Intrinsic          */
04217                 /* The only type of FUNCTION that can be assumed type   */
04218                 /* character is the current one being compiled.         */
04219 
04220           550,  /* Obj_Assum_Type_Ch            Attr_Data_Init          */
04221                 /* Can't be darg, constant, or func rslt.       (5.1)   */
04222 
04223           550,  /* Obj_Assum_Type_Ch            Attr_Type               */
04224                 /* An item may only be given one type.  (5.1)           */
04225 
04226             0,  /* Obj_Assum_Type_Ch            Attr_Co_Array           */
04227           550,  /* Obj_Assum_Type_Ch            Attr_Automatic          */
04228             0   /* Obj_Assum_Type_Ch            Attr_Volatile           */
04229         },
04230 
04231 
04232         /********************** Obj_Expl_Shp_Arr ************************/
04233         /* An explict shape array is a named array that is declared     */
04234         /* with explicit values for the bounds in each dimension of     */
04235         /* the array.   (5.1.2.4.1)     All explicit shape arrays (both */
04236         /* with constant bounds and with non-constant bounds), use this */
04237         /* Obj_... category.    At end pass1, array bounds are resolved.*/
04238         /* If they are constant, semantic checking is done, if they are */
04239         /* non-constant, fnd_semantic_err is called again for the       */
04240         /* object, using Obj_Var_Len_Arr.  There is nothing that can    */
04241         /* be a variable length array that cannot be an array with      */
04242         /* constant bounds.                                             */
04243         /****************************************************************/
04244 
04245         {   0,  /* Obj_Expl_Shp_Arr             Attr_Assumed_Type_Ch    */
04246 
04247             0,  /* Obj_Expl_Shp_Arr             Attr_Dimension          */
04248             0,  /* Obj_Expl_Shp_Arr             Attr_Explicit_Shp_Arr   */
04249           550,  /* Obj_Expl_Shp_Arr             Attr_Assumed_Size_Arr   */
04250           550,  /* Obj_Expl_Shp_Arr             Attr_Deferred_Shp_Arr   */
04251           550,  /* Obj_Expl_Shp_Arr             Attr_Assumed_Shp_Arr    */
04252                 /* 5.1 discussion - duplicate attribute.                */
04253 
04254           550,  /* Obj_Expl_Shp_Arr             Attr_Allocatable        */
04255                 /* Allocatable must be deferred shape.  (5.1)           */
04256 
04257           550,  /* Obj_Expl_Shp_Arr             Attr_Parameter          */
04258                 /* Shape must be specified before declaring something   */
04259                 /* as a constant. (5.2.10)                              */
04260 
04261             0,  /* Obj_Expl_Shp_Arr             Attr_Intent             */
04262             0,  /* Obj_Expl_Shp_Arr             Attr_Optional           */
04263             0,  /* Obj_Expl_Shp_Arr             Attr_Private            */
04264             0,  /* Obj_Expl_Shp_Arr             Attr_Public             */
04265             0,  /* Obj_Expl_Shp_Arr             Attr_Target             */
04266             0,  /* Obj_Expl_Shp_Arr             Attr_Equivalence        */
04267             0,  /* Obj_Expl_Shp_Arr             Attr_Save               */
04268 
04269           550,  /* Obj_Expl_Shp_Arr             Attr_Pointer            */
04270                 /* Pointer must be deferred shape (5.2.7)               */
04271 
04272           550,  /* Obj_Expl_Shp_Arr             Attr_External           */
04273           550,  /* Obj_Expl_Shp_Arr             Attr_Intrinsic          */
04274                 /* In F77, a dummy arg could be declared EXTERNAL and   */
04275                 /* typed.  This continues to be true for scalar dummy   */
04276                 /* procedures which are functions.  However, if the     */
04277                 /* function is array valued, the only way it can be     */
04278                 /* called is if there is an explicit interface          */
04279                 /* (interface block) to describe it.    It must get all */
04280                 /* type and shape information from the interface body.  */
04281                 /* So, a dummy arg with the EXTERNAL attribute can      */
04282                 /* be dimensioned only in the interface body.   If      */
04283                 /* something has no INTERFACE or EXTERNAL attribute,    */
04284                 /* but is dimensioned, it will appear to the compiler   */
04285                 /* to be a local array or a darg which is an array.     */
04286 
04287           550,  /* Obj_Expl_Shp_Arr             Attr_Data_Init          */
04288                 /* Must have its array properties declared before       */
04289                 /* being data initialized. (5.2.9)                      */
04290 
04291             0,  /* Obj_Expl_Shp_Arr             Attr_Type               */
04292 
04293             0,  /* Obj_Expl_Shp_Arr             Attr_Co_Array           */
04294             0,  /* Obj_Expl_Shp_Arr             Attr_Automatic          */
04295             0   /* Obj_Expl_Shp_Arr             Attr_Volatile           */
04296         },
04297 
04298 
04299         /********************** Obj_Assum_Size_Arr **********************/
04300         /* This is a dummy argument array.      (5.1.2.4.4)             */
04301         /****************************************************************/
04302 
04303         {   0,  /* Obj_Assum_Size_Arr   Attr_Assumed_Type_Ch            */
04304 
04305             0,  /* Obj_Assum_Size_Arr   Attr_Dimension                  */
04306           550,  /* Obj_Assum_Size_Arr   Attr_Explicit_Shp_Arr           */
04307             0,  /* Obj_Assum_Size_Arr   Attr_Assumed_Size_Arr           */
04308           550,  /* Obj_Assum_Size_Arr   Attr_Deferred_Shp_Arr           */
04309           550,  /* Obj_Assum_Size_Arr   Attr_Assumed_Shp_Arr            */
04310                 /* These are all illegal, because that would be         */
04311                 /* defining an object twice as an array.  (5.1)         */
04312 
04313           550,  /* Obj_Assum_Size_Arr   Attr_Allocatable                */
04314                 /* Allocatable must be  deferred shape. (5.1)           */
04315 
04316           550,  /* Obj_Assum_Size_Arr   Attr_Parameter                  */
04317                 /* Shape must be specified before declaring something   */
04318                 /* as a constant. (5.2.10)                              */
04319 
04320             0,  /* Obj_Assum_Size_Arr   Attr_Intent                     */
04321             0,  /* Obj_Assum_Size_Arr   Attr_Optional                   */
04322 
04323             0,  /* Obj_Assum_Size_Arr   Attr_Private                    */
04324             0,  /* Obj_Assum_Size_Arr   Attr_Public                     */
04325                 /* These end up illegal eventually, because assumed     */
04326                 /* size arrays are dargs and dargs can't be in a        */
04327                 /* module.  Public and private can only be specified    */
04328                 /* in a module. The message is caught by context        */
04329                 /* of the public/private stmts, or an error on the      */
04330                 /* assumed size array because it isn't a darg.          */
04331 
04332             0,  /* Obj_Assum_Size_Arr   Attr_Target                     */
04333 
04334           550,  /* Obj_Assum_Size_Arr   Attr_Equivalence                */
04335                 /* Can't be a darg.     (5.1.1)                         */
04336 
04337           550,  /* Obj_Assum_Size_Arr   Attr_Save                       */
04338                 /* Illegal (5.1.2.5)                                    */
04339 
04340           550,  /* Obj_Assum_Size_Arr   Attr_Pointer                    */
04341                 /* Pointer must be deferred shape (5.2.7)               */
04342 
04343           550,  /* Obj_Assum_Size_Arr   Attr_External                   */
04344           550,  /* Obj_Assum_Size_Arr   Attr_Intrinsic                  */
04345                 /* See [Obj_Expl_Shp_Arr,Attr_External] comments.       */
04346 
04347           550,  /* Obj_Assum_Size_Arr   Attr_Data_Init                  */
04348                 /* Can't be darg.       (5.2.9 constraint)              */
04349 
04350             0,  /* Obj_Assum_Size_Arr   Attr_Type                       */
04351 
04352             0,  /* Obj_Assum_Size_Arr   Attr_Co_Array                   */
04353           550,  /* Obj_Assum_Size_Arr   Attr_Automatic                  */
04354             0   /* Obj_Assum_Size_Arr   Attr_Volatile                   */
04355         },
04356 
04357 
04358         /********************* Obj_Defrd_Shp_Arr ************************/
04359         /* A deferred shape array is an array pointer or an             */
04360         /* allocatable array. (5.1.2.4.3)                               */
04361         /****************************************************************/
04362 
04363         {   0,  /* Obj_Defrd_Shp_Arr            Attr_Assumed_Type_Ch    */
04364 
04365             0,  /* Obj_Defrd_Shp_Arr            Attr_Dimension          */
04366             0, /* Obj_Defrd_Shp_Arr            Attr_Explicit_Shp_Arr   */  
04367           550,  /* Obj_Defrd_Shp_Arr            Attr_Assumed_Size_Arr   */
04368             0,  /* Obj_Defrd_Shp_Arr            Attr_Deferred_Shp_Arr   */
04369           550,  /* Obj_Defrd_Shp_Arr            Attr_Assumed_Shp_Arr    */
04370 
04371                 /* These are all illegal, because that would be         */
04372                 /* defining an object twice as an array.        (5.1)   */
04373 
04374             0,  /* Obj_Defrd_Shp_Arr            Attr_Allocatable        */
04375 
04376           550,  /* Obj_Defrd_Shp_Arr            Attr_Parameter          */
04377                 /* Shape must be specified before declaring something   */
04378                 /* as a constant. (5.2.10)                              */
04379 
04380             0,  /* Obj_Defrd_Shp_Arr            Attr_Intent             */
04381 
04382                 /* To be a deferred shape array, it must be a pointer   */
04383                 /* or allocatable.  Allocatable cannot be a darg.       */
04384                 /* Pointer can be a darg, but it cannot have the        */
04385                 /* intent attribute (5.1).  Leave this legal here.      */
04386                 /* The error will be caught by the pointer or           */
04387                 /* allocatable combination.  It will make more sense.   */
04388                 /* If neither pointer or allocatable is set, error.     */
04389 
04390             0,  /* Obj_Defrd_Shp_Arr            Attr_Optional           */
04391             0,  /* Obj_Defrd_Shp_Arr            Attr_Private            */
04392             0,  /* Obj_Defrd_Shp_Arr            Attr_Public             */
04393             0,  /* Obj_Defrd_Shp_Arr            Attr_Target             */
04394 
04395           550,  /* Obj_Defrd_Shp_Arr            Attr_Equivalence        */
04396                 /* Illegal (5.5.1 constraint)                           */
04397 
04398             0,  /* Obj_Defrd_Shp_Arr            Attr_Save               */
04399                 /* Assumed to be legal, because of rules in the         */
04400                 /* standard about the allocation status of a pointer    */
04401                 /* or allocatable array, if the object has the save     */
04402                 /* attribute. (6.3.3.1)                                 */
04403 
04404             0,  /* Obj_Defrd_Shp_Arr            Attr_Pointer            */
04405 
04406           550,  /* Obj_Defrd_Shp_Arr            Attr_External           */
04407           550,  /* Obj_Defrd_Shp_Arr            Attr_Intrinsic          */
04408 
04409                 /* See [Obj_Expl_Shp_Arr,Attr_External] comments.       */
04410 
04411           550,  /* Obj_Defrd_Shp_Arr            Attr_Data_Init          */
04412 
04413                 /* Must have its array properties declared before       */
04414                 /* being data initialized. (5.2.9)                      */
04415 
04416             0,  /* Obj_Defrd_Shp_Arr            Attr_Type               */
04417             0,  /* Obj_Defrd_Shp_Arr            Attr_Co_Array           */
04418             0,  /* Obj_Defrd_Shp_Arr            Attr_Automatic          */
04419             0   /* Obj_Defrd_Shp_Arr            Attr_Volatile           */
04420         },
04421 
04422         /********************* Obj_Assum_Shp_Arr ************************/
04423         /* This is a non-pointer dummy argument array.  (5.1.2.4.2)     */
04424         /****************************************************************/
04425 
04426         {   0,  /* Obj_Assum_Shp_Arr            Attr_Assumed_Type_Ch    */
04427                 /* Assumed type character can be a dummy argument.      */
04428 
04429             0,  /* Obj_Assum_Shp_Arr            Attr_Dimension          */
04430           550,  /* Obj_Assum_Shp_Arr            Attr_Explicit_Shp_Arr   */
04431           550,  /* Obj_Assum_Shp_Arr            Attr_Assumed_Size_Arr   */
04432           550,  /* Obj_Assum_Shp_Arr            Attr_Deferred_Shp_Arr   */
04433             0,  /* Obj_Assum_Shp_Arr            Attr_Assumed_Shp_Arr    */
04434 
04435                 /* These are all illegal, because that would be         */
04436                 /* defining an object twice as an array. (5.1)          */
04437 
04438           550,  /* Obj_Assum_Shp_Arr            Attr_Allocatable        */
04439                 /* Allocatable must be  deferred shape. (5.1)           */
04440 
04441           550,  /* Obj_Assum_Shp_Arr            Attr_Parameter          */
04442 
04443                 /* Shape must be specified before declaring something   */
04444                 /* as a constant. (5.2.10)                              */
04445 
04446             0,  /* Obj_Assum_Shp_Arr            Attr_Intent             */
04447             0,  /* Obj_Assum_Shp_Arr            Attr_Optional           */
04448 
04449           550,  /* Obj_Assum_Shp_Arr            Attr_Private            */
04450           550,  /* Obj_Assum_Shp_Arr            Attr_Public             */
04451 
04452                 /* These end up illegal eventually, because assumed     */
04453                 /* shape arrays are dargs and dargs can't be in a       */
04454                 /* module.  Public and private can only be specified    */
04455                 /* in a module. The message is caught by context        */
04456                 /* of the public/private stmts, or an error on the      */
04457                 /* assumed shape array because it isn't a darg.         */
04458 
04459             0,  /* Obj_Assum_Shp_Arr            Attr_Target             */
04460 
04461           550,  /* Obj_Assum_Shp_Arr            Attr_Equivalence        */
04462                 /* Equivalence can't be a dummy arg.    (5.5.1)         */
04463 
04464           550,  /* Obj_Assum_Shp_Arr            Attr_Save               */
04465                 /* Illegal (5.1.2.5)                                    */
04466 
04467           550,  /* Obj_Assum_Shp_Arr            Attr_Pointer            */
04468                 /* Pointer must be deferred shape (5.2.7)               */
04469 
04470           550,  /* Obj_Assum_Shp_Arr            Attr_External           */
04471           550,  /* Obj_Assum_Shp_Arr            Attr_Intrinsic          */
04472                 /* See [Obj_Expl_Shp_Arr,Attr_External] comments.       */
04473 
04474           550,  /* Obj_Assum_Shp_Arr            Attr_Data_Init          */
04475                 /* Can't be darg.       (5.2.9 constraint)              */
04476 
04477             0,  /* Obj_Assum_Shp_Arr            Attr_Type               */
04478 
04479 /*        550,   Obj_Assum_Shp_Arr              Attr_Co_Array           */
04480           0,    /* Obj_Assum_Shp_Arr            Attr_Co_Array           */
04481           550,  /* Obj_Assum_Shp_Arr            Attr_Automatic          */
04482             0   /* Obj_Assum_Shp_Arr            Attr_Volatile           */
04483         },
04484 
04485         /********************* Obj_Co_Array *************************/
04486         /* This is a pe dimension [3,4]                                 */
04487         /****************************************************************/
04488 
04489         {   0,  /* Obj_Co_Array         Attr_Assumed_Type_Ch    */
04490             0,  /* Obj_Co_Array         Attr_Dimension          */
04491             0,  /* Obj_Co_Array         Attr_Explicit_Shp_Arr   */
04492             0,  /* Obj_Co_Array         Attr_Assumed_Size_Arr   */
04493             0,  /* Obj_Co_Array         Attr_Deferred_Shp_Arr   */
04494 /*        550,   Obj_Co_Array           Attr_Assumed_Shp_Arr    */
04495             0,  /* Obj_Co_Array         Attr_Assumed_Shp_Arr    */
04496             0,  /* Obj_Co_Array         Attr_Allocatable        */
04497           550,  /* Obj_Co_Array         Attr_Parameter          */
04498             0,  /* Obj_Co_Array         Attr_Intent             */
04499             0,  /* Obj_Co_Array         Attr_Optional           */
04500             0,  /* Obj_Co_Array         Attr_Private            */
04501             0,  /* Obj_Co_Array         Attr_Public             */
04502             0,  /* Obj_Co_Array         Attr_Target             */
04503             0,  /* Obj_Co_Array         Attr_Equivalence        */
04504             0,  /* Obj_Co_Array         Attr_Save               */
04505           550,  /* Obj_Co_Array         Attr_Pointer            */
04506           550,  /* Obj_Co_Array         Attr_External           */
04507           550,  /* Obj_Co_Array         Attr_Intrinsic          */
04508             0,  /* Obj_Co_Array         Attr_Data_Init          */
04509             0,  /* Obj_Co_Array         Attr_Type               */
04510           550,  /* Obj_Co_Array         Attr_Co_Array           */
04511           550,  /* Obj_Co_Array         Attr_Automatic          */
04512             0   /* Obj_Co_Array         Attr_Volatile           */
04513         },
04514 
04515         
04516         /*********************  Obj_Allocatable ***********************/
04517         /* This must be a deferred shape array and must not be a dummy */
04518         /* argument or function result. (5.2.6)                 */
04519         /***************************************************************/
04520 
04521         {  550, /* Obj_Allocatable              Attr_Assumed_Type_Ch    */
04522                 /* Illegal (5.2.6) and 5.1 - Can't be a constant.       */
04523 
04524             0,  /* Obj_Allocatable              Attr_Dimension          */
04525           550,  /* Obj_Allocatable              Attr_Explicit_Shp_Arr   */
04526           550,  /* Obj_Allocatable              Attr_Assumed_Size_Arr   */
04527                 /* Allocatable must be a deferred shape array. (5.2.6)  */
04528 
04529             0,  /* Obj_Allocatable              Attr_Deferred_Shp_Arr   */
04530 
04531           550,  /* Obj_Allocatable              Attr_Assumed_Shp_Arr    */
04532                 /* (5.2.6) - Can't be a darg.                           */
04533 
04534             0,  /* Obj_Allocatable              Attr_Allocatable        */
04535                 /* (5.1) - Can't have the same attribute twice. ANSI    */
04536 
04537           550,  /* Obj_Allocatable              Attr_Parameter          */
04538                 /* Illegal (5.1)                                        */
04539 
04540           550,  /* Obj_Allocatable              Attr_Intent             */
04541           550,  /* Obj_Allocatable              Attr_Optional           */
04542                 /* Illegal (5.2.6)                                      */
04543 
04544             0,  /* Obj_Allocatable              Attr_Private            */
04545             0,  /* Obj_Allocatable              Attr_Public             */
04546             0,  /* Obj_Allocatable              Attr_Target             */
04547 
04548           550,  /* Obj_Allocatable              Attr_Equivalence        */
04549                 /* Illegal (5.5.1 - constraint)                         */
04550 
04551             0,  /* Obj_Allocatable              Attr_Save               */
04552                 /* Assumed to be legal, because of rules in the         */
04553                 /* standard about the allocation status of a pointer    */
04554                 /* or allocatable array, if the object has the save     */
04555                 /* attribute. (6.3.3.1)                                 */
04556 
04557           550,  /* Obj_Allocatable              Attr_Pointer            */
04558                 /* Illegal constraint 5.1                               */
04559 
04560           550,  /* Obj_Allocatable              Attr_External           */
04561           550,  /* Obj_Allocatable              Attr_Intrinsic          */
04562                 /* Allocatable can't be a function result.      (5.2.6) */
04563 
04564           550,  /* Obj_Allocatable              Attr_Data_Init          */
04565                 /* Illegal constraint 5.1                               */
04566 
04567             0,  /* Obj_Allocatable              Attr_Type               */
04568 
04569             0,  /* Obj_Allocatable              Attr_Co_Array           */
04570           550,  /* Obj_Allocatable              Attr_Automatic          */
04571             0   /* Obj_Allocatable              Attr_Volatile           */
04572         },
04573 
04574 
04575 
04576         /********************* Obj_Constant *****************************/
04577         /* The named constant must have its type, shape and any type    */
04578         /* parameters specified either by a previous occurrence in a    */
04579         /* type declaration stmt in the same scoping unit, or by the    */
04580         /* implicit typing rules in effect.     (5.2.10)                */
04581         /****************************************************************/
04582 
04583         {   0,  /* Obj_Constant                 Attr_Assumed_Type_Ch    */
04584                 /* legal - (5.1.1.5)                                    */
04585 
04586             0,  /* Obj_Constant                 Attr_Dimension          */
04587             0,  /* Obj_Constant                 Attr_Explicit_Shp_Arr   */
04588 
04589           550,  /* Obj_Constant                 Attr_Assumed_Size_Arr   */
04590                 /* Constants can't be dargs.    (5.1.2.4.4, 14.1.2)     */
04591 
04592           550,  /* Obj_Constant                 Attr_Deferred_Shp_Arr   */
04593                 /* Deferred shape must be allocatable or pointer.       */
04594                 /* Neither allocatable or pointer can be a constant.    */
04595 
04596           550,  /* Obj_Constant                 Attr_Assumed_Shp_Arr    */
04597                 /* Constants can't be dargs.    (5.1.2.4.4, 14.1.2)     */
04598 
04599           550,  /* Obj_Constant                 Attr_Allocatable        */
04600                 /* Illegal - 5.1 constraint                             */
04601 
04602           554,  /* Obj_Constant                 Attr_Parameter          */
04603                 /* This gives the same attribute twice. (5.1)           */
04604 
04605           550,  /* Obj_Constant                 Attr_Intent             */
04606           550,  /* Obj_Constant                 Attr_Optional           */
04607                 /* Constants can't be dargs.    (5.1.2.4.4, 14.1.2)     */
04608 
04609             0,  /* Obj_Constant                 Attr_Private            */
04610             0,  /* Obj_Constant                 Attr_Public             */
04611 
04612           550,  /* Obj_Constant                 Attr_Target             */
04613                 /* Constraint 5.2.8 - illegal                           */
04614 
04615           550,  /* Obj_Constant                 Attr_Equivalence        */
04616                 /* Constraint in 5.5.1                                  */
04617 
04618           550,  /* Obj_Constant                 Attr_Save               */
04619 
04620           550,  /* Obj_Constant                 Attr_Pointer            */
04621                 /* Illegal 5.2.7                                        */
04622 
04623           550,  /* Obj_Constant                 Attr_External           */
04624           550,  /* Obj_Constant                 Attr_Intrinsic          */
04625                 /* (5.1)                                                */
04626 
04627           550,  /* Obj_Constant                 Attr_Data_Init          */
04628                 /* Constants can't be variables. (5.2.9, 14.1.2)        */
04629 
04630             0,  /* Obj_Constant                 Attr_Type               */
04631           550,  /* Obj_Constant                 Attr_Co_Array           */
04632           550,  /* Obj_Constant                 Attr_Automatic          */
04633           550   /* Obj_Constant                 Attr_Volatile           */
04634         },
04635 
04636 
04637         /************************ Obj_Intent ****************************/
04638         /* An intent statement may only appear in the specification-    */
04639         /* part of a subprogram or interface body.  It must not be a    */
04640         /* dummy procedure or dummy pointer.    (5.2.1)                 */
04641         /***************************************************************/
04642 
04643         {   0,  /* Obj_Intent                   Attr_Assumed_Type_Ch    */
04644 
04645             0,  /* Obj_Intent                   Attr_Dimension          */
04646             0,  /* Obj_Intent                   Attr_Explicit_Shp_Arr   */
04647             0,  /* Obj_Intent                   Attr_Assumed_Size_Arr   */
04648             0,  /* Obj_Intent                   Attr_Deferred_Shp_Arr   */
04649             0,  /* Obj_Intent                   Attr_Assumed_Shp_Arr    */
04650 
04651           550,  /* Obj_Intent                   Attr_Allocatable        */
04652                 /* Can't be a dummy arg (5.2.6)                         */
04653 
04654           550,  /* Obj_Intent                   Attr_Parameter          */
04655                 /* Constants can't be dargs. (5.1.2.4.4, 14.1.2)        */
04656 
04657             0,  /* Obj_Intent                   Attr_Intent             */
04658                 /* This is defining the attribute twice.(5.1) ANSI      */
04659 
04660             0,  /* Obj_Intent                   Attr_Optional           */
04661 
04662             0,  /* Obj_Intent                   Attr_Private            */
04663             0,  /* Obj_Intent                   Attr_Public             */
04664                 /* These end up illegal eventually, because these       */
04665                 /* must be dargs and dargs can't be in a module.        */
04666                 /* Public and private can only be specified in a        */
04667                 /* module.      The message is caught by context of the */
04668                 /* public/private stmts, or an error on the intent      */
04669                 /* object because it isn't a darg.                      */
04670 
04671             0,  /* Obj_Intent                   Attr_Target             */
04672 
04673           550,  /* Obj_Intent                   Attr_Equivalence        */
04674                 /* Equivalence can't be a dummy arg.    (5.5.1)         */
04675 
04676           550,  /* Obj_Intent                   Attr_Save               */
04677                 /* Save can't be a dummy arg.   (5.2.4)                 */
04678 
04679           550,  /* Obj_Intent                   Attr_Pointer            */
04680                 /* (5.1)                                                */
04681 
04682           550,  /* Obj_Intent                   Attr_External           */
04683           550,  /* Obj_Intent                   Attr_Intrinsic          */
04684                 /* 5.2.1 - Intent can't specify a dummy procedure.      */
04685 
04686           550,  /* Obj_Intent                   Attr_Data_Init          */
04687                 /* (5.1)                                                */
04688 
04689             0,  /* Obj_Intent                   Attr_Type               */
04690 
04691             0,  /* Obj_Intent                   Attr_Co_Array           */
04692           550,  /* Obj_Intent                   Attr_Automatic          */
04693             0   /* Obj_Intent                   Attr_Volatile           */
04694         },
04695 
04696 
04697         /*********************  Obj_Optional    **************************/
04698         /* The optional statement may only appear in the specification-*/
04699         /* part of a subprogram or interface body.      (5.2.2)         */
04700         /***************************************************************/
04701 
04702         {   0,  /* Obj_Optional                 Attr_Assumed_Type_Ch    */
04703 
04704             0,  /* Obj_Optional                 Attr_Dimension          */
04705             0,  /* Obj_Optional                 Attr_Explicit_Shp_Arr   */
04706             0,  /* Obj_Optional                 Attr_Assumed_Size_Arr   */
04707             0,  /* Obj_Optional                 Attr_Deferred_Shp_Arr   */
04708             0,  /* Obj_Optional                 Attr_Assumed_Shp_Arr    */
04709 
04710           550,  /* Obj_Optional                 Attr_Allocatable        */
04711                 /* Can't be a dummy arg (5.2.6)                         */
04712 
04713           550,  /* Obj_Optional                 Attr_Parameter          */
04714                 /* Constants can't be dargs. (5.1.2.4.4, 14.1.2)        */
04715 
04716             0,  /* Obj_Optional                 Attr_Intent             */
04717 
04718             0,  /* Obj_Optional                 Attr_Optional           */
04719                 /* This is defining the attribute twice (5.1)   ANSI    */
04720 
04721             0,  /* Obj_Optional                 Attr_Private            */
04722             0,  /* Obj_Optional                 Attr_Public             */
04723                 /* These end up illegal eventually, because these       */
04724                 /* must be dargs and dargs can't be in a module.        */
04725                 /* Public and private can only be specified in a        */
04726                 /* module.      The message is caught by context of the */
04727                 /* public/private stmts, or an error on the optional    */
04728                 /* object because it isn't a darg.                      */
04729 
04730             0,  /* Obj_Optional                 Attr_Target             */
04731 
04732           550,  /* Obj_Optional                 Attr_Equivalence        */
04733                 /* Equivalence can't be a dummy arg.    (5.5.1)         */
04734 
04735           550,  /* Obj_Optional                 Attr_Save               */
04736                 /* 5.2.4                                                */
04737 
04738                     0,  /* Obj_Optional         Attr_Pointer            */
04739                     0,  /* Obj_Optional         Attr_External           */
04740 
04741           550,  /* Obj_Optional                 Attr_Intrinsic          */
04742                 /* An intrinsic proc can't be a dummy proc.     (14.1.2)*/
04743 
04744           550,  /* Obj_Optional                 Attr_Data_Init          */
04745                 /* 5.2.9 constraint                                     */
04746 
04747             0,  /* Obj_Optional                 Attr_Type               */
04748 
04749             0,  /* Obj_Optional                 Attr_Co_Array           */
04750           550,  /* Obj_Optional                 Attr_Automatic          */
04751             0   /* Obj_Optional                 Attr_Volatile           */
04752         },
04753 
04754 
04755         /*********************  Obj_Private     ***************************/
04756         /* The private statement may only be in the scoping unit of a     */
04757         /* module.      Each use-name must be a named variable, procedure,*/
04758         /* derived type, named constant or namelist group.                */
04759         /******************************************************************/
04760 
04761         {   0,  /* Obj_Private                  Attr_Assumed_Type_Ch    */
04762             0,  /* Obj_Private                  Attr_Dimension          */
04763             0,  /* Obj_Private                  Attr_Explicit_Shp_Arr   */
04764 
04765             0,  /* Obj_Private                  Attr_Assumed_Size_Arr   */
04766                 /* These are caught because dargs can't be in modules.  */
04767 
04768             0,  /* Obj_Private                  Attr_Deferred_Shp_Arr   */
04769 
04770             0,  /* Obj_Private                  Attr_Assumed_Shp_Arr    */
04771                 /* These are caught because dargs can't be in modules.  */
04772 
04773             0,  /* Obj_Private                  Attr_Allocatable        */
04774             0,  /* Obj_Private                  Attr_Parameter          */
04775 
04776             0,  /* Obj_Private                  Attr_Intent             */
04777             0,  /* Obj_Private                  Attr_Optional           */
04778                 /* These are caught because dargs can't be in modules.  */
04779 
04780             0,  /* Obj_Private                  Attr_Private            */
04781           550,  /* Obj_Private                  Attr_Public             */
04782                 /* (5.1) constraint, also attr defined twice.   ANSI    */
04783 
04784             0,  /* Obj_Private                  Attr_Target             */
04785             0,  /* Obj_Private                  Attr_Equivalence        */
04786             0,  /* Obj_Private                  Attr_Save               */
04787             0,  /* Obj_Private                  Attr_Pointer            */
04788             0,  /* Obj_Private                  Attr_External           */
04789             0,  /* Obj_Private                  Attr_Intrinsic          */
04790             0,  /* Obj_Private                  Attr_Data_Init          */
04791             0,  /* Obj_Private                  Attr_Type               */
04792 
04793             0,  /* Obj_Private                  Attr_Co_Array           */
04794             0,  /* Obj_Private                  Attr_Automatic          */
04795             0   /* Obj_Private                  Attr_Volatile           */
04796         },
04797 
04798 
04799         /*********************  Obj_Public      ****************************/
04800         /* The public statement may only be in the scoping unit of a       */
04801         /* module.      Each use-name must be a named variable, procedure, */
04802         /* derived type, named constant or namelist group.                 */
04803         /*******************************************************************/
04804 
04805         {   0,  /* Obj_Public                   Attr_Assumed_Type_Ch    */
04806             0,  /* Obj_Public                   Attr_Dimension          */
04807             0,  /* Obj_Public                   Attr_Explicit_Shp_Arr   */
04808 
04809             0,  /* Obj_Public                   Attr_Assumed_Size_Arr   */
04810                 /* These are caught because dargs can't be in modules.  */
04811 
04812             0,  /* Obj_Public                   Attr_Deferred_Shp_Arr   */
04813 
04814             0,  /* Obj_Public                   Attr_Assumed_Shp_Arr    */
04815                 /* These are caught because dargs can't be in modules.  */
04816 
04817             0,  /* Obj_Public                   Attr_Allocatable        */
04818             0,  /* Obj_Public                   Attr_Parameter          */
04819 
04820             0,  /* Obj_Public                   Attr_Intent             */
04821             0,  /* Obj_Public                   Attr_Optional           */
04822                 /* These are caught because dargs can't be in modules.  */
04823 
04824           550,  /* Obj_Public                   Attr_Private            */
04825             0,  /* Obj_Public                   Attr_Public             */
04826                 /* (5.1) constraint, also attr defined twice.   ANSI    */
04827 
04828             0,  /* Obj_Public                   Attr_Target             */
04829             0,  /* Obj_Public                   Attr_Equivalence        */
04830             0,  /* Obj_Public                   Attr_Save               */
04831             0,  /* Obj_Public                   Attr_Pointer            */
04832             0,  /* Obj_Public                   Attr_External           */
04833             0,  /* Obj_Public                   Attr_Intrinsic          */
04834             0,  /* Obj_Public                   Attr_Data_Init          */
04835             0,  /* Obj_Public                   Attr_Type               */
04836 
04837             0,  /* Obj_Public                   Attr_Co_Array           */
04838             0,  /* Obj_Public                   Attr_Automatic          */
04839             0   /* Obj_Public                   Attr_Volatile           */
04840         },
04841 
04842         /*********************** Obj_Target ******************************/
04843         /* This specifies a list of object names that may have           */
04844         /* pointers associated with them.                                */
04845         /*****************************************************************/
04846 
04847         {   0,  /* Obj_Target                   Attr_Assumed_Type_Ch    */
04848                 /* Assumed type character can be a dummy argument.      */
04849                 /* Dummy args can be targets.                           */
04850 
04851             0,  /* Obj_Target                   Attr_Dimension          */
04852             0,  /* Obj_Target                   Attr_Explicit_Shp_Arr   */
04853             0,  /* Obj_Target                   Attr_Assumed_Size_Arr   */
04854             0,  /* Obj_Target                   Attr_Deferred_Shp_Arr   */
04855             0,  /* Obj_Target                   Attr_Assumed_Shp_Arr    */
04856             0,  /* Obj_Target                   Attr_Allocatable        */
04857 
04858           550,  /* Obj_Target                   Attr_Parameter          */
04859                 /* 5.2.8 constraint - illegal                           */
04860 
04861             0,  /* Obj_Target                   Attr_Intent             */
04862             0,  /* Obj_Target                   Attr_Optional           */
04863             0,  /* Obj_Target                   Attr_Private            */
04864             0,  /* Obj_Target                   Attr_Public             */
04865 
04866             0,  /* Obj_Target                   Attr_Target             */
04867                 /* Defined twice - constraint 5.1               ANSI    */
04868 
04869           550,  /* Obj_Target                   Attr_Equivalence        */
04870             0,  /* Obj_Target                   Attr_Save               */
04871 
04872           550,  /* Obj_Target                   Attr_Pointer            */
04873           550,  /* Obj_Target                   Attr_External           */
04874           550,  /* Obj_Target                   Attr_Intrinsic          */
04875                 /* Illegal - 5.1 constraint                             */
04876 
04877             0,  /* Obj_Target                   Attr_Data_Init          */
04878             0,  /* Obj_Target                   Attr_Type               */
04879             0,  /* Obj_Target                   Attr_Co_Array           */
04880             0,  /* Obj_Target                   Attr_Automatic          */
04881             0   /* Obj_Target                   Attr_Volatile           */
04882         },
04883 
04884 
04885         /*********************  Obj_Equiv       *****************************/
04886         /* An equivalence object must not be a dummy argument, a        */
04887         /* pointer, an allocatable array, and object of a nonsequenced */
04888         /* derived type or of a sequence derived type containing a      */
04889         /* pointer at any level of component selection, an automatic    */
04890         /* object, a function name, an entry name, a result name, a     */
04891         /* named constant, a structure component, or a subobject of any */
04892         /* of the preceeding objects. (5.5.1 constraint)                */
04893         /****************************************************************/
04894 
04895         {  550, /* Obj_Equiv             Attr_Assumed_Type_Ch           */
04896                 /* Equivalence cannot be a darg, a constant or a        */
04897                 /* function result. (5.5.1).  These are the only        */
04898                 /* things that an assumed type char can be.  (5.1.1.)   */
04899 
04900             0,  /* Obj_Equiv             Attr_Dimension                 */
04901             0,  /* Obj_Equiv             Attr_Explicit_Shp_Arr          */
04902 
04903           550,  /* Obj_Equiv             Attr_Assumed_Size_Arr          */
04904           550,  /* Obj_Equiv             Attr_Deferred_Shp_Arr          */
04905           550,  /* Obj_Equiv             Attr_Assumed_Shp_Arr           */
04906           550,  /* Obj_Equiv             Attr_Allocatable               */
04907                 /* (5.5.1 constraint) dargs, pointers, and allocatable  */
04908 
04909           550,  /* Obj_Equiv             Attr_Parameter                 */
04910           550,  /* Obj_Equiv             Attr_Intent                    */
04911           550,  /* Obj_Equiv             Attr_Optional                  */
04912                 /* (5.5.1 constraint) constants and dargs               */
04913 
04914             0,  /* Obj_Equiv             Attr_Private                   */
04915             0,  /* Obj_Equiv             Attr_Public                    */
04916           550,  /* Obj_Equiv             Attr_Target                    */
04917             0,  /* Obj_Equiv             Attr_Equivalence               */
04918             0,  /* Obj_Equiv             Attr_Save                      */
04919 
04920           550,  /* Obj_Equiv             Attr_Pointer                   */
04921           550,  /* Obj_Equiv             Attr_External                  */
04922           550,  /* Obj_Equiv             Attr_Intrinsic                 */
04923                 /* 5.5.1 - function names and pointers.                 */
04924 
04925             0,  /* Obj_Equiv             Attr_Data_Init                 */
04926             0,  /* Obj_Equiv             Attr_Type                      */
04927 
04928             0,  /* Obj_Equiv             Attr_Co_Array                  */
04929             0,  /* Obj_Equiv             Attr_Automatic                 */
04930             0   /* Obj_Equiv             Attr_Volatile          */
04931         },
04932 
04933 
04934         /**************************** Obj_Save **************************/
04935         /* An object-name must not be a dummy argument name, a          */
04936         /* procedure name, a function result name, an automatic data    */
04937         /* object, or the name of an entity in a common block. (5.2.4)  */
04938         /****************************************************************/
04939 
04940         { 550,  /* Obj_Saved             Attr_Assumed_Type_Ch           */
04941 
04942             0,  /* Obj_Saved             Attr_Dimension                 */
04943             0,  /* Obj_Saved             Attr_Explicit_Shp_Arr          */
04944 
04945           550,  /* Obj_Saved             Attr_Assumed_Size_Arr          */
04946                 /* (5.2.4 constraint) dargs                             */
04947 
04948             0,  /* Obj_Saved             Attr_Deferred_Shp_Arr          */
04949 
04950           550,  /* Obj_Saved             Attr_Assumed_Shp_Arr           */
04951                 /* (5.2.4 constraint) dargs                             */
04952 
04953             0,  /* Obj_Saved             Attr_Allocatable               */
04954 
04955           550,  /* Obj_Saved             Attr_Parameter                 */
04956 
04957           550,  /* Obj_Saved             Attr_Intent                    */
04958           550,  /* Obj_Saved             Attr_Optional                  */
04959                 /* (5.2.4 constraint) dargs                             */
04960 
04961             0,  /* Obj_Saved             Attr_Private                   */
04962             0,  /* Obj_Saved             Attr_Public                    */
04963             0,  /* Obj_Saved             Attr_Target                    */
04964             0,  /* Obj_Saved             Attr_Equivalence               */
04965 
04966             0,  /* Obj_Saved             Attr_Save                      */
04967                 /* Defining attribute twice (5.1)               ANSI    */
04968 
04969             0,  /* Obj_Saved             Attr_Pointer                   */
04970 
04971           550,  /* Obj_Saved             Attr_External                  */
04972           550,  /* Obj_Saved             Attr_Intrinsic                 */
04973                 /* (5.2.4 constraint) procedures                        */
04974 
04975             0,  /* Obj_Saved             Attr_Data_Init                 */
04976             0,  /* Obj_Saved             Attr_Type                      */
04977 
04978             0,  /* Obj_Saved             Attr_Co_Array                  */
04979           550,  /* Obj_Saved             Attr_Automatic                 */
04980             0   /* Obj_Saved             Attr_Volatile                  */
04981         },
04982 
04983 
04984         /************************ Obj_Automatic *************************/
04985         /****************************************************************/
04986 
04987         { 550,  /* Obj_Automatic                Attr_Assumed_Type_Ch    */
04988             0,  /* Obj_Automatic                Attr_Dimension          */
04989             0,  /* Obj_Automatic                Attr_Explicit_Shp_Arr   */
04990           550,  /* Obj_Automatic                Attr_Assumed_Size_Arr   */
04991             0,  /* Obj_Automatic                Attr_Deferred_Shp_Arr   */
04992           550,  /* Obj_Automatic                Attr_Assumed_Shp_Arr    */
04993           550,  /* Obj_Automatic                Attr_Allocatable        */
04994           550,  /* Obj_Automatic                Attr_Parameter          */
04995           550,  /* Obj_Automatic                Attr_Intent             */
04996           550,  /* Obj_Automatic                Attr_Optional           */
04997             0,  /* Obj_Automatic                Attr_Private            */
04998             0,  /* Obj_Automatic                Attr_Public             */
04999             0,  /* Obj_Automatic                Attr_Target             */
05000             0,  /* Obj_Automatic                Attr_Equivalence        */
05001           550,  /* Obj_Automatic                Attr_Save               */
05002             0,  /* Obj_Automatic                Attr_Pointer            */
05003           550,  /* Obj_Automatic                Attr_External           */
05004           550,  /* Obj_Automatic                Attr_Intrinsic          */
05005           550,  /* Obj_Automatic                Attr_Data_Init          */
05006             0,  /* Obj_Automatic                Attr_Type               */
05007           550,  /* Obj_Automatic                Attr_Co_Array           */
05008             0,  /* Obj_Automatic                Attr_Automatic          */
05009             0   /* Obj_Automatic                Attr_Volatile           */
05010         },
05011 
05012 
05013         /************************ Obj_Pointer ***************************/
05014         /* Cannot have the INTENT or PARAMETER attributes.  If it is an */
05015         /* array, it must be a deferred shape one. (5.2.7 constraints)  */
05016         /* Cannot be ALLOCATABLE, EXTERNAL, TARGET, or INTRINSIC. (5.1) */
05017         /****************************************************************/
05018 
05019         {   0,  /* Obj_Pointer                  Attr_Assumed_Type_Ch    */
05020                 /* Assumed type character can be a darg or a function   */
05021                 /* result.      A pointer can be either of these also.  */
05022 
05023             0,  /* Obj_Pointer                  Attr_Dimension          */
05024           550,  /* Obj_Pointer                  Attr_Explicit_Shp_Arr   */
05025           550,  /* Obj_Pointer                  Attr_Assumed_Size_Arr   */
05026                 /* (5.2.7) Pointer must be a deferred shape array.      */
05027                 
05028             0,  /* Obj_Pointer                  Attr_Deferred_Shp_Arr   */
05029 
05030           550,  /* Obj_Pointer                  Attr_Assumed_Shp_Arr    */
05031                 /* (5.2.7) Pointer must be a deferred shape array.      */
05032 
05033           550,  /* Obj_Pointer                  Attr_Allocatable        */
05034                 /* 5.1 constraint                                       */
05035 
05036           550,  /* Obj_Pointer                  Attr_Parameter          */
05037           550,  /* Obj_Pointer                  Attr_Intent             */
05038                 /* 5.2.7                                                */
05039 
05040             0,  /* Obj_Pointer                  Attr_Optional           */
05041             0,  /* Obj_Pointer                  Attr_Private            */
05042             0,  /* Obj_Pointer                  Attr_Public             */
05043 
05044           550,  /* Obj_Pointer                  Attr_Target             */
05045                 /* Constraint 5.1 - illegal                             */
05046 
05047           550,  /* Obj_Pointer                  Attr_Equivalence        */
05048                 /* 5.5.1 constraint                                     */
05049 
05050             0,  /* Obj_Pointer                  Attr_Save               */
05051                 /* Assumed to be legal, because of rules in the         */
05052                 /* standard about the allocation status of a pointer    */
05053                 /* or allocatable array, if the object has the save     */
05054                 /* attribute. (6.3.3.1)                                 */
05055 
05056             0,  /* Obj_Pointer                  Attr_Pointer            */
05057                 /* Double definition (5.1)              ANSI            */
05058 
05059           550,  /* Obj_Pointer                  Attr_External           */
05060           550,  /* Obj_Pointer                  Attr_Intrinsic          */
05061                 /* 5.1 constraint                                       */
05062 
05063             0,  /* Obj_Pointer                  Attr_Data_Init          */
05064                 /* 5.2.9 discussion - extension  now                    */
05065 
05066             0,  /* Obj_Pointer                  Attr_Type               */
05067           550,  /* Obj_Pointer                  Attr_Co_Array           */
05068             0,  /* Obj_Pointer                  Attr_Automatic          */
05069             0   /* Obj_Pointer                  Attr_Volatile           */
05070         },
05071 
05072 
05073         /************************ Obj_Dcl_Extern ************************/
05074         /* External-name must be the name of an external procedure, a   */
05075         /* darg, or a block data program unit.                          */
05076         /****************************************************************/
05077 
05078         {   0,  /* Obj_Dcl_Extern               Attr_Assumed_Type_Ch    */
05079           550,  /* Obj_Dcl_Extern               Attr_Dimension          */
05080           550,  /* Obj_Dcl_Extern               Attr_Explicit_Shp_Arr   */
05081           550,  /* Obj_Dcl_Extern               Attr_Assumed_Size_Arr   */
05082           550,  /* Obj_Dcl_Extern               Attr_Deferred_Shp_Arr   */
05083           550,  /* Obj_Dcl_Extern               Attr_Assumed_Shp_Arr    */
05084           550,  /* Obj_Dcl_Extern               Attr_Allocatable        */
05085                 /*      (12.3.1.1) If a procedure has an array-valued   */
05086                 /* result, it must have an explicit interface.  An      */
05087                 /* explicit interface for an external subprogram must   */
05088                 /* be specified in an interface block.  (12.3.1)        */
05089 
05090 
05091           550,  /* Obj_Dcl_Extern               Attr_Parameter          */
05092                 /* 5.1 constraint                                       */
05093 
05094           550,  /* Obj_Dcl_Extern               Attr_Intent             */
05095                 /* 5.1.2.3 constraint                                   */
05096 
05097             0,  /* Obj_Dcl_Extern               Attr_Optional           */
05098             0,  /* Obj_Dcl_Extern               Attr_Private            */
05099             0,  /* Obj_Dcl_Extern               Attr_Public             */
05100 
05101           550,  /* Obj_Dcl_Extern               Attr_Target             */
05102                 /* Constraint 5.1 - illegal                             */
05103 
05104           550,  /* Obj_Dcl_Extern               Attr_Equivalence        */
05105                 /* This must be a variable (5.5.1).     Variables and   */
05106                 /* externals cannot have the same name. (14.1.2)        */
05107 
05108           550,  /* Obj_Dcl_Extern               Attr_Save               */
05109                 /* (5.2.4)                                              */
05110 
05111           550,  /* Obj_Dcl_Extern               Attr_Pointer            */
05112             0,  /* Obj_Dcl_Extern               Attr_External           */
05113           550,  /* Obj_Dcl_Extern               Attr_Intrinsic          */
05114                 /* 5.1 - constraint - also duplicate defines.   ANSI    */
05115 
05116           550,  /* Obj_Dcl_Extern               Attr_Data_Init          */
05117                 /* This must be a variable (5.2.9).     Variables and   */
05118                 /* externals cannot have the same name. (14.1.2)        */
05119         
05120             0,  /* Obj_Dcl_Extern               Attr_Type               */
05121 
05122           550,  /* Obj_Dcl_Extern               Attr_Co_Array           */
05123           550,  /* Obj_Dcl_Extern               Attr_Automatic          */
05124           550   /* Obj_Dcl_Extenr               Attr_Volatile           */
05125         },
05126 
05127 
05128         /************************ Obj_Dcl_Intrin ************************/
05129         /* Intrinsic-name must be the name of an intrinsic procedure.   */
05130         /****************************************************************/
05131 
05132         { 550,  /* Obj_Dcl_Intrin               Attr_Assumed_Type_Ch    */
05133                 /* This ends up being illegal because only current      */
05134                 /* function being compiled can be typed as assumed      */
05135                 /* type character.                                      */
05136 
05137           550,  /* Obj_Dcl_Intrin               Attr_Dimension          */
05138           550,  /* Obj_Dcl_Intrin               Attr_Explicit_Shp_Arr   */
05139                 /* 5.1 discussion only mentions type, not shape.        */
05140 
05141           550,  /* Obj_Dcl_Intrin               Attr_Assumed_Size_Arr   */
05142                 /* Intrinsic and dargs are distinct     (14.1.2)        */
05143 
05144           550,  /* Obj_Dcl_Intrin               Attr_Deferred_Shp_Arr   */
05145                 /* Deferred shape can only be allocatable or pointer.   */
05146                 /* Allocatable can't be a function result.      Pointer */
05147                 /* and INTERNAL are prohibited. (5.1.2.4.3 and 5.1)     */
05148 
05149           550,  /* Obj_Dcl_Intrin               Attr_Assumed_Shp_Arr    */
05150                 /* Intrinsic and dargs are distinct     (14.1.2)        */
05151 
05152           550,  /* Obj_Dcl_Intrin               Attr_Allocatable        */
05153                 /* This can't be a function result. (5.1)               */
05154 
05155           550,  /* Obj_Dcl_Intrin               Attr_Parameter          */
05156                 /* 5.1 constraint                                       */
05157 
05158           550,  /* Obj_Dcl_Intrin               Attr_Intent             */
05159           550,  /* Obj_Dcl_Intrin               Attr_Optional           */
05160                 /* Dargs and intrinsic procedures are distinct 14.1.2   */
05161 
05162             0,  /* Obj_Dcl_Intrin               Attr_Private            */
05163             0,  /* Obj_Dcl_Intrin               Attr_Public             */
05164 
05165           550,  /* Obj_Dcl_Intrin               Attr_Target             */
05166                 /* Constraint 5.1 - illegal                             */
05167 
05168           550,  /* Obj_Dcl_Intrin               Attr_Equivalence        */
05169                 /* Variables and intrinsic procs are distinct 14.1.2    */
05170                 
05171           550,  /* Obj_Dcl_Intrin               Attr_Save               */
05172                 /* (5.2.4)                                              */
05173 
05174           550,  /* Obj_Dcl_Intrin               Attr_Pointer            */
05175           550,  /* Obj_Dcl_Intrin               Attr_External           */
05176             0,  /* Obj_Dcl_Intrin               Attr_Intrinsic          */
05177           550,  /* Obj_Dcl_Intrin               Attr_Data_Init          */
05178                 /* 5.1 constraint or duplicate definition.      ANSI    */
05179 
05180             0,  /* Obj_Dcl_Intrin               Attr_Type               */
05181           550,  /* Obj_Dcl_Intrin               Attr_Co_Array           */
05182           550,  /* Obj_Dcl_Intrin               Attr_Automatic          */
05183           550   /* Obj_Dcl_Intrin               Attr_Volatile           */
05184 
05185         },
05186 
05187 
05188         /************************ Obj_Data_Init *************************/
05189         /* The = initialization-expr must not appear if object-name is  */
05190         /* a darg, a function result, an object in a named common block */
05191         /* unless the type declaration is in a block data program unit, */
05192         /* an object in blank common, an allocatable array, a pointer,  */
05193         /* an external name, an intrinsic name, or an automatic object. */
05194         /* (5.1 constraint)                                             */
05195         /****************************************************************/
05196 
05197         {  550, /* Obj_Data_Init                Attr_Assumed_Type_Ch    */
05198                 /* An assumed type char may only be a darg, constant,   */
05199                 /* or func rslt.  (5.1.1.5)  An object that is data     */
05200                 /* initialized may not be any of these. (5.1)           */
05201 
05202             0,  /* Obj_Data_Init                Attr_Dimension          */
05203             0,  /* Obj_Data_Init                Attr_Explicit_Shp_Arr   */
05204 
05205           550,  /* Obj_Data_Init                Attr_Assumed_Size_Arr   */
05206             0,  /* Obj_Data_Init                Attr_Deferred_Shp_Arr   */
05207           550,  /* Obj_Data_Init                Attr_Assumed_Shp_Arr    */
05208           550,  /* Obj_Data_Init                Attr_Allocatable        */
05209                 /* 5.1 - dargs, pointer and allocatable.                */
05210           550,  /* Obj_Data_Init                Attr_Parameter          */
05211                 /* Variables and constants are distinct(5.2.9, 14.1.2)  */
05212 
05213           550,  /* Obj_Data_Init                Attr_Intent             */
05214           550,  /* Obj_Data_Init                Attr_Optional           */
05215                 /* Can't be a darg. (5.1)                               */
05216 
05217             0,  /* Obj_Data_Init                Attr_Private            */
05218             0,  /* Obj_Data_Init                Attr_Public             */
05219             0,  /* Obj_Data_Init                Attr_Target             */
05220             0,  /* Obj_Data_Init                Attr_Equivalence        */
05221             0,  /* Obj_Data_Init                Attr_Save               */
05222 
05223             0,  /* Obj_Data_Init                Attr_Pointer            */
05224           550,  /* Obj_Data_Init                Attr_External           */
05225           550,  /* Obj_Data_Init                Attr_Intrinsic          */
05226                 /* 5.1 constraint                                       */
05227 
05228             0,  /* Obj_Data_Init                Attr_Data_Init          */
05229             0,  /* Obj_Data_Init                Attr_Type               */
05230 
05231             0,  /* Obj_Data_Init                Attr_Co_Array           */
05232           550,  /* Obj_Data_Init                Attr_Automatic          */
05233             0   /* Obj_Data_Init                Attr_Volatile           */
05234         },
05235 
05236 
05237         /************************ Obj_Typed *****************************/
05238         /* This must be an object (which is a constant or a variable)   */
05239         /* (2.4.3.1) or an external function, an intrinsic function, a  */
05240         /* function dummy procedure or a statement function.            */
05241         /* Actually you can type an internal or module function also,   */
05242         /* but strict adherence to the standard forces this typing to   */
05243         /* be on the FUNCTION statement, not the type declaration stmt  */
05244         /****************************************************************/
05245 
05246         {  550, /* Obj_Typed                    Attr_Assumed_Type_Ch    */
05247                 /* Assumed type character can not be an implicit type.  */
05248                 /* (5.1.1.5).   An item cannot be typed twice. (5.1)    */
05249 
05250             0,  /* Obj_Typed                    Attr_Dimension          */
05251             0,  /* Obj_Typed                    Attr_Explicit_Shp_Arr   */
05252             0,  /* Obj_Typed                    Attr_Assumed_Size_Arr   */
05253             0,  /* Obj_Typed                    Attr_Deferred_Shp_Arr   */
05254             0,  /* Obj_Typed                    Attr_Assumed_Shp_Arr    */
05255             0,  /* Obj_Typed                    Attr_Allocatable        */
05256             0,  /* Obj_Typed                    Attr_Parameter          */
05257             0,  /* Obj_Typed                    Attr_Intent             */
05258             0,  /* Obj_Typed                    Attr_Optional           */
05259             0,  /* Obj_Typed                    Attr_Private            */
05260             0,  /* Obj_Typed                    Attr_Public             */
05261             0,  /* Obj_Typed                    Attr_Target             */
05262             0,  /* Obj_Typed                    Attr_Equivalence        */
05263             0,  /* Obj_Typed                    Attr_Save               */
05264             0,  /* Obj_Typed                    Attr_Pointer            */
05265             0,  /* Obj_Typed                    Attr_External           */
05266             0,  /* Obj_Typed                    Attr_Intrinsic          */
05267             0,  /* Obj_Typed                    Attr_Data_Init          */
05268             0,  /* Obj_Typed                    Attr_Type               */
05269                 /* Defining twice - (5.1)                       ANSI    */
05270 
05271             0,  /* Obj_Typed                    Attr_Automatic          */
05272             0,  /* Obj_Typed                    Attr_Co_Array           */
05273             0   /* Obj_Typed                    Attr_Volatile           */
05274         },
05275 
05276         /************************ Obj_Volatile  *************************/
05277         /* This is an extension and can be any kind of variable.        */
05278         /****************************************************************/
05279 
05280         {   0,  /* Obj_Volatile                 Attr_Assumed_Type_Ch    */
05281             0,  /* Obj_Volatile                 Attr_Dimension          */
05282             0,  /* Obj_Volatile                 Attr_Explicit_Shp_Arr   */
05283             0,  /* Obj_Volatile                 Attr_Assumed_Size_Arr   */
05284             0,  /* Obj_Volatile                 Attr_Deferred_Shp_Arr   */
05285             0,  /* Obj_Volatile                 Attr_Assumed_Shp_Arr    */
05286             0,  /* Obj_Volatile                 Attr_Allocatable        */
05287           550,  /* Obj_Volatile                 Attr_Parameter          */
05288             0,  /* Obj_Volatile                 Attr_Intent             */
05289             0,  /* Obj_Volatile                 Attr_Optional           */
05290             0,  /* Obj_Volatile                 Attr_Private            */
05291             0,  /* Obj_Volatile                 Attr_Public             */
05292             0,  /* Obj_Volatile                 Attr_Target             */
05293             0,  /* Obj_Volatile                 Attr_Equivalence        */
05294             0,  /* Obj_Volatile                 Attr_Save               */
05295             0,  /* Obj_Volatile                 Attr_Pointer            */
05296           550,  /* Obj_Volatile                 Attr_External           */
05297           550,  /* Obj_Volatile                 Attr_Intrinsic          */
05298             0,  /* Obj_Volatile                 Attr_Data_Init          */
05299             0,  /* Obj_Volatile                 Attr_Type               */
05300             0,  /* Obj_Volatile                 Attr_Co_Array           */
05301             0,  /* Obj_Volatile                 Attr_Automatic          */
05302             0   /* Obj_Volatile                 Attr_Volatile           */
05303         },
05304 
05305         /******************* Obj_Copy_Assumed_Shape *********************/
05306         /****************************************************************/
05307 
05308         {   0,  /* Obj_Copy_Assumed_Shape       Attr_Assumed_Type_Ch    */
05309             0,  /* Obj_Copy_Assumed_Shape       Attr_Dimension          */
05310          1441,  /* Obj_Copy_Assumed_Shape       Attr_Explicit_Shp_Arr   */
05311          1441,  /* Obj_Copy_Assumed_Shape       Attr_Assumed_Size_Arr   */
05312             0,  /* Obj_Copy_Assumed_Shape       Attr_Deferred_Shp_Arr   */
05313             0,  /* Obj_Copy_Assumed_Shape       Attr_Assumed_Shp_Arr    */
05314          1441,  /* Obj_Copy_Assumed_Shape       Attr_Allocatable        */
05315          1441,  /* Obj_Copy_Assumed_Shape       Attr_Parameter          */
05316             0,  /* Obj_Copy_Assumed_Shape       Attr_Intent             */
05317             0,  /* Obj_Copy_Assumed_Shape       Attr_Optional           */
05318             0,  /* Obj_Copy_Assumed_Shape       Attr_Private            */
05319             0,  /* Obj_Copy_Assumed_Shape       Attr_Public             */
05320          1441,  /* Obj_Copy_Assumed_Shape       Attr_Target             */
05321          1441,  /* Obj_Copy_Assumed_Shape       Attr_Equivalence        */
05322          1441,  /* Obj_Copy_Assumed_Shape       Attr_Save               */
05323          1441,  /* Obj_Copy_Assumed_Shape       Attr_Pointer            */
05324          1441,  /* Obj_Copy_Assumed_Shape       Attr_External           */
05325          1441,  /* Obj_Copy_Assumed_Shape       Attr_Intrinsic          */
05326          1441,  /* Obj_Copy_Assumed_Shape       Attr_Data_Init          */
05327             0,  /* Obj_Copy_Assumed_Shape       Attr_Type               */
05328          1441,  /* Obj_Copy_Assumed_Shape       Attr_Co_Array           */
05329          1441,  /* Obj_Copy_Assumed_Shape       Attr_Automatic          */
05330             0   /* Obj_Copy_Assumed_Shape       Attr_Volatile           */
05331         },
05332 
05333 
05334         /************************ Obj_Auxiliary *************************/
05335         /* Cray extension - Rules come from the CFT77 manual.           */
05336         /* This must be a non-character array.  It can be a dummy arg, */
05337         /* but cannot be a function result.     It should not be mixed  */
05338         /* with Fortran 90.                                             */
05339         /***************************************************************/
05340 
05341         {1441,  /* Obj_Auxiliary                Attr_Assumed_Type_Ch    */
05342                 /* Definition says cannot be character.                 */
05343 
05344             0,  /* Obj_Auxiliary                Attr_Dimension          */
05345             0,  /* Obj_Auxiliary                Attr_Explicit_Shp_Arr   */
05346             0,  /* Obj_Auxiliary                Attr_Assumed_Size_Arr   */
05347 
05348          1441,  /* Obj_Auxiliary                Attr_Deferred_Shp_Arr   */
05349          1441,  /* Obj_Auxiliary                Attr_Assumed_Shp_Arr    */
05350          1441,  /* Obj_Auxiliary                Attr_Allocatable        */
05351                 /* Cray extension - do not mix with Fortran 90          */
05352 
05353          1441,  /* Obj_Auxiliary                Attr_Parameter          */
05354                 /* Storage definition prohibits this.                   */
05355 
05356             0,  /* Obj_Auxiliary                Attr_Intent             */
05357             0,  /* Obj_Auxiliary                Attr_Optional           */
05358             0,  /* Obj_Auxiliary                Attr_Private            */
05359             0,  /* Obj_Auxiliary                Attr_Public             */
05360 
05361          1441,  /* Obj_Auxiliary                Attr_Target             */
05362                 /* Cray extension - do not mix with Fortran 90          */
05363 
05364             0,  /* Obj_Auxiliary                Attr_Equivalence        */
05365          1441,  /* Obj_Auxiliary                Attr_Save               */
05366                 /* cft77 does allow this, but cft90 will disallow it.   */
05367                 /* Something can't be in 2 seperate storage groups.     */
05368 
05369          1441,  /* Obj_Auxiliary                Attr_Pointer            */
05370                 /* Cray extension - do not mix with Fortran 90          */
05371 
05372          1441,  /* Obj_Auxiliary                Attr_External           */
05373          1441,  /* Obj_Auxiliary                Attr_Intrinsic          */
05374          1441,  /* Obj_Auxiliary                Attr_Data_Init          */
05375                 /* These are disallowed by cft77.                       */
05376 
05377             0,  /* Obj_Auxiliary                Attr_Type               */
05378 
05379          1441,  /* Obj_Auxiliary                Attr_Co_Array           */
05380          1441,  /* Obj_Auxiliary                Attr_Automatic          */
05381             0   /* Obj_Auxiliary                Attr_Volatile           */
05382         },
05383 
05384         /************************ Obj_Vfunction *************************/
05385         /* This is a Cray extension.    It must be an external function,*/
05386         /* but cannot be declared EXTERNAL.  (From cft77 documentation) */
05387         /****************************************************************/
05388 
05389         {1441,  /* Obj_Vfunction                Attr_Assumed_Type_Ch    */
05390          1441,  /* Obj_Vfunction                Attr_Dimension          */
05391          1441,  /* Obj_Vfunction                Attr_Explicit_Shp_Arr   */
05392          1441,  /* Obj_Vfunction                Attr_Assumed_Size_Arr   */
05393          1441,  /* Obj_Vfunction                Attr_Deferred_Shp_Arr   */
05394          1441,  /* Obj_Vfunction                Attr_Assumed_Shp_Arr    */
05395          1441,  /* Obj_Vfunction                Attr_Allocatable        */
05396          1441,  /* Obj_Vfunction                Attr_Parameter          */
05397          1441,  /* Obj_Vfunction                Attr_Intent             */
05398          1441,  /* Obj_Vfunction                Attr_Optional           */
05399             0,  /* Obj_Vfunction                Attr_Private            */
05400             0,  /* Obj_Vfunction                Attr_Public             */
05401          1441,  /* Obj_Vfunction                Attr_Target             */
05402          1441,  /* Obj_Vfunction                Attr_Equivalence        */
05403          1441,  /* Obj_Vfunction                Attr_Save               */
05404          1441,  /* Obj_Vfunction                Attr_Pointer            */
05405          1441,  /* Obj_Vfunction                Attr_External           */
05406          1441,  /* Obj_Vfunction                Attr_Intrinsic          */
05407          1441,  /* Obj_Vfunction                Attr_Data_Init          */
05408             0,  /* Obj_Vfunction                Attr_Type               */
05409          1441,  /* Obj_Vfunction                Attr_Co_Array           */
05410          1441,  /* Obj_Vfunction                Attr_Automatic          */
05411          1441   /* Obj_Vfunction                Attr_Volatile           */
05412         },
05413 
05414 
05415         /************************ Obj_No_Side_Effects   *****************/
05416         /* This is a Cray extension.  It must be an external function,  */
05417         /* and must not be a dummy procedure.   (From cft77 doc)        */
05418         /****************************************************************/
05419 
05420         {   0,  /* Obj_No_Side_Effects          Attr_Assumed_Type_Ch    */
05421             0,  /* Obj_No_Side_Effects          Attr_Dimension          */
05422             0,  /* Obj_No_Side_Effects          Attr_Explicit_Shp_Arr   */
05423          1441,  /* Obj_No_Side_Effects          Attr_Assumed_Size_Arr   */
05424             0,  /* Obj_No_Side_Effects          Attr_Deferred_Shp_Arr   */
05425          1441,  /* Obj_No_Side_Effects          Attr_Assumed_Shp_Arr    */
05426          1441,  /* Obj_No_Side_Effects          Attr_Allocatable        */
05427          1441,  /* Obj_No_Side_Effects          Attr_Parameter          */
05428          1441,  /* Obj_No_Side_Effects          Attr_Intent             */
05429          1441,  /* Obj_No_Side_Effects          Attr_Optional           */
05430             0,  /* Obj_No_Side_Effects          Attr_Private            */
05431             0,  /* Obj_No_Side_Effects          Attr_Public             */
05432             0,  /* Obj_No_Side_Effects          Attr_Target             */
05433          1441,  /* Obj_No_Side_Effects          Attr_Equivalence        */
05434          1441,  /* Obj_No_Side_Effects          Attr_Save               */
05435             0,  /* Obj_No_Side_Effects          Attr_Pointer            */
05436             0,  /* Obj_No_Side_Effects          Attr_External           */
05437          1441,  /* Obj_No_Side_Effects          Attr_Intrinsic          */
05438          1441,  /* Obj_No_Side_Effects          Attr_Data_Init          */
05439             0,  /* Obj_No_Side_Effects          Attr_Type               */
05440          1441,  /* Obj_No_Side_Effects          Attr_Co_Array           */
05441          1441,  /* Obj_No_Side_Effects          Attr_Automatic          */
05442          1441   /* Obj_No_Side_Effects          Attr_Volatile           */
05443         },
05444 
05445         /************************ Obj_Symmetric *************************/
05446         /* This is a Cray extension.    Must be a local stack variable. */
05447         /****************************************************************/
05448 
05449         {1441,  /* Obj_Symmetric                Attr_Assumed_Type_Ch    */
05450             0,  /* Obj_Symmetric                Attr_Dimension          */
05451             0,  /* Obj_Symmetric                Attr_Explicit_Shp_Arr   */
05452          1441,  /* Obj_Symmetric                Attr_Assumed_Size_Arr   */
05453          1441,  /* Obj_Symmetric                Attr_Deferred_Shp_Arr   */
05454          1441,  /* Obj_Symmetric                Attr_Assumed_Shp_Arr    */
05455          1441,  /* Obj_Symmetric                Attr_Allocatable        */
05456          1441,  /* Obj_Symmetric                Attr_Parameter          */
05457          1441,  /* Obj_Symmetric                Attr_Intent             */
05458          1441,  /* Obj_Symmetric                Attr_Optional           */
05459             0,  /* Obj_Symmetric                Attr_Private            */
05460             0,  /* Obj_Symmetric                Attr_Public             */
05461          1441,  /* Obj_Symmetric                Attr_Target             */
05462          1441,  /* Obj_Symmetric                Attr_Equivalence        */
05463          1441,  /* Obj_Symmetric                Attr_Save               */
05464          1441,  /* Obj_Symmetric                Attr_Pointer            */
05465          1441,  /* Obj_Symmetric                Attr_External           */
05466          1441,  /* Obj_Symmetric                Attr_Intrinsic          */
05467          1441,  /* Obj_Symmetric                Attr_Data_Init          */
05468             0,  /* Obj_Symmetric                Attr_Type               */
05469          1441,  /* Obj_Symmetric                Attr_Co_Array           */
05470          1441,  /* Obj_Symmetric                Attr_Automatic          */
05471             0   /* Obj_Symmetric                Attr_Volatile           */
05472         },
05473 
05474 
05475         /************************** Obj_Inline  *************************/
05476         /* This is a Cray extension.                                    */
05477         /****************************************************************/
05478 
05479         {   0,  /* Obj_Inline                   Attr_Assumed_Type_Ch    */
05480             0,  /* Obj_Inline                   Attr_Dimension          */
05481             0,  /* Obj_Inline                   Attr_Explicit_Shp_Arr   */
05482          1441,  /* Obj_Inline                   Attr_Assumed_Size_Arr   */
05483             0,  /* Obj_Inline                   Attr_Deferred_Shp_Arr   */
05484          1441,  /* Obj_Inline                   Attr_Assumed_Shp_Arr    */
05485          1441,  /* Obj_Inline                   Attr_Allocatable        */
05486          1441,  /* Obj_Inline                   Attr_Parameter          */
05487          1441,  /* Obj_Inline                   Attr_Intent             */
05488          1441,  /* Obj_Inline                   Attr_Optional           */
05489             0,  /* Obj_Inline                   Attr_Private            */
05490             0,  /* Obj_Inline                   Attr_Public             */
05491             0,  /* Obj_Inline                   Attr_Target             */
05492          1441,  /* Obj_Inline                   Attr_Equivalence        */
05493          1441,  /* Obj_Inline                   Attr_Save               */
05494             0,  /* Obj_Inline                   Attr_Pointer            */
05495             0,  /* Obj_Inline                   Attr_External           */
05496             0,  /* Obj_Inline                   Attr_Intrinsic          */
05497          1441,  /* Obj_Inline                   Attr_Data_Init          */
05498             0,  /* Obj_Inline                   Attr_Type               */
05499          1441,  /* Obj_Inline                   Attr_Co_Array           */
05500             0,  /* Obj_Inline                   Attr_Automatic          */
05501          1441   /* Obj_Inline                   Attr_Volatile           */
05502         },
05503 
05504 
05505         /************************** Obj_Ipa *****************************/
05506         /* This is a Cray extension.                                    */
05507         /****************************************************************/
05508 
05509         {   0,  /* Obj_Ipa                      Attr_Assumed_Type_Ch    */
05510             0,  /* Obj_Ipa                      Attr_Dimension          */
05511             0,  /* Obj_Ipa                      Attr_Explicit_Shp_Arr   */
05512          1441,  /* Obj_Ipa                      Attr_Assumed_Size_Arr   */
05513             0,  /* Obj_Ipa                      Attr_Deferred_Shp_Arr   */
05514          1441,  /* Obj_Ipa                      Attr_Assumed_Shp_Arr    */
05515          1441,  /* Obj_Ipa                      Attr_Allocatable        */
05516          1441,  /* Obj_Ipa                      Attr_Parameter          */
05517          1441,  /* Obj_Ipa                      Attr_Intent             */
05518          1441,  /* Obj_Ipa                      Attr_Optional           */
05519             0,  /* Obj_Ipa                      Attr_Private            */
05520             0,  /* Obj_Ipa                      Attr_Public             */
05521             0,  /* Obj_Ipa                      Attr_Target             */
05522          1441,  /* Obj_Ipa                      Attr_Equivalence        */
05523          1441,  /* Obj_Ipa                      Attr_Save               */
05524             0,  /* Obj_Ipa                      Attr_Pointer            */
05525             0,  /* Obj_Ipa                      Attr_External           */
05526             0,  /* Obj_Ipa                      Attr_Intrinsic          */
05527          1441,  /* Obj_Ipa                      Attr_Data_Init          */
05528             0,  /* Obj_Ipa                      Attr_Type               */
05529          1441,  /* Obj_Ipa                      Attr_Co_Array           */
05530             0,  /* Obj_Ipa                      Attr_Automatic          */
05531          1441   /* Obj_Ipa                      Attr_Volatile           */
05532         },
05533 
05534 
05535         /************************* Obj_Align_Symbol *********************/
05536         /* This is an SGI extension.                                    */
05537         /****************************************************************/
05538 
05539         {1441,  /* Obj_Align_Symbol             Attr_Assumed_Type_Ch    */
05540             0,  /* Obj_Align_Symbol             Attr_Dimension          */
05541             0,  /* Obj_Align_Symbol             Attr_Explicit_Shp_Arr   */
05542          1441,  /* Obj_Align_Symbol             Attr_Assumed_Size_Arr   */
05543             0,  /* Obj_Align_Symbol             Attr_Deferred_Shp_Arr   */
05544          1441,  /* Obj_Align_Symbol             Attr_Assumed_Shp_Arr    */
05545          1441,  /* Obj_Align_Symbol             Attr_Allocatable        */
05546          1441,  /* Obj_Align_Symbol             Attr_Parameter          */
05547          1441,  /* Obj_Align_Symbol             Attr_Intent             */
05548          1441,  /* Obj_Align_Symbol             Attr_Optional           */
05549             0,  /* Obj_Align_Symbol             Attr_Private            */
05550             0,  /* Obj_Align_Symbol             Attr_Public             */
05551             0,  /* Obj_Align_Symbol             Attr_Target             */
05552          1441,  /* Obj_Align_Symbol             Attr_Equivalence        */
05553             0,  /* Obj_Align_Symbol             Attr_Save               */
05554             0,  /* Obj_Align_Symbol             Attr_Pointer            */
05555          1441,  /* Obj_Align_Symbol             Attr_External           */
05556          1441,  /* Obj_Align_Symbol             Attr_Intrinsic          */
05557             0,  /* Obj_Align_Symbol             Attr_Data_Init          */
05558             0,  /* Obj_Align_Symbol             Attr_Type               */
05559          1441,  /* Obj_Align_Symbol             Attr_Co_Array           */
05560             0,  /* Obj_Align_Symbol             Attr_Automatic          */
05561             0   /* Obj_Align_Symbol             Attr_Volatile           */
05562         },
05563 
05564         /************************* Obj_Fill_Symbol **********************/
05565         /* This is an SGI extension.                                    */
05566         /****************************************************************/
05567 
05568         {1441,  /* Obj_Fill_Symbol              Attr_Assumed_Type_Ch    */
05569             0,  /* Obj_Fill_Symbol              Attr_Dimension          */
05570             0,  /* Obj_Fill_Symbol              Attr_Explicit_Shp_Arr   */
05571          1441,  /* Obj_Fill_Symbol              Attr_Assumed_Size_Arr   */
05572             0,  /* Obj_Fill_Symbol              Attr_Deferred_Shp_Arr   */
05573          1441,  /* Obj_Fill_Symbol              Attr_Assumed_Shp_Arr    */
05574          1441,  /* Obj_Fill_Symbol              Attr_Allocatable        */
05575          1441,  /* Obj_Fill_Symbol              Attr_Parameter          */
05576          1441,  /* Obj_Fill_Symbol              Attr_Intent             */
05577          1441,  /* Obj_Fill_Symbol              Attr_Optional           */
05578             0,  /* Obj_Fill_Symbol              Attr_Private            */
05579             0,  /* Obj_Fill_Symbol              Attr_Public             */
05580             0,  /* Obj_Fill_Symbol              Attr_Target             */
05581          1441,  /* Obj_Fill_Symbol              Attr_Equivalence        */
05582             0,  /* Obj_Fill_Symbol              Attr_Save               */
05583             0,  /* Obj_Fill_Symbol              Attr_Pointer            */
05584          1441,  /* Obj_Fill_Symbol              Attr_External           */
05585          1441,  /* Obj_Fill_Symbol              Attr_Intrinsic          */
05586             0,  /* Obj_Fill_Symbol              Attr_Data_Init          */
05587             0,  /* Obj_Fill_Symbol              Attr_Type               */
05588          1441,  /* Obj_Fill_Symbol              Attr_Co_Array           */
05589             0,  /* Obj_Fill_Symbol              Attr_Automatic          */
05590             0   /* Obj_Fill_Symbol              Attr_Volatile           */
05591         },
05592 
05593         /************************* Obj_Section_Gp ***********************/
05594         /* This is an SGI extension.                                    */
05595         /****************************************************************/
05596 
05597         {1441,  /* Obj_Section_Gp               Attr_Assumed_Type_Ch    */
05598             0,  /* Obj_Section_Gp               Attr_Dimension          */
05599             0,  /* Obj_Section_Gp               Attr_Explicit_Shp_Arr   */
05600          1441,  /* Obj_Section_Gp               Attr_Assumed_Size_Arr   */
05601             0,  /* Obj_Section_Gp               Attr_Deferred_Shp_Arr   */
05602          1441,  /* Obj_Section_Gp               Attr_Assumed_Shp_Arr    */
05603          1441,  /* Obj_Section_Gp               Attr_Allocatable        */
05604          1441,  /* Obj_Section_Gp               Attr_Parameter          */
05605          1441,  /* Obj_Section_Gp               Attr_Intent             */
05606          1441,  /* Obj_Section_Gp               Attr_Optional           */
05607             0,  /* Obj_Section_Gp               Attr_Private            */
05608             0,  /* Obj_Section_Gp               Attr_Public             */
05609             0,  /* Obj_Section_Gp               Attr_Target             */
05610             0,  /* Obj_Section_Gp               Attr_Equivalence        */
05611             0,  /* Obj_Section_Gp               Attr_Save               */
05612             0,  /* Obj_Section_Gp               Attr_Pointer            */
05613          1441,  /* Obj_Section_Gp               Attr_External           */
05614          1441,  /* Obj_Section_Gp               Attr_Intrinsic          */
05615             0,  /* Obj_Section_Gp               Attr_Data_Init          */
05616             0,  /* Obj_Section_Gp               Attr_Type               */
05617          1441,  /* Obj_Section_Gp               Attr_Co_Array           */
05618          1441,  /* Obj_Section_Gp               Attr_Automatic          */
05619             0   /* Obj_Section_Gp               Attr_Volatile           */
05620         },
05621 
05622         /********************** Obj_Section_Non_Gp **********************/
05623         /* This is an SGI extension.                                    */
05624         /****************************************************************/
05625 
05626         {1441,  /* Obj_Section_Non_Gp           Attr_Assumed_Type_Ch    */
05627             0,  /* Obj_Section_Non_Gp           Attr_Dimension          */
05628             0,  /* Obj_Section_Non_Gp           Attr_Explicit_Shp_Arr   */
05629          1441,  /* Obj_Section_Non_Gp           Attr_Assumed_Size_Arr   */
05630             0,  /* Obj_Section_Non_Gp           Attr_Deferred_Shp_Arr   */
05631          1441,  /* Obj_Section_Non_Gp           Attr_Assumed_Shp_Arr    */
05632          1441,  /* Obj_Section_Non_Gp           Attr_Allocatable        */
05633          1441,  /* Obj_Section_Non_Gp           Attr_Parameter          */
05634          1441,  /* Obj_Section_Non_Gp           Attr_Intent             */
05635          1441,  /* Obj_Section_Non_Gp           Attr_Optional           */
05636             0,  /* Obj_Section_Non_Gp           Attr_Private            */
05637             0,  /* Obj_Section_Non_Gp           Attr_Public             */
05638             0,  /* Obj_Section_Non_Gp           Attr_Target             */
05639             0,  /* Obj_Section_Non_Gp           Attr_Equivalence        */
05640             0,  /* Obj_Section_Non_Gp           Attr_Save               */
05641             0,  /* Obj_Section_Non_Gp           Attr_Pointer            */
05642          1441,  /* Obj_Section_Non_Gp           Attr_External           */
05643          1441,  /* Obj_Section_Non_Gp           Attr_Intrinsic          */
05644             0,  /* Obj_Section_Non_Gp           Attr_Data_Init          */
05645             0,  /* Obj_Section_Non_Gp           Attr_Type               */
05646          1441,  /* Obj_Section_Non_Gp           Attr_Co_Array           */
05647          1441,  /* Obj_Section_Non_Gp           Attr_Automatic          */
05648             0   /* Obj_Section_Non_Gp           Attr_Volatile           */
05649         },
05650 
05651         /************************ Obj_Ingore_TKR ************************/
05652         /****************************************************************/
05653 
05654         {   0,  /* Obj_Ignore_TKR               Attr_Assumed_Type_Ch    */
05655             0,  /* Obj_Ignore_TKR               Attr_Dimension          */
05656             0,  /* Obj_Ignore_TKR               Attr_Explicit_Shp_Arr   */
05657             0,  /* Obj_Ignore_TKR               Attr_Assumed_Size_Arr   */
05658             0,  /* Obj_Ignore_TKR               Attr_Deferred_Shp_Arr   */
05659          1441,  /* Obj_Ignore_TKR               Attr_Assumed_Shp_Arr    */
05660          1441,  /* Obj_Ignore_TKR               Attr_Allocatable        */
05661          1441,  /* Obj_Ignore_TKR               Attr_Parameter          */
05662             0,  /* Obj_Ignore_TKR               Attr_Intent             */
05663             0,  /* Obj_Ignore_TKR               Attr_Optional           */
05664             0,  /* Obj_Ignore_TKR               Attr_Private            */
05665             0,  /* Obj_Ignore_TKR               Attr_Public             */
05666             0,  /* Obj_Ignore_TKR               Attr_Target             */
05667          1441,  /* Obj_Ignore_TKR               Attr_Equivalence        */
05668          1441,  /* Obj_Ignore_TKR               Attr_Save               */
05669          1441,  /* Obj_Ignore_TKR               Attr_Pointer            */
05670          1441,  /* Obj_Ignore_TKR               Attr_External           */
05671          1441,  /* Obj_Ignore_TKR               Attr_Intrinsic          */
05672          1441,  /* Obj_Ignore_TKR               Attr_Data_Init          */
05673             0,  /* Obj_Ignore_TKR               Attr_Type               */
05674             0,  /* Obj_Ignore_TKR               Attr_Co_Array           */
05675          1441,  /* Obj_Ignore_TKR               Attr_Automatic          */
05676             0   /* Obj_Ignore_TKR               Attr_Volatile           */
05677         },
05678 
05679         /******************** Obj_Optional_Dir  *************************/
05680         /****************************************************************/
05681 
05682         {   0,  /* Obj_Optional_Dir             Attr_Assumed_Type_Ch    */
05683          1441,  /* Obj_Optional_Dir             Attr_Dimension          */
05684          1441,  /* Obj_Optional_Dir             Attr_Explicit_Shp_Arr   */
05685          1441,  /* Obj_Optional_Dir             Attr_Assumed_Size_Arr   */
05686          1441,  /* Obj_Optional_Dir             Attr_Deferred_Shp_Arr   */
05687          1441,  /* Obj_Optional_Dir             Attr_Assumed_Shp_Arr    */
05688          1441,  /* Obj_Optional_Dir             Attr_Allocatable        */
05689          1441,  /* Obj_Optional_Dir             Attr_Parameter          */
05690          1441,  /* Obj_Optional_Dir             Attr_Intent             */
05691             0,  /* Obj_Optional_Dir             Attr_Optional           */
05692             0,  /* Obj_Optional_Dir             Attr_Private            */
05693             0,  /* Obj_Optional_Dir             Attr_Public             */
05694          1441,  /* Obj_Optional_Dir             Attr_Target             */
05695          1441,  /* Obj_Optional_Dir             Attr_Equivalence        */
05696          1441,  /* Obj_Optional_Dir             Attr_Save               */
05697          1441,  /* Obj_Optional_Dir             Attr_Pointer            */
05698             0,  /* Obj_Optional_Dir             Attr_External           */
05699          1441,  /* Obj_Optional_Dir             Attr_Intrinsic          */
05700          1441,  /* Obj_Optional_Dir             Attr_Data_Init          */
05701             0,  /* Obj_Optional_Dir             Attr_Type               */
05702          1441,  /* Obj_Optional_Dir             Attr_Co_Array           */
05703          1441,  /* Obj_Optional_Dir             Attr_Automatic          */
05704          1441   /* Obj_Optional_Dir             Attr_Volatile           */
05705         },
05706 
05707         /************************ Obj_Name ******************************/
05708         /* This is declared on the C function directive.                */
05709         /****************************************************************/
05710 
05711         {   0,  /* Obj_Name                     Attr_Assumed_Type_Ch    */
05712          1441,  /* Obj_Name                     Attr_Dimension          */
05713          1441,  /* Obj_Name                     Attr_Explicit_Shp_Arr   */
05714          1441,  /* Obj_Name                     Attr_Assumed_Size_Arr   */
05715          1441,  /* Obj_Name                     Attr_Deferred_Shp_Arr   */
05716          1441,  /* Obj_Name                     Attr_Assumed_Shp_Arr    */
05717          1441,  /* Obj_Name                     Attr_Allocatable        */
05718          1441,  /* Obj_Name                     Attr_Parameter          */
05719          1441,  /* Obj_Name                     Attr_Intent             */
05720             0,  /* Obj_Name                     Attr_Optional           */
05721             0,  /* Obj_Name                     Attr_Private            */
05722             0,  /* Obj_Name                     Attr_Public             */
05723          1441,  /* Obj_Name                     Attr_Target             */
05724          1441,  /* Obj_Name                     Attr_Equivalence        */
05725          1441,  /* Obj_Name                     Attr_Save               */
05726          1441,  /* Obj_Name                     Attr_Pointer            */
05727             0,  /* Obj_Name                     Attr_External           */
05728          1441,  /* Obj_Name                     Attr_Intrinsic          */
05729          1441,  /* Obj_Name                     Attr_Data_Init          */
05730             0,  /* Obj_Name                     Attr_Type               */
05731          1441,  /* Obj_Name                     Attr_Co_Array           */
05732          1441,  /* Obj_Name                     Attr_Automatic          */
05733          1441   /* Obj_Name                     Attr_Volatile           */
05734         },
05735 
05736         /************************ Obj_Cri_Ptr ***************************/
05737         /* From cft77's documentation - A Cray pointer cannot be a      */
05738         /* constant, an array, a statement function or an external      */
05739         /* function.  It can be in common and be a darg.  A Cray        */
05740         /* pointer is considered to be a data type.  It must be         */
05741         /* declared to be a pointer, before data initializing.          */
05742         /****************************************************************/
05743 
05744         {552,   /* Obj_Cri_Ptr                  Attr_Assumed_Type_Ch    */
05745                 /* Cray extension - Would be duplicate typing.          */
05746 
05747           552,  /* Obj_Cri_Ptr                  Attr_Dimension          */
05748           552,  /* Obj_Cri_Ptr                  Attr_Explicit_Shp_Arr   */
05749           552,  /* Obj_Cri_Ptr                  Attr_Assumed_Size_Arr   */
05750           552,  /* Obj_Cri_Ptr                  Attr_Deferred_Shp_Arr   */
05751           552,  /* Obj_Cri_Ptr                  Attr_Assumed_Shp_Arr    */
05752           552,  /* Obj_Cri_Ptr                  Attr_Allocatable        */
05753           552,  /* Obj_Cri_Ptr                  Attr_Parameter          */
05754 
05755           552,  /* Obj_Cri_Ptr                  Attr_Intent             */
05756             0,  /* Obj_Cri_Ptr                  Attr_Optional           */
05757             0,  /* Obj_Cri_Ptr                  Attr_Private            */
05758             0,  /* Obj_Cri_Ptr                  Attr_Public             */
05759           552,  /* Obj_Cri_Ptr                  Attr_Target             */
05760                 /* Cray extension - Do not mix Fortran 90               */
05761 
05762             0,  /* Obj_Cri_Ptr                  Attr_Equivalence        */
05763             0,  /* Obj_Cri_Ptr                  Attr_Save               */
05764 
05765           552,  /* Obj_Cri_Ptr                  Attr_Pointer            */
05766                 /* Cray extentsion - Do not mix Fortran 90              */
05767 
05768           552,  /* Obj_Cri_Ptr                  Attr_External           */
05769           552,  /* Obj_Cri_Ptr                  Attr_Intrinsic          */
05770                 /* Can't be a function result.                          */
05771 
05772           552,  /* Obj_Cri_Ptr                  Attr_Data_Init          */
05773 
05774           552,  /* Obj_Cri_Ptr                  Attr_Type               */
05775                 /* This would be duplicate typing.                      */
05776 
05777           552,  /* Obj_Cri_Ptr                  Attr_Co_Array           */
05778             0,  /* Obj_Cri_Ptr                  Attr_Automatic          */
05779             0   /* Obj_Cri_Ptr                  Attr_Volatile           */
05780         },
05781 
05782 
05783         /************************ Obj_Cri_Pointee ***********************/
05784         /* From cft77's documentation - A Cray pointee cannot be a      */
05785         /* constant, in common, saved, data initialized or equivalenced */
05786         /* It cannot be a darg or a function result.                    */
05787         /****************************************************************/
05788 
05789         { 552,  /* Obj_Cri_Pointee              Attr_Assumed_Type_Ch    */
05790                 /* This is how to define a Cray character pointer.      */
05791 
05792             0,  /* Obj_Cri_Pointee              Attr_Dimension          */
05793             0,  /* Obj_Cri_Pointee              Attr_Explicit_Shp_Arr   */
05794 
05795             0,  /* Obj_Cri_Pointee              Attr_Assumed_Size_Arr   */
05796                 /* If the Assumed size array is a pointee, it cannot    */
05797                 /* be a dummy argument. This is a Cray extension.       */
05798 
05799           552,  /* Obj_Cri_Pointee              Attr_Deferred_Shp_Arr   */
05800           552,  /* Obj_Cri_Pointee              Attr_Assumed_Shp_Arr    */
05801           552,  /* Obj_Cri_Pointee              Attr_Allocatable        */
05802                 /* Do not mix Fortran 90 with a Cray extension.         */
05803 
05804           552,  /* Obj_Cri_Pointee              Attr_Parameter          */
05805 
05806           552,  /* Obj_Cri_Pointee              Attr_Intent             */
05807           552,  /* Obj_Cri_Pointee              Attr_Optional           */
05808                 /* Can't be a darg.                                     */
05809 
05810             0,  /* Obj_Cri_Pointee              Attr_Private            */
05811             0,  /* Obj_Cri_Pointee              Attr_Public             */
05812 
05813           552,  /* Obj_Cri_Pointee              Attr_Target             */
05814                 /* Do not mix with Fortran 90                           */
05815 
05816           552,  /* Obj_Cri_Pointee              Attr_Equivalence        */
05817           552,  /* Obj_Cri_Pointee              Attr_Save               */
05818         
05819           552,  /* Obj_Cri_Pointee              Attr_Pointer            */
05820                 /* Do not mix Fortran 90 with Cray extensions.          */
05821 
05822           552,  /* Obj_Cri_Pointee              Attr_External           */
05823           552,  /* Obj_Cri_Pointee              Attr_Intrinsic          */
05824           552,  /* Obj_Cri_Pointee              Attr_Data_Init          */
05825 
05826             0,  /* Obj_Cri_Pointee              Attr_Type               */
05827 
05828           552,  /* Obj_Cri_Pointee              Attr_Co_Array           */
05829           552,  /* Obj_Cri_Pointee              Attr_Automatic          */
05830             0   /* Obj_Cri_Pointee              Attr_Volatile           */
05831         },
05832 
05833 
05834         /************************ Obj_Cri_Ch_Pointee ********************/
05835         /* From cft77's documentation - A Cray pointee cannot be a      */
05836         /* constant, in common, saved, data initialized or equivalenced */
05837         /* It cannot be a darg or a function result.  A Cray character  */
05838         /* pointee cannot be an array.                                  */
05839         /****************************************************************/
05840 
05841         {   0,  /* Obj_Cri_Ch_Pointee           Attr_Assumed_Type_Ch    */
05842                 /* This is how to define a Cray character pointer.      */
05843 
05844 # if defined(_EXTENDED_CRI_CHAR_POINTER)
05845             0,  /* Obj_Cri_Ch_Pointee           Attr_Dimension          */
05846             0,  /* Obj_Cri_Ch_Pointee           Attr_Explicit_Shp_Arr   */
05847             0,  /* Obj_Cri_Ch_Pointee           Attr_Assumed_Size_Arr   */
05848 # else
05849         1407,   /* Obj_Cri_Ch_Pointee           Attr_Dimension          */
05850         1407,   /* Obj_Cri_Ch_Pointee           Attr_Explicit_Shp_Arr   */
05851         1407,   /* Obj_Cri_Ch_Pointee           Attr_Assumed_Size_Arr   */
05852 # endif
05853           552,  /* Obj_Cri_Ch_Pointee           Attr_Deferred_Shp_Arr   */
05854           552,  /* Obj_Cri_Ch_Pointee           Attr_Assumed_Shp_Arr    */
05855           552,  /* Obj_Cri_Ch_Pointee           Attr_Allocatable        */
05856 
05857           552,  /* Obj_Cri_Ch_Pointee           Attr_Parameter          */
05858 
05859           552,  /* Obj_Cri_Ch_Pointee           Attr_Intent             */
05860           552,  /* Obj_Cri_Ch_Pointee           Attr_Optional           */
05861                 /* Can't be a darg.                                     */
05862 
05863             0,  /* Obj_Cri_Ch_Pointee           Attr_Private            */
05864             0,  /* Obj_Cri_Ch_Pointee           Attr_Public             */
05865 
05866           552,  /* Obj_Cri_Ch_Pointee           Attr_Target             */
05867                 /* Do not mix with Fortran 90                           */
05868 
05869           552,  /* Obj_Cri_Ch_Pointee           Attr_Equivalence        */
05870           552,  /* Obj_Cri_Ch_Pointee           Attr_Save               */
05871         
05872           552,  /* Obj_Cri_Ch_Pointee           Attr_Pointer            */
05873                 /* Do not mix Fortran 90 with Cray extensions.          */
05874 
05875           552,  /* Obj_Cri_Ch_Pointee           Attr_External           */
05876           552,  /* Obj_Cri_Ch_Pointee           Attr_Intrinsic          */
05877           552,  /* Obj_Cri_Ch_Pointee           Attr_Data_Init          */
05878 
05879             0,  /* Obj_Cri_Ch_Pointee           Attr_Type               */
05880 
05881           552,  /* Obj_Cri_Ch_Pointee           Attr_Co_Array           */
05882           552,  /* Obj_Cri_Ch_Pointee           Attr_Automatic          */
05883             0   /* Obj_Cri_Ch_Pointee           Attr_Volatile           */
05884         },
05885 
05886         /************************ Obj_Ntry_Func_Result ******************/
05887         /* The result of a Function, specified on an entry statement.   */
05888         /****************************************************************/
05889 
05890         {   0,  /* Obj_Ntry_Func_Result         Attr_Assumed_Type_Ch    */
05891                 /* Assumed type char can be the result of the current   */
05892                 /* function being compiled.     (5.1.1.5)               */
05893 
05894             0,  /* Obj_Ntry_Func_Result         Attr_Dimension          */
05895             0,  /* Obj_Ntry_Func_Result         Attr_Explicit_Shp_Arr   */
05896                 /* legal (5.1.2.4.1)                                    */
05897 
05898           552,  /* Obj_Ntry_Func_Result         Attr_Assumed_Size_Arr   */
05899                 /* Dargs can't be function results.     (14.1.2)        */
05900 
05901             0,  /* Obj_Ntry_Func_Result         Attr_Deferred_Shp_Arr   */
05902                 /* Func results can be pointers and pointers can be     */
05903                 /* deferred shape arrays.       12.5.2.2 discussion.    */
05904 
05905           552,  /* Obj_Ntry_Func_Result         Attr_Assumed_Shp_Arr    */
05906                 /* Assumed shape must be a dummy arg.                   */
05907                 /* Dargs can't be function results.     (14.1.2)        */
05908 
05909           552,  /* Obj_Ntry_Func_Result         Attr_Allocatable        */
05910                 /* 5.1 constraint                                       */
05911 
05912           552,  /* Obj_Ntry_Func_Result         Attr_Parameter          */
05913                 /* A constant cannot be a function result.      (14.1.2)*/
05914 
05915           552,  /* Obj_Ntry_Func_Result         Attr_Intent             */
05916           552,  /* Obj_Ntry_Func_Result         Attr_Optional           */
05917                 /* 14.1.2                                               */
05918 
05919             0,  /* Obj_Ntry_Func_Result         Attr_Private            */
05920             0,  /* Obj_Ntry_Func_Result         Attr_Public             */
05921 
05922             0,  /* Obj_Ntry_Func_Result         Attr_Target             */
05923                 /* Target may be specified for all function results,    */
05924                 /* but the function result may be used as a target      */
05925                 /* only if it is the result of the current function     */
05926                 /* (7.5.2) pointer assignment                           */
05927 
05928           552,  /* Obj_Ntry_Func_Result         Attr_Equivalence        */
05929                 /* (5.5.1 constraint)                                   */
05930 
05931           552,  /* Obj_Ntry_Func_Result         Attr_Save               */
05932                 /* 5.2.4 constraint                                     */
05933 
05934             0,  /* Obj_Ntry_Func_Result         Attr_Pointer            */
05935 
05936           552,  /* Obj_Ntry_Func_Result         Attr_External           */
05937           552,  /* Obj_Ntry_Func_Result         Attr_Intrinsic          */
05938                 /* 12.5.2.5                                             */
05939 
05940           552,  /* Obj_Ntry_Func_Result         Attr_Data_Init          */
05941                 /* 5.2.9 constraint                                     */
05942 
05943             0,  /* Obj_Ntry_Func_Result         Attr_Type               */
05944 
05945           552,  /* Obj_Ntry_Func_Result         Attr_Co_Array           */
05946             0,  /* Obj_Ntry_Func_Result         Attr_Automatic          */
05947           552   /* Obj_Ntry_Func_Result         Attr_Volatile           */
05948         },
05949 
05950 
05951         /************************ Obj_Dummy_Arg *************************/
05952         /* The result of a Function, specified on an entry statement.   */
05953         /****************************************************************/
05954 
05955         {   0,  /* Obj_Dummy_Arg                Attr_Assumed_Type_Ch    */
05956                 /* (5.1.1.5) - legal                                    */
05957 
05958             0,  /* Obj_Dummy_Arg                Attr_Dimension          */
05959             0,  /* Obj_Dummy_Arg                Attr_Explicit_Shp_Arr   */
05960             0,  /* Obj_Dummy_Arg                Attr_Assumed_Size_Arr   */
05961             0,  /* Obj_Dummy_Arg                Attr_Deferred_Shp_Arr   */
05962             0,  /* Obj_Dummy_Arg                Attr_Assumed_Shp_Arr    */
05963                 /* 5.1.2.4.1, 5.1.2.4.4, 5.1.2.4.3, 5.1.2.4.2    */
05964 
05965           552,  /* Obj_Dummy_Arg                Attr_Allocatable        */
05966                 /* 5.1 constraint                                       */
05967 
05968           552,  /* Obj_Dummy_Arg                Attr_Parameter          */
05969                 /* A constant and a darg may not be the same.   (14.1.2)*/
05970 
05971             0,  /* Obj_Dummy_Arg                Attr_Intent             */
05972             0,  /* Obj_Dummy_Arg                Attr_Optional           */
05973 
05974             0,  /* Obj_Dummy_Arg                Attr_Private            */
05975             0,  /* Obj_Dummy_Arg                Attr_Public             */
05976                 /* These are illegal, but won't issue.  The ENTRY       */
05977                 /* statement is not allowed in a module.        (11.3)  */
05978 
05979             0,  /* Obj_Dummy_Arg                Attr_Target             */
05980 
05981           552,  /* Obj_Dummy_Arg                Attr_Equivalence        */
05982                 /* 5.5.1                                                */
05983 
05984           552,  /* Obj_Dummy_Arg                Attr_Save               */
05985                 /* 5.2.4                                                */
05986 
05987             0,  /* Obj_Dummy_Arg                Attr_Pointer            */
05988             0,  /* Obj_Dummy_Arg                Attr_External           */
05989 
05990           552,  /* Obj_Dummy_Arg                Attr_Intrinsic          */
05991                 /* Intrinsic procs cannot be dummy procs. (14.1.2)      */
05992 
05993           552,  /* Obj_Dummy_Arg                Attr_Data_Init          */
05994                 /* Illegal - 5.2.9                                      */
05995 
05996             0,  /* Obj_Dummy_Arg                Attr_Type               */
05997             0,  /* Obj_Dummy_Arg                Attr_Co_Array           */
05998           552,  /* Obj_Dummy_Arg                Attr_Automatic          */
05999             0   /* Obj_Dummy_Arg                Attr_Volatile           */
06000         },
06001 
06002 
06003         /************************ Obj_Common_Obj ************************/
06004         /*      A common-block object must not be a dummy argument, an  */
06005         /*      allocatable array, an automatic object, a function name,*/
06006         /*      an entry name or a result name. (5.5.2)                 */
06007         /****************************************************************/
06008 
06009         {  552, /* Obj_Common_Obj               Attr_Assumed_Type_Ch    */
06010                 /* Assumed type char must be darg, constant, or func    */
06011                 /* rslt. (5.1.1.5) - Common cannot be these. (5.5.2)    */
06012 
06013             0,  /* Obj_Common_Obj               Attr_Dimension          */
06014             0,  /* Obj_Common_Obj               Attr_Explicit_Shp_Arr   */
06015 
06016           552,  /* Obj_Common_Obj               Attr_Assumed_Size_Arr   */
06017                 /* This is a darg       (5.1.2.4.4)                     */
06018 
06019             0,  /* Obj_Common_Obj               Attr_Deferred_Shp_Arr   */
06020 
06021           552,  /* Obj_Common_Obj               Attr_Assumed_Shp_Arr    */
06022                 /* This is a darg       (5.1.2.4.2)                     */
06023                 
06024           552,  /* Obj_Common_Obj               Attr_Allocatable        */
06025                 /* 5.5.2                                                */
06026 
06027           552,  /* Obj_Common_Obj               Attr_Parameter          */
06028                 /* 5.5.2 - Common is a variable.  Variable can't be     */
06029                 /* constant     (14.1.2)                                */
06030 
06031           552,  /* Obj_Common_Obj               Attr_Intent             */
06032           552,  /* Obj_Common_Obj               Attr_Optional           */
06033                 /* 5.5.2 - These are dargs.                             */
06034 
06035             0,  /* Obj_Common_Obj               Attr_Private            */
06036             0,  /* Obj_Common_Obj               Attr_Public             */
06037             0,  /* Obj_Common_Obj               Attr_Target             */
06038             0,  /* Obj_Common_Obj               Attr_Equivalence        */
06039 
06040           552,  /* Obj_Common_Obj               Attr_Save               */
06041                 /* 5.2.4                                                */
06042 
06043             0,  /* Obj_Common_Obj               Attr_Pointer            */
06044 
06045           552,  /* Obj_Common_Obj               Attr_External           */
06046           552,  /* Obj_Common_Obj               Attr_Intrinsic          */
06047                 /* These are procedures - 5.5.2                         */
06048 
06049             0,  /* Obj_Common_Obj               Attr_Data_Init          */
06050             0,  /* Obj_Common_Obj               Attr_Type               */
06051 
06052             0,  /* Obj_Common_Obj               Attr_Co_Array           */
06053           552,  /* Obj_Common_Obj               Attr_Automatic          */
06054             0   /* Obj_Common_Obj               Attr_Volatile           */
06055         },
06056 
06057 
06058         /************************ Obj_Namelist_Obj **********************/
06059         /* A namelist object must not be an array dummy argument with   */
06060         /* a non-constant bound, a variable with a non-constant char    */
06061         /* length, an automatic object, a pointer or an allocatable     */
06062         /* array. (5.4) constraint                                      */
06063         /****************************************************************/
06064 
06065         { 552,  /* Obj_Namelist_Obj             Attr_Assumed_Type_Ch    */
06066                 /* 5.4                                                  */
06067 
06068             0,  /* Obj_Namelist_Obj             Attr_Dimension          */
06069             0,  /* Obj_Namelist_Obj             Attr_Explicit_Shp_Arr   */
06070 
06071           552,  /* Obj_Namelist_Obj             Attr_Assumed_Size_Arr   */
06072           552,  /* Obj_Namelist_Obj             Attr_Deferred_Shp_Arr   */
06073           552,  /* Obj_Namelist_Obj             Attr_Assumed_Shp_Arr    */
06074           552,  /* Obj_Namelist_Obj             Attr_Allocatable        */
06075                 /* 5.4                                                  */
06076 
06077           552,  /* Obj_Namelist_Obj             Attr_Parameter          */
06078                 /* 5.4 - A namelist object must be a variable.  A       */
06079                 /* variable cannot be a constant.       (14.1.2)        */
06080 
06081             0,  /* Obj_Namelist_Obj             Attr_Intent             */
06082             0,  /* Obj_Namelist_Obj             Attr_Optional           */
06083 
06084             0,  /* Obj_Namelist_Obj             Attr_Private            */
06085             0,  /* Obj_Namelist_Obj             Attr_Public             */
06086             0,  /* Obj_Namelist_Obj             Attr_Target             */
06087             0,  /* Obj_Namelist_Obj             Attr_Equivalence        */
06088             0,  /* Obj_Namelist_Obj             Attr_Save               */
06089 
06090           552,  /* Obj_Namelist_Obj             Attr_Pointer            */
06091           552,  /* Obj_Namelist_Obj             Attr_External           */
06092           552,  /* Obj_Namelist_Obj             Attr_Intrinsic          */
06093                 /* 5.4                                                  */
06094 
06095             0,  /* Obj_Namelist_Obj             Attr_Data_Init          */
06096             0,  /* Obj_Namelist_Obj             Attr_Type               */
06097 
06098             0,  /* Obj_Namelist_Obj             Attr_Co_Array           */
06099             0,  /* Obj_Namelist_Obj             Attr_Automatic          */
06100             0   /* Obj_Namelist_Obj             Attr_Volatile           */
06101         },
06102 
06103         /************************ Obj_Module_Proc ***********************/
06104         /* 12.3.2.1 states that a procedure must not have more than     */
06105         /* one explicit interface in a scoping unit.    12.3.1 states   */
06106         /* that the interface of a module procedure is always an        */
06107         /* explicit interface in a scoping unit.        12.3 defines an */
06108         /* interface as the characteristics of the procedure, its       */
06109         /* dummy arguments and its function result (if a function).     */
06110         /* Since the actual definition of the module procedure is the   */
06111         /* explicit interface, it's characteristics cannot be defined   */
06112         /* outside of the module procedure definition.                  */
06113         /* Also 5.1 states that an entity must not be given any         */
06114         /* attribute more than once in a scoping unit.                  */
06115         /****************************************************************/
06116 
06117         { 552,  /* Obj_Module_Proc              Attr_Assumed_Type_Ch    */
06118           552,  /* Obj_Module_Proc              Attr_Dimension          */
06119           552,  /* Obj_Module_Proc              Attr_Explicit_Shp_Arr   */
06120           552,  /* Obj_Module_Proc              Attr_Assumed_Size_Arr   */
06121           552,  /* Obj_Module_Proc              Attr_Deferred_Shp_Arr   */
06122           552,  /* Obj_Module_Proc              Attr_Assumed_Shp_Arr    */
06123           552,  /* Obj_Module_Proc              Attr_Allocatable        */
06124           552,  /* Obj_Module_Proc              Attr_Parameter          */
06125           552,  /* Obj_Module_Proc              Attr_Intent             */
06126           552,  /* Obj_Module_Proc              Attr_Optional           */
06127 
06128             0,  /* Obj_Module_Proc              Attr_Private            */
06129             0,  /* Obj_Module_Proc              Attr_Public             */
06130                 /* Access is not a characteristic. (12.3) It can be     */
06131                 /* specified for procedures (5.2.3 constraint).         */
06132 
06133           552,  /* Obj_Module_Proc              Attr_Target             */
06134           552,  /* Obj_Module_Proc              Attr_Equivalence        */
06135           552,  /* Obj_Module_Proc              Attr_Save               */
06136           552,  /* Obj_Module_Proc              Attr_Pointer            */
06137           552,  /* Obj_Module_Proc              Attr_External           */
06138           552,  /* Obj_Module_Proc              Attr_Intrinsic          */
06139           552,  /* Obj_Module_Proc              Attr_Data_Init          */
06140           552,  /* Obj_Module_Proc              Attr_Type               */
06141           552,  /* Obj_Module_Proc              Attr_Co_Array           */
06142             0,  /* Obj_Module_Proc              Attr_Automatic          */
06143           552   /* Obj_Module_Proc              Attr_Volatile           */
06144         },
06145 
06146         
06147         /************************ Obj_Derived_Type **********************/
06148         /* By 14.1.2, a derived type cannot be a named variable, a      */
06149         /* named constant, a construct name, a statement function, an   */
06150         /* internal procedure, a dummy procedure, an intrinsic proc,    */
06151         /* a generic identifier or a namelist group name.               */
06152         /****************************************************************/
06153 
06154         { 552,  /* Obj_Derived_Type             Attr_Assumed_Type_Ch    */
06155           552,  /* Obj_Derived_Type             Attr_Dimension          */
06156           552,  /* Obj_Derived_Type             Attr_Explicit_Shp_Arr   */
06157           552,  /* Obj_Derived_Type             Attr_Assumed_Size_Arr   */
06158           552,  /* Obj_Derived_Type             Attr_Deferred_Shp_Arr   */
06159           552,  /* Obj_Derived_Type             Attr_Assumed_Shp_Arr    */
06160           552,  /* Obj_Derived_Type             Attr_Allocatable        */
06161           552,  /* Obj_Derived_Type             Attr_Parameter          */
06162           552,  /* Obj_Derived_Type             Attr_Intent             */
06163           552,  /* Obj_Derived_Type             Attr_Optional           */
06164 
06165             0,  /* Obj_Derived_Type             Attr_Private            */
06166             0,  /* Obj_Derived_Type             Attr_Public             */
06167                 /* (5.2.3)                                              */
06168 
06169           552,  /* Obj_Derived_Type             Attr_Target             */
06170           552,  /* Obj_Derived_Type             Attr_Equivalence        */
06171           552,  /* Obj_Derived_Type             Attr_Save               */
06172           552,  /* Obj_Derived_Type             Attr_Pointer            */
06173           552,  /* Obj_Derived_Type             Attr_External           */
06174           552,  /* Obj_Derived_Type             Attr_Intrinsic          */
06175           552,  /* Obj_Derived_Type             Attr_Data_Init          */
06176           552,  /* Obj_Derived_Type             Attr_Type               */
06177           552,  /* Obj_Derived_Type             Attr_Co_Array           */
06178           552,  /* Obj_Derived_Type             Attr_Automatic          */
06179           552   /* Obj_Derived_Type             Attr_Volatile           */
06180         },
06181 
06182 
06183         /************************ Obj_Generic_Interface *****************/
06184         /* By 14.1.2, a generic interface cannot be a named variable, a */
06185         /* named constant, a construct name, a statement function, an   */
06186         /* internal procedure, a dummy procedure, an intrinsic proc,    */
06187         /* a derived type or a namelist group name.                     */
06188         /****************************************************************/
06189 
06190         { 552,  /* Obj_Generic_Interface        Attr_Assumed_Type_Ch    */
06191           552,  /* Obj_Generic_Interface        Attr_Dimension          */
06192           552,  /* Obj_Generic_Interface        Attr_Explicit_Shp_Arr   */
06193           552,  /* Obj_Generic_Interface        Attr_Assumed_Size_Arr   */
06194           552,  /* Obj_Generic_Interface        Attr_Deferred_Shp_Arr   */
06195           552,  /* Obj_Generic_Interface        Attr_Assumed_Shp_Arr    */
06196           552,  /* Obj_Generic_Interface        Attr_Allocatable        */
06197           552,  /* Obj_Generic_Interface        Attr_Parameter          */
06198           552,  /* Obj_Generic_Interface        Attr_Intent             */
06199           552,  /* Obj_Generic_Interface        Attr_Optional           */
06200 
06201             0,  /* Obj_Generic_Interface        Attr_Private            */
06202             0,  /* Obj_Generic_Interface        Attr_Public             */
06203                 /* (5.2.3)                                              */
06204 
06205           552,  /* Obj_Generic_Interface        Attr_Target             */
06206           552,  /* Obj_Generic_Interface        Attr_Equivalence        */
06207           552,  /* Obj_Generic_Interface        Attr_Save               */
06208           552,  /* Obj_Generic_Interface        Attr_Pointer            */
06209           552,  /* Obj_Generic_Interface        Attr_External           */
06210             0,  /* Obj_Generic_Interface        Attr_Intrinsic          */
06211           552,  /* Obj_Generic_Interface        Attr_Data_Init          */
06212             0,  /* Obj_Generic_Interface        Attr_Type               */
06213           552,  /* Obj_Generic_Interface        Attr_Co_Array           */
06214           552,  /* Obj_Generic_Interface        Attr_Automatic          */
06215           552   /* Obj_Generic_Interface        Attr_Volatile           */
06216         },
06217 
06218 
06219         /************************ Obj_Namelist_Grp **********************/
06220         /* By 14.1.2, a namelist group cannot be a named variable, a    */
06221         /* named constant, a construct name, a statement function, an   */
06222         /* internal procedure, a dummy procedure, an intrinsic proc,    */
06223         /* a derived type or a generic identifier.                      */
06224         /****************************************************************/
06225 
06226         { 552,  /* Obj_Namelist_Grp             Attr_Assumed_Type_Ch    */
06227           552,  /* Obj_Namelist_Grp             Attr_Dimension          */
06228           552,  /* Obj_Namelist_Grp             Attr_Explicit_Shp_Arr   */
06229           552,  /* Obj_Namelist_Grp             Attr_Assumed_Size_Arr   */
06230           552,  /* Obj_Namelist_Grp             Attr_Deferred_Shp_Arr   */
06231           552,  /* Obj_Namelist_Grp             Attr_Assumed_Shp_Arr    */
06232           552,  /* Obj_Namelist_Grp             Attr_Allocatable        */
06233           552,  /* Obj_Namelist_Grp             Attr_Parameter          */
06234           552,  /* Obj_Namelist_Grp             Attr_Intent             */
06235           552,  /* Obj_Namelist_Grp             Attr_Optional           */
06236 
06237             0,  /* Obj_Namelist_Grp             Attr_Private            */
06238             0,  /* Obj_Namelist_Grp             Attr_Public             */
06239                 /* (5.2.3)                                              */
06240 
06241           552,  /* Obj_Namelist_Grp             Attr_Target             */
06242           552,  /* Obj_Namelist_Grp             Attr_Equivalence        */
06243           552,  /* Obj_Namelist_Grp             Attr_Save               */
06244           552,  /* Obj_Namelist_Grp             Attr_Pointer            */
06245           552,  /* Obj_Namelist_Grp             Attr_External           */
06246           552,  /* Obj_Namelist_Grp             Attr_Intrinsic          */
06247           552,  /* Obj_Namelist_Grp             Attr_Data_Init          */
06248           552,  /* Obj_Namelist_Grp             Attr_Type               */
06249           552,  /* Obj_Namelist_Grp             Attr_Co_Array           */
06250           552,  /* Obj_Namelist_Grp             Attr_Automatic          */
06251           552   /* Obj_Namelist_Grp             Attr_Volatile           */
06252         },
06253 
06254 
06255         /************************ Obj_Stmt_Func *************************/
06256         /* By 14.1.2, a statement function cannot be a named variable,  */
06257         /* a named constant, a construct name, a generic identifier, an */
06258         /* internal procedure, a dummy procedure, an intrinsic proc,    */
06259         /* a derived type or a namelist group.  Also see 12.5.4.        */
06260         /****************************************************************/
06261 
06262         { 552,  /* Obj_Stmt_Func                Attr_Assumed_Type_Ch    */
06263           552,  /* Obj_Stmt_Func                Attr_Dimension          */
06264           552,  /* Obj_Stmt_Func                Attr_Explicit_Shp_Arr   */
06265           552,  /* Obj_Stmt_Func                Attr_Assumed_Size_Arr   */
06266           552,  /* Obj_Stmt_Func                Attr_Deferred_Shp_Arr   */
06267           552,  /* Obj_Stmt_Func                Attr_Assumed_Shp_Arr    */
06268           552,  /* Obj_Stmt_Func                Attr_Allocatable        */
06269           552,  /* Obj_Stmt_Func                Attr_Parameter          */
06270           552,  /* Obj_Stmt_Func                Attr_Intent             */
06271           552,  /* Obj_Stmt_Func                Attr_Optional           */
06272 
06273           552,  /* Obj_Stmt_Func                Attr_Private            */
06274           552,  /* Obj_Stmt_Func                Attr_Public             */
06275                 /* 5.2.3 constraint                                     */
06276 
06277           552,  /* Obj_Stmt_Func                Attr_Target             */
06278           552,  /* Obj_Stmt_Func                Attr_Equivalence        */
06279           552,  /* Obj_Stmt_Func                Attr_Save               */
06280           552,  /* Obj_Stmt_Func                Attr_Pointer            */
06281           552,  /* Obj_Stmt_Func                Attr_External           */
06282           552,  /* Obj_Stmt_Func                Attr_Intrinsic          */
06283           552,  /* Obj_Stmt_Func                Attr_Data_Init          */
06284 
06285             0,  /* Obj_Stmt_Func                Attr_Type               */
06286 
06287           552,  /* Obj_Stmt_Func                Attr_Co_Array           */
06288           552,  /* Obj_Stmt_Func                Attr_Automatic          */
06289           552   /* Obj_Stmt_Func                Attr_Volatile           */
06290         },
06291 
06292 
06293         /************************ Obj_Construct *************************/
06294         /* By 14.1.2, a construct cannot be a named variable, a named   */
06295         /* constant, a statement function, a generic identifier, an     */
06296         /* internal procedure, a dummy procedure, an intrinsic proc,    */
06297         /* a derived type or a namelist group.                          */
06298         /****************************************************************/
06299 
06300         { 552,  /* Obj_Construct                Attr_Assumed_Type_Ch    */
06301           552,  /* Obj_Construct                Attr_Dimension          */
06302           552,  /* Obj_Construct                Attr_Explicit_Shp_Arr   */
06303           552,  /* Obj_Construct                Attr_Assumed_Size_Arr   */
06304           552,  /* Obj_Construct                Attr_Deferred_Shp_Arr   */
06305           552,  /* Obj_Construct                Attr_Assumed_Shp_Arr    */
06306           552,  /* Obj_Construct                Attr_Allocatable        */
06307           552,  /* Obj_Construct                Attr_Parameter          */
06308           552,  /* Obj_Construct                Attr_Intent             */
06309           552,  /* Obj_Construct                Attr_Optional           */
06310 
06311           552,  /* Obj_Construct                Attr_Private            */
06312           552,  /* Obj_Construct                Attr_Public             */
06313                 /* 5.2.3 constraint                                     */
06314 
06315           552,  /* Obj_Construct                Attr_Target             */
06316           552,  /* Obj_Construct                Attr_Equivalence        */
06317           552,  /* Obj_Construct                Attr_Save               */
06318           552,  /* Obj_Construct                Attr_Pointer            */
06319           552,  /* Obj_Construct                Attr_External           */
06320           552,  /* Obj_Construct                Attr_Intrinsic          */
06321           552,  /* Obj_Construct                Attr_Data_Init          */
06322           552,  /* Obj_Construct                Attr_Type               */
06323           552,  /* Obj_Construct                Attr_Co_Array           */
06324           552,  /* Obj_Construct                Attr_Automatic          */
06325           552   /* Obj_Construct                Attr_Volatile           */
06326         },
06327 
06328 
06329         /************************ Obj_Entry_Func ************************/
06330         /* This is the name on an ENTRY statement in an external        */
06331         /* FUNCTION.    This allows anything legal on a result name to  */
06332         /* be specified here.   Then if a different result name is      */
06333         /* specified errors are issued at that time saying to use the   */
06334         /* result name, not the function name to declare type, shape,   */
06335         /* target or pointer.                                           */
06336         /****************************************************************/
06337 
06338         {   0,  /* Obj_Entry_Func               Attr_Assumed_Type_Ch    */
06339                 /* (5.1.1.5)    The external subprogram being compiled  */
06340                 /* can be an assumed type character.                    */
06341 
06342             0,  /* Obj_Entry_Func               Attr_Dimension          */
06343             0,  /* Obj_Entry_Func               Attr_Explicit_Shp_Arr   */
06344 
06345           552,  /* Obj_Entry_Func               Attr_Assumed_Size_Arr   */
06346                 /* This is a darg.  Dargs can't be dummy procedures     */
06347                 /* or function results. (14.1.2)                        */
06348 
06349             0,  /* Obj_Entry_Func               Attr_Deferred_Shp_Arr   */
06350 
06351           552,  /* Obj_Entry_Func               Attr_Assumed_Shp_Arr    */
06352                 /* This is a darg.  Dargs can't be dummy procedures     */
06353                 /* or function results. (14.1.2)                        */
06354 
06355           552,  /* Obj_Entry_Func               Attr_Allocatable        */
06356                 /* 5.2.6                                                */
06357 
06358           552,  /* Obj_Entry_Func               Attr_Parameter          */
06359                 /* Constants can't be dargs or dummy procs. (14.1.2)    */
06360 
06361           552,  /* Obj_Entry_Func               Attr_Intent             */
06362           552,  /* Obj_Entry_Func               Attr_Optional           */
06363                 /* This is a darg.      Dargs can't be dummy procedures */
06364                 /* or function results. (14.1.2)                        */
06365 
06366             0,  /* Obj_Entry_Func               Attr_Private            */
06367             0,  /* Obj_Entry_Func               Attr_Public             */
06368 
06369             0,  /* Obj_Entry_Func               Attr_Target             */
06370                 /* Target may be specified for all function results,    */
06371                 /* but the function result may be used as a target      */
06372                 /* only if it is the result of the current function     */
06373                 /* (7.5.2) pointer assignment                           */
06374 
06375           552,  /* Obj_Entry_Func               Attr_Equivalence        */
06376                 /* 5.5.1                                                */
06377 
06378           552,  /* Obj_Entry_Func               Attr_Save               */
06379                 /* 5.2.4                                                */
06380 
06381             0,  /* Obj_Entry_Func               Attr_Pointer            */
06382 
06383           552,  /* Obj_Entry_Func               Attr_External           */
06384           552,  /* Obj_Entry_Func               Attr_Intrinsic          */
06385                 /* 12.5.2.5 constraint                                  */
06386 
06387           552,  /* Obj_Entry_Func               Attr_Data_Init          */
06388                 /* 5.2.9                                                */
06389 
06390             0,  /* Obj_Entry_Func               Attr_Type               */
06391 
06392           552,  /* Obj_Entry_Func               Attr_Co_Array           */
06393             0,  /* Obj_Entry_Func               Attr_Automatic          */
06394           552   /* Obj_Entry_Func               Attr_Volatile           */
06395         },
06396 
06397 
06398         /************************ Obj_Entry_Subr ************************/
06399         /* This is the name on an ENTRY statement in an external        */
06400         /* SUBROUTINE.  One just knows that a SUBROUTINE can't have     */
06401         /* a type, or a shape, or much of anything else.        (2.2.3) */
06402         /****************************************************************/
06403 
06404         { 552,  /* Obj_Entry_Subr               Attr_Assumed_Type_Ch    */
06405           552,  /* Obj_Entry_Subr               Attr_Dimension          */
06406           552,  /* Obj_Entry_Subr               Attr_Explicit_Shp_Arr   */
06407           552,  /* Obj_Entry_Subr               Attr_Assumed_Size_Arr   */
06408           552,  /* Obj_Entry_Subr               Attr_Deferred_Shp_Arr   */
06409           552,  /* Obj_Entry_Subr               Attr_Assumed_Shp_Arr    */
06410           552,  /* Obj_Entry_Subr               Attr_Allocatable        */
06411           552,  /* Obj_Entry_Subr               Attr_Parameter          */
06412           552,  /* Obj_Entry_Subr               Attr_Intent             */
06413           552,  /* Obj_Entry_Subr               Attr_Optional           */
06414 
06415             0,  /* Obj_Entry_Subr               Attr_Private            */
06416             0,  /* Obj_Entry_Subr               Attr_Public             */
06417 
06418           552,  /* Obj_Entry_Subr               Attr_Target             */
06419           552,  /* Obj_Entry_Subr               Attr_Equivalence        */
06420           552,  /* Obj_Entry_Subr               Attr_Save               */
06421           552,  /* Obj_Entry_Subr               Attr_Pointer            */
06422           552,  /* Obj_Entry_Subr               Attr_External           */
06423           552,  /* Obj_Entry_Subr               Attr_Intrinsic          */
06424           552,  /* Obj_Entry_Subr               Attr_Data_Init          */
06425           552,  /* Obj_Entry_Subr               Attr_Type               */
06426           552,  /* Obj_Entry_Subr               Attr_Co_Array           */
06427           552,  /* Obj_Entry_Subr               Attr_Automatic          */
06428           552   /* Obj_Entry_Subr               Attr_Volatile           */
06429         },
06430 
06431 
06432         /************************ Obj_Intern_Func ***********************/
06433         /* This is the name on the FUNCTION statement for an internal   */
06434         /* FUNCTION.    12.3.2.1 states that a procedure must not have  */
06435         /* more than one explicit interface in a scoping unit.  12.3.1  */
06436         /* states that the interface of an internal procedure is always */
06437         /* an explicit interface in a scoping unit.     12.3 defines an */
06438         /* interface as the characteristics of the procedure, its       */
06439         /* dummy arguments and its function result (if a function).     */
06440         /* Since the actual definition of the internal procedure is the */
06441         /* explicit interface, it's characteristics cannot be defined   */
06442         /* outside of the internal procedure definition.                */
06443         /* Also 5.1 states that an entity must not be given any         */
06444         /* attribute more than once in a scoping unit.                  */
06445         /****************************************************************/
06446 
06447         {  552, /* Obj_Intern_Func              Attr_Assumed_Type_Ch    */
06448           552,  /* Obj_Intern_Func              Attr_Dimension          */
06449           552,  /* Obj_Intern_Func              Attr_Explicit_Shp_Arr   */
06450           552,  /* Obj_Intern_Func              Attr_Assumed_Size_Arr   */
06451           552,  /* Obj_Intern_Func              Attr_Deferred_Shp_Arr   */
06452           552,  /* Obj_Intern_Func              Attr_Assumed_Shp_Arr    */
06453           552,  /* Obj_Intern_Func              Attr_Allocatable        */
06454           552,  /* Obj_Intern_Func              Attr_Parameter          */
06455           552,  /* Obj_Intern_Func              Attr_Intent             */
06456           552,  /* Obj_Intern_Func              Attr_Optional           */
06457 
06458             0,  /* Obj_Intern_Func              Attr_Private            */
06459             0,  /* Obj_Intern_Func              Attr_Public             */
06460                 /* Access is not a characteristic.(12.3) It can be      */
06461                 /* specified for procedures (5.2.3 constraint).         */
06462 
06463           552,  /* Obj_Intern_Func              Attr_Target             */
06464           552,  /* Obj_Intern_Func              Attr_Equivalence        */
06465           552,  /* Obj_Intern_Func              Attr_Save               */
06466           552,  /* Obj_Intern_Func              Attr_Pointer            */
06467           552,  /* Obj_Intern_Func              Attr_External           */
06468           552,  /* Obj_Intern_Func              Attr_Intrinsic          */
06469           552,  /* Obj_Intern_Func              Attr_Data_Init          */
06470           552,  /* Obj_Intern_Func              Attr_Type               */
06471           552,  /* Obj_Intern_Func              Attr_Co_Array           */
06472           552,  /* Obj_Intern_Func              Attr_Automatic          */
06473           552   /* Obj_Intern_Func              Attr_Volatile           */
06474         },
06475 
06476 
06477         /************************ Obj_Intern_Subr ***********************/
06478         /* This is the name on a SUBROUTINE statement for an internal   */
06479         /* SUBROUTINE.  One just knows that a SUBROUTINE can't have     */
06480         /* a type, or a shape, or much of anything else.        (2.2.3) */
06481         /****************************************************************/
06482 
06483         {  552, /* Obj_Intern_Subr              Attr_Assumed_Type_Ch    */
06484           552,  /* Obj_Intern_Subr              Attr_Dimension          */
06485           552,  /* Obj_Intern_Subr              Attr_Explicit_Shp_Arr   */
06486           552,  /* Obj_Intern_Subr              Attr_Assumed_Size_Arr   */
06487           552,  /* Obj_Intern_Subr              Attr_Deferred_Shp_Arr   */
06488           552,  /* Obj_Intern_Subr              Attr_Assumed_Shp_Arr    */
06489           552,  /* Obj_Intern_Subr              Attr_Allocatable        */
06490           552,  /* Obj_Intern_Subr              Attr_Parameter          */
06491           552,  /* Obj_Intern_Subr              Attr_Intent             */
06492           552,  /* Obj_Intern_Subr              Attr_Optional           */
06493 
06494             0,  /* Obj_Intern_Subr              Attr_Private            */
06495             0,  /* Obj_Intern_Subr              Attr_Public             */
06496                 /* Access is not a characteristic. (12.3) It can be     */
06497                 /* specified for procedures (5.2.3 constraint).         */
06498 
06499           552,  /* Obj_Intern_Subr              Attr_Target             */
06500           552,  /* Obj_Intern_Subr              Attr_Equivalence        */
06501           552,  /* Obj_Intern_Subr              Attr_Save               */
06502           552,  /* Obj_Intern_Subr              Attr_Pointer            */
06503           552,  /* Obj_Intern_Subr              Attr_External           */
06504           552,  /* Obj_Intern_Subr              Attr_Intrinsic          */
06505           552,  /* Obj_Intern_Subr              Attr_Data_Init          */
06506           552,  /* Obj_Intern_Subr              Attr_Type               */
06507           552,  /* Obj_Intern_Subr              Attr_Co_Array           */
06508           552,  /* Obj_Intern_Subr              Attr_Automatic          */
06509           552   /* Obj_Intern_Subr              Attr_Volatile           */
06510         },
06511 
06512 
06513         /************************ Obj_Module_Func ***********************/
06514         /* This is the name on the FUNCTION statement for a module      */
06515         /* FUNCTION.    12.3.2.1 states that a procedure must not have  */
06516         /* more than one explicit interface in a scoping unit.  12.3.1  */
06517         /* states that the interface of a module procedure is always an */
06518         /* explicit interface in a scoping unit.        12.3 defines an */
06519         /* interface as the characteristics of the procedure, its       */
06520         /* dummy arguments and its function result (if a function).     */
06521         /* Since the actual definition of the module procedure is the   */
06522         /* explicit interface, it's characteristics cannot be defined   */
06523         /* outside of the module procedure definition.                  */
06524         /* Also 5.1 states that an entity must not be given any         */
06525         /* attribute more than once in a scoping unit.                  */
06526         /****************************************************************/
06527 
06528         { 552,  /* Obj_Module_Func              Attr_Assumed_Type_Ch    */
06529           552,  /* Obj_Module_Func              Attr_Dimension          */
06530           552,  /* Obj_Module_Func              Attr_Explicit_Shp_Arr   */
06531           552,  /* Obj_Module_Func              Attr_Assumed_Size_Arr   */
06532           552,  /* Obj_Module_Func              Attr_Deferred_Shp_Arr   */
06533           552,  /* Obj_Module_Func              Attr_Assumed_Shp_Arr    */
06534           552,  /* Obj_Module_Func              Attr_Allocatable        */
06535           552,  /* Obj_Module_Func              Attr_Parameter          */
06536           552,  /* Obj_Module_Func              Attr_Intent             */
06537           552,  /* Obj_Module_Func              Attr_Optional           */
06538 
06539             0,  /* Obj_Module_Func              Attr_Private            */
06540             0,  /* Obj_Module_Func              Attr_Public             */
06541                 /* Access is not a characteristic. (12.3) It can be     */
06542                 /* specified for procedures (5.2.3 constraint).         */
06543 
06544           552,  /* Obj_Module_Func              Attr_Target             */
06545           552,  /* Obj_Module_Func              Attr_Equivalence        */
06546           552,  /* Obj_Module_Func              Attr_Save               */
06547           552,  /* Obj_Module_Func              Attr_Pointer            */
06548           552,  /* Obj_Module_Func              Attr_External           */
06549           552,  /* Obj_Module_Func              Attr_Intrinsic          */
06550           552,  /* Obj_Module_Func              Attr_Data_Init          */
06551           552,  /* Obj_Module_Func              Attr_Type               */
06552           552,  /* Obj_Module_Func              Attr_Co_Array           */
06553             0,  /* Obj_Module_Func              Attr_Automatic          */
06554           552   /* Obj_Module_Func              Attr_Automatic          */
06555         },
06556 
06557 
06558         /************************ Obj_Module_Subr ***********************/
06559         /* This is the name on a SUBROUTINE statement for a module      */
06560         /* SUBROUTINE.  One just knows that a SUBROUTINE can't have     */
06561         /* a type, or a shape, or much of anything else.        (2.2.3) */
06562         /****************************************************************/
06563 
06564         { 552,  /* Obj_Module_Subr              Attr_Assumed_Type_Ch    */
06565           552,  /* Obj_Module_Subr              Attr_Dimension          */
06566           552,  /* Obj_Module_Subr              Attr_Explicit_Shp_Arr   */
06567           552,  /* Obj_Module_Subr              Attr_Assumed_Size_Arr   */
06568           552,  /* Obj_Module_Subr              Attr_Deferred_Shp_Arr   */
06569           552,  /* Obj_Module_Subr              Attr_Assumed_Shp_Arr    */
06570           552,  /* Obj_Module_Subr              Attr_Allocatable        */
06571           552,  /* Obj_Module_Subr              Attr_Parameter          */
06572           552,  /* Obj_Module_Subr              Attr_Intent             */
06573           552,  /* Obj_Module_Subr              Attr_Optional           */
06574 
06575             0,  /* Obj_Module_Subr              Attr_Private            */
06576             0,  /* Obj_Module_Subr              Attr_Public             */
06577                 /* Access is not a characteristic. (12.3) It can be     */
06578                 /* specified for procedures (5.2.3 constraint).         */
06579 
06580           552,  /* Obj_Module_Subr              Attr_Target             */
06581           552,  /* Obj_Module_Subr              Attr_Equivalence        */
06582           552,  /* Obj_Module_Subr              Attr_Save               */
06583           552,  /* Obj_Module_Subr              Attr_Pointer            */
06584           552,  /* Obj_Module_Subr              Attr_External           */
06585           552,  /* Obj_Module_Subr              Attr_Intrinsic          */
06586           552,  /* Obj_Module_Subr              Attr_Data_Init          */
06587           552,  /* Obj_Module_Subr              Attr_Type               */
06588           552,  /* Obj_Module_Subr              Attr_Co_Array           */
06589           552,  /* Obj_Module_Subr              Attr_Automatic          */
06590           552   /* Obj_Module_Subr              Attr_Volatile           */
06591         },
06592 
06593 
06594 
06595         /************************ Obj_Sf_Darg   *************************/
06596         /* This is the dummy argument used in the statement function    */
06597         /* definition.  It is defined in 5.1.1.5 and 12.5.4.            */
06598         /****************************************************************/
06599 
06600         { 552,  /* Obj_Sf_Darg                  Attr_Assumed_Type_Ch    */
06601           552,  /* Obj_Sf_Darg                  Attr_Dimension          */
06602           552,  /* Obj_Sf_Darg                  Attr_Explicit_Shp_Arr   */
06603           552,  /* Obj_Sf_Darg                  Attr_Assumed_Size_Arr   */
06604           552,  /* Obj_Sf_Darg                  Attr_Deferred_Shp_Arr   */
06605           552,  /* Obj_Sf_Darg                  Attr_Assumed_Shp_Arr    */
06606           552,  /* Obj_Sf_Darg                  Attr_Allocatable        */
06607           552,  /* Obj_Sf_Darg                  Attr_Parameter          */
06608             0,  /* Obj_Sf_Darg                  Attr_Intent             */
06609             0,  /* Obj_Sf_Darg                  Attr_Optional           */
06610             0,  /* Obj_Sf_Darg                  Attr_Private            */
06611             0,  /* Obj_Sf_Darg                  Attr_Public             */
06612             0,  /* Obj_Sf_Darg                  Attr_Target             */
06613             0,  /* Obj_Sf_Darg                  Attr_Equivalence        */
06614             0,  /* Obj_Sf_Darg                  Attr_Save               */
06615             0,  /* Obj_Sf_Darg                  Attr_Pointer            */
06616           552,  /* Obj_Sf_Darg                  Attr_External           */
06617           552,  /* Obj_Sf_Darg                  Attr_Intrinsic          */
06618             0,  /* Obj_Sf_Darg                  Attr_Data_Init          */
06619             0,  /* Obj_Sf_Darg                  Attr_Type               */
06620           552,  /* Obj_Sf_Darg                  Attr_Co_Array           */
06621             0,  /* Obj_Sf_Darg                  Attr_Automatic          */
06622           552   /* Obj_Sf_Darg                  Attr_Volatile           */
06623         },
06624 
06625 
06626         /************************ Obj_Sf_Actual_Arg *********************/
06627         /* This is the actual argument used when a statement function   */
06628         /* is referenced.       It is defined in 5.1.1.5 and 12.5.4.    */
06629         /****************************************************************/
06630 
06631         {   0,  /* Obj_Sf_Actual_Arg            Attr_Assumed_Type_Ch    */
06632             0,  /* Obj_Sf_Actual_Arg            Attr_Dimension          */
06633             0,  /* Obj_Sf_Actual_Arg            Attr_Explicit_Shp_Arr   */
06634             0,  /* Obj_Sf_Actual_Arg            Attr_Assumed_Size_Arr   */
06635             0,  /* Obj_Sf_Actual_Arg            Attr_Deferred_Shp_Arr   */
06636             0,  /* Obj_Sf_Actual_Arg            Attr_Assumed_Shp_Arr    */
06637             0,  /* Obj_Sf_Actual_Arg            Attr_Allocatable        */
06638             0,  /* Obj_Sf_Actual_Arg            Attr_Parameter          */
06639             0,  /* Obj_Sf_Actual_Arg            Attr_Intent             */
06640             0,  /* Obj_Sf_Actual_Arg            Attr_Optional           */
06641             0,  /* Obj_Sf_Actual_Arg            Attr_Private            */
06642             0,  /* Obj_Sf_Actual_Arg            Attr_Public             */
06643             0,  /* Obj_Sf_Actual_Arg            Attr_Target             */
06644             0,  /* Obj_Sf_Actual_Arg            Attr_Equivalence        */
06645             0,  /* Obj_Sf_Actual_Arg            Attr_Save               */
06646             0,  /* Obj_Sf_Actual_Arg            Attr_Pointer            */
06647           759,  /* Obj_Sf_Actual_Arg            Attr_External           */
06648           759,  /* Obj_Sf_Actual_Arg            Attr_Intrinsic          */
06649             0,  /* Obj_Sf_Actual_Arg            Attr_Data_Init          */
06650             0,  /* Obj_Sf_Actual_Arg            Attr_Type               */
06651           759,  /* Obj_Sf_Actual_Arg            Attr_Co_Array           */
06652             0,  /* Obj_Sf_Actual_Arg            Attr_Automatic          */
06653             0   /* Obj_Sf_Actual_Arg            Attr_Volatile           */
06654         },
06655 
06656 
06657         /************************ Obj_Var_Len_Ch ************************/
06658         /* This is a variable length character (automatic or            */
06659         /* adjustable). This is not called until the length has been    */
06660         /* resolved at the end of pass1.  If the length resolves to a   */
06661         /* constant, fnd_semantic_err is not called.    If it resolves  */
06662         /* to a non-constant, fnd_semantic_err is called with this.     */
06663         /* (5.1 discussion)  The specification-expr of a type-param-    */
06664         /* value may be a nonconstant expression provided the           */
06665         /* specification expression is in an interface body or in the   */
06666         /* specification part of a subprogram.  If the data object      */
06667         /* being declared depends on the value of such a nonconstant    */
06668         /* expression and is not a dummy argument, such an object is    */
06669         /* called an automatic data object.  An automatic data object   */
06670         /* must not appear in a SAVE or DATA statement nor be declared  */
06671         /* with a SAVE attribute nor be initially defined by an =       */
06672         /* initialization-expr.                                         */
06673         /****************************************************************/
06674 
06675         { 576,  /* Obj_Var_Len_Ch               Attr_Assumed_Type_Ch    */
06676                 /* Assumed type char cannot be an implicit type.        */
06677                 /* (5.1.1.5).   This would be retyping. (5.1)           */
06678                 /* So this means that ATD_TYPED is set.                 */
06679 
06680             0,  /* Obj_Var_Len_Ch               Attr_Dimension          */
06681             0,  /* Obj_Var_Len_Ch               Attr_Explicit_Shp_Arr   */
06682             0,  /* Obj_Var_Len_Ch               Attr_Assumed_Size_Arr   */
06683             0,  /* Obj_Var_Len_Ch               Attr_Deferred_Shp_Arr   */
06684             0,  /* Obj_Var_Len_Ch               Attr_Assumed_Shp_Arr    */
06685 
06686             0,  /* Obj_Var_Len_Ch               Attr_Allocatable        */
06687                 /* Interpretation 79 makes this legal.                  */
06688           576,  /* Obj_Var_Len_Ch               Attr_Parameter          */
06689                 /* 5.1 constraint                                       */
06690 
06691             0,  /* Obj_Var_Len_Ch               Attr_Intent             */
06692             0,  /* Obj_Var_Len_Ch               Attr_Optional           */
06693 
06694             0,  /* Obj_Var_Len_Ch               Attr_Private            */
06695             0,  /* Obj_Var_Len_Ch               Attr_Public             */
06696 
06697             0,  /* Obj_Var_Len_Ch               Attr_Target             */
06698 
06699           576,  /* Obj_Var_Len_Ch               Attr_Equivalence        */
06700                 /* 5.5.1                                                */
06701 
06702           576,  /* Obj_Var_Len_Ch               Attr_Save               */
06703                 /* 5.2.4                                                */
06704 
06705             0,  /* Obj_Var_Len_Ch               Attr_Pointer            */
06706                 /* Interpretation 79 makes this legal.                  */
06707 
06708             0,  /* Obj_Var_Len_Ch               Attr_External           */
06709                 /* We issue a better error message in line.     It is   */
06710                 /* Illegal to have EXTERNAL and var len character.      */
06711 
06712             0,  /* Obj_Var_Len_Ch               Attr_Intrinsic          */
06713                 /* Legal to declare a type for a function result. Can   */
06714                 /* also declare a type for a specific or generic        */
06715                 /* intrinsic function. (5.1 discussion)                 */
06716 
06717           576,  /* Obj_Var_Len_Ch               Attr_Data_Init          */
06718                 /* 5.1 constraint                                       */
06719 
06720             0,  /* Obj_Var_Len_Ch               Attr_Type               */
06721                 /* This is okay, because Obj_Type has been checked      */
06722                 /* when the type was first assigned.                    */
06723 
06724             0,  /* Obj_Var_Len_Ch               Attr_Co_Array           */
06725           576,  /* Obj_Var_Len_Ch               Attr_Automatic          */
06726             0   /* Obj_Var_Len_Ch               Attr_Volatile           */
06727         },
06728 
06729 
06730         /************************ Obj_Var_Len_Arr ***********************/
06731         /* This is an explicit-shape array.  It can be adjustable or    */
06732         /* automatic.   It is not known that this is a variable length  */
06733         /* array until the end of pass1.  These originally look like    */
06734         /* an explicit shape array with unknown size.                   */
06735         /* This must be a dummy argument, a function result, or an      */
06736         /* automatic object.                                            */
06737         /****************************************************************/
06738 
06739         {   0,  /* Obj_Var_Len_Arr              Attr_Assumed_Type_Ch    */
06740                 /* They can both be dargs. (5.1.1.5&    5.1.2.4.1)      */
06741 
06742             0,  /* Obj_Var_Len_Arr              Attr_Dimension          */
06743             0,  /* Obj_Var_Len_Arr              Attr_Explicit_Shp_Arr   */
06744           582,  /* Obj_Var_Len_Arr              Attr_Assumed_Size_Arr   */
06745             0,
06746             0,
06747                 /* These are all illegal, because that would be */
06748                 /* defining an object twice as an array.        (5.1)   */
06749 
06750             0,
06751                 /* Allocatable must be  deferred shape. (5.1)           */
06752 
06753           582,  /* Obj_Var_Len_Arr              Attr_Parameter          */
06754                 /* Shape must be specified before declaring something   */
06755                 /* as a constant. (5.2.10)                              */
06756 
06757             0,  /* Obj_Var_Len_Arr              Attr_Intent             */
06758             0,  /* Obj_Var_Len_Arr              Attr_Optional           */
06759 
06760             0,  /* Obj_Var_Len_Arr              Attr_Private            */
06761             0,  /* Obj_Var_Len_Arr              Attr_Public             */
06762                 /* This will eventually error, because variable length  */
06763                 /* arrays are not allowed in modules. (5.1.2.4.1)       */
06764 
06765             0,  /* Obj_Var_Len_Arr              Attr_Target             */
06766 
06767           582,  /* Obj_Var_Len_Arr              Attr_Equivalence        */
06768                 /* 5.5.1 constraint says equivalence may not be a       */
06769                 /* darg, an automatic object, or a function result.     */
06770 
06771           582,  /* Obj_Var_Len_Arr              Attr_Save               */
06772                 /* 5.2.4                                                */
06773 
06774           582,  /* Obj_Var_Len_Arr              Attr_Pointer            */
06775                 /* Pointer must be deferred shape (5.2.7)               */
06776 
06777           582,  /* Obj_Var_Len_Arr              Attr_External           */
06778           582,  /* Obj_Var_Len_Arr              Attr_Intrinsic          */
06779                 /* See [Obj_Expl_Shp_Arr] [Attr_External]  comments.    */
06780 
06781           582,  /* Obj_Var_Len_Arr              Attr_Data_Init          */
06782                 /* A constraint in 5.2.9 says a data initialized        */
06783                 /* object may not be a darg, an automatic object or a   */
06784                 /* function result.                                     */
06785 
06786             0,  /* Obj_Var_Len_Arr              Attr_Type               */
06787 
06788             0,  /* Obj_Var_Len_Arr              Attr_Co_Array           */
06789           582,  /* Obj_Var_Len_Arr              Attr_Automatic          */
06790             0   /* Obj_Var_Len_Arr              Attr_Volatile           */
06791         },
06792 
06793         /************************ Obj_Sym_Constant_Arr ******************/
06794         /* A symbolic constant array is an array where at least one of  */
06795         /* the bounds contains a symbolic constant expression.          */
06796         /* At end pass1, array bounds are resolved.                     */
06797         /* If they are constant, semantic checking is done, if they     */
06798         /* have symbolic constant bounds, fnd_semantic_err is called    */
06799         /* again for the object, using Obj_Sym_Constant_Arr.  There is  */
06800         /* nothing that can be a symbolic constant array that cannot    */
06801         /* be an array with constant bounds.  This is a Cray extension. */
06802         /****************************************************************/
06803 
06804         {   0,  /* Obj_Sym_Constant_Arr         Attr_Assumed_Type_Ch    */
06805             0,  /* Obj_Sym_Constant_Arr         Attr_Dimension          */
06806             0,  /* Obj_Sym_Constant_Arr         Attr_Explicit_Shp_Arr   */
06807             0,  /* Obj_Sym_Constant_Arr         Attr_Assumed_Size_Arr   */
06808          1223,  /* Obj_Sym_Constant_Arr         Attr_Deferred_Shp_Arr   */
06809             0,  /* Obj_Sym_Constant_Arr         Attr_Assumed_Shp_Arr    */
06810          1223,  /* Obj_Sym_Constant_Arr         Attr_Allocatable        */
06811          1223,  /* Obj_Sym_Constant_Arr         Attr_Parameter          */
06812             0,  /* Obj_Sym_Constant_Arr         Attr_Intent             */
06813             0,  /* Obj_Sym_Constant_Arr         Attr_Optional           */
06814             0,  /* Obj_Sym_Constant_Arr         Attr_Private            */
06815             0,  /* Obj_Sym_Constant_Arr         Attr_Public             */
06816             0,  /* Obj_Sym_Constant_Arr         Attr_Target             */
06817          1223,  /* Obj_Sym_Constant_Arr         Attr_Equivalence        */
06818             0,  /* Obj_Sym_Constant_Arr         Attr_Save               */
06819          1223,  /* Obj_Sym_Constant_Arr         Attr_Pointer            */
06820          1223,  /* Obj_Sym_Constant_Arr         Attr_External           */
06821          1223,  /* Obj_Sym_Constant_Arr         Attr_Intrinsic          */
06822          1223,  /* Obj_Sym_Constant_Arr         Attr_Data_Init          */
06823             0,  /* Obj_Sym_Constant_Arr         Attr_Type               */
06824          1223,  /* Obj_Sym_Constant_Arr         Attr_Co_Array           */
06825             0,  /* Obj_Sym_Constant_Arr         Attr_Automatic          */
06826          1223   /* Obj_Sym_Constant_Arr         Attr_Volatile           */
06827         },
06828 
06829 
06830         /************************ Obj_Interface_Func ********************/
06831         /* This is the name of the FUNCTION on an interface body.       */
06832         /* 12.3.2.1 states that a procedure must not have more than     */
06833         /* one explicit interface in a scoping unit.    12.3.1 states   */
06834         /* that specifying an external or dummy procedure in an         */
06835         /* interface block, causes it to have an explicit interface.    */
06836         /* 12.3 defines an interface as the characteristics of the      */
06837         /* procedure, its dummy arguments and its function result (if   */
06838         /* it's a function).  Since the actual definition of the module */
06839         /* procedure is the explicit interface, it's characteristics    */
06840         /* cannot be defined outside of the module procedure            */
06841         /* definition.  Also 5.1 states that an entity must not be      */
06842         /* given any attribute more than once in a scoping unit.        */
06843         /****************************************************************/
06844 
06845         { 608,  /* Obj_Interface_Func           Attr_Assumed_Type_Ch    */
06846           608,  /* Obj_Interface_Func           Attr_Dimension          */
06847           608,  /* Obj_Interface_Func           Attr_Explicit_Shp_Arr   */
06848           608,  /* Obj_Interface_Func           Attr_Assumed_Size_Arr   */
06849           608,  /* Obj_Interface_Func           Attr_Deferred_Shp_Arr   */
06850           608,  /* Obj_Interface_Func           Attr_Assumed_Shp_Arr    */
06851           608,  /* Obj_Interface_Func           Attr_Allocatable        */
06852           608,  /* Obj_Interface_Func           Attr_Parameter          */
06853           608,  /* Obj_Interface_Func           Attr_Intent             */
06854 
06855             0,  /* Obj_Interface_Func           Attr_Optional           */
06856                 /* This is a characteristic of the function as a darg   */
06857                 /* in the host scoping unit, and not a characteristic   */
06858                 /* of the procedure itself.     (12.2)                  */
06859 
06860             0,  /* Obj_Interface_Func           Attr_Private            */
06861             0,  /* Obj_Interface_Func           Attr_Public             */
06862                 /* Access is not a characteristic.  (12.3) It can be    */
06863                 /* specified for procedures (5.2.3 constraint).         */
06864 
06865           608,  /* Obj_Interface_Func           Attr_Target             */
06866           608,  /* Obj_Interface_Func           Attr_Equivalence        */
06867           608,  /* Obj_Interface_Func           Attr_Save               */
06868           608,  /* Obj_Interface_Func           Attr_Pointer            */
06869           608,  /* Obj_Interface_Func           Attr_External           */
06870           608,  /* Obj_Interface_Func           Attr_Intrinsic          */
06871           608,  /* Obj_Interface_Func           Attr_Data_Init          */
06872           608,  /* Obj_Interface_Func           Attr_Type               */
06873           608,  /* Obj_Interface_Func           Attr_Co_Array           */
06874             0,  /* Obj_Interface_Func           Attr_Automatic          */
06875           608   /* Obj_Interface_Func           Attr_Volatile           */
06876         },
06877 
06878 
06879         /************************ Obj_Interface_Subr ********************/
06880         /* This is the name of the SUBROUTINE on an interface body.     */
06881         /* This may be a dummy procedure        (12.3.2.1) discussion   */
06882         /* Subroutines can't be typed, shaped or anything else.         */
06883         /****************************************************************/
06884 
06885         { 608,  /* Obj_Interface_Subr           Attr_Assumed_Type_Ch    */
06886           608,  /* Obj_Interface_Subr           Attr_Dimension          */
06887           608,  /* Obj_Interface_Subr           Attr_Explicit_Shp_Arr   */
06888           608,  /* Obj_Interface_Subr           Attr_Assumed_Size_Arr   */
06889           608,  /* Obj_Interface_Subr           Attr_Deferred_Shp_Arr   */
06890           608,  /* Obj_Interface_Subr           Attr_Assumed_Shp_Arr    */
06891           608,  /* Obj_Interface_Subr           Attr_Allocatable        */
06892           608,  /* Obj_Interface_Subr           Attr_Parameter          */
06893           608,  /* Obj_Interface_Subr           Attr_Intent             */
06894 
06895             0,  /* Obj_Interface_Subr           Attr_Optional           */
06896                 /* 12.3.2.1                                             */
06897 
06898             0,  /* Obj_Interface_Subr           Attr_Private            */
06899             0,  /* Obj_Interface_Subr           Attr_Public             */
06900                 /* 5.2.3 allows these to be set for procedures.         */
06901 
06902           608,  /* Obj_Interface_Subr           Attr_Target             */
06903           608,  /* Obj_Interface_Subr           Attr_Equivalence        */
06904           608,  /* Obj_Interface_Subr           Attr_Save               */
06905           608,  /* Obj_Interface_Subr           Attr_Pointer            */
06906           608,  /* Obj_Interface_Subr           Attr_External           */
06907           608,  /* Obj_Interface_Subr           Attr_Intrinsic          */
06908           608,  /* Obj_Interface_Subr           Attr_Data_Init          */
06909           608,  /* Obj_Interface_Subr           Attr_Type               */
06910           608,  /* Obj_Interface_Subr           Attr_Co_Array           */
06911           608,  /* Obj_Interface_Subr           Attr_Automatic          */
06912           608   /* Obj_Interface_Subr           Attr_Volatile           */
06913         },
06914 
06915 
06916         /************************ Obj_Use_Extern_Func ********************/
06917         /* This is an external function in an expression.               */
06918         /***************************************************************/
06919 
06920         {   0,  /* Obj_Use_Extern_Func          Attr_Assumed_Type_Ch    */
06921                 /* 5.1.1.1 says *(*) must be the current function       */
06922                 /* being compiled.  It says that the caller must        */
06923                 /* have a known character length.  So if this was       */
06924                 /* done, this would be a recursive call, and the char   */
06925                 /* length wouldn't be known.    Extension               */
06926                 /* Checked in line, because dummy procs are allowed     */
06927                 /* to be this, but other things are not.                */
06928 
06929             0,  /* Obj_Use_Extern_Func          Attr_Dimension          */
06930             0,  /* Obj_Use_Extern_Func          Attr_Explicit_Shp_Arr   */
06931 
06932           628,  /* Obj_Use_Extern_Func          Attr_Assumed_Size_Arr   */
06933                 /* This is a darg.      (5.1.2.4.4)                     */
06934                 
06935             0,  /* Obj_Use_Extern_Func          Attr_Deferred_Shp_Arr   */
06936 
06937           628,  /* Obj_Use_Extern_Func          Attr_Assumed_Shp_Arr    */
06938                 /* This is a darg.      (5.1.2.4.2)                     */
06939 
06940           628,  /* Obj_Use_Extern_Func          Attr_Allocatable        */
06941                 /* This can't be a function result. (5.2.6) constraint  */
06942 
06943           628,  /* Obj_Use_Extern_Func          Attr_Parameter          */
06944                 /* Constants can't be functions (14.1.2)                */
06945 
06946           628,  /* Obj_Use_Extern_Func          Attr_Intent             */
06947                 /* Intent can't be specified for a dummy proc. 5.1.2.3  */
06948 
06949             0,  /* Obj_Use_Extern_Func          Attr_Optional           */
06950             0,  /* Obj_Use_Extern_Func          Attr_Private            */
06951             0,  /* Obj_Use_Extern_Func          Attr_Public             */
06952 
06953           628,  /* Obj_Use_Extern_Func          Attr_Target             */
06954                 /* ????                                                 */
06955 
06956           628,  /* Obj_Use_Extern_Func          Attr_Equivalence        */
06957                 /* Must be a variable - 5.5.1                            */
06958 
06959           628,  /* Obj_Use_Extern_Func          Attr_Save               */
06960                 /* 5.2.4                                                */
06961 
06962             0,  /* Obj_Use_Extern_Func          Attr_Pointer            */
06963             0,  /* Obj_Use_Extern_Func          Attr_External           */
06964             0,  /* Obj_Use_Extern_Func          Attr_Intrinsic          */
06965 
06966           628,  /* Obj_Use_Extern_Func          Attr_Data_Init          */
06967                 /* 5.1 constraint                                       */
06968 
06969             0,  /* Obj_Use_Extern_Func          Attr_Type               */
06970           628,  /* Obj_Use_Extern_Func          Attr_Co_Array           */
06971             0,  /* Obj_Use_Extern_Func          Attr_Automatic          */
06972           628   /* Obj_Use_Extern_Func          Attr_Volatile           */
06973         },
06974 
06975 
06976         /************************ Obj_Use_Extern_Subr *******************/
06977         /* This is an external subroutine in an expression.             */
06978         /* Subroutines can't be typed, ranked or anything else.         */
06979         /****************************************************************/
06980 
06981         { 633,  /* Obj_Use_Extern_Subr          Attr_Assumed_Type_Ch    */
06982           633,  /* Obj_Use_Extern_Subr          Attr_Dimension          */
06983           633,  /* Obj_Use_Extern_Subr          Attr_Explicit_Shp_Arr   */
06984           633,  /* Obj_Use_Extern_Subr          Attr_Assumed_Size_Arr   */
06985           633,  /* Obj_Use_Extern_Subr          Attr_Deferred_Shp_Arr   */
06986           633,  /* Obj_Use_Extern_Subr          Attr_Assumed_Shp_Arr    */
06987           633,  /* Obj_Use_Extern_Subr          Attr_Allocatable        */
06988           633,  /* Obj_Use_Extern_Subr          Attr_Parameter          */
06989           633,  /* Obj_Use_Extern_Subr          Attr_Intent             */
06990 
06991             0,  /* Obj_Use_Extern_Subr          Attr_Optional           */
06992                 /* This can be a dummy proc.    They can be optional.   */
06993 
06994             0,  /* Obj_Use_Extern_Subr          Attr_Private            */
06995             0,  /* Obj_Use_Extern_Subr          Attr_Public             */
06996 
06997           633,  /* Obj_Use_Extern_Subr          Attr_Target             */
06998           633,  /* Obj_Use_Extern_Subr          Attr_Equivalence        */
06999           633,  /* Obj_Use_Extern_Subr          Attr_Save               */
07000           633,  /* Obj_Use_Extern_Subr          Attr_Pointer            */
07001 
07002             0,  /* Obj_Use_Extern_Subr          Attr_External           */
07003 
07004             0,  /* Obj_Use_Extern_Subr          Attr_Intrinsic          */
07005           633,  /* Obj_Use_Extern_Subr          Attr_Data_Init          */
07006           633,  /* Obj_Use_Extern_Subr          Attr_Type               */
07007           633,  /* Obj_Use_Extern_Subr          Attr_Co_Array           */
07008           633,  /* Obj_Use_Extern_Subr          Attr_Automatic          */
07009           633   /* Obj_Use_Extern_Subr          Attr_Volatile           */
07010         },
07011 
07012 
07013         /************************ Obj_Use_In_Expr ***********************/
07014         /*      This is something referenced in an expression.          */
07015         /****************************************************************/
07016 
07017         {   0,  /* Obj_Use_In_Expr              Attr_Assumed_Type_Ch    */
07018             0,  /* Obj_Use_In_Expr              Attr_Dimension          */
07019             0,  /* Obj_Use_In_Expr              Attr_Explicit_Shp_Arr   */
07020             0,  /* Obj_Use_In_Expr              Attr_Assumed_Size_Arr   */
07021             0,  /* Obj_Use_In_Expr              Attr_Deferred_Shp_Arr   */
07022             0,  /* Obj_Use_In_Expr              Attr_Assumed_Shp_Arr    */
07023             0,  /* Obj_Use_In_Expr              Attr_Allocatable        */
07024             0,  /* Obj_Use_In_Expr              Attr_Parameter          */
07025             0,  /* Obj_Use_In_Expr              Attr_Intent             */
07026             0,  /* Obj_Use_In_Expr              Attr_Optional           */
07027             0,  /* Obj_Use_In_Expr              Attr_Private            */
07028             0,  /* Obj_Use_In_Expr              Attr_Public             */
07029             0,  /* Obj_Use_In_Expr              Attr_Target             */
07030             0,  /* Obj_Use_In_Expr              Attr_Equivalence        */
07031             0,  /* Obj_Use_In_Expr              Attr_Save               */
07032             0,  /* Obj_Use_In_Expr              Attr_Pointer            */
07033             0,  /* Obj_Use_In_Expr              Attr_External           */
07034             0,  /* Obj_Use_In_Expr              Attr_Intrinsic          */
07035             0,  /* Obj_Use_In_Expr              Attr_Data_Init          */
07036             0,  /* Obj_Use_In_Expr              Attr_Type               */
07037             0,  /* Obj_Use_In_Expr              Attr_Co_Array           */
07038             0,  /* Obj_Use_In_Expr              Attr_Automatic          */
07039             0   /* Obj_Use_In_Expr              Attr_Volatile           */
07040         },
07041 
07042 
07043         /************************ Obj_Use_Derived_Type ******************/
07044         /*      This is a name used to type something as a derived type.*/
07045         /*      Derived types can't be variables, constants, functions, */
07046         /*      or dummy args.  (14.1.2)                                */
07047         /****************************************************************/
07048 
07049         { 644,  /* Obj_Use_Derived_Type         Attr_Assumed_Type_Ch    */
07050           644,  /* Obj_Use_Derived_Type         Attr_Dimension          */
07051           644,  /* Obj_Use_Derived_Type         Attr_Explicit_Shp_Arr   */
07052           644,  /* Obj_Use_Derived_Type         Attr_Assumed_Size_Arr   */
07053           644,  /* Obj_Use_Derived_Type         Attr_Deferred_Shp_Arr   */
07054           644,  /* Obj_Use_Derived_Type         Attr_Assumed_Shp_Arr    */
07055           644,  /* Obj_Use_Derived_Type         Attr_Allocatable        */
07056           644,  /* Obj_Use_Derived_Type         Attr_Parameter          */
07057           644,  /* Obj_Use_Derived_Type         Attr_Intent             */
07058           644,  /* Obj_Use_Derived_Type         Attr_Optional           */
07059 
07060             0,  /* Obj_Use_Derived_Type         Attr_Private            */
07061             0,  /* Obj_Use_Derived_Type         Attr_Public             */
07062                 /* 5.2.3 constraint                                     */
07063 
07064           644,  /* Obj_Use_Derived_Type         Attr_Target             */
07065           644,  /* Obj_Use_Derived_Type         Attr_Equivalence        */
07066           644,  /* Obj_Use_Derived_Type         Attr_Save               */
07067           644,  /* Obj_Use_Derived_Type         Attr_Pointer            */
07068           644,  /* Obj_Use_Derived_Type         Attr_External           */
07069           644,  /* Obj_Use_Derived_Type         Attr_Intrinsic          */
07070           644,  /* Obj_Use_Derived_Type         Attr_Data_Init          */
07071           644,  /* Obj_Use_Derived_Type         Attr_Type               */
07072           644,  /* Obj_Use_Derived_Type         Attr_Co_Array           */
07073           644,  /* Obj_Use_Derived_Type         Attr_Automatic          */
07074           644   /* Obj_Use_Derived_Type         Attr_Volatile           */
07075         },
07076 
07077 
07078         /************************ Obj_Use_Spec_Expr *********************/
07079         /* The rules for a specification expression are as follows:     */
07080         /* Each object must be a constant, a dummy arg (that doesn't    */
07081         /* have the OPTIONAL or the INTENT (OUT) attributes), in a      */
07082         /* common block, accessible by USE or HOST association.         */
07083         /* Specific rules are found in 7.1.6.2                          */
07084         /****************************************************************/
07085 
07086         {   0,  /* Obj_Use_Spec_Expr            Attr_Assumed_Type_Ch    */
07087             0,  /* Obj_Use_Spec_Expr            Attr_Dimension          */
07088             0,  /* Obj_Use_Spec_Expr            Attr_Explicit_Shp_Arr   */
07089             0,  /* Obj_Use_Spec_Expr            Attr_Assumed_Size_Arr   */
07090             0,  /* Obj_Use_Spec_Expr            Attr_Deferred_Shp_Arr   */
07091             0,  /* Obj_Use_Spec_Expr            Attr_Assumed_Shp_Arr    */
07092             0,  /* Obj_Use_Spec_Expr            Attr_Allocatable        */
07093             0,  /* Obj_Use_Spec_Expr            Attr_Parameter          */
07094             0,  /* Obj_Use_Spec_Expr            Attr_Intent             */
07095           437,  /* Obj_Use_Spec_Expr            Attr_Optional           */
07096             0,  /* Obj_Use_Spec_Expr            Attr_Private            */
07097             0,  /* Obj_Use_Spec_Expr            Attr_Public             */
07098             0,  /* Obj_Use_Spec_Expr            Attr_Target             */
07099             0,  /* Obj_Use_Spec_Expr            Attr_Equivalence        */
07100             0,  /* Obj_Use_Spec_Expr            Attr_Save               */
07101             0,  /* Obj_Use_Spec_Expr            Attr_Pointer            */
07102             0,  /* Obj_Use_Spec_Expr            Attr_External           */
07103             0,  /* Obj_Use_Spec_Expr            Attr_Intrinsic          */
07104             0,  /* Obj_Use_Spec_Expr            Attr_Data_Init          */
07105             0,  /* Obj_Use_Spec_Expr            Attr_Type               */
07106             0,  /* Obj_Use_Spec_Expr            Attr_Co_Array           */
07107             0,  /* Obj_Use_Spec_Expr            Attr_Automatic          */
07108             0   /* Obj_Use_Spec_Expr            Attr_Volatile           */
07109         },
07110 
07111 
07112         /********************** Obj_Use_Init_Expr ***********************/
07113         /* The rules for an initialization expression are as follows:   */
07114         /* It MUST be a CONSTANT.  It may be one of several INTRINSICS  */
07115         /* that are foldable.   (7.1.6.1)                               */
07116         /****************************************************************/
07117 
07118         {   0,  /* Obj_Use_Init_Expr            Attr_Assumed_Type_Ch    */
07119             0,  /* Obj_Use_Init_Expr            Attr_Dimension          */
07120             0,  /* Obj_Use_Init_Expr            Attr_Explicit_Shp_Arr   */
07121 
07122           210,  /* Obj_Use_Init_Expr            Attr_Assumed_Size_Arr   */
07123                 /* Constants can't be dargs.    (5.1.2.4.4, 14.1.2)     */
07124 
07125           210,  /* Obj_Use_Init_Expr            Attr_Deferred_Shp_Arr   */
07126                 /* Deferred shape must be allocatable or pointer.       */
07127                 /* Neither allocatable or pointer can be a constant.    */
07128 
07129           210,  /* Obj_Use_Init_Expr            Attr_Assumed_Shp_Arr    */
07130                 /* Constants can't be dargs.    (5.1.2.4.4, 14.1.2)     */
07131 
07132           210,  /* Obj_Use_Init_Expr            Attr_Allocatable        */
07133                 /* Illegal - 5.1 constraint                             */
07134 
07135             0,  /* Obj_Use_Init_Expr            Attr_Parameter          */
07136 
07137           210,  /* Obj_Use_Init_Expr            Attr_Intent             */
07138           210,  /* Obj_Use_Init_Expr            Attr_Optional           */
07139                 /* Constants can't be dargs.    (5.1.2.4.4, 14.1.2)     */
07140 
07141             0,  /* Obj_Use_Init_Expr            Attr_Private            */
07142             0,  /* Obj_Use_Init_Expr            Attr_Public             */
07143 
07144           210,  /* Obj_Use_Init_Expr            Attr_Target             */
07145                 /* Constraint 5.2.8 - illegal                           */
07146 
07147           210,  /* Obj_Use_Init_Expr            Attr_Equivalence        */
07148                 /* Constraint in 5.5.1                                  */
07149 
07150           210,  /* Obj_Use_Init_Expr            Attr_Save               */
07151 
07152           210,  /* Obj_Use_Init_Expr            Attr_Pointer            */
07153                 /* Illegal 5.2.7                                        */
07154 
07155           210,  /* Obj_Use_Init_Expr            Attr_External           */
07156           210,  /* Obj_Use_Init_Expr            Attr_Intrinsic          */
07157                 /* (5.1)                                                */
07158 
07159           210,  /* Obj_Use_Init_Expr            Attr_Data_Init          */
07160                 /* Constants can't be variables. (5.2.9, 14.1.2)        */
07161 
07162             0,  /* Obj_Use_Init_Expr            Attr_Type               */
07163 
07164           210,  /* Obj_Use_Init_Expr            Attr_Co_Array           */
07165             0,  /* Obj_Use_Init_Expr            Attr_Automatic          */
07166           210   /* Obj_Use_Init_Expr            Attr_Volatile           */
07167         }
07168 };
07169 
07170 
07171 long    dir_msg_num[Obj_Done] [Dir_Done]        = {
07172 
07173         {1459,  /* Obj_Assum_Type_Ch            Dir_Auxiliary           */
07174          1459,  /* Obj_Assum_Type_Ch            Dir_Vfunction           */
07175             0,  /* Obj_Assum_Type_Ch            Dir_No_Side_Effects     */
07176             0,  /* Obj_Assum_Type_Ch            Dir_Inline              */
07177          1459,  /* Obj_Assum_Type_Ch            Dir_Symmetric           */
07178             0,  /* Obj_Assum_Type_Ch            Dir_Copy_Assumed_Shape  */
07179          1459,  /* Obj_Assum_Type_Ch            Dir_Align_Symbol        */
07180          1459,  /* Obj_Assum_Type_Ch            Dir_Fill_Symbol         */
07181          1459,  /* Obj_Assum_Type_Ch            Dir_Section_Gp          */
07182          1459,  /* Obj_Assum_Type_Ch            Dir_Section_Non_Gp      */
07183             0,  /* Obj_Assum_Type_Ch            Dir_Ignore_TKR          */
07184             0,  /* Obj_Assum_Type_Ch            Dir_Optional            */
07185             0,  /* Obj_Assum_Type_Ch            Dir_Ipa                 */
07186             0   /* Obj_Assum_Type_Ch            Dir_Name                */
07187         },
07188 
07189         {   0,  /* Obj_Expl_Shp_Arr             Dir_Auxiliary           */
07190          1459,  /* Obj_Expl_Shp_Arr             Dir_Vfunction           */
07191             0,  /* Obj_Expl_Shp_Arr             Dir_No_Side_Effects     */
07192             0,  /* Obj_Expl_Shp_Arr             Dir_Inline              */
07193             0,  /* Obj_Expl_Shp_Arr             Dir_Symmetric           */
07194          1459,  /* Obj_Expl_Shp_Arr             Dir_Copy_Assumed_Shape  */
07195             0,  /* Obj_Expl_Shp_Arr             Dir_Align_Symbol        */
07196             0,  /* Obj_Expl_Shp_Arr             Dir_Fill_Symbol         */
07197             0,  /* Obj_Expl_Shp_Arr             Dir_Section_Gp          */
07198             0,  /* Obj_Expl_Shp_Arr             Dir_Section_Non_Gp      */
07199             0,  /* Obj_Expl_Shp_Arr             Dir_Ignore_TKR          */
07200          1459,  /* Obj_Expl_Shp_Arr             Dir_Optional            */
07201             0,  /* Obj_Expl_Shp_Arr             Dir_Ipa                 */
07202          1459   /* Obj_Expl_Shp_Arr             Dir_Name                */
07203         },
07204 
07205         {   0,  /* Obj_Assum_Size_Arr           Dir_Auxiliary           */
07206          1459,  /* Obj_Assum_Size_Arr           Dir_Vfunction           */
07207          1459,  /* Obj_Assum_Size_Arr           Dir_No_Side_Effects     */
07208          1459,  /* Obj_Assum_Size_Arr           Dir_Inline              */
07209          1459,  /* Obj_Assum_Size_Arr           Dir_Symmetric           */
07210          1459,  /* Obj_Assum_Size_Arr           Dir_Copy_Assumed_Shape  */
07211          1459,  /* Obj_Assum_Size_Arr           Dir_Align_Symbol        */
07212          1459,  /* Obj_Assum_Size_Arr           Dir_Fill_Symbol         */
07213          1459,  /* Obj_Assum_Size_Arr           Dir_Section_Gp          */
07214          1459,  /* Obj_Assum_Size_Arr           Dir_Section_Non_Gp      */
07215             0,  /* Obj_Assum_Size_Arr           Dir_Ignore_TKR          */
07216          1459,  /* Obj_Assum_Size_Arr           Dir_Optional            */
07217          1459,  /* Obj_Assum_Size_Arr           Dir_Ipa                 */
07218          1459   /* Obj_Assum_Size_Arr           Dir_Name                */
07219         },
07220  
07221         {1459,  /* Obj_Defrd_Shp_Arr            Dir_Auxiliary           */
07222          1459,  /* Obj_Defrd_Shp_Arr            Dir_Vfunction           */
07223             0,  /* Obj_Defrd_Shp_Arr            Dir_No_Side_Effects     */
07224             0,  /* Obj_Defrd_Shp_Arr            Dir_Inline              */
07225          1459,  /* Obj_Defrd_Shp_Arr            Dir_Symmetric           */
07226             0,  /* Obj_Defrd_Shp_Arr            Dir_Copy_Assumed_Shape  */
07227             0,  /* Obj_Defrd_Shp_Arr            Dir_Align_Symbol        */
07228             0,  /* Obj_Defrd_Shp_Arr            Dir_Fill_Symbol         */
07229             0,  /* Obj_Defrd_Shp_Arr            Dir_Section_Gp          */
07230             0,  /* Obj_Defrd_Shp_Arr            Dir_Section_Non_Gp      */
07231             0,  /* Obj_Defrd_Shp_Arr            Dir_Ignore_TKR          */
07232          1459,  /* Obj_Defrd_Shp_Arr            Dir_Optional            */
07233             0,  /* Obj_Defrd_Shp_Arr            Dir_Ipa                 */
07234          1459   /* Obj_Defrd_Shp_Arr            Dir_Name                */
07235         },
07236 
07237         {1459,  /* Obj_Assum_Shp_Arr            Dir_Auxiliary           */
07238          1459,  /* Obj_Assum_Shp_Arr            Dir_Vfunction           */
07239          1459,  /* Obj_Assum_Shp_Arr            Dir_No_Side_Effects     */
07240          1459,  /* Obj_Assum_Shp_Arr            Dir_Inline              */
07241          1459,  /* Obj_Assum_Shp_Arr            Dir_Symmetric           */
07242             0,  /* Obj_Assum_Shp_Arr            Dir_Copy_Assumed_Shape  */
07243          1459,  /* Obj_Assum_Shp_Arr            Dir_Align_Symbol        */
07244          1459,  /* Obj_Assum_Shp_Arr            Dir_Fill_Symbol         */
07245          1459,  /* Obj_Assum_Shp_Arr            Dir_Section_Gp          */
07246          1459,  /* Obj_Assum_Shp_Arr            Dir_Section_Non_Gp      */
07247          1459,  /* Obj_Assum_Shp_Arr            Dir_Ignore_TKR          */
07248          1459,  /* Obj_Assum_Shp_Arr            Dir_Optional            */
07249          1459,  /* Obj_Assum_Shp_Arr            Dir_Ipa                 */
07250          1459   /* Obj_Assum_Shp_Arr            Dir_Name                */
07251         },
07252 
07253         {1459,  /* Obj_Co_Array         Dir_Auxiliary           */
07254          1459,  /* Obj_Co_Array         Dir_Vfunction           */
07255          1459,  /* Obj_Co_Array         Dir_No_Side_Effects     */
07256          1459,  /* Obj_Co_Array         Dir_Inline              */
07257          1459,  /* Obj_Co_Array         Dir_Symmetric           */
07258          1459,  /* Obj_Co_Array         Dir_Copy_Assumed_Shape  */
07259          1459,  /* Obj_Co_Array         Dir_Align_Symbol        */
07260          1459,  /* Obj_Co_Array         Dir_Fill_Symbol         */
07261          1459,  /* Obj_Co_Array         Dir_Section_Gp          */
07262          1459,  /* Obj_Co_Array         Dir_Section_Non_Gp      */
07263             0,  /* Obj_Co_Array         Dir_Ignore_TKR          */
07264          1459,  /* Obj_Co_Array         Dir_Optional            */
07265          1459,  /* Obj_Co_Array         Dir_Ipa                 */
07266          1459   /* Obj_Co_Array         Dir_Name                */
07267         },
07268 
07269         {1459,  /* Obj_Allocatable              Dir_Auxiliary           */
07270          1459,  /* Obj_Allocatable              Dir_Vfunction           */
07271          1459,  /* Obj_Allocatable              Dir_No_Side_Effects     */
07272          1459,  /* Obj_Allocatable              Dir_Inline              */
07273          1459,  /* Obj_Allocatable              Dir_Symmetric           */
07274          1459,  /* Obj_Allocatable              Dir_Copy_Assumed_Shape  */
07275          1459,  /* Obj_Allocatable              Dir_Align_Symbol        */
07276          1459,  /* Obj_Allocatable              Dir_Fill_Symbol         */
07277          1459,  /* Obj_Allocatable              Dir_Section_Gp          */
07278          1459,  /* Obj_Allocatable              Dir_Section_Non_Gp      */
07279          1459,  /* Obj_Allocatable              Dir_Ignore_TKR          */
07280          1459,  /* Obj_Allocatable              Dir_Optional            */
07281          1459,  /* Obj_Allocatable              Dir_Ipa                 */
07282          1459   /* Obj_Allocatable              Dir_Name                */
07283         },
07284 
07285 
07286         {1459,  /* Obj_Constant                 Dir_Auxiliary           */
07287          1459,  /* Obj_Constant                 Dir_Vfunction           */
07288          1459,  /* Obj_Constant                 Dir_No_Side_Effects     */
07289          1459,  /* Obj_Constant                 Dir_Inline              */
07290          1459,  /* Obj_Constant                 Dir_Symmetric           */
07291          1459,  /* Obj_Constant                 Dir_Copy_Assumed_Shape  */
07292          1459,  /* Obj_Constant                 Dir_Align_Symbol        */
07293          1459,  /* Obj_Constant                 Dir_Fill_Symbol         */
07294          1459,  /* Obj_Constant                 Dir_Section_Gp          */
07295          1459,  /* Obj_Constant                 Dir_Section_Non_Gp      */
07296          1459,  /* Obj_Constant                 Dir_Ignore_TKR          */
07297          1459,  /* Obj_Constant                 Dir_Optional            */
07298          1459,  /* Obj_Constant                 Dir_Ipa                 */
07299          1459   /* Obj_Constant                 Dir_Name                */
07300         },
07301 
07302         {   0,  /* Obj_Intent                   Dir_Auxiliary           */
07303          1459,  /* Obj_Intent                   Dir_Vfunction           */
07304          1459,  /* Obj_Intent                   Dir_No_Side_Effects     */
07305          1459,  /* Obj_Intent                   Dir_Inline              */
07306          1459,  /* Obj_Intent                   Dir_Symmetric           */
07307             0,  /* Obj_Intent                   Dir_Copy_Assumed_Shape  */
07308          1459,  /* Obj_Intent                   Dir_Align_Symbol        */
07309          1459,  /* Obj_Intent                   Dir_Fill_Symbol         */
07310          1459,  /* Obj_Intent                   Dir_Section_Gp          */
07311          1459,  /* Obj_Intent                   Dir_Section_Non_Gp      */
07312             0,  /* Obj_Intent                   Dir_Ignore_TKR          */
07313          1459,  /* Obj_Intent                   Dir_Optional            */
07314          1459,  /* Obj_Intent                   Dir_Ipa                 */
07315          1459   /* Obj_Intent                   Dir_Name                */
07316         },
07317 
07318         {   0,  /* Obj_Optional                 Dir_Auxiliary           */
07319          1459,  /* Obj_Optional                 Dir_Vfunction           */
07320          1459,  /* Obj_Optional                 Dir_No_Side_Effects     */
07321          1459,  /* Obj_Optional                 Dir_Inline              */
07322          1459,  /* Obj_Optional                 Dir_Symmetric           */
07323             0,  /* Obj_Optional                 Dir_Copy_Assumed_Shape  */
07324          1459,  /* Obj_Optional                 Dir_Align_Symbol        */
07325          1459,  /* Obj_Optional                 Dir_Fill_Symbol         */
07326          1459,  /* Obj_Optional                 Dir_Section_Gp          */
07327          1459,  /* Obj_Optional                 Dir_Section_Non_Gp      */
07328             0,  /* Obj_Optional                 Dir_Ignore_TKR          */
07329             0,  /* Obj_Optional                 Dir_Optional            */
07330          1459,  /* Obj_Optional                 Dir_Ipa                 */
07331             0   /* Obj_Optional                 Dir_Name                */
07332         },
07333 
07334         {   0,  /* Obj_Private                  Dir_Auxiliary           */
07335             0,  /* Obj_Private                  Dir_Vfunction           */
07336             0,  /* Obj_Private                  Dir_No_Side_Effects     */
07337             0,  /* Obj_Private                  Dir_Inline              */
07338             0,  /* Obj_Private                  Dir_Symmetric           */
07339             0,  /* Obj_Private                  Dir_Copy_Assumed_Shape  */
07340             0,  /* Obj_Private                  Dir_Align_Symbol        */
07341             0,  /* Obj_Private                  Dir_Fill_Symbol         */
07342             0,  /* Obj_Private                  Dir_Section_Gp          */
07343             0,  /* Obj_Private                  Dir_Section_Non_Gp      */
07344             0,  /* Obj_Private                  Dir_Ignore_TKR          */
07345             0,  /* Obj_Private                  Dir_Optional            */
07346             0,  /* Obj_Private                  Dir_Ipa                 */
07347             0   /* Obj_Private                  Dir_Name                */
07348         },
07349 
07350         {   0,  /* Obj_Public                   Dir_Auxiliary           */
07351             0,  /* Obj_Public                   Dir_Vfunction           */
07352             0,  /* Obj_Public                   Dir_No_Side_Effects     */
07353             0,  /* Obj_Public                   Dir_Inline              */
07354             0,  /* Obj_Public                   Dir_Symmetric           */
07355             0,  /* Obj_Public                   Dir_Copy_Assumed_Shape  */
07356             0,  /* Obj_Public                   Dir_Align_Symbol        */
07357             0,  /* Obj_Public                   Dir_Fill_Symbol         */
07358             0,  /* Obj_Public                   Dir_Section_Gp          */
07359             0,  /* Obj_Public                   Dir_Section_Non_Gp      */
07360             0,  /* Obj_Public                   Dir_Ignore_TKR          */
07361             0,  /* Obj_Public                   Dir_Optional            */
07362             0,  /* Obj_Public                   Dir_Ipa                 */
07363             0   /* Obj_Public                   Dir_Name                */
07364         },
07365 
07366         {1459,  /* Obj_Target                   Dir_Auxiliary           */
07367          1459,  /* Obj_Target                   Dir_Vfunction           */
07368             0,  /* Obj_Target                   Dir_No_Side_Effects     */
07369             0,  /* Obj_Target                   Dir_Inline              */
07370          1459,  /* Obj_Target                   Dir_Symmetric           */
07371          1459,  /* Obj_Target                   Dir_Copy_Assumed_Shape  */
07372             0,  /* Obj_Target                   Dir_Align_Symbol        */
07373             0,  /* Obj_Target                   Dir_Fill_Symbol         */
07374             0,  /* Obj_Target                   Dir_Section_Gp          */
07375             0,  /* Obj_Target                   Dir_Section_Non_Gp      */
07376             0,  /* Obj_Target                   Dir_Ignore_TKR          */
07377          1459,  /* Obj_Target                   Dir_Optional            */
07378             0,  /* Obj_Target                   Dir_Ipa                 */
07379          1459   /* Obj_Target                   Dir_Name                */
07380         },
07381 
07382         {   0,  /* Obj_Equiv                    Dir_Auxiliary           */
07383          1459,  /* Obj_Equiv                    Dir_Vfunction           */
07384          1459,  /* Obj_Equiv                    Dir_No_Side_Effects     */
07385          1459,  /* Obj_Equiv                    Dir_Inline              */
07386          1459,  /* Obj_Equiv                    Dir_Symmetric           */
07387          1459,  /* Obj_Equiv                    Dir_Copy_Assumed_Shape  */
07388          1459,  /* Obj_Equiv                    Dir_Align_Symbol        */
07389          1459,  /* Obj_Equiv                    Dir_Fill_Symbol         */
07390          1459,  /* Obj_Equiv                    Dir_Section_Gp          */
07391          1459,  /* Obj_Equiv                    Dir_Section_Non_Gp      */
07392          1459,  /* Obj_Equiv                    Dir_Ignore_TKR          */
07393          1459,  /* Obj_Equiv                    Dir_Optional            */
07394          1459,  /* Obj_Equiv                    Dir_Ipa                 */
07395          1459   /* Obj_Equiv                    Dir_Name                */
07396         },
07397 
07398         {1459,  /* Obj_Saved                    Dir_Auxiliary           */
07399          1459,  /* Obj_Saved                    Dir_Vfunction           */
07400          1459,  /* Obj_Saved                    Dir_No_Side_Effects     */
07401          1459,  /* Obj_Saved                    Dir_Inline              */
07402          1459,  /* Obj_Saved                    Dir_Symmetric           */
07403          1459,  /* Obj_Saved                    Dir_Copy_Assumed_Shape  */
07404             0,  /* Obj_Saved                    Dir_Align_Symbol        */
07405             0,  /* Obj_Saved                    Dir_Fill_Symbol         */
07406             0,  /* Obj_Saved                    Dir_Section_Gp          */
07407             0,  /* Obj_Saved                    Dir_Section_Non_Gp      */
07408          1459,  /* Obj_Saved                    Dir_Ignore_TKR          */
07409          1459,  /* Obj_Saved                    Dir_Optional            */
07410          1459,  /* Obj_Saved                    Dir_Ipa                 */
07411          1459   /* Obj_Saved                    Dir_Name                */
07412         },
07413 
07414         {1459,  /* Obj_Automatic                Dir_Auxiliary           */
07415          1459,  /* Obj_Automatic                Dir_Vfunction           */
07416          1459,  /* Obj_Automatic                Dir_No_Side_Effects     */
07417          1459,  /* Obj_Automatic                Dir_Inline              */
07418          1459,  /* Obj_Automatic                Dir_Symmetric           */
07419          1459,  /* Obj_Automatic                Dir_Copy_Assumed_Shape  */
07420             0,  /* Obj_Automatic                Dir_Align_Symbol        */
07421             0,  /* Obj_Automatic                Dir_Fill_Symbol         */
07422          1459,  /* Obj_Automatic                Dir_Section_Gp          */
07423          1459,  /* Obj_Automatic                Dir_Section_Non_Gp      */
07424          1459,  /* Obj_Automatic                Dir_Ignore_TKR          */
07425          1459,  /* Obj_Automatic                Dir_Optional            */
07426          1459,  /* Obj_Automatic                Dir_Ipa                 */
07427          1459   /* Obj_Automatic                Dir_Name                */
07428         },
07429 
07430         {1459,  /* Obj_Pointer                  Dir_Auxiliary           */
07431          1459,  /* Obj_Pointer                  Dir_Vfunction           */
07432             0,  /* Obj_Pointer                  Dir_No_Side_Effects     */
07433             0,  /* Obj_Pointer                  Dir_Inline              */
07434          1459,  /* Obj_Pointer                  Dir_Symmetric           */
07435          1459,  /* Obj_Pointer                  Dir_Copy_Assumed_Shape  */
07436             0,  /* Obj_Pointer                  Dir_Align_Symbol        */
07437             0,  /* Obj_Pointer                  Dir_Fill_Symbol         */
07438             0,  /* Obj_Pointer                  Dir_Section_Gp          */
07439             0,  /* Obj_Pointer                  Dir_Section_Non_Gp      */
07440          1459,  /* Obj_Pointer                  Dir_Ignore_TKR          */
07441          1459,  /* Obj_Pointer                  Dir_Optional            */
07442             0,  /* Obj_Pointer                  Dir_Ipa                 */
07443          1459   /* Obj_Pointer                  Dir_Name                */
07444         },
07445 
07446         {1459,  /* Obj_Dcl_Extern               Dir_Auxiliary           */
07447          1459,  /* Obj_Dcl_Extern               Dir_Vfunction           */
07448             0,  /* Obj_Dcl_Extern               Dir_No_Side_Effects     */
07449             0,  /* Obj_Dcl_Extern               Dir_Inline              */
07450          1459,  /* Obj_Dcl_Extern               Dir_Symmetric           */
07451          1459,  /* Obj_Dcl_Extern               Dir_Copy_Assumed_Shape  */
07452          1459,  /* Obj_Dcl_Extern               Dir_Align_Symbol        */
07453          1459,  /* Obj_Dcl_Extern               Dir_Fill_Symbol         */
07454          1459,  /* Obj_Dcl_Extern               Dir_Section_Gp          */
07455          1459,  /* Obj_Dcl_Extern               Dir_Section_Non_Gp      */
07456          1459,  /* Obj_Dcl_Extern               Dir_Ignore_TKR          */
07457             0,  /* Obj_Dcl_Extern               Dir_Optional            */
07458             0,  /* Obj_Dcl_Extern               Dir_Ipa                 */
07459             0   /* Obj_Dcl_Extern               Dir_Name                */
07460         },
07461 
07462         {1459,  /* Obj_Dcl_Intrin               Dir_Auxiliary           */
07463          1459,  /* Obj_Dcl_Intrin               Dir_Vfunction           */
07464          1459,  /* Obj_Dcl_Intrin               Dir_No_Side_Effects     */
07465          1459,  /* Obj_Dcl_Intrin               Dir_Inline              */
07466          1459,  /* Obj_Dcl_Intrin               Dir_Symmetric           */
07467          1459,  /* Obj_Dcl_Intrin               Dir_Copy_Assumed_Shape  */
07468          1459,  /* Obj_Dcl_Intrin               Dir_Align_Symbol        */
07469          1459,  /* Obj_Dcl_Intrin               Dir_Fill_Symbol         */
07470          1459,  /* Obj_Dcl_Intrin               Dir_Section_Gp          */
07471          1459,  /* Obj_Dcl_Intrin               Dir_Section_Non_Gp      */
07472          1459,  /* Obj_Dcl_Extern               Dir_Ignore_TKR          */
07473             0,  /* Obj_Dcl_Intrin               Dir_Optional            */
07474          1459,  /* Obj_Dcl_Intrin               Dir_Ipa                 */
07475          1459   /* Obj_Dcl_Intrin               Dir_Name                */
07476         },
07477 
07478         {1459,  /* Obj_Data_Init                Dir_Auxiliary           */
07479          1459,  /* Obj_Data_Init                Dir_Vfunction           */
07480          1459,  /* Obj_Data_Init                Dir_No_Side_Effects     */
07481          1459,  /* Obj_Data_Init                Dir_Inline              */
07482          1459,  /* Obj_Data_Init                Dir_Symmetric           */
07483          1459,  /* Obj_Data_Init                Dir_Copy_Assumed_Shape  */
07484          1459,  /* Obj_Data_Init                Dir_Align_Symbol        */
07485          1459,  /* Obj_Data_Init                Dir_Fill_Symbol         */
07486          1459,  /* Obj_Data_Init                Dir_Section_Gp          */
07487          1459,  /* Obj_Data_Init                Dir_Section_Non_Gp      */
07488          1459,  /* Obj_Data_Init                Dir_Ignore_TKR          */
07489          1459,  /* Obj_Data_Init                Dir_Optional            */
07490          1459,  /* Obj_Data_Init                Dir_Ipa                 */
07491          1459   /* Obj_Data_Init                Dir_Name                */
07492         },
07493  
07494         {   0,  /* Obj_Typed                    Dir_Auxiliary           */
07495             0,  /* Obj_Typed                    Dir_Vfunction           */
07496             0,  /* Obj_Typed                    Dir_No_Side_Effects     */
07497             0,  /* Obj_Typed                    Dir_Inline              */
07498             0,  /* Obj_Typed                    Dir_Symmetric           */
07499             0,  /* Obj_Typed                    Dir_Copy_Assumed_Shape  */
07500             0,  /* Obj_Typed                    Dir_Align_Symbol        */
07501             0,  /* Obj_Typed                    Dir_Fill_Symbol         */
07502             0,  /* Obj_Typed                    Dir_Section_Gp          */
07503             0,  /* Obj_Typed                    Dir_Section_Non_Gp      */
07504             0,  /* Obj_Typed                    Dir_Ignore_TKR          */
07505             0,  /* Obj_Typed                    Dir_Optional            */
07506             0,  /* Obj_Typed                    Dir_Ipa                 */
07507             0   /* Obj_Typed                    Dir_Name                */
07508         },
07509 
07510         {   0,  /* Obj_Volatile                 Dir_Auxiliary           */
07511          1459,  /* Obj_Volatile                 Dir_Vfunction           */
07512          1459,  /* Obj_Volatile                 Dir_No_Side_Effects     */
07513          1459,  /* Obj_Volatile                 Dir_Inline              */
07514             0,  /* Obj_Volatile                 Dir_Symmetric           */
07515             0,  /* Obj_Volatile                 Dir_Copy_Assumed_Shape  */
07516             0,  /* Obj_Volatile                 Dir_Align_Symbol        */
07517             0,  /* Obj_Volatile                 Dir_Fill_Symbol         */
07518             0,  /* Obj_Volatile                 Dir_Section_Gp          */
07519             0,  /* Obj_Volatile                 Dir_Section_Non_Gp      */
07520             0,  /* Obj_Volatile                 Dir_Ignore_TKR          */
07521          1459,  /* Obj_Volatile                 Dir_Optional            */
07522          1459,  /* Obj_Volatile                 Dir_Ipa                 */
07523          1459   /* Obj_Volatile                 Dir_Name                */
07524         },
07525 
07526         {1457,  /* Obj_Copy_Assumed_Shape       Dir_Auxiliary           */
07527          1457,  /* Obj_Copy_Assumed_Shape       Dir_Vfunction           */
07528          1457,  /* Obj_Copy_Assumed_Shape       Dir_No_Side_Effects     */
07529          1457,  /* Obj_Copy_Assumed_Shape       Dir_Inline              */
07530          1457,  /* Obj_Copy_Assumed_Shape       Dir_Symmetric           */
07531          1457,  /* Obj_Copy_Assumed_Shape       Dir_Copy_Assumed_Shape  */
07532          1457,  /* Obj_Copy_Assumed_Shape       Dir_Align_Symbol        */
07533          1457,  /* Obj_Copy_Assumed_Shape       Dir_Fill_Symbol         */
07534          1457,  /* Obj_Copy_Assumed_Shape       Dir_Section_Gp          */
07535          1457,  /* Obj_Copy_Assumed_Shape       Dir_Section_Non_Gp      */
07536             0,  /* Obj_Copy_Assumed_Shape       Dir_Ignore_TKR          */
07537          1457,  /* Obj_Copy_Assumed_Shape       Dir_Optional            */
07538          1457,  /* Obj_Copy_Assumed_Shape       Dir_Ipa                 */
07539          1457   /* Obj_Copy_Assumed_Shape       Dir_Name                */
07540         },
07541 
07542         {   0,  /* Obj_Auxiliary                Dir_Auxiliary           */
07543          1457,  /* Obj_Auxiliary                Dir_Vfunction           */
07544          1457,  /* Obj_Auxiliary                Dir_No_Side_Effects     */
07545          1457,  /* Obj_Auxiliary                Dir_Inline              */
07546          1457,  /* Obj_Auxiliary                Dir_Symmetric           */
07547          1457,  /* Obj_Auxiliary                Dir_Copy_Assumed_Shape  */
07548          1457,  /* Obj_Auxiliary                Dir_Align_Symbol        */
07549          1457,  /* Obj_Auxiliary                Dir_Fill_Symbol         */
07550          1457,  /* Obj_Auxiliary                Dir_Section_Gp          */
07551          1457,  /* Obj_Auxiliary                Dir_Section_Non_Gp      */
07552             0,  /* Obj_Auxiliary                Dir_Ignore_TKR          */
07553          1457,  /* Obj_Auxiliary                Dir_Optional            */
07554          1457,  /* Obj_Auxiliary                Dir_Ipa                 */
07555          1457   /* Obj_Auxiliary                Dir_Name                */
07556         },
07557 
07558         {1457,  /* Obj_Vfunction                Dir_Auxiliary           */
07559          1457,  /* Obj_Vfunction                Dir_Vfunction           */
07560             0,  /* Obj_Vfunction                Dir_No_Side_Effects     */
07561             0,  /* Obj_Vfunction                Dir_Inline              */
07562          1457,  /* Obj_Vfunction                Dir_Symmetric           */
07563          1457,  /* Obj_Vfunction                Dir_Copy_Assumed_Shape  */
07564          1457,  /* Obj_Vfunction                Dir_Align_Symbol        */
07565          1457,  /* Obj_Vfunction                Dir_Fill_Symbol         */
07566          1457,  /* Obj_Vfunction                Dir_Section_Gp          */
07567          1457,  /* Obj_Vfunction                Dir_Section_Non_Gp      */
07568          1457,  /* Obj_Vfunction                Dir_Ignore_TKR          */
07569             0,  /* Obj_Vfunction                Dir_Optional            */
07570             0,  /* Obj_Vfunction                Dir_Ipa                 */
07571             0   /* Obj_Vfunction                Dir_Name                */
07572         },
07573 
07574         {1457,  /* Obj_No_Side_Effects          Dir_Auxiliary           */
07575             0,  /* Obj_No_Side_Effects          Dir_Vfunction           */
07576             0,  /* Obj_No_Side_Effects          Dir_No_Side_Effects     */
07577             0,  /* Obj_No_Side_Effects          Dir_Inline              */
07578          1457,  /* Obj_No_Side_Effects          Dir_Symmetric           */
07579          1457,  /* Obj_No_Side_Effects          Dir_Copy_Assumed_Shape  */
07580          1457,  /* Obj_No_Side_Effects          Dir_Align_Symbol        */
07581          1457,  /* Obj_No_Side_Effects          Dir_Fill_Symbol         */
07582          1457,  /* Obj_No_Side_Effects          Dir_Section_Gp          */
07583          1457,  /* Obj_No_Side_Effects          Dir_Section_Non_Gp      */
07584          1457,  /* Obj_No_Side_Effects          Dir_Ignore_TKR          */
07585             0,  /* Obj_No_Side_Effects          Dir_Optional            */
07586             0,  /* Obj_No_Side_Effects          Dir_Ipa                 */
07587             0   /* Obj_No_Side_Effects          Dir_Name                */
07588         },
07589 
07590         {1457,  /* Obj_Symmetric                Dir_Auxiliary           */
07591          1457,  /* Obj_Symmetric                Dir_Vfunction           */
07592          1457,  /* Obj_Symmetric                Dir_No_Side_Effects     */
07593          1457,  /* Obj_Symmetric                Dir_Inline              */
07594          1457,  /* Obj_Symmetric                Dir_Symmetric           */
07595          1457,  /* Obj_Symmetric                Dir_Copy_Assumed_Shape  */
07596          1457,  /* Obj_Symmetric                Dir_Align_Symbol        */
07597          1457,  /* Obj_Symmetric                Dir_Fill_Symbol         */
07598          1457,  /* Obj_Symmetric                Dir_Section_Gp          */
07599          1457,  /* Obj_Symmetric                Dir_Section_Non_Gp      */
07600          1457,  /* Obj_Symmetric                Dir_Ignore_TKR          */
07601          1457,  /* Obj_Symmetric                Dir_Optional            */
07602          1457,  /* Obj_Symmetric                Dir_Ipa                 */
07603          1457   /* Obj_Symmetric                Dir_Name                */
07604         },
07605 
07606         {1457,  /* Obj_Inline                   Dir_Auxiliary           */
07607             0,  /* Obj_Inline                   Dir_Vfunction           */
07608             0,  /* Obj_Inline                   Dir_No_Side_Effects     */
07609             0,  /* Obj_Inline                   Dir_Inline              */
07610          1457,  /* Obj_Inline                   Dir_Symmetric           */
07611          1457,  /* Obj_Inline                   Dir_Copy_Assumed_Shape  */
07612          1457,  /* Obj_Inline                   Dir_Align_Symbol        */
07613          1457,  /* Obj_Inline                   Dir_Fill_Symbol         */
07614          1457,  /* Obj_Inline                   Dir_Section_Gp          */
07615          1457,  /* Obj_Inline                   Dir_Section_Non_Gp      */
07616          1457,  /* Obj_Inline                   Dir_Ignore_TKR          */
07617             0,  /* Obj_Inline                   Dir_Optional            */
07618             0,  /* Obj_Inline                   Dir_Ipa                 */
07619             0   /* Obj_Inline                   Dir_Name                */
07620         },
07621 
07622         {1457,  /* Obj_Ipa                      Dir_Auxiliary           */
07623             0,  /* Obj_Ipa                      Dir_Vfunction           */
07624             0,  /* Obj_Ipa                      Dir_No_Side_Effects     */
07625             0,  /* Obj_Ipa                      Dir_Inline              */
07626          1457,  /* Obj_Ipa                      Dir_Symmetric           */
07627          1457,  /* Obj_Ipa                      Dir_Copy_Assumed_Shape  */
07628          1457,  /* Obj_Ipa                      Dir_Align_Symbol        */
07629          1457,  /* Obj_Ipa                      Dir_Fill_Symbol         */
07630          1457,  /* Obj_Ipa                      Dir_Section_Gp          */
07631          1457,  /* Obj_Ipa                      Dir_Section_Non_Gp      */
07632          1457,  /* Obj_Ipa                      Dir_Ignore_TKR          */
07633             0,  /* Obj_Ipa                      Dir_Optional            */
07634             0,  /* Obj_Ipa                      Dir_Ipa                 */
07635             0   /* Obj_Ipa                      Dir_Name                */
07636         },
07637 
07638 
07639         {1457,  /* Obj_Align_Symbol             Dir_Auxiliary           */
07640          1457,  /* Obj_Align_Symbol             Dir_Vfunction           */
07641          1457,  /* Obj_Align_Symbol             Dir_No_Side_Effects     */
07642          1457,  /* Obj_Align_Symbol             Dir_Inline              */
07643          1457,  /* Obj_Align_Symbol             Dir_Symmetric           */
07644          1457,  /* Obj_Align_Symbol             Dir_Copy_Assumed_Shape  */
07645          1457,  /* Obj_Align_Symbol             Dir_Align_Symbol        */
07646          1457,  /* Obj_Align_Symbol             Dir_Fill_Symbol         */
07647             0,  /* Obj_Align_Symbol             Dir_Section_Gp          */
07648             0,  /* Obj_Align_Symbol             Dir_Section_Non_Gp      */
07649          1457,  /* Obj_Align_Symbol             Dir_Ignore_TKR          */
07650          1457,  /* Obj_Align_Symbol             Dir_Optional            */
07651          1457,  /* Obj_Align_Symbol             Dir_Ipa                 */
07652          1457   /* Obj_Align_Symbol             Dir_Name                */
07653         },
07654 
07655         {1457,  /* Obj_Fill_Symbol              Dir_Auxiliary           */
07656          1457,  /* Obj_Fill_Symbol              Dir_Vfunction           */
07657          1457,  /* Obj_Fill_Symbol              Dir_No_Side_Effects     */
07658          1457,  /* Obj_Fill_Symbol              Dir_Inline              */
07659          1457,  /* Obj_Fill_Symbol              Dir_Symmetric           */
07660          1457,  /* Obj_Fill_Symbol              Dir_Copy_Assumed_Shape  */
07661          1457,  /* Obj_Fill_Symbol              Dir_Align_Symbol        */
07662          1457,  /* Obj_Fill_Symbol              Dir_Fill_Symbol         */
07663             0,  /* Obj_Fill_Symbol              Dir_Section_Gp          */
07664             0,  /* Obj_Fill_Symbol              Dir_Section_Non_Gp      */
07665          1457,  /* Obj_Fill_Symbol              Dir_Ignore_TKR          */
07666          1457,  /* Obj_Fill_Symbol              Dir_Optional            */
07667          1457,  /* Obj_Fill_Symbol              Dir_Ipa                 */
07668          1457   /* Obj_Fill_Symbol              Dir_Name                */
07669         },
07670 
07671         {1457,  /* Obj_Section_Gp               Dir_Auxiliary           */
07672          1457,  /* Obj_Section_Gp               Dir_Vfunction           */
07673          1457,  /* Obj_Section_Gp               Dir_No_Side_Effects     */
07674          1457,  /* Obj_Section_Gp               Dir_Inline              */
07675          1457,  /* Obj_Section_Gp               Dir_Symmetric           */
07676          1457,  /* Obj_Section_Gp               Dir_Copy_Assumed_Shape  */
07677             0,  /* Obj_Section_Gp               Dir_Align_Symbol        */
07678             0,  /* Obj_Section_Gp               Dir_Fill_Symbol         */
07679          1457,  /* Obj_Section_Gp               Dir_Section_Gp          */
07680          1457,  /* Obj_Section_Gp               Dir_Section_Non_Gp      */
07681          1457,  /* Obj_Section_Gp               Dir_Ignore_TKR          */
07682          1457,  /* Obj_Section_Gp               Dir_Optional            */
07683          1457,  /* Obj_Section_Gp               Dir_Ipa                 */
07684          1457   /* Obj_Section_Gp               Dir_Name                */
07685         },
07686 
07687         {1457,  /* Obj_Section_Non_Gp           Dir_Auxiliary           */
07688          1457,  /* Obj_Section_Non_Gp           Dir_Vfunction           */
07689          1457,  /* Obj_Section_Non_Gp           Dir_No_Side_Effects     */
07690          1457,  /* Obj_Section_Non_Gp           Dir_Inline              */
07691          1457,  /* Obj_Section_Non_Gp           Dir_Symmetric           */
07692          1457,  /* Obj_Section_Non_Gp           Dir_Copy_Assumed_Shape  */
07693             0,  /* Obj_Section_Non_Gp           Dir_Align_Symbol        */
07694             0,  /* Obj_Section_Non_Gp           Dir_Fill_Symbol         */
07695          1457,  /* Obj_Section_Non_Gp           Dir_Section_Gp          */
07696          1457,  /* Obj_Section_Non_Gp           Dir_Section_Non_Gp      */
07697          1457,  /* Obj_Section_Non_Gp           Dir_Ignore_TKR          */
07698          1457,  /* Obj_Section_Non_Gp           Dir_Optional            */
07699          1457,  /* Obj_Section_Non_Gp           Dir_Ipa                 */
07700          1457   /* Obj_Section_Non_Gp           Dir_Name                */
07701         },
07702 
07703         {   0,  /* Obj_Ingore_TKR               Dir_Auxiliary           */
07704          1457,  /* Obj_Ignore_TKR               Dir_Vfunction           */
07705          1457,  /* Obj_Ignore_TKR               Dir_No_Side_Effects     */
07706          1457,  /* Obj_Ignore_TKR               Dir_Inline              */
07707          1457,  /* Obj_Ignore_TKR               Dir_Symmetric           */
07708             0,  /* Obj_Ignore_TKR               Dir_Copy_Assumed_Shape  */
07709          1457,  /* Obj_Ignore_TKR               Dir_Align_Symbol        */
07710          1457,  /* Obj_Ignore_TKR               Dir_Fill_Symbol         */
07711          1457,  /* Obj_Ignore_TKR               Dir_Section_Gp          */
07712          1457,  /* Obj_Ignore_TKR               Dir_Section_Non_Gp      */
07713          1457,  /* Obj_Ignore_TKR               Dir_Ignore_TKR          */
07714          1457,  /* Obj_Ignore_TKR               Dir_Optional            */
07715          1457,  /* Obj_Ignore_TKR               Dir_Ipa                 */
07716          1457   /* Obj_Ignore_TKR               Dir_Name                */
07717         },
07718 
07719         {1457,  /* Obj_Optional_Dir             Dir_Auxiliary           */
07720             0,  /* Obj_Optional_Dir             Dir_Vfunction           */
07721             0,  /* Obj_Optional_Dir             Dir_No_Side_Effects     */
07722             0,  /* Obj_Optional_Dir             Dir_Inline              */
07723          1457,  /* Obj_Optional_Dir             Dir_Symmetric           */
07724          1457,  /* Obj_Optional_Dir             Dir_Copy_Assumed_Shape  */
07725          1457,  /* Obj_Optional_Dir             Dir_Align_Symbol        */
07726          1457,  /* Obj_Optional_Dir             Dir_Fill_Symbol         */
07727          1457,  /* Obj_Optional_Dir             Dir_Section_Gp          */
07728          1457,  /* Obj_Optional_Dir             Dir_Section_Non_Gp      */
07729          1457,  /* Obj_Optional_Dir             Dir_Ignore_TKR          */
07730          1457,  /* Obj_Optional_Dir             Dir_Optional            */
07731             0,  /* Obj_Optional_Dir             Dir_Ipa                 */
07732             0   /* Obj_Optional_Dir             Dir_Name                */
07733         },
07734 
07735         {1457,  /* Obj_Name                     Dir_Auxiliary           */
07736             0,  /* Obj_Name                     Dir_Vfunction           */
07737             0,  /* Obj_Name                     Dir_No_Side_Effects     */
07738             0,  /* Obj_Name                     Dir_Inline              */
07739          1457,  /* Obj_Name                     Dir_Symmetric           */
07740          1457,  /* Obj_Name                     Dir_Copy_Assumed_Shape  */
07741          1457,  /* Obj_Name                     Dir_Align_Symbol        */
07742          1457,  /* Obj_Name                     Dir_Fill_Symbol         */
07743          1457,  /* Obj_Name                     Dir_Section_Gp          */
07744          1457,  /* Obj_Name                     Dir_Section_Non_Gp      */
07745          1457,  /* Obj_Name                     Dir_Ignore_TKR          */
07746          1457,  /* Obj_Name                     Dir_Optional            */
07747             0,  /* Obj_Name                     Dir_Ipa                 */
07748          1457   /* Obj_Name                     Dir_Name                */
07749         },
07750 
07751         {1458,  /* Obj_Cri_Ptr                  Dir_Auxiliary           */
07752          1458,  /* Obj_Cri_Ptr                  Dir_Vfunction           */
07753          1458,  /* Obj_Cri_Ptr                  Dir_No_Side_Effects     */
07754          1458,  /* Obj_Cri_Ptr                  Dir_Inline              */
07755             0,  /* Obj_Cri_Ptr                  Dir_Symmetric           */
07756          1458,  /* Obj_Cri_Ptr                  Dir_Copy_Assumed_Shape  */
07757          1458,  /* Obj_Cri_Ptr                  Dir_Align_Symbol        */
07758          1458,  /* Obj_Cri_Ptr                  Dir_Fill_Symbol         */
07759          1458,  /* Obj_Cri_Ptr                  Dir_Section_Gp          */
07760          1458,  /* Obj_Cri_Ptr                  Dir_Section_Non_Gp      */
07761             0,  /* Obj_Cri_Ptr                  Dir_Ignore_TKR          */
07762          1458,  /* Obj_Cri_Ptr                  Dir_Optional            */
07763          1458,  /* Obj_Cri_Ptr                  Dir_Ipa                 */
07764          1458   /* Obj_Cri_Ptr                  Dir_Name                */
07765         },
07766 
07767         {1458,  /* Obj_Cri_Pointee              Dir_Auxiliary           */
07768          1458,  /* Obj_Cri_Pointee              Dir_Vfunction           */
07769          1458,  /* Obj_Cri_Pointee              Dir_No_Side_Effects     */
07770          1458,  /* Obj_Cri_Pointee              Dir_Inline              */
07771          1458,  /* Obj_Cri_Pointee              Dir_Symmetric           */
07772          1458,  /* Obj_Cri_Pointee              Dir_Copy_Assumed_Shape  */
07773          1458,  /* Obj_Cri_Pointee              Dir_Align_Symbol        */
07774          1458,  /* Obj_Cri_Pointee              Dir_Fill_Symbol         */
07775          1458,  /* Obj_Cri_Pointee              Dir_Section_Gp          */
07776          1458,  /* Obj_Cri_Pointee              Dir_Section_Non_Gp      */
07777          1458,  /* Obj_Cri_Pointee              Dir_Ignore_TKR          */
07778          1458,  /* Obj_Cri_Pointee              Dir_Optional            */
07779          1458,  /* Obj_Cri_Pointee              Dir_Ipa                 */
07780          1458   /* Obj_Cri_Pointee              Dir_Name                */
07781         },
07782 
07783         {1458,  /* Obj_Cri_Ch_Pointee           Dir_Auxiliary           */
07784          1458,  /* Obj_Cri_Ch_Pointee           Dir_Vfunction           */
07785          1458,  /* Obj_Cri_Ch_Pointee           Dir_No_Side_Effects     */
07786          1458,  /* Obj_Cri_Ch_Pointee           Dir_Inline              */
07787          1458,  /* Obj_Cri_Ch_Pointee           Dir_Symmetric           */
07788          1458,  /* Obj_Cri_Ch_Pointee           Dir_Copy_Assumed_Shape  */
07789          1458,  /* Obj_Cri_Ch_Pointee           Dir_Align_Symbol        */
07790          1458,  /* Obj_Cri_Ch_Pointee           Dir_Fill_Symbol         */
07791          1458,  /* Obj_Cri_Ch_Pointee           Dir_Section_Gp          */
07792          1458,  /* Obj_Cri_Ch_Pointee           Dir_Section_Non_Gp      */
07793          1458,  /* Obj_Cri_Ch_Pointee           Dir_Ignore_TKR          */
07794          1458,  /* Obj_Cri_Ch_Pointee           Dir_Optional            */
07795          1458,  /* Obj_Cri_Ch_Pointee           Dir_Ipa                 */
07796          1458   /* Obj_Cri_Ch_Pointee           Dir_Name                */
07797         },
07798 
07799         {1458,  /* Obj_Ntry_Func_Result         Dir_Auxiliary           */
07800          1458,  /* Obj_Ntry_Func_Result         Dir_Vfunction           */
07801          1458,  /* Obj_Ntry_Func_Result         Dir_No_Side_Effects     */
07802          1458,  /* Obj_Ntry_Func_Result         Dir_Inline              */
07803          1458,  /* Obj_Ntry_Func_Result         Dir_Symmetric           */
07804          1458,  /* Obj_Ntry_Func_Result         Dir_Copy_Assumed_Shape  */
07805          1458,  /* Obj_Ntry_Func_Result         Dir_Align_Symbol        */
07806          1458,  /* Obj_Ntry_Func_Result         Dir_Fill_Symbol         */
07807          1458,  /* Obj_Ntry_Func_Result         Dir_Section_Gp          */
07808          1458,  /* Obj_Ntry_Func_Result         Dir_Section_Non_Gp      */
07809          1458,  /* Obj_Ntry_Func_Result         Dir_Ignore_TKR          */
07810          1458,  /* Obj_Ntry_Func_Result         Dir_Optional            */
07811          1458,  /* Obj_Ntry_Func_Result         Dir_Ipa                 */
07812          1458   /* Obj_Ntry_Func_Result         Dir_Name                */
07813         },
07814 
07815         {   0,  /* Obj_Dummy_Arg                Dir_Auxiliary           */
07816          1458,  /* Obj_Dummy_Arg                Dir_Vfunction           */
07817          1458,  /* Obj_Dummy_Arg                Dir_No_Side_Effects     */
07818          1458,  /* Obj_Dummy_Arg                Dir_Inline              */
07819          1458,  /* Obj_Dummy_Arg                Dir_Symmetric           */
07820             0,  /* Obj_Dummy_Arg                Dir_Copy_Assumed_Shape  */
07821          1458,  /* Obj_Dummy_Arg                Dir_Align_Symbol        */
07822          1458,  /* Obj_Dummy_Arg                Dir_Fill_Symbol         */
07823          1458,  /* Obj_Dummy_Arg                Dir_Section_Gp          */
07824          1458,  /* Obj_Dummy_Arg                Dir_Section_Non_Gp      */
07825             0,  /* Obj_Dummy_Arg                Dir_Ignore_TKR          */
07826             0,  /* Obj_Dummy_Arg                Dir_Optional            */
07827          1458,  /* Obj_Dummy_Arg                Dir_Ipa                 */
07828             0   /* Obj_Dummy_Arg                Dir_Name                */
07829         },
07830 
07831         {   0,  /* Obj_Common_Obj               Dir_Auxiliary           */
07832          1458,  /* Obj_Common_Obj               Dir_Vfunction           */
07833          1458,  /* Obj_Common_Obj               Dir_No_Side_Effects     */
07834          1458,  /* Obj_Common_Obj               Dir_Inline              */
07835          1458,  /* Obj_Common_Obj               Dir_Symmetric           */
07836          1458,  /* Obj_Common_Obj               Dir_Copy_Assumed_Shape  */
07837             0,  /* Obj_Common_Obj               Dir_Align_Symbol        */
07838             0,  /* Obj_Common_Obj               Dir_Fill_Symbol         */
07839             0,  /* Obj_Common_Obj               Dir_Section_Gp          */
07840             0,  /* Obj_Common_Obj               Dir_Section_Non_Gp      */
07841          1458,  /* Obj_Common_Obj               Dir_Ignore_TKR          */
07842          1458,  /* Obj_Common_Obj               Dir_Optional            */
07843          1458,  /* Obj_Common_Obj               Dir_Ipa                 */
07844          1458   /* Obj_Common_Obj               Dir_Name                */
07845         },
07846 
07847         {1458,  /* Obj_Namelist_Obj             Dir_Auxiliary           */
07848          1458,  /* Obj_Namelist_Obj             Dir_Vfunction           */
07849          1458,  /* Obj_Namelist_Obj             Dir_No_Side_Effects     */
07850          1458,  /* Obj_Namelist_Obj             Dir_Inline              */
07851             0,  /* Obj_Namelist_Obj             Dir_Symmetric           */
07852          1458,  /* Obj_Namelist_Obj             Dir_Copy_Assumed_Shape  */
07853             0,  /* Obj_Namelist_Obj             Dir_Align_Symbol        */
07854             0,  /* Obj_Namelist_Obj             Dir_Fill_Symbol         */
07855             0,  /* Obj_Namelist_Obj             Dir_Section_Gp          */
07856             0,  /* Obj_Namelist_Obj             Dir_Section_Non_Gp      */
07857             0,  /* Obj_Namelist_Obj             Dir_Ignore_TKR          */
07858          1458,  /* Obj_Namelist_Obj             Dir_Optional            */
07859          1458,  /* Obj_Namelist_Obj             Dir_Ipa                 */
07860          1458   /* Obj_Namelist_Obj             Dir_Name                */
07861         },
07862 
07863         {1458,  /* Obj_Module_Proc              Dir_Auxiliary           */
07864          1458,  /* Obj_Module_Proc              Dir_Vfunction           */
07865          1458,  /* Obj_Module_Proc              Dir_No_Side_Effects     */
07866             0,  /* Obj_Module_Proc              Dir_Inline              */
07867          1458,  /* Obj_Module_Proc              Dir_Symmetric           */
07868          1458,  /* Obj_Module_Proc              Dir_Copy_Assumed_Shape  */
07869          1458,  /* Obj_Module_Proc              Dir_Align_Symbol        */
07870          1458,  /* Obj_Module_Proc              Dir_Fill_Symbol         */
07871          1458,  /* Obj_Module_Proc              Dir_Section_Gp          */
07872          1458,  /* Obj_Module_Proc              Dir_Section_Non_Gp      */
07873          1458,  /* Obj_Module_Proc              Dir_Ignore_TKR          */
07874          1458,  /* Obj_Module_Proc              Dir_Optional            */
07875             0,  /* Obj_Module_Proc              Dir_Ipa                 */
07876          1458   /* Obj_Module_Proc              Dir_Name                */
07877         },
07878 
07879         {1458,  /* Obj_Derived_Type             Dir_Auxiliary           */
07880          1458,  /* Obj_Derived_Type             Dir_Vfunction           */
07881          1458,  /* Obj_Derived_Type             Dir_No_Side_Effects     */
07882          1458,  /* Obj_Derived_Type             Dir_Inline              */
07883          1458,  /* Obj_Derived_Type             Dir_Symmetric           */
07884          1458,  /* Obj_Derived_Type             Dir_Copy_Assumed_Shape  */
07885          1458,  /* Obj_Derived_Type             Dir_Align_Symbol        */
07886          1458,  /* Obj_Derived_Type             Dir_Fill_Symbol         */
07887          1458,  /* Obj_Derived_Type             Dir_Section_Gp          */
07888          1458,  /* Obj_Derived_Type             Dir_Section_Non_Gp      */
07889          1458,  /* Obj_Derived_Type             Dir_Ignore_TKR          */
07890          1458,  /* Obj_Derived_Type             Dir_Optional            */
07891          1458,  /* Obj_Derived_Type             Dir_Ipa                 */
07892          1458   /* Obj_Derived_Type             Dir_Name                */
07893         },
07894 
07895         {1458,  /* Obj_Generic_Interface        Dir_Auxiliary           */
07896          1458,  /* Obj_Generic_Interface        Dir_Vfunction           */
07897          1458,  /* Obj_Generic_Interface        Dir_No_Side_Effects     */
07898             0,  /* Obj_Generic_Interface        Dir_Inline              */
07899          1458,  /* Obj_Generic_Interface        Dir_Symmetric           */
07900          1458,  /* Obj_Generic_Interface        Dir_Copy_Assumed_Shape  */
07901          1458,  /* Obj_Generic_Interface        Dir_Align_Symbol        */
07902          1458,  /* Obj_Generic_Interface        Dir_Fill_Symbol         */
07903          1458,  /* Obj_Generic_Interface        Dir_Section_Gp          */
07904          1458,  /* Obj_Generic_Interface        Dir_Section_Non_Gp      */
07905          1458,  /* Obj_Generic_Interface        Dir_Ignore_TKR          */
07906          1458,  /* Obj_Generic_Interface        Dir_Optional            */
07907             0,  /* Obj_Generic_Interface        Dir_Ipa                 */
07908          1458   /* Obj_Generic_Interface        Dir_Name                */
07909         },
07910 
07911         {1458,  /* Obj_Namelist_Grp             Dir_Auxiliary           */
07912          1458,  /* Obj_Namelist_Grp             Dir_Vfunction           */
07913          1458,  /* Obj_Namelist_Grp             Dir_No_Side_Effects     */
07914          1458,  /* Obj_Namelist_Grp             Dir_Inline              */
07915          1458,  /* Obj_Namelist_Grp             Dir_Symmetric           */
07916          1458,  /* Obj_Namelist_Grp             Dir_Copy_Assumed_Shape  */
07917          1458,  /* Obj_Namelist_Grp             Dir_Align_Symbol        */
07918          1458,  /* Obj_Namelist_Grp             Dir_Fill_Symbol         */
07919          1458,  /* Obj_Namelist_Grp             Dir_Section_Gp          */
07920          1458,  /* Obj_Namelist_Grp             Dir_Section_Non_Gp      */
07921          1458,  /* Obj_Namelist_Grp             Dir_Ignore_TKR          */
07922          1458,  /* Obj_Namelist_Grp             Dir_Optional            */
07923          1458,  /* Obj_Namelist_Grp             Dir_Ipa                 */
07924          1458   /* Obj_Namelist_Grp             Dir_Name                */
07925         },
07926 
07927         {1458,  /* Obj_Stmt_Func                Dir_Auxiliary           */
07928          1458,  /* Obj_Stmt_Func                Dir_Vfunction           */
07929          1458,  /* Obj_Stmt_Func                Dir_No_Side_Effects     */
07930          1458,  /* Obj_Stmt_Func                Dir_Inline              */
07931          1458,  /* Obj_Stmt_Func                Dir_Symmetric           */
07932          1458,  /* Obj_Stmt_Func                Dir_Copy_Assumed_Shape  */
07933          1458,  /* Obj_Stmt_Func                Dir_Align_Symbol        */
07934          1458,  /* Obj_Stmt_Func                Dir_Fill_Symbol         */
07935          1458,  /* Obj_Stmt_Func                Dir_Section_Gp          */
07936          1458,  /* Obj_Stmt_Func                Dir_Section_Non_Gp      */
07937          1458,  /* Obj_Stmt_Func                Dir_Ignore_TKR          */
07938          1458,  /* Obj_Stmt_Func                Dir_Optional            */
07939          1458,  /* Obj_Stmt_Func                Dir_Ipa                 */
07940          1458   /* Obj_Stmt_Func                Dir_Name                */
07941         },
07942 
07943         {1458,  /* Obj_Construct                Dir_Auxiliary           */
07944          1458,  /* Obj_Construct                Dir_Vfunction           */
07945          1458,  /* Obj_Construct                Dir_No_Side_Effects     */
07946          1458,  /* Obj_Construct                Dir_Inline              */
07947          1458,  /* Obj_Construct                Dir_Symmetric           */
07948          1458,  /* Obj_Construct                Dir_Copy_Assumed_Shape  */
07949          1458,  /* Obj_Construct                Dir_Align_Symbol        */
07950          1458,  /* Obj_Construct                Dir_Fill_Symbol         */
07951          1458,  /* Obj_Construct                Dir_Section_Gp          */
07952          1458,  /* Obj_Construct                Dir_Section_Non_Gp      */
07953          1458,  /* Obj_Construct                Dir_Ignore_TKR          */
07954          1458,  /* Obj_Construct                Dir_Optional            */
07955          1458,  /* Obj_Construct                Dir_Ipa                 */
07956          1458   /* Obj_Construct                Dir_Name                */
07957         },
07958 
07959         {1458,  /* Obj_Entry_Func               Dir_Auxiliary           */
07960          1458,  /* Obj_Entry_Func               Dir_Vfunction           */
07961          1458,  /* Obj_Entry_Func               Dir_No_Side_Effects     */
07962          1458,  /* Obj_Entry_Func               Dir_Inline              */
07963          1458,  /* Obj_Entry_Func               Dir_Symmetric           */
07964          1458,  /* Obj_Entry_Func               Dir_Copy_Assumed_Shape  */
07965          1458,  /* Obj_Entry_Func               Dir_Align_Symbol        */
07966          1458,  /* Obj_Entry_Func               Dir_Fill_Symbol         */
07967          1458,  /* Obj_Entry_Func               Dir_Section_Gp          */
07968          1458,  /* Obj_Entry_Func               Dir_Section_Non_Gp      */
07969          1458,  /* Obj_Entry_Func               Dir_Ignore_TKR          */
07970          1458,  /* Obj_Entry_Func               Dir_Optional            */
07971          1458,  /* Obj_Entry_Func               Dir_Ipa                 */
07972          1458   /* Obj_Entry_Func               Dir_Name                */
07973         },
07974 
07975         {1458,  /* Obj_Entry_Subr               Dir_Auxiliary           */
07976          1458,  /* Obj_Entry_Subr               Dir_Vfunction           */
07977          1458,  /* Obj_Entry_Subr               Dir_No_Side_Effects     */
07978          1458,  /* Obj_Entry_Subr               Dir_Inline              */
07979          1458,  /* Obj_Entry_Subr               Dir_Symmetric           */
07980          1458,  /* Obj_Entry_Subr               Dir_Copy_Assumed_Shape  */
07981          1458,  /* Obj_Entry_Subr               Dir_Align_Symbol        */
07982          1458,  /* Obj_Entry_Subr               Dir_Fill_Symbol         */
07983          1458,  /* Obj_Entry_Subr               Dir_Section_Gp          */
07984          1458,  /* Obj_Entry_Subr               Dir_Section_Non_Gp      */
07985          1458,  /* Obj_Entry_Subr               Dir_Ignore_TKR          */
07986          1458,  /* Obj_Entry_Subr               Dir_Optional            */
07987          1458,  /* Obj_Entry_Subr               Dir_Ipa                 */
07988          1458   /* Obj_Entry_Subr               Dir_Name                */
07989         },
07990 
07991         {1458,  /* Obj_Intern_Func              Dir_Auxiliary           */
07992          1458,  /* Obj_Intern_Func              Dir_Vfunction           */
07993          1458,  /* Obj_Intern_Func              Dir_No_Side_Effects     */
07994             0,  /* Obj_Intern_Func              Dir_Inline              */
07995          1458,  /* Obj_Intern_Func              Dir_Symmetric           */
07996          1458,  /* Obj_Intern_Func              Dir_Copy_Assumed_Shape  */
07997          1458,  /* Obj_Intern_Func              Dir_Align_Symbol        */
07998          1458,  /* Obj_Intern_Func              Dir_Fill_Symbol         */
07999          1458,  /* Obj_Intern_Func              Dir_Section_Gp          */
08000          1458,  /* Obj_Intern_Func              Dir_Section_Non_Gp      */
08001          1458,  /* Obj_Intern_Func              Dir_Ignore_TKR          */
08002          1458,  /* Obj_Intern_Func              Dir_Optional            */
08003             0,  /* Obj_Intern_Func              Dir_Ipa                 */
08004          1458   /* Obj_Intern_Func              Dir_Name                */
08005         },
08006 
08007         {1458,  /* Obj_Intern_Subr              Dir_Auxiliary           */
08008          1458,  /* Obj_Intern_Subr              Dir_Vfunction           */
08009          1458,  /* Obj_Intern_Subr              Dir_No_Side_Effects     */
08010             0,  /* Obj_Intern_Subr              Dir_Inline              */
08011          1458,  /* Obj_Intern_Subr              Dir_Symmetric           */
08012          1458,  /* Obj_Intern_Subr              Dir_Copy_Assumed_Shape  */
08013          1458,  /* Obj_Intern_Subr              Dir_Align_Symbol        */
08014          1458,  /* Obj_Intern_Subr              Dir_Fill_Symbol         */
08015          1458,  /* Obj_Intern_Subr              Dir_Section_Gp          */
08016          1458,  /* Obj_Intern_Subr              Dir_Section_Non_Gp      */
08017          1458,  /* Obj_Intern_Subr              Dir_Ignore_TKR          */
08018          1458,  /* Obj_Intern_Subr              Dir_Optional            */
08019             0,  /* Obj_Intern_Subr              Dir_Ipa                 */
08020          1458   /* Obj_Intern_Subr              Dir_Name                */
08021         },
08022 
08023         {1458,  /* Obj_Module_Func              Dir_Auxiliary           */
08024          1458,  /* Obj_Module_Func              Dir_Vfunction           */
08025          1458,  /* Obj_Module_Func              Dir_No_Side_Effects     */
08026             0,  /* Obj_Module_Func              Dir_Inline              */
08027          1458,  /* Obj_Module_Func              Dir_Symmetric           */
08028          1458,  /* Obj_Module_Func              Dir_Copy_Assumed_Shape  */
08029          1458,  /* Obj_Module_Func              Dir_Align_Symbol        */
08030          1458,  /* Obj_Module_Func              Dir_Fill_Symbol         */
08031          1458,  /* Obj_Module_Func              Dir_Section_Gp          */
08032          1458,  /* Obj_Module_Func              Dir_Section_Non_Gp      */
08033          1458,  /* Obj_Module_Func              Dir_Ignore_TKR          */
08034          1458,  /* Obj_Module_Func              Dir_Optional            */
08035             0,  /* Obj_Module_Func              Dir_Ipa                 */
08036          1458   /* Obj_Module_Func              Dir_Name                */
08037         },
08038 
08039         {1458,  /* Obj_Module_Subr              Dir_Auxiliary           */
08040          1458,  /* Obj_Module_Subr              Dir_Vfunction           */
08041          1458,  /* Obj_Module_Subr              Dir_No_Side_Effects     */
08042             0,  /* Obj_Module_Subr              Dir_Inline              */
08043          1458,  /* Obj_Module_Subr              Dir_Symmetric           */
08044          1458,  /* Obj_Module_Subr              Dir_Copy_Assumed_Shape  */
08045          1458,  /* Obj_Module_Subr              Dir_Align_Symbol        */
08046          1458,  /* Obj_Module_Subr              Dir_Fill_Symbol         */
08047          1458,  /* Obj_Module_Subr              Dir_Section_Gp          */
08048          1458,  /* Obj_Module_Subr              Dir_Section_Non_Gp      */
08049          1458,  /* Obj_Module_Subr              Dir_Ignore_TKR          */
08050          1458,  /* Obj_Module_Subr              Dir_Optional            */
08051             0,  /* Obj_Module_Subr              Dir_Ipa                 */
08052          1458   /* Obj_Module_Subr              Dir_Name                */
08053         },
08054 
08055 
08056         {1458,  /* Obj_Sf_Darg                  Dir_Auxiliary           */
08057          1458,  /* Obj_Sf_Darg                  Dir_Vfunction           */
08058          1458,  /* Obj_Sf_Darg                  Dir_No_Side_Effects     */
08059          1458,  /* Obj_Sf_Darg                  Dir_Inline              */
08060             0,  /* Obj_Sf_Darg                  Dir_Symmetric           */
08061          1458,  /* Obj_Sf_Darg                  Dir_Copy_Assumed_Shape  */
08062          1458,  /* Obj_Sf_Darg                  Dir_Align_Symbol        */
08063          1458,  /* Obj_Sf_Darg                  Dir_Fill_Symbol         */
08064          1458,  /* Obj_Sf_Darg                  Dir_Section_Gp          */
08065          1458,  /* Obj_Sf_Darg                  Dir_Section_Non_Gp      */
08066             0,  /* Obj_Sf_Darg                  Dir_Ignore_TKR          */
08067          1458,  /* Obj_Sf_Darg                  Dir_Optional            */
08068          1458,  /* Obj_Sf_Darg                  Dir_Ipa                 */
08069          1458   /* Obj_Sf_Darg                  Dir_Name                */
08070         },
08071 
08072         {   0,  /* Obj_Sf_Actual_Arg            Dir_Auxiliary           */
08073          1463,  /* Obj_Sf_Actual_Arg            Dir_Vfunction           */
08074          1463,  /* Obj_Sf_Actual_Arg            Dir_No_Side_Effects     */
08075          1463,  /* Obj_Sf_Actual_Arg            Dir_Inline              */
08076             0,  /* Obj_Sf_Actual_Arg            Dir_Symmetric           */
08077             0,  /* Obj_Sf_Actual_Arg            Dir_Copy_Assumed_Shape  */
08078             0,  /* Obj_Sf_Actual_Arg            Dir_Align_Symbol        */
08079             0,  /* Obj_Sf_Actual_Arg            Dir_Fill_Symbol         */
08080             0,  /* Obj_Sf_Actual_Arg            Dir_Section_Gp          */
08081             0,  /* Obj_Sf_Actual_Arg            Dir_Section_Non_Gp      */
08082             0,  /* Obj_Sf_Actual_Arg            Dir_Ignore_TKR          */
08083          1463,  /* Obj_Sf_Actual_Arg            Dir_Optional            */
08084          1463,  /* Obj_Sf_Actual_Arg            Dir_Ipa                 */
08085          1463   /* Obj_Sf_Actual_Arg            Dir_Name                */
08086         },
08087 
08088         {1452,  /* Obj_Var_Len_Ch               Dir_Auxiliary           */
08089          1452,  /* Obj_Var_Len_Ch               Dir_Vfunction           */
08090             0,  /* Obj_Var_Len_Ch               Dir_No_Side_Effects     */
08091             0,  /* Obj_Var_Len_Ch               Dir_Inline              */
08092             0,  /* Obj_Var_Len_Ch               Dir_Symmetric           */
08093             0,  /* Obj_Var_Len_Ch               Dir_Copy_Assumed_Shape  */
08094          1452,  /* Obj_Var_Len_Ch               Dir_Align_Symbol        */
08095          1452,  /* Obj_Var_Len_Ch               Dir_Fill_Symbol         */
08096          1452,  /* Obj_Var_Len_Ch               Dir_Section_Gp          */
08097          1452,  /* Obj_Var_Len_Ch               Dir_Section_Non_Gp      */
08098             0,  /* Obj_Var_Len_Ch               Dir_Ignore_TKR          */
08099          1452,  /* Obj_Var_Len_Ch               Dir_Optional            */
08100             0,  /* Obj_Var_Len_Ch               Dir_Ipa                 */
08101          1452   /* Obj_Var_Len_Ch               Dir_Name                */
08102         },
08103 
08104         {   0,  /* Obj_Var_Len_Arr              Dir_Auxiliary           */
08105          1464,  /* Obj_Var_Len_Arr              Dir_Vfunction           */
08106             0,  /* Obj_Var_Len_Arr              Dir_No_Side_Effects     */
08107             0,  /* Obj_Var_Len_Arr              Dir_Inline              */
08108             0,  /* Obj_Var_Len_Arr              Dir_Symmetric           */
08109          1464,  /* Obj_Var_Len_Arr              Dir_Copy_Assumed_Shape  */
08110             0,  /* Obj_Var_Len_Arr              Dir_Align_Symbol        */
08111             0,  /* Obj_Var_Len_Arr              Dir_Fill_Symbol         */
08112          1464,  /* Obj_Var_Len_Arr              Dir_Section_Gp          */
08113          1464,  /* Obj_Var_Len_Arr              Dir_Section_Non_Gp      */
08114             0,  /* Obj_Var_Len_Arr              Dir_Ignore_TKR          */
08115          1464,  /* Obj_Var_Len_Arr              Dir_Optional            */
08116             0,  /* Obj_Var_Len_Arr              Dir_Ipa                 */
08117          1464   /* Obj_Var_Len_Arr              Dir_Name                */
08118         },
08119 
08120         {   0,  /* Obj_Sym_Constant_Arr         Dir_Auxiliary           */
08121          1465,  /* Obj_Sym_Constant_Arr         Dir_Vfunction           */
08122             0,  /* Obj_Sym_Constant_Arr         Dir_No_Side_Effects     */
08123             0,  /* Obj_Sym_Constant_Arr         Dir_Inline              */
08124             0,  /* Obj_Sym_Constant_Arr         Dir_Symmetric           */
08125             0,  /* Obj_Sym_Constant_Arr         Dir_Copy_Assumed_Shape  */
08126          1465,  /* Obj_Sym_Constant_Arr         Dir_Align_Symbol        */
08127          1465,  /* Obj_Sym_Constant_Arr         Dir_Fill_Symbol         */
08128          1465,  /* Obj_Sym_Constant_Arr         Dir_Section_Gp          */
08129          1465,  /* Obj_Sym_Constant_Arr         Dir_Section_Non_Gp      */
08130          1465,  /* Obj_Sym_Constant_Arr         Dir_Ignore_TKR          */
08131          1465,  /* Obj_Sym_Constant_Arr         Dir_Optional            */
08132             0,  /* Obj_Sym_Constant_Arr         Dir_Ipa                 */
08133          1465   /* Obj_Sym_Constant_Arr         Dir_Name                */
08134         },
08135 
08136         {1466,  /* Obj_Interface_Func           Dir_Auxiliary           */
08137          1466,  /* Obj_Interface_Func           Dir_Vfunction           */
08138          1466,  /* Obj_Interface_Func           Dir_No_Side_Effects     */
08139             0,  /* Obj_Interface_Func           Dir_Inline              */
08140          1466,  /* Obj_Interface_Func           Dir_Symmetric           */
08141          1466,  /* Obj_Interface_Func           Dir_Copy_Assumed_Shape  */
08142          1466,  /* Obj_Interface_Func           Dir_Align_Symbol        */
08143          1466,  /* Obj_Interface_Func           Dir_Fill_Symbol         */
08144          1466,  /* Obj_Interface_Func           Dir_Section_Gp          */
08145          1466,  /* Obj_Interface_Func           Dir_Section_Non_Gp      */
08146          1466,  /* Obj_Interface_Func           Dir_Ignore_TKR          */
08147          1466,  /* Obj_Interface_Func           Dir_Optional            */
08148             0,  /* Obj_Interface_Func           Dir_Ipa                 */
08149          1466   /* Obj_Interface_Func           Dir_Name                */
08150         },
08151 
08152         {1466,  /* Obj_Interface_Subr           Dir_Auxiliary           */
08153          1466,  /* Obj_Interface_Subr           Dir_Vfunction           */
08154          1466,  /* Obj_Interface_Subr           Dir_No_Side_Effects     */
08155             0,  /* Obj_Interface_Subr           Dir_Inline              */
08156          1466,  /* Obj_Interface_Subr           Dir_Symmetric           */
08157          1466,  /* Obj_Interface_Subr           Dir_Copy_Assumed_Shape  */
08158          1466,  /* Obj_Interface_Subr           Dir_Align_Symbol        */
08159          1466,  /* Obj_Interface_Subr           Dir_Fill_Symbol         */
08160          1466,  /* Obj_Interface_Subr           Dir_Section_Gp          */
08161          1466,  /* Obj_Interface_Subr           Dir_Section_Non_Gp      */
08162          1466,  /* Obj_Interface_Subr           Dir_Ignore_TKR          */
08163          1466,  /* Obj_Interface_Subr           Dir_Optional            */
08164             0,  /* Obj_Interface_Subr           Dir_Ipa                 */
08165          1466   /* Obj_Interface_Subr           Dir_Name                */
08166         },
08167 
08168         {1467,  /* Obj_Use_Extern_Func          Dir_Auxiliary           */
08169             0,  /* Obj_Use_Extern_Func          Dir_Vfunction           */
08170             0,  /* Obj_Use_Extern_Func          Dir_No_Side_Effects     */
08171             0,  /* Obj_Use_Extern_Func          Dir_Inline              */
08172          1467,  /* Obj_Use_Extern_Func          Dir_Symmetric           */
08173          1467,  /* Obj_Use_Extern_Func          Dir_Copy_Assumed_Shape  */
08174          1467,  /* Obj_Use_Extern_Func          Dir_Align_Symbol        */
08175          1467,  /* Obj_Use_Extern_Func          Dir_Fill_Symbol         */
08176          1467,  /* Obj_Use_Extern_Func          Dir_Section_Gp          */
08177          1467,  /* Obj_Use_Extern_Func          Dir_Section_Non_Gp      */
08178          1467,  /* Obj_Use_Extern_Func          Dir_Ignore_TKR          */
08179             0,  /* Obj_Use_Extern_Func          Dir_Optional            */
08180             0,  /* Obj_Use_Extern_Func          Dir_Ipa                 */
08181             0   /* Obj_Use_Extern_Func          Dir_Name                */
08182         },
08183 
08184         {1468,  /* Obj_Use_Extern_Subr          Dir_Auxiliary           */
08185          1468,  /* Obj_Use_Extern_Subr          Dir_Vfunction           */
08186             0,  /* Obj_Use_Extern_Subr          Dir_No_Side_Effects     */
08187             0,  /* Obj_Use_Extern_Subr          Dir_Inline              */
08188          1468,  /* Obj_Use_Extern_Subr          Dir_Symmetric           */
08189          1468,  /* Obj_Use_Extern_Subr          Dir_Copy_Assumed_Shape  */
08190          1468,  /* Obj_Use_Extern_Subr          Dir_Align_Symbol        */
08191          1468,  /* Obj_Use_Extern_Subr          Dir_Fill_Symbol         */
08192          1468,  /* Obj_Use_Extern_Subr          Dir_Section_Gp          */
08193          1468,  /* Obj_Use_Extern_Subr          Dir_Section_Non_Gp      */
08194          1468,  /* Obj_Use_Extern_Subr          Dir_Ignore_TKR          */
08195             0,  /* Obj_Use_Extern_Subr          Dir_Optional            */
08196             0,  /* Obj_Use_Extern_Subr          Dir_Ipa                 */
08197             0   /* Obj_Use_Extern_Subr          Dir_Name                */
08198         },
08199 
08200         {   0,  /* Obj_Use_In_Expr              Dir_Auxiliary           */
08201             0,  /* Obj_Use_In_Expr              Dir_Vfunction           */
08202             0,  /* Obj_Use_In_Expr              Dir_No_Side_Effects     */
08203             0,  /* Obj_Use_In_Expr              Dir_Inline              */
08204             0,  /* Obj_Use_In_Expr              Dir_Symmetric           */
08205             0,  /* Obj_Use_In_Expr              Dir_Copy_Assumed_Shape  */
08206             0,  /* Obj_Use_In_Expr              Dir_Align_Symbol        */
08207             0,  /* Obj_Use_In_Expr              Dir_Fill_Symbol         */
08208             0,  /* Obj_Use_In_Expr              Dir_Section_Gp          */
08209             0,  /* Obj_Use_In_Expr              Dir_Section_Non_Gp      */
08210             0,  /* Obj_Use_In_Expr              Dir_Ignore_TKR          */
08211             0,  /* Obj_Use_In_Expr              Dir_Optional            */
08212             0,  /* Obj_Use_In_Expr              Dir_Ipa                 */
08213             0   /* Obj_Use_In_Expr              Dir_Name                */
08214         },
08215 
08216         {1469,  /* Obj_Use_Derived_Type         Dir_Auxiliary           */
08217          1469,  /* Obj_Use_Derived_Type         Dir_Vfunction           */
08218          1469,  /* Obj_Use_Derived_Type         Dir_No_Side_Effects     */
08219          1469,  /* Obj_Use_Derived_Type         Dir_Inline              */
08220          1469,  /* Obj_Use_Derived_Type         Dir_Symmetric           */
08221          1469,  /* Obj_Use_Derived_Type         Dir_Copy_Assumed_Shape  */
08222          1469,  /* Obj_Use_Derived_Type         Dir_Align_Symbol        */
08223          1469,  /* Obj_Use_Derived_Type         Dir_Fill_Symbol         */
08224          1469,  /* Obj_Use_Derived_Type         Dir_Section_Gp          */
08225          1469,  /* Obj_Use_Derived_Type         Dir_Section_Non_Gp      */
08226          1469,  /* Obj_Use_Derived_Type         Dir_Ignore_TKR          */
08227          1469,  /* Obj_Use_Derived_Type         Dir_Optional            */
08228          1469,  /* Obj_Use_Derived_Type         Dir_Ipa                 */
08229          1469   /* Obj_Use_Derived_Type         Dir_Name                */
08230         },
08231 
08232         {   0,  /* Obj_Use_Spec_Expr            Dir_Auxiliary           */
08233             0,  /* Obj_Use_Spec_Expr            Dir_Vfunction           */
08234             0,  /* Obj_Use_Spec_Expr            Dir_No_Side_Effects     */
08235             0,  /* Obj_Use_Spec_Expr            Dir_Inline              */
08236             0,  /* Obj_Use_Spec_Expr            Dir_Symmetric           */
08237             0,  /* Obj_Use_Spec_Expr            Dir_Copy_Assumed_Shape  */
08238             0,  /* Obj_Use_Spec_Expr            Dir_Align_Symbol        */
08239             0,  /* Obj_Use_Spec_Expr            Dir_Fill_Symbol         */
08240             0,  /* Obj_Use_Spec_Expr            Dir_Section_Gp          */
08241             0,  /* Obj_Use_Spec_Expr            Dir_Section_Non_Gp      */
08242             0,  /* Obj_Use_Spec_Expr            Dir_Ignore_TKR          */
08243             0,  /* Obj_Use_Spec_Expr            Dir_Optional            */
08244             0,  /* Obj_Use_Spec_Expr            Dir_Ipa                 */
08245             0   /* Obj_Use_Spec_Expr            Dir_Name                */
08246         },
08247 
08248         {1470,  /* Obj_Use_Init_Expr            Dir_Auxiliary           */
08249          1470,  /* Obj_Use_Init_Expr            Dir_Vfunction           */
08250             0,  /* Obj_Use_Init_Expr            Dir_No_Side_Effects     */
08251             0,  /* Obj_Use_Init_Expr            Dir_Inline              */
08252             0,  /* Obj_Use_Init_Expr            Dir_Symmetric           */
08253          1470,  /* Obj_Use_Init_Expr            Dir_Copy_Assumed_Shape  */
08254          1470,  /* Obj_Use_Init_Expr            Dir_Align_Symbol        */
08255          1470,  /* Obj_Use_Init_Expr            Dir_Fill_Symbol         */
08256          1470,  /* Obj_Use_Init_Expr            Dir_Section_Gp          */
08257          1470,  /* Obj_Use_Init_Expr            Dir_Section_Non_Gp      */
08258          1470,  /* Obj_Use_Init_Expr            Dir_Ignore_TKR          */
08259          1470,  /* Obj_Use_Init_Expr            Dir_Optional            */
08260             0,  /* Obj_Use_Init_Expr            Dir_Ipa                 */
08261          1470   /* Obj_Use_Init_Expr            Dir_Name                */
08262         }
08263 };
08264 
08265 
08266 long    name_msg_num[Obj_Done] [Name_Done]      = {
08267 
08268         /********************** Obj_Assum_Type_Ch ***********************/
08269         /* A length type value of star may only be used as a dummy      */
08270         /* argument, a constant, or the name of the function result,    */
08271         /* in the external function begin compiled.     (5.1.1.5)       */
08272         /* Also can be a Cray character pointer.                        */
08273         /****************************************************************/
08274 
08275         {   0,  /* Obj_Assum_Type_Ch            Name_Variable           */
08276           551,  /* Obj_Assum_Type_Ch            Name_Common_Obj         */
08277           551,  /* Obj_Assum_Type_Ch            Name_Cri_Pointer        */
08278 
08279 # if defined(_EXTENDED_CRI_CHAR_POINTER)
08280             0,  /* Obj_Assum_Type_Ch            Name_Cri_Pointee        */
08281             0,  /* Obj_Assum_Type_Ch            Name_Cri_Ch_Pointee     */
08282 # else
08283           625,  /* Obj_Assum_Type_Ch            Name_Cri_Pointee        */
08284                 /* Must declare type before making it a char pointee.   */
08285                 /* This uses a special message, but takes the same      */
08286                 /* msg args as msg #  551 does.                         */
08287 
08288           551,  /* Obj_Assum_Type_Ch            Name_Cri_Ch_Pointee     */
08289 # endif
08290             0,  /* Obj_Assum_Type_Ch            Name_Func_Result        */
08291             0,  /* Obj_Assum_Type_Ch            Name_Dummy_Arg          */
08292 
08293           551,  /* Obj_Assum_Type_Ch            Name_Module_Proc        */
08294                 /* 12.3.1 says that a module procedure has an explicit  */
08295                 /* interface.   12.3.2.1 says that a procedure must not */
08296                 /* have more than one explicit specific interface in    */
08297                 /* a given scoping unit.  12.3 details what is in an    */
08298                 /* interface.                                           */
08299 
08300           551,  /* Obj_Assum_Type_Ch            Name_Derived_Type       */
08301                 /* 5.1.1.5                                              */
08302 
08303           551,  /* Obj_Assum_Type_Ch            Name_Generic_Interface  */
08304                 /* If a function result is assumed type character, it   */
08305                 /* must be the current function being compiled. This    */
08306                 /* can't be a generic interface.  12.3.2.1 constraint   */
08307 
08308           551,  /* Obj_Assum_Type_Ch            Name_Namelist_Group     */
08309                 /* 14.1.2                                               */
08310 
08311           551,  /* Obj_Assum_Type_Ch            Name_Namelist_Group_Obj */
08312                 /* 5.4                                                  */
08313 
08314           551,  /* Obj_Assum_Type_Ch            Name_Statement_Func     */
08315                 /* Can't be a character with an unknown len. (12.5.4)   */
08316 
08317           551,  /* Obj_Assum_Type_Ch            Name_Construct          */
08318                 /* 14.1.2                                               */
08319 
08320           551,  /* Obj_Assum_Type_Ch            Name_Intrinsic_Func     */
08321           551,  /* Obj_Assum_Type_Ch            Name_Intrinsic_Subr     */
08322                 /* Definition says only external functions.             */
08323 
08324           551,  /* Obj_Assum_Type_Ch            Name_Module             */
08325           551,  /* Obj_Assum_Type_Ch            Name_Blockdata          */
08326           551,  /* Obj_Assum_Type_Ch            Name_Program            */
08327                 /* 14.1.2                                               */
08328 
08329             0,  /* Obj_Assum_Type_Ch            Name_Function           */
08330             0,  /* Obj_Assum_Type_Ch            Name_Curr_Func          */
08331                 /* This is legal, if this is an external function.      */
08332 
08333           551,  /* Obj_Assum_Type_Ch            Name_Curr_Subr          */
08334 
08335           551,  /* Obj_Assum_Type_Ch            Name_Internal_Func      */
08336           551   /* Obj_Assum_Type_Ch            Name_Internal_Subr      */
08337                 /* Definition says only external functions.             */
08338 
08339         },
08340 
08341 
08342         /************************ Obj_Expl_Shp_Arr **********************/
08343         /* An explict shape array is a named array that is declared     */
08344         /* with explicit values for the bounds in each dimension of     */
08345         /* the array.   (5.1.2.4.1)  All explicit shape arrays (both    */
08346         /* with constant bounds and with non-constant bounds), use this */
08347         /* Obj_... category.    At end pass1, array bounds are resolved.*/
08348         /* If they are constant, semantic checking is done, if they are */
08349         /* non-constant, fnd_semantic_err is called again for the       */
08350         /* object, using Obj_Var_Len_Arr.  There is nothing that can    */
08351         /* be a variable length array that cannot be an array with      */
08352         /* constant bounds.                                             */
08353         /****************************************************************/
08354 
08355         {   0,  /* Obj_Expl_Shp_Arr             Name_Variable           */
08356             0,  /* Obj_Expl_Shp_Arr             Name_Common_Obj         */
08357 
08358                 /* Cray extension - illegal to be an array.             */
08359 
08360           551,  /* Obj_Expl_Shp_Arr             Name_Cri_Pointer        */
08361             0,  /* Obj_Expl_Shp_Arr             Name_Cri_Pointee        */
08362 # if defined(_EXTENDED_CRI_CHAR_POINTER)
08363             0,  /* Obj_Expl_Shp_Arr             Name_Cri_Ch_Pointee     */
08364 # else
08365          1408,  /* Obj_Expl_Shp_Arr             Name_Cri_Ch_Pointee     */
08366 # endif
08367             0,  /* Obj_Expl_Shp_Arr             Name_Func_Result        */
08368             0,  /* Obj_Expl_Shp_Arr             Name_Dummy_Arg          */
08369 
08370           551,  /* Obj_Expl_Shp_Arr             Name_Module_Proc        */
08371                 /* 12.3.1 says that a module procedure has an explicit  */
08372                 /* interface.   12.3.2.1 says that a procedure must not */
08373                 /* have more than one explicit specific interface in    */
08374                 /* a given scoping unit.  12.3 details what is in an    */
08375                 /* interface.                                           */
08376 
08377           551,  /* Obj_Expl_Shp_Arr             Name_Derived_Type       */
08378                 /* 14.1.2                                               */
08379 
08380           551,  /* Obj_Expl_Shp_Arr             Name_Generic_Interface  */
08381                 /* Can't add something to an explicit interface.        */
08382 
08383           551,  /* Obj_Expl_Shp_Arr             Name_Namelist_Group     */
08384                 /* 14.1.2                                               */
08385 
08386             0,  /* Obj_Expl_Shp_Arr             Name_Namelist_Group_Obj */
08387                 /* 5.4                                                  */
08388 
08389           551,  /* Obj_Expl_Shp_Arr             Name_Statement_Func     */
08390                 /* 12.5.4 constraint - Must be scalar.                  */
08391 
08392           551,  /* Obj_Expl_Shp_Arr             Name_Construct          */
08393                 /* 14.1.2                                               */
08394 
08395           551,  /* Obj_Expl_Shp_Arr             Name_Intrinsic_Func     */
08396           551,  /* Obj_Expl_Shp_Arr             Name_Intrinsic_Subr     */
08397                 /* By exclusion.  5.1 Discussion allows only type.      */
08398 
08399           551,  /* Obj_Expl_Shp_Arr             Name_Module             */
08400           551,  /* Obj_Expl_Shp_Arr             Name_Blockdata          */
08401           551,  /* Obj_Expl_Shp_Arr             Name_Program            */
08402                 /* 14.1.2                                               */
08403 
08404             0,  /* Obj_Expl_Shp_Arr             Name_Function           */
08405             0,  /* Obj_Expl_Shp_Arr             Name_Curr_Func          */
08406 
08407           551,  /* Obj_Expl_Shp_Arr             Name_Curr_Subr          */
08408 
08409           551,  /* Obj_Expl_Shp_Arr             Name_Internal_Func      */
08410           551   /* Obj_Expl_Shp_Arr             Name_Internal_Subr      */
08411                 /* 12.3.1 - If a procedure is accessible in a scoping   */
08412                 /* unit its interface is either explicit or implicit    */
08413                 /* in that scoping unit.  The interface of an internal  */
08414                 /* procedure is always explicit.  (12.3.2)  The         */
08415                 /* interface specification statements may appear in     */
08416                 /* the procedure definition or an interface block.      */
08417                 /* But internals can't be specified in an interface     */
08418                 /* block.  (12.3.2.1 discussion) A procedure may not    */
08419                 /* have more than one explicit interface per scoping    */
08420                 /* unit.  So what this means is that all attributes     */
08421                 /* of an internal function must be specified in the     */
08422                 /* procedure definition.  When fnd_semantic_err goes    */
08423                 /* thru the attribute the current procedure being       */
08424                 /* compiled is Name_Curr_Func (or Name_Curr_Subr) not   */
08425                 /* Name_Internal_Func (or Name_Internal_Subr).  These   */
08426                 /* are reserved for references to the procedure         */
08427                 /* outside of the procedure itself.                     */
08428 
08429         },
08430 
08431         /************************ Obj_Assum_Size_Arr ********************/
08432         /* This is a dummy argument array.      (5.1.2.4.4)             */
08433         /****************************************************************/
08434 
08435         { 551,  /* Obj_Assum_Size_Arr           Name_Variable           */
08436           551,  /* Obj_Assum_Size_Arr           Name_Common_Obj         */
08437                 /* Dargs can't be in common.    (5.5.2)                 */
08438 
08439           551,  /* Obj_Assum_Size_Arr           Name_Cri_Pointer        */
08440             0,  /* Obj_Assum_Size_Arr           Name_Cri_Pointee        */
08441 
08442 # if defined(_EXTENDED_CRI_CHAR_POINTER)
08443             0,  /* Obj_Assum_Size_Arr           Name_Cri_Ch_Pointee     */
08444 # else
08445         1408,   /* Obj_Assum_Size_Arr           Name_Cri_Ch_Pointee     */
08446 # endif
08447           551,  /* Obj_Assum_Size_Arr           Name_Func_Result        */
08448                 /* 14.1.2                                               */
08449 
08450             0,  /* Obj_Assum_Size_Arr           Name_Dummy_Arg          */
08451 
08452           551,  /* Obj_Assum_Size_Arr           Name_Module_Proc        */
08453                 /* 12.3.1 says that a module procedure has an explicit  */
08454                 /* interface.   12.3.2.1 says that a procedure must not */
08455                 /* have more than one explicit specific interface in    */
08456                 /* a given scoping unit.  12.3 details what is in an    */
08457                 /* interface.                                           */
08458 
08459           551,  /* Obj_Assum_Size_Arr           Name_Derived_Type       */
08460                 /* 14.1.2                                               */
08461 
08462           551,  /* Obj_Assum_Size_Arr           Name_Generic_Interface  */
08463                 /* Function can't be darg                               */
08464 
08465           551,  /* Obj_Assum_Size_Arr           Name_Namelist_Group     */
08466                 /* 5.4                                                  */
08467 
08468           551,  /* Obj_Assum_Size_Arr           Name_Namelist_Group_Obj */
08469                 /* 5.4                                                  */
08470 
08471           551,  /* Obj_Assum_Size_Arr           Name_Statement_Func     */
08472                 /* 12.5.4 constraint - Stmt function must be scalar.    */
08473 
08474           551,  /* Obj_Assum_Size_Arr           Name_Construct          */
08475           551,  /* Obj_Assum_Size_Arr           Name_Intrinsic_Func     */
08476           551,  /* Obj_Assum_Size_Arr           Name_Intrinsic_Subr     */
08477           551,  /* Obj_Assum_Size_Arr           Name_Module             */
08478           551,  /* Obj_Assum_Size_Arr           Name_Blockdata          */
08479           551,  /* Obj_Assum_Size_Arr           Name_Program            */
08480           551,  /* Obj_Assum_Size_Arr           Name_Function           */
08481           551,  /* Obj_Assum_Size_Arr           Name_Curr_Func          */
08482           551,  /* Obj_Assum_Size_Arr           Name_Curr_Subr          */
08483           551,  /* Obj_Assum_Size_Arr           Name_Internal_Func      */
08484           551   /* Obj_Assum_Size_Arr           Name_Internal_Subr      */
08485                 /* None of these can be dargs.  14.1.2                  */
08486         },
08487 
08488         /************************ Obj_Defrd_Shp_Arr *********************/
08489         /* A deferred shape array is an array pointer or an             */
08490         /* allocatable array. (5.1.2.4.3)                               */
08491         /**************************************************************(*/
08492 
08493         {   0,  /* Obj_Defrd_Shp_Arr            Name_Variable           */
08494             0,  /* Obj_Defrd_Shp_Arr            Name_Common_Obj         */
08495                 /* Legal - Mentioned in discussion in 5.5.2.3           */
08496 
08497           551,  /* Obj_Defrd_Shp_Arr            Name_Cri_Pointer        */
08498           551,  /* Obj_Defrd_Shp_Arr            Name_Cri_Pointee        */
08499                 /* Cray extension - illegal to be an array.             */
08500 
08501           551,  /* Obj_Defrd_Shp_Arr            Name_Cri_Ch_Pointee     */
08502                 /* Cri character pointee must be a scalar.              */
08503 
08504             0,  /* Obj_Defrd_Shp_Arr            Name_Func_Result        */
08505                 /* 12.2.2 says a function result can be a pointer.  A   */
08506                 /* deferred shape array can also be a pointer.          */
08507 
08508             0,  /* Obj_Defrd_Shp_Arr            Name_Dummy_Arg          */
08509                 /* 5.1.2.4.3 - discussion - legal                       */
08510 
08511           551,  /* Obj_Defrd_Shp_Arr            Name_Module_Proc        */
08512                 /* 12.3.1 says that a module procedure has an explicit  */
08513                 /* interface.   12.3.2.1 says that a procedure must not */
08514                 /* have more than one explicit specific interface in    */
08515                 /* a given scoping unit.  12.3 details what is in an    */
08516                 /* interface.                                           */
08517 
08518           551,  /* Obj_Defrd_Shp_Arr            Name_Derived_Type       */
08519           551,  /* Obj_Defrd_Shp_Arr            Name_Generic_Interface  */
08520           551,  /* Obj_Defrd_Shp_Arr            Name_Namelist_Group     */
08521           551,  /* Obj_Defrd_Shp_Arr            Name_Namelist_Group_Obj */
08522                 /* 5.4                                                  */
08523 
08524           551,  /* Obj_Defrd_Shp_Arr            Name_Statement_Func     */
08525                 /* 12.5.4 constraint - Stmt function must be scalar.    */
08526 
08527           551,  /* Obj_Defrd_Shp_Arr            Name_Construct          */
08528                 /* 14.1.2                                               */
08529 
08530           551,  /* Obj_Defrd_Shp_Arr            Name_Intrinsic_Func     */
08531           551,  /* Obj_Defrd_Shp_Arr            Name_Intrinsic_Subr     */
08532                 /* By exclusion.  5.1 Discussion allows only type.      */
08533 
08534           551,  /* Obj_Defrd_Shp_Arr            Name_Module             */
08535           551,  /* Obj_Defrd_Shp_Arr            Name_Blockdata          */
08536           551,  /* Obj_Defrd_Shp_Arr            Name_Program            */
08537                 /* 14.1.2                                               */
08538 
08539             0,  /* Obj_Defrd_Shp_Arr            Name_Function           */
08540             0,  /* Obj_Defrd_Shp_Arr            Name_Curr_Func          */
08541                 /* 12.2.2 - legal                                       */
08542 
08543           551,  /* Obj_Defrd_Shp_Arr            Name_Curr_Subr          */
08544 
08545           551,  /* Obj_Defrd_Shp_Arr            Name_Internal_Func      */
08546                 /* Can't redefine something with an explicit interface  */
08547                 /* See  [Obj_Expl_Shp_Arr, Name_Internal_Subr]          */
08548 
08549           551   /* Obj_Defrd_Shp_Arr            Name_Internal_Subr      */
08550         },
08551 
08552 
08553         /************************ Obj_Assum_Shp_Arr *********************/
08554         /* This is a non-pointer dummy argument array.  (5.1.2.4.2)     */
08555         /****************************************************************/
08556 
08557         {   0,  /* Obj_Assum_Shp_Arr            Name_Variable           */
08558           551,  /* Obj_Assum_Shp_Arr            Name_Common_Obj         */
08559                 /* Dargs can't be in common.    (5.5.2)                 */
08560 
08561           551,  /* Obj_Assum_Shp_Arr            Name_Cri_Pointer        */
08562           551,  /* Obj_Assum_Shp_Arr            Name_Cri_Pointee        */
08563                 /* Cray extension - illegal to be an array.             */
08564 
08565           551,  /* Obj_Assum_Shp_Arr            Name_Cri_Ch_Pointee     */
08566                 /* Cri character pointee must be a scalar.              */
08567 
08568           551,  /* Obj_Assum_Shp_Arr            Name_Func_Result        */
08569                 /* Dummy args can't be function results.  (14.1.2)      */
08570 
08571             0,  /* Obj_Assum_Shp_Arr            Name_Dummy_Arg          */
08572 
08573           551,  /* Obj_Assum_Shp_Arr            Name_Module_Proc        */
08574                 /* 12.3.1 says that a module procedure has an explicit  */
08575                 /* interface.   12.3.2.1 says that a procedure must not */
08576                 /* have more than one explicit specific interface in    */
08577                 /* a given scoping unit.  12.3 details what is in an    */
08578                 /* interface.                                           */
08579 
08580           551,  /* Obj_Assum_Shp_Arr            Name_Derived_Type       */
08581           551,  /* Obj_Assum_Shp_Arr            Name_Generic_Interface  */
08582           551,  /* Obj_Assum_Shp_Arr            Name_Namelist_Group     */
08583           551,  /* Obj_Assum_Shp_Arr            Name_Namelist_Group_Obj */
08584                 /* 5.4                                                  */
08585 
08586           551,  /* Obj_Assum_Shp_Arr            Name_Statement_Func     */
08587           551,  /* Obj_Assum_Shp_Arr            Name_Construct          */
08588           551,  /* Obj_Assum_Shp_Arr            Name_Intrinsic_Func     */
08589           551,  /* Obj_Assum_Shp_Arr            Name_Intrinsic_Subr     */
08590           551,  /* Obj_Assum_Shp_Arr            Name_Module             */
08591           551,  /* Obj_Assum_Shp_Arr            Name_Blockdata          */
08592           551,  /* Obj_Assum_Shp_Arr            Name_Program            */
08593           551,  /* Obj_Assum_Shp_Arr            Name_Function           */
08594           551,  /* Obj_Assum_Shp_Arr            Name_Curr_Func          */
08595           551,  /* Obj_Assum_Shp_Arr            Name_Curr_Subr          */
08596           551,  /* Obj_Assum_Shp_Arr            Name_Internal_Func      */
08597           551   /* Obj_Assum_Shp_Arr            Name_Internal_Subr      */
08598                 /* 14.1.2       None of these can be dargs.             */
08599         },
08600 
08601         /************************ Obj_Co_Array **********************/
08602         /* This is a pe dimension [3,4]                                 */
08603         /****************************************************************/
08604 
08605         {   0,  /* Obj_Co_Array         Name_Variable           */
08606             0,  /* Obj_Co_Array         Name_Common_Obj         */
08607           551,  /* Obj_Co_Array         Name_Cri_Pointer        */
08608           551,  /* Obj_Co_Array         Name_Cri_Pointee        */
08609           551,  /* Obj_Co_Array         Name_Cri_Ch_Pointee     */
08610           551,  /* Obj_Co_Array         Name_Func_Result        */
08611             0,  /* Obj_Co_Array         Name_Dummy_Arg          */
08612           551,  /* Obj_Co_Array         Name_Module_Proc        */
08613           551,  /* Obj_Co_Array         Name_Derived_Type       */
08614           551,  /* Obj_Co_Array         Name_Generic_Interface  */
08615           551,  /* Obj_Co_Array         Name_Namelist_Group     */
08616             0,  /* Obj_Co_Array         Name_Namelist_Group_Obj */
08617           551,  /* Obj_Co_Array         Name_Statement_Func     */
08618           551,  /* Obj_Co_Array         Name_Construct          */
08619           551,  /* Obj_Co_Array         Name_Intrinsic_Func     */
08620           551,  /* Obj_Co_Array         Name_Intrinsic_Subr     */
08621           551,  /* Obj_Co_Array         Name_Module             */
08622           551,  /* Obj_Co_Array         Name_Blockdata          */
08623           551,  /* Obj_Co_Array         Name_Program            */
08624           551,  /* Obj_Co_Array         Name_Function           */
08625           551,  /* Obj_Co_Array         Name_Curr_Func          */
08626           551,  /* Obj_Co_Array         Name_Curr_Subr          */
08627           551,  /* Obj_Co_Array         Name_Internal_Func      */
08628           551   /* Obj_Co_Array         Name_Internal_Subr      */
08629         },
08630 
08631 
08632         /************************ Obj_Allocatable ***********************/
08633         /* This must be a deferred shape array and must not be a dummy  */
08634         /* argument or function result. (5.2.6)                         */
08635         /****************************************************************/
08636 
08637         {   0,  /* Obj_Allocatable              Name_Variable           */
08638           551,  /* Obj_Allocatable              Name_Common_Obj         */
08639                 /* Allocatable can't be in common. (5.5.2 constraint)   */
08640 
08641           551,  /* Obj_Allocatable              Name_Cri_Pointer        */
08642 
08643           551,  /* Obj_Allocatable              Name_Cri_Pointee        */
08644                 /* Cray extensions - do not mix with Fortran 90.        */
08645 
08646           551,  /* Obj_Allocatable              Name_Cri_Ch_Pointee     */
08647                 /* Cri character pointee must be a scalar.              */
08648 
08649           551,  /* Obj_Allocatable              Name_Func_Result        */
08650           551,  /* Obj_Allocatable              Name_Dummy_Arg          */
08651                 /* (5.2.6) - illegal                                    */
08652 
08653           551,  /* Obj_Allocatable              Name_Module_Proc        */
08654                 /* Can't be a function result (5.2.6)                   */
08655 
08656           551,  /* Obj_Allocatable              Name_Derived_Type       */
08657           551,  /* Obj_Allocatable              Name_Generic_Interface  */
08658           551,  /* Obj_Allocatable              Name_Namelist_Group     */
08659           551,  /* Obj_Allocatable              Name_Namelist_Group_Obj */
08660                 /* 5.4                                                  */
08661 
08662           551,  /* Obj_Allocatable              Name_Statement_Func     */
08663           551,  /* Obj_Allocatable              Name_Construct          */
08664           551,  /* Obj_Allocatable              Name_Intrinsic_Func     */
08665           551,  /* Obj_Allocatable              Name_Intrinsic_Subr     */
08666           551,  /* Obj_Allocatable              Name_Module             */
08667           551,  /* Obj_Allocatable              Name_Blockdata          */
08668           551,  /* Obj_Allocatable              Name_Program            */
08669           551,  /* Obj_Allocatable              Name_Function           */
08670           551,  /* Obj_Allocatable              Name_Curr_Func          */
08671           551,  /* Obj_Allocatable              Name_Curr_Subr          */
08672           551,  /* Obj_Allocatable              Name_Internal_Func      */
08673           551   /* Obj_Allocatable              Name_Internal_Subr      */
08674         },
08675 
08676 
08677         /************************ Obj_Constant **************************/
08678         /* The named constant must have its type, shape and any type    */
08679         /* parameters specified either by a previous occurrence in a    */
08680         /* type declaration stmt in the same scoping unit, or by the    */
08681         /* implicit typing rules in effect.     (5.2.10)                */
08682         /****************************************************************/
08683 
08684         { 551,  /* Obj_Constant                 Name_Variable           */
08685           551,  /* Obj_Constant                 Name_Common_Obj         */
08686           551,  /* Obj_Constant                 Name_Cri_Pointer        */
08687           551,  /* Obj_Constant                 Name_Cri_Pointee        */
08688                 /* Cray extensions - illegal                            */
08689           551,  /* Obj_Constant                 Name_Cri_Ch_Pointee     */
08690           551,  /* Obj_Constant                 Name_Func_Result        */
08691           551,  /* Obj_Constant                 Name_Dummy_Arg          */
08692           551,  /* Obj_Constant                 Name_Module_Proc        */
08693           551,  /* Obj_Constant                 Name_Derived_Type       */
08694           551,  /* Obj_Constant                 Name_Generic_Interface  */
08695           551,  /* Obj_Constant                 Name_Namelist_Group     */
08696           551,  /* Obj_Constant                 Name_Namelist_Group_Obj */
08697           551,  /* Obj_Constant                 Name_Statement_Func     */
08698           551,  /* Obj_Constant                 Name_Construct          */
08699           551,  /* Obj_Constant                 Name_Intrinsic_Func     */
08700           551,  /* Obj_Constant                 Name_Intrinsic_Subr     */
08701           551,  /* Obj_Constant                 Name_Module             */
08702           551,  /* Obj_Constant                 Name_Blockdata          */
08703           551,  /* Obj_Constant                 Name_Program            */
08704           551,  /* Obj_Constant                 Name_Function           */
08705           551,  /* Obj_Constant                 Name_Curr_Func          */
08706           551,  /* Obj_Constant                 Name_Curr_Subr          */
08707           551,  /* Obj_Constant                 Name_Internal_Func      */
08708           551   /* Obj_Constant                 Name_Internal_Subr      */
08709                 /* 14.1.2 - These can't be constants.                   */
08710         },
08711 
08712 
08713         /************************ Obj_Intent ****************************/
08714         /* An intent statement may only appear in the specification-    */
08715         /* part of a subprogram or interface body.  It must not be a    */
08716         /* dummy procedure or dummy pointer.    (5.2.1)                 */
08717         /***************************************************************/
08718 
08719         { 551,  /* Obj_Intent                   Name_Variable           */
08720           551,  /* Obj_Intent                   Name_Common_Obj         */
08721                 /* 5.5.2                                                */
08722 
08723           551,  /* Obj_Intent                   Name_Cri_Pointer        */
08724           551,  /* Obj_Intent                   Name_Cri_Pointee        */
08725           551,  /* Obj_Intent                   Name_Cri_Ch_Pointee     */
08726 
08727           551,  /* Obj_Intent                   Name_Func_Result        */
08728                 /* 14.1.2                                               */
08729 
08730             0,  /* Obj_Intent                   Name_Dummy_Arg          */
08731 
08732           551,  /* Obj_Intent                   Name_Module_Proc        */
08733           551,  /* Obj_Intent                   Name_Derived_Type       */
08734           551,  /* Obj_Intent                   Name_Generic_Interface  */
08735           551,  /* Obj_Intent                   Name_Namelist_Group     */
08736             0,  /* Obj_Intent                   Name_Namelist_Group_Obj */
08737           551,  /* Obj_Intent                   Name_Statement_Func     */
08738           551,  /* Obj_Intent                   Name_Construct          */
08739           551,  /* Obj_Intent                   Name_Intrinsic_Func     */
08740           551,  /* Obj_Intent                   Name_Intrinsic_Subr     */
08741           551,  /* Obj_Intent                   Name_Module             */
08742           551,  /* Obj_Intent                   Name_Blockdata          */
08743           551,  /* Obj_Intent                   Name_Program            */
08744           551,  /* Obj_Intent                   Name_Function           */
08745           551,  /* Obj_Intent                   Name_Curr_Func          */
08746           551,  /* Obj_Intent                   Name_Curr_Subr          */
08747           551,  /* Obj_Intent                   Name_Internal_Func      */
08748           551   /* Obj_Intent                   Name_Internal_Subr      */
08749                 /* 14.1.2                                               */
08750         },
08751 
08752 
08753         /************************ Obj_Optional **************************/
08754         /* The optional statement may only appear in the specification- */
08755         /* part of a subprogram or interface body.      (5.2.2)         */
08756         /****************************************************************/
08757 
08758         {  551, /* Obj_Optional                 Name_Variable           */
08759 
08760           551,  /* Obj_Optional                 Name_Common_Obj         */
08761                 /* 5.5.2                                                */
08762 
08763             0,  /* Obj_Optional                 Name_Cri_Pointer        */
08764           551,  /* Obj_Optional                 Name_Cri_Pointee        */
08765           551,  /* Obj_Optional                 Name_Cri_Ch_Pointee     */
08766           551,  /* Obj_Optional                 Name_Func_Result        */
08767                 /* 14.1.2 - can't be a darg.                            */
08768 
08769             0,  /* Obj_Optional                 Name_Dummy_Arg          */
08770 
08771           551,  /* Obj_Optional                 Name_Module_Proc        */
08772           551,  /* Obj_Optional                 Name_Derived_Type       */
08773           551,  /* Obj_Optional                 Name_Generic_Interface  */
08774           551,  /* Obj_Optional                 Name_Namelist_Group     */
08775             0,  /* Obj_Optional                 Name_Namelist_Group_Obj */
08776           551,  /* Obj_Optional                 Name_Statement_Func     */
08777           551,  /* Obj_Optional                 Name_Construct          */
08778           551,  /* Obj_Optional                 Name_Intrinsic_Func     */
08779           551,  /* Obj_Optional                 Name_Intrinsic_Subr     */
08780           551,  /* Obj_Optional                 Name_Module             */
08781           551,  /* Obj_Optional                 Name_Blockdata          */
08782           551,  /* Obj_Optional                 Name_Program            */
08783             0,  /* Obj_Optional                 Name_Function           */
08784           551,  /* Obj_Optional                 Name_Curr_Func          */
08785           551,  /* Obj_Optional                 Name_Curr_Subr          */
08786           551,  /* Obj_Optional                 Name_Internal_Func      */
08787           551   /* Obj_Optional                 Name_Internal_Subr      */
08788                 /* None of these can be dargs.                          */
08789         },
08790 
08791 
08792         /************************ Obj_Private ***************************/
08793         /* The private statement may only be in the scoping unit of a   */
08794         /* module.  Each use-name must be a named variable, procedure,  */
08795         /* derived type, named constant or namelist group.      (5.2.3) */
08796         /* Some of these that are marked legal, will eventually error,  */
08797         /* because the item is not allowed in a module.                 */
08798         /****************************************************************/
08799 
08800         {   0,  /* Obj_Private                  Name_Variable           */
08801             0,  /* Obj_Private                  Name_Common_Obj         */
08802             0,  /* Obj_Private                  Name_Cri_Pointer        */
08803             0,  /* Obj_Private                  Name_Cri_Pointee        */
08804             0,  /* Obj_Private                  Name_Cri_Ch_Pointee     */
08805           551,  /* Obj_Private                  Name_Func_Result        */
08806             0,  /* Obj_Private                  Name_Dummy_Arg          */
08807             0,  /* Obj_Private                  Name_Module_Proc        */
08808             0,  /* Obj_Private                  Name_Derived_Type       */
08809             0,  /* Obj_Private                  Name_Generic_Interface  */
08810             0,  /* Obj_Private                  Name_Namelist_Group     */
08811             0,  /* Obj_Private                  Name_Namelist_Group_Obj */
08812           551,  /* Obj_Private                  Name_Statement_Func     */
08813           551,  /* Obj_Private                  Name_Construct          */
08814             0,  /* Obj_Private                  Name_Intrinsic_Func     */
08815             0,  /* Obj_Private                  Name_Intrinsic_Subr     */
08816           551,  /* Obj_Private                  Name_Module             */
08817           551,  /* Obj_Private                  Name_Blockdata          */
08818           551,  /* Obj_Private                  Name_Program            */
08819             0,  /* Obj_Private                  Name_Function           */
08820           551,  /* Obj_Private                  Name_Curr_Func          */
08821           551,  /* Obj_Private                  Name_Curr_Subr          */
08822           551,  /* Obj_Private                  Name_Internal_Func      */
08823           551   /* Obj_Private                  Name_Internal_Subr      */
08824         },
08825 
08826 
08827         /************************ Obj_Public ****************************/
08828         /* The public statement may only be in the scoping unit of a    */
08829         /* module.  Each use-name must be a named variable, procedure,  */
08830         /* derived type, named constant or namelist group.      (5.2.3) */
08831         /* Some of these that are marked legal, will eventually error,  */
08832         /* because the item is not allowed in a module.                 */
08833         /****************************************************************/
08834 
08835         {   0,  /* Obj_Public                   Name_Variable           */
08836             0,  /* Obj_Public                   Name_Common_Obj         */
08837             0,  /* Obj_Public                   Name_Cri_Pointer        */
08838             0,  /* Obj_Public                   Name_Cri_Pointee        */
08839             0,  /* Obj_Public                   Name_Cri_Ch_Pointee     */
08840           551,  /* Obj_Public                   Name_Func_Result        */
08841             0,  /* Obj_Public                   Name_Dummy_Arg          */
08842             0,  /* Obj_Public                   Name_Module_Proc        */
08843             0,  /* Obj_Public                   Name_Derived_Type       */
08844             0,  /* Obj_Public                   Name_Generic_Interface  */
08845             0,  /* Obj_Public                   Name_Namelist_Group     */
08846             0,  /* Obj_Public                   Name_Namelist_Group_Obj */
08847           551,  /* Obj_Public                   Name_Statement_Func     */
08848           551,  /* Obj_Public                   Name_Construct          */
08849             0,  /* Obj_Public                   Name_Intrinsic_Func     */
08850             0,  /* Obj_Public                   Name_Intrinsic_Subr     */
08851           551,  /* Obj_Public                   Name_Module             */
08852           551,  /* Obj_Public                   Name_Blockdata          */
08853           551,  /* Obj_Public                   Name_Program            */
08854             0,  /* Obj_Public                   Name_Function           */
08855           551,  /* Obj_Public                   Name_Curr_Func          */
08856           551,  /* Obj_Public                   Name_Curr_Subr          */
08857           551,  /* Obj_Public                   Name_Internal_Func      */
08858           551   /* Obj_Public                   Name_Internal_Subr      */
08859         },
08860 
08861 
08862         /************************ Obj_Target ****************************/
08863         /* This specifies a list of object names that may have          */
08864         /* pointers associated with them.                               */
08865         /****************************************************************/
08866 
08867         {   0,  /* Obj_Target                   Name_Variable           */
08868             0,  /* Obj_Target                   Name_Common_Obj         */
08869           551,  /* Obj_Target                   Name_Cri_Pointer        */
08870           551,  /* Obj_Target                   Name_Cri_Pointee        */
08871           551,  /* Obj_Target                   Name_Cri_Ch_Pointee     */
08872                 /* Cray extensions - illegal                            */
08873 
08874             0,  /* Obj_Target                   Name_Func_Result        */
08875             0,  /* Obj_Target                   Name_Dummy_Arg          */
08876 
08877           551,  /* Obj_Target                   Name_Module_Proc        */
08878                 /* 12.3.1 says that a module procedure has an explicit  */
08879                 /* interface.   12.3.2.1 says that a procedure must not */
08880                 /* have more than one explicit specific interface in    */
08881                 /* a given scoping unit.  12.3 details what is in an    */
08882                 /* interface.                                           */
08883 
08884           551,  /* Obj_Target                   Name_Derived_Type       */
08885           551,  /* Obj_Target                   Name_Generic_Interface  */
08886           551,  /* Obj_Target                   Name_Namelist_Group     */
08887             0,  /* Obj_Target                   Name_Namelist_Group_Obj */
08888           551,  /* Obj_Target                   Name_Statement_Func     */
08889           551,  /* Obj_Target                   Name_Construct          */
08890           551,  /* Obj_Target                   Name_Intrinsic_Func     */
08891           551,  /* Obj_Target                   Name_Intrinsic_Subr     */
08892           551,  /* Obj_Target                   Name_Module             */
08893           551,  /* Obj_Target                   Name_Blockdata          */
08894           551,  /* Obj_Target                   Name_Program            */
08895             0,  /* Obj_Target                   Name_Function           */
08896             0,  /* Obj_Target                   Name_Curr_Func          */
08897           551,  /* Obj_Target                   Name_Curr_Subr          */
08898           551,  /* Obj_Target                   Name_Internal_Func      */
08899           551   /* Obj_Target                   Name_Internal_Subr      */
08900                 /* 14.1.2 - None of these can be variables.             */
08901         },
08902 
08903         /************************ Obj_Equiv *****************************/
08904         /* An equivalence object must not be a dummy argument, a        */
08905         /* pointer, an allocatable array, and object of a nonsequenced  */
08906         /* derived type or of a sequence derived type containing a      */
08907         /* pointer at any level of component selection, an automatic    */
08908         /* object, a function name, an entry name, a result name, a     */
08909         /* named constant, a structure component, or a subobject of any */
08910         /* of the preceeding objects. (5.5.1 constraint)                */
08911         /****************************************************************/
08912 
08913         {   0,  /* Obj_Equiv                    Name_Variable           */
08914             0,  /* Obj_Equiv                    Name_Common_Obj         */
08915             0,  /* Obj_Equiv                    Name_Cri_Pointer        */
08916           551,  /* Obj_Equiv                    Name_Cri_Pointee        */
08917                 /* Cray extensions                                      */
08918           551,  /* Obj_Equiv                    Name_Cri_Ch_Pointee     */
08919 
08920           551,  /* Obj_Equiv                    Name_Func_Result        */
08921           551,  /* Obj_Equiv                    Name_Dummy_Arg          */
08922           551,  /* Obj_Equiv                    Name_Module_Proc        */
08923           551,  /* Obj_Equiv                    Name_Derived_Type       */
08924           551,  /* Obj_Equiv                    Name_Generic_Interface  */
08925           551,  /* Obj_Equiv                    Name_Namelist_Group     */
08926             0,  /* Obj_Equiv                    Name_Namelist_Group_Obj */
08927           551,  /* Obj_Equiv                    Name_Statement_Func     */
08928           551,  /* Obj_Equiv                    Name_Construct          */
08929           551,  /* Obj_Equiv                    Name_Intrinsic_Func     */
08930           551,  /* Obj_Equiv                    Name_Intrinsic_Subr     */
08931           551,  /* Obj_Equiv                    Name_Module             */
08932           551,  /* Obj_Equiv                    Name_Blockdata          */
08933           551,  /* Obj_Equiv                    Name_Program            */
08934           551,  /* Obj_Equiv                    Name_Function           */
08935           551,  /* Obj_Equiv                    Name_Curr_Func          */
08936           551,  /* Obj_Equiv                    Name_Curr_Subr          */
08937           551,  /* Obj_Equiv                    Name_Internal_Func      */
08938           551   /* Obj_Equiv                    Name_Internal_Subr      */
08939                 /* 14.1.2 - None of these can be variables.             */
08940         },
08941 
08942 
08943         /************************ Obj_Save ******************************/
08944         /* An object-name must not be a dummy argument name, a          */
08945         /* procedure name, a function result name, an automatic data    */
08946         /* object, or the name of an entity in a common block. (5.2.4)  */
08947         /* 2.4.3.1 - An object is a variable or a constant.             */
08948         /****************************************************************/
08949 
08950         {   0,  /* Obj_Saved                    Name_Variable           */
08951           551,  /* Obj_Saved                    Name_Common_Obj         */
08952             0,  /* Obj_Saved                    Name_Cri_Pointer        */
08953           551,  /* Obj_Saved                    Name_Cri_Pointee        */
08954           551,  /* Obj_Saved                    Name_Cri_Ch_Pointee     */
08955                 /* Cray extensions                                      */
08956 
08957           551,  /* Obj_Saved                    Name_Func_Result        */
08958           551,  /* Obj_Saved                    Name_Dummy_Arg          */
08959           551,  /* Obj_Saved                    Name_Module_Proc        */
08960           551,  /* Obj_Saved                    Name_Derived_Type       */
08961           551,  /* Obj_Saved                    Name_Generic_Interface  */
08962           551,  /* Obj_Saved                    Name_Namelist_Group     */
08963             0,  /* Obj_Saved                    Name_Namelist_Group_Obj */
08964           551,  /* Obj_Saved                    Name_Statement_Func     */
08965           551,  /* Obj_Saved                    Name_Construct          */
08966           551,  /* Obj_Saved                    Name_Intrinsic_Func     */
08967           551,  /* Obj_Saved                    Name_Intrinsic_Subr     */
08968           551,  /* Obj_Saved                    Name_Module             */
08969           551,  /* Obj_Saved                    Name_Blockdata          */
08970           551,  /* Obj_Saved                    Name_Program            */
08971           551,  /* Obj_Saved                    Name_Function           */
08972           551,  /* Obj_Saved                    Name_Curr_Func          */
08973           551,  /* Obj_Saved                    Name_Curr_Subr          */
08974           551,  /* Obj_Saved                    Name_Internal_Func      */
08975           551   /* Obj_Saved                    Name_Internal_Subr      */
08976                 /* None of these can be variables or constants. 14.1.2  */
08977         },
08978 
08979 
08980         /************************ Obj_Automatic *************************/
08981         /****************************************************************/
08982 
08983         {   0,  /* Obj_Automatic                Name_Variable           */
08984           551,  /* Obj_Automatic                Name_Common_Obj         */
08985             0,  /* Obj_Automatic                Name_Cri_Pointer        */
08986           551,  /* Obj_Automatic                Name_Cri_Pointee        */
08987           551,  /* Obj_Automatic                Name_Cri_Ch_Pointee     */
08988             0,  /* Obj_Automatic                Name_Func_Result        */
08989           551,  /* Obj_Automatic                Name_Dummy_Arg          */
08990             0,  /* Obj_Automatic                Name_Module_Proc        */
08991           551,  /* Obj_Automatic                Name_Derived_Type       */
08992           551,  /* Obj_Automatic                Name_Generic_Interface  */
08993           551,  /* Obj_Automatic                Name_Namelist_Group     */
08994             0,  /* Obj_Automatic                Name_Namelist_Group_Obj */
08995           551,  /* Obj_Automatic                Name_Statement_Func     */
08996           551,  /* Obj_Automatic                Name_Construct          */
08997           551,  /* Obj_Automatic                Name_Intrinsic_Func     */
08998           551,  /* Obj_Automatic                Name_Intrinsic_Subr     */
08999           551,  /* Obj_Automatic                Name_Module             */
09000           551,  /* Obj_Automatic                Name_Blockdata          */
09001           551,  /* Obj_Automatic                Name_Program            */
09002             0,  /* Obj_Automatic                Name_Function           */
09003             0,  /* Obj_Automatic                Name_Curr_Func          */
09004           551,  /* Obj_Automatic                Name_Curr_Subr          */
09005             0,  /* Obj_Automatic                Name_Internal_Func      */
09006           551   /* Obj_Automatic                Name_Internal_Subr      */
09007         },
09008 
09009         /************************ Obj_Pointer ***************************/
09010         /* Cannot have the INTENT or PARAMETER attributes.  If it is an */
09011         /* array, it must be a deferred shape one.  (5.2.7 constraints) */
09012         /* Cannot be ALLOCATABLE, EXTERNAL, TARGET, or INTRINSIC. (5.1) */
09013         /****************************************************************/
09014 
09015         {   0,  /* Obj_Pointer                  Name_Variable           */
09016             0,  /* Obj_Pointer                  Name_Common_Obj         */
09017           551,  /* Obj_Pointer                  Name_Cri_Pointer        */
09018           551,  /* Obj_Pointer                  Name_Cri_Pointee        */
09019           551,  /* Obj_Pointer                  Name_Cri_Ch_Pointee     */
09020                 /* Cray extensions - illegal                            */
09021 
09022             0,  /* Obj_Pointer                  Name_Func_Result        */
09023             0,  /* Obj_Pointer                  Name_Dummy_Arg          */
09024 
09025           551,  /* Obj_Pointer                  Name_Module_Proc        */
09026                 /* 12.3.1 says that a module procedure has an explicit  */
09027                 /* interface.   12.3.2.1 says that a procedure must not */
09028                 /* have more than one explicit specific interface in    */
09029                 /* a given scoping unit.  12.3 details what is in an    */
09030                 /* interface.                                           */
09031 
09032           551,  /* Obj_Pointer                  Name_Derived_Type       */
09033           551,  /* Obj_Pointer                  Name_Generic_Interface  */
09034           551,  /* Obj_Pointer                  Name_Namelist_Group     */
09035           551,  /* Obj_Pointer                  Name_Namelist_Group_Obj */
09036                 /* 5.4                                                  */
09037 
09038           551,  /* Obj_Pointer                  Name_Statement_Func     */
09039           551,  /* Obj_Pointer                  Name_Construct          */
09040           551,  /* Obj_Pointer                  Name_Intrinsic_Func     */
09041           551,  /* Obj_Pointer                  Name_Intrinsic_Subr     */
09042           551,  /* Obj_Pointer                  Name_Module             */
09043           551,  /* Obj_Pointer                  Name_Blockdata          */
09044           551,  /* Obj_Pointer                  Name_Program            */
09045                 /* 14.1.2                                               */
09046 
09047             0,  /* Obj_Pointer                  Name_Function           */
09048             0,  /* Obj_Pointer                  Name_Curr_Func          */
09049 
09050           551,  /* Obj_Pointer                  Name_Curr_Subr          */
09051           551,  /* Obj_Pointer                  Name_Internal_Func      */
09052           551   /* Obj_Pointer                  Name_Internal_Subr      */
09053                 /* Must use an explicit interface to make a pointer.    */
09054         },
09055 
09056 
09057         /************************ Obj_Dcl_Extern ************************/
09058         /* External-name must be the name of an external procedure, a   */
09059         /* darg, or a block data program unit.                          */
09060         /****************************************************************/
09061 
09062         { 551,  /* Obj_Dcl_Extern               Name_Variable           */
09063           551,  /* Obj_Dcl_Extern               Name_Common_Obj         */
09064           551,  /* Obj_Dcl_Extern               Name_Cri_Pointer        */
09065           551,  /* Obj_Dcl_Extern               Name_Cri_Pointee        */
09066           551,  /* Obj_Dcl_Extern               Name_Cri_Ch_Pointee     */
09067                 /* Cray extensions - illegal                            */
09068 
09069           551,  /* Obj_Dcl_Extern               Name_Func_Result        */
09070 
09071             0,  /* Obj_Dcl_Extern               Name_Dummy_Arg          */
09072 
09073           551,  /* Obj_Dcl_Extern               Name_Module_Proc        */
09074           551,  /* Obj_Dcl_Extern               Name_Derived_Type       */
09075           551,  /* Obj_Dcl_Extern               Name_Generic_Interface  */
09076 
09077           551,  /* Obj_Dcl_Extern               Name_Namelist_Group_Obj */
09078           551,  /* Obj_Dcl_Extern               Name_Namelist_Group     */
09079                 /* 5.4                                                  */
09080 
09081           551,  /* Obj_Dcl_Extern               Name_Statement_Func     */
09082           551,  /* Obj_Dcl_Extern               Name_Construct          */
09083           551,  /* Obj_Dcl_Extern               Name_Intrinsic_Func     */
09084           551,  /* Obj_Dcl_Extern               Name_Intrinsic_Subr     */
09085           551,  /* Obj_Dcl_Extern               Name_Module             */
09086                 /* 14.1.2                                               */
09087 
09088             0,  /* Obj_Dcl_Extern               Name_Blockdata          */
09089                 /* 12.3.2.2                                             */
09090 
09091           551,  /* Obj_Dcl_Extern               Name_Program            */
09092             0,  /* Obj_Dcl_Extern               Name_Function           */
09093           551,  /* Obj_Dcl_Extern               Name_Curr_Func          */
09094                 /* 14.1.2                                               */
09095 
09096             0,  /* Obj_Dcl_Extern               Name_Curr_Subr          */
09097                 /* Cray extension                                       */
09098 
09099           551,  /* Obj_Dcl_Extern               Name_Internal_Func      */
09100           551   /* Obj_Dcl_Extern               Name_Internal_Subr      */
09101                 /* 14.1.2                                               */
09102         },
09103 
09104 
09105         /************************ Obj_Dcl_Intrin ************************/
09106         /* Intrinsic-name must be the name of an intrinsic procedure.   */
09107         /****************************************************************/
09108 
09109         { 551,  /* Obj_Dcl_Intrin               Name_Variable           */
09110           551,  /* Obj_Dcl_Intrin               Name_Common_Obj         */
09111                 /* 14.1.2                                               */
09112 
09113           551,  /* Obj_Dcl_Intrin               Name_Cri_Pointer        */
09114           551,  /* Obj_Dcl_Intrin               Name_Cri_Pointee        */
09115           551,  /* Obj_Dcl_Intrin               Name_Cri_Ch_Pointee     */
09116           551,  /* Obj_Dcl_Intrin               Name_Func_Result        */
09117           551,  /* Obj_Dcl_Intrin               Name_Dummy_Arg          */
09118           551,  /* Obj_Dcl_Intrin               Name_Module_Proc        */
09119           551,  /* Obj_Dcl_Intrin               Name_Derived_Type       */
09120             0,  /* Obj_Dcl_Intrin               Name_Generic_Interface  */
09121           551,  /* Obj_Dcl_Intrin               Name_Namelist_Group     */
09122           551,  /* Obj_Dcl_Intrin               Name_Namelist_Group_Obj */
09123                 /* 5.4                                                  */
09124 
09125           551,  /* Obj_Dcl_Intrin               Name_Statement_Func     */
09126           551,  /* Obj_Dcl_Intrin               Name_Construct          */
09127                 /* 14.1.2                                               */
09128 
09129             0,  /* Obj_Dcl_Intrin               Name_Intrinsic_Func     */
09130             0,  /* Obj_Dcl_Intrin               Name_Intrinsic_Subr     */
09131 
09132           551,  /* Obj_Dcl_Intrin               Name_Module             */
09133           551,  /* Obj_Dcl_Intrin               Name_Blockdata          */
09134           551,  /* Obj_Dcl_Intrin               Name_Program            */
09135             0,  /* Obj_Dcl_Intrin               Name_Function           */
09136           551,  /* Obj_Dcl_Intrin               Name_Curr_Func          */
09137           551,  /* Obj_Dcl_Intrin               Name_Curr_Subr          */
09138           551,  /* Obj_Dcl_Intrin               Name_Internal_Func      */
09139           551   /* Obj_Dcl_Intrin               Name_Internal_Subr      */
09140                 /* 14.1.2                                               */
09141         },
09142 
09143 
09144         /************************ Obj_Data_Init *************************/
09145         /* The = initialization-expr must not appear if object-name is  */
09146         /* a darg, a function result, an object in a named common block */
09147         /* unless the type declaration is in a block data program unit, */
09148         /* an object in blank common, an allocatable array, a pointer,  */
09149         /* an external name, an intrinsic name, or an automatic object. */
09150         /* (5.1 constraint)                                             */
09151         /****************************************************************/
09152 
09153         {   0,  /* Obj_Data_Init                Name_Variable           */
09154             0,  /* Obj_Data_Init                Name_Common_Obj         */
09155             0,  /* Obj_Data_Init                Name_Cri_Pointer        */
09156           551,  /* Obj_Data_Init                Name_Cri_Pointee        */
09157           551,  /* Obj_Data_Init                Name_Cri_Ch_Pointee     */
09158                 /* Cray extensions                                      */
09159 
09160           551,  /* Obj_Data_Init                Name_Func_Result        */
09161           551,  /* Obj_Data_Init                Name_Dummy_Arg          */
09162           551,  /* Obj_Data_Init                Name_Module_Proc        */
09163           551,  /* Obj_Data_Init                Name_Derived_Type       */
09164           551,  /* Obj_Data_Init                Name_Generic_Interface  */
09165           551,  /* Obj_Data_Init                Name_Namelist_Group     */
09166             0,  /* Obj_Data_Init                Name_Namelist_Group_Obj */
09167           551,  /* Obj_Data_Init                Name_Statement_Func     */
09168           551,  /* Obj_Data_Init                Name_Construct          */
09169           551,  /* Obj_Data_Init                Name_Intrinsic_Func     */
09170           551,  /* Obj_Data_Init                Name_Intrinsic_Subr     */
09171           551,  /* Obj_Data_Init                Name_Module             */
09172           551,  /* Obj_Data_Init                Name_Blockdata          */
09173           551,  /* Obj_Data_Init                Name_Program            */
09174           551,  /* Obj_Data_Init                Name_Function           */
09175           551,  /* Obj_Data_Init                Name_Curr_Func          */
09176           551,  /* Obj_Data_Init                Name_Curr_Subr          */
09177           551,  /* Obj_Data_Init                Name_Internal_Func      */
09178           551   /* Obj_Data_Init                Name_Internal_Subr      */
09179                 /* 14.1.2                                               */
09180         },
09181 
09182 
09183         /************************ Obj_Typed *****************************/
09184         /* This must be an object (which is a constant or a variable)   */
09185         /* (2.4.3.1) or an external function, an intrinsic function, a  */
09186         /* function dummy procedure or a statement function.            */
09187         /* Actually you can type an internal or module function also,   */
09188         /* but strict adherence to the standard forces this typing to   */
09189         /* be on the FUNCTION statement, not the type declaration stmt  */
09190         /* (These would show up as Name_Function        anyway.)        */
09191         /****************************************************************/
09192 
09193         {   0,  /* Obj_Typed                    Name_Variable           */
09194             0,  /* Obj_Typed                    Name_Common_Obj         */
09195           551,  /* Obj_Typed                    Name_Cri_Pointer        */
09196                 /* Cray extension - This is a type.                     */
09197 
09198             0,  /* Obj_Typed                    Name_Cri_Pointee        */
09199           551,  /* Obj_Typed                    Name_Cri_Ch_Pointee     */
09200             0,  /* Obj_Typed                    Name_Func_Result        */
09201             0,  /* Obj_Typed                    Name_Dummy_Arg          */
09202 
09203           551,  /* Obj_Typed                    Name_Module_Proc        */
09204                 /* 12.3.1 says that a module procedure has an explicit  */
09205                 /* interface.   12.3.2.1 says that a procedure must not */
09206                 /* have more than one explicit specific interface in    */
09207                 /* a given scoping unit.  12.3 details what is in an    */
09208                 /* interface.                                           */
09209 
09210           551,  /* Obj_Typed                    Name_Derived_Type       */
09211             0,  /* Obj_Typed                    Name_Generic_Interface  */
09212           551,  /* Obj_Typed                    Name_Namelist_Group     */
09213             0,  /* Obj_Typed                    Name_Namelist_Group_Obj */
09214           551,  /* Obj_Typed                    Name_Statement_Func     */
09215           551,  /* Obj_Typed                    Name_Construct          */
09216                 /* 14.1.2 - Not listed in 2.4.3.1                       */
09217 
09218             0,  /* Obj_Typed                    Name_Intrinsic_Func     */
09219           551,  /* Obj_Typed                    Name_Intrinsic_Subr     */
09220                 /* 2.4.3.1                                              */
09221 
09222           551,  /* Obj_Typed                    Name_Module             */
09223           551,  /* Obj_Typed                    Name_Blockdata          */
09224           551,  /* Obj_Typed                    Name_Program            */
09225                 /* 14.1.2                                               */
09226 
09227             0,  /* Obj_Typed                    Name_Function           */
09228             0,  /* Obj_Typed                    Name_Curr_Func          */
09229 
09230           551,  /* Obj_Typed                    Name_Curr_Subr          */
09231           551,  /* Obj_Typed                    Name_Internal_Func      */
09232           551   /* Obj_Typed                    Name_Internal_Subr      */
09233                 /* 14.1.2                                               */
09234         },
09235 
09236         /************************ Obj_Volatile  *************************/
09237         /* This applies to all variables.                               */
09238         /****************************************************************/
09239 
09240         {   0,  /* Obj_Volatile                 Name_Variable           */
09241             0,  /* Obj_Volatile                 Name_Common_Obj         */
09242             0,  /* Obj_Volatile                 Name_Cri_Pointer        */
09243             0,  /* Obj_Volatile                 Name_Cri_Pointee        */
09244             0,  /* Obj_Volatile                 Name_Cri_Ch_Pointee     */
09245           551,  /* Obj_Volatile                 Name_Func_Result        */
09246             0,  /* Obj_Volatile                 Name_Dummy_Arg          */
09247           551,  /* Obj_Volatile                 Name_Module_Proc        */
09248           551,  /* Obj_Volatile                 Name_Derived_Type       */
09249           551,  /* Obj_Volatile                 Name_Generic_Interface  */
09250           551,  /* Obj_Volatile                 Name_Namelist_Group     */
09251             0,  /* Obj_Volatile                 Name_Namelist_Group_Obj */
09252           551,  /* Obj_Volatile                 Name_Statement_Func     */
09253           551,  /* Obj_Volatile                 Name_Construct          */
09254           551,  /* Obj_Volatile                 Name_Intrinsic_Func     */
09255           551,  /* Obj_Volatile                 Name_Intrinsic_Subr     */
09256           551,  /* Obj_Volatile                 Name_Module             */
09257           551,  /* Obj_Volatile                 Name_Blockdata          */
09258           551,  /* Obj_Volatile                 Name_Program            */
09259           551,  /* Obj_Volatile                 Name_Function           */
09260           551,  /* Obj_Volatile                 Name_Curr_Func          */
09261           551,  /* Obj_Volatile                 Name_Curr_Subr          */
09262           551,  /* Obj_Volatile                 Name_Internal_Func      */
09263           551   /* Obj_Volatile                 Name_Internal_Subr      */
09264         },
09265 
09266 
09267         /********************* Obj_Copy_Assumed_Shape *******************/
09268         /* This is a non-pointer dummy argument array.  (5.1.2.4.2)     */
09269         /****************************************************************/
09270 
09271         {   0,  /* Obj_Copy_Assumed_Shape       Name_Variable           */
09272          1442,  /* Obj_Copy_Assumed_Shape       Name_Common_Obj         */
09273          1442,  /* Obj_Copy_Assumed_Shape       Name_Cri_Pointer        */
09274          1442,  /* Obj_Copy_Assumed_Shape       Name_Cri_Pointee        */
09275          1442,  /* Obj_Copy_Assumed_Shape       Name_Cri_Ch_Pointee     */
09276          1442,  /* Obj_Copy_Assumed_Shape       Name_Func_Result        */
09277             0,  /* Obj_Copy_Assumed_Shape       Name_Dummy_Arg          */
09278          1442,  /* Obj_Copy_Assumed_Shape       Name_Module_Proc        */
09279          1442,  /* Obj_Copy_Assumed_Shape       Name_Derived_Type       */
09280          1442,  /* Obj_Copy_Assumed_Shape       Name_Generic_Interface  */
09281          1442,  /* Obj_Copy_Assumed_Shape       Name_Namelist_Group     */
09282          1442,  /* Obj_Copy_Assumed_Shape       Name_Namelist_Group_Obj */
09283          1442,  /* Obj_Copy_Assumed_Shape       Name_Statement_Func     */
09284          1442,  /* Obj_Copy_Assumed_Shape       Name_Construct          */
09285          1442,  /* Obj_Copy_Assumed_Shape       Name_Intrinsic_Func     */
09286          1442,  /* Obj_Copy_Assumed_Shape       Name_Intrinsic_Subr     */
09287          1442,  /* Obj_Copy_Assumed_Shape       Name_Module             */
09288          1442,  /* Obj_Copy_Assumed_Shape       Name_Blockdata          */
09289          1442,  /* Obj_Copy_Assumed_Shape       Name_Program            */
09290          1442,  /* Obj_Copy_Assumed_Shape       Name_Function           */
09291          1442,  /* Obj_Copy_Assumed_Shape       Name_Curr_Func          */
09292          1442,  /* Obj_Copy_Assumed_Shape       Name_Curr_Subr          */
09293          1442,  /* Obj_Copy_Assumed_Shape       Name_Internal_Func      */
09294          1442   /* Obj_Copy_Assumed_Shape       Name_Internal_Subr      */
09295         },
09296 
09297 
09298         /************************ Obj_Auxiliary *************************/
09299         /* Cray extension - Rules come from the CFT77 manual.           */
09300         /* This must be a non-character array.  It can be a dummy arg,  */
09301         /* but cannot be a function result.     It should not be mixed  */
09302         /* with Fortran 90.                                             */
09303         /****************************************************************/
09304 
09305         {   0,  /* Obj_Auxiliary                Name_Variable           */
09306             0,  /* Obj_Auxiliary                Name_Common_Obj         */
09307          1442,  /* Obj_Auxiliary                Name_Cri_Pointer        */
09308          1442,  /* Obj_Auxiliary                Name_Cri_Pointee        */
09309          1442,  /* Obj_Auxiliary                Name_Cri_Ch_Pointee     */
09310          1442,  /* Obj_Auxiliary                Name_Func_Result        */
09311             0,  /* Obj_Auxiliary                Name_Dummy_Arg          */
09312          1442,  /* Obj_Auxiliary                Name_Module_Proc        */
09313          1442,  /* Obj_Auxiliary                Name_Derived_Type       */
09314          1442,  /* Obj_Auxiliary                Name_Generic_Interface  */
09315          1442,  /* Obj_Auxiliary                Name_Namelist_Group     */
09316          1442,  /* Obj_Auxiliary                Name_Namelist_Group_Obj */
09317          1442,  /* Obj_Auxiliary                Name_Statement_Func     */
09318          1442,  /* Obj_Auxiliary                Name_Construct          */
09319          1442,  /* Obj_Auxiliary                Name_Intrinsic_Func     */
09320          1442,  /* Obj_Auxiliary                Name_Intrinsic_Subr     */
09321          1442,  /* Obj_Auxiliary                Name_Module             */
09322          1442,  /* Obj_Auxiliary                Name_Blockdata          */
09323          1442,  /* Obj_Auxiliary                Name_Program            */
09324          1442,  /* Obj_Auxiliary                Name_Function           */
09325          1442,  /* Obj_Auxiliary                Name_Curr_Func          */
09326          1442,  /* Obj_Auxiliary                Name_Curr_Subr          */
09327          1442,  /* Obj_Auxiliary                Name_Internal_Func      */
09328          1442   /* Obj_Auxiliary                Name_Internal_Subr      */
09329         },
09330 
09331 
09332         /************************ Obj_Vfunction *************************/
09333         /* This is a Cray extension.  It must be an external function,  */
09334         /* but cannot be declared EXTERNAL.(From cft77 documentation)   */
09335         /****************************************************************/
09336 
09337         {1442,  /* Obj_Vfunction                Name_Variable           */
09338          1442,  /* Obj_Vfunction                Name_Common_Obj         */
09339          1442,  /* Obj_Vfunction                Name_Cri_Pointer        */
09340          1442,  /* Obj_Vfunction                Name_Cri_Pointee        */
09341          1442,  /* Obj_Vfunction                Name_Cri_Ch_Pointee     */
09342          1442,  /* Obj_Vfunction                Name_Func_Result        */
09343          1442,  /* Obj_Vfunction                Name_Dummy_Arg          */
09344          1442,  /* Obj_Vfunction                Name_Module_Proc        */
09345          1442,  /* Obj_Vfunction                Name_Derived_Type       */
09346          1442,  /* Obj_Vfunction                Name_Generic_Interface  */
09347          1442,  /* Obj_Vfunction                Name_Namelist_Group     */
09348          1442,  /* Obj_Vfunction                Name_Namelist_Group_Obj */
09349          1442,  /* Obj_Vfunction                Name_Statement_Func     */
09350          1442,  /* Obj_Vfunction                Name_Construct          */
09351          1442,  /* Obj_Vfunction                Name_Intrinsic_Func     */
09352          1442,  /* Obj_Vfunction                Name_Intrinsic_Subr     */
09353          1442,  /* Obj_Vfunction                Name_Module             */
09354          1442,  /* Obj_Vfunction                Name_Blockdata          */
09355          1442,  /* Obj_Vfunction                Name_Program            */
09356             0,  /* Obj_Vfunction                Name_Function           */
09357          1442,  /* Obj_Vfunction                Name_Curr_Func          */
09358          1442,  /* Obj_Vfunction                Name_Curr_Subr          */
09359          1442,  /* Obj_Vfunction                Name_Internal_Func      */
09360          1442   /* Obj_Vfunction                Name_Internal_Subr      */
09361         },
09362 
09363 
09364         /************************ Obj_No_Side_Effects *******************/
09365         /* This is a Cray extension.    It must be an external function,*/
09366         /* and must not be a dummy procedure.   (From cft77 doc)        */
09367         /****************************************************************/
09368 
09369         {1442,  /* Obj_No_Side_Effects          Name_Variable           */
09370          1442,  /* Obj_No_Side_Effects          Name_Common_Obj         */
09371          1442,  /* Obj_No_Side_Effects          Name_Cri_Pointer        */
09372          1442,  /* Obj_No_Side_Effects          Name_Cri_Pointee        */
09373          1442,  /* Obj_No_Side_Effects          Name_Cri_Ch_Pointee     */
09374          1442,  /* Obj_No_Side_Effects          Name_Func_Result        */
09375          1442,  /* Obj_No_Side_Effects          Name_Dummy_Arg          */
09376          1442,  /* Obj_No_Side_Effects          Name_Module_Proc        */
09377          1442,  /* Obj_No_Side_Effects          Name_Derived_Type       */
09378          1442,  /* Obj_No_Side_Effects          Name_Generic_Interface  */
09379          1442,  /* Obj_No_Side_Effects          Name_Namelist_Group     */
09380          1442,  /* Obj_No_Side_Effects          Name_Namelist_Group_Obj */
09381          1442,  /* Obj_No_Side_Effects          Name_Statement_Func     */
09382          1442,  /* Obj_No_Side_Effects          Name_Construct          */
09383          1442,  /* Obj_No_Side_Effects          Name_Intrinsic_Func     */
09384          1442,  /* Obj_No_Side_Effects          Name_Intrinsic_Subr     */
09385          1442,  /* Obj_No_Side_Effects          Name_Module             */
09386          1442,  /* Obj_No_Side_Effects          Name_Blockdata          */
09387          1442,  /* Obj_No_Side_Effects          Name_Program            */
09388             0,  /* Obj_No_Side_Effects          Name_Function           */
09389             0,  /* Obj_No_Side_Effects          Name_Curr_Func          */
09390             0,  /* Obj_No_Side_Effects          Name_Curr_Subr          */
09391          1442,  /* Obj_No_Side_Effects          Name_Internal_Func      */
09392          1442   /* Obj_No_Side_Effects          Name_Internal_Subr      */
09393         },
09394 
09395         /************************** Obj_Symmetric ***********************/
09396         /* This is a Cray extension.  It must be a local stack variable */
09397         /****************************************************************/
09398 
09399         {   0,  /* Obj_Symmetric                Name_Variable           */
09400          1442,  /* Obj_Symmetric                Name_Common_Obj         */
09401             0,  /* Obj_Symmetric                Name_Cri_Pointer        */
09402          1442,  /* Obj_Symmetric                Name_Cri_Pointee        */
09403          1442,  /* Obj_Symmetric                Name_Cri_Ch_Pointee     */
09404          1442,  /* Obj_Symmetric                Name_Func_Result        */
09405          1442,  /* Obj_Symmetric                Name_Dummy_Arg          */
09406          1442,  /* Obj_Symmetric                Name_Module_Proc        */
09407          1442,  /* Obj_Symmetric                Name_Derived_Type       */
09408          1442,  /* Obj_Symmetric                Name_Generic_Interface  */
09409          1442,  /* Obj_Symmetric                Name_Namelist_Group     */
09410             0,  /* Obj_Symmetric                Name_Namelist_Group_Obj */
09411          1442,  /* Obj_Symmetric                Name_Statement_Func     */
09412          1442,  /* Obj_Symmetric                Name_Construct          */
09413          1442,  /* Obj_Symmetric                Name_Intrinsic_Func     */
09414          1442,  /* Obj_Symmetric                Name_Intrinsic_Subr     */
09415          1442,  /* Obj_Symmetric                Name_Module             */
09416          1442,  /* Obj_Symmetric                Name_Blockdata          */
09417          1442,  /* Obj_Symmetric                Name_Program            */
09418          1442,  /* Obj_Symmetric                Name_Function           */
09419          1442,  /* Obj_Symmetric                Name_Curr_Func          */
09420          1442,  /* Obj_Symmetric                Name_Curr_Subr          */
09421          1442,  /* Obj_Symmetric                Name_Internal_Func      */
09422          1442   /* Obj_Symmetric                Name_Internal_Subr      */
09423         },
09424 
09425 
09426         /**************************** Obj_Inline ************************/
09427         /* This is a Cray extension.  It must be an external function,  */
09428         /****************************************************************/
09429 
09430         {1442,  /* Obj_Inline                   Name_Variable           */
09431          1442,  /* Obj_Inline                   Name_Common_Obj         */
09432          1442,  /* Obj_Inline                   Name_Cri_Pointer        */
09433          1442,  /* Obj_Inline                   Name_Cri_Pointee        */
09434          1442,  /* Obj_Inline                   Name_Cri_Ch_Pointee     */
09435          1442,  /* Obj_Inline                   Name_Func_Result        */
09436          1442,  /* Obj_Inline                   Name_Dummy_Arg          */
09437             0,  /* Obj_Inline                   Name_Module_Proc        */
09438          1442,  /* Obj_Inline                   Name_Derived_Type       */
09439             0,  /* Obj_Inline                   Name_Generic_Interface  */
09440          1442,  /* Obj_Inline                   Name_Namelist_Group     */
09441          1442,  /* Obj_Inline                   Name_Namelist_Group_Obj */
09442          1442,  /* Obj_Inline                   Name_Statement_Func     */
09443          1442,  /* Obj_Inline                   Name_Construct          */
09444             0,  /* Obj_Inline                   Name_Intrinsic_Func     */
09445             0,  /* Obj_Inline                   Name_Intrinsic_Subr     */
09446          1442,  /* Obj_Inline                   Name_Module             */
09447          1442,  /* Obj_Inline                   Name_Blockdata          */
09448          1442,  /* Obj_Inline                   Name_Program            */
09449             0,  /* Obj_Inline                   Name_Function           */
09450             0,  /* Obj_Inline                   Name_Curr_Func          */
09451             0,  /* Obj_Inline                   Name_Curr_Subr          */
09452             0,  /* Obj_Inline                   Name_Internal_Func      */
09453             0   /* Obj_Inline                   Name_Internal_Subr      */
09454         },
09455 
09456 
09457         /***************************** Obj_Ipa **************************/
09458         /* This is an extension.  It must be an external function,      */
09459         /****************************************************************/
09460 
09461         {1442,  /* Obj_Ipa                      Name_Variable           */
09462          1442,  /* Obj_Ipa                      Name_Common_Obj         */
09463          1442,  /* Obj_Ipa                      Name_Cri_Pointer        */
09464          1442,  /* Obj_Ipa                      Name_Cri_Pointee        */
09465          1442,  /* Obj_Ipa                      Name_Cri_Ch_Pointee     */
09466          1442,  /* Obj_Ipa                      Name_Func_Result        */
09467          1442,  /* Obj_Ipa                      Name_Dummy_Arg          */
09468             0,  /* Obj_Ipa                      Name_Module_Proc        */
09469          1442,  /* Obj_Ipa                      Name_Derived_Type       */
09470             0,  /* Obj_Ipa                      Name_Generic_Interface  */
09471          1442,  /* Obj_Ipa                      Name_Namelist_Group     */
09472          1442,  /* Obj_Ipa                      Name_Namelist_Group_Obj */
09473          1442,  /* Obj_Ipa                      Name_Statement_Func     */
09474          1442,  /* Obj_Ipa                      Name_Construct          */
09475             0,  /* Obj_Ipa                      Name_Intrinsic_Func     */
09476             0,  /* Obj_Ipa                      Name_Intrinsic_Subr     */
09477          1442,  /* Obj_Ipa                      Name_Module             */
09478          1442,  /* Obj_Ipa                      Name_Blockdata          */
09479          1442,  /* Obj_Ipa                      Name_Program            */
09480             0,  /* Obj_Ipa                      Name_Function           */
09481             0,  /* Obj_Ipa                      Name_Curr_Func          */
09482             0,  /* Obj_Ipa                      Name_Curr_Subr          */
09483             0,  /* Obj_Ipa                      Name_Internal_Func      */
09484             0   /* Obj_Ipa                      Name_Internal_Subr      */
09485         },
09486 
09487 
09488         /*********************** Obj_Align_Symbol ***********************/
09489         /* This is an SGI extension.                                    */
09490         /****************************************************************/
09491 
09492         {   0,  /* Obj_Align_Symbol             Name_Variable           */
09493             0,  /* Obj_Align_Symbol             Name_Common_Obj         */
09494             0,  /* Obj_Align_Symbol             Name_Cri_Pointer        */
09495             0,  /* Obj_Align_Symbol             Name_Cri_Pointee        */
09496             0,  /* Obj_Align_Symbol             Name_Cri_Ch_Pointee     */
09497          1442,  /* Obj_Align_Symbol             Name_Func_Result        */
09498          1442,  /* Obj_Align_Symbol             Name_Dummy_Arg          */
09499          1442,  /* Obj_Align_Symbol             Name_Module_Proc        */
09500          1442,  /* Obj_Align_Symbol             Name_Derived_Type       */
09501          1442,  /* Obj_Align_Symbol             Name_Generic_Interface  */
09502          1442,  /* Obj_Align_Symbol             Name_Namelist_Group     */
09503             0,  /* Obj_Align_Symbol             Name_Namelist_Group_Obj */
09504          1442,  /* Obj_Align_Symbol             Name_Statement_Func     */
09505          1442,  /* Obj_Align_Symbol             Name_Construct          */
09506          1442,  /* Obj_Align_Symbol             Name_Intrinsic_Func     */
09507          1442,  /* Obj_Align_Symbol             Name_Intrinsic_Subr     */
09508          1442,  /* Obj_Align_Symbol             Name_Module             */
09509          1442,  /* Obj_Align_Symbol             Name_Blockdata          */
09510          1442,  /* Obj_Align_Symbol             Name_Program            */
09511          1442,  /* Obj_Align_Symbol             Name_Function           */
09512          1442,  /* Obj_Align_Symbol             Name_Curr_Func          */
09513          1442,  /* Obj_Align_Symbol             Name_Curr_Subr          */
09514          1442,  /* Obj_Align_Symbol             Name_Internal_Func      */
09515          1442   /* Obj_Align_Symbol             Name_Internal_Subr      */
09516         },
09517 
09518         /*********************** Obj_Fill_Symbol ************************/
09519         /* This is an SGI extension.                                    */
09520         /****************************************************************/
09521 
09522         {   0,  /* Obj_Fill_Symbol              Name_Variable           */
09523             0,  /* Obj_Fill_Symbol              Name_Common_Obj         */
09524             0,  /* Obj_Fill_Symbol              Name_Cri_Pointer        */
09525             0,  /* Obj_Fill_Symbol              Name_Cri_Pointee        */
09526             0,  /* Obj_Fill_Symbol              Name_Cri_Ch_Pointee     */
09527          1442,  /* Obj_Fill_Symbol              Name_Func_Result        */
09528          1442,  /* Obj_Fill_Symbol              Name_Dummy_Arg          */
09529          1442,  /* Obj_Fill_Symbol              Name_Module_Proc        */
09530          1442,  /* Obj_Fill_Symbol              Name_Derived_Type       */
09531          1442,  /* Obj_Fill_Symbol              Name_Generic_Interface  */
09532          1442,  /* Obj_Fill_Symbol              Name_Namelist_Group     */
09533             0,  /* Obj_Fill_Symbol              Name_Namelist_Group_Obj */
09534          1442,  /* Obj_Fill_Symbol              Name_Statement_Func     */
09535          1442,  /* Obj_Fill_Symbol              Name_Construct          */
09536          1442,  /* Obj_Fill_Symbol              Name_Intrinsic_Func     */
09537          1442,  /* Obj_Fill_Symbol              Name_Intrinsic_Subr     */
09538          1442,  /* Obj_Fill_Symbol              Name_Module             */
09539          1442,  /* Obj_Fill_Symbol              Name_Blockdata          */
09540          1442,  /* Obj_Fill_Symbol              Name_Program            */
09541          1442,  /* Obj_Fill_Symbol              Name_Function           */
09542          1442,  /* Obj_Fill_Symbol              Name_Curr_Func          */
09543          1442,  /* Obj_Fill_Symbol              Name_Curr_Subr          */
09544          1442,  /* Obj_Fill_Symbol              Name_Internal_Func      */
09545          1442   /* Obj_Fill_Symbol              Name_Internal_Subr      */
09546         },
09547 
09548         /*********************** Obj_Section_Gp *************************/
09549         /* This is an SGI extension.                                    */
09550         /****************************************************************/
09551 
09552         {   0,  /* Obj_Section_Gp               Name_Variable           */
09553             0,  /* Obj_Section_Gp               Name_Common_Obj         */
09554             0,  /* Obj_Section_Gp               Name_Cri_Pointer        */
09555          1442,  /* Obj_Section_Gp               Name_Cri_Pointee        */
09556          1442,  /* Obj_Section_Gp               Name_Cri_Ch_Pointee     */
09557          1442,  /* Obj_Section_Gp               Name_Func_Result        */
09558          1442,  /* Obj_Section_Gp               Name_Dummy_Arg          */
09559          1442,  /* Obj_Section_Gp               Name_Module_Proc        */
09560          1442,  /* Obj_Section_Gp               Name_Derived_Type       */
09561          1442,  /* Obj_Section_Gp               Name_Generic_Interface  */
09562          1442,  /* Obj_Section_Gp               Name_Namelist_Group     */
09563             0,  /* Obj_Section_Gp               Name_Namelist_Group_Obj */
09564          1442,  /* Obj_Section_Gp               Name_Statement_Func     */
09565          1442,  /* Obj_Section_Gp               Name_Construct          */
09566          1442,  /* Obj_Section_Gp               Name_Intrinsic_Func     */
09567          1442,  /* Obj_Section_Gp               Name_Intrinsic_Subr     */
09568             0,  /* Obj_Section_Gp               Name_Module             */
09569          1442,  /* Obj_Section_Gp               Name_Blockdata          */
09570          1442,  /* Obj_Section_Gp               Name_Program            */
09571          1442,  /* Obj_Section_Gp               Name_Function           */
09572          1442,  /* Obj_Section_Gp               Name_Curr_Func          */
09573          1442,  /* Obj_Section_Gp               Name_Curr_Subr          */
09574          1442,  /* Obj_Section_Gp               Name_Internal_Func      */
09575          1442   /* Obj_Section_Gp               Name_Internal_Subr      */
09576         },
09577 
09578 
09579         /*********************** Obj_Section_Non_Gp *********************/
09580         /* This is an SGI extension.                                    */
09581         /****************************************************************/
09582 
09583         {    0, /* Obj_Section_Non_Gp           Name_Variable           */
09584             0,  /* Obj_Section_Non_Gp           Name_Common_Obj         */
09585             0,  /* Obj_Section_Non_Gp           Name_Cri_Pointer        */
09586          1442,  /* Obj_Section_Non_Gp           Name_Cri_Pointee        */
09587          1442,  /* Obj_Section_Non_Gp           Name_Cri_Ch_Pointee     */
09588          1442,  /* Obj_Section_Non_Gp           Name_Func_Result        */
09589          1442,  /* Obj_Section_Non_Gp           Name_Dummy_Arg          */
09590          1442,  /* Obj_Section_Non_Gp           Name_Module_Proc        */
09591          1442,  /* Obj_Section_Non_Gp           Name_Derived_Type       */
09592          1442,  /* Obj_Section_Non_Gp           Name_Generic_Interface  */
09593          1442,  /* Obj_Section_Non_Gp           Name_Namelist_Group     */
09594             0,  /* Obj_Section_Non_Gp           Name_Namelist_Group_Obj */
09595          1442,  /* Obj_Section_Non_Gp           Name_Statement_Func     */
09596          1442,  /* Obj_Section_Non_Gp           Name_Construct          */
09597          1442,  /* Obj_Section_Non_Gp           Name_Intrinsic_Func     */
09598          1442,  /* Obj_Section_Non_Gp           Name_Intrinsic_Subr     */
09599             0,  /* Obj_Section_Non_Gp           Name_Module             */
09600          1442,  /* Obj_Section_Non_Gp           Name_Blockdata          */
09601          1442,  /* Obj_Section_Non_Gp           Name_Program            */
09602          1442,  /* Obj_Section_Non_Gp           Name_Function           */
09603          1442,  /* Obj_Section_Non_Gp           Name_Curr_Func          */
09604          1442,  /* Obj_Section_Non_Gp           Name_Curr_Subr          */
09605          1442,  /* Obj_Section_Non_Gp           Name_Internal_Func      */
09606          1442   /* Obj_Section_Non_Gp           Name_Internal_Subr      */
09607         },
09608 
09609 
09610         /*********************** Obj_Ignore_TKR *************************/
09611         /****************************************************************/
09612 
09613         {1442,  /* Obj_Ignore_TKR               Name_Variable           */
09614          1442,  /* Obj_Ignore_TKR               Name_Common_Obj         */
09615             0,  /* Obj_Ignore_TKR               Name_Cri_Pointer        */
09616          1442,  /* Obj_Ignore_TKR               Name_Cri_Pointee        */
09617          1442,  /* Obj_Ignore_TKR               Name_Cri_Ch_Pointee     */
09618          1442,  /* Obj_Ignore_TKR               Name_Func_Result        */
09619             0,  /* Obj_Ignore_TKR               Name_Dummy_Arg          */
09620          1442,  /* Obj_Ignore_TKR               Name_Module_Proc        */
09621          1442,  /* Obj_Ignore_TKR               Name_Derived_Type       */
09622          1442,  /* Obj_Ignore_TKR               Name_Generic_Interface  */
09623          1442,  /* Obj_Ignore_TKR               Name_Namelist_Group     */
09624             0,  /* Obj_Ignore_TKR               Name_Namelist_Group_Obj */
09625          1442,  /* Obj_Ignore_TKR               Name_Statement_Func     */
09626          1442,  /* Obj_Ignore_TKR               Name_Construct          */
09627          1442,  /* Obj_Ignore_TKR               Name_Intrinsic_Func     */
09628          1442,  /* Obj_Ignore_TKR               Name_Intrinsic_Subr     */
09629          1442,  /* Obj_Ignore_TKR               Name_Module             */
09630          1442,  /* Obj_Ignore_TKR               Name_Blockdata          */
09631          1442,  /* Obj_Ignore_TKR               Name_Program            */
09632          1442,  /* Obj_Ignore_TKR               Name_Function           */
09633          1442,  /* Obj_Ignore_TKR               Name_Curr_Func          */
09634          1442,  /* Obj_Ignore_TKR               Name_Curr_Subr          */
09635          1442,  /* Obj_Ignore_TKR               Name_Internal_Func      */
09636          1442   /* Obj_Ignore_TKR               Name_Internal_Subr      */
09637         },
09638 
09639         /************************ Obj_Optional_Dir **********************/
09640         /****************************************************************/
09641 
09642         {1442,  /* Obj_Optional_Dir             Name_Variable           */
09643          1442,  /* Obj_Optional_Dir             Name_Common_Obj         */
09644          1442,  /* Obj_Optional_Dir             Name_Cri_Pointer        */
09645          1442,  /* Obj_Optional_Dir             Name_Cri_Pointee        */
09646          1442,  /* Obj_Optional_Dir             Name_Cri_Ch_Pointee     */
09647          1442,  /* Obj_Optional_Dir             Name_Func_Result        */
09648             0,  /* Obj_Optional_Dir             Name_Dummy_Arg          */
09649             0,  /* Obj_Optional_Dir             Name_Module_Proc        */
09650          1442,  /* Obj_Optional_Dir             Name_Derived_Type       */
09651          1442,  /* Obj_Optional_Dir             Name_Generic_Interface  */
09652          1442,  /* Obj_Optional_Dir             Name_Namelist_Group     */
09653          1442,  /* Obj_Optional_Dir             Name_Namelist_Group_Obj */
09654          1442,  /* Obj_Optional_Dir             Name_Statement_Func     */
09655          1442,  /* Obj_Optional_Dir             Name_Construct          */
09656          1442,  /* Obj_Optional_Dir             Name_Intrinsic_Func     */
09657          1442,  /* Obj_Optional_Dir             Name_Intrinsic_Subr     */
09658          1442,  /* Obj_Optional_Dir             Name_Module             */
09659             0,  /* Obj_Optional_Dir             Name_Blockdata          */
09660          1442,  /* Obj_Optional_Dir             Name_Program            */
09661             0,  /* Obj_Optional_Dir             Name_Function           */
09662             0,  /* Obj_Optional_Dir             Name_Curr_Func          */
09663             0,  /* Obj_Optional_Dir             Name_Curr_Subr          */
09664          1442,  /* Obj_Optional_Dir             Name_Internal_Func      */
09665          1442   /* Obj_Optional_Dir             Name_Internal_Subr      */
09666         },
09667 
09668         /************************ Obj_Name ******************************/
09669         /* This is declared using the !DIR$ C(funcname) directive.      */
09670         /****************************************************************/
09671 
09672         {1442,  /* Obj_Name                     Name_Variable           */
09673          1442,  /* Obj_Name                     Name_Common_Obj         */
09674          1442,  /* Obj_Name                     Name_Cri_Pointer        */
09675          1442,  /* Obj_Name                     Name_Cri_Pointee        */
09676          1442,  /* Obj_Name                     Name_Cri_Ch_Pointee     */
09677          1442,  /* Obj_Name                     Name_Func_Result        */
09678             0,  /* Obj_Name                     Name_Dummy_Arg          */
09679          1442,  /* Obj_Name                     Name_Module_Proc        */
09680          1442,  /* Obj_Name                     Name_Derived_Type       */
09681          1442,  /* Obj_Name                     Name_Generic_Interface  */
09682          1442,  /* Obj_Name                     Name_Namelist_Group     */
09683          1442,  /* Obj_Name                     Name_Namelist_Group_Obj */
09684          1442,  /* Obj_Name                     Name_Statement_Func     */
09685          1442,  /* Obj_Name                     Name_Construct          */
09686          1442,  /* Obj_Name                     Name_Intrinsic_Func     */
09687          1442,  /* Obj_Name                     Name_Intrinsic_Subr     */
09688          1442,  /* Obj_Name                     Name_Module             */
09689          1442,  /* Obj_Name                     Name_Blockdata          */
09690          1442,  /* Obj_Name                     Name_Program            */
09691             0,  /* Obj_Name                     Name_Function           */
09692          1442,  /* Obj_Name                     Name_Curr_Func          */
09693          1442,  /* Obj_Name                     Name_Curr_Subr          */
09694          1442,  /* Obj_Name                     Name_Internal_Func      */
09695          1442   /* Obj_Name                     Name_Internal_Subr      */
09696         },
09697 
09698         /************************ Obj_Cri_Ptr ***************************/
09699         /* From cft77's documentation - A Cray pointer cannot be a      */
09700         /* constant, an array, a statement function or an external      */
09701         /* function.    It can be in common and be a darg.      A Cray  */
09702         /* pointer is considered to be a data type.                     */
09703         /****************************************************************/
09704 
09705         {   0,  /* Obj_Cri_Ptr                  Name_Variable           */
09706             0,  /* Obj_Cri_Ptr                  Name_Common_Obj         */
09707             0,  /* Obj_Cri_Ptr                  Name_Cri_Pointer        */
09708           553,  /* Obj_Cri_Ptr                  Name_Cri_Pointee        */
09709           553,  /* Obj_Cri_Ptr                  Name_Cri_Ch_Pointee     */
09710           553,  /* Obj_Cri_Ptr                  Name_Func_Result        */
09711             0,  /* Obj_Cri_Ptr                  Name_Dummy_Arg          */
09712           553,  /* Obj_Cri_Ptr                  Name_Module_Proc        */
09713           553,  /* Obj_Cri_Ptr                  Name_Derived_Type       */
09714           553,  /* Obj_Cri_Ptr                  Name_Generic_Interface  */
09715           553,  /* Obj_Cri_Ptr                  Name_Namelist_Group     */
09716             0,  /* Obj_Cri_Ptr                  Name_Namelist_Group_Obj */
09717           553,  /* Obj_Cri_Ptr                  Name_Statement_Func     */
09718           553,  /* Obj_Cri_Ptr                  Name_Construct          */
09719           553,  /* Obj_Cri_Ptr                  Name_Intrinsic_Func     */
09720           553,  /* Obj_Cri_Ptr                  Name_Intrinsic_Subr     */
09721           553,  /* Obj_Cri_Ptr                  Name_Module             */
09722           553,  /* Obj_Cri_Ptr                  Name_Blockdata          */
09723           553,  /* Obj_Cri_Ptr                  Name_Program            */
09724           553,  /* Obj_Cri_Ptr                  Name_Function           */
09725           553,  /* Obj_Cri_Ptr                  Name_Curr_Func          */
09726           553,  /* Obj_Cri_Ptr                  Name_Curr_Subr          */
09727           553,  /* Obj_Cri_Ptr                  Name_Internal_Func      */
09728           553   /* Obj_Cri_Ptr                  Name_Internal_Subr      */
09729         },
09730 
09731 
09732         /************************ Obj_Cri_Pointee ***********************/
09733         /* From cft77's documentation - A Cray pointee cannot be a      */
09734         /* constant, in common, saved, data initialized or equivalenced */
09735         /* It cannot be a darg or a function result.                    */
09736         /****************************************************************/
09737 
09738         { 553,  /* Obj_Cri_Pointee              Name_Variable           */
09739           553,  /* Obj_Cri_Pointee              Name_Common_Obj         */
09740           553,  /* Obj_Cri_Pointee              Name_Cri_Pointer        */
09741           553,  /* Obj_Cri_Pointee              Name_Cri_Pointee        */
09742           553,  /* Obj_Cri_Pointee              Name_Cri_Ch_Pointee     */
09743           553,  /* Obj_Cri_Pointee              Name_Func_Result        */
09744           553,  /* Obj_Cri_Pointee              Name_Dummy_Arg          */
09745           553,  /* Obj_Cri_Pointee              Name_Module_Proc        */
09746           553,  /* Obj_Cri_Pointee              Name_Derived_Type       */
09747           553,  /* Obj_Cri_Pointee              Name_Generic_Interface  */
09748           553,  /* Obj_Cri_Pointee              Name_Namelist_Group     */
09749           553,  /* Obj_Cri_Pointee              Name_Namelist_Group_Obj */
09750           553,  /* Obj_Cri_Pointee              Name_Statement_Func     */
09751           553,  /* Obj_Cri_Pointee              Name_Construct          */
09752           553,  /* Obj_Cri_Pointee              Name_Intrinsic_Func     */
09753           553,  /* Obj_Cri_Pointee              Name_Intrinsic_Subr     */
09754           553,  /* Obj_Cri_Pointee              Name_Module             */
09755           553,  /* Obj_Cri_Pointee              Name_Blockdata          */
09756           553,  /* Obj_Cri_Pointee              Name_Program            */
09757           553,  /* Obj_Cri_Pointee              Name_Function           */
09758           553,  /* Obj_Cri_Pointee              Name_Curr_Func          */
09759           553,  /* Obj_Cri_Pointee              Name_Curr_Subr          */
09760           553,  /* Obj_Cri_Pointee              Name_Internal_Func      */
09761           553   /* Obj_Cri_Pointee              Name_Internal_Subr      */
09762         },
09763 
09764 
09765         /********************** Obj_Cri_Ch_Pointee **********************/
09766         /* From cft77's documentation - A Cray pointee cannot be a      */
09767         /* constant, in common, saved, data initialized or equivalenced */
09768         /* It cannot be a darg or a function result.    A character     */
09769         /* pointee cannot be an array.                                  */
09770         /****************************************************************/
09771 
09772         { 553,  /* Obj_Cri_Ch_Pointee           Name_Variable           */
09773           553,  /* Obj_Cri_Ch_Pointee           Name_Common_Obj         */
09774           553,  /* Obj_Cri_Ch_Pointee           Name_Cri_Pointer        */
09775           553,  /* Obj_Cri_Ch_Pointee           Name_Cri_Pointee        */
09776           553,  /* Obj_Cri_Ch_Pointee           Name_Cri_Ch_Pointee     */
09777           553,  /* Obj_Cri_Ch_Pointee           Name_Func_Result        */
09778           553,  /* Obj_Cri_Ch_Pointee           Name_Dummy_Arg          */
09779           553,  /* Obj_Cri_Ch_Pointee           Name_Module_Proc        */
09780           553,  /* Obj_Cri_Ch_Pointee           Name_Derived_Type       */
09781           553,  /* Obj_Cri_Ch_Pointee           Name_Generic_Interface  */
09782           553,  /* Obj_Cri_Ch_Pointee           Name_Namelist_Group     */
09783           553,  /* Obj_Cri_Ch_Pointee           Name_Namelist_Group_Obj */
09784           553,  /* Obj_Cri_Ch_Pointee           Name_Statement_Func     */
09785           553,  /* Obj_Cri_Ch_Pointee           Name_Construct          */
09786           553,  /* Obj_Cri_Ch_Pointee           Name_Intrinsic_Func     */
09787           553,  /* Obj_Cri_Ch_Pointee           Name_Intrinsic_Subr     */
09788           553,  /* Obj_Cri_Ch_Pointee           Name_Module             */
09789           553,  /* Obj_Cri_Ch_Pointee           Name_Blockdata          */
09790           553,  /* Obj_Cri_Ch_Pointee           Name_Program            */
09791           553,  /* Obj_Cri_Ch_Pointee           Name_Function           */
09792           553,  /* Obj_Cri_Ch_Pointee           Name_Curr_Func          */
09793           553,  /* Obj_Cri_Ch_Pointee           Name_Curr_Subr          */
09794           553,  /* Obj_Cri_Ch_Pointee           Name_Internal_Func      */
09795           553   /* Obj_Cri_Ch_Pointee           Name_Internal_Subr      */
09796         },
09797 
09798 
09799         /************************ Obj_Ntry_Func_Result ******************/
09800         /* The result of a Function, specified on an entry statement.   */
09801         /****************************************************************/
09802 
09803         { 553,  /* Obj_Ntry_Func_Result         Name_Variable           */
09804           553,  /* Obj_Ntry_Func_Result         Name_Common_Obj         */
09805           553,  /* Obj_Ntry_Func_Result         Name_Cri_Pointer        */
09806           553,  /* Obj_Ntry_Func_Result         Name_Cri_Pointee        */
09807           553,  /* Obj_Ntry_Func_Result         Name_Cri_Ch_Pointee     */
09808             0,  /* Obj_Ntry_Func_Result         Name_Func_Result        */
09809           553,  /* Obj_Ntry_Func_Result         Name_Dummy_Arg          */
09810           553,  /* Obj_Ntry_Func_Result         Name_Module_Proc        */
09811           553,  /* Obj_Ntry_Func_Result         Name_Derived_Type       */
09812           553,  /* Obj_Ntry_Func_Result         Name_Generic_Interface  */
09813           553,  /* Obj_Ntry_Func_Result         Name_Namelist_Group     */
09814             0,  /* Obj_Ntry_Func_Result         Name_Namelist_Group_Obj */
09815           553,  /* Obj_Ntry_Func_Result         Name_Statement_Func     */
09816           553,  /* Obj_Ntry_Func_Result         Name_Construct          */
09817           553,  /* Obj_Ntry_Func_Result         Name_Intrinsic_Func     */
09818           553,  /* Obj_Ntry_Func_Result         Name_Intrinsic_Subr     */
09819           553,  /* Obj_Ntry_Func_Result         Name_Module             */
09820           553,  /* Obj_Ntry_Func_Result         Name_Blockdata          */
09821           553,  /* Obj_Ntry_Func_Result         Name_Program            */
09822           553,  /* Obj_Ntry_Func_Result         Name_Function           */
09823           553,  /* Obj_Ntry_Func_Result         Name_Curr_Func          */
09824           553,  /* Obj_Ntry_Func_Result         Name_Curr_Subr          */
09825           553,  /* Obj_Ntry_Func_Result         Name_Internal_Func      */
09826           553   /* Obj_Ntry_Func_Result         Name_Internal_Subr      */
09827         },
09828 
09829 
09830         /************************ Obj_Dummy_Arg *************************/
09831         /* The result of a Function, specified on an entry statement.   */
09832         /****************************************************************/
09833 
09834         {   0,  /* Obj_Dummy_Arg                Name_Variable           */
09835           553,  /* Obj_Dummy_Arg                Name_Common_Obj         */
09836                 /* 5.5.2                                                */
09837 
09838             0,  /* Obj_Dummy_Arg                Name_Cri_Pointer        */
09839           553,  /* Obj_Dummy_Arg                Name_Cri_Pointee        */
09840           553,  /* Obj_Dummy_Arg                Name_Cri_Ch_Pointee     */
09841           553,  /* Obj_Dummy_Arg                Name_Func_Result        */
09842             0,  /* Obj_Dummy_Arg                Name_Dummy_Arg          */
09843           553,  /* Obj_Dummy_Arg                Name_Module_Proc        */
09844           553,  /* Obj_Dummy_Arg                Name_Derived_Type       */
09845           553,  /* Obj_Dummy_Arg                Name_Generic_Interface  */
09846           553,  /* Obj_Dummy_Arg                Name_Namelist_Group     */
09847             0,  /* Obj_Dummy_Arg                Name_Namelist_Group_Obj */
09848           553,  /* Obj_Dummy_Arg                Name_Statement_Func     */
09849           553,  /* Obj_Dummy_Arg                Name_Construct          */
09850           553,  /* Obj_Dummy_Arg                Name_Intrinsic_Func     */
09851           553,  /* Obj_Dummy_Arg                Name_Intrinsic_Subr     */
09852           553,  /* Obj_Dummy_Arg                Name_Module             */
09853           553,  /* Obj_Dummy_Arg                Name_Blockdata          */
09854           553,  /* Obj_Dummy_Arg                Name_Program            */
09855             0,  /* Obj_Dummy_Arg                Name_Function           */
09856           553,  /* Obj_Dummy_Arg                Name_Curr_Func          */
09857           553,  /* Obj_Dummy_Arg                Name_Curr_Subr          */
09858           553,  /* Obj_Dummy_Arg                Name_Internal_Func      */
09859           553   /* Obj_Dummy_Arg                Name_Internal_Subr      */
09860         },
09861 
09862 
09863         /************************ Obj_Common_Obj ************************/
09864         /* A common-block object must not be a dummy argument, an       */
09865         /* allocatable array, an automatic object, a function name,     */
09866         /* an entry name or a result name.      (5.5.2)                 */
09867         /* (R549) An object in common is a variable name.               */
09868         /****************************************************************/
09869 
09870         {   0,  /* Obj_Common_Obj               Name_Variable           */
09871           593,  /* Obj_Common_Obj               Name_Common_Obj         */
09872             0,  /* Obj_Common_Obj               Name_Cri_Pointer        */
09873 
09874           553,  /* Obj_Common_Obj               Name_Cri_Pointee        */
09875           553,  /* Obj_Common_Obj               Name_Cri_Ch_Pointee     */
09876                 /* Cray extension                                       */
09877 
09878           553,  /* Obj_Common_Obj               Name_Func_Result        */
09879           553,  /* Obj_Common_Obj               Name_Dummy_Arg          */
09880           553,  /* Obj_Common_Obj               Name_Module_Proc        */
09881           553,  /* Obj_Common_Obj               Name_Derived_Type       */
09882           553,  /* Obj_Common_Obj               Name_Generic_Interface  */
09883           553,  /* Obj_Common_Obj               Name_Namelist_Group     */
09884             0,  /* Obj_Common_Obj               Name_Namelist_Group_Obj */
09885           553,  /* Obj_Common_Obj               Name_Statement_Func     */
09886           553,  /* Obj_Common_Obj               Name_Construct          */
09887           553,  /* Obj_Common_Obj               Name_Intrinsic_Func     */
09888           553,  /* Obj_Common_Obj               Name_Intrinsic_Subr     */
09889           553,  /* Obj_Common_Obj               Name_Module             */
09890           553,  /* Obj_Common_Obj               Name_Blockdata          */
09891           553,  /* Obj_Common_Obj               Name_Program            */
09892           553,  /* Obj_Common_Obj               Name_Function           */
09893           553,  /* Obj_Common_Obj               Name_Curr_Func          */
09894           553,  /* Obj_Common_Obj               Name_Curr_Subr          */
09895           553,  /* Obj_Common_Obj               Name_Internal_Func      */
09896           553   /* Obj_Common_Obj               Name_Internal_Subr      */
09897                 /* 14.1.2                                               */
09898         },
09899 
09900 
09901         /************************ Obj_Namelist_Obj **********************/
09902         /* A namelist object must not be an array dummy argument with   */
09903         /* a non-constant bound, a variable with a non-constant char    */
09904         /* length, an automatic object, a pointer or an allocatable     */
09905         /* array.       (5.4) constraint                                */
09906         /* This must be a variable name.        (R544)                  */
09907         /****************************************************************/
09908 
09909         {   0,  /* Obj_Namelist_Obj             Name_Variable           */
09910             0,  /* Obj_Namelist_Obj             Name_Common_Obj         */
09911             0,  /* Obj_Namelist_Obj             Name_Cri_Pointer        */
09912           553,  /* Obj_Namelist_Obj             Name_Cri_Pointee        */
09913           553,  /* Obj_Namelist_Obj             Name_Cri_Ch_Pointee     */
09914             0,  /* Obj_Namelist_Obj             Name_Func_Result        */
09915             0,  /* Obj_Namelist_Obj             Name_Dummy_Arg          */
09916 
09917           553,  /* Obj_Namelist_Obj             Name_Module_Proc        */
09918           553,  /* Obj_Namelist_Obj             Name_Derived_Type       */
09919           553,  /* Obj_Namelist_Obj             Name_Generic_Interface  */
09920           553,  /* Obj_Namelist_Obj             Name_Namelist_Group     */
09921 
09922             0,  /* Obj_Namelist_Obj             Name_Namelist_Group_Obj */
09923 
09924           553,  /* Obj_Namelist_Obj             Name_Statement_Func     */
09925           553,  /* Obj_Namelist_Obj             Name_Construct          */
09926           553,  /* Obj_Namelist_Obj             Name_Intrinsic_Func     */
09927           553,  /* Obj_Namelist_Obj             Name_Intrinsic_Subr     */
09928           553,  /* Obj_Namelist_Obj             Name_Module             */
09929           553,  /* Obj_Namelist_Obj             Name_Blockdata          */
09930           553,  /* Obj_Namelist_Obj             Name_Program            */
09931           553,  /* Obj_Namelist_Obj             Name_Function           */
09932           553,  /* Obj_Namelist_Obj             Name_Curr_Func          */
09933           553,  /* Obj_Namelist_Obj             Name_Curr_Subr          */
09934           553,  /* Obj_Namelist_Obj             Name_Internal_Func      */
09935           553   /* Obj_Namelist_Obj             Name_Internal_Subr      */
09936                 /* 14.1.2                                               */
09937         },
09938 
09939 
09940         /************************ Obj_Module_Proc ***********************/
09941         /* 12.3.2.1 states that a procedure must not have more than     */
09942         /* one explicit interface in a scoping unit.    12.3.1 states   */
09943         /* that the interface of a module procedure is always an        */
09944         /* explicit interface in a scoping unit.        12.3 defines an */
09945         /* interface as the characteristics of the procedure, its       */
09946         /* dummy arguments and its function result (if a function).     */
09947         /* Since the actual definition of the module procedure is the   */
09948         /* explicit interface, it's characteristics cannot be defined   */
09949         /* outside of the module procedure definition.                  */
09950         /* Also 5.1 states that an entity must not be given any         */
09951         /* attribute more than once in a scoping unit.                  */
09952         /****************************************************************/
09953 
09954         { 553,  /* Obj_Module_Proc              Name_Variable           */
09955           553,  /* Obj_Module_Proc              Name_Common_Obj         */
09956           553,  /* Obj_Module_Proc              Name_Cri_Pointer        */
09957           553,  /* Obj_Module_Proc              Name_Cri_Pointee        */
09958           553,  /* Obj_Module_Proc              Name_Cri_Ch_Pointee     */
09959           553,  /* Obj_Module_Proc              Name_Func_Result        */
09960           553,  /* Obj_Module_Proc              Name_Dummy_Arg          */
09961 
09962             0,  /* Obj_Module_Proc              Name_Module_Proc        */
09963 
09964           553,  /* Obj_Module_Proc              Name_Derived_Type       */
09965                 /* 14.1.2                                               */
09966 
09967           553,  /* Obj_Module_Proc              Name_Generic_Interface  */
09968                 /* 12.3.2.1 discussion - This is legal for the          */
09969                 /* module procedure to be the same name as the          */
09970                 /* current interface block, but not the same as any     */
09971                 /* other interface block.  This is caught by the rtn.   */
09972 
09973           553,  /* Obj_Module_Proc              Name_Namelist_Group     */
09974           553,  /* Obj_Module_Proc              Name_Namelist_Group_Obj */
09975           553,  /* Obj_Module_Proc              Name_Statement_Func     */
09976           553,  /* Obj_Module_Proc              Name_Construct          */
09977             0,  /* Obj_Module_Proc              Name_Intrinsic_Func     */
09978             0,  /* Obj_Module_Proc              Name_Intrinsic_Subr     */
09979           553,  /* Obj_Module_Proc              Name_Module             */
09980           553,  /* Obj_Module_Proc              Name_Blockdata          */
09981           553,  /* Obj_Module_Proc              Name_Program            */
09982           553,  /* Obj_Module_Proc              Name_Function           */
09983           553,  /* Obj_Module_Proc              Name_Curr_Func          */
09984           553,  /* Obj_Module_Proc              Name_Curr_Subr          */
09985           553,  /* Obj_Module_Proc              Name_Internal_Func      */
09986           553   /* Obj_Module_Proc              Name_Internal_Subr      */
09987                 /* 14.1.2                                               */
09988         },
09989 
09990 
09991         /************************ Obj_Derived_Type **********************/
09992         /* By 14.1.2, a derived type cannot be a named variable, a      */
09993         /* named constant, a construct name, a statement function, an   */
09994         /* internal procedure, a dummy procedure, an intrinsic proc,    */
09995         /* a generic identifier or a namelist group name.               */
09996         /****************************************************************/
09997 
09998         {  553, /* Obj_Derived_Type             Name_Variable           */
09999           553,  /* Obj_Derived_Type             Name_Common_Obj         */
10000           553,  /* Obj_Derived_Type             Name_Cri_Pointer        */
10001           553,  /* Obj_Derived_Type             Name_Cri_Pointee        */
10002           553,  /* Obj_Derived_Type             Name_Cri_Ch_Pointee     */
10003           553,  /* Obj_Derived_Type             Name_Func_Result        */
10004           553,  /* Obj_Derived_Type             Name_Dummy_Arg          */
10005           553,  /* Obj_Derived_Type             Name_Module_Proc        */
10006           553,  /* Obj_Derived_Type             Name_Derived_Type       */
10007           553,  /* Obj_Derived_Type             Name_Generic_Interface  */
10008           553,  /* Obj_Derived_Type             Name_Namelist_Group     */
10009           553,  /* Obj_Derived_Type             Name_Namelist_Group_Obj */
10010           553,  /* Obj_Derived_Type             Name_Statement_Func     */
10011           553,  /* Obj_Derived_Type             Name_Construct          */
10012           553,  /* Obj_Derived_Type             Name_Intrinsic_Func     */
10013           553,  /* Obj_Derived_Type             Name_Intrinsic_Subr     */
10014           553,  /* Obj_Derived_Type             Name_Module             */
10015           553,  /* Obj_Derived_Type             Name_Blockdata          */
10016           553,  /* Obj_Derived_Type             Name_Program            */
10017           553,  /* Obj_Derived_Type             Name_Function           */
10018           553,  /* Obj_Derived_Type             Name_Curr_Func          */
10019           553,  /* Obj_Derived_Type             Name_Curr_Subr          */
10020           553,  /* Obj_Derived_Type             Name_Internal_Func      */
10021           553   /* Obj_Derived_Type             Name_Internal_Subr      */
10022                 /* 14.1.2                                               */
10023         },
10024 
10025 
10026         /************************ Obj_Generic_Interface *****************/
10027         /* By 14.1.2, a generic interface cannot be a named variable, a */
10028         /* named constant, a construct name, a statement function, an   */
10029         /* internal procedure, a dummy procedure, an intrinsic proc,    */
10030         /* a derived type or a namelist group name.                     */
10031         /****************************************************************/
10032 
10033         { 553,  /* Obj_Generic_Interface        Name_Variable           */
10034           553,  /* Obj_Generic_Interface        Name_Common_Obj         */
10035           553,  /* Obj_Generic_Interface        Name_Cri_Pointer        */
10036           553,  /* Obj_Generic_Interface        Name_Cri_Pointee        */
10037           553,  /* Obj_Generic_Interface        Name_Cri_Ch_Pointee     */
10038           553,  /* Obj_Generic_Interface        Name_Func_Result        */
10039                 /* 14.1.2                                               */
10040 
10041           553,  /* Obj_Generic_Interface        Name_Dummy_Arg          */
10042                 /* ???? Since they can be the same as functions.        */
10043 
10044             0,  /* Obj_Generic_Interface        Name_Module_Proc        */
10045                 /* 12.3.2.1 discussion                                  */
10046 
10047           553,  /* Obj_Generic_Interface        Name_Derived_Type       */
10048                 /* 14.1.2                                               */
10049 
10050             0,  /* Obj_Generic_Interface        Name_Generic_Interface  */
10051                 /* 12.3.2.1 discussion                                  */
10052 
10053           553,  /* Obj_Generic_Interface        Name_Namelist_Group     */
10054           553,  /* Obj_Generic_Interface        Name_Namelist_Group_Obj */
10055           553,  /* Obj_Generic_Interface        Name_Statement_Func     */
10056           553,  /* Obj_Generic_Interface        Name_Construct          */
10057             0,  /* Obj_Generic_Interface        Name_Intrinsic_Func     */
10058             0,  /* Obj_Generic_Interface        Name_Intrinsic_Subr     */
10059           553,  /* Obj_Generic_Interface        Name_Module             */
10060           553,  /* Obj_Generic_Interface        Name_Blockdata          */
10061           553,  /* Obj_Generic_Interface        Name_Program            */
10062             0,  /* Obj_Generic_Interface        Name_Function           */
10063           553,  /* Obj_Generic_Interface        Name_Curr_Func          */
10064           553,  /* Obj_Generic_Interface        Name_Curr_Subr          */
10065           553,  /* Obj_Generic_Interface        Name_Internal_Func      */
10066           553   /* Obj_Generic_Interface        Name_Internal_Subr      */
10067                 /* 14.1.2                                               */
10068         },
10069 
10070 
10071         /************************ Obj_Namelist_Grp **********************/
10072         /* By 14.1.2, a namelist group cannot be a named variable, a    */
10073         /* named constant, a construct name, a statement function, an   */
10074         /* internal procedure, a dummy procedure, an intrinsic proc,    */
10075         /* a derived type or a generic identifier.                      */
10076         /****************************************************************/
10077 
10078         { 553,  /* Obj_Namelist_Grp             Name_Variable           */
10079           553,  /* Obj_Namelist_Grp             Name_Common_Obj         */
10080           553,  /* Obj_Namelist_Grp             Name_Cri_Pointer        */
10081           553,  /* Obj_Namelist_Grp             Name_Cri_Pointee        */
10082           553,  /* Obj_Namelist_Grp             Name_Cri_Ch_Pointee     */
10083           553,  /* Obj_Namelist_Grp             Name_Func_Result        */
10084           553,  /* Obj_Namelist_Grp             Name_Dummy_Arg          */
10085           553,  /* Obj_Namelist_Grp             Name_Module_Proc        */
10086           553,  /* Obj_Namelist_Grp             Name_Derived_Type       */
10087           553,  /* Obj_Namelist_Grp             Name_Generic_Interface  */
10088                 /* 14.1.2                                               */
10089 
10090             0,  /* Obj_Namelist_Grp             Name_Namelist_Group     */
10091                 /* 5.4 discussion                                       */
10092 
10093           553,  /* Obj_Namelist_Grp             Name_Namelist_Group_Obj */
10094           553,  /* Obj_Namelist_Grp             Name_Statement_Func     */
10095           553,  /* Obj_Namelist_Grp             Name_Construct          */
10096           553,  /* Obj_Namelist_Grp             Name_Intrinsic_Func     */
10097           553,  /* Obj_Namelist_Grp             Name_Intrinsic_Subr     */
10098           553,  /* Obj_Namelist_Grp             Name_Module             */
10099           553,  /* Obj_Namelist_Grp             Name_Blockdata          */
10100           553,  /* Obj_Namelist_Grp             Name_Program            */
10101           553,  /* Obj_Namelist_Grp             Name_Function           */
10102           553,  /* Obj_Namelist_Grp             Name_Curr_Func          */
10103           553,  /* Obj_Namelist_Grp             Name_Curr_Subr          */
10104           553,  /* Obj_Namelist_Grp             Name_Internal_Func      */
10105           553   /* Obj_Namelist_Grp             Name_Internal_Subr      */
10106                 /* 14.1.2                                               */
10107         },
10108 
10109 
10110         /************************ Obj_Stmt_Func *************************/
10111         /* By 14.1.2, a statement function cannot be a named variable,  */
10112         /* a named constant, a construct name, a generic identifier, an */
10113         /* internal procedure, a dummy procedure, an intrinsic proc,    */
10114         /* a derived type or a namelist group.  Also see 12.5.4.        */
10115         /****************************************************************/
10116 
10117         { 553,  /* Obj_Stmt_Func                Name_Variable           */
10118           553,  /* Obj_Stmt_Func                Name_Common_Obj         */
10119           553,  /* Obj_Stmt_Func                Name_Cri_Pointer        */
10120           553,  /* Obj_Stmt_Func                Name_Cri_Pointee        */
10121           553,  /* Obj_Stmt_Func                Name_Cri_Ch_Pointee     */
10122           553,  /* Obj_Stmt_Func                Name_Func_Result        */
10123           553,  /* Obj_Stmt_Func                Name_Dummy_Arg          */
10124           553,  /* Obj_Stmt_Func                Name_Module_Proc        */
10125           553,  /* Obj_Stmt_Func                Name_Derived_Type       */
10126           553,  /* Obj_Stmt_Func                Name_Generic_Interface  */
10127           553,  /* Obj_Stmt_Func                Name_Namelist_Group     */
10128           553,  /* Obj_Stmt_Func                Name_Namelist_Group_Obj */
10129           553,  /* Obj_Stmt_Func                Name_Statement_Func     */
10130           553,  /* Obj_Stmt_Func                Name_Construct          */
10131           553,  /* Obj_Stmt_Func                Name_Intrinsic_Func     */
10132           553,  /* Obj_Stmt_Func                Name_Intrinsic_Subr     */
10133           553,  /* Obj_Stmt_Func                Name_Module             */
10134           553,  /* Obj_Stmt_Func                Name_Blockdata          */
10135           553,  /* Obj_Stmt_Func                Name_Program            */
10136           553,  /* Obj_Stmt_Func                Name_Function           */
10137           553,  /* Obj_Stmt_Func                Name_Curr_Func          */
10138           553,  /* Obj_Stmt_Func                Name_Curr_Subr          */
10139           553,  /* Obj_Stmt_Func                Name_Internal_Func      */
10140           553   /* Obj_Stmt_Func                Name_Internal_Subr      */
10141                 /* 14.1.2                                               */
10142         },
10143 
10144 
10145         /************************ Obj_Construct *************************/
10146         /* By 14.1.2, a construct cannot be a named variable, a named   */
10147         /* constant, a statement function, a generic identifier, an     */
10148         /* internal procedure, a dummy procedure, an intrinsic proc,    */
10149         /* a derived type or a namelist group.                          */
10150         /****************************************************************/
10151 
10152         { 553,  /* Obj_Construct                Name_Variable           */
10153           553,  /* Obj_Construct                Name_Common_Obj         */
10154           553,  /* Obj_Construct                Name_Cri_Pointer        */
10155           553,  /* Obj_Construct                Name_Cri_Pointee        */
10156           553,  /* Obj_Construct                Name_Cri_Ch_Pointee     */
10157           553,  /* Obj_Construct                Name_Func_Result        */
10158           553,  /* Obj_Construct                Name_Dummy_Arg          */
10159           553,  /* Obj_Construct                Name_Module_Proc        */
10160           553,  /* Obj_Construct                Name_Derived_Type       */
10161           553,  /* Obj_Construct                Name_Generic_Interface  */
10162           553,  /* Obj_Construct                Name_Namelist_Group     */
10163           553,  /* Obj_Construct                Name_Namelist_Group_Obj */
10164           553,  /* Obj_Construct                Name_Statement_Func     */
10165           553,  /* Obj_Construct                Name_Construct          */
10166           553,  /* Obj_Construct                Name_Intrinsic_Func     */
10167           553,  /* Obj_Construct                Name_Intrinsic_Subr     */
10168           553,  /* Obj_Construct                Name_Module             */
10169           553,  /* Obj_Construct                Name_Blockdata          */
10170           553,  /* Obj_Construct                Name_Program            */
10171           553,  /* Obj_Construct                Name_Function           */
10172           553,  /* Obj_Construct                Name_Curr_Func          */
10173           553,  /* Obj_Construct                Name_Curr_Subr          */
10174           553,  /* Obj_Construct                Name_Internal_Func      */
10175           553   /* Obj_Construct                Name_Internal_Subr      */
10176                 /* 14.1.2                                               */
10177         },
10178 
10179 
10180         /************************ Obj_Entry_Func ************************/
10181         /* This is the name on an ENTRY statement in an external        */
10182         /* FUNCTION.    This allows anything legal on a result name to  */
10183         /* be specified here.   Then if a different result name is      */
10184         /* specified errors are issued at that time saying to use the   */
10185         /* result name, not the function name to declare type, shape,   */
10186         /* target or pointer.                                           */
10187         /****************************************************************/
10188 
10189         { 553,  /* Obj_Entry_Func               Name_Variable           */
10190           553,  /* Obj_Entry_Func               Name_Common_Obj         */
10191           553,  /* Obj_Entry_Func               Name_Cri_Pointer        */
10192           553,  /* Obj_Entry_Func               Name_Cri_Pointee        */
10193           553,  /* Obj_Entry_Func               Name_Cri_Ch_Pointee     */
10194           553,  /* Obj_Entry_Func               Name_Func_Result        */
10195           553,  /* Obj_Entry_Func               Name_Dummy_Arg          */
10196           553,  /* Obj_Entry_Func               Name_Module_Proc        */
10197           553,  /* Obj_Entry_Func               Name_Derived_Type       */
10198           553,  /* Obj_Entry_Func               Name_Generic_Interface  */
10199           553,  /* Obj_Entry_Func               Name_Namelist_Group     */
10200           553,  /* Obj_Entry_Func               Name_Namelist_Group_Obj */
10201           553,  /* Obj_Entry_Func               Name_Statement_Func     */
10202           553,  /* Obj_Entry_Func               Name_Construct          */
10203           553,  /* Obj_Entry_Func               Name_Intrinsic_Func     */
10204           553,  /* Obj_Entry_Func               Name_Intrinsic_Subr     */
10205           553,  /* Obj_Entry_Func               Name_Module             */
10206           553,  /* Obj_Entry_Func               Name_Blockdata          */
10207           553,  /* Obj_Entry_Func               Name_Program            */
10208             0,  /* Obj_Entry_Func               Name_Function           */
10209           553,  /* Obj_Entry_Func               Name_Curr_Func          */
10210           553,  /* Obj_Entry_Func               Name_Curr_Subr          */
10211           553,  /* Obj_Entry_Func               Name_Internal_Func      */
10212           553   /* Obj_Entry_Func               Name_Internal_Subr      */
10213                 /* 14.1.2                                               */
10214         },
10215 
10216 
10217         /************************ Obj_Entry_Subr ************************/
10218         /* This is the name on an ENTRY statement in an external        */
10219         /* SUBROUTINE.  One just knows that a SUBROUTINE can't have     */
10220         /* a type, or a shape, or much of anything else.        (2.2.3) */
10221         /****************************************************************/
10222 
10223         { 553,  /* Obj_Entry_Subr               Name_Variable           */
10224           553,  /* Obj_Entry_Subr               Name_Common_Obj         */
10225           553,  /* Obj_Entry_Subr               Name_Cri_Pointer        */
10226           553,  /* Obj_Entry_Subr               Name_Cri_Pointee        */
10227           553,  /* Obj_Entry_Subr               Name_Cri_Ch_Pointee     */
10228           553,  /* Obj_Entry_Subr               Name_Func_Result        */
10229           553,  /* Obj_Entry_Subr               Name_Dummy_Arg          */
10230           553,  /* Obj_Entry_Subr               Name_Module_Proc        */
10231           553,  /* Obj_Entry_Subr               Name_Derived_Type       */
10232           553,  /* Obj_Entry_Subr               Name_Generic_Interface  */
10233           553,  /* Obj_Entry_Subr               Name_Namelist_Group     */
10234           553,  /* Obj_Entry_Subr               Name_Namelist_Group_Obj */
10235           553,  /* Obj_Entry_Subr               Name_Statement_Func     */
10236           553,  /* Obj_Entry_Subr               Name_Construct          */
10237           553,  /* Obj_Entry_Subr               Name_Intrinsic_Func     */
10238           553,  /* Obj_Entry_Subr               Name_Intrinsic_Subr     */
10239           553,  /* Obj_Entry_Subr               Name_Module             */
10240           553,  /* Obj_Entry_Subr               Name_Blockdata          */
10241           553,  /* Obj_Entry_Subr               Name_Program            */
10242           553,  /* Obj_Entry_Subr               Name_Function           */
10243           553,  /* Obj_Entry_Subr               Name_Curr_Func          */
10244           553,  /* Obj_Entry_Subr               Name_Curr_Subr          */
10245           553,  /* Obj_Entry_Subr               Name_Internal_Func      */
10246           553   /* Obj_Entry_Subr               Name_Internal_Subr      */
10247                 /* 14.1.2                                               */
10248         },
10249 
10250 
10251         /************************ Obj_Intern_Func ***********************/
10252         /* This is the name on the FUNCTION statement for an internal   */
10253         /* FUNCTION.    12.3.2.1 states that a procedure must not have  */
10254         /* more than one explicit interface in a scoping unit.  12.3.1  */
10255         /* states that the interface of an internal procedure is always */
10256         /* an explicit interface in a scoping unit.     12.3 defines an */
10257         /* interface as the characteristics of the procedure, its       */
10258         /* dummy arguments and its function result (if a function).     */
10259         /* Since the actual definition of the internal procedure is the */
10260         /* explicit interface, it's characteristics cannot be defined   */
10261         /* outside of the internal procedure definition.                */
10262         /* Also 5.1 states that an entity must not be given any         */
10263         /* attribute more than once in a scoping unit.                  */
10264         /* Because of forward referencing, what looks like an           */
10265         /* intrinsic may be an internal function.                       */
10266         /****************************************************************/
10267 
10268         { 553,  /* Obj_Intern_Func              Name_Variable           */
10269           553,  /* Obj_Intern_Func              Name_Common_Obj         */
10270           553,  /* Obj_Intern_Func              Name_Cri_Pointer        */
10271           553,  /* Obj_Intern_Func              Name_Cri_Pointee        */
10272           553,  /* Obj_Intern_Func              Name_Cri_Ch_Pointee     */
10273           553,  /* Obj_Intern_Func              Name_Func_Result        */
10274           553,  /* Obj_Intern_Func              Name_Dummy_Arg          */
10275           553,  /* Obj_Intern_Func              Name_Module_Proc        */
10276           553,  /* Obj_Intern_Func              Name_Derived_Type       */
10277           553,  /* Obj_Intern_Func              Name_Generic_Interface  */
10278           553,  /* Obj_Intern_Func              Name_Namelist_Group     */
10279           553,  /* Obj_Intern_Func              Name_Namelist_Group_Obj */
10280           553,  /* Obj_Intern_Func              Name_Statement_Func     */
10281           553,  /* Obj_Intern_Func              Name_Construct          */
10282             0,  /* Obj_Intern_Func              Name_Intrinsic_Func     */
10283             0,  /* Obj_Intern_Func              Name_Intrinsic_Subr     */
10284           553,  /* Obj_Intern_Func              Name_Module             */
10285           553,  /* Obj_Intern_Func              Name_Blockdata          */
10286           553,  /* Obj_Intern_Func              Name_Program            */
10287             0,  /* Obj_Intern_Func              Name_Function           */
10288           553,  /* Obj_Intern_Func              Name_Curr_Func          */
10289           553,  /* Obj_Intern_Func              Name_Curr_Subr          */
10290           553,  /* Obj_Intern_Func              Name_Internal_Func      */
10291           553   /* Obj_Intern_Func              Name_Internal_Subr      */
10292                 /* 14.1.2                                               */
10293         },
10294 
10295 
10296         /************************ Obj_Intern_Subr ***********************/
10297         /* This is the name on a SUBROUTINE statement for an internal   */
10298         /* SUBROUTINE.  One just knows that a SUBROUTINE can't have     */
10299         /* a type, or a shape, or much of anything else.        (2.2.3) */
10300         /* Because of forward referencing, what looks like an           */
10301         /* intrinsic may be an internal subroutine.                     */
10302         /****************************************************************/
10303 
10304         { 553,  /* Obj_Intern_Subr              Name_Variable           */
10305           553,  /* Obj_Intern_Subr              Name_Common_Obj         */
10306           553,  /* Obj_Intern_Subr              Name_Cri_Pointer        */
10307           553,  /* Obj_Intern_Subr              Name_Cri_Pointee        */
10308           553,  /* Obj_Intern_Subr              Name_Cri_Ch_Pointee     */
10309           553,  /* Obj_Intern_Subr              Name_Func_Result        */
10310           553,  /* Obj_Intern_Subr              Name_Dummy_Arg          */
10311           553,  /* Obj_Intern_Subr              Name_Module_Proc        */
10312           553,  /* Obj_Intern_Subr              Name_Derived_Type       */
10313           553,  /* Obj_Intern_Subr              Name_Generic_Interface  */
10314           553,  /* Obj_Intern_Subr              Name_Namelist_Group     */
10315           553,  /* Obj_Intern_Subr              Name_Namelist_Group_Obj */
10316           553,  /* Obj_Intern_Subr              Name_Statement_Func     */
10317           553,  /* Obj_Intern_Subr              Name_Construct          */
10318             0,  /* Obj_Intern_Subr              Name_Intrinsic_Func     */
10319             0,  /* Obj_Intern_Subr              Name_Intrinsic_Subr     */
10320           553,  /* Obj_Intern_Subr              Name_Module             */
10321           553,  /* Obj_Intern_Subr              Name_Blockdata          */
10322           553,  /* Obj_Intern_Subr              Name_Program            */
10323           553,  /* Obj_Intern_Subr              Name_Function           */
10324           553,  /* Obj_Intern_Subr              Name_Curr_Func          */
10325           553,  /* Obj_Intern_Subr              Name_Curr_Subr          */
10326           553,  /* Obj_Intern_Subr              Name_Internal_Func      */
10327           553   /* Obj_Intern_Subr              Name_Internal_Subr      */
10328                 /* 14.1.2                                               */
10329         },
10330 
10331 
10332         /************************ Obj_Module_Func ***********************/
10333         /* This is the name on the FUNCTION statement for a module      */
10334         /* FUNCTION.    12.3.2.1 states that a procedure must not have  */
10335         /* more than one explicit interface in a scoping unit.  12.3.1  */
10336         /* states that the interface of a module procedure is always an */
10337         /* explicit interface in a scoping unit.        12.3 defines an */
10338         /* interface as the characteristics of the procedure, its       */
10339         /* dummy arguments and its function result (if a function).     */
10340         /* Since the actual definition of the module procedure is the   */
10341         /* explicit interface, it's characteristics cannot be defined   */
10342         /* outside of the module procedure definition.                  */
10343         /* Also 5.1 states that an entity must not be given any         */
10344         /* attribute more than once in a scoping unit.                  */
10345         /* Because of forward referencing, what looks like an           */
10346         /* intrinsic may be a module function.                          */
10347         /****************************************************************/
10348 
10349         { 553,  /* Obj_Module_Func              Name_Variable           */
10350           553,  /* Obj_Module_Func              Name_Common_Obj         */
10351           553,  /* Obj_Module_Func              Name_Cri_Pointer        */
10352           553,  /* Obj_Module_Func              Name_Cri_Pointee        */
10353           553,  /* Obj_Module_Func              Name_Cri_Ch_Pointee     */
10354           553,  /* Obj_Module_Func              Name_Func_Result        */
10355           553,  /* Obj_Module_Func              Name_Dummy_Arg          */
10356             0,  /* Obj_Module_Func              Name_Module_Proc        */
10357                 /* This is allowed, because this is actually defining   */
10358                 /* the explicit interface for the module procedure.     */
10359 
10360           553,  /* Obj_Module_Func              Name_Derived_Type       */
10361 
10362             0,  /* Obj_Module_Func              Name_Generic_Interface  */
10363                 /* 12.3.2.1                                             */
10364 
10365           553,  /* Obj_Module_Func              Name_Namelist_Group     */
10366           553,  /* Obj_Module_Func              Name_Namelist_Group_Obj */
10367           553,  /* Obj_Module_Func              Name_Statement_Func     */
10368           553,  /* Obj_Module_Func              Name_Construct          */
10369             0,  /* Obj_Module_Func              Name_Intrinsic_Func     */
10370             0,  /* Obj_Module_Func              Name_Intrinsic_Subr     */
10371           553,  /* Obj_Module_Func              Name_Module             */
10372           553,  /* Obj_Module_Func              Name_Blockdata          */
10373           553,  /* Obj_Module_Func              Name_Program            */
10374             0,  /* Obj_Module_Func              Name_Function           */
10375           553,  /* Obj_Module_Func              Name_Curr_Func          */
10376           553,  /* Obj_Module_Func              Name_Curr_Subr          */
10377           553,  /* Obj_Module_Func              Name_Internal_Func      */
10378           553   /* Obj_Module_Func              Name_Internal_Subr      */
10379                 /* 14.1.2                                               */
10380         },
10381 
10382         /************************ Obj_Module_Subr ***********************/
10383         /* This is the name on a SUBROUTINE statement for a module      */
10384         /* SUBROUTINE.  One just knows that a SUBROUTINE can't have     */
10385         /* a type, or a shape, or much of anything else.        (2.2.3) */
10386         /* Because of forward referencing, what looks like an           */
10387         /* intrinsic may be a module subroutine.                        */
10388         /****************************************************************/
10389 
10390         { 553,  /* Obj_Module_Subr              Name_Variable           */
10391           553,  /* Obj_Module_Subr              Name_Common_Obj         */
10392           553,  /* Obj_Module_Subr              Name_Cri_Pointer        */
10393           553,  /* Obj_Module_Subr              Name_Cri_Pointee        */
10394           553,  /* Obj_Module_Subr              Name_Cri_Ch_Pointee     */
10395           553,  /* Obj_Module_Subr              Name_Func_Result        */
10396           553,  /* Obj_Module_Subr              Name_Dummy_Arg          */
10397             0,  /* Obj_Module_Subr              Name_Module_Proc        */
10398                 /* This is allowed, because this is actually defining   */
10399                 /* the explicit interface for the module procedure.     */
10400 
10401           553,  /* Obj_Module_Subr              Name_Derived_Type       */
10402 
10403             0,  /* Obj_Module_Subr              Name_Generic_Interface  */
10404                 /* 12.3.2.1                                             */
10405 
10406           553,  /* Obj_Module_Subr              Name_Namelist_Group     */
10407           553,  /* Obj_Module_Subr              Name_Namelist_Group_Obj */
10408           553,  /* Obj_Module_Subr              Name_Statement_Func     */
10409           553,  /* Obj_Module_Subr              Name_Construct          */
10410             0,  /* Obj_Module_Subr              Name_Intrinsic_Func     */
10411             0,  /* Obj_Module_Subr              Name_Intrinsic_Subr     */
10412           553,  /* Obj_Module_Subr              Name_Module             */
10413           553,  /* Obj_Module_Subr              Name_Blockdata          */
10414           553,  /* Obj_Module_Subr              Name_Program            */
10415           553,  /* Obj_Module_Subr              Name_Function           */
10416           553,  /* Obj_Module_Subr              Name_Curr_Func          */
10417           553,  /* Obj_Module_Subr              Name_Curr_Subr          */
10418           553,  /* Obj_Module_Subr              Name_Internal_Func      */
10419           553   /* Obj_Module_Subr              Name_Internal_Subr      */
10420                 /* 14.1.2                                               */
10421         },
10422 
10423         /************************ Obj_Sf_Darg ***************************/
10424         /* This is the dummy argument used in the statement function    */
10425         /* definition.  It is defined in 5.1.1.5 and 12.5.4.            */
10426         /****************************************************************/
10427 
10428         {   0,  /* Obj_Sf_Darg                  Name_Variable           */
10429             0,  /* Obj_Sf_Darg                  Name_Common_Obj         */
10430           553,  /* Obj_Sf_Darg                  Name_Cri_Pointer        */
10431             0,  /* Obj_Sf_Darg                  Name_Cri_Pointee        */
10432           553,  /* Obj_Sf_Darg                  Name_Cri_Ch_Pointee     */
10433             0,  /* Obj_Sf_Darg                  Name_Func_Result        */
10434             0,  /* Obj_Sf_Darg                  Name_Dummy_Arg          */
10435           553,  /* Obj_Sf_Darg                  Name_Module_Proc        */
10436           553,  /* Obj_Sf_Darg                  Name_Derived_Type       */
10437           553,  /* Obj_Sf_Darg                  Name_Generic_Interface  */
10438           553,  /* Obj_Sf_Darg                  Name_Namelist_Group     */
10439             0,  /* Obj_Sf_Darg                  Name_Namelist_Group_Obj */
10440           553,  /* Obj_Sf_Darg                  Name_Statement_Func     */
10441           553,  /* Obj_Sf_Darg                  Name_Construct          */
10442           553,  /* Obj_Sf_Darg                  Name_Intrinsic_Func     */
10443           553,  /* Obj_Sf_Darg                  Name_Intrinsic_Subr     */
10444           553,  /* Obj_Sf_Darg                  Name_Module             */
10445           553,  /* Obj_Sf_Darg                  Name_Blockdata          */
10446           553,  /* Obj_Sf_Darg                  Name_Program            */
10447           553,  /* Obj_Sf_Darg                  Name_Function           */
10448           553,  /* Obj_Sf_Darg                  Name_Curr_Func          */
10449           553,  /* Obj_Sf_Darg                  Name_Curr_Subr          */
10450           553,  /* Obj_Sf_Darg                  Name_Internal_Func      */
10451           553   /* Obj_Sf_Darg                  Name_Internal_Subr      */
10452         },
10453 
10454         /************************ Obj_Sf_Actual_Arg *********************/
10455         /* This is the actual argument used when a statement function   */
10456         /* is referenced.       It is defined in 5.1.1.5 and 12.5.4.    */
10457         /****************************************************************/
10458 
10459         {   0,  /* Obj_Sf_Actual_Arg            Name_Variable           */
10460             0,  /* Obj_Sf_Actual_Arg            Name_Common_Obj         */
10461             0,  /* Obj_Sf_Actual_Arg            Name_Cri_Pointer        */
10462             0,  /* Obj_Sf_Actual_Arg            Name_Cri_Pointee        */
10463             0,  /* Obj_Sf_Actual_Arg            Name_Cri_Ch_Pointee     */
10464             0,  /* Obj_Sf_Actual_Arg            Name_Func_Result        */
10465             0,  /* Obj_Sf_Actual_Arg            Name_Dummy_Arg          */
10466           760,  /* Obj_Sf_Actual_Arg            Name_Module_Proc        */
10467           760,  /* Obj_Sf_Actual_Arg            Name_Derived_Type       */
10468           760,  /* Obj_Sf_Actual_Arg            Name_Generic_Interface  */
10469           760,  /* Obj_Sf_Actual_Arg            Name_Namelist_Group     */
10470             0,  /* Obj_Sf_Actual_Arg            Name_Namelist_Group_Obj */
10471           760,  /* Obj_Sf_Actual_Arg            Name_Statement_Func     */
10472           760,  /* Obj_Sf_Actual_Arg            Name_Construct          */
10473           760,  /* Obj_Sf_Actual_Arg            Name_Intrinsic_Func     */
10474           760,  /* Obj_Sf_Actual_Arg            Name_Intrinsic_Subr     */
10475           760,  /* Obj_Sf_Actual_Arg            Name_Module             */
10476           760,  /* Obj_Sf_Actual_Arg            Name_Blockdata          */
10477           760,  /* Obj_Sf_Actual_Arg            Name_Program            */
10478           760,  /* Obj_Sf_Actual_Arg            Name_Function           */
10479           760,  /* Obj_Sf_Actual_Arg            Name_Curr_Func          */
10480           760,  /* Obj_Sf_Actual_Arg            Name_Curr_Subr          */
10481           760,  /* Obj_Sf_Actual_Arg            Name_Internal_Func      */
10482           760   /* Obj_Sf_Actual_Arg            Name_Internal_Subr      */
10483         },
10484 
10485 
10486         /************************ Obj_Var_Len_Ch ************************/
10487         /* This is a variable length character (automatic or            */
10488         /* adjustable). This is not called until the length has been    */
10489         /* resolved at the end of pass1.  If the length resolves to a   */
10490         /* constant, fnd_semantic_err is not called.    If it resolves  */
10491         /* to a non-constant, fnd_semantic_err is called with this.     */
10492         /* (5.1 discussion)     The specification-expr of a type-param- */
10493         /* value may be a nonconstant expression provided the           */
10494         /* specification expression is in an interface body or in the   */
10495         /* specification part of a subprogram.  If the data object      */
10496         /* being declared depends on the value of such a nonconstant    */
10497         /* expression and is not a dummy argument, such an object is    */
10498         /* called an automatic data object.  An automatic data object   */
10499         /* must not appear in a SAVE or DATA statement nor be declared  */
10500         /* with a SAVE attribute nor be initially defined by an =       */
10501         /* initialization-expr.                                         */
10502         /****************************************************************/
10503 
10504         {    0, /* Obj_Var_Len_Ch               Name_Variable           */
10505 
10506           577,  /* Obj_Var_Len_Ch               Name_Common_Obj         */
10507                 /*   5.5.2                                              */
10508 
10509           577,  /* Obj_Var_Len_Ch               Name_Cri_Pointer        */
10510 # if defined(_EXTENDED_CRI_CHAR_POINTER)
10511             0,  /* Obj_Var_Len_Ch               Name_Cri_Pointee        */
10512             0,  /* Obj_Var_Len_Ch               Name_Cri_Ch_Pointee     */
10513 # else
10514           577,  /* Obj_Var_Len_Ch               Name_Cri_Pointee        */
10515           577,  /* Obj_Var_Len_Ch               Name_Cri_Ch_Pointee     */
10516 # endif
10517                 /* Cray extensions                                      */
10518 
10519             0,  /* Obj_Var_Len_Ch               Name_Func_Result        */
10520             0,  /* Obj_Var_Len_Ch               Name_Dummy_Arg          */
10521 
10522           577,  /* Obj_Var_Len_Ch               Name_Module_Proc        */
10523                 /* 12.3.1 says that a module procedure has an explicit  */
10524                 /* interface.   12.3.2.1 says that a procedure must not */
10525                 /* have more than one explicit specific interface in    */
10526                 /* a given scoping unit.  12.3 details what is in an    */
10527                 /* interface.                                           */
10528 
10529           577,  /* Obj_Var_Len_Ch               Name_Derived_Type       */
10530           577,  /* Obj_Var_Len_Ch               Name_Generic_Interface  */
10531 
10532           577,  /* Obj_Var_Len_Ch               Name_Namelist_Group     */
10533                 /* 14.1.2                                               */
10534 
10535           577,  /* Obj_Var_Len_Ch               Name_Namelist_Group_Obj */
10536                 /*   5.4                                                */
10537 
10538           577,  /* Obj_Var_Len_Ch               Name_Statement_Func     */
10539                 /* 12.  5.4 constraint - Must be fixed length character.*/
10540 
10541           577,  /* Obj_Var_Len_Ch               Name_Construct          */
10542                 /* 14.1.2                                               */
10543 
10544             0,  /* Obj_Var_Len_Ch               Name_Intrinsic_Func     */
10545           577,  /* Obj_Var_Len_Ch               Name_Intrinsic_Subr     */
10546 
10547           577,  /* Obj_Var_Len_Ch               Name_Module             */
10548           577,  /* Obj_Var_Len_Ch               Name_Blockdata          */
10549           577,  /* Obj_Var_Len_Ch               Name_Program            */
10550                 /* 14.1.2                                               */
10551 
10552             0,  /* Obj_Var_Len_Ch               Name_Function           */
10553             0,  /* Obj_Var_Len_Ch               Name_Curr_Func          */
10554 
10555           577,  /* Obj_Var_Len_Ch               Name_Curr_Subr          */
10556           577,  /* Obj_Var_Len_Ch               Name_Internal_Func      */
10557           577   /* Obj_Var_Len_Ch               Name_Internal_Subr      */
10558                 /* 14.1.2                                               */
10559         },
10560 
10561 
10562         /************************ Obj_Var_Len_Arr ***********************/
10563         /* This is an explicit-shape array.     It can be adjustable or */
10564         /* automatic.   It is not known that this is a variable length  */
10565         /* array until the end of pass1.  These originally look like    */
10566         /* an explicit shape array with unknown size.                   */
10567         /* This must be a dummy argument, a function result, or an      */
10568         /* automatic object.                                            */
10569         /****************************************************************/
10570 
10571         {   0,  /* Obj_Var_Len_Arr              Name_Variable           */
10572           583,  /* Obj_Var_Len_Arr              Name_Common_Obj         */
10573                 /*   5.5.2                                              */
10574           583,  /* Obj_Var_Len_Arr              Name_Cri_Pointer        */
10575                 /* Cray extension - illegal to be an array.             */
10576 
10577             0,  /* Obj_Var_Len_Arr              Name_Cri_Pointee        */
10578 # if defined(_EXTENDED_CRI_CHAR_POINTER)
10579             0,  /* Obj_Var_Len_Arr              Name_Cri_Ch_Pointee     */
10580 # else
10581           583,  /* Obj_Var_Len_Arr              Name_Cri_Ch_Pointee     */
10582                 /* Cray extension - illegal to be an array.             */
10583 # endif
10584                  
10585             0,  /* Obj_Var_Len_Arr              Name_Func_Result        */
10586             0,  /* Obj_Var_Len_Arr              Name_Dummy_Arg          */
10587           583,  /* Obj_Var_Len_Arr              Name_Module_Proc        */
10588                 /* 12.3.1 says that a module procedure has an explicit  */
10589                 /* interface.   12.3.2.1 says that a procedure must not */
10590                 /* have more than one explicit specific interface in    */
10591                 /* a given scoping unit.  12.3 details what is in an    */
10592                 /* interface.                                           */
10593 
10594           583,  /* Obj_Var_Len_Arr              Name_Derived_Type       */
10595           583,  /* Obj_Var_Len_Arr              Name_Generic_Interface  */
10596           583,  /* Obj_Var_Len_Arr              Name_Namelist_Group     */
10597                 /* 14.1.2                                               */
10598 
10599           583,  /* Obj_Var_Len_Arr              Name_Namelist_Group_Obj */
10600                 /*   5.4                                                */
10601 
10602           583,  /* Obj_Var_Len_Arr              Name_Statement_Func     */
10603                 /* 12.  5.4 constraint - Must be scalar.                */
10604 
10605           583,  /* Obj_Var_Len_Arr              Name_Construct          */
10606           583,  /* Obj_Var_Len_Arr              Name_Intrinsic_Func     */
10607           583,  /* Obj_Var_Len_Arr              Name_Intrinsic_Subr     */
10608           583,  /* Obj_Var_Len_Arr              Name_Module             */
10609           583,  /* Obj_Var_Len_Arr              Name_Blockdata          */
10610           583,  /* Obj_Var_Len_Arr              Name_Program            */
10611                 /* 14.1.2                                               */
10612 
10613             0,  /* Obj_Var_Len_Arr              Name_Function           */
10614             0,  /* Obj_Var_Len_Arr              Name_Curr_Func          */
10615 
10616           583,  /* Obj_Var_Len_Arr              Name_Curr_Subr          */
10617           583,  /* Obj_Var_Len_Arr              Name_Internal_Func      */
10618           583   /* Obj_Var_Len_Arr              Name_Internal_Subr      */
10619                 /* 14.1.2                                               */
10620         },
10621 
10622         /************************ Obj_Sym_Constant_Arr ******************/
10623         /* A symbolic constant array is an array where at least one of  */
10624         /* the bounds contains a symbolic constant expression.          */
10625         /* At end pass1, array bounds are resolved.                     */
10626         /* If they are constant, semantic checking is done, if they     */
10627         /* have symbolic constant bounds, fnd_semantic_err is called    */
10628         /* again for the object, using Obj_Sym_Constant_Arr.    There   */
10629         /* is nothing that can be a symbolic constant array that cannot */
10630         /* be an array with constant bounds.  This is a Cray extension. */
10631         /****************************************************************/
10632 
10633         {   0,  /* Obj_Sym_Constant_Arr         Name_Variable           */
10634             0,  /* Obj_Sym_Constant_Arr         Name_Common_Obj         */
10635          1224,  /* Obj_Sym_Constant_Arr         Name_Cri_Pointer        */
10636             0,  /* Obj_Sym_Constant_Arr         Name_Cri_Pointee        */
10637             0,  /* Obj_Sym_Constant_Arr         Name_Cri_Ch_Pointee     */
10638             0,  /* Obj_Sym_Constant_Arr         Name_Func_Result        */
10639             0,  /* Obj_Sym_Constant_Arr         Name_Dummy_Arg          */
10640          1224,  /* Obj_Sym_Constant_Arr         Name_Module_Proc        */
10641          1224,  /* Obj_Sym_Constant_Arr         Name_Derived_Type       */
10642          1224,  /* Obj_Sym_Constant_Arr         Name_Generic_Interface  */
10643          1224,  /* Obj_Sym_Constant_Arr         Name_Namelist_Group     */
10644          1224,  /* Obj_Sym_Constant_Arr         Name_Namelist_Group_Obj */
10645          1224,  /* Obj_Sym_Constant_Arr         Name_Statement_Func     */
10646          1224,  /* Obj_Sym_Constant_Arr         Name_Construct          */
10647          1224,  /* Obj_Sym_Constant_Arr         Name_Intrinsic_Func     */
10648          1224,  /* Obj_Sym_Constant_Arr         Name_Intrinsic_Subr     */
10649          1224,  /* Obj_Sym_Constant_Arr         Name_Module             */
10650          1224,  /* Obj_Sym_Constant_Arr         Name_Blockdata          */
10651          1224,  /* Obj_Sym_Constant_Arr         Name_Program            */
10652             0,  /* Obj_Sym_Constant_Arr         Name_Function           */
10653             0,  /* Obj_Sym_Constant_Arr         Name_Curr_Func          */
10654          1224,  /* Obj_Sym_Constant_Arr         Name_Curr_Subr          */
10655          1224,  /* Obj_Sym_Constant_Arr         Name_Internal_Func      */
10656          1224   /* Obj_Sym_Constant_Arr         Name_Internal_Subr      */
10657         },
10658 
10659         /************************ Obj_Interface_Func ********************/
10660         /* This is the name of the FUNCTION on an interface body.       */
10661         /* 12.3.2.1 states that a procedure must not have more than     */
10662         /* one explicit interface in a scoping unit.    12.3.1 states   */
10663         /* that specifying an external or dummy procedure in an         */
10664         /* interface block, causes it to have an explicit interface.    */
10665         /* 12.3 defines an interface as the characteristics of the      */
10666         /* procedure, its dummy arguments and its function result (if   */
10667         /* it's a function).  Since the actual definition of the module */
10668         /* procedure is the explicit interface, it's characteristics    */
10669         /* cannot be defined outside of the module procedure            */
10670         /* definition.  Also 5.1 states that an entity must not be      */
10671         /* given any attribute more than once in a scoping unit.        */
10672         /****************************************************************/
10673 
10674         { 609,  /* Obj_Interface_Func           Name_Variable           */
10675           609,  /* Obj_Interface_Func           Name_Common_Obj         */
10676           609,  /* Obj_Interface_Func           Name_Cri_Pointer        */
10677           609,  /* Obj_Interface_Func           Name_Cri_Pointee        */
10678           609,  /* Obj_Interface_Func           Name_Cri_Ch_Pointee     */
10679                 /* Cray extensions                                      */
10680 
10681           609,  /* Obj_Interface_Func           Name_Func_Result        */
10682                 /* 14.1.2                                               */
10683 
10684             0,  /* Obj_Interface_Func           Name_Dummy_Arg          */
10685 
10686           609,  /* Obj_Interface_Func           Name_Module_Proc        */
10687                 /* 12.3.1 says that a module procedure has an explicit  */
10688                 /* interface.   12.3.2.1 says that a procedure must not */
10689                 /* have more than one explicit specific interface in    */
10690                 /* a given scoping unit.  12.3 details what is in an    */
10691                 /* interface.                                           */
10692 
10693           609,  /* Obj_Interface_Func           Name_Derived_Type       */
10694                 /* 14.1.2                                               */
10695 
10696           609,  /* Obj_Interface_Func           Name_Generic_Interface  */
10697                 /* 12.3.2.1 discussion  It can be the same name as      */
10698                 /* the generic interface name, but it has to be the     */
10699                 /* current one. This is handled in start_new_subpgm     */
10700 
10701           609,  /* Obj_Interface_Func           Name_Namelist_Group     */
10702           609,  /* Obj_Interface_Func           Name_Namelist_Group_Obj */
10703           609,  /* Obj_Interface_Func           Name_Statement_Func     */
10704           609,  /* Obj_Interface_Func           Name_Construct          */
10705             0,  /* Obj_Interface_Func           Name_Intrinsic_Func     */
10706           609,  /* Obj_Interface_Func           Name_Intrinsic_Subr     */
10707           609,  /* Obj_Interface_Func           Name_Module             */
10708           609,  /* Obj_Interface_Func           Name_Blockdata          */
10709           609,  /* Obj_Interface_Func           Name_Program            */
10710             0,  /* Obj_Interface_Func           Name_Function           */
10711           609,  /* Obj_Interface_Func           Name_Curr_Func          */
10712           609,  /* Obj_Interface_Func           Name_Curr_Subr          */
10713           609,  /* Obj_Interface_Func           Name_Internal_Func      */
10714           609   /* Obj_Interface_Func           Name_Internal_Subr      */
10715                 /* 14.1.2                                               */
10716         },
10717 
10718         /************************ Obj_Interface_Subr ********************/
10719         /* This is the name of the SUBROUTINE on an interface body.     */
10720         /* This may be a dummy procedure        (12.3.2.1) discussion   */
10721         /* Subroutines can't be typed, shaped or anything else.         */
10722         /****************************************************************/
10723 
10724         { 619,  /* Obj_Interface_Subr           Name_Variable           */
10725           619,  /* Obj_Interface_Subr           Name_Common_Obj         */
10726           619,  /* Obj_Interface_Subr           Name_Cri_Pointer        */
10727           619,  /* Obj_Interface_Subr           Name_Cri_Pointee        */
10728           619,  /* Obj_Interface_Subr           Name_Cri_Ch_Pointee     */
10729                 /* Cray extensions                                      */
10730 
10731           619,  /* Obj_Interface_Subr           Name_Func_Result        */
10732                 /* 14.1.2                                               */
10733 
10734             0,  /* Obj_Interface_Subr           Name_Dummy_Arg          */
10735 
10736           619,  /* Obj_Interface_Subr           Name_Module_Proc        */
10737                 /* 12.3.1 says that a module procedure has an explicit  */
10738                 /* interface.   12.3.2.1 says that a procedure must not */
10739                 /* have more than one explicit specific interface in    */
10740                 /* a given scoping unit.  12.3 details what is in an    */
10741                 /* interface.                                           */
10742 
10743           619,  /* Obj_Interface_Subr           Name_Derived_Type       */
10744                 /* 14.1.2                                               */
10745 
10746           619,  /* Obj_Interface_Subr           Name_Generic_Interface  */
10747                 /* 12.3.2.1 discussion  It can be the same name as      */
10748                 /* the generic interface name, but it has to be the     */
10749                 /* current one. This is handled in start_new_subpgm     */
10750 
10751           619,  /* Obj_Interface_Subr           Name_Namelist_Group     */
10752           619,  /* Obj_Interface_Subr           Name_Namelist_Group_Obj */
10753           619,  /* Obj_Interface_Subr           Name_Statement_Func     */
10754           619,  /* Obj_Interface_Subr           Name_Construct          */
10755           619,  /* Obj_Interface_Subr           Name_Intrinsic_Func     */
10756             0,  /* Obj_Interface_Subr           Name_Intrinsic_Subr     */
10757           619,  /* Obj_Interface_Subr           Name_Module             */
10758           619,  /* Obj_Interface_Subr           Name_Blockdata          */
10759           619,  /* Obj_Interface_Subr           Name_Program            */
10760           619,  /* Obj_Interface_Subr           Name_Function           */
10761           619,  /* Obj_Interface_Subr           Name_Curr_Func          */
10762           619,  /* Obj_Interface_Subr           Name_Curr_Subr          */
10763           619,  /* Obj_Interface_Subr           Name_Internal_Func      */
10764           619   /* Obj_Interface_Subr           Name_Internal_Subr      */
10765                 /* 14.1.2                                               */
10766         },
10767 
10768 
10769         /************************ Obj_Use_Extern_Func *******************/
10770         /* This is an external function in an expression.               */
10771         /****************************************************************/
10772 
10773         { 629,  /* Obj_Use_Extern_Func          Name_Variable           */
10774           629,  /* Obj_Use_Extern_Func          Name_Common_Obj         */
10775           629,  /* Obj_Use_Extern_Func          Name_Cri_Pointer        */
10776           629,  /* Obj_Use_Extern_Func          Name_Cri_Pointee        */
10777           629,  /* Obj_Use_Extern_Func          Name_Cri_Ch_Pointee     */
10778           629,  /* Obj_Use_Extern_Func          Name_Func_Result        */
10779                 /* 14.1.2                                               */
10780 
10781             0,  /* Obj_Use_Extern_Func          Name_Dummy_Arg          */
10782             0,  /* Obj_Use_Extern_Func          Name_Module_Proc        */
10783 
10784           629,  /* Obj_Use_Extern_Func          Name_Derived_Type       */
10785                 /* 14.1.2                                               */
10786 
10787             0,  /* Obj_Use_Extern_Func          Name_Generic_Interface  */
10788                 /* Can also be a function 12.3.2.1                      */
10789 
10790           629,  /* Obj_Use_Extern_Func          Name_Namelist_Group     */
10791           629,  /* Obj_Use_Extern_Func          Name_Namelist_Group_Obj */
10792           629,  /* Obj_Use_Extern_Func          Name_Statement_Func     */
10793           629,  /* Obj_Use_Extern_Func          Name_Construct          */
10794             0,  /* Obj_Use_Extern_Func          Name_Intrinsic_Func     */
10795           629,  /* Obj_Use_Extern_Func          Name_Intrinsic_Subr     */
10796           629,  /* Obj_Use_Extern_Func          Name_Module             */
10797           629,  /* Obj_Use_Extern_Func          Name_Blockdata          */
10798           629,  /* Obj_Use_Extern_Func          Name_Program            */
10799                 /* 14.1.2                                               */
10800 
10801             0,  /* Obj_Use_Extern_Func          Name_Function           */
10802             0,  /* Obj_Use_Extern_Func          Name_Curr_Func          */
10803 
10804           629,  /* Obj_Use_Extern_Func          Name_Curr_Subr          */
10805           629,  /* Obj_Use_Extern_Func          Name_Internal_Func      */
10806           629   /* Obj_Use_Extern_Func          Name_Internal_Subr      */
10807                 /* 14.1.2                                               */
10808         },
10809 
10810 
10811         /************************ Obj_Use_Extern_Subr *******************/
10812         /* This is an external subroutine in an expression.             */
10813         /* Subroutines can't be typed, ranked or anything else.         */
10814         /****************************************************************/
10815 
10816         { 634,  /* Obj_Use_Extern_Subr          Name_Variable           */
10817           634,  /* Obj_Use_Extern_Subr          Name_Common_Obj         */
10818           634,  /* Obj_Use_Extern_Subr          Name_Cri_Pointer        */
10819           634,  /* Obj_Use_Extern_Subr          Name_Cri_Pointee        */
10820           634,  /* Obj_Use_Extern_Subr          Name_Cri_Ch_Pointee     */
10821           634,  /* Obj_Use_Extern_Subr          Name_Func_Result        */
10822                 /* 14.1.2                                               */
10823 
10824             0,  /* Obj_Use_Extern_Subr          Name_Dummy_Arg          */
10825             0,  /* Obj_Use_Extern_Subr          Name_Module_Proc        */
10826 
10827           634,  /* Obj_Use_Extern_Subr          Name_Derived_Type       */
10828                 /* 14.1.2                                               */
10829 
10830             0,  /* Obj_Use_Extern_Subr          Name_Generic_Interface  */
10831                 /* Can also be a subroutine 12.3.2.1                    */
10832 
10833           634,  /* Obj_Use_Extern_Subr          Name_Namelist_Group     */
10834           634,  /* Obj_Use_Extern_Subr          Name_Namelist_Group_Obj */
10835           634,  /* Obj_Use_Extern_Subr          Name_Statement_Func     */
10836           634,  /* Obj_Use_Extern_Subr          Name_Construct          */
10837           634,  /* Obj_Use_Extern_Subr          Name_Intrinsic_Func     */
10838             0,  /* Obj_Use_Extern_Subr          Name_Intrinsic_Subr     */
10839           458,  /* Obj_Use_Extern_Subr          Name_Module             */
10840           457,  /* Obj_Use_Extern_Subr          Name_Blockdata          */
10841           456,  /* Obj_Use_Extern_Subr          Name_Program            */
10842           335,  /* Obj_Use_Extern_Subr          Name_Function           */
10843           335,  /* Obj_Use_Extern_Subr          Name_Curr_Func          */
10844                 /* 14.1.2                                               */
10845 
10846             0,  /* Obj_Use_Extern_Subr          Name_Curr_Subr          */
10847 
10848           634,  /* Obj_Use_Extern_Subr          Name_Internal_Func      */
10849           634   /* Obj_Use_Extern_Subr          Name_Internal_Subr      */
10850                 /* 14.1.2                                               */
10851         },
10852 
10853 
10854         /************************ Obj_Use_In_Expr ***********************/
10855         /*      This is something referenced in an expression.          */
10856         /****************************************************************/
10857 
10858         {   0,  /* Obj_Use_In_Expr              Name_Variable           */
10859             0,  /* Obj_Use_In_Expr              Name_Common_Obj         */
10860             0,  /* Obj_Use_In_Expr              Name_Cri_Pointer        */
10861             0,  /* Obj_Use_In_Expr              Name_Cri_Ch_Pointee     */
10862             0,  /* Obj_Use_In_Expr              Name_Cri_Pointee        */
10863             0,  /* Obj_Use_In_Expr              Name_Func_Result        */
10864             0,  /* Obj_Use_In_Expr              Name_Dummy_Arg          */
10865             0,  /* Obj_Use_In_Expr              Name_Module_Proc        */
10866 
10867           641,  /* Obj_Use_In_Expr              Name_Derived_Type       */
10868                 /* 14.1.2                                               */
10869 
10870             0,  /* Obj_Use_In_Expr              Name_Generic_Interface  */
10871 
10872           641,  /* Obj_Use_In_Expr              Name_Namelist_Group     */
10873                 /* 14.1.2                                               */
10874 
10875             0,  /* Obj_Use_In_Expr              Name_Namelist_Group_Obj */
10876             0,  /* Obj_Use_In_Expr              Name_Statement_Func     */
10877 
10878           641,  /* Obj_Use_In_Expr              Name_Construct          */
10879                 /* 14.1.2                                               */
10880 
10881             0,  /* Obj_Use_In_Expr              Name_Intrinsic_Func     */
10882           641,  /* Obj_Use_In_Expr              Name_Intrinsic_Subr     */
10883 
10884           641,  /* Obj_Use_In_Expr              Name_Module             */
10885           641,  /* Obj_Use_In_Expr              Name_Blockdata          */
10886           641,  /* Obj_Use_In_Expr              Name_Program            */
10887                 /* 14.1.2                                               */
10888 
10889             0,  /* Obj_Use_In_Expr              Name_Function           */
10890             0,  /* Obj_Use_In_Expr              Name_Curr_Func          */
10891 
10892           641,  /* Obj_Use_In_Expr              Name_Curr_Subr          */
10893                 /* 14.1.2                                               */
10894 
10895             0,  /* Obj_Use_In_Expr              Name_Internal_Func      */
10896 
10897           641   /* Obj_Use_In_Expr              Name_Internal_Subr      */
10898                 /* 14.1.2                                               */
10899         },
10900 
10901 
10902         /************************ Obj_Use_Derived_Type ******************/
10903         /* This is a name used to type something as a derived type.     */
10904         /* Derived types can't be variables, constants, functions,      */
10905         /* or dummy args. (14.1.2)                                      */
10906         /****************************************************************/
10907 
10908         { 645,  /* Obj_Use_Derived_Type         Name_Variable           */
10909           645,  /* Obj_Use_Derived_Type         Name_Common_Obj         */
10910           645,  /* Obj_Use_Derived_Type         Name_Cri_Pointer        */
10911           645,  /* Obj_Use_Derived_Type         Name_Cri_Pointee        */
10912           645,  /* Obj_Use_Derived_Type         Name_Cri_Ch_Pointee     */
10913           645,  /* Obj_Use_Derived_Type         Name_Func_Result        */
10914           645,  /* Obj_Use_Derived_Type         Name_Dummy_Arg          */
10915           645,  /* Obj_Use_Derived_Type         Name_Module_Proc        */
10916                 /* 14.1.2                                               */
10917 
10918             0,  /* Obj_Use_Derived_Type         Name_Derived_Type       */
10919 
10920           645,  /* Obj_Use_Derived_Type         Name_Generic_Interface  */
10921           645,  /* Obj_Use_Derived_Type         Name_Namelist_Group     */
10922           645,  /* Obj_Use_Derived_Type         Name_Namelist_Group_Obj */
10923           645,  /* Obj_Use_Derived_Type         Name_Statement_Func     */
10924           645,  /* Obj_Use_Derived_Type         Name_Construct          */
10925           645,  /* Obj_Use_Derived_Type         Name_Intrinsic_Func     */
10926           645,  /* Obj_Use_Derived_Type         Name_Intrinsic_Subr     */
10927           645,  /* Obj_Use_Derived_Type         Name_Module             */
10928           645,  /* Obj_Use_Derived_Type         Name_Blockdata          */
10929           645,  /* Obj_Use_Derived_Type         Name_Program            */
10930           645,  /* Obj_Use_Derived_Type         Name_Function           */
10931           645,  /* Obj_Use_Derived_Type         Name_Curr_Func          */
10932           645,  /* Obj_Use_Derived_Type         Name_Curr_Subr          */
10933           645,  /* Obj_Use_Derived_Type         Name_Internal_Func      */
10934           645   /* Obj_Use_Derived_Type         Name_Internal_Subr      */
10935                 /* 14.1.2                                               */
10936         },
10937 
10938 
10939         /************************ Obj_Use_Spec_Expr *********************/
10940         /* The rules for a specification expression are as follows:     */
10941         /* Each object must be a constant, a dummy arg (that doesn't    */
10942         /* have the OPTIONAL or the INTENT (OUT) attributes), in a      */
10943         /* common block, accessible by USE or HOST association.         */
10944         /* Specific rules are found in 7.1.6.2                          */
10945         /****************************************************************/
10946 
10947         {   0,  /* Obj_Use_Spec_Expr            Name_Variable           */
10948             0,  /* Obj_Use_Spec_Expr            Name_Common_Obj         */
10949           509,  /* Obj_Use_Spec_Expr            Name_Cri_Pointer        */
10950           509,  /* Obj_Use_Spec_Expr            Name_Cri_Pointee        */
10951           509,  /* Obj_Use_Spec_Expr            Name_Cri_Ch_Pointee     */
10952           509,  /* Obj_Use_Spec_Expr            Name_Func_Result        */
10953             0,  /* Obj_Use_Spec_Expr            Name_Dummy_Arg          */
10954           509,  /* Obj_Use_Spec_Expr            Name_Module_Proc        */
10955 
10956           509,  /* Obj_Use_Spec_Expr            Name_Derived_Type       */
10957                 /* 14.1.2                                               */
10958 
10959           509,  /* Obj_Use_Spec_Expr            Name_Generic_Interface  */
10960 
10961           509,  /* Obj_Use_Spec_Expr            Name_Namelist_Group     */
10962                 /* 14.1.2                                               */
10963 
10964             0,  /* Obj_Use_Spec_Expr            Name_Namelist_Group     */
10965 
10966           509,  /* Obj_Use_Spec_Expr            Name_Statement_Func     */
10967 
10968           509,  /* Obj_Use_Spec_Expr            Name_Construct          */
10969                 /* 14.1.2                                               */
10970 
10971             0,  /* Obj_Use_Spec_Expr            Name_Intrinsic_Func     */
10972           509,  /* Obj_Use_Spec_Expr            Name_Intrinsic_Subr     */
10973 
10974           509,  /* Obj_Use_Spec_Expr            Name_Module             */
10975           509,  /* Obj_Use_Spec_Expr            Name_Blockdata          */
10976           509,  /* Obj_Use_Spec_Expr            Name_Program            */
10977                 /* 14.1.2                                               */
10978 
10979             0,  /* Obj_Use_Spec_Expr            Name_Function           */
10980           259,  /* Obj_Use_Spec_Expr            Name_Curr_Func          */
10981                 /* More descriptive msg, but it matches output for 509  */
10982 
10983           509,  /* Obj_Use_Spec_Expr            Name_Curr_Subr          */
10984                 /* 14.1.2                                               */
10985 
10986           509,  /* Obj_Use_Spec_Expr            Name_Internal_Func      */
10987 
10988           509   /* Obj_Use_Spec_Expr            Name_Internal_Subr      */
10989                 /* 14.1.2                                               */
10990         },
10991 
10992         /********************** Obj_Use_Init_Expr ***********************/
10993         /* The rules for an initialization expression are as follows:   */
10994         /* It MUST be a CONSTANT.  It may be one of several INTRINSICS  */
10995         /* that are foldable.   (7.1.6.1)                               */
10996         /* These are all illegal, because of 14.1.2.                    */
10997         /****************************************************************/
10998 
10999         {   0,  /* Obj_Use_Init_Expr            Name_Variable           */
11000           276,  /* Obj_Use_Init_Expr            Name_Common_Obj         */
11001           276,  /* Obj_Use_Init_Expr            Name_Cri_Pointer        */
11002           276,  /* Obj_Use_Init_Expr            Name_Cri_Pointee        */
11003           276,  /* Obj_Use_Init_Expr            Name_Cri_Ch_Pointee     */
11004           276,  /* Obj_Use_Init_Expr            Name_Func_Result        */
11005           276,  /* Obj_Use_Init_Expr            Name_Dummy_Arg          */
11006           276,  /* Obj_Use_Init_Expr            Name_Module_Proc        */
11007           276,  /* Obj_Use_Init_Expr            Name_Derived_Type       */
11008           276,  /* Obj_Use_Init_Expr            Name_Generic_Interface  */
11009           276,  /* Obj_Use_Init_Expr            Name_Namelist_Group     */
11010           276,  /* Obj_Use_Init_Expr            Name_Namelist_Group_Obj */
11011           276,  /* Obj_Use_Init_Expr            Name_Statement_Func     */
11012           276,  /* Obj_Use_Init_Expr            Name_Construct          */
11013 
11014             0,  /* Obj_Use_Init_Expr            Name_Intrinsic_Func     */
11015           276,  /* Obj_Use_Init_Expr            Name_Intrinsic_Subr     */
11016 
11017                 /* It can be INTRINSIC, because foldable intrinsics     */
11018                 /* are allowed through.                                 */
11019 
11020           276,  /* Obj_Use_Init_Expr            Name_Module             */
11021           276,  /* Obj_Use_Init_Expr            Name_Blockdata          */
11022           276,  /* Obj_Use_Init_Expr            Name_Program            */
11023             0,  /* Obj_Use_Init_Expr            Name_Function           */
11024           276,  /* Obj_Use_Init_Expr            Name_Curr_Func          */
11025           276,  /* Obj_Use_Init_Expr            Name_Curr_Subr          */
11026           276,  /* Obj_Use_Init_Expr            Name_Internal_Func      */
11027           276   /* Obj_Use_Init_Expr            Name_Internal_Subr      */
11028         }
11029 
11030 };
11031 
11032 
11033 
11034 long    other_msg_num[Obj_Done] [Other_Done]    = {
11035         
11036 
11037         /********************** Obj_Assum_Type_Ch ***********************/
11038         /* A length type value of star may only be used as a dummy      */
11039         /* argument, a constant, or the name of the function result,    */
11040         /* in the external function begin compiled.     (5.1.1.5)       */
11041         /****************************************************************/
11042 
11043         {   0,  /* Obj_Assum_Type_Ch            Other_Var_Len_Ch        */
11044                 /* Something can be implicitly typed as a var length    */
11045                 /* char and then appear in a character statement.(5.3)  */
11046 
11047             0,  /* Obj_Assum_Type_Ch            Other_Var_Len_Arr       */
11048                 /* Cannot be a darg, func result or constant. (5.5.2)   */
11049 
11050           566,  /* Obj_Assum_Type_Ch            Other_Expl_Interface    */
11051                 /* Only current external function being compiled can    */
11052                 /* be assumed type character.                    */
11053 
11054             0,  /* Obj_Assum_Type_Ch            Other_Use_Func          */
11055                 /* Only the current program unit, can be typed as       */
11056                 /* assumed type character.      Any other function must */
11057                 /* have a valid character length.                       */
11058 
11059           574,  /* Obj_Assum_Type_Ch            Other_Use_Subr          */
11060             0,  /* Obj_Assum_Type_Ch            Other_Use_Variable      */
11061             0,  /* Obj_Assum_Type_Ch            Other_Use_Dummy_Arg     */
11062                 /* Merge type gets this one.                            */
11063 
11064           920,  /* Obj_Assum_Type_Ch            Other_Host_Assoc        */
11065           922,  /* Obj_Assum_Type_Ch            Other_Use_Assoc         */
11066             0,  /* Obj_Assum_Type_Ch            Other_Use_Char_Rslt     */
11067           486,  /* Obj_Assum_Type_Ch            Other_Not_Visible       */
11068          1134   /* Obj_Assum_Type_Ch            Other_Npes              */
11069 
11070         },
11071 
11072 
11073         /************************ Obj_Expl_Shp_Arr **********************/
11074         /* An explict shape array is a named array that is declared     */
11075         /* with explicit values for the bounds in each dimension of     */
11076         /* the array.   (5.1.2.4.1)     All explicit shape arrays (both */
11077         /* with constant bounds and with non-constant bounds), use this */
11078         /* Obj_... category.    At end pass1, array bounds are resolved.*/
11079         /* If they are constant, semantic checking is done, if they are */
11080         /* non-constant, fnd_semantic_err is called again for the       */
11081         /* object, using Obj_Var_Len_Arr.  There is nothing that can    */
11082         /* be a variable length array that cannot be an array with      */
11083         /* constant bounds.                                             */
11084         /****************************************************************/
11085 
11086         {   0,  /* Obj_Expl_Shp_Arr             Other_Var_Len_Ch        */
11087 
11088           562,  /* Obj_Expl_Shp_Arr             Other_Var_Len_Arr       */
11089                 /* Can't give the DIMENSION attribute twice.    (5.1)   */
11090 
11091           566,  /* Obj_Expl_Shp_Arr             Other_Expl_Interface    */
11092                 /* Cannot add something to an explicit interface.       */
11093 
11094           572,  /* Obj_Expl_Shp_Arr             Other_Use_Func          */
11095           574,  /* Obj_Expl_Shp_Arr             Other_Use_Subr          */
11096           559,  /* Obj_Expl_Shp_Arr             Other_Use_Variable      */
11097          1039,  /* Obj_Expl_Shp_Arr             Other_Use_Dummy_Arg     */
11098                 /* Cannot define something after it has been used.      */
11099 
11100           920,  /* Obj_Expl_Shp_Arr             Other_Host_Assoc        */
11101           922,  /* Obj_Expl_Shp_Arr             Other_Use_Assoc         */
11102             0,  /* Obj_Expl_Shp_Arr             Other_Use_Char_Rslt     */
11103           486,  /* Obj_Expl_Shp_Arr             Other_Not_Visible       */
11104          1134   /* Obj_Expl_Shp_Arr             Other_Npes              */
11105         },
11106 
11107 
11108         /************************ Obj_Assum_Size_Arr ********************/
11109         /* This is a dummy argument array.      (5.1.2.4.4)             */
11110         /****************************************************************/
11111 
11112         {   0,  /* Obj_Assum_Size_Arr           Other_Var_Len_Ch        */
11113 
11114           562,  /* Obj_Assum_Size_Arr           Other_Var_Len_Arr       */
11115                 /* Illegal - DIMENSION attribute twice. (5.1)           */
11116 
11117           566,  /* Obj_Assum_Size_Arr           Other_Expl_Interface    */
11118                 /* Can't add things to something with an explicit itrf  */
11119 
11120           572,  /* Obj_Assum_Size_Arr           Other_Use_Func          */
11121           574,  /* Obj_Assum_Size_Arr           Other_Use_Subr          */
11122           559,  /* Obj_Assum_Size_Arr           Other_Use_Variable      */
11123          1039,  /* Obj_Assum_Size_Arr           Other_Use_Dummy_Arg     */
11124                 /* Cannot define something after it has been used.      */
11125 
11126           920,  /* Obj_Assum_Size_Arr           Other_Host_Assoc        */
11127           922,  /* Obj_Assum_Size_Arr           Other_Use_Assoc         */
11128             0,  /* Obj_Assum_Size_Arr           Other_Use_Char_Rslt     */
11129           486,  /* Obj_Assum_Size_Arr           Other_Not_Visible       */
11130          1134   /* Obj_Assum_Size_Arr           Other_Npes              */
11131         },
11132 
11133 
11134         /************************ Obj_Defrd_Shp_Arr *********************/
11135         /* A deferred shape array is an array pointer or an             */
11136         /* allocatable array. (5.1.2.4.3)                               */
11137         /****************************************************************/
11138 
11139         {   0,  /* Obj_Defrd_Shp_Arr            Other_Var_Len_Ch        */
11140 
11141           562,  /* Obj_Defrd_Shp_Arr            Other_Var_Len_Arr       */
11142                 /* Can't give the DIMENSION attribute twice.    (5.1)   */
11143 
11144           566,  /* Obj_Defrd_Shp_Arr            Other_Expl_Interface    */
11145 
11146           572,  /* Obj_Defrd_Shp_Arr            Other_Use_Func          */
11147           574,  /* Obj_Defrd_Shp_Arr            Other_Use_Subr          */
11148           559,  /* Obj_Defrd_Shp_Arr            Other_Use_Variable      */
11149          1039,  /* Obj_Defrd_Shp_Arr            Other_Use_Dummy_Arg     */
11150                 /* Cannot define something after it has been used.      */
11151 
11152           920,  /* Obj_Defrd_Shp_Arr            Other_Host_Assoc        */
11153           922,  /* Obj_Defrd_Shp_Arr            Other_Use_Assoc         */
11154             0,  /* Obj_Defrd_Shp_Arr            Other_Use_Char_Rslt     */
11155           486,  /* Obj_Defrd_Shp_Arr            Other_Not_Visible       */
11156          1134   /* Obj_Defrd_Shp_Arr            Other_Npes              */
11157         },
11158 
11159 
11160         /************************ Obj_Assum_Shp_Arr *********************/
11161         /* This is a non-pointer dummy argument array.  (5.1.2.4.2)     */
11162         /****************************************************************/
11163 
11164         {   0,  /* Obj_Assum_Shp_Arr            Other_Var_Len_Ch        */
11165 
11166           562,  /* Obj_Assum_Shp_Arr            Other_Var_Len_Arr       */
11167                 /* Can't give the DIMENSION attribute twice.    (5.1)   */
11168 
11169           566,  /* Obj_Assum_Shp_Arr            Other_Expl_Interface    */
11170 
11171           572,  /* Obj_Assum_Shp_Arr            Other_Use_Func          */
11172           574,  /* Obj_Assum_Shp_Arr            Other_Use_Subr          */
11173           559,  /* Obj_Assum_Shp_Arr            Other_Use_Variable      */
11174          1039,  /* Obj_Assum_Shp_Arr            Other_Use_Dummy_Arg     */
11175                 /* Cannot define something after it has been used.      */
11176 
11177           920,  /* Obj_Assum_Shp_Arr            Other_Host_Assoc        */
11178           922,  /* Obj_Assum_Shp_Arr            Other_Use_Assoc         */
11179             0,  /* Obj_Assum_Shp_Arr            Other_Use_Char_Rslt     */
11180           486,  /* Obj_Assum_Shp_Arr            Other_Not_Visible       */
11181          1134   /* Obj_Assum_Shp_Arr            Other_Npes              */
11182         },
11183 
11184         /************************ Obj_Co_Array **********************/
11185         /* This is a pe dimension [3,4]                                 */
11186         /****************************************************************/
11187 
11188         {   0,  /* Obj_Co_Array         Other_Var_Len_Ch        */
11189             0,  /* Obj_Co_Array         Other_Var_Len_Arr       */
11190           566,  /* Obj_Co_Array         Other_Expl_Interface    */
11191           572,  /* Obj_Co_Array         Other_Use_Func          */
11192           574,  /* Obj_Co_Array         Other_Use_Subr          */
11193             0,  /* Obj_Co_Array         Other_Use_Variable      */
11194             0,  /* Obj_Co_Array         Other_Use_Dummy_Arg     */
11195             0,  /* Obj_Co_Array         Other_Host_Assoc        */
11196             0,  /* Obj_Co_Array         Other_Use_Assoc         */
11197             0,  /* Obj_Co_Array         Other_Use_Char_Rslt     */
11198           486,  /* Obj_Co_Array         Other_Not_Visible       */
11199          1134   /* Obj_Co_Array         Other_Npes              */
11200         },
11201 
11202 
11203         /************************ Obj_Allocatable ***********************/
11204         /* This must be a deferred shape array and must not be a dummy  */
11205         /* argument or function result. (5.2.6)                         */
11206         /****************************************************************/
11207 
11208         {   0,  /* Obj_Allocatable              Other_Var_Len_Ch        */
11209 
11210           562,  /* Obj_Allocatable              Other_Var_Len_Arr       */
11211                 /* This must be a deferred shape array. (5.2.6)         */
11212 
11213           566,  /* Obj_Allocatable              Other_Expl_Interface    */
11214 
11215           572,  /* Obj_Allocatable              Other_Use_Func          */
11216           574,  /* Obj_Allocatable              Other_Use_Subr          */
11217           559,  /* Obj_Allocatable              Other_Use_Variable      */
11218          1039,  /* Obj_Allocatable              Other_Use_Dummy_Arg     */
11219                 /* Cannot define something after it has been used.      */
11220 
11221           920,  /* Obj_Allocatable              Other_Host_Assoc        */
11222           922,  /* Obj_Allocatable              Other_Use_Assoc         */
11223             0,  /* Obj_Allocatable              Other_Use_Char_Rslt     */
11224           486,  /* Obj_Allocatable              Other_Not_Visible       */
11225          1134   /* Obj_Allocatable              Other_Npes              */
11226         },
11227 
11228 
11229 
11230         /************************ Obj_Constant **************************/
11231         /* The named constant must have its type, shape and any type    */
11232         /* parameters specified either by a previous occurrence in a    */
11233         /* type declaration stmt in the same scoping unit, or by the    */
11234         /* implicit typing rules in effect.     (5.2. 10)               */
11235         /****************************************************************/
11236 
11237         { 560,  /* Obj_Constant                 Other_Var_Len_Ch        */
11238           562,  /* Obj_Constant                 Other_Var_Len_Arr       */
11239           566,  /* Obj_Constant                 Other_Expl_Interface    */
11240           572,  /* Obj_Constant                 Other_Use_Func          */
11241           574,  /* Obj_Constant                 Other_Use_Subr          */
11242             0,  /* Obj_Constant                 Other_Use_Variable      */
11243          1039,  /* Obj_Constant                 Other_Use_Dummy_Arg     */
11244                 /* Cannot define something after it has been used.      */
11245 
11246           920,  /* Obj_Constant                 Other_Host_Assoc        */
11247           922,  /* Obj_Constant                 Other_Use_Assoc         */
11248             0,  /* Obj_Constant                 Other_Use_Char_Rslt     */
11249           486,  /* Obj_Constant                 Other_Not_Visible       */
11250          1134   /* Obj_Constant                 Other_Npes              */
11251         },
11252 
11253 
11254         /************************ Obj_Intent ****************************/
11255         /* An intent statement may only appear in the specification-    */
11256         /* part of a subprogram or interface body.  It must not be a    */
11257         /* dummy procedure or dummy pointer.    (5.2.1)                 */
11258         /****************************************************************/
11259 
11260         {   0,  /* Obj_Intent                   Other_Var_Len_Ch        */
11261             0,  /* Obj_Intent                   Other_Var_Len_Arr       */
11262 
11263           566,  /* Obj_Intent                   Other_Expl_Interface    */
11264           572,  /* Obj_Intent                   Other_Use_Func          */
11265           574,  /* Obj_Intent                   Other_Use_Subr          */
11266             0,  /* Obj_Intent                   Other_Use_Variable      */
11267             0,  /* Obj_Intent                   Other_Use_Dummy_Arg     */
11268                 /* Cannot define something after it has been used.      */
11269 
11270           920,  /* Obj_Intent                   Other_Host_Assoc        */
11271           922,  /* Obj_Intent                   Other_Use_Assoc         */
11272             0,  /* Obj_Intent                   Other_Use_Char_Rslt     */
11273           486,  /* Obj_Intent                   Other_Not_Visible       */
11274          1134   /* Obj_Intent                   Other_Npes              */
11275         },
11276 
11277 
11278         /************************ Obj_Optional **************************/
11279         /* The optional statement may only appear in the specification- */
11280         /* part of a subprogram or interface body.      (5.2.2)         */
11281         /****************************************************************/
11282 
11283         {   0,  /* Obj_Optional                 Other_Var_Len_Ch        */
11284             0,  /* Obj_Optional                 Other_Var_Len_Arr       */
11285             0,  /* Obj_Optional                 Other_Expl_Interface    */
11286             0,  /* Obj_Optional                 Other_Use_Func          */
11287           574,  /* Obj_Optional                 Other_Use_Subr          */
11288             0,  /* Obj_Optional                 Other_Use_Variable      */
11289             0,  /* Obj_Optional                 Other_Use_Dummy_Arg     */
11290           920,  /* Obj_Optional                 Other_Host_Assoc        */
11291           922,  /* Obj_Optional                 Other_Use_Assoc         */
11292             0,  /* Obj_Optional                 Other_Use_Char_Rslt     */
11293           486,  /* Obj_Optional                 Other_Not_Visible       */
11294          1134   /* Obj_Optional                 Other_Npes              */
11295         },
11296 
11297 
11298         /************************ Obj_Private ***************************/
11299         /* The private statement may only be in the scoping unit of a   */
11300         /* module.  Each use-name must be a named variable, procedure,  */
11301         /* derived type, named constant or namelist group.              */
11302         /****************************************************************/
11303 
11304         {   0,  /* Obj_Private                  Other_Var_Len_Ch        */
11305             0,  /* Obj_Private                  Other_Var_Len_Arr       */
11306             0,  /* Obj_Private                  Other_Expl_Interface    */
11307             0,  /* Obj_Private                  Other_Use_Func          */
11308           574,  /* Obj_Private                  Other_Use_Subr          */
11309             0,  /* Obj_Private                  Other_Use_Variable      */
11310             0,  /* Obj_Private                  Other_Use_Dummy_Arg     */
11311           920,  /* Obj_Private                  Other_Host_Assoc        */
11312             0,  /* Obj_Private                  Other_Use_Assoc         */
11313             0,  /* Obj_Private                  Other_Use_Char_Rslt     */
11314           486,  /* Obj_Private                  Other_Not_Visible       */
11315          1134   /* Obj_Private                  Other_Npes              */
11316         },
11317 
11318 
11319         /************************ Obj_Public ****************************/
11320         /* The public statement may only be in the scoping unit of a    */
11321         /* module.  Each use-name must be a named variable, procedure,  */
11322         /* derived type, named constant or namelist group.              */
11323         /****************************************************************/
11324 
11325         {   0,  /* Obj_Public                   Other_Var_Len_Ch        */
11326             0,  /* Obj_Public                   Other_Var_Len_Arr       */
11327             0,  /* Obj_Public                   Other_Expl_Interface    */
11328             0,  /* Obj_Public                   Other_Use_Func          */
11329           574,  /* Obj_Public                   Other_Use_Subr          */
11330             0,  /* Obj_Public                   Other_Use_Variable      */
11331             0,  /* Obj_Public                   Other_Use_Dummy_Arg     */
11332           920,  /* Obj_Public                   Other_Host_Assoc        */
11333             0,  /* Obj_Public                   Other_Use_Assoc         */
11334             0,  /* Obj_Public                   Other_Use_Char_Rslt     */
11335           486,  /* Obj_Public                   Other_Not_Visible       */
11336          1134   /* Obj_Public                   Other_Npes              */
11337         },
11338 
11339 
11340         /************************ Obj_Target ****************************/
11341         /* This specifies a list of object names that may have          */
11342         /* pointers associated with them.                               */
11343         /****************************************************************/
11344 
11345         {   0,  /* Obj_Target                   Other_Var_Len_Ch        */
11346             0,  /* Obj_Target                   Other_Var_Len_Arr       */
11347 
11348           566,  /* Obj_Target                   Other_Expl_Interface    */
11349                 /* Can't add to things outside of the explicit itrfc    */
11350 
11351             0,  /* Obj_Target                   Other_Use_Func          */
11352           574,  /* Obj_Target                   Other_Use_Subr          */
11353             0,  /* Obj_Target                   Other_Use_Variable      */
11354             0,  /* Obj_Target                   Other_Use_Dummy_Arg     */
11355 
11356           920,  /* Obj_Target                   Other_Host_Assoc        */
11357           922,  /* Obj_Target                   Other_Use_Assoc         */
11358             0,  /* Obj_Target                   Other_Use_Char_Rslt     */
11359           486,  /* Obj_Target                   Other_Not_Visible       */
11360          1134   /* Obj_Target                   Other_Npes              */
11361         },
11362 
11363         /************************ Obj_Equiv *****************************/
11364         /* An equivalence object must not be a dummy argument, a        */
11365         /* pointer, an allocatable array, and object of a nonsequenced  */
11366         /* derived type or of a sequence derived type containing a      */
11367         /* pointer at any level of component selection, an automatic    */
11368         /* object, a function name, an entry name, a result name, a     */
11369         /* named constant, a structure component, or a subobject of any */
11370         /* of the preceeding objects. (5.5.1 constraint)                */
11371         /****************************************************************/
11372 
11373         { 560,  /* Obj_Equiv                    Other_Var_Len_Ch        */
11374           562,  /* Obj_Equiv                    Other_Var_Len_Arr       */
11375                 /* 5.5.1                                                */
11376 
11377           566,  /* Obj_Equiv                    Other_Expl_Interface    */
11378                 /* 14.1.2                                               */
11379 
11380           572,  /* Obj_Equiv                    Other_Use_Func          */
11381           574,  /* Obj_Equiv                    Other_Use_Subr          */
11382             0,  /* Obj_Equiv                    Other_Use_Variable      */
11383             0,  /* Obj_Equiv                    Other_Use_Dummy_Arg     */
11384 
11385           920,  /* Obj_Equiv                    Other_Host_Assoc        */
11386           922,  /* Obj_Equiv                    Other_Use_Assoc         */
11387             0,  /* Obj_Equiv                    Other_Use_Char_Rslt     */
11388           486,  /* Obj_Equiv                    Other_Not_Visible       */
11389          1134   /* Obj_Equiv                    Other_Npes              */
11390         },
11391 
11392 
11393         /************************ Obj_Save ******************************/
11394         /* An object-name must not be a dummy argument name, a          */
11395         /* procedure name, a function result name, an automatic data    */
11396         /* object, or the name of an entity in a common block. (5.2.4)  */
11397         /****************************************************************/
11398 
11399         { 560,  /* Obj_Saved                    Other_Var_Len_Ch        */
11400           562,  /* Obj_Saved                    Other_Var_Len_Arr       */
11401           566,  /* Obj_Saved                    Other_Expl_Interface    */
11402 
11403           572,  /* Obj_Saved                    Other_Use_Func          */
11404           574,  /* Obj_Saved                    Other_Use_Subr          */
11405             0,  /* Obj_Saved                    Other_Use_Variable      */
11406             0,  /* Obj_Saved                    Other_Use_Dummy_Arg     */
11407                 /* Cannot define something after it has been used.      */
11408 
11409           920,  /* Obj_Saved                    Other_Host_Assoc        */
11410           922,  /* Obj_Saved                    Other_Use_Assoc         */
11411             0,  /* Obj_Saved                    Other_Use_Char_Rslt     */
11412           486,  /* Obj_Saved                    Other_Not_Visible       */
11413          1134   /* Obj_Saved                    Other_Npes              */
11414         },
11415 
11416 
11417         /************************ Obj_Automatic *************************/
11418         /****************************************************************/
11419 
11420         { 560,  /* Obj_Automatic                Other_Var_Len_Ch        */
11421           562,  /* Obj_Automatic                Other_Var_Len_Arr       */
11422             0,  /* Obj_Automatic                Other_Expl_Interface    */
11423 
11424             0,  /* Obj_Automatic                Other_Use_Func          */
11425           574,  /* Obj_Automatic                Other_Use_Subr          */
11426             0,  /* Obj_Automatic                Other_Use_Variable      */
11427          1039,  /* Obj_Automatic                Other_Use_Dummy_Arg     */
11428                 /* Cannot define something after it has been used.      */
11429 
11430             0,  /* Obj_Automatic                Other_Host_Assoc        */
11431           922,  /* Obj_Automatic                Other_Use_Assoc         */
11432             0,  /* Obj_Automatic                Other_Use_Char_Rslt     */
11433           486,  /* Obj_Automatic                Other_Not_Visible       */
11434          1134   /* Obj_Automatic                Other_Npes              */
11435         },
11436 
11437 
11438         /************************ Obj_Pointer ***************************/
11439         /* Cannot have the INTENT or PARAMETER attributes.  If it is an */
11440         /* array, it must be a deferred shape one.  (5.2.7 constraints) */
11441         /* Cannot be ALLOCATABLE, EXTERNAL, TARGET, or INTRINSIC. (5.1) */
11442         /****************************************************************/
11443 
11444         {   0,  /* Obj_Pointer                  Other_Var_Len_Ch        */
11445           562,  /* Obj_Pointer                  Other_Var_Len_Arr       */
11446                 /* Pointer must be deferred shape array (5.1)           */
11447 
11448           566,  /* Obj_Pointer                  Other_Expl_Interface    */
11449             0,  /* Obj_Pointer                  Other_Use_Func          */
11450           574,  /* Obj_Pointer                  Other_Use_Subr          */
11451             0,  /* Obj_Pointer                  Other_Use_Variable      */
11452             0,  /* Obj_Pointer                  Other_Use_Dummy_Arg     */
11453 
11454           920,  /* Obj_Pointer                  Other_Host_Assoc        */
11455           922,  /* Obj_Pointer                  Other_Use_Assoc         */
11456             0,  /* Obj_Pointer                  Other_Use_Char_Rslt     */
11457           486,  /* Obj_Pointer                  Other_Not_Visible       */
11458          1134   /* Obj_Pointer                  Other_Npes              */
11459         },
11460 
11461 
11462         /************************ Obj_Dcl_Extern ************************/
11463         /* External-name must be the name of an external procedure, a   */
11464         /* darg, or a block data program unit.                          */
11465         /****************************************************************/
11466 
11467         { 560,  /* Obj_Dcl_Extern               Other_Var_Len_Ch        */
11468           562,  /* Obj_Dcl_Extern               Other_Var_Len_Arr       */
11469                 /*      (12.3.1.1) If a procedure has an array-valued   */
11470                 /* result or a variable length character result, it     */
11471                 /* must have an explicit interface.     An explicit     */
11472                 /* interface for an external subprogram must            */
11473                 /* be specified in an interface block.  (12.3.1)        */
11474 
11475           566,  /* Obj_Dcl_Extern               Other_Expl_Interface    */
11476 
11477             0,  /* Obj_Dcl_Extern               Other_Use_Func          */
11478 
11479           574,  /* Obj_Dcl_Extern               Other_Use_Subr          */
11480             0,  /* Obj_Dcl_Extern               Other_Use_Variable      */
11481             0,  /* Obj_Dcl_Extern               Other_Use_Dummy_Arg     */
11482 
11483           920,  /* Obj_Dcl_Extern               Other_Host_Assoc        */
11484           922,  /* Obj_Dcl_Extern               Other_Use_Assoc         */
11485             0,  /* Obj_Dcl_Extern               Other_Use_Char_Rslt     */
11486           486,  /* Obj_Dcl_Extern               Other_Not_Visible       */
11487          1134   /* Obj_Dcl_Extern               Other_Npes              */
11488         },
11489 
11490 
11491         /************************ Obj_Dcl_Intrin ************************/
11492         /* Intrinsic-name must be the name of an intrinsic procedure.   */
11493         /****************************************************************/
11494 
11495         { 560,  /* Obj_Dcl_Intrin               Other_Var_Len_Ch        */
11496           562,  /* Obj_Dcl_Intrin               Other_Var_Len_Arr       */
11497                 /* 5.1 discussion limits this to typing.                */
11498 
11499           566,  /* Obj_Dcl_Intrin               Other_Expl_Interface    */
11500 
11501             0,  /* Obj_Dcl_Intrin               Other_Use_Func          */
11502           574,  /* Obj_Dcl_Intrin               Other_Use_Subr          */
11503           559,  /* Obj_Dcl_Intrin               Other_Use_Variable      */
11504          1039,  /* Obj_Dcl_Intrin               Other_Use_Dummy_Arg     */
11505                 /* Cannot define something after it has been used.      */
11506 
11507           920,  /* Obj_Dcl_Intrin               Other_Host_Assoc        */
11508           922,  /* Obj_Dcl_Intrin               Other_Use_Assoc         */
11509             0,  /* Obj_Dcl_Intrin               Other_Use_Char_Rslt     */
11510           486,  /* Obj_Dcl_Intrin               Other_Not_Visible       */
11511          1134   /* Obj_Dcl_Intrin               Other_Npes              */
11512         },
11513 
11514 
11515         /************************ Obj_Data_Init *************************/
11516         /* The = initialization-expr must not appear if object-name is  */
11517         /* a darg, a function result, an object in a named common block */
11518         /* unless the type declaration is in a block data program unit, */
11519         /* an object in blank common, an allocatable array, a pointer,  */
11520         /* an external name, an intrinsic name, or an automatic object. */
11521         /* (5.1 constraint)                                             */
11522         /****************************************************************/
11523 
11524         { 560,  /* Obj_Data_Init                Other_Var_Len_Ch        */
11525           562,  /* Obj_Data_Init                Other_Var_Len_Arr       */
11526                 /* 5.2.9                                                */
11527 
11528           566,  /* Obj_Data_Init                Other_Expl_Interface    */
11529           572,  /* Obj_Data_Init                Other_Use_Func          */
11530           574,  /* Obj_Data_Init                Other_Use_Subr          */
11531             0,  /* Obj_Data_Init                Other_Use_Variable      */
11532             0,  /* Obj_Data_Init                Other_Use_Dummy_Arg     */
11533 
11534           920,  /* Obj_Data_Init                Other_Host_Assoc        */
11535           922,  /* Obj_Data_Init                Other_Use_Assoc         */
11536             0,  /* Obj_Data_Init                Other_Use_Char_Rslt     */
11537           486,  /* Obj_Data_Init                Other_Not_Visible       */
11538          1134   /* Obj_Data_Init                Other_Npes              */
11539         },
11540 
11541 
11542         /************************ Obj_Typed *****************************/
11543         /* This must be an object (which is a constant or a variable)   */
11544         /* (2.4.3.1) or an external function, an intrinsic function, a  */
11545         /* function dummy procedure or a statement function.            */
11546         /* Actually you can type an internal or module function also,   */
11547         /* but strict adherence to the standard forces this typing to   */
11548         /* be on the FUNCTION statement, not the type declaration stmt  */
11549         /****************************************************************/
11550 
11551         {   0,  /* Obj_Typed                    Other_Var_Len_Ch        */
11552             0,  /* Obj_Typed                    Other_Var_Len_Arr       */
11553 
11554           566,  /* Obj_Typed                    Other_Expl_Interface    */
11555             0,  /* Obj_Typed                    Other_Use_Func          */
11556           574,  /* Obj_Typed                    Other_Use_Subr          */
11557             0,  /* Obj_Typed                    Other_Use_Variable      */
11558             0,  /* Obj_Typed                    Other_Use_Dummy_Arg     */
11559                 /* This needs special checking. Done by merge_type.     */
11560 
11561           920,  /* Obj_Typed                    Other_Host_Assoc        */
11562           922,  /* Obj_Typed                    Other_Use_Assoc         */
11563             0,  /* Obj_Typed                    Other_Use_Char_Rslt     */
11564           486,  /* Obj_Typed                    Other_Not_Visible       */
11565          1134   /* Obj_Typed                    Other_Npes              */
11566         },
11567 
11568 
11569         /************************ Obj_Volatile  *************************/
11570         /* Volatile applies to any kind of variable.                    */
11571         /****************************************************************/
11572 
11573         {   0,  /* Obj_Volatile                 Other_Var_Len_Ch        */
11574             0,  /* Obj_Volatile                 Other_Var_Len_Arr       */
11575           566,  /* Obj_Volatile                 Other_Expl_Interface    */
11576           572,  /* Obj_Volatile                 Other_Use_Func          */
11577           574,  /* Obj_Volatile                 Other_Use_Subr          */
11578             0,  /* Obj_Volatile                 Other_Use_Variable      */
11579             0,  /* Obj_Volatile                 Other_Use_Dummy_Arg     */
11580           920,  /* Obj_Volatile                 Other_Host_Assoc        */
11581           922,  /* Obj_Volatile                 Other_Use_Assoc         */
11582             0,  /* Obj_Volatile                 Other_Use_Char_Rslt     */
11583           486,  /* Obj_Volatile                 Other_Not_Visible       */
11584          1134   /* Obj_Volatile                 Other_Npes              */
11585         },
11586 
11587         /********************** Obj_Copy_Assumed_Shape ******************/
11588         /* This is a non-pointer dummy argument array.  (5.1.2.4.2)     */
11589         /****************************************************************/
11590 
11591         {   0,  /* Obj_Copy_Assumed_Shape       Other_Var_Len_Ch        */
11592          1451,  /* Obj_Copy_Assumed_Shape       Other_Var_Len_Arr       */
11593          1453,  /* Obj_Copy_Assumed_Shape       Other_Expl_Interface    */
11594          1454,  /* Obj_Copy_Assumed_Shape       Other_Use_Func          */
11595          1455,  /* Obj_Copy_Assumed_Shape       Other_Use_Subr          */
11596          1444,  /* Obj_Copy_Assumed_Shape       Other_Use_Variable      */
11597          1443,  /* Obj_Copy_Assumed_Shape       Other_Use_Dummy_Arg     */
11598          1449,  /* Obj_Copy_Assumed_Shape       Other_Host_Assoc        */
11599          1448,  /* Obj_Copy_Assumed_Shape       Other_Use_Assoc         */
11600          1501,  /* Obj_Copy_Assumed_Shape       Other_Use_Char_Rslt     */
11601           486,  /* Obj_Copy_Assumed_Shape       Other_Not_Visible       */
11602          1447   /* Obj_Copy_Assumed_Shape       Other_Npes              */
11603         },
11604 
11605 
11606         /************************ Obj_Auxiliary *************************/
11607         /* Cray extension - Rules come from the CFT77 manual.           */
11608         /* This must be a non-character array.  It can be a dummy arg,  */
11609         /* but cannot be a function result.     It should not be mixed  */
11610         /* with Fortran 90.                                             */
11611         /****************************************************************/
11612 
11613         { 1450, /* Obj_Auxiliary                Other_Var_Len_Ch        */
11614             0,  /* Obj_Auxiliary                Other_Var_Len_Arr       */
11615 
11616          1453,  /* Obj_Auxiliary                Other_Expl_Interface    */
11617 
11618          1454,  /* Obj_Auxiliary                Other_Use_Func          */
11619          1455,  /* Obj_Auxiliary                Other_Use_Subr          */
11620             0,  /* Obj_Auxiliary                Other_Use_Variable      */
11621             0,  /* Obj_Auxiliary                Other_Use_Dummy_Arg     */
11622                 /* cft77 accepts this.                                  */
11623 
11624          1449,  /* Obj_Auxiliary                Other_Host_Assoc        */
11625          1448,  /* Obj_Auxiliary                Other_Use_Assoc         */
11626             0,  /* Obj_Auxiliary                Other_Use_Char_Rslt     */
11627           486,  /* Obj_Auxiliary                Other_Not_Visible       */
11628          1447   /* Obj_Auxiliary                Other_Npes              */
11629         },
11630 
11631         /************************ Obj_Vfunction *************************/
11632         /* This is a Cray extension.  It must be an external function,  */
11633         /* but cannot be declared EXTERNAL.  (From cft77 documentation) */
11634         /****************************************************************/
11635 
11636         {1450,  /* Obj_Vfunction                Other_Var_Len_Ch        */
11637          1451,  /* Obj_Vfunction                Other_Var_Len_Arr       */
11638          1453,  /* Obj_Vfunction                Other_Expl_Interface    */
11639             0,  /* Obj_Vfunction                Other_Use_Func          */
11640          1455,  /* Obj_Vfunction                Other_Use_Subr          */
11641          1444,  /* Obj_Vfunction                Other_Use_Variable      */
11642          1443,  /* Obj_Vfunction                Other_Use_Dummy_Arg     */
11643          1449,  /* Obj_Vfunction                Other_Host_Assoc        */
11644          1448,  /* Obj_Vfunction                Other_Use_Assoc         */
11645          1501,  /* Obj_Vfunction                Other_Use_Char_Rslt     */
11646           486,  /* Obj_Vfunction                Other_Not_Visible       */
11647          1447   /* Obj_Vfunction                Other_Npes              */
11648         },
11649 
11650 
11651         /************************ Obj_No_Side_Effects *******************/
11652         /* This is a Cray extension.  It must be an external function,  */
11653         /* and must not be a dummy procedure.   (From cft77 doc)        */
11654         /****************************************************************/
11655 
11656         { 1450, /* Obj_No_Side_Effects          Other_Var_Len_Ch        */
11657             0,  /* Obj_No_Side_Effects          Other_Var_Len_Arr       */
11658          1453,  /* Obj_No_Side_Effects          Other_Expl_Interface    */
11659             0,  /* Obj_No_Side_Effects          Other_Use_Func          */
11660             0,  /* Obj_No_Side_Effects          Other_Use_Subr          */
11661          1444,  /* Obj_No_Side_Effects          Other_Use_Variable      */
11662          1443,  /* Obj_No_Side_Effects          Other_Use_Dummy_Arg     */
11663          1449,  /* Obj_No_Side_Effects          Other_Host_Assoc        */
11664          1448,  /* Obj_No_Side_Effects          Other_Use_Assoc         */
11665          1501,  /* Obj_No_Side_Effects          Other_Use_Char_Rslt     */
11666           486,  /* Obj_No_Side_Effects          Other_Not_Visible       */
11667          1447   /* Obj_No_Side_Effects          Other_Npes              */
11668         },
11669 
11670         /*************************** Obj_Symmetric **********************/
11671         /* This is a Cray extension.                                    */
11672         /****************************************************************/
11673 
11674         {   0,  /* Obj_Symmetric                Other_Var_Len_Ch        */
11675             0,  /* Obj_Symmetric                Other_Var_Len_Arr       */
11676          1453,  /* Obj_Symmetric                Other_Expl_Interface    */
11677          1454,  /* Obj_Symmetric                Other_Use_Func          */
11678          1455,  /* Obj_Symmetric                Other_Use_Subr          */
11679             0,  /* Obj_Symmetric                Other_Use_Variable      */
11680          1443,  /* Obj_Symmetric                Other_Use_Dummy_Arg     */
11681          1449,  /* Obj_Symmetric                Other_Host_Assoc        */
11682          1448,  /* Obj_Symmetric                Other_Use_Assoc         */
11683          1501,  /* Obj_Symmetric                Other_Use_Char_Rslt     */
11684           486,  /* Obj_Symmetric                Other_Not_Visible       */
11685          1447   /* Obj_Symmetric                Other_Npes              */
11686         },
11687 
11688 
11689         /***************************** Obj_Inline ***********************/
11690         /* This is a Cray extension.                                    */
11691         /****************************************************************/
11692 
11693         {   0,  /* Obj_Inline                   Other_Var_Len_Ch        */
11694             0,  /* Obj_Inline                   Other_Var_Len_Arr       */
11695             0,  /* Obj_Inline                   Other_Expl_Interface    */
11696             0,  /* Obj_Inline                   Other_Use_Func          */
11697             0,  /* Obj_Inline                   Other_Use_Subr          */
11698          1444,  /* Obj_Inline                   Other_Use_Variable      */
11699          1443,  /* Obj_Inline                   Other_Use_Dummy_Arg     */
11700          1449,  /* Obj_Inline                   Other_Host_Assoc        */
11701             0,  /* Obj_Inline                   Other_Use_Assoc         */
11702          1501,  /* Obj_Inline                   Other_Use_Char_Rslt     */
11703           486,  /* Obj_Inline                   Other_Not_Visible       */
11704          1447   /* Obj_Inline                   Other_Npes              */
11705         },
11706 
11707         /***************************** Obj_Inline ***********************/
11708         /* This is a Cray extension.                                    */
11709         /****************************************************************/
11710 
11711         {   0,  /* Obj_Ipa                      Other_Var_Len_Ch        */
11712             0,  /* Obj_Ipa                      Other_Var_Len_Arr       */
11713             0,  /* Obj_Ipa                      Other_Expl_Interface    */
11714             0,  /* Obj_Ipa                      Other_Use_Func          */
11715             0,  /* Obj_Ipa                      Other_Use_Subr          */
11716          1444,  /* Obj_Ipa                      Other_Use_Variable      */
11717          1443,  /* Obj_Ipa                      Other_Use_Dummy_Arg     */
11718          1449,  /* Obj_Ipa                      Other_Host_Assoc        */
11719             0,  /* Obj_Ipa                      Other_Use_Assoc         */
11720          1501,  /* Obj_Ipa                      Other_Use_Char_Rslt     */
11721           486,  /* Obj_Ipa                      Other_Not_Visible       */
11722          1447   /* Obj_Ipa                      Other_Npes              */
11723         },
11724 
11725         /********************** Obj_Align_Symbol ************************/
11726         /* This is an SGI extension.                                    */
11727         /****************************************************************/
11728 
11729         {1450,  /* Obj_Align_Symbol             Other_Var_Len_Ch        */
11730             0,  /* Obj_Align_Symbol             Other_Var_Len_Arr       */
11731          1453,  /* Obj_Align_Symbol             Other_Expl_Interface    */
11732          1454,  /* Obj_Align_Symbol             Other_Use_Func          */
11733          1455,  /* Obj_Align_Symbol             Other_Use_Subr          */
11734             0,  /* Obj_Align_Symbol             Other_Use_Variable      */
11735          1443,  /* Obj_Align_Symbol             Other_Use_Dummy_Arg     */
11736          1449,  /* Obj_Align_Symbol             Other_Host_Assoc        */
11737          1448,  /* Obj_Align_Symbol             Other_Use_Assoc         */
11738          1501,  /* Obj_Align_Symbol             Other_Use_Char_Rslt     */
11739           486,  /* Obj_Align_Symbol             Other_Not_Visible       */
11740          1447   /* Obj_Align_Symbol             Other_Npes              */
11741         },
11742 
11743         /********************** Obj_Fill_Symbol *************************/
11744         /* This is an SGI extension.                                    */
11745         /****************************************************************/
11746 
11747         {1450,  /* Obj_Fill_Symbol              Other_Var_Len_Ch        */
11748             0,  /* Obj_Fill_Symbol              Other_Var_Len_Arr       */
11749          1453,  /* Obj_Fill_Symbol              Other_Expl_Interface    */
11750          1454,  /* Obj_Fill_Symbol              Other_Use_Func          */
11751          1455,  /* Obj_Fill_Symbol              Other_Use_Subr          */
11752             0,  /* Obj_Fill_Symbol              Other_Use_Variable      */
11753          1443,  /* Obj_Fill_Symbol              Other_Use_Dummy_Arg     */
11754          1449,  /* Obj_Fill_Symbol              Other_Host_Assoc        */
11755          1448,  /* Obj_Fill_Symbol              Other_Use_Assoc         */
11756          1501,  /* Obj_Fill_Symbol              Other_Use_Char_Rslt     */
11757           486,  /* Obj_Fill_Symbol              Other_Not_Visible       */
11758          1447   /* Obj_Fill_Symbol              Other_Npes              */
11759         },
11760 
11761         /********************** Obj_Section_Gp **************************/
11762         /* This is an SGI extension.                                    */
11763         /****************************************************************/
11764 
11765         {1450,  /* Obj_Section_Gp               Other_Var_Len_Ch        */
11766          1450,  /* Obj_Section_Gp               Other_Var_Len_Arr       */
11767          1453,  /* Obj_Section_Gp               Other_Expl_Interface    */
11768          1454,  /* Obj_Section_Gp               Other_Use_Func          */
11769          1455,  /* Obj_Section_Gp               Other_Use_Subr          */
11770             0,  /* Obj_Section_Gp               Other_Use_Variable      */
11771          1443,  /* Obj_Section_Gp               Other_Use_Dummy_Arg     */
11772          1449,  /* Obj_Section_Gp               Other_Host_Assoc        */
11773          1448,  /* Obj_Section_Gp               Other_Use_Assoc         */
11774          1501,  /* Obj_Section_Gp               Other_Use_Char_Rslt     */
11775           486,  /* Obj_Section_Gp               Other_Not_Visible       */
11776          1447   /* Obj_Section_Gp               Other_Npes              */
11777         },
11778 
11779         /********************** Obj_Section_Non_Gp **********************/
11780         /* This is an SGI extension.                                    */
11781         /****************************************************************/
11782 
11783         {1450,  /* Obj_Section_Non_Gp           Other_Var_Len_Ch        */
11784          1450,  /* Obj_Section_Non_Gp           Other_Var_Len_Arr       */
11785          1453,  /* Obj_Section_Non_Gp           Other_Expl_Interface    */
11786          1454,  /* Obj_Section_Non_Gp           Other_Use_Func          */
11787          1455,  /* Obj_Section_Non_Gp           Other_Use_Subr          */
11788             0,  /* Obj_Section_Non_Gp           Other_Use_Variable      */
11789          1443,  /* Obj_Section_Non_Gp           Other_Use_Dummy_Arg     */
11790          1449,  /* Obj_Section_Non_Gp           Other_Host_Assoc        */
11791          1448,  /* Obj_Section_Non_Gp           Other_Use_Assoc         */
11792          1501,  /* Obj_Section_Non_Gp           Other_Use_Char_Rslt     */
11793           486,  /* Obj_Section_Non_Gp           Other_Not_Visible       */
11794          1447   /* Obj_Section_Non_Gp           Other_Npes              */
11795         },
11796 
11797         /*********************** Obj_Ignore_TKR *************************/
11798         /****************************************************************/
11799 
11800         {   0,  /* Obj_Ignore_TKR               Other_Var_Len_Ch        */
11801             0,  /* Obj_Ignore_TKR               Other_Var_Len_Arr       */
11802          1453,  /* Obj_Ignore_TKR               Other_Expl_Interface    */
11803          1454,  /* Obj_Ignore_TKR               Other_Use_Func          */
11804          1455,  /* Obj_Ignore_TKR               Other_Use_Subr          */
11805             0,  /* Obj_Ignore_TKR               Other_Use_Variable      */
11806             0,  /* Obj_Ignore_TKR               Other_Use_Dummy_Arg     */
11807          1449,  /* Obj_Ignore_TKR               Other_Host_Assoc        */
11808          1448,  /* Obj_Ignore_TKR               Other_Use_Assoc         */
11809             0,  /* Obj_Ignore_TKR               Other_Use_Char_Rslt     */
11810           486,  /* Obj_Ignore_TKR               Other_Not_Visible       */
11811          1447   /* Obj_Ignore_TKR               Other_Npes              */
11812         },
11813 
11814         /************************ Obj_Optional_Dir **********************/
11815         /****************************************************************/
11816 
11817         {1450,  /* Obj_Optional_Dir             Other_Var_Len_Ch        */
11818          1451,  /* Obj_Optional_Dir             Other_Var_Len_Arr       */
11819             0,  /* Obj_Optional_Dir             Other_Expl_Interface    */
11820             0,  /* Obj_Optional_Dir             Other_Use_Func          */
11821             0,  /* Obj_Optional_Dir             Other_Use_Subr          */
11822          1444,  /* Obj_Optional_Dir             Other_Use_Variable      */
11823          1443,  /* Obj_Optional_Dir             Other_Use_Dummy_Arg     */
11824          1449,  /* Obj_Optional_Dir             Other_Host_Assoc        */
11825          1448,  /* Obj_Optional_Dir             Other_Use_Assoc         */
11826          1501,  /* Obj_Optional_Dir             Other_Use_Char_Rslt     */
11827           486,  /* Obj_Optional_Dir             Other_Not_Visible       */
11828          1447   /* Obj_Optional_Dir             Other_Npes              */
11829         },
11830 
11831         /************************ Obj_Name ******************************/
11832         /* This is specified with the !DIR$ C directive.                */
11833         /****************************************************************/
11834 
11835         {1450,  /* Obj_Name                     Other_Var_Len_Ch        */
11836          1451,  /* Obj_Name                     Other_Var_Len_Arr       */
11837          1453,  /* Obj_Name                     Other_Expl_Interface    */
11838             0,  /* Obj_Name                     Other_Use_Func          */
11839             0,  /* Obj_Name                     Other_Use_Subr          */
11840          1444,  /* Obj_Name                     Other_Use_Variable      */
11841          1443,  /* Obj_Name                     Other_Use_Dummy_Arg     */
11842          1449,  /* Obj_Name                     Other_Host_Assoc        */
11843          1448,  /* Obj_Name                     Other_Use_Assoc         */
11844          1501,  /* Obj_Name                     Other_Use_Char_Rslt     */
11845           486,  /* Obj_Name                     Other_Not_Visible       */
11846          1447   /* Obj_Name                     Other_Npes              */
11847         },
11848 
11849         /************************ Obj_Cri_Ptr ***************************/
11850         /* From cft77's documentation - A Cray pointer cannot be a      */
11851         /* constant, an array, a statement function or an external      */
11852         /* function.    It can be in common and be a darg.      A Cray  */
11853         /* pointer is considered to be a data type.                     */
11854         /****************************************************************/
11855 
11856         {   0,  /* Obj_Cri_Ptr                  Other_Var_Len_Ch        */
11857                 /* This is legal, because something could be            */
11858                 /* implicitly typed as a variable length character      */
11859                 /* and then become a cray pointer.                      */
11860 
11861           563,  /* Obj_Cri_Ptr                  Other_Var_Len_Arr       */
11862           567,  /* Obj_Cri_Ptr                  Other_Expl_Interface    */
11863           573,  /* Obj_Cri_Ptr                  Other_Use_Func          */
11864           575,  /* Obj_Cri_Ptr                  Other_Use_Subr          */
11865           558,  /* Obj_Cri_Ptr                  Other_Use_Variable      */
11866          1038,  /* Obj_Cri_Ptr                  Other_Use_Dummy_Arg     */
11867                 /* Cannot define something after it has been used.      */
11868 
11869           921,  /* Obj_Cri_Ptr                  Other_Host_Assoc        */
11870           923,  /* Obj_Cri_Ptr                  Other_Use_Assoc         */
11871           863,  /* Obj_Cri_Ptr                  Other_Use_Char_Rslt     */
11872           486,  /* Obj_Cri_Ptr                  Other_Not_Visible       */
11873          1135   /* Obj_Cri_Ptr                  Other_Npes              */
11874         },
11875 
11876 
11877         /************************ Obj_Cri_Pointee ***********************/
11878         /* From cft77's documentation - A Cray pointee cannot be a      */
11879         /* constant, in common, saved, data initialized or equivalenced */
11880         /* It cannot be a darg or a function result.                    */
11881         /****************************************************************/
11882 
11883         { 561,  /* Obj_Cri_Pointee              Other_Var_Len_Ch        */
11884 
11885             0,  /* Obj_Cri_Pointee              Other_Var_Len_Arr       */
11886                 /* cft77 allows this.   It cannot be a dummy argument   */
11887                 /* nor is it treated like an automatic array.    */
11888 
11889           567,  /* Obj_Cri_Pointee              Other_Expl_Interface    */
11890           573,  /* Obj_Cri_Pointee              Other_Use_Func          */
11891           575,  /* Obj_Cri_Pointee              Other_Use_Subr          */
11892           558,  /* Obj_Cri_Pointee              Other_Use_Variable      */
11893          1038,  /* Obj_Cri_Pointee              Other_Use_Dummy_Arg     */
11894                 /* Cannot define something after it has been used.      */
11895 
11896           921,  /* Obj_Cri_Pointee              Other_Host_Assoc        */
11897           923,  /* Obj_Cri_Pointee              Other_Use_Assoc         */
11898           863,  /* Obj_Cri_Pointee              Other_Use_Char_Rslt     */
11899           486,  /* Obj_Cri_Pointee              Other_Not_Visible       */
11900          1135   /* Obj_Cri_Pointee              Other_Npes              */
11901         },
11902 
11903 
11904         /*********************** Obj_Cri_Ch_Pointee *********************/
11905         /* From cft77's documentation - A Cray pointee cannot be a      */
11906         /* constant, in common, saved, data initialized or equivalenced */
11907         /* It cannot be a darg or a function result.  A Cray character  */
11908         /* pointee cannot be an array.                                  */
11909         /****************************************************************/
11910 
11911         { 561,  /* Obj_Cri_Ch_Pointee           Other_Var_Len_Ch        */
11912           563,  /* Obj_Cri_Ch_Pointee           Other_Var_Len_Arr       */
11913           567,  /* Obj_Cri_Ch_Pointee           Other_Expl_Interface    */
11914           573,  /* Obj_Cri_Ch_Pointee           Other_Use_Func          */
11915           575,  /* Obj_Cri_Ch_Pointee           Other_Use_Subr          */
11916           558,  /* Obj_Cri_Ch_Pointee           Other_Use_Variable      */
11917          1038,  /* Obj_Cri_Ch_Pointee           Other_Use_Dummy_Arg     */
11918           921,  /* Obj_Cri_Ch_Pointee           Other_Host_Assoc        */
11919           923,  /* Obj_Cri_Ch_Pointee           Other_Use_Assoc         */
11920           863,  /* Obj_Cri_Ch_Pointee           Other_Use_Char_Rslt     */
11921           486,  /* Obj_Cri_Ch_Pointee           Other_Not_Visible       */
11922          1135   /* Obj_Cri_Ch_Pointee           Other_Npes              */
11923         },
11924 
11925 
11926         /************************ Obj_Ntry_Func_Result ******************/
11927         /* The result of a Function, specified on an entry statement.   */
11928         /****************************************************************/
11929 
11930         {   0,  /* Obj_Ntry_Func_Result         Other_Var_Len_Ch        */
11931             0,  /* Obj_Ntry_Func_Result         Other_Var_Len_Arr       */
11932 
11933           567,  /* Obj_Ntry_Func_Result         Other_Expl_Interface    */
11934           573,  /* Obj_Ntry_Func_Result         Other_Use_Func          */
11935           575,  /* Obj_Ntry_Func_Result         Other_Use_Subr          */
11936           558,  /* Obj_Ntry_Func_Result         Other_Use_Variable      */
11937          1038,  /* Obj_Ntry_Func_Result         Other_Use_Dummy_Arg     */
11938                 /* Cannot define something after it has been used.      */
11939 
11940           921,  /* Obj_Ntry_Func_Result         Other_Host_Assoc        */
11941           923,  /* Obj_Ntry_Func_Result         Other_Use_Assoc         */
11942           863,  /* Obj_Ntry_Func_Result         Other_Use_Char_Rslt     */
11943           486,  /* Obj_Ntry_Func_Result         Other_Not_Visible       */
11944          1135   /* Obj_Ntry_Func_Result         Other_Npes              */
11945         },
11946 
11947 
11948         /************************ Obj_Dummy_Arg *************************/
11949         /****************************************************************/
11950 
11951         {   0,  /* Obj_Dummy_Arg                Other_Var_Len_Ch        */
11952             0,  /* Obj_Dummy_Arg                Other_Var_Len_Arr       */
11953             0,  /* Obj_Dummy_Arg                Other_Expl_Interface    */
11954             0,  /* Obj_Dummy_Arg                Other_Use_Func          */
11955 
11956           575,  /* Obj_Dummy_Arg                Other_Use_Subr          */
11957 
11958             0,  /* Obj_Dummy_Arg                Other_Use_Variable      */
11959             0,  /* Obj_Dummy_Arg                Other_Use_Dummy_Arg     */
11960                 /* This could be used in a bounds specification         */
11961                 /* expression.  If it is used in an executable stmt     */
11962                 /* it's caught by parse_dummy_args.                     */
11963 
11964           921,  /* Obj_Dummy_Arg                Other_Host_Assoc        */
11965           923,  /* Obj_Dummy_Arg                Other_Use_Assoc         */
11966             0,  /* Obj_Dummy_Arg                Other_Use_Char_Rslt     */
11967           486,  /* Obj_Dummy_Arg                Other_Not_Visible       */
11968          1135   /* Obj_Dummy_Arg                Other_Npes              */
11969         },
11970 
11971 
11972         /************************ Obj_Common_Obj ************************/
11973         /* A common-block object must not be a dummy argument, an       */
11974         /* allocatable array, an automatic object, a function name,     */
11975         /* an entry name or a result name.      (5.5.2)                 */
11976         /****************************************************************/
11977 
11978         { 561,  /* Obj_Common_Obj               Other_Var_Len_Ch        */
11979           563,  /* Obj_Common_Obj               Other_Var_Len_Arr       */
11980           567,  /* Obj_Common_Obj               Other_Expl_Interface    */
11981           573,  /* Obj_Common_Obj               Other_Use_Func          */
11982           575,  /* Obj_Common_Obj               Other_Use_Subr          */
11983             0,  /* Obj_Common_Obj               Other_Use_Variable      */
11984             0,  /* Obj_Common_Obj               Other_Use_Dummy_Arg     */
11985             0,  /* Obj_Common_Obj               Other_Host_Assoc        */
11986           923,  /* Obj_Common_Obj               Other_Use_Assoc         */
11987             0,  /* Obj_Common_Obj               Other_Use_Char_Rslt     */
11988           486,  /* Obj_Common_Obj               Other_Not_Visible       */
11989          1135   /* Obj_Common_Obj               Other_Npes              */
11990         },
11991 
11992 
11993         /************************ Obj_Namelist_Obj **********************/
11994         /* A namelist object must not be an array dummy argument with   */
11995         /* a non-constant bound, a variable with a non-constant char    */
11996         /* length, an automatic object, a pointer or an allocatable     */
11997         /* array.       (5.4) constraint                                */
11998         /****************************************************************/
11999 
12000         { 561,  /* Obj_Namelist_Obj             Other_Var_Len_Ch        */
12001           563,  /* Obj_Namelist_Obj             Other_Var_Len_Arr       */
12002           567,  /* Obj_Namelist_Obj             Other_Expl_Interface    */
12003           573,  /* Obj_Namelist_Obj             Other_Use_Func          */
12004           575,  /* Obj_Namelist_Obj             Other_Use_Subr          */
12005             0,  /* Obj_Namelist_Obj             Other_Use_Variable      */
12006             0,  /* Obj_Namelist_Obj             Other_Use_Dummy_Arg     */
12007             0,  /* Obj_Namelist_Obj             Other_Host_Assoc        */
12008             0,  /* Obj_Namelist_Obj             Other_Use_Assoc         */
12009             0,  /* Obj_Namelist_Obj             Other_Use_Char_Rslt     */
12010           486,  /* Obj_Namelist_Obj             Other_Not_Visible       */
12011          1135   /* Obj_Namelist_Obj             Other_Npes              */
12012         },
12013 
12014         
12015         /************************ Obj_Module_Proc ***********************/
12016         /* 12.3.2.1 states that a procedure must not have more than     */
12017         /* one explicit interface in a scoping unit.    12.3.1 states   */
12018         /* that the interface of a module procedure is always an        */
12019         /* explicit interface in a scoping unit.        12.3 defines an */
12020         /* interface as the characteristics of the procedure, its       */
12021         /* dummy arguments and its function result (if a function).     */
12022         /* Since the actual definition of the module procedure is the   */
12023         /* explicit interface, it's characteristics cannot be defined   */
12024         /* outside of the module procedure definition.                  */
12025         /* Also 5.1 states that an entity must not be given any         */
12026         /* attribute more than once in a scoping unit.                  */
12027         /****************************************************************/
12028 
12029         { 561,  /* Obj_Module_Proc              Other_Var_Len_Ch        */
12030           563,  /* Obj_Module_Proc              Other_Var_Len_Arr       */
12031           567,  /* Obj_Module_Proc              Other_Expl_Interface    */
12032           573,  /* Obj_Module_Proc              Other_Use_Func          */
12033           575,  /* Obj_Module_Proc              Other_Use_Subr          */
12034           558,  /* Obj_Module_Proc              Other_Use_Variable      */
12035          1038,  /* Obj_Module_Proc              Other_Use_Dummy_Arg     */
12036                 /* Cannot define something after it has been used.      */
12037 
12038           921,  /* Obj_Module_Proc              Other_Host_Assoc        */
12039             0,  /* Obj_Module_Proc      Other_Use_Assoc                 */
12040                 /* You can specify something in a MODULE procedure      */
12041                 /* statement that has been use associated.              */
12042 
12043             0,  /* Obj_Module_Proc              Other_Use_Char_Rslt     */
12044           486,  /* Obj_Module_Proc              Other_Not_Visible       */
12045          1135   /* Obj_Module_Proc              Other_Npes              */
12046         },
12047 
12048 
12049         /************************ Obj_Derived_Type **********************/
12050         /* By  14.1.2, a derived type cannot be a named variable, a     */
12051         /* named constant, a construct name, a statement function, an   */
12052         /* internal procedure, a dummy procedure, an intrinsic proc,    */
12053         /* a generic identifier or a namelist group name.               */
12054         /****************************************************************/
12055 
12056         { 561,  /* Obj_Derived_Type             Other_Var_Len_Ch        */
12057           563,  /* Obj_Derived_Type             Other_Var_Len_Arr       */
12058           567,  /* Obj_Derived_Type             Other_Expl_Interface    */
12059           573,  /* Obj_Derived_Type             Other_Use_Func          */
12060           575,  /* Obj_Derived_Type             Other_Use_Subr          */
12061           558,  /* Obj_Derived_Type             Other_Use_Variable      */
12062          1038,  /* Obj_Derived_Type             Other_Use_Dummy_Arg     */
12063                 /* Cannot define something after it has been used.      */
12064 
12065           921,  /* Obj_Derived_Type             Other_Host_Assoc        */
12066           923,  /* Obj_Derived_Type             Other_Use_Assoc         */
12067           863,  /* Obj_Derived_Type             Other_Use_Char_Rslt     */
12068           486,  /* Obj_Derived_Type             Other_Not_Visible       */
12069          1135   /* Obj_Derived_Type             Other_Npes              */
12070         },
12071 
12072 
12073         /************************ Obj_Generic_Interface *****************/
12074         /* By 14.1.2, a generic interface cannot be a named variable, a */
12075         /* named constant, a construct name, a statement function, an   */
12076         /* internal procedure, a dummy procedure, an intrinsic proc,    */
12077         /* a derived type or a namelist group name.                     */
12078         /****************************************************************/
12079 
12080         { 561,  /* Obj_Generic_Interface        Other_Var_Len_Ch        */
12081           563,  /* Obj_Generic_Interface        Other_Var_Len_Arr       */
12082             0,  /* Obj_Generic_Interface        Other_Expl_Interface    */
12083           573,  /* Obj_Generic_Interface        Other_Use_Func          */
12084           575,  /* Obj_Generic_Interface        Other_Use_Subr          */
12085           558,  /* Obj_Generic_Interface        Other_Use_Variable      */
12086          1038,  /* Obj_Generic_Interface        Other_Use_Dummy_Arg     */
12087                 /* Cannot define something after it has been used.      */
12088 
12089           921,  /* Obj_Generic_Interface        Other_Host_Assoc        */
12090             0,  /* Obj_Generic_Interface        Other_Use_Assoc         */
12091             0,  /* Obj_Generic_Interface        Other_Use_Char_Rslt     */
12092           486,  /* Obj_Generic_Interface        Other_Not_Visible       */
12093          1135   /* Obj_Generic_Interface        Other_Npes              */
12094         },
12095 
12096 
12097         /************************ Obj_Namelist_Grp **********************/
12098         /* By  14.1.2, a namelist group cannot be a named variable, a   */
12099         /* named constant, a construct name, a statement function, an   */
12100         /* internal procedure, a dummy procedure, an intrinsic proc,    */
12101         /* a derived type or a generic identifier.                      */
12102         /****************************************************************/
12103 
12104         { 561,  /* Obj_Namelist_Grp             Other_Var_Len_Ch        */
12105           563,  /* Obj_Namelist_Grp             Other_Var_Len_Arr       */
12106           567,  /* Obj_Namelist_Grp             Other_Expl_Interface    */
12107           573,  /* Obj_Namelist_Grp             Other_Use_Func          */
12108           575,  /* Obj_Namelist_Grp             Other_Use_Subr          */
12109           558,  /* Obj_Namelist_Grp             Other_Use_Variable      */
12110          1038,  /* Obj_Namelist_Grp             Other_Use_Dummy_Arg     */
12111                 /* Cannot define something after it has been used.      */
12112 
12113           921,  /* Obj_Namelist_Grp             Other_Host_Assoc        */
12114           923,  /* Obj_Namelist_Grp             Other_Use_Assoc         */
12115           863,  /* Obj_Namelist_Grp             Other_Use_Char_Rslt     */
12116           486,  /* Obj_Namelist_Grp             Other_Not_Visible       */
12117          1135   /* Obj_Namelist_Grp             Other_Npes              */
12118         },
12119 
12120 
12121         /************************ Obj_Stmt_Func *************************/
12122         /* By  14.1.2, a statement function cannot be a named variable, */
12123         /* a named constant, a construct name, a generic identifier, an */
12124         /* internal procedure, a dummy procedure, an intrinsic proc,    */
12125         /* a derived type or a namelist group.  Also see 12.5.4.        */
12126         /****************************************************************/
12127 
12128         { 561,  /* Obj_Stmt_Func                Other_Var_Len_Ch        */
12129           563,  /* Obj_Stmt_Func                Other_Var_Len_Arr       */
12130           567,  /* Obj_Stmt_Func                Other_Expl_Interface    */
12131           573,  /* Obj_Stmt_Func                Other_Use_Func          */
12132           575,  /* Obj_Stmt_Func                Other_Use_Subr          */
12133           558,  /* Obj_Stmt_Func                Other_Use_Variable      */
12134          1038,  /* Obj_Stmt_Func                Other_Use_Dummy_Arg     */
12135                 /* Cannot define something after it has been used.      */
12136 
12137           921,  /* Obj_Stmt_Func                Other_Host_Assoc        */
12138           923,  /* Obj_Stmt_Func                Other_Use_Assoc         */
12139             0,  /* Obj_Stmt_Func                Other_Use_Char_Rslt     */
12140           486,  /* Obj_Stmt_Func                Other_Not_Visible       */
12141          1135   /* Obj_Stmt_Func                Other_Npes              */
12142         },
12143 
12144 
12145         /************************ Obj_Construct *************************/
12146         /* By  14.1.2, a construct cannot be a named variable, a named  */
12147         /* constant, a statement function, a generic identifier, an     */
12148         /* internal procedure, a dummy procedure, an intrinsic proc,    */
12149         /* a derived type or a namelist group.                          */
12150         /****************************************************************/
12151 
12152         { 561,  /* Obj_Construct                Other_Var_Len_Ch        */
12153           563,  /* Obj_Construct                Other_Var_Len_Arr       */
12154           567,  /* Obj_Construct                Other_Expl_Interface    */
12155           573,  /* Obj_Construct                Other_Use_Func          */
12156           575,  /* Obj_Construct                Other_Use_Subr          */
12157           558,  /* Obj_Construct                Other_Use_Variable      */
12158          1038,  /* Obj_Construct                Other_Use_Dummy_Arg     */
12159                 /* Cannot define something after it has been used.      */
12160 
12161           921,  /* Obj_Construct                Other_Host_Assoc        */
12162           923,  /* Obj_Construct                Other_Use_Assoc         */
12163           863,  /* Obj_Construct                Other_Use_Char_Rslt     */
12164           486,  /* Obj_Construct                Other_Not_Visible       */
12165          1135   /* Obj_Construct                Other_Npes              */
12166         },
12167 
12168 
12169         /************************ Obj_Entry_Func ************************/
12170         /* This is the name on an ENTRY statement in an external        */
12171         /* FUNCTION.    This allows anything legal on a result name to  */
12172         /* be specified here.   Then if a different result name is      */
12173         /* specified errors are issued at that time saying to use the   */
12174         /* result name, not the function name to declare type, shape,   */
12175         /* target or pointer.                                           */
12176         /****************************************************************/
12177 
12178         {   0,  /* Obj_Entry_Func               Other_Var_Len_Ch        */
12179             0,  /* Obj_Entry_Func               Other_Var_Len_Arr       */
12180           567,  /* Obj_Entry_Func               Other_Expl_Interface    */
12181             0,  /* Obj_Entry_Func               Other_Use_Func          */
12182           575,  /* Obj_Entry_Func               Other_Use_Subr          */
12183           558,  /* Obj_Entry_Func               Other_Use_Variable      */
12184          1038,  /* Obj_Entry_Func               Other_Use_Dummy_Arg     */
12185                 /* Cannot define something after it has been used.      */
12186 
12187           921,  /* Obj_Entry_Func               Other_Host_Assoc        */
12188           923,  /* Obj_Entry_Func               Other_Use_Assoc         */
12189           863,  /* Obj_Entry_Func               Other_Use_Char_Rslt     */
12190           486,  /* Obj_Entry_Func               Other_Not_Visible       */
12191          1135   /* Obj_Entry_Func               Other_Npes              */
12192         },
12193 
12194 
12195         /************************ Obj_Entry_Subr ************************/
12196         /* This is the name on an ENTRY statement in an external        */
12197         /* SUBROUTINE.  One just knows that a SUBROUTINE can't have     */
12198         /* a type, or a shape, or much of anything else.        (2.2.3) */
12199         /****************************************************************/
12200 
12201         { 561,  /* Obj_Entry_Subr               Other_Var_Len_Ch        */
12202           563,  /* Obj_Entry_Subr               Other_Var_Len_Arr       */
12203           567,  /* Obj_Entry_Subr               Other_Expl_Interface    */
12204           573,  /* Obj_Entry_Subr               Other_Use_Func          */
12205             0,  /* Obj_Entry_Subr               Other_Use_Subr          */
12206           558,  /* Obj_Entry_Subr               Other_Use_Variable      */
12207          1038,  /* Obj_Entry_Subr               Other_Use_Dummy_Arg     */
12208                 /* Cannot define something after it has been used.      */
12209 
12210           921,  /* Obj_Entry_Subr               Other_Host_Assoc        */
12211           923,  /* Obj_Entry_Subr               Other_Use_Assoc         */
12212           863,  /* Obj_Entry_Subr               Other_Use_Char_Rslt     */
12213           486,  /* Obj_Entry_Subr               Other_Not_Visible       */
12214          1135   /* Obj_Entry_Subr               Other_Npes              */
12215         },
12216 
12217 
12218         /************************ Obj_Intern_Func ***********************/
12219         /* This is the name on the FUNCTION statement for an internal   */
12220         /* FUNCTION.    12.3.2.1 states that a procedure must not have  */
12221         /* more than one explicit interface in a scoping unit.  12.3.1  */
12222         /* states that the interface of an internal procedure is always */
12223         /* an explicit interface in a scoping unit.     12.3 defines an */
12224         /* interface as the characteristics of the procedure, its       */
12225         /* dummy arguments and its function result (if a function).     */
12226         /* Since the actual definition of the internal procedure is the */
12227         /* explicit interface, it's characteristics cannot be defined   */
12228         /* outside of the internal procedure definition.                */
12229         /* Also 5.1 states that an entity must not be given any         */
12230         /* attribute more than once in a scoping unit.                  */
12231         /****************************************************************/
12232 
12233         { 561,  /* Obj_Intern_Func              Other_Var_Len_Ch        */
12234           563,  /* Obj_Intern_Func              Other_Var_Len_Arr       */
12235           567,  /* Obj_Intern_Func              Other_Expl_Interface    */
12236             0,  /* Obj_Intern_Func              Other_Use_Func          */
12237           575,  /* Obj_Intern_Func              Other_Use_Subr          */
12238             0,  /* Obj_Intern_Func              Other_Use_Variable      */
12239             0,  /* Obj_Intern_Func              Other_Use_Dummy_Arg     */
12240             0,  /* Obj_Intern_Func              Other_Host_Assoc        */
12241           923,  /* Obj_Intern_Func              Other_Use_Assoc         */
12242             0,  /* Obj_Intern_Func              Other_Use_Char_Rslt     */
12243           486,  /* Obj_Intern_Func              Other_Not_Visible       */
12244          1135   /* Obj_Intern_Func              Other_Npes              */
12245         },
12246 
12247 
12248         /************************ Obj_Intern_Subr ***********************/
12249         /* This is the name on a SUBROUTINE statement for an internal   */
12250         /* SUBROUTINE.  One just knows that a SUBROUTINE can't have     */
12251         /* a type, or a shape, or much of anything else.        (2.2.3) */
12252         /****************************************************************/
12253 
12254         { 561,  /* Obj_Intern_Subr              Other_Var_Len_Ch        */
12255           563,  /* Obj_Intern_Subr              Other_Var_Len_Arr       */
12256           567,  /* Obj_Intern_Subr              Other_Expl_Interface    */
12257           573,  /* Obj_Intern_Subr              Other_Use_Func          */
12258             0,  /* Obj_Intern_Subr              Other_Use_Subr          */
12259             0,  /* Obj_Intern_Subr              Other_Use_Variable      */
12260             0,  /* Obj_Intern_Subr              Other_Use_Dummy_Arg     */
12261                 /* Allow this, because it could be an actual arg and    */
12262                 /* we need to issue a meaningful error message. */
12263 
12264             0,  /* Obj_Intern_Subr              Other_Host_Assoc        */
12265           923,  /* Obj_Intern_Subr              Other_Use_Assoc         */
12266           863,  /* Obj_Intern_Subr              Other_Use_Char_Rslt     */
12267           486,  /* Obj_Intern_Subr              Other_Not_Visible       */
12268          1135   /* Obj_Intern_Subr              Other_Npes              */
12269         },
12270 
12271 
12272         /************************ Obj_Module_Func ***********************/
12273         /* This is the name on the FUNCTION statement for a module      */
12274         /* FUNCTION.    12.3.2.1 states that a procedure must not have  */
12275         /* more than one explicit interface in a scoping unit.  12.3.1  */
12276         /* states that the interface of a module procedure is always an */
12277         /* explicit interface in a scoping unit.        12.3 defines an */
12278         /* interface as the characteristics of the procedure, its       */
12279         /* dummy arguments and its function result (if a function).     */
12280         /* Since the actual definition of the module procedure is the   */
12281         /* explicit interface, it's characteristics cannot be defined   */
12282         /* outside of the module procedure definition.                  */
12283         /* Also 5.1 states that an entity must not be given any         */
12284         /* attribute more than once in a scoping unit.                  */
12285         /****************************************************************/
12286 
12287         { 561,  /* Obj_Module_Func              Other_Var_Len_Ch        */
12288           563,  /* Obj_Module_Func              Other_Var_Len_Arr       */
12289           567,  /* Obj_Module_Func              Other_Expl_Interface    */
12290           573,  /* Obj_Module_Func              Other_Use_Func          */
12291           575,  /* Obj_Module_Func              Other_Use_Subr          */
12292           558,  /* Obj_Module_Func              Other_Use_Variable      */
12293          1038,  /* Obj_Module_Func              Other_Use_Dummy_Arg     */
12294                 /* Cannot define something after it has been used.      */
12295 
12296           921,  /* Obj_Module_Func              Other_Host_Assoc        */
12297           923,  /* Obj_Module_Func              Other_Use_Assoc         */
12298             0,  /* Obj_Module_Func              Other_Use_Char_Rslt     */
12299           486,  /* Obj_Module_Func              Other_Not_Visible       */
12300          1135   /* Obj_Module_Func              Other_Npes              */
12301         },
12302 
12303 
12304         /************************ Obj_Module_Subr ***********************/
12305         /* This is the name on a SUBROUTINE statement for a module      */
12306         /* SUBROUTINE.  One just knows that a SUBROUTINE can't have     */
12307         /* a type, or a shape, or much of anything else.        (2.2.3) */
12308         /****************************************************************/
12309 
12310         { 561,  /* Obj_Module_Subr              Other_Var_Len_Ch        */
12311           563,  /* Obj_Module_Subr              Other_Var_Len_Arr       */
12312           567,  /* Obj_Module_Subr              Other_Expl_Interface    */
12313           573,  /* Obj_Module_Subr              Other_Use_Func          */
12314           575,  /* Obj_Module_Subr              Other_Use_Subr          */
12315           558,  /* Obj_Module_Subr              Other_Use_Variable      */
12316          1038,  /* Obj_Module_Subr              Other_Use_Dummy_Arg     */
12317                 /* Cannot define something after it has been used.      */
12318 
12319           921,  /* Obj_Module_Subr              Other_Host_Assoc        */
12320           923,  /* Obj_Module_Subr              Other_Use_Assoc         */
12321           863,  /* Obj_Module_Subr              Other_Use_Char_Rslt     */
12322           486,  /* Obj_Module_Subr              Other_Not_Visible       */
12323          1135   /* Obj_Module_Subr              Other_Npes              */
12324         },
12325 
12326 
12327         /************************ Obj_Sf_Darg ***************************/
12328         /* This is the dummy argument used in the statement function    */
12329         /* definition.  It is defined in 5.1.1.5 and 12.5.4.            */
12330         /****************************************************************/
12331 
12332         { 561,  /* Obj_Sf_Darg                  Other_Var_Len_Ch        */
12333           563,  /* Obj_Sf_Darg                  Other_Var_Len_Arr       */
12334           567,  /* Obj_Sf_Darg                  Other_Expl_Interface    */
12335           573,  /* Obj_Sf_Darg                  Other_Use_Func          */
12336           575,  /* Obj_Sf_Darg                  Other_Use_Subr          */
12337             0,  /* Obj_Sf_Darg                  Other_Use_Variable      */
12338             0,  /* Obj_Sf_Darg                  Other_Use_Dummy_Arg     */
12339             0,  /* Obj_Sf_Darg                  Other_Host_Assoc        */
12340             0,  /* Obj_Sf_Darg                  Other_Use_Assoc         */
12341             0,  /* Obj_Sf_Darg                  Other_Use_Char_Rslt     */
12342           486,  /* Obj_Sf_Darg                  Other_Not_Visible       */
12343          1135   /* Obj_Sf_Darg                  Other_Npes              */
12344         },
12345 
12346         /************************ Obj_Sf_Actual_Arg *********************/
12347         /* This is the actual argument used when a statement function   */
12348         /* is referenced.       It is defined in 5.1.1.5 and 12.5.4.    */
12349         /****************************************************************/
12350 
12351         {   0,  /* Obj_Sf_Actual_Arg            Other_Var_Len_Ch        */
12352             0,  /* Obj_Sf_Actual_Arg            Other_Var_Len_Arr       */
12353           761,  /* Obj_Sf_Actual_Arg            Other_Expl_Interface    */
12354           761,  /* Obj_Sf_Actual_Arg            Other_Use_Func          */
12355           761,  /* Obj_Sf_Actual_Arg            Other_Use_Subr          */
12356             0,  /* Obj_Sf_Actual_Arg            Other_Use_Variable      */
12357             0,  /* Obj_Sf_Actual_Arg            Other_Use_Dummy_Arg     */
12358             0,  /* Obj_Sf_Actual_Arg            Other_Host_Assoc        */
12359             0,  /* Obj_Sf_Actual_Arg            Other_Use_Assoc         */
12360             0,  /* Obj_Sf_Actual_Arg            Other_Use_Char_Rslt     */
12361           486,  /* Obj_Sf_Actual_Arg            Other_Not_Visible       */
12362         0       /* Obj_Sf_Actual_Arg            Other_Npes              */
12363         },
12364 
12365         /************************ Obj_Var_Len_Ch ************************/
12366         /* This is a variable length character (automatic or            */
12367         /* adjustable). This is not called until the length has been    */
12368         /* resolved at the end of pass1.  If the length resolves to a   */
12369         /* constant, fnd_semantic_err is not called.    If it resolves  */
12370         /* to a non-constant, fnd_semantic_err is called with this.     */
12371         /* (5.1 discussion)     The specification-expr of a type-param- */
12372         /* value may be a nonconstant expression provided the           */
12373         /* specification expression is in an interface body or in the   */
12374         /* specification part of a subprogram.  If the data object      */
12375         /* being declared depends on the value of such a nonconstant    */
12376         /* expression and is not a dummy argument, such an object is    */
12377         /* called an automatic data object.  An automatic data object   */
12378         /* must not appear in a SAVE or DATA statement nor be declared  */
12379         /* with a SAVE attribute nor be initially defined by an =       */
12380         /* initialization-expr.                                         */
12381         /****************************************************************/
12382 
12383         {   0,  /* Obj_Var_Len_Ch               Other_Var_Len_Ch        */
12384                 /* This could be implicitly typed as variable length    */
12385                 /* character and then be in a character statement.      */
12386 
12387             0,  /* Obj_Var_Len_Ch               Other_Var_Len_Arr       */
12388 
12389           579,  /* Obj_Var_Len_Ch               Other_Expl_Interface    */
12390             0,  /* Obj_Var_Len_Ch               Other_Use_Func          */
12391           581,  /* Obj_Var_Len_Ch               Other_Use_Subr          */
12392             0,  /* Obj_Var_Len_Ch               Other_Use_Variable      */
12393             0,  /* Obj_Var_Len_Ch               Other_Use_Dummy_Arg     */
12394 
12395           924,  /* Obj_Var_Len_Ch               Other_Host_Assoc        */
12396           925,  /* Obj_Var_Len_Ch               Other_Use_Assoc         */
12397             0,  /* Obj_Var_Len_Ch               Other_Use_Char_Rslt     */
12398           486,  /* Obj_Var_Len_Ch               Other_Not_Visible       */
12399          1137   /* Obj_Var_Len_Ch               Other_Npes              */
12400         },
12401 
12402 
12403         /************************ Obj_Var_Len_Arr ***********************/
12404         /* This is an explicit-shape array.  It can be adjustable or    */
12405         /* automatic.   It is not known that this is a variable length  */
12406         /* array until the end of pass1.  These originally look like    */
12407         /* an explicit shape array with unknown size.                   */
12408         /* This must be a dummy argument, a function result, or an      */
12409         /* automatic object.                                            */
12410         /****************************************************************/
12411 
12412         {   0,  /* Obj_Var_Len_Arr              Other_Var_Len_Ch        */
12413             0,  /* Obj_Var_Len_Arr              Other_Var_Len_Arr       */
12414 
12415           579,  /* Obj_Var_Len_Arr              Other_Expl_Interface    */
12416           672,  /* Obj_Var_Len_Arr              Other_Use_Func          */
12417           588,  /* Obj_Var_Len_Arr              Other_Use_Subr          */
12418             0,  /* Obj_Var_Len_Arr              Other_Use_Variable      */
12419             0,  /* Obj_Var_Len_Arr              Other_Use_Dummy_Arg     */
12420 
12421           926,  /* Obj_Var_Len_Arr              Other_Host_Assoc        */
12422           927,  /* Obj_Var_Len_Arr              Other_Use_Assoc         */
12423             0,  /* Obj_Var_Len_Arr              Other_Use_Char_Rslt     */
12424           486,  /* Obj_Var_Len_Arr              Other_Not_Visible       */
12425          1137   /* Obj_Var_Len_Arr              Other_Npes              */
12426         },
12427 
12428 
12429         /************************ Obj_Sym_Constant_Arr ******************/
12430         /* A symbolic constant array is an array where at least one of  */
12431         /* the bounds contains a symbolic constant expression.          */
12432         /* At end pass1, array bounds are resolved.                     */
12433         /* If they are constant, semantic checking is done, if they     */
12434         /* have symbolic constant bounds, fnd_semantic_err is called    */
12435         /* again for the object, using Obj_Sym_Constant_Arr.  There is  */
12436         /* nothing that can be a symbolic constant array that cannot    */
12437         /* be an array with constant bounds.  This is a Cray extension. */
12438         /****************************************************************/
12439 
12440         {   0,  /* Obj_Sym_Constant_Arr         Other_Var_Len_Ch        */
12441             0,  /* Obj_Sym_Constant_Arr         Other_Var_Len_Arr       */
12442 
12443           579,  /* Obj_Sym_Constant_Arr         Other_Expl_Interface    */
12444             0,  /* Obj_Sym_Constant_Arr         Other_Use_Func          */
12445           588,  /* Obj_Sym_Constant_Arr         Other_Use_Subr          */
12446             0,  /* Obj_Sym_Constant_Arr         Other_Use_Variable      */
12447             0,  /* Obj_Sym_Constant_Arr         Other_Use_Dummy_Arg     */
12448 
12449           926,  /* Obj_Sym_Constant_Arr         Other_Host_Assoc        */
12450           927,  /* Obj_Sym_Constant_Arr         Other_Use_Assoc         */
12451             0,  /* Obj_Sym_Constant_Arr         Other_Use_Char_Rslt     */
12452           486,  /* Obj_Sym_Constant_Arr         Other_Not_Visible       */
12453          1137   /* Obj_Sym_Constant_Arr         Other_Npes              */
12454         },
12455 
12456         /************************ Obj_Interface_Func ********************/
12457         /* This is the name of the FUNCTION on an interface body.       */
12458         /* 12.3.2.1 states that a procedure must not have more than     */
12459         /* one explicit interface in a scoping unit.    12.3.1 states   */
12460         /* that specifying an external or dummy procedure in an         */
12461         /* interface block, causes it to have an explicit interface.    */
12462         /* 12.3 defines an interface as the characteristics of the      */
12463         /* procedure, its dummy arguments and its function result (if   */
12464         /* it's a function).  Since the actual definition of the module */
12465         /* procedure is the explicit interface, it's characteristics    */
12466         /* cannot be defined outside of the module procedure            */
12467         /* definition.  Also 5.1 states that an entity must not be      */
12468         /* given any attribute more than once in a scoping unit.        */
12469         /****************************************************************/
12470 
12471         { 610,  /* Obj_Interface_Func           Other_Var_Len_Ch        */
12472           611,  /* Obj_Interface_Func           Other_Var_Len_Arr       */
12473           613,  /* Obj_Interface_Func           Other_Expl_Interface    */
12474           616,  /* Obj_Interface_Func           Other_Use_Func          */
12475           617,  /* Obj_Interface_Func           Other_Use_Subr          */
12476           557,  /* Obj_Interface_Func           Other_Use_Variable      */
12477          1037,  /* Obj_Interface_Func           Other_Use_Dummy_Arg     */
12478 
12479           930,  /* Obj_Interface_Func           Other_Host_Assoc        */
12480           931,  /* Obj_Interface_Func           Other_Use_Assoc         */
12481             0,  /* Obj_Interface_Func           Other_Use_Char_Rslt     */
12482           486,  /* Obj_Interface_Func           Other_Not_Visible       */
12483          1136   /* Obj_Interface_Func           Other_Npes              */
12484         },
12485 
12486 
12487         /************************ Obj_Interface_Subr ********************/
12488         /* This is the name of the SUBROUTINE on an interface body.     */
12489         /* This may be a dummy procedure        (12.3.2.1) discussion   */
12490         /* Subroutines can't be typed, shaped or anything else.         */
12491         /****************************************************************/
12492 
12493         { 610,  /* Obj_Interface_Subr           Other_Var_Len_Ch        */
12494           611,  /* Obj_Interface_Subr           Other_Var_Len_Arr       */
12495           613,  /* Obj_Interface_Subr           Other_Expl_Interface    */
12496           616,  /* Obj_Interface_Subr           Other_Use_Func          */
12497           617,  /* Obj_Interface_Subr           Other_Use_Subr          */
12498           557,  /* Obj_Interface_Subr           Other_Use_Variable      */
12499          1037,  /* Obj_Interface_Subr           Other_Use_Dummy_Arg     */
12500 
12501           932,  /* Obj_Interface_Subr           Other_Host_Assoc        */
12502           933,  /* Obj_Interface_Subr           Other_Use_Assoc         */
12503           864,  /* Obj_Interface_Subr           Other_Use_Char_Rslt     */
12504           486,  /* Obj_Interface_Subr           Other_Not_Visible       */
12505          1136   /* Obj_Interface_Subr           Other_Npes              */
12506         },
12507 
12508 
12509         /************************ Obj_Use_Extern_Func *******************/
12510         /* This is an external function in an expression.               */
12511         /****************************************************************/
12512 
12513         {   0,  /* Obj_Use_Extern_Func          Other_Var_Len_Ch        */
12514             0,  /* Obj_Use_Extern_Func          Other_Var_Len_Arr       */
12515             0,  /* Obj_Use_Extern_Func          Other_Expl_Interface    */
12516             0,  /* Obj_Use_Extern_Func          Other_Use_Func          */
12517           632,  /* Obj_Use_Extern_Func          Other_Use_Subr          */
12518           557,  /* Obj_Use_Extern_Func          Other_Use_Variable      */
12519          1037,  /* Obj_Use_Extern_Func          Other_Use_Dummy_Arg     */
12520             0,  /* Obj_Use_Extern_Func          Other_Host_Assoc        */
12521             0,  /* Obj_Use_Extern_Func          Other_Use_Assoc         */
12522             0,  /* Obj_Use_Extern_Func          Other_Use_Char_Rslt     */
12523           486,  /* Obj_Use_Extern_Func          Other_Not_Visible       */
12524          1136   /* Obj_Use_Extern_Func          Other_Npes              */
12525         },
12526 
12527 
12528         /************************ Obj_Use_Extern_Subr *******************/
12529         /* This is an external subroutine in an expression.             */
12530         /* Subroutines can't be typed, ranked or anything else.         */
12531         /****************************************************************/
12532 
12533         { 635,  /* Obj_Use_Extern_Subr          Other_Var_Len_Ch        */
12534           636,  /* Obj_Use_Extern_Subr          Other_Var_Len_Arr       */
12535             0,  /* Obj_Use_Extern_Subr          Other_Expl_Interface    */
12536           639,  /* Obj_Use_Extern_Subr          Other_Use_Func          */
12537             0,  /* Obj_Use_Extern_Subr          Other_Use_Subr          */
12538           557,  /* Obj_Use_Extern_Subr          Other_Use_Variable      */
12539          1037,  /* Obj_Use_Extern_Subr          Other_Use_Dummy_Arg     */
12540             0,  /* Obj_Use_Extern_Subr          Other_Host_Assoc        */
12541             0,  /* Obj_Use_Extern_Subr          Other_Use_Assoc         */
12542           864,  /* Obj_Use_Extern_Subr          Other_Use_Char_Rslt     */
12543           486,  /* Obj_Use_Extern_Subr          Other_Not_Visible       */
12544          1136   /* Obj_Use_Extern_Subr          Other_Npes              */
12545         },
12546 
12547 
12548         /************************ Obj_Use_In_Expr ***********************/
12549         /*      This is something referenced in an expression.          */
12550         /****************************************************************/
12551 
12552         {   0,  /* Obj_Use_In_Expr              Other_Var_Len_Ch        */
12553             0,  /* Obj_Use_In_Expr              Other_Var_Len_Arr       */
12554             0,  /* Obj_Use_In_Expr              Other_Expl_Interface    */
12555             0,  /* Obj_Use_In_Expr              Other_Use_Func          */
12556           643,  /* Obj_Use_In_Expr              Other_Use_Subr          */
12557             0,  /* Obj_Use_In_Expr              Other_Use_Variable      */
12558             0,  /* Obj_Use_In_Expr              Other_Use_Dummy_Arg     */
12559             0,  /* Obj_Use_In_Expr              Other_Host_Assoc        */
12560             0,  /* Obj_Use_In_Expr              Other_Use_Assoc         */
12561             0,  /* Obj_Use_In_Expr              Other_Use_Char_Rslt     */
12562           486,  /* Obj_Use_In_Expr              Other_Not_Visible       */
12563             0   /* Obj_Use_In_Expr              Other_Npes              */
12564         },
12565 
12566 
12567         /************************ Obj_Use_Derived_Type ******************/
12568         /* This is a name used to type something as a derived type.     */
12569         /* Derived types can't be variables, constants, functions,      */
12570         /* or dummy args.       ( 14.1.2)                               */
12571         /****************************************************************/
12572 
12573         { 646,  /* Obj_Use_Derived_Type         Other_Var_Len_Ch        */
12574           647,  /* Obj_Use_Derived_Type         Other_Var_Len_Arr       */
12575           649,  /* Obj_Use_Derived_Type         Other_Expl_Interface    */
12576           652,  /* Obj_Use_Derived_Type         Other_Use_Func          */
12577           653,  /* Obj_Use_Derived_Type         Other_Use_Subr          */
12578           548,  /* Obj_Use_Derived_Type         Other_Use_Variable      */
12579          1040,  /* Obj_Use_Derived_Type         Other_Use_Dummy_Arg     */
12580             0,  /* Obj_Use_Derived_Type         Other_Host_Assoc        */
12581             0,  /* Obj_Use_Derived_Type         Other_Use_Assoc         */
12582           866,  /* Obj_Use_Derived_Type         Other_Use_Char_Rslt     */
12583           486,  /* Obj_Use_Derived_Type         Other_Not_Visible       */
12584          1136   /* Obj_Use_Derived_Type         Other_Npes              */
12585         },
12586 
12587 
12588         /************************ Obj_Use_Spec_Expr *********************/
12589         /* The rules for a specification expression are as follows:     */
12590         /* Each object must be a constant, a dummy arg (that doesn't    */
12591         /* have the OPTIONAL or the INTENT (OUT) attributes), in a      */
12592         /* common block, accessible by USE or HOST association.         */
12593         /* Specific rules are found in 7.1.6.2                          */
12594         /****************************************************************/
12595 
12596         {   0,  /* Obj_Use_Spec_Expr            Other_Var_Len_Ch        */
12597             0,  /* Obj_Use_Spec_Expr            Other_Var_Len_Arr       */
12598             0,  /* Obj_Use_Spec_Expr            Other_Expl_Interface    */
12599             0,  /* Obj_Use_Spec_Expr            Other_Use_Func          */
12600           518,  /* Obj_Use_Spec_Expr            Other_Use_Subr          */
12601             0,  /* Obj_Use_Spec_Expr            Other_Use_Variable      */
12602             0,  /* Obj_Use_Spec_Expr            Other_Use_Dummy_Arg     */
12603             0,  /* Obj_Use_Spec_Expr            Other_Host_Assoc        */
12604             0,  /* Obj_Use_Spec_Expr            Other_Use_Assoc         */
12605             0,  /* Obj_Use_Spec_Expr            Other_Use_Char_Rslt     */
12606           486,  /* Obj_Use_Spec_Expr            Other_Not_Visible       */
12607             0   /* Obj_Use_Spec_Expr            Other_Npes              */
12608         },
12609 
12610         /********************** Obj_Use_Init_Expr ***********************/
12611         /* The rules for an initialization expression are as follows:   */
12612         /* It MUST be a CONSTANT.  It may be one of several INTRINSICS  */
12613         /* that are foldable.   (7.1.6.1)                               */
12614         /****************************************************************/
12615 
12616         { 605,  /* Obj_Use_Init_Expr            Other_Var_Len_Ch        */
12617           605,  /* Obj_Use_Init_Expr            Other_Var_Len_Arr       */
12618           605,  /* Obj_Use_Init_Expr            Other_Expl_Interface    */
12619           605,  /* Obj_Use_Init_Expr            Other_Use_Func          */
12620           605,  /* Obj_Use_Init_Expr            Other_Use_Subr          */
12621             0,  /* Obj_Use_Init_Expr            Other_Use_Variable      */
12622             0,  /* Obj_Use_Init_Expr            Other_Use_Dummy_Arg     */
12623             0,  /* Obj_Use_Init_Expr            Other_Host_Assoc        */
12624             0,  /* Obj_Use_Init_Expr            Other_Use_Assoc         */
12625             0,  /* Obj_Use_Init_Expr            Other_Use_Char_Rslt     */
12626           486,  /* Obj_Use_Init_Expr            Other_Not_Visible       */
12627          1212   /* Obj_Use_Init_Expr            Other_Npes              */
12628         }
12629 
12630 };
12631 
12632 # ifdef _DEBUG
12633 
12634 char    *attr_obj_type_str[Attr_Done]   = {
12635                 "Attr_Assumed_Type_Ch",
12636                 "Attr_Dimension",
12637                 "Attr_Explicit_Shp_Arr",
12638                 "Attr_Assumed_Size_Arr",
12639                 "Attr_Deferred_Shp_Arr",
12640                 "Attr_Assumed_Shp_Arr",
12641                 "Attr_Allocatable",     
12642                 "Attr_Parameter",
12643                 "Attr_Intent",
12644                 "Attr_Optional",
12645                 "Attr_Private",
12646                 "Attr_Public",          
12647                 "Attr_Target",
12648                 "Attr_Equivalence",
12649                 "Attr_Save",
12650                 "Attr_Pointer",
12651                 "Attr_External",
12652                 "Attr_Intrinsic",
12653                 "Attr_Data_Init",
12654                 "Attr_Type",
12655                 "Attr_Co_Array",
12656                 "Attr_Automatic",
12657                 "Attr_Volatile"
12658                 };
12659 
12660 char    *dir_obj_type_str[Dir_Done]     =       {
12661                 "Dir_Auxiliary",
12662                 "Dir_Vfunction",
12663                 "Dir_No_Side_Effects",
12664                 "Dir_Inline",
12665                 "Dir_Symmetric",
12666                 "Dir_Copy_Assumed_Shape",
12667                 "Dir_Align_Symbol",
12668                 "Dir_Fill_Symbol",
12669                 "Dir_Section_Gp",
12670                 "Dir_Section_Non_Gp",
12671                 "Dir_Ignore_TKR",
12672                 "Dir_Optional",
12673                 "Dir_Ipa",
12674                 "Dir_Name"
12675                 };
12676 
12677 char    *name_obj_type_str[Name_Done]   = {
12678                 "Name_Variable",
12679                 "Name_Common_Obj",
12680                 "Name_Cri_Pointer",
12681                 "Name_Cri_Pointee",
12682                 "Name_Cri_Ch_Pointee",
12683                 "Name_Func_Result",
12684                 "Name_Dummy_Arg",
12685                 "Name_Module_Proc",
12686                 "Name_Derived_Type",
12687                 "Name_Generic_Interface",
12688                 "Name_Namelist_Group",
12689                 "Name_Namelist_Group_Obj",
12690                 "Name_Statement_Func",
12691                 "Name_Construct",
12692                 "Name_Intrinsic_Func",
12693                 "Name_Intrinsic_Subr",
12694                 "Name_Module",
12695                 "Name_Blockdata",
12696                 "Name_Program",
12697                 "Name_Function",
12698                 "Name_Curr_Func",
12699                 "Name_Curr_Subr",
12700                 "Name_Internal_Func",
12701                 "Name_Internal_Subr"
12702                 };
12703 
12704 char    *obj_type_str[Obj_Done] = {
12705                 "Obj_Assum_Type_Ch",
12706                 "Obj_Expl_Shp_Arr",
12707                 "Obj_Assum_Size_Arr",
12708                 "Obj_Defrd_Shp_Arr",
12709                 "Obj_Assum_Shp_Arr",
12710                 "Obj_Co_Array",
12711                 "Obj_Allocatable",
12712                 "Obj_Constant",
12713                 "Obj_Intent",
12714                 "Obj_Optional",
12715                 "Obj_Private",
12716                 "Obj_Public",
12717                 "Obj_Target",
12718                 "Obj_Equiv",
12719                 "Obj_Saved",
12720                 "Obj_Automatic",
12721                 "Obj_Pointer",
12722                 "Obj_Dcl_Extern",
12723                 "Obj_Dcl_Intrin",
12724                 "Obj_Data_Init",
12725                 "Obj_Typed",
12726                 "Obj_Volatile",
12727 
12728                 "Obj_Copy_Assumed_Shape",
12729                 "Obj_Auxiliary",
12730                 "Obj_Vfunction",
12731                 "Obj_No_Side_Effects",
12732                 "Obj_Symmetric",
12733                 "Obj_Inline",
12734                 "Obj_Ipa",
12735                 "Obj_Align_Symbol",
12736                 "Obj_Fill_Symbol",
12737                 "Obj_Section_Gp",
12738                 "Obj_Section_Non_Gp",
12739                 "Obj_Ignore_Type_And_Kind",
12740                 "Obj_Optional_Dir",
12741                 "Obj_Name",
12742         
12743                 "Obj_Cri_Ptr",
12744                 "Obj_Cri_Pointee",
12745                 "Obj_Cri_Ch_Pointee",
12746                 "Obj_Ntry_Func_Result",
12747                 "Obj_Dummy_Arg",
12748                 "Obj_Common_Obj",
12749                 "Obj_Namelist_Obj",
12750                 "Obj_Module_Proc",
12751                 "Obj_Derived_Type",
12752                 "Obj_Generic_Interface",
12753                 "Obj_Namelist_Grp",
12754                 "Obj_Stmt_Func",
12755                 "Obj_Construct",
12756                 "Obj_Entry_Func",
12757                 "Obj_Entry_Subr",
12758                 "Obj_Intern_Func",
12759                 "Obj_Intern_Subr",
12760                 "Obj_Module_Func",
12761                 "Obj_Module_Subr",
12762                 "Obj_Sf_Darg",
12763 
12764                 "Obj_Sf_Actual_Arg",
12765                 "Obj_Var_Len_Ch",
12766                 "Obj_Var_Len_Arr",
12767                 "Obj_Sym_Constant_Array",
12768                 "Obj_Interface_Func",
12769                 "Obj_Interface_Subr",
12770                 "Obj_Use_Extern_Func",
12771                 "Obj_Use_Extern_Subr",
12772                 "Obj_Use_In_Expr",
12773                 "Obj_Use_Derived_Type",
12774                 "Obj_Use_Spec_Expr",
12775                 "Obj_Use_Init_Expr"
12776                 };
12777 
12778 
12779 
12780 char    *other_obj_type_str[Other_Done] = {
12781                 "Other_Var_Len_Ch",
12782                 "Other_Var_Len_Arr",    
12783                 "Other_Expl_Interface",
12784                 "Other_Use_Func",
12785                 "Other_Use_Subr",
12786                 "Other_Use_Variable",
12787                 "Other_Use_Dummy_Arg",
12788                 "Other_Host_Assoc",
12789                 "Other_Use_Assoc",
12790                 "Other_Use_Char_Rslt",
12791                 "Other_Not_Visible",
12792                 "Other_Npes"
12793                 };
12794 # endif
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines