くだすれFORTRAN(超初心者用)その4at TECHくだすれFORTRAN(超初心者用)その4 - 暇つぶし2ch■コピペモード□スレを通常表示□オプションモード□このスレッドのURL■項目テキスト300:デフォルトの名無しさん 09/06/16 22:56:05 >>296 >y(1:25,1:25)=x(1:25,1:25) なぜ素直にy=xとしない。 多分 ALLOCATE(TMP(26,26)) TMP=x y=TMP DEALLOCATE(TMP) のように展開されるから遅いんだろ。 301:デフォルトの名無しさん 09/06/16 22:59:20 >>300 TMP(25,25)だったw 0:25と勘違いしたよ。1:25とか俺的にはあり得ないw >>299 データ数が足りないように見受けられる。 F9.5に当たるところでデータが足りないか、変数の数が合わないかしてるのでは? 302:296です。 09/06/16 23:06:23 [hoge@xeon prog20]$ cat test.f90 program test implicit none integer,parameter::nx=25,ny=50 real(8)::x(nx,nx),y(ny,ny) integer::i x=reshape((/1:25*25/),shape(x)) do i=1,100000 call sub1(x,y,nx,ny) call sub2(x,y,nx,ny) end do end program test subroutine sub1(x,y,nx,ny) implicit none real(8)::x(nx,nx),y(ny,ny) integer::nx,ny y=0 y(1:nx,1:nx)=x(1:nx,1:nx) y=cshift(y,12,1) y=cshift(y,12,2) end subroutine subroutine sub2(x,y,nx,ny) implicit none real(8)::x(nx,nx),y(nx,nx) !nyでなくnx integer::nx,ny y=0 y(1:nx,1:nx)=x(1:nx,1:nx) y=cshift(y,12,1) y=cshift(y,12,2) end subroutine 続く 次ページ最新レス表示レスジャンプ類似スレ一覧スレッドの検索話題のニュースおまかせリストオプションしおりを挟むスレッドに書込スレッドの一覧暇つぶし2ch