2012-09-24 67 views
0

我在FORTRAN有2個問題(我是這個語言的新手)。OPEN語句中FORM =「FORMATTED」的含義是什麼?

我有下面的代碼行:

OPEN(UNIT=79, FILE='sampling.txt', FORM='FORMATTED') 
    READ(79,*) NP1,NP2,IW 

NP1,NP2,IW被聲明爲整數。

什麼是'FORMATTED'在公開?我在讀什麼數據? READ行是否讀取單行並將數據放入NP1,NP2,IW?數據逗號是分開的嗎?空間分離?

我的下一個問題是:

D_IN = (RD/1000000)**(2./3.)/9.81**(1./3.) 

這是什麼行辦? (D_IN和RD是REAL * 8)有人可以把它翻譯成C嗎?

回答

0

格式化文件或多或少是文本文件。格式化意味着數字和其他變量存儲爲字符。否則,文件的實際格式取決於您。在你的例子中,read語句中的*表示所謂的「列表定向格式」,在寫入和讀取時爲處理器提供了很大的自由度。如果您需要更多,格式化的I/O是Fortran更加困難的方面之一,您應該研究web上的衆多資源。


另一個問題:運營商**是電力運營商。如果第二個操作數不是小整數,則在翻譯時使用C中的功能pow()

1

「格式化」基本上是指文本輸出 - 即人類可讀。另一種選擇是「未格式化」,它允許處理器使用位和字節(或任何其等價物)寫入文件而不是文本。在C中,區別是在庫調用級別 - fprintf(〜formatted)與fwrite(〜unformatted)之間進行的。

你讀語句使用的表式的格式(由*在parenthesised列表的第二個位置提名)所謂 - 輸入的格式被判定基於項目的輸入就行了,而不是由程序員明確指定。該語言有一套關於如何在列表定向格式下翻譯輸入的規則 - 這些規則在衝卡的日子裏有很多意義,但可能會讓今天的用戶感到驚訝。作爲一個殘酷不完整的總結 - 記錄(可能是多行)將從文件中讀取,直到讀取三個值這些值將被解釋爲整數。記錄中的值可以用逗號或空格分隔。

假設粗體格式是無意的(如果不是,該行是一個語法錯誤,Fortran 90處理器會給你一個診斷,在C語言中獲得語法錯誤的方法數量很大)以D_IN開頭的行是一個賦值語句。 =右側表達式的值將被分配給左側的變量。等價的C幾乎是一個字面轉錄(在浮點常量之後,通常需要附加f以使用類似的數值類型,但這取決於Fortran處理器和C實現的細節)。

+0

**假設粗體格式是無意的(如果不是,則該行是語法錯誤,Fortran 90處理器會給您一個診斷信息,在C語言中獲得語法錯誤的方法數量相當大)** **是FORTRAN中的指數運算符。 – Massimiliano

相關問題