| 3 | 1/1 | 返回列表 |
| 查看: 1116 | 回復(fù): 2 | |||
mplanck至尊木蟲 (職業(yè)作家)
之上又是啥子蟲蟲?
|
[交流]
【求助】fortran 程序windows 下編譯正確,而linux下出錯(cuò) 已有2人參與
|
|
如題,一個(gè)cpc上下的程序,windows 下編譯得到結(jié)果正確, 放在linux下就出問題: 用f77, fort77 編譯,在兩個(gè)sub模塊結(jié)尾提示 Error on line 1679: Declaration error for rvv: adjustable dimension on non- argument Error on line 1679: wr_ardecls: nonconstant array size 但我的數(shù)組沒問題呀 再用gfortran,f95編譯,編譯通過,但結(jié)果不對(duì) 再用ifort編譯,編譯也通過,又出來一個(gè)不對(duì)的新結(jié)果 真搞不懂為什么這樣? 麻煩蟲蟲門指點(diǎn)下,謝謝! 附出錯(cuò)部分代碼: 其中報(bào)錯(cuò)的一個(gè)sub模塊代碼如下,1679行對(duì)應(yīng)于最后一行,即‘end’所在行;再就是 整個(gè)代碼中沒有找到wr_ardecls這個(gè)東西,不知道咋搞的。非常感謝! c------------------------------------------------------------------------ subroutine dcludcmp(a,n,np,indx,d,ierror) c this is the double complex version of the homonyme sbr. from Numerical c Recipes implicit double complex(a-h,o-q,s-z) implicit double precision (r) parameter (tiny=(1.0d-30,1.0d-30)) dimension a(np,np),indx(n),rvv(n) d=dcmplx(1.d0,0.d0) ierror=0 do 12 i=1,n raamax=0.d0 do 11 j=1,n if (cdabs(a(i,j)).gt.raamax) raamax=cdabs(a(i,j)) 11 continue if (raamax.eq.0.d0)then write (*,*) 'singular matrix in dcludcmp' ierror=1 return endif rvv(i)=1.d0/raamax 12 continue do 19 j=1,n if (j.gt.1) then do 14 i=1,j-1 sum=a(i,j) if (i.gt.1)then do 13 k=1,i-1 sum=sum-a(i,k)*a(k,j) 13 continue a(i,j)=sum endif 14 continue endif raamax=0.d0 do 16 i=j,n sum=a(i,j) if (j.gt.1)then do 15 k=1,j-1 sum=sum-a(i,k)*a(k,j) 15 continue a(i,j)=sum endif rdum=rvv(i)*cdabs(sum) if (rdum.ge.raamax) then imax=i raamax=rdum endif 16 continue if (j.ne.imax)then do 17 k=1,n dum=a(imax,k) a(imax,k)=a(j,k) a(j,k)=dum 17 continue d=-d rvv(imax)=rvv(j) endif indx(j)=imax if(j.ne.n)then if(cdabs(a(j,j)).eq.0.d0) a(j,j)=tiny dum=1.d0/a(j,j) do 18 i=j+1,n a(i,j)=a(i,j)*dum 18 continue endif 19 continue if(cdabs(a(n,n)).eq.0.d0) a(n,n)=tiny return end c--------------------------------------------------------------------------- |

至尊木蟲 (職業(yè)作家)
|
不要用 f2c 編譯你的程序,用 gfortran 或其它正宗的 Fortran 編譯器,呵呵 用第二個(gè)錯(cuò)誤提示 google 一下,你會(huì)發(fā)現(xiàn),你不是遇到這個(gè)錯(cuò)誤的第一人,呵呵…… f2c does not support automatic arrays; g77 does, as do most other f77 compilers (and all f90+). 至于結(jié)果不同,最大的可能是一些 local variable 沒有賦值,這在 Fortran,尤其是一些老的程序中是非常常見的。用 gfortran 編譯時(shí)加上 -fno-automatic -finit-local-zero 之類的參數(shù)試試…… |
至尊木蟲 (職業(yè)作家)
之上又是啥子蟲蟲?

| 3 | 1/1 | 返回列表 |
| 最具人氣熱帖推薦 [查看全部] | 作者 | 回/看 | 最后發(fā)表 | |
|---|---|---|---|---|
|
[考研] 081700化工學(xué)碩調(diào)劑 +3 | 【1】 2026-03-16 | 3/150 |
|
|---|---|---|---|---|
|
[考研] 0703化學(xué)調(diào)劑 +10 | 妮妮ninicgb 2026-03-15 | 14/700 |
|
|
[考研] 307求調(diào)劑 +9 | 冷笙123 2026-03-17 | 9/450 |
|
|
[考博] 申博26年 +3 | 八6八68 2026-03-19 | 3/150 |
|
|
[考研] 能源材料化學(xué)課題組招收碩士研究生8-10名 +4 | 脫穎而出 2026-03-16 | 12/600 |
|
|
[考研] 266求調(diào)劑 +5 | 陽(yáng)陽(yáng)哇塞 2026-03-14 | 10/500 |
|
|
[考研] 本人考085602 化學(xué)工程 專碩 +17 | 不知道叫什么! 2026-03-15 | 19/950 |
|
|
[考研] 一志愿西安交通大學(xué)材料工程專業(yè) 282分求調(diào)劑 +5 | 楓橋ZL 2026-03-18 | 7/350 |
|
|
[考研] 求調(diào)劑,一志愿:南京航空航天大學(xué)大學(xué) ,080500材料科學(xué)與工程學(xué)碩,總分289分 +3 | @taotao 2026-03-19 | 3/150 |
|
|
[考研] 一志愿985,本科211,0817化學(xué)工程與技術(shù)319求調(diào)劑 +10 | Liwangman 2026-03-15 | 10/500 |
|
|
[考研] 0817調(diào)劑 +3 | 沒有答案_ 2026-03-14 | 3/150 |
|
|
[考研] 本科鄭州大學(xué)物理學(xué)院,一志愿華科070200學(xué)碩,346求調(diào)劑 +4 | 我不是一根蔥 2026-03-18 | 4/200 |
|
|
[考研] 0703化學(xué)調(diào)劑,求各位老師收留 +10 | 秋有木北 2026-03-14 | 10/500 |
|
|
[考研] 一志愿西南交大,求調(diào)劑 +4 | 材化逐夢(mèng)人 2026-03-18 | 4/200 |
|
|
[考研] 收復(fù)試調(diào)劑生 +4 | 雨后秋荷 2026-03-18 | 4/200 |
|
|
[考研] 326求調(diào)劑 +5 | 上岸的小葡 2026-03-15 | 6/300 |
|
|
[考研] 0856專碩279求調(diào)劑 +5 | 加油加油!? 2026-03-15 | 5/250 |
|
|
[考研] 070305求調(diào)劑 +3 | mlpqaz03 2026-03-14 | 4/200 |
|
|
[考研] 289求調(diào)劑 +4 | 這么名字咋樣 2026-03-14 | 6/300 |
|
|
[碩博家園] 085600 260分求調(diào)劑 +3 | 天空還下雨么 2026-03-13 | 5/250 |
|