2012-02-10 22 views
2

allocate(a(n,m))を使用してFortranで(n×m)配列を割り当てています。しかし、後で、私は転位が必要ですが、もはや元のものではないので、私はa = transpose(a)です。しかし、これはshape(a)を変更していないように見えますが、これは(m×n)ではなく(n×m)です。割り当てられた配列の形状を更新する方法はありますか?または、別の配列の領域を割り当て、そこに配置して元の配列の割り当てを解除する必要がありますか?Fortranで割り当てられた配列の形状を変更

答えて

4

Fortran 2003標準によると、割り当て可能配列に割り当てるとき、正しい形状で割り当てられていない場合は、自動的に再割り当てする必要があります。コンパイラがこれをまだサポートしていない場合は、書いたとおりに手作業で行う必要があります。インテルFortranの場合、この機能を明示的に使用可能にする必要があります。

+1

これは本当にこの不具合がgfortran 4.6(私は4.4を使用していました)で修正されたようです。 – pafcu

関連する問題