而如果使用输出格式,则需要指定数据格式,比如 '(100F5.1)',当 100 个数不确定时,就比较难办。
Visual Fortran 扩展了尖括号语法,比如 n = 100 ,上面的例子可写为 '(<n>F5.1)',但这毕竟不是标准语法。
此段代码提供了一个标准语法下的,对尖括号的模仿。
但依然有限定,比如只能有一个可变量(改成多个也可以,但需要额外的书写)
Module N_Fmt_Mod Implicit None contains Character( Len = 256 ) Function N_Fmt( c , n ) !// N_Fmt by www.fcode.cn Character( Len = * ) , Intent( IN ) :: c Integer , Intent( IN ) :: n integer :: i , j character( len = 16 ) :: cn i = index( c , '<' ) j = index( c , '>' ) write( cn , '(g0)' ) n N_Fmt = c(:i-1) // Trim(adjustL(cn)) // c(j+1:) End Function N_Fmt End Module N_Fmt_Mod Program www_fcode_cn use N_Fmt_Mod implicit none integer , parameter :: N = 10 real :: a( N ) = 24. Write( * , "(<n>f5.1)" ) a !// only for Visual Fortran Write( * , N_Fmt("(<n>f5.1)",N) ) a !// for all compiler End Program www_fcode_cn