既存の計算結果の読み込み

既存のCGNSファイルに格納されている計算結果を読み込みます。

表 77 利用する関数

関数

備考

cg_iric_read_sol_count_f

計算結果の数を取得する

cg_iric_read_sol_time_f

計算結果の時刻の値を取得する

cg_iric_read_sol_iteration_f

計算結果のループ回数の値を取得する

cg_iric_read_sol_baseiterative_integer_f

整数の計算結果の値を取得する

cg_iric_read_sol_baseiterative_real_f

倍精度実数の計算結果の値を取得する

cg_iric_read_sol_gridcoord2d_f

計算結果の2次元構造格子を取得する

cg_iric_read_sol_gridcoord3d_f

計算結果の3次元構造格子を取得する

cg_iric_read_sol_integer_f

整数の格子点ごとに値を持つ計算結果の値を取得する

cg_iric_read_sol_real_f

倍精度実数の格子点ごとに値を持つ計算結果の値を取得する

cg_iric_read_sol_cell_integer_f

整数の格子セルごとに値を持つ計算結果の値を取得する

cg_iric_read_sol_cell_real_f

倍精度実数の格子セルごとに値を持つ計算結果の値を取得する

既存のCGNSファイルを読み込み、格納されている計算結果を標準出力に 出力する処理の例を リスト 109 に示します。

リスト 109 計算結果を読み込む処理の記述例
 1program SampleX
 2  implicit none
 3  include 'cgnslib_f.h'
 4
 5  integer:: fin, ier, isize, jsize, solid, solcount, iter, i, j
 6  double precision, dimension(:,:), allocatable::grid_x, grid_y, result_real
 7
 8  ! CGNS ファイルのオープン
 9  call cg_open_f('test.cgn', CG_MODE_READ, fin, ier)
10  if (ier /=0) STOP "*** Open error of CGNS file ***"
11
12  ! 内部変数の初期化
13  call cg_iric_initread_f(fin, ier)
14  if (ier /=0) STOP "*** Initialize error of CGNS file ***"
15
16  ! 格子のサイズを調べる
17  call cg_iric_gotogridcoord2d_f(isize, jsize, ier)
18
19  ! 計算結果を読み込むためのメモリを確保
20  allocate(grid_x(isize,jsize), grid_y(isize,jsize))
21  allocate(result_real(isize, jsize))
22
23  ! 計算結果を読み込み出力
24  call cg_iric_read_sol_count_f(solcount, ier)
25  do solid = 1, solcount
26    call cg_iric_read_sol_iteration_f(solid, iter, ier)
27    call cg_iric_read_sol_gridcoord2d_f(solid, grid_x, grid_y, ier)
28    call cg_iric_read_sol_real_f(solid, 'result_real', result_real, ier)
29
30    print *, 'iteration: ', iter
31    print *, 'grid_x, grid_y, result: '
32    do i = 1, isize
33      do j = 1, jsize
34        print *, '(', i, ', ', j, ') = (', grid_x(i, j), ', ', grid_y(i, j), ', ', result_real(i, j), ')'
35      end do
36    end do
37  end do
38
39  ! CGNS ファイルのクローズ
40  call cg_close_f(fin, ier)
41  stop
42end program SampleX

なお、計算結果読み込みの関数を用いて、既存のCGNSファイルの計算結果を 分析・加工することができます(計算結果分析ソルバーの開発手順 参照)。