[英]Creating a Table in Fortran 77
首先,我要說我完全沒有資格在Fortran 77中工作,但是我在這里,我正在學習我能做的。
我正在從事一個涉及在不同條件下對火焰特性建模的項目。 在這里,我有一個片段,用於輸出表中的第一行,並在其適當的列下方為行提供標簽。 (KSYM是一個字符串數組,用於標記存在的不同化合物)
WRITE(LOUT,1) "Standoff(cm)", "Density(g/cm3)",
+ "HeatReleaseRate(erg/cm3/s)","Temperature(K)",
+ KSYM(1),KSYM(2),KSYM(3),KSYM(4),KSYM(5),KSYM(6),KSYM(7),
+ KSYM(8),KSYM(9),KSYM(10),KSYM(11),KSYM(12),KSYM(13),KSYM(14),
+ KSYM(15),KSYM(16),KSYM(17),KSYM(18),KSYM(19),KSYM(20),
+ KSYM(21),KSYM(22),KSYM(23),KSYM(24),KSYM(25),KSYM(26),
+ KSYM(27),KSYM(28),KSYM(29),KSYM(30),KSYM(31),KSYM(32),
+ KSYM(33)
然后稍后在每個僵持間隔的循環中
WRITE(LOUT,6) X(J),F(J),HR(J),(SN(N,J), N=1,NATJ-1)
格式如下:
1 FORMAT(A16,3X,A16,3X,A30,3X,A16,3X,80(A16,3X))
2 FORMAT(I10)
3 FORMAT(3(I10,3X))
4 FORMAT(3(E17.7,3X))
5 FORMAT(80(E17.7,3X))
6 FORMAT(F17.7,3X,F17.7,3X,F20.7,3X,80(E15.5,3X))
我的問題是,數據消失了,因為第一行中的標簽及其相應的列在前幾列之后沒有保持對齊,從而難以讀取和操作。
我可以想到的兩種可能的解決方案:1.將使用“ T”格式描述符來創建絕對列2.忽略即時可讀性的問題,在每個條目后插入逗號或半逗號,然后以excel形式在excel中打開。 CSV文件
由於最終要對數據進行圖形化處理,因此我不妨做選項2。我嘗試在第一個代碼段的每個條目之間添加“,”,但是我一直在獲取語法錯誤,所以我我以為我做錯了什么。
編輯:
為了測試想法2,我在每個條目之間添加了“,”。
WRITE(LOUT,*) 'Name',KSYM(1),';',KSYM(2),';',KSYM(3),';',
+ KSYM(4),';',KSYM(5),';',KSYM(6),';',KSYM(7),';',KSYM(8),';',
+ KSYM(9),';',KSYM(10),';',KSYM(11),';',KSYM(12),';',
+ KSYM(13),';',KSYM(14),';',KSYM(15),';',KSYM(16),';',
+ KSYM(17),';',KSYM(18),';',KSYM(19),';',KSYM(20),';',
+ KSYM(21),';',KSYM(22),';',KSYM(23),';',KSYM(24),';',
+ KSYM(25),';',KSYM(26),';',KSYM(27),';',KSYM(28),';',
+ KSYM(29),';',KSYM(30),';',KSYM(31),';',KSYM(32),';',
+ KSYM(33)
但是語法錯誤與以前相同。 我正在使用一個特殊的編譯器pgf77,如果有任何區別。
基本問題是格式1和6的字段寬度不同。 在格式1中,您的間距為3X,字符串(標簽)的長度為16。除了A30是一個。 在用於值的格式6中,您有3個空格,數字項目的字段具有不同的長度,例如17、20或15。如果使每個數字格式項目的長度都變長,除了第3個項目,則為16。應該排隊。
通過用隱含的do-loop替換數組的33個單獨索引的值,將更容易讀取第一次寫入:(ksym(i),i = 1,33)。 最好使用數組功能,而不是全部寫出來!
格式語句與可變寬度輸出(例如CSV)在很大程度上不兼容。 相反,只需使用列表控制的輸出:
write (LOUT,*) 'Standoff(cm), Density(g/cm3), HeatReleaseRate(erg/cm3/s), Temperature(K)'
do 101 i=1,n
write (LOUT,*) X(J), ',', F(J), ',', HR(J), ',', (SN(N,J), ',', N=1,NATJ-1)
101 continue
(另)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.