在gfortran安排阵列

时间:2018-02-18 09:03:18

标签: fortran gfortran fortran90

Program allo
  Implicit none
  integer :: A,ok,i,B,k
  Real, Dimension (:,:), Allocatable :: note

  Print*, "enter line A"
  Read*, A
  Print*, "enter range B"
  Read* ,B

  Allocate (note(A,B), STAT=ok)
  If (ok/=0) then 
    print*, "failed"
    STOP
  end if

  Do i=1,A
    Do k=1,B    
      Read*, note(i,k)
    End do
  End do

  print*,shape(note, /A,B/)

  Deallocate (note) 
End Program allo

当我正常编译时没有"形状"选项,它在一行上给我一个数组,我想要(A,B)数组。我试着塑造它以拥有我完美的桌子,但它给了我错误。

1 个答案:

答案 0 :(得分:0)

shape内在函数返回数组的形状,结果将是数组[ A, B ]

您要做的是重塑数组,您需要使用reshape内在数据。 但是,阵列已经处于所需的形状。它不是那样打印的。

我会建议一个循环来打印数组:

  do i=1,A
    print *, note(i,:)
  enddo !i