16c1ac141SIvan Zhechev! RUN: %python %S/test_errors.py %s %flang_fc1 264ab3302SCarolineConcatto character(len=20) :: access = "direcT" 364ab3302SCarolineConcatto character(len=20) :: access_(2) = (/"direcT", "streaM"/) 464ab3302SCarolineConcatto character(len=20) :: action_(2) = (/"reaD ", "writE"/) 564ab3302SCarolineConcatto character(len=20) :: asynchronous_(2) = (/"nO ", "yeS"/) 664ab3302SCarolineConcatto character(len=20) :: blank_(2) = (/"nulL", "zerO"/) 764ab3302SCarolineConcatto character(len=20) :: decimal_(2) = (/'commA', 'poinT'/) 864ab3302SCarolineConcatto character(len=20) :: delim_(2) = (/"nonE ", "quotE"/) 964ab3302SCarolineConcatto character(len=20) :: encoding_(2) = (/"defaulT", "utF-8 "/) 1064ab3302SCarolineConcatto character(len=20) :: form_(2) = (/"formatteD ", "unformatteD"/) 1164ab3302SCarolineConcatto character(len=20) :: pad_(2) = (/"nO ", "yeS"/) 1264ab3302SCarolineConcatto character(len=20) :: position_(3) = (/"appenD", "asiS ", "rewinD"/) 1364ab3302SCarolineConcatto character(len=20) :: round_(2) = (/"dowN", "zerO"/) 1464ab3302SCarolineConcatto character(len=20) :: sign_(2) = (/"pluS ", "suppresS"/) 1564ab3302SCarolineConcatto character(len=20) :: status_(2) = (/"neW", "olD"/) 1664ab3302SCarolineConcatto character(len=20) :: convert_(2) = (/"big_endiaN", "nativE "/) 1764ab3302SCarolineConcatto character(len=20) :: dispose_(2) = (/ "deletE", "keeP "/) 1864ab3302SCarolineConcatto character(len=66) :: cc, msg 1964ab3302SCarolineConcatto 2064ab3302SCarolineConcatto integer :: new_unit 2164ab3302SCarolineConcatto integer :: unit10 = 10 2264ab3302SCarolineConcatto integer :: unit11 = 11 2364ab3302SCarolineConcatto integer :: n = 40 24bce7a7edSpeter klausler integer, parameter :: const_new_unit = 66 2564ab3302SCarolineConcatto 2664ab3302SCarolineConcatto integer(kind=1) :: stat1 2764ab3302SCarolineConcatto integer(kind=2) :: stat2 2864ab3302SCarolineConcatto integer(kind=4) :: stat4 2964ab3302SCarolineConcatto integer(kind=8) :: stat8 3064ab3302SCarolineConcatto 3164ab3302SCarolineConcatto cc = 'scratch' 3264ab3302SCarolineConcatto 3364ab3302SCarolineConcatto open(unit10) 3464ab3302SCarolineConcatto open(blank='null', unit=unit10, pad='no') 3564ab3302SCarolineConcatto open(unit=unit11, err=3) 3664ab3302SCarolineConcatto3 continue 3764ab3302SCarolineConcatto 3864ab3302SCarolineConcatto open(20, access='sequential') 3964ab3302SCarolineConcatto open(21, access=access, recl=n) 4064ab3302SCarolineConcatto open(22, access=access_(2), iostat=stat1, iomsg=msg) 4164ab3302SCarolineConcatto 4264ab3302SCarolineConcatto open(30, action='readwrite', asynchronous='n'//'o', blank='zero') 4364ab3302SCarolineConcatto open(31, action=action_(2), asynchronous=asynchronous_(2), blank=blank_(2)) 4464ab3302SCarolineConcatto 4564ab3302SCarolineConcatto open(unit=40, decimal="comma", delim="apostrophe", encoding="utf-8") 4664ab3302SCarolineConcatto open(unit=41, decimal=decimal_(2), delim=delim_(2), encoding=encoding_(2)) 4764ab3302SCarolineConcatto 4864ab3302SCarolineConcatto open(50, file='abc', status='unknown', form='formatted') 4964ab3302SCarolineConcatto open(51, file=access, status=status_(2), form=form_(2)) 5064ab3302SCarolineConcatto 5164ab3302SCarolineConcatto open(newunit=new_unit, pad=pad_(2), status='scr'//'atch'//'') 5264ab3302SCarolineConcatto open(newunit=new_unit, pad=pad_(2), status=cc) 5364ab3302SCarolineConcatto 5464ab3302SCarolineConcatto open(unit=60, position='rewind', recl=(30+20/2), round='zero') 5564ab3302SCarolineConcatto open(position=position_(1), recl=n, round=round_(2), unit=61) 5664ab3302SCarolineConcatto 5764ab3302SCarolineConcatto open(unit=70, sign='suppress', & 5864ab3302SCarolineConcatto status='unknown', iostat=stat2) 5964ab3302SCarolineConcatto open(unit=70, sign=sign_(2), status=status_(2)) 6064ab3302SCarolineConcatto 6164ab3302SCarolineConcatto open(80, convert='big_endian', dispose='delete') 6264ab3302SCarolineConcatto open(81, convert=convert_(2), dispose=dispose_(2)) 6364ab3302SCarolineConcatto 6464ab3302SCarolineConcatto open(access='STREAM', 90) ! nonstandard 65c9637577Speter klausler open (unit=91, file='xfile', carriagecontrol='list') ! nonstandard 6664ab3302SCarolineConcatto 6764ab3302SCarolineConcatto !ERROR: OPEN statement must have a UNIT or NEWUNIT specifier 6864ab3302SCarolineConcatto !ERROR: If ACCESS='DIRECT' appears, RECL must also appear 6964ab3302SCarolineConcatto open(access='direct') 7064ab3302SCarolineConcatto 7164ab3302SCarolineConcatto !ERROR: If STATUS='STREAM' appears, RECL must not appear 7264ab3302SCarolineConcatto open(10, access='st'//'ream', recl=13) 7364ab3302SCarolineConcatto 7464ab3302SCarolineConcatto !ERROR: Duplicate NEWUNIT specifier 7564ab3302SCarolineConcatto !ERROR: If NEWUNIT appears, FILE or STATUS must also appear 7664ab3302SCarolineConcatto open(newunit=n, newunit=nn, iostat=stat4) 7764ab3302SCarolineConcatto 78*573fc618SPeter Klausler !ERROR: NEWUNIT variable 'const_new_unit' is not definable 79*573fc618SPeter Klausler !BECAUSE: '66_4' is not a variable or pointer 80bce7a7edSpeter klausler open(newunit=const_new_unit, status=cc) 81bce7a7edSpeter klausler 8264ab3302SCarolineConcatto !ERROR: Duplicate UNIT specifier 8364ab3302SCarolineConcatto open(unit=100, unit=100) 8464ab3302SCarolineConcatto 8564ab3302SCarolineConcatto !ERROR: Duplicate UNIT specifier 8664ab3302SCarolineConcatto open(101, delim=delim_(1), unit=102) 8764ab3302SCarolineConcatto 8864ab3302SCarolineConcatto !ERROR: Duplicate UNIT specifier 8964ab3302SCarolineConcatto open(unit=103, & 9064ab3302SCarolineConcatto unit=104, iostat=stat8) 9164ab3302SCarolineConcatto 9264ab3302SCarolineConcatto !ERROR: Duplicate UNIT specifier 9364ab3302SCarolineConcatto !ERROR: If ACCESS='DIRECT' appears, RECL must also appear 9464ab3302SCarolineConcatto open(access='dir'//'ect', 9, 9) ! nonstandard 9564ab3302SCarolineConcatto 9664ab3302SCarolineConcatto !ERROR: Duplicate ROUND specifier 9764ab3302SCarolineConcatto open(105, round=round_(1), pad='no', round='nearest') 9864ab3302SCarolineConcatto 9964ab3302SCarolineConcatto !ERROR: If NEWUNIT appears, UNIT must not appear 10064ab3302SCarolineConcatto !ERROR: If NEWUNIT appears, FILE or STATUS must also appear 10164ab3302SCarolineConcatto open(106, newunit=n) 10264ab3302SCarolineConcatto 10364ab3302SCarolineConcatto !ERROR: RECL value (-30) must be positive 10464ab3302SCarolineConcatto open(107, recl=40-70) 10564ab3302SCarolineConcatto 10664ab3302SCarolineConcatto !ERROR: RECL value (-36) must be positive 10764ab3302SCarolineConcatto open(108, recl=- - (-36)) ! nonstandard 10864ab3302SCarolineConcatto 10964ab3302SCarolineConcatto !ERROR: Invalid ACTION value 'reedwrite' 11064ab3302SCarolineConcatto open(109, access=Access, action='reedwrite', recl=77) 11164ab3302SCarolineConcatto 11264ab3302SCarolineConcatto !ERROR: Invalid ACTION value 'nonsense' 11364ab3302SCarolineConcatto open(110, action=''//'non'//'sense', recl=77) 11464ab3302SCarolineConcatto 11564ab3302SCarolineConcatto !ERROR: Invalid STATUS value 'cold' 11664ab3302SCarolineConcatto open(111, status='cold') 11764ab3302SCarolineConcatto 11864ab3302SCarolineConcatto !ERROR: Invalid STATUS value 'Keep' 11964ab3302SCarolineConcatto open(112, status='Keep') 12064ab3302SCarolineConcatto 12164ab3302SCarolineConcatto !ERROR: If STATUS='NEW' appears, FILE must also appear 12264ab3302SCarolineConcatto open(113, status='new') 12364ab3302SCarolineConcatto 12464ab3302SCarolineConcatto !ERROR: If STATUS='REPLACE' appears, FILE must also appear 12564ab3302SCarolineConcatto open(114, status='replace') 12664ab3302SCarolineConcatto 12764ab3302SCarolineConcatto !ERROR: If STATUS='SCRATCH' appears, FILE must not appear 12864ab3302SCarolineConcatto open(115, file='abc', status='scratch') 12964ab3302SCarolineConcatto 13064ab3302SCarolineConcatto !ERROR: If NEWUNIT appears, FILE or STATUS='SCRATCH' must also appear 13164ab3302SCarolineConcatto open(newunit=nn, status='old') 132c9637577Speter klausler 133c9637577Speter klausler !ERROR: Unimplemented CARRIAGECONTROL value 'fortran' 134c9637577Speter klausler open (unit=116, file='xfile', carriagecontrol='fortran') ! nonstandard 135c9637577Speter klausler 136c9637577Speter klausler !ERROR: Invalid CARRIAGECONTROL value 'nonsense' 137c9637577Speter klausler open (unit=116, file='xfile', carriagecontrol='nonsense') ! nonstandard 13864ab3302SCarolineConcattoend 139