[patch, RFC] Fix PR 30389 - ASCII functions

Thomas Koenig Thomas.Koenig@online.de
Mon Jan 22 20:36:00 GMT 2007


:ADDPATCH fortran:

Hello world,

this is a proposal for dealing with PR 30389, or rather with the
inconsitensies with the ASCII handling.

Before, we handled the ASCII comparison functions (LGE and friends),
achar() and iachar() ascii_table (a lookup for the valid ASCII
characters) and its inverse, xascii_table, during constant folding.

Runtime string comparisons using LGE and friends, plus runtime
conversions using ACHAR and IACHAR, on the other hand, were always
done using the native character set.

My proposal, as done in the patch below, is to remove the
special-casing of ASCII charachters altogether.  AFAIK, this is
safe for current patforms, because we don't support non-ASCII
platforms anyway.  There is precedent; for example, ifort
always uses the native character set for the ASCII functions.

The alternative would be to always use the ASCII table.  This is
far more complicated, and I don't know a lot of the things that
I would need to implement it.

Please feel free to comment.

OK for trunk?  OK for 4.2?

	Thomas

2007-01-22  Thomas Koenig  <Thomas.Koenig@online.de>

	* gfortran.h:  Remove gfc_simplify_init_1.
	* arith.h:  Remove third argument from gfc_compare_string.
	* arith.c(gfc_compare_expression):  Remove third argument
	from call to gfc_compare_string.
	(gfc_compare_string):  Remove third argument xcoll_table.
	Remove use of xcoll_table.
	* misc.c(gfc_init_1):  Remove call to gfc_simplify_init_1.
	* simplify.c(ascii_table):  Remove.
	(xascii_table): Likewise.
	(gfc_simplify_achar):  Remove use of ascii_table.  Remove
	error for values > 127; error for values of >UCHAR_MAX instead.
	(gfc_simplify_iachar):  Likewise.
	(gfc_simplify_lge):  Likewise.
	(gfc_simplify_lgt):  Likewise.
	(gfc_simplify_lle):  Likewise.
	(gfc_simplify_llt):  Likewise.
	(invert_table):  Remove.
	(gfc_simplify_init_1):  Remove.

2007-01-22  Thomas Koenig  <Thomas.Koenig@online.de>

	* gfortran.dg/achar_2.f90:  New test.
-------------- next part --------------
! { dg-do run }
! PR 30389 - we now treat ACHAR equivalent to CHAR, and
!            IACHAR equivalent to ICHAR.
program main
  integer :: i
  character(len=1) :: c
  if (iachar(achar(1)) /= 1) call abort
  if (iachar ("")/= 1) call abort
  if (achar (1) /= "") call abort
  if ("" /= achar ( ichar ( ""))) call abort
  i = 1
  c = ""
  if (achar(i) /= "") call abort
  if (iachar(c) /= iachar("")) call abort
  if (iachar(achar(2)) /= 2) call abort
  if (iachar ("")/= 2) call abort
  if (achar (2) /= "") call abort
  if ("" /= achar ( ichar ( ""))) call abort
  i = 2
  c = ""
  if (achar(i) /= "") call abort
  if (iachar(c) /= iachar("")) call abort
  if (iachar(achar(3)) /= 3) call abort
  if (iachar ("")/= 3) call abort
  if (achar (3) /= "") call abort
  if ("" /= achar ( ichar ( ""))) call abort
  i = 3
  c = ""
  if (achar(i) /= "") call abort
  if (iachar(c) /= iachar("")) call abort
  if (iachar(achar(4)) /= 4) call abort
  if (iachar ("")/= 4) call abort
  if (achar (4) /= "") call abort
  if ("" /= achar ( ichar ( ""))) call abort
  i = 4
  c = ""
  if (achar(i) /= "") call abort
  if (iachar(c) /= iachar("")) call abort
  if (iachar(achar(5)) /= 5) call abort
  if (iachar ("")/= 5) call abort
  if (achar (5) /= "") call abort
  if ("" /= achar ( ichar ( ""))) call abort
  i = 5
  c = ""
  if (achar(i) /= "") call abort
  if (iachar(c) /= iachar("")) call abort
  if (iachar(achar(6)) /= 6) call abort
  if (iachar ("")/= 6) call abort
  if (achar (6) /= "") call abort
  if ("" /= achar ( ichar ( ""))) call abort
  i = 6
  c = ""
  if (achar(i) /= "") call abort
  if (iachar(c) /= iachar("")) call abort
  if (iachar(achar(7)) /= 7) call abort
  if (iachar ("")/= 7) call abort
  if (achar (7) /= "") call abort
  if ("" /= achar ( ichar ( ""))) call abort
  i = 7
  c = ""
  if (achar(i) /= "") call abort
  if (iachar(c) /= iachar("")) call abort
  if (iachar(achar(8)) /= 8) call abort
  if (iachar ("")/= 8) call abort
  if (achar (8) /= "") call abort
  if ("" /= achar ( ichar ( ""))) call abort
  i = 8
  c = ""
  if (achar(i) /= "") call abort
  if (iachar(c) /= iachar("")) call abort
  if (iachar(achar(9)) /= 9) call abort
  if (iachar ("	")/= 9) call abort
  if (achar (9) /= "	") call abort
  if ("	" /= achar ( ichar ( "	"))) call abort
  i = 9
  c = "	"
  if (achar(i) /= "	") call abort
  if (iachar(c) /= iachar("	")) call abort
  if (iachar(achar(10)) /= 10) call abort
  if (iachar(achar(11)) /= 11) call abort
  if (iachar ("")/= 11) call abort
  if (achar (11) /= "") call abort
  if ("" /= achar ( ichar ( ""))) call abort
  i = 11
  c = ""
  if (achar(i) /= "") call abort
  if (iachar(c) /= iachar("")) call abort
  if (iachar(achar(12)) /= 12) call abort
  if (iachar ("")/= 12) call abort
  if (achar (12) /= "") call abort
  if ("" /= achar ( ichar ( ""))) call abort
  i = 12
  c = ""
  if (achar(i) /= "") call abort
  if (iachar(c) /= iachar("")) call abort
  if (iachar(achar(13)) /= 13) call abort
  if (iachar(achar(14)) /= 14) call abort
  if (iachar ("")/= 14) call abort
  if (achar (14) /= "") call abort
  if ("" /= achar ( ichar ( ""))) call abort
  i = 14
  c = ""
  if (achar(i) /= "") call abort
  if (iachar(c) /= iachar("")) call abort
  if (iachar(achar(15)) /= 15) call abort
  if (iachar ("")/= 15) call abort
  if (achar (15) /= "") call abort
  if ("" /= achar ( ichar ( ""))) call abort
  i = 15
  c = ""
  if (achar(i) /= "") call abort
  if (iachar(c) /= iachar("")) call abort
  if (iachar(achar(16)) /= 16) call abort
  if (iachar ("")/= 16) call abort
  if (achar (16) /= "") call abort
  if ("" /= achar ( ichar ( ""))) call abort
  i = 16
  c = ""
  if (achar(i) /= "") call abort
  if (iachar(c) /= iachar("")) call abort
  if (iachar(achar(17)) /= 17) call abort
  if (iachar ("")/= 17) call abort
  if (achar (17) /= "") call abort
  if ("" /= achar ( ichar ( ""))) call abort
  i = 17
  c = ""
  if (achar(i) /= "") call abort
  if (iachar(c) /= iachar("")) call abort
  if (iachar(achar(18)) /= 18) call abort
  if (iachar ("")/= 18) call abort
  if (achar (18) /= "") call abort
  if ("" /= achar ( ichar ( ""))) call abort
  i = 18
  c = ""
  if (achar(i) /= "") call abort
  if (iachar(c) /= iachar("")) call abort
  if (iachar(achar(19)) /= 19) call abort
  if (iachar ("")/= 19) call abort
  if (achar (19) /= "") call abort
  if ("" /= achar ( ichar ( ""))) call abort
  i = 19
  c = ""
  if (achar(i) /= "") call abort
  if (iachar(c) /= iachar("")) call abort
  if (iachar(achar(20)) /= 20) call abort
  if (iachar ("")/= 20) call abort
  if (achar (20) /= "") call abort
  if ("" /= achar ( ichar ( ""))) call abort
  i = 20
  c = ""
  if (achar(i) /= "") call abort
  if (iachar(c) /= iachar("")) call abort
  if (iachar(achar(21)) /= 21) call abort
  if (iachar ("")/= 21) call abort
  if (achar (21) /= "") call abort
  if ("" /= achar ( ichar ( ""))) call abort
  i = 21
  c = ""
  if (achar(i) /= "") call abort
  if (iachar(c) /= iachar("")) call abort
  if (iachar(achar(22)) /= 22) call abort
  if (iachar ("")/= 22) call abort
  if (achar (22) /= "") call abort
  if ("" /= achar ( ichar ( ""))) call abort
  i = 22
  c = ""
  if (achar(i) /= "") call abort
  if (iachar(c) /= iachar("")) call abort
  if (iachar(achar(23)) /= 23) call abort
  if (iachar ("")/= 23) call abort
  if (achar (23) /= "") call abort
  if ("" /= achar ( ichar ( ""))) call abort
  i = 23
  c = ""
  if (achar(i) /= "") call abort
  if (iachar(c) /= iachar("")) call abort
  if (iachar(achar(24)) /= 24) call abort
  if (iachar ("")/= 24) call abort
  if (achar (24) /= "") call abort
  if ("" /= achar ( ichar ( ""))) call abort
  i = 24
  c = ""
  if (achar(i) /= "") call abort
  if (iachar(c) /= iachar("")) call abort
  if (iachar(achar(25)) /= 25) call abort
  if (iachar ("")/= 25) call abort
  if (achar (25) /= "") call abort
  if ("" /= achar ( ichar ( ""))) call abort
  i = 25
  c = ""
  if (achar(i) /= "") call abort
  if (iachar(c) /= iachar("")) call abort
  if (iachar(achar(26)) /= 26) call abort
  if (iachar(achar(27)) /= 27) call abort
  if (iachar ("")/= 27) call abort
  if (achar (27) /= "") call abort
  if ("" /= achar ( ichar ( ""))) call abort
  i = 27
  c = ""
  if (achar(i) /= "") call abort
  if (iachar(c) /= iachar("")) call abort
  if (iachar(achar(28)) /= 28) call abort
  if (iachar ("")/= 28) call abort
  if (achar (28) /= "") call abort
  if ("" /= achar ( ichar ( ""))) call abort
  i = 28
  c = ""
  if (achar(i) /= "") call abort
  if (iachar(c) /= iachar("")) call abort
  if (iachar(achar(29)) /= 29) call abort
  if (iachar ("")/= 29) call abort
  if (achar (29) /= "") call abort
  if ("" /= achar ( ichar ( ""))) call abort
  i = 29
  c = ""
  if (achar(i) /= "") call abort
  if (iachar(c) /= iachar("")) call abort
  if (iachar(achar(30)) /= 30) call abort
  if (iachar ("")/= 30) call abort
  if (achar (30) /= "") call abort
  if ("" /= achar ( ichar ( ""))) call abort
  i = 30
  c = ""
  if (achar(i) /= "") call abort
  if (iachar(c) /= iachar("")) call abort
  if (iachar(achar(31)) /= 31) call abort
  if (iachar ("")/= 31) call abort
  if (achar (31) /= "") call abort
  if ("" /= achar ( ichar ( ""))) call abort
  i = 31
  c = ""
  if (achar(i) /= "") call abort
  if (iachar(c) /= iachar("")) call abort
  if (iachar(achar(32)) /= 32) call abort
  if (iachar (" ")/= 32) call abort
  if (achar (32) /= " ") call abort
  if (" " /= achar ( ichar ( " "))) call abort
  i = 32
  c = " "
  if (achar(i) /= " ") call abort
  if (iachar(c) /= iachar(" ")) call abort
  if (iachar(achar(33)) /= 33) call abort
  if (iachar ("!")/= 33) call abort
  if (achar (33) /= "!") call abort
  if ("!" /= achar ( ichar ( "!"))) call abort
  i = 33
  c = "!"
  if (achar(i) /= "!") call abort
  if (iachar(c) /= iachar("!")) call abort
  if (iachar(achar(34)) /= 34) call abort
  if (iachar ('"')/= 34) call abort
  if (achar (34) /= '"') call abort
  if ('"' /= achar ( ichar ( '"'))) call abort
  i = 34
  c = '"'
  if (achar(i) /= '"') call abort
  if (iachar(c) /= iachar('"')) call abort
  if (iachar(achar(35)) /= 35) call abort
  if (iachar ("#")/= 35) call abort
  if (achar (35) /= "#") call abort
  if ("#" /= achar ( ichar ( "#"))) call abort
  i = 35
  c = "#"
  if (achar(i) /= "#") call abort
  if (iachar(c) /= iachar("#")) call abort
  if (iachar(achar(36)) /= 36) call abort
  if (iachar ("$")/= 36) call abort
  if (achar (36) /= "$") call abort
  if ("$" /= achar ( ichar ( "$"))) call abort
  i = 36
  c = "$"
  if (achar(i) /= "$") call abort
  if (iachar(c) /= iachar("$")) call abort
  if (iachar(achar(37)) /= 37) call abort
  if (iachar ("%")/= 37) call abort
  if (achar (37) /= "%") call abort
  if ("%" /= achar ( ichar ( "%"))) call abort
  i = 37
  c = "%"
  if (achar(i) /= "%") call abort
  if (iachar(c) /= iachar("%")) call abort
  if (iachar(achar(38)) /= 38) call abort
  if (iachar ("&")/= 38) call abort
  if (achar (38) /= "&") call abort
  if ("&" /= achar ( ichar ( "&"))) call abort
  i = 38
  c = "&"
  if (achar(i) /= "&") call abort
  if (iachar(c) /= iachar("&")) call abort
  if (iachar(achar(39)) /= 39) call abort
  if (iachar ("'")/= 39) call abort
  if (achar (39) /= "'") call abort
  if ("'" /= achar ( ichar ( "'"))) call abort
  i = 39
  c = "'"
  if (achar(i) /= "'") call abort
  if (iachar(c) /= iachar("'")) call abort
  if (iachar(achar(40)) /= 40) call abort
  if (iachar ("(")/= 40) call abort
  if (achar (40) /= "(") call abort
  if ("(" /= achar ( ichar ( "("))) call abort
  i = 40
  c = "("
  if (achar(i) /= "(") call abort
  if (iachar(c) /= iachar("(")) call abort
  if (iachar(achar(41)) /= 41) call abort
  if (iachar (")")/= 41) call abort
  if (achar (41) /= ")") call abort
  if (")" /= achar ( ichar ( ")"))) call abort
  i = 41
  c = ")"
  if (achar(i) /= ")") call abort
  if (iachar(c) /= iachar(")")) call abort
  if (iachar(achar(42)) /= 42) call abort
  if (iachar ("*")/= 42) call abort
  if (achar (42) /= "*") call abort
  if ("*" /= achar ( ichar ( "*"))) call abort
  i = 42
  c = "*"
  if (achar(i) /= "*") call abort
  if (iachar(c) /= iachar("*")) call abort
  if (iachar(achar(43)) /= 43) call abort
  if (iachar ("+")/= 43) call abort
  if (achar (43) /= "+") call abort
  if ("+" /= achar ( ichar ( "+"))) call abort
  i = 43
  c = "+"
  if (achar(i) /= "+") call abort
  if (iachar(c) /= iachar("+")) call abort
  if (iachar(achar(44)) /= 44) call abort
  if (iachar (",")/= 44) call abort
  if (achar (44) /= ",") call abort
  if ("," /= achar ( ichar ( ","))) call abort
  i = 44
  c = ","
  if (achar(i) /= ",") call abort
  if (iachar(c) /= iachar(",")) call abort
  if (iachar(achar(45)) /= 45) call abort
  if (iachar ("-")/= 45) call abort
  if (achar (45) /= "-") call abort
  if ("-" /= achar ( ichar ( "-"))) call abort
  i = 45
  c = "-"
  if (achar(i) /= "-") call abort
  if (iachar(c) /= iachar("-")) call abort
  if (iachar(achar(46)) /= 46) call abort
  if (iachar (".")/= 46) call abort
  if (achar (46) /= ".") call abort
  if ("." /= achar ( ichar ( "."))) call abort
  i = 46
  c = "."
  if (achar(i) /= ".") call abort
  if (iachar(c) /= iachar(".")) call abort
  if (iachar(achar(47)) /= 47) call abort
  if (iachar ("/")/= 47) call abort
  if (achar (47) /= "/") call abort
  if ("/" /= achar ( ichar ( "/"))) call abort
  i = 47
  c = "/"
  if (achar(i) /= "/") call abort
  if (iachar(c) /= iachar("/")) call abort
  if (iachar(achar(48)) /= 48) call abort
  if (iachar ("0")/= 48) call abort
  if (achar (48) /= "0") call abort
  if ("0" /= achar ( ichar ( "0"))) call abort
  i = 48
  c = "0"
  if (achar(i) /= "0") call abort
  if (iachar(c) /= iachar("0")) call abort
  if (iachar(achar(49)) /= 49) call abort
  if (iachar ("1")/= 49) call abort
  if (achar (49) /= "1") call abort
  if ("1" /= achar ( ichar ( "1"))) call abort
  i = 49
  c = "1"
  if (achar(i) /= "1") call abort
  if (iachar(c) /= iachar("1")) call abort
  if (iachar(achar(50)) /= 50) call abort
  if (iachar ("2")/= 50) call abort
  if (achar (50) /= "2") call abort
  if ("2" /= achar ( ichar ( "2"))) call abort
  i = 50
  c = "2"
  if (achar(i) /= "2") call abort
  if (iachar(c) /= iachar("2")) call abort
  if (iachar(achar(51)) /= 51) call abort
  if (iachar ("3")/= 51) call abort
  if (achar (51) /= "3") call abort
  if ("3" /= achar ( ichar ( "3"))) call abort
  i = 51
  c = "3"
  if (achar(i) /= "3") call abort
  if (iachar(c) /= iachar("3")) call abort
  if (iachar(achar(52)) /= 52) call abort
  if (iachar ("4")/= 52) call abort
  if (achar (52) /= "4") call abort
  if ("4" /= achar ( ichar ( "4"))) call abort
  i = 52
  c = "4"
  if (achar(i) /= "4") call abort
  if (iachar(c) /= iachar("4")) call abort
  if (iachar(achar(53)) /= 53) call abort
  if (iachar ("5")/= 53) call abort
  if (achar (53) /= "5") call abort
  if ("5" /= achar ( ichar ( "5"))) call abort
  i = 53
  c = "5"
  if (achar(i) /= "5") call abort
  if (iachar(c) /= iachar("5")) call abort
  if (iachar(achar(54)) /= 54) call abort
  if (iachar ("6")/= 54) call abort
  if (achar (54) /= "6") call abort
  if ("6" /= achar ( ichar ( "6"))) call abort
  i = 54
  c = "6"
  if (achar(i) /= "6") call abort
  if (iachar(c) /= iachar("6")) call abort
  if (iachar(achar(55)) /= 55) call abort
  if (iachar ("7")/= 55) call abort
  if (achar (55) /= "7") call abort
  if ("7" /= achar ( ichar ( "7"))) call abort
  i = 55
  c = "7"
  if (achar(i) /= "7") call abort
  if (iachar(c) /= iachar("7")) call abort
  if (iachar(achar(56)) /= 56) call abort
  if (iachar ("8")/= 56) call abort
  if (achar (56) /= "8") call abort
  if ("8" /= achar ( ichar ( "8"))) call abort
  i = 56
  c = "8"
  if (achar(i) /= "8") call abort
  if (iachar(c) /= iachar("8")) call abort
  if (iachar(achar(57)) /= 57) call abort
  if (iachar ("9")/= 57) call abort
  if (achar (57) /= "9") call abort
  if ("9" /= achar ( ichar ( "9"))) call abort
  i = 57
  c = "9"
  if (achar(i) /= "9") call abort
  if (iachar(c) /= iachar("9")) call abort
  if (iachar(achar(58)) /= 58) call abort
  if (iachar (":")/= 58) call abort
  if (achar (58) /= ":") call abort
  if (":" /= achar ( ichar ( ":"))) call abort
  i = 58
  c = ":"
  if (achar(i) /= ":") call abort
  if (iachar(c) /= iachar(":")) call abort
  if (iachar(achar(59)) /= 59) call abort
  if (iachar (";")/= 59) call abort
  if (achar (59) /= ";") call abort
  if (";" /= achar ( ichar ( ";"))) call abort
  i = 59
  c = ";"
  if (achar(i) /= ";") call abort
  if (iachar(c) /= iachar(";")) call abort
  if (iachar(achar(60)) /= 60) call abort
  if (iachar ("<")/= 60) call abort
  if (achar (60) /= "<") call abort
  if ("<" /= achar ( ichar ( "<"))) call abort
  i = 60
  c = "<"
  if (achar(i) /= "<") call abort
  if (iachar(c) /= iachar("<")) call abort
  if (iachar(achar(61)) /= 61) call abort
  if (iachar ("=")/= 61) call abort
  if (achar (61) /= "=") call abort
  if ("=" /= achar ( ichar ( "="))) call abort
  i = 61
  c = "="
  if (achar(i) /= "=") call abort
  if (iachar(c) /= iachar("=")) call abort
  if (iachar(achar(62)) /= 62) call abort
  if (iachar (">")/= 62) call abort
  if (achar (62) /= ">") call abort
  if (">" /= achar ( ichar ( ">"))) call abort
  i = 62
  c = ">"
  if (achar(i) /= ">") call abort
  if (iachar(c) /= iachar(">")) call abort
  if (iachar(achar(63)) /= 63) call abort
  if (iachar ("?")/= 63) call abort
  if (achar (63) /= "?") call abort
  if ("?" /= achar ( ichar ( "?"))) call abort
  i = 63
  c = "?"
  if (achar(i) /= "?") call abort
  if (iachar(c) /= iachar("?")) call abort
  if (iachar(achar(64)) /= 64) call abort
  if (iachar ("@")/= 64) call abort
  if (achar (64) /= "@") call abort
  if ("@" /= achar ( ichar ( "@"))) call abort
  i = 64
  c = "@"
  if (achar(i) /= "@") call abort
  if (iachar(c) /= iachar("@")) call abort
  if (iachar(achar(65)) /= 65) call abort
  if (iachar ("A")/= 65) call abort
  if (achar (65) /= "A") call abort
  if ("A" /= achar ( ichar ( "A"))) call abort
  i = 65
  c = "A"
  if (achar(i) /= "A") call abort
  if (iachar(c) /= iachar("A")) call abort
  if (iachar(achar(66)) /= 66) call abort
  if (iachar ("B")/= 66) call abort
  if (achar (66) /= "B") call abort
  if ("B" /= achar ( ichar ( "B"))) call abort
  i = 66
  c = "B"
  if (achar(i) /= "B") call abort
  if (iachar(c) /= iachar("B")) call abort
  if (iachar(achar(67)) /= 67) call abort
  if (iachar ("C")/= 67) call abort
  if (achar (67) /= "C") call abort
  if ("C" /= achar ( ichar ( "C"))) call abort
  i = 67
  c = "C"
  if (achar(i) /= "C") call abort
  if (iachar(c) /= iachar("C")) call abort
  if (iachar(achar(68)) /= 68) call abort
  if (iachar ("D")/= 68) call abort
  if (achar (68) /= "D") call abort
  if ("D" /= achar ( ichar ( "D"))) call abort
  i = 68
  c = "D"
  if (achar(i) /= "D") call abort
  if (iachar(c) /= iachar("D")) call abort
  if (iachar(achar(69)) /= 69) call abort
  if (iachar ("E")/= 69) call abort
  if (achar (69) /= "E") call abort
  if ("E" /= achar ( ichar ( "E"))) call abort
  i = 69
  c = "E"
  if (achar(i) /= "E") call abort
  if (iachar(c) /= iachar("E")) call abort
  if (iachar(achar(70)) /= 70) call abort
  if (iachar ("F")/= 70) call abort
  if (achar (70) /= "F") call abort
  if ("F" /= achar ( ichar ( "F"))) call abort
  i = 70
  c = "F"
  if (achar(i) /= "F") call abort
  if (iachar(c) /= iachar("F")) call abort
  if (iachar(achar(71)) /= 71) call abort
  if (iachar ("G")/= 71) call abort
  if (achar (71) /= "G") call abort
  if ("G" /= achar ( ichar ( "G"))) call abort
  i = 71
  c = "G"
  if (achar(i) /= "G") call abort
  if (iachar(c) /= iachar("G")) call abort
  if (iachar(achar(72)) /= 72) call abort
  if (iachar ("H")/= 72) call abort
  if (achar (72) /= "H") call abort
  if ("H" /= achar ( ichar ( "H"))) call abort
  i = 72
  c = "H"
  if (achar(i) /= "H") call abort
  if (iachar(c) /= iachar("H")) call abort
  if (iachar(achar(73)) /= 73) call abort
  if (iachar ("I")/= 73) call abort
  if (achar (73) /= "I") call abort
  if ("I" /= achar ( ichar ( "I"))) call abort
  i = 73
  c = "I"
  if (achar(i) /= "I") call abort
  if (iachar(c) /= iachar("I")) call abort
  if (iachar(achar(74)) /= 74) call abort
  if (iachar ("J")/= 74) call abort
  if (achar (74) /= "J") call abort
  if ("J" /= achar ( ichar ( "J"))) call abort
  i = 74
  c = "J"
  if (achar(i) /= "J") call abort
  if (iachar(c) /= iachar("J")) call abort
  if (iachar(achar(75)) /= 75) call abort
  if (iachar ("K")/= 75) call abort
  if (achar (75) /= "K") call abort
  if ("K" /= achar ( ichar ( "K"))) call abort
  i = 75
  c = "K"
  if (achar(i) /= "K") call abort
  if (iachar(c) /= iachar("K")) call abort
  if (iachar(achar(76)) /= 76) call abort
  if (iachar ("L")/= 76) call abort
  if (achar (76) /= "L") call abort
  if ("L" /= achar ( ichar ( "L"))) call abort
  i = 76
  c = "L"
  if (achar(i) /= "L") call abort
  if (iachar(c) /= iachar("L")) call abort
  if (iachar(achar(77)) /= 77) call abort
  if (iachar ("M")/= 77) call abort
  if (achar (77) /= "M") call abort
  if ("M" /= achar ( ichar ( "M"))) call abort
  i = 77
  c = "M"
  if (achar(i) /= "M") call abort
  if (iachar(c) /= iachar("M")) call abort
  if (iachar(achar(78)) /= 78) call abort
  if (iachar ("N")/= 78) call abort
  if (achar (78) /= "N") call abort
  if ("N" /= achar ( ichar ( "N"))) call abort
  i = 78
  c = "N"
  if (achar(i) /= "N") call abort
  if (iachar(c) /= iachar("N")) call abort
  if (iachar(achar(79)) /= 79) call abort
  if (iachar ("O")/= 79) call abort
  if (achar (79) /= "O") call abort
  if ("O" /= achar ( ichar ( "O"))) call abort
  i = 79
  c = "O"
  if (achar(i) /= "O") call abort
  if (iachar(c) /= iachar("O")) call abort
  if (iachar(achar(80)) /= 80) call abort
  if (iachar ("P")/= 80) call abort
  if (achar (80) /= "P") call abort
  if ("P" /= achar ( ichar ( "P"))) call abort
  i = 80
  c = "P"
  if (achar(i) /= "P") call abort
  if (iachar(c) /= iachar("P")) call abort
  if (iachar(achar(81)) /= 81) call abort
  if (iachar ("Q")/= 81) call abort
  if (achar (81) /= "Q") call abort
  if ("Q" /= achar ( ichar ( "Q"))) call abort
  i = 81
  c = "Q"
  if (achar(i) /= "Q") call abort
  if (iachar(c) /= iachar("Q")) call abort
  if (iachar(achar(82)) /= 82) call abort
  if (iachar ("R")/= 82) call abort
  if (achar (82) /= "R") call abort
  if ("R" /= achar ( ichar ( "R"))) call abort
  i = 82
  c = "R"
  if (achar(i) /= "R") call abort
  if (iachar(c) /= iachar("R")) call abort
  if (iachar(achar(83)) /= 83) call abort
  if (iachar ("S")/= 83) call abort
  if (achar (83) /= "S") call abort
  if ("S" /= achar ( ichar ( "S"))) call abort
  i = 83
  c = "S"
  if (achar(i) /= "S") call abort
  if (iachar(c) /= iachar("S")) call abort
  if (iachar(achar(84)) /= 84) call abort
  if (iachar ("T")/= 84) call abort
  if (achar (84) /= "T") call abort
  if ("T" /= achar ( ichar ( "T"))) call abort
  i = 84
  c = "T"
  if (achar(i) /= "T") call abort
  if (iachar(c) /= iachar("T")) call abort
  if (iachar(achar(85)) /= 85) call abort
  if (iachar ("U")/= 85) call abort
  if (achar (85) /= "U") call abort
  if ("U" /= achar ( ichar ( "U"))) call abort
  i = 85
  c = "U"
  if (achar(i) /= "U") call abort
  if (iachar(c) /= iachar("U")) call abort
  if (iachar(achar(86)) /= 86) call abort
  if (iachar ("V")/= 86) call abort
  if (achar (86) /= "V") call abort
  if ("V" /= achar ( ichar ( "V"))) call abort
  i = 86
  c = "V"
  if (achar(i) /= "V") call abort
  if (iachar(c) /= iachar("V")) call abort
  if (iachar(achar(87)) /= 87) call abort
  if (iachar ("W")/= 87) call abort
  if (achar (87) /= "W") call abort
  if ("W" /= achar ( ichar ( "W"))) call abort
  i = 87
  c = "W"
  if (achar(i) /= "W") call abort
  if (iachar(c) /= iachar("W")) call abort
  if (iachar(achar(88)) /= 88) call abort
  if (iachar ("X")/= 88) call abort
  if (achar (88) /= "X") call abort
  if ("X" /= achar ( ichar ( "X"))) call abort
  i = 88
  c = "X"
  if (achar(i) /= "X") call abort
  if (iachar(c) /= iachar("X")) call abort
  if (iachar(achar(89)) /= 89) call abort
  if (iachar ("Y")/= 89) call abort
  if (achar (89) /= "Y") call abort
  if ("Y" /= achar ( ichar ( "Y"))) call abort
  i = 89
  c = "Y"
  if (achar(i) /= "Y") call abort
  if (iachar(c) /= iachar("Y")) call abort
  if (iachar(achar(90)) /= 90) call abort
  if (iachar ("Z")/= 90) call abort
  if (achar (90) /= "Z") call abort
  if ("Z" /= achar ( ichar ( "Z"))) call abort
  i = 90
  c = "Z"
  if (achar(i) /= "Z") call abort
  if (iachar(c) /= iachar("Z")) call abort
  if (iachar(achar(91)) /= 91) call abort
  if (iachar ("[")/= 91) call abort
  if (achar (91) /= "[") call abort
  if ("[" /= achar ( ichar ( "["))) call abort
  i = 91
  c = "["
  if (achar(i) /= "[") call abort
  if (iachar(c) /= iachar("[")) call abort
  if (iachar(achar(92)) /= 92) call abort
  if (iachar ("\")/= 92) call abort
  if (achar (92) /= "\") call abort
  if ("\" /= achar ( ichar ( "\"))) call abort
  i = 92
  c = "\"
  if (achar(i) /= "\") call abort
  if (iachar(c) /= iachar("\")) call abort
  if (iachar(achar(93)) /= 93) call abort
  if (iachar ("]")/= 93) call abort
  if (achar (93) /= "]") call abort
  if ("]" /= achar ( ichar ( "]"))) call abort
  i = 93
  c = "]"
  if (achar(i) /= "]") call abort
  if (iachar(c) /= iachar("]")) call abort
  if (iachar(achar(94)) /= 94) call abort
  if (iachar ("^")/= 94) call abort
  if (achar (94) /= "^") call abort
  if ("^" /= achar ( ichar ( "^"))) call abort
  i = 94
  c = "^"
  if (achar(i) /= "^") call abort
  if (iachar(c) /= iachar("^")) call abort
  if (iachar(achar(95)) /= 95) call abort
  if (iachar ("_")/= 95) call abort
  if (achar (95) /= "_") call abort
  if ("_" /= achar ( ichar ( "_"))) call abort
  i = 95
  c = "_"
  if (achar(i) /= "_") call abort
  if (iachar(c) /= iachar("_")) call abort
  if (iachar(achar(96)) /= 96) call abort
  if (iachar ("`")/= 96) call abort
  if (achar (96) /= "`") call abort
  if ("`" /= achar ( ichar ( "`"))) call abort
  i = 96
  c = "`"
  if (achar(i) /= "`") call abort
  if (iachar(c) /= iachar("`")) call abort
  if (iachar(achar(97)) /= 97) call abort
  if (iachar ("a")/= 97) call abort
  if (achar (97) /= "a") call abort
  if ("a" /= achar ( ichar ( "a"))) call abort
  i = 97
  c = "a"
  if (achar(i) /= "a") call abort
  if (iachar(c) /= iachar("a")) call abort
  if (iachar(achar(98)) /= 98) call abort
  if (iachar ("b")/= 98) call abort
  if (achar (98) /= "b") call abort
  if ("b" /= achar ( ichar ( "b"))) call abort
  i = 98
  c = "b"
  if (achar(i) /= "b") call abort
  if (iachar(c) /= iachar("b")) call abort
  if (iachar(achar(99)) /= 99) call abort
  if (iachar ("c")/= 99) call abort
  if (achar (99) /= "c") call abort
  if ("c" /= achar ( ichar ( "c"))) call abort
  i = 99
  c = "c"
  if (achar(i) /= "c") call abort
  if (iachar(c) /= iachar("c")) call abort
  if (iachar(achar(100)) /= 100) call abort
  if (iachar ("d")/= 100) call abort
  if (achar (100) /= "d") call abort
  if ("d" /= achar ( ichar ( "d"))) call abort
  i = 100
  c = "d"
  if (achar(i) /= "d") call abort
  if (iachar(c) /= iachar("d")) call abort
  if (iachar(achar(101)) /= 101) call abort
  if (iachar ("e")/= 101) call abort
  if (achar (101) /= "e") call abort
  if ("e" /= achar ( ichar ( "e"))) call abort
  i = 101
  c = "e"
  if (achar(i) /= "e") call abort
  if (iachar(c) /= iachar("e")) call abort
  if (iachar(achar(102)) /= 102) call abort
  if (iachar ("f")/= 102) call abort
  if (achar (102) /= "f") call abort
  if ("f" /= achar ( ichar ( "f"))) call abort
  i = 102
  c = "f"
  if (achar(i) /= "f") call abort
  if (iachar(c) /= iachar("f")) call abort
  if (iachar(achar(103)) /= 103) call abort
  if (iachar ("g")/= 103) call abort
  if (achar (103) /= "g") call abort
  if ("g" /= achar ( ichar ( "g"))) call abort
  i = 103
  c = "g"
  if (achar(i) /= "g") call abort
  if (iachar(c) /= iachar("g")) call abort
  if (iachar(achar(104)) /= 104) call abort
  if (iachar ("h")/= 104) call abort
  if (achar (104) /= "h") call abort
  if ("h" /= achar ( ichar ( "h"))) call abort
  i = 104
  c = "h"
  if (achar(i) /= "h") call abort
  if (iachar(c) /= iachar("h")) call abort
  if (iachar(achar(105)) /= 105) call abort
  if (iachar ("i")/= 105) call abort
  if (achar (105) /= "i") call abort
  if ("i" /= achar ( ichar ( "i"))) call abort
  i = 105
  c = "i"
  if (achar(i) /= "i") call abort
  if (iachar(c) /= iachar("i")) call abort
  if (iachar(achar(106)) /= 106) call abort
  if (iachar ("j")/= 106) call abort
  if (achar (106) /= "j") call abort
  if ("j" /= achar ( ichar ( "j"))) call abort
  i = 106
  c = "j"
  if (achar(i) /= "j") call abort
  if (iachar(c) /= iachar("j")) call abort
  if (iachar(achar(107)) /= 107) call abort
  if (iachar ("k")/= 107) call abort
  if (achar (107) /= "k") call abort
  if ("k" /= achar ( ichar ( "k"))) call abort
  i = 107
  c = "k"
  if (achar(i) /= "k") call abort
  if (iachar(c) /= iachar("k")) call abort
  if (iachar(achar(108)) /= 108) call abort
  if (iachar ("l")/= 108) call abort
  if (achar (108) /= "l") call abort
  if ("l" /= achar ( ichar ( "l"))) call abort
  i = 108
  c = "l"
  if (achar(i) /= "l") call abort
  if (iachar(c) /= iachar("l")) call abort
  if (iachar(achar(109)) /= 109) call abort
  if (iachar ("m")/= 109) call abort
  if (achar (109) /= "m") call abort
  if ("m" /= achar ( ichar ( "m"))) call abort
  i = 109
  c = "m"
  if (achar(i) /= "m") call abort
  if (iachar(c) /= iachar("m")) call abort
  if (iachar(achar(110)) /= 110) call abort
  if (iachar ("n")/= 110) call abort
  if (achar (110) /= "n") call abort
  if ("n" /= achar ( ichar ( "n"))) call abort
  i = 110
  c = "n"
  if (achar(i) /= "n") call abort
  if (iachar(c) /= iachar("n")) call abort
  if (iachar(achar(111)) /= 111) call abort
  if (iachar ("o")/= 111) call abort
  if (achar (111) /= "o") call abort
  if ("o" /= achar ( ichar ( "o"))) call abort
  i = 111
  c = "o"
  if (achar(i) /= "o") call abort
  if (iachar(c) /= iachar("o")) call abort
  if (iachar(achar(112)) /= 112) call abort
  if (iachar ("p")/= 112) call abort
  if (achar (112) /= "p") call abort
  if ("p" /= achar ( ichar ( "p"))) call abort
  i = 112
  c = "p"
  if (achar(i) /= "p") call abort
  if (iachar(c) /= iachar("p")) call abort
  if (iachar(achar(113)) /= 113) call abort
  if (iachar ("q")/= 113) call abort
  if (achar (113) /= "q") call abort
  if ("q" /= achar ( ichar ( "q"))) call abort
  i = 113
  c = "q"
  if (achar(i) /= "q") call abort
  if (iachar(c) /= iachar("q")) call abort
  if (iachar(achar(114)) /= 114) call abort
  if (iachar ("r")/= 114) call abort
  if (achar (114) /= "r") call abort
  if ("r" /= achar ( ichar ( "r"))) call abort
  i = 114
  c = "r"
  if (achar(i) /= "r") call abort
  if (iachar(c) /= iachar("r")) call abort
  if (iachar(achar(115)) /= 115) call abort
  if (iachar ("s")/= 115) call abort
  if (achar (115) /= "s") call abort
  if ("s" /= achar ( ichar ( "s"))) call abort
  i = 115
  c = "s"
  if (achar(i) /= "s") call abort
  if (iachar(c) /= iachar("s")) call abort
  if (iachar(achar(116)) /= 116) call abort
  if (iachar ("t")/= 116) call abort
  if (achar (116) /= "t") call abort
  if ("t" /= achar ( ichar ( "t"))) call abort
  i = 116
  c = "t"
  if (achar(i) /= "t") call abort
  if (iachar(c) /= iachar("t")) call abort
  if (iachar(achar(117)) /= 117) call abort
  if (iachar ("u")/= 117) call abort
  if (achar (117) /= "u") call abort
  if ("u" /= achar ( ichar ( "u"))) call abort
  i = 117
  c = "u"
  if (achar(i) /= "u") call abort
  if (iachar(c) /= iachar("u")) call abort
  if (iachar(achar(118)) /= 118) call abort
  if (iachar ("v")/= 118) call abort
  if (achar (118) /= "v") call abort
  if ("v" /= achar ( ichar ( "v"))) call abort
  i = 118
  c = "v"
  if (achar(i) /= "v") call abort
  if (iachar(c) /= iachar("v")) call abort
  if (iachar(achar(119)) /= 119) call abort
  if (iachar ("w")/= 119) call abort
  if (achar (119) /= "w") call abort
  if ("w" /= achar ( ichar ( "w"))) call abort
  i = 119
  c = "w"
  if (achar(i) /= "w") call abort
  if (iachar(c) /= iachar("w")) call abort
  if (iachar(achar(120)) /= 120) call abort
  if (iachar ("x")/= 120) call abort
  if (achar (120) /= "x") call abort
  if ("x" /= achar ( ichar ( "x"))) call abort
  i = 120
  c = "x"
  if (achar(i) /= "x") call abort
  if (iachar(c) /= iachar("x")) call abort
  if (iachar(achar(121)) /= 121) call abort
  if (iachar ("y")/= 121) call abort
  if (achar (121) /= "y") call abort
  if ("y" /= achar ( ichar ( "y"))) call abort
  i = 121
  c = "y"
  if (achar(i) /= "y") call abort
  if (iachar(c) /= iachar("y")) call abort
  if (iachar(achar(122)) /= 122) call abort
  if (iachar ("z")/= 122) call abort
  if (achar (122) /= "z") call abort
  if ("z" /= achar ( ichar ( "z"))) call abort
  i = 122
  c = "z"
  if (achar(i) /= "z") call abort
  if (iachar(c) /= iachar("z")) call abort
  if (iachar(achar(123)) /= 123) call abort
  if (iachar ("{")/= 123) call abort
  if (achar (123) /= "{") call abort
  if ("{" /= achar ( ichar ( "{"))) call abort
  i = 123
  c = "{"
  if (achar(i) /= "{") call abort
  if (iachar(c) /= iachar("{")) call abort
  if (iachar(achar(124)) /= 124) call abort
  if (iachar ("|")/= 124) call abort
  if (achar (124) /= "|") call abort
  if ("|" /= achar ( ichar ( "|"))) call abort
  i = 124
  c = "|"
  if (achar(i) /= "|") call abort
  if (iachar(c) /= iachar("|")) call abort
  if (iachar(achar(125)) /= 125) call abort
  if (iachar ("}")/= 125) call abort
  if (achar (125) /= "}") call abort
  if ("}" /= achar ( ichar ( "}"))) call abort
  i = 125
  c = "}"
  if (achar(i) /= "}") call abort
  if (iachar(c) /= iachar("}")) call abort
  if (iachar(achar(126)) /= 126) call abort
  if (iachar ("~")/= 126) call abort
  if (achar (126) /= "~") call abort
  if ("~" /= achar ( ichar ( "~"))) call abort
  i = 126
  c = "~"
  if (achar(i) /= "~") call abort
  if (iachar(c) /= iachar("~")) call abort
  if (iachar(achar(127)) /= 127) call abort
  if (iachar ("")/= 127) call abort
  if (achar (127) /= "") call abort
  if ("" /= achar ( ichar ( ""))) call abort
  i = 127
  c = ""
  if (achar(i) /= "") call abort
  if (iachar(c) /= iachar("")) call abort
  if (iachar(achar(128)) /= 128) call abort
  if (iachar ("?")/= 128) call abort
  if (achar (128) /= "?") call abort
  if ("?" /= achar ( ichar ( "?"))) call abort
  i = 128
  c = "?"
  if (achar(i) /= "?") call abort
  if (iachar(c) /= iachar("?")) call abort
  if (iachar(achar(129)) /= 129) call abort
  if (iachar ("?")/= 129) call abort
  if (achar (129) /= "?") call abort
  if ("?" /= achar ( ichar ( "?"))) call abort
  i = 129
  c = "?"
  if (achar(i) /= "?") call abort
  if (iachar(c) /= iachar("?")) call abort
  if (iachar(achar(130)) /= 130) call abort
  if (iachar ("?")/= 130) call abort
  if (achar (130) /= "?") call abort
  if ("?" /= achar ( ichar ( "?"))) call abort
  i = 130
  c = "?"
  if (achar(i) /= "?") call abort
  if (iachar(c) /= iachar("?")) call abort
  if (iachar(achar(131)) /= 131) call abort
  if (iachar ("?")/= 131) call abort
  if (achar (131) /= "?") call abort
  if ("?" /= achar ( ichar ( "?"))) call abort
  i = 131
  c = "?"
  if (achar(i) /= "?") call abort
  if (iachar(c) /= iachar("?")) call abort
  if (iachar(achar(132)) /= 132) call abort
  if (iachar ("?")/= 132) call abort
  if (achar (132) /= "?") call abort
  if ("?" /= achar ( ichar ( "?"))) call abort
  i = 132
  c = "?"
  if (achar(i) /= "?") call abort
  if (iachar(c) /= iachar("?")) call abort
  if (iachar(achar(133)) /= 133) call abort
  if (iachar ("?")/= 133) call abort
  if (achar (133) /= "?") call abort
  if ("?" /= achar ( ichar ( "?"))) call abort
  i = 133
  c = "?"
  if (achar(i) /= "?") call abort
  if (iachar(c) /= iachar("?")) call abort
  if (iachar(achar(134)) /= 134) call abort
  if (iachar ("?")/= 134) call abort
  if (achar (134) /= "?") call abort
  if ("?" /= achar ( ichar ( "?"))) call abort
  i = 134
  c = "?"
  if (achar(i) /= "?") call abort
  if (iachar(c) /= iachar("?")) call abort
  if (iachar(achar(135)) /= 135) call abort
  if (iachar ("?")/= 135) call abort
  if (achar (135) /= "?") call abort
  if ("?" /= achar ( ichar ( "?"))) call abort
  i = 135
  c = "?"
  if (achar(i) /= "?") call abort
  if (iachar(c) /= iachar("?")) call abort
  if (iachar(achar(136)) /= 136) call abort
  if (iachar ("?")/= 136) call abort
  if (achar (136) /= "?") call abort
  if ("?" /= achar ( ichar ( "?"))) call abort
  i = 136
  c = "?"
  if (achar(i) /= "?") call abort
  if (iachar(c) /= iachar("?")) call abort
  if (iachar(achar(137)) /= 137) call abort
  if (iachar ("?")/= 137) call abort
  if (achar (137) /= "?") call abort
  if ("?" /= achar ( ichar ( "?"))) call abort
  i = 137
  c = "?"
  if (achar(i) /= "?") call abort
  if (iachar(c) /= iachar("?")) call abort
  if (iachar(achar(138)) /= 138) call abort
  if (iachar ("?")/= 138) call abort
  if (achar (138) /= "?") call abort
  if ("?" /= achar ( ichar ( "?"))) call abort
  i = 138
  c = "?"
  if (achar(i) /= "?") call abort
  if (iachar(c) /= iachar("?")) call abort
  if (iachar(achar(139)) /= 139) call abort
  if (iachar ("?")/= 139) call abort
  if (achar (139) /= "?") call abort
  if ("?" /= achar ( ichar ( "?"))) call abort
  i = 139
  c = "?"
  if (achar(i) /= "?") call abort
  if (iachar(c) /= iachar("?")) call abort
  if (iachar(achar(140)) /= 140) call abort
  if (iachar ("?")/= 140) call abort
  if (achar (140) /= "?") call abort
  if ("?" /= achar ( ichar ( "?"))) call abort
  i = 140
  c = "?"
  if (achar(i) /= "?") call abort
  if (iachar(c) /= iachar("?")) call abort
  if (iachar(achar(141)) /= 141) call abort
  if (iachar ("?")/= 141) call abort
  if (achar (141) /= "?") call abort
  if ("?" /= achar ( ichar ( "?"))) call abort
  i = 141
  c = "?"
  if (achar(i) /= "?") call abort
  if (iachar(c) /= iachar("?")) call abort
  if (iachar(achar(142)) /= 142) call abort
  if (iachar ("?")/= 142) call abort
  if (achar (142) /= "?") call abort
  if ("?" /= achar ( ichar ( "?"))) call abort
  i = 142
  c = "?"
  if (achar(i) /= "?") call abort
  if (iachar(c) /= iachar("?")) call abort
  if (iachar(achar(143)) /= 143) call abort
  if (iachar ("?")/= 143) call abort
  if (achar (143) /= "?") call abort
  if ("?" /= achar ( ichar ( "?"))) call abort
  i = 143
  c = "?"
  if (achar(i) /= "?") call abort
  if (iachar(c) /= iachar("?")) call abort
  if (iachar(achar(144)) /= 144) call abort
  if (iachar ("?")/= 144) call abort
  if (achar (144) /= "?") call abort
  if ("?" /= achar ( ichar ( "?"))) call abort
  i = 144
  c = "?"
  if (achar(i) /= "?") call abort
  if (iachar(c) /= iachar("?")) call abort
  if (iachar(achar(145)) /= 145) call abort
  if (iachar ("?")/= 145) call abort
  if (achar (145) /= "?") call abort
  if ("?" /= achar ( ichar ( "?"))) call abort
  i = 145
  c = "?"
  if (achar(i) /= "?") call abort
  if (iachar(c) /= iachar("?")) call abort
  if (iachar(achar(146)) /= 146) call abort
  if (iachar ("?")/= 146) call abort
  if (achar (146) /= "?") call abort
  if ("?" /= achar ( ichar ( "?"))) call abort
  i = 146
  c = "?"
  if (achar(i) /= "?") call abort
  if (iachar(c) /= iachar("?")) call abort
  if (iachar(achar(147)) /= 147) call abort
  if (iachar ("?")/= 147) call abort
  if (achar (147) /= "?") call abort
  if ("?" /= achar ( ichar ( "?"))) call abort
  i = 147
  c = "?"
  if (achar(i) /= "?") call abort
  if (iachar(c) /= iachar("?")) call abort
  if (iachar(achar(148)) /= 148) call abort
  if (iachar ("?")/= 148) call abort
  if (achar (148) /= "?") call abort
  if ("?" /= achar ( ichar ( "?"))) call abort
  i = 148
  c = "?"
  if (achar(i) /= "?") call abort
  if (iachar(c) /= iachar("?")) call abort
  if (iachar(achar(149)) /= 149) call abort
  if (iachar ("?")/= 149) call abort
  if (achar (149) /= "?") call abort
  if ("?" /= achar ( ichar ( "?"))) call abort
  i = 149
  c = "?"
  if (achar(i) /= "?") call abort
  if (iachar(c) /= iachar("?")) call abort
  if (iachar(achar(150)) /= 150) call abort
  if (iachar ("?")/= 150) call abort
  if (achar (150) /= "?") call abort
  if ("?" /= achar ( ichar ( "?"))) call abort
  i = 150
  c = "?"
  if (achar(i) /= "?") call abort
  if (iachar(c) /= iachar("?")) call abort
  if (iachar(achar(151)) /= 151) call abort
  if (iachar ("?")/= 151) call abort
  if (achar (151) /= "?") call abort
  if ("?" /= achar ( ichar ( "?"))) call abort
  i = 151
  c = "?"
  if (achar(i) /= "?") call abort
  if (iachar(c) /= iachar("?")) call abort
  if (iachar(achar(152)) /= 152) call abort
  if (iachar ("?")/= 152) call abort
  if (achar (152) /= "?") call abort
  if ("?" /= achar ( ichar ( "?"))) call abort
  i = 152
  c = "?"
  if (achar(i) /= "?") call abort
  if (iachar(c) /= iachar("?")) call abort
  if (iachar(achar(153)) /= 153) call abort
  if (iachar ("?")/= 153) call abort
  if (achar (153) /= "?") call abort
  if ("?" /= achar ( ichar ( "?"))) call abort
  i = 153
  c = "?"
  if (achar(i) /= "?") call abort
  if (iachar(c) /= iachar("?")) call abort
  if (iachar(achar(154)) /= 154) call abort
  if (iachar ("?")/= 154) call abort
  if (achar (154) /= "?") call abort
  if ("?" /= achar ( ichar ( "?"))) call abort
  i = 154
  c = "?"
  if (achar(i) /= "?") call abort
  if (iachar(c) /= iachar("?")) call abort
  if (iachar(achar(155)) /= 155) call abort
  if (iachar ("?")/= 155) call abort
  if (achar (155) /= "?") call abort
  if ("?" /= achar ( ichar ( "?"))) call abort
  i = 155
  c = "?"
  if (achar(i) /= "?") call abort
  if (iachar(c) /= iachar("?")) call abort
  if (iachar(achar(156)) /= 156) call abort
  if (iachar ("?")/= 156) call abort
  if (achar (156) /= "?") call abort
  if ("?" /= achar ( ichar ( "?"))) call abort
  i = 156
  c = "?"
  if (achar(i) /= "?") call abort
  if (iachar(c) /= iachar("?")) call abort
  if (iachar(achar(157)) /= 157) call abort
  if (iachar ("?")/= 157) call abort
  if (achar (157) /= "?") call abort
  if ("?" /= achar ( ichar ( "?"))) call abort
  i = 157
  c = "?"
  if (achar(i) /= "?") call abort
  if (iachar(c) /= iachar("?")) call abort
  if (iachar(achar(158)) /= 158) call abort
  if (iachar ("?")/= 158) call abort
  if (achar (158) /= "?") call abort
  if ("?" /= achar ( ichar ( "?"))) call abort
  i = 158
  c = "?"
  if (achar(i) /= "?") call abort
  if (iachar(c) /= iachar("?")) call abort
  if (iachar(achar(159)) /= 159) call abort
  if (iachar ("?")/= 159) call abort
  if (achar (159) /= "?") call abort
  if ("?" /= achar ( ichar ( "?"))) call abort
  i = 159
  c = "?"
  if (achar(i) /= "?") call abort
  if (iachar(c) /= iachar("?")) call abort
  if (iachar(achar(160)) /= 160) call abort
  if (iachar ("?")/= 160) call abort
  if (achar (160) /= "?") call abort
  if ("?" /= achar ( ichar ( "?"))) call abort
  i = 160
  c = "?"
  if (achar(i) /= "?") call abort
  if (iachar(c) /= iachar("?")) call abort
  if (iachar(achar(161)) /= 161) call abort
  if (iachar ("?")/= 161) call abort
  if (achar (161) /= "?") call abort
  if ("?" /= achar ( ichar ( "?"))) call abort
  i = 161
  c = "?"
  if (achar(i) /= "?") call abort
  if (iachar(c) /= iachar("?")) call abort
  if (iachar(achar(162)) /= 162) call abort
  if (iachar ("?")/= 162) call abort
  if (achar (162) /= "?") call abort
  if ("?" /= achar ( ichar ( "?"))) call abort
  i = 162
  c = "?"
  if (achar(i) /= "?") call abort
  if (iachar(c) /= iachar("?")) call abort
  if (iachar(achar(163)) /= 163) call abort
  if (iachar ("?")/= 163) call abort
  if (achar (163) /= "?") call abort
  if ("?" /= achar ( ichar ( "?"))) call abort
  i = 163
  c = "?"
  if (achar(i) /= "?") call abort
  if (iachar(c) /= iachar("?")) call abort
  if (iachar(achar(164)) /= 164) call abort
  if (iachar ("?")/= 164) call abort
  if (achar (164) /= "?") call abort
  if ("?" /= achar ( ichar ( "?"))) call abort
  i = 164
  c = "?"
  if (achar(i) /= "?") call abort
  if (iachar(c) /= iachar("?")) call abort
  if (iachar(achar(165)) /= 165) call abort
  if (iachar ("?")/= 165) call abort
  if (achar (165) /= "?") call abort
  if ("?" /= achar ( ichar ( "?"))) call abort
  i = 165
  c = "?"
  if (achar(i) /= "?") call abort
  if (iachar(c) /= iachar("?")) call abort
  if (iachar(achar(166)) /= 166) call abort
  if (iachar ("?")/= 166) call abort
  if (achar (166) /= "?") call abort
  if ("?" /= achar ( ichar ( "?"))) call abort
  i = 166
  c = "?"
  if (achar(i) /= "?") call abort
  if (iachar(c) /= iachar("?")) call abort
  if (iachar(achar(167)) /= 167) call abort
  if (iachar ("?")/= 167) call abort
  if (achar (167) /= "?") call abort
  if ("?" /= achar ( ichar ( "?"))) call abort
  i = 167
  c = "?"
  if (achar(i) /= "?") call abort
  if (iachar(c) /= iachar("?")) call abort
  if (iachar(achar(168)) /= 168) call abort
  if (iachar ("?")/= 168) call abort
  if (achar (168) /= "?") call abort
  if ("?" /= achar ( ichar ( "?"))) call abort
  i = 168
  c = "?"
  if (achar(i) /= "?") call abort
  if (iachar(c) /= iachar("?")) call abort
  if (iachar(achar(169)) /= 169) call abort
  if (iachar ("?")/= 169) call abort
  if (achar (169) /= "?") call abort
  if ("?" /= achar ( ichar ( "?"))) call abort
  i = 169
  c = "?"
  if (achar(i) /= "?") call abort
  if (iachar(c) /= iachar("?")) call abort
  if (iachar(achar(170)) /= 170) call abort
  if (iachar ("?")/= 170) call abort
  if (achar (170) /= "?") call abort
  if ("?" /= achar ( ichar ( "?"))) call abort
  i = 170
  c = "?"
  if (achar(i) /= "?") call abort
  if (iachar(c) /= iachar("?")) call abort
  if (iachar(achar(171)) /= 171) call abort
  if (iachar ("?")/= 171) call abort
  if (achar (171) /= "?") call abort
  if ("?" /= achar ( ichar ( "?"))) call abort
  i = 171
  c = "?"
  if (achar(i) /= "?") call abort
  if (iachar(c) /= iachar("?")) call abort
  if (iachar(achar(172)) /= 172) call abort
  if (iachar ("?")/= 172) call abort
  if (achar (172) /= "?") call abort
  if ("?" /= achar ( ichar ( "?"))) call abort
  i = 172
  c = "?"
  if (achar(i) /= "?") call abort
  if (iachar(c) /= iachar("?")) call abort
  if (iachar(achar(173)) /= 173) call abort
  if (iachar ("?")/= 173) call abort
  if (achar (173) /= "?") call abort
  if ("?" /= achar ( ichar ( "?"))) call abort
  i = 173
  c = "?"
  if (achar(i) /= "?") call abort
  if (iachar(c) /= iachar("?")) call abort
  if (iachar(achar(174)) /= 174) call abort
  if (iachar ("?")/= 174) call abort
  if (achar (174) /= "?") call abort
  if ("?" /= achar ( ichar ( "?"))) call abort
  i = 174
  c = "?"
  if (achar(i) /= "?") call abort
  if (iachar(c) /= iachar("?")) call abort
  if (iachar(achar(175)) /= 175) call abort
  if (iachar ("?")/= 175) call abort
  if (achar (175) /= "?") call abort
  if ("?" /= achar ( ichar ( "?"))) call abort
  i = 175
  c = "?"
  if (achar(i) /= "?") call abort
  if (iachar(c) /= iachar("?")) call abort
  if (iachar(achar(176)) /= 176) call abort
  if (iachar ("?")/= 176) call abort
  if (achar (176) /= "?") call abort
  if ("?" /= achar ( ichar ( "?"))) call abort
  i = 176
  c = "?"
  if (achar(i) /= "?") call abort
  if (iachar(c) /= iachar("?")) call abort
  if (iachar(achar(177)) /= 177) call abort
  if (iachar ("?")/= 177) call abort
  if (achar (177) /= "?") call abort
  if ("?" /= achar ( ichar ( "?"))) call abort
  i = 177
  c = "?"
  if (achar(i) /= "?") call abort
  if (iachar(c) /= iachar("?")) call abort
  if (iachar(achar(178)) /= 178) call abort
  if (iachar ("?")/= 178) call abort
  if (achar (178) /= "?") call abort
  if ("?" /= achar ( ichar ( "?"))) call abort
  i = 178
  c = "?"
  if (achar(i) /= "?") call abort
  if (iachar(c) /= iachar("?")) call abort
  if (iachar(achar(179)) /= 179) call abort
  if (iachar ("?")/= 179) call abort
  if (achar (179) /= "?") call abort
  if ("?" /= achar ( ichar ( "?"))) call abort
  i = 179
  c = "?"
  if (achar(i) /= "?") call abort
  if (iachar(c) /= iachar("?")) call abort
  if (iachar(achar(180)) /= 180) call abort
  if (iachar ("?")/= 180) call abort
  if (achar (180) /= "?") call abort
  if ("?" /= achar ( ichar ( "?"))) call abort
  i = 180
  c = "?"
  if (achar(i) /= "?") call abort
  if (iachar(c) /= iachar("?")) call abort
  if (iachar(achar(181)) /= 181) call abort
  if (iachar ("?")/= 181) call abort
  if (achar (181) /= "?") call abort
  if ("?" /= achar ( ichar ( "?"))) call abort
  i = 181
  c = "?"
  if (achar(i) /= "?") call abort
  if (iachar(c) /= iachar("?")) call abort
  if (iachar(achar(182)) /= 182) call abort
  if (iachar ("?")/= 182) call abort
  if (achar (182) /= "?") call abort
  if ("?" /= achar ( ichar ( "?"))) call abort
  i = 182
  c = "?"
  if (achar(i) /= "?") call abort
  if (iachar(c) /= iachar("?")) call abort
  if (iachar(achar(183)) /= 183) call abort
  if (iachar ("?")/= 183) call abort
  if (achar (183) /= "?") call abort
  if ("?" /= achar ( ichar ( "?"))) call abort
  i = 183
  c = "?"
  if (achar(i) /= "?") call abort
  if (iachar(c) /= iachar("?")) call abort
  if (iachar(achar(184)) /= 184) call abort
  if (iachar ("?")/= 184) call abort
  if (achar (184) /= "?") call abort
  if ("?" /= achar ( ichar ( "?"))) call abort
  i = 184
  c = "?"
  if (achar(i) /= "?") call abort
  if (iachar(c) /= iachar("?")) call abort
  if (iachar(achar(185)) /= 185) call abort
  if (iachar ("?")/= 185) call abort
  if (achar (185) /= "?") call abort
  if ("?" /= achar ( ichar ( "?"))) call abort
  i = 185
  c = "?"
  if (achar(i) /= "?") call abort
  if (iachar(c) /= iachar("?")) call abort
  if (iachar(achar(186)) /= 186) call abort
  if (iachar ("?")/= 186) call abort
  if (achar (186) /= "?") call abort
  if ("?" /= achar ( ichar ( "?"))) call abort
  i = 186
  c = "?"
  if (achar(i) /= "?") call abort
  if (iachar(c) /= iachar("?")) call abort
  if (iachar(achar(187)) /= 187) call abort
  if (iachar ("?")/= 187) call abort
  if (achar (187) /= "?") call abort
  if ("?" /= achar ( ichar ( "?"))) call abort
  i = 187
  c = "?"
  if (achar(i) /= "?") call abort
  if (iachar(c) /= iachar("?")) call abort
  if (iachar(achar(188)) /= 188) call abort
  if (iachar ("?")/= 188) call abort
  if (achar (188) /= "?") call abort
  if ("?" /= achar ( ichar ( "?"))) call abort
  i = 188
  c = "?"
  if (achar(i) /= "?") call abort
  if (iachar(c) /= iachar("?")) call abort
  if (iachar(achar(189)) /= 189) call abort
  if (iachar ("?")/= 189) call abort
  if (achar (189) /= "?") call abort
  if ("?" /= achar ( ichar ( "?"))) call abort
  i = 189
  c = "?"
  if (achar(i) /= "?") call abort
  if (iachar(c) /= iachar("?")) call abort
  if (iachar(achar(190)) /= 190) call abort
  if (iachar ("?")/= 190) call abort
  if (achar (190) /= "?") call abort
  if ("?" /= achar ( ichar ( "?"))) call abort
  i = 190
  c = "?"
  if (achar(i) /= "?") call abort
  if (iachar(c) /= iachar("?")) call abort
  if (iachar(achar(191)) /= 191) call abort
  if (iachar ("?")/= 191) call abort
  if (achar (191) /= "?") call abort
  if ("?" /= achar ( ichar ( "?"))) call abort
  i = 191
  c = "?"
  if (achar(i) /= "?") call abort
  if (iachar(c) /= iachar("?")) call abort
  if (iachar(achar(192)) /= 192) call abort
  if (iachar ("?")/= 192) call abort
  if (achar (192) /= "?") call abort
  if ("?" /= achar ( ichar ( "?"))) call abort
  i = 192
  c = "?"
  if (achar(i) /= "?") call abort
  if (iachar(c) /= iachar("?")) call abort
  if (iachar(achar(193)) /= 193) call abort
  if (iachar ("?")/= 193) call abort
  if (achar (193) /= "?") call abort
  if ("?" /= achar ( ichar ( "?"))) call abort
  i = 193
  c = "?"
  if (achar(i) /= "?") call abort
  if (iachar(c) /= iachar("?")) call abort
  if (iachar(achar(194)) /= 194) call abort
  if (iachar ("?")/= 194) call abort
  if (achar (194) /= "?") call abort
  if ("?" /= achar ( ichar ( "?"))) call abort
  i = 194
  c = "?"
  if (achar(i) /= "?") call abort
  if (iachar(c) /= iachar("?")) call abort
  if (iachar(achar(195)) /= 195) call abort
  if (iachar ("?")/= 195) call abort
  if (achar (195) /= "?") call abort
  if ("?" /= achar ( ichar ( "?"))) call abort
  i = 195
  c = "?"
  if (achar(i) /= "?") call abort
  if (iachar(c) /= iachar("?")) call abort
  if (iachar(achar(196)) /= 196) call abort
  if (iachar ("?")/= 196) call abort
  if (achar (196) /= "?") call abort
  if ("?" /= achar ( ichar ( "?"))) call abort
  i = 196
  c = "?"
  if (achar(i) /= "?") call abort
  if (iachar(c) /= iachar("?")) call abort
  if (iachar(achar(197)) /= 197) call abort
  if (iachar ("?")/= 197) call abort
  if (achar (197) /= "?") call abort
  if ("?" /= achar ( ichar ( "?"))) call abort
  i = 197
  c = "?"
  if (achar(i) /= "?") call abort
  if (iachar(c) /= iachar("?")) call abort
  if (iachar(achar(198)) /= 198) call abort
  if (iachar ("?")/= 198) call abort
  if (achar (198) /= "?") call abort
  if ("?" /= achar ( ichar ( "?"))) call abort
  i = 198
  c = "?"
  if (achar(i) /= "?") call abort
  if (iachar(c) /= iachar("?")) call abort
  if (iachar(achar(199)) /= 199) call abort
  if (iachar ("?")/= 199) call abort
  if (achar (199) /= "?") call abort
  if ("?" /= achar ( ichar ( "?"))) call abort
  i = 199
  c = "?"
  if (achar(i) /= "?") call abort
  if (iachar(c) /= iachar("?")) call abort
  if (iachar(achar(200)) /= 200) call abort
  if (iachar ("?")/= 200) call abort
  if (achar (200) /= "?") call abort
  if ("?" /= achar ( ichar ( "?"))) call abort
  i = 200
  c = "?"
  if (achar(i) /= "?") call abort
  if (iachar(c) /= iachar("?")) call abort
  if (iachar(achar(201)) /= 201) call abort
  if (iachar ("?")/= 201) call abort
  if (achar (201) /= "?") call abort
  if ("?" /= achar ( ichar ( "?"))) call abort
  i = 201
  c = "?"
  if (achar(i) /= "?") call abort
  if (iachar(c) /= iachar("?")) call abort
  if (iachar(achar(202)) /= 202) call abort
  if (iachar ("?")/= 202) call abort
  if (achar (202) /= "?") call abort
  if ("?" /= achar ( ichar ( "?"))) call abort
  i = 202
  c = "?"
  if (achar(i) /= "?") call abort
  if (iachar(c) /= iachar("?")) call abort
  if (iachar(achar(203)) /= 203) call abort
  if (iachar ("?")/= 203) call abort
  if (achar (203) /= "?") call abort
  if ("?" /= achar ( ichar ( "?"))) call abort
  i = 203
  c = "?"
  if (achar(i) /= "?") call abort
  if (iachar(c) /= iachar("?")) call abort
  if (iachar(achar(204)) /= 204) call abort
  if (iachar ("?")/= 204) call abort
  if (achar (204) /= "?") call abort
  if ("?" /= achar ( ichar ( "?"))) call abort
  i = 204
  c = "?"
  if (achar(i) /= "?") call abort
  if (iachar(c) /= iachar("?")) call abort
  if (iachar(achar(205)) /= 205) call abort
  if (iachar ("?")/= 205) call abort
  if (achar (205) /= "?") call abort
  if ("?" /= achar ( ichar ( "?"))) call abort
  i = 205
  c = "?"
  if (achar(i) /= "?") call abort
  if (iachar(c) /= iachar("?")) call abort
  if (iachar(achar(206)) /= 206) call abort
  if (iachar ("?")/= 206) call abort
  if (achar (206) /= "?") call abort
  if ("?" /= achar ( ichar ( "?"))) call abort
  i = 206
  c = "?"
  if (achar(i) /= "?") call abort
  if (iachar(c) /= iachar("?")) call abort
  if (iachar(achar(207)) /= 207) call abort
  if (iachar ("?")/= 207) call abort
  if (achar (207) /= "?") call abort
  if ("?" /= achar ( ichar ( "?"))) call abort
  i = 207
  c = "?"
  if (achar(i) /= "?") call abort
  if (iachar(c) /= iachar("?")) call abort
  if (iachar(achar(208)) /= 208) call abort
  if (iachar ("?")/= 208) call abort
  if (achar (208) /= "?") call abort
  if ("?" /= achar ( ichar ( "?"))) call abort
  i = 208
  c = "?"
  if (achar(i) /= "?") call abort
  if (iachar(c) /= iachar("?")) call abort
  if (iachar(achar(209)) /= 209) call abort
  if (iachar ("?")/= 209) call abort
  if (achar (209) /= "?") call abort
  if ("?" /= achar ( ichar ( "?"))) call abort
  i = 209
  c = "?"
  if (achar(i) /= "?") call abort
  if (iachar(c) /= iachar("?")) call abort
  if (iachar(achar(210)) /= 210) call abort
  if (iachar ("?")/= 210) call abort
  if (achar (210) /= "?") call abort
  if ("?" /= achar ( ichar ( "?"))) call abort
  i = 210
  c = "?"
  if (achar(i) /= "?") call abort
  if (iachar(c) /= iachar("?")) call abort
  if (iachar(achar(211)) /= 211) call abort
  if (iachar ("?")/= 211) call abort
  if (achar (211) /= "?") call abort
  if ("?" /= achar ( ichar ( "?"))) call abort
  i = 211
  c = "?"
  if (achar(i) /= "?") call abort
  if (iachar(c) /= iachar("?")) call abort
  if (iachar(achar(212)) /= 212) call abort
  if (iachar ("?")/= 212) call abort
  if (achar (212) /= "?") call abort
  if ("?" /= achar ( ichar ( "?"))) call abort
  i = 212
  c = "?"
  if (achar(i) /= "?") call abort
  if (iachar(c) /= iachar("?")) call abort
  if (iachar(achar(213)) /= 213) call abort
  if (iachar ("?")/= 213) call abort
  if (achar (213) /= "?") call abort
  if ("?" /= achar ( ichar ( "?"))) call abort
  i = 213
  c = "?"
  if (achar(i) /= "?") call abort
  if (iachar(c) /= iachar("?")) call abort
  if (iachar(achar(214)) /= 214) call abort
  if (iachar ("?")/= 214) call abort
  if (achar (214) /= "?") call abort
  if ("?" /= achar ( ichar ( "?"))) call abort
  i = 214
  c = "?"
  if (achar(i) /= "?") call abort
  if (iachar(c) /= iachar("?")) call abort
  if (iachar(achar(215)) /= 215) call abort
  if (iachar ("?")/= 215) call abort
  if (achar (215) /= "?") call abort
  if ("?" /= achar ( ichar ( "?"))) call abort
  i = 215
  c = "?"
  if (achar(i) /= "?") call abort
  if (iachar(c) /= iachar("?")) call abort
  if (iachar(achar(216)) /= 216) call abort
  if (iachar ("?")/= 216) call abort
  if (achar (216) /= "?") call abort
  if ("?" /= achar ( ichar ( "?"))) call abort
  i = 216
  c = "?"
  if (achar(i) /= "?") call abort
  if (iachar(c) /= iachar("?")) call abort
  if (iachar(achar(217)) /= 217) call abort
  if (iachar ("?")/= 217) call abort
  if (achar (217) /= "?") call abort
  if ("?" /= achar ( ichar ( "?"))) call abort
  i = 217
  c = "?"
  if (achar(i) /= "?") call abort
  if (iachar(c) /= iachar("?")) call abort
  if (iachar(achar(218)) /= 218) call abort
  if (iachar ("?")/= 218) call abort
  if (achar (218) /= "?") call abort
  if ("?" /= achar ( ichar ( "?"))) call abort
  i = 218
  c = "?"
  if (achar(i) /= "?") call abort
  if (iachar(c) /= iachar("?")) call abort
  if (iachar(achar(219)) /= 219) call abort
  if (iachar ("?")/= 219) call abort
  if (achar (219) /= "?") call abort
  if ("?" /= achar ( ichar ( "?"))) call abort
  i = 219
  c = "?"
  if (achar(i) /= "?") call abort
  if (iachar(c) /= iachar("?")) call abort
  if (iachar(achar(220)) /= 220) call abort
  if (iachar ("?")/= 220) call abort
  if (achar (220) /= "?") call abort
  if ("?" /= achar ( ichar ( "?"))) call abort
  i = 220
  c = "?"
  if (achar(i) /= "?") call abort
  if (iachar(c) /= iachar("?")) call abort
  if (iachar(achar(221)) /= 221) call abort
  if (iachar ("?")/= 221) call abort
  if (achar (221) /= "?") call abort
  if ("?" /= achar ( ichar ( "?"))) call abort
  i = 221
  c = "?"
  if (achar(i) /= "?") call abort
  if (iachar(c) /= iachar("?")) call abort
  if (iachar(achar(222)) /= 222) call abort
  if (iachar ("?")/= 222) call abort
  if (achar (222) /= "?") call abort
  if ("?" /= achar ( ichar ( "?"))) call abort
  i = 222
  c = "?"
  if (achar(i) /= "?") call abort
  if (iachar(c) /= iachar("?")) call abort
  if (iachar(achar(223)) /= 223) call abort
  if (iachar ("?")/= 223) call abort
  if (achar (223) /= "?") call abort
  if ("?" /= achar ( ichar ( "?"))) call abort
  i = 223
  c = "?"
  if (achar(i) /= "?") call abort
  if (iachar(c) /= iachar("?")) call abort
  if (iachar(achar(224)) /= 224) call abort
  if (iachar ("?")/= 224) call abort
  if (achar (224) /= "?") call abort
  if ("?" /= achar ( ichar ( "?"))) call abort
  i = 224
  c = "?"
  if (achar(i) /= "?") call abort
  if (iachar(c) /= iachar("?")) call abort
  if (iachar(achar(225)) /= 225) call abort
  if (iachar ("?")/= 225) call abort
  if (achar (225) /= "?") call abort
  if ("?" /= achar ( ichar ( "?"))) call abort
  i = 225
  c = "?"
  if (achar(i) /= "?") call abort
  if (iachar(c) /= iachar("?")) call abort
  if (iachar(achar(226)) /= 226) call abort
  if (iachar ("?")/= 226) call abort
  if (achar (226) /= "?") call abort
  if ("?" /= achar ( ichar ( "?"))) call abort
  i = 226
  c = "?"
  if (achar(i) /= "?") call abort
  if (iachar(c) /= iachar("?")) call abort
  if (iachar(achar(227)) /= 227) call abort
  if (iachar ("?")/= 227) call abort
  if (achar (227) /= "?") call abort
  if ("?" /= achar ( ichar ( "?"))) call abort
  i = 227
  c = "?"
  if (achar(i) /= "?") call abort
  if (iachar(c) /= iachar("?")) call abort
  if (iachar(achar(228)) /= 228) call abort
  if (iachar ("?")/= 228) call abort
  if (achar (228) /= "?") call abort
  if ("?" /= achar ( ichar ( "?"))) call abort
  i = 228
  c = "?"
  if (achar(i) /= "?") call abort
  if (iachar(c) /= iachar("?")) call abort
  if (iachar(achar(229)) /= 229) call abort
  if (iachar ("?")/= 229) call abort
  if (achar (229) /= "?") call abort
  if ("?" /= achar ( ichar ( "?"))) call abort
  i = 229
  c = "?"
  if (achar(i) /= "?") call abort
  if (iachar(c) /= iachar("?")) call abort
  if (iachar(achar(230)) /= 230) call abort
  if (iachar ("?")/= 230) call abort
  if (achar (230) /= "?") call abort
  if ("?" /= achar ( ichar ( "?"))) call abort
  i = 230
  c = "?"
  if (achar(i) /= "?") call abort
  if (iachar(c) /= iachar("?")) call abort
  if (iachar(achar(231)) /= 231) call abort
  if (iachar ("?")/= 231) call abort
  if (achar (231) /= "?") call abort
  if ("?" /= achar ( ichar ( "?"))) call abort
  i = 231
  c = "?"
  if (achar(i) /= "?") call abort
  if (iachar(c) /= iachar("?")) call abort
  if (iachar(achar(232)) /= 232) call abort
  if (iachar ("?")/= 232) call abort
  if (achar (232) /= "?") call abort
  if ("?" /= achar ( ichar ( "?"))) call abort
  i = 232
  c = "?"
  if (achar(i) /= "?") call abort
  if (iachar(c) /= iachar("?")) call abort
  if (iachar(achar(233)) /= 233) call abort
  if (iachar ("?")/= 233) call abort
  if (achar (233) /= "?") call abort
  if ("?" /= achar ( ichar ( "?"))) call abort
  i = 233
  c = "?"
  if (achar(i) /= "?") call abort
  if (iachar(c) /= iachar("?")) call abort
  if (iachar(achar(234)) /= 234) call abort
  if (iachar ("?")/= 234) call abort
  if (achar (234) /= "?") call abort
  if ("?" /= achar ( ichar ( "?"))) call abort
  i = 234
  c = "?"
  if (achar(i) /= "?") call abort
  if (iachar(c) /= iachar("?")) call abort
  if (iachar(achar(235)) /= 235) call abort
  if (iachar ("?")/= 235) call abort
  if (achar (235) /= "?") call abort
  if ("?" /= achar ( ichar ( "?"))) call abort
  i = 235
  c = "?"
  if (achar(i) /= "?") call abort
  if (iachar(c) /= iachar("?")) call abort
  if (iachar(achar(236)) /= 236) call abort
  if (iachar ("?")/= 236) call abort
  if (achar (236) /= "?") call abort
  if ("?" /= achar ( ichar ( "?"))) call abort
  i = 236
  c = "?"
  if (achar(i) /= "?") call abort
  if (iachar(c) /= iachar("?")) call abort
  if (iachar(achar(237)) /= 237) call abort
  if (iachar ("?")/= 237) call abort
  if (achar (237) /= "?") call abort
  if ("?" /= achar ( ichar ( "?"))) call abort
  i = 237
  c = "?"
  if (achar(i) /= "?") call abort
  if (iachar(c) /= iachar("?")) call abort
  if (iachar(achar(238)) /= 238) call abort
  if (iachar ("?")/= 238) call abort
  if (achar (238) /= "?") call abort
  if ("?" /= achar ( ichar ( "?"))) call abort
  i = 238
  c = "?"
  if (achar(i) /= "?") call abort
  if (iachar(c) /= iachar("?")) call abort
  if (iachar(achar(239)) /= 239) call abort
  if (iachar ("?")/= 239) call abort
  if (achar (239) /= "?") call abort
  if ("?" /= achar ( ichar ( "?"))) call abort
  i = 239
  c = "?"
  if (achar(i) /= "?") call abort
  if (iachar(c) /= iachar("?")) call abort
  if (iachar(achar(240)) /= 240) call abort
  if (iachar ("?")/= 240) call abort
  if (achar (240) /= "?") call abort
  if ("?" /= achar ( ichar ( "?"))) call abort
  i = 240
  c = "?"
  if (achar(i) /= "?") call abort
  if (iachar(c) /= iachar("?")) call abort
  if (iachar(achar(241)) /= 241) call abort
  if (iachar ("?")/= 241) call abort
  if (achar (241) /= "?") call abort
  if ("?" /= achar ( ichar ( "?"))) call abort
  i = 241
  c = "?"
  if (achar(i) /= "?") call abort
  if (iachar(c) /= iachar("?")) call abort
  if (iachar(achar(242)) /= 242) call abort
  if (iachar ("?")/= 242) call abort
  if (achar (242) /= "?") call abort
  if ("?" /= achar ( ichar ( "?"))) call abort
  i = 242
  c = "?"
  if (achar(i) /= "?") call abort
  if (iachar(c) /= iachar("?")) call abort
  if (iachar(achar(243)) /= 243) call abort
  if (iachar ("?")/= 243) call abort
  if (achar (243) /= "?") call abort
  if ("?" /= achar ( ichar ( "?"))) call abort
  i = 243
  c = "?"
  if (achar(i) /= "?") call abort
  if (iachar(c) /= iachar("?")) call abort
  if (iachar(achar(244)) /= 244) call abort
  if (iachar ("?")/= 244) call abort
  if (achar (244) /= "?") call abort
  if ("?" /= achar ( ichar ( "?"))) call abort
  i = 244
  c = "?"
  if (achar(i) /= "?") call abort
  if (iachar(c) /= iachar("?")) call abort
  if (iachar(achar(245)) /= 245) call abort
  if (iachar ("?")/= 245) call abort
  if (achar (245) /= "?") call abort
  if ("?" /= achar ( ichar ( "?"))) call abort
  i = 245
  c = "?"
  if (achar(i) /= "?") call abort
  if (iachar(c) /= iachar("?")) call abort
  if (iachar(achar(246)) /= 246) call abort
  if (iachar ("?")/= 246) call abort
  if (achar (246) /= "?") call abort
  if ("?" /= achar ( ichar ( "?"))) call abort
  i = 246
  c = "?"
  if (achar(i) /= "?") call abort
  if (iachar(c) /= iachar("?")) call abort
  if (iachar(achar(247)) /= 247) call abort
  if (iachar ("?")/= 247) call abort
  if (achar (247) /= "?") call abort
  if ("?" /= achar ( ichar ( "?"))) call abort
  i = 247
  c = "?"
  if (achar(i) /= "?") call abort
  if (iachar(c) /= iachar("?")) call abort
  if (iachar(achar(248)) /= 248) call abort
  if (iachar ("?")/= 248) call abort
  if (achar (248) /= "?") call abort
  if ("?" /= achar ( ichar ( "?"))) call abort
  i = 248
  c = "?"
  if (achar(i) /= "?") call abort
  if (iachar(c) /= iachar("?")) call abort
  if (iachar(achar(249)) /= 249) call abort
  if (iachar ("?")/= 249) call abort
  if (achar (249) /= "?") call abort
  if ("?" /= achar ( ichar ( "?"))) call abort
  i = 249
  c = "?"
  if (achar(i) /= "?") call abort
  if (iachar(c) /= iachar("?")) call abort
  if (iachar(achar(250)) /= 250) call abort
  if (iachar ("?")/= 250) call abort
  if (achar (250) /= "?") call abort
  if ("?" /= achar ( ichar ( "?"))) call abort
  i = 250
  c = "?"
  if (achar(i) /= "?") call abort
  if (iachar(c) /= iachar("?")) call abort
  if (iachar(achar(251)) /= 251) call abort
  if (iachar ("?")/= 251) call abort
  if (achar (251) /= "?") call abort
  if ("?" /= achar ( ichar ( "?"))) call abort
  i = 251
  c = "?"
  if (achar(i) /= "?") call abort
  if (iachar(c) /= iachar("?")) call abort
  if (iachar(achar(252)) /= 252) call abort
  if (iachar ("?")/= 252) call abort
  if (achar (252) /= "?") call abort
  if ("?" /= achar ( ichar ( "?"))) call abort
  i = 252
  c = "?"
  if (achar(i) /= "?") call abort
  if (iachar(c) /= iachar("?")) call abort
  if (iachar(achar(253)) /= 253) call abort
  if (iachar ("?")/= 253) call abort
  if (achar (253) /= "?") call abort
  if ("?" /= achar ( ichar ( "?"))) call abort
  i = 253
  c = "?"
  if (achar(i) /= "?") call abort
  if (iachar(c) /= iachar("?")) call abort
  if (iachar(achar(254)) /= 254) call abort
  if (iachar ("?")/= 254) call abort
  if (achar (254) /= "?") call abort
  if ("?" /= achar ( ichar ( "?"))) call abort
  i = 254
  c = "?"
  if (achar(i) /= "?") call abort
  if (iachar(c) /= iachar("?")) call abort
  if (iachar(achar(255)) /= 255) call abort
  if (iachar ("?")/= 255) call abort
  if (achar (255) /= "?") call abort
  if ("?" /= achar ( ichar ( "?"))) call abort
  i = 255
  c = "?"
  if (achar(i) /= "?") call abort
  if (iachar(c) /= iachar("?")) call abort
end program main
-------------- next part --------------
A non-text attachment was scrubbed...
Name: achar-proposal.diff
Type: text/x-diff
Size: 6986 bytes
Desc: not available
URL: <http://gcc.gnu.org/pipermail/fortran/attachments/20070122/8cb515ef/attachment.bin>


More information about the Fortran mailing list