Fortran存储连接字符串

Fortran存储连接字符串,fortran,Fortran,我有一个简单的程序: PROGRAM concatenate CHARACTER::char*11,name*4 CHARACTER(20)::charname char='hello there' name='Fred' WRITE(*,*) char WRITE(*,*) name charname = char // ', ' // name WRITE(*,*) charname END PROGRAM 假设我不想预先指定变量charname的长度,因此它的长度由cha

我有一个简单的程序:

PROGRAM concatenate

CHARACTER::char*11,name*4

CHARACTER(20)::charname

char='hello there'
name='Fred'

WRITE(*,*) char

WRITE(*,*) name

charname = char // ', ' // name

WRITE(*,*) charname

END PROGRAM
假设我不想预先指定变量charname的长度,因此它的长度由char和name的长度自动确定。我能用Fortran语言吗


谢谢

是的,您可以这样声明
charname

character(len=:), allocatable :: charname
当您为
charname
赋值时,编译器/运行时将负责将
charname
设置为正确的长度

charname = char//','//name
您甚至可以使用另一条语句自动重新分配它,例如

charname = char//', Mr'//name

这一切都取决于您的编译器是否实现了Fortran 2003的这些功能,但所有广泛使用的编译器的最新版本都实现了这些功能。

Cheers Mark,非常有用。那么,这个字符可分配特性是F2003标准的一部分,还是也可以在F90/95中使用?