2016-08-09 12 views
0

前の操作(pythonスクリプトから)のために行数を変更することができるファイルで作業しなければならず、その行数が他の変数を宣言するために使用されます。このような。ファイルから未知数の行を宣言する方法

integer NumberOfLine !This is not work,Of course. 
real(8) F(FixedDimension,NumberOfLine) 
integer, parameter :: NewDimension = ANumber*NumberOfLine 

NumberOfLineを正しく宣言するにはどうすればよいですか。ありがとう。 私はPythonから行番号を渡すことができるので、基本的には、Python操作の完了後にその番号を知っています

+0

'実数(8)'悪いです:あなたは何ができるか

は割付け配列を使用しています! http://stackoverflow.com/documentation/fortran/939/data-types/4390/precision-of-floating-point-numbers#t=201608091021532182103 –

+0

ありがとうございました!私は数日間Fortranを使用する方法を学ぶだけです。このヘルプたくさん。 – Mireanuw

答えて

2

パラメータを宣言する場合、その値はコンパイル時に固定する必要があります。したがって、コンパイラがNumberOfLineの値を知らないと、integer, parameter :: newDimension = ANumber * NumberOfLineは機能しません。

program test_alloc 

    implicit none 
    integer, parameter :: dp = selected_real_kind(p=15) 
    real(kind=dp), dimension(:,:), allocatable :: F 
    integer :: i 
    integer, parameter :: FixedDimension = 10 

    print *, "Enter i" 
    read(*, *) i 

    allocate (a(FixedDimension, i)) 
    a = i 
    print *, a 

end program test_alloc 
+0

ありがとうございました!私は前にFortranを書いたことはありません。これは多くの助けを借ります。 – Mireanuw

+0

私のオリジナルの解決策はあなたの質問だったので、本当にすべきではない 'REAL(8)'を使用しました。私は64ビット浮動小数点数を得るより柔軟な方法に置き換えました。 – chw21

+0

私は浮動小数点数が何であるかを理解しようとします。 – Mireanuw

関連する問題