在Fortran中以特定格式打印文件中的排列变量

时间:2018-05-23 15:15:01

标签: arrays formatting fortran

我有两个数组。第一个是A(3,3,100)。这意味着对于从1到100的每个n,我有一个由Aij给出的3x3矩阵。第二个数组B(100)是一维数组,其中每个n都有值。

现在,我想在文件中打印A和B,以便安排:

A11,1 A21,1 A31,1 A12,1 A22,1 A32,1 A13,1 A23,1 A33,1 B,1

A11,2 A21,2 A31,2 A12,2 A22,2 A32,2 A13,2 A23,2 A33,2 B,2

即可。 即可。 即可。 即可。

即可。 即可。 即可。 即可。

即可。 即可。 即可。 即可。

A11,n A21,n A31,n A12,n A22,n A32,n A13,n A23,n A33,n B,n

我尝试使用以下内容执行此操作:write(*,'(9Fw.d 1Fw.d)') A,B其中w为字段宽度,d为小数分配;但它不起作用。

1 个答案:

答案 0 :(得分:0)

你的语句将首先打印出所有的A,然后它将打印掉所有的B.只需用do循环打破它并在write语句中隐含do循环:

do i = 1, n
   write(*,'(9Fw.d, 1Fw.d)') ((A(row, col,i), row=1,3),col=1,3), B(i)
end do

你确定这是你想要的订单吗? A11,1 A21,1 A31,1 ......这将是下行。我想你会希望每行打印在一起如下:A11,1 A12,1 A13,1 A21,1 .....如果是这种情况,交换行= 1,3),col = 1,3 )