分配的格式說明符

在 Fortran 95 之前,可以使用指定的格式進行輸入或輸出。考慮

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 語句中的格式說明符。

在 Fortran 95 中刪除了這種格式說明符賦值。相反,更現代的程式碼可以使用其他形式的執行流控制

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