如何使用隐含的 do 循环逐行编写矩阵?

How to write matrix row by row with implied do loop?

我的 IDE 是带有 MinGW 9.2.0 的 CodeBlocks。

我需要帮助在文本文件中逐行编写矩阵。

这是我的简单代码:

program matrix
 
 integer :: i, j 
 integer, dimension(2,2) :: a_mat
 
 forall( i = 1 : 2, j = 1, 2 )
    
   a_mat(i,j) = i + j

 end forall 
 
 open( unit = 15, file = 'matrix_utput.txt', action = 'write' )
  
   write(15,'(*(i2.2,1x))') ( ( a_mat(i,j), j = 1, 2 ), i = 1, 2 )
 
 close( unit = 15 )

end program matrix

在我的 .txt 文件中,我得到了这个: 02 03 03 04 如何更改格式以获得此:

02 03

03 04

正常的方法是在Write matrix with Fortran

处逐行循环do循环

但也可以使用格式反转

在隐含循环中完成此操作
 write(15,'(2(i2.2,1x))') ( ( a_mat(i,j), j = 1, 2 ), i = 1, 2 )

基本上括号前面的数字一定是行长(列数)。如果你把 * 放在那里,它会消耗整个数组。这样,每次格式找到所有项目时,它都会打开一个新记录。