Functional (with multiple values)¶
Definition¶
1<Item name="discharge_and_elev" caption="Discharge and Water Elevation time series">
2 <Definition valueType="functional" >
3 <Parameter name="time" valueType="real" caption="Time" />
4 <Value name="discharge" valueType="real" caption="Discharge" />
5 <Value name="elevation" valueType="real" caption="Water Elevation" />
6 </Definition>
7</Item>
Example of widget¶

Figure 57 Widget example of a functional (with multiple values) type condition¶
Example code to read data¶
Calculation condition, Grid generating condition¶
FORTRAN¶
List 83 Code example to load a functional (with multiple values) type condition (for calculation conditions and grid generating conditions) FORTRAN¶
1integer:: ier, discharge_size
2double precision, dimension(:), allocatable:: time_value
3double precision, dimension(:), allocatable:: discharge_value, elevation_value
4
5! Read size
6call cg_iRIC_Read_FunctionalSize(fid, "discharge", discharge_size, ier)
7! Allocate memory
8allocate(time_value(discharge_size))
9allocate(discharge_value(discharge_size), elevation_value(discharge_size))
10! Load values into allocated memory
11call cg_iRIC_Read_FunctionalWithName(fid, "discharge", "time", time_value, ier)
12call cg_iRIC_Read_FunctionalWithName(fid, "discharge", "discharge", discharge_value, ier)
13call cg_iRIC_Read_FunctionalWithName(fid, "discharge", "elevation", elevation_value, ier)
C/C++¶
List 84 Code example to load a functional (with multiple values) type condition (for calculation conditions and grid generating conditions) C++¶
1int ier, discharge_size;
2std::vector<double> time_value, discharge_value, elevation_value;
3
4// Read size
5ier = cg_iRIC_Read_FunctionalSize(fid, "discharge", &discharge_size);
6// Allocate memory
7time_value.assign(discharge_size, 0);
8discharge_value.assign(discharge_size, 0);
9elevation_value.assign(discharge_size, 0);
10// Load values into allocated memory
11ier = cg_iRIC_Read_FunctionalWithName(fid, "discharge", "time", time_value);
12ier = cg_iRIC_Read_FunctionalWithName(fid, "discharge", "discharge", discharge_value);
13ier = cg_iRIC_Read_FunctionalWithName(fid, "discharge", "elevation", elevation_value);
Python¶
List 85 Code example to load a functional (with multiple values) type condition (for calculation conditions and grid generating conditions) Python¶
1time_value = cg_iRIC_Read_FunctionalWithName(fid, "discharge", "time")
2discharge_value = cg_iRIC_Read_FunctionalWithName(fid, "discharge", "discharge")
3elevation_value = cg_iRIC_Read_FunctionalWithName(fid, "discharge", "elevation")
Boundary condition¶
FORTRAN¶
List 86 Code example to load a functional (with multiple values) type condition (for boundary conditions) FORTRAN¶
1integer:: ier, discharge_size
2double precision, dimension(:), allocatable:: time_value
3double precision, dimension(:), allocatable:: discharge_value, elevation_value
4
5! Read size
6call cg_iRIC_Read_BC_FunctionalSize(fid, "discharge", discharge_size, ier)
7! Allocate memory
8allocate(time_value(discharge_size))
9allocate(discharge_value(discharge_size), elevation_value(discharge_size))
10! Load values into allocated memory
11call cg_iRIC_Read_BC_FunctionalWithName(fid, "discharge", "time", time_value, ier)
12call cg_iRIC_Read_BC_FunctionalWithName(fid, "discharge", "discharge", discharge_value, ier)
13call cg_iRIC_Read_BC_FunctionalWithName(fid, "discharge", "elevation", elevation_value, ier)
C/C++¶
List 87 Code example to load a functional (with multiple values) type condition (for boundary conditions) C/C++¶
1int ier, discharge_size;
2std::vector<double> time_value, discharge_value, elevation_value;
3
4// Read size
5ier = cg_iRIC_Read_BC_FunctionalSize(fid, "discharge", &discharge_size)
6// Allocate memory
7time_value.assign(discharge_size, 0);
8discharge_value.assign(discharge_size, 0);
9elevation_value.assign(discharge_size, 0);
10// Load values into allocated memory
11ier = cg_iRIC_Read_BC_FunctionalWithName(fid, "discharge", "time", time_value.data());
12ier = cg_iRIC_Read_BC_FunctionalWithName(fid, "discharge", "discharge", discharge_value.data());
13ier = cg_iRIC_Read_BC_FunctionalWithName(fid, "discharge", "elevation", elevation_value.data());
Python¶
List 88 Code example to load a functional (with multiple values) type condition (for boundary conditions) Python¶
1time_value = cg_iRIC_Read_BC_FunctionalWithName(fid, "discharge", "time")
2discharge_value = cg_iRIC_Read_BC_FunctionalWithName(fid, "discharge", "discharge")
3elevation_value = cg_iRIC_Read_BC_FunctionalWithName(fid, "discharge", "elevation")