計算格子の出力 (計算開始後の格子)¶
CGNSファイルに、計算開始後の計算格子を出力します。計算中に格子形状が 変化するソルバーでのみ行います。
特定の時間での計算格子を出力する前に、必ず 時刻 (もしくはループ回数) の出力 で示した時刻 (もしくはループ回数) の出力を行ってください。
以下に示す場合の格子の出力については、計算格子の出力 で示した関数を利用してください。
ソルバーで新たに格子を生成した
ソルバーで格子を再分割するなどして、次元や格子点数が異なる格子を生成した
格子生成プログラム内で格子を生成した
関数 |
備考 |
|---|---|
cg_iric_write_sol_gridcoord2d_f |
2次元構造格子を出力する |
cg_iric_write_sol_gridcoord3d_f |
3次元構造格子を出力する |
2次元構造格子を出力する処理の例を リスト 101 に示します。
表 6 11 2次元構造格子を出力する処理の記述例
1program Sample5
2 implicit none
3 include 'cgnslib_f.h'
4
5 integer:: fin, ier, isize, jsize
6 double precision:: time
7 double precision, dimension(:,:), allocatable:: grid_x, grid_y
8
9 ! CGNS ファイルのオープン
10 call cg_open_f('test.cgn', CG_MODE_MODIFY, fin, ier)
11 if (ier /=0) STOP "*** Open error of CGNS file ***"
12
13 ! 内部変数の初期化
14 call cg_iric_init_f(fin, ier)
15 if (ier /=0) STOP "*** Initialize error of CGNS file ***"
16
17 ! 格子のサイズを調べる
18 call cg_iric_gotogridcoord2d_f(isize, jsize, ier)
19 ! 格子を読み込むためのメモリを確保
20 allocate(grid_x(isize,jsize), grid_y(isize,jsize))
21 ! 格子を読み込む
22 call cg_iric_getgridcoord2d_f(grid_x, grid_y, ier)
23
24 ! 初期状態の情報を出力
25 time = 0
26
27 call cg_iric_write_sol_time_f(time, ier)
28 ! 格子を出力
29 call cg_iric_write_sol_gridcoord2d_f (grid_x, grid_y, ier)
30
31 do
32 time = time + 10.0
33 ! (ここで計算を実行)
34 call cg_iric_write_sol_time_f(time, ier)
35 call cg_iric_write_sol_gridcoord2d_f (grid_x, grid_y, ier)
36 If (time > 1000) exit
37 end do
38
39 ! CGNS ファイルのクローズ
40 call cg_close_f(fin, ier)
41 stop
42end program Sample5