主题:程序运行问题,请高手指点一二,谢谢!
hzxiaofen
[专家分:0] 发布于 2010-08-11 11:47:00
我有一个Fortran程序,运行时跳出一个界面如下:
“hc_cseofkim.exe----应用程序错误
应用程序发生异常 unknow software exception(Dxc000008c),位置为0x004018al.要终止程序,请单击确定”
而在fortran本身的运行界面上提示:
“forrt1:severe<161> :program exception --array bounds exceeded.........."
请见附件图片
于是我将原始数据调为10*10矩阵,依然出现上述同样问题,因此不是内存的问题
请问大家,可能是什么原因呢?
万分感谢!Fortran不太熟悉。
回复列表 (共7个回复)
沙发
asymptotic [专家分:16630] 发布于 2010-08-11 11:50:00
数组下表越界,通过您的表述,我猜测:
real:: X(3)
write(*, *) X(0)
之类的?注意 Fortran 数组下标 起止 值。
板凳
hzxiaofen [专家分:0] 发布于 2010-08-11 11:59:00
非常感谢楼上的回复,我程序的前一段是:
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 楼
cgl_lgs [专家分:21040] 发布于 2010-08-11 14:01:00
可能是:
call CYCLOSTATIONARY_WD(10,10,12,3,v_pn,1.0E15,CSEOF,1.0,PCTS,PCVAR)
这句出的问题,看看是不是因为参数类型不同导致。
4 楼
hzxiaofen [专家分:0] 发布于 2010-08-11 14:39:00
请问1楼可不可以解释的详细一点?谢谢!
5 楼
hzxiaofen [专家分:0] 发布于 2010-08-11 14:40:00
回复3楼,我想可能不是这个原因,但谢谢您!
6 楼
yeg001 [专家分:14390] 发布于 2010-08-11 17:29:00
先加几个pause定一定位再找错误吧. 单看代码, 似乎没问题.
7 楼
cgl_lgs [专家分:21040] 发布于 2010-08-11 22:31:00
把程序编译成Debug版本运行一下试试?
我来回复