Open64 (mfef90, whirl2f, and IR tools)
TAG: version-openad; SVN changeset: 916
|
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