所有。我正在编写一个相对简单的程序,它遍历一个数据列表并返回学校项目的峰值。
到目前为止,这是代码:
program Fortran_Project_1
implicit none
integer::cnt,cnt1, i
integer:: peaks=5
real, dimension(360):: time,impulse
real, allocatable :: impulselist(:)
integer, dimension(360)::interval
character(len=150)::clean,header
clean='C:\Users\User\Desktop\Fortran_Project_1\ir_clean.txt'
print *, clean
open (unit=1,file=clean)
do cnt1=1,4
read (1,*) header
end do
do cnt=1,443
read(1,*) interval(cnt),time(cnt),impulse(cnt)
end do
print *, 'Choose amount of peaks to find'
read *, peaks
deallocate (impulselist)
allocate (impulselist(peaks))
do i = 1, cnt
if (impulse(i)>impulse(i+1) .and. impulse(i)>impulse(i-1)) then
peaks = peaks - 1
impulselist(peaks) = impulse(i)
end if
if (peaks < 1) then
exit
end if
end do
close (1)
print *, impulselist
end program Fortran_Project_1
无论如何,当运行此项并输入用户想要查找的峰值数量时,控制台完全空白。它会打印clean变量和查询,但这些都是。我该怎么办?
谢谢
编辑:控制台输出:
C:\用户\用户\桌面\ Fortran_Project_1 \ ir_clean.txt
选择要找到的峰值数量
[输入]
答案 0 :(得分:0)
你说没有任何事情是奇怪的。你应该收到一条错误信息。
未分配数组impulselist
,您正在调用deallocate(impulselist)
。这是不允许的,应该由编译器诊断,它应该在代码运行时抱怨。
答案 1 :(得分:0)
我明白了。列表维度存在问题。这是完美运行的更新代码。
程序Fortran_Project_1 隐含无 整数:: CNT,CNT1,我,COUNT1,峰 真实,维度(1000)::时间,冲动 真实的,可分配的:: impulselist(:),timelist(:) 整数,维度(1000):: interval 字符(LEN = 150)::干净,头 clean ='C:\ Users \ Buraaq Alrawi \ Desktop \ Fortran_Project_1 \ ir_clean.txt' 打印*,干净 打印*,'选择要查找的峰的数量' 读*,峰值 分配(impulselist(peak)) 分配(timelist(峰值))
open (unit=1,file=clean,action='read')
do cnt1=1,4
read (1,*) header
end do
do cnt=1,501
read(1,*) interval(cnt),time(cnt),impulse(cnt)
end do
count1=1
do i = 1, cnt
if (impulse(i)>impulse(i+1) .and. impulse(i)>impulse(i-1)) then
impulselist(count1) = impulse(i)
timelist(count1) = time(i)
count1 = count1 + 1
end if
if (count1 > peaks) then
exit
end if
end do
close (1)
100 format(A28,X,1000F10.2)
200 format(A28,X,1000F10.4)
300 format(A23,F10.2,F10.4)
write (*,100) 'The peak times are(seconds):', timelist
write (*,200) 'The peak impulse values are:', impulselist
write (*,300) 'The settled values are:',time(501),impulse(501)
结束程序Fortran_Project_1
谢谢大家