Changes between Version 3 and Version 4 of FortranSubset
- Timestamp:
- 05/21/25 14:46:29 (12 months ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
FortranSubset
v3 v4 1 1 = Supported FORTRAN 2018 Subset = 2 2 [wiki:FortranOverview#a1.1.Basicgoals Back:FortranOverview] 3 4 == WIP FORTRAN 2018 parse-rules == 5 R868 namelist stmt 6 7 R1404 module 8 9 == Planned FORTRAN 2018 parse-rules for DRB (Data-Race Benchmark) == 10 11 3 12 4 13 == The coverage rate of supported FORTRAN2018 features == … … 20 29 21 30 == Status of all FORTRAN 2018 parse-rules == 31 22 32 || RuleID || Rule Name || Status || 23 33 |||||| Chapter.5 || 24 || R501 || program || ||25 || R502 || program unit || ||26 || R503 || external subprogram || ||27 || R504 || specification part || ||34 || R501 || program || Supported || 35 || R502 || program unit || Supported || 36 || R503 || external subprogram || Supported || 37 || R504 || specification part || Supported || 28 38 || R505 || implicit part || || 29 39 || R506 || implicit part stmt || || … … 31 41 || R508 || specification construct || || 32 42 || R509 || execution part || || 33 || R510 || execution part construct || ||43 || R510 || execution part construct || Supported || 34 44 || R511 || internal subprogram part || || 35 45 || R512 || internal subprogram || || … … 49 59 || R609 || defined operator || || 50 60 || R610 || extended intrinsic op || || 51 || R611 || label || ||61 || R611 || label || Supported || 52 62 |||||| Chapter.7 || 53 63 || R701 || type param value || || 54 64 || R702 || type spec || || 55 || R703 || declaration type spec || ||56 || R704 || intrinsictype spec || ||57 || R705 || integer type spec || ||65 || R703 || declaration type spec || Supported || 66 || R704 || intrinsictype spec || Supported || 67 || R705 || integer type spec || Supported || 58 68 || R706 || kind selector || || 59 69 || R707 || signed int literal constant || || … … 63 73 || R711 || digit string || || 64 74 || R712 || sign || || 65 || R713 || signed real literal constant || ||66 || R714 || real literal constant || ||75 || R713 || signed real literal constant || Supported || 76 || R714 || real literal constant || Supported || 67 77 || R715 || significand || || 68 78 || R716 || exponent letter || || 69 79 || R717 || exponent || || 70 || R718 || complex literal constant || ||71 || R719 || real part || ||72 || R720 || imag part || ||73 || R721 || char selector || ||80 || R718 || complex literal constant || Supported || 81 || R719 || real part || Supported || 82 || R720 || imag part || Supported || 83 || R721 || char selector || Supported || 74 84 || R722 || length selector || || 75 || R723 || char length || ||76 || R724 || char literal constant || ||77 || R725 || logical literal constant || ||85 || R723 || char length || Supported || 86 || R724 || char literal constant || Supported || 87 || R725 || logical literal constant || Supported || 78 88 || R726 || derived type def || || 79 89 || R727 || derived type stmt || || … … 128 138 || R776 || ac do variable || || 129 139 |||||| Chapter.8 || 130 || R801 || type declaration stmt || ||131 || R802 || attr spec || ||132 || R803 || entity decl || ||140 || R801 || type declaration stmt || Supported || 141 || R802 || attr spec || Supported || 142 || R803 || entity decl || Supported || 133 143 || R804 || object name || || 134 || R805 || initialization || ||135 || R806 || null init || ||144 || R805 || initialization || Supported || 145 || R806 || null init || Supported || 136 146 || R807 || access spec || || 137 147 || R808 || language binding spec || || … … 142 152 || R813 || upper cobound || || 143 153 || R814 || dimension spec || || 144 || R815 || array spec || ||154 || R815 || array spec || Supported || 145 155 || R816 || eplicit shape spec || || 146 156 || R817 || lower bound || || … … 153 163 || R824 || implied shape spec || || 154 164 || R825 || assumed rank spec || || 155 || R826 || intent spec || ||165 || R826 || intent spec || Supported || 156 166 || R827 || access stmt || || 157 167 || R828 || access id || || … … 164 174 || R835 || codimension decl || || 165 175 || R836 || contiguous stmt || || 166 || R837 || data stmt || ||167 || R838 || data stmt set || ||168 || R839 || data stmt object || ||176 || R837 || data stmt || Supported || 177 || R838 || data stmt set || Supported || 178 || R839 || data stmt object || Supported || 169 179 || R840 || data implied do || || 170 180 || R841 || data i do object || || 171 181 || R842 || data i do variable || || 172 || R843 || data stmt value || ||182 || R843 || data stmt value || Supported || 173 183 || R844 || data stmt repeat || || 174 184 || R845 || data stmt constant || || … … 178 188 || R849 || intent stmt || || 179 189 || R850 || optional stmt || || 180 || R851 || parameter stmt || ||181 || R852 || named constant def || ||190 || R851 || parameter stmt || Supported || 191 || R852 || named constant def || Supported || 182 192 || R853 || pinter stmt || || 183 193 || R854 || pointer decl || || 184 194 || R855 || protected stmt || || 185 || R856 || save stmt || ||186 || R857 || saved entity || ||195 || R856 || save stmt || Supported || 196 || R857 || saved entity || Supported || 187 197 || R858 || proc pointer name || || 188 198 || R859 || target stmt || || … … 197 207 || R868 || namelist stmt || || 198 208 || R869 || namelist group object || || 199 || R870 || equivalence stmt || ||200 || R871 || euivalence set || ||201 || R872 || equivalence object || ||202 || R873 || common stmt || ||203 || R874 || common block object || ||209 || R870 || equivalence stmt || Supported || 210 || R871 || euivalence set || Supported || 211 || R872 || equivalence object || Supported || 212 || R873 || common stmt || Supported || 213 || R874 || common block object || Supported || 204 214 |||||| Chapter.9 || 205 || R901 || designator || ||215 || R901 || designator || Supported || 206 216 || R902 || variable || || 207 217 || R903 || variable name || || … … 210 220 || R906 || default char variable || || 211 221 || R907 || int variable || || 212 || R908 || substring || ||222 || R908 || substring || Supported || 213 223 || R909 || parent string || || 214 || R910 || substring range || ||224 || R910 || substring range || Supported || 215 225 || R911 || data ref || || 216 226 || R912 || part ref || || … … 222 232 || R918 || array section || || 223 233 || R919 || subscript || || 224 || R920 || section subscript || ||234 || R920 || section subscript || Supported || 225 235 || R921 || subscript triplet || || 226 236 || R922 || stride || || … … 302 312 || R1055 || forall stmt || || 303 313 |||||| Chapter.11 || 304 || R1101 || block || ||314 || R1101 || block || Supported || 305 315 || R1102 || associate construct || || 306 316 || R1103 || associate stmt || || … … 320 330 || R1117 || critical stmt || || 321 331 || R1118 || end critical stmt || || 322 || R1119 || do construct || ||323 || R1120 || do stmt || ||332 || R1119 || do construct || Supported || 333 || R1120 || do stmt || Supported || 324 334 || R1121 || label do stmt || || 325 335 || R1122 || nonlabel do stmt || || … … 333 343 || R1130 || locality spec || || 334 344 || R1131 || end do || || 335 || R1132 || end do stmt || ||345 || R1132 || end do stmt || Supported || 336 346 || R1133 || cycle stmt || || 337 347 || R1134 || if construct || || … … 358 368 || R1155 || end select type stmt || || 359 369 || R1156 || exit stmt || || 360 || R1157 || goto stmt || ||361 || R1158 || computed goto stmt || ||370 || R1157 || goto stmt || Supported || 371 || R1158 || computed goto stmt || Supported || 362 372 || R1159 || continue stmt || || 363 373 || R1160 || stop stmt || || … … 388 398 || R1202 || file until number || || 389 399 || R1203 || internal file variable || || 390 || R1204 || open stmt || ||391 || R1205 || connect spec || ||400 || R1204 || open stmt || Supported || 401 || R1205 || connect spec || Supported || 392 402 || R1206 || file name expr || || 393 403 || R1207 || iomsg variable || || 394 || R1208 || close stmt || ||395 || R1209 || close spec || ||396 || R1210 || read stmt || ||397 || R1211 || write stmt || ||404 || R1208 || close stmt || Supported || 405 || R1209 || close spec || Supported || 406 || R1210 || read stmt || Supported || 407 || R1211 || write stmt || Supported || 398 408 || R1212 || print stmt || || 399 || R1213 || io control spec || ||409 || R1213 || io control spec || Supported || 400 410 || R1214 || id variable || || 401 || R1215 || format || ||402 || R1216 || input item || ||411 || R1215 || format || Supported || 412 || R1216 || input item || Supported || 403 413 || R1217 || output item || || 404 414 || R1218 || io implied do || || … … 417 427 || R1231 || inquire spec || || 418 428 |||||| Chapter.13 || 419 || R1301 || format stmt || ||420 || R1302 || format specification || ||421 || R1303 || format items || ||422 || R1304 || format item || ||429 || R1301 || format stmt || Supported || 430 || R1302 || format specification || Supported || 431 || R1303 || format items || Supported || 432 || R1304 || format item || Supported || 423 433 || R1305 || unlimited format item || || 424 434 || R1306 || r || || … … 472 482 || R1509 || defined io generic spec || || 473 483 || R1510 || generic stmt || || 474 || R1511 || external stmt || ||484 || R1511 || external stmt || Supported || 475 485 || R1512 || procedure declaration stmt || || 476 486 || R1513 || proc interface || || … … 480 490 || R1517 || proc pointer init || || 481 491 || R1518 || initial proc target || || 482 || R1519 || intrinsic stmt || ||483 || R1520 || function reference || ||484 || R1521 || call stmt || ||485 || R1522 || procedure designator || ||492 || R1519 || intrinsic stmt || Supported || 493 || R1520 || function reference || Supported || 494 || R1521 || call stmt || Supported || 495 || R1522 || procedure designator || Supported || 486 496 || R1523 || actual arg spec || || 487 497 || R1524 || actual arg || || 488 498 || R1525 || alt return spec || || 489 || R1526 || prefix || ||490 || R1527 || prefix spec || ||499 || R1526 || prefix || Supported || 500 || R1527 || prefix spec || Supported || 491 501 || R1528 || proc language binding spec || || 492 || R1529 || function subprogram || ||493 || R1530 || function stmt || ||502 || R1529 || function subprogram || Supported || 503 || R1530 || function stmt || Supported || 494 504 || R1531 || dummy arg stmt || || 495 505 || R1532 || suffix || || 496 || R1533 || end function stmt || ||506 || R1533 || end function stmt || Supported || 497 507 || R1534 || subroutine subprogram || || 498 || R1535 || subroutine stmt || ||508 || R1535 || subroutine stmt || Supported || 499 509 || R1536 || dymmy arg || || 500 || R1537 || end subroutine stmt || ||510 || R1537 || end subroutine stmt || Supported || 501 511 || R1538 || separate module subprogram || || 502 512 || R1539 || mp subprogram stmt || || 503 513 || R1540 || end mp subprogram stmt || || 504 514 || R1541 || entry stmt || || 505 || R1542 || return stmt || ||515 || R1542 || return stmt || Supported || 506 516 || R1543 || contains stmt || || 507 517 || R1544 || stmt fucntion stmt || || 508 518 |||||| CIVL extensions || 509 || R898 || pragma stmt || ||510 511 519 || R898 || pragma stmt || Supported || 520 521
