jlb
Joined: 21 Oct 2020 Posts: 40
|
Posted: Wed Sep 20, 2023 2:39 pm Post subject: Allocate on assignment for CHARACTER variables |
|
|
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.
Code: | 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 |
Quote: | error 1234 - CHARACTER variable OUT must be ALLOCATABLE
error 941 - OUT is a scalar dummy argument and so cannot be ALLOCATABLE |
Code: | 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 |
Quote: | error 456 - ALLOCATABLE is an illegal attribute specifier for a RESULT variable such as (RESULT of SIMON~SIM) |
|
|