Reading calculation conditions¶
Reads calculation conditions from the CGNS file.
Subroutine |
Remarks |
---|---|
cg_iric_read_integer |
Reads an integer calculation-condition value |
cg_iric_read_real |
Reads a double-precision real calculation-condition value |
cg_iric_read_realsingle |
Reads a single-precision real calculation-condition value |
cg_iric_read_string |
Reads a string calculation-condition value |
cg_iric_read_functionalsize |
Checks the size of a functional-type calculation condition |
cg_iric_read_functional |
Reads functional calculation condition data in double-precision real type |
cg_iric_read_functional_realsingle |
Reads functional calculation condition data in single-precision real type |
cg_iric_read_functionalwithname |
Reads functional calculation condition data (with multiple values) |
For reading calculation condition data other than in functional type, a subroutine reads a single calculation condition. An example of reading an integer calculation condition value is shown in List 160.
1program Sample1
2 use iric
3 implicit none
4
5 integer:: fin, ier, i_flow
6
7 ! Open CGNS file
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 ! Close CGNS file
15 call cg_iric_close(fin, ier)
16 stop
17end program Sample1
In contrast, for getting functional-type calculation conditions, it is necessary to use two subroutines: cg_iric_read_functionalsize and cg_iric_read_functional. An example of getting functional-type calculation condition data is shown in List 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 ! Array for storing discharge time and discharge value
7
8 ! Open CGNS file
9 call cg_iric_open('test.cgn', IRIC_MODE_MODIFY, fin, ier)
10 if (ier /=0) STOP "*** Open error of CGNS file ***"
11
12 ! First, check the size of the functional-type input conditions
13 call cg_iric_read_functionalsize(fin, 'discharge', discharge_size, ier)
14 ! Allocate memory
15 allocate(discharge_time(discharge_size), discharge_value(discharge_size))
16 ! Read values into the allocated memory
17 call cg_iric_read_functional(fin, 'discharge', discharge_time, discharge_value, ier)
18
19 ! (Output)
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 ! Deallocate memory that has been allocated
28 deallocate(discharge_time, discharge_value)
29
30 ! Close CGNS file
31 call cg_iric_close(fin, ier)
32 stop
33end program Sample2
Refer to Examples of calculation conditions, boundary conditions, and grid generating condition for examples of codes to load calculation conditions (or grid generating conditions).