24小时热门版块排行榜    

Znn3bq.jpeg
查看: 3502  |  回复: 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的回帖

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的回帖

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的回帖

bennett_14

木虫 (正式写手)

引用回帖:
5楼: Originally posted by fmying at 2016-01-02 19:32:34
你的程序中最重要的部分如下:
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)
...

层主讲的很好,学习了,欢迎和层主多交流

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

夜月丨噩梦

金虫 (初入文坛)

送红花一朵
引用回帖:
5楼: Originally posted by fmying at 2016-01-02 19:32:34
你的程序中最重要的部分如下:
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)
...

谢谢您

发自小木虫Android客户端
7楼2016-01-03 09:34:43
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

夜月丨噩梦

金虫 (初入文坛)

引用回帖:
5楼: Originally posted by fmying at 2016-01-02 19:32:34
你的程序中最重要的部分如下:
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)
...

大神,那应该把dett改成多少啊?我改了几个输出的结果都不对

发自小木虫Android客户端
8楼2016-01-04 09:18:34
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

fmying

银虫 (小有名气)

引用回帖:
8楼: Originally posted by 夜月丨噩梦 at 2016-01-04 09:18:34
大神,那应该把dett改成多少啊?我改了几个输出的结果都不对
...

dett相当于步长,t0+dett是初值,0.0001是阈值。
这些都要根据你要计算解决的问题来啊。
程序的关键是解决问题,所以要先理解透问题和你的需求。
按照t<=t1和abs(t-0.5)<=0.0001来看,你是希望得到最后一步或几步的结果。
那么你希望得到哪一步/几步?这几步的步长是希望大一点粗一点,还是小一点精一点?
比如,如果其它条件都不变,只是希望得到最后5步的结果的话,甚至可以步长设为0.00002,这样最后会有6步的结果因符合(abs(t-0.5)<=0.0001)的条件而输出。
但是你要计算太多遍了,这样做是否值得?
如果不需要如此精密的话,是否可以修改阈值为(abs(t-0.5)<=0.1),这样就可以在少算很多的情况下得到结果?
这些都是你自己需要去考虑的。
上善若水
9楼2016-01-04 17:02:08
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

夜月丨噩梦

金虫 (初入文坛)

引用回帖:
9楼: Originally posted by fmying at 2016-01-04 17:02:08
dett相当于步长,t0+dett是初值,0.0001是阈值。
这些都要根据你要计算解决的问题来啊。
程序的关键是解决问题,所以要先理解透问题和你的需求。
按照t<=t1和abs(t-0.5)<=0.0001来看,你是希望得到最后一 ...

好的!谢谢您了

发自小木虫Android客户端
10楼2016-01-05 11:05:56
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 夜月丨噩梦 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[教师之家] 上海大学实验技术岗位非升即走 +3 嘻嘻哈哈乐呵呵 2026-05-15 3/150 2026-05-15 15:40 by 187385hgh
[论文投稿] 有带发论文的吗 +4 山楂之术 2026-05-09 4/200 2026-05-15 15:40 by 妹子不好惹
[文学芳草园] 风把牡丹吹跑了 +5 myrtle 2026-05-12 9/450 2026-05-15 15:27 by myrtle
[基金申请] 青C资助名额大幅增加! +11 西葫芦炒鸡蛋 2026-05-13 15/750 2026-05-15 14:36 by ambravo
[公派出国] 售SCI一区T0P文章,我:8.O.5.5.1.O.5.4,科目齐全,可+急 +3 l7k6xnh0yc 2026-05-14 3/150 2026-05-15 12:03 by onwj4wpxp2
[基金申请] 精华III评审感受-评审感受-评审感受 +14 ferrarichen 2026-05-11 18/900 2026-05-15 11:12 by cmhchen
[基金申请] 这年头没有找到涵评专家,还有中面上的可能吗 +9 dd921ww 2026-05-12 10/500 2026-05-15 10:41 by muyiliuhui
[考博] 售SCI一区T0P文章,我:8.O.5.5.1.O.5.4,科目齐全,可+急 +3 l7k6xnh0yc 2026-05-14 3/150 2026-05-15 09:23 by onwj4wpxp2
[考研] 售SCI一区T0P文章,我:8.O.5.5.1.O.5.4,科目齐全,可+急 +3 cjf4bx70cj 2026-05-14 4/200 2026-05-15 09:03 by gagyerk94e
[教师之家] 教学课件你会给同学吗 +8 硕士研究生吗 2026-05-13 8/400 2026-05-14 22:23 by 常规沥青
[考博] 26应届毕业生考博求助 +3 wo一定上岸 2026-05-13 3/150 2026-05-14 21:47 by 明海天涯
[基金申请] 重磅!青年科学基金项目(C类)资助增幅预计超过50% +5 水和泥不是水泥 2026-05-13 7/350 2026-05-14 20:57 by 水和泥不是水泥
[有机交流] 求助2,4-二氯-5-嘧啶甲醛的合成方法 20+3 光吃不拉 2026-05-14 5/250 2026-05-14 20:15 by 一切都是空工
[考博] 申博自荐 +4 食品的橙子 2026-05-09 6/300 2026-05-14 16:05 by great1919
[考博] 材料类只有一篇综述能申博么 +4 乐逍遥谷 2026-05-13 4/200 2026-05-14 12:05 by zhyzzh
[基金申请] 请问大佬b0816评完了吗 +3 市民华南虎 2026-05-12 7/350 2026-05-14 07:41 by 市民华南虎
[硕博家园] 导师各种操作恶心咋办 +11 苍白的小青天 2026-05-09 13/650 2026-05-13 17:11 by 六两废铜
[论文投稿] 求助大佬sci投稿哪个好中 +3 江沅188 2026-05-12 4/200 2026-05-13 14:35 by 江沅188
[考博] 西南大学考核制博士 +3 lijunjie84 2026-05-11 6/300 2026-05-12 18:09 by lijunjie84
[考博] 现在不知道怎么办,感觉很痛苦 +4 qweww 2026-05-11 5/250 2026-05-11 20:23 by Oversize
信息提示
请填处理意见