0
我想讀取一個流場快照(uvw堆疊,~24k他們)的一列,並組裝多個快照(它們保存到一個單獨的.dat文件,作爲在代碼中可以看到)在SVD/POD中用於矩陣(列是時間步長的速度,i = 1第一時間步等)。我在這裏跟着一些教程,並得到了格式化(我認爲),但現在我卡住了,因爲我得到這個sigsegv錯誤。任何輸入都非常感謝。謝謝!SIGSEGV for Column-wise矩陣在Fortran中使用字符串連接
program matrix2
! Creates rectangular matrix by adding columns of individual
! Timesteps for use in Singular Value Decomposition (in MatLAB)
! Allocate
double precision, dimension(:,:), allocatable :: POD
integer, parameter :: tend = 700
integer, parameter :: length = 23925
character(:), allocatable :: fn, fm
integer :: it, idt
character(len=5) :: t, dt
character(len=10) :: fmt
character(len=40) :: fmm
! Create format discriptors
fmt = '(i5.5)'
fmm = '(a19,i5.5,a4)'
! Create data file to save matrix
fn = 'POD_Data_Matrix.dat'
open(unit=1,file=fn,status='unknown',form='formatted')
! Loop to open column files and write data
do j = 1,tend
! Open corresponding column file, add to POD matrix
! and close every timestep column
! Convert integer to string using internal file
it=00001
idt=00001
write(t,fmt) it
write(dt,fmt) idt
fm = 'U-Matrix-Column-Eq-'//trim(t)//'.dat'
open(unit=11,file=fm,status='unknown',form='formatted')
do i = 0,length
read (11,*) POD(j,i)
enddo
close(11)
it = it + idt
enddo
! Write and close final POD matrix
write(1,*) POD(j,i)
close(1)
! Deallocate
! deallocate(POD)
! deallocate(fn,fm)
endprogram
使用可分配的延遲長度字符表示您的代碼需要Fortran 2003.該代碼使用許多其他需要Fortran 90+的語言功能。這裏沒有太多的Fortran 77! – IanH 2013-04-08 04:29:07