回 帖 发 新 帖 刷新版面

主题:程序运行问题,请高手指点一二,谢谢!

我有一个Fortran程序,运行时跳出一个界面如下:

“hc_cseofkim.exe----应用程序错误
 应用程序发生异常  unknow software exception(Dxc000008c),位置为0x004018al.要终止程序,请单击确定”


而在fortran本身的运行界面上提示:

“forrt1:severe<161> :program exception --array bounds exceeded.........."
请见附件图片 


于是我将原始数据调为10*10矩阵,依然出现上述同样问题,因此不是内存的问题
请问大家,可能是什么原因呢?

万分感谢!Fortran不太熟悉。


 

回复列表 (共7个回复)

沙发

数组下表越界,通过您的表述,我猜测:

real:: X(3)
write(*, *) X(0)

之类的?注意 Fortran 数组下标 起止 值。

板凳

非常感谢楼上的回复,我程序的前一段是:
program main
implicit none

 real CSEOF(3,12,10) !PN section 189 TK section 126

 real PCTS(3,10) 
 real PCVAR(3)  

real v_pn(10,10)

integer i ,j

open(1 ,file='hc_700m_data_for_eof_analysis.dat' ,status='old')
open(2 ,file='hc_cseof_1.dat' ,status='unknown')
open(3 ,file='PCTS_1.dat' ,status='unknown')


do i=1,10
  read(1 ,'(360(1x,e15.4))')(v_pn(i,j) ,j=1,10)
end do

!do i=1 ,169
!  write(*,*) (v_pn(j,i) ,j=1, 100)
!end do

!include 'make.inc'
!integer :: ntime=108
!integer :: nstation=2982
!integer :: nestedPer=12
!integer :: nmodes=3
!real :: TSER(ntime,nstation)=v_pn
!real :: msgOrig=1.0E15
!real :: CSEOF(nmodes,nestedPer,nstation)
!real :: cseofScale=1
!real :: PCTS(nmodes,ntime)
!real :: PCVAR(nmodes)
!include 'blas_win32.lib'
!include 'lapack_win32.lib'
!include 'tmglib_win32.lib'
call CYCLOSTATIONARY_WD(10,10,12,3,v_pn,1.0E15,CSEOF,1.0,PCTS,PCVAR)
!call CYCLOSTATIONARY_WD(ntime,nstation,nestedPer,nmodes,TSER,msgOrig,CSEOF,cseofScale,PCTS,PCVAR)
!stop
do i=1 ,10 
  write(2,*) (CSEOF(1,j,i) ,j=1, 12) 
end do
do i=1 ,10
  write(3,*) PCTS(1,i)
end do
    print*,  PCVAR, 'ok'
end

3 楼

可能是:
call CYCLOSTATIONARY_WD(10,10,12,3,v_pn,1.0E15,CSEOF,1.0,PCTS,PCVAR)
这句出的问题,看看是不是因为参数类型不同导致。

4 楼

请问1楼可不可以解释的详细一点?谢谢!

5 楼

回复3楼,我想可能不是这个原因,但谢谢您!

6 楼

先加几个pause定一定位再找错误吧. 单看代码, 似乎没问题.

7 楼

把程序编译成Debug版本运行一下试试?

我来回复

您尚未登录,请登录后再回复。点此登录或注册