| 5 | 1/1 | 返回列表 |
| 查看: 3376 | 回復(fù): 9 | ||
| 當(dāng)前只顯示滿足指定條件的回帖,點擊這里查看本話題的所有回帖 | ||
[求助]
為什么Fortran調(diào)試無錯誤運行不出結(jié)果 已有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 求大神指導(dǎo),為啥這個程序運行后yingfeng.dat文件里面啥數(shù)據(jù)都沒有 |
木蟲 (正式寫手)

木蟲 (正式寫手)

|
你的程序中最重要的部分如下: 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中寫入數(shù)據(jù)的關(guān)鍵是:t的數(shù)值相距0.5的差值是否小到0.0001以內(nèi),和其它問題完全無關(guān)。 如果分析我給出的這些語句的話,就會發(fā)現(xiàn)問題所在: t從0.003開始累加,要和0.5比???能達到相差小于0.0001的程度么? 相當(dāng)于500/3,得到的余數(shù)是多少? 條件達不到,當(dāng)然不會輸出。程序在邏輯上是沒錯的。 希望樓主能再審視一下相應(yīng)的條件,讓程序輸出你要的結(jié)果。 另外,希望樓主能注意以下幾個方面: 1 t1和t0都是雙精度,但是t卻沒有定義。。。“凑漳J(rèn)的I-N規(guī)則,t是單精度型,可能會引起誤差,從而引起不必要的麻煩哦。 2 open之后沒有對應(yīng)的close語句,這點很不好!很不好。『懿缓茫!樓主目前寫的是小程序不覺得,程序一大,很容易搞混的,到時候想寫這個文件卻寫到那個文件去了,或者想寫卻發(fā)現(xiàn)文件沒打開之類的。而且這種錯誤會很難調(diào)試。 3 stop語句一般只用在這樣兩個方面:調(diào)試程序 或 出錯后的強行停止。不建議用stop來結(jié)束程序,讓程序自己運行完畢后停止豈不更好? 4 前面有program xxx的話,最后建議用end program xxx結(jié)束。這樣構(gòu)造一個封閉的block,今后也會很容易讀代碼,便于維護管理。 5 樓主的程序使用了默認(rèn)的I-N規(guī)則,建議使用Implicit None,取消默認(rèn)規(guī)則,使每個變量都要定義類型(和C一樣強類型)。使用默認(rèn)規(guī)則的話,一旦有什么問題都是非常隱蔽極難調(diào)試的。 最后,樓主如果有程序方面的問題,歡迎移步“程序語言”版塊提問。 |

| 最具人氣熱帖推薦 [查看全部] | 作者 | 回/看 | 最后發(fā)表 | |
|---|---|---|---|---|
|
[考研] 317求調(diào)劑 +10 | 申子申申 2026-03-19 | 16/800 |
|
|---|---|---|---|---|
|
[考研] 328求調(diào)劑,英語六級551,有科研經(jīng)歷 +5 | 生物工程調(diào)劑 2026-03-17 | 9/450 |
|
|
[考研] 0805 316求調(diào)劑 +3 | 大雪深藏 2026-03-18 | 3/150 |
|
|
[考研] 297求調(diào)劑 +3 | 喜歡還是不甘心 2026-03-20 | 3/150 |
|
|
[考研] 278求調(diào)劑 +9 | 煙火先于春 2026-03-17 | 9/450 |
|
|
[考研] 313求調(diào)劑 +4 | 肆叁貳壹22 2026-03-19 | 4/200 |
|
|
[考研] 266求調(diào)劑 +3 | 哇呼哼呼哼 2026-03-20 | 3/150 |
|
|
[考研] 316求調(diào)劑 +6 | 梁茜雯 2026-03-19 | 6/300 |
|
|
[考研] 265求調(diào)劑 +9 | 梁梁校校 2026-03-17 | 9/450 |
|
|
[考研] 材料 336 求調(diào)劑 +3 | An@. 2026-03-18 | 4/200 |
|
|
[考研] 一志愿武理材料305分求調(diào)劑 +6 | 想上岸的鯉魚 2026-03-18 | 7/350 |
|
|
[考研] 295求調(diào)劑 +4 | 一志愿京區(qū)211 2026-03-18 | 6/300 |
|
|
[考研] 一志愿南昌大學(xué),327分,材料與化工085600 +9 | Ncdx123456 2026-03-19 | 9/450 |
|
|
[考研] 一志愿南京理工大學(xué)085701資源與環(huán)境302分求調(diào)劑 +4 | 葵梓衛(wèi)隊 2026-03-18 | 6/300 |
|
|
[考研] 材料學(xué)碩297已過四六級求調(diào)劑推薦 +11 | adaie 2026-03-19 | 11/550 |
|
|
[考研] 353求調(diào)劑 +3 | 拉鉤不許變 2026-03-20 | 3/150 |
|
|
[考研] 招收調(diào)劑碩士 +4 | lidianxing 2026-03-19 | 12/600 |
|
|
[考研] 081700化工學(xué)碩調(diào)劑 +3 | 【1】 2026-03-16 | 3/150 |
|
|
[考研] 一志愿福大288有機化學(xué),求調(diào)劑 +3 | 小木蟲200408204 2026-03-18 | 3/150 |
|
|
[考研] [導(dǎo)師推薦]西南科技大學(xué)國防/材料導(dǎo)師推薦 +3 | 尖角小荷 2026-03-16 | 6/300 |
|