24小时热门版块排行榜    

查看: 3693  |  回复: 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的回帖

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的回帖
查看全部 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的回帖

夜月丨噩梦

金虫 (初入文坛)

引用回帖:
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的回帖
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 售SCI一区文章,我:8O5.5.1.O5.4,科目全,可伽急 +3 xvJS1BYDxvBS 2026-10-31 8/400 2026-11-01 05:48 by YXM1FDCSE8Bn
[硕博家园] 售SCI一区T0P文章,我:8.O55.1.O.54,科目全,可十急 +3 xvJS1BYDxvBS 2026-10-31 8/400 2026-11-01 05:43 by YXM1FDCSE8Bn
[找工作] 售SCI一区文章,我:8.O.55.1.O.54,科目齐全,可伽急 +3 1uaZt2kAZj2S 2026-10-31 6/300 2026-11-01 05:41 by YXM1FDCSE8Bn
[公派出国] 售SCI文章,我:8O5.5.1.O.54,科目齐全,可+急 +3 1uaZt2kAZj2S 2026-10-31 6/300 2026-11-01 05:41 by YXM1FDCSE8Bn
[博后之家] 售SCI文章,我:8O5.5.1.O.54,科目齐全,可+急 +3 1uaZt2kAZj2S 2026-10-30 15/750 2026-11-01 05:22 by YXM1FDCSE8Bn
[基金申请] 售SCI一区T0P文章,我:8.O.55.1.O.54,科目齐全,可+急 +3 1uaZt2kAZj2S 2026-10-31 3/150 2026-11-01 04:04 by YXM1FDCSE8Bn
[论文投稿] 售一区SCI文章T0P,我:8O.551.O54,科目全,可十急 +3 1uaZt2kAZj2S 2026-10-31 8/400 2026-11-01 03:59 by YXM1FDCSE8Bn
[博后之家] 售SCI一区文章,我:8O5.5.1.O5.4,科目全,可伽急 +3 1uaZt2kAZj2S 2026-10-31 6/300 2026-11-01 03:56 by YXM1FDCSE8Bn
[找工作] 售一区SCI文章T0P,我:8O.551.O54,科目全,可十急 +3 1uaZt2kAZj2S 2026-10-31 6/300 2026-11-01 03:56 by YXM1FDCSE8Bn
[基金申请] 售SCI一区T0P文章,我:8.O.55.1.O.54,科目齐全,可+急 +3 1uaZt2kAZj2S 2026-10-30 10/500 2026-11-01 03:51 by YXM1FDCSE8Bn
[公派出国] 售SCI一区T0P文章,我:8.O.55.1.O.5.4,科目全,可+急 +3 1uaZt2kAZj2S 2026-10-30 13/650 2026-11-01 03:46 by YXM1FDCSE8Bn
[硕博家园] 售SCI一区T0P文章,我:8O.55.1.O.54,科目全,可伽急 +3 X5bHxOULxFqb 2026-10-30 16/800 2026-11-01 03:38 by YXM1FDCSE8Bn
[考博] 售SCI一区T0P文章,我:8.O.55.1.O.5.4,科目全,可+急 +4 X5bHxOULxFqb 2026-10-30 20/1000 2026-11-01 03:33 by YXM1FDCSE8Bn
[公派出国] 售一区SCI文章T0P,我:8O.551.O54,科目全,可十急 +3 1uaZt2kAZj2S 2026-10-31 4/200 2026-11-01 00:41 by YXM1FDCSE8Bn
[硕博家园] 售SCI一区T0P文章,我:8.O.55.1.O.54,科目齐全,可+急 +4 X5bHxOULxFqb 2026-10-30 12/600 2026-11-01 00:15 by YXM1FDCSE8Bn
[考博] 2027博士申请-临床检验诊断学、病原生物学、微生物方向 50+3 yyh@ 2026-10-28 4/200 2026-10-31 12:47 by 可淡不可忘
[硕博家园] 越来越担心硕士毕业后没有竞争力了 +8 zuesli 2026-10-27 14/700 2026-10-30 22:44 by 好运连连公主
[基金申请] 论文的挂名怎么评判贡献?基金申请中,排名第一的挂名文章 +3 biily 2026-10-25 3/150 2026-10-30 18:33 by 旁观2020
[硕博家园] 申博自荐 2篇一区TOP+1篇EI+2公开发明专利 2027博士申请 +3 小小阿光 2026-10-27 3/150 2026-10-29 23:56 by 起风了的快乐
[考博] 申博求助 20+3 Katrinae 2026-10-26 4/200 2026-10-27 09:56 by 北京莱茵编辑
信息提示
请填处理意见