isascii(3f) - [M_strings:COMPARE] returns .true. if the character is
 in the range char(0) to char(256)
 (LICENSE:PD)
elemental function isascii(onechar)
 character,intent(in) :: onechar
 logical              :: isascii
 isascii(3f) returns .true. if the character is in the range char(0)
 to char(127)
onechar  character to test
isupper  logical value returns true if character is an ASCII
         character.
Sample program
 program demo_isascii
 use M_strings, only : isascii
 implicit none
 integer                    :: i
 character(len=1),parameter :: string(*)=[(char(i),i=0,255)]
    write(*,'(10(g0,1x))')'ISASCII: ', &
    & iachar(pack( string, isascii(string) ))
 end program demo_isascii
Results:
ISASCII:  0 1 2 3 4 5 6 7 8
9 10 11 12 13 14 15 16 17 18
19 20 21 22 23 24 25 26 27 28
29 30 31 32 33 34 35 36 37 38
39 40 41 42 43 44 45 46 47 48
49 50 51 52 53 54 55 56 57 58
59 60 61 62 63 64 65 66 67 68
69 70 71 72 73 74 75 76 77 78
79 80 81 82 83 84 85 86 87 88
89 90 91 92 93 94 95 96 97 98
99 100 101 102 103 104 105 106 107 108
109 110 111 112 113 114 115 116 117 118
119 120 121 122 123 124 125 126 127
 John S. Urban
 Public Domain
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| character, | intent(in) | :: | ch | 
elemental function isascii(ch) result(res)
! ident_71="@(#) M_strings isascii(3f) returns .true. if character is in the range char(0) to char(127)"
character,intent(in) :: ch
logical              :: res
   select case(iachar(ch))
   case(0:127)
     res=.true.
   case default
     res=.false.
   end select
end function isascii