While trying to use the 'allocate on assignment' feature for CHARACTER variables implemented with FTN95 version 8.95, both following examples fail to compile with version 8.97.2. The error output seems to me contradictory.
PROGRAM Simon
IMPLICIT NONE
CHARACTER (LEN=:), ALLOCATABLE :: Says
CALL Sim('clap hands', Says)
WRITE(*,*) Says
CONTAINS
SUBROUTINE Sim(What, Out)
IMPLICIT NONE
CHARACTER (LEN=*), INTENT(IN):: What
CHARACTER (LEN=:), INTENT(OUT), ALLOCATABLE :: Out
Out = 'Simon says '//What
END SUBROUTINE Sim
END PROGRAM Simon
error 1234 - CHARACTER variable OUT must be ALLOCATABLE error 941 - OUT is a scalar dummy argument and so cannot be ALLOCATABLE
PROGRAM Simon
IMPLICIT NONE
CHARACTER (LEN=:), ALLOCATABLE :: Says
Says=Sim('clap hands')
WRITE(*,*) Says
CONTAINS
FUNCTION Sim(What) RESULT(Out)
IMPLICIT NONE
CHARACTER (LEN=*), INTENT(IN):: What
CHARACTER (LEN=:), ALLOCATABLE :: Out
Out = 'Simon says '//What
END FUNCTION Sim
END PROGRAM Simon
error 456 - ALLOCATABLE is an illegal attribute specifier for a RESULT variable such as (RESULT of SIMON~SIM)