[請益] 這輸出格式的意義

看板Fortran作者 (燒瓶中的小人 Homunculus)時間13年前 (2010/12/01 13:58), 編輯推噓1(1017)
留言18則, 6人參與, 最新討論串1/2 (看更多)
擷取一部分放上來問 nit=nit+1 i1 = mod(nit,10) i2 = mod(nit,100)/10 i3 = mod(nit,1000)/100 i4 = mod(nit,10000)/1000 i5 = mod(nit,100000)/10000 i6 = mod(nit,1000000)/100000 i7 = mod(nit,10000000)/1000000 i8 = mod(nit,100000000)/10000000 i9 = nit/100000000 ca1 = CHAR(i1+48) ca2 = CHAR(i2+48) ca3 = CHAR(i3+48) ca4 = CHAR(i4+48) ca5 = CHAR(i5+48) ca6 = CHAR(i6+48) ca7 = CHAR(i7+48) ca8 = CHAR(i8+48) ca9 = CHAR(i9+48) !上面再補一些在完整一點 suffix= '.dat' pt1 = 'shape'//ca9//ca8//ca7//ca6//ca5//ca4//ca3//ca2//ca1//suffix pt2 = 'pc'//ca9//ca8//ca7//ca6//ca5//ca4//ca3//ca2//ca1//suffix pt3 = 'Tc'//ca9//ca8//ca7//ca6//ca5//ca4//ca3//ca2//ca1//suffix pt4 = 'Mc'//ca9//ca8//ca7//ca6//ca5//ca4//ca3//ca2//ca1//suffix do i=1, 100, 1 t=s(i) if (t<3) cycle open(101,file=pt1,status='unknown') write(101,*) 'VARIABLES= "r" , "Pc" , "z"' write(101,*) 'ZONE I=',t+1,',J=1,f=point' do l=1, t+1, 1 write(101,*) rn(i,l), Cn(i), zn(i,l) write(*,*) rn(i,l), Cn(i), zn(i,l) end do end do write(101,*) pn_0, Mn_1, C, c_1, c_2, A, Hi, gamma close(101) . . . (略) F7 F5後 都不會跑出data 連把 pt1.dat 開(新增)出來都沒有 目前我比較疑惑的是 很多 雙斜線那幾行 我不是很確定那是在幹嘛 翻了書沒有翻到 (彭國倫f95那本) 不知道各位高手能指教一下嗎 ? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.117.58.26

12/01 14:55, , 1F
好像是相對還是絕對路徑的東東 不然就是為了方便而已
12/01 14:55, 1F

12/01 16:01, , 2F
雙除號是字串相連用的。
12/01 16:01, 2F

12/01 16:26, , 3F
我也不懂>< 可以再詳細說明一下他在這個範例中的用法嗎?
12/01 16:26, 3F

12/01 19:07, , 4F
你的ca9~ca1應該是字串變數,//的功用就同二樓所說
12/01 19:07, 4F

12/01 19:08, , 5F
若宣告character(len=5) :: StrA="Hello",StrB="World"
12/01 19:08, 5F

12/01 19:09, , 6F
print*,StrA,StrB 跟 print*,StrA//StrB 效果是一樣的
12/01 19:09, 6F

12/01 19:10, , 7F
但是這裡是要給定pt1變數一個檔案名稱,此時就不能使用
12/01 19:10, 7F

12/01 19:11, , 8F
pt1=StrA,StrB的方式來讓pt1等於HelloWorld,要用//
12/01 19:11, 8F

12/01 21:11, , 9F
// 的意思是 字串的串接,但是不好用。最好是 自己寫副程式
12/01 21:11, 9F

12/01 22:12, , 10F
為什麼這情況就必須用// 我還是不太了解 我再想想看
12/01 22:12, 10F

12/01 22:12, , 11F
謝謝喔^^"
12/01 22:12, 11F

12/02 16:10, , 12F
ca1紀錄個位數,ca2紀錄十位數,以此類推,
12/02 16:10, 12F

12/02 16:12, , 13F
最後檔名就會像是pc000003457.dat這樣,方便整理而已
12/02 16:12, 13F

12/02 16:12, , 14F
看這程式像是要用tecplot顯示等高線圖
12/02 16:12, 14F

12/03 03:02, , 15F
哇哇 acyang大好內行 我再研究看看 T^T
12/03 03:02, 15F

12/03 03:02, , 16F
但他不會出來dat擋
12/03 03:02, 16F
※ 編輯: juangpeiyi 來自: 140.117.59.134 (12/03 18:06)

12/04 16:16, , 17F
你應該檢查t=s(i)的值,if (t<3) cycle這行可能在搞鬼
12/04 16:16, 17F

12/04 16:52, , 18F
我檢查了!!!! 竟然t都是21這兩個值在跳 !!!!
12/04 16:52, 18F
文章代碼(AID): #1CzUFvUg (Fortran)
文章代碼(AID): #1CzUFvUg (Fortran)