Reading calculation conditions

Reads calculation conditions from the CGNS file.

Table 62 Subroutines to use

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 93.

List 93 Example of source code to read calculation conditions
 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 94.

List 94 Example of source code to read functional-type calculation conditions
 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).