2006年度 計算力学 第11回 プログラミング実習(3) 2006.06.19 ■ 風上差分法のプログラム n:時間ステップ, j:空間刻み, v:クーラン数 として, do 10 n=1, nmax do 20 j=1, jmax f(j)=f(j)-v*(f(j)-f(j-1)) 20 continue 10 continue このプログラムで正しく計算できるか? ■ 風上差分法のプログラム(改良版) n:時間ステップ, j:空間刻み, v:クーラン数 として, do 10 n=1, nmax do 20 j=2, jmax f(j,n+1)=f(j,n)-v*(f(j,n)-f(j-1,n)) 20 continue 10 continue ※ 2次元の配列を利用する. ※ 境界条件( j = 1)を考慮する ■ 境界条件について ex. 風上差分 j=1 j=1 j=1 j=0 計算領域の左端(x軸上の最初の格子点)における f の値 は計算しない. → 境界条件として与えてしまう. ※初期分布として設定した f1 の値を使えばよい. ■ ファイル出力の例 2次元の配列 : f(j,n),j=1~5,n=1~3 について,その値をファイル出力する場合 open(1,file=’out.dat’,status=’new’) do 10 n=1, 3 write(1,100)( f(j,n),j=1,5 ) 10 continue close(1) 100 format( 5(f6.2) ) ■ ファイル出力の例 j=1 n=1 n=2 n=3 j=2 j=3 j=4 j=5 f(1,1) f(2,1) f(3,1) f(4,1) f(5,1) f(1,2) f(2,2) f(3,2) f(4,2) f(5,2) f(1,3) f(2,3) f(3,3) f(4,3) f(5,3) format( 5(f6.2) ) f6.2 : xxx.xx 5f6.2 : xxx.xxxxx.xxxxx.xxxxx.xxxxx.xx
© Copyright 2024 ExpyDoc