PROGRAM SMAA_B_SUBRUTIN_GENERELL IMPLICIT NONE CHARACTER(LEN=20) STORA_B CHARACTER(LEN=20) SMAA_B STORA_B = 'AZBOeinåäöÅÄÖ123+?' CALL BYT(STORA_B, SMAA_B) WRITE(*,*) SMAA_B END SUBROUTINE BYT(STORA_B, SMAA_B) IMPLICIT NONE CHARACTER(LEN=*) STORA_B, SMAA_B CHARACTER(LEN=1) SLASK INTEGER I, LAENGD, ISLASK LAENGD = LEN(TRIM(STORA_B)) SMAA_B = '' ! Här användes möjligheten att låta en sträng bli tom ! (inte ens en blank) DO I = 1, LAENGD SLASK = STORA_B(I:I) ISLASK = IACHAR(SLASK) IF ( ISLASK < 65 .OR. ISLASK > 90 ) THEN ! Om det inte är stor engelsk bokstav behålls tecknet SMAA_B(I:I) = SLASK ! = ACHAR(ISLASK) ELSE ! Om det är stor engelsk bokstav ändras till liten SMAA_B(I:I) = ACHAR(ISLASK+32) ! Eftersom det inte är svensk bokstav kan man gå direkt ! till nästa I CYCLE END IF ! Eftersom de svenska bokstäverna inte finns i ASCII ! måste man ta till en nödlösning IF ( SLASK == 'Å' ) SMAA_B(I:I) = 'å' IF ( SLASK == 'Ä' ) SMAA_B(I:I) = 'ä' IF ( SLASK == 'Ö' ) SMAA_B(I:I) = 'ö' END DO END SUBROUTINE BYT