[問題] 有關於迴圈格式輸出的問題

看板Fortran作者 (降太)時間11年前 (2013/07/03 21:02), 編輯推噓2(2010)
留言12則, 3人參與, 最新討論串1/1
1.我要輸出的資料每筆都有點長 分別有座標(X,Y)跟24個測量值,需要寫在同一行方便我後面作業 雖然都寫在同一次WRITE裡面 用vi開來看發現仍然超過76格會強迫換行 請問這是只能用自訂格式去克服嗎?還是可以取消強迫換行? (ADVANCE='no'應該是針對每次write不是單次write吧?) 2. 當我把資料原本的方式輸出 DO i=1,24 WRITE(11,*)i READ(10,100)date,time,date,time READ(10,*)spec DO j=1,L READ(10,*)s1(j,i),s1(j+1,i),s1(j+2,i),s1(j+3,i),s1(j+4,i) WRITE(11,*)s1(j,i),s1(j+1,i),s1(j+2,i),s1(j+3,i),s1(j+4,i) END DO IF(F2==1) THEN READ(10,*)s1(L*5+1,i) END IF IF(F2==2) THEN READ(10,*)s1(L*5+1,i),s1(L*5+2,i) END IF IF(F2==3) THEN READ(10,*)s1(L*5+1,i),s1(L*5+2,i),s1(L*5+3,i) WRITE(11,*)s1(L*5+1,i),s1(L*5+2,i),s1(L*5+3,i) END IF IF(F2==4) THEN READ(10,*)s1(L*5+1,i),s1(L*5+2,i),s1(L*5+3,i),s1(L*5+4,i) END IF END DO 都可以把我約五萬筆的資料輸出 但為了加上座標 把上面的WRITE都拿掉 改用這樣 !i=1 !DO UTM_N=1,LONG ! DO UTM_E=1,WIDE ! WRITE(11,*)UTM_N,UTM_E,i,s1(i,1:24) ! i=i+1 ! END DO ! END DO ! ! !DEALLOCATE(s1) (請當作沒看到驚嘆號囧....) 大約第415組的座標(約第9960筆測量值)後的測值全部都變成了-4.3160208E+08... 這是發生什麼悲劇了QAQ.....? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.120.29.185

07/03 22:16, , 1F
1.自訂格式也有上限2XX忘了 2.自己的format只有自己懂
07/03 22:16, 1F

07/03 22:17, , 2F
所以你先弄個format來看看是不是資料讀錯了吧
07/03 22:17, 2F

07/03 22:19, , 3F
不然大概就是read近來的時候型態不符
07/03 22:19, 3F
數值都是小數七位科學記號,READ用預設型態(*) 而且現在的狀況是兩種寫出方式一個對一個錯...囧

07/03 23:56, , 4F
是不是你的i爆了
07/03 23:56, 4F
沒有 總比數2068 回報數量2069(第2069是跳爽的,迴圈在2068寫完就停了) ※ 編輯: zmack0905 來自: 140.120.29.185 (07/04 11:28)

07/04 13:07, , 5F
default的format可能不那麼可靠
07/04 13:07, 5F

07/04 13:07, , 6F
你檢查看看座標後面的帶的資料是否正確
07/04 13:07, 6F

07/04 13:08, , 7F
deafult的判斷資料斷點好像是space 還是tab or , 忘了
07/04 13:08, 7F

07/04 13:09, , 8F
所以順便檢查一下你的input data面有沒有整串的空白
07/04 13:09, 8F

07/04 13:10, , 9F
或是會被認為是斷點的符號
07/04 13:10, 9F
=糟糕..我在確認下

07/04 19:38, , 10F
我常用default 確定斷點符號可以是space也可以是,
07/04 19:38, 10F

07/04 23:10, , 11F
Q1: 要知道資料是不是在同一行請看右下角數字 如果沒有
07/04 23:10, 11F

07/04 23:12, , 12F
數字請在vim中:set ruler 有時只是不夠顯示所以換行
07/04 23:12, 12F
有用VI看 確定輸出資料都被分好幾行了.... 看來我可能要放棄輸出成一行長長了囧 ※ 編輯: zmack0905 來自: 140.120.29.185 (07/05 13:46)
文章代碼(AID): #1Hr23OX4 (Fortran)