我的代码(为了这个问题,我认为以下是相关的部分)是:
PROGRAM test
IMPLICIT NONE
CHARACTER(len=37) input
CHARACTER(len=:), allocatable :: input_trim
WRITE(*,*) 'Filename?'
READ(*,*) input
ALLOCATE(character(len=LEN(TRIM(input))) :: input_trim)
input_trim=trim(input)
.
.
.
END PROGRAM test
使用英特尔的Fortran编译器可以很好地工作,但是gfortran会给我带来一些错误,第一个错误出现在这一行:
CHARACTER(len=:), allocatable :: input_trim
我不确定哪个编译器符合Fortran标准。此外,我不知道如何以其他方式实现我所需的内容?!我认为我正在做的更多是一种变通方法。我需要一个包含确切输入文件名且没有后续空格的字符变量。
编辑:错误是“CHARACTER声明中的语法错误”。 gfortran --version 给出的是“GNU Fortran (GCC) 4.4.7 20120313 (Red Hat 4.4.7-3)”
编辑2:关于allocate,你是对的:使用ifort时,我不需要它。而gfortran在此之前就已经崩溃了,所以也许它也不需要allocate,但我现在无法测试...