0

構造体の割り当て可能な配列に初期値を代入したいと考えています。モジュール内の構造は次のようになります。

INTEGER, PARAMETER :: dp = 8
TYPE :: Message
  INTEGER :: l
  INTEGER :: species
  INTEGER :: molecule
  REAL(KIND=dp) :: vxx
  REAL(KIND=dp) :: vyy
  REAL(KIND=dp) :: vzz
END TYPE Message
TYPE(Message), ALLOCATABLE :: products(:)

メイン関数では、配列を割り当てて次のように初期化します。

  ALLOCATE (products(sizeofpro))
  DO i =1, sizeofpro
    products(i)%l = 1
    products(i)%species = 0
    products(i)%molecule = 0
    products(i)%vxx = 0.0_dp
    products(i)%vyy = 0.0_dp
    products(i)%vzz = 0.0_dp
  END DO

gdbと入力してデバッグするために使用するとp products(1)、次のように表示されます。

$1 = (0, 0, 0, 1.3888616748813736e-269, 4.9782021256040348e-311, 2.121995791459338e-314)

そして、初期化は機能しません。

このコードを MPI と並行して実行し、mpif90 でコードをコンパイルします。

なぜこれが起こるのですか?

4

0 に答える 0