2016-03-21 4 views
0

FORTRANコードをC++に変換しています。 FORTRANコードを理解しながら、私はFORTRANで次のコードスニペットを見つけました。FORTRANのDIMENSIONステートメント

DIMENSION X(50),Y(50),PARA(6,9)          
DIMENSION AMPA(12),FCUR(20),VER(20),AMPS(20) 

私は、DIMENSIONはFORTRANにデータ型を必要としないことを理解しています。しかし、私はX、Y、PARAなどのデフォルトのデータ型が何であるか理解できません。デフォルトでは整数ですか?

+0

ありがとうございました。本当にありがたいことです:) – Sudipto

答えて

5

古典的には、[I-N]で始まる名前のFortran変数はINTEGERで、それ以外はすべてREALでした。そのため、C++でこれらの変数の最も一般的な型はfloatです。

float X[50], Y[50], PARA[6][9]; 
float AMPA[12], FCUR[20], VER[20], AMPS[20]; 

しかし、2Dアレイと、Fortranはcolumn-major order CとC++使用行優先順序を使用します。 2D配列の場合は、それを心配する必要があります。名前を小文字に変換することもできます。 FORTRANで

+0

これはCOMMON文でも同じですか? – Sudipto

+1

はい、関数のパラメータなどについては、名前に基づくデフォルトの型は同じスキームに従います。 –

2

特に断りのない限り、名前がアルファベットのIからN文字で始まった(Fortranは大文字と小文字を区別していない覚えている)の変数はimplicitly integer, and everything else is implicitly realある - これはおそらくintおよびC++でのfloatに対応します。

FORTRAN 77と同じく、これは悪い習慣とみなされました。今日、すべての変数が明示的な型で宣言されるようにするには、すべてのFortranプログラムとモジュールを文頭でimplicit noneで開始するのが普通です。

関連する問題