計算条件 (もしくは格子生成条件) の読み込み

CGNSファイルから、計算条件 (もしくは格子生成条件) を読み込みます。

表 68 利用する関数

関数

備考

cg_iric_read_integer

整数の条件を読み込む

cg_iric_read_real

倍精度実数の条件を読み込む

cg_iric_read_realsingle

単精度実数の条件を読み込む

cg_iric_read_string

文字列の条件を読み込む

cg_iric_read_functionalsize

関数型の条件のサイズを調べる

cg_iric_read_functional

倍精度実数の関数型の条件を読み込む

cg_iric_read_functional_realsingle

単精度実数の関数型の条件を読み込む

cg_iric_read_functionalwithname

値を複数持つ倍精度実数の関数型の条件を読み込む

関数型以外の条件については、一つの関数で一つの条件を読み込むことができます。 整数の計算条件を読み込む処理の例を リスト 160 に示します。

リスト 160 整数型の計算条件を読み込む処理の記述例
 1program Sample1
 2  use iric
 3  implicit none
 4
 5  integer:: fin, ier, i_flow
 6
 7  ! CGNS ファイルのオープン
 8  call cg_iric_open('test.cgn', IRIC_MODE_MODIFY, fin, ier)
 9  if (ier /=0) STOP "*** Open error of CGNS file ***"
10
11  call cg_iric_read_integer(fin, 'i_flow', i_flow, ier)
12  print *, i_flow;
13
14  ! CGNS ファイルのクローズ
15  call cg_iric_close(fin, ier)
16  stop
17end program Sample1

一方、関数型の計算条件では、cg_iric_read_functionalsize_f, cg_iric_read_functional_f の 二つの関数を利用する必要があります。関数型の計算条件を読み込む処理の例を リスト 161 に示します。

リスト 161 関数型の計算条件を読み込む処理の記述例
 1program Sample2
 2  use iric
 3  implicit none
 4
 5  integer:: fin, ier, discharge_size, i
 6  double precision, dimension(:), allocatable:: discharge_time, discharge_value  ! discharge の時刻と値を保持する配列
 7
 8  ! CGNS ファイルのオープン
 9  call cg_iric_open('test.cgn', IRIC_MODE_MODIFY, fin, ier)
10  if (ier /=0) STOP "*** Open error of CGNS file ***"
11
12  ! まず、関数型の入力条件のサイズを調べる
13  call cg_iric_read_functionalsize(fin, 'discharge', discharge_size, ier)
14  ! メモリを確保
15  allocate(discharge_time(discharge_size), discharge_value(discharge_size))
16  ! 確保したメモリに値を読み込む
17  call cg_iric_read_functional(fin, 'discharge', discharge_time, discharge_value, ier)
18
19  ! (出力)
20  if (ier ==0) then
21    print *, 'discharge: discharge_size=', discharge_size
22    do i = 1, min(discharge_size, 5)
23      print *, ' i,time,value:', i, discharge_time(i), discharge_value(i)
24    end do
25  end if
26
27  ! allocate で確保したメモリを開放
28  deallocate(discharge_time, discharge_value)
29
30  ! CGNS ファイルのクローズ
31  call cg_iric_close(fin, ier)
32  stop
33end program Sample2

計算条件 (もしくは 格子生成条件) の種類別の読み込み処理の記述例については、 計算条件・境界条件・格子生成条件の項目の定義と読み込み処理の例 を参照してください。