2

グローバル モジュールの割り当て可能な変数である配列 Ar(-3:3, 5) を使用し、1 つのサブルーチンで割り当てて、次のサブルーチンでアクセスしたいと考えています (以下のコード スニペットを参照)。2 番目のサブルーチンのインデックスは -3 から 3 および 1 から 5 になりますか、それともサブルーチンで指定する必要がありますか?

module global
   real, allocatable(:,:) :: Ar
end module global

subroutine allocateAr
   use global

   ALLOCATE(Ar(-3:3, 5))
end subroutine allocateAr

subroutine useAr
   use global

   Ar(-3,1)=3.0  !is this -3,1 here or do I have to use 1,1????
end subroutine useAr
4

1 に答える 1

2

割り付け可能配列は、割り付け可能としてアクセスする場合、常にその境界を保持します。これは、 subroutine で示したように、「関連付けを使用」または「ホスト関連付け」を直接使用することuseAR、またはそれらを割り当て可能な仮引数として渡すことを意味します。それらを想定形状または想定サイズ配列として渡す場合は、呼び出されるすべてのプロシージャで下限を指定する必要があります。指定しないと、デフォルトで 1 になります。

したがって、あなたの場合、使用できます-3,1

それ以外の場合は、グローバルな可変状態に関する Jonathan Dursi に同意します。

于 2013-04-29T13:18:29.793 に答える