Functional (with multiple values) ===================================== Definition ------------- .. code-block:: xml :caption: Example of a functional (with multiple values) type condition definition :name: widget_example_func_multi_def :linenos: Example of widget ------------------------ .. _widget_example_func_multi: .. figure:: images/widget_example_func_multi.png :width: 350pt Widget example of a functional (with multiple values) type condition Example code to read data ------------------------------ Calculation condition, Grid generating condition ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ FORTRAN ''''''''''' .. code-block:: fortran :caption: Code example to load a functional (with multiple values) type condition (for calculation conditions and grid generating conditions) FORTRAN :name: widget_example_func_multi_load_calccond_fortran :linenos: integer:: ier, discharge_size double precision, dimension(:), allocatable:: time_value double precision, dimension(:), allocatable:: discharge_value, elevation_value ! Read size call cg_iRIC_Read_FunctionalSize(fid, "discharge", discharge_size, ier) ! Allocate memory allocate(time_value(discharge_size)) allocate(discharge_value(discharge_size), elevation_value(discharge_size)) ! Load values into allocated memory call cg_iRIC_Read_FunctionalWithName(fid, "discharge", "time", time_value, ier) call cg_iRIC_Read_FunctionalWithName(fid, "discharge", "discharge", discharge_value, ier) call cg_iRIC_Read_FunctionalWithName(fid, "discharge", "elevation", elevation_value, ier) C/C++ '''''''''' .. code-block:: c :caption: Code example to load a functional (with multiple values) type condition (for calculation conditions and grid generating conditions) C++ :name: widget_example_func_multi_load_calccond_c :linenos: int ier, discharge_size; std::vector time_value, discharge_value, elevation_value; // Read size ier = cg_iRIC_Read_FunctionalSize(fid, "discharge", &discharge_size); // Allocate memory time_value.assign(discharge_size, 0); discharge_value.assign(discharge_size, 0); elevation_value.assign(discharge_size, 0); // Load values into allocated memory ier = cg_iRIC_Read_FunctionalWithName(fid, "discharge", "time", time_value); ier = cg_iRIC_Read_FunctionalWithName(fid, "discharge", "discharge", discharge_value); ier = cg_iRIC_Read_FunctionalWithName(fid, "discharge", "elevation", elevation_value); Python '''''''''' .. code-block:: python :caption: Code example to load a functional (with multiple values) type condition (for calculation conditions and grid generating conditions) Python :name: widget_example_func_multi_load_calccond_python :linenos: time_value = cg_iRIC_Read_FunctionalWithName(fid, "discharge", "time") discharge_value = cg_iRIC_Read_FunctionalWithName(fid, "discharge", "discharge") elevation_value = cg_iRIC_Read_FunctionalWithName(fid, "discharge", "elevation") Boundary condition ~~~~~~~~~~~~~~~~~~~~~~~ FORTRAN '''''''''' .. code-block:: fortran :caption: Code example to load a functional (with multiple values) type condition (for boundary conditions) FORTRAN :name: widget_example_func_multi_load_bcond_fortran :linenos: integer:: ier, discharge_size double precision, dimension(:), allocatable:: time_value double precision, dimension(:), allocatable:: discharge_value, elevation_value ! Read size call cg_iRIC_Read_BC_FunctionalSize(fid, "discharge", discharge_size, ier) ! Allocate memory allocate(time_value(discharge_size)) allocate(discharge_value(discharge_size), elevation_value(discharge_size)) ! Load values into allocated memory call cg_iRIC_Read_BC_FunctionalWithName(fid, "discharge", "time", time_value, ier) call cg_iRIC_Read_BC_FunctionalWithName(fid, "discharge", "discharge", discharge_value, ier) call cg_iRIC_Read_BC_FunctionalWithName(fid, "discharge", "elevation", elevation_value, ier) C/C++ '''''''''' .. code-block:: c :caption: Code example to load a functional (with multiple values) type condition (for boundary conditions) C/C++ :name: widget_example_func_multi_load_bcond_c :linenos: int ier, discharge_size; std::vector time_value, discharge_value, elevation_value; // Read size ier = cg_iRIC_Read_BC_FunctionalSize(fid, "discharge", &discharge_size) // Allocate memory time_value.assign(discharge_size, 0); discharge_value.assign(discharge_size, 0); elevation_value.assign(discharge_size, 0); // Load values into allocated memory ier = cg_iRIC_Read_BC_FunctionalWithName(fid, "discharge", "time", time_value.data()); ier = cg_iRIC_Read_BC_FunctionalWithName(fid, "discharge", "discharge", discharge_value.data()); ier = cg_iRIC_Read_BC_FunctionalWithName(fid, "discharge", "elevation", elevation_value.data()); Python '''''''''' .. code-block:: python :caption: Code example to load a functional (with multiple values) type condition (for boundary conditions) Python :name: widget_example_func_multi_load_bcond_python :linenos: time_value = cg_iRIC_Read_BC_FunctionalWithName(fid, "discharge", "time") discharge_value = cg_iRIC_Read_BC_FunctionalWithName(fid, "discharge", "discharge") elevation_value = cg_iRIC_Read_BC_FunctionalWithName(fid, "discharge", "elevation")