計算条件 (もしくは格子生成条件) の読み込み¶
CGNSファイルから、計算条件 (もしくは格子生成条件) を読み込みます。
関数 |
備考 |
---|---|
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 に示します。
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 に示します。
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
計算条件 (もしくは 格子生成条件) の種類別の読み込み処理の記述例については、 計算条件・境界条件・格子生成条件の項目の定義と読み込み処理の例 を参照してください。