0

使いたいですEquivalence。gfortran-5 でどのように使用できますか?

私は使っている:

Select Case (dst)
Case ("cm")
  Equivalence :: (cm2Mm_r32, r32), (cm2Mm_r64, r64)
  Call qcdiv (qb, qa, r32, r64, cm2Mm_r128)
Case ("m")
  Equivalence :: (m2Mm_r32, r32), (m2Mm_r64, r64)
  Call qcdiv (qb, qa, r32, r64, m2Mm_r128)
Case ("Km")
  Equivalence :: (Km2Mm_r32, r32), (Km2Mm_r64, r64)
  Call qcdiv (qb, qa, r32, r64, Km2Mm_r128)
End Select
4

1 に答える 1

1

等価ステートメントは、宣言部分に配置する必要があります。条件付きで制御することはできません。

最新の Fortran はtransfer()、ビット パターンを変換することを好みます。型変換が必要ない場合は、ポインターを使用してください。

私は実際にコードの 1 か所で同等性を使用していますが、そこではインテル コンパイラーが を最適化できませんtransfer()が、それは例外であり、使用する前によく考える必要があります。

于 2015-03-11T21:38:21.397 に答える