Skip to content

Instantly share code, notes, and snippets.

@prefork
Created March 9, 2010 22:42
Show Gist options
  • Save prefork/327238 to your computer and use it in GitHub Desktop.
Save prefork/327238 to your computer and use it in GitHub Desktop.
SUBROUTINE example1(messyarray, usefulLength, cleanarray)
IMPLICIT NONE
CHARACTER (LEN=12), DIMENSION(*), INTENT(IN) :: messyarray
CHARACTER (LEN=12), DIMENSION(*), INTENT(OUT) :: cleanarray
INTEGER, INTENT(IN) :: usefulLength
CHARACTER (LEN=12) :: swap, caps1, caps2
INTEGER :: i,j,k,l,m, len1, len2, percent
DO i=1, usefulLength
cleanarray(i) = messyarray(i)
END DO
DO i=usefulLength, 1, -1
DO j=1, i
caps1 = cleanArray(j)
caps2 = cleanArray(j-1)
caps1 = cleanArray(j)
caps2 = cleanArray(j-1)
len1 = len(caps1)
DO k = 1, len1
IF (LGE(caps1(k:k),'a') .AND. LLE(caps1(k:k),'z') ) THEN
! its in the lowercase "domain"
caps1(k:k) = ACHAR(IACHAR(caps1(k:k)) - 32 )
END IF
END DO
len2 = len(caps2)
DO l = 1, len2
IF (LGE(caps2(l:l),'a') .AND. LLE(caps2(l:l),'z') ) THEN
! its in the lowercase "domain"
caps2(l:l) = ACHAR(IACHAR(caps2(l:l)) - 32 )
END IF
END DO
IF (caps1 /= caps2) THEN
IF (caps1 < caps2) THEN
swap = cleanArray(j)
cleanArray(j) = cleanArray(j-1)
cleanArray(j-1) = swap
END IF
END IF
END DO
END DO
WRITE (*,*) 'Done Sorting...'
END SUBROUTINE bubsortCharArr
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment