24小时热门版块排行榜    

查看: 3639  |  回复: 9
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

夜月丨噩梦

金虫 (初入文坛)

[求助] 为什么Fortran调试无错误运行不出结果 已有2人参与

program main
   parameter  n=600
   double precision u(0:n),u1(0:n),x0,x1,x,t0,t1,h,dett,lambda,y(0:n)
   integer i,j
   x0=0.0d0
   x1=6.0d0                           
   t0=0.0d0
   lambda=0.3d0
   t1=0.5d0
   h=0.01d0
   dett=0.003d0
    x=x0
   !do i=0,n,1
         !if(i<=250)then
     !y(i)=1.0
         !else
        ! y(i)=0
         !end if
        ! end do
        do i=0,n,1
                 if(x>=1 .and. x<=3) then
                 u(i)=1.0d0
                 else
                 u(i)=0.0d0
                 end if
                 x=x+h
         end do
         open(1,file="yingfeng.dat"
         t=t0+dett
         x=x0
         do while(t<=t1)
             x=x0+h
                         do j=1,n,1
                                 u1(j)=u(j)-3*lambda*(u(j)-u(j-1))
                                 
                                   if(abs(t-0.5)<=0.0001)then
                                   write(1,*)x,u1(j),y(j)
                                   end if
                                 x=x+h
                     end do
          do j=1,n-1
                 u(j)=u1(j)
                 u(0)=1
                 u(1)=0
                 end do

             t=t+dett
         end do
stop
end
求大神指导,为啥这个程序运行后yingfeng.dat文件里面啥数据都没有
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

夜月丨噩梦

金虫 (初入文坛)

引用回帖:
3楼: Originally posted by bennett_14 at 2016-01-02 16:35:26
经过测试,可以生成yingfeng.dat文件的,文件和程序在相同的目录下,估计你没有运行,或运行了但是找错了文件夹

是可以运行,但是运行结果是0KB,里面啥都没有

发自小木虫Android客户端
4楼2016-01-02 17:51:51
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 10 个回答

bennett_14

木虫 (正式写手)

x0=0.0d0中的d0是啥????

发自小木虫Android客户端
君子当自强不息,死而后已!
2楼2016-01-02 16:09:59
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

bennett_14

木虫 (正式写手)

【答案】应助回帖

经过测试,可以生成yingfeng.dat文件的,文件和程序在相同的目录下,估计你没有运行,或运行了但是找错了文件夹

发自小木虫Android客户端
君子当自强不息,死而后已!
3楼2016-01-02 16:35:26
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

fmying

银虫 (小有名气)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
夜月丨噩梦: 金币+30, ★★★很有帮助 2016-01-05 11:42:26
你的程序中最重要的部分如下:
double precision ...t0,t1,...,dett...
t0=0.0d0
t1=0.5d0
dett=0.003d0
...
t=t0+dett
do while(t<=t1)
...
if(abs(t-0.5)<=0.0001) then
write(1,*)x,u1(j),y(j)
endif
...

可以看到,这个程序能否向yingfeng.dat中写入数据的关键是:t的数值相距0.5的差值是否小到0.0001以内,和其它问题完全无关。

如果分析我给出的这些语句的话,就会发现问题所在:
t从0.003开始累加,要和0.5比???能达到相差小于0.0001的程度么?
相当于500/3,得到的余数是多少?
条件达不到,当然不会输出。程序在逻辑上是没错的。
希望楼主能再审视一下相应的条件,让程序输出你要的结果。

另外,希望楼主能注意以下几个方面:
1 t1和t0都是双精度,但是t却没有定义啊!!!按照默认的I-N规则,t是单精度型,可能会引起误差,从而引起不必要的麻烦哦。
2 open之后没有对应的close语句,这点很不好!!很不好!!很不好!!楼主目前写的是小程序不觉得,程序一大,很容易搞混的,到时候想写这个文件却写到那个文件去了,或者想写却发现文件没打开之类的。而且这种错误会很难调试。
3 stop语句一般只用在这样两个方面:调试程序 或 出错后的强行停止。不建议用stop来结束程序,让程序自己运行完毕后停止岂不更好?
4 前面有program xxx的话,最后建议用end program xxx结束。这样构造一个封闭的block,今后也会很容易读代码,便于维护管理。
5 楼主的程序使用了默认的I-N规则,建议使用Implicit None,取消默认规则,使每个变量都要定义类型(和C一样强类型)。使用默认规则的话,一旦有什么问题都是非常隐蔽极难调试的。

最后,楼主如果有程序方面的问题,欢迎移步“程序语言”版块提问。

» 本帖已获得的红花(最新10朵)

上善若水
5楼2016-01-02 19:32:34
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[博后之家] 售SCI文章,我:8O.5.5.1O.54,科目全,可十急 +6 ASdOkHsho7FD 2026-08-28 7/350 2026-08-29 17:31 by 4FFAWE8HcgUD
[考博] 售SCI一区T0P文章,我:8.O.55.1.O54,科目全,可伽急 +5 ASdOkHsho7FD 2026-08-28 8/400 2026-08-29 17:22 by 4FFAWE8HcgUD
[论文投稿] 售SCI一区文章,我:8.O.551.O.5.4,科目全,可伽急 +3 ASdOkHsho7FD 2026-08-28 4/200 2026-08-29 14:13 by jCd0dEvKHShX
[找工作] 售SCI文章,我:8O5.5.1.O.54,科目齐全,可+急 +3 ASdOkHsho7FD 2026-08-28 6/300 2026-08-29 11:51 by jCd0dEvKHShX
[教师之家] 售SCI一区T0P文章,我:8.O.55.1.O54,科目全,可伽急 +4 ASdOkHsho7FD 2026-08-28 5/250 2026-08-29 11:49 by jCd0dEvKHShX
[考研] 售一区SCI文章T0P,我:8O.551.O54,科目全,可十急 +4 ASdOkHsho7FD 2026-08-28 6/300 2026-08-29 11:40 by jCd0dEvKHShX
[找工作] 售SCI文章,我:8O5.5.1.O.54,科目齐全,可+急 +4 ASdOkHsho7FD 2026-08-28 6/300 2026-08-29 11:29 by jCd0dEvKHShX
[考研] 售SCI一区文章,我:8.O.55.1.O.54,科目齐全,可伽急 +6 ASdOkHsho7FD 2026-08-28 9/450 2026-08-29 11:18 by jCd0dEvKHShX
[基金申请] 2026年叶企孙基金 +4 bud_bud 2026-08-27 7/350 2026-08-29 07:23 by foolishmani
[基金申请] 怎么查啊 +6 huang1991js 2026-08-26 6/300 2026-08-28 08:42 by winsaint
[基金申请] 看板上这么多中的,有点像50人群里49个人都是骗子的那种感觉…… +5 a089 2026-08-26 6/300 2026-08-27 14:05 by jonewore
[基金申请] 我不理解! +15 Edward_pc 2026-08-26 23/1150 2026-08-26 20:34 by zzuzxg
[基金申请] 能否退出参与的面上项目解除限项 +23 koalala 2026-08-24 26/1300 2026-08-26 14:29 by 宝贝虫子
[基金申请] 为什么国自然不能直接公布 +4 bjdxyxy 2026-08-26 4/200 2026-08-26 13:12 by qingmu1201
[基金申请] 国合里面能看到了 +7 一怀馨秋 2026-08-26 7/350 2026-08-26 11:23 by zhaosm1982
[基金申请] 项目信息和经费信息在系统里都可以看到了 +6 wittyboy 2026-08-26 14/700 2026-08-26 10:55 by wittyboy
[基金申请] 国合可查了 +3 paperzjh 2026-08-26 3/150 2026-08-26 10:41 by LemmonTr
[基金申请] 明天应该可查了!? +6 chengyan1220 2026-08-23 6/300 2026-08-25 19:45 by zfd97
[基金申请] 某些机构,以效率低为荣,以效率低作为存在感 +9 yuleib84 2026-08-25 10/500 2026-08-25 17:14 by alexon
[基金申请] 如果此刻你正在为国基感到焦虑,不妨来听听这首《基金之外》 +8 scalable 2026-08-24 8/400 2026-08-25 12:52 by jnhyjjm
信息提示
请填处理意见