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

木蟲(chóng) (正式寫手)

木蟲(chóng) (正式寫手)
|
經(jīng)過(guò)測(cè)試,可以生成yingfeng.dat文件的,文件和程序在相同的目錄下,估計(jì)你沒(méi)有運(yùn)行,或運(yùn)行了但是找錯(cuò)了文件夾 發(fā)自小木蟲(chóng)Android客戶端 |

金蟲(chóng) (初入文壇)
| 最具人氣熱帖推薦 [查看全部] | 作者 | 回/看 | 最后發(fā)表 | |
|---|---|---|---|---|
|
[考研] 286分調(diào)劑 +10 | Faune 2026-03-30 | 11/550 |
|
|---|---|---|---|---|
|
[考研] 調(diào)劑 +4 | GK72 2026-03-30 | 4/200 |
|
|
[考研] 0703化學(xué)321分求調(diào)劑 +10 | 三dd. 2026-03-30 | 11/550 |
|
|
[考研] 抱歉 +3 | 田洪有 2026-03-30 | 3/150 |
|
|
[考研] 化工專碩求調(diào)劑 +5 | question挽風(fēng) 2026-03-24 | 5/250 |
|
|
[考研] 一志愿南開(kāi)大學(xué)0710生物學(xué)359求調(diào)劑 +5 | 兔兔兔111223314 2026-03-29 | 7/350 |
|
|
[考研] 337求調(diào)劑 +6 | 《樹(shù)》 2026-03-29 | 6/300 |
|
|
[考研] 294分080500材料科學(xué)與工程求調(diào)劑 +8 | 柳溪邊 2026-03-26 | 8/400 |
|
|
[考研] 299求調(diào)劑 +10 | 15188958825 2026-03-25 | 10/500 |
|
|
[考研] 一志愿南昌大學(xué)324求調(diào)劑 +5 | hanamiko 2026-03-29 | 5/250 |
|
|
[考研] 070305高分子化學(xué)與物理 304分求調(diào)劑 +12 | c297914 2026-03-28 | 12/600 |
|
|
[考研] 0856材料化工調(diào)劑 總分330 +14 | zhubinhao 2026-03-27 | 14/700 |
|
|
[考研] 352分-085602-一志愿985 +5 | 海納百川Ly 2026-03-29 | 5/250 |
|
|
[考研] 材料與化工(0856)304求B區(qū)調(diào)劑 +8 | 邱gl 2026-03-27 | 8/400 |
|
|
[考研] 085602 307分 求調(diào)劑 +7 | 不知道叫什么! 2026-03-26 | 7/350 |
|
|
[考研] 331環(huán)境科學(xué)與工程求調(diào)劑 +3 | 熠然好運(yùn)氣 2026-03-27 | 3/150 |
|
|
[考研] 274求調(diào)劑 +17 | 顧九笙要謙虛 2026-03-24 | 23/1150 |
|
|
[考研] 0703化學(xué)一志愿南京師范大學(xué)303求調(diào)劑 +3 | zzffylgg 2026-03-24 | 3/150 |
|
|
[考研] 341求調(diào)劑 +7 | 青檸檬1 2026-03-26 | 7/350 |
|
|
[考研] 求調(diào)劑 +3 | 李李不服輸 2026-03-25 | 3/150 |
|