[問題] 變數自行改變
如題
這個問題困擾我很久了
本魯使用visual studio
目前我這個程式的架構
是由C++去呼叫一個for的dll
然後跑dll裡面眾多的subroutine
重點來了
當我跑了六次這個迴圈的時候
在跑完!******************************************
標示的該行後
有一個於這個迴圈都沒有出現的參數NNE(7)
會自動變為一個很奇怪的數字
原本為14跑完後變為一個極大的數字
但該行甚至這個迴圈 與參數NNE應該是一點關係也沒有
為何會這樣 求解 先謝過大家了
附圖
https://imgur.com/7kf4X9E
按一下F11逐步執行後變成
https://imgur.com/gznxEKU
完全沒有道理啊@@
附上該迴圈
DO I=L,1,-1
OPEN(60,FILE='MANNING.DAT',STATUS='OLD')
OPEN(61,FILE='NCCHECH.OUT',STATUS='UNKNOWN')
READ(60,1002) NC
1002 FORMAT(5X,F8.5)
CMN(I,J)=NC
!******************************************
WRITE(61,*)"CMN(",I,",",J,")",CMN(I,J)
!******************************************
!將CMN寫入NCCHECH.OUT
READ(IIN,1004) NDS(I,J),XL,XR,LL,LR,LC
1004 FORMAT(8X,F8.0,2F8.2,3F8.0)
C DIST1(I,J)=(LL+LC+LR)/3.0
DIST1(I,J)=(LL+LC+LR)/3.0*3
KK=NDS(I,J)
WRITE(5,1006)J,I,NDS(I,J),XL,XR,DIST1(I,J),CMN(I,J)
1006 FORMAT(//5X,I3,2X,I3,4X,F8.0,2X,F8.2,2X,F8.2,2X,F8.2,2X,F8.4)
READ(IIN,1008)(AY(II,I,J),AX(II,I,J),II=1,KK)
1008 FORMAT(2X,F6.2,9F8.2)
WRITE(5,1978)(AY(II,I,J),AX(II,I,J),II=1,KK)
1978 FORMAT(2X,F6.2,9F8.2)
Z(I,J)=100.0
DO 1010 II=1,KK
IF(AX(II,I,J).EQ.XL) N1(I,J)=II
IF(AX(II,I,J).EQ.XR) N2(I,J)=II
IF(Z(I,J).GE.AY(II,I,J)) THEN
Z(I,J)=AY(II,I,J)
Z919(I,J)=AY(II,I,J)
END IF
1010 CONTINUE
WRITE(5,1012) N1(I,J),N2(I,J),Z(I,J)
c WRITE(*,1012) N1(I,J),N2(I,J),Z(I,J)
1012 FORMAT(5X,I8,2X,I8,2X,F8.2)
END DO
--
作者 pataricky (專發廢文) 看板 Gossiping
標題 [問卦] 有沒有台南市長榮中學的八卦
時間 Sat Jul 14 20:40:31 2012
推
07/14 20:42,
07/14 20:42
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.112.63.241 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Fortran/M.1568025306.A.4F5.html
※ 編輯: sven1130 (140.112.63.241 臺灣), 09/09/2019 18:38:03
※ 編輯: sven1130 (140.112.63.241 臺灣), 09/09/2019 18:42:34
※ 編輯: sven1130 (140.112.63.241 臺灣), 09/09/2019 18:46:37
推
09/13 21:12,
5年前
, 1F
09/13 21:12, 1F
其實繼續跑之後
NNE的6跟5也會改變
但是4321倒是沒有變
順帶一提 我後來試過先把變數用另一個參數
NNNE存起來
等這次錯誤後再重新寫回去NNE
過了兩三行 又會自己改變@@
推
09/15 00:14,
5年前
, 2F
09/15 00:14, 2F
→
09/15 00:15,
5年前
, 3F
09/15 00:15, 3F
推
09/15 00:20,
5年前
, 4F
09/15 00:20, 4F
推
09/15 00:32,
5年前
, 5F
09/15 00:32, 5F
推
09/15 00:42,
5年前
, 6F
09/15 00:42, 6F
→
09/15 00:42,
5年前
, 7F
09/15 00:42, 7F
→
09/15 00:43,
5年前
, 8F
09/15 00:43, 8F
→
09/15 00:43,
5年前
, 9F
09/15 00:43, 9F
這個部分我去研究看看好了
感謝指出一盞明燈
→
09/15 00:44,
5年前
, 10F
09/15 00:44, 10F
→
09/15 01:06,
5年前
, 11F
09/15 01:06, 11F
→
09/15 01:06,
5年前
, 12F
09/15 01:06, 12F
是的 我的確少附上
另外 由於是修改他人的程式碼
我想要讓一些變數能夠由外部檔案讀取
而不是寫在parameter裡
因此原本檔案跑起來沒問題
但在改的過程 就是卡死在這
搞到後面都無法debug@@
→
09/15 01:07,
5年前
, 13F
09/15 01:07, 13F
→
09/15 01:08,
5年前
, 14F
09/15 01:08, 14F
→
09/15 01:08,
5年前
, 15F
09/15 01:08, 15F
先感謝各位版友的回覆
我近期也還沒找出解答嗚嗚
我也覺得這個問題很怪
※ 編輯: sven1130 (27.52.224.14 臺灣), 09/15/2019 03:40:10
→
09/15 07:24,
5年前
, 16F
09/15 07:24, 16F
→
09/15 07:24,
5年前
, 17F
09/15 07:24, 17F
→
09/15 07:24,
5年前
, 18F
09/15 07:24, 18F
→
09/15 07:24,
5年前
, 19F
09/15 07:24, 19F
阿不對 您說的這部分我知道
就是變數經過計算後 傳回去是計算後的值
說來慚愧 我以為這是正常的
在其他語言 我好像還沒用到副程式過xddd
所以就認為fortran跟大家一樣
※ 編輯: sven1130 (27.52.224.14 臺灣), 09/15/2019 13:35:49
※ 編輯: sven1130 (27.52.224.14 臺灣), 09/15/2019 13:45:07
推
09/15 14:20,
5年前
, 20F
09/15 14:20, 20F
→
09/15 14:20,
5年前
, 21F
09/15 14:20, 21F
→
09/15 14:20,
5年前
, 22F
09/15 14:20, 22F
→
09/15 14:20,
5年前
, 23F
09/15 14:20, 23F
→
09/15 14:22,
5年前
, 24F
09/15 14:22, 24F
→
09/15 14:22,
5年前
, 25F
09/15 14:22, 25F
→
09/15 14:22,
5年前
, 26F
09/15 14:22, 26F
豪 謝謝f大給我這麼多建議~
※ 編輯: sven1130 (27.52.224.14 臺灣), 09/15/2019 14:37:02
討論串 (同標題文章)
Fortran 近期熱門文章
PTT數位生活區 即時熱門文章