###前提・実現したいこと
前にもFortranのプログラムについて質問させていただきましたが、今回もお世話になります。
今写真にあるような問題をとき直しています(わからないままだったので)。
![
###発生している問題・エラーメッセージ
格子点を打ち、これに線を(gnuplotで)描かせても不完全な格子点になる.
###該当のソースコード
Fortran
1program lattice 2 implicit none 3 real(8), allocatable :: x(:,:,:) 4 real(8) :: x1 = 0.0d0, x2 = 0.0d0, x3 = 0.0d0, x4 = 0.0d0 5 integer :: i,j,l, m = 2, n(2)=(/ 10, 10 /) 6 real(8) dx1, dx2 7 open(11, file='Ex2.15_output.d') 8 allocate(x(m,n(1),n(2))) 9 dx1=1.0d0/dble(n(1)-1) 10 dx2=1.0d0/dble(n(2)-1) 11 do j=1, n(2) 12 do i=1, n(1) 13 x(1,i,j)=x1 14 x(2,i,j)=x2 15 write(11,*) x(1,j,i), x(2,i,j) 16 enddo 17 write(11,*) '' 18 x1=x1+dx1 19 x2=x2+dx2 20 enddo 21 22 do i=1, n(1) 23 do j=1, n(2) 24 x(1,i,j)=x3 25 x(2,i,j)=x4 26 write(11,*) x(1,i,j), x(2,j, i) 27 enddo 28 write(11,*) '' 29 x3=x3+dx1 30 x4=x4+dx2 31 enddo 32 close(11) 33end program lattice
###試したこと
いろいろ考えて、x(1,i,j)成分をi=1の場合j=1,nまで描き(点を打ち)、空行を入れる. i=2の場合j=1,nまで描き、空行を入れる...これを繰り返せばgnuplotで縦棒を描くことができるのではないかと考え、同様にしてx(2,i,j)については、iとjを入れ替えればマス目(格子点に線を描いたもの)をgnuplotに描かせることができそうとも考えました。(実際一つのdo分だけで考えてみたのですが、三角形が描かれるだけでした。)これをもとにして上のようなコードを書きました。ただ、結果としてはご覧の通りで、マス目を十分描かせることができません。
ご助言いただけるとうれしいです。以上よろしくお願いします。
###補足情報(言語/FW/ツール等のバージョンなど)
gfortran, gnuplot, 数値計算のためのFortran90/95プログラミング入門(牛島) P.63
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2017/03/21 19:20