wiki:FortranSubset

Version 4 (modified by wuwenhao, 12 months ago) ( diff )

--

Supported FORTRAN 2018 Subset

Back:FortranOverview

WIP FORTRAN 2018 parse-rules

R868 namelist stmt

R1404 module

Planned FORTRAN 2018 parse-rules for DRB (Data-Race Benchmark)

The coverage rate of supported FORTRAN2018 features

Supported rule coverage summary
Chp. #Supported #Unsupported #Total
Chp.5 0 (0.0%) 16 (100.0%) 16
Chp.6 0 (0.0%) 11 (100.0%) 11
Chp.7 0 (0.0%) 76 (100.0%) 76
Chp.8 0 (0.0%) 74 (100.0%) 74
Chp.9 0 (0.0%) 42 (100.0%) 42
Chp.10 0 (0.0%) 55 (100.0%) 55
Chp.11 0 (0.0%) 82 (100.0%) 82
Chp.12 0 (0.0%) 31 (100.0%) 31
Chp.13 0 (0.0%) 21 (100.0%) 21
Chp.14 0 (0.0%) 22 (100.0%) 22
Chp.15 0 (0.0%) 44 (100.0%) 44
Ext.CIVL 0 (0.0%) 0 (100.0%) 0
Total 0 (0.0%) 474 (100.0%) 474

Status of all FORTRAN 2018 parse-rules

RuleID Rule Name Status
Chapter.5
R501 program Supported
R502 program unit Supported
R503 external subprogram Supported
R504 specification part Supported
R505 implicit part
R506 implicit part stmt
R507 declaration construct
R508 specification construct
R509 execution part
R510 execution part construct Supported
R511 internal subprogram part
R512 internal subprogram
R513 other specification stmt
R514 executable construct
R515 action stmt
R516 keyword
Chapter.6
R601 alphanumeric character
R602 underscore
R603 name
R604 constant
R605 literal constant
R606 named constant
R607 int constant
R608 intrinsic operator
R609 defined operator
R610 extended intrinsic op
R611 label Supported
Chapter.7
R701 type param value
R702 type spec
R703 declaration type spec Supported
R704 intrinsictype spec Supported
R705 integer type spec Supported
R706 kind selector
R707 signed int literal constant
R708 int literal constant
R709 kind param
R710 signed digit string
R711 digit string
R712 sign
R713 signed real literal constant Supported
R714 real literal constant Supported
R715 significand
R716 exponent letter
R717 exponent
R718 complex literal constant Supported
R719 real part Supported
R720 imag part Supported
R721 char selector Supported
R722 length selector
R723 char length Supported
R724 char literal constant Supported
R725 logical literal constant Supported
R726 derived type def
R727 derived type stmt
R728 type attr spec
R729 private or sequence
R730 end type stmt
R731 sequence stmt
R732 type param def stmt
R733 type param decl
R734 type param attr spec
R735 component part
R736 component def stmt
R737 data component def stmt
R738 component attr spec
R739 component decl
R740 component array spec
R741 proc component def stmt
R742 proc component attr spec
R743 component initialization
R744 initial data target
R745 private components stmt
R746 type bound procedure part
R747 binding private stmt
R748 type bound procedure stmt
R749 type bound procedure stmt
R750 type bound proc decl
R751 type bound generic stmt
R752 binding attr
R753 final procedure stmt
R754 derived type spec
R755 type param spec
R756 structure constructor
R757 component spec
R758 component data source
R759 enum def
R760 enum def stmt
R761 enumerator def stmt
R762 enumerator
R763 end enum stmt
R764 boz literal constant
R765 binary constant
R766 octal constant
R767 hex constant
R768 hex digit
R769 array constructor
R770 ac spec
R771 lbracket
R772 rbracket
R773 ac value
R774 ac implied do
R775 ac implied do control
R776 ac do variable
Chapter.8
R801 type declaration stmt Supported
R802 attr spec Supported
R803 entity decl Supported
R804 object name
R805 initialization Supported
R806 null init Supported
R807 access spec
R808 language binding spec
R809 coarray spec
R810 deferred coshape spec
R811 explicit coshape spec
R812 lower cobound
R813 upper cobound
R814 dimension spec
R815 array spec Supported
R816 eplicit shape spec
R817 lower bound
R818 upper bound
R819 assumed shape spec
R820 deferred shape spec
R821 assumed implied spec
R822 assumed size spec
R823 implied shape or assumed size spec
R824 implied shape spec
R825 assumed rank spec
R826 intent spec Supported
R827 access stmt
R828 access id
R829 allocatable stmt
R830 allocatable decl
R831 asynchronous stmt
R832 bind stmt
R833 bind entity
R834 codimension stmt
R835 codimension decl
R836 contiguous stmt
R837 data stmt Supported
R838 data stmt set Supported
R839 data stmt object Supported
R840 data implied do
R841 data i do object
R842 data i do variable
R843 data stmt value Supported
R844 data stmt repeat
R845 data stmt constant
R846 int constant subobject
R847 constant subobject
R848 dimension stmt
R849 intent stmt
R850 optional stmt
R851 parameter stmt Supported
R852 named constant def Supported
R853 pinter stmt
R854 pointer decl
R855 protected stmt
R856 save stmt Supported
R857 saved entity Supported
R858 proc pointer name
R859 target stmt
R860 target decl
R861 value stmt
R862 volatile stmt
R863 implicit stmt
R864 implicit spec
R865 letter spec
R866 implicit none spec
R867 import stmt
R868 namelist stmt
R869 namelist group object
R870 equivalence stmt Supported
R871 euivalence set Supported
R872 equivalence object Supported
R873 common stmt Supported
R874 common block object Supported
Chapter.9
R901 designator Supported
R902 variable
R903 variable name
R904 logical variable
R905 char variable
R906 default char variable
R907 int variable
R908 substring Supported
R909 parent string
R910 substring range Supported
R911 data ref
R912 part ref
R913 structure component
R914 coindexed named object
R915 complex part designator
R916 type param inquiry
R917 array element
R918 array section
R919 subscript
R920 section subscript Supported
R921 subscript triplet
R922 stride
R923 vector subscript
R924 image selector
R925 cosubscript
R926 image selector spec
R927 allocate stmt
R928 alloc opt
R929 errmsg variable
R930 source expr
R931 allocation
R932 allocate object
R933 allocate shape spec
R934 lower bound expr
R935 upper bound expr
R936 allocate coarray spec
R937 allocate coshape spec
R938 nullify stmt
R939 pointer object
R940 deallocate stmt
R941 dealloc opt
R942 stat variable
Chapter.10
R1001 primary
R1002 level 1 expr
R1003 defined unary op
R1004 mult operand
R1005 add operand
R1006 level 2 expr
R1007 power op
R1008 mult op
R1009 add op
R1010 level 3 expr
R1011 concat op
R1012 level 4 expr
R1013 rel op
R1014 and operand
R1015 or operand
R1016 equiv operand
R1017 level 5 expr
R1018 not op
R1019 and op
R1020 or op
R1021 equiv op
R1022 expr
R1023 defined binary op
R1024 logical expr
R1025 default char expr
R1026 int expr
R1027 numeric expr
R1028 specification expr
R1029 constant expr
R1030 default char constant expr
R1031 int constant expr
R1032 assignment stmt
R1033 pointer assignment stmt
R1034 data pointer object
R1035 bounds spec
R1036 bounds remapping
R1037 data target
R1038 proc pointer object
R1039 proc component ref
R1040 proc target
R1041 where stmt
R1042 where construct
R1043 where construct stmt
R1044 where body construct
R1045 where assignment stmt
R1046 mask expr
R1047 masked elsewhere stmt
R1048 elsewhere stmt
R1049 end where stmt
R1050 forall construct
R1051 forall construct stmt
R1052 forall body construct
R1053 forall assignment stmt
R1054 end forall stmt
R1055 forall stmt
Chapter.11
R1101 block Supported
R1102 associate construct
R1103 associate stmt
R1104 association
R1105 selector
R1106 end associate stmt
R1107 block construct
R1108 block stmt
R1109 block specification part
R1110 end block stmt
R1111 change team construct
R1112 change team stmt
R1113 coarray association
R1114 end change team stmt
R1115 team value
R1116 critical construct
R1117 critical stmt
R1118 end critical stmt
R1119 do construct Supported
R1120 do stmt Supported
R1121 label do stmt
R1122 nonlabel do stmt
R1123 loop control
R1124 do variable
R1125 concurrent header
R1126 concurrent control
R1127 concurrent limit
R1128 concurrent step
R1129 concurrent locality
R1130 locality spec
R1131 end do
R1132 end do stmt Supported
R1133 cycle stmt
R1134 if construct
R1135 if then stmt
R1136 else if stmt
R1137 else stmt
R1138 end if stmt
R1139 if stmt
R1140 case construct
R1141 select case stmt
R1142 case stmt
R1143 end select stmt
R1144 case expr
R1145 case selector
R1146 case value range
R1147 case value
R1148 select rank construct
R1149 select rank stmt
R1150 select rank case stmt
R1151 end select rank stmt
R1152 select type construct
R1153 select type stmt
R1154 type guard stmt
R1155 end select type stmt
R1156 exit stmt
R1157 goto stmt Supported
R1158 computed goto stmt Supported
R1159 continue stmt
R1160 stop stmt
R1161 error stop stmt
R1162 stop code
R1163 fail image stmt
R1164 sync all stmt
R1165 sync stat
R1166 sync images stmt
R1167 image set
R1168 sync memory stmt
R1169 sync team stmt
R1170 event post stmt
R1171 event variable
R1172 event wait stmt
R1173 event wait spec
R1174 until spec
R1175 form team stmt
R1176 team number
R1177 team variable
R1178 form team spec
R1179 lock stmt
R1180 lock stat
R1181 unlcok stmt
R1182 lock variable
Chapter.12
R1201 io unit
R1202 file until number
R1203 internal file variable
R1204 open stmt Supported
R1205 connect spec Supported
R1206 file name expr
R1207 iomsg variable
R1208 close stmt Supported
R1209 close spec Supported
R1210 read stmt Supported
R1211 write stmt Supported
R1212 print stmt
R1213 io control spec Supported
R1214 id variable
R1215 format Supported
R1216 input item Supported
R1217 output item
R1218 io implied do
R1219 io implied do object
R1220 io implied do control
R1221 dtv type spec
R1222 wait stmt
R1223 wait spec
R1224 backspace stmt
R1225 endfile stmt
R1226 rewind stmt
R1227 position spec
R1228 flush stmt
R1229 flush spec
R1230 inquire stmt
R1231 inquire spec
Chapter.13
R1301 format stmt Supported
R1302 format specification Supported
R1303 format items Supported
R1304 format item Supported
R1305 unlimited format item
R1306 r
R1307 data edit spec
R1308 w
R1309 m
R1310 d
R1311 e
R1312 v
R1313 control edit spec
R1314 k
R1315 position edit spec
R1316 n
R1317 sign edit desc
R1318 blank interp edit desc
R1319 round edit desc
R1320 decimal edit desc
R1321 char string edit spec
Chapter.14
R1401 main program
R1402 program stmt
R1403 end program stmt
R1404 module
R1405 module stmt
R1406 end module stmt
R1407 module subprogram part
R1408 module subprogram
R1409 use stmt
R1410 module nature
R1411 rename
R1412 only
R1413 only use stmt
R1414 local defined operator
R1415 use defined operator
R1416 submodule
R1417 submodule stmt
R1418 parent identifier
R1419 end submodule stmt
R1420 block data
R1421 block data stmt
R1422 end block data stmt
Chapter.15
R1501 interface block
R1502 interface specification
R1503 interface stmt
R1504 end interface stmt
R1505 interface body
R1506 procedure stmt
R1507 specific procedure
R1508 generic spec
R1509 defined io generic spec
R1510 generic stmt
R1511 external stmt Supported
R1512 procedure declaration stmt
R1513 proc interface
R1514 proc attr spec
R1515 proc decl
R1516 interface name
R1517 proc pointer init
R1518 initial proc target
R1519 intrinsic stmt Supported
R1520 function reference Supported
R1521 call stmt Supported
R1522 procedure designator Supported
R1523 actual arg spec
R1524 actual arg
R1525 alt return spec
R1526 prefix Supported
R1527 prefix spec Supported
R1528 proc language binding spec
R1529 function subprogram Supported
R1530 function stmt Supported
R1531 dummy arg stmt
R1532 suffix
R1533 end function stmt Supported
R1534 subroutine subprogram
R1535 subroutine stmt Supported
R1536 dymmy arg
R1537 end subroutine stmt Supported
R1538 separate module subprogram
R1539 mp subprogram stmt
R1540 end mp subprogram stmt
R1541 entry stmt
R1542 return stmt Supported
R1543 contains stmt
R1544 stmt fucntion stmt
CIVL extensions
R898 pragma stmt Supported
Note: See TracWiki for help on using the wiki.