計算条件 (もしくは格子生成条件) の読み込み¶
CGNSファイルから、計算条件 (もしくは格子生成条件) を読み込みます。
関数 |
備考 |
|---|---|
cg_iric_read_integer_f |
整数の条件を読み込む |
cg_iric_read_real_f |
倍精度実数の条件を読み込む |
cg_iric_read_realsingle_f |
単精度実数の条件を読み込む |
cg_iric_read_string_f |
文字列の条件を読み込む |
cg_iric_read_functionalsize_f |
関数型の条件のサイズを調べる |
cg_iric_read_functional_f |
倍精度実数の関数型の条件を読み込む |
cg_iric_read_functional_realsingle_f |
単精度実数の関数型の条件を読み込む |
cg_iric_read_functionalwithname_f |
値を複数持つ倍精度実数の関数型の条件を読み込む |
関数型以外の条件については、一つの関数で一つの条件を読み込むことができます。 整数の計算条件を読み込む処理の例を リスト 93 に示します。
1program Sample1
2 implicit none
3 include 'cgnslib_f.h'
4
5 integer:: fin, ier, i_flow
6
7 ! CGNS ファイルのオープン
8 call cg_open_f('test.cgn', CG_MODE_MODIFY, fin, ier)
9 if (ier /=0) STOP "*** Open error of CGNS file ***"
10
11 ! 内部変数の初期化
12 call cg_iric_init_f(fin, ier)
13 if (ier /=0) STOP "*** Initialize error of CGNS file ***"
14
15 call cg_iric_read_integer_f('i_flow', i_flow, ier)
16 print *, i_flow;
17
18 ! CGNS ファイルのクローズ
19 call cg_close_f(fin, ier)
20 stop
21end program Sample1
一方、関数型の計算条件では、cg_iric_read_functionalsize_f, cg_iric_read_functional_f の 二つの関数を利用する必要があります。関数型の計算条件を読み込む処理の例を リスト 94 に示します。
1program Sample2
2 implicit none
3 include 'cgnslib_f.h'
4
5 integer:: fin, ier, discharge_size, i
6 double precision, dimension(:), allocatable:: discharge_time, discharge_value ! discharge の時刻と値を保持する配列
7
8 ! CGNS ファイルのオープン
9 call cg_open_f('test.cgn', CG_MODE_MODIFY, fin, ier)
10 if (ier /=0) STOP "*** Open error of CGNS file ***"
11
12 ! 内部変数の初期化
13 call cg_iric_init_f(fin, ier)
14 if (ier /=0) STOP "*** Initialize error of CGNS file ***"
15
16 ! まず、関数型の入力条件のサイズを調べる
17 call cg_iric_read_functionalsize_f('discharge', discharge_size, ier)
18 ! メモリを確保
19 allocate(discharge_time(discharge_size), discharge_value(discharge_size))
20 ! 確保したメモリに値を読み込む
21 call cg_iric_read_functional_f('discharge', discharge_time, discharge_value, ier)
22
23 ! (出力)
24 if (ier ==0) then
25 print *, 'discharge: discharge_size=', discharge_size
26 do i = 1, min(discharge_size, 5)
27 print *, ' i,time,value:', i, discharge_time(i), discharge_value(i)
28 end do
29 end if
30
31 ! allocate で確保したメモリを開放
32 deallocate(discharge_time, discharge_value)
33
34 ! CGNS ファイルのクローズ
35 call cg_close_f(fin, ier)
36 stop
37end program Sample2
計算条件 (もしくは 格子生成条件) の種類別の読み込み処理の記述例については、 計算条件・境界条件・格子生成条件の項目の定義と読み込み処理の例 を参照してください。