Changes between Version 8 and Version 9 of FortranOverview


Ignore:
Timestamp:
05/16/19 14:12:21 (7 years ago)
Author:
wuwenhao
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • FortranOverview

    v8 v9  
    11= CIVL: Fortran Front End Overview =
    2 
     2[wiki:DeveloperPage#ToolDevelopment Back:DeveloperPage]
    33== 1. Goals ==
    44`FortranFrontEnd` is a `CIVL` component generating CIVL abstract syntax trees (`CIVL IR`)
     
    2525==== In-progress ====
    2626* Support parsing
    27  [https://vsl.cis.udel.edu/lib/sw/civl/ a frequently used FORTRAN subset]
     27 [wiki:FortranSubset a frequently used FORTRAN subset]
    2828 (of `FORTRAN 2018` standard);
    2929* Support interpreting
    30  [https://vsl.cis.udel.edu/trac/civl/wiki/FortranOverview#A.1.Supported supported FORTRAN behaviors]
     30 [wiki:FortranSubset supported FORTRAN behaviors]
    3131 in the form of `CIVL IR`;
    3232* Support parsing
     
    104104
    105105=== A.1. Overview ===
    106 |||||||| '''Supported rule coverage summary'''         ||
    107 || Chp.     || #Supported   || #Unsupported ||  #Total ||
    108 || Chp.5    ||   0 (0.0%)   ||  16 (100.0%) ||   16    ||
    109 || Chp.6    ||   0 (0.0%)   ||  11 (100.0%) ||   11    ||
    110 || Chp.7    ||   0 (0.0%)   ||  76 (100.0%) ||   76    ||
    111 || Chp.8    ||   0 (0.0%)   ||  74 (100.0%) ||   74    ||
    112 || Chp.9    ||   0 (0.0%)   ||  42 (100.0%) ||   42    ||
    113 || Chp.10   ||   0 (0.0%)   ||  55 (100.0%) ||   55    ||
    114 || Chp.11   ||   0 (0.0%)   ||  82 (100.0%) ||   82    ||
    115 || Chp.12   ||   0 (0.0%)   ||  31 (100.0%) ||   31    ||
    116 || Chp.13   ||   0 (0.0%)   ||  21 (100.0%) ||   21    ||
    117 || Chp.14   ||   0 (0.0%)   ||  22 (100.0%) ||   22    ||
    118 || Chp.15   ||   0 (0.0%)   ||  44 (100.0%) ||   44    ||
    119 || Ext.CIVL ||   0 (0.0%)   ||   0 (100.0%) ||    0    ||
    120 || Total    ||   0 (0.0%)   || 474 (100.0%) ||  474    ||
    121106
    122107=== A.2. Details ===
    123 
    124 || RuleID || Rule Name                          || Status      ||
    125 |||||| Chapter.5                                               ||
    126 || R501   || program                            ||  ||
    127 || R502   || program unit                       ||  ||
    128 || R503   || external subprogram                ||  ||
    129 || R504   || specification part                 ||  ||
    130 || R505   || implicit part                      ||  ||
    131 || R506   || implicit part stmt                 ||  ||
    132 || R507   || declaration construct              ||  ||
    133 || R508   || specification construct            ||  ||
    134 || R509   || execution part                     ||  ||
    135 || R510   || execution part construct           ||  ||
    136 || R511   || internal subprogram part           ||  ||
    137 || R512   || internal subprogram                ||  ||
    138 || R513   || other specification stmt           ||  ||
    139 || R514   || executable construct               ||  ||
    140 || R515   || action stmt                        ||  ||
    141 || R516   || keyword                            ||  ||
    142 |||||| Chapter.6 ||
    143 || R601   || alphanumeric character             ||  ||
    144 || R602   || underscore                         ||  ||
    145 || R603   || name                               ||  ||
    146 || R604   || constant                           ||  ||
    147 || R605   || literal constant                   ||  ||
    148 || R606   || named constant                     ||  ||
    149 || R607   || int constant                       ||  ||
    150 || R608   || intrinsic operator                 ||  ||
    151 || R609   || defined operator                   ||  ||
    152 || R610   || extended intrinsic op              ||  ||
    153 || R611   || label                              ||  ||
    154 |||||| Chapter.7 ||
    155 || R701   || type param value                   ||  ||
    156 || R702   || type spec                          ||  ||
    157 || R703   || declaration type spec              ||  ||
    158 || R704   || intrinsictype spec                 ||  ||
    159 || R705   || integer type spec                  ||  ||
    160 || R706   || kind selector                      ||  ||
    161 || R707   || signed int literal constant        ||  ||
    162 || R708   || int literal constant               ||  ||
    163 || R709   || kind param                         ||  ||
    164 || R710   || signed digit string                ||  ||
    165 || R711   || digit string                       ||  ||
    166 || R712   || sign                               ||  ||
    167 || R713   || signed real literal constant       ||  ||
    168 || R714   || real literal constant              ||  ||
    169 || R715   || significand                        ||  ||
    170 || R716   || exponent letter                    ||  ||
    171 || R717   || exponent                           ||  ||
    172 || R718   || complex literal constant           ||  ||
    173 || R719   || real part                          ||  ||
    174 || R720   || imag part                          ||  ||
    175 || R721   || char selector                      ||  ||
    176 || R722   || length selector                    ||  ||
    177 || R723   || char length                        ||  ||
    178 || R724   || char literal constant              ||  ||
    179 || R725   || logical literal constant           ||  ||
    180 || R726   || derived type def                   ||  ||
    181 || R727   || derived type stmt                  ||  ||
    182 || R728   || type attr spec                     ||  ||
    183 || R729   || private or sequence                ||  ||
    184 || R730   || end type stmt                      ||  ||
    185 || R731   || sequence stmt                      ||  ||
    186 || R732   || type param def stmt                ||  ||
    187 || R733   || type param decl                    ||  ||
    188 || R734   || type param attr spec               ||  ||
    189 || R735   || component part                     ||  ||
    190 || R736   || component def stmt                 ||  ||
    191 || R737   || data component def stmt            ||  ||
    192 || R738   || component attr spec                ||  ||
    193 || R739   || component decl                     ||  ||
    194 || R740   || component array spec               ||  ||
    195 || R741   || proc component def stmt            ||  ||
    196 || R742   || proc component attr spec           ||  ||
    197 || R743   || component initialization           ||  ||
    198 || R744   || initial data target                ||  ||
    199 || R745   || private components stmt            ||  ||
    200 || R746   || type bound procedure part          ||  ||
    201 || R747   || binding private stmt               ||  ||
    202 || R748   || type bound procedure stmt          ||  ||
    203 || R749   || type bound procedure stmt          ||  ||
    204 || R750   || type bound proc decl               ||  ||
    205 || R751   || type bound generic stmt            ||  ||
    206 || R752   || binding attr                       ||  ||
    207 || R753   || final procedure stmt               ||  ||
    208 || R754   || derived type spec                  ||  ||
    209 || R755   || type param spec                    ||  ||
    210 || R756   || structure constructor              ||  ||
    211 || R757   || component spec                     ||  ||
    212 || R758   || component data source              ||  ||
    213 || R759   || enum def                           ||  ||
    214 || R760   || enum def stmt                      ||  ||
    215 || R761   || enumerator def stmt                ||  ||
    216 || R762   || enumerator                         ||  ||
    217 || R763   || end enum stmt                      ||  ||
    218 || R764   || boz literal constant               ||  ||
    219 || R765   || binary constant                    ||  ||
    220 || R766   || octal constant                     ||  ||
    221 || R767   || hex constant                       ||  ||
    222 || R768   || hex digit                          ||  ||
    223 || R769   || array constructor                  ||  ||
    224 || R770   || ac spec                            ||  ||
    225 || R771   || lbracket                           ||  ||
    226 || R772   || rbracket                           ||  ||
    227 || R773   || ac value                           ||  ||
    228 || R774   || ac implied do                      ||  ||
    229 || R775   || ac implied do control              ||  ||
    230 || R776   || ac do variable                     ||  ||
    231 |||||| Chapter.8 ||
    232 || R801   || type declaration stmt              ||  ||
    233 || R802   || attr spec                          ||  ||
    234 || R803   || entity decl                        ||  ||
    235 || R804   || object name                        ||  ||
    236 || R805   || initialization                     ||  ||
    237 || R806   || null init                          ||  ||
    238 || R807   || access spec                        ||  ||
    239 || R808   || language binding spec              ||  ||
    240 || R809   || coarray spec                       ||  ||
    241 || R810   || deferred coshape spec              ||  ||
    242 || R811   || explicit coshape spec              ||  ||
    243 || R812   || lower cobound                      ||  ||
    244 || R813   || upper cobound                      ||  ||
    245 || R814   || dimension spec                     ||  ||
    246 || R815   || array spec                         ||  ||
    247 || R816   || eplicit shape spec                 ||  ||
    248 || R817   || lower bound                        ||  ||
    249 || R818   || upper bound                        ||  ||
    250 || R819   || assumed shape spec                 ||  ||
    251 || R820   || deferred shape spec                ||  ||
    252 || R821   || assumed implied spec               ||  ||
    253 || R822   || assumed size spec                  ||  ||
    254 || R823   || implied shape or assumed size spec ||  ||
    255 || R824   || implied shape spec                 ||  ||
    256 || R825   || assumed rank spec                  ||  ||
    257 || R826   || intent spec                        ||  ||
    258 || R827   || access stmt                        ||  ||
    259 || R828   || access id                          ||  ||
    260 || R829   || allocatable stmt                   ||  ||
    261 || R830   || allocatable decl                   ||  ||
    262 || R831   || asynchronous stmt                  ||  ||
    263 || R832   || bind stmt                          ||  ||
    264 || R833   || bind entity                        ||  ||
    265 || R834   || codimension stmt                   ||  ||
    266 || R835   || codimension decl                   ||  ||
    267 || R836   || contiguous stmt                    ||  ||
    268 || R837   || data stmt                          ||  ||
    269 || R838   || data stmt set                      ||  ||
    270 || R839   || data stmt object                   ||  ||
    271 || R840   || data implied do                    ||  ||
    272 || R841   || data i do object                   ||  ||
    273 || R842   || data i do variable                 ||  ||
    274 || R843   || data stmt value                    ||  ||
    275 || R844   || data stmt repeat                   ||  ||
    276 || R845   || data stmt constant                 ||  ||
    277 || R846   || int constant subobject             ||  ||
    278 || R847   || constant subobject                 ||  ||
    279 || R848   || dimension stmt                     ||  ||
    280 || R849   || intent stmt                        ||  ||
    281 || R850   || optional stmt                      ||  ||
    282 || R851   || parameter stmt                     ||  ||
    283 || R852   || named constant def                 ||  ||
    284 || R853   || pinter stmt                        ||  ||
    285 || R854   || pointer decl                       ||  ||
    286 || R855   || protected stmt                     ||  ||
    287 || R856   || save stmt                          ||  ||
    288 || R857   || saved entity                       ||  ||
    289 || R858   || proc pointer name                  ||  ||
    290 || R859   || target stmt                        ||  ||
    291 || R860   || target decl                        ||  ||
    292 || R861   || value stmt                         ||  ||
    293 || R862   || volatile stmt                      ||  ||
    294 || R863   || implicit stmt                      ||  ||
    295 || R864   || implicit spec                      ||  ||
    296 || R865   || letter spec                        ||  ||
    297 || R866   || implicit none spec                 ||  ||
    298 || R867   || import stmt                        ||  ||
    299 || R868   || namelist stmt                      ||  ||
    300 || R869   || namelist group object              ||  ||
    301 || R870   || equivalence stmt                   ||  ||
    302 || R871   || euivalence set                     ||  ||
    303 || R872   || equivalence object                 ||  ||
    304 || R873   || common stmt                        ||  ||
    305 || R874   || common block object                ||  ||
    306 |||||| Chapter.9                                    ||
    307 || R901   || designator                         ||  ||
    308 || R902   || variable                           ||  ||
    309 || R903   || variable name                      ||  ||
    310 || R904   || logical variable                   ||  ||
    311 || R905   || char variable                      ||  ||
    312 || R906   || default char variable              ||  ||
    313 || R907   || int variable                       ||  ||
    314 || R908   || substring                          ||  ||
    315 || R909   || parent string                      ||  ||
    316 || R910   || substring range                    ||  ||
    317 || R911   || data ref                           ||  ||
    318 || R912   || part ref                           ||  ||
    319 || R913   || structure component                ||  ||
    320 || R914   || coindexed named object             ||  ||
    321 || R915   || complex part designator            ||  ||
    322 || R916   || type param inquiry                 ||  ||
    323 || R917   || array element                      ||  ||
    324 || R918   || array section                      ||  ||
    325 || R919   || subscript                          ||  ||
    326 || R920   || section subscript                  ||  ||
    327 || R921   || subscript triplet                  ||  ||
    328 || R922   || stride                             ||  ||
    329 || R923   || vector subscript                   ||  ||
    330 || R924   || image selector                     ||  ||
    331 || R925   || cosubscript                        ||  ||
    332 || R926   || image selector spec                ||  ||
    333 || R927   || allocate stmt                      ||  ||
    334 || R928   || alloc opt                          ||  ||
    335 || R929   || errmsg variable                    ||  ||
    336 || R930   || source expr                        ||  ||
    337 || R931   || allocation                         ||  ||
    338 || R932   || allocate object                    ||  ||
    339 || R933   || allocate shape spec                ||  ||
    340 || R934   || lower bound expr                   ||  ||
    341 || R935   || upper bound expr                   ||  ||
    342 || R936   || allocate coarray spec              ||  ||
    343 || R937   || allocate coshape spec              ||  ||
    344 || R938   || nullify stmt                       ||  ||
    345 || R939   || pointer object                     ||  ||
    346 || R940   || deallocate stmt                    ||  ||
    347 || R941   || dealloc opt                        ||  ||
    348 || R942   || stat variable                      ||  ||
    349 |||||| Chapter.10 ||
    350 || R1001  || primary                            ||  ||
    351 || R1002  || level 1 expr                       ||  ||
    352 || R1003  || defined unary op                   ||  ||
    353 || R1004  || mult operand                       ||  ||
    354 || R1005  || add operand                        ||  ||
    355 || R1006  || level 2 expr                       ||  ||
    356 || R1007  || power op                           ||  ||
    357 || R1008  || mult op                            ||  ||
    358 || R1009  || add op                             ||  ||
    359 || R1010  || level 3 expr                       ||  ||
    360 || R1011  || concat op                          ||  ||
    361 || R1012  || level 4 expr                       ||  ||
    362 || R1013  || rel op                             ||  ||
    363 || R1014  || and operand                        ||  ||
    364 || R1015  || or operand                         ||  ||
    365 || R1016  || equiv operand                      ||  ||
    366 || R1017  || level 5 expr                       ||  ||
    367 || R1018  || not op                             ||  ||
    368 || R1019  || and op                             ||  ||
    369 || R1020  || or op                              ||  ||
    370 || R1021  || equiv op                           ||  ||
    371 || R1022  || expr                               ||  ||
    372 || R1023  || defined binary op                  ||  ||
    373 || R1024  || logical expr                       ||  ||
    374 || R1025  || default char expr                  ||  ||
    375 || R1026  || int expr                           ||  ||
    376 || R1027  || numeric expr                       ||  ||
    377 || R1028  || specification expr                 ||  ||
    378 || R1029  || constant expr                      ||  ||
    379 || R1030  || default char constant expr         ||  ||
    380 || R1031  || int constant expr                  ||  ||
    381 || R1032  || assignment stmt                    ||  ||
    382 || R1033  || pointer assignment stmt            ||  ||
    383 || R1034  || data pointer object                ||  ||
    384 || R1035  || bounds spec                        ||  ||
    385 || R1036  || bounds remapping                   ||  ||
    386 || R1037  || data target                        ||  ||
    387 || R1038  || proc pointer object                ||  ||
    388 || R1039  || proc component ref                 ||  ||
    389 || R1040  || proc target                        ||  ||
    390 || R1041  || where stmt                         ||  ||
    391 || R1042  || where construct                    ||  ||
    392 || R1043  || where construct stmt               ||  ||
    393 || R1044  || where body construct               ||  ||
    394 || R1045  || where assignment stmt              ||  ||
    395 || R1046  || mask expr                          ||  ||
    396 || R1047  || masked elsewhere stmt              ||  ||
    397 || R1048  || elsewhere stmt                     ||  ||
    398 || R1049  || end where stmt                     ||  ||
    399 || R1050  || forall construct                   ||  ||
    400 || R1051  || forall construct stmt              ||  ||
    401 || R1052  || forall body construct              ||  ||
    402 || R1053  || forall assignment stmt             ||  ||
    403 || R1054  || end forall stmt                    ||  ||
    404 || R1055  || forall stmt                        ||  ||
    405 |||||| Chapter.11 ||
    406 || R1101  || block                              ||  ||
    407 || R1102  || associate construct                ||  ||
    408 || R1103  || associate stmt                     ||  ||
    409 || R1104  || association                        ||  ||
    410 || R1105  || selector                           ||  ||
    411 || R1106  || end associate stmt                 ||  ||
    412 || R1107  || block construct                    ||  ||
    413 || R1108  || block stmt                         ||  ||
    414 || R1109  || block specification part           ||  ||
    415 || R1110  || end block stmt                     ||  ||
    416 || R1111  || change team construct              ||  ||
    417 || R1112  || change team stmt                   ||  ||
    418 || R1113  || coarray association                ||  ||
    419 || R1114  || end change team stmt               ||  ||
    420 || R1115  || team value                         ||  ||
    421 || R1116  || critical construct                 ||  ||
    422 || R1117  || critical stmt                      ||  ||
    423 || R1118  || end critical stmt                  ||  ||
    424 || R1119  || do construct                       ||  ||
    425 || R1120  || do stmt                            ||  ||
    426 || R1121  || label do stmt                      ||  ||
    427 || R1122  || nonlabel do stmt                   ||  ||
    428 || R1123  || loop control                       ||  ||
    429 || R1124  || do variable                        ||  ||
    430 || R1125  || concurrent header                  ||  ||
    431 || R1126  || concurrent control                 ||  ||
    432 || R1127  || concurrent limit                   ||  ||
    433 || R1128  || concurrent step                    ||  ||
    434 || R1129  || concurrent locality                ||  ||
    435 || R1130  || locality spec                      ||  ||
    436 || R1131  || end do                             ||  ||
    437 || R1132  || end do stmt                        ||  ||
    438 || R1133  || cycle stmt                         ||  ||
    439 || R1134  || if construct                       ||  ||
    440 || R1135  || if then stmt                       ||  ||
    441 || R1136  || else if stmt                       ||  ||
    442 || R1137  || else stmt                          ||  ||
    443 || R1138  || end if stmt                        ||  ||
    444 || R1139  || if stmt                            ||  ||
    445 || R1140  || case construct                     ||  ||
    446 || R1141  || select case stmt                   ||  ||
    447 || R1142  || case stmt                          ||  ||
    448 || R1143  || end select stmt                    ||  ||
    449 || R1144  || case expr                          ||  ||
    450 || R1145  || case selector                      ||  ||
    451 || R1146  || case value range                   ||  ||
    452 || R1147  || case value                         ||  ||
    453 || R1148  || select rank construct              ||  ||
    454 || R1149  || select rank stmt                   ||  ||
    455 || R1150  || select rank case stmt              ||  ||
    456 || R1151  || end select rank stmt               ||  ||
    457 || R1152  || select type construct              ||  ||
    458 || R1153  || select type stmt                   ||  ||
    459 || R1154  || type guard stmt                    ||  ||
    460 || R1155  || end select type stmt               ||  ||
    461 || R1156  || exit stmt                          ||  ||
    462 || R1157  || goto stmt                          ||  ||
    463 || R1158  || computed goto stmt                 ||  ||
    464 || R1159  || continue stmt                      ||  ||
    465 || R1160  || stop stmt                          ||  ||
    466 || R1161  || error stop stmt                    ||  ||
    467 || R1162  || stop code                          ||  ||
    468 || R1163  || fail image stmt                    ||  ||
    469 || R1164  || sync all stmt                      ||  ||
    470 || R1165  || sync stat                          ||  ||
    471 || R1166  || sync images stmt                   ||  ||
    472 || R1167  || image set                          ||  ||
    473 || R1168  || sync memory stmt                   ||  ||
    474 || R1169  || sync team stmt                     ||  ||
    475 || R1170  || event post stmt                    ||  ||
    476 || R1171  || event variable                     ||  ||
    477 || R1172  || event wait stmt                    ||  ||
    478 || R1173  || event wait spec                    ||  ||
    479 || R1174  || until spec                         ||  ||
    480 || R1175  || form team stmt                     ||  ||
    481 || R1176  || team number                        ||  ||
    482 || R1177  || team variable                      ||  ||
    483 || R1178  || form team spec                     ||  ||
    484 || R1179  || lock stmt                          ||  ||
    485 || R1180  || lock stat                          ||  ||
    486 || R1181  || unlcok stmt                        ||  ||
    487 || R1182  || lock variable                      ||  ||
    488 |||||| Chapter.12 ||
    489 || R1201  || io unit                            ||  ||
    490 || R1202  || file until number                  ||  ||
    491 || R1203  || internal file variable             ||  ||
    492 || R1204  || open stmt                          ||  ||
    493 || R1205  || connect spec                       ||  ||
    494 || R1206  || file name expr                     ||  ||
    495 || R1207  || iomsg variable                     ||  ||
    496 || R1208  || close stmt                         ||  ||
    497 || R1209  || close spec                         ||  ||
    498 || R1210  || read stmt                          ||  ||
    499 || R1211  || write stmt                         ||  ||
    500 || R1212  || print stmt                         ||  ||
    501 || R1213  || io control spec                    ||  ||
    502 || R1214  || id variable                        ||  ||
    503 || R1215  || format                             ||  ||
    504 || R1216  || input item                         ||  ||
    505 || R1217  || output item                        ||  ||
    506 || R1218  || io implied do                      ||  ||
    507 || R1219  || io implied do object               ||  ||
    508 || R1220  || io implied do control              ||  ||
    509 || R1221  || dtv type spec                      ||  ||
    510 || R1222  || wait stmt                          ||  ||
    511 || R1223  || wait spec                          ||  ||
    512 || R1224  || backspace stmt                     ||  ||
    513 || R1225  || endfile stmt                       ||  ||
    514 || R1226  || rewind stmt                        ||  ||
    515 || R1227  || position spec                      ||  ||
    516 || R1228  || flush stmt                         ||  ||
    517 || R1229  || flush spec                         ||  ||
    518 || R1230  || inquire stmt                       ||  ||
    519 || R1231  || inquire spec                       ||  ||
    520 |||||| Chapter.13                                   ||
    521 || R1301  || format stmt                        ||  ||
    522 || R1302  || format specification               ||  ||
    523 || R1303  || format items                       ||  ||
    524 || R1304  || format item                        ||  ||
    525 || R1305  || unlimited format item              ||  ||
    526 || R1306  || r                                  ||  ||
    527 || R1307  || data edit spec                     ||  ||
    528 || R1308  || w                                  ||  ||
    529 || R1309  || m                                  ||  ||
    530 || R1310  || d                                  ||  ||
    531 || R1311  || e                                  ||  ||
    532 || R1312  || v                                  ||  ||
    533 || R1313  || control edit spec                  ||  ||
    534 || R1314  || k                                  ||  ||
    535 || R1315  || position edit spec                 ||  ||
    536 || R1316  || n                                  ||  ||
    537 || R1317  || sign edit desc                     ||  ||
    538 || R1318  || blank interp edit desc             ||  ||
    539 || R1319  || round edit desc                    ||  ||
    540 || R1320  || decimal edit desc                  ||  ||
    541 || R1321  || char string edit spec              ||  ||
    542 |||||| Chapter.14                                   ||
    543 || R1401  || main program                       ||  ||
    544 || R1402  || program stmt                       ||  ||
    545 || R1403  || end program stmt                   ||  ||
    546 || R1404  || module                             ||  ||
    547 || R1405  || module stmt                        ||  ||
    548 || R1406  || end module stmt                    ||  ||
    549 || R1407  || module subprogram part             ||  ||
    550 || R1408  || module subprogram                  ||  ||
    551 || R1409  || use stmt                           ||  ||
    552 || R1410  || module nature                      ||  ||
    553 || R1411  || rename                             ||  ||
    554 || R1412  || only                               ||  ||
    555 || R1413  || only use stmt                      ||  ||
    556 || R1414  || local defined operator             ||  ||
    557 || R1415  || use defined operator               ||  ||
    558 || R1416  || submodule                          ||  ||
    559 || R1417  || submodule stmt                     ||  ||
    560 || R1418  || parent identifier                  ||  ||
    561 || R1419  || end submodule stmt                 ||  ||
    562 || R1420  || block data                         ||  ||
    563 || R1421  || block data stmt                    ||  ||
    564 || R1422  || end block data stmt                ||  ||
    565 |||||| Chapter.15                                   ||
    566 || R1501  || interface block                    ||  ||
    567 || R1502  || interface specification            ||  ||
    568 || R1503  || interface stmt                     ||  ||
    569 || R1504  || end interface stmt                 ||  ||
    570 || R1505  || interface body                     ||  ||
    571 || R1506  || procedure stmt                     ||  ||
    572 || R1507  || specific procedure                 ||  ||
    573 || R1508  || generic spec                       ||  ||
    574 || R1509  || defined io generic spec            ||  ||
    575 || R1510  || generic stmt                       ||  ||
    576 || R1511  || external stmt                      ||  ||
    577 || R1512  || procedure declaration stmt         ||  ||
    578 || R1513  || proc interface                     ||  ||
    579 || R1514  || proc attr spec                     ||  ||
    580 || R1515  || proc decl                          ||  ||
    581 || R1516  || interface name                     ||  ||
    582 || R1517  || proc pointer init                  ||  ||
    583 || R1518  || initial proc target                ||  ||
    584 || R1519  || intrinsic stmt                     ||  ||
    585 || R1520  || function reference                 ||  ||
    586 || R1521  || call stmt                          ||  ||
    587 || R1522  || procedure designator               ||  ||
    588 || R1523  || actual arg spec                    ||  ||
    589 || R1524  || actual arg                         ||  ||
    590 || R1525  || alt return spec                    ||  ||
    591 || R1526  || prefix                             ||  ||
    592 || R1527  || prefix spec                        ||  ||
    593 || R1528  || proc language binding spec         ||  ||
    594 || R1529  || function subprogram                ||  ||
    595 || R1530  || function stmt                      ||  ||
    596 || R1531  || dummy arg stmt                     ||  ||
    597 || R1532  || suffix                             ||  ||
    598 || R1533  || end function stmt                  ||  ||
    599 || R1534  || subroutine subprogram              ||  ||
    600 || R1535  || subroutine stmt                    ||  ||
    601 || R1536  || dymmy arg                          ||  ||
    602 || R1537  || end subroutine stmt                ||  ||
    603 || R1538  || separate module subprogram         ||  ||
    604 || R1539  || mp subprogram stmt                 ||  ||
    605 || R1540  || end mp subprogram stmt             ||  ||
    606 || R1541  || entry stmt                         ||  ||
    607 || R1542  || return stmt                        ||  ||
    608 || R1543  || contains stmt                      ||  ||
    609 || R1544  || stmt fucntion stmt                 ||  ||
    610 |||||| CIVL extensions                              ||
    611 || R898  || pragma stmt                         ||  ||
    612 
    613108
    614109== Appendix B. OpenMP directives ==