在给定的文件记录中,我需要先读取前两个整数元素,然后读取其余的行(大量真实元素),因为赋值取决于前两个.假设前两个的格式整数元素并没有很好地定义.
解决问题的最佳方法可能是:
read(unitfile, "(I0,I0)", advance='no') ii, jj
read(unitfile,*) aa(ii,jj,:)
Run Code Online (Sandbox Code Playgroud)
但在我看来,gfortran中不允许使用"(I0)"规范.
基本上,在unitfile中读取的文件可能是这样的:
0 0 <floats>
0 10 <floats>
10 0 <floats>
100 0 <floats>
100 100 <floats>
Run Code Online (Sandbox Code Playgroud)
很难用任何类似Fortran的固定字段格式规范来阅读.
有没有其他方法来解决这个问题,显然是微不足道的问题?
使用 gfortran 4.6。这段代码:
PROGRAM f1
IMPLICIT NONE
INTEGER :: i=1, j=3
WRITE(*,*) "integer i is ", i, ", and j is ", j, "."
END PROGRAM f1
Run Code Online (Sandbox Code Playgroud)
产生这个控制台输出,其中有太多空格:
integer i is 1 , and j is 3 .
Run Code Online (Sandbox Code Playgroud)
我是否可以设置一些设置,以便第一个标记(“整数”)之前没有空格,因此标记之间的空格只是一个空格?我知道一个解决方法是
WRITE(*,'(A,I1,A,I1,A)') "integer i is ", i, ", and j is ", j, "."
Run Code Online (Sandbox Code Playgroud)
但这似乎非常麻烦,每次我有一个 print 语句时都必须这样做 - 宁愿它更像 C++,在输出中显式写入任何空格。