Formatting 输出格式:gfortran中的空白太多

Formatting 输出格式:gfortran中的空白太多,formatting,fortran,output,gfortran,Formatting,Fortran,Output,Gfortran,使用gfortran 4.6。此代码: PROGRAM f1 IMPLICIT NONE INTEGER :: i=1, j=3 WRITE(*,*) "integer i is ", i, ", and j is ", j, "." END PROGRAM f1 生成此控制台输出,其中有太多的空白: integer i is 1 , and j is 3 . 我是否可以设置一些设置,以便在第一个标记(“整数”)之前没有空格,因此标记之间的空

使用gfortran 4.6。此代码:

PROGRAM f1
IMPLICIT NONE

INTEGER :: i=1, j=3

WRITE(*,*) "integer i is ", i, ", and j is ", j, "."
END PROGRAM f1
生成此控制台输出,其中有太多的空白:

 integer i is            1 , and j is            3 .
我是否可以设置一些设置,以便在第一个标记(“整数”)之前没有空格,因此标记之间的空白仅为一个空格?我知道有一个解决办法

WRITE(*,'(A,I1,A,I1,A)') "integer i is ", i, ", and j is ", j, "."

但是每次打印语句时,这都是非常繁琐的,而不是像C++那样在输出中显式地写空白。

列表引导的IO,即,代码>写(*,*)< /代码>是一种方便。没有可更改其行为的设置。不同的编译器将产生不同的输出。相反,正如您所确定的,您可以使用格式化IO。在这种情况下,您可以使用
I0
作为格式,它将生成所需的位数,而
I1
将仅输出单位数整数。如果这些是将要输出的最大值,这是正常的

WRITE(*,  '( "integer i is ", I0, ", and j is ", I0, "." )' )  i, j

您可以尝试一些更通用的格式并重新使用它

    fmt = "(*(1x,g0))"

    write(*,fmt) whatever1, whatever2