!=============================================================================== ! John Appleyard, 21 June 2005. ! This file: http://ftp.aset.psu.edu/pub/ger/fortran/hdk/ulcaseJA.f90 ! function Translate(String,InTable,OutTable) character(*),intent(in) :: String,InTable,OutTable character(Len(String)) :: Translate Integer :: i , p , l Translate = String l = min(len(InTable),len(OutTable)) do p = 1 , len(String) i = index(InTable(1:l),String(p:p)) if ( i>0 ) Translate(p:p) = OutTable(i:i) enddo end function Translate !================================================================= function UpperCase(string) character(*),intent(in) :: string character(len(string)) :: UpperCase UpperCase = Translate(string,'abcdefghijklmnopqrstuvwxyz' & ,'ABCDEFGHIJKLMNOPQRSTUVWXYZ') end function UpperCase !================================================================= function LowerCase(string) character(*),intent(in) :: string character(len(string)) :: LowerCase LowerCase = Translate(string,'ABCDEFGHIJKLMNOPQRSTUVWXYZ' & ,'abcdefghijklmnopqrstuvwxyz') end function LowerCase !================================================================= Program testx character(10) ch ch="abcdefghié" print *, UpperCase(ch) end Program testx