reverse(3f) - [M_strings:EDITING] Return a string reversed
  (LICENSE:PD)
elemental pure function reverse(str) result (string)
 character(*), intent(in) :: str
 character(len(str))      :: string
  reverse(string) returns a copy of the input string with
  all characters reversed from right to left.
Sample program:
   program demo_reverse
   use M_strings, only: reverse
   implicit none
   character(len=:),allocatable  :: s
      write(*,*)'REVERSE STRINGS:',reverse('Madam, I''m Adam')
      s='abcdefghijklmnopqrstuvwxyz'
      write(*,*) 'original input string is ....',s
      write(*,*) 'reversed output string is ...',reverse(s)
   end program demo_reverse
Results:
  >  REVERSE STRINGS:madA m'I ,madaM
  >  original input string is ....abcdefghijklmnopqrstuvwxyz
  >  reversed output string is ...zyxwvutsrqponmlkjihgfedcba
John S. Urban
Public Domain
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| character(len=*), | intent(in) | :: | string | 
elemental function reverse(string) result (rev)
! ident_21="@(#) M_strings reverse(3f) Return a string reversed"
character(len=*),intent(in)    :: string   ! string to reverse
character(len=len(string))     :: rev      ! return value (reversed string)
integer                        :: length
integer                        :: i
   length = len(string)
   do i = 1,length
      rev(i:i)=string(length-i+1:length-i+1)
   enddo
end function reverse