0

それが私がやりたいことです:

  type dataframe
     integer::a,d
     integer,dimension(:),allocatable::n
  end type dataframe

  type,extends(dataframe):: datafilled
     double precision,dimension(sum(n),d)::x
  end type datafilled

したがって、dataframeはその子のサイズ情報を格納できる必要がありますdatafilled。gfortran はnfor コンパイルの型を知りたがっていますが、私の意見では既に継承されています。(証明: 再度定義するndatafilled、gfortran は重複について不平を言います。) どうすれば動作させることができますか?

注:この質問nに従って割り当て可能であると宣言します。これは、gfortran が明らかに Fortran2003 の属性をまだサポートしていないためです。len

allocatable編集:OK、属性を使用allocateして、後で各初期化ステップで実行できることを認めます。

4

1 に答える 1

1

コンポーネント配列の仕様に含めることができるものには制約があり、割り当て不可/非ポインター コンポーネントの場合、コンパイル時に (定義されている型のオブジェクトの型宣言が検出された時点で) 仕様を評価できます。 )。具体的には、仕様の範囲の値が変数の値に依存してはなりません。詳細については、F2008 の C446 を参照してください。

nデータフレーム型のオブジェクトのコンポーネントは変数です。計算sum(n)にはその値が必要です。制約に違反しています。

長さ型パラメーターは、コンパイラーがサポートしていたとしても、スカラーのみにすることができます。

あなたが結論付けたように、割り当て可能なコンポーネントを使用し、ある種の構築手順で物事を正しく割り当てることが道です。

于 2013-06-26T22:35:25.260 に答える