くだすれFORTRAN(超初心者用)その4at TECHくだすれFORTRAN(超初心者用)その4 - 暇つぶし2ch■コピペモード□スレを通常表示□オプションモード□このスレッドのURL■項目テキスト74:69 09/02/22 09:30:19 >>73 module malloc integer, allocatable :: imem(:) contains subroutine alloc4i(imem, msize) integer::imem(:) integer::msize allocate ( imem(msize), stat=ier ) if (ier .ne. 0) stop return end subroutine end module program memtest use malloc integer::msize msize = 1000*1000 * 200 call alloc4i(imem, msize) stop end program う~ん・・・ f90に疎くて、こんなコードしか書けませんでしたorz ホントは、下みたいな感じで、program側で複数の配列確保に使える サブルーチンが欲しいのですが・・・ program memtest : call alloc4i(imem1,msize) call alloc4i(imem2,msize) : 75:デフォルトの名無しさん 09/02/22 13:30:21 >>74 やりたいのはこんな感じかな? MODULE m_test CONTAINS subroutine alloc4i(imem, msize) integer, allocatable, INTENT(OUT) :: imem(:) integer, INTENT(IN) :: msize if ( .not. allocated(imem) ) then allocate( imem(msize), stat=ier ) if (ier .ne. 0) stop else stop endif return end subroutine alloc4i END MODULE m_test program mtest USE m_test integer, allocatable :: imem1(:), imem2(:) msize = 1000*1000 * 200 call alloc4i(imem1, msize) call alloc4i(imem2, msize) stop end 次ページ最新レス表示レスジャンプ類似スレ一覧スレッドの検索話題のニュースおまかせリストオプションしおりを挟むスレッドに書込スレッドの一覧暇つぶし2ch