1! RUN: %python %S/test_errors.py %s %flang_fc1 2 character(kind=1,len=50) internal_file 3 character(kind=2,len=50) internal_file2 4 character(kind=4,len=50) internal_file4 5 character(kind=1,len=50) internal_fileA(20) 6 character(kind=1,len=111) msg 7 character(20) advance 8 character(20) :: cvar; 9 character, parameter :: const_internal_file = "(I6)" 10 character, parameter :: const_cvar*(*) = "Ceci n'est pas une pipe." 11 integer*1 stat1 12 integer*2 stat2, id2 13 integer*8 stat8 14 integer :: iunit = 10 15 integer, parameter :: junit = 11, const_size = 13, const_int = 15 16 integer :: vv(10) = 7 17 18 namelist /mmm/ mm1, mm2 19 namelist /nnn/ nn1, nn2 20 21 advance='no' 22 23 open(10) 24 25 read* 26 print*, 'Ok' 27 read(*) 28 read*, jj 29 read(*, *) jj 30 read(unit=*, *) jj 31 read(*, fmt=*) jj 32 read(*, '(I4)') jj 33 read(*, fmt='(I4)') jj 34 read(fmt='(I4)', unit=*) jj 35 read(iunit, *) jj 36 read(junit, *) jj 37 read(10, *) jj, cvar, cvar(7:17) 38 read(internal_file, *) jj 39 read(internal_fileA(3), *) jj 40 read(internal_fileA(4:9), *) jj 41 read(10, nnn) 42 read(internal_file, nnn) 43 read(internal_file, nml=nnn) 44 read(const_internal_file, *) 45 read(fmt=*, unit=internal_file) 46 read(nml=nnn, unit=internal_file) 47 read(iunit, nnn) 48 read(10, nml=nnn) 49 read(10, asynchronous='no') jj 50 read(10, asynchronous='yes') jj 51 read(10, eor=9, advance='no', fmt='(I4)') jj 52 read(10, eor=9, advance='no', fmt='(I4)') jj 53 read(10, asynchronous='yes', id=id) jj 54 read(10, '(I4)', advance='no', asynchronous='yes', blank='null', & 55 decimal='comma', end=9, eor=9, err=9, id=id, iomsg=msg, iostat=stat2, & 56 pad='no', round='processor_defined', size=kk) jj 57 58 read(internal_file2, *) jj 59 read(internal_file4, *) jj 60 61 !This is a valid statement but it's not what it looks like; "(internal-file)" 62 !must be parsed as a format expression, not as an internal unit. 63 read(internal_file) jj 64 65 !ERROR: If UNIT=internal-file appears, FMT or NML must also appear 66 read(internal_file, iostat=stat1) jj 67 68 !ERROR: Internal file must not have a vector subscript 69 read(internal_fileA(vv), *) jj 70 71 !ERROR: Input variable 'const_int' is not definable 72 !BECAUSE: '15_4' is not a variable or pointer 73 read(11, *) const_int 74 75 !ERROR: SIZE variable 'const_size' is not definable 76 !BECAUSE: '13_4' is not a variable or pointer 77 read(11, pos=ipos, size=const_size, end=9) 78 79 !ERROR: Input variable 'const_cvar' is not definable 80 !BECAUSE: '"Ceci n'est pas une pipe."' is not a variable or pointer 81 read(11, *) const_cvar 82 83 !ERROR: Input variable 'const_cvar(3:13)' is not definable 84 !BECAUSE: '"ci n'est pa"' is not a variable or pointer 85 read(11, *) const_cvar(3:13) 86 87 !ERROR: Duplicate IOSTAT specifier 88 read(11, pos=ipos, iostat=stat1, iostat=stat2) 89 90 !ERROR: Duplicate END specifier 91 read(11, end=9, pos=ipos, end=9) 92 93 !ERROR: Duplicate NML specifier 94 read(10, nml=mmm, nml=nnn) 95 96 !ERROR: READ statement must have a UNIT specifier 97 read(err=9, iostat=stat8) jj 98 99 !ERROR: READ statement must not have a DELIM specifier 100 !ERROR: READ statement must not have a SIGN specifier 101 read(10, delim='quote', sign='plus') jj 102 103 !ERROR: If NML appears, REC must not appear 104 read(10, nnn, rec=nn) 105 106 !ERROR: If NML appears, FMT must not appear 107 !ERROR: If NML appears, a data list must not appear 108 read(10, fmt=*, nml=nnn) jj 109 110 !ERROR: If UNIT=* appears, REC must not appear 111 read(*, rec=13) 112 113 !ERROR: If UNIT=* appears, POS must not appear 114 read(*, pos=13) 115 116 !ERROR: If UNIT=internal-file appears, FMT or NML must also appear 117 !ERROR: If UNIT=internal-file appears, REC must not appear 118 read(internal_file, rec=13) 119 120 !ERROR: If UNIT=internal-file appears, POS must not appear 121 read(internal_file, *, pos=13) 122 123 !ERROR: If REC appears, END must not appear 124 read(10, fmt='(I4)', end=9, rec=13) jj 125 126 !ERROR: If REC appears, FMT=* must not appear 127 read(10, *, rec=13) jj 128 129 !ERROR: If ADVANCE appears, UNIT=internal-file must not appear 130 read(internal_file, '(I4)', eor=9, advance='no') jj 131 132 !ERROR: If ADVANCE appears, an explicit format must also appear 133 !ERROR: If EOR appears, ADVANCE with value 'NO' must also appear 134 read(10, eor=9, advance='yes') 135 136 !ERROR: If EOR appears, ADVANCE with value 'NO' must also appear 137 read(10, eor=9) 138 139 !ERROR: Invalid ASYNCHRONOUS value 'nay' 140 read(10, asynchronous='nay') ! prog req 141 142 !ERROR: If ASYNCHRONOUS='YES' appears, UNIT=number must also appear 143 read(*, asynchronous='yes') 144 145 !ERROR: If ASYNCHRONOUS='YES' appears, UNIT=number must also appear 146 read(internal_file, *, asynchronous='y'//'es') 147 148 !ERROR: If ID appears, ASYNCHRONOUS='YES' must also appear 149 read(10, id=id) 150 151 !ERROR: If ID appears, ASYNCHRONOUS='YES' must also appear 152 read(10, asynchronous='n'//'o', id=id) 153 154 !ERROR: If POS appears, REC must not appear 155 read(10, pos=13, rec=13) jj 156 157 !ERROR: If DECIMAL appears, FMT or NML must also appear 158 !ERROR: If BLANK appears, FMT or NML must also appear 159 !ERROR: Invalid DECIMAL value 'Punkt' 160 read(10, decimal='Punkt', blank='null') jj 161 162 !ERROR: If ROUND appears, FMT or NML must also appear 163 !ERROR: If PAD appears, FMT or NML must also appear 164 read(10, pad='no', round='nearest') jj 165 166 !PORTABILITY: If NML appears, SIZE should not appear 167 read(10, nml=nnn, size=kk) 168 !PORTABILITY: If FMT=* appears, SIZE should not appear 169 read(10, *, size=kk) jj 170 171 !ERROR: ID kind (2) is smaller than default INTEGER kind (4) 172 read(10, id=id2, asynchronous='yes') jj 173 1749 continue 175end 176 177subroutine s(aa, n) 178 integer :: aa(5,*) 179 integer, intent(in) :: n 180 integer :: bb(10), vv(10) 181 type tt 182 real :: x, y, z 183 end type tt 184 type(tt) :: qq(20) 185 186 vv = 1 187 188 read(*, *) aa(n,1) 189 read(*, *) aa(n:n+2,2) 190 read(*, *) qq(2:5)%y 191 192 !ERROR: Input variable 'n' is not definable 193 !BECAUSE: 'n' is an INTENT(IN) dummy argument 194 read(*, *) n 195 196 !ERROR: Whole assumed-size array 'aa' may not appear here without subscripts 197 read(*, *) aa 198end 199