Fortran 分配格式说明符
示例
在Fortran95之前,可以将分配的格式用于输入或输出。考虑
integer i, fmt read *, i assign 100 to fmt if (i<100000) assign 200 to fmt print fmt, i 100 format ("This is a big number", I10) 200 format ("This is a small number", I6) end
该assign语句将语句标签分配给整数变量。以后将此整数变量用作print语句中的格式说明符。
在Fortran95中删除了这种格式说明符分配。相反,更现代的代码可以使用其他形式的执行流控制
integer i read *, i if (i<100000) then print 100, i else print 200, i end if 100 format ("This is a big number", I10) 200 format ("This is a small number", I6) end
或字符变量可用作格式说明符
character(29), target :: big_fmt='("This is a big number", I10)' character(30), target :: small_fmt='("This is a small number", I6)' character(:), pointer :: fmt integer i read *, i fmt=>big_fmt if (i<100000) fmt=>small_fmt print fmt, i end