diff --git a/.github/workflows/check-clang-format.yml b/.github/workflows/check-clang-format.yml index 8da2ebd3f9..0e2e6dab52 100644 --- a/.github/workflows/check-clang-format.yml +++ b/.github/workflows/check-clang-format.yml @@ -1,7 +1,6 @@ name: Checks - clang-format on: - push: pull_request: workflow_dispatch: @@ -36,12 +35,12 @@ jobs: - name: Run git diff if we failed if: failure() - run: /usr/bin/git diff > diff + run: /usr/bin/git diff > clang_format.patch - - name: Archive diff if we failed + - name: Archive diff as a patch if we failed uses: actions/upload-artifact@v3 if: failure() with: - name: diff + name: clang_format.patch path: | - ${{ github.workspace }}/diff + ${{ github.workspace }}/clang_format.patch diff --git a/.github/workflows/check-swig.yml b/.github/workflows/check-swig.yml new file mode 100644 index 0000000000..2a4193a239 --- /dev/null +++ b/.github/workflows/check-swig.yml @@ -0,0 +1,49 @@ +name: Checks - swig + +on: + pull_request: + workflow_dispatch: + +jobs: + swig: + runs-on: ubuntu-latest + + steps: + - name: Install swig + run: | + git clone https://github.com/sundials-codes/swig + cd swig + ./autogen.sh + ./configure --prefix=/usr/ + make + sudo make install + swig -version + + - name: Check out repository code + uses: actions/checkout@v4 + with: + submodules: true + + - name: Add safe directory + run: git config --global --add safe.directory "$GITHUB_WORKSPACE" + + - name: Run swig on code + run: | + cd swig + make all32 + make all64 + + - name: Run git diff to see if anything changed + run: /usr/bin/git diff --name-only --exit-code + + - name: Run git diff if we failed + if: failure() + run: /usr/bin/git diff > swig.patch + + - name: Archive diff as a patch if we failed + uses: actions/upload-artifact@v3 + if: failure() + with: + name: swig.patch + path: | + ${{ github.workspace }}/swig.patch diff --git a/CHANGELOG.md b/CHANGELOG.md index 3b23939604..d85d47def6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -59,6 +59,8 @@ integrator with an MRI method. Added "Resize" capability to ARKODE's SPRKStep time-stepping module. +Enabled the Fortran interfaces to build with 32-bit `sunindextype`. + ### Bug Fixes Updated the CMake variable `HIP_PLATFORM` default to `amd` as the previous diff --git a/cmake/SundialsBuildOptionsPre.cmake b/cmake/SundialsBuildOptionsPre.cmake index d4defde798..a9a3df9ea0 100644 --- a/cmake/SundialsBuildOptionsPre.cmake +++ b/cmake/SundialsBuildOptionsPre.cmake @@ -185,11 +185,6 @@ if(BUILD_FORTRAN_MODULE_INTERFACE) print_error("F2003 interface is not compatible with ${SUNDIALS_PRECISION} precision") endif() - # F2003 interface only supports 64-bit indices - if(NOT (SUNDIALS_INDEX_SIZE MATCHES "64")) - print_error("F2003 interface is not compatible with ${SUNDIALS_INDEX_SIZE}-bit indicies") - endif() - # Allow a user to set where the Fortran modules will be installed set(DOCSTR "Directory where Fortran module files are installed") sundials_option(Fortran_INSTALL_MODDIR STRING "${DOCSTR}" "fortran") diff --git a/cmake/SundialsExampleOptions.cmake b/cmake/SundialsExampleOptions.cmake index a34ef8ae95..29f099eb1e 100644 --- a/cmake/SundialsExampleOptions.cmake +++ b/cmake/SundialsExampleOptions.cmake @@ -38,8 +38,7 @@ endif() # Fortran 2003 interface is enabled. set(DOCSTR "Build SUNDIALS Fortran 2003 examples") if(BUILD_FORTRAN_MODULE_INTERFACE) - - sundials_option(EXAMPLES_ENABLE_F2003 BOOL "${DOCSTR}" ON) + set(EXAMPLES_ENABLE_F2003 ON CACHE BOOL "${DOCSTR}") # Fortran 2003 examples only support double precision if(EXAMPLES_ENABLE_F2003 AND (NOT (SUNDIALS_PRECISION MATCHES "DOUBLE"))) @@ -47,14 +46,6 @@ if(BUILD_FORTRAN_MODULE_INTERFACE) "Setting EXAMPLES_ENABLE_F2003 to OFF.") force_variable(EXAMPLES_ENABLE_F2003 BOOL "${DOCSTR}" OFF) endif() - - # Fortran 2003 examples only support 64-bit indices - if(EXAMPLES_ENABLE_F2003 AND (NOT (SUNDIALS_INDEX_SIZE MATCHES "64"))) - print_warning("F2003 examples are not compatible with ${SUNDIALS_INDEX_SIZE}-bit indices. " - "Setting EXAMPLES_ENABLE_F2003 to OFF.") - force_variable(EXAMPLES_ENABLE_F2003 BOOL "${DOCSTR}" OFF) - endif() - else() # set back to OFF (in case it was ON) diff --git a/cmake/macros/SundialsAddLibrary.cmake b/cmake/macros/SundialsAddLibrary.cmake index 84505e4f12..d8be54aac8 100644 --- a/cmake/macros/SundialsAddLibrary.cmake +++ b/cmake/macros/SundialsAddLibrary.cmake @@ -458,6 +458,7 @@ macro(sundials_add_f2003_library target) ${sundials_add_f2003_library_INCLUDE_DIRECTORIES} ${_includes} COMPILE_DEFINITIONS ${sundials_add_f2003_library_COMPILE_DEFINITIONS} + PUBLIC "SUNDIALS_INT${SUNDIALS_INDEX_SIZE}_T" COMPILE_OPTIONS ${sundials_add_f2003_library_COMPILE_OPTIONS} PROPERTIES ${sundials_add_f2003_library_PROPERTIES} ${_properties} OUTPUT_NAME ${sundials_add_f2003_library_OUTPUT_NAME} diff --git a/cmake/tpl/FindKLU.cmake b/cmake/tpl/FindKLU.cmake index a3d817d037..47ac8dd9c8 100644 --- a/cmake/tpl/FindKLU.cmake +++ b/cmake/tpl/FindKLU.cmake @@ -33,7 +33,11 @@ if (NOT (KLU_INCLUDE_DIR OR KLU_LIBRARY_DIR OR KLU_LIBRARY)) # Prefer the import target from upstream SuiteSparse if it is available # and the user didn't point to a specific (different) version. + find_package(AMD CONFIG) + find_package(BTF CONFIG) + find_package(COLAMD CONFIG) find_package(KLU CONFIG) + find_package(SuiteSparse_config CONFIG) if(TARGET SuiteSparse::KLU) if(NOT TARGET SUNDIALS::KLU) diff --git a/doc/shared/RecentChanges.rst b/doc/shared/RecentChanges.rst index 62e5088a1a..ef32fa2bbb 100644 --- a/doc/shared/RecentChanges.rst +++ b/doc/shared/RecentChanges.rst @@ -57,6 +57,8 @@ an explicit fast time scale integrator with an MRI method. Added "Resize" capability to ARKODE's SPRKStep time-stepping module. +Enabled the Fortran interfaces to build with 32-bit ``sunindextype``. + **Bug Fixes** Updated the CMake variable ``HIP_PLATFORM`` default to ``amd`` as the previous diff --git a/doc/shared/sundials/Fortran.rst b/doc/shared/sundials/Fortran.rst index 9cc9d82c2a..cb483b2733 100644 --- a/doc/shared/sundials/Fortran.rst +++ b/doc/shared/sundials/Fortran.rst @@ -162,8 +162,13 @@ equivalencies with the parameter direction in mind. .. warning:: Currently, the Fortran 2003 interfaces are only compatible with SUNDIALS - builds where the ``sunrealtype`` is double-precision the ``sunindextype`` size - is 64-bits. + builds where the ``sunrealtype`` is double-precision. + +.. versionchanged:: x.y.z + + The Fortran interfaces can now be built with 32-bit ``sunindextype`` in + addition to 64-bit ``sunindextype``. + .. _SUNDIALS.Fortran.DataTypes.Table: .. table:: C/Fortran-2003 Equivalent Types diff --git a/doc/superbuild/source/developers/getting_started/Checklist.rst b/doc/superbuild/source/developers/getting_started/Checklist.rst index c39432f85c..3b9366fd95 100644 --- a/doc/superbuild/source/developers/getting_started/Checklist.rst +++ b/doc/superbuild/source/developers/getting_started/Checklist.rst @@ -27,10 +27,11 @@ system, etc. developers should adhere to the following checklist. third party libraries to ensure that these files are only included when SUNDIALS is configured to use that library. -#. Configure SUNDIALS using the C flags ``-Wall -ansi -pedantic``, to aid in - catching compatibility issues on other platforms (Windows). When building, - modify your file to remove any error/warning messages output during - compilation of your code. +#. It can be helpful to configure SUNDIALS using the C flags ``-Wall -Werror``. + When building, modify your file to remove any error/warning messages output + during compilation of your code. This can be done automatically with the + advanced CMake options ``ENABLE_ALL_WARNINGS`` and + ``ENABLE_WARNINGS_AS_ERRORS``. #. Configure your build with a minimal set of configuration options enabled (serial). Run ``make``, ``make test``, ``make install``, and @@ -52,8 +53,7 @@ system, etc. developers should adhere to the following checklist. #. When adding new solvers or new solver options: - * Update the documentation to include descriptions of your work. Ensure that - the documentation also compiles (``make ug`` in the relevant directory). + * Update the documentation to include descriptions of your work. * Add a new example problem (or multiple problems) to the ``examples/`` directory to demonstrate how to use your solver/option, and to include in SUNDIALS' automated nightly tests. @@ -68,20 +68,20 @@ system, etc. developers should adhere to the following checklist. directory and ensure that ``make`` succeeds, since the CMake-generated Makefile system differs from how the examples are built within SUNDIALS. * Ensure that the reference output is included e.g., if a file ``foo.c`` is - added, also add ``foo.out``. + added, also add ``foo.out``. * Update the example problem documentation for to include a description of the new problem. #. When adding any new files, update the corresponding package script in the ``scripts/`` directory to include your file(s) within the distribution. -#. Use the debugging macros defined in ``src/sundials/sundials_debug.h`` where - relevant and internal to SUNDIALS. Use the ``SUNDIALS_DEBUG`` macro to - ``#ifdef`` out calls the sections of code which are for debugging purposes - only. Additionally, the ``SUNDIALS_DEBUG_PRINTVEC`` macro should be used to - ``#ifdef`` out calls to the generic vector print functions ``N_VPrint`` and - ``N_VPrintFile`` used for debugging purposes. - #. If answer files changed, and it is expected/desired, then update the `.out` files that are embedded in the `examples/` directory AND the `"answers" repository `_. + +#. If you changed any header files, re-run SWIG to generate updated fortran interfaces. + This is done by navigating to the `swig/` directory and running `make all32 all64`. + If you do not have `swig` installed on your system, you can obtain a git patch file + from the SWIG GitHub action that we run on all pull requests. The patch can be found + under the job artifacts (if there were in fact changes that required updates + to the Fortran). diff --git a/doc/superbuild/source/developers/releases/Checklist.rst b/doc/superbuild/source/developers/releases/Checklist.rst index c9b5e1675c..37709c60e6 100644 --- a/doc/superbuild/source/developers/releases/Checklist.rst +++ b/doc/superbuild/source/developers/releases/Checklist.rst @@ -73,6 +73,7 @@ web pages. that they are deprecated). #. Regenerate the Fortran 2003 interfaces. It is possible nothing will be updated. + This is done by running ``make all32 all64`` in the ``swig/`` directory. #. Update the "Changes in ..." sections in all user guides. The changes should be sorted so that major new features are above bug fixes. diff --git a/doc/superbuild/source/developers/style_guide/SourceCode.rst b/doc/superbuild/source/developers/style_guide/SourceCode.rst index 8cef6cd32e..c9105fa99c 100644 --- a/doc/superbuild/source/developers/style_guide/SourceCode.rst +++ b/doc/superbuild/source/developers/style_guide/SourceCode.rst @@ -176,6 +176,9 @@ C++ private class members should use snake case with a trailing underscore Coding Conventions and Rules ============================ +These rules should be followed for all new code. Unfortunately, old code might +not adhere to all of these rules. + #. Do not use language features that are not compatible with C99, C++14, and MSVC v1900+ (Visual Studio 2015). Examples of such features include variable-length arrays. Exceptions are allowed when interfacing with a @@ -338,6 +341,17 @@ Coding Conventions and Rules x;`` to ``return(x);``. Note, however, lots of older SUNDIALS source code uses ``return(x);``. +#. Always use ``sunindextype`` for variables that are related to problem dimensions. + E.g., use it for the length of a vector, or dimensions of a matrix. + The only exception is when interfacing with a third party library requires a different + variable type. + +#. Conversely, never use ``sunindextype`` for variables that are not specifically related to + the dimensions of a vector, matrix, etc.. E.g., if you have a variable that + represents the number of integer "words" allocated in a workspace do not use + ``sunindextype`` for it. Instead use the appropriate integer type (e.g., ``uint64_t``) directly. + Do not use ``sunindextype`` for counters either. + #. ``SUNLogger`` statements must be in the format: .. code-block:: c @@ -371,6 +385,16 @@ for the tools respectively. To apply clang-format you can run: ./scripts/format.sh + +.. warning:: + + The output of ``clang-format`` is sensitive to the ``clang-format`` version. We recommend + that you use version ``17.0.4``, which can be installed from source or with Spack. Alternatively, + when you open a pull request on GitHub, an action will run ``clang-format`` on the code. If any + formatting is required, the action will fail and produce a git patch artifact that you can download + (from the job artifacts section) and apply with `git apply`. + + If clang-format breaks lines in a way that is unreadable, use ``//`` to break the line. For example, sometimes (mostly in C++ code) you may have code like this: @@ -426,3 +450,4 @@ There are other scenarios (e.g., a function call with a lot of parameters) where .. }; .. See the clang-tidy documentation for more details. + diff --git a/examples/arkode/F2003_custom/CMakeLists.txt b/examples/arkode/F2003_custom/CMakeLists.txt index 6393b31306..7aac6173a6 100644 --- a/examples/arkode/F2003_custom/CMakeLists.txt +++ b/examples/arkode/F2003_custom/CMakeLists.txt @@ -17,18 +17,22 @@ # Example lists are tuples "name\;type" where the type is # 'develop' for examples excluded from 'make test' in releases -# Examples using SUNDIALS linear solvers -set(FARKODE_examples - "ark_brusselator1D_f2003\;develop" - "ark_analytic_complex_f2003\;develop" - ) +if(SUNDIALS_INDEX_SIZE MATCHES "64") -set(FARKODE_tests - "test_fnvector_complex_mod\;develop" - "test_fnvector_fortran_mod\;develop" - "test_fsunmatrix_fortran_mod\;develop" - "test_fsunlinsol_fortran_mod\;develop" - ) + # Examples using SUNDIALS linear solvers + set(FARKODE_examples + "ark_brusselator1D_f2003\;develop" + "ark_analytic_complex_f2003\;develop" + ) + + set(FARKODE_tests + "test_fnvector_complex_mod\;develop" + "test_fnvector_fortran_mod\;develop" + "test_fsunmatrix_fortran_mod\;develop" + "test_fsunlinsol_fortran_mod\;develop" + ) + +endif() # note the order matters when auto-generating the installed Makefile set(FARKODEsources diff --git a/examples/arkode/F2003_parallel/CMakeLists.txt b/examples/arkode/F2003_parallel/CMakeLists.txt index d1084b5af3..63c87909cf 100644 --- a/examples/arkode/F2003_parallel/CMakeLists.txt +++ b/examples/arkode/F2003_parallel/CMakeLists.txt @@ -18,12 +18,17 @@ # Example lists are tuples "name\;nodes\;tasks\;type" where the # type is develop for examples excluded from 'make test' in releases set(FARKODE_examples - "ark_brusselator1D_task_local_nls_f2003\;--monitor\;1\;4\;develop\;2" - "ark_brusselator1D_task_local_nls_f2003\;--monitor --global-nls\;1\;4\;develop\;2" - "ark_brusselator1D_task_local_nls_f2003\;--monitor --explicit --tf 3\;1\;4\;develop\;2" - "ark_diag_kry_bbd_f2003\;\;1\;4\;develop\;2" - "ark_diag_non_f2003\;\;1\;4\;develop\;2" - "ark_heat2D_f2003\;\;1\;4\;develop\;2") + "ark_brusselator1D_task_local_nls_f2003\;--monitor\;1\;4\;develop\;2" + "ark_brusselator1D_task_local_nls_f2003\;--monitor --global-nls\;1\;4\;develop\;2" + "ark_brusselator1D_task_local_nls_f2003\;--monitor --explicit --tf 3\;1\;4\;develop\;2" +) + +if(SUNDIALS_INDEX_SIZE MATCHES "64") + list(APPEND FARKODE_examples + "ark_diag_kry_bbd_f2003\;\;1\;4\;develop\;2" + "ark_diag_non_f2003\;\;1\;4\;develop\;2" + "ark_heat2D_f2003\;\;1\;4\;develop\;2") +endif() # Set-up linker flags and link libraries set(SUNDIALS_LIBS sundials_arkode diff --git a/examples/arkode/F2003_parallel/ark_brusselator1D_task_local_nls_f2003.f90 b/examples/arkode/F2003_parallel/ark_brusselator1D_task_local_nls_f2003.f90 index b0dbbadc20..297b036559 100644 --- a/examples/arkode/F2003_parallel/ark_brusselator1D_task_local_nls_f2003.f90 +++ b/examples/arkode/F2003_parallel/ark_brusselator1D_task_local_nls_f2003.f90 @@ -69,11 +69,21 @@ module ode_mod implicit none save + ! Since SUNDIALS can be compiled with 32-bit or 64-bit sunindextype + ! we set the integer kind used for indices in this example based + ! on the the index size SUNDIALS was compiled with so that it works + ! in both configurations. This is not a requirement for user codes. +#if defined(SUNDIALS_INT32_T) + integer, parameter :: myindextype = selected_int_kind(8) +#elif defined(SUNDIALS_INT64_T) + integer, parameter :: myindextype = selected_int_kind(16) +#endif + type(c_ptr) :: sunctx ! SUNDIALS simulation context type(c_ptr) :: logger ! SUNDIALS logger ! Number of chemical species - integer, parameter :: Nvar = 3 + integer(kind=myindextype), parameter :: Nvar = 3 ! MPI variables integer, target :: comm ! communicator @@ -87,9 +97,9 @@ module ode_mod real(c_double) :: Esend(Nvar), Erecv(Nvar) ! Problem settings - integer :: Nx ! number of intervals (global) - integer :: Npts ! number of spatial nodes (local) - integer :: Neq ! number of equations (local) + integer(kind=myindextype) :: Nx ! number of intervals (global) + integer(kind=myindextype) :: Npts ! number of spatial nodes (local) + integer(kind=myindextype) :: Neq ! number of equations (local) real(c_double) :: xmax ! maximum x value real(c_double) :: dx ! mesh spacing @@ -150,7 +160,7 @@ integer(c_int) function Advection(t, sunvec_y, sunvec_f, user_data) & real(c_double), pointer :: fdata(:) ! local variables - integer :: i, j, idx1, idx2 ! loop counters and array indices + integer(myindextype) :: i, j, idx1, idx2 ! loop counters and array indices real(c_double) :: tmp ! temporary value !======= Internals ============ @@ -237,7 +247,7 @@ integer(c_int) function Reaction(t, sunvec_y, sunvec_f, user_data) & ! local variables real(c_double) :: u, v, w ! chemcial species - integer :: j, idx ! loop counter and array index + integer(kind=myindextype) :: j, idx ! loop counter and array index !======= Internals ============ @@ -354,8 +364,7 @@ integer(c_int) function PSetup(t, sunvec_y, sunvec_f, jok, jcurPtr, gamma, & use, intrinsic :: iso_c_binding use fsunmatrix_dense_mod use fsunlinsol_dense_mod - - use ode_mod, only : Nvar, Npts, Neq, k2, k3, k4, k6 + use ode_mod, only : Nvar, Npts, Neq, k2, k3, k4, k6, myindextype !======= Declarations ========= implicit none @@ -374,7 +383,7 @@ integer(c_int) function PSetup(t, sunvec_y, sunvec_f, jok, jcurPtr, gamma, & real(c_double), pointer :: pdata(:) ! matrix data real(c_double) :: u, v, w ! chemical species - integer :: i, idx, offset ! loop counter, array index, col offset + integer(kind=myindextype) :: i, idx, offset ! loop counter, array index, col offset !======= Internals ============ @@ -545,8 +554,7 @@ integer(c_int) function TaskLocalNlsResidual(sunvec_zcor, sunvec_F, arkode_mem) use, intrinsic :: iso_c_binding use farkode_mod use farkode_arkstep_mod - - use ode_mod, only : Neq, Reaction + use ode_mod, only : Neq, Reaction, myindextype !======= Declarations ========= implicit none @@ -578,7 +586,7 @@ integer(c_int) function TaskLocalNlsResidual(sunvec_zcor, sunvec_F, arkode_mem) real(c_double), pointer :: Fi_data(:) real(c_double), pointer :: sdata_data(:) - integer :: i ! loop counter + integer(kind=myindextype) :: i ! loop counter !======= Internals ============ @@ -640,8 +648,7 @@ integer(c_int) function TaskLocalLSolve(sunvec_delta, arkode_mem) & use farkode_mod use farkode_arkstep_mod use fsunmatrix_dense_mod - - use ode_mod, only : Nvar, Npts, k2, k3, k4, k6 + use ode_mod, only : Nvar, Npts, k2, k3, k4, k6, myindextype !======= Declarations ========= implicit none @@ -665,7 +672,7 @@ integer(c_int) function TaskLocalLSolve(sunvec_delta, arkode_mem) & real(c_double), pointer :: bnode_data(:) real(c_double) :: u, v, w ! chemical species - integer :: i, idx ! loop counter and array index + integer(kind=myindextype) :: i, idx ! loop counter and array index !======= Internals ============ @@ -814,7 +821,6 @@ integer(c_int) function TaskLocalNewton_Solve(sunnls, sunvec_y0, sunvec_ycor, & !======= Inclusions =========== use, intrinsic :: iso_c_binding use fnvector_mpiplusx_mod - use ode_mod, only : comm !======= Declarations ========= @@ -968,7 +974,7 @@ function TaskLocalNewton(arkode_mem, sunvec_y) result(sunnls) use fsunlinsol_dense_mod use fsunmatrix_dense_mod - use ode_mod, only : sunctx, Nvar, comm + use ode_mod !======= Declarations ========= implicit none @@ -1015,8 +1021,8 @@ function TaskLocalNewton(arkode_mem, sunvec_y) result(sunnls) Fi_ptr = FN_VNewVectorArray(1, sunctx) sdata_ptr = FN_VNewVectorArray(1, sunctx) - sunvec_bnode => FN_VNew_Serial(int(Nvar, c_long), sunctx) - sunmat_Jnode => FSUNDenseMatrix(int(Nvar, c_long), int(Nvar, c_long), sunctx) + sunvec_bnode => FN_VNew_Serial(Nvar, sunctx) + sunmat_Jnode => FSUNDenseMatrix(Nvar, Nvar, sunctx) sunls_Jnode => FSUNLinSol_Dense(sunvec_bnode, sunmat_Jnode, sunctx) ! initialize number of nonlinear solver function evals and fails @@ -1037,7 +1043,8 @@ program main use fnvector_mpimanyvector_mod ! Access MPIManyVector N_Vector use fnvector_serial_mod ! Access serial N_Vector - use ode_mod, only : sunctx, logger, comm, myid, Nx, Neq, dx, fused, explicit, printtime, nout + use ode_mod, only : sunctx, logger, comm, myid, Nx, Neq, dx, fused, & + explicit, printtime, nout, myindextype !======= Declarations ========= implicit none @@ -1045,7 +1052,7 @@ program main ! With MPI-3 use mpi_f08 is preferred include "mpif.h" - integer :: i + integer(kind=myindextype) :: i integer :: ierr ! MPI error status integer(c_int) :: retval ! SUNDIALS error status real(c_double) :: starttime, endtime ! timing variables @@ -1107,7 +1114,7 @@ program main call SetupProblem() ! Create solution vector - sunvec_ys => FN_VNew_Serial(int(Neq, c_long), sunctx) + sunvec_ys => FN_VNew_Serial(Neq, sunctx) sunvec_y => FN_VMake_MPIPlusX(comm, sunvec_ys, sunctx) ! Enable fused vector ops in local and MPI+X vectors @@ -1213,6 +1220,10 @@ subroutine EvolveProblemIMEX(sunvec_y) !======= Internals ============ + sun_NLS => null() + sun_LS => null() + sunmat_A => null() + ! Create the ARK timestepper module arkode_mem = FARKStepCreate(c_funloc(Advection), c_funloc(Reaction), & t0, sunvec_y, sunctx) @@ -1286,7 +1297,7 @@ subroutine EvolveProblemIMEX(sunvec_y) end if ! Create MPI task-local data structures for preconditioning - sunmat_P => FSUNDenseMatrix(int(Neq, c_long), int(Neq, c_long), sunctx) + sunmat_P => FSUNDenseMatrix(Neq, Neq, sunctx) sunls_P => FSUNLinSol_Dense(umask_s, sunmat_P, sunctx) else @@ -1628,7 +1639,7 @@ subroutine WriteOutput(t, sunvec_y) use farkode_mod ! Access ARKode use ode_mod, only : Nvar, nprocs, myid, Erecv, Nx, Npts, monitor, nout, & - umask, vmask, wmask + umask, vmask, wmask, myindextype !======= Declarations ========= implicit none @@ -1639,7 +1650,7 @@ subroutine WriteOutput(t, sunvec_y) real(c_double), pointer :: ydata(:) ! vector data - integer i, idx ! loop counter and array index + integer(kind=myindextype) i, idx ! loop counter and array index real(c_double) :: u, v, w ! RMS norm of chemical species @@ -1707,7 +1718,7 @@ subroutine SetIC(sunvec_y) use, intrinsic :: iso_c_binding use fsundials_core_mod - use ode_mod, only : Nvar, myid, Npts, xmax, dx, A, B, k1, k2, k4, k3 + use ode_mod !======= Declarations ========= implicit none @@ -1721,7 +1732,7 @@ subroutine SetIC(sunvec_y) real(c_double) :: x, us, vs, ws ! position and state real(c_double) :: p, mu, sigma, alpha ! perturbation vars - integer :: j, idx ! loop counter and array index + integer(kind=myindextype) :: j, idx ! loop counter and array index !======= Internals ============ @@ -1985,13 +1996,14 @@ subroutine SetupProblem() include "mpif.h" ! local variables - real(c_double), pointer :: data(:) ! array data - integer(c_int) :: retval ! SUNDIALS error status - integer :: ierr ! MPI error status - integer :: j ! loop counter - integer :: nargs, length, status ! input parsing vars - character(len=32) :: arg ! input arg - character(len=100) :: outname ! output file name + integer :: ierr ! MPI error status + integer(c_int) :: retval ! SUNDIALS error status + integer :: argj + integer :: nargs, length, status ! input parsing vars + character(len=32) :: arg ! input arg + character(len=100) :: outname ! output file name + real(c_double), pointer :: data(:) ! array data + integer(kind=myindextype) :: j !======= Internals ============ @@ -2043,11 +2055,11 @@ subroutine SetupProblem() ! check for input args nargs = command_argument_count() - j = 1 - do while (j <= nargs) + argj= 1 + do while (argj <= nargs) ! get input arg - call get_command_argument(j, arg, length, status) + call get_command_argument(argj, arg, length, status) ! check if reading the input was successful if (status == -1) then @@ -2064,39 +2076,39 @@ subroutine SetupProblem() else if (trim(arg) == "--printtime") then printtime = .true. else if (trim(arg) == "--nout") then - j = j + 1 - call get_command_argument(j, arg) + argj = argj + 1 + call get_command_argument(argj, arg) read(arg,*) nout else if (trim(arg) == "--nx") then - j = j + 1 - call get_command_argument(j, arg) + argj = argj + 1 + call get_command_argument(argj, arg) read(arg,*) Nx else if (trim(arg) == "--xmax") then - j = j + 1 - call get_command_argument(j, arg) + argj = argj + 1 + call get_command_argument(argj, arg) read(arg,*) xmax else if (trim(arg) == "--A") then - j = j + 1 - call get_command_argument(j, arg) + argj = argj + 1 + call get_command_argument(argj, arg) read(arg,*) A else if (trim(arg) == "--B") then - j = j + 1 - call get_command_argument(j, arg) + argj = argj + 1 + call get_command_argument(argj, arg) read(arg,*) B else if (trim(arg) == "--k") then - j = j + 1 - call get_command_argument(j, arg) + argj = argj + 1 + call get_command_argument(argj, arg) read(arg,*) k1 read(arg,*) k2 read(arg,*) k3 read(arg,*) k4 else if (trim(arg) == "--c") then - j = j + 1 - call get_command_argument(j, arg) + argj = argj + 1 + call get_command_argument(argj, arg) read(arg,*) c else if (trim(arg) == "--order") then - j = j + 1 - call get_command_argument(j, arg) + argj = argj + 1 + call get_command_argument(argj, arg) read(arg,*) order else if (trim(arg) == "--explicit") then explicit = .true. @@ -2105,16 +2117,16 @@ subroutine SetupProblem() else if (trim(arg) == "--fused") then fused = .true. else if (trim(arg) == "--tf") then - j = j + 1 - call get_command_argument(j, arg) + argj = argj + 1 + call get_command_argument(argj, arg) read(arg,*) tf else if (trim(arg) == "--rtol") then - j = j + 1 - call get_command_argument(j, arg) + argj = argj + 1 + call get_command_argument(argj, arg) read(arg,*) rtol else if (trim(arg) == "--atol") then - j = j + 1 - call get_command_argument(j, arg) + argj = argj + 1 + call get_command_argument(argj, arg) read(arg,*) atol else if (trim(arg) == "--help") then if (myid == 0) call InputHelp() @@ -2128,11 +2140,11 @@ subroutine SetupProblem() end if ! move to the next input - j = j+1 + argj = argj+1 end do ! Setup the parallel decomposition - if (MOD(Nx,nprocs) > 0) then + if (MOD(Nx,int(nprocs, myindextype)) > 0) then print *, "ERROR: The mesh size (nx = ", Nx,") must be divisible by the number of processors (",nprocs,")" call MPI_Abort(comm, 1, ierr) end if @@ -2142,7 +2154,7 @@ subroutine SetupProblem() dx = xmax / Nx ! Nx is number of intervals ! Create the solution masks - umask_s => FN_VNew_Serial(int(Neq, c_long), sunctx) + umask_s => FN_VNew_Serial(Neq, sunctx) umask => FN_VMake_MPIPlusX(comm, umask_s, sunctx) if (fused) then diff --git a/examples/arkode/F2003_serial/CMakeLists.txt b/examples/arkode/F2003_serial/CMakeLists.txt index 635906df1b..2268891857 100644 --- a/examples/arkode/F2003_serial/CMakeLists.txt +++ b/examples/arkode/F2003_serial/CMakeLists.txt @@ -18,48 +18,45 @@ # Example lists are tuples "name\;type" where the type is # 'develop' for examples excluded from 'make test' in releases -# Examples using SUNDIALS linear solvers set(FARKODE_examples "ark_analytic_f2003\;\;develop" - "ark_bruss_f2003\;\;develop" - "ark_diurnal_kry_bp_f2003\;\;develop" - "ark_roberts_dns_f2003\;\;develop" - "ark_kpr_mri_f2003\;\;develop" - "ark_kpr_mri_f2003\;0 0.002\;develop" - "ark_kpr_mri_f2003\;1 0.002\;develop" - "ark_kpr_mri_f2003\;2 0.005\;develop" - "ark_kpr_mri_f2003\;3 0.01\;develop" - "ark_kpr_mri_f2003\;4 0.002\;develop" - "ark_kpr_mri_f2003\;5 0.002\;develop" - "ark_kpr_mri_f2003\;6 0.005\;develop" - "ark_kpr_mri_f2003\;7 0.001\;develop" - "ark_kpr_mri_f2003\;8 0.001\;develop" - "ark_kpr_mri_f2003\;9 0.001\;develop" - ) +) + +# Regression tests +set(FARKODE_tests + "test_ark_butcher_f2003\;develop" +) -# Examples using SUNDIALS KLU interface if(SUNDIALS_INDEX_SIZE MATCHES "64") + # Examples using SUNDIALS linear solvers + list(APPEND FARKODE_examples + "ark_bruss_f2003\;\;develop" + "ark_diurnal_kry_bp_f2003\;\;develop" + "ark_roberts_dns_f2003\;\;develop" + "ark_kpr_mri_f2003\;\;develop" + "ark_kpr_mri_f2003\;0 0.002\;develop" + "ark_kpr_mri_f2003\;1 0.002\;develop" + "ark_kpr_mri_f2003\;2 0.005\;develop" + "ark_kpr_mri_f2003\;3 0.01\;develop" + "ark_kpr_mri_f2003\;4 0.002\;develop" + "ark_kpr_mri_f2003\;5 0.002\;develop" + "ark_kpr_mri_f2003\;6 0.005\;develop" + "ark_kpr_mri_f2003\;7 0.001\;develop" + "ark_kpr_mri_f2003\;8 0.001\;develop" + "ark_kpr_mri_f2003\;9 0.001\;develop" + ) + set(FARKODE_examples_KLU "ark_bruss1D_FEM_klu_f2003\;develop" - ) - -endif() - -# Examples using LAPACK interface -if(SUNDIALS_INDEX_SIZE MATCHES "64") + ) set(FARKODE_examples_LAPACK "ark_roberts_dnsL_f2003\;\;develop" - ) + ) endif() -# Regression tests -set(FARKODE_tests - "test_ark_butcher_f2003\;develop" - ) - # Specify libraries to link against set(ARKODE_LIB sundials_arkode) set(FARKODE_LIB sundials_farkode_mod) diff --git a/examples/arkode/F2003_serial/ark_analytic_f2003.f90 b/examples/arkode/F2003_serial/ark_analytic_f2003.f90 index d7378eabd0..2df7e977c3 100644 --- a/examples/arkode/F2003_serial/ark_analytic_f2003.f90 +++ b/examples/arkode/F2003_serial/ark_analytic_f2003.f90 @@ -34,8 +34,18 @@ module analytic_mod !======= Declarations ========= implicit none + ! Since SUNDIALS can be compiled with 32-bit or 64-bit sunindextype + ! we set the integer kind used for indices in this example based + ! on the the index size SUNDIALS was compiled with so that it works + ! in both configurations. This is not a requirement for user codes. +#if defined(SUNDIALS_INT32_T) + integer, parameter :: myindextype = selected_int_kind(8) +#elif defined(SUNDIALS_INT64_T) + integer, parameter :: myindextype = selected_int_kind(16) +#endif + ! number of equations - integer(c_long), parameter :: neq = 1 + integer(kind=myindextype), parameter :: neq = 1 ! ODE parameters real(c_double), parameter :: lamda = -100.0d0 diff --git a/examples/arkode/F2003_serial/test_ark_butcher_f2003.f90 b/examples/arkode/F2003_serial/test_ark_butcher_f2003.f90 index a6132d9df6..0bc1bafdfa 100644 --- a/examples/arkode/F2003_serial/test_ark_butcher_f2003.f90 +++ b/examples/arkode/F2003_serial/test_ark_butcher_f2003.f90 @@ -16,6 +16,12 @@ module test_arkode_butcher_table +#if defined(SUNDIALS_INT32_T) + integer, parameter :: myindextype = selected_int_kind(8) +#elif defined(SUNDIALS_INT64_T) + integer, parameter :: myindextype = selected_int_kind(16) +#endif + contains integer function smoke_tests() result(ret) @@ -27,9 +33,9 @@ integer function smoke_tests() result(ret) !======== Declarations ======== implicit none type(c_ptr) :: ERK, DIRK - integer(C_INT) :: ierr, q(1), p(1) - integer(C_LONG) :: liw(1), lrw(1) - real(C_DOUBLE) :: b(2), c(2), d(2), A(4) + integer(C_INT) :: ierr, q(1), p(1) + integer(kind=myindextype) :: liw(1), lrw(1) + real(C_DOUBLE) :: b(2), c(2), d(2), A(4) !===== Setup ==== diff --git a/examples/cvode/CMakeLists.txt b/examples/cvode/CMakeLists.txt index f5bdfb8d78..eab3a925e9 100644 --- a/examples/cvode/CMakeLists.txt +++ b/examples/cvode/CMakeLists.txt @@ -79,7 +79,9 @@ endif() # Fortran examples if(BUILD_FORTRAN_MODULE_INTERFACE AND EXAMPLES_ENABLE_F2003) add_subdirectory(F2003_serial) - add_subdirectory(F2003_parallel) + if(ENABLE_MPI) + add_subdirectory(F2003_parallel) + endif() endif() # CUDA examples diff --git a/examples/cvode/F2003_parallel/CMakeLists.txt b/examples/cvode/F2003_parallel/CMakeLists.txt index c2b894d375..e686e97fa3 100644 --- a/examples/cvode/F2003_parallel/CMakeLists.txt +++ b/examples/cvode/F2003_parallel/CMakeLists.txt @@ -17,7 +17,7 @@ # Example lists are tuples "name\;nodes\;tasks\;type" where the # type is develop for examples excluded from 'make test' in releases -if(MPI_ENABLED) +if(SUNDIALS_INDEX_SIZE MATCHES "64") set(FCVODE_examples "cv_diag_kry_bbd_f2003\;\;1\;4\;develop\;2" "cv_diag_kry_f2003\;\;1\;4\;develop\;2" diff --git a/examples/cvode/F2003_parallel/cv_diag_kry_bbd_f2003.f90 b/examples/cvode/F2003_parallel/cv_diag_kry_bbd_f2003.f90 index 1710a0d061..685d60784c 100644 --- a/examples/cvode/F2003_parallel/cv_diag_kry_bbd_f2003.f90 +++ b/examples/cvode/F2003_parallel/cv_diag_kry_bbd_f2003.f90 @@ -28,8 +28,7 @@ module DiagkrybbdData !======= Inclusions =========== use, intrinsic :: iso_c_binding - - use fsundials_nvector_mod + use fsundials_core_mod !======= Declarations ========= implicit none @@ -67,7 +66,7 @@ integer(c_int) function firhs(t, sunvec_y, sunvec_ydot, user_data) & !======= Inclusions =========== use, intrinsic :: iso_c_binding - use fsundials_nvector_mod + use fsundials_core_mod !======= Declarations ========= implicit none @@ -112,7 +111,7 @@ integer(c_int) function LocalgFn(nnlocal, t, sunvec_y, sunvec_g, user_data) & !======= Inclusions =========== use, intrinsic :: iso_c_binding - use fsundials_nvector_mod + use fsundials_core_mod !======= Declarations ========= implicit none @@ -149,15 +148,10 @@ program driver ! inclusions use, intrinsic :: iso_c_binding - use fsundials_futils_mod ! Fortran utilities - use fcvode_mod ! Access CVode - use fsundials_types_mod ! sundials defined types - use fsundials_matrix_mod ! Fortran interface to generic SUNMatrix - use fsundials_nvector_mod ! Access generic N_Vector + use fsundials_core_mod + use fcvode_mod ! Access CVode use fnvector_parallel_mod ! Access parallel N_Vector - use fsundials_linearsolver_mod ! Fortran interface to generic SUNLinearSolver use fsunlinsol_spgmr_mod ! Fortran interface to spgmr SUNLinearSolver - use fsundials_context_mod ! Access sundials context use DiagkrybbdData @@ -178,7 +172,6 @@ program driver type(N_Vector), pointer :: sunvec_y ! solution N_Vector real(c_double), pointer :: y(:) ! vector data type(c_ptr) :: cvode_mem ! CVODE memory - integer(c_long) :: N, Ntot integer(c_int) :: retval integer :: ierr logical :: outproc diff --git a/examples/cvode/F2003_parallel/cv_diag_kry_f2003.f90 b/examples/cvode/F2003_parallel/cv_diag_kry_f2003.f90 index 9061936dfa..e1266fb522 100644 --- a/examples/cvode/F2003_parallel/cv_diag_kry_f2003.f90 +++ b/examples/cvode/F2003_parallel/cv_diag_kry_f2003.f90 @@ -28,8 +28,7 @@ module DiagkryData !======= Inclusions =========== use, intrinsic :: iso_c_binding - - use fsundials_nvector_mod + use fsundials_core_mod !======= Declarations ========= implicit none @@ -65,7 +64,7 @@ integer(c_int) function firhs(t, sunvec_y, sunvec_ydot, user_data) & !======= Inclusions =========== use, intrinsic :: iso_c_binding - use fsundials_nvector_mod + use fsundials_core_mod !======= Declarations ========= implicit none @@ -115,7 +114,7 @@ integer(c_int) function Psolve(t, sunvec_y, sunvec_f, sunvec_r, sunvec_z, & !======= Inclusions =========== use, intrinsic :: iso_c_binding - use fsundials_nvector_mod + use fsundials_core_mod !======= Declarations ========= implicit none @@ -136,7 +135,7 @@ integer(c_int) function Psolve(t, sunvec_y, sunvec_f, sunvec_r, sunvec_z, & real(c_double), pointer, dimension(nlocal) :: r(:) ! local data - integer(c_long) :: i, ibase, istart + integer(c_int64_t) :: i, ibase, istart real(c_double) :: psubi, pj !======= Internals ============ @@ -150,7 +149,7 @@ integer(c_int) function Psolve(t, sunvec_y, sunvec_f, sunvec_r, sunvec_z, & ! Calculate Jacobian here ibase = myid * nlocal - istart = max(1, 4 - ibase) + istart = max(1_8, 4 - ibase) do i = istart,nlocal pj = dble(ibase + i) psubi = 1.d0 + gamma * alpha * pj @@ -173,15 +172,10 @@ program driver ! inclusions use, intrinsic :: iso_c_binding - use fsundials_futils_mod ! Fortran utilities use fcvode_mod ! Access CVode - use fsundials_types_mod ! sundials defined types - use fsundials_matrix_mod ! Fortran interface to generic SUNMatrix - use fsundials_nvector_mod ! Access generic N_Vector + use fsundials_core_mod use fnvector_parallel_mod ! Access parallel N_Vector - use fsundials_linearsolver_mod ! Fortran interface to generic SUNLinearSolver use fsunlinsol_spgmr_mod ! Fortran interface to spgmr SUNLinearSolver - use fsundials_context_mod ! Access sundials context use DiagkryData !======= Declarations ========= @@ -201,7 +195,6 @@ program driver type(N_Vector), pointer :: sunvec_y ! solution N_Vector real(c_double), pointer, dimension(nlocal) :: y(:) ! vector data type(c_ptr) :: cvode_mem ! CVODE memory - integer(c_long) :: N, Ntot integer(c_int) :: retval integer :: ierr logical :: outproc diff --git a/examples/cvode/F2003_parallel/cv_diag_kry_f2003.out b/examples/cvode/F2003_parallel/cv_diag_kry_f2003.out index 04ba4dc843..284e66aed0 100644 --- a/examples/cvode/F2003_parallel/cv_diag_kry_f2003.out +++ b/examples/cvode/F2003_parallel/cv_diag_kry_f2003.out @@ -13,27 +13,27 @@ Preconditioning on left: t steps fe -------------------------------- - 0.100000 221 261 - 0.200000 265 307 - 0.300000 290 333 - 0.400000 306 350 - 0.500000 319 364 - 0.600000 329 374 - 0.700000 339 384 - 0.800000 346 392 - 0.900000 351 399 - 1.000000 355 403 + 0.100000 221 400 + 0.200000 265 452 + 0.300000 290 481 + 0.400000 306 500 + 0.500000 319 517 + 0.600000 329 528 + 0.700000 339 538 + 0.800000 346 548 + 0.900000 351 555 + 1.000000 355 563 -------------------------------- Max. absolute error is 1.46E-08 Final Solver Statistics: Internal solver steps = 355 - Total RHS evals = 403 - Total preconditioner setups = 7 + Total RHS evals = 563 + Total preconditioner setups = 0 Total preconditioner solves = 727 - Total nonlinear iterations = 400 + Total nonlinear iterations = 560 Total linear iterations = 367 - Average Krylov subspace dimension = 0.9175 + Average Krylov subspace dimension = 0.6554 Total Convergence Failures - Nonlinear = 0 - Linear = 0 Total number of error test failures = 5 @@ -45,27 +45,27 @@ Max. absolute error is 1.46E-08 Preconditioning on right: t steps fe -------------------------------- - 0.100000 221 261 - 0.200000 265 307 - 0.300000 290 333 - 0.400000 306 350 - 0.500000 319 364 - 0.600000 329 374 - 0.700000 339 384 - 0.800000 345 391 - 0.900000 352 398 - 1.000000 358 404 + 0.100000 221 400 + 0.200000 265 452 + 0.300000 290 481 + 0.400000 306 500 + 0.500000 319 517 + 0.600000 329 528 + 0.700000 339 538 + 0.800000 345 547 + 0.900000 352 554 + 1.000000 358 560 -------------------------------- Max. absolute error is 2.09E-09 Final Solver Statistics: Internal solver steps = 358 - Total RHS evals = 404 - Total preconditioner setups = 6 + Total RHS evals = 560 + Total preconditioner setups = 0 Total preconditioner solves = 730 - Total nonlinear iterations = 401 + Total nonlinear iterations = 557 Total linear iterations = 367 - Average Krylov subspace dimension = 0.9152 + Average Krylov subspace dimension = 0.6589 Total Convergence Failures - Nonlinear = 0 - Linear = 0 Total number of error test failures = 5 diff --git a/examples/cvode/F2003_parallel/cv_diag_non_p_f2003.f90 b/examples/cvode/F2003_parallel/cv_diag_non_p_f2003.f90 index c390f65de3..39b8abf5dc 100644 --- a/examples/cvode/F2003_parallel/cv_diag_non_p_f2003.f90 +++ b/examples/cvode/F2003_parallel/cv_diag_non_p_f2003.f90 @@ -26,8 +26,7 @@ module DiagnonData !======= Inclusions =========== use, intrinsic :: iso_c_binding - - use fsundials_nvector_mod + use fsundials_core_mod !======= Declarations ========= implicit none @@ -60,7 +59,7 @@ integer(c_int) function frhs(t, sunvec_y, sunvec_ydot, user_data) & !======= Inclusions =========== use, intrinsic :: iso_c_binding - use fsundials_nvector_mod + use fsundials_core_mod !======= Declarations ========= implicit none @@ -76,7 +75,7 @@ integer(c_int) function frhs(t, sunvec_y, sunvec_ydot, user_data) & real(c_double), pointer, dimension(nlocal) :: ydot(:) ! local data - integer :: i, ierr + integer :: i !======= Internals ============ @@ -109,13 +108,9 @@ program driver ! inclusions use, intrinsic :: iso_c_binding - use fsundials_futils_mod ! Fortran utilities + use fsundials_core_mod use fcvode_mod ! Access CVode - use fsundials_types_mod ! sundials defined types - use fsundials_nvector_mod ! Access generic N_Vector use fnvector_parallel_mod ! Access parallel N_Vector - use fsundials_context_mod ! Access sundials context - use fsundials_nonlinearsolver_mod ! Access generic nonlinear SUNDIALS solver use fsunnonlinsol_fixedpoint_mod ! Access fixed-point nonlinear SUNDIALS solver use DiagnonData @@ -136,7 +131,6 @@ program driver type(N_Vector), pointer :: sunvec_y ! solution N_Vector real(c_double), pointer, dimension(nlocal) :: y(:) ! vector data type(c_ptr) :: cvode_mem ! CVODE memory - integer(c_long) :: N, Ntot integer(c_int) :: retval integer :: ierr logical :: outproc diff --git a/examples/cvode/F2003_parallel/cv_diag_non_p_f2003.out b/examples/cvode/F2003_parallel/cv_diag_non_p_f2003.out index bef79307c7..4fbc9c0568 100644 --- a/examples/cvode/F2003_parallel/cv_diag_non_p_f2003.out +++ b/examples/cvode/F2003_parallel/cv_diag_non_p_f2003.out @@ -7,7 +7,7 @@ atol = 1.00E-10 alpha = 1.25E+00 ydot_i = -alpha*i * y_i (i = 1,...,neq) - Method is ADAMS/FIXED-POINT/SPGMR + Method is ADAMS/FIXED-POINT t steps fe ---------------------------- diff --git a/examples/cvode/F2003_serial/CMakeLists.txt b/examples/cvode/F2003_serial/CMakeLists.txt index 555ce99c6a..1a0458a11e 100644 --- a/examples/cvode/F2003_serial/CMakeLists.txt +++ b/examples/cvode/F2003_serial/CMakeLists.txt @@ -21,33 +21,32 @@ # Examples using SUNDIALS linear solvers set(FCVODE_examples "cv_advdiff_bnd_f2003\;develop" - "cv_analytic_fp_f2003\;develop" - "cv_analytic_sys_dns_f2003\;develop" - "cv_analytic_sys_dns_jac_f2003\;develop" - "cv_brusselator_dns_f2003\;develop" - "cv_diurnal_kry_f2003\;develop" - "cv_diurnal_kry_bp_f2003\;develop" - "cv_roberts_dns_constraints_f2003\;develop" - "cv_roberts_dns_f2003\;develop" ) -# Examples using LAPACK linear solvers if(SUNDIALS_INDEX_SIZE MATCHES "64") + # Examples using SUNDIALS linear solvers + list(APPEND FCVODE_examples + "cv_analytic_fp_f2003\;develop" + "cv_analytic_sys_dns_f2003\;develop" + "cv_analytic_sys_dns_jac_f2003\;develop" + "cv_brusselator_dns_f2003\;develop" + "cv_diurnal_kry_f2003\;develop" + "cv_diurnal_kry_bp_f2003\;develop" + "cv_roberts_dns_constraints_f2003\;develop" + "cv_roberts_dns_f2003\;develop" + ) + set(FCVODE_examples_LAPACK "cv_roberts_dnsL_f2003\;develop" ) -endif() - -# Add sparse solvers examples for 64-bit indextype configurations only, -# not compatible with 32-bit indextype -if(SUNDIALS_INDEX_SIZE MATCHES "64") # Examples using KLU linear solver set(FCVODE_examples_KLU "cv_analytic_sys_klu_f2003\;develop" "cv_roberts_klu_f2003\;develop" ) + endif() # Specify libraries to link against @@ -62,6 +61,7 @@ set(SUNDIALS_LIBS ${CVODE_LIB}) # Add the build and install targets for each example foreach(example_tuple ${FCVODE_examples}) + # parse the example tuple list(GET example_tuple 0 example) list(GET example_tuple 1 example_type) diff --git a/examples/cvode/F2003_serial/cv_advdiff_bnd_f2003.f90 b/examples/cvode/F2003_serial/cv_advdiff_bnd_f2003.f90 index fe37cc6da7..423ef44f12 100644 --- a/examples/cvode/F2003_serial/cv_advdiff_bnd_f2003.f90 +++ b/examples/cvode/F2003_serial/cv_advdiff_bnd_f2003.f90 @@ -42,10 +42,20 @@ module advdiff_mod !======= Declarations ========= implicit none + ! Since SUNDIALS can be compiled with 32-bit or 64-bit sunindextype + ! we set the integer kind used for indices in this example based + ! on the the index size SUNDIALS was compiled with so that it works + ! in both configurations. This is not a requirement for user codes. +#if defined(SUNDIALS_INT32_T) + integer, parameter :: myindextype = selected_int_kind(8) +#elif defined(SUNDIALS_INT64_T) + integer, parameter :: myindextype = selected_int_kind(16) +#endif + ! setup and number of equations - integer(c_int), parameter :: mx = 10, my = 5 - integer(c_int), parameter :: mxmy = mx*my - integer(c_long), parameter :: neq = mxmy + integer(kind=myindextype), parameter :: mx = 10, my = 5 + integer(kind=myindextype), parameter :: mxmy = mx*my + integer(kind=myindextype), parameter :: neq = mxmy ! ODE constant parameters real(c_double), parameter :: xmax = 2.0d0, ymax = 1.0d0 @@ -61,8 +71,8 @@ module advdiff_mod real(c_double), parameter :: atol = 1.0d-5 ! ODE non-constant parameters - integer(c_int) :: i, j ! index variables - integer(c_int) :: mu, ml ! band preconditioner constants + integer(kind=myindextype) :: i, j ! index variables + integer(kind=myindextype) :: mu, ml ! band preconditioner constants real(c_double) :: x, y ! initialization index variables real(c_double) :: unorm ! solution output variable @@ -166,11 +176,11 @@ integer(c_int) function JacFn(t, sunvec_u, sunvec_f, sunmat_J, & type(N_Vector) :: sunvec_t3 ! local data - integer(c_int) :: mband, k, ioff, mu1, mu2, smu, mdim - integer(c_int) :: start + integer(kind=myindextype) :: mband, k, ioff, mu1, mu2, smu, mdim + integer(kind=myindextype) :: start real(c_double), pointer, dimension(mdim,neq) :: Jmat(:,:) - smu = int(FSUNBandMatrix_StoredUpperBandwidth(sunmat_J), c_int) + smu = FSUNBandMatrix_StoredUpperBandwidth(sunmat_J) mdim = smu + 1 + ml Jmat(1:mdim,1:neq) => FSUNBandMatrix_Data(sunmat_J) @@ -277,7 +287,7 @@ program main end if ! Tell CVODE to use a Band linear solver. - sunmat_A => FSUNBandMatrix(neq, int(mu,c_long), int(ml,c_long), ctx) + sunmat_A => FSUNBandMatrix(neq, mu, ml, ctx) if (.not. associated(sunmat_A)) then print *, 'ERROR: sunmat = NULL' stop 1 diff --git a/examples/cvodes/F2003_serial/CMakeLists.txt b/examples/cvodes/F2003_serial/CMakeLists.txt index 517d64133c..667a6260c6 100644 --- a/examples/cvodes/F2003_serial/CMakeLists.txt +++ b/examples/cvodes/F2003_serial/CMakeLists.txt @@ -16,13 +16,10 @@ # Example lists are tuples "name\;args\;type" where the type is # 'develop' for examples excluded from 'make test' in releases - -# Examples using SUNDIALS linear solvers set(FCVODES_examples "cvs_analytic_fp_f2003\;\;develop" "cvsAdvDiff_FSA_non_f2003\;-sensi stg t\;develop" - "cvsAdvDiff_FSA_non_f2003\;-sensi sim t\;develop" - ) + "cvsAdvDiff_FSA_non_f2003\;-sensi sim t\;develop") # Specify libraries to link against set(CVODES_LIB sundials_fcvodes_mod) diff --git a/examples/cvodes/F2003_serial/cvsAdvDiff_FSA_non_f2003.f90 b/examples/cvodes/F2003_serial/cvsAdvDiff_FSA_non_f2003.f90 index 8f47e8a72b..25e75a14c5 100644 --- a/examples/cvodes/F2003_serial/cvsAdvDiff_FSA_non_f2003.f90 +++ b/examples/cvodes/F2003_serial/cvsAdvDiff_FSA_non_f2003.f90 @@ -56,6 +56,17 @@ module ode_problem use fsundials_core_mod implicit none + + ! Since SUNDIALS can be compiled with 32-bit or 64-bit sunindextype + ! we set the integer kind used for indices in this example based + ! on the the index size SUNDIALS was compiled with so that it works + ! in both configurations. This is not a requirement for user codes. +#if defined(SUNDIALS_INT32_T) + integer, parameter :: myindextype = selected_int_kind(8) +#elif defined(SUNDIALS_INT64_T) + integer, parameter :: myindextype = selected_int_kind(16) +#endif + ! SUNDIALS simulation context type(c_ptr) :: ctx @@ -68,8 +79,8 @@ module ode_problem integer(c_int), parameter :: NOUT = 10 integer(c_int), parameter :: NP = 2 integer(c_int), parameter :: NS = 2 - integer(c_long), parameter :: MX = 10 - integer(c_long), parameter :: NEQ = MX + integer(kind=myindextype), parameter :: MX = 10 + integer(kind=myindextype), parameter :: NEQ = MX ! problem constants real(c_double) :: ZERO = 0.d0 @@ -199,9 +210,9 @@ program main type(SUNNonlinearSolver), pointer :: NLSsens => null() integer(c_int) :: iout, retval real(c_double) :: reltol, abstol, tout, t(1) + integer(c_int) :: plist(0:NS-1) integer(c_int) :: is real(c_double) :: pbar(0:NS-1) - integer(c_int) :: plist(0:NS-1) ! Command line arguments integer(c_int) :: sensi, err_con @@ -267,7 +278,7 @@ program main if (sensi /= 0) then do is=0, NS-1 - plist(is) = is + plist(is) = int(is, 4) pbar(is) = p(plist(is)) end do @@ -282,7 +293,7 @@ program main call FN_VConst(ZERO, uiS) end do - retval = FCVodeSensInit1(cvodes_mem, NS, sensi_meth, c_null_funptr, uS) + retval = FCVodeSensInit1(cvodes_mem, int(NS, 4), sensi_meth, c_null_funptr, uS) call check_retval(retval, "FCVodeSensInit1") retval = FCVodeSensEEtolerances(cvodes_mem) diff --git a/examples/cvodes/F2003_serial/cvs_analytic_fp_f2003.f90 b/examples/cvodes/F2003_serial/cvs_analytic_fp_f2003.f90 index 705d111a5b..1c147387af 100644 --- a/examples/cvodes/F2003_serial/cvs_analytic_fp_f2003.f90 +++ b/examples/cvodes/F2003_serial/cvs_analytic_fp_f2003.f90 @@ -33,8 +33,19 @@ module ode_mod !======= Declarations ========= implicit none + + ! Since SUNDIALS can be compiled with 32-bit or 64-bit sunindextype + ! we set the integer kind used for indices in this example based + ! on the the index size SUNDIALS was compiled with so that it works + ! in both configurations. This is not a requirement for user codes. +#if defined(SUNDIALS_INT32_T) + integer, parameter :: myindextype = selected_int_kind(8) +#elif defined(SUNDIALS_INT64_T) + integer, parameter :: myindextype = selected_int_kind(16) +#endif + ! number of equations - integer(c_long), parameter :: neq = 1 + integer(kind=myindextype), parameter :: neq = 1 ! ODE parameters double precision, parameter :: lamda = -100.0d0 diff --git a/examples/ida/F2003_openmp/CMakeLists.txt b/examples/ida/F2003_openmp/CMakeLists.txt index 215563c7a4..63fb888572 100644 --- a/examples/ida/F2003_openmp/CMakeLists.txt +++ b/examples/ida/F2003_openmp/CMakeLists.txt @@ -18,11 +18,13 @@ # Example lists are tuples "name\;args\;type" where the type is # 'develop' for examples excluded from 'make test' in releases -# Examples using SUNDIALS linear solvers -set(FIDA_examples_OMP - "idaHeat2D_kry_omp_f2003.f90\;4\;exclude" - "idaHeat2D_kry_omp_f2003.f90\;8\;exclude" - ) +if(SUNDIALS_INDEX_SIZE MATCHES "64") + # Examples using SUNDIALS linear solvers + set(FIDA_examples_OMP + "idaHeat2D_kry_omp_f2003.f90\;4\;exclude" + "idaHeat2D_kry_omp_f2003.f90\;8\;exclude" + ) +endif() # Specify libraries to link against set(IDA_LIB sundials_fida_mod) diff --git a/examples/ida/F2003_parallel/CMakeLists.txt b/examples/ida/F2003_parallel/CMakeLists.txt index 908a89cc9b..af50a152e3 100644 --- a/examples/ida/F2003_parallel/CMakeLists.txt +++ b/examples/ida/F2003_parallel/CMakeLists.txt @@ -17,12 +17,11 @@ # Example lists are tuples "name\;nodes\;tasks\;type" where the # type is develop for examples excluded from 'make test' in releases -if(MPI_ENABLED) +if(SUNDIALS_INDEX_SIZE MATCHES "64") set(FIDA_examples "ida_heat2D_kry_bbd_f2003\;\;1\;4\;develop\;2") endif() - # Specify libraries to link against set(IDA_LIBS sundials_ida diff --git a/examples/ida/F2003_parallel/ida_heat2D_kry_bbd_f2003.f90 b/examples/ida/F2003_parallel/ida_heat2D_kry_bbd_f2003.f90 index b3ee8dbff4..b718674c52 100644 --- a/examples/ida/F2003_parallel/ida_heat2D_kry_bbd_f2003.f90 +++ b/examples/ida/F2003_parallel/ida_heat2D_kry_bbd_f2003.f90 @@ -54,8 +54,7 @@ module Heat2DKryBBD_mod !======= Inclusions =========== use, intrinsic :: iso_c_binding - - use fsundials_nvector_mod + use fsundials_core_mod !======= Declarations ========= implicit none @@ -259,8 +258,11 @@ subroutine InitProfile(sunvec_y, sunvec_ydot, sunvec_id, & real(c_double), pointer, dimension(nxl,nyl) :: y(:,:), ydot(:,:), id(:,:), res(:,:), cstr(:,:) real(c_double) :: xreal, yreal integer(c_int) :: retval - type(c_ptr), value :: user_data + type(c_ptr) :: user_data integer :: i, j + + user_data = c_null_ptr + ! Create solution vector, point at its data, and set initial condition N = nxl*nyl Ntot = nx*ny @@ -312,7 +314,7 @@ subroutine getStats(ida_mem, retval, ierr) !======= Inclusions =========== use, intrinsic :: iso_c_binding use fida_mod - use fsundials_futils_mod + use fsundials_core_mod !======= Declarations ========= implicit none @@ -393,7 +395,7 @@ integer(c_int) function resfn(t, sunvec_y, sunvec_ydot, sunvec_res, & !======= Inclusions =========== use, intrinsic :: iso_c_binding - use fsundials_nvector_mod + use fsundials_core_mod !======= Declarations ========= implicit none @@ -434,7 +436,7 @@ integer(c_int) function Exchange(Nloc, t, sunvec_y, sunvec_ydot, & !======= Inclusions =========== use, intrinsic :: iso_c_binding - use fsundials_nvector_mod + use fsundials_core_mod !======= Declarations ========= implicit none @@ -639,7 +641,7 @@ integer(c_int) function LocalFn(Nloc, t, sunvec_y, sunvec_ydot, sunvec_g, & !======= Inclusions =========== use, intrinsic :: iso_c_binding - use fsundials_nvector_mod + use fsundials_core_mod !======= Declarations ========= implicit none @@ -734,16 +736,10 @@ program driver ! inclusions use, intrinsic :: iso_c_binding - use fsundials_futils_mod ! Fortran utilities + use fsundials_core_mod use fida_mod ! Access IDA - use fsundials_types_mod ! sundials defined types - use fsundials_nvector_mod ! Access generic N_Vector use fnvector_parallel_mod ! Access parallel N_Vector - use fsundials_context_mod ! Access sundials context - use fsundials_matrix_mod ! Access generic SUNMatrix - use fsundials_linearsolver_mod ! Access generic SUNLinearSolver use fsunlinsol_spgmr_mod ! Access GMRES SUNLinearSolver - use Heat2DKryBBD_mod !======= Declarations ========= @@ -768,16 +764,15 @@ program driver type(N_Vector), pointer :: sunvec_res ! derivative N_Vector type(N_Vector), pointer :: sunvec_c ! constraint N_Vector real(c_double), pointer, dimension(nxl,nyl) :: y(:,:) ! vector data - real(c_double), pointer, dimension(nxl,nyl) :: f(:,:) ! vector data type(SUNLinearSolver), pointer :: sun_LS ! linear solver type(SUNMatrix), pointer :: sunmat_A ! sundials matrix type(c_ptr) :: ida_mem ! IDA memory integer(c_int) :: retval integer :: ierr, case logical :: outproc - real(c_double) :: t(1), dTout, tout, ymax + real(c_double) :: t(1), tout, ymax integer :: i, j, ioutput - character*100 :: outname + character(100) :: outname ! initialize MPI call MPI_Init(ierr) diff --git a/examples/ida/F2003_parallel/ida_heat2D_kry_bbd_f2003.out b/examples/ida/F2003_parallel/ida_heat2D_kry_bbd_f2003.out new file mode 100644 index 0000000000..393585907b --- /dev/null +++ b/examples/ida/F2003_parallel/ida_heat2D_kry_bbd_f2003.out @@ -0,0 +1,68 @@ + + 2D Heat PDE test problem: + nprocs = 4 + nx = 100 + ny = 100 + kx = 1.00 + ky = 1.00 + rtol = 0.00E+00 + atol = 1.00E-03 + nxl (proc 0) = 50 + nyl (proc 0) = 50 + + + Case 1 + Difference quotient half-bandwidths = 50 + Retained matrix half-bandwidths = 1 + + Output Summary + umax = max-norm of solution + nre = nre + nreLS (total number of RES evals.) + + t ||u||_max k nst nni nli nre nge h npe nps + ------------------------------------------------------------------------------------ + 0.010000 8.46213E-01 2 15 20 32 20+ 32 816 2.56E-03 8 52 + 0.020000 7.05517E-01 2 18 24 47 24+ 47 918 5.12E-03 9 71 + 0.040000 4.83694E-01 3 22 29 73 29+ 73 918 5.12E-03 9 102 + 0.080000 2.15365E-01 3 28 38 143 38+143 918 6.97E-03 9 181 + 0.160000 6.15447E-02 2 36 48 211 48+211 1020 1.39E-02 10 259 + 0.320000 1.63800E-02 2 48 69 393 69+393 1428 1.88E-02 14 462 + 0.640000 1.06183E-02 1 84 125 603 125+603 2958 5.52E-02 29 728 + 1.280000 1.98532E-02 1 88 131 621 131+621 3162 2.21E-01 31 752 + 2.560000 3.00701E-02 1 92 138 651 138+651 3264 3.52E-01 32 789 + 5.120000 2.46999E-02 1 96 147 670 147+670 3570 1.07E+00 35 817 + 10.240000 1.82570E-02 1 98 150 682 150+682 3672 2.14E+00 36 832 + ------------------------------------------------------------------------------------ + + Final Solver Statistics: + Total number of error test failures = 1 + Total number of nonlinear conv. failures = 3 + Total number of linear conv. failures = 2 + + Case 2 + Difference quotient half-bandwidths = 5 + Retained matrix half-bandwidths = 1 + + Output Summary + umax = max-norm of solution + nre = nre + nreLS (total number of RES evals.) + + t ||u||_max k nst nni nli nre nge h npe nps + ------------------------------------------------------------------------------------ + 0.010000 8.46213E-01 2 15 20 32 20+ 32 96 2.56E-03 8 52 + 0.020000 7.05517E-01 2 18 24 47 24+ 47 108 5.12E-03 9 71 + 0.040000 4.83694E-01 3 22 29 73 29+ 73 108 5.12E-03 9 102 + 0.080000 2.15365E-01 3 28 38 143 38+143 108 6.97E-03 9 181 + 0.160000 6.15447E-02 2 36 48 211 48+211 120 1.39E-02 10 259 + 0.320000 1.63800E-02 2 48 69 393 69+393 168 1.88E-02 14 462 + 0.640000 1.06183E-02 1 84 125 603 125+603 348 5.52E-02 29 728 + 1.280000 1.98532E-02 1 88 131 621 131+621 372 2.21E-01 31 752 + 2.560000 3.00701E-02 1 92 138 651 138+651 384 3.52E-01 32 789 + 5.120000 2.46999E-02 1 96 147 670 147+670 420 1.07E+00 35 817 + 10.240000 1.82570E-02 1 98 150 682 150+682 432 2.14E+00 36 832 + ------------------------------------------------------------------------------------ + + Final Solver Statistics: + Total number of error test failures = 1 + Total number of nonlinear conv. failures = 3 + Total number of linear conv. failures = 2 diff --git a/examples/ida/F2003_serial/CMakeLists.txt b/examples/ida/F2003_serial/CMakeLists.txt index 637c5c2139..107b423e41 100644 --- a/examples/ida/F2003_serial/CMakeLists.txt +++ b/examples/ida/F2003_serial/CMakeLists.txt @@ -19,9 +19,15 @@ # Examples using SUNDIALS linear solvers set(FIDA_examples - "idaHeat2D_kry_f2003\;develop" "idaRoberts_dns_f2003\;develop" +) + +if(SUNDIALS_INDEX_SIZE MATCHES "64") + # Examples using SUNDIALS linear solvers + list(APPEND FIDA_examples + "idaHeat2D_kry_f2003\;develop" ) +endif() # Specify libraries to link against set(IDA_LIB sundials_fida_mod) diff --git a/examples/ida/F2003_serial/idaRoberts_dns_f2003.f90 b/examples/ida/F2003_serial/idaRoberts_dns_f2003.f90 index c424d7acd3..63a7807eec 100644 --- a/examples/ida/F2003_serial/idaRoberts_dns_f2003.f90 +++ b/examples/ida/F2003_serial/idaRoberts_dns_f2003.f90 @@ -40,8 +40,18 @@ module dae_mod !======= Declarations ========= implicit none - integer(c_long), parameter :: neq = 3 - integer(c_long), parameter :: nout = 12 + ! Since SUNDIALS can be compiled with 32-bit or 64-bit sunindextype + ! we set the integer kind used for indices in this example based + ! on the the index size SUNDIALS was compiled with so that it works + ! in both configurations. This is not a requirement for user codes. +#if defined(SUNDIALS_INT32_T) + integer, parameter :: myindextype = selected_int_kind(8) +#elif defined(SUNDIALS_INT64_T) + integer, parameter :: myindextype = selected_int_kind(16) +#endif + + integer(kind=myindextype), parameter :: neq = 3 + integer(kind=myindextype), parameter :: nout = 12 contains diff --git a/examples/idas/F2003_serial/CMakeLists.txt b/examples/idas/F2003_serial/CMakeLists.txt index 6d409c2857..d66b309729 100644 --- a/examples/idas/F2003_serial/CMakeLists.txt +++ b/examples/idas/F2003_serial/CMakeLists.txt @@ -16,13 +16,17 @@ # Example lists are tuples "name\;type" where the type is # 'develop' for examples excluded from 'make test' in releases - -# Examples using SUNDIALS linear solvers set(FIDAS_examples - "idasHeat2D_kry_f2003\;develop" "idasAkzoNob_ASAi_dns_f2003\;develop" ) +if(SUNDIALS_INDEX_SIZE MATCHES "64") + # Examples using SUNDIALS linear solvers + list(APPEND FIDAS_examples + "idasHeat2D_kry_f2003\;develop" + ) +endif() + # Specify libraries to link against set(IDAS_LIB sundials_fidas_mod) diff --git a/examples/idas/F2003_serial/idasAkzoNob_ASAi_dns_f2003.f90 b/examples/idas/F2003_serial/idasAkzoNob_ASAi_dns_f2003.f90 index c0e64c78e1..debacbf91a 100644 --- a/examples/idas/F2003_serial/idasAkzoNob_ASAi_dns_f2003.f90 +++ b/examples/idas/F2003_serial/idasAkzoNob_ASAi_dns_f2003.f90 @@ -33,8 +33,19 @@ module dae_mod use fsundials_core_mod implicit none + + ! Since SUNDIALS can be compiled with 32-bit or 64-bit sunindextype + ! we set the integer kind used for indices in this example based + ! on the the index size SUNDIALS was compiled with so that it works + ! in both configurations. This is not a requirement for user codes. +#if defined(SUNDIALS_INT32_T) + integer, parameter :: myindextype = selected_int_kind(8) +#elif defined(SUNDIALS_INT64_T) + integer, parameter :: myindextype = selected_int_kind(16) +#endif + ! problem parameters - integer(c_long), parameter :: NEQ = 6 + integer(kind=myindextype), parameter :: NEQ = 6 integer(c_long), parameter :: STEPS = 150 real(c_double), parameter :: T0 = 0.0d0 real(c_double), parameter :: TF = 180.d0 @@ -308,7 +319,7 @@ program main call FN_VDestroy(nv_rr) ! Create and initialize q0 for quadratures. - nv_q => FN_VNew_Serial(1_8, sunctx) + nv_q => FN_VNew_Serial(1_myindextype, sunctx) if (.not. associated(nv_q)) then write(*,*) 'ERROR: FN_VNew_Serial returned NULL' stop 1 diff --git a/examples/kinsol/CMakeLists.txt b/examples/kinsol/CMakeLists.txt index c41e93d845..67657f9399 100644 --- a/examples/kinsol/CMakeLists.txt +++ b/examples/kinsol/CMakeLists.txt @@ -47,5 +47,7 @@ endif() # Fortran examples if(BUILD_FORTRAN_MODULE_INTERFACE AND EXAMPLES_ENABLE_F2003) add_subdirectory(F2003_serial) - add_subdirectory(F2003_parallel) + if(ENABLE_MPI) + add_subdirectory(F2003_parallel) + endif() endif() diff --git a/examples/kinsol/F2003_parallel/CMakeLists.txt b/examples/kinsol/F2003_parallel/CMakeLists.txt index 8ba5706a32..d6ea17cb03 100644 --- a/examples/kinsol/F2003_parallel/CMakeLists.txt +++ b/examples/kinsol/F2003_parallel/CMakeLists.txt @@ -17,7 +17,7 @@ # Example lists are tuples "name\;nodes\;tasks\;type" where the # type is develop for examples excluded from 'make test' in releases -if(MPI_ENABLED) +if(SUNDIALS_INDEX_SIZE MATCHES "64") set(FKINSOL_examples "kin_diagon_kry_f2003\;\;1\;4\;develop\;2") endif() diff --git a/examples/kinsol/F2003_parallel/kin_diagon_kry_f2003.f90 b/examples/kinsol/F2003_parallel/kin_diagon_kry_f2003.f90 index dcc6b09bbb..9c00556e7d 100644 --- a/examples/kinsol/F2003_parallel/kin_diagon_kry_f2003.f90 +++ b/examples/kinsol/F2003_parallel/kin_diagon_kry_f2003.f90 @@ -62,7 +62,7 @@ module kinDiagonKry_mod subroutine init(sunvec_u, sunvec_s, sunvec_c) !======= Inclusions =========== - use fsundials_nvector_mod + use fsundials_core_mod !======= Declarations ========= implicit none @@ -104,7 +104,7 @@ integer(c_int) function func(sunvec_u, sunvec_f, user_data) & result(ierr) bind(C) !======= Inclusions =========== - use fsundials_nvector_mod + use fsundials_core_mod !======= Declarations ========= implicit none @@ -155,7 +155,7 @@ integer(c_int) function kpsetup(sunvec_u, sunvec_s, sunvec_f, & sunvec_fs, user_data) result(ierr) bind(C) !======= Inclusions =========== - use fsundials_nvector_mod + use fsundials_core_mod !======= Declarations ========= implicit none @@ -202,7 +202,7 @@ integer(c_int) function kpsolve(sunvec_u, sunvec_s, sunvec_f, & sunvec_fs, sunvec_v, user_data) result(ierr) bind(C) !======= Inclusions =========== - use fsundials_nvector_mod + use fsundials_core_mod !======= Declarations ========= implicit none @@ -247,20 +247,17 @@ end module kinDiagonKry_mod program main !======= Inclusions =========== - use fsundials_context_mod + use fsundials_core_mod use fkinsol_mod ! Fortran interface to KINSOL - use fsundials_nvector_mod ! Fortran interface to generic N_Vector use fnvector_parallel_mod ! Fortran interface to serial N_Vector use fsunlinsol_spgmr_mod ! Fortran interface to SPGMR SUNLinearSolver - use fsundials_matrix_mod ! Fortran interface to generic SUNmatrix - use fsundials_linearsolver_mod ! Fortran interface to generic SUNLinearSolver use kinDiagonKry_mod ! problem-defining functions !======= Declarations ========= implicit none ! local variables - real(c_double) :: ftol, fnorm(1) + real(c_double) :: ftol type(c_ptr) :: sunctx ! sundials context type(N_Vector), pointer :: sunvec_u ! sundials vectors diff --git a/examples/kinsol/F2003_parallel/kin_diagon_kry_f2003.out b/examples/kinsol/F2003_parallel/kin_diagon_kry_f2003.out new file mode 100644 index 0000000000..0eb25a14dc --- /dev/null +++ b/examples/kinsol/F2003_parallel/kin_diagon_kry_f2003.out @@ -0,0 +1,48 @@ + + Example program kinDiagon_kry_f2003: + This FKINSOL example solves a 128 eqn diagonal algebraic system. + Its purpose is to demonstrate the use of the Fortran interface in + a parallel environment. + + Solution method: KIN_none +Problem size: neq = 128 +Number of procs: nprocs = 4 + + 1 1.000000 2.000000 3.000000 4.000000 + 5 5.000000 6.000000 7.000000 8.000000 + 9 9.000000 10.000000 11.000000 12.000000 + 13 13.000000 14.000000 15.000000 16.000000 + 17 17.000000 18.000000 19.000000 20.000000 + 21 21.000000 22.000000 23.000000 24.000000 + 25 25.000000 26.000000 27.000000 28.000000 + 29 29.000000 30.000000 31.000000 32.000000 + 33 33.000000 34.000000 35.000000 36.000000 + 37 37.000000 38.000000 39.000000 40.000000 + 41 41.000000 42.000000 43.000000 44.000000 + 45 45.000000 46.000000 47.000000 48.000000 + 49 49.000000 50.000000 51.000000 52.000000 + 53 53.000000 54.000000 55.000000 56.000000 + 57 57.000000 58.000000 59.000000 60.000000 + 61 61.000000 62.000000 63.000000 64.000000 + 65 65.000000 66.000000 67.000000 68.000000 + 69 69.000000 70.000000 71.000000 72.000000 + 73 73.000000 74.000000 75.000000 76.000000 + 77 77.000000 78.000000 79.000000 80.000000 + 81 81.000000 82.000000 83.000000 84.000000 + 85 85.000000 86.000000 87.000000 88.000000 + 89 89.000000 90.000000 91.000000 92.000000 + 93 93.000000 94.000000 95.000000 96.000000 + 97 97.000000 98.000000 99.000000 100.000000 + 101 101.000000 102.000000 103.000000 104.000000 + 105 105.000000 106.000000 107.000000 108.000000 + 109 109.000000 110.000000 111.000000 112.000000 + 113 113.000000 114.000000 115.000000 116.000000 + 117 117.000000 118.000000 119.000000 120.000000 + 121 121.000000 122.000000 123.000000 124.000000 + 125 125.000000 126.000000 127.000000 128.000000 + + Final Statistics.. + +nni = 7 nli = 21 +nfe = 8 npe = 2 +nps = 28 nlcf = 0 diff --git a/examples/kinsol/F2003_serial/CMakeLists.txt b/examples/kinsol/F2003_serial/CMakeLists.txt index 8908285b85..1bca9e8dd3 100644 --- a/examples/kinsol/F2003_serial/CMakeLists.txt +++ b/examples/kinsol/F2003_serial/CMakeLists.txt @@ -16,14 +16,16 @@ # Example lists are tuples "name\;type" where the type is # 'develop' for examples excluded from 'make test' in releases - -# Examples using SUNDIALS linear solvers set(FKINSOL_examples - "kinDiagon_kry_f2003\;\;develop" - "kinRoboKin_dns_f2003\;\;develop" - "kinLaplace_bnd_f2003\;\;develop" - "kinLaplace_picard_kry_f2003\;\;develop" - ) + "kinDiagon_kry_f2003\;\;develop") + +if(SUNDIALS_INDEX_SIZE MATCHES "64") + list(APPEND FKINSOL_examples + "kinRoboKin_dns_f2003\;\;develop" + "kinLaplace_bnd_f2003\;\;develop" + "kinLaplace_picard_kry_f2003\;\;develop" + ) +endif() # Specify libraries to link against set(KINSOL_LIB sundials_fkinsol_mod) diff --git a/examples/kinsol/F2003_serial/kinDiagon_kry_f2003.f90 b/examples/kinsol/F2003_serial/kinDiagon_kry_f2003.f90 index 83cdef8caa..a69564fe1f 100644 --- a/examples/kinsol/F2003_serial/kinDiagon_kry_f2003.f90 +++ b/examples/kinsol/F2003_serial/kinDiagon_kry_f2003.f90 @@ -34,7 +34,17 @@ module kinDiagonKry_mod !======= Declarations ========= implicit none - integer(c_long), parameter :: neq = 128 + ! Since SUNDIALS can be compiled with 32-bit or 64-bit sunindextype + ! we set the integer kind used for indices in this example based + ! on the the index size SUNDIALS was compiled with so that it works + ! in both configurations. This is not a requirement for user codes. +#if defined(SUNDIALS_INT32_T) + integer, parameter :: myindextype = selected_int_kind(8) +#elif defined(SUNDIALS_INT64_T) + integer, parameter :: myindextype = selected_int_kind(16) +#endif + + integer(kind=myindextype), parameter :: neq = 128 integer(c_int) :: ierr, retval integer(c_long) :: i diff --git a/examples/nvector/C_openmp/test_fnvector_openmp_mod.f90 b/examples/nvector/C_openmp/test_fnvector_openmp_mod.f90 index a4b7648839..afa1157fef 100644 --- a/examples/nvector/C_openmp/test_fnvector_openmp_mod.f90 +++ b/examples/nvector/C_openmp/test_fnvector_openmp_mod.f90 @@ -22,16 +22,16 @@ module test_nvector_openmp use test_utilities implicit none - integer(c_long), parameter :: N = 100 ! vector length - integer(c_int), parameter :: nv = 3 ! length of vector arrays - integer(c_int), parameter :: ns = 2 ! number of vector arrays + integer(kind=myindextype), parameter :: N = 100 ! vector length + integer(kind=myindextype), parameter :: ns = 2 ! number of vector arrays + integer(c_int), parameter :: nv = 3 ! length of vector arrays contains integer function smoke_tests() result(ret) implicit none - integer(c_long) :: lenrw(1), leniw(1) ! real and int work space size + integer(kind=myindextype) :: lenrw(1), leniw(1) ! real and int work space size integer(c_long) :: ival ! integer work value real(c_double) :: rval ! real work value real(c_double) :: xdata(N) ! vector data array @@ -94,16 +94,16 @@ integer function smoke_tests() result(ret) rval = FN_VMinQuotient_OpenMP(x, y) ! test fused vector operations - ival = FN_VLinearCombination_OpenMP(nv, nvarr, xvecs, x) - ival = FN_VScaleAddMulti_OpenMP(nv, nvarr, x, xvecs, zvecs) - ival = FN_VDotProdMulti_OpenMP(nv, x, xvecs, nvarr) + ival = FN_VLinearCombination_OpenMP(int(nv, 4), nvarr, xvecs, x) + ival = FN_VScaleAddMulti_OpenMP(int(nv, 4), nvarr, x, xvecs, zvecs) + ival = FN_VDotProdMulti_OpenMP(int(nv, 4), x, xvecs, nvarr) ! test vector array operations - ival = FN_VLinearSumVectorArray_OpenMP(nv, ONE, xvecs, ONE, xvecs, zvecs) - ival = FN_VScaleVectorArray_OpenMP(nv, nvarr, xvecs, zvecs) - ival = FN_VConstVectorArray_OpenMP(nv, ONE, xvecs) - ival = FN_VWrmsNormVectorArray_OpenMP(nv, xvecs, xvecs, nvarr) - ival = FN_VWrmsNormMaskVectorArray_OpenMP(nv, xvecs, xvecs, x, nvarr) + ival = FN_VLinearSumVectorArray_OpenMP(int(nv, 4), ONE, xvecs, ONE, xvecs, zvecs) + ival = FN_VScaleVectorArray_OpenMP(int(nv, 4), nvarr, xvecs, zvecs) + ival = FN_VConstVectorArray_OpenMP(int(nv, 4), ONE, xvecs) + ival = FN_VWrmsNormVectorArray_OpenMP(int(nv, 4), xvecs, xvecs, nvarr) + ival = FN_VWrmsNormMaskVectorArray_OpenMP(int(nv, 4), xvecs, xvecs, x, nvarr) !==== Cleanup ===== call FN_VDestroy_OpenMP(x) @@ -148,10 +148,10 @@ integer(C_INT) function check_ans(ans, X, local_length) result(failure) use test_utilities implicit none - real(C_DOUBLE) :: ans - type(N_Vector) :: X - integer(C_LONG) :: local_length, i - real(C_DOUBLE), pointer :: Xdata(:) + real(C_DOUBLE) :: ans + type(N_Vector) :: X + integer(kind=myindextype) :: local_length, i + real(C_DOUBLE), pointer :: Xdata(:) failure = 0 diff --git a/examples/nvector/manyvector/test_fnvector_manyvector_mod.f90 b/examples/nvector/manyvector/test_fnvector_manyvector_mod.f90 index d87b6747b0..cf12181129 100644 --- a/examples/nvector/manyvector/test_fnvector_manyvector_mod.f90 +++ b/examples/nvector/manyvector/test_fnvector_manyvector_mod.f90 @@ -24,18 +24,18 @@ module test_nvector_manyvector implicit none integer(c_int), parameter :: nsubvecs = 2 - integer(c_long), parameter :: N1 = 100 ! individual vector length - integer(c_long), parameter :: N2 = 200 ! individual vector length - integer(c_int), parameter :: nv = 3 ! length of vector arrays - integer(c_long), parameter :: N = N1 + N2 ! overall manyvector length + integer(c_int), parameter :: nv = 3 ! length of vector arrays + integer(kind=myindextype), parameter :: N1 = 100 ! individual vector length + integer(kind=myindextype), parameter :: N2 = 200 ! individual vector length + integer(kind=myindextype), parameter :: N = N1 + N2 ! overall manyvector length contains integer function smoke_tests() result(ret) implicit none - integer(c_long) :: lenrw(1), leniw(1) ! real and int work space size - integer(c_long) :: ival ! integer work value + integer(kind=myindextype) :: ival ! integer work value + integer(kind=myindextype) :: lenrw(1), leniw(1) ! real and int work space size real(c_double) :: rval ! real work value real(c_double) :: x1data(N1), x2data(N2) ! vector data array real(c_double), pointer :: xptr(:) ! pointer to vector data array @@ -51,7 +51,7 @@ integer function smoke_tests() result(ret) tmp => FN_VMake_Serial(N2, x2data, sunctx) call FN_VSetVecAtIndexVectorArray(subvecs, 1, tmp) - x => FN_VNew_ManyVector(int(nsubvecs,8), subvecs, sunctx) + x => FN_VNew_ManyVector(int(nsubvecs, myindextype), subvecs, sunctx) call FN_VConst(ONE, x) y => FN_VClone_ManyVector(x) call FN_VConst(ONE, y) @@ -140,7 +140,7 @@ integer function unit_tests() result(fails) tmp => FN_VMake_Serial(N2, x2data, sunctx) call FN_VSetVecAtIndexVectorArray(subvecs, 1, tmp) - x => FN_VNew_ManyVector(int(nsubvecs,8), subvecs, sunctx) + x => FN_VNew_ManyVector(int(nsubvecs, myindextype), subvecs, sunctx) call FN_VConst(ONE, x) !==== tests ==== @@ -157,23 +157,22 @@ end function unit_tests end module -integer(C_INT) function check_ans(ans, X, local_length) result(failure) +function check_ans(ans, X, local_length) result(failure) use, intrinsic :: iso_c_binding use fnvector_manyvector_mod - use test_utilities implicit none - real(C_DOUBLE) :: ans - type(N_Vector) :: X - type(N_Vector), pointer :: X0, X1 - integer(C_LONG) :: local_length, i, x0len, x1len - real(C_DOUBLE), pointer :: x0data(:), x1data(:) + real(C_DOUBLE) :: ans + type(N_Vector) :: X + type(N_Vector), pointer :: X0, X1 + integer(kind=myindextype) :: failure, local_length, i, x0len, x1len + real(C_DOUBLE), pointer :: x0data(:), x1data(:) failure = 0 - X0 => FN_VGetSubvector_ManyVector(X, 0_8) - X1 => FN_VGetSubvector_ManyVector(X, 1_8) + X0 => FN_VGetSubvector_ManyVector(X, 0_myindextype) + X1 => FN_VGetSubvector_ManyVector(X, 1_myindextype) x0len = FN_VGetLength(X0) x1len = FN_VGetLength(X1) x0data => FN_VGetArrayPointer(X0) diff --git a/examples/nvector/mpimanyvector/test_fnvector_mpimanyvector_mod.f90 b/examples/nvector/mpimanyvector/test_fnvector_mpimanyvector_mod.f90 index 0e9f02f6aa..1b25a3f139 100644 --- a/examples/nvector/mpimanyvector/test_fnvector_mpimanyvector_mod.f90 +++ b/examples/nvector/mpimanyvector/test_fnvector_mpimanyvector_mod.f90 @@ -25,28 +25,28 @@ module test_nvector_mpimanyvector implicit none include "mpif.h" - integer(c_int), parameter :: nsubvecs = 2 - integer(c_long), parameter :: N1 = 100 ! individual vector length - integer(c_long), parameter :: N2 = 200 ! individual vector length - integer(c_int), parameter :: nv = 3 ! length of vector arrays - integer(c_long), parameter :: N = N1 + N2 ! overall manyvector length - integer(c_int), target :: comm = MPI_COMM_WORLD ! default MPI communicator - integer(c_int) :: nprocs ! number of MPI processes + integer(c_int), parameter :: nsubvecs = 2 + integer(c_int), parameter :: nv = 3 ! length of vector arrays + integer(kind=myindextype), parameter :: N1 = 100 ! individual vector length + integer(kind=myindextype), parameter :: N2 = 200 ! individual vector length + integer(kind=myindextype), parameter :: N = N1 + N2 ! overall manyvector length + integer(c_int), target :: comm = MPI_COMM_WORLD ! default MPI communicator + integer(c_int) :: nprocs ! number of MPI processes contains integer function smoke_tests() result(ret) implicit none - integer(c_long) :: lenrw(1), leniw(1) ! real and int work space size - integer(c_long) :: ival ! integer work value - real(c_double) :: rval ! real work value - real(c_double) :: x1data(N1), x2data(N2) ! vector data array - real(c_double), pointer :: xptr(:) ! pointer to vector data array - real(c_double) :: nvarr(nv) ! array of nv constants to go with vector array - type(N_Vector), pointer :: x, y, z, tmp ! N_Vectors - type(c_ptr) :: subvecs ! MPIManyVector subvectors - type(c_ptr) :: xvecs, zvecs ! C pointer to array of MPIManyVectors + integer(kind=myindextype) :: lenrw(1), leniw(1) ! real and int work space size + integer(kind=myindextype) :: ival ! integer work value + real(c_double) :: rval ! real work value + real(c_double) :: x1data(N1), x2data(N2) ! vector data array + real(c_double), pointer :: xptr(:) ! pointer to vector data array + real(c_double) :: nvarr(nv) ! array of nv constants to go with vector array + type(N_Vector), pointer :: x, y, z, tmp ! N_Vectors + type(c_ptr) :: subvecs ! MPIManyVector subvectors + type(c_ptr) :: xvecs, zvecs ! C pointer to array of MPIManyVectors !===== Setup ==== subvecs = FN_VNewVectorArray(nsubvecs, sunctx) @@ -55,7 +55,7 @@ integer function smoke_tests() result(ret) tmp => FN_VMake_Serial(N2, x2data, sunctx) call FN_VSetVecAtIndexVectorArray(subvecs, 1, tmp) - x => FN_VMake_MPIManyVector(comm, int(nsubvecs,8), subvecs, sunctx) + x => FN_VMake_MPIManyVector(comm, int(nsubvecs, myindextype), subvecs, sunctx) call FN_VConst(ONE, x) y => FN_VClone_MPIManyVector(x) call FN_VConst(ONE, y) @@ -96,16 +96,16 @@ integer function smoke_tests() result(ret) rval = FN_VMinQuotientLocal_MPIManyVector(x, y) ! test fused vector operations - ival = FN_VLinearCombination_MPIManyVector(nv, nvarr, xvecs, x) - ival = FN_VScaleAddMulti_MPIManyVector(nv, nvarr, x, xvecs, zvecs) - ival = FN_VDotProdMulti_MPIManyVector(nv, x, xvecs, nvarr) + ival = FN_VLinearCombination_MPIManyVector(int(nv, 4), nvarr, xvecs, x) + ival = FN_VScaleAddMulti_MPIManyVector(int(nv, 4), nvarr, x, xvecs, zvecs) + ival = FN_VDotProdMulti_MPIManyVector(int(nv, 4), x, xvecs, nvarr) ! test vector array operations - ival = FN_VLinearSumVectorArray_MPIManyVector(nv, ONE, xvecs, ONE, xvecs, zvecs) - ival = FN_VScaleVectorArray_MPIManyVector(nv, nvarr, xvecs, zvecs) - ival = FN_VConstVectorArray_MPIManyVector(nv, ONE, xvecs) - ival = FN_VWrmsNormVectorArray_MPIManyVector(nv, xvecs, xvecs, nvarr) - ival = FN_VWrmsNormMaskVectorArray_MPIManyVector(nv, xvecs, xvecs, x, nvarr) + ival = FN_VLinearSumVectorArray_MPIManyVector(int(nv, 4), ONE, xvecs, ONE, xvecs, zvecs) + ival = FN_VScaleVectorArray_MPIManyVector(int(nv, 4), nvarr, xvecs, zvecs) + ival = FN_VConstVectorArray_MPIManyVector(int(nv, 4), ONE, xvecs) + ival = FN_VWrmsNormVectorArray_MPIManyVector(int(nv, 4), xvecs, xvecs, nvarr) + ival = FN_VWrmsNormMaskVectorArray_MPIManyVector(int(nv, 4), xvecs, xvecs, x, nvarr) ! test the MPIManyVector specific operations ival = FN_VGetNumSubvectors_MPIManyVector(x) @@ -154,7 +154,7 @@ integer function unit_tests() result(fails) tmp => FN_VMake_Serial(N2, x2data, sunctx) call FN_VSetVecAtIndexVectorArray(subvecs, 1, tmp) - x => FN_VMake_MPIManyVector(comm, int(nsubvecs,8), subvecs, sunctx) + x => FN_VMake_MPIManyVector(comm, int(nsubvecs, myindextype), subvecs, sunctx) call FN_VConst(ONE, x) !==== tests ==== @@ -177,20 +177,19 @@ end function unit_tests integer(C_INT) function check_ans(ans, X, local_length) result(failure) use, intrinsic :: iso_c_binding use fnvector_mpimanyvector_mod - - use test_utilities + use test_utilities implicit none - real(C_DOUBLE) :: ans - type(N_Vector) :: X - type(N_Vector), pointer :: X0, X1 - integer(C_LONG) :: local_length, i, x0len, x1len - real(C_DOUBLE), pointer :: x0data(:), x1data(:) + real(C_DOUBLE) :: ans + type(N_Vector) :: X + type(N_Vector), pointer :: X0, X1 + integer(kind=myindextype) :: local_length, i, x0len, x1len + real(C_DOUBLE), pointer :: x0data(:), x1data(:) failure = 0 - X0 => FN_VGetSubvector_MPIManyVector(X, 0_8) - X1 => FN_VGetSubvector_MPIManyVector(X, 1_8) + X0 => FN_VGetSubvector_MPIManyVector(X, 0_myindextype) + X1 => FN_VGetSubvector_MPIManyVector(X, 1_myindextype) x0len = FN_VGetLength(X0) x1len = FN_VGetLength(X1) x0data => FN_VGetArrayPointer(X0) diff --git a/examples/nvector/mpiplusx/test_fnvector_mpiplusx_mod.f90 b/examples/nvector/mpiplusx/test_fnvector_mpiplusx_mod.f90 index cc194d7840..180944377d 100644 --- a/examples/nvector/mpiplusx/test_fnvector_mpiplusx_mod.f90 +++ b/examples/nvector/mpiplusx/test_fnvector_mpiplusx_mod.f90 @@ -24,7 +24,7 @@ module test_nvector_mpiplusx implicit none include "mpif.h" - integer(c_long), parameter :: N = 100 ! overall manyvector length + integer(kind=myindextype), parameter :: N = 100 ! overall manyvector length integer(c_int), target :: comm = MPI_COMM_WORLD ! default MPI communicator integer(c_int) :: nprocs ! number of MPI processes @@ -103,11 +103,11 @@ integer(C_INT) function check_ans(ans, X, local_length) result(failure) use test_utilities implicit none - real(C_DOUBLE) :: ans - type(N_Vector) :: X - type(N_Vector), pointer :: X0 - integer(C_LONG) :: local_length, i, x0len - real(C_DOUBLE), pointer :: x0data(:) + real(C_DOUBLE) :: ans + type(N_Vector) :: X + type(N_Vector), pointer :: X0 + integer(kind=myindextype) :: local_length, i, x0len + real(C_DOUBLE), pointer :: x0data(:) failure = 0 diff --git a/examples/nvector/parallel/test_fnvector_parallel_mod.f90 b/examples/nvector/parallel/test_fnvector_parallel_mod.f90 index 59f4d16968..8ca51a39ba 100644 --- a/examples/nvector/parallel/test_fnvector_parallel_mod.f90 +++ b/examples/nvector/parallel/test_fnvector_parallel_mod.f90 @@ -23,26 +23,26 @@ module test_nvector_parallel implicit none include "mpif.h" - integer(c_long), parameter :: local_length = 100 ! vector local length - integer(c_int), parameter :: nv = 3 ! length of vector arrays - integer(c_int), parameter :: ns = 2 ! number of vector arrays + integer(kind=myindextype), parameter :: local_length = 100 ! vector local length + integer(c_int), parameter :: nv = 3 ! length of vector arrays + integer(c_int), parameter :: ns = 2 ! number of vector arrays - integer(c_int), target :: comm = MPI_COMM_WORLD ! default MPI communicator - integer(c_long) :: global_length ! vector global_length - integer(c_int) :: nprocs ! number of MPI processes + integer(c_int), target :: comm = MPI_COMM_WORLD ! default MPI communicator + integer(kind=myindextype) :: global_length ! vector global_length + integer(c_int) :: nprocs ! number of MPI processes contains integer function smoke_tests() result(ret) implicit none - integer(c_long) :: lenrw(1), leniw(1) ! real and int work space size - integer(c_long) :: ival ! integer work value - real(c_double) :: rval ! real work value - real(c_double) :: xdata(local_length) ! vector data array - real(c_double), pointer :: xptr(:) ! pointer to vector data array - real(c_double) :: nvarr(nv) ! array of nv constants to go with vector array - type(N_Vector), pointer :: x, y, z, tmp ! N_Vectors - type(c_ptr) :: xvecs, zvecs ! C pointer to array of C pointers to N_Vectors + integer(kind=myindextype) :: lenrw(1), leniw(1) ! real and int work space size + integer(c_long) :: ival ! integer work value + real(c_double) :: rval ! real work value + real(c_double) :: xdata(local_length) ! vector data array + real(c_double), pointer :: xptr(:) ! pointer to vector data array + real(c_double) :: nvarr(nv) ! array of nv constants to go with vector array + type(N_Vector), pointer :: x, y, z, tmp ! N_Vectors + type(c_ptr) :: xvecs, zvecs ! C pointer to array of C pointers to N_Vectors !===== Setup ==== x => FN_VMake_Parallel(comm, local_length, global_length, xdata, sunctx) @@ -98,16 +98,16 @@ integer function smoke_tests() result(ret) rval = FN_VMinQuotient_Parallel(x, y) ! test fused vector operations - ival = FN_VLinearCombination_Parallel(nv, nvarr, xvecs, x) - ival = FN_VScaleAddMulti_Parallel(nv, nvarr, x, xvecs, zvecs) - ival = FN_VDotProdMulti_Parallel(nv, x, xvecs, nvarr) + ival = FN_VLinearCombination_Parallel(int(nv, 4), nvarr, xvecs, x) + ival = FN_VScaleAddMulti_Parallel(int(nv, 4), nvarr, x, xvecs, zvecs) + ival = FN_VDotProdMulti_Parallel(int(nv, 4), x, xvecs, nvarr) ! test vector array operations - ival = FN_VLinearSumVectorArray_Parallel(nv, ONE, xvecs, ONE, xvecs, zvecs) - ival = FN_VScaleVectorArray_Parallel(nv, nvarr, xvecs, zvecs) - ival = FN_VConstVectorArray_Parallel(nv, ONE, xvecs) - ival = FN_VWrmsNormVectorArray_Parallel(nv, xvecs, xvecs, nvarr) - ival = FN_VWrmsNormMaskVectorArray_Parallel(nv, xvecs, xvecs, x, nvarr) + ival = FN_VLinearSumVectorArray_Parallel(int(nv, 4), ONE, xvecs, ONE, xvecs, zvecs) + ival = FN_VScaleVectorArray_Parallel(int(nv, 4), nvarr, xvecs, zvecs) + ival = FN_VConstVectorArray_Parallel(int(nv, 4), ONE, xvecs) + ival = FN_VWrmsNormVectorArray_Parallel(int(nv, 4), xvecs, xvecs, nvarr) + ival = FN_VWrmsNormMaskVectorArray_Parallel(int(nv, 4), xvecs, xvecs, x, nvarr) !==== Cleanup ===== call FN_VDestroy_Parallel(x) @@ -160,15 +160,15 @@ integer(C_INT) function check_ans(ans, X, local_length) result(failure) use test_utilities implicit none - real(C_DOUBLE) :: ans - type(N_Vector) :: X - integer(C_LONG) :: local_length, i - real(C_DOUBLE), pointer :: Xdata(:) + real(C_DOUBLE) :: ans + type(N_Vector) :: X + integer(kind=myindextype) :: local_length, i + real(C_DOUBLE), pointer :: Xdata(:) failure = 0 Xdata => FN_VGetArrayPointer(X) - do i = 1, local_length + do i = 1, local_length if (FNEQ(Xdata(i), ans) > 0) then failure = failure + 1 end if diff --git a/examples/nvector/pthreads/test_fnvector_pthreads_mod.f90 b/examples/nvector/pthreads/test_fnvector_pthreads_mod.f90 index 13b3429927..96db87411a 100644 --- a/examples/nvector/pthreads/test_fnvector_pthreads_mod.f90 +++ b/examples/nvector/pthreads/test_fnvector_pthreads_mod.f90 @@ -17,21 +17,20 @@ module test_nvector_pthreads use, intrinsic :: iso_c_binding - use fnvector_pthreads_mod use test_utilities implicit none - integer(c_long), parameter :: N = 100 ! vector length - integer(c_int), parameter :: nv = 3 ! length of vector arrays - integer(c_int), parameter :: ns = 2 ! number of vector arrays + integer(kind=myindextype), parameter :: N = 100 ! vector length + integer(kind=myindextype), parameter :: ns = 2 ! number of vector arrays + integer(c_int), parameter :: nv = 3 ! length of vector arrays contains integer function smoke_tests() result(ret) implicit none - integer(c_long) :: lenrw(1), leniw(1) ! real and int work space size + integer(kind=myindextype) :: lenrw(1), leniw(1) ! real and int work space size integer(c_long) :: ival ! integer work value real(c_double) :: rval ! real work value real(c_double) :: xdata(N) ! vector data array @@ -94,16 +93,16 @@ integer function smoke_tests() result(ret) rval = FN_VMinQuotient_Pthreads(x, y) ! test fused vector operations - ival = FN_VLinearCombination_Pthreads(nv, nvarr, xvecs, x) - ival = FN_VScaleAddMulti_Pthreads(nv, nvarr, x, xvecs, zvecs) - ival = FN_VDotProdMulti_Pthreads(nv, x, xvecs, nvarr) + ival = FN_VLinearCombination_Pthreads(int(nv, 4), nvarr, xvecs, x) + ival = FN_VScaleAddMulti_Pthreads(int(nv, 4), nvarr, x, xvecs, zvecs) + ival = FN_VDotProdMulti_Pthreads(int(nv, 4), x, xvecs, nvarr) ! test vector array operations - ival = FN_VLinearSumVectorArray_Pthreads(nv, ONE, xvecs, ONE, xvecs, zvecs) - ival = FN_VScaleVectorArray_Pthreads(nv, nvarr, xvecs, zvecs) - ival = FN_VConstVectorArray_Pthreads(nv, ONE, xvecs) - ival = FN_VWrmsNormVectorArray_Pthreads(nv, xvecs, xvecs, nvarr) - ival = FN_VWrmsNormMaskVectorArray_Pthreads(nv, xvecs, xvecs, x, nvarr) + ival = FN_VLinearSumVectorArray_Pthreads(int(nv, 4), ONE, xvecs, ONE, xvecs, zvecs) + ival = FN_VScaleVectorArray_Pthreads(int(nv, 4), nvarr, xvecs, zvecs) + ival = FN_VConstVectorArray_Pthreads(int(nv, 4), ONE, xvecs) + ival = FN_VWrmsNormVectorArray_Pthreads(int(nv, 4), xvecs, xvecs, nvarr) + ival = FN_VWrmsNormMaskVectorArray_Pthreads(int(nv, 4), xvecs, xvecs, x, nvarr) !==== Cleanup ===== call FN_VDestroy_Pthreads(x) @@ -148,10 +147,10 @@ integer(C_INT) function check_ans(ans, X, local_length) result(failure) use test_utilities implicit none - real(C_DOUBLE) :: ans - type(N_Vector) :: X - integer(C_LONG) :: local_length, i - real(C_DOUBLE), pointer :: Xdata(:) + real(C_DOUBLE) :: ans + type(N_Vector) :: X + integer(kind=myindextype) :: local_length, i + real(C_DOUBLE), pointer :: Xdata(:) failure = 0 diff --git a/examples/nvector/serial/test_fnvector_serial_mod.f90 b/examples/nvector/serial/test_fnvector_serial_mod.f90 index eb958fb6ea..8c725b6207 100644 --- a/examples/nvector/serial/test_fnvector_serial_mod.f90 +++ b/examples/nvector/serial/test_fnvector_serial_mod.f90 @@ -22,22 +22,22 @@ module test_nvector_serial use test_utilities implicit none - integer(c_long), parameter :: N = 100 ! vector length - integer(c_int), parameter :: nv = 3 ! length of vector arrays + integer(kind=myindextype), parameter :: N = 100 ! vector length + integer(c_int), parameter :: nv = 3 ! length of vector arrays contains integer function smoke_tests() result(ret) implicit none - integer(c_long) :: lenrw(1), leniw(1) ! real and int work space size - integer(c_long) :: ival ! integer work value - real(c_double) :: rval ! real work value - real(c_double) :: xdata(N) ! vector data array - real(c_double), pointer :: xptr(:) ! pointer to vector data array - real(c_double) :: nvarr(nv) ! array of nv constants to go with vector array - type(N_Vector), pointer :: x, y, z, tmp ! N_Vectors - type(c_ptr) :: xvecs, zvecs ! C pointer to array of C pointers to N_Vectors + integer(kind=myindextype) :: lenrw(1), leniw(1) ! real and int work space size + integer(c_long) :: ival ! integer work value + real(c_double) :: rval ! real work value + real(c_double) :: xdata(N) ! vector data array + real(c_double), pointer :: xptr(:) ! pointer to vector data array + real(c_double) :: nvarr(nv) ! array of nv constants to go with vector array + type(N_Vector), pointer :: x, y, z, tmp ! N_Vectors + type(c_ptr) :: xvecs, zvecs ! C pointer to array of C pointers to N_Vectors !===== Setup ==== x => FN_VMake_Serial(N, xdata, sunctx) @@ -140,17 +140,16 @@ end function unit_tests end module - -integer(C_INT) function check_ans(ans, X, local_length) result(failure) +function check_ans(ans, X, local_length) result(failure) use, intrinsic :: iso_c_binding - use test_utilities implicit none - real(C_DOUBLE) :: ans - type(N_Vector) :: X - integer(C_LONG) :: local_length, i - real(C_DOUBLE), pointer :: Xdata(:) + integer(kind=myindextype) :: failure + real(C_DOUBLE) :: ans + type(N_Vector) :: X + integer(kind=myindextype) :: local_length, i + real(C_DOUBLE), pointer :: Xdata(:) failure = 0 @@ -165,7 +164,6 @@ end function check_ans logical function has_data(X) result(failure) use, intrinsic :: iso_c_binding - use test_utilities implicit none @@ -176,7 +174,6 @@ logical function has_data(X) result(failure) failure = associated(xptr) end function has_data - program main !======== Inclusions ========== use, intrinsic :: iso_c_binding diff --git a/examples/nvector/test_nvector.f90 b/examples/nvector/test_nvector.f90 index c4465f6c46..b97f65b3ca 100644 --- a/examples/nvector/test_nvector.f90 +++ b/examples/nvector/test_nvector.f90 @@ -22,8 +22,6 @@ module test_fnvector use, intrinsic :: iso_c_binding - - use test_utilities implicit none @@ -38,7 +36,7 @@ integer(C_INT) function Test_FN_VMake(X, local_length, myid) & implicit none type(N_Vector) :: X - integer(C_LONG) :: local_length + integer(kind=myindextype) :: local_length integer(C_INT) :: myid if (.not. has_data(X)) then @@ -64,7 +62,7 @@ integer(C_INT) function Test_FN_VGetArrayPointer(W, local_length, myid) & implicit none type(N_Vector) :: W - integer(C_LONG) :: local_length + integer(kind=myindextype) :: local_length integer(C_INT) :: myid ! check vector data @@ -97,13 +95,13 @@ end function Test_FN_VGetArrayPointer integer(C_INT) function Test_FN_VLinearCombination(X, local_length, myid) & result(failure) - type(N_Vector) :: X - integer(C_LONG) :: local_length - integer(C_INT) :: myid, ierr - type(N_Vector), pointer :: Y1, Y2, Y3 - type(c_ptr), target :: V(3) - type(c_ptr) :: Vptr - real(C_DOUBLE) :: c(3) + type(N_Vector) :: X + integer(kind=myindextype) :: local_length + integer(C_INT) :: myid, ierr + type(N_Vector), pointer :: Y1, Y2, Y3 + type(c_ptr), target :: V(3) + type(c_ptr) :: Vptr + real(C_DOUBLE) :: c(3) failure = 0 diff --git a/examples/sunlinsol/band/test_fsunlinsol_band_mod.f90 b/examples/sunlinsol/band/test_fsunlinsol_band_mod.f90 index 48c66684a0..8e6e755762 100644 --- a/examples/sunlinsol/band/test_fsunlinsol_band_mod.f90 +++ b/examples/sunlinsol/band/test_fsunlinsol_band_mod.f90 @@ -20,17 +20,14 @@ module test_fsunlinsol_band use test_utilities implicit none - integer(C_LONG), parameter :: N = 10 - integer(C_LONG), parameter :: mu = 2 - integer(C_LONG), parameter :: ml = 3 + integer(kind=myindextype), parameter :: N = 10 + integer(kind=myindextype), parameter :: mu = 2 + integer(kind=myindextype), parameter :: ml = 3 contains integer(C_INT) function unit_tests() result(fails) use, intrinsic :: iso_c_binding - - - use fnvector_serial_mod use fsunmatrix_band_mod use fsunlinsol_band_mod @@ -39,13 +36,13 @@ integer(C_INT) function unit_tests() result(fails) implicit none type(SUNLinearSolver), pointer :: LS ! test linear solver - type(SUNMatrix), pointer :: A ! test matrices - type(N_Vector), pointer :: x, y, b ! test vectors - real(C_DOUBLE), pointer :: xdata(:), Adata(:) ! data arrays - real(C_DOUBLE) :: tmpr ! temporary real value - integer(C_LONG) :: j, k - integer(C_LONG) :: smu, kstart, kend, offset - integer(C_INT) :: tmp + type(SUNMatrix), pointer :: A ! test matrices + type(N_Vector), pointer :: x, y, b ! test vectors + real(C_DOUBLE), pointer :: xdata(:), Adata(:) ! data arrays + real(C_DOUBLE) :: tmpr ! temporary real value + integer(kind=myindextype) :: j, k + integer(kind=myindextype) :: smu, kstart, kend, offset + integer(C_INT) :: tmp fails = 0 smu = 0 @@ -121,13 +118,14 @@ end function unit_tests integer(C_INT) function check_vector(X, Y, tol) result(failure) use, intrinsic :: iso_c_binding - use test_utilities - implicit none + + + type(N_Vector) :: x, y real(C_DOUBLE) :: tol, maxerr - integer(C_LONG) :: i, xlen, ylen + integer(kind=myindextype) :: i, xlen, ylen real(C_DOUBLE), pointer :: xdata(:), ydata(:) failure = 0 diff --git a/examples/sunlinsol/dense/test_fsunlinsol_dense_mod.f90 b/examples/sunlinsol/dense/test_fsunlinsol_dense_mod.f90 index a06d69eeb5..34da2d20a3 100644 --- a/examples/sunlinsol/dense/test_fsunlinsol_dense_mod.f90 +++ b/examples/sunlinsol/dense/test_fsunlinsol_dense_mod.f90 @@ -20,15 +20,14 @@ module test_fsunlinsol_dense use test_utilities implicit none - integer(C_LONG), private, parameter :: N = 100 + + + integer(kind=myindextype), private, parameter :: N = 100 contains integer(C_INT) function unit_tests() result(fails) use, intrinsic :: iso_c_binding - - - use fnvector_serial_mod use fsunmatrix_dense_mod use fsunlinsol_dense_mod @@ -42,7 +41,7 @@ integer(C_INT) function unit_tests() result(fails) real(C_DOUBLE), pointer :: colj(:), colIj(:) ! matrix column data real(C_DOUBLE), pointer :: xdata(:) ! x vector data real(C_DOUBLE) :: tmpr ! temporary real value - integer(C_LONG) :: j, k + integer(kind=myindextype) :: j, k integer(C_INT) :: tmp fails = 0 @@ -120,14 +119,15 @@ end function unit_tests integer(C_INT) function check_vector(X, Y, tol) result(failure) use, intrinsic :: iso_c_binding - use test_utilities - implicit none - type(N_Vector) :: x, y - real(C_DOUBLE) :: tol, maxerr - integer(C_LONG) :: i, xlen, ylen - real(C_DOUBLE), pointer :: xdata(:), ydata(:) + + + + type(N_Vector) :: x, y + real(C_DOUBLE) :: tol, maxerr + integer(kind=myindextype) :: i, xlen, ylen + real(C_DOUBLE), pointer :: xdata(:), ydata(:) failure = 0 diff --git a/examples/sunlinsol/klu/test_fsunlinsol_klu_mod.f90 b/examples/sunlinsol/klu/test_fsunlinsol_klu_mod.f90 index 360e3c73d8..c46d15a3b3 100644 --- a/examples/sunlinsol/klu/test_fsunlinsol_klu_mod.f90 +++ b/examples/sunlinsol/klu/test_fsunlinsol_klu_mod.f90 @@ -20,7 +20,7 @@ module test_fsunlinsol_klu use test_utilities implicit none - integer(C_LONG), private, parameter :: N = 300 + integer(kind=myindextype), private, parameter :: N = 300 contains @@ -43,7 +43,7 @@ integer(C_INT) function unit_tests() result(fails) real(C_DOUBLE), pointer :: colj(:) ! matrix column data real(C_DOUBLE), pointer :: xdata(:) ! x vector data real(C_DOUBLE) :: tmpr ! temporary real value - integer(C_LONG) :: j, k, i + integer(kind=myindextype) :: j, k, i integer(C_INT) :: tmp fails = 0 diff --git a/examples/sunlinsol/lapackdense/test_fsunlinsol_lapackdense_mod.f90 b/examples/sunlinsol/lapackdense/test_fsunlinsol_lapackdense_mod.f90 index 3751dd2a76..387a126399 100644 --- a/examples/sunlinsol/lapackdense/test_fsunlinsol_lapackdense_mod.f90 +++ b/examples/sunlinsol/lapackdense/test_fsunlinsol_lapackdense_mod.f90 @@ -20,7 +20,9 @@ module test_fsunlinsol_lapackdense use test_utilities implicit none - integer(C_LONG), private, parameter :: N = 100 + + + integer(kind=myindextype), private, parameter :: N = 100 contains @@ -42,7 +44,7 @@ integer(C_INT) function unit_tests() result(fails) real(C_DOUBLE), pointer :: colj(:), colIj(:) ! matrix column data real(C_DOUBLE), pointer :: xdata(:) ! x vector data real(C_DOUBLE) :: tmpr ! temporary real value - integer(C_LONG) :: j, k + integer(kind=myindextype) :: j, k integer(C_INT) :: tmp fails = 0 diff --git a/examples/sunlinsol/pcg/serial/test_fsunlinsol_pcg_mod_serial.f90 b/examples/sunlinsol/pcg/serial/test_fsunlinsol_pcg_mod_serial.f90 index e874047354..f1c22e2ad9 100644 --- a/examples/sunlinsol/pcg/serial/test_fsunlinsol_pcg_mod_serial.f90 +++ b/examples/sunlinsol/pcg/serial/test_fsunlinsol_pcg_mod_serial.f90 @@ -25,13 +25,15 @@ module test_fsunlinsol_pcg_serial use test_utilities implicit none - integer(C_LONG), private, parameter :: N = 100 + + + integer(kind=myindextype), private, parameter :: N = 100 integer(C_INT), private, parameter :: pretype = 1 ! Preconditioning type (1 or 2) integer(C_INT), private, parameter :: maxl = 500 ! maxium Krylov subspace dimension (> 0) real(C_DOUBLE), private, parameter :: tol = 1e-13 ! solver tolerance type, private :: UserData - integer(C_LONG) :: N + integer(kind=myindextype) :: N type(N_Vector), pointer :: d, s end type @@ -55,7 +57,7 @@ integer(C_INT) function unit_tests() result(fails) type(UserData), pointer :: probdata ! problem data real(C_DOUBLE), pointer :: xdata(:) ! x vector data real(C_DOUBLE) :: tmpr ! temporary real value - integer(C_LONG) :: j + integer(kind=myindextype) :: j integer(C_INT) :: tmp ! setup diff --git a/examples/sunlinsol/spbcgs/serial/test_fsunlinsol_spbcgs_mod_serial.f90 b/examples/sunlinsol/spbcgs/serial/test_fsunlinsol_spbcgs_mod_serial.f90 index 5e44e48df2..12941ec00c 100644 --- a/examples/sunlinsol/spbcgs/serial/test_fsunlinsol_spbcgs_mod_serial.f90 +++ b/examples/sunlinsol/spbcgs/serial/test_fsunlinsol_spbcgs_mod_serial.f90 @@ -25,13 +25,15 @@ module test_fsunlinsol_spbcgs_serial use test_utilities implicit none - integer(C_LONG), private, parameter :: N = 100 + + + integer(kind=myindextype), private, parameter :: N = 100 integer(C_INT), private, parameter :: pretype = 1 ! Preconditioning type (1 or 2) integer(C_INT), private, parameter :: maxl = 100 ! maxium Krylov subspace dimension (> 0) real(C_DOUBLE), private, parameter :: tol = 1e-13 ! solver tolerance type, private :: UserData - integer(C_LONG) :: N + integer(kind=myindextype) :: N type(N_Vector), pointer :: d, s1, s2 end type @@ -54,7 +56,7 @@ integer(C_INT) function unit_tests() result(fails) type(UserData), pointer :: probdata ! problem data real(C_DOUBLE), pointer :: xdata(:) ! x vector data real(C_DOUBLE) :: tmpr ! temporary real value - integer(C_LONG) :: j + integer(kind=myindextype) :: j integer(C_INT) :: tmp ! setup diff --git a/examples/sunlinsol/spfgmr/serial/test_fsunlinsol_spfgmr_mod_serial.f90 b/examples/sunlinsol/spfgmr/serial/test_fsunlinsol_spfgmr_mod_serial.f90 index 9a1792a7f1..aa5066aed7 100644 --- a/examples/sunlinsol/spfgmr/serial/test_fsunlinsol_spfgmr_mod_serial.f90 +++ b/examples/sunlinsol/spfgmr/serial/test_fsunlinsol_spfgmr_mod_serial.f90 @@ -21,18 +21,19 @@ module test_fsunlinsol_spfgmr_serial use, intrinsic :: iso_c_binding - use test_utilities implicit none - integer(C_LONG), private, parameter :: N = 100 + + + integer(kind=myindextype), private, parameter :: N = 100 integer(C_INT), private, parameter :: pretype = 1 ! Preconditioning type (1 or 2) integer(C_INT), private, parameter :: gstype = 1 ! Gram-Schmidt orthoognalization type (1 or 2) integer(C_INT), private, parameter :: maxl = 100 ! maxium Krylov subspace dimension (> 0) real(C_DOUBLE), private, parameter :: tol = 1e-13 ! solver tolerance type, private :: UserData - integer(C_LONG) :: N + integer(kind=myindextype) :: N type(N_Vector), pointer :: d, s1, s2 end type @@ -40,9 +41,6 @@ module test_fsunlinsol_spfgmr_serial integer(C_INT) function unit_tests() result(fails) use, intrinsic :: iso_c_binding - - - use fnvector_serial_mod use fsunlinsol_spfgmr_mod use test_sunlinsol @@ -55,7 +53,7 @@ integer(C_INT) function unit_tests() result(fails) type(UserData), pointer :: probdata ! problem data real(C_DOUBLE), pointer :: xdata(:) ! x vector data real(C_DOUBLE) :: tmpr ! temporary real value - integer(C_LONG) :: j + integer(kind=myindextype) :: j integer(C_INT) :: tmp ! setup diff --git a/examples/sunlinsol/spgmr/serial/test_fsunlinsol_spgmr_mod_serial.f90 b/examples/sunlinsol/spgmr/serial/test_fsunlinsol_spgmr_mod_serial.f90 index e0de52a8bd..9f72112a41 100644 --- a/examples/sunlinsol/spgmr/serial/test_fsunlinsol_spgmr_mod_serial.f90 +++ b/examples/sunlinsol/spgmr/serial/test_fsunlinsol_spgmr_mod_serial.f90 @@ -21,18 +21,19 @@ module test_fsunlinsol_spgmr_serial use, intrinsic :: iso_c_binding - use test_utilities implicit none - integer(C_LONG), private, parameter :: N = 100 + + + integer(kind=myindextype), private, parameter :: N = 100 integer(C_INT), private, parameter :: pretype = 1 ! Preconditioning type (1 or 2) integer(C_INT), private, parameter :: gstype = 1 ! Gram-Schmidt orthoognalization type (1 or 2) integer(C_INT), private, parameter :: maxl = 100 ! maxium Krylov subspace dimension (> 0) real(C_DOUBLE), private, parameter :: tol = 1e-13 ! solver tolerance type, private :: UserData - integer(C_LONG) :: N + integer(kind=myindextype) :: N type(N_Vector), pointer :: d, s1, s2 end type @@ -40,9 +41,6 @@ module test_fsunlinsol_spgmr_serial integer(C_INT) function unit_tests() result(fails) use, intrinsic :: iso_c_binding - - - use fnvector_serial_mod use fsunlinsol_spgmr_mod use test_sunlinsol @@ -55,7 +53,7 @@ integer(C_INT) function unit_tests() result(fails) type(UserData), pointer :: probdata ! problem data real(C_DOUBLE), pointer :: xdata(:) ! x vector data real(C_DOUBLE) :: tmpr ! temporary real value - integer(C_LONG) :: j + integer(kind=myindextype) :: j integer(C_INT) :: tmp ! setup @@ -257,13 +255,13 @@ integer(C_INT) function PSolve(udata, rvec, zvec, tol, lr) & implicit none - type(C_PTR), value :: udata - type(N_Vector) :: rvec, zvec - real(C_DOUBLE) :: tol - integer(C_INT) :: lr - type(UserData), pointer :: probdata - real(C_DOUBLE), pointer :: r(:), z(:), d(:) - integer(C_LONG) :: i, N + type(C_PTR), value :: udata + type(N_Vector) :: rvec, zvec + real(C_DOUBLE) :: tol + integer(C_INT) :: lr + type(UserData), pointer :: probdata + real(C_DOUBLE), pointer :: r(:), z(:), d(:) + integer(kind=myindextype) :: i, N call c_f_pointer(udata, probdata) @@ -285,11 +283,11 @@ integer(C_INT) function check_vector(X, Y, tol) result(failure) use, intrinsic :: iso_c_binding use test_fsunlinsol_spgmr_serial use test_utilities - implicit none + type(N_Vector) :: x, y real(C_DOUBLE) :: tol, maxerr - integer(C_LONG) :: i, xlen, ylen + integer(kind=myindextype) :: i, xlen, ylen real(C_DOUBLE), pointer :: xdata(:), ydata(:) failure = 0 diff --git a/examples/sunlinsol/sptfqmr/serial/test_fsunlinsol_sptfqmr_mod_serial.f90 b/examples/sunlinsol/sptfqmr/serial/test_fsunlinsol_sptfqmr_mod_serial.f90 index 055809c074..ea6d19df35 100644 --- a/examples/sunlinsol/sptfqmr/serial/test_fsunlinsol_sptfqmr_mod_serial.f90 +++ b/examples/sunlinsol/sptfqmr/serial/test_fsunlinsol_sptfqmr_mod_serial.f90 @@ -25,13 +25,15 @@ module test_fsunlinsol_sptfqmr_serial use test_utilities implicit none - integer(C_LONG), private, parameter :: N = 100 + + + integer(kind=myindextype), private, parameter :: N = 100 integer(C_INT), private, parameter :: pretype = 1 ! Preconditioning type (1 or 2) integer(C_INT), private, parameter :: maxl = 100 ! maxium Krylov subspace dimension (> 0) real(C_DOUBLE), private, parameter :: tol = 1e-13 ! solver tolerance type, private :: UserData - integer(C_LONG) :: N + integer(kind=myindextype) :: N type(N_Vector), pointer :: d, s1, s2 end type @@ -54,7 +56,7 @@ integer(C_INT) function unit_tests() result(fails) type(UserData), pointer :: probdata ! problem data real(C_DOUBLE), pointer :: xdata(:) ! x vector data real(C_DOUBLE) :: tmpr ! temporary real value - integer(C_LONG) :: j + integer(kind=myindextype) :: j integer(C_INT) :: tmp ! setup diff --git a/examples/sunmatrix/band/test_fsunmatrix_band_mod.f90 b/examples/sunmatrix/band/test_fsunmatrix_band_mod.f90 index 8ebc559680..3fc4bff7a4 100644 --- a/examples/sunmatrix/band/test_fsunmatrix_band_mod.f90 +++ b/examples/sunmatrix/band/test_fsunmatrix_band_mod.f90 @@ -20,9 +20,11 @@ module test_fsunmatrix_band use test_utilities implicit none - integer(C_LONG), parameter :: N = 10 - integer(C_LONG), parameter :: mu = 2 - integer(C_LONG), parameter :: ml = 2 + + + integer(kind=myindextype), parameter :: N = 10 + integer(kind=myindextype), parameter :: mu = 2 + integer(kind=myindextype), parameter :: ml = 2 contains @@ -105,15 +107,15 @@ integer(C_INT) function unit_tests() result(fails) implicit none - type(SUNMatrix), pointer :: A, I - type(N_Vector), pointer :: x, y - real(C_DOUBLE), pointer :: Adata(:), Idata(:), xdata(:), ydata(:) - integer(C_LONG) :: ii, jj, smu, istart, iend, offset + type(SUNMatrix), pointer :: A, I + type(N_Vector), pointer :: x, y + real(C_DOUBLE), pointer :: Adata(:), Idata(:), xdata(:), ydata(:) + integer(kind=myindextype) :: ii, jj, smu, istart, iend, offset fails = 0 A => FSUNBandMatrix(N, mu, ml, sunctx) - I => FSUNBandMatrix(N, 0_8, 0_8, sunctx) + I => FSUNBandMatrix(N, 0_myindextype, 0_myindextype, sunctx) x => FN_VNew_Serial(N, sunctx) y => FN_VNew_Serial(N, sunctx) @@ -144,7 +146,7 @@ integer(C_INT) function unit_tests() result(fails) xdata(jj+1) = jj ! y vector ydata(jj+1) = ZERO - istart = max(0_c_long, jj-ml) + istart = max(0_myindextype, jj-ml) iend = min(N-1, jj+mu) do ii = istart, iend ydata(jj+1) = ydata(jj+1) + (ii+ii-jj)*(ii) diff --git a/examples/sunmatrix/dense/test_fsunmatrix_dense_mod.f90 b/examples/sunmatrix/dense/test_fsunmatrix_dense_mod.f90 index 35ecd897e7..87cac2dff5 100644 --- a/examples/sunmatrix/dense/test_fsunmatrix_dense_mod.f90 +++ b/examples/sunmatrix/dense/test_fsunmatrix_dense_mod.f90 @@ -20,7 +20,7 @@ module test_fsunmatrix_dense use test_utilities implicit none - integer(C_LONG), parameter :: N = 4 + integer(kind=myindextype), parameter :: N = 4 contains @@ -190,10 +190,12 @@ integer(C_INT) function check_matrix(A, B, tol) result(fails) implicit none + + type(SUNMatrix) :: A, B real(C_DOUBLE) :: tol real(C_DOUBLE), pointer :: Adata(:), Bdata(:) - integer(C_LONG) :: Aldata, Bldata, i + integer(kind=myindextype) :: Aldata, Bldata, i fails = 0 diff --git a/examples/sunmatrix/sparse/test_fsunmatrix_sparse_mod.f90 b/examples/sunmatrix/sparse/test_fsunmatrix_sparse_mod.f90 index 740cc82a39..3283cd637e 100644 --- a/examples/sunmatrix/sparse/test_fsunmatrix_sparse_mod.f90 +++ b/examples/sunmatrix/sparse/test_fsunmatrix_sparse_mod.f90 @@ -20,7 +20,7 @@ module test_fsunmatrix_sparse use test_utilities implicit none - integer(C_LONG), parameter :: N = 5 + integer(kind=myindextype), parameter :: N = 5 contains @@ -37,14 +37,14 @@ integer(C_INT) function smoke_tests() result(fails) implicit none ! local variables - type(SUNMatrix), pointer :: A, B ! SUNMatrix - type(N_Vector), pointer :: x, y ! NVectors - real(C_DOUBLE), pointer :: matdat(:) ! matrix data pointer - integer(C_LONG), pointer :: inddat(:) ! indices pointer - integer(C_LONG) :: lenrw(1), leniw(1) ! matrix real and int work space size + type(SUNMatrix), pointer :: A, B ! SUNMatrix + type(N_Vector), pointer :: x, y ! NVectors + real(C_DOUBLE), pointer :: matdat(:) ! matrix data pointer + integer(kind=myindextype), pointer :: inddat(:) ! indices pointer + integer(C_LONG) :: lenrw(1), leniw(1) ! matrix real and int work space size - integer(C_LONG) :: tmp1 - integer(C_INT) :: tmp2 + integer(kind=myindextype) :: tmp1 + integer(C_INT) :: tmp2 fails = 0 @@ -206,12 +206,13 @@ integer(C_INT) function check_matrix(A, B, tol) result(fails) implicit none - type(SUNMatrix) :: A, B - real(C_DOUBLE) :: tol - real(C_DOUBLE), pointer :: Adata(:), Bdata(:) - integer(C_LONG), pointer :: Aidxvals(:), Bidxvals(:) - integer(C_LONG), pointer :: Aidxptrs(:), Bidxptrs(:) - integer(C_LONG) :: i, np, Annz, Bnnz + + type(SUNMatrix) :: A, B + real(C_DOUBLE) :: tol + real(C_DOUBLE), pointer :: Adata(:), Bdata(:) + integer(kind=myindextype), pointer :: Aidxvals(:), Bidxvals(:) + integer(kind=myindextype), pointer :: Aidxptrs(:), Bidxptrs(:) + integer(kind=myindextype) :: i, np, Annz, Bnnz fails = 0 @@ -292,11 +293,11 @@ integer(C_INT) function check_matrix_entry(A, c, tol) result(fails) implicit none - type(SUNMatrix) :: A - real(C_DOUBLE) :: c, tol - real(C_DOUBLE), pointer :: Adata(:) - integer(C_LONG), pointer :: Aidxptrs(:) - integer(C_LONG) :: i, np + type(SUNMatrix) :: A + real(C_DOUBLE) :: c, tol + real(C_DOUBLE), pointer :: Adata(:) + integer(kind=myindextype), pointer :: Aidxptrs(:) + integer(kind=myindextype) :: i, np fails = 0 diff --git a/examples/sunnonlinsol/fixedpoint/test_fsunnonlinsol_fixedpoint_mod.f90 b/examples/sunnonlinsol/fixedpoint/test_fsunnonlinsol_fixedpoint_mod.f90 index bedf8684c2..90213440af 100644 --- a/examples/sunnonlinsol/fixedpoint/test_fsunnonlinsol_fixedpoint_mod.f90 +++ b/examples/sunnonlinsol/fixedpoint/test_fsunnonlinsol_fixedpoint_mod.f90 @@ -21,7 +21,7 @@ module test_fsunnonlinsol_fixedpoint implicit none - integer(C_LONG), parameter :: NEQ = 3 ! number of equations + integer(kind=myindextype), parameter :: NEQ = 3 ! number of equations integer(C_INT), parameter :: MAXIT = 10 ! max nonlinear iters. real(C_DOUBLE), parameter :: TOL = 1.0e-4 ! nonlinear solver tolerance diff --git a/examples/sunnonlinsol/newton/test_fsunnonlinsol_newton_mod.f90 b/examples/sunnonlinsol/newton/test_fsunnonlinsol_newton_mod.f90 index 6f9716979c..9308fa902f 100644 --- a/examples/sunnonlinsol/newton/test_fsunnonlinsol_newton_mod.f90 +++ b/examples/sunnonlinsol/newton/test_fsunnonlinsol_newton_mod.f90 @@ -17,14 +17,11 @@ module test_fsunnonlinsol_newton use, intrinsic :: iso_c_binding - - - use test_utilities implicit none - integer(C_LONG), parameter :: NEQ = 3 ! number of equations + integer(kind=myindextype), parameter :: NEQ = 3 ! number of equations integer(C_INT), parameter :: MAXIT = 10 ! max nonlinear iters. real(C_DOUBLE), parameter :: TOL = 1.0e-2 ! nonlinear solver tolerance diff --git a/examples/templates/cmakelists_openmp_F2003_ex.in b/examples/templates/cmakelists_openmp_F2003_ex.in index cf351be2a7..f8c099048c 100644 --- a/examples/templates/cmakelists_openmp_F2003_ex.in +++ b/examples/templates/cmakelists_openmp_F2003_ex.in @@ -33,6 +33,9 @@ set(CMAKE_Fortran_FLAGS # Specify project name and languages project(@SOLVER@_F2003_openmp_examples Fortran) +# Fortran preprocessor must be enabled +set(CMAKE_Fortran_PREPROCESS ON) + # Enable testing include(CTest) @@ -147,6 +150,8 @@ foreach(example ${examples}) # libraries to link against target_link_libraries(${example_target} ${SUNDIALS_LIBRARIES}) + target_compile_definitions(${example_target} PRIVATE SUNDIALS_INT@SUNDIALS_INDEX_SIZE@_T) + # add the example to ctest add_test(NAME ${example_target} COMMAND ${example_target}) diff --git a/examples/templates/cmakelists_parallel_F2003_ex.in b/examples/templates/cmakelists_parallel_F2003_ex.in index 1d5670752f..5fc13f1bc0 100644 --- a/examples/templates/cmakelists_parallel_F2003_ex.in +++ b/examples/templates/cmakelists_parallel_F2003_ex.in @@ -24,6 +24,9 @@ set(CMAKE_Fortran_FLAGS "@CMAKE_Fortran_FLAGS@" CACHE STRING "Fortran compiler flags") +# Fortran preprocessor must be enabled +set(CMAKE_Fortran_PREPROCESS ON) + # Set cache variables for C compilers and flags set(CMAKE_C_COMPILER "@CMAKE_C_COMPILER@" @@ -106,6 +109,8 @@ foreach(example ${examples}) # libraries to link against target_link_libraries(${example} ${LIBRARIES}) + target_compile_definitions(${example} PRIVATE SUNDIALS_INT@SUNDIALS_INDEX_SIZE@_T) + # add the example to ctest add_test(NAME ${example} COMMAND ${example}) diff --git a/examples/templates/cmakelists_serial_F2003_ex.in b/examples/templates/cmakelists_serial_F2003_ex.in index bd59966da3..fdc2568027 100644 --- a/examples/templates/cmakelists_serial_F2003_ex.in +++ b/examples/templates/cmakelists_serial_F2003_ex.in @@ -32,6 +32,9 @@ set(CMAKE_Fortran_FLAGS # Specify project name and languages project(@SOLVER@_F2003_examples Fortran) +# Fortran preprocessor must be enabled +set(CMAKE_Fortran_PREPROCESS ON) + # Enable testing include(CTest) @@ -143,6 +146,8 @@ foreach(example ${examples}) # libraries to link against target_link_libraries(${example} ${SUNDIALS_LIBRARIES}) + target_compile_definitions(${example} PRIVATE SUNDIALS_INT@SUNDIALS_INDEX_SIZE@_T) + # add the example to ctest add_test(NAME ${example} COMMAND ${example}) @@ -184,6 +189,8 @@ if(KLU_LIBRARIES AND examples_klu) target_link_libraries(${example} ${SUNDIALS_LIBRARIES}) target_link_libraries(${example} ${KLU_LIBRARIES}) + target_compile_definitions(${example} PRIVATE SUNDIALS_INT@SUNDIALS_INDEX_SIZE@_T) + # add the example to ctest add_test(NAME ${example} COMMAND ${example}) diff --git a/examples/templates/makefile_openmp_F2003_ex.in b/examples/templates/makefile_openmp_F2003_ex.in index 16ca3499cf..f1f8152e4a 100644 --- a/examples/templates/makefile_openmp_F2003_ex.in +++ b/examples/templates/makefile_openmp_F2003_ex.in @@ -26,7 +26,7 @@ includedir = ${prefix}/@Fortran_INSTALL_MODDIR@ libdir = ${prefix}/@CMAKE_INSTALL_LIBDIR@ F90 = @_EXAMPLES_Fortran_COMPILER@ -F90FLAGS = @CMAKE_Fortran_FLAGS_RELEASE@ @OpenMP_Fortran_FLAGS@ +F90FLAGS = @CMAKE_Fortran_FLAGS_RELEASE@ @OpenMP_Fortran_FLAGS@ -DSUNDIALS_INT@SUNDIALS_INDEX_SIZE@_T @CMAKE_Fortran_COMPILE_OPTIONS_PREPROCESS_ON@ F90LIBS = @LIBS@ # ----------------------------------------------------------------------------------------- diff --git a/examples/templates/makefile_parallel_F2003_ex.in b/examples/templates/makefile_parallel_F2003_ex.in index e54328fb74..071b0c4cbc 100644 --- a/examples/templates/makefile_parallel_F2003_ex.in +++ b/examples/templates/makefile_parallel_F2003_ex.in @@ -19,7 +19,7 @@ # ----------------------------------------------------------------- F90 = @MPI_Fortran_COMPILER@ -F90FLAGS = @CMAKE_Fortran_FLAGS_RELEASE@ +F90FLAGS = @CMAKE_Fortran_FLAGS_RELEASE@ -DSUNDIALS_INT@SUNDIALS_INDEX_SIZE@_T @CMAKE_Fortran_COMPILE_OPTIONS_PREPROCESS_ON@ F90LIBS = @LIBS@ SUNDIALS_PREFIX = @CMAKE_INSTALL_PREFIX@ diff --git a/examples/templates/makefile_serial_F2003_ex.in b/examples/templates/makefile_serial_F2003_ex.in index fb08ffe4d7..d77f5368d1 100644 --- a/examples/templates/makefile_serial_F2003_ex.in +++ b/examples/templates/makefile_serial_F2003_ex.in @@ -26,7 +26,7 @@ includedir = ${prefix}/@Fortran_INSTALL_MODDIR@ libdir = ${prefix}/@CMAKE_INSTALL_LIBDIR@ F90 = @_EXAMPLES_Fortran_COMPILER@ -F90FLAGS = @CMAKE_Fortran_FLAGS_RELEASE@ +F90FLAGS = @CMAKE_Fortran_FLAGS_RELEASE@ -DSUNDIALS_INT@SUNDIALS_INDEX_SIZE@_T @CMAKE_Fortran_COMPILE_OPTIONS_PREPROCESS_ON@ F90LIBS = @LIBS@ # ------------------------------------------------------------------------------ diff --git a/examples/utilities/test_utilities.f90 b/examples/utilities/test_utilities.f90 index 69a0161487..dc5abe7587 100644 --- a/examples/utilities/test_utilities.f90 +++ b/examples/utilities/test_utilities.f90 @@ -20,6 +20,16 @@ module test_utilities use fsundials_core_mod implicit none + ! Since SUNDIALS can be compiled with 32-bit or 64-bit sunindextype + ! we set the integer kind used for indices in this example based + ! on the the index size SUNDIALS was compiled with so that it works + ! in both configurations. This is not a requirement for user codes. +#if defined(SUNDIALS_INT32_T) + integer, parameter :: myindextype = selected_int_kind(8) +#elif defined(SUNDIALS_INT64_T) + integer, parameter :: myindextype = selected_int_kind(16) +#endif + real(C_DOUBLE), parameter :: SUN_UNIT_ROUNDOFF = epsilon(1.0d0) real(C_DOUBLE) :: NEG_TWO = -2.0d0 diff --git a/src/arkode/CMakeLists.txt b/src/arkode/CMakeLists.txt index f430d53930..267bc89a33 100644 --- a/src/arkode/CMakeLists.txt +++ b/src/arkode/CMakeLists.txt @@ -104,7 +104,7 @@ message(STATUS "Added ARKODE module") # Add F2003 module if the interface is enabled if(BUILD_FORTRAN_MODULE_INTERFACE) - add_subdirectory(fmod) + add_subdirectory("fmod_int${SUNDIALS_INDEX_SIZE}") endif() # Add ARKODE XBraid interface diff --git a/src/arkode/fmod/CMakeLists.txt b/src/arkode/fmod_int32/CMakeLists.txt similarity index 100% rename from src/arkode/fmod/CMakeLists.txt rename to src/arkode/fmod_int32/CMakeLists.txt diff --git a/src/arkode/fmod/farkode_arkstep_mod.c b/src/arkode/fmod_int32/farkode_arkstep_mod.c similarity index 100% rename from src/arkode/fmod/farkode_arkstep_mod.c rename to src/arkode/fmod_int32/farkode_arkstep_mod.c diff --git a/src/arkode/fmod/farkode_arkstep_mod.f90 b/src/arkode/fmod_int32/farkode_arkstep_mod.f90 similarity index 100% rename from src/arkode/fmod/farkode_arkstep_mod.f90 rename to src/arkode/fmod_int32/farkode_arkstep_mod.f90 diff --git a/src/arkode/fmod/farkode_erkstep_mod.c b/src/arkode/fmod_int32/farkode_erkstep_mod.c similarity index 100% rename from src/arkode/fmod/farkode_erkstep_mod.c rename to src/arkode/fmod_int32/farkode_erkstep_mod.c diff --git a/src/arkode/fmod/farkode_erkstep_mod.f90 b/src/arkode/fmod_int32/farkode_erkstep_mod.f90 similarity index 100% rename from src/arkode/fmod/farkode_erkstep_mod.f90 rename to src/arkode/fmod_int32/farkode_erkstep_mod.f90 diff --git a/src/arkode/fmod_int32/farkode_mod.c b/src/arkode/fmod_int32/farkode_mod.c new file mode 100644 index 0000000000..1423d2e582 --- /dev/null +++ b/src/arkode/fmod_int32/farkode_mod.c @@ -0,0 +1,3246 @@ +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.0 + * + * This file is not intended to be easily readable and contains a number of + * coding conventions designed to improve portability and efficiency. Do not make + * changes to this file unless you know what you are doing--modify the SWIG + * interface file instead. + * ----------------------------------------------------------------------------- */ + +/* --------------------------------------------------------------- + * Programmer(s): Auto-generated by swig. + * --------------------------------------------------------------- + * SUNDIALS Copyright Start + * Copyright (c) 2002-2024, Lawrence Livermore National Security + * and Southern Methodist University. + * All rights reserved. + * + * See the top-level LICENSE and NOTICE files for details. + * + * SPDX-License-Identifier: BSD-3-Clause + * SUNDIALS Copyright End + * -------------------------------------------------------------*/ + +/* ----------------------------------------------------------------------------- + * This section contains generic SWIG labels for method/variable + * declarations/attributes, and other compiler dependent labels. + * ----------------------------------------------------------------------------- */ + +/* template workaround for compilers that cannot correctly implement the C++ standard */ +#ifndef SWIGTEMPLATEDISAMBIGUATOR +# if defined(__SUNPRO_CC) && (__SUNPRO_CC <= 0x560) +# define SWIGTEMPLATEDISAMBIGUATOR template +# elif defined(__HP_aCC) +/* Needed even with `aCC -AA' when `aCC -V' reports HP ANSI C++ B3910B A.03.55 */ +/* If we find a maximum version that requires this, the test would be __HP_aCC <= 35500 for A.03.55 */ +# define SWIGTEMPLATEDISAMBIGUATOR template +# else +# define SWIGTEMPLATEDISAMBIGUATOR +# endif +#endif + +/* inline attribute */ +#ifndef SWIGINLINE +# if defined(__cplusplus) || (defined(__GNUC__) && !defined(__STRICT_ANSI__)) +# define SWIGINLINE inline +# else +# define SWIGINLINE +# endif +#endif + +/* attribute recognised by some compilers to avoid 'unused' warnings */ +#ifndef SWIGUNUSED +# if defined(__GNUC__) +# if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)) +# define SWIGUNUSED __attribute__ ((__unused__)) +# else +# define SWIGUNUSED +# endif +# elif defined(__ICC) +# define SWIGUNUSED __attribute__ ((__unused__)) +# else +# define SWIGUNUSED +# endif +#endif + +#ifndef SWIG_MSC_UNSUPPRESS_4505 +# if defined(_MSC_VER) +# pragma warning(disable : 4505) /* unreferenced local function has been removed */ +# endif +#endif + +#ifndef SWIGUNUSEDPARM +# ifdef __cplusplus +# define SWIGUNUSEDPARM(p) +# else +# define SWIGUNUSEDPARM(p) p SWIGUNUSED +# endif +#endif + +/* internal SWIG method */ +#ifndef SWIGINTERN +# define SWIGINTERN static SWIGUNUSED +#endif + +/* internal inline SWIG method */ +#ifndef SWIGINTERNINLINE +# define SWIGINTERNINLINE SWIGINTERN SWIGINLINE +#endif + +/* qualifier for exported *const* global data variables*/ +#ifndef SWIGEXTERN +# ifdef __cplusplus +# define SWIGEXTERN extern +# else +# define SWIGEXTERN +# endif +#endif + +/* exporting methods */ +#if defined(__GNUC__) +# if (__GNUC__ >= 4) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) +# ifndef GCC_HASCLASSVISIBILITY +# define GCC_HASCLASSVISIBILITY +# endif +# endif +#endif + +#ifndef SWIGEXPORT +# if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__) +# if defined(STATIC_LINKED) +# define SWIGEXPORT +# else +# define SWIGEXPORT __declspec(dllexport) +# endif +# else +# if defined(__GNUC__) && defined(GCC_HASCLASSVISIBILITY) +# define SWIGEXPORT __attribute__ ((visibility("default"))) +# else +# define SWIGEXPORT +# endif +# endif +#endif + +/* calling conventions for Windows */ +#ifndef SWIGSTDCALL +# if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__) +# define SWIGSTDCALL __stdcall +# else +# define SWIGSTDCALL +# endif +#endif + +/* Deal with Microsoft's attempt at deprecating C standard runtime functions */ +#if !defined(SWIG_NO_CRT_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_CRT_SECURE_NO_DEPRECATE) +# define _CRT_SECURE_NO_DEPRECATE +#endif + +/* Deal with Microsoft's attempt at deprecating methods in the standard C++ library */ +#if !defined(SWIG_NO_SCL_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_SCL_SECURE_NO_DEPRECATE) +# define _SCL_SECURE_NO_DEPRECATE +#endif + +/* Deal with Apple's deprecated 'AssertMacros.h' from Carbon-framework */ +#if defined(__APPLE__) && !defined(__ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES) +# define __ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES 0 +#endif + +/* Intel's compiler complains if a variable which was never initialised is + * cast to void, which is a common idiom which we use to indicate that we + * are aware a variable isn't used. So we just silence that warning. + * See: https://github.com/swig/swig/issues/192 for more discussion. + */ +#ifdef __INTEL_COMPILER +# pragma warning disable 592 +#endif + +/* Errors in SWIG */ +#define SWIG_UnknownError -1 +#define SWIG_IOError -2 +#define SWIG_RuntimeError -3 +#define SWIG_IndexError -4 +#define SWIG_TypeError -5 +#define SWIG_DivisionByZero -6 +#define SWIG_OverflowError -7 +#define SWIG_SyntaxError -8 +#define SWIG_ValueError -9 +#define SWIG_SystemError -10 +#define SWIG_AttributeError -11 +#define SWIG_MemoryError -12 +#define SWIG_NullReferenceError -13 + + + + +#include +#define SWIG_exception_impl(DECL, CODE, MSG, RETURNNULL) \ + { printf("In " DECL ": " MSG); assert(0); RETURNNULL; } + + +enum { + SWIG_MEM_OWN = 0x01, + SWIG_MEM_RVALUE = 0x02, + SWIG_MEM_CONST = 0x04 +}; + + +#define SWIG_check_mutable(SWIG_CLASS_WRAPPER, TYPENAME, FNAME, FUNCNAME, RETURNNULL) \ + if ((SWIG_CLASS_WRAPPER).cmemflags & SWIG_MEM_CONST) { \ + SWIG_exception_impl(FUNCNAME, SWIG_TypeError, \ + "Cannot pass const " TYPENAME " (class " FNAME ") " \ + "as a mutable reference", \ + RETURNNULL); \ + } + + +#define SWIG_check_nonnull(SWIG_CLASS_WRAPPER, TYPENAME, FNAME, FUNCNAME, RETURNNULL) \ + if (!(SWIG_CLASS_WRAPPER).cptr) { \ + SWIG_exception_impl(FUNCNAME, SWIG_TypeError, \ + "Cannot pass null " TYPENAME " (class " FNAME ") " \ + "as a reference", RETURNNULL); \ + } + + +#define SWIG_check_mutable_nonnull(SWIG_CLASS_WRAPPER, TYPENAME, FNAME, FUNCNAME, RETURNNULL) \ + SWIG_check_nonnull(SWIG_CLASS_WRAPPER, TYPENAME, FNAME, FUNCNAME, RETURNNULL); \ + SWIG_check_mutable(SWIG_CLASS_WRAPPER, TYPENAME, FNAME, FUNCNAME, RETURNNULL); + + +#include +#if defined(_MSC_VER) || defined(__BORLANDC__) || defined(_WATCOM) +# ifndef snprintf +# define snprintf _snprintf +# endif +#endif + + +/* Support for the `contract` feature. + * + * Note that RETURNNULL is first because it's inserted via a 'Replaceall' in + * the fortran.cxx file. + */ +#define SWIG_contract_assert(RETURNNULL, EXPR, MSG) \ + if (!(EXPR)) { SWIG_exception_impl("$decl", SWIG_ValueError, MSG, RETURNNULL); } + + +#define SWIGVERSION 0x040000 +#define SWIG_VERSION SWIGVERSION + + +#define SWIG_as_voidptr(a) (void *)((const void *)(a)) +#define SWIG_as_voidptrptr(a) ((void)SWIG_as_voidptr(*a),(void**)(a)) + + +#include "arkode/arkode.h" +#include "arkode/arkode_bandpre.h" +#include "arkode/arkode_bbdpre.h" +#include "arkode/arkode_butcher.h" +#include "arkode/arkode_butcher_dirk.h" +#include "arkode/arkode_butcher_erk.h" +#include "arkode/arkode_sprk.h" +#include "arkode/arkode_ls.h" + + +#include +#ifdef _MSC_VER +# ifndef strtoull +# define strtoull _strtoui64 +# endif +# ifndef strtoll +# define strtoll _strtoi64 +# endif +#endif + + +typedef struct { + void* data; + size_t size; +} SwigArrayWrapper; + + +SWIGINTERN SwigArrayWrapper SwigArrayWrapper_uninitialized() { + SwigArrayWrapper result; + result.data = NULL; + result.size = 0; + return result; +} + + +#include + + +typedef struct { + void* cptr; + int cmemflags; +} SwigClassWrapper; + + +SWIGINTERN SwigClassWrapper SwigClassWrapper_uninitialized() { + SwigClassWrapper result; + result.cptr = NULL; + result.cmemflags = 0; + return result; +} + + +SWIGINTERN void SWIG_assign(SwigClassWrapper* self, SwigClassWrapper other) { + if (self->cptr == NULL) { + /* LHS is unassigned */ + if (other.cmemflags & SWIG_MEM_RVALUE) { + /* Capture pointer from RHS, clear 'moving' flag */ + self->cptr = other.cptr; + self->cmemflags = other.cmemflags & (~SWIG_MEM_RVALUE); + } else { + /* Become a reference to the other object */ + self->cptr = other.cptr; + self->cmemflags = other.cmemflags & (~SWIG_MEM_OWN); + } + } else if (other.cptr == NULL) { + /* Replace LHS with a null pointer */ + free(self->cptr); + *self = SwigClassWrapper_uninitialized(); + } else { + if (self->cmemflags & SWIG_MEM_OWN) { + free(self->cptr); + } + self->cptr = other.cptr; + if (other.cmemflags & SWIG_MEM_RVALUE) { + /* Capture RHS */ + self->cmemflags = other.cmemflags & ~SWIG_MEM_RVALUE; + } else { + /* Point to RHS */ + self->cmemflags = other.cmemflags & ~SWIG_MEM_OWN; + } + } +} + +SWIGEXPORT int _wrap_FARKodeResize(void *farg1, N_Vector farg2, double const *farg3, double const *farg4, ARKVecResizeFn farg5, void *farg6) { + int fresult ; + void *arg1 = (void *) 0 ; + N_Vector arg2 = (N_Vector) 0 ; + sunrealtype arg3 ; + sunrealtype arg4 ; + ARKVecResizeFn arg5 = (ARKVecResizeFn) 0 ; + void *arg6 = (void *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (N_Vector)(farg2); + arg3 = (sunrealtype)(*farg3); + arg4 = (sunrealtype)(*farg4); + arg5 = (ARKVecResizeFn)(farg5); + arg6 = (void *)(farg6); + result = (int)ARKodeResize(arg1,arg2,arg3,arg4,arg5,arg6); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKodeReset(void *farg1, double const *farg2, N_Vector farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + N_Vector arg3 = (N_Vector) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + arg3 = (N_Vector)(farg3); + result = (int)ARKodeReset(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKodeSStolerances(void *farg1, double const *farg2, double const *farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + sunrealtype arg3 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + arg3 = (sunrealtype)(*farg3); + result = (int)ARKodeSStolerances(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKodeSVtolerances(void *farg1, double const *farg2, N_Vector farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + N_Vector arg3 = (N_Vector) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + arg3 = (N_Vector)(farg3); + result = (int)ARKodeSVtolerances(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKodeWFtolerances(void *farg1, ARKEwtFn farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + ARKEwtFn arg2 = (ARKEwtFn) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (ARKEwtFn)(farg2); + result = (int)ARKodeWFtolerances(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKodeResStolerance(void *farg1, double const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + result = (int)ARKodeResStolerance(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKodeResVtolerance(void *farg1, N_Vector farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + N_Vector arg2 = (N_Vector) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (N_Vector)(farg2); + result = (int)ARKodeResVtolerance(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKodeResFtolerance(void *farg1, ARKRwtFn farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + ARKRwtFn arg2 = (ARKRwtFn) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (ARKRwtFn)(farg2); + result = (int)ARKodeResFtolerance(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKodeRootInit(void *farg1, int const *farg2, ARKRootFn farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + ARKRootFn arg3 = (ARKRootFn) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + arg3 = (ARKRootFn)(farg3); + result = (int)ARKodeRootInit(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKodeSetRootDirection(void *farg1, int *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + int *arg2 = (int *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int *)(farg2); + result = (int)ARKodeSetRootDirection(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKodeSetNoInactiveRootWarn(void *farg1) { + int fresult ; + void *arg1 = (void *) 0 ; + int result; + + arg1 = (void *)(farg1); + result = (int)ARKodeSetNoInactiveRootWarn(arg1); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKodeSetDefaults(void *farg1) { + int fresult ; + void *arg1 = (void *) 0 ; + int result; + + arg1 = (void *)(farg1); + result = (int)ARKodeSetDefaults(arg1); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKodeSetOrder(void *farg1, int const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + result = (int)ARKodeSetOrder(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKodeSetInterpolantType(void *farg1, int const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + result = (int)ARKodeSetInterpolantType(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKodeSetInterpolantDegree(void *farg1, int const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + result = (int)ARKodeSetInterpolantDegree(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKodeSetMaxNumSteps(void *farg1, long const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long)(*farg2); + result = (int)ARKodeSetMaxNumSteps(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKodeSetInterpolateStopTime(void *farg1, int const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + result = (int)ARKodeSetInterpolateStopTime(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKodeSetStopTime(void *farg1, double const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + result = (int)ARKodeSetStopTime(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKodeClearStopTime(void *farg1) { + int fresult ; + void *arg1 = (void *) 0 ; + int result; + + arg1 = (void *)(farg1); + result = (int)ARKodeClearStopTime(arg1); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKodeSetFixedStep(void *farg1, double const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + result = (int)ARKodeSetFixedStep(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKodeSetUserData(void *farg1, void *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + void *arg2 = (void *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (void *)(farg2); + result = (int)ARKodeSetUserData(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKodeSetPostprocessStepFn(void *farg1, ARKPostProcessFn farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + ARKPostProcessFn arg2 = (ARKPostProcessFn) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (ARKPostProcessFn)(farg2); + result = (int)ARKodeSetPostprocessStepFn(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKodeSetPostprocessStageFn(void *farg1, ARKPostProcessFn farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + ARKPostProcessFn arg2 = (ARKPostProcessFn) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (ARKPostProcessFn)(farg2); + result = (int)ARKodeSetPostprocessStageFn(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKodeSetNonlinearSolver(void *farg1, SUNNonlinearSolver farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + SUNNonlinearSolver arg2 = (SUNNonlinearSolver) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (SUNNonlinearSolver)(farg2); + result = (int)ARKodeSetNonlinearSolver(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKodeSetLinear(void *farg1, int const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + result = (int)ARKodeSetLinear(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKodeSetNonlinear(void *farg1) { + int fresult ; + void *arg1 = (void *) 0 ; + int result; + + arg1 = (void *)(farg1); + result = (int)ARKodeSetNonlinear(arg1); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKodeSetAutonomous(void *farg1, int const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + result = (int)ARKodeSetAutonomous(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKodeSetNlsRhsFn(void *farg1, ARKRhsFn farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + ARKRhsFn arg2 = (ARKRhsFn) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (ARKRhsFn)(farg2); + result = (int)ARKodeSetNlsRhsFn(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKodeSetDeduceImplicitRhs(void *farg1, int const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + result = (int)ARKodeSetDeduceImplicitRhs(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKodeSetNonlinCRDown(void *farg1, double const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + result = (int)ARKodeSetNonlinCRDown(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKodeSetNonlinRDiv(void *farg1, double const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + result = (int)ARKodeSetNonlinRDiv(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKodeSetDeltaGammaMax(void *farg1, double const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + result = (int)ARKodeSetDeltaGammaMax(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKodeSetLSetupFrequency(void *farg1, int const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + result = (int)ARKodeSetLSetupFrequency(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKodeSetPredictorMethod(void *farg1, int const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + result = (int)ARKodeSetPredictorMethod(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKodeSetMaxNonlinIters(void *farg1, int const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + result = (int)ARKodeSetMaxNonlinIters(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKodeSetMaxConvFails(void *farg1, int const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + result = (int)ARKodeSetMaxConvFails(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKodeSetNonlinConvCoef(void *farg1, double const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + result = (int)ARKodeSetNonlinConvCoef(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKodeSetStagePredictFn(void *farg1, ARKStagePredictFn farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + ARKStagePredictFn arg2 = (ARKStagePredictFn) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (ARKStagePredictFn)(farg2); + result = (int)ARKodeSetStagePredictFn(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKodeSetAdaptController(void *farg1, SUNAdaptController farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + SUNAdaptController arg2 = (SUNAdaptController) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (SUNAdaptController)(farg2); + result = (int)ARKodeSetAdaptController(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKodeSetAdaptivityAdjustment(void *farg1, int const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + result = (int)ARKodeSetAdaptivityAdjustment(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKodeSetCFLFraction(void *farg1, double const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + result = (int)ARKodeSetCFLFraction(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKodeSetErrorBias(void *farg1, double const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + result = (int)ARKodeSetErrorBias(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKodeSetSafetyFactor(void *farg1, double const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + result = (int)ARKodeSetSafetyFactor(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKodeSetMaxGrowth(void *farg1, double const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + result = (int)ARKodeSetMaxGrowth(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKodeSetMinReduction(void *farg1, double const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + result = (int)ARKodeSetMinReduction(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKodeSetFixedStepBounds(void *farg1, double const *farg2, double const *farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + sunrealtype arg3 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + arg3 = (sunrealtype)(*farg3); + result = (int)ARKodeSetFixedStepBounds(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKodeSetMaxFirstGrowth(void *farg1, double const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + result = (int)ARKodeSetMaxFirstGrowth(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKodeSetMaxEFailGrowth(void *farg1, double const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + result = (int)ARKodeSetMaxEFailGrowth(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKodeSetSmallNumEFails(void *farg1, int const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + result = (int)ARKodeSetSmallNumEFails(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKodeSetMaxCFailGrowth(void *farg1, double const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + result = (int)ARKodeSetMaxCFailGrowth(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKodeSetStabilityFn(void *farg1, ARKExpStabFn farg2, void *farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + ARKExpStabFn arg2 = (ARKExpStabFn) 0 ; + void *arg3 = (void *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (ARKExpStabFn)(farg2); + arg3 = (void *)(farg3); + result = (int)ARKodeSetStabilityFn(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKodeSetMaxErrTestFails(void *farg1, int const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + result = (int)ARKodeSetMaxErrTestFails(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKodeSetConstraints(void *farg1, N_Vector farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + N_Vector arg2 = (N_Vector) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (N_Vector)(farg2); + result = (int)ARKodeSetConstraints(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKodeSetMaxHnilWarns(void *farg1, int const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + result = (int)ARKodeSetMaxHnilWarns(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKodeSetInitStep(void *farg1, double const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + result = (int)ARKodeSetInitStep(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKodeSetMinStep(void *farg1, double const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + result = (int)ARKodeSetMinStep(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKodeSetMaxStep(void *farg1, double const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + result = (int)ARKodeSetMaxStep(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKodeSetMaxNumConstrFails(void *farg1, int const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + result = (int)ARKodeSetMaxNumConstrFails(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKodeEvolve(void *farg1, double const *farg2, N_Vector farg3, double *farg4, int const *farg5) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + N_Vector arg3 = (N_Vector) 0 ; + sunrealtype *arg4 = (sunrealtype *) 0 ; + int arg5 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + arg3 = (N_Vector)(farg3); + arg4 = (sunrealtype *)(farg4); + arg5 = (int)(*farg5); + result = (int)ARKodeEvolve(arg1,arg2,arg3,arg4,arg5); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKodeGetDky(void *farg1, double const *farg2, int const *farg3, N_Vector farg4) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + int arg3 ; + N_Vector arg4 = (N_Vector) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + arg3 = (int)(*farg3); + arg4 = (N_Vector)(farg4); + result = (int)ARKodeGetDky(arg1,arg2,arg3,arg4); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKodeComputeState(void *farg1, N_Vector farg2, N_Vector farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + N_Vector arg2 = (N_Vector) 0 ; + N_Vector arg3 = (N_Vector) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (N_Vector)(farg2); + arg3 = (N_Vector)(farg3); + result = (int)ARKodeComputeState(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKodeGetNumStepAttempts(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)ARKodeGetNumStepAttempts(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKodeGetWorkSpace(void *farg1, long *farg2, long *farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + long *arg3 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + arg3 = (long *)(farg3); + result = (int)ARKodeGetWorkSpace(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKodeGetNumSteps(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)ARKodeGetNumSteps(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKodeGetLastStep(void *farg1, double *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype *arg2 = (sunrealtype *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype *)(farg2); + result = (int)ARKodeGetLastStep(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKodeGetCurrentStep(void *farg1, double *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype *arg2 = (sunrealtype *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype *)(farg2); + result = (int)ARKodeGetCurrentStep(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKodeGetErrWeights(void *farg1, N_Vector farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + N_Vector arg2 = (N_Vector) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (N_Vector)(farg2); + result = (int)ARKodeGetErrWeights(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKodeGetNumGEvals(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)ARKodeGetNumGEvals(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKodeGetRootInfo(void *farg1, int *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + int *arg2 = (int *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int *)(farg2); + result = (int)ARKodeGetRootInfo(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKodeGetUserData(void *farg1, void *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + void **arg2 = (void **) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (void **)(farg2); + result = (int)ARKodeGetUserData(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKodePrintAllStats(void *farg1, void *farg2, int const *farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + FILE *arg2 = (FILE *) 0 ; + SUNOutputFormat arg3 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (FILE *)(farg2); + arg3 = (SUNOutputFormat)(*farg3); + result = (int)ARKodePrintAllStats(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT SwigArrayWrapper _wrap_FARKodeGetReturnFlagName(long const *farg1) { + SwigArrayWrapper fresult ; + long arg1 ; + char *result = 0 ; + + arg1 = (long)(*farg1); + result = (char *)ARKodeGetReturnFlagName(arg1); + fresult.size = strlen((const char*)(result)); + fresult.data = (char *)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKodeWriteParameters(void *farg1, void *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + FILE *arg2 = (FILE *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (FILE *)(farg2); + result = (int)ARKodeWriteParameters(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKodeGetNumExpSteps(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)ARKodeGetNumExpSteps(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKodeGetNumAccSteps(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)ARKodeGetNumAccSteps(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKodeGetNumErrTestFails(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)ARKodeGetNumErrTestFails(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKodeGetEstLocalErrors(void *farg1, N_Vector farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + N_Vector arg2 = (N_Vector) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (N_Vector)(farg2); + result = (int)ARKodeGetEstLocalErrors(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKodeGetActualInitStep(void *farg1, double *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype *arg2 = (sunrealtype *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype *)(farg2); + result = (int)ARKodeGetActualInitStep(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKodeGetTolScaleFactor(void *farg1, double *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype *arg2 = (sunrealtype *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype *)(farg2); + result = (int)ARKodeGetTolScaleFactor(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKodeGetNumConstrFails(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)ARKodeGetNumConstrFails(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKodeGetStepStats(void *farg1, long *farg2, double *farg3, double *farg4, double *farg5, double *farg6) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + sunrealtype *arg3 = (sunrealtype *) 0 ; + sunrealtype *arg4 = (sunrealtype *) 0 ; + sunrealtype *arg5 = (sunrealtype *) 0 ; + sunrealtype *arg6 = (sunrealtype *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + arg3 = (sunrealtype *)(farg3); + arg4 = (sunrealtype *)(farg4); + arg5 = (sunrealtype *)(farg5); + arg6 = (sunrealtype *)(farg6); + result = (int)ARKodeGetStepStats(arg1,arg2,arg3,arg4,arg5,arg6); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKodeGetNumLinSolvSetups(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)ARKodeGetNumLinSolvSetups(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKodeGetCurrentTime(void *farg1, double *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype *arg2 = (sunrealtype *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype *)(farg2); + result = (int)ARKodeGetCurrentTime(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKodeGetCurrentState(void *farg1, void *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + N_Vector *arg2 = (N_Vector *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (N_Vector *)(farg2); + result = (int)ARKodeGetCurrentState(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKodeGetCurrentGamma(void *farg1, double *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype *arg2 = (sunrealtype *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype *)(farg2); + result = (int)ARKodeGetCurrentGamma(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKodeGetNonlinearSystemData(void *farg1, double *farg2, void *farg3, void *farg4, void *farg5, double *farg6, void *farg7, void *farg8) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype *arg2 = (sunrealtype *) 0 ; + N_Vector *arg3 = (N_Vector *) 0 ; + N_Vector *arg4 = (N_Vector *) 0 ; + N_Vector *arg5 = (N_Vector *) 0 ; + sunrealtype *arg6 = (sunrealtype *) 0 ; + N_Vector *arg7 = (N_Vector *) 0 ; + void **arg8 = (void **) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype *)(farg2); + arg3 = (N_Vector *)(farg3); + arg4 = (N_Vector *)(farg4); + arg5 = (N_Vector *)(farg5); + arg6 = (sunrealtype *)(farg6); + arg7 = (N_Vector *)(farg7); + arg8 = (void **)(farg8); + result = (int)ARKodeGetNonlinearSystemData(arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKodeGetNumNonlinSolvIters(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)ARKodeGetNumNonlinSolvIters(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKodeGetNumNonlinSolvConvFails(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)ARKodeGetNumNonlinSolvConvFails(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKodeGetNonlinSolvStats(void *farg1, long *farg2, long *farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + long *arg3 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + arg3 = (long *)(farg3); + result = (int)ARKodeGetNonlinSolvStats(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKodeGetNumStepSolveFails(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)ARKodeGetNumStepSolveFails(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKodeGetJac(void *farg1, void *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + SUNMatrix *arg2 = (SUNMatrix *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (SUNMatrix *)(farg2); + result = (int)ARKodeGetJac(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKodeGetJacTime(void *farg1, double *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype *arg2 = (sunrealtype *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype *)(farg2); + result = (int)ARKodeGetJacTime(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKodeGetJacNumSteps(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)ARKodeGetJacNumSteps(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKodeGetLinWorkSpace(void *farg1, long *farg2, long *farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + long *arg3 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + arg3 = (long *)(farg3); + result = (int)ARKodeGetLinWorkSpace(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKodeGetNumJacEvals(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)ARKodeGetNumJacEvals(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKodeGetNumPrecEvals(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)ARKodeGetNumPrecEvals(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKodeGetNumPrecSolves(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)ARKodeGetNumPrecSolves(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKodeGetNumLinIters(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)ARKodeGetNumLinIters(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKodeGetNumLinConvFails(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)ARKodeGetNumLinConvFails(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKodeGetNumJTSetupEvals(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)ARKodeGetNumJTSetupEvals(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKodeGetNumJtimesEvals(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)ARKodeGetNumJtimesEvals(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKodeGetNumLinRhsEvals(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)ARKodeGetNumLinRhsEvals(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKodeGetLastLinFlag(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)ARKodeGetLastLinFlag(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT SwigArrayWrapper _wrap_FARKodeGetLinReturnFlagName(long const *farg1) { + SwigArrayWrapper fresult ; + long arg1 ; + char *result = 0 ; + + arg1 = (long)(*farg1); + result = (char *)ARKodeGetLinReturnFlagName(arg1); + fresult.size = strlen((const char*)(result)); + fresult.data = (char *)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKodeGetCurrentMassMatrix(void *farg1, void *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + SUNMatrix *arg2 = (SUNMatrix *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (SUNMatrix *)(farg2); + result = (int)ARKodeGetCurrentMassMatrix(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKodeGetResWeights(void *farg1, N_Vector farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + N_Vector arg2 = (N_Vector) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (N_Vector)(farg2); + result = (int)ARKodeGetResWeights(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKodeGetMassWorkSpace(void *farg1, long *farg2, long *farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + long *arg3 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + arg3 = (long *)(farg3); + result = (int)ARKodeGetMassWorkSpace(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKodeGetNumMassSetups(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)ARKodeGetNumMassSetups(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKodeGetNumMassMultSetups(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)ARKodeGetNumMassMultSetups(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKodeGetNumMassMult(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)ARKodeGetNumMassMult(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKodeGetNumMassSolves(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)ARKodeGetNumMassSolves(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKodeGetNumMassPrecEvals(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)ARKodeGetNumMassPrecEvals(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKodeGetNumMassPrecSolves(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)ARKodeGetNumMassPrecSolves(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKodeGetNumMassIters(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)ARKodeGetNumMassIters(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKodeGetNumMassConvFails(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)ARKodeGetNumMassConvFails(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKodeGetNumMTSetups(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)ARKodeGetNumMTSetups(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKodeGetLastMassFlag(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)ARKodeGetLastMassFlag(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT void _wrap_FARKodeFree(void *farg1) { + void **arg1 = (void **) 0 ; + + arg1 = (void **)(farg1); + ARKodeFree(arg1); +} + + +SWIGEXPORT void _wrap_FARKodePrintMem(void *farg1, void *farg2) { + void *arg1 = (void *) 0 ; + FILE *arg2 = (FILE *) 0 ; + + arg1 = (void *)(farg1); + arg2 = (FILE *)(farg2); + ARKodePrintMem(arg1,arg2); +} + + +SWIGEXPORT int _wrap_FARKodeSetRelaxFn(void *farg1, ARKRelaxFn farg2, ARKRelaxJacFn farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + ARKRelaxFn arg2 = (ARKRelaxFn) 0 ; + ARKRelaxJacFn arg3 = (ARKRelaxJacFn) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (ARKRelaxFn)(farg2); + arg3 = (ARKRelaxJacFn)(farg3); + result = (int)ARKodeSetRelaxFn(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKodeSetRelaxEtaFail(void *farg1, double const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + result = (int)ARKodeSetRelaxEtaFail(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKodeSetRelaxLowerBound(void *farg1, double const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + result = (int)ARKodeSetRelaxLowerBound(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKodeSetRelaxMaxFails(void *farg1, int const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + result = (int)ARKodeSetRelaxMaxFails(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKodeSetRelaxMaxIters(void *farg1, int const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + result = (int)ARKodeSetRelaxMaxIters(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKodeSetRelaxSolver(void *farg1, int const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + ARKRelaxSolver arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (ARKRelaxSolver)(*farg2); + result = (int)ARKodeSetRelaxSolver(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKodeSetRelaxResTol(void *farg1, double const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + result = (int)ARKodeSetRelaxResTol(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKodeSetRelaxTol(void *farg1, double const *farg2, double const *farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + sunrealtype arg3 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + arg3 = (sunrealtype)(*farg3); + result = (int)ARKodeSetRelaxTol(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKodeSetRelaxUpperBound(void *farg1, double const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + result = (int)ARKodeSetRelaxUpperBound(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKodeGetNumRelaxFnEvals(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)ARKodeGetNumRelaxFnEvals(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKodeGetNumRelaxJacEvals(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)ARKodeGetNumRelaxJacEvals(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKodeGetNumRelaxFails(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)ARKodeGetNumRelaxFails(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKodeGetNumRelaxBoundFails(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)ARKodeGetNumRelaxBoundFails(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKodeGetNumRelaxSolveFails(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)ARKodeGetNumRelaxSolveFails(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKodeGetNumRelaxSolveIters(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)ARKodeGetNumRelaxSolveIters(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKBandPrecInit(void *farg1, int32_t const *farg2, int32_t const *farg3, int32_t const *farg4) { + int fresult ; + void *arg1 = (void *) 0 ; + sunindextype arg2 ; + sunindextype arg3 ; + sunindextype arg4 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunindextype)(*farg2); + arg3 = (sunindextype)(*farg3); + arg4 = (sunindextype)(*farg4); + result = (int)ARKBandPrecInit(arg1,arg2,arg3,arg4); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKBandPrecGetWorkSpace(void *farg1, long *farg2, long *farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + long *arg3 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + arg3 = (long *)(farg3); + result = (int)ARKBandPrecGetWorkSpace(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKBandPrecGetNumRhsEvals(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)ARKBandPrecGetNumRhsEvals(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKBBDPrecInit(void *farg1, int32_t const *farg2, int32_t const *farg3, int32_t const *farg4, int32_t const *farg5, int32_t const *farg6, double const *farg7, ARKLocalFn farg8, ARKCommFn farg9) { + int fresult ; + void *arg1 = (void *) 0 ; + sunindextype arg2 ; + sunindextype arg3 ; + sunindextype arg4 ; + sunindextype arg5 ; + sunindextype arg6 ; + sunrealtype arg7 ; + ARKLocalFn arg8 = (ARKLocalFn) 0 ; + ARKCommFn arg9 = (ARKCommFn) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunindextype)(*farg2); + arg3 = (sunindextype)(*farg3); + arg4 = (sunindextype)(*farg4); + arg5 = (sunindextype)(*farg5); + arg6 = (sunindextype)(*farg6); + arg7 = (sunrealtype)(*farg7); + arg8 = (ARKLocalFn)(farg8); + arg9 = (ARKCommFn)(farg9); + result = (int)ARKBBDPrecInit(arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKBBDPrecReInit(void *farg1, int32_t const *farg2, int32_t const *farg3, double const *farg4) { + int fresult ; + void *arg1 = (void *) 0 ; + sunindextype arg2 ; + sunindextype arg3 ; + sunrealtype arg4 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunindextype)(*farg2); + arg3 = (sunindextype)(*farg3); + arg4 = (sunrealtype)(*farg4); + result = (int)ARKBBDPrecReInit(arg1,arg2,arg3,arg4); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKBBDPrecGetWorkSpace(void *farg1, long *farg2, long *farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + long *arg3 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + arg3 = (long *)(farg3); + result = (int)ARKBBDPrecGetWorkSpace(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKBBDPrecGetNumGfnEvals(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)ARKBBDPrecGetNumGfnEvals(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT void _wrap_ARKodeButcherTableMem_q_set(SwigClassWrapper const *farg1, int const *farg2) { + struct ARKodeButcherTableMem *arg1 = (struct ARKodeButcherTableMem *) 0 ; + int arg2 ; + + SWIG_check_mutable_nonnull(*farg1, "struct ARKodeButcherTableMem *", "ARKodeButcherTableMem", "ARKodeButcherTableMem::q", return ); + arg1 = (struct ARKodeButcherTableMem *)(farg1->cptr); + arg2 = (int)(*farg2); + if (arg1) (arg1)->q = arg2; +} + + +SWIGEXPORT int _wrap_ARKodeButcherTableMem_q_get(SwigClassWrapper const *farg1) { + int fresult ; + struct ARKodeButcherTableMem *arg1 = (struct ARKodeButcherTableMem *) 0 ; + int result; + + SWIG_check_mutable_nonnull(*farg1, "struct ARKodeButcherTableMem *", "ARKodeButcherTableMem", "ARKodeButcherTableMem::q", return 0); + arg1 = (struct ARKodeButcherTableMem *)(farg1->cptr); + result = (int) ((arg1)->q); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT void _wrap_ARKodeButcherTableMem_p_set(SwigClassWrapper const *farg1, int const *farg2) { + struct ARKodeButcherTableMem *arg1 = (struct ARKodeButcherTableMem *) 0 ; + int arg2 ; + + SWIG_check_mutable_nonnull(*farg1, "struct ARKodeButcherTableMem *", "ARKodeButcherTableMem", "ARKodeButcherTableMem::p", return ); + arg1 = (struct ARKodeButcherTableMem *)(farg1->cptr); + arg2 = (int)(*farg2); + if (arg1) (arg1)->p = arg2; +} + + +SWIGEXPORT int _wrap_ARKodeButcherTableMem_p_get(SwigClassWrapper const *farg1) { + int fresult ; + struct ARKodeButcherTableMem *arg1 = (struct ARKodeButcherTableMem *) 0 ; + int result; + + SWIG_check_mutable_nonnull(*farg1, "struct ARKodeButcherTableMem *", "ARKodeButcherTableMem", "ARKodeButcherTableMem::p", return 0); + arg1 = (struct ARKodeButcherTableMem *)(farg1->cptr); + result = (int) ((arg1)->p); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT void _wrap_ARKodeButcherTableMem_stages_set(SwigClassWrapper const *farg1, int const *farg2) { + struct ARKodeButcherTableMem *arg1 = (struct ARKodeButcherTableMem *) 0 ; + int arg2 ; + + SWIG_check_mutable_nonnull(*farg1, "struct ARKodeButcherTableMem *", "ARKodeButcherTableMem", "ARKodeButcherTableMem::stages", return ); + arg1 = (struct ARKodeButcherTableMem *)(farg1->cptr); + arg2 = (int)(*farg2); + if (arg1) (arg1)->stages = arg2; +} + + +SWIGEXPORT int _wrap_ARKodeButcherTableMem_stages_get(SwigClassWrapper const *farg1) { + int fresult ; + struct ARKodeButcherTableMem *arg1 = (struct ARKodeButcherTableMem *) 0 ; + int result; + + SWIG_check_mutable_nonnull(*farg1, "struct ARKodeButcherTableMem *", "ARKodeButcherTableMem", "ARKodeButcherTableMem::stages", return 0); + arg1 = (struct ARKodeButcherTableMem *)(farg1->cptr); + result = (int) ((arg1)->stages); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT void _wrap_ARKodeButcherTableMem_A_set(SwigClassWrapper const *farg1, void *farg2) { + struct ARKodeButcherTableMem *arg1 = (struct ARKodeButcherTableMem *) 0 ; + sunrealtype **arg2 = (sunrealtype **) 0 ; + + SWIG_check_mutable_nonnull(*farg1, "struct ARKodeButcherTableMem *", "ARKodeButcherTableMem", "ARKodeButcherTableMem::A", return ); + arg1 = (struct ARKodeButcherTableMem *)(farg1->cptr); + arg2 = (sunrealtype **)(farg2); + if (arg1) (arg1)->A = arg2; +} + + +SWIGEXPORT void * _wrap_ARKodeButcherTableMem_A_get(SwigClassWrapper const *farg1) { + void * fresult ; + struct ARKodeButcherTableMem *arg1 = (struct ARKodeButcherTableMem *) 0 ; + sunrealtype **result = 0 ; + + SWIG_check_mutable_nonnull(*farg1, "struct ARKodeButcherTableMem *", "ARKodeButcherTableMem", "ARKodeButcherTableMem::A", return 0); + arg1 = (struct ARKodeButcherTableMem *)(farg1->cptr); + result = (sunrealtype **) ((arg1)->A); + fresult = result; + return fresult; +} + + +SWIGEXPORT void _wrap_ARKodeButcherTableMem_c_set(SwigClassWrapper const *farg1, double *farg2) { + struct ARKodeButcherTableMem *arg1 = (struct ARKodeButcherTableMem *) 0 ; + sunrealtype *arg2 = (sunrealtype *) 0 ; + + SWIG_check_mutable_nonnull(*farg1, "struct ARKodeButcherTableMem *", "ARKodeButcherTableMem", "ARKodeButcherTableMem::c", return ); + arg1 = (struct ARKodeButcherTableMem *)(farg1->cptr); + arg2 = (sunrealtype *)(farg2); + if (arg1) (arg1)->c = arg2; +} + + +SWIGEXPORT double * _wrap_ARKodeButcherTableMem_c_get(SwigClassWrapper const *farg1) { + double * fresult ; + struct ARKodeButcherTableMem *arg1 = (struct ARKodeButcherTableMem *) 0 ; + sunrealtype *result = 0 ; + + SWIG_check_mutable_nonnull(*farg1, "struct ARKodeButcherTableMem *", "ARKodeButcherTableMem", "ARKodeButcherTableMem::c", return 0); + arg1 = (struct ARKodeButcherTableMem *)(farg1->cptr); + result = (sunrealtype *) ((arg1)->c); + fresult = result; + return fresult; +} + + +SWIGEXPORT void _wrap_ARKodeButcherTableMem_b_set(SwigClassWrapper const *farg1, double *farg2) { + struct ARKodeButcherTableMem *arg1 = (struct ARKodeButcherTableMem *) 0 ; + sunrealtype *arg2 = (sunrealtype *) 0 ; + + SWIG_check_mutable_nonnull(*farg1, "struct ARKodeButcherTableMem *", "ARKodeButcherTableMem", "ARKodeButcherTableMem::b", return ); + arg1 = (struct ARKodeButcherTableMem *)(farg1->cptr); + arg2 = (sunrealtype *)(farg2); + if (arg1) (arg1)->b = arg2; +} + + +SWIGEXPORT double * _wrap_ARKodeButcherTableMem_b_get(SwigClassWrapper const *farg1) { + double * fresult ; + struct ARKodeButcherTableMem *arg1 = (struct ARKodeButcherTableMem *) 0 ; + sunrealtype *result = 0 ; + + SWIG_check_mutable_nonnull(*farg1, "struct ARKodeButcherTableMem *", "ARKodeButcherTableMem", "ARKodeButcherTableMem::b", return 0); + arg1 = (struct ARKodeButcherTableMem *)(farg1->cptr); + result = (sunrealtype *) ((arg1)->b); + fresult = result; + return fresult; +} + + +SWIGEXPORT void _wrap_ARKodeButcherTableMem_d_set(SwigClassWrapper const *farg1, double *farg2) { + struct ARKodeButcherTableMem *arg1 = (struct ARKodeButcherTableMem *) 0 ; + sunrealtype *arg2 = (sunrealtype *) 0 ; + + SWIG_check_mutable_nonnull(*farg1, "struct ARKodeButcherTableMem *", "ARKodeButcherTableMem", "ARKodeButcherTableMem::d", return ); + arg1 = (struct ARKodeButcherTableMem *)(farg1->cptr); + arg2 = (sunrealtype *)(farg2); + if (arg1) (arg1)->d = arg2; +} + + +SWIGEXPORT double * _wrap_ARKodeButcherTableMem_d_get(SwigClassWrapper const *farg1) { + double * fresult ; + struct ARKodeButcherTableMem *arg1 = (struct ARKodeButcherTableMem *) 0 ; + sunrealtype *result = 0 ; + + SWIG_check_mutable_nonnull(*farg1, "struct ARKodeButcherTableMem *", "ARKodeButcherTableMem", "ARKodeButcherTableMem::d", return 0); + arg1 = (struct ARKodeButcherTableMem *)(farg1->cptr); + result = (sunrealtype *) ((arg1)->d); + fresult = result; + return fresult; +} + + +SWIGEXPORT SwigClassWrapper _wrap_new_ARKodeButcherTableMem() { + SwigClassWrapper fresult ; + struct ARKodeButcherTableMem *result = 0 ; + + result = (struct ARKodeButcherTableMem *)calloc(1, sizeof(struct ARKodeButcherTableMem)); + fresult.cptr = result; + fresult.cmemflags = SWIG_MEM_RVALUE | (1 ? SWIG_MEM_OWN : 0); + return fresult; +} + + +SWIGEXPORT void _wrap_delete_ARKodeButcherTableMem(SwigClassWrapper *farg1) { + struct ARKodeButcherTableMem *arg1 = (struct ARKodeButcherTableMem *) 0 ; + + SWIG_check_mutable(*farg1, "struct ARKodeButcherTableMem *", "ARKodeButcherTableMem", "ARKodeButcherTableMem::~ARKodeButcherTableMem()", return ); + arg1 = (struct ARKodeButcherTableMem *)(farg1->cptr); + free((char *) arg1); +} + + +SWIGEXPORT void _wrap_ARKodeButcherTableMem_op_assign__(SwigClassWrapper *farg1, SwigClassWrapper const *farg2) { + struct ARKodeButcherTableMem *arg1 = (struct ARKodeButcherTableMem *) 0 ; + struct ARKodeButcherTableMem *arg2 = 0 ; + + (void)sizeof(arg1); + (void)sizeof(arg2); + SWIG_assign(farg1, *farg2); + +} + + +SWIGEXPORT void * _wrap_FARKodeButcherTable_Alloc(int const *farg1, int const *farg2) { + void * fresult ; + int arg1 ; + int arg2 ; + ARKodeButcherTable result; + + arg1 = (int)(*farg1); + arg2 = (int)(*farg2); + result = (ARKodeButcherTable)ARKodeButcherTable_Alloc(arg1,arg2); + fresult = result; + return fresult; +} + + +SWIGEXPORT void * _wrap_FARKodeButcherTable_Create(int const *farg1, int const *farg2, int const *farg3, double *farg4, double *farg5, double *farg6, double *farg7) { + void * fresult ; + int arg1 ; + int arg2 ; + int arg3 ; + sunrealtype *arg4 = (sunrealtype *) 0 ; + sunrealtype *arg5 = (sunrealtype *) 0 ; + sunrealtype *arg6 = (sunrealtype *) 0 ; + sunrealtype *arg7 = (sunrealtype *) 0 ; + ARKodeButcherTable result; + + arg1 = (int)(*farg1); + arg2 = (int)(*farg2); + arg3 = (int)(*farg3); + arg4 = (sunrealtype *)(farg4); + arg5 = (sunrealtype *)(farg5); + arg6 = (sunrealtype *)(farg6); + arg7 = (sunrealtype *)(farg7); + result = (ARKodeButcherTable)ARKodeButcherTable_Create(arg1,arg2,arg3,arg4,arg5,arg6,arg7); + fresult = result; + return fresult; +} + + +SWIGEXPORT void * _wrap_FARKodeButcherTable_Copy(void *farg1) { + void * fresult ; + ARKodeButcherTable arg1 = (ARKodeButcherTable) 0 ; + ARKodeButcherTable result; + + arg1 = (ARKodeButcherTable)(farg1); + result = (ARKodeButcherTable)ARKodeButcherTable_Copy(arg1); + fresult = result; + return fresult; +} + + +SWIGEXPORT void _wrap_FARKodeButcherTable_Space(void *farg1, int32_t *farg2, int32_t *farg3) { + ARKodeButcherTable arg1 = (ARKodeButcherTable) 0 ; + sunindextype *arg2 = (sunindextype *) 0 ; + sunindextype *arg3 = (sunindextype *) 0 ; + + arg1 = (ARKodeButcherTable)(farg1); + arg2 = (sunindextype *)(farg2); + arg3 = (sunindextype *)(farg3); + ARKodeButcherTable_Space(arg1,arg2,arg3); +} + + +SWIGEXPORT void _wrap_FARKodeButcherTable_Free(void *farg1) { + ARKodeButcherTable arg1 = (ARKodeButcherTable) 0 ; + + arg1 = (ARKodeButcherTable)(farg1); + ARKodeButcherTable_Free(arg1); +} + + +SWIGEXPORT void _wrap_FARKodeButcherTable_Write(void *farg1, void *farg2) { + ARKodeButcherTable arg1 = (ARKodeButcherTable) 0 ; + FILE *arg2 = (FILE *) 0 ; + + arg1 = (ARKodeButcherTable)(farg1); + arg2 = (FILE *)(farg2); + ARKodeButcherTable_Write(arg1,arg2); +} + + +SWIGEXPORT int _wrap_FARKodeButcherTable_IsStifflyAccurate(void *farg1) { + int fresult ; + ARKodeButcherTable arg1 = (ARKodeButcherTable) 0 ; + int result; + + arg1 = (ARKodeButcherTable)(farg1); + result = (int)ARKodeButcherTable_IsStifflyAccurate(arg1); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKodeButcherTable_CheckOrder(void *farg1, int *farg2, int *farg3, void *farg4) { + int fresult ; + ARKodeButcherTable arg1 = (ARKodeButcherTable) 0 ; + int *arg2 = (int *) 0 ; + int *arg3 = (int *) 0 ; + FILE *arg4 = (FILE *) 0 ; + int result; + + arg1 = (ARKodeButcherTable)(farg1); + arg2 = (int *)(farg2); + arg3 = (int *)(farg3); + arg4 = (FILE *)(farg4); + result = (int)ARKodeButcherTable_CheckOrder(arg1,arg2,arg3,arg4); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKodeButcherTable_CheckARKOrder(void *farg1, void *farg2, int *farg3, int *farg4, void *farg5) { + int fresult ; + ARKodeButcherTable arg1 = (ARKodeButcherTable) 0 ; + ARKodeButcherTable arg2 = (ARKodeButcherTable) 0 ; + int *arg3 = (int *) 0 ; + int *arg4 = (int *) 0 ; + FILE *arg5 = (FILE *) 0 ; + int result; + + arg1 = (ARKodeButcherTable)(farg1); + arg2 = (ARKodeButcherTable)(farg2); + arg3 = (int *)(farg3); + arg4 = (int *)(farg4); + arg5 = (FILE *)(farg5); + result = (int)ARKodeButcherTable_CheckARKOrder(arg1,arg2,arg3,arg4,arg5); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT void * _wrap_FARKodeButcherTable_LoadDIRK(int const *farg1) { + void * fresult ; + ARKODE_DIRKTableID arg1 ; + ARKodeButcherTable result; + + arg1 = (ARKODE_DIRKTableID)(*farg1); + result = (ARKodeButcherTable)ARKodeButcherTable_LoadDIRK(arg1); + fresult = result; + return fresult; +} + + +SWIGEXPORT void * _wrap_FARKodeButcherTable_LoadDIRKByName(SwigArrayWrapper *farg1) { + void * fresult ; + char *arg1 = (char *) 0 ; + ARKodeButcherTable result; + + arg1 = (char *)(farg1->data); + result = (ARKodeButcherTable)ARKodeButcherTable_LoadDIRKByName((char const *)arg1); + fresult = result; + return fresult; +} + + +SWIGEXPORT SwigArrayWrapper _wrap_FARKodeButcherTable_DIRKIDToName(int const *farg1) { + SwigArrayWrapper fresult ; + ARKODE_DIRKTableID arg1 ; + char *result = 0 ; + + arg1 = (ARKODE_DIRKTableID)(*farg1); + result = (char *)ARKodeButcherTable_DIRKIDToName(arg1); + fresult.size = strlen((const char*)(result)); + fresult.data = (char *)(result); + return fresult; +} + + +SWIGEXPORT void * _wrap_FARKodeButcherTable_LoadERK(int const *farg1) { + void * fresult ; + ARKODE_ERKTableID arg1 ; + ARKodeButcherTable result; + + arg1 = (ARKODE_ERKTableID)(*farg1); + result = (ARKodeButcherTable)ARKodeButcherTable_LoadERK(arg1); + fresult = result; + return fresult; +} + + +SWIGEXPORT void * _wrap_FARKodeButcherTable_LoadERKByName(SwigArrayWrapper *farg1) { + void * fresult ; + char *arg1 = (char *) 0 ; + ARKodeButcherTable result; + + arg1 = (char *)(farg1->data); + result = (ARKodeButcherTable)ARKodeButcherTable_LoadERKByName((char const *)arg1); + fresult = result; + return fresult; +} + + +SWIGEXPORT SwigArrayWrapper _wrap_FARKodeButcherTable_ERKIDToName(int const *farg1) { + SwigArrayWrapper fresult ; + ARKODE_ERKTableID arg1 ; + char *result = 0 ; + + arg1 = (ARKODE_ERKTableID)(*farg1); + result = (char *)ARKodeButcherTable_ERKIDToName(arg1); + fresult.size = strlen((const char*)(result)); + fresult.data = (char *)(result); + return fresult; +} + + +SWIGEXPORT void _wrap_ARKodeSPRKTableMem_q_set(SwigClassWrapper const *farg1, int const *farg2) { + struct ARKodeSPRKTableMem *arg1 = (struct ARKodeSPRKTableMem *) 0 ; + int arg2 ; + + SWIG_check_mutable_nonnull(*farg1, "struct ARKodeSPRKTableMem *", "ARKodeSPRKTableMem", "ARKodeSPRKTableMem::q", return ); + arg1 = (struct ARKodeSPRKTableMem *)(farg1->cptr); + arg2 = (int)(*farg2); + if (arg1) (arg1)->q = arg2; +} + + +SWIGEXPORT int _wrap_ARKodeSPRKTableMem_q_get(SwigClassWrapper const *farg1) { + int fresult ; + struct ARKodeSPRKTableMem *arg1 = (struct ARKodeSPRKTableMem *) 0 ; + int result; + + SWIG_check_mutable_nonnull(*farg1, "struct ARKodeSPRKTableMem *", "ARKodeSPRKTableMem", "ARKodeSPRKTableMem::q", return 0); + arg1 = (struct ARKodeSPRKTableMem *)(farg1->cptr); + result = (int) ((arg1)->q); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT void _wrap_ARKodeSPRKTableMem_stages_set(SwigClassWrapper const *farg1, int const *farg2) { + struct ARKodeSPRKTableMem *arg1 = (struct ARKodeSPRKTableMem *) 0 ; + int arg2 ; + + SWIG_check_mutable_nonnull(*farg1, "struct ARKodeSPRKTableMem *", "ARKodeSPRKTableMem", "ARKodeSPRKTableMem::stages", return ); + arg1 = (struct ARKodeSPRKTableMem *)(farg1->cptr); + arg2 = (int)(*farg2); + if (arg1) (arg1)->stages = arg2; +} + + +SWIGEXPORT int _wrap_ARKodeSPRKTableMem_stages_get(SwigClassWrapper const *farg1) { + int fresult ; + struct ARKodeSPRKTableMem *arg1 = (struct ARKodeSPRKTableMem *) 0 ; + int result; + + SWIG_check_mutable_nonnull(*farg1, "struct ARKodeSPRKTableMem *", "ARKodeSPRKTableMem", "ARKodeSPRKTableMem::stages", return 0); + arg1 = (struct ARKodeSPRKTableMem *)(farg1->cptr); + result = (int) ((arg1)->stages); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT void _wrap_ARKodeSPRKTableMem_a_set(SwigClassWrapper const *farg1, double *farg2) { + struct ARKodeSPRKTableMem *arg1 = (struct ARKodeSPRKTableMem *) 0 ; + sunrealtype *arg2 = (sunrealtype *) 0 ; + + SWIG_check_mutable_nonnull(*farg1, "struct ARKodeSPRKTableMem *", "ARKodeSPRKTableMem", "ARKodeSPRKTableMem::a", return ); + arg1 = (struct ARKodeSPRKTableMem *)(farg1->cptr); + arg2 = (sunrealtype *)(farg2); + if (arg1) (arg1)->a = arg2; +} + + +SWIGEXPORT double * _wrap_ARKodeSPRKTableMem_a_get(SwigClassWrapper const *farg1) { + double * fresult ; + struct ARKodeSPRKTableMem *arg1 = (struct ARKodeSPRKTableMem *) 0 ; + sunrealtype *result = 0 ; + + SWIG_check_mutable_nonnull(*farg1, "struct ARKodeSPRKTableMem *", "ARKodeSPRKTableMem", "ARKodeSPRKTableMem::a", return 0); + arg1 = (struct ARKodeSPRKTableMem *)(farg1->cptr); + result = (sunrealtype *) ((arg1)->a); + fresult = result; + return fresult; +} + + +SWIGEXPORT void _wrap_ARKodeSPRKTableMem_ahat_set(SwigClassWrapper const *farg1, double *farg2) { + struct ARKodeSPRKTableMem *arg1 = (struct ARKodeSPRKTableMem *) 0 ; + sunrealtype *arg2 = (sunrealtype *) 0 ; + + SWIG_check_mutable_nonnull(*farg1, "struct ARKodeSPRKTableMem *", "ARKodeSPRKTableMem", "ARKodeSPRKTableMem::ahat", return ); + arg1 = (struct ARKodeSPRKTableMem *)(farg1->cptr); + arg2 = (sunrealtype *)(farg2); + if (arg1) (arg1)->ahat = arg2; +} + + +SWIGEXPORT double * _wrap_ARKodeSPRKTableMem_ahat_get(SwigClassWrapper const *farg1) { + double * fresult ; + struct ARKodeSPRKTableMem *arg1 = (struct ARKodeSPRKTableMem *) 0 ; + sunrealtype *result = 0 ; + + SWIG_check_mutable_nonnull(*farg1, "struct ARKodeSPRKTableMem *", "ARKodeSPRKTableMem", "ARKodeSPRKTableMem::ahat", return 0); + arg1 = (struct ARKodeSPRKTableMem *)(farg1->cptr); + result = (sunrealtype *) ((arg1)->ahat); + fresult = result; + return fresult; +} + + +SWIGEXPORT SwigClassWrapper _wrap_new_ARKodeSPRKTableMem() { + SwigClassWrapper fresult ; + struct ARKodeSPRKTableMem *result = 0 ; + + result = (struct ARKodeSPRKTableMem *)calloc(1, sizeof(struct ARKodeSPRKTableMem)); + fresult.cptr = result; + fresult.cmemflags = SWIG_MEM_RVALUE | (1 ? SWIG_MEM_OWN : 0); + return fresult; +} + + +SWIGEXPORT void _wrap_delete_ARKodeSPRKTableMem(SwigClassWrapper *farg1) { + struct ARKodeSPRKTableMem *arg1 = (struct ARKodeSPRKTableMem *) 0 ; + + SWIG_check_mutable(*farg1, "struct ARKodeSPRKTableMem *", "ARKodeSPRKTableMem", "ARKodeSPRKTableMem::~ARKodeSPRKTableMem()", return ); + arg1 = (struct ARKodeSPRKTableMem *)(farg1->cptr); + free((char *) arg1); +} + + +SWIGEXPORT void _wrap_ARKodeSPRKTableMem_op_assign__(SwigClassWrapper *farg1, SwigClassWrapper const *farg2) { + struct ARKodeSPRKTableMem *arg1 = (struct ARKodeSPRKTableMem *) 0 ; + struct ARKodeSPRKTableMem *arg2 = 0 ; + + (void)sizeof(arg1); + (void)sizeof(arg2); + SWIG_assign(farg1, *farg2); + +} + + +SWIGEXPORT void * _wrap_FARKodeSPRKTable_Create(int const *farg1, int const *farg2, double *farg3, double *farg4) { + void * fresult ; + int arg1 ; + int arg2 ; + sunrealtype *arg3 = (sunrealtype *) 0 ; + sunrealtype *arg4 = (sunrealtype *) 0 ; + ARKodeSPRKTable result; + + arg1 = (int)(*farg1); + arg2 = (int)(*farg2); + arg3 = (sunrealtype *)(farg3); + arg4 = (sunrealtype *)(farg4); + result = (ARKodeSPRKTable)ARKodeSPRKTable_Create(arg1,arg2,(double const *)arg3,(double const *)arg4); + fresult = result; + return fresult; +} + + +SWIGEXPORT void * _wrap_FARKodeSPRKTable_Alloc(int const *farg1) { + void * fresult ; + int arg1 ; + ARKodeSPRKTable result; + + arg1 = (int)(*farg1); + result = (ARKodeSPRKTable)ARKodeSPRKTable_Alloc(arg1); + fresult = result; + return fresult; +} + + +SWIGEXPORT void * _wrap_FARKodeSPRKTable_Load(int const *farg1) { + void * fresult ; + ARKODE_SPRKMethodID arg1 ; + ARKodeSPRKTable result; + + arg1 = (ARKODE_SPRKMethodID)(*farg1); + result = (ARKodeSPRKTable)ARKodeSPRKTable_Load(arg1); + fresult = result; + return fresult; +} + + +SWIGEXPORT void * _wrap_FARKodeSPRKTable_LoadByName(SwigArrayWrapper *farg1) { + void * fresult ; + char *arg1 = (char *) 0 ; + ARKodeSPRKTable result; + + arg1 = (char *)(farg1->data); + result = (ARKodeSPRKTable)ARKodeSPRKTable_LoadByName((char const *)arg1); + fresult = result; + return fresult; +} + + +SWIGEXPORT void * _wrap_FARKodeSPRKTable_Copy(void *farg1) { + void * fresult ; + ARKodeSPRKTable arg1 = (ARKodeSPRKTable) 0 ; + ARKodeSPRKTable result; + + arg1 = (ARKodeSPRKTable)(farg1); + result = (ARKodeSPRKTable)ARKodeSPRKTable_Copy(arg1); + fresult = result; + return fresult; +} + + +SWIGEXPORT void _wrap_FARKodeSPRKTable_Write(void *farg1, void *farg2) { + ARKodeSPRKTable arg1 = (ARKodeSPRKTable) 0 ; + FILE *arg2 = (FILE *) 0 ; + + arg1 = (ARKodeSPRKTable)(farg1); + arg2 = (FILE *)(farg2); + ARKodeSPRKTable_Write(arg1,arg2); +} + + +SWIGEXPORT void _wrap_FARKodeSPRKTable_Space(void *farg1, int32_t *farg2, int32_t *farg3) { + ARKodeSPRKTable arg1 = (ARKodeSPRKTable) 0 ; + sunindextype *arg2 = (sunindextype *) 0 ; + sunindextype *arg3 = (sunindextype *) 0 ; + + arg1 = (ARKodeSPRKTable)(farg1); + arg2 = (sunindextype *)(farg2); + arg3 = (sunindextype *)(farg3); + ARKodeSPRKTable_Space(arg1,arg2,arg3); +} + + +SWIGEXPORT void _wrap_FARKodeSPRKTable_Free(void *farg1) { + ARKodeSPRKTable arg1 = (ARKodeSPRKTable) 0 ; + + arg1 = (ARKodeSPRKTable)(farg1); + ARKodeSPRKTable_Free(arg1); +} + + +SWIGEXPORT int _wrap_FARKodeSPRKTable_ToButcher(void *farg1, void *farg2, void *farg3) { + int fresult ; + ARKodeSPRKTable arg1 = (ARKodeSPRKTable) 0 ; + ARKodeButcherTable *arg2 = (ARKodeButcherTable *) 0 ; + ARKodeButcherTable *arg3 = (ARKodeButcherTable *) 0 ; + int result; + + arg1 = (ARKodeSPRKTable)(farg1); + arg2 = (ARKodeButcherTable *)(farg2); + arg3 = (ARKodeButcherTable *)(farg3); + result = (int)ARKodeSPRKTable_ToButcher(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKodeSetLinearSolver(void *farg1, SUNLinearSolver farg2, SUNMatrix farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + SUNLinearSolver arg2 = (SUNLinearSolver) 0 ; + SUNMatrix arg3 = (SUNMatrix) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (SUNLinearSolver)(farg2); + arg3 = (SUNMatrix)(farg3); + result = (int)ARKodeSetLinearSolver(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKodeSetMassLinearSolver(void *farg1, SUNLinearSolver farg2, SUNMatrix farg3, int const *farg4) { + int fresult ; + void *arg1 = (void *) 0 ; + SUNLinearSolver arg2 = (SUNLinearSolver) 0 ; + SUNMatrix arg3 = (SUNMatrix) 0 ; + int arg4 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (SUNLinearSolver)(farg2); + arg3 = (SUNMatrix)(farg3); + arg4 = (int)(*farg4); + result = (int)ARKodeSetMassLinearSolver(arg1,arg2,arg3,arg4); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKodeSetJacFn(void *farg1, ARKLsJacFn farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + ARKLsJacFn arg2 = (ARKLsJacFn) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (ARKLsJacFn)(farg2); + result = (int)ARKodeSetJacFn(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKodeSetMassFn(void *farg1, ARKLsMassFn farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + ARKLsMassFn arg2 = (ARKLsMassFn) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (ARKLsMassFn)(farg2); + result = (int)ARKodeSetMassFn(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKodeSetJacEvalFrequency(void *farg1, long const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long)(*farg2); + result = (int)ARKodeSetJacEvalFrequency(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKodeSetLinearSolutionScaling(void *farg1, int const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + result = (int)ARKodeSetLinearSolutionScaling(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKodeSetEpsLin(void *farg1, double const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + result = (int)ARKodeSetEpsLin(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKodeSetMassEpsLin(void *farg1, double const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + result = (int)ARKodeSetMassEpsLin(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKodeSetLSNormFactor(void *farg1, double const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + result = (int)ARKodeSetLSNormFactor(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKodeSetMassLSNormFactor(void *farg1, double const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + result = (int)ARKodeSetMassLSNormFactor(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKodeSetPreconditioner(void *farg1, ARKLsPrecSetupFn farg2, ARKLsPrecSolveFn farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + ARKLsPrecSetupFn arg2 = (ARKLsPrecSetupFn) 0 ; + ARKLsPrecSolveFn arg3 = (ARKLsPrecSolveFn) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (ARKLsPrecSetupFn)(farg2); + arg3 = (ARKLsPrecSolveFn)(farg3); + result = (int)ARKodeSetPreconditioner(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKodeSetMassPreconditioner(void *farg1, ARKLsMassPrecSetupFn farg2, ARKLsMassPrecSolveFn farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + ARKLsMassPrecSetupFn arg2 = (ARKLsMassPrecSetupFn) 0 ; + ARKLsMassPrecSolveFn arg3 = (ARKLsMassPrecSolveFn) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (ARKLsMassPrecSetupFn)(farg2); + arg3 = (ARKLsMassPrecSolveFn)(farg3); + result = (int)ARKodeSetMassPreconditioner(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKodeSetJacTimes(void *farg1, ARKLsJacTimesSetupFn farg2, ARKLsJacTimesVecFn farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + ARKLsJacTimesSetupFn arg2 = (ARKLsJacTimesSetupFn) 0 ; + ARKLsJacTimesVecFn arg3 = (ARKLsJacTimesVecFn) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (ARKLsJacTimesSetupFn)(farg2); + arg3 = (ARKLsJacTimesVecFn)(farg3); + result = (int)ARKodeSetJacTimes(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKodeSetJacTimesRhsFn(void *farg1, ARKRhsFn farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + ARKRhsFn arg2 = (ARKRhsFn) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (ARKRhsFn)(farg2); + result = (int)ARKodeSetJacTimesRhsFn(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKodeSetMassTimes(void *farg1, ARKLsMassTimesSetupFn farg2, ARKLsMassTimesVecFn farg3, void *farg4) { + int fresult ; + void *arg1 = (void *) 0 ; + ARKLsMassTimesSetupFn arg2 = (ARKLsMassTimesSetupFn) 0 ; + ARKLsMassTimesVecFn arg3 = (ARKLsMassTimesVecFn) 0 ; + void *arg4 = (void *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (ARKLsMassTimesSetupFn)(farg2); + arg3 = (ARKLsMassTimesVecFn)(farg3); + arg4 = (void *)(farg4); + result = (int)ARKodeSetMassTimes(arg1,arg2,arg3,arg4); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKodeSetLinSysFn(void *farg1, ARKLsLinSysFn farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + ARKLsLinSysFn arg2 = (ARKLsLinSysFn) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (ARKLsLinSysFn)(farg2); + result = (int)ARKodeSetLinSysFn(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + + diff --git a/src/arkode/fmod_int32/farkode_mod.f90 b/src/arkode/fmod_int32/farkode_mod.f90 new file mode 100644 index 0000000000..366867f40a --- /dev/null +++ b/src/arkode/fmod_int32/farkode_mod.f90 @@ -0,0 +1,5769 @@ +! This file was automatically generated by SWIG (http://www.swig.org). +! Version 4.0.0 +! +! Do not make changes to this file unless you know what you are doing--modify +! the SWIG interface file instead. + +! --------------------------------------------------------------- +! Programmer(s): Auto-generated by swig. +! --------------------------------------------------------------- +! SUNDIALS Copyright Start +! Copyright (c) 2002-2024, Lawrence Livermore National Security +! and Southern Methodist University. +! All rights reserved. +! +! See the top-level LICENSE and NOTICE files for details. +! +! SPDX-License-Identifier: BSD-3-Clause +! SUNDIALS Copyright End +! --------------------------------------------------------------- + +module farkode_mod + use, intrinsic :: ISO_C_BINDING + use fsundials_core_mod + implicit none + private + + ! DECLARATION CONSTRUCTS + integer(C_INT), parameter, public :: ARK_NORMAL = 1_C_INT + integer(C_INT), parameter, public :: ARK_ONE_STEP = 2_C_INT + integer(C_INT), parameter, public :: ARK_ADAPT_CUSTOM = -1_C_INT + integer(C_INT), parameter, public :: ARK_ADAPT_PID = 0_C_INT + integer(C_INT), parameter, public :: ARK_ADAPT_PI = 1_C_INT + integer(C_INT), parameter, public :: ARK_ADAPT_I = 2_C_INT + integer(C_INT), parameter, public :: ARK_ADAPT_EXP_GUS = 3_C_INT + integer(C_INT), parameter, public :: ARK_ADAPT_IMP_GUS = 4_C_INT + integer(C_INT), parameter, public :: ARK_ADAPT_IMEX_GUS = 5_C_INT + integer(C_INT), parameter, public :: ARK_FULLRHS_START = 0_C_INT + integer(C_INT), parameter, public :: ARK_FULLRHS_END = 1_C_INT + integer(C_INT), parameter, public :: ARK_FULLRHS_OTHER = 2_C_INT + integer(C_INT), parameter, public :: ARK_INTERP_MAX_DEGREE = 5_C_INT + integer(C_INT), parameter, public :: ARK_INTERP_NONE = -1_C_INT + integer(C_INT), parameter, public :: ARK_INTERP_HERMITE = 0_C_INT + integer(C_INT), parameter, public :: ARK_INTERP_LAGRANGE = 1_C_INT + integer(C_INT), parameter, public :: ARK_SUCCESS = 0_C_INT + integer(C_INT), parameter, public :: ARK_TSTOP_RETURN = 1_C_INT + integer(C_INT), parameter, public :: ARK_ROOT_RETURN = 2_C_INT + integer(C_INT), parameter, public :: ARK_WARNING = 99_C_INT + integer(C_INT), parameter, public :: ARK_TOO_MUCH_WORK = -1_C_INT + integer(C_INT), parameter, public :: ARK_TOO_MUCH_ACC = -2_C_INT + integer(C_INT), parameter, public :: ARK_ERR_FAILURE = -3_C_INT + integer(C_INT), parameter, public :: ARK_CONV_FAILURE = -4_C_INT + integer(C_INT), parameter, public :: ARK_LINIT_FAIL = -5_C_INT + integer(C_INT), parameter, public :: ARK_LSETUP_FAIL = -6_C_INT + integer(C_INT), parameter, public :: ARK_LSOLVE_FAIL = -7_C_INT + integer(C_INT), parameter, public :: ARK_RHSFUNC_FAIL = -8_C_INT + integer(C_INT), parameter, public :: ARK_FIRST_RHSFUNC_ERR = -9_C_INT + integer(C_INT), parameter, public :: ARK_REPTD_RHSFUNC_ERR = -10_C_INT + integer(C_INT), parameter, public :: ARK_UNREC_RHSFUNC_ERR = -11_C_INT + integer(C_INT), parameter, public :: ARK_RTFUNC_FAIL = -12_C_INT + integer(C_INT), parameter, public :: ARK_LFREE_FAIL = -13_C_INT + integer(C_INT), parameter, public :: ARK_MASSINIT_FAIL = -14_C_INT + integer(C_INT), parameter, public :: ARK_MASSSETUP_FAIL = -15_C_INT + integer(C_INT), parameter, public :: ARK_MASSSOLVE_FAIL = -16_C_INT + integer(C_INT), parameter, public :: ARK_MASSFREE_FAIL = -17_C_INT + integer(C_INT), parameter, public :: ARK_MASSMULT_FAIL = -18_C_INT + integer(C_INT), parameter, public :: ARK_CONSTR_FAIL = -19_C_INT + integer(C_INT), parameter, public :: ARK_MEM_FAIL = -20_C_INT + integer(C_INT), parameter, public :: ARK_MEM_NULL = -21_C_INT + integer(C_INT), parameter, public :: ARK_ILL_INPUT = -22_C_INT + integer(C_INT), parameter, public :: ARK_NO_MALLOC = -23_C_INT + integer(C_INT), parameter, public :: ARK_BAD_K = -24_C_INT + integer(C_INT), parameter, public :: ARK_BAD_T = -25_C_INT + integer(C_INT), parameter, public :: ARK_BAD_DKY = -26_C_INT + integer(C_INT), parameter, public :: ARK_TOO_CLOSE = -27_C_INT + integer(C_INT), parameter, public :: ARK_VECTOROP_ERR = -28_C_INT + integer(C_INT), parameter, public :: ARK_NLS_INIT_FAIL = -29_C_INT + integer(C_INT), parameter, public :: ARK_NLS_SETUP_FAIL = -30_C_INT + integer(C_INT), parameter, public :: ARK_NLS_SETUP_RECVR = -31_C_INT + integer(C_INT), parameter, public :: ARK_NLS_OP_ERR = -32_C_INT + integer(C_INT), parameter, public :: ARK_INNERSTEP_ATTACH_ERR = -33_C_INT + integer(C_INT), parameter, public :: ARK_INNERSTEP_FAIL = -34_C_INT + integer(C_INT), parameter, public :: ARK_OUTERTOINNER_FAIL = -35_C_INT + integer(C_INT), parameter, public :: ARK_INNERTOOUTER_FAIL = -36_C_INT + integer(C_INT), parameter, public :: ARK_POSTPROCESS_FAIL = -37_C_INT + integer(C_INT), parameter, public :: ARK_POSTPROCESS_STEP_FAIL = -37_C_INT + integer(C_INT), parameter, public :: ARK_POSTPROCESS_STAGE_FAIL = -38_C_INT + integer(C_INT), parameter, public :: ARK_USER_PREDICT_FAIL = -39_C_INT + integer(C_INT), parameter, public :: ARK_INTERP_FAIL = -40_C_INT + integer(C_INT), parameter, public :: ARK_INVALID_TABLE = -41_C_INT + integer(C_INT), parameter, public :: ARK_CONTEXT_ERR = -42_C_INT + integer(C_INT), parameter, public :: ARK_RELAX_FAIL = -43_C_INT + integer(C_INT), parameter, public :: ARK_RELAX_MEM_NULL = -44_C_INT + integer(C_INT), parameter, public :: ARK_RELAX_FUNC_FAIL = -45_C_INT + integer(C_INT), parameter, public :: ARK_RELAX_JAC_FAIL = -46_C_INT + integer(C_INT), parameter, public :: ARK_CONTROLLER_ERR = -47_C_INT + integer(C_INT), parameter, public :: ARK_STEPPER_UNSUPPORTED = -48_C_INT + integer(C_INT), parameter, public :: ARK_UNRECOGNIZED_ERROR = -99_C_INT + ! typedef enum ARKRelaxSolver + enum, bind(c) + enumerator :: ARK_RELAX_BRENT + enumerator :: ARK_RELAX_NEWTON + end enum + integer, parameter, public :: ARKRelaxSolver = kind(ARK_RELAX_BRENT) + public :: ARK_RELAX_BRENT, ARK_RELAX_NEWTON + public :: FARKodeResize + public :: FARKodeReset + public :: FARKodeSStolerances + public :: FARKodeSVtolerances + public :: FARKodeWFtolerances + public :: FARKodeResStolerance + public :: FARKodeResVtolerance + public :: FARKodeResFtolerance + public :: FARKodeRootInit + public :: FARKodeSetRootDirection + public :: FARKodeSetNoInactiveRootWarn + public :: FARKodeSetDefaults + public :: FARKodeSetOrder + public :: FARKodeSetInterpolantType + public :: FARKodeSetInterpolantDegree + public :: FARKodeSetMaxNumSteps + public :: FARKodeSetInterpolateStopTime + public :: FARKodeSetStopTime + public :: FARKodeClearStopTime + public :: FARKodeSetFixedStep + public :: FARKodeSetUserData + public :: FARKodeSetPostprocessStepFn + public :: FARKodeSetPostprocessStageFn + public :: FARKodeSetNonlinearSolver + public :: FARKodeSetLinear + public :: FARKodeSetNonlinear + public :: FARKodeSetAutonomous + public :: FARKodeSetNlsRhsFn + public :: FARKodeSetDeduceImplicitRhs + public :: FARKodeSetNonlinCRDown + public :: FARKodeSetNonlinRDiv + public :: FARKodeSetDeltaGammaMax + public :: FARKodeSetLSetupFrequency + public :: FARKodeSetPredictorMethod + public :: FARKodeSetMaxNonlinIters + public :: FARKodeSetMaxConvFails + public :: FARKodeSetNonlinConvCoef + public :: FARKodeSetStagePredictFn + public :: FARKodeSetAdaptController + public :: FARKodeSetAdaptivityAdjustment + public :: FARKodeSetCFLFraction + public :: FARKodeSetErrorBias + public :: FARKodeSetSafetyFactor + public :: FARKodeSetMaxGrowth + public :: FARKodeSetMinReduction + public :: FARKodeSetFixedStepBounds + public :: FARKodeSetMaxFirstGrowth + public :: FARKodeSetMaxEFailGrowth + public :: FARKodeSetSmallNumEFails + public :: FARKodeSetMaxCFailGrowth + public :: FARKodeSetStabilityFn + public :: FARKodeSetMaxErrTestFails + public :: FARKodeSetConstraints + public :: FARKodeSetMaxHnilWarns + public :: FARKodeSetInitStep + public :: FARKodeSetMinStep + public :: FARKodeSetMaxStep + public :: FARKodeSetMaxNumConstrFails + public :: FARKodeEvolve + public :: FARKodeGetDky + public :: FARKodeComputeState + public :: FARKodeGetNumStepAttempts + public :: FARKodeGetWorkSpace + public :: FARKodeGetNumSteps + public :: FARKodeGetLastStep + public :: FARKodeGetCurrentStep + public :: FARKodeGetErrWeights + public :: FARKodeGetNumGEvals + public :: FARKodeGetRootInfo + public :: FARKodeGetUserData + public :: FARKodePrintAllStats + type, bind(C) :: SwigArrayWrapper + type(C_PTR), public :: data = C_NULL_PTR + integer(C_SIZE_T), public :: size = 0 + end type + public :: FARKodeGetReturnFlagName + public :: FARKodeWriteParameters + public :: FARKodeGetNumExpSteps + public :: FARKodeGetNumAccSteps + public :: FARKodeGetNumErrTestFails + public :: FARKodeGetEstLocalErrors + public :: FARKodeGetActualInitStep + public :: FARKodeGetTolScaleFactor + public :: FARKodeGetNumConstrFails + public :: FARKodeGetStepStats + public :: FARKodeGetNumLinSolvSetups + public :: FARKodeGetCurrentTime + public :: FARKodeGetCurrentState + public :: FARKodeGetCurrentGamma + public :: FARKodeGetNonlinearSystemData + public :: FARKodeGetNumNonlinSolvIters + public :: FARKodeGetNumNonlinSolvConvFails + public :: FARKodeGetNonlinSolvStats + public :: FARKodeGetNumStepSolveFails + public :: FARKodeGetJac + public :: FARKodeGetJacTime + public :: FARKodeGetJacNumSteps + public :: FARKodeGetLinWorkSpace + public :: FARKodeGetNumJacEvals + public :: FARKodeGetNumPrecEvals + public :: FARKodeGetNumPrecSolves + public :: FARKodeGetNumLinIters + public :: FARKodeGetNumLinConvFails + public :: FARKodeGetNumJTSetupEvals + public :: FARKodeGetNumJtimesEvals + public :: FARKodeGetNumLinRhsEvals + public :: FARKodeGetLastLinFlag + public :: FARKodeGetLinReturnFlagName + public :: FARKodeGetCurrentMassMatrix + public :: FARKodeGetResWeights + public :: FARKodeGetMassWorkSpace + public :: FARKodeGetNumMassSetups + public :: FARKodeGetNumMassMultSetups + public :: FARKodeGetNumMassMult + public :: FARKodeGetNumMassSolves + public :: FARKodeGetNumMassPrecEvals + public :: FARKodeGetNumMassPrecSolves + public :: FARKodeGetNumMassIters + public :: FARKodeGetNumMassConvFails + public :: FARKodeGetNumMTSetups + public :: FARKodeGetLastMassFlag + public :: FARKodeFree + public :: FARKodePrintMem + public :: FARKodeSetRelaxFn + public :: FARKodeSetRelaxEtaFail + public :: FARKodeSetRelaxLowerBound + public :: FARKodeSetRelaxMaxFails + public :: FARKodeSetRelaxMaxIters + public :: FARKodeSetRelaxSolver + public :: FARKodeSetRelaxResTol + public :: FARKodeSetRelaxTol + public :: FARKodeSetRelaxUpperBound + public :: FARKodeGetNumRelaxFnEvals + public :: FARKodeGetNumRelaxJacEvals + public :: FARKodeGetNumRelaxFails + public :: FARKodeGetNumRelaxBoundFails + public :: FARKodeGetNumRelaxSolveFails + public :: FARKodeGetNumRelaxSolveIters + public :: FARKBandPrecInit + public :: FARKBandPrecGetWorkSpace + public :: FARKBandPrecGetNumRhsEvals + public :: FARKBBDPrecInit + public :: FARKBBDPrecReInit + public :: FARKBBDPrecGetWorkSpace + public :: FARKBBDPrecGetNumGfnEvals + + integer, parameter :: swig_cmem_own_bit = 0 + integer, parameter :: swig_cmem_rvalue_bit = 1 + integer, parameter :: swig_cmem_const_bit = 2 + type, bind(C) :: SwigClassWrapper + type(C_PTR), public :: cptr = C_NULL_PTR + integer(C_INT), public :: cmemflags = 0 + end type + ! struct struct ARKodeButcherTableMem + type, public :: ARKodeButcherTableMem + type(SwigClassWrapper), public :: swigdata + contains + procedure :: set_q => swigf_ARKodeButcherTableMem_q_set + procedure :: get_q => swigf_ARKodeButcherTableMem_q_get + procedure :: set_p => swigf_ARKodeButcherTableMem_p_set + procedure :: get_p => swigf_ARKodeButcherTableMem_p_get + procedure :: set_stages => swigf_ARKodeButcherTableMem_stages_set + procedure :: get_stages => swigf_ARKodeButcherTableMem_stages_get + procedure :: set_A => swigf_ARKodeButcherTableMem_A_set + procedure :: get_A => swigf_ARKodeButcherTableMem_A_get + procedure :: set_c => swigf_ARKodeButcherTableMem_c_set + procedure :: get_c => swigf_ARKodeButcherTableMem_c_get + procedure :: set_b => swigf_ARKodeButcherTableMem_b_set + procedure :: get_b => swigf_ARKodeButcherTableMem_b_get + procedure :: set_d => swigf_ARKodeButcherTableMem_d_set + procedure :: get_d => swigf_ARKodeButcherTableMem_d_get + procedure :: release => swigf_release_ARKodeButcherTableMem + procedure, private :: swigf_ARKodeButcherTableMem_op_assign__ + generic :: assignment(=) => swigf_ARKodeButcherTableMem_op_assign__ + end type ARKodeButcherTableMem + interface ARKodeButcherTableMem + module procedure swigf_create_ARKodeButcherTableMem + end interface + public :: FARKodeButcherTable_Alloc + public :: FARKodeButcherTable_Create + public :: FARKodeButcherTable_Copy + public :: FARKodeButcherTable_Space + public :: FARKodeButcherTable_Free + public :: FARKodeButcherTable_Write + public :: FARKodeButcherTable_IsStifflyAccurate + public :: FARKodeButcherTable_CheckOrder + public :: FARKodeButcherTable_CheckARKOrder + ! typedef enum ARKODE_DIRKTableID + enum, bind(c) + enumerator :: ARKODE_DIRK_NONE = -1 + enumerator :: ARKODE_MIN_DIRK_NUM = 100 + enumerator :: ARKODE_SDIRK_2_1_2 = ARKODE_MIN_DIRK_NUM + enumerator :: ARKODE_BILLINGTON_3_3_2 + enumerator :: ARKODE_TRBDF2_3_3_2 + enumerator :: ARKODE_KVAERNO_4_2_3 + enumerator :: ARKODE_ARK324L2SA_DIRK_4_2_3 + enumerator :: ARKODE_CASH_5_2_4 + enumerator :: ARKODE_CASH_5_3_4 + enumerator :: ARKODE_SDIRK_5_3_4 + enumerator :: ARKODE_KVAERNO_5_3_4 + enumerator :: ARKODE_ARK436L2SA_DIRK_6_3_4 + enumerator :: ARKODE_KVAERNO_7_4_5 + enumerator :: ARKODE_ARK548L2SA_DIRK_8_4_5 + enumerator :: ARKODE_ARK437L2SA_DIRK_7_3_4 + enumerator :: ARKODE_ARK548L2SAb_DIRK_8_4_5 + enumerator :: ARKODE_ESDIRK324L2SA_4_2_3 + enumerator :: ARKODE_ESDIRK325L2SA_5_2_3 + enumerator :: ARKODE_ESDIRK32I5L2SA_5_2_3 + enumerator :: ARKODE_ESDIRK436L2SA_6_3_4 + enumerator :: ARKODE_ESDIRK43I6L2SA_6_3_4 + enumerator :: ARKODE_QESDIRK436L2SA_6_3_4 + enumerator :: ARKODE_ESDIRK437L2SA_7_3_4 + enumerator :: ARKODE_ESDIRK547L2SA_7_4_5 + enumerator :: ARKODE_ESDIRK547L2SA2_7_4_5 + enumerator :: ARKODE_ARK2_DIRK_3_1_2 + enumerator :: ARKODE_BACKWARD_EULER_1_1 + enumerator :: ARKODE_IMPLICIT_MIDPOINT_1_2 + enumerator :: ARKODE_IMPLICIT_TRAPEZOIDAL_2_2 + enumerator :: ARKODE_MAX_DIRK_NUM = ARKODE_IMPLICIT_TRAPEZOIDAL_2_2 + end enum + integer, parameter, public :: ARKODE_DIRKTableID = kind(ARKODE_DIRK_NONE) + public :: ARKODE_DIRK_NONE, ARKODE_MIN_DIRK_NUM, ARKODE_SDIRK_2_1_2, ARKODE_BILLINGTON_3_3_2, ARKODE_TRBDF2_3_3_2, & + ARKODE_KVAERNO_4_2_3, ARKODE_ARK324L2SA_DIRK_4_2_3, ARKODE_CASH_5_2_4, ARKODE_CASH_5_3_4, ARKODE_SDIRK_5_3_4, & + ARKODE_KVAERNO_5_3_4, ARKODE_ARK436L2SA_DIRK_6_3_4, ARKODE_KVAERNO_7_4_5, ARKODE_ARK548L2SA_DIRK_8_4_5, & + ARKODE_ARK437L2SA_DIRK_7_3_4, ARKODE_ARK548L2SAb_DIRK_8_4_5, ARKODE_ESDIRK324L2SA_4_2_3, ARKODE_ESDIRK325L2SA_5_2_3, & + ARKODE_ESDIRK32I5L2SA_5_2_3, ARKODE_ESDIRK436L2SA_6_3_4, ARKODE_ESDIRK43I6L2SA_6_3_4, ARKODE_QESDIRK436L2SA_6_3_4, & + ARKODE_ESDIRK437L2SA_7_3_4, ARKODE_ESDIRK547L2SA_7_4_5, ARKODE_ESDIRK547L2SA2_7_4_5, ARKODE_ARK2_DIRK_3_1_2, & + ARKODE_BACKWARD_EULER_1_1, ARKODE_IMPLICIT_MIDPOINT_1_2, ARKODE_IMPLICIT_TRAPEZOIDAL_2_2, ARKODE_MAX_DIRK_NUM + public :: FARKodeButcherTable_LoadDIRK + public :: FARKodeButcherTable_LoadDIRKByName + public :: FARKodeButcherTable_DIRKIDToName + ! typedef enum ARKODE_ERKTableID + enum, bind(c) + enumerator :: ARKODE_ERK_NONE = -1 + enumerator :: ARKODE_MIN_ERK_NUM = 0 + enumerator :: ARKODE_HEUN_EULER_2_1_2 = ARKODE_MIN_ERK_NUM + enumerator :: ARKODE_BOGACKI_SHAMPINE_4_2_3 + enumerator :: ARKODE_ARK324L2SA_ERK_4_2_3 + enumerator :: ARKODE_ZONNEVELD_5_3_4 + enumerator :: ARKODE_ARK436L2SA_ERK_6_3_4 + enumerator :: ARKODE_SAYFY_ABURUB_6_3_4 + enumerator :: ARKODE_CASH_KARP_6_4_5 + enumerator :: ARKODE_FEHLBERG_6_4_5 + enumerator :: ARKODE_DORMAND_PRINCE_7_4_5 + enumerator :: ARKODE_ARK548L2SA_ERK_8_4_5 + enumerator :: ARKODE_VERNER_8_5_6 + enumerator :: ARKODE_FEHLBERG_13_7_8 + enumerator :: ARKODE_KNOTH_WOLKE_3_3 + enumerator :: ARKODE_ARK437L2SA_ERK_7_3_4 + enumerator :: ARKODE_ARK548L2SAb_ERK_8_4_5 + enumerator :: ARKODE_ARK2_ERK_3_1_2 + enumerator :: ARKODE_SOFRONIOU_SPALETTA_5_3_4 + enumerator :: ARKODE_SHU_OSHER_3_2_3 + enumerator :: ARKODE_VERNER_9_5_6 + enumerator :: ARKODE_VERNER_10_6_7 + enumerator :: ARKODE_VERNER_13_7_8 + enumerator :: ARKODE_VERNER_16_8_9 + enumerator :: ARKODE_FORWARD_EULER_1_1 + enumerator :: ARKODE_RALSTON_EULER_2_1_2 + enumerator :: ARKODE_EXPLICIT_MIDPOINT_EULER_2_1_2 + enumerator :: ARKODE_MAX_ERK_NUM = ARKODE_EXPLICIT_MIDPOINT_EULER_2_1_2 + end enum + integer, parameter, public :: ARKODE_ERKTableID = kind(ARKODE_ERK_NONE) + public :: ARKODE_ERK_NONE, ARKODE_MIN_ERK_NUM, ARKODE_HEUN_EULER_2_1_2, ARKODE_BOGACKI_SHAMPINE_4_2_3, & + ARKODE_ARK324L2SA_ERK_4_2_3, ARKODE_ZONNEVELD_5_3_4, ARKODE_ARK436L2SA_ERK_6_3_4, ARKODE_SAYFY_ABURUB_6_3_4, & + ARKODE_CASH_KARP_6_4_5, ARKODE_FEHLBERG_6_4_5, ARKODE_DORMAND_PRINCE_7_4_5, ARKODE_ARK548L2SA_ERK_8_4_5, & + ARKODE_VERNER_8_5_6, ARKODE_FEHLBERG_13_7_8, ARKODE_KNOTH_WOLKE_3_3, ARKODE_ARK437L2SA_ERK_7_3_4, & + ARKODE_ARK548L2SAb_ERK_8_4_5, ARKODE_ARK2_ERK_3_1_2, ARKODE_SOFRONIOU_SPALETTA_5_3_4, ARKODE_SHU_OSHER_3_2_3, & + ARKODE_VERNER_9_5_6, ARKODE_VERNER_10_6_7, ARKODE_VERNER_13_7_8, ARKODE_VERNER_16_8_9, ARKODE_FORWARD_EULER_1_1, & + ARKODE_RALSTON_EULER_2_1_2, ARKODE_EXPLICIT_MIDPOINT_EULER_2_1_2, ARKODE_MAX_ERK_NUM + public :: FARKodeButcherTable_LoadERK + public :: FARKodeButcherTable_LoadERKByName + public :: FARKodeButcherTable_ERKIDToName + ! typedef enum ARKODE_SPRKMethodID + enum, bind(c) + enumerator :: ARKODE_SPRK_NONE = -1 + enumerator :: ARKODE_MIN_SPRK_NUM = 0 + enumerator :: ARKODE_SPRK_EULER_1_1 = ARKODE_MIN_SPRK_NUM + enumerator :: ARKODE_SPRK_LEAPFROG_2_2 + enumerator :: ARKODE_SPRK_PSEUDO_LEAPFROG_2_2 + enumerator :: ARKODE_SPRK_RUTH_3_3 + enumerator :: ARKODE_SPRK_MCLACHLAN_2_2 + enumerator :: ARKODE_SPRK_MCLACHLAN_3_3 + enumerator :: ARKODE_SPRK_CANDY_ROZMUS_4_4 + enumerator :: ARKODE_SPRK_MCLACHLAN_4_4 + enumerator :: ARKODE_SPRK_MCLACHLAN_5_6 + enumerator :: ARKODE_SPRK_YOSHIDA_6_8 + enumerator :: ARKODE_SPRK_SUZUKI_UMENO_8_16 + enumerator :: ARKODE_SPRK_SOFRONIOU_10_36 + enumerator :: ARKODE_MAX_SPRK_NUM = ARKODE_SPRK_SOFRONIOU_10_36 + end enum + integer, parameter, public :: ARKODE_SPRKMethodID = kind(ARKODE_SPRK_NONE) + public :: ARKODE_SPRK_NONE, ARKODE_MIN_SPRK_NUM, ARKODE_SPRK_EULER_1_1, ARKODE_SPRK_LEAPFROG_2_2, & + ARKODE_SPRK_PSEUDO_LEAPFROG_2_2, ARKODE_SPRK_RUTH_3_3, ARKODE_SPRK_MCLACHLAN_2_2, ARKODE_SPRK_MCLACHLAN_3_3, & + ARKODE_SPRK_CANDY_ROZMUS_4_4, ARKODE_SPRK_MCLACHLAN_4_4, ARKODE_SPRK_MCLACHLAN_5_6, ARKODE_SPRK_YOSHIDA_6_8, & + ARKODE_SPRK_SUZUKI_UMENO_8_16, ARKODE_SPRK_SOFRONIOU_10_36, ARKODE_MAX_SPRK_NUM + ! struct struct ARKodeSPRKTableMem + type, public :: ARKodeSPRKTableMem + type(SwigClassWrapper), public :: swigdata + contains + procedure :: set_q => swigf_ARKodeSPRKTableMem_q_set + procedure :: get_q => swigf_ARKodeSPRKTableMem_q_get + procedure :: set_stages => swigf_ARKodeSPRKTableMem_stages_set + procedure :: get_stages => swigf_ARKodeSPRKTableMem_stages_get + procedure :: set_a => swigf_ARKodeSPRKTableMem_a_set + procedure :: get_a => swigf_ARKodeSPRKTableMem_a_get + procedure :: set_ahat => swigf_ARKodeSPRKTableMem_ahat_set + procedure :: get_ahat => swigf_ARKodeSPRKTableMem_ahat_get + procedure :: release => swigf_release_ARKodeSPRKTableMem + procedure, private :: swigf_ARKodeSPRKTableMem_op_assign__ + generic :: assignment(=) => swigf_ARKodeSPRKTableMem_op_assign__ + end type ARKodeSPRKTableMem + interface ARKodeSPRKTableMem + module procedure swigf_create_ARKodeSPRKTableMem + end interface + public :: FARKodeSPRKTable_Create + public :: FARKodeSPRKTable_Alloc + public :: FARKodeSPRKTable_Load + public :: FARKodeSPRKTable_LoadByName + public :: FARKodeSPRKTable_Copy + public :: FARKodeSPRKTable_Write + public :: FARKodeSPRKTable_Space + public :: FARKodeSPRKTable_Free + public :: FARKodeSPRKTable_ToButcher + integer(C_INT), parameter, public :: ARKLS_SUCCESS = 0_C_INT + integer(C_INT), parameter, public :: ARKLS_MEM_NULL = -1_C_INT + integer(C_INT), parameter, public :: ARKLS_LMEM_NULL = -2_C_INT + integer(C_INT), parameter, public :: ARKLS_ILL_INPUT = -3_C_INT + integer(C_INT), parameter, public :: ARKLS_MEM_FAIL = -4_C_INT + integer(C_INT), parameter, public :: ARKLS_PMEM_NULL = -5_C_INT + integer(C_INT), parameter, public :: ARKLS_MASSMEM_NULL = -6_C_INT + integer(C_INT), parameter, public :: ARKLS_JACFUNC_UNRECVR = -7_C_INT + integer(C_INT), parameter, public :: ARKLS_JACFUNC_RECVR = -8_C_INT + integer(C_INT), parameter, public :: ARKLS_MASSFUNC_UNRECVR = -9_C_INT + integer(C_INT), parameter, public :: ARKLS_MASSFUNC_RECVR = -10_C_INT + integer(C_INT), parameter, public :: ARKLS_SUNMAT_FAIL = -11_C_INT + integer(C_INT), parameter, public :: ARKLS_SUNLS_FAIL = -12_C_INT + public :: FARKodeSetLinearSolver + public :: FARKodeSetMassLinearSolver + public :: FARKodeSetJacFn + public :: FARKodeSetMassFn + public :: FARKodeSetJacEvalFrequency + public :: FARKodeSetLinearSolutionScaling + public :: FARKodeSetEpsLin + public :: FARKodeSetMassEpsLin + public :: FARKodeSetLSNormFactor + public :: FARKodeSetMassLSNormFactor + public :: FARKodeSetPreconditioner + public :: FARKodeSetMassPreconditioner + public :: FARKodeSetJacTimes + public :: FARKodeSetJacTimesRhsFn + public :: FARKodeSetMassTimes + public :: FARKodeSetLinSysFn + +! WRAPPER DECLARATIONS +interface +function swigc_FARKodeResize(farg1, farg2, farg3, farg4, farg5, farg6) & +bind(C, name="_wrap_FARKodeResize") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +real(C_DOUBLE), intent(in) :: farg3 +real(C_DOUBLE), intent(in) :: farg4 +type(C_FUNPTR), value :: farg5 +type(C_PTR), value :: farg6 +integer(C_INT) :: fresult +end function + +function swigc_FARKodeReset(farg1, farg2, farg3) & +bind(C, name="_wrap_FARKodeReset") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FARKodeSStolerances(farg1, farg2, farg3) & +bind(C, name="_wrap_FARKodeSStolerances") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +real(C_DOUBLE), intent(in) :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FARKodeSVtolerances(farg1, farg2, farg3) & +bind(C, name="_wrap_FARKodeSVtolerances") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FARKodeWFtolerances(farg1, farg2) & +bind(C, name="_wrap_FARKodeWFtolerances") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_FUNPTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKodeResStolerance(farg1, farg2) & +bind(C, name="_wrap_FARKodeResStolerance") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKodeResVtolerance(farg1, farg2) & +bind(C, name="_wrap_FARKodeResVtolerance") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKodeResFtolerance(farg1, farg2) & +bind(C, name="_wrap_FARKodeResFtolerance") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_FUNPTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKodeRootInit(farg1, farg2, farg3) & +bind(C, name="_wrap_FARKodeRootInit") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +type(C_FUNPTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FARKodeSetRootDirection(farg1, farg2) & +bind(C, name="_wrap_FARKodeSetRootDirection") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKodeSetNoInactiveRootWarn(farg1) & +bind(C, name="_wrap_FARKodeSetNoInactiveRootWarn") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT) :: fresult +end function + +function swigc_FARKodeSetDefaults(farg1) & +bind(C, name="_wrap_FARKodeSetDefaults") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT) :: fresult +end function + +function swigc_FARKodeSetOrder(farg1, farg2) & +bind(C, name="_wrap_FARKodeSetOrder") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKodeSetInterpolantType(farg1, farg2) & +bind(C, name="_wrap_FARKodeSetInterpolantType") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKodeSetInterpolantDegree(farg1, farg2) & +bind(C, name="_wrap_FARKodeSetInterpolantDegree") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKodeSetMaxNumSteps(farg1, farg2) & +bind(C, name="_wrap_FARKodeSetMaxNumSteps") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_LONG), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKodeSetInterpolateStopTime(farg1, farg2) & +bind(C, name="_wrap_FARKodeSetInterpolateStopTime") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKodeSetStopTime(farg1, farg2) & +bind(C, name="_wrap_FARKodeSetStopTime") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKodeClearStopTime(farg1) & +bind(C, name="_wrap_FARKodeClearStopTime") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT) :: fresult +end function + +function swigc_FARKodeSetFixedStep(farg1, farg2) & +bind(C, name="_wrap_FARKodeSetFixedStep") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKodeSetUserData(farg1, farg2) & +bind(C, name="_wrap_FARKodeSetUserData") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKodeSetPostprocessStepFn(farg1, farg2) & +bind(C, name="_wrap_FARKodeSetPostprocessStepFn") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_FUNPTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKodeSetPostprocessStageFn(farg1, farg2) & +bind(C, name="_wrap_FARKodeSetPostprocessStageFn") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_FUNPTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKodeSetNonlinearSolver(farg1, farg2) & +bind(C, name="_wrap_FARKodeSetNonlinearSolver") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKodeSetLinear(farg1, farg2) & +bind(C, name="_wrap_FARKodeSetLinear") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKodeSetNonlinear(farg1) & +bind(C, name="_wrap_FARKodeSetNonlinear") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT) :: fresult +end function + +function swigc_FARKodeSetAutonomous(farg1, farg2) & +bind(C, name="_wrap_FARKodeSetAutonomous") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKodeSetNlsRhsFn(farg1, farg2) & +bind(C, name="_wrap_FARKodeSetNlsRhsFn") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_FUNPTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKodeSetDeduceImplicitRhs(farg1, farg2) & +bind(C, name="_wrap_FARKodeSetDeduceImplicitRhs") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKodeSetNonlinCRDown(farg1, farg2) & +bind(C, name="_wrap_FARKodeSetNonlinCRDown") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKodeSetNonlinRDiv(farg1, farg2) & +bind(C, name="_wrap_FARKodeSetNonlinRDiv") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKodeSetDeltaGammaMax(farg1, farg2) & +bind(C, name="_wrap_FARKodeSetDeltaGammaMax") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKodeSetLSetupFrequency(farg1, farg2) & +bind(C, name="_wrap_FARKodeSetLSetupFrequency") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKodeSetPredictorMethod(farg1, farg2) & +bind(C, name="_wrap_FARKodeSetPredictorMethod") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKodeSetMaxNonlinIters(farg1, farg2) & +bind(C, name="_wrap_FARKodeSetMaxNonlinIters") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKodeSetMaxConvFails(farg1, farg2) & +bind(C, name="_wrap_FARKodeSetMaxConvFails") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKodeSetNonlinConvCoef(farg1, farg2) & +bind(C, name="_wrap_FARKodeSetNonlinConvCoef") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKodeSetStagePredictFn(farg1, farg2) & +bind(C, name="_wrap_FARKodeSetStagePredictFn") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_FUNPTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKodeSetAdaptController(farg1, farg2) & +bind(C, name="_wrap_FARKodeSetAdaptController") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKodeSetAdaptivityAdjustment(farg1, farg2) & +bind(C, name="_wrap_FARKodeSetAdaptivityAdjustment") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKodeSetCFLFraction(farg1, farg2) & +bind(C, name="_wrap_FARKodeSetCFLFraction") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKodeSetErrorBias(farg1, farg2) & +bind(C, name="_wrap_FARKodeSetErrorBias") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKodeSetSafetyFactor(farg1, farg2) & +bind(C, name="_wrap_FARKodeSetSafetyFactor") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKodeSetMaxGrowth(farg1, farg2) & +bind(C, name="_wrap_FARKodeSetMaxGrowth") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKodeSetMinReduction(farg1, farg2) & +bind(C, name="_wrap_FARKodeSetMinReduction") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKodeSetFixedStepBounds(farg1, farg2, farg3) & +bind(C, name="_wrap_FARKodeSetFixedStepBounds") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +real(C_DOUBLE), intent(in) :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FARKodeSetMaxFirstGrowth(farg1, farg2) & +bind(C, name="_wrap_FARKodeSetMaxFirstGrowth") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKodeSetMaxEFailGrowth(farg1, farg2) & +bind(C, name="_wrap_FARKodeSetMaxEFailGrowth") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKodeSetSmallNumEFails(farg1, farg2) & +bind(C, name="_wrap_FARKodeSetSmallNumEFails") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKodeSetMaxCFailGrowth(farg1, farg2) & +bind(C, name="_wrap_FARKodeSetMaxCFailGrowth") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKodeSetStabilityFn(farg1, farg2, farg3) & +bind(C, name="_wrap_FARKodeSetStabilityFn") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_FUNPTR), value :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FARKodeSetMaxErrTestFails(farg1, farg2) & +bind(C, name="_wrap_FARKodeSetMaxErrTestFails") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKodeSetConstraints(farg1, farg2) & +bind(C, name="_wrap_FARKodeSetConstraints") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKodeSetMaxHnilWarns(farg1, farg2) & +bind(C, name="_wrap_FARKodeSetMaxHnilWarns") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKodeSetInitStep(farg1, farg2) & +bind(C, name="_wrap_FARKodeSetInitStep") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKodeSetMinStep(farg1, farg2) & +bind(C, name="_wrap_FARKodeSetMinStep") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKodeSetMaxStep(farg1, farg2) & +bind(C, name="_wrap_FARKodeSetMaxStep") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKodeSetMaxNumConstrFails(farg1, farg2) & +bind(C, name="_wrap_FARKodeSetMaxNumConstrFails") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKodeEvolve(farg1, farg2, farg3, farg4, farg5) & +bind(C, name="_wrap_FARKodeEvolve") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +type(C_PTR), value :: farg3 +type(C_PTR), value :: farg4 +integer(C_INT), intent(in) :: farg5 +integer(C_INT) :: fresult +end function + +function swigc_FARKodeGetDky(farg1, farg2, farg3, farg4) & +bind(C, name="_wrap_FARKodeGetDky") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT), intent(in) :: farg3 +type(C_PTR), value :: farg4 +integer(C_INT) :: fresult +end function + +function swigc_FARKodeComputeState(farg1, farg2, farg3) & +bind(C, name="_wrap_FARKodeComputeState") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FARKodeGetNumStepAttempts(farg1, farg2) & +bind(C, name="_wrap_FARKodeGetNumStepAttempts") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKodeGetWorkSpace(farg1, farg2, farg3) & +bind(C, name="_wrap_FARKodeGetWorkSpace") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FARKodeGetNumSteps(farg1, farg2) & +bind(C, name="_wrap_FARKodeGetNumSteps") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKodeGetLastStep(farg1, farg2) & +bind(C, name="_wrap_FARKodeGetLastStep") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKodeGetCurrentStep(farg1, farg2) & +bind(C, name="_wrap_FARKodeGetCurrentStep") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKodeGetErrWeights(farg1, farg2) & +bind(C, name="_wrap_FARKodeGetErrWeights") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKodeGetNumGEvals(farg1, farg2) & +bind(C, name="_wrap_FARKodeGetNumGEvals") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKodeGetRootInfo(farg1, farg2) & +bind(C, name="_wrap_FARKodeGetRootInfo") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKodeGetUserData(farg1, farg2) & +bind(C, name="_wrap_FARKodeGetUserData") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKodePrintAllStats(farg1, farg2, farg3) & +bind(C, name="_wrap_FARKodePrintAllStats") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT), intent(in) :: farg3 +integer(C_INT) :: fresult +end function + + subroutine SWIG_free(cptr) & + bind(C, name="free") + use, intrinsic :: ISO_C_BINDING + type(C_PTR), value :: cptr +end subroutine +function swigc_FARKodeGetReturnFlagName(farg1) & +bind(C, name="_wrap_FARKodeGetReturnFlagName") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +import :: swigarraywrapper +integer(C_LONG), intent(in) :: farg1 +type(SwigArrayWrapper) :: fresult +end function + +function swigc_FARKodeWriteParameters(farg1, farg2) & +bind(C, name="_wrap_FARKodeWriteParameters") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKodeGetNumExpSteps(farg1, farg2) & +bind(C, name="_wrap_FARKodeGetNumExpSteps") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKodeGetNumAccSteps(farg1, farg2) & +bind(C, name="_wrap_FARKodeGetNumAccSteps") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKodeGetNumErrTestFails(farg1, farg2) & +bind(C, name="_wrap_FARKodeGetNumErrTestFails") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKodeGetEstLocalErrors(farg1, farg2) & +bind(C, name="_wrap_FARKodeGetEstLocalErrors") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKodeGetActualInitStep(farg1, farg2) & +bind(C, name="_wrap_FARKodeGetActualInitStep") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKodeGetTolScaleFactor(farg1, farg2) & +bind(C, name="_wrap_FARKodeGetTolScaleFactor") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKodeGetNumConstrFails(farg1, farg2) & +bind(C, name="_wrap_FARKodeGetNumConstrFails") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKodeGetStepStats(farg1, farg2, farg3, farg4, farg5, farg6) & +bind(C, name="_wrap_FARKodeGetStepStats") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +type(C_PTR), value :: farg4 +type(C_PTR), value :: farg5 +type(C_PTR), value :: farg6 +integer(C_INT) :: fresult +end function + +function swigc_FARKodeGetNumLinSolvSetups(farg1, farg2) & +bind(C, name="_wrap_FARKodeGetNumLinSolvSetups") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKodeGetCurrentTime(farg1, farg2) & +bind(C, name="_wrap_FARKodeGetCurrentTime") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKodeGetCurrentState(farg1, farg2) & +bind(C, name="_wrap_FARKodeGetCurrentState") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKodeGetCurrentGamma(farg1, farg2) & +bind(C, name="_wrap_FARKodeGetCurrentGamma") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKodeGetNonlinearSystemData(farg1, farg2, farg3, farg4, farg5, farg6, farg7, farg8) & +bind(C, name="_wrap_FARKodeGetNonlinearSystemData") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +type(C_PTR), value :: farg4 +type(C_PTR), value :: farg5 +type(C_PTR), value :: farg6 +type(C_PTR), value :: farg7 +type(C_PTR), value :: farg8 +integer(C_INT) :: fresult +end function + +function swigc_FARKodeGetNumNonlinSolvIters(farg1, farg2) & +bind(C, name="_wrap_FARKodeGetNumNonlinSolvIters") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKodeGetNumNonlinSolvConvFails(farg1, farg2) & +bind(C, name="_wrap_FARKodeGetNumNonlinSolvConvFails") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKodeGetNonlinSolvStats(farg1, farg2, farg3) & +bind(C, name="_wrap_FARKodeGetNonlinSolvStats") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FARKodeGetNumStepSolveFails(farg1, farg2) & +bind(C, name="_wrap_FARKodeGetNumStepSolveFails") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKodeGetJac(farg1, farg2) & +bind(C, name="_wrap_FARKodeGetJac") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKodeGetJacTime(farg1, farg2) & +bind(C, name="_wrap_FARKodeGetJacTime") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKodeGetJacNumSteps(farg1, farg2) & +bind(C, name="_wrap_FARKodeGetJacNumSteps") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKodeGetLinWorkSpace(farg1, farg2, farg3) & +bind(C, name="_wrap_FARKodeGetLinWorkSpace") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FARKodeGetNumJacEvals(farg1, farg2) & +bind(C, name="_wrap_FARKodeGetNumJacEvals") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKodeGetNumPrecEvals(farg1, farg2) & +bind(C, name="_wrap_FARKodeGetNumPrecEvals") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKodeGetNumPrecSolves(farg1, farg2) & +bind(C, name="_wrap_FARKodeGetNumPrecSolves") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKodeGetNumLinIters(farg1, farg2) & +bind(C, name="_wrap_FARKodeGetNumLinIters") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKodeGetNumLinConvFails(farg1, farg2) & +bind(C, name="_wrap_FARKodeGetNumLinConvFails") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKodeGetNumJTSetupEvals(farg1, farg2) & +bind(C, name="_wrap_FARKodeGetNumJTSetupEvals") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKodeGetNumJtimesEvals(farg1, farg2) & +bind(C, name="_wrap_FARKodeGetNumJtimesEvals") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKodeGetNumLinRhsEvals(farg1, farg2) & +bind(C, name="_wrap_FARKodeGetNumLinRhsEvals") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKodeGetLastLinFlag(farg1, farg2) & +bind(C, name="_wrap_FARKodeGetLastLinFlag") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKodeGetLinReturnFlagName(farg1) & +bind(C, name="_wrap_FARKodeGetLinReturnFlagName") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +import :: swigarraywrapper +integer(C_LONG), intent(in) :: farg1 +type(SwigArrayWrapper) :: fresult +end function + +function swigc_FARKodeGetCurrentMassMatrix(farg1, farg2) & +bind(C, name="_wrap_FARKodeGetCurrentMassMatrix") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKodeGetResWeights(farg1, farg2) & +bind(C, name="_wrap_FARKodeGetResWeights") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKodeGetMassWorkSpace(farg1, farg2, farg3) & +bind(C, name="_wrap_FARKodeGetMassWorkSpace") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FARKodeGetNumMassSetups(farg1, farg2) & +bind(C, name="_wrap_FARKodeGetNumMassSetups") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKodeGetNumMassMultSetups(farg1, farg2) & +bind(C, name="_wrap_FARKodeGetNumMassMultSetups") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKodeGetNumMassMult(farg1, farg2) & +bind(C, name="_wrap_FARKodeGetNumMassMult") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKodeGetNumMassSolves(farg1, farg2) & +bind(C, name="_wrap_FARKodeGetNumMassSolves") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKodeGetNumMassPrecEvals(farg1, farg2) & +bind(C, name="_wrap_FARKodeGetNumMassPrecEvals") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKodeGetNumMassPrecSolves(farg1, farg2) & +bind(C, name="_wrap_FARKodeGetNumMassPrecSolves") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKodeGetNumMassIters(farg1, farg2) & +bind(C, name="_wrap_FARKodeGetNumMassIters") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKodeGetNumMassConvFails(farg1, farg2) & +bind(C, name="_wrap_FARKodeGetNumMassConvFails") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKodeGetNumMTSetups(farg1, farg2) & +bind(C, name="_wrap_FARKodeGetNumMTSetups") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKodeGetLastMassFlag(farg1, farg2) & +bind(C, name="_wrap_FARKodeGetLastMassFlag") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +subroutine swigc_FARKodeFree(farg1) & +bind(C, name="_wrap_FARKodeFree") +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +end subroutine + +subroutine swigc_FARKodePrintMem(farg1, farg2) & +bind(C, name="_wrap_FARKodePrintMem") +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +end subroutine + +function swigc_FARKodeSetRelaxFn(farg1, farg2, farg3) & +bind(C, name="_wrap_FARKodeSetRelaxFn") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_FUNPTR), value :: farg2 +type(C_FUNPTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FARKodeSetRelaxEtaFail(farg1, farg2) & +bind(C, name="_wrap_FARKodeSetRelaxEtaFail") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKodeSetRelaxLowerBound(farg1, farg2) & +bind(C, name="_wrap_FARKodeSetRelaxLowerBound") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKodeSetRelaxMaxFails(farg1, farg2) & +bind(C, name="_wrap_FARKodeSetRelaxMaxFails") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKodeSetRelaxMaxIters(farg1, farg2) & +bind(C, name="_wrap_FARKodeSetRelaxMaxIters") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKodeSetRelaxSolver(farg1, farg2) & +bind(C, name="_wrap_FARKodeSetRelaxSolver") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKodeSetRelaxResTol(farg1, farg2) & +bind(C, name="_wrap_FARKodeSetRelaxResTol") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKodeSetRelaxTol(farg1, farg2, farg3) & +bind(C, name="_wrap_FARKodeSetRelaxTol") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +real(C_DOUBLE), intent(in) :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FARKodeSetRelaxUpperBound(farg1, farg2) & +bind(C, name="_wrap_FARKodeSetRelaxUpperBound") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKodeGetNumRelaxFnEvals(farg1, farg2) & +bind(C, name="_wrap_FARKodeGetNumRelaxFnEvals") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKodeGetNumRelaxJacEvals(farg1, farg2) & +bind(C, name="_wrap_FARKodeGetNumRelaxJacEvals") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKodeGetNumRelaxFails(farg1, farg2) & +bind(C, name="_wrap_FARKodeGetNumRelaxFails") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKodeGetNumRelaxBoundFails(farg1, farg2) & +bind(C, name="_wrap_FARKodeGetNumRelaxBoundFails") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKodeGetNumRelaxSolveFails(farg1, farg2) & +bind(C, name="_wrap_FARKodeGetNumRelaxSolveFails") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKodeGetNumRelaxSolveIters(farg1, farg2) & +bind(C, name="_wrap_FARKodeGetNumRelaxSolveIters") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKBandPrecInit(farg1, farg2, farg3, farg4) & +bind(C, name="_wrap_FARKBandPrecInit") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT32_T), intent(in) :: farg2 +integer(C_INT32_T), intent(in) :: farg3 +integer(C_INT32_T), intent(in) :: farg4 +integer(C_INT) :: fresult +end function + +function swigc_FARKBandPrecGetWorkSpace(farg1, farg2, farg3) & +bind(C, name="_wrap_FARKBandPrecGetWorkSpace") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FARKBandPrecGetNumRhsEvals(farg1, farg2) & +bind(C, name="_wrap_FARKBandPrecGetNumRhsEvals") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKBBDPrecInit(farg1, farg2, farg3, farg4, farg5, farg6, farg7, farg8, farg9) & +bind(C, name="_wrap_FARKBBDPrecInit") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT32_T), intent(in) :: farg2 +integer(C_INT32_T), intent(in) :: farg3 +integer(C_INT32_T), intent(in) :: farg4 +integer(C_INT32_T), intent(in) :: farg5 +integer(C_INT32_T), intent(in) :: farg6 +real(C_DOUBLE), intent(in) :: farg7 +type(C_FUNPTR), value :: farg8 +type(C_FUNPTR), value :: farg9 +integer(C_INT) :: fresult +end function + +function swigc_FARKBBDPrecReInit(farg1, farg2, farg3, farg4) & +bind(C, name="_wrap_FARKBBDPrecReInit") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT32_T), intent(in) :: farg2 +integer(C_INT32_T), intent(in) :: farg3 +real(C_DOUBLE), intent(in) :: farg4 +integer(C_INT) :: fresult +end function + +function swigc_FARKBBDPrecGetWorkSpace(farg1, farg2, farg3) & +bind(C, name="_wrap_FARKBBDPrecGetWorkSpace") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FARKBBDPrecGetNumGfnEvals(farg1, farg2) & +bind(C, name="_wrap_FARKBBDPrecGetNumGfnEvals") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +subroutine swigc_ARKodeButcherTableMem_q_set(farg1, farg2) & +bind(C, name="_wrap_ARKodeButcherTableMem_q_set") +use, intrinsic :: ISO_C_BINDING +import :: swigclasswrapper +type(SwigClassWrapper) :: farg1 +integer(C_INT), intent(in) :: farg2 +end subroutine + +function swigc_ARKodeButcherTableMem_q_get(farg1) & +bind(C, name="_wrap_ARKodeButcherTableMem_q_get") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +import :: swigclasswrapper +type(SwigClassWrapper) :: farg1 +integer(C_INT) :: fresult +end function + +subroutine swigc_ARKodeButcherTableMem_p_set(farg1, farg2) & +bind(C, name="_wrap_ARKodeButcherTableMem_p_set") +use, intrinsic :: ISO_C_BINDING +import :: swigclasswrapper +type(SwigClassWrapper) :: farg1 +integer(C_INT), intent(in) :: farg2 +end subroutine + +function swigc_ARKodeButcherTableMem_p_get(farg1) & +bind(C, name="_wrap_ARKodeButcherTableMem_p_get") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +import :: swigclasswrapper +type(SwigClassWrapper) :: farg1 +integer(C_INT) :: fresult +end function + +subroutine swigc_ARKodeButcherTableMem_stages_set(farg1, farg2) & +bind(C, name="_wrap_ARKodeButcherTableMem_stages_set") +use, intrinsic :: ISO_C_BINDING +import :: swigclasswrapper +type(SwigClassWrapper) :: farg1 +integer(C_INT), intent(in) :: farg2 +end subroutine + +function swigc_ARKodeButcherTableMem_stages_get(farg1) & +bind(C, name="_wrap_ARKodeButcherTableMem_stages_get") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +import :: swigclasswrapper +type(SwigClassWrapper) :: farg1 +integer(C_INT) :: fresult +end function + +subroutine swigc_ARKodeButcherTableMem_A_set(farg1, farg2) & +bind(C, name="_wrap_ARKodeButcherTableMem_A_set") +use, intrinsic :: ISO_C_BINDING +import :: swigclasswrapper +type(SwigClassWrapper) :: farg1 +type(C_PTR), value :: farg2 +end subroutine + +function swigc_ARKodeButcherTableMem_A_get(farg1) & +bind(C, name="_wrap_ARKodeButcherTableMem_A_get") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +import :: swigclasswrapper +type(SwigClassWrapper) :: farg1 +type(C_PTR) :: fresult +end function + +subroutine swigc_ARKodeButcherTableMem_c_set(farg1, farg2) & +bind(C, name="_wrap_ARKodeButcherTableMem_c_set") +use, intrinsic :: ISO_C_BINDING +import :: swigclasswrapper +type(SwigClassWrapper) :: farg1 +type(C_PTR), value :: farg2 +end subroutine + +function swigc_ARKodeButcherTableMem_c_get(farg1) & +bind(C, name="_wrap_ARKodeButcherTableMem_c_get") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +import :: swigclasswrapper +type(SwigClassWrapper) :: farg1 +type(C_PTR) :: fresult +end function + +subroutine swigc_ARKodeButcherTableMem_b_set(farg1, farg2) & +bind(C, name="_wrap_ARKodeButcherTableMem_b_set") +use, intrinsic :: ISO_C_BINDING +import :: swigclasswrapper +type(SwigClassWrapper) :: farg1 +type(C_PTR), value :: farg2 +end subroutine + +function swigc_ARKodeButcherTableMem_b_get(farg1) & +bind(C, name="_wrap_ARKodeButcherTableMem_b_get") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +import :: swigclasswrapper +type(SwigClassWrapper) :: farg1 +type(C_PTR) :: fresult +end function + +subroutine swigc_ARKodeButcherTableMem_d_set(farg1, farg2) & +bind(C, name="_wrap_ARKodeButcherTableMem_d_set") +use, intrinsic :: ISO_C_BINDING +import :: swigclasswrapper +type(SwigClassWrapper) :: farg1 +type(C_PTR), value :: farg2 +end subroutine + +function swigc_ARKodeButcherTableMem_d_get(farg1) & +bind(C, name="_wrap_ARKodeButcherTableMem_d_get") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +import :: swigclasswrapper +type(SwigClassWrapper) :: farg1 +type(C_PTR) :: fresult +end function + +function swigc_new_ARKodeButcherTableMem() & +bind(C, name="_wrap_new_ARKodeButcherTableMem") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +import :: swigclasswrapper +type(SwigClassWrapper) :: fresult +end function + +subroutine swigc_delete_ARKodeButcherTableMem(farg1) & +bind(C, name="_wrap_delete_ARKodeButcherTableMem") +use, intrinsic :: ISO_C_BINDING +import :: swigclasswrapper +type(SwigClassWrapper), intent(inout) :: farg1 +end subroutine + +subroutine swigc_ARKodeButcherTableMem_op_assign__(farg1, farg2) & +bind(C, name="_wrap_ARKodeButcherTableMem_op_assign__") +use, intrinsic :: ISO_C_BINDING +import :: swigclasswrapper +type(SwigClassWrapper), intent(inout) :: farg1 +type(SwigClassWrapper) :: farg2 +end subroutine + +function swigc_FARKodeButcherTable_Alloc(farg1, farg2) & +bind(C, name="_wrap_FARKodeButcherTable_Alloc") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +integer(C_INT), intent(in) :: farg1 +integer(C_INT), intent(in) :: farg2 +type(C_PTR) :: fresult +end function + +function swigc_FARKodeButcherTable_Create(farg1, farg2, farg3, farg4, farg5, farg6, farg7) & +bind(C, name="_wrap_FARKodeButcherTable_Create") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +integer(C_INT), intent(in) :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT), intent(in) :: farg3 +type(C_PTR), value :: farg4 +type(C_PTR), value :: farg5 +type(C_PTR), value :: farg6 +type(C_PTR), value :: farg7 +type(C_PTR) :: fresult +end function + +function swigc_FARKodeButcherTable_Copy(farg1) & +bind(C, name="_wrap_FARKodeButcherTable_Copy") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR) :: fresult +end function + +subroutine swigc_FARKodeButcherTable_Space(farg1, farg2, farg3) & +bind(C, name="_wrap_FARKodeButcherTable_Space") +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +end subroutine + +subroutine swigc_FARKodeButcherTable_Free(farg1) & +bind(C, name="_wrap_FARKodeButcherTable_Free") +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +end subroutine + +subroutine swigc_FARKodeButcherTable_Write(farg1, farg2) & +bind(C, name="_wrap_FARKodeButcherTable_Write") +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +end subroutine + +function swigc_FARKodeButcherTable_IsStifflyAccurate(farg1) & +bind(C, name="_wrap_FARKodeButcherTable_IsStifflyAccurate") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT) :: fresult +end function + +function swigc_FARKodeButcherTable_CheckOrder(farg1, farg2, farg3, farg4) & +bind(C, name="_wrap_FARKodeButcherTable_CheckOrder") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +type(C_PTR), value :: farg4 +integer(C_INT) :: fresult +end function + +function swigc_FARKodeButcherTable_CheckARKOrder(farg1, farg2, farg3, farg4, farg5) & +bind(C, name="_wrap_FARKodeButcherTable_CheckARKOrder") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +type(C_PTR), value :: farg4 +type(C_PTR), value :: farg5 +integer(C_INT) :: fresult +end function + +function swigc_FARKodeButcherTable_LoadDIRK(farg1) & +bind(C, name="_wrap_FARKodeButcherTable_LoadDIRK") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +integer(C_INT), intent(in) :: farg1 +type(C_PTR) :: fresult +end function + +function swigc_FARKodeButcherTable_LoadDIRKByName(farg1) & +bind(C, name="_wrap_FARKodeButcherTable_LoadDIRKByName") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +import :: swigarraywrapper +type(SwigArrayWrapper) :: farg1 +type(C_PTR) :: fresult +end function + +function swigc_FARKodeButcherTable_DIRKIDToName(farg1) & +bind(C, name="_wrap_FARKodeButcherTable_DIRKIDToName") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +import :: swigarraywrapper +integer(C_INT), intent(in) :: farg1 +type(SwigArrayWrapper) :: fresult +end function + +function swigc_FARKodeButcherTable_LoadERK(farg1) & +bind(C, name="_wrap_FARKodeButcherTable_LoadERK") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +integer(C_INT), intent(in) :: farg1 +type(C_PTR) :: fresult +end function + +function swigc_FARKodeButcherTable_LoadERKByName(farg1) & +bind(C, name="_wrap_FARKodeButcherTable_LoadERKByName") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +import :: swigarraywrapper +type(SwigArrayWrapper) :: farg1 +type(C_PTR) :: fresult +end function + +function swigc_FARKodeButcherTable_ERKIDToName(farg1) & +bind(C, name="_wrap_FARKodeButcherTable_ERKIDToName") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +import :: swigarraywrapper +integer(C_INT), intent(in) :: farg1 +type(SwigArrayWrapper) :: fresult +end function + +subroutine swigc_ARKodeSPRKTableMem_q_set(farg1, farg2) & +bind(C, name="_wrap_ARKodeSPRKTableMem_q_set") +use, intrinsic :: ISO_C_BINDING +import :: swigclasswrapper +type(SwigClassWrapper) :: farg1 +integer(C_INT), intent(in) :: farg2 +end subroutine + +function swigc_ARKodeSPRKTableMem_q_get(farg1) & +bind(C, name="_wrap_ARKodeSPRKTableMem_q_get") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +import :: swigclasswrapper +type(SwigClassWrapper) :: farg1 +integer(C_INT) :: fresult +end function + +subroutine swigc_ARKodeSPRKTableMem_stages_set(farg1, farg2) & +bind(C, name="_wrap_ARKodeSPRKTableMem_stages_set") +use, intrinsic :: ISO_C_BINDING +import :: swigclasswrapper +type(SwigClassWrapper) :: farg1 +integer(C_INT), intent(in) :: farg2 +end subroutine + +function swigc_ARKodeSPRKTableMem_stages_get(farg1) & +bind(C, name="_wrap_ARKodeSPRKTableMem_stages_get") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +import :: swigclasswrapper +type(SwigClassWrapper) :: farg1 +integer(C_INT) :: fresult +end function + +subroutine swigc_ARKodeSPRKTableMem_a_set(farg1, farg2) & +bind(C, name="_wrap_ARKodeSPRKTableMem_a_set") +use, intrinsic :: ISO_C_BINDING +import :: swigclasswrapper +type(SwigClassWrapper) :: farg1 +type(C_PTR), value :: farg2 +end subroutine + +function swigc_ARKodeSPRKTableMem_a_get(farg1) & +bind(C, name="_wrap_ARKodeSPRKTableMem_a_get") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +import :: swigclasswrapper +type(SwigClassWrapper) :: farg1 +type(C_PTR) :: fresult +end function + +subroutine swigc_ARKodeSPRKTableMem_ahat_set(farg1, farg2) & +bind(C, name="_wrap_ARKodeSPRKTableMem_ahat_set") +use, intrinsic :: ISO_C_BINDING +import :: swigclasswrapper +type(SwigClassWrapper) :: farg1 +type(C_PTR), value :: farg2 +end subroutine + +function swigc_ARKodeSPRKTableMem_ahat_get(farg1) & +bind(C, name="_wrap_ARKodeSPRKTableMem_ahat_get") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +import :: swigclasswrapper +type(SwigClassWrapper) :: farg1 +type(C_PTR) :: fresult +end function + +function swigc_new_ARKodeSPRKTableMem() & +bind(C, name="_wrap_new_ARKodeSPRKTableMem") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +import :: swigclasswrapper +type(SwigClassWrapper) :: fresult +end function + +subroutine swigc_delete_ARKodeSPRKTableMem(farg1) & +bind(C, name="_wrap_delete_ARKodeSPRKTableMem") +use, intrinsic :: ISO_C_BINDING +import :: swigclasswrapper +type(SwigClassWrapper), intent(inout) :: farg1 +end subroutine + +subroutine swigc_ARKodeSPRKTableMem_op_assign__(farg1, farg2) & +bind(C, name="_wrap_ARKodeSPRKTableMem_op_assign__") +use, intrinsic :: ISO_C_BINDING +import :: swigclasswrapper +type(SwigClassWrapper), intent(inout) :: farg1 +type(SwigClassWrapper) :: farg2 +end subroutine + +function swigc_FARKodeSPRKTable_Create(farg1, farg2, farg3, farg4) & +bind(C, name="_wrap_FARKodeSPRKTable_Create") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +integer(C_INT), intent(in) :: farg1 +integer(C_INT), intent(in) :: farg2 +type(C_PTR), value :: farg3 +type(C_PTR), value :: farg4 +type(C_PTR) :: fresult +end function + +function swigc_FARKodeSPRKTable_Alloc(farg1) & +bind(C, name="_wrap_FARKodeSPRKTable_Alloc") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +integer(C_INT), intent(in) :: farg1 +type(C_PTR) :: fresult +end function + +function swigc_FARKodeSPRKTable_Load(farg1) & +bind(C, name="_wrap_FARKodeSPRKTable_Load") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +integer(C_INT), intent(in) :: farg1 +type(C_PTR) :: fresult +end function + +function swigc_FARKodeSPRKTable_LoadByName(farg1) & +bind(C, name="_wrap_FARKodeSPRKTable_LoadByName") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +import :: swigarraywrapper +type(SwigArrayWrapper) :: farg1 +type(C_PTR) :: fresult +end function + +function swigc_FARKodeSPRKTable_Copy(farg1) & +bind(C, name="_wrap_FARKodeSPRKTable_Copy") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR) :: fresult +end function + +subroutine swigc_FARKodeSPRKTable_Write(farg1, farg2) & +bind(C, name="_wrap_FARKodeSPRKTable_Write") +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +end subroutine + +subroutine swigc_FARKodeSPRKTable_Space(farg1, farg2, farg3) & +bind(C, name="_wrap_FARKodeSPRKTable_Space") +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +end subroutine + +subroutine swigc_FARKodeSPRKTable_Free(farg1) & +bind(C, name="_wrap_FARKodeSPRKTable_Free") +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +end subroutine + +function swigc_FARKodeSPRKTable_ToButcher(farg1, farg2, farg3) & +bind(C, name="_wrap_FARKodeSPRKTable_ToButcher") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FARKodeSetLinearSolver(farg1, farg2, farg3) & +bind(C, name="_wrap_FARKodeSetLinearSolver") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FARKodeSetMassLinearSolver(farg1, farg2, farg3, farg4) & +bind(C, name="_wrap_FARKodeSetMassLinearSolver") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT), intent(in) :: farg4 +integer(C_INT) :: fresult +end function + +function swigc_FARKodeSetJacFn(farg1, farg2) & +bind(C, name="_wrap_FARKodeSetJacFn") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_FUNPTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKodeSetMassFn(farg1, farg2) & +bind(C, name="_wrap_FARKodeSetMassFn") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_FUNPTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKodeSetJacEvalFrequency(farg1, farg2) & +bind(C, name="_wrap_FARKodeSetJacEvalFrequency") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_LONG), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKodeSetLinearSolutionScaling(farg1, farg2) & +bind(C, name="_wrap_FARKodeSetLinearSolutionScaling") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKodeSetEpsLin(farg1, farg2) & +bind(C, name="_wrap_FARKodeSetEpsLin") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKodeSetMassEpsLin(farg1, farg2) & +bind(C, name="_wrap_FARKodeSetMassEpsLin") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKodeSetLSNormFactor(farg1, farg2) & +bind(C, name="_wrap_FARKodeSetLSNormFactor") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKodeSetMassLSNormFactor(farg1, farg2) & +bind(C, name="_wrap_FARKodeSetMassLSNormFactor") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKodeSetPreconditioner(farg1, farg2, farg3) & +bind(C, name="_wrap_FARKodeSetPreconditioner") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_FUNPTR), value :: farg2 +type(C_FUNPTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FARKodeSetMassPreconditioner(farg1, farg2, farg3) & +bind(C, name="_wrap_FARKodeSetMassPreconditioner") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_FUNPTR), value :: farg2 +type(C_FUNPTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FARKodeSetJacTimes(farg1, farg2, farg3) & +bind(C, name="_wrap_FARKodeSetJacTimes") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_FUNPTR), value :: farg2 +type(C_FUNPTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FARKodeSetJacTimesRhsFn(farg1, farg2) & +bind(C, name="_wrap_FARKodeSetJacTimesRhsFn") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_FUNPTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKodeSetMassTimes(farg1, farg2, farg3, farg4) & +bind(C, name="_wrap_FARKodeSetMassTimes") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_FUNPTR), value :: farg2 +type(C_FUNPTR), value :: farg3 +type(C_PTR), value :: farg4 +integer(C_INT) :: fresult +end function + +function swigc_FARKodeSetLinSysFn(farg1, farg2) & +bind(C, name="_wrap_FARKodeSetLinSysFn") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_FUNPTR), value :: farg2 +integer(C_INT) :: fresult +end function + +end interface + + +contains + ! MODULE SUBPROGRAMS +function FARKodeResize(arkode_mem, ynew, hscale, t0, resize, resize_data) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +type(N_Vector), target, intent(inout) :: ynew +real(C_DOUBLE), intent(in) :: hscale +real(C_DOUBLE), intent(in) :: t0 +type(C_FUNPTR), intent(in), value :: resize +type(C_PTR) :: resize_data +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +real(C_DOUBLE) :: farg3 +real(C_DOUBLE) :: farg4 +type(C_FUNPTR) :: farg5 +type(C_PTR) :: farg6 + +farg1 = arkode_mem +farg2 = c_loc(ynew) +farg3 = hscale +farg4 = t0 +farg5 = resize +farg6 = resize_data +fresult = swigc_FARKodeResize(farg1, farg2, farg3, farg4, farg5, farg6) +swig_result = fresult +end function + +function FARKodeReset(arkode_mem, tr, yr) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +real(C_DOUBLE), intent(in) :: tr +type(N_Vector), target, intent(inout) :: yr +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 +type(C_PTR) :: farg3 + +farg1 = arkode_mem +farg2 = tr +farg3 = c_loc(yr) +fresult = swigc_FARKodeReset(farg1, farg2, farg3) +swig_result = fresult +end function + +function FARKodeSStolerances(arkode_mem, reltol, abstol) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +real(C_DOUBLE), intent(in) :: reltol +real(C_DOUBLE), intent(in) :: abstol +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 +real(C_DOUBLE) :: farg3 + +farg1 = arkode_mem +farg2 = reltol +farg3 = abstol +fresult = swigc_FARKodeSStolerances(farg1, farg2, farg3) +swig_result = fresult +end function + +function FARKodeSVtolerances(arkode_mem, reltol, abstol) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +real(C_DOUBLE), intent(in) :: reltol +type(N_Vector), target, intent(inout) :: abstol +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 +type(C_PTR) :: farg3 + +farg1 = arkode_mem +farg2 = reltol +farg3 = c_loc(abstol) +fresult = swigc_FARKodeSVtolerances(farg1, farg2, farg3) +swig_result = fresult +end function + +function FARKodeWFtolerances(arkode_mem, efun) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +type(C_FUNPTR), intent(in), value :: efun +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_FUNPTR) :: farg2 + +farg1 = arkode_mem +farg2 = efun +fresult = swigc_FARKodeWFtolerances(farg1, farg2) +swig_result = fresult +end function + +function FARKodeResStolerance(arkode_mem, rabstol) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +real(C_DOUBLE), intent(in) :: rabstol +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 + +farg1 = arkode_mem +farg2 = rabstol +fresult = swigc_FARKodeResStolerance(farg1, farg2) +swig_result = fresult +end function + +function FARKodeResVtolerance(arkode_mem, rabstol) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +type(N_Vector), target, intent(inout) :: rabstol +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(rabstol) +fresult = swigc_FARKodeResVtolerance(farg1, farg2) +swig_result = fresult +end function + +function FARKodeResFtolerance(arkode_mem, rfun) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +type(C_FUNPTR), intent(in), value :: rfun +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_FUNPTR) :: farg2 + +farg1 = arkode_mem +farg2 = rfun +fresult = swigc_FARKodeResFtolerance(farg1, farg2) +swig_result = fresult +end function + +function FARKodeRootInit(arkode_mem, nrtfn, g) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_INT), intent(in) :: nrtfn +type(C_FUNPTR), intent(in), value :: g +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 +type(C_FUNPTR) :: farg3 + +farg1 = arkode_mem +farg2 = nrtfn +farg3 = g +fresult = swigc_FARKodeRootInit(farg1, farg2, farg3) +swig_result = fresult +end function + +function FARKodeSetRootDirection(arkode_mem, rootdir) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_INT), dimension(*), target, intent(inout) :: rootdir +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(rootdir(1)) +fresult = swigc_FARKodeSetRootDirection(farg1, farg2) +swig_result = fresult +end function + +function FARKodeSetNoInactiveRootWarn(arkode_mem) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_INT) :: fresult +type(C_PTR) :: farg1 + +farg1 = arkode_mem +fresult = swigc_FARKodeSetNoInactiveRootWarn(farg1) +swig_result = fresult +end function + +function FARKodeSetDefaults(arkode_mem) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_INT) :: fresult +type(C_PTR) :: farg1 + +farg1 = arkode_mem +fresult = swigc_FARKodeSetDefaults(farg1) +swig_result = fresult +end function + +function FARKodeSetOrder(arkode_mem, maxord) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_INT), intent(in) :: maxord +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = arkode_mem +farg2 = maxord +fresult = swigc_FARKodeSetOrder(farg1, farg2) +swig_result = fresult +end function + +function FARKodeSetInterpolantType(arkode_mem, itype) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_INT), intent(in) :: itype +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = arkode_mem +farg2 = itype +fresult = swigc_FARKodeSetInterpolantType(farg1, farg2) +swig_result = fresult +end function + +function FARKodeSetInterpolantDegree(arkode_mem, degree) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_INT), intent(in) :: degree +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = arkode_mem +farg2 = degree +fresult = swigc_FARKodeSetInterpolantDegree(farg1, farg2) +swig_result = fresult +end function + +function FARKodeSetMaxNumSteps(arkode_mem, mxsteps) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_LONG), intent(in) :: mxsteps +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_LONG) :: farg2 + +farg1 = arkode_mem +farg2 = mxsteps +fresult = swigc_FARKodeSetMaxNumSteps(farg1, farg2) +swig_result = fresult +end function + +function FARKodeSetInterpolateStopTime(arkode_mem, interp) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_INT), intent(in) :: interp +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = arkode_mem +farg2 = interp +fresult = swigc_FARKodeSetInterpolateStopTime(farg1, farg2) +swig_result = fresult +end function + +function FARKodeSetStopTime(arkode_mem, tstop) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +real(C_DOUBLE), intent(in) :: tstop +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 + +farg1 = arkode_mem +farg2 = tstop +fresult = swigc_FARKodeSetStopTime(farg1, farg2) +swig_result = fresult +end function + +function FARKodeClearStopTime(arkode_mem) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_INT) :: fresult +type(C_PTR) :: farg1 + +farg1 = arkode_mem +fresult = swigc_FARKodeClearStopTime(farg1) +swig_result = fresult +end function + +function FARKodeSetFixedStep(arkode_mem, hfixed) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +real(C_DOUBLE), intent(in) :: hfixed +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 + +farg1 = arkode_mem +farg2 = hfixed +fresult = swigc_FARKodeSetFixedStep(farg1, farg2) +swig_result = fresult +end function + +function FARKodeSetUserData(arkode_mem, user_data) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +type(C_PTR) :: user_data +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = user_data +fresult = swigc_FARKodeSetUserData(farg1, farg2) +swig_result = fresult +end function + +function FARKodeSetPostprocessStepFn(arkode_mem, processstep) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +type(C_FUNPTR), intent(in), value :: processstep +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_FUNPTR) :: farg2 + +farg1 = arkode_mem +farg2 = processstep +fresult = swigc_FARKodeSetPostprocessStepFn(farg1, farg2) +swig_result = fresult +end function + +function FARKodeSetPostprocessStageFn(arkode_mem, processstage) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +type(C_FUNPTR), intent(in), value :: processstage +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_FUNPTR) :: farg2 + +farg1 = arkode_mem +farg2 = processstage +fresult = swigc_FARKodeSetPostprocessStageFn(farg1, farg2) +swig_result = fresult +end function + +function FARKodeSetNonlinearSolver(arkode_mem, nls) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +type(SUNNonlinearSolver), target, intent(inout) :: nls +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(nls) +fresult = swigc_FARKodeSetNonlinearSolver(farg1, farg2) +swig_result = fresult +end function + +function FARKodeSetLinear(arkode_mem, timedepend) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_INT), intent(in) :: timedepend +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = arkode_mem +farg2 = timedepend +fresult = swigc_FARKodeSetLinear(farg1, farg2) +swig_result = fresult +end function + +function FARKodeSetNonlinear(arkode_mem) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_INT) :: fresult +type(C_PTR) :: farg1 + +farg1 = arkode_mem +fresult = swigc_FARKodeSetNonlinear(farg1) +swig_result = fresult +end function + +function FARKodeSetAutonomous(arkode_mem, autonomous) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_INT), intent(in) :: autonomous +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = arkode_mem +farg2 = autonomous +fresult = swigc_FARKodeSetAutonomous(farg1, farg2) +swig_result = fresult +end function + +function FARKodeSetNlsRhsFn(arkode_mem, nls_fi) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +type(C_FUNPTR), intent(in), value :: nls_fi +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_FUNPTR) :: farg2 + +farg1 = arkode_mem +farg2 = nls_fi +fresult = swigc_FARKodeSetNlsRhsFn(farg1, farg2) +swig_result = fresult +end function + +function FARKodeSetDeduceImplicitRhs(arkode_mem, deduce) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_INT), intent(in) :: deduce +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = arkode_mem +farg2 = deduce +fresult = swigc_FARKodeSetDeduceImplicitRhs(farg1, farg2) +swig_result = fresult +end function + +function FARKodeSetNonlinCRDown(arkode_mem, crdown) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +real(C_DOUBLE), intent(in) :: crdown +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 + +farg1 = arkode_mem +farg2 = crdown +fresult = swigc_FARKodeSetNonlinCRDown(farg1, farg2) +swig_result = fresult +end function + +function FARKodeSetNonlinRDiv(arkode_mem, rdiv) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +real(C_DOUBLE), intent(in) :: rdiv +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 + +farg1 = arkode_mem +farg2 = rdiv +fresult = swigc_FARKodeSetNonlinRDiv(farg1, farg2) +swig_result = fresult +end function + +function FARKodeSetDeltaGammaMax(arkode_mem, dgmax) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +real(C_DOUBLE), intent(in) :: dgmax +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 + +farg1 = arkode_mem +farg2 = dgmax +fresult = swigc_FARKodeSetDeltaGammaMax(farg1, farg2) +swig_result = fresult +end function + +function FARKodeSetLSetupFrequency(arkode_mem, msbp) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_INT), intent(in) :: msbp +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = arkode_mem +farg2 = msbp +fresult = swigc_FARKodeSetLSetupFrequency(farg1, farg2) +swig_result = fresult +end function + +function FARKodeSetPredictorMethod(arkode_mem, method) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_INT), intent(in) :: method +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = arkode_mem +farg2 = method +fresult = swigc_FARKodeSetPredictorMethod(farg1, farg2) +swig_result = fresult +end function + +function FARKodeSetMaxNonlinIters(arkode_mem, maxcor) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_INT), intent(in) :: maxcor +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = arkode_mem +farg2 = maxcor +fresult = swigc_FARKodeSetMaxNonlinIters(farg1, farg2) +swig_result = fresult +end function + +function FARKodeSetMaxConvFails(arkode_mem, maxncf) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_INT), intent(in) :: maxncf +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = arkode_mem +farg2 = maxncf +fresult = swigc_FARKodeSetMaxConvFails(farg1, farg2) +swig_result = fresult +end function + +function FARKodeSetNonlinConvCoef(arkode_mem, nlscoef) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +real(C_DOUBLE), intent(in) :: nlscoef +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 + +farg1 = arkode_mem +farg2 = nlscoef +fresult = swigc_FARKodeSetNonlinConvCoef(farg1, farg2) +swig_result = fresult +end function + +function FARKodeSetStagePredictFn(arkode_mem, predictstage) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +type(C_FUNPTR), intent(in), value :: predictstage +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_FUNPTR) :: farg2 + +farg1 = arkode_mem +farg2 = predictstage +fresult = swigc_FARKodeSetStagePredictFn(farg1, farg2) +swig_result = fresult +end function + +function FARKodeSetAdaptController(arkode_mem, c) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +type(SUNAdaptController), target, intent(inout) :: c +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(c) +fresult = swigc_FARKodeSetAdaptController(farg1, farg2) +swig_result = fresult +end function + +function FARKodeSetAdaptivityAdjustment(arkode_mem, adjust) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_INT), intent(in) :: adjust +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = arkode_mem +farg2 = adjust +fresult = swigc_FARKodeSetAdaptivityAdjustment(farg1, farg2) +swig_result = fresult +end function + +function FARKodeSetCFLFraction(arkode_mem, cfl_frac) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +real(C_DOUBLE), intent(in) :: cfl_frac +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 + +farg1 = arkode_mem +farg2 = cfl_frac +fresult = swigc_FARKodeSetCFLFraction(farg1, farg2) +swig_result = fresult +end function + +function FARKodeSetErrorBias(arkode_mem, bias) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +real(C_DOUBLE), intent(in) :: bias +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 + +farg1 = arkode_mem +farg2 = bias +fresult = swigc_FARKodeSetErrorBias(farg1, farg2) +swig_result = fresult +end function + +function FARKodeSetSafetyFactor(arkode_mem, safety) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +real(C_DOUBLE), intent(in) :: safety +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 + +farg1 = arkode_mem +farg2 = safety +fresult = swigc_FARKodeSetSafetyFactor(farg1, farg2) +swig_result = fresult +end function + +function FARKodeSetMaxGrowth(arkode_mem, mx_growth) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +real(C_DOUBLE), intent(in) :: mx_growth +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 + +farg1 = arkode_mem +farg2 = mx_growth +fresult = swigc_FARKodeSetMaxGrowth(farg1, farg2) +swig_result = fresult +end function + +function FARKodeSetMinReduction(arkode_mem, eta_min) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +real(C_DOUBLE), intent(in) :: eta_min +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 + +farg1 = arkode_mem +farg2 = eta_min +fresult = swigc_FARKodeSetMinReduction(farg1, farg2) +swig_result = fresult +end function + +function FARKodeSetFixedStepBounds(arkode_mem, lb, ub) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +real(C_DOUBLE), intent(in) :: lb +real(C_DOUBLE), intent(in) :: ub +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 +real(C_DOUBLE) :: farg3 + +farg1 = arkode_mem +farg2 = lb +farg3 = ub +fresult = swigc_FARKodeSetFixedStepBounds(farg1, farg2, farg3) +swig_result = fresult +end function + +function FARKodeSetMaxFirstGrowth(arkode_mem, etamx1) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +real(C_DOUBLE), intent(in) :: etamx1 +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 + +farg1 = arkode_mem +farg2 = etamx1 +fresult = swigc_FARKodeSetMaxFirstGrowth(farg1, farg2) +swig_result = fresult +end function + +function FARKodeSetMaxEFailGrowth(arkode_mem, etamxf) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +real(C_DOUBLE), intent(in) :: etamxf +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 + +farg1 = arkode_mem +farg2 = etamxf +fresult = swigc_FARKodeSetMaxEFailGrowth(farg1, farg2) +swig_result = fresult +end function + +function FARKodeSetSmallNumEFails(arkode_mem, small_nef) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_INT), intent(in) :: small_nef +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = arkode_mem +farg2 = small_nef +fresult = swigc_FARKodeSetSmallNumEFails(farg1, farg2) +swig_result = fresult +end function + +function FARKodeSetMaxCFailGrowth(arkode_mem, etacf) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +real(C_DOUBLE), intent(in) :: etacf +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 + +farg1 = arkode_mem +farg2 = etacf +fresult = swigc_FARKodeSetMaxCFailGrowth(farg1, farg2) +swig_result = fresult +end function + +function FARKodeSetStabilityFn(arkode_mem, estab, estab_data) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +type(C_FUNPTR), intent(in), value :: estab +type(C_PTR) :: estab_data +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_FUNPTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = arkode_mem +farg2 = estab +farg3 = estab_data +fresult = swigc_FARKodeSetStabilityFn(farg1, farg2, farg3) +swig_result = fresult +end function + +function FARKodeSetMaxErrTestFails(arkode_mem, maxnef) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_INT), intent(in) :: maxnef +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = arkode_mem +farg2 = maxnef +fresult = swigc_FARKodeSetMaxErrTestFails(farg1, farg2) +swig_result = fresult +end function + +function FARKodeSetConstraints(arkode_mem, constraints) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +type(N_Vector), target, intent(inout) :: constraints +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(constraints) +fresult = swigc_FARKodeSetConstraints(farg1, farg2) +swig_result = fresult +end function + +function FARKodeSetMaxHnilWarns(arkode_mem, mxhnil) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_INT), intent(in) :: mxhnil +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = arkode_mem +farg2 = mxhnil +fresult = swigc_FARKodeSetMaxHnilWarns(farg1, farg2) +swig_result = fresult +end function + +function FARKodeSetInitStep(arkode_mem, hin) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +real(C_DOUBLE), intent(in) :: hin +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 + +farg1 = arkode_mem +farg2 = hin +fresult = swigc_FARKodeSetInitStep(farg1, farg2) +swig_result = fresult +end function + +function FARKodeSetMinStep(arkode_mem, hmin) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +real(C_DOUBLE), intent(in) :: hmin +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 + +farg1 = arkode_mem +farg2 = hmin +fresult = swigc_FARKodeSetMinStep(farg1, farg2) +swig_result = fresult +end function + +function FARKodeSetMaxStep(arkode_mem, hmax) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +real(C_DOUBLE), intent(in) :: hmax +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 + +farg1 = arkode_mem +farg2 = hmax +fresult = swigc_FARKodeSetMaxStep(farg1, farg2) +swig_result = fresult +end function + +function FARKodeSetMaxNumConstrFails(arkode_mem, maxfails) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_INT), intent(in) :: maxfails +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = arkode_mem +farg2 = maxfails +fresult = swigc_FARKodeSetMaxNumConstrFails(farg1, farg2) +swig_result = fresult +end function + +function FARKodeEvolve(arkode_mem, tout, yout, tret, itask) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +real(C_DOUBLE), intent(in) :: tout +type(N_Vector), target, intent(inout) :: yout +real(C_DOUBLE), dimension(*), target, intent(inout) :: tret +integer(C_INT), intent(in) :: itask +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 +type(C_PTR) :: farg3 +type(C_PTR) :: farg4 +integer(C_INT) :: farg5 + +farg1 = arkode_mem +farg2 = tout +farg3 = c_loc(yout) +farg4 = c_loc(tret(1)) +farg5 = itask +fresult = swigc_FARKodeEvolve(farg1, farg2, farg3, farg4, farg5) +swig_result = fresult +end function + +function FARKodeGetDky(arkode_mem, t, k, dky) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +real(C_DOUBLE), intent(in) :: t +integer(C_INT), intent(in) :: k +type(N_Vector), target, intent(inout) :: dky +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 +integer(C_INT) :: farg3 +type(C_PTR) :: farg4 + +farg1 = arkode_mem +farg2 = t +farg3 = k +farg4 = c_loc(dky) +fresult = swigc_FARKodeGetDky(farg1, farg2, farg3, farg4) +swig_result = fresult +end function + +function FARKodeComputeState(arkode_mem, zcor, z) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +type(N_Vector), target, intent(inout) :: zcor +type(N_Vector), target, intent(inout) :: z +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = arkode_mem +farg2 = c_loc(zcor) +farg3 = c_loc(z) +fresult = swigc_FARKodeComputeState(farg1, farg2, farg3) +swig_result = fresult +end function + +function FARKodeGetNumStepAttempts(arkode_mem, step_attempts) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: step_attempts +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(step_attempts(1)) +fresult = swigc_FARKodeGetNumStepAttempts(farg1, farg2) +swig_result = fresult +end function + +function FARKodeGetWorkSpace(arkode_mem, lenrw, leniw) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: lenrw +integer(C_LONG), dimension(*), target, intent(inout) :: leniw +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = arkode_mem +farg2 = c_loc(lenrw(1)) +farg3 = c_loc(leniw(1)) +fresult = swigc_FARKodeGetWorkSpace(farg1, farg2, farg3) +swig_result = fresult +end function + +function FARKodeGetNumSteps(arkode_mem, nsteps) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: nsteps +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(nsteps(1)) +fresult = swigc_FARKodeGetNumSteps(farg1, farg2) +swig_result = fresult +end function + +function FARKodeGetLastStep(arkode_mem, hlast) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +real(C_DOUBLE), dimension(*), target, intent(inout) :: hlast +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(hlast(1)) +fresult = swigc_FARKodeGetLastStep(farg1, farg2) +swig_result = fresult +end function + +function FARKodeGetCurrentStep(arkode_mem, hcur) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +real(C_DOUBLE), dimension(*), target, intent(inout) :: hcur +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(hcur(1)) +fresult = swigc_FARKodeGetCurrentStep(farg1, farg2) +swig_result = fresult +end function + +function FARKodeGetErrWeights(arkode_mem, eweight) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +type(N_Vector), target, intent(inout) :: eweight +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(eweight) +fresult = swigc_FARKodeGetErrWeights(farg1, farg2) +swig_result = fresult +end function + +function FARKodeGetNumGEvals(arkode_mem, ngevals) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: ngevals +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(ngevals(1)) +fresult = swigc_FARKodeGetNumGEvals(farg1, farg2) +swig_result = fresult +end function + +function FARKodeGetRootInfo(arkode_mem, rootsfound) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_INT), dimension(*), target, intent(inout) :: rootsfound +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(rootsfound(1)) +fresult = swigc_FARKodeGetRootInfo(farg1, farg2) +swig_result = fresult +end function + +function FARKodeGetUserData(arkode_mem, user_data) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +type(C_PTR), target, intent(inout) :: user_data +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(user_data) +fresult = swigc_FARKodeGetUserData(farg1, farg2) +swig_result = fresult +end function + +function FARKodePrintAllStats(arkode_mem, outfile, fmt) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +type(C_PTR) :: outfile +integer(SUNOutputFormat), intent(in) :: fmt +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +integer(C_INT) :: farg3 + +farg1 = arkode_mem +farg2 = outfile +farg3 = fmt +fresult = swigc_FARKodePrintAllStats(farg1, farg2, farg3) +swig_result = fresult +end function + + +subroutine SWIG_chararray_to_string(wrap, string) + use, intrinsic :: ISO_C_BINDING + type(SwigArrayWrapper), intent(IN) :: wrap + character(kind=C_CHAR, len=:), allocatable, intent(OUT) :: string + character(kind=C_CHAR), dimension(:), pointer :: chars + integer(kind=C_SIZE_T) :: i + call c_f_pointer(wrap%data, chars, [wrap%size]) + allocate(character(kind=C_CHAR, len=wrap%size) :: string) + do i=1, wrap%size + string(i:i) = chars(i) + end do +end subroutine + +function FARKodeGetReturnFlagName(flag) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +character(kind=C_CHAR, len=:), allocatable :: swig_result +integer(C_LONG), intent(in) :: flag +type(SwigArrayWrapper) :: fresult +integer(C_LONG) :: farg1 + +farg1 = flag +fresult = swigc_FARKodeGetReturnFlagName(farg1) +call SWIG_chararray_to_string(fresult, swig_result) +if (.false.) call SWIG_free(fresult%data) +end function + +function FARKodeWriteParameters(arkode_mem, fp) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +type(C_PTR) :: fp +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = fp +fresult = swigc_FARKodeWriteParameters(farg1, farg2) +swig_result = fresult +end function + +function FARKodeGetNumExpSteps(arkode_mem, expsteps) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: expsteps +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(expsteps(1)) +fresult = swigc_FARKodeGetNumExpSteps(farg1, farg2) +swig_result = fresult +end function + +function FARKodeGetNumAccSteps(arkode_mem, accsteps) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: accsteps +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(accsteps(1)) +fresult = swigc_FARKodeGetNumAccSteps(farg1, farg2) +swig_result = fresult +end function + +function FARKodeGetNumErrTestFails(arkode_mem, netfails) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: netfails +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(netfails(1)) +fresult = swigc_FARKodeGetNumErrTestFails(farg1, farg2) +swig_result = fresult +end function + +function FARKodeGetEstLocalErrors(arkode_mem, ele) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +type(N_Vector), target, intent(inout) :: ele +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(ele) +fresult = swigc_FARKodeGetEstLocalErrors(farg1, farg2) +swig_result = fresult +end function + +function FARKodeGetActualInitStep(arkode_mem, hinused) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +real(C_DOUBLE), dimension(*), target, intent(inout) :: hinused +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(hinused(1)) +fresult = swigc_FARKodeGetActualInitStep(farg1, farg2) +swig_result = fresult +end function + +function FARKodeGetTolScaleFactor(arkode_mem, tolsfac) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +real(C_DOUBLE), dimension(*), target, intent(inout) :: tolsfac +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(tolsfac(1)) +fresult = swigc_FARKodeGetTolScaleFactor(farg1, farg2) +swig_result = fresult +end function + +function FARKodeGetNumConstrFails(arkode_mem, nconstrfails) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: nconstrfails +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(nconstrfails(1)) +fresult = swigc_FARKodeGetNumConstrFails(farg1, farg2) +swig_result = fresult +end function + +function FARKodeGetStepStats(arkode_mem, nsteps, hinused, hlast, hcur, tcur) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: nsteps +real(C_DOUBLE), dimension(*), target, intent(inout) :: hinused +real(C_DOUBLE), dimension(*), target, intent(inout) :: hlast +real(C_DOUBLE), dimension(*), target, intent(inout) :: hcur +real(C_DOUBLE), dimension(*), target, intent(inout) :: tcur +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 +type(C_PTR) :: farg4 +type(C_PTR) :: farg5 +type(C_PTR) :: farg6 + +farg1 = arkode_mem +farg2 = c_loc(nsteps(1)) +farg3 = c_loc(hinused(1)) +farg4 = c_loc(hlast(1)) +farg5 = c_loc(hcur(1)) +farg6 = c_loc(tcur(1)) +fresult = swigc_FARKodeGetStepStats(farg1, farg2, farg3, farg4, farg5, farg6) +swig_result = fresult +end function + +function FARKodeGetNumLinSolvSetups(arkode_mem, nlinsetups) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: nlinsetups +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(nlinsetups(1)) +fresult = swigc_FARKodeGetNumLinSolvSetups(farg1, farg2) +swig_result = fresult +end function + +function FARKodeGetCurrentTime(arkode_mem, tcur) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +real(C_DOUBLE), dimension(*), target, intent(inout) :: tcur +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(tcur(1)) +fresult = swigc_FARKodeGetCurrentTime(farg1, farg2) +swig_result = fresult +end function + +function FARKodeGetCurrentState(arkode_mem, state) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +type(C_PTR) :: state +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = state +fresult = swigc_FARKodeGetCurrentState(farg1, farg2) +swig_result = fresult +end function + +function FARKodeGetCurrentGamma(arkode_mem, gamma) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +real(C_DOUBLE), dimension(*), target, intent(inout) :: gamma +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(gamma(1)) +fresult = swigc_FARKodeGetCurrentGamma(farg1, farg2) +swig_result = fresult +end function + +function FARKodeGetNonlinearSystemData(arkode_mem, tcur, zpred, z, fi, gamma, sdata, user_data) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +real(C_DOUBLE), dimension(*), target, intent(inout) :: tcur +type(C_PTR) :: zpred +type(C_PTR) :: z +type(C_PTR) :: fi +real(C_DOUBLE), dimension(*), target, intent(inout) :: gamma +type(C_PTR) :: sdata +type(C_PTR), target, intent(inout) :: user_data +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 +type(C_PTR) :: farg4 +type(C_PTR) :: farg5 +type(C_PTR) :: farg6 +type(C_PTR) :: farg7 +type(C_PTR) :: farg8 + +farg1 = arkode_mem +farg2 = c_loc(tcur(1)) +farg3 = zpred +farg4 = z +farg5 = fi +farg6 = c_loc(gamma(1)) +farg7 = sdata +farg8 = c_loc(user_data) +fresult = swigc_FARKodeGetNonlinearSystemData(farg1, farg2, farg3, farg4, farg5, farg6, farg7, farg8) +swig_result = fresult +end function + +function FARKodeGetNumNonlinSolvIters(arkode_mem, nniters) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: nniters +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(nniters(1)) +fresult = swigc_FARKodeGetNumNonlinSolvIters(farg1, farg2) +swig_result = fresult +end function + +function FARKodeGetNumNonlinSolvConvFails(arkode_mem, nnfails) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: nnfails +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(nnfails(1)) +fresult = swigc_FARKodeGetNumNonlinSolvConvFails(farg1, farg2) +swig_result = fresult +end function + +function FARKodeGetNonlinSolvStats(arkode_mem, nniters, nnfails) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: nniters +integer(C_LONG), dimension(*), target, intent(inout) :: nnfails +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = arkode_mem +farg2 = c_loc(nniters(1)) +farg3 = c_loc(nnfails(1)) +fresult = swigc_FARKodeGetNonlinSolvStats(farg1, farg2, farg3) +swig_result = fresult +end function + +function FARKodeGetNumStepSolveFails(arkode_mem, nncfails) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: nncfails +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(nncfails(1)) +fresult = swigc_FARKodeGetNumStepSolveFails(farg1, farg2) +swig_result = fresult +end function + +function FARKodeGetJac(arkode_mem, j) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +type(C_PTR), target, intent(inout) :: j +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(j) +fresult = swigc_FARKodeGetJac(farg1, farg2) +swig_result = fresult +end function + +function FARKodeGetJacTime(arkode_mem, t_j) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +real(C_DOUBLE), dimension(*), target, intent(inout) :: t_j +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(t_j(1)) +fresult = swigc_FARKodeGetJacTime(farg1, farg2) +swig_result = fresult +end function + +function FARKodeGetJacNumSteps(arkode_mem, nst_j) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: nst_j +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(nst_j(1)) +fresult = swigc_FARKodeGetJacNumSteps(farg1, farg2) +swig_result = fresult +end function + +function FARKodeGetLinWorkSpace(arkode_mem, lenrwls, leniwls) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: lenrwls +integer(C_LONG), dimension(*), target, intent(inout) :: leniwls +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = arkode_mem +farg2 = c_loc(lenrwls(1)) +farg3 = c_loc(leniwls(1)) +fresult = swigc_FARKodeGetLinWorkSpace(farg1, farg2, farg3) +swig_result = fresult +end function + +function FARKodeGetNumJacEvals(arkode_mem, njevals) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: njevals +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(njevals(1)) +fresult = swigc_FARKodeGetNumJacEvals(farg1, farg2) +swig_result = fresult +end function + +function FARKodeGetNumPrecEvals(arkode_mem, npevals) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: npevals +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(npevals(1)) +fresult = swigc_FARKodeGetNumPrecEvals(farg1, farg2) +swig_result = fresult +end function + +function FARKodeGetNumPrecSolves(arkode_mem, npsolves) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: npsolves +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(npsolves(1)) +fresult = swigc_FARKodeGetNumPrecSolves(farg1, farg2) +swig_result = fresult +end function + +function FARKodeGetNumLinIters(arkode_mem, nliters) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: nliters +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(nliters(1)) +fresult = swigc_FARKodeGetNumLinIters(farg1, farg2) +swig_result = fresult +end function + +function FARKodeGetNumLinConvFails(arkode_mem, nlcfails) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: nlcfails +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(nlcfails(1)) +fresult = swigc_FARKodeGetNumLinConvFails(farg1, farg2) +swig_result = fresult +end function + +function FARKodeGetNumJTSetupEvals(arkode_mem, njtsetups) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: njtsetups +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(njtsetups(1)) +fresult = swigc_FARKodeGetNumJTSetupEvals(farg1, farg2) +swig_result = fresult +end function + +function FARKodeGetNumJtimesEvals(arkode_mem, njvevals) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: njvevals +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(njvevals(1)) +fresult = swigc_FARKodeGetNumJtimesEvals(farg1, farg2) +swig_result = fresult +end function + +function FARKodeGetNumLinRhsEvals(arkode_mem, nfevalsls) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: nfevalsls +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(nfevalsls(1)) +fresult = swigc_FARKodeGetNumLinRhsEvals(farg1, farg2) +swig_result = fresult +end function + +function FARKodeGetLastLinFlag(arkode_mem, flag) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: flag +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(flag(1)) +fresult = swigc_FARKodeGetLastLinFlag(farg1, farg2) +swig_result = fresult +end function + +function FARKodeGetLinReturnFlagName(flag) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +character(kind=C_CHAR, len=:), allocatable :: swig_result +integer(C_LONG), intent(in) :: flag +type(SwigArrayWrapper) :: fresult +integer(C_LONG) :: farg1 + +farg1 = flag +fresult = swigc_FARKodeGetLinReturnFlagName(farg1) +call SWIG_chararray_to_string(fresult, swig_result) +if (.false.) call SWIG_free(fresult%data) +end function + +function FARKodeGetCurrentMassMatrix(arkode_mem, m) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +type(C_PTR), target, intent(inout) :: m +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(m) +fresult = swigc_FARKodeGetCurrentMassMatrix(farg1, farg2) +swig_result = fresult +end function + +function FARKodeGetResWeights(arkode_mem, rweight) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +type(N_Vector), target, intent(inout) :: rweight +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(rweight) +fresult = swigc_FARKodeGetResWeights(farg1, farg2) +swig_result = fresult +end function + +function FARKodeGetMassWorkSpace(arkode_mem, lenrwmls, leniwmls) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: lenrwmls +integer(C_LONG), dimension(*), target, intent(inout) :: leniwmls +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = arkode_mem +farg2 = c_loc(lenrwmls(1)) +farg3 = c_loc(leniwmls(1)) +fresult = swigc_FARKodeGetMassWorkSpace(farg1, farg2, farg3) +swig_result = fresult +end function + +function FARKodeGetNumMassSetups(arkode_mem, nmsetups) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: nmsetups +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(nmsetups(1)) +fresult = swigc_FARKodeGetNumMassSetups(farg1, farg2) +swig_result = fresult +end function + +function FARKodeGetNumMassMultSetups(arkode_mem, nmvsetups) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: nmvsetups +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(nmvsetups(1)) +fresult = swigc_FARKodeGetNumMassMultSetups(farg1, farg2) +swig_result = fresult +end function + +function FARKodeGetNumMassMult(arkode_mem, nmvevals) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: nmvevals +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(nmvevals(1)) +fresult = swigc_FARKodeGetNumMassMult(farg1, farg2) +swig_result = fresult +end function + +function FARKodeGetNumMassSolves(arkode_mem, nmsolves) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: nmsolves +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(nmsolves(1)) +fresult = swigc_FARKodeGetNumMassSolves(farg1, farg2) +swig_result = fresult +end function + +function FARKodeGetNumMassPrecEvals(arkode_mem, nmpevals) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: nmpevals +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(nmpevals(1)) +fresult = swigc_FARKodeGetNumMassPrecEvals(farg1, farg2) +swig_result = fresult +end function + +function FARKodeGetNumMassPrecSolves(arkode_mem, nmpsolves) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: nmpsolves +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(nmpsolves(1)) +fresult = swigc_FARKodeGetNumMassPrecSolves(farg1, farg2) +swig_result = fresult +end function + +function FARKodeGetNumMassIters(arkode_mem, nmiters) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: nmiters +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(nmiters(1)) +fresult = swigc_FARKodeGetNumMassIters(farg1, farg2) +swig_result = fresult +end function + +function FARKodeGetNumMassConvFails(arkode_mem, nmcfails) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: nmcfails +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(nmcfails(1)) +fresult = swigc_FARKodeGetNumMassConvFails(farg1, farg2) +swig_result = fresult +end function + +function FARKodeGetNumMTSetups(arkode_mem, nmtsetups) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: nmtsetups +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(nmtsetups(1)) +fresult = swigc_FARKodeGetNumMTSetups(farg1, farg2) +swig_result = fresult +end function + +function FARKodeGetLastMassFlag(arkode_mem, flag) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: flag +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(flag(1)) +fresult = swigc_FARKodeGetLastMassFlag(farg1, farg2) +swig_result = fresult +end function + +subroutine FARKodeFree(arkode_mem) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), target, intent(inout) :: arkode_mem +type(C_PTR) :: farg1 + +farg1 = c_loc(arkode_mem) +call swigc_FARKodeFree(farg1) +end subroutine + +subroutine FARKodePrintMem(arkode_mem, outfile) +use, intrinsic :: ISO_C_BINDING +type(C_PTR) :: arkode_mem +type(C_PTR) :: outfile +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = outfile +call swigc_FARKodePrintMem(farg1, farg2) +end subroutine + +function FARKodeSetRelaxFn(arkode_mem, rfn, rjac) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +type(C_FUNPTR), intent(in), value :: rfn +type(C_FUNPTR), intent(in), value :: rjac +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_FUNPTR) :: farg2 +type(C_FUNPTR) :: farg3 + +farg1 = arkode_mem +farg2 = rfn +farg3 = rjac +fresult = swigc_FARKodeSetRelaxFn(farg1, farg2, farg3) +swig_result = fresult +end function + +function FARKodeSetRelaxEtaFail(arkode_mem, eta_rf) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +real(C_DOUBLE), intent(in) :: eta_rf +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 + +farg1 = arkode_mem +farg2 = eta_rf +fresult = swigc_FARKodeSetRelaxEtaFail(farg1, farg2) +swig_result = fresult +end function + +function FARKodeSetRelaxLowerBound(arkode_mem, lower) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +real(C_DOUBLE), intent(in) :: lower +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 + +farg1 = arkode_mem +farg2 = lower +fresult = swigc_FARKodeSetRelaxLowerBound(farg1, farg2) +swig_result = fresult +end function + +function FARKodeSetRelaxMaxFails(arkode_mem, max_fails) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_INT), intent(in) :: max_fails +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = arkode_mem +farg2 = max_fails +fresult = swigc_FARKodeSetRelaxMaxFails(farg1, farg2) +swig_result = fresult +end function + +function FARKodeSetRelaxMaxIters(arkode_mem, max_iters) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_INT), intent(in) :: max_iters +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = arkode_mem +farg2 = max_iters +fresult = swigc_FARKodeSetRelaxMaxIters(farg1, farg2) +swig_result = fresult +end function + +function FARKodeSetRelaxSolver(arkode_mem, solver) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(ARKRelaxSolver), intent(in) :: solver +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = arkode_mem +farg2 = solver +fresult = swigc_FARKodeSetRelaxSolver(farg1, farg2) +swig_result = fresult +end function + +function FARKodeSetRelaxResTol(arkode_mem, res_tol) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +real(C_DOUBLE), intent(in) :: res_tol +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 + +farg1 = arkode_mem +farg2 = res_tol +fresult = swigc_FARKodeSetRelaxResTol(farg1, farg2) +swig_result = fresult +end function + +function FARKodeSetRelaxTol(arkode_mem, rel_tol, abs_tol) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +real(C_DOUBLE), intent(in) :: rel_tol +real(C_DOUBLE), intent(in) :: abs_tol +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 +real(C_DOUBLE) :: farg3 + +farg1 = arkode_mem +farg2 = rel_tol +farg3 = abs_tol +fresult = swigc_FARKodeSetRelaxTol(farg1, farg2, farg3) +swig_result = fresult +end function + +function FARKodeSetRelaxUpperBound(arkode_mem, upper) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +real(C_DOUBLE), intent(in) :: upper +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 + +farg1 = arkode_mem +farg2 = upper +fresult = swigc_FARKodeSetRelaxUpperBound(farg1, farg2) +swig_result = fresult +end function + +function FARKodeGetNumRelaxFnEvals(arkode_mem, r_evals) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: r_evals +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(r_evals(1)) +fresult = swigc_FARKodeGetNumRelaxFnEvals(farg1, farg2) +swig_result = fresult +end function + +function FARKodeGetNumRelaxJacEvals(arkode_mem, j_evals) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: j_evals +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(j_evals(1)) +fresult = swigc_FARKodeGetNumRelaxJacEvals(farg1, farg2) +swig_result = fresult +end function + +function FARKodeGetNumRelaxFails(arkode_mem, relax_fails) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: relax_fails +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(relax_fails(1)) +fresult = swigc_FARKodeGetNumRelaxFails(farg1, farg2) +swig_result = fresult +end function + +function FARKodeGetNumRelaxBoundFails(arkode_mem, fails) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: fails +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(fails(1)) +fresult = swigc_FARKodeGetNumRelaxBoundFails(farg1, farg2) +swig_result = fresult +end function + +function FARKodeGetNumRelaxSolveFails(arkode_mem, fails) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: fails +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(fails(1)) +fresult = swigc_FARKodeGetNumRelaxSolveFails(farg1, farg2) +swig_result = fresult +end function + +function FARKodeGetNumRelaxSolveIters(arkode_mem, iters) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: iters +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(iters(1)) +fresult = swigc_FARKodeGetNumRelaxSolveIters(farg1, farg2) +swig_result = fresult +end function + +function FARKBandPrecInit(arkode_mem, n, mu, ml) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_INT32_T), intent(in) :: n +integer(C_INT32_T), intent(in) :: mu +integer(C_INT32_T), intent(in) :: ml +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT32_T) :: farg2 +integer(C_INT32_T) :: farg3 +integer(C_INT32_T) :: farg4 + +farg1 = arkode_mem +farg2 = n +farg3 = mu +farg4 = ml +fresult = swigc_FARKBandPrecInit(farg1, farg2, farg3, farg4) +swig_result = fresult +end function + +function FARKBandPrecGetWorkSpace(arkode_mem, lenrwls, leniwls) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: lenrwls +integer(C_LONG), dimension(*), target, intent(inout) :: leniwls +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = arkode_mem +farg2 = c_loc(lenrwls(1)) +farg3 = c_loc(leniwls(1)) +fresult = swigc_FARKBandPrecGetWorkSpace(farg1, farg2, farg3) +swig_result = fresult +end function + +function FARKBandPrecGetNumRhsEvals(arkode_mem, nfevalsbp) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: nfevalsbp +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(nfevalsbp(1)) +fresult = swigc_FARKBandPrecGetNumRhsEvals(farg1, farg2) +swig_result = fresult +end function + +function FARKBBDPrecInit(arkode_mem, nlocal, mudq, mldq, mukeep, mlkeep, dqrely, gloc, cfn) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_INT32_T), intent(in) :: nlocal +integer(C_INT32_T), intent(in) :: mudq +integer(C_INT32_T), intent(in) :: mldq +integer(C_INT32_T), intent(in) :: mukeep +integer(C_INT32_T), intent(in) :: mlkeep +real(C_DOUBLE), intent(in) :: dqrely +type(C_FUNPTR), intent(in), value :: gloc +type(C_FUNPTR), intent(in), value :: cfn +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT32_T) :: farg2 +integer(C_INT32_T) :: farg3 +integer(C_INT32_T) :: farg4 +integer(C_INT32_T) :: farg5 +integer(C_INT32_T) :: farg6 +real(C_DOUBLE) :: farg7 +type(C_FUNPTR) :: farg8 +type(C_FUNPTR) :: farg9 + +farg1 = arkode_mem +farg2 = nlocal +farg3 = mudq +farg4 = mldq +farg5 = mukeep +farg6 = mlkeep +farg7 = dqrely +farg8 = gloc +farg9 = cfn +fresult = swigc_FARKBBDPrecInit(farg1, farg2, farg3, farg4, farg5, farg6, farg7, farg8, farg9) +swig_result = fresult +end function + +function FARKBBDPrecReInit(arkode_mem, mudq, mldq, dqrely) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_INT32_T), intent(in) :: mudq +integer(C_INT32_T), intent(in) :: mldq +real(C_DOUBLE), intent(in) :: dqrely +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT32_T) :: farg2 +integer(C_INT32_T) :: farg3 +real(C_DOUBLE) :: farg4 + +farg1 = arkode_mem +farg2 = mudq +farg3 = mldq +farg4 = dqrely +fresult = swigc_FARKBBDPrecReInit(farg1, farg2, farg3, farg4) +swig_result = fresult +end function + +function FARKBBDPrecGetWorkSpace(arkode_mem, lenrwbbdp, leniwbbdp) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: lenrwbbdp +integer(C_LONG), dimension(*), target, intent(inout) :: leniwbbdp +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = arkode_mem +farg2 = c_loc(lenrwbbdp(1)) +farg3 = c_loc(leniwbbdp(1)) +fresult = swigc_FARKBBDPrecGetWorkSpace(farg1, farg2, farg3) +swig_result = fresult +end function + +function FARKBBDPrecGetNumGfnEvals(arkode_mem, ngevalsbbdp) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: ngevalsbbdp +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(ngevalsbbdp(1)) +fresult = swigc_FARKBBDPrecGetNumGfnEvals(farg1, farg2) +swig_result = fresult +end function + +subroutine swigf_ARKodeButcherTableMem_q_set(self, q) +use, intrinsic :: ISO_C_BINDING +class(ARKodeButcherTableMem), intent(in) :: self +integer(C_INT), intent(in) :: q +type(SwigClassWrapper) :: farg1 +integer(C_INT) :: farg2 + +farg1 = self%swigdata +farg2 = q +call swigc_ARKodeButcherTableMem_q_set(farg1, farg2) +end subroutine + +function swigf_ARKodeButcherTableMem_q_get(self) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +class(ARKodeButcherTableMem), intent(in) :: self +integer(C_INT) :: fresult +type(SwigClassWrapper) :: farg1 + +farg1 = self%swigdata +fresult = swigc_ARKodeButcherTableMem_q_get(farg1) +swig_result = fresult +end function + +subroutine swigf_ARKodeButcherTableMem_p_set(self, p) +use, intrinsic :: ISO_C_BINDING +class(ARKodeButcherTableMem), intent(in) :: self +integer(C_INT), intent(in) :: p +type(SwigClassWrapper) :: farg1 +integer(C_INT) :: farg2 + +farg1 = self%swigdata +farg2 = p +call swigc_ARKodeButcherTableMem_p_set(farg1, farg2) +end subroutine + +function swigf_ARKodeButcherTableMem_p_get(self) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +class(ARKodeButcherTableMem), intent(in) :: self +integer(C_INT) :: fresult +type(SwigClassWrapper) :: farg1 + +farg1 = self%swigdata +fresult = swigc_ARKodeButcherTableMem_p_get(farg1) +swig_result = fresult +end function + +subroutine swigf_ARKodeButcherTableMem_stages_set(self, stages) +use, intrinsic :: ISO_C_BINDING +class(ARKodeButcherTableMem), intent(in) :: self +integer(C_INT), intent(in) :: stages +type(SwigClassWrapper) :: farg1 +integer(C_INT) :: farg2 + +farg1 = self%swigdata +farg2 = stages +call swigc_ARKodeButcherTableMem_stages_set(farg1, farg2) +end subroutine + +function swigf_ARKodeButcherTableMem_stages_get(self) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +class(ARKodeButcherTableMem), intent(in) :: self +integer(C_INT) :: fresult +type(SwigClassWrapper) :: farg1 + +farg1 = self%swigdata +fresult = swigc_ARKodeButcherTableMem_stages_get(farg1) +swig_result = fresult +end function + +subroutine swigf_ARKodeButcherTableMem_A_set(self, a) +use, intrinsic :: ISO_C_BINDING +class(ARKodeButcherTableMem), intent(in) :: self +type(C_PTR), target, intent(inout) :: a +type(SwigClassWrapper) :: farg1 +type(C_PTR) :: farg2 + +farg1 = self%swigdata +farg2 = c_loc(a) +call swigc_ARKodeButcherTableMem_A_set(farg1, farg2) +end subroutine + +function swigf_ARKodeButcherTableMem_A_get(self) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), pointer :: swig_result +class(ARKodeButcherTableMem), intent(in) :: self +type(C_PTR) :: fresult +type(SwigClassWrapper) :: farg1 + +farg1 = self%swigdata +fresult = swigc_ARKodeButcherTableMem_A_get(farg1) +call c_f_pointer(fresult, swig_result) +end function + +subroutine swigf_ARKodeButcherTableMem_c_set(self, c) +use, intrinsic :: ISO_C_BINDING +class(ARKodeButcherTableMem), intent(in) :: self +real(C_DOUBLE), dimension(*), target, intent(inout) :: c +type(SwigClassWrapper) :: farg1 +type(C_PTR) :: farg2 + +farg1 = self%swigdata +farg2 = c_loc(c(1)) +call swigc_ARKodeButcherTableMem_c_set(farg1, farg2) +end subroutine + +function swigf_ARKodeButcherTableMem_c_get(self) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE), dimension(:), pointer :: swig_result +class(ARKodeButcherTableMem), intent(in) :: self +type(C_PTR) :: fresult +type(SwigClassWrapper) :: farg1 + +farg1 = self%swigdata +fresult = swigc_ARKodeButcherTableMem_c_get(farg1) +call c_f_pointer(fresult, swig_result, [1]) +end function + +subroutine swigf_ARKodeButcherTableMem_b_set(self, b) +use, intrinsic :: ISO_C_BINDING +class(ARKodeButcherTableMem), intent(in) :: self +real(C_DOUBLE), dimension(*), target, intent(inout) :: b +type(SwigClassWrapper) :: farg1 +type(C_PTR) :: farg2 + +farg1 = self%swigdata +farg2 = c_loc(b(1)) +call swigc_ARKodeButcherTableMem_b_set(farg1, farg2) +end subroutine + +function swigf_ARKodeButcherTableMem_b_get(self) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE), dimension(:), pointer :: swig_result +class(ARKodeButcherTableMem), intent(in) :: self +type(C_PTR) :: fresult +type(SwigClassWrapper) :: farg1 + +farg1 = self%swigdata +fresult = swigc_ARKodeButcherTableMem_b_get(farg1) +call c_f_pointer(fresult, swig_result, [1]) +end function + +subroutine swigf_ARKodeButcherTableMem_d_set(self, d) +use, intrinsic :: ISO_C_BINDING +class(ARKodeButcherTableMem), intent(in) :: self +real(C_DOUBLE), dimension(*), target, intent(inout) :: d +type(SwigClassWrapper) :: farg1 +type(C_PTR) :: farg2 + +farg1 = self%swigdata +farg2 = c_loc(d(1)) +call swigc_ARKodeButcherTableMem_d_set(farg1, farg2) +end subroutine + +function swigf_ARKodeButcherTableMem_d_get(self) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE), dimension(:), pointer :: swig_result +class(ARKodeButcherTableMem), intent(in) :: self +type(C_PTR) :: fresult +type(SwigClassWrapper) :: farg1 + +farg1 = self%swigdata +fresult = swigc_ARKodeButcherTableMem_d_get(farg1) +call c_f_pointer(fresult, swig_result, [1]) +end function + +function swigf_create_ARKodeButcherTableMem() & +result(self) +use, intrinsic :: ISO_C_BINDING +type(ARKodeButcherTableMem) :: self +type(SwigClassWrapper) :: fresult + +fresult = swigc_new_ARKodeButcherTableMem() +self%swigdata = fresult +end function + +subroutine swigf_release_ARKodeButcherTableMem(self) +use, intrinsic :: ISO_C_BINDING +class(ARKodeButcherTableMem), intent(inout) :: self +type(SwigClassWrapper) :: farg1 + +farg1 = self%swigdata +if (btest(farg1%cmemflags, swig_cmem_own_bit)) then +call swigc_delete_ARKodeButcherTableMem(farg1) +endif +farg1%cptr = C_NULL_PTR +farg1%cmemflags = 0 +self%swigdata = farg1 +end subroutine + +subroutine swigf_ARKodeButcherTableMem_op_assign__(self, other) +use, intrinsic :: ISO_C_BINDING +class(ARKodeButcherTableMem), intent(inout) :: self +type(ARKodeButcherTableMem), intent(in) :: other +type(SwigClassWrapper) :: farg1 +type(SwigClassWrapper) :: farg2 + +farg1 = self%swigdata +farg2 = other%swigdata +call swigc_ARKodeButcherTableMem_op_assign__(farg1, farg2) +self%swigdata = farg1 +end subroutine + +function FARKodeButcherTable_Alloc(stages, embedded) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +type(C_PTR) :: swig_result +integer(C_INT), intent(in) :: stages +integer(C_INT), intent(in) :: embedded +type(C_PTR) :: fresult +integer(C_INT) :: farg1 +integer(C_INT) :: farg2 + +farg1 = stages +farg2 = embedded +fresult = swigc_FARKodeButcherTable_Alloc(farg1, farg2) +swig_result = fresult +end function + +function FARKodeButcherTable_Create(s, q, p, c, a, b, d) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +type(C_PTR) :: swig_result +integer(C_INT), intent(in) :: s +integer(C_INT), intent(in) :: q +integer(C_INT), intent(in) :: p +real(C_DOUBLE), dimension(*), target, intent(inout) :: c +real(C_DOUBLE), dimension(*), target, intent(inout) :: a +real(C_DOUBLE), dimension(*), target, intent(inout) :: b +real(C_DOUBLE), dimension(*), target, intent(inout) :: d +type(C_PTR) :: fresult +integer(C_INT) :: farg1 +integer(C_INT) :: farg2 +integer(C_INT) :: farg3 +type(C_PTR) :: farg4 +type(C_PTR) :: farg5 +type(C_PTR) :: farg6 +type(C_PTR) :: farg7 + +farg1 = s +farg2 = q +farg3 = p +farg4 = c_loc(c(1)) +farg5 = c_loc(a(1)) +farg6 = c_loc(b(1)) +farg7 = c_loc(d(1)) +fresult = swigc_FARKodeButcherTable_Create(farg1, farg2, farg3, farg4, farg5, farg6, farg7) +swig_result = fresult +end function + +function FARKodeButcherTable_Copy(b) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +type(C_PTR) :: swig_result +type(C_PTR) :: b +type(C_PTR) :: fresult +type(C_PTR) :: farg1 + +farg1 = b +fresult = swigc_FARKodeButcherTable_Copy(farg1) +swig_result = fresult +end function + +subroutine FARKodeButcherTable_Space(b, liw, lrw) +use, intrinsic :: ISO_C_BINDING +type(C_PTR) :: b +integer(C_INT32_T), dimension(*), target, intent(inout) :: liw +integer(C_INT32_T), dimension(*), target, intent(inout) :: lrw +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = b +farg2 = c_loc(liw(1)) +farg3 = c_loc(lrw(1)) +call swigc_FARKodeButcherTable_Space(farg1, farg2, farg3) +end subroutine + +subroutine FARKodeButcherTable_Free(b) +use, intrinsic :: ISO_C_BINDING +type(C_PTR) :: b +type(C_PTR) :: farg1 + +farg1 = b +call swigc_FARKodeButcherTable_Free(farg1) +end subroutine + +subroutine FARKodeButcherTable_Write(b, outfile) +use, intrinsic :: ISO_C_BINDING +type(C_PTR) :: b +type(C_PTR) :: outfile +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = b +farg2 = outfile +call swigc_FARKodeButcherTable_Write(farg1, farg2) +end subroutine + +function FARKodeButcherTable_IsStifflyAccurate(b) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: b +integer(C_INT) :: fresult +type(C_PTR) :: farg1 + +farg1 = b +fresult = swigc_FARKodeButcherTable_IsStifflyAccurate(farg1) +swig_result = fresult +end function + +function FARKodeButcherTable_CheckOrder(b, q, p, outfile) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: b +integer(C_INT), dimension(*), target, intent(inout) :: q +integer(C_INT), dimension(*), target, intent(inout) :: p +type(C_PTR) :: outfile +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 +type(C_PTR) :: farg4 + +farg1 = b +farg2 = c_loc(q(1)) +farg3 = c_loc(p(1)) +farg4 = outfile +fresult = swigc_FARKodeButcherTable_CheckOrder(farg1, farg2, farg3, farg4) +swig_result = fresult +end function + +function FARKodeButcherTable_CheckARKOrder(b1, b2, q, p, outfile) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: b1 +type(C_PTR) :: b2 +integer(C_INT), dimension(*), target, intent(inout) :: q +integer(C_INT), dimension(*), target, intent(inout) :: p +type(C_PTR) :: outfile +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 +type(C_PTR) :: farg4 +type(C_PTR) :: farg5 + +farg1 = b1 +farg2 = b2 +farg3 = c_loc(q(1)) +farg4 = c_loc(p(1)) +farg5 = outfile +fresult = swigc_FARKodeButcherTable_CheckARKOrder(farg1, farg2, farg3, farg4, farg5) +swig_result = fresult +end function + +function FARKodeButcherTable_LoadDIRK(imethod) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +type(C_PTR) :: swig_result +integer(ARKODE_DIRKTableID), intent(in) :: imethod +type(C_PTR) :: fresult +integer(C_INT) :: farg1 + +farg1 = imethod +fresult = swigc_FARKodeButcherTable_LoadDIRK(farg1) +swig_result = fresult +end function + + +subroutine SWIG_string_to_chararray(string, chars, wrap) + use, intrinsic :: ISO_C_BINDING + character(kind=C_CHAR, len=*), intent(IN) :: string + character(kind=C_CHAR), dimension(:), target, allocatable, intent(OUT) :: chars + type(SwigArrayWrapper), intent(OUT) :: wrap + integer :: i + + allocate(character(kind=C_CHAR) :: chars(len(string) + 1)) + do i=1,len(string) + chars(i) = string(i:i) + end do + i = len(string) + 1 + chars(i) = C_NULL_CHAR ! C string compatibility + wrap%data = c_loc(chars) + wrap%size = len(string) +end subroutine + +function FARKodeButcherTable_LoadDIRKByName(imethod) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +type(C_PTR) :: swig_result +character(kind=C_CHAR, len=*), target :: imethod +character(kind=C_CHAR), dimension(:), allocatable, target :: farg1_chars +type(C_PTR) :: fresult +type(SwigArrayWrapper) :: farg1 + +call SWIG_string_to_chararray(imethod, farg1_chars, farg1) +fresult = swigc_FARKodeButcherTable_LoadDIRKByName(farg1) +swig_result = fresult +end function + +function FARKodeButcherTable_DIRKIDToName(imethod) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +character(kind=C_CHAR, len=:), allocatable :: swig_result +integer(ARKODE_DIRKTableID), intent(in) :: imethod +type(SwigArrayWrapper) :: fresult +integer(C_INT) :: farg1 + +farg1 = imethod +fresult = swigc_FARKodeButcherTable_DIRKIDToName(farg1) +call SWIG_chararray_to_string(fresult, swig_result) +if (.false.) call SWIG_free(fresult%data) +end function + +function FARKodeButcherTable_LoadERK(emethod) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +type(C_PTR) :: swig_result +integer(ARKODE_ERKTableID), intent(in) :: emethod +type(C_PTR) :: fresult +integer(C_INT) :: farg1 + +farg1 = emethod +fresult = swigc_FARKodeButcherTable_LoadERK(farg1) +swig_result = fresult +end function + +function FARKodeButcherTable_LoadERKByName(emethod) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +type(C_PTR) :: swig_result +character(kind=C_CHAR, len=*), target :: emethod +character(kind=C_CHAR), dimension(:), allocatable, target :: farg1_chars +type(C_PTR) :: fresult +type(SwigArrayWrapper) :: farg1 + +call SWIG_string_to_chararray(emethod, farg1_chars, farg1) +fresult = swigc_FARKodeButcherTable_LoadERKByName(farg1) +swig_result = fresult +end function + +function FARKodeButcherTable_ERKIDToName(emethod) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +character(kind=C_CHAR, len=:), allocatable :: swig_result +integer(ARKODE_ERKTableID), intent(in) :: emethod +type(SwigArrayWrapper) :: fresult +integer(C_INT) :: farg1 + +farg1 = emethod +fresult = swigc_FARKodeButcherTable_ERKIDToName(farg1) +call SWIG_chararray_to_string(fresult, swig_result) +if (.false.) call SWIG_free(fresult%data) +end function + +subroutine swigf_ARKodeSPRKTableMem_q_set(self, q) +use, intrinsic :: ISO_C_BINDING +class(ARKodeSPRKTableMem), intent(in) :: self +integer(C_INT), intent(in) :: q +type(SwigClassWrapper) :: farg1 +integer(C_INT) :: farg2 + +farg1 = self%swigdata +farg2 = q +call swigc_ARKodeSPRKTableMem_q_set(farg1, farg2) +end subroutine + +function swigf_ARKodeSPRKTableMem_q_get(self) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +class(ARKodeSPRKTableMem), intent(in) :: self +integer(C_INT) :: fresult +type(SwigClassWrapper) :: farg1 + +farg1 = self%swigdata +fresult = swigc_ARKodeSPRKTableMem_q_get(farg1) +swig_result = fresult +end function + +subroutine swigf_ARKodeSPRKTableMem_stages_set(self, stages) +use, intrinsic :: ISO_C_BINDING +class(ARKodeSPRKTableMem), intent(in) :: self +integer(C_INT), intent(in) :: stages +type(SwigClassWrapper) :: farg1 +integer(C_INT) :: farg2 + +farg1 = self%swigdata +farg2 = stages +call swigc_ARKodeSPRKTableMem_stages_set(farg1, farg2) +end subroutine + +function swigf_ARKodeSPRKTableMem_stages_get(self) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +class(ARKodeSPRKTableMem), intent(in) :: self +integer(C_INT) :: fresult +type(SwigClassWrapper) :: farg1 + +farg1 = self%swigdata +fresult = swigc_ARKodeSPRKTableMem_stages_get(farg1) +swig_result = fresult +end function + +subroutine swigf_ARKodeSPRKTableMem_a_set(self, a) +use, intrinsic :: ISO_C_BINDING +class(ARKodeSPRKTableMem), intent(in) :: self +real(C_DOUBLE), dimension(*), target, intent(inout) :: a +type(SwigClassWrapper) :: farg1 +type(C_PTR) :: farg2 + +farg1 = self%swigdata +farg2 = c_loc(a(1)) +call swigc_ARKodeSPRKTableMem_a_set(farg1, farg2) +end subroutine + +function swigf_ARKodeSPRKTableMem_a_get(self) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE), dimension(:), pointer :: swig_result +class(ARKodeSPRKTableMem), intent(in) :: self +type(C_PTR) :: fresult +type(SwigClassWrapper) :: farg1 + +farg1 = self%swigdata +fresult = swigc_ARKodeSPRKTableMem_a_get(farg1) +call c_f_pointer(fresult, swig_result, [1]) +end function + +subroutine swigf_ARKodeSPRKTableMem_ahat_set(self, ahat) +use, intrinsic :: ISO_C_BINDING +class(ARKodeSPRKTableMem), intent(in) :: self +real(C_DOUBLE), dimension(*), target, intent(inout) :: ahat +type(SwigClassWrapper) :: farg1 +type(C_PTR) :: farg2 + +farg1 = self%swigdata +farg2 = c_loc(ahat(1)) +call swigc_ARKodeSPRKTableMem_ahat_set(farg1, farg2) +end subroutine + +function swigf_ARKodeSPRKTableMem_ahat_get(self) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE), dimension(:), pointer :: swig_result +class(ARKodeSPRKTableMem), intent(in) :: self +type(C_PTR) :: fresult +type(SwigClassWrapper) :: farg1 + +farg1 = self%swigdata +fresult = swigc_ARKodeSPRKTableMem_ahat_get(farg1) +call c_f_pointer(fresult, swig_result, [1]) +end function + +function swigf_create_ARKodeSPRKTableMem() & +result(self) +use, intrinsic :: ISO_C_BINDING +type(ARKodeSPRKTableMem) :: self +type(SwigClassWrapper) :: fresult + +fresult = swigc_new_ARKodeSPRKTableMem() +self%swigdata = fresult +end function + +subroutine swigf_release_ARKodeSPRKTableMem(self) +use, intrinsic :: ISO_C_BINDING +class(ARKodeSPRKTableMem), intent(inout) :: self +type(SwigClassWrapper) :: farg1 + +farg1 = self%swigdata +if (btest(farg1%cmemflags, swig_cmem_own_bit)) then +call swigc_delete_ARKodeSPRKTableMem(farg1) +endif +farg1%cptr = C_NULL_PTR +farg1%cmemflags = 0 +self%swigdata = farg1 +end subroutine + +subroutine swigf_ARKodeSPRKTableMem_op_assign__(self, other) +use, intrinsic :: ISO_C_BINDING +class(ARKodeSPRKTableMem), intent(inout) :: self +type(ARKodeSPRKTableMem), intent(in) :: other +type(SwigClassWrapper) :: farg1 +type(SwigClassWrapper) :: farg2 + +farg1 = self%swigdata +farg2 = other%swigdata +call swigc_ARKodeSPRKTableMem_op_assign__(farg1, farg2) +self%swigdata = farg1 +end subroutine + +function FARKodeSPRKTable_Create(s, q, a, ahat) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +type(C_PTR) :: swig_result +integer(C_INT), intent(in) :: s +integer(C_INT), intent(in) :: q +real(C_DOUBLE), dimension(*), target, intent(inout) :: a +real(C_DOUBLE), dimension(*), target, intent(inout) :: ahat +type(C_PTR) :: fresult +integer(C_INT) :: farg1 +integer(C_INT) :: farg2 +type(C_PTR) :: farg3 +type(C_PTR) :: farg4 + +farg1 = s +farg2 = q +farg3 = c_loc(a(1)) +farg4 = c_loc(ahat(1)) +fresult = swigc_FARKodeSPRKTable_Create(farg1, farg2, farg3, farg4) +swig_result = fresult +end function + +function FARKodeSPRKTable_Alloc(stages) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +type(C_PTR) :: swig_result +integer(C_INT), intent(in) :: stages +type(C_PTR) :: fresult +integer(C_INT) :: farg1 + +farg1 = stages +fresult = swigc_FARKodeSPRKTable_Alloc(farg1) +swig_result = fresult +end function + +function FARKodeSPRKTable_Load(id) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +type(C_PTR) :: swig_result +integer(ARKODE_SPRKMethodID), intent(in) :: id +type(C_PTR) :: fresult +integer(C_INT) :: farg1 + +farg1 = id +fresult = swigc_FARKodeSPRKTable_Load(farg1) +swig_result = fresult +end function + +function FARKodeSPRKTable_LoadByName(method) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +type(C_PTR) :: swig_result +character(kind=C_CHAR, len=*), target :: method +character(kind=C_CHAR), dimension(:), allocatable, target :: farg1_chars +type(C_PTR) :: fresult +type(SwigArrayWrapper) :: farg1 + +call SWIG_string_to_chararray(method, farg1_chars, farg1) +fresult = swigc_FARKodeSPRKTable_LoadByName(farg1) +swig_result = fresult +end function + +function FARKodeSPRKTable_Copy(that_sprk_storage) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +type(C_PTR) :: swig_result +type(C_PTR) :: that_sprk_storage +type(C_PTR) :: fresult +type(C_PTR) :: farg1 + +farg1 = that_sprk_storage +fresult = swigc_FARKodeSPRKTable_Copy(farg1) +swig_result = fresult +end function + +subroutine FARKodeSPRKTable_Write(sprk_table, outfile) +use, intrinsic :: ISO_C_BINDING +type(C_PTR) :: sprk_table +type(C_PTR) :: outfile +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = sprk_table +farg2 = outfile +call swigc_FARKodeSPRKTable_Write(farg1, farg2) +end subroutine + +subroutine FARKodeSPRKTable_Space(sprk_storage, liw, lrw) +use, intrinsic :: ISO_C_BINDING +type(C_PTR) :: sprk_storage +integer(C_INT32_T), dimension(*), target, intent(inout) :: liw +integer(C_INT32_T), dimension(*), target, intent(inout) :: lrw +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = sprk_storage +farg2 = c_loc(liw(1)) +farg3 = c_loc(lrw(1)) +call swigc_FARKodeSPRKTable_Space(farg1, farg2, farg3) +end subroutine + +subroutine FARKodeSPRKTable_Free(sprk_storage) +use, intrinsic :: ISO_C_BINDING +type(C_PTR) :: sprk_storage +type(C_PTR) :: farg1 + +farg1 = sprk_storage +call swigc_FARKodeSPRKTable_Free(farg1) +end subroutine + +function FARKodeSPRKTable_ToButcher(sprk_storage, a_ptr, b_ptr) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: sprk_storage +type(C_PTR), target, intent(inout) :: a_ptr +type(C_PTR), target, intent(inout) :: b_ptr +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = sprk_storage +farg2 = c_loc(a_ptr) +farg3 = c_loc(b_ptr) +fresult = swigc_FARKodeSPRKTable_ToButcher(farg1, farg2, farg3) +swig_result = fresult +end function + +function FARKodeSetLinearSolver(arkode_mem, ls, a) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +type(SUNLinearSolver), target, intent(inout) :: ls +type(SUNMatrix), target, intent(inout) :: a +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = arkode_mem +farg2 = c_loc(ls) +farg3 = c_loc(a) +fresult = swigc_FARKodeSetLinearSolver(farg1, farg2, farg3) +swig_result = fresult +end function + +function FARKodeSetMassLinearSolver(arkode_mem, ls, m, time_dep) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +type(SUNLinearSolver), target, intent(inout) :: ls +type(SUNMatrix), target, intent(inout) :: m +integer(C_INT), intent(in) :: time_dep +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 +integer(C_INT) :: farg4 + +farg1 = arkode_mem +farg2 = c_loc(ls) +farg3 = c_loc(m) +farg4 = time_dep +fresult = swigc_FARKodeSetMassLinearSolver(farg1, farg2, farg3, farg4) +swig_result = fresult +end function + +function FARKodeSetJacFn(arkode_mem, jac) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +type(C_FUNPTR), intent(in), value :: jac +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_FUNPTR) :: farg2 + +farg1 = arkode_mem +farg2 = jac +fresult = swigc_FARKodeSetJacFn(farg1, farg2) +swig_result = fresult +end function + +function FARKodeSetMassFn(arkode_mem, mass) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +type(C_FUNPTR), intent(in), value :: mass +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_FUNPTR) :: farg2 + +farg1 = arkode_mem +farg2 = mass +fresult = swigc_FARKodeSetMassFn(farg1, farg2) +swig_result = fresult +end function + +function FARKodeSetJacEvalFrequency(arkode_mem, msbj) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_LONG), intent(in) :: msbj +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_LONG) :: farg2 + +farg1 = arkode_mem +farg2 = msbj +fresult = swigc_FARKodeSetJacEvalFrequency(farg1, farg2) +swig_result = fresult +end function + +function FARKodeSetLinearSolutionScaling(arkode_mem, onoff) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_INT), intent(in) :: onoff +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = arkode_mem +farg2 = onoff +fresult = swigc_FARKodeSetLinearSolutionScaling(farg1, farg2) +swig_result = fresult +end function + +function FARKodeSetEpsLin(arkode_mem, eplifac) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +real(C_DOUBLE), intent(in) :: eplifac +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 + +farg1 = arkode_mem +farg2 = eplifac +fresult = swigc_FARKodeSetEpsLin(farg1, farg2) +swig_result = fresult +end function + +function FARKodeSetMassEpsLin(arkode_mem, eplifac) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +real(C_DOUBLE), intent(in) :: eplifac +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 + +farg1 = arkode_mem +farg2 = eplifac +fresult = swigc_FARKodeSetMassEpsLin(farg1, farg2) +swig_result = fresult +end function + +function FARKodeSetLSNormFactor(arkode_mem, nrmfac) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +real(C_DOUBLE), intent(in) :: nrmfac +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 + +farg1 = arkode_mem +farg2 = nrmfac +fresult = swigc_FARKodeSetLSNormFactor(farg1, farg2) +swig_result = fresult +end function + +function FARKodeSetMassLSNormFactor(arkode_mem, nrmfac) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +real(C_DOUBLE), intent(in) :: nrmfac +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 + +farg1 = arkode_mem +farg2 = nrmfac +fresult = swigc_FARKodeSetMassLSNormFactor(farg1, farg2) +swig_result = fresult +end function + +function FARKodeSetPreconditioner(arkode_mem, psetup, psolve) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +type(C_FUNPTR), intent(in), value :: psetup +type(C_FUNPTR), intent(in), value :: psolve +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_FUNPTR) :: farg2 +type(C_FUNPTR) :: farg3 + +farg1 = arkode_mem +farg2 = psetup +farg3 = psolve +fresult = swigc_FARKodeSetPreconditioner(farg1, farg2, farg3) +swig_result = fresult +end function + +function FARKodeSetMassPreconditioner(arkode_mem, psetup, psolve) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +type(C_FUNPTR), intent(in), value :: psetup +type(C_FUNPTR), intent(in), value :: psolve +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_FUNPTR) :: farg2 +type(C_FUNPTR) :: farg3 + +farg1 = arkode_mem +farg2 = psetup +farg3 = psolve +fresult = swigc_FARKodeSetMassPreconditioner(farg1, farg2, farg3) +swig_result = fresult +end function + +function FARKodeSetJacTimes(arkode_mem, jtsetup, jtimes) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +type(C_FUNPTR), intent(in), value :: jtsetup +type(C_FUNPTR), intent(in), value :: jtimes +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_FUNPTR) :: farg2 +type(C_FUNPTR) :: farg3 + +farg1 = arkode_mem +farg2 = jtsetup +farg3 = jtimes +fresult = swigc_FARKodeSetJacTimes(farg1, farg2, farg3) +swig_result = fresult +end function + +function FARKodeSetJacTimesRhsFn(arkode_mem, jtimesrhsfn) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +type(C_FUNPTR), intent(in), value :: jtimesrhsfn +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_FUNPTR) :: farg2 + +farg1 = arkode_mem +farg2 = jtimesrhsfn +fresult = swigc_FARKodeSetJacTimesRhsFn(farg1, farg2) +swig_result = fresult +end function + +function FARKodeSetMassTimes(arkode_mem, msetup, mtimes, mtimes_data) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +type(C_FUNPTR), intent(in), value :: msetup +type(C_FUNPTR), intent(in), value :: mtimes +type(C_PTR) :: mtimes_data +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_FUNPTR) :: farg2 +type(C_FUNPTR) :: farg3 +type(C_PTR) :: farg4 + +farg1 = arkode_mem +farg2 = msetup +farg3 = mtimes +farg4 = mtimes_data +fresult = swigc_FARKodeSetMassTimes(farg1, farg2, farg3, farg4) +swig_result = fresult +end function + +function FARKodeSetLinSysFn(arkode_mem, linsys) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +type(C_FUNPTR), intent(in), value :: linsys +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_FUNPTR) :: farg2 + +farg1 = arkode_mem +farg2 = linsys +fresult = swigc_FARKodeSetLinSysFn(farg1, farg2) +swig_result = fresult +end function + + +end module diff --git a/src/arkode/fmod_int32/farkode_mristep_mod.c b/src/arkode/fmod_int32/farkode_mristep_mod.c new file mode 100644 index 0000000000..35721938c4 --- /dev/null +++ b/src/arkode/fmod_int32/farkode_mristep_mod.c @@ -0,0 +1,2114 @@ +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.0 + * + * This file is not intended to be easily readable and contains a number of + * coding conventions designed to improve portability and efficiency. Do not make + * changes to this file unless you know what you are doing--modify the SWIG + * interface file instead. + * ----------------------------------------------------------------------------- */ + +/* --------------------------------------------------------------- + * Programmer(s): Auto-generated by swig. + * --------------------------------------------------------------- + * SUNDIALS Copyright Start + * Copyright (c) 2002-2024, Lawrence Livermore National Security + * and Southern Methodist University. + * All rights reserved. + * + * See the top-level LICENSE and NOTICE files for details. + * + * SPDX-License-Identifier: BSD-3-Clause + * SUNDIALS Copyright End + * -------------------------------------------------------------*/ + +/* ----------------------------------------------------------------------------- + * This section contains generic SWIG labels for method/variable + * declarations/attributes, and other compiler dependent labels. + * ----------------------------------------------------------------------------- */ + +/* template workaround for compilers that cannot correctly implement the C++ standard */ +#ifndef SWIGTEMPLATEDISAMBIGUATOR +# if defined(__SUNPRO_CC) && (__SUNPRO_CC <= 0x560) +# define SWIGTEMPLATEDISAMBIGUATOR template +# elif defined(__HP_aCC) +/* Needed even with `aCC -AA' when `aCC -V' reports HP ANSI C++ B3910B A.03.55 */ +/* If we find a maximum version that requires this, the test would be __HP_aCC <= 35500 for A.03.55 */ +# define SWIGTEMPLATEDISAMBIGUATOR template +# else +# define SWIGTEMPLATEDISAMBIGUATOR +# endif +#endif + +/* inline attribute */ +#ifndef SWIGINLINE +# if defined(__cplusplus) || (defined(__GNUC__) && !defined(__STRICT_ANSI__)) +# define SWIGINLINE inline +# else +# define SWIGINLINE +# endif +#endif + +/* attribute recognised by some compilers to avoid 'unused' warnings */ +#ifndef SWIGUNUSED +# if defined(__GNUC__) +# if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)) +# define SWIGUNUSED __attribute__ ((__unused__)) +# else +# define SWIGUNUSED +# endif +# elif defined(__ICC) +# define SWIGUNUSED __attribute__ ((__unused__)) +# else +# define SWIGUNUSED +# endif +#endif + +#ifndef SWIG_MSC_UNSUPPRESS_4505 +# if defined(_MSC_VER) +# pragma warning(disable : 4505) /* unreferenced local function has been removed */ +# endif +#endif + +#ifndef SWIGUNUSEDPARM +# ifdef __cplusplus +# define SWIGUNUSEDPARM(p) +# else +# define SWIGUNUSEDPARM(p) p SWIGUNUSED +# endif +#endif + +/* internal SWIG method */ +#ifndef SWIGINTERN +# define SWIGINTERN static SWIGUNUSED +#endif + +/* internal inline SWIG method */ +#ifndef SWIGINTERNINLINE +# define SWIGINTERNINLINE SWIGINTERN SWIGINLINE +#endif + +/* qualifier for exported *const* global data variables*/ +#ifndef SWIGEXTERN +# ifdef __cplusplus +# define SWIGEXTERN extern +# else +# define SWIGEXTERN +# endif +#endif + +/* exporting methods */ +#if defined(__GNUC__) +# if (__GNUC__ >= 4) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) +# ifndef GCC_HASCLASSVISIBILITY +# define GCC_HASCLASSVISIBILITY +# endif +# endif +#endif + +#ifndef SWIGEXPORT +# if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__) +# if defined(STATIC_LINKED) +# define SWIGEXPORT +# else +# define SWIGEXPORT __declspec(dllexport) +# endif +# else +# if defined(__GNUC__) && defined(GCC_HASCLASSVISIBILITY) +# define SWIGEXPORT __attribute__ ((visibility("default"))) +# else +# define SWIGEXPORT +# endif +# endif +#endif + +/* calling conventions for Windows */ +#ifndef SWIGSTDCALL +# if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__) +# define SWIGSTDCALL __stdcall +# else +# define SWIGSTDCALL +# endif +#endif + +/* Deal with Microsoft's attempt at deprecating C standard runtime functions */ +#if !defined(SWIG_NO_CRT_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_CRT_SECURE_NO_DEPRECATE) +# define _CRT_SECURE_NO_DEPRECATE +#endif + +/* Deal with Microsoft's attempt at deprecating methods in the standard C++ library */ +#if !defined(SWIG_NO_SCL_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_SCL_SECURE_NO_DEPRECATE) +# define _SCL_SECURE_NO_DEPRECATE +#endif + +/* Deal with Apple's deprecated 'AssertMacros.h' from Carbon-framework */ +#if defined(__APPLE__) && !defined(__ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES) +# define __ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES 0 +#endif + +/* Intel's compiler complains if a variable which was never initialised is + * cast to void, which is a common idiom which we use to indicate that we + * are aware a variable isn't used. So we just silence that warning. + * See: https://github.com/swig/swig/issues/192 for more discussion. + */ +#ifdef __INTEL_COMPILER +# pragma warning disable 592 +#endif + +/* Errors in SWIG */ +#define SWIG_UnknownError -1 +#define SWIG_IOError -2 +#define SWIG_RuntimeError -3 +#define SWIG_IndexError -4 +#define SWIG_TypeError -5 +#define SWIG_DivisionByZero -6 +#define SWIG_OverflowError -7 +#define SWIG_SyntaxError -8 +#define SWIG_ValueError -9 +#define SWIG_SystemError -10 +#define SWIG_AttributeError -11 +#define SWIG_MemoryError -12 +#define SWIG_NullReferenceError -13 + + + + +#include +#define SWIG_exception_impl(DECL, CODE, MSG, RETURNNULL) \ + { printf("In " DECL ": " MSG); assert(0); RETURNNULL; } + + +enum { + SWIG_MEM_OWN = 0x01, + SWIG_MEM_RVALUE = 0x02, + SWIG_MEM_CONST = 0x04 +}; + + +#define SWIG_check_mutable(SWIG_CLASS_WRAPPER, TYPENAME, FNAME, FUNCNAME, RETURNNULL) \ + if ((SWIG_CLASS_WRAPPER).cmemflags & SWIG_MEM_CONST) { \ + SWIG_exception_impl(FUNCNAME, SWIG_TypeError, \ + "Cannot pass const " TYPENAME " (class " FNAME ") " \ + "as a mutable reference", \ + RETURNNULL); \ + } + + +#define SWIG_check_nonnull(SWIG_CLASS_WRAPPER, TYPENAME, FNAME, FUNCNAME, RETURNNULL) \ + if (!(SWIG_CLASS_WRAPPER).cptr) { \ + SWIG_exception_impl(FUNCNAME, SWIG_TypeError, \ + "Cannot pass null " TYPENAME " (class " FNAME ") " \ + "as a reference", RETURNNULL); \ + } + + +#define SWIG_check_mutable_nonnull(SWIG_CLASS_WRAPPER, TYPENAME, FNAME, FUNCNAME, RETURNNULL) \ + SWIG_check_nonnull(SWIG_CLASS_WRAPPER, TYPENAME, FNAME, FUNCNAME, RETURNNULL); \ + SWIG_check_mutable(SWIG_CLASS_WRAPPER, TYPENAME, FNAME, FUNCNAME, RETURNNULL); + + +#include +#if defined(_MSC_VER) || defined(__BORLANDC__) || defined(_WATCOM) +# ifndef snprintf +# define snprintf _snprintf +# endif +#endif + + +/* Support for the `contract` feature. + * + * Note that RETURNNULL is first because it's inserted via a 'Replaceall' in + * the fortran.cxx file. + */ +#define SWIG_contract_assert(RETURNNULL, EXPR, MSG) \ + if (!(EXPR)) { SWIG_exception_impl("$decl", SWIG_ValueError, MSG, RETURNNULL); } + + +#define SWIGVERSION 0x040000 +#define SWIG_VERSION SWIGVERSION + + +#define SWIG_as_voidptr(a) (void *)((const void *)(a)) +#define SWIG_as_voidptrptr(a) ((void)SWIG_as_voidptr(*a),(void**)(a)) + + +#include "arkode/arkode_mristep.h" + + +typedef struct { + void* cptr; + int cmemflags; +} SwigClassWrapper; + + +SWIGINTERN SwigClassWrapper SwigClassWrapper_uninitialized() { + SwigClassWrapper result; + result.cptr = NULL; + result.cmemflags = 0; + return result; +} + + +#include +#ifdef _MSC_VER +# ifndef strtoull +# define strtoull _strtoui64 +# endif +# ifndef strtoll +# define strtoll _strtoi64 +# endif +#endif + + +#include + + +SWIGINTERN void SWIG_assign(SwigClassWrapper* self, SwigClassWrapper other) { + if (self->cptr == NULL) { + /* LHS is unassigned */ + if (other.cmemflags & SWIG_MEM_RVALUE) { + /* Capture pointer from RHS, clear 'moving' flag */ + self->cptr = other.cptr; + self->cmemflags = other.cmemflags & (~SWIG_MEM_RVALUE); + } else { + /* Become a reference to the other object */ + self->cptr = other.cptr; + self->cmemflags = other.cmemflags & (~SWIG_MEM_OWN); + } + } else if (other.cptr == NULL) { + /* Replace LHS with a null pointer */ + free(self->cptr); + *self = SwigClassWrapper_uninitialized(); + } else { + if (self->cmemflags & SWIG_MEM_OWN) { + free(self->cptr); + } + self->cptr = other.cptr; + if (other.cmemflags & SWIG_MEM_RVALUE) { + /* Capture RHS */ + self->cmemflags = other.cmemflags & ~SWIG_MEM_RVALUE; + } else { + /* Point to RHS */ + self->cmemflags = other.cmemflags & ~SWIG_MEM_OWN; + } + } +} + + +typedef struct { + void* data; + size_t size; +} SwigArrayWrapper; + + +SWIGINTERN SwigArrayWrapper SwigArrayWrapper_uninitialized() { + SwigArrayWrapper result; + result.data = NULL; + result.size = 0; + return result; +} + +SWIGEXPORT void _wrap_MRIStepCouplingMem_nmat_set(SwigClassWrapper const *farg1, int const *farg2) { + struct MRIStepCouplingMem *arg1 = (struct MRIStepCouplingMem *) 0 ; + int arg2 ; + + SWIG_check_mutable_nonnull(*farg1, "struct MRIStepCouplingMem *", "MRIStepCouplingMem", "MRIStepCouplingMem::nmat", return ); + arg1 = (struct MRIStepCouplingMem *)(farg1->cptr); + arg2 = (int)(*farg2); + if (arg1) (arg1)->nmat = arg2; +} + + +SWIGEXPORT int _wrap_MRIStepCouplingMem_nmat_get(SwigClassWrapper const *farg1) { + int fresult ; + struct MRIStepCouplingMem *arg1 = (struct MRIStepCouplingMem *) 0 ; + int result; + + SWIG_check_mutable_nonnull(*farg1, "struct MRIStepCouplingMem *", "MRIStepCouplingMem", "MRIStepCouplingMem::nmat", return 0); + arg1 = (struct MRIStepCouplingMem *)(farg1->cptr); + result = (int) ((arg1)->nmat); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT void _wrap_MRIStepCouplingMem_stages_set(SwigClassWrapper const *farg1, int const *farg2) { + struct MRIStepCouplingMem *arg1 = (struct MRIStepCouplingMem *) 0 ; + int arg2 ; + + SWIG_check_mutable_nonnull(*farg1, "struct MRIStepCouplingMem *", "MRIStepCouplingMem", "MRIStepCouplingMem::stages", return ); + arg1 = (struct MRIStepCouplingMem *)(farg1->cptr); + arg2 = (int)(*farg2); + if (arg1) (arg1)->stages = arg2; +} + + +SWIGEXPORT int _wrap_MRIStepCouplingMem_stages_get(SwigClassWrapper const *farg1) { + int fresult ; + struct MRIStepCouplingMem *arg1 = (struct MRIStepCouplingMem *) 0 ; + int result; + + SWIG_check_mutable_nonnull(*farg1, "struct MRIStepCouplingMem *", "MRIStepCouplingMem", "MRIStepCouplingMem::stages", return 0); + arg1 = (struct MRIStepCouplingMem *)(farg1->cptr); + result = (int) ((arg1)->stages); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT void _wrap_MRIStepCouplingMem_q_set(SwigClassWrapper const *farg1, int const *farg2) { + struct MRIStepCouplingMem *arg1 = (struct MRIStepCouplingMem *) 0 ; + int arg2 ; + + SWIG_check_mutable_nonnull(*farg1, "struct MRIStepCouplingMem *", "MRIStepCouplingMem", "MRIStepCouplingMem::q", return ); + arg1 = (struct MRIStepCouplingMem *)(farg1->cptr); + arg2 = (int)(*farg2); + if (arg1) (arg1)->q = arg2; +} + + +SWIGEXPORT int _wrap_MRIStepCouplingMem_q_get(SwigClassWrapper const *farg1) { + int fresult ; + struct MRIStepCouplingMem *arg1 = (struct MRIStepCouplingMem *) 0 ; + int result; + + SWIG_check_mutable_nonnull(*farg1, "struct MRIStepCouplingMem *", "MRIStepCouplingMem", "MRIStepCouplingMem::q", return 0); + arg1 = (struct MRIStepCouplingMem *)(farg1->cptr); + result = (int) ((arg1)->q); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT void _wrap_MRIStepCouplingMem_p_set(SwigClassWrapper const *farg1, int const *farg2) { + struct MRIStepCouplingMem *arg1 = (struct MRIStepCouplingMem *) 0 ; + int arg2 ; + + SWIG_check_mutable_nonnull(*farg1, "struct MRIStepCouplingMem *", "MRIStepCouplingMem", "MRIStepCouplingMem::p", return ); + arg1 = (struct MRIStepCouplingMem *)(farg1->cptr); + arg2 = (int)(*farg2); + if (arg1) (arg1)->p = arg2; +} + + +SWIGEXPORT int _wrap_MRIStepCouplingMem_p_get(SwigClassWrapper const *farg1) { + int fresult ; + struct MRIStepCouplingMem *arg1 = (struct MRIStepCouplingMem *) 0 ; + int result; + + SWIG_check_mutable_nonnull(*farg1, "struct MRIStepCouplingMem *", "MRIStepCouplingMem", "MRIStepCouplingMem::p", return 0); + arg1 = (struct MRIStepCouplingMem *)(farg1->cptr); + result = (int) ((arg1)->p); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT void _wrap_MRIStepCouplingMem_c_set(SwigClassWrapper const *farg1, double *farg2) { + struct MRIStepCouplingMem *arg1 = (struct MRIStepCouplingMem *) 0 ; + sunrealtype *arg2 = (sunrealtype *) 0 ; + + SWIG_check_mutable_nonnull(*farg1, "struct MRIStepCouplingMem *", "MRIStepCouplingMem", "MRIStepCouplingMem::c", return ); + arg1 = (struct MRIStepCouplingMem *)(farg1->cptr); + arg2 = (sunrealtype *)(farg2); + if (arg1) (arg1)->c = arg2; +} + + +SWIGEXPORT double * _wrap_MRIStepCouplingMem_c_get(SwigClassWrapper const *farg1) { + double * fresult ; + struct MRIStepCouplingMem *arg1 = (struct MRIStepCouplingMem *) 0 ; + sunrealtype *result = 0 ; + + SWIG_check_mutable_nonnull(*farg1, "struct MRIStepCouplingMem *", "MRIStepCouplingMem", "MRIStepCouplingMem::c", return 0); + arg1 = (struct MRIStepCouplingMem *)(farg1->cptr); + result = (sunrealtype *) ((arg1)->c); + fresult = result; + return fresult; +} + + +SWIGEXPORT void _wrap_MRIStepCouplingMem_W_set(SwigClassWrapper const *farg1, void *farg2) { + struct MRIStepCouplingMem *arg1 = (struct MRIStepCouplingMem *) 0 ; + sunrealtype ***arg2 = (sunrealtype ***) 0 ; + + SWIG_check_mutable_nonnull(*farg1, "struct MRIStepCouplingMem *", "MRIStepCouplingMem", "MRIStepCouplingMem::W", return ); + arg1 = (struct MRIStepCouplingMem *)(farg1->cptr); + arg2 = (sunrealtype ***)(farg2); + if (arg1) (arg1)->W = arg2; +} + + +SWIGEXPORT void * _wrap_MRIStepCouplingMem_W_get(SwigClassWrapper const *farg1) { + void * fresult ; + struct MRIStepCouplingMem *arg1 = (struct MRIStepCouplingMem *) 0 ; + sunrealtype ***result = 0 ; + + SWIG_check_mutable_nonnull(*farg1, "struct MRIStepCouplingMem *", "MRIStepCouplingMem", "MRIStepCouplingMem::W", return 0); + arg1 = (struct MRIStepCouplingMem *)(farg1->cptr); + result = (sunrealtype ***) ((arg1)->W); + fresult = result; + return fresult; +} + + +SWIGEXPORT void _wrap_MRIStepCouplingMem_G_set(SwigClassWrapper const *farg1, void *farg2) { + struct MRIStepCouplingMem *arg1 = (struct MRIStepCouplingMem *) 0 ; + sunrealtype ***arg2 = (sunrealtype ***) 0 ; + + SWIG_check_mutable_nonnull(*farg1, "struct MRIStepCouplingMem *", "MRIStepCouplingMem", "MRIStepCouplingMem::G", return ); + arg1 = (struct MRIStepCouplingMem *)(farg1->cptr); + arg2 = (sunrealtype ***)(farg2); + if (arg1) (arg1)->G = arg2; +} + + +SWIGEXPORT void * _wrap_MRIStepCouplingMem_G_get(SwigClassWrapper const *farg1) { + void * fresult ; + struct MRIStepCouplingMem *arg1 = (struct MRIStepCouplingMem *) 0 ; + sunrealtype ***result = 0 ; + + SWIG_check_mutable_nonnull(*farg1, "struct MRIStepCouplingMem *", "MRIStepCouplingMem", "MRIStepCouplingMem::G", return 0); + arg1 = (struct MRIStepCouplingMem *)(farg1->cptr); + result = (sunrealtype ***) ((arg1)->G); + fresult = result; + return fresult; +} + + +SWIGEXPORT SwigClassWrapper _wrap_new_MRIStepCouplingMem() { + SwigClassWrapper fresult ; + struct MRIStepCouplingMem *result = 0 ; + + result = (struct MRIStepCouplingMem *)calloc(1, sizeof(struct MRIStepCouplingMem)); + fresult.cptr = result; + fresult.cmemflags = SWIG_MEM_RVALUE | (1 ? SWIG_MEM_OWN : 0); + return fresult; +} + + +SWIGEXPORT void _wrap_delete_MRIStepCouplingMem(SwigClassWrapper *farg1) { + struct MRIStepCouplingMem *arg1 = (struct MRIStepCouplingMem *) 0 ; + + SWIG_check_mutable(*farg1, "struct MRIStepCouplingMem *", "MRIStepCouplingMem", "MRIStepCouplingMem::~MRIStepCouplingMem()", return ); + arg1 = (struct MRIStepCouplingMem *)(farg1->cptr); + free((char *) arg1); +} + + +SWIGEXPORT void _wrap_MRIStepCouplingMem_op_assign__(SwigClassWrapper *farg1, SwigClassWrapper const *farg2) { + struct MRIStepCouplingMem *arg1 = (struct MRIStepCouplingMem *) 0 ; + struct MRIStepCouplingMem *arg2 = 0 ; + + (void)sizeof(arg1); + (void)sizeof(arg2); + SWIG_assign(farg1, *farg2); + +} + + +SWIGEXPORT void * _wrap_FMRIStepCoupling_LoadTable(int const *farg1) { + void * fresult ; + ARKODE_MRITableID arg1 ; + MRIStepCoupling result; + + arg1 = (ARKODE_MRITableID)(*farg1); + result = (MRIStepCoupling)MRIStepCoupling_LoadTable(arg1); + fresult = result; + return fresult; +} + + +SWIGEXPORT void * _wrap_FMRIStepCoupling_LoadTableByName(SwigArrayWrapper *farg1) { + void * fresult ; + char *arg1 = (char *) 0 ; + MRIStepCoupling result; + + arg1 = (char *)(farg1->data); + result = (MRIStepCoupling)MRIStepCoupling_LoadTableByName((char const *)arg1); + fresult = result; + return fresult; +} + + +SWIGEXPORT void * _wrap_FMRIStepCoupling_Alloc(int const *farg1, int const *farg2, int const *farg3) { + void * fresult ; + int arg1 ; + int arg2 ; + MRISTEP_METHOD_TYPE arg3 ; + MRIStepCoupling result; + + arg1 = (int)(*farg1); + arg2 = (int)(*farg2); + arg3 = (MRISTEP_METHOD_TYPE)(*farg3); + result = (MRIStepCoupling)MRIStepCoupling_Alloc(arg1,arg2,arg3); + fresult = result; + return fresult; +} + + +SWIGEXPORT void * _wrap_FMRIStepCoupling_Create(int const *farg1, int const *farg2, int const *farg3, int const *farg4, double *farg5, double *farg6, double *farg7) { + void * fresult ; + int arg1 ; + int arg2 ; + int arg3 ; + int arg4 ; + sunrealtype *arg5 = (sunrealtype *) 0 ; + sunrealtype *arg6 = (sunrealtype *) 0 ; + sunrealtype *arg7 = (sunrealtype *) 0 ; + MRIStepCoupling result; + + arg1 = (int)(*farg1); + arg2 = (int)(*farg2); + arg3 = (int)(*farg3); + arg4 = (int)(*farg4); + arg5 = (sunrealtype *)(farg5); + arg6 = (sunrealtype *)(farg6); + arg7 = (sunrealtype *)(farg7); + result = (MRIStepCoupling)MRIStepCoupling_Create(arg1,arg2,arg3,arg4,arg5,arg6,arg7); + fresult = result; + return fresult; +} + + +SWIGEXPORT void * _wrap_FMRIStepCoupling_MIStoMRI(void *farg1, int const *farg2, int const *farg3) { + void * fresult ; + ARKodeButcherTable arg1 = (ARKodeButcherTable) 0 ; + int arg2 ; + int arg3 ; + MRIStepCoupling result; + + arg1 = (ARKodeButcherTable)(farg1); + arg2 = (int)(*farg2); + arg3 = (int)(*farg3); + result = (MRIStepCoupling)MRIStepCoupling_MIStoMRI(arg1,arg2,arg3); + fresult = result; + return fresult; +} + + +SWIGEXPORT void * _wrap_FMRIStepCoupling_Copy(void *farg1) { + void * fresult ; + MRIStepCoupling arg1 = (MRIStepCoupling) 0 ; + MRIStepCoupling result; + + arg1 = (MRIStepCoupling)(farg1); + result = (MRIStepCoupling)MRIStepCoupling_Copy(arg1); + fresult = result; + return fresult; +} + + +SWIGEXPORT void _wrap_FMRIStepCoupling_Space(void *farg1, int32_t *farg2, int32_t *farg3) { + MRIStepCoupling arg1 = (MRIStepCoupling) 0 ; + sunindextype *arg2 = (sunindextype *) 0 ; + sunindextype *arg3 = (sunindextype *) 0 ; + + arg1 = (MRIStepCoupling)(farg1); + arg2 = (sunindextype *)(farg2); + arg3 = (sunindextype *)(farg3); + MRIStepCoupling_Space(arg1,arg2,arg3); +} + + +SWIGEXPORT void _wrap_FMRIStepCoupling_Free(void *farg1) { + MRIStepCoupling arg1 = (MRIStepCoupling) 0 ; + + arg1 = (MRIStepCoupling)(farg1); + MRIStepCoupling_Free(arg1); +} + + +SWIGEXPORT void _wrap_FMRIStepCoupling_Write(void *farg1, void *farg2) { + MRIStepCoupling arg1 = (MRIStepCoupling) 0 ; + FILE *arg2 = (FILE *) 0 ; + + arg1 = (MRIStepCoupling)(farg1); + arg2 = (FILE *)(farg2); + MRIStepCoupling_Write(arg1,arg2); +} + + +SWIGEXPORT void * _wrap_FMRIStepCreate(ARKRhsFn farg1, ARKRhsFn farg2, double const *farg3, N_Vector farg4, void *farg5, void *farg6) { + void * fresult ; + ARKRhsFn arg1 = (ARKRhsFn) 0 ; + ARKRhsFn arg2 = (ARKRhsFn) 0 ; + sunrealtype arg3 ; + N_Vector arg4 = (N_Vector) 0 ; + MRIStepInnerStepper arg5 = (MRIStepInnerStepper) 0 ; + SUNContext arg6 = (SUNContext) 0 ; + void *result = 0 ; + + arg1 = (ARKRhsFn)(farg1); + arg2 = (ARKRhsFn)(farg2); + arg3 = (sunrealtype)(*farg3); + arg4 = (N_Vector)(farg4); + arg5 = (MRIStepInnerStepper)(farg5); + arg6 = (SUNContext)(farg6); + result = (void *)MRIStepCreate(arg1,arg2,arg3,arg4,arg5,arg6); + fresult = result; + return fresult; +} + + +SWIGEXPORT int _wrap_FMRIStepReInit(void *farg1, ARKRhsFn farg2, ARKRhsFn farg3, double const *farg4, N_Vector farg5) { + int fresult ; + void *arg1 = (void *) 0 ; + ARKRhsFn arg2 = (ARKRhsFn) 0 ; + ARKRhsFn arg3 = (ARKRhsFn) 0 ; + sunrealtype arg4 ; + N_Vector arg5 = (N_Vector) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (ARKRhsFn)(farg2); + arg3 = (ARKRhsFn)(farg3); + arg4 = (sunrealtype)(*farg4); + arg5 = (N_Vector)(farg5); + result = (int)MRIStepReInit(arg1,arg2,arg3,arg4,arg5); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FMRIStepSetCoupling(void *farg1, void *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + MRIStepCoupling arg2 = (MRIStepCoupling) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (MRIStepCoupling)(farg2); + result = (int)MRIStepSetCoupling(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FMRIStepSetPreInnerFn(void *farg1, MRIStepPreInnerFn farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + MRIStepPreInnerFn arg2 = (MRIStepPreInnerFn) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (MRIStepPreInnerFn)(farg2); + result = (int)MRIStepSetPreInnerFn(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FMRIStepSetPostInnerFn(void *farg1, MRIStepPostInnerFn farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + MRIStepPostInnerFn arg2 = (MRIStepPostInnerFn) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (MRIStepPostInnerFn)(farg2); + result = (int)MRIStepSetPostInnerFn(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FMRIStepGetNumRhsEvals(void *farg1, long *farg2, long *farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + long *arg3 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + arg3 = (long *)(farg3); + result = (int)MRIStepGetNumRhsEvals(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FMRIStepGetCurrentCoupling(void *farg1, void *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + MRIStepCoupling *arg2 = (MRIStepCoupling *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (MRIStepCoupling *)(farg2); + result = (int)MRIStepGetCurrentCoupling(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FMRIStepGetLastInnerStepFlag(void *farg1, int *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + int *arg2 = (int *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int *)(farg2); + result = (int)MRIStepGetLastInnerStepFlag(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FMRIStepInnerStepper_Create(void *farg1, void *farg2) { + int fresult ; + SUNContext arg1 = (SUNContext) 0 ; + MRIStepInnerStepper *arg2 = (MRIStepInnerStepper *) 0 ; + int result; + + arg1 = (SUNContext)(farg1); + arg2 = (MRIStepInnerStepper *)(farg2); + result = (int)MRIStepInnerStepper_Create(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FMRIStepInnerStepper_Free(void *farg1) { + int fresult ; + MRIStepInnerStepper *arg1 = (MRIStepInnerStepper *) 0 ; + int result; + + arg1 = (MRIStepInnerStepper *)(farg1); + result = (int)MRIStepInnerStepper_Free(arg1); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FMRIStepInnerStepper_SetContent(void *farg1, void *farg2) { + int fresult ; + MRIStepInnerStepper arg1 = (MRIStepInnerStepper) 0 ; + void *arg2 = (void *) 0 ; + int result; + + arg1 = (MRIStepInnerStepper)(farg1); + arg2 = (void *)(farg2); + result = (int)MRIStepInnerStepper_SetContent(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FMRIStepInnerStepper_GetContent(void *farg1, void *farg2) { + int fresult ; + MRIStepInnerStepper arg1 = (MRIStepInnerStepper) 0 ; + void **arg2 = (void **) 0 ; + int result; + + arg1 = (MRIStepInnerStepper)(farg1); + arg2 = (void **)(farg2); + result = (int)MRIStepInnerStepper_GetContent(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FMRIStepInnerStepper_SetEvolveFn(void *farg1, MRIStepInnerEvolveFn farg2) { + int fresult ; + MRIStepInnerStepper arg1 = (MRIStepInnerStepper) 0 ; + MRIStepInnerEvolveFn arg2 = (MRIStepInnerEvolveFn) 0 ; + int result; + + arg1 = (MRIStepInnerStepper)(farg1); + arg2 = (MRIStepInnerEvolveFn)(farg2); + result = (int)MRIStepInnerStepper_SetEvolveFn(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FMRIStepInnerStepper_SetFullRhsFn(void *farg1, MRIStepInnerFullRhsFn farg2) { + int fresult ; + MRIStepInnerStepper arg1 = (MRIStepInnerStepper) 0 ; + MRIStepInnerFullRhsFn arg2 = (MRIStepInnerFullRhsFn) 0 ; + int result; + + arg1 = (MRIStepInnerStepper)(farg1); + arg2 = (MRIStepInnerFullRhsFn)(farg2); + result = (int)MRIStepInnerStepper_SetFullRhsFn(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FMRIStepInnerStepper_SetResetFn(void *farg1, MRIStepInnerResetFn farg2) { + int fresult ; + MRIStepInnerStepper arg1 = (MRIStepInnerStepper) 0 ; + MRIStepInnerResetFn arg2 = (MRIStepInnerResetFn) 0 ; + int result; + + arg1 = (MRIStepInnerStepper)(farg1); + arg2 = (MRIStepInnerResetFn)(farg2); + result = (int)MRIStepInnerStepper_SetResetFn(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FMRIStepInnerStepper_AddForcing(void *farg1, double const *farg2, N_Vector farg3) { + int fresult ; + MRIStepInnerStepper arg1 = (MRIStepInnerStepper) 0 ; + sunrealtype arg2 ; + N_Vector arg3 = (N_Vector) 0 ; + int result; + + arg1 = (MRIStepInnerStepper)(farg1); + arg2 = (sunrealtype)(*farg2); + arg3 = (N_Vector)(farg3); + result = (int)MRIStepInnerStepper_AddForcing(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FMRIStepInnerStepper_GetForcingData(void *farg1, double *farg2, double *farg3, void *farg4, int *farg5) { + int fresult ; + MRIStepInnerStepper arg1 = (MRIStepInnerStepper) 0 ; + sunrealtype *arg2 = (sunrealtype *) 0 ; + sunrealtype *arg3 = (sunrealtype *) 0 ; + N_Vector **arg4 = (N_Vector **) 0 ; + int *arg5 = (int *) 0 ; + int result; + + arg1 = (MRIStepInnerStepper)(farg1); + arg2 = (sunrealtype *)(farg2); + arg3 = (sunrealtype *)(farg3); + arg4 = (N_Vector **)(farg4); + arg5 = (int *)(farg5); + result = (int)MRIStepInnerStepper_GetForcingData(arg1,arg2,arg3,arg4,arg5); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FMRIStepResize(void *farg1, N_Vector farg2, double const *farg3, ARKVecResizeFn farg4, void *farg5) { + int fresult ; + void *arg1 = (void *) 0 ; + N_Vector arg2 = (N_Vector) 0 ; + sunrealtype arg3 ; + ARKVecResizeFn arg4 = (ARKVecResizeFn) 0 ; + void *arg5 = (void *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (N_Vector)(farg2); + arg3 = (sunrealtype)(*farg3); + arg4 = (ARKVecResizeFn)(farg4); + arg5 = (void *)(farg5); + result = (int)MRIStepResize(arg1,arg2,arg3,arg4,arg5); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FMRIStepReset(void *farg1, double const *farg2, N_Vector farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + N_Vector arg3 = (N_Vector) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + arg3 = (N_Vector)(farg3); + result = (int)MRIStepReset(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FMRIStepSStolerances(void *farg1, double const *farg2, double const *farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + sunrealtype arg3 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + arg3 = (sunrealtype)(*farg3); + result = (int)MRIStepSStolerances(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FMRIStepSVtolerances(void *farg1, double const *farg2, N_Vector farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + N_Vector arg3 = (N_Vector) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + arg3 = (N_Vector)(farg3); + result = (int)MRIStepSVtolerances(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FMRIStepWFtolerances(void *farg1, ARKEwtFn farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + ARKEwtFn arg2 = (ARKEwtFn) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (ARKEwtFn)(farg2); + result = (int)MRIStepWFtolerances(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FMRIStepSetLinearSolver(void *farg1, SUNLinearSolver farg2, SUNMatrix farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + SUNLinearSolver arg2 = (SUNLinearSolver) 0 ; + SUNMatrix arg3 = (SUNMatrix) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (SUNLinearSolver)(farg2); + arg3 = (SUNMatrix)(farg3); + result = (int)MRIStepSetLinearSolver(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FMRIStepRootInit(void *farg1, int const *farg2, ARKRootFn farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + ARKRootFn arg3 = (ARKRootFn) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + arg3 = (ARKRootFn)(farg3); + result = (int)MRIStepRootInit(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FMRIStepSetDefaults(void *farg1) { + int fresult ; + void *arg1 = (void *) 0 ; + int result; + + arg1 = (void *)(farg1); + result = (int)MRIStepSetDefaults(arg1); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FMRIStepSetOrder(void *farg1, int const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + result = (int)MRIStepSetOrder(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FMRIStepSetInterpolantType(void *farg1, int const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + result = (int)MRIStepSetInterpolantType(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FMRIStepSetInterpolantDegree(void *farg1, int const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + result = (int)MRIStepSetInterpolantDegree(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FMRIStepSetDenseOrder(void *farg1, int const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + result = (int)MRIStepSetDenseOrder(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FMRIStepSetNonlinearSolver(void *farg1, SUNNonlinearSolver farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + SUNNonlinearSolver arg2 = (SUNNonlinearSolver) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (SUNNonlinearSolver)(farg2); + result = (int)MRIStepSetNonlinearSolver(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FMRIStepSetNlsRhsFn(void *farg1, ARKRhsFn farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + ARKRhsFn arg2 = (ARKRhsFn) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (ARKRhsFn)(farg2); + result = (int)MRIStepSetNlsRhsFn(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FMRIStepSetLinear(void *farg1, int const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + result = (int)MRIStepSetLinear(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FMRIStepSetNonlinear(void *farg1) { + int fresult ; + void *arg1 = (void *) 0 ; + int result; + + arg1 = (void *)(farg1); + result = (int)MRIStepSetNonlinear(arg1); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FMRIStepSetMaxNumSteps(void *farg1, long const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long)(*farg2); + result = (int)MRIStepSetMaxNumSteps(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FMRIStepSetNonlinCRDown(void *farg1, double const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + result = (int)MRIStepSetNonlinCRDown(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FMRIStepSetNonlinRDiv(void *farg1, double const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + result = (int)MRIStepSetNonlinRDiv(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FMRIStepSetDeltaGammaMax(void *farg1, double const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + result = (int)MRIStepSetDeltaGammaMax(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FMRIStepSetLSetupFrequency(void *farg1, int const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + result = (int)MRIStepSetLSetupFrequency(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FMRIStepSetPredictorMethod(void *farg1, int const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + result = (int)MRIStepSetPredictorMethod(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FMRIStepSetMaxNonlinIters(void *farg1, int const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + result = (int)MRIStepSetMaxNonlinIters(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FMRIStepSetNonlinConvCoef(void *farg1, double const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + result = (int)MRIStepSetNonlinConvCoef(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FMRIStepSetMaxHnilWarns(void *farg1, int const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + result = (int)MRIStepSetMaxHnilWarns(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FMRIStepSetInterpolateStopTime(void *farg1, int const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + result = (int)MRIStepSetInterpolateStopTime(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FMRIStepSetStopTime(void *farg1, double const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + result = (int)MRIStepSetStopTime(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FMRIStepClearStopTime(void *farg1) { + int fresult ; + void *arg1 = (void *) 0 ; + int result; + + arg1 = (void *)(farg1); + result = (int)MRIStepClearStopTime(arg1); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FMRIStepSetFixedStep(void *farg1, double const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + result = (int)MRIStepSetFixedStep(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FMRIStepSetRootDirection(void *farg1, int *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + int *arg2 = (int *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int *)(farg2); + result = (int)MRIStepSetRootDirection(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FMRIStepSetNoInactiveRootWarn(void *farg1) { + int fresult ; + void *arg1 = (void *) 0 ; + int result; + + arg1 = (void *)(farg1); + result = (int)MRIStepSetNoInactiveRootWarn(arg1); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FMRIStepSetUserData(void *farg1, void *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + void *arg2 = (void *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (void *)(farg2); + result = (int)MRIStepSetUserData(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FMRIStepSetPostprocessStepFn(void *farg1, ARKPostProcessFn farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + ARKPostProcessFn arg2 = (ARKPostProcessFn) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (ARKPostProcessFn)(farg2); + result = (int)MRIStepSetPostprocessStepFn(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FMRIStepSetPostprocessStageFn(void *farg1, ARKPostProcessFn farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + ARKPostProcessFn arg2 = (ARKPostProcessFn) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (ARKPostProcessFn)(farg2); + result = (int)MRIStepSetPostprocessStageFn(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FMRIStepSetStagePredictFn(void *farg1, ARKStagePredictFn farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + ARKStagePredictFn arg2 = (ARKStagePredictFn) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (ARKStagePredictFn)(farg2); + result = (int)MRIStepSetStagePredictFn(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FMRIStepSetDeduceImplicitRhs(void *farg1, int const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + result = (int)MRIStepSetDeduceImplicitRhs(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FMRIStepSetJacFn(void *farg1, ARKLsJacFn farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + ARKLsJacFn arg2 = (ARKLsJacFn) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (ARKLsJacFn)(farg2); + result = (int)MRIStepSetJacFn(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FMRIStepSetJacEvalFrequency(void *farg1, long const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long)(*farg2); + result = (int)MRIStepSetJacEvalFrequency(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FMRIStepSetLinearSolutionScaling(void *farg1, int const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + result = (int)MRIStepSetLinearSolutionScaling(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FMRIStepSetEpsLin(void *farg1, double const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + result = (int)MRIStepSetEpsLin(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FMRIStepSetLSNormFactor(void *farg1, double const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + result = (int)MRIStepSetLSNormFactor(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FMRIStepSetPreconditioner(void *farg1, ARKLsPrecSetupFn farg2, ARKLsPrecSolveFn farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + ARKLsPrecSetupFn arg2 = (ARKLsPrecSetupFn) 0 ; + ARKLsPrecSolveFn arg3 = (ARKLsPrecSolveFn) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (ARKLsPrecSetupFn)(farg2); + arg3 = (ARKLsPrecSolveFn)(farg3); + result = (int)MRIStepSetPreconditioner(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FMRIStepSetJacTimes(void *farg1, ARKLsJacTimesSetupFn farg2, ARKLsJacTimesVecFn farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + ARKLsJacTimesSetupFn arg2 = (ARKLsJacTimesSetupFn) 0 ; + ARKLsJacTimesVecFn arg3 = (ARKLsJacTimesVecFn) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (ARKLsJacTimesSetupFn)(farg2); + arg3 = (ARKLsJacTimesVecFn)(farg3); + result = (int)MRIStepSetJacTimes(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FMRIStepSetJacTimesRhsFn(void *farg1, ARKRhsFn farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + ARKRhsFn arg2 = (ARKRhsFn) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (ARKRhsFn)(farg2); + result = (int)MRIStepSetJacTimesRhsFn(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FMRIStepSetLinSysFn(void *farg1, ARKLsLinSysFn farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + ARKLsLinSysFn arg2 = (ARKLsLinSysFn) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (ARKLsLinSysFn)(farg2); + result = (int)MRIStepSetLinSysFn(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FMRIStepEvolve(void *farg1, double const *farg2, N_Vector farg3, double *farg4, int const *farg5) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + N_Vector arg3 = (N_Vector) 0 ; + sunrealtype *arg4 = (sunrealtype *) 0 ; + int arg5 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + arg3 = (N_Vector)(farg3); + arg4 = (sunrealtype *)(farg4); + arg5 = (int)(*farg5); + result = (int)MRIStepEvolve(arg1,arg2,arg3,arg4,arg5); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FMRIStepGetDky(void *farg1, double const *farg2, int const *farg3, N_Vector farg4) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + int arg3 ; + N_Vector arg4 = (N_Vector) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + arg3 = (int)(*farg3); + arg4 = (N_Vector)(farg4); + result = (int)MRIStepGetDky(arg1,arg2,arg3,arg4); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FMRIStepComputeState(void *farg1, N_Vector farg2, N_Vector farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + N_Vector arg2 = (N_Vector) 0 ; + N_Vector arg3 = (N_Vector) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (N_Vector)(farg2); + arg3 = (N_Vector)(farg3); + result = (int)MRIStepComputeState(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FMRIStepGetNumLinSolvSetups(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)MRIStepGetNumLinSolvSetups(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FMRIStepGetWorkSpace(void *farg1, long *farg2, long *farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + long *arg3 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + arg3 = (long *)(farg3); + result = (int)MRIStepGetWorkSpace(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FMRIStepGetNumSteps(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)MRIStepGetNumSteps(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FMRIStepGetLastStep(void *farg1, double *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype *arg2 = (sunrealtype *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype *)(farg2); + result = (int)MRIStepGetLastStep(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FMRIStepGetCurrentTime(void *farg1, double *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype *arg2 = (sunrealtype *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype *)(farg2); + result = (int)MRIStepGetCurrentTime(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FMRIStepGetCurrentState(void *farg1, void *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + N_Vector *arg2 = (N_Vector *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (N_Vector *)(farg2); + result = (int)MRIStepGetCurrentState(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FMRIStepGetCurrentGamma(void *farg1, double *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype *arg2 = (sunrealtype *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype *)(farg2); + result = (int)MRIStepGetCurrentGamma(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FMRIStepGetTolScaleFactor(void *farg1, double *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype *arg2 = (sunrealtype *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype *)(farg2); + result = (int)MRIStepGetTolScaleFactor(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FMRIStepGetErrWeights(void *farg1, N_Vector farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + N_Vector arg2 = (N_Vector) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (N_Vector)(farg2); + result = (int)MRIStepGetErrWeights(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FMRIStepGetNumGEvals(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)MRIStepGetNumGEvals(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FMRIStepGetRootInfo(void *farg1, int *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + int *arg2 = (int *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int *)(farg2); + result = (int)MRIStepGetRootInfo(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FMRIStepGetUserData(void *farg1, void *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + void **arg2 = (void **) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (void **)(farg2); + result = (int)MRIStepGetUserData(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FMRIStepPrintAllStats(void *farg1, void *farg2, int const *farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + FILE *arg2 = (FILE *) 0 ; + SUNOutputFormat arg3 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (FILE *)(farg2); + arg3 = (SUNOutputFormat)(*farg3); + result = (int)MRIStepPrintAllStats(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT SwigArrayWrapper _wrap_FMRIStepGetReturnFlagName(long const *farg1) { + SwigArrayWrapper fresult ; + long arg1 ; + char *result = 0 ; + + arg1 = (long)(*farg1); + result = (char *)MRIStepGetReturnFlagName(arg1); + fresult.size = strlen((const char*)(result)); + fresult.data = (char *)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FMRIStepWriteParameters(void *farg1, void *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + FILE *arg2 = (FILE *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (FILE *)(farg2); + result = (int)MRIStepWriteParameters(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FMRIStepWriteCoupling(void *farg1, void *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + FILE *arg2 = (FILE *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (FILE *)(farg2); + result = (int)MRIStepWriteCoupling(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FMRIStepGetNonlinearSystemData(void *farg1, double *farg2, void *farg3, void *farg4, void *farg5, double *farg6, void *farg7, void *farg8) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype *arg2 = (sunrealtype *) 0 ; + N_Vector *arg3 = (N_Vector *) 0 ; + N_Vector *arg4 = (N_Vector *) 0 ; + N_Vector *arg5 = (N_Vector *) 0 ; + sunrealtype *arg6 = (sunrealtype *) 0 ; + N_Vector *arg7 = (N_Vector *) 0 ; + void **arg8 = (void **) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype *)(farg2); + arg3 = (N_Vector *)(farg3); + arg4 = (N_Vector *)(farg4); + arg5 = (N_Vector *)(farg5); + arg6 = (sunrealtype *)(farg6); + arg7 = (N_Vector *)(farg7); + arg8 = (void **)(farg8); + result = (int)MRIStepGetNonlinearSystemData(arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FMRIStepGetNumNonlinSolvIters(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)MRIStepGetNumNonlinSolvIters(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FMRIStepGetNumNonlinSolvConvFails(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)MRIStepGetNumNonlinSolvConvFails(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FMRIStepGetNonlinSolvStats(void *farg1, long *farg2, long *farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + long *arg3 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + arg3 = (long *)(farg3); + result = (int)MRIStepGetNonlinSolvStats(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FMRIStepGetNumStepSolveFails(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)MRIStepGetNumStepSolveFails(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FMRIStepGetJac(void *farg1, void *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + SUNMatrix *arg2 = (SUNMatrix *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (SUNMatrix *)(farg2); + result = (int)MRIStepGetJac(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FMRIStepGetJacTime(void *farg1, double *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype *arg2 = (sunrealtype *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype *)(farg2); + result = (int)MRIStepGetJacTime(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FMRIStepGetJacNumSteps(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)MRIStepGetJacNumSteps(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FMRIStepGetLinWorkSpace(void *farg1, long *farg2, long *farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + long *arg3 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + arg3 = (long *)(farg3); + result = (int)MRIStepGetLinWorkSpace(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FMRIStepGetNumJacEvals(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)MRIStepGetNumJacEvals(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FMRIStepGetNumPrecEvals(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)MRIStepGetNumPrecEvals(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FMRIStepGetNumPrecSolves(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)MRIStepGetNumPrecSolves(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FMRIStepGetNumLinIters(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)MRIStepGetNumLinIters(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FMRIStepGetNumLinConvFails(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)MRIStepGetNumLinConvFails(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FMRIStepGetNumJTSetupEvals(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)MRIStepGetNumJTSetupEvals(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FMRIStepGetNumJtimesEvals(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)MRIStepGetNumJtimesEvals(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FMRIStepGetNumLinRhsEvals(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)MRIStepGetNumLinRhsEvals(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FMRIStepGetLastLinFlag(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)MRIStepGetLastLinFlag(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT SwigArrayWrapper _wrap_FMRIStepGetLinReturnFlagName(long const *farg1) { + SwigArrayWrapper fresult ; + long arg1 ; + char *result = 0 ; + + arg1 = (long)(*farg1); + result = (char *)MRIStepGetLinReturnFlagName(arg1); + fresult.size = strlen((const char*)(result)); + fresult.data = (char *)(result); + return fresult; +} + + +SWIGEXPORT void _wrap_FMRIStepFree(void *farg1) { + void **arg1 = (void **) 0 ; + + arg1 = (void **)(farg1); + MRIStepFree(arg1); +} + + +SWIGEXPORT void _wrap_FMRIStepPrintMem(void *farg1, void *farg2) { + void *arg1 = (void *) 0 ; + FILE *arg2 = (FILE *) 0 ; + + arg1 = (void *)(farg1); + arg2 = (FILE *)(farg2); + MRIStepPrintMem(arg1,arg2); +} + + + diff --git a/src/arkode/fmod_int32/farkode_mristep_mod.f90 b/src/arkode/fmod_int32/farkode_mristep_mod.f90 new file mode 100644 index 0000000000..74a3de5637 --- /dev/null +++ b/src/arkode/fmod_int32/farkode_mristep_mod.f90 @@ -0,0 +1,3516 @@ +! This file was automatically generated by SWIG (http://www.swig.org). +! Version 4.0.0 +! +! Do not make changes to this file unless you know what you are doing--modify +! the SWIG interface file instead. + +! --------------------------------------------------------------- +! Programmer(s): Auto-generated by swig. +! --------------------------------------------------------------- +! SUNDIALS Copyright Start +! Copyright (c) 2002-2024, Lawrence Livermore National Security +! and Southern Methodist University. +! All rights reserved. +! +! See the top-level LICENSE and NOTICE files for details. +! +! SPDX-License-Identifier: BSD-3-Clause +! SUNDIALS Copyright End +! --------------------------------------------------------------- + +module farkode_mristep_mod + use, intrinsic :: ISO_C_BINDING + use farkode_mod + use fsundials_core_mod + implicit none + private + + ! DECLARATION CONSTRUCTS + ! typedef enum MRISTEP_METHOD_TYPE + enum, bind(c) + enumerator :: MRISTEP_EXPLICIT + enumerator :: MRISTEP_IMPLICIT + enumerator :: MRISTEP_IMEX + end enum + integer, parameter, public :: MRISTEP_METHOD_TYPE = kind(MRISTEP_EXPLICIT) + public :: MRISTEP_EXPLICIT, MRISTEP_IMPLICIT, MRISTEP_IMEX + ! typedef enum ARKODE_MRITableID + enum, bind(c) + enumerator :: ARKODE_MRI_NONE = -1 + enumerator :: ARKODE_MIN_MRI_NUM = 200 + enumerator :: ARKODE_MIS_KW3 = ARKODE_MIN_MRI_NUM + enumerator :: ARKODE_MRI_GARK_ERK33a + enumerator :: ARKODE_MRI_GARK_ERK45a + enumerator :: ARKODE_MRI_GARK_IRK21a + enumerator :: ARKODE_MRI_GARK_ESDIRK34a + enumerator :: ARKODE_MRI_GARK_ESDIRK46a + enumerator :: ARKODE_IMEX_MRI_GARK3a + enumerator :: ARKODE_IMEX_MRI_GARK3b + enumerator :: ARKODE_IMEX_MRI_GARK4 + enumerator :: ARKODE_MRI_GARK_FORWARD_EULER + enumerator :: ARKODE_MRI_GARK_RALSTON2 + enumerator :: ARKODE_MRI_GARK_ERK22a + enumerator :: ARKODE_MRI_GARK_ERK22b + enumerator :: ARKODE_MRI_GARK_RALSTON3 + enumerator :: ARKODE_MRI_GARK_BACKWARD_EULER + enumerator :: ARKODE_MRI_GARK_IMPLICIT_MIDPOINT + enumerator :: ARKODE_IMEX_MRI_GARK_EULER + enumerator :: ARKODE_IMEX_MRI_GARK_TRAPEZOIDAL + enumerator :: ARKODE_IMEX_MRI_GARK_MIDPOINT + enumerator :: ARKODE_MAX_MRI_NUM = ARKODE_IMEX_MRI_GARK_MIDPOINT + end enum + integer, parameter, public :: ARKODE_MRITableID = kind(ARKODE_MRI_NONE) + public :: ARKODE_MRI_NONE, ARKODE_MIN_MRI_NUM, ARKODE_MIS_KW3, ARKODE_MRI_GARK_ERK33a, ARKODE_MRI_GARK_ERK45a, & + ARKODE_MRI_GARK_IRK21a, ARKODE_MRI_GARK_ESDIRK34a, ARKODE_MRI_GARK_ESDIRK46a, ARKODE_IMEX_MRI_GARK3a, & + ARKODE_IMEX_MRI_GARK3b, ARKODE_IMEX_MRI_GARK4, ARKODE_MRI_GARK_FORWARD_EULER, ARKODE_MRI_GARK_RALSTON2, & + ARKODE_MRI_GARK_ERK22a, ARKODE_MRI_GARK_ERK22b, ARKODE_MRI_GARK_RALSTON3, ARKODE_MRI_GARK_BACKWARD_EULER, & + ARKODE_MRI_GARK_IMPLICIT_MIDPOINT, ARKODE_IMEX_MRI_GARK_EULER, ARKODE_IMEX_MRI_GARK_TRAPEZOIDAL, & + ARKODE_IMEX_MRI_GARK_MIDPOINT, ARKODE_MAX_MRI_NUM + integer(C_INT), parameter, public :: MRISTEP_DEFAULT_EXPL_1 = ARKODE_MRI_GARK_FORWARD_EULER + integer(C_INT), parameter, public :: MRISTEP_DEFAULT_EXPL_2 = ARKODE_MRI_GARK_ERK22b + integer(C_INT), parameter, public :: MRISTEP_DEFAULT_EXPL_3 = ARKODE_MIS_KW3 + integer(C_INT), parameter, public :: MRISTEP_DEFAULT_EXPL_4 = ARKODE_MRI_GARK_ERK45a + integer(C_INT), parameter, public :: MRISTEP_DEFAULT_IMPL_SD_1 = ARKODE_MRI_GARK_BACKWARD_EULER + integer(C_INT), parameter, public :: MRISTEP_DEFAULT_IMPL_SD_2 = ARKODE_MRI_GARK_IRK21a + integer(C_INT), parameter, public :: MRISTEP_DEFAULT_IMPL_SD_3 = ARKODE_MRI_GARK_ESDIRK34a + integer(C_INT), parameter, public :: MRISTEP_DEFAULT_IMPL_SD_4 = ARKODE_MRI_GARK_ESDIRK46a + integer(C_INT), parameter, public :: MRISTEP_DEFAULT_IMEX_SD_1 = ARKODE_IMEX_MRI_GARK_EULER + integer(C_INT), parameter, public :: MRISTEP_DEFAULT_IMEX_SD_2 = ARKODE_IMEX_MRI_GARK_TRAPEZOIDAL + integer(C_INT), parameter, public :: MRISTEP_DEFAULT_IMEX_SD_3 = ARKODE_IMEX_MRI_GARK3b + integer(C_INT), parameter, public :: MRISTEP_DEFAULT_IMEX_SD_4 = ARKODE_IMEX_MRI_GARK4 + + integer, parameter :: swig_cmem_own_bit = 0 + integer, parameter :: swig_cmem_rvalue_bit = 1 + integer, parameter :: swig_cmem_const_bit = 2 + type, bind(C) :: SwigClassWrapper + type(C_PTR), public :: cptr = C_NULL_PTR + integer(C_INT), public :: cmemflags = 0 + end type + ! struct struct MRIStepCouplingMem + type, public :: MRIStepCouplingMem + type(SwigClassWrapper), public :: swigdata + contains + procedure :: set_nmat => swigf_MRIStepCouplingMem_nmat_set + procedure :: get_nmat => swigf_MRIStepCouplingMem_nmat_get + procedure :: set_stages => swigf_MRIStepCouplingMem_stages_set + procedure :: get_stages => swigf_MRIStepCouplingMem_stages_get + procedure :: set_q => swigf_MRIStepCouplingMem_q_set + procedure :: get_q => swigf_MRIStepCouplingMem_q_get + procedure :: set_p => swigf_MRIStepCouplingMem_p_set + procedure :: get_p => swigf_MRIStepCouplingMem_p_get + procedure :: set_c => swigf_MRIStepCouplingMem_c_set + procedure :: get_c => swigf_MRIStepCouplingMem_c_get + procedure :: set_W => swigf_MRIStepCouplingMem_W_set + procedure :: get_W => swigf_MRIStepCouplingMem_W_get + procedure :: set_G => swigf_MRIStepCouplingMem_G_set + procedure :: get_G => swigf_MRIStepCouplingMem_G_get + procedure :: release => swigf_release_MRIStepCouplingMem + procedure, private :: swigf_MRIStepCouplingMem_op_assign__ + generic :: assignment(=) => swigf_MRIStepCouplingMem_op_assign__ + end type MRIStepCouplingMem + interface MRIStepCouplingMem + module procedure swigf_create_MRIStepCouplingMem + end interface + public :: FMRIStepCoupling_LoadTable + type, bind(C) :: SwigArrayWrapper + type(C_PTR), public :: data = C_NULL_PTR + integer(C_SIZE_T), public :: size = 0 + end type + public :: FMRIStepCoupling_LoadTableByName + public :: FMRIStepCoupling_Alloc + public :: FMRIStepCoupling_Create + public :: FMRIStepCoupling_MIStoMRI + public :: FMRIStepCoupling_Copy + public :: FMRIStepCoupling_Space + public :: FMRIStepCoupling_Free + public :: FMRIStepCoupling_Write + public :: FMRIStepCreate + public :: FMRIStepReInit + public :: FMRIStepSetCoupling + public :: FMRIStepSetPreInnerFn + public :: FMRIStepSetPostInnerFn + public :: FMRIStepGetNumRhsEvals + public :: FMRIStepGetCurrentCoupling + public :: FMRIStepGetLastInnerStepFlag + public :: FMRIStepInnerStepper_Create + public :: FMRIStepInnerStepper_Free + public :: FMRIStepInnerStepper_SetContent + public :: FMRIStepInnerStepper_GetContent + public :: FMRIStepInnerStepper_SetEvolveFn + public :: FMRIStepInnerStepper_SetFullRhsFn + public :: FMRIStepInnerStepper_SetResetFn + public :: FMRIStepInnerStepper_AddForcing + public :: FMRIStepInnerStepper_GetForcingData + public :: FMRIStepResize + public :: FMRIStepReset + public :: FMRIStepSStolerances + public :: FMRIStepSVtolerances + public :: FMRIStepWFtolerances + public :: FMRIStepSetLinearSolver + public :: FMRIStepRootInit + public :: FMRIStepSetDefaults + public :: FMRIStepSetOrder + public :: FMRIStepSetInterpolantType + public :: FMRIStepSetInterpolantDegree + public :: FMRIStepSetDenseOrder + public :: FMRIStepSetNonlinearSolver + public :: FMRIStepSetNlsRhsFn + public :: FMRIStepSetLinear + public :: FMRIStepSetNonlinear + public :: FMRIStepSetMaxNumSteps + public :: FMRIStepSetNonlinCRDown + public :: FMRIStepSetNonlinRDiv + public :: FMRIStepSetDeltaGammaMax + public :: FMRIStepSetLSetupFrequency + public :: FMRIStepSetPredictorMethod + public :: FMRIStepSetMaxNonlinIters + public :: FMRIStepSetNonlinConvCoef + public :: FMRIStepSetMaxHnilWarns + public :: FMRIStepSetInterpolateStopTime + public :: FMRIStepSetStopTime + public :: FMRIStepClearStopTime + public :: FMRIStepSetFixedStep + public :: FMRIStepSetRootDirection + public :: FMRIStepSetNoInactiveRootWarn + public :: FMRIStepSetUserData + public :: FMRIStepSetPostprocessStepFn + public :: FMRIStepSetPostprocessStageFn + public :: FMRIStepSetStagePredictFn + public :: FMRIStepSetDeduceImplicitRhs + public :: FMRIStepSetJacFn + public :: FMRIStepSetJacEvalFrequency + public :: FMRIStepSetLinearSolutionScaling + public :: FMRIStepSetEpsLin + public :: FMRIStepSetLSNormFactor + public :: FMRIStepSetPreconditioner + public :: FMRIStepSetJacTimes + public :: FMRIStepSetJacTimesRhsFn + public :: FMRIStepSetLinSysFn + public :: FMRIStepEvolve + public :: FMRIStepGetDky + public :: FMRIStepComputeState + public :: FMRIStepGetNumLinSolvSetups + public :: FMRIStepGetWorkSpace + public :: FMRIStepGetNumSteps + public :: FMRIStepGetLastStep + public :: FMRIStepGetCurrentTime + public :: FMRIStepGetCurrentState + public :: FMRIStepGetCurrentGamma + public :: FMRIStepGetTolScaleFactor + public :: FMRIStepGetErrWeights + public :: FMRIStepGetNumGEvals + public :: FMRIStepGetRootInfo + public :: FMRIStepGetUserData + public :: FMRIStepPrintAllStats + public :: FMRIStepGetReturnFlagName + public :: FMRIStepWriteParameters + public :: FMRIStepWriteCoupling + public :: FMRIStepGetNonlinearSystemData + public :: FMRIStepGetNumNonlinSolvIters + public :: FMRIStepGetNumNonlinSolvConvFails + public :: FMRIStepGetNonlinSolvStats + public :: FMRIStepGetNumStepSolveFails + public :: FMRIStepGetJac + public :: FMRIStepGetJacTime + public :: FMRIStepGetJacNumSteps + public :: FMRIStepGetLinWorkSpace + public :: FMRIStepGetNumJacEvals + public :: FMRIStepGetNumPrecEvals + public :: FMRIStepGetNumPrecSolves + public :: FMRIStepGetNumLinIters + public :: FMRIStepGetNumLinConvFails + public :: FMRIStepGetNumJTSetupEvals + public :: FMRIStepGetNumJtimesEvals + public :: FMRIStepGetNumLinRhsEvals + public :: FMRIStepGetLastLinFlag + public :: FMRIStepGetLinReturnFlagName + public :: FMRIStepFree + public :: FMRIStepPrintMem + +! WRAPPER DECLARATIONS +interface +subroutine swigc_MRIStepCouplingMem_nmat_set(farg1, farg2) & +bind(C, name="_wrap_MRIStepCouplingMem_nmat_set") +use, intrinsic :: ISO_C_BINDING +import :: swigclasswrapper +type(SwigClassWrapper) :: farg1 +integer(C_INT), intent(in) :: farg2 +end subroutine + +function swigc_MRIStepCouplingMem_nmat_get(farg1) & +bind(C, name="_wrap_MRIStepCouplingMem_nmat_get") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +import :: swigclasswrapper +type(SwigClassWrapper) :: farg1 +integer(C_INT) :: fresult +end function + +subroutine swigc_MRIStepCouplingMem_stages_set(farg1, farg2) & +bind(C, name="_wrap_MRIStepCouplingMem_stages_set") +use, intrinsic :: ISO_C_BINDING +import :: swigclasswrapper +type(SwigClassWrapper) :: farg1 +integer(C_INT), intent(in) :: farg2 +end subroutine + +function swigc_MRIStepCouplingMem_stages_get(farg1) & +bind(C, name="_wrap_MRIStepCouplingMem_stages_get") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +import :: swigclasswrapper +type(SwigClassWrapper) :: farg1 +integer(C_INT) :: fresult +end function + +subroutine swigc_MRIStepCouplingMem_q_set(farg1, farg2) & +bind(C, name="_wrap_MRIStepCouplingMem_q_set") +use, intrinsic :: ISO_C_BINDING +import :: swigclasswrapper +type(SwigClassWrapper) :: farg1 +integer(C_INT), intent(in) :: farg2 +end subroutine + +function swigc_MRIStepCouplingMem_q_get(farg1) & +bind(C, name="_wrap_MRIStepCouplingMem_q_get") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +import :: swigclasswrapper +type(SwigClassWrapper) :: farg1 +integer(C_INT) :: fresult +end function + +subroutine swigc_MRIStepCouplingMem_p_set(farg1, farg2) & +bind(C, name="_wrap_MRIStepCouplingMem_p_set") +use, intrinsic :: ISO_C_BINDING +import :: swigclasswrapper +type(SwigClassWrapper) :: farg1 +integer(C_INT), intent(in) :: farg2 +end subroutine + +function swigc_MRIStepCouplingMem_p_get(farg1) & +bind(C, name="_wrap_MRIStepCouplingMem_p_get") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +import :: swigclasswrapper +type(SwigClassWrapper) :: farg1 +integer(C_INT) :: fresult +end function + +subroutine swigc_MRIStepCouplingMem_c_set(farg1, farg2) & +bind(C, name="_wrap_MRIStepCouplingMem_c_set") +use, intrinsic :: ISO_C_BINDING +import :: swigclasswrapper +type(SwigClassWrapper) :: farg1 +type(C_PTR), value :: farg2 +end subroutine + +function swigc_MRIStepCouplingMem_c_get(farg1) & +bind(C, name="_wrap_MRIStepCouplingMem_c_get") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +import :: swigclasswrapper +type(SwigClassWrapper) :: farg1 +type(C_PTR) :: fresult +end function + +subroutine swigc_MRIStepCouplingMem_W_set(farg1, farg2) & +bind(C, name="_wrap_MRIStepCouplingMem_W_set") +use, intrinsic :: ISO_C_BINDING +import :: swigclasswrapper +type(SwigClassWrapper) :: farg1 +type(C_PTR), value :: farg2 +end subroutine + +function swigc_MRIStepCouplingMem_W_get(farg1) & +bind(C, name="_wrap_MRIStepCouplingMem_W_get") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +import :: swigclasswrapper +type(SwigClassWrapper) :: farg1 +type(C_PTR) :: fresult +end function + +subroutine swigc_MRIStepCouplingMem_G_set(farg1, farg2) & +bind(C, name="_wrap_MRIStepCouplingMem_G_set") +use, intrinsic :: ISO_C_BINDING +import :: swigclasswrapper +type(SwigClassWrapper) :: farg1 +type(C_PTR), value :: farg2 +end subroutine + +function swigc_MRIStepCouplingMem_G_get(farg1) & +bind(C, name="_wrap_MRIStepCouplingMem_G_get") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +import :: swigclasswrapper +type(SwigClassWrapper) :: farg1 +type(C_PTR) :: fresult +end function + +function swigc_new_MRIStepCouplingMem() & +bind(C, name="_wrap_new_MRIStepCouplingMem") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +import :: swigclasswrapper +type(SwigClassWrapper) :: fresult +end function + +subroutine swigc_delete_MRIStepCouplingMem(farg1) & +bind(C, name="_wrap_delete_MRIStepCouplingMem") +use, intrinsic :: ISO_C_BINDING +import :: swigclasswrapper +type(SwigClassWrapper), intent(inout) :: farg1 +end subroutine + +subroutine swigc_MRIStepCouplingMem_op_assign__(farg1, farg2) & +bind(C, name="_wrap_MRIStepCouplingMem_op_assign__") +use, intrinsic :: ISO_C_BINDING +import :: swigclasswrapper +type(SwigClassWrapper), intent(inout) :: farg1 +type(SwigClassWrapper) :: farg2 +end subroutine + +function swigc_FMRIStepCoupling_LoadTable(farg1) & +bind(C, name="_wrap_FMRIStepCoupling_LoadTable") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +integer(C_INT), intent(in) :: farg1 +type(C_PTR) :: fresult +end function + +function swigc_FMRIStepCoupling_LoadTableByName(farg1) & +bind(C, name="_wrap_FMRIStepCoupling_LoadTableByName") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +import :: swigarraywrapper +type(SwigArrayWrapper) :: farg1 +type(C_PTR) :: fresult +end function + +function swigc_FMRIStepCoupling_Alloc(farg1, farg2, farg3) & +bind(C, name="_wrap_FMRIStepCoupling_Alloc") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +integer(C_INT), intent(in) :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT), intent(in) :: farg3 +type(C_PTR) :: fresult +end function + +function swigc_FMRIStepCoupling_Create(farg1, farg2, farg3, farg4, farg5, farg6, farg7) & +bind(C, name="_wrap_FMRIStepCoupling_Create") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +integer(C_INT), intent(in) :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT), intent(in) :: farg3 +integer(C_INT), intent(in) :: farg4 +type(C_PTR), value :: farg5 +type(C_PTR), value :: farg6 +type(C_PTR), value :: farg7 +type(C_PTR) :: fresult +end function + +function swigc_FMRIStepCoupling_MIStoMRI(farg1, farg2, farg3) & +bind(C, name="_wrap_FMRIStepCoupling_MIStoMRI") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT), intent(in) :: farg3 +type(C_PTR) :: fresult +end function + +function swigc_FMRIStepCoupling_Copy(farg1) & +bind(C, name="_wrap_FMRIStepCoupling_Copy") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR) :: fresult +end function + +subroutine swigc_FMRIStepCoupling_Space(farg1, farg2, farg3) & +bind(C, name="_wrap_FMRIStepCoupling_Space") +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +end subroutine + +subroutine swigc_FMRIStepCoupling_Free(farg1) & +bind(C, name="_wrap_FMRIStepCoupling_Free") +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +end subroutine + +subroutine swigc_FMRIStepCoupling_Write(farg1, farg2) & +bind(C, name="_wrap_FMRIStepCoupling_Write") +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +end subroutine + +function swigc_FMRIStepCreate(farg1, farg2, farg3, farg4, farg5, farg6) & +bind(C, name="_wrap_FMRIStepCreate") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_FUNPTR), value :: farg1 +type(C_FUNPTR), value :: farg2 +real(C_DOUBLE), intent(in) :: farg3 +type(C_PTR), value :: farg4 +type(C_PTR), value :: farg5 +type(C_PTR), value :: farg6 +type(C_PTR) :: fresult +end function + +function swigc_FMRIStepReInit(farg1, farg2, farg3, farg4, farg5) & +bind(C, name="_wrap_FMRIStepReInit") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_FUNPTR), value :: farg2 +type(C_FUNPTR), value :: farg3 +real(C_DOUBLE), intent(in) :: farg4 +type(C_PTR), value :: farg5 +integer(C_INT) :: fresult +end function + +function swigc_FMRIStepSetCoupling(farg1, farg2) & +bind(C, name="_wrap_FMRIStepSetCoupling") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FMRIStepSetPreInnerFn(farg1, farg2) & +bind(C, name="_wrap_FMRIStepSetPreInnerFn") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_FUNPTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FMRIStepSetPostInnerFn(farg1, farg2) & +bind(C, name="_wrap_FMRIStepSetPostInnerFn") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_FUNPTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FMRIStepGetNumRhsEvals(farg1, farg2, farg3) & +bind(C, name="_wrap_FMRIStepGetNumRhsEvals") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FMRIStepGetCurrentCoupling(farg1, farg2) & +bind(C, name="_wrap_FMRIStepGetCurrentCoupling") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FMRIStepGetLastInnerStepFlag(farg1, farg2) & +bind(C, name="_wrap_FMRIStepGetLastInnerStepFlag") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FMRIStepInnerStepper_Create(farg1, farg2) & +bind(C, name="_wrap_FMRIStepInnerStepper_Create") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FMRIStepInnerStepper_Free(farg1) & +bind(C, name="_wrap_FMRIStepInnerStepper_Free") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT) :: fresult +end function + +function swigc_FMRIStepInnerStepper_SetContent(farg1, farg2) & +bind(C, name="_wrap_FMRIStepInnerStepper_SetContent") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FMRIStepInnerStepper_GetContent(farg1, farg2) & +bind(C, name="_wrap_FMRIStepInnerStepper_GetContent") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FMRIStepInnerStepper_SetEvolveFn(farg1, farg2) & +bind(C, name="_wrap_FMRIStepInnerStepper_SetEvolveFn") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_FUNPTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FMRIStepInnerStepper_SetFullRhsFn(farg1, farg2) & +bind(C, name="_wrap_FMRIStepInnerStepper_SetFullRhsFn") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_FUNPTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FMRIStepInnerStepper_SetResetFn(farg1, farg2) & +bind(C, name="_wrap_FMRIStepInnerStepper_SetResetFn") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_FUNPTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FMRIStepInnerStepper_AddForcing(farg1, farg2, farg3) & +bind(C, name="_wrap_FMRIStepInnerStepper_AddForcing") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FMRIStepInnerStepper_GetForcingData(farg1, farg2, farg3, farg4, farg5) & +bind(C, name="_wrap_FMRIStepInnerStepper_GetForcingData") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +type(C_PTR), value :: farg4 +type(C_PTR), value :: farg5 +integer(C_INT) :: fresult +end function + +function swigc_FMRIStepResize(farg1, farg2, farg3, farg4, farg5) & +bind(C, name="_wrap_FMRIStepResize") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +real(C_DOUBLE), intent(in) :: farg3 +type(C_FUNPTR), value :: farg4 +type(C_PTR), value :: farg5 +integer(C_INT) :: fresult +end function + +function swigc_FMRIStepReset(farg1, farg2, farg3) & +bind(C, name="_wrap_FMRIStepReset") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FMRIStepSStolerances(farg1, farg2, farg3) & +bind(C, name="_wrap_FMRIStepSStolerances") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +real(C_DOUBLE), intent(in) :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FMRIStepSVtolerances(farg1, farg2, farg3) & +bind(C, name="_wrap_FMRIStepSVtolerances") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FMRIStepWFtolerances(farg1, farg2) & +bind(C, name="_wrap_FMRIStepWFtolerances") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_FUNPTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FMRIStepSetLinearSolver(farg1, farg2, farg3) & +bind(C, name="_wrap_FMRIStepSetLinearSolver") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FMRIStepRootInit(farg1, farg2, farg3) & +bind(C, name="_wrap_FMRIStepRootInit") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +type(C_FUNPTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FMRIStepSetDefaults(farg1) & +bind(C, name="_wrap_FMRIStepSetDefaults") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT) :: fresult +end function + +function swigc_FMRIStepSetOrder(farg1, farg2) & +bind(C, name="_wrap_FMRIStepSetOrder") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FMRIStepSetInterpolantType(farg1, farg2) & +bind(C, name="_wrap_FMRIStepSetInterpolantType") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FMRIStepSetInterpolantDegree(farg1, farg2) & +bind(C, name="_wrap_FMRIStepSetInterpolantDegree") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FMRIStepSetDenseOrder(farg1, farg2) & +bind(C, name="_wrap_FMRIStepSetDenseOrder") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FMRIStepSetNonlinearSolver(farg1, farg2) & +bind(C, name="_wrap_FMRIStepSetNonlinearSolver") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FMRIStepSetNlsRhsFn(farg1, farg2) & +bind(C, name="_wrap_FMRIStepSetNlsRhsFn") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_FUNPTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FMRIStepSetLinear(farg1, farg2) & +bind(C, name="_wrap_FMRIStepSetLinear") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FMRIStepSetNonlinear(farg1) & +bind(C, name="_wrap_FMRIStepSetNonlinear") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT) :: fresult +end function + +function swigc_FMRIStepSetMaxNumSteps(farg1, farg2) & +bind(C, name="_wrap_FMRIStepSetMaxNumSteps") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_LONG), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FMRIStepSetNonlinCRDown(farg1, farg2) & +bind(C, name="_wrap_FMRIStepSetNonlinCRDown") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FMRIStepSetNonlinRDiv(farg1, farg2) & +bind(C, name="_wrap_FMRIStepSetNonlinRDiv") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FMRIStepSetDeltaGammaMax(farg1, farg2) & +bind(C, name="_wrap_FMRIStepSetDeltaGammaMax") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FMRIStepSetLSetupFrequency(farg1, farg2) & +bind(C, name="_wrap_FMRIStepSetLSetupFrequency") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FMRIStepSetPredictorMethod(farg1, farg2) & +bind(C, name="_wrap_FMRIStepSetPredictorMethod") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FMRIStepSetMaxNonlinIters(farg1, farg2) & +bind(C, name="_wrap_FMRIStepSetMaxNonlinIters") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FMRIStepSetNonlinConvCoef(farg1, farg2) & +bind(C, name="_wrap_FMRIStepSetNonlinConvCoef") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FMRIStepSetMaxHnilWarns(farg1, farg2) & +bind(C, name="_wrap_FMRIStepSetMaxHnilWarns") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FMRIStepSetInterpolateStopTime(farg1, farg2) & +bind(C, name="_wrap_FMRIStepSetInterpolateStopTime") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FMRIStepSetStopTime(farg1, farg2) & +bind(C, name="_wrap_FMRIStepSetStopTime") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FMRIStepClearStopTime(farg1) & +bind(C, name="_wrap_FMRIStepClearStopTime") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT) :: fresult +end function + +function swigc_FMRIStepSetFixedStep(farg1, farg2) & +bind(C, name="_wrap_FMRIStepSetFixedStep") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FMRIStepSetRootDirection(farg1, farg2) & +bind(C, name="_wrap_FMRIStepSetRootDirection") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FMRIStepSetNoInactiveRootWarn(farg1) & +bind(C, name="_wrap_FMRIStepSetNoInactiveRootWarn") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT) :: fresult +end function + +function swigc_FMRIStepSetUserData(farg1, farg2) & +bind(C, name="_wrap_FMRIStepSetUserData") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FMRIStepSetPostprocessStepFn(farg1, farg2) & +bind(C, name="_wrap_FMRIStepSetPostprocessStepFn") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_FUNPTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FMRIStepSetPostprocessStageFn(farg1, farg2) & +bind(C, name="_wrap_FMRIStepSetPostprocessStageFn") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_FUNPTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FMRIStepSetStagePredictFn(farg1, farg2) & +bind(C, name="_wrap_FMRIStepSetStagePredictFn") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_FUNPTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FMRIStepSetDeduceImplicitRhs(farg1, farg2) & +bind(C, name="_wrap_FMRIStepSetDeduceImplicitRhs") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FMRIStepSetJacFn(farg1, farg2) & +bind(C, name="_wrap_FMRIStepSetJacFn") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_FUNPTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FMRIStepSetJacEvalFrequency(farg1, farg2) & +bind(C, name="_wrap_FMRIStepSetJacEvalFrequency") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_LONG), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FMRIStepSetLinearSolutionScaling(farg1, farg2) & +bind(C, name="_wrap_FMRIStepSetLinearSolutionScaling") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FMRIStepSetEpsLin(farg1, farg2) & +bind(C, name="_wrap_FMRIStepSetEpsLin") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FMRIStepSetLSNormFactor(farg1, farg2) & +bind(C, name="_wrap_FMRIStepSetLSNormFactor") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FMRIStepSetPreconditioner(farg1, farg2, farg3) & +bind(C, name="_wrap_FMRIStepSetPreconditioner") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_FUNPTR), value :: farg2 +type(C_FUNPTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FMRIStepSetJacTimes(farg1, farg2, farg3) & +bind(C, name="_wrap_FMRIStepSetJacTimes") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_FUNPTR), value :: farg2 +type(C_FUNPTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FMRIStepSetJacTimesRhsFn(farg1, farg2) & +bind(C, name="_wrap_FMRIStepSetJacTimesRhsFn") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_FUNPTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FMRIStepSetLinSysFn(farg1, farg2) & +bind(C, name="_wrap_FMRIStepSetLinSysFn") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_FUNPTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FMRIStepEvolve(farg1, farg2, farg3, farg4, farg5) & +bind(C, name="_wrap_FMRIStepEvolve") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +type(C_PTR), value :: farg3 +type(C_PTR), value :: farg4 +integer(C_INT), intent(in) :: farg5 +integer(C_INT) :: fresult +end function + +function swigc_FMRIStepGetDky(farg1, farg2, farg3, farg4) & +bind(C, name="_wrap_FMRIStepGetDky") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT), intent(in) :: farg3 +type(C_PTR), value :: farg4 +integer(C_INT) :: fresult +end function + +function swigc_FMRIStepComputeState(farg1, farg2, farg3) & +bind(C, name="_wrap_FMRIStepComputeState") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FMRIStepGetNumLinSolvSetups(farg1, farg2) & +bind(C, name="_wrap_FMRIStepGetNumLinSolvSetups") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FMRIStepGetWorkSpace(farg1, farg2, farg3) & +bind(C, name="_wrap_FMRIStepGetWorkSpace") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FMRIStepGetNumSteps(farg1, farg2) & +bind(C, name="_wrap_FMRIStepGetNumSteps") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FMRIStepGetLastStep(farg1, farg2) & +bind(C, name="_wrap_FMRIStepGetLastStep") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FMRIStepGetCurrentTime(farg1, farg2) & +bind(C, name="_wrap_FMRIStepGetCurrentTime") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FMRIStepGetCurrentState(farg1, farg2) & +bind(C, name="_wrap_FMRIStepGetCurrentState") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FMRIStepGetCurrentGamma(farg1, farg2) & +bind(C, name="_wrap_FMRIStepGetCurrentGamma") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FMRIStepGetTolScaleFactor(farg1, farg2) & +bind(C, name="_wrap_FMRIStepGetTolScaleFactor") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FMRIStepGetErrWeights(farg1, farg2) & +bind(C, name="_wrap_FMRIStepGetErrWeights") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FMRIStepGetNumGEvals(farg1, farg2) & +bind(C, name="_wrap_FMRIStepGetNumGEvals") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FMRIStepGetRootInfo(farg1, farg2) & +bind(C, name="_wrap_FMRIStepGetRootInfo") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FMRIStepGetUserData(farg1, farg2) & +bind(C, name="_wrap_FMRIStepGetUserData") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FMRIStepPrintAllStats(farg1, farg2, farg3) & +bind(C, name="_wrap_FMRIStepPrintAllStats") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT), intent(in) :: farg3 +integer(C_INT) :: fresult +end function + + subroutine SWIG_free(cptr) & + bind(C, name="free") + use, intrinsic :: ISO_C_BINDING + type(C_PTR), value :: cptr +end subroutine +function swigc_FMRIStepGetReturnFlagName(farg1) & +bind(C, name="_wrap_FMRIStepGetReturnFlagName") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +import :: swigarraywrapper +integer(C_LONG), intent(in) :: farg1 +type(SwigArrayWrapper) :: fresult +end function + +function swigc_FMRIStepWriteParameters(farg1, farg2) & +bind(C, name="_wrap_FMRIStepWriteParameters") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FMRIStepWriteCoupling(farg1, farg2) & +bind(C, name="_wrap_FMRIStepWriteCoupling") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FMRIStepGetNonlinearSystemData(farg1, farg2, farg3, farg4, farg5, farg6, farg7, farg8) & +bind(C, name="_wrap_FMRIStepGetNonlinearSystemData") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +type(C_PTR), value :: farg4 +type(C_PTR), value :: farg5 +type(C_PTR), value :: farg6 +type(C_PTR), value :: farg7 +type(C_PTR), value :: farg8 +integer(C_INT) :: fresult +end function + +function swigc_FMRIStepGetNumNonlinSolvIters(farg1, farg2) & +bind(C, name="_wrap_FMRIStepGetNumNonlinSolvIters") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FMRIStepGetNumNonlinSolvConvFails(farg1, farg2) & +bind(C, name="_wrap_FMRIStepGetNumNonlinSolvConvFails") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FMRIStepGetNonlinSolvStats(farg1, farg2, farg3) & +bind(C, name="_wrap_FMRIStepGetNonlinSolvStats") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FMRIStepGetNumStepSolveFails(farg1, farg2) & +bind(C, name="_wrap_FMRIStepGetNumStepSolveFails") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FMRIStepGetJac(farg1, farg2) & +bind(C, name="_wrap_FMRIStepGetJac") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FMRIStepGetJacTime(farg1, farg2) & +bind(C, name="_wrap_FMRIStepGetJacTime") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FMRIStepGetJacNumSteps(farg1, farg2) & +bind(C, name="_wrap_FMRIStepGetJacNumSteps") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FMRIStepGetLinWorkSpace(farg1, farg2, farg3) & +bind(C, name="_wrap_FMRIStepGetLinWorkSpace") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FMRIStepGetNumJacEvals(farg1, farg2) & +bind(C, name="_wrap_FMRIStepGetNumJacEvals") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FMRIStepGetNumPrecEvals(farg1, farg2) & +bind(C, name="_wrap_FMRIStepGetNumPrecEvals") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FMRIStepGetNumPrecSolves(farg1, farg2) & +bind(C, name="_wrap_FMRIStepGetNumPrecSolves") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FMRIStepGetNumLinIters(farg1, farg2) & +bind(C, name="_wrap_FMRIStepGetNumLinIters") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FMRIStepGetNumLinConvFails(farg1, farg2) & +bind(C, name="_wrap_FMRIStepGetNumLinConvFails") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FMRIStepGetNumJTSetupEvals(farg1, farg2) & +bind(C, name="_wrap_FMRIStepGetNumJTSetupEvals") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FMRIStepGetNumJtimesEvals(farg1, farg2) & +bind(C, name="_wrap_FMRIStepGetNumJtimesEvals") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FMRIStepGetNumLinRhsEvals(farg1, farg2) & +bind(C, name="_wrap_FMRIStepGetNumLinRhsEvals") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FMRIStepGetLastLinFlag(farg1, farg2) & +bind(C, name="_wrap_FMRIStepGetLastLinFlag") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FMRIStepGetLinReturnFlagName(farg1) & +bind(C, name="_wrap_FMRIStepGetLinReturnFlagName") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +import :: swigarraywrapper +integer(C_LONG), intent(in) :: farg1 +type(SwigArrayWrapper) :: fresult +end function + +subroutine swigc_FMRIStepFree(farg1) & +bind(C, name="_wrap_FMRIStepFree") +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +end subroutine + +subroutine swigc_FMRIStepPrintMem(farg1, farg2) & +bind(C, name="_wrap_FMRIStepPrintMem") +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +end subroutine + +end interface + + +contains + ! MODULE SUBPROGRAMS +subroutine swigf_MRIStepCouplingMem_nmat_set(self, nmat) +use, intrinsic :: ISO_C_BINDING +class(MRIStepCouplingMem), intent(in) :: self +integer(C_INT), intent(in) :: nmat +type(SwigClassWrapper) :: farg1 +integer(C_INT) :: farg2 + +farg1 = self%swigdata +farg2 = nmat +call swigc_MRIStepCouplingMem_nmat_set(farg1, farg2) +end subroutine + +function swigf_MRIStepCouplingMem_nmat_get(self) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +class(MRIStepCouplingMem), intent(in) :: self +integer(C_INT) :: fresult +type(SwigClassWrapper) :: farg1 + +farg1 = self%swigdata +fresult = swigc_MRIStepCouplingMem_nmat_get(farg1) +swig_result = fresult +end function + +subroutine swigf_MRIStepCouplingMem_stages_set(self, stages) +use, intrinsic :: ISO_C_BINDING +class(MRIStepCouplingMem), intent(in) :: self +integer(C_INT), intent(in) :: stages +type(SwigClassWrapper) :: farg1 +integer(C_INT) :: farg2 + +farg1 = self%swigdata +farg2 = stages +call swigc_MRIStepCouplingMem_stages_set(farg1, farg2) +end subroutine + +function swigf_MRIStepCouplingMem_stages_get(self) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +class(MRIStepCouplingMem), intent(in) :: self +integer(C_INT) :: fresult +type(SwigClassWrapper) :: farg1 + +farg1 = self%swigdata +fresult = swigc_MRIStepCouplingMem_stages_get(farg1) +swig_result = fresult +end function + +subroutine swigf_MRIStepCouplingMem_q_set(self, q) +use, intrinsic :: ISO_C_BINDING +class(MRIStepCouplingMem), intent(in) :: self +integer(C_INT), intent(in) :: q +type(SwigClassWrapper) :: farg1 +integer(C_INT) :: farg2 + +farg1 = self%swigdata +farg2 = q +call swigc_MRIStepCouplingMem_q_set(farg1, farg2) +end subroutine + +function swigf_MRIStepCouplingMem_q_get(self) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +class(MRIStepCouplingMem), intent(in) :: self +integer(C_INT) :: fresult +type(SwigClassWrapper) :: farg1 + +farg1 = self%swigdata +fresult = swigc_MRIStepCouplingMem_q_get(farg1) +swig_result = fresult +end function + +subroutine swigf_MRIStepCouplingMem_p_set(self, p) +use, intrinsic :: ISO_C_BINDING +class(MRIStepCouplingMem), intent(in) :: self +integer(C_INT), intent(in) :: p +type(SwigClassWrapper) :: farg1 +integer(C_INT) :: farg2 + +farg1 = self%swigdata +farg2 = p +call swigc_MRIStepCouplingMem_p_set(farg1, farg2) +end subroutine + +function swigf_MRIStepCouplingMem_p_get(self) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +class(MRIStepCouplingMem), intent(in) :: self +integer(C_INT) :: fresult +type(SwigClassWrapper) :: farg1 + +farg1 = self%swigdata +fresult = swigc_MRIStepCouplingMem_p_get(farg1) +swig_result = fresult +end function + +subroutine swigf_MRIStepCouplingMem_c_set(self, c) +use, intrinsic :: ISO_C_BINDING +class(MRIStepCouplingMem), intent(in) :: self +real(C_DOUBLE), dimension(*), target, intent(inout) :: c +type(SwigClassWrapper) :: farg1 +type(C_PTR) :: farg2 + +farg1 = self%swigdata +farg2 = c_loc(c(1)) +call swigc_MRIStepCouplingMem_c_set(farg1, farg2) +end subroutine + +function swigf_MRIStepCouplingMem_c_get(self) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE), dimension(:), pointer :: swig_result +class(MRIStepCouplingMem), intent(in) :: self +type(C_PTR) :: fresult +type(SwigClassWrapper) :: farg1 + +farg1 = self%swigdata +fresult = swigc_MRIStepCouplingMem_c_get(farg1) +call c_f_pointer(fresult, swig_result, [1]) +end function + +subroutine swigf_MRIStepCouplingMem_W_set(self, w) +use, intrinsic :: ISO_C_BINDING +class(MRIStepCouplingMem), intent(in) :: self +type(C_PTR), target, intent(inout) :: w +type(SwigClassWrapper) :: farg1 +type(C_PTR) :: farg2 + +farg1 = self%swigdata +farg2 = c_loc(w) +call swigc_MRIStepCouplingMem_W_set(farg1, farg2) +end subroutine + +function swigf_MRIStepCouplingMem_W_get(self) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), pointer :: swig_result +class(MRIStepCouplingMem), intent(in) :: self +type(C_PTR) :: fresult +type(SwigClassWrapper) :: farg1 + +farg1 = self%swigdata +fresult = swigc_MRIStepCouplingMem_W_get(farg1) +call c_f_pointer(fresult, swig_result) +end function + +subroutine swigf_MRIStepCouplingMem_G_set(self, g) +use, intrinsic :: ISO_C_BINDING +class(MRIStepCouplingMem), intent(in) :: self +type(C_PTR), target, intent(inout) :: g +type(SwigClassWrapper) :: farg1 +type(C_PTR) :: farg2 + +farg1 = self%swigdata +farg2 = c_loc(g) +call swigc_MRIStepCouplingMem_G_set(farg1, farg2) +end subroutine + +function swigf_MRIStepCouplingMem_G_get(self) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), pointer :: swig_result +class(MRIStepCouplingMem), intent(in) :: self +type(C_PTR) :: fresult +type(SwigClassWrapper) :: farg1 + +farg1 = self%swigdata +fresult = swigc_MRIStepCouplingMem_G_get(farg1) +call c_f_pointer(fresult, swig_result) +end function + +function swigf_create_MRIStepCouplingMem() & +result(self) +use, intrinsic :: ISO_C_BINDING +type(MRIStepCouplingMem) :: self +type(SwigClassWrapper) :: fresult + +fresult = swigc_new_MRIStepCouplingMem() +self%swigdata = fresult +end function + +subroutine swigf_release_MRIStepCouplingMem(self) +use, intrinsic :: ISO_C_BINDING +class(MRIStepCouplingMem), intent(inout) :: self +type(SwigClassWrapper) :: farg1 + +farg1 = self%swigdata +if (btest(farg1%cmemflags, swig_cmem_own_bit)) then +call swigc_delete_MRIStepCouplingMem(farg1) +endif +farg1%cptr = C_NULL_PTR +farg1%cmemflags = 0 +self%swigdata = farg1 +end subroutine + +subroutine swigf_MRIStepCouplingMem_op_assign__(self, other) +use, intrinsic :: ISO_C_BINDING +class(MRIStepCouplingMem), intent(inout) :: self +type(MRIStepCouplingMem), intent(in) :: other +type(SwigClassWrapper) :: farg1 +type(SwigClassWrapper) :: farg2 + +farg1 = self%swigdata +farg2 = other%swigdata +call swigc_MRIStepCouplingMem_op_assign__(farg1, farg2) +self%swigdata = farg1 +end subroutine + +function FMRIStepCoupling_LoadTable(method) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +type(C_PTR) :: swig_result +integer(ARKODE_MRITableID), intent(in) :: method +type(C_PTR) :: fresult +integer(C_INT) :: farg1 + +farg1 = method +fresult = swigc_FMRIStepCoupling_LoadTable(farg1) +swig_result = fresult +end function + + +subroutine SWIG_string_to_chararray(string, chars, wrap) + use, intrinsic :: ISO_C_BINDING + character(kind=C_CHAR, len=*), intent(IN) :: string + character(kind=C_CHAR), dimension(:), target, allocatable, intent(OUT) :: chars + type(SwigArrayWrapper), intent(OUT) :: wrap + integer :: i + + allocate(character(kind=C_CHAR) :: chars(len(string) + 1)) + do i=1,len(string) + chars(i) = string(i:i) + end do + i = len(string) + 1 + chars(i) = C_NULL_CHAR ! C string compatibility + wrap%data = c_loc(chars) + wrap%size = len(string) +end subroutine + +function FMRIStepCoupling_LoadTableByName(method) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +type(C_PTR) :: swig_result +character(kind=C_CHAR, len=*), target :: method +character(kind=C_CHAR), dimension(:), allocatable, target :: farg1_chars +type(C_PTR) :: fresult +type(SwigArrayWrapper) :: farg1 + +call SWIG_string_to_chararray(method, farg1_chars, farg1) +fresult = swigc_FMRIStepCoupling_LoadTableByName(farg1) +swig_result = fresult +end function + +function FMRIStepCoupling_Alloc(nmat, stages, type) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +type(C_PTR) :: swig_result +integer(C_INT), intent(in) :: nmat +integer(C_INT), intent(in) :: stages +integer(MRISTEP_METHOD_TYPE), intent(in) :: type +type(C_PTR) :: fresult +integer(C_INT) :: farg1 +integer(C_INT) :: farg2 +integer(C_INT) :: farg3 + +farg1 = nmat +farg2 = stages +farg3 = type +fresult = swigc_FMRIStepCoupling_Alloc(farg1, farg2, farg3) +swig_result = fresult +end function + +function FMRIStepCoupling_Create(nmat, stages, q, p, w, g, c) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +type(C_PTR) :: swig_result +integer(C_INT), intent(in) :: nmat +integer(C_INT), intent(in) :: stages +integer(C_INT), intent(in) :: q +integer(C_INT), intent(in) :: p +real(C_DOUBLE), dimension(*), target, intent(inout) :: w +real(C_DOUBLE), dimension(*), target, intent(inout) :: g +real(C_DOUBLE), dimension(*), target, intent(inout) :: c +type(C_PTR) :: fresult +integer(C_INT) :: farg1 +integer(C_INT) :: farg2 +integer(C_INT) :: farg3 +integer(C_INT) :: farg4 +type(C_PTR) :: farg5 +type(C_PTR) :: farg6 +type(C_PTR) :: farg7 + +farg1 = nmat +farg2 = stages +farg3 = q +farg4 = p +farg5 = c_loc(w(1)) +farg6 = c_loc(g(1)) +farg7 = c_loc(c(1)) +fresult = swigc_FMRIStepCoupling_Create(farg1, farg2, farg3, farg4, farg5, farg6, farg7) +swig_result = fresult +end function + +function FMRIStepCoupling_MIStoMRI(b, q, p) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +type(C_PTR) :: swig_result +type(C_PTR) :: b +integer(C_INT), intent(in) :: q +integer(C_INT), intent(in) :: p +type(C_PTR) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 +integer(C_INT) :: farg3 + +farg1 = b +farg2 = q +farg3 = p +fresult = swigc_FMRIStepCoupling_MIStoMRI(farg1, farg2, farg3) +swig_result = fresult +end function + +function FMRIStepCoupling_Copy(mric) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +type(C_PTR) :: swig_result +type(C_PTR) :: mric +type(C_PTR) :: fresult +type(C_PTR) :: farg1 + +farg1 = mric +fresult = swigc_FMRIStepCoupling_Copy(farg1) +swig_result = fresult +end function + +subroutine FMRIStepCoupling_Space(mric, liw, lrw) +use, intrinsic :: ISO_C_BINDING +type(C_PTR) :: mric +integer(C_INT32_T), dimension(*), target, intent(inout) :: liw +integer(C_INT32_T), dimension(*), target, intent(inout) :: lrw +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = mric +farg2 = c_loc(liw(1)) +farg3 = c_loc(lrw(1)) +call swigc_FMRIStepCoupling_Space(farg1, farg2, farg3) +end subroutine + +subroutine FMRIStepCoupling_Free(mric) +use, intrinsic :: ISO_C_BINDING +type(C_PTR) :: mric +type(C_PTR) :: farg1 + +farg1 = mric +call swigc_FMRIStepCoupling_Free(farg1) +end subroutine + +subroutine FMRIStepCoupling_Write(mric, outfile) +use, intrinsic :: ISO_C_BINDING +type(C_PTR) :: mric +type(C_PTR) :: outfile +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = mric +farg2 = outfile +call swigc_FMRIStepCoupling_Write(farg1, farg2) +end subroutine + +function FMRIStepCreate(fse, fsi, t0, y0, stepper, sunctx) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +type(C_PTR) :: swig_result +type(C_FUNPTR), intent(in), value :: fse +type(C_FUNPTR), intent(in), value :: fsi +real(C_DOUBLE), intent(in) :: t0 +type(N_Vector), target, intent(inout) :: y0 +type(C_PTR) :: stepper +type(C_PTR) :: sunctx +type(C_PTR) :: fresult +type(C_FUNPTR) :: farg1 +type(C_FUNPTR) :: farg2 +real(C_DOUBLE) :: farg3 +type(C_PTR) :: farg4 +type(C_PTR) :: farg5 +type(C_PTR) :: farg6 + +farg1 = fse +farg2 = fsi +farg3 = t0 +farg4 = c_loc(y0) +farg5 = stepper +farg6 = sunctx +fresult = swigc_FMRIStepCreate(farg1, farg2, farg3, farg4, farg5, farg6) +swig_result = fresult +end function + +function FMRIStepReInit(arkode_mem, fse, fsi, t0, y0) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +type(C_FUNPTR), intent(in), value :: fse +type(C_FUNPTR), intent(in), value :: fsi +real(C_DOUBLE), intent(in) :: t0 +type(N_Vector), target, intent(inout) :: y0 +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_FUNPTR) :: farg2 +type(C_FUNPTR) :: farg3 +real(C_DOUBLE) :: farg4 +type(C_PTR) :: farg5 + +farg1 = arkode_mem +farg2 = fse +farg3 = fsi +farg4 = t0 +farg5 = c_loc(y0) +fresult = swigc_FMRIStepReInit(farg1, farg2, farg3, farg4, farg5) +swig_result = fresult +end function + +function FMRIStepSetCoupling(arkode_mem, mric) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +type(C_PTR) :: mric +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = mric +fresult = swigc_FMRIStepSetCoupling(farg1, farg2) +swig_result = fresult +end function + +function FMRIStepSetPreInnerFn(arkode_mem, prefn) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +type(C_FUNPTR), intent(in), value :: prefn +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_FUNPTR) :: farg2 + +farg1 = arkode_mem +farg2 = prefn +fresult = swigc_FMRIStepSetPreInnerFn(farg1, farg2) +swig_result = fresult +end function + +function FMRIStepSetPostInnerFn(arkode_mem, postfn) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +type(C_FUNPTR), intent(in), value :: postfn +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_FUNPTR) :: farg2 + +farg1 = arkode_mem +farg2 = postfn +fresult = swigc_FMRIStepSetPostInnerFn(farg1, farg2) +swig_result = fresult +end function + +function FMRIStepGetNumRhsEvals(arkode_mem, nfse_evals, nfsi_evals) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: nfse_evals +integer(C_LONG), dimension(*), target, intent(inout) :: nfsi_evals +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = arkode_mem +farg2 = c_loc(nfse_evals(1)) +farg3 = c_loc(nfsi_evals(1)) +fresult = swigc_FMRIStepGetNumRhsEvals(farg1, farg2, farg3) +swig_result = fresult +end function + +function FMRIStepGetCurrentCoupling(arkode_mem, mric) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +type(C_PTR), target, intent(inout) :: mric +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(mric) +fresult = swigc_FMRIStepGetCurrentCoupling(farg1, farg2) +swig_result = fresult +end function + +function FMRIStepGetLastInnerStepFlag(arkode_mem, flag) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_INT), dimension(*), target, intent(inout) :: flag +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(flag(1)) +fresult = swigc_FMRIStepGetLastInnerStepFlag(farg1, farg2) +swig_result = fresult +end function + +function FMRIStepInnerStepper_Create(sunctx, stepper) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: sunctx +type(C_PTR), target, intent(inout) :: stepper +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = sunctx +farg2 = c_loc(stepper) +fresult = swigc_FMRIStepInnerStepper_Create(farg1, farg2) +swig_result = fresult +end function + +function FMRIStepInnerStepper_Free(stepper) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR), target, intent(inout) :: stepper +integer(C_INT) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(stepper) +fresult = swigc_FMRIStepInnerStepper_Free(farg1) +swig_result = fresult +end function + +function FMRIStepInnerStepper_SetContent(stepper, content) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: stepper +type(C_PTR) :: content +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = stepper +farg2 = content +fresult = swigc_FMRIStepInnerStepper_SetContent(farg1, farg2) +swig_result = fresult +end function + +function FMRIStepInnerStepper_GetContent(stepper, content) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: stepper +type(C_PTR), target, intent(inout) :: content +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = stepper +farg2 = c_loc(content) +fresult = swigc_FMRIStepInnerStepper_GetContent(farg1, farg2) +swig_result = fresult +end function + +function FMRIStepInnerStepper_SetEvolveFn(stepper, fn) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: stepper +type(C_FUNPTR), intent(in), value :: fn +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_FUNPTR) :: farg2 + +farg1 = stepper +farg2 = fn +fresult = swigc_FMRIStepInnerStepper_SetEvolveFn(farg1, farg2) +swig_result = fresult +end function + +function FMRIStepInnerStepper_SetFullRhsFn(stepper, fn) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: stepper +type(C_FUNPTR), intent(in), value :: fn +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_FUNPTR) :: farg2 + +farg1 = stepper +farg2 = fn +fresult = swigc_FMRIStepInnerStepper_SetFullRhsFn(farg1, farg2) +swig_result = fresult +end function + +function FMRIStepInnerStepper_SetResetFn(stepper, fn) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: stepper +type(C_FUNPTR), intent(in), value :: fn +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_FUNPTR) :: farg2 + +farg1 = stepper +farg2 = fn +fresult = swigc_FMRIStepInnerStepper_SetResetFn(farg1, farg2) +swig_result = fresult +end function + +function FMRIStepInnerStepper_AddForcing(stepper, t, f) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: stepper +real(C_DOUBLE), intent(in) :: t +type(N_Vector), target, intent(inout) :: f +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 +type(C_PTR) :: farg3 + +farg1 = stepper +farg2 = t +farg3 = c_loc(f) +fresult = swigc_FMRIStepInnerStepper_AddForcing(farg1, farg2, farg3) +swig_result = fresult +end function + +function FMRIStepInnerStepper_GetForcingData(stepper, tshift, tscale, forcing, nforcing) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: stepper +real(C_DOUBLE), dimension(*), target, intent(inout) :: tshift +real(C_DOUBLE), dimension(*), target, intent(inout) :: tscale +type(C_PTR), target, intent(inout) :: forcing +integer(C_INT), dimension(*), target, intent(inout) :: nforcing +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 +type(C_PTR) :: farg4 +type(C_PTR) :: farg5 + +farg1 = stepper +farg2 = c_loc(tshift(1)) +farg3 = c_loc(tscale(1)) +farg4 = c_loc(forcing) +farg5 = c_loc(nforcing(1)) +fresult = swigc_FMRIStepInnerStepper_GetForcingData(farg1, farg2, farg3, farg4, farg5) +swig_result = fresult +end function + +function FMRIStepResize(arkode_mem, ynew, t0, resize, resize_data) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +type(N_Vector), target, intent(inout) :: ynew +real(C_DOUBLE), intent(in) :: t0 +type(C_FUNPTR), intent(in), value :: resize +type(C_PTR) :: resize_data +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +real(C_DOUBLE) :: farg3 +type(C_FUNPTR) :: farg4 +type(C_PTR) :: farg5 + +farg1 = arkode_mem +farg2 = c_loc(ynew) +farg3 = t0 +farg4 = resize +farg5 = resize_data +fresult = swigc_FMRIStepResize(farg1, farg2, farg3, farg4, farg5) +swig_result = fresult +end function + +function FMRIStepReset(arkode_mem, tr, yr) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +real(C_DOUBLE), intent(in) :: tr +type(N_Vector), target, intent(inout) :: yr +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 +type(C_PTR) :: farg3 + +farg1 = arkode_mem +farg2 = tr +farg3 = c_loc(yr) +fresult = swigc_FMRIStepReset(farg1, farg2, farg3) +swig_result = fresult +end function + +function FMRIStepSStolerances(arkode_mem, reltol, abstol) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +real(C_DOUBLE), intent(in) :: reltol +real(C_DOUBLE), intent(in) :: abstol +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 +real(C_DOUBLE) :: farg3 + +farg1 = arkode_mem +farg2 = reltol +farg3 = abstol +fresult = swigc_FMRIStepSStolerances(farg1, farg2, farg3) +swig_result = fresult +end function + +function FMRIStepSVtolerances(arkode_mem, reltol, abstol) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +real(C_DOUBLE), intent(in) :: reltol +type(N_Vector), target, intent(inout) :: abstol +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 +type(C_PTR) :: farg3 + +farg1 = arkode_mem +farg2 = reltol +farg3 = c_loc(abstol) +fresult = swigc_FMRIStepSVtolerances(farg1, farg2, farg3) +swig_result = fresult +end function + +function FMRIStepWFtolerances(arkode_mem, efun) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +type(C_FUNPTR), intent(in), value :: efun +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_FUNPTR) :: farg2 + +farg1 = arkode_mem +farg2 = efun +fresult = swigc_FMRIStepWFtolerances(farg1, farg2) +swig_result = fresult +end function + +function FMRIStepSetLinearSolver(arkode_mem, ls, a) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +type(SUNLinearSolver), target, intent(inout) :: ls +type(SUNMatrix), target, intent(inout) :: a +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = arkode_mem +farg2 = c_loc(ls) +farg3 = c_loc(a) +fresult = swigc_FMRIStepSetLinearSolver(farg1, farg2, farg3) +swig_result = fresult +end function + +function FMRIStepRootInit(arkode_mem, nrtfn, g) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_INT), intent(in) :: nrtfn +type(C_FUNPTR), intent(in), value :: g +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 +type(C_FUNPTR) :: farg3 + +farg1 = arkode_mem +farg2 = nrtfn +farg3 = g +fresult = swigc_FMRIStepRootInit(farg1, farg2, farg3) +swig_result = fresult +end function + +function FMRIStepSetDefaults(arkode_mem) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_INT) :: fresult +type(C_PTR) :: farg1 + +farg1 = arkode_mem +fresult = swigc_FMRIStepSetDefaults(farg1) +swig_result = fresult +end function + +function FMRIStepSetOrder(arkode_mem, ord) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_INT), intent(in) :: ord +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = arkode_mem +farg2 = ord +fresult = swigc_FMRIStepSetOrder(farg1, farg2) +swig_result = fresult +end function + +function FMRIStepSetInterpolantType(arkode_mem, itype) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_INT), intent(in) :: itype +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = arkode_mem +farg2 = itype +fresult = swigc_FMRIStepSetInterpolantType(farg1, farg2) +swig_result = fresult +end function + +function FMRIStepSetInterpolantDegree(arkode_mem, degree) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_INT), intent(in) :: degree +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = arkode_mem +farg2 = degree +fresult = swigc_FMRIStepSetInterpolantDegree(farg1, farg2) +swig_result = fresult +end function + +function FMRIStepSetDenseOrder(arkode_mem, dord) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_INT), intent(in) :: dord +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = arkode_mem +farg2 = dord +fresult = swigc_FMRIStepSetDenseOrder(farg1, farg2) +swig_result = fresult +end function + +function FMRIStepSetNonlinearSolver(arkode_mem, nls) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +type(SUNNonlinearSolver), target, intent(inout) :: nls +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(nls) +fresult = swigc_FMRIStepSetNonlinearSolver(farg1, farg2) +swig_result = fresult +end function + +function FMRIStepSetNlsRhsFn(arkode_mem, nls_fs) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +type(C_FUNPTR), intent(in), value :: nls_fs +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_FUNPTR) :: farg2 + +farg1 = arkode_mem +farg2 = nls_fs +fresult = swigc_FMRIStepSetNlsRhsFn(farg1, farg2) +swig_result = fresult +end function + +function FMRIStepSetLinear(arkode_mem, timedepend) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_INT), intent(in) :: timedepend +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = arkode_mem +farg2 = timedepend +fresult = swigc_FMRIStepSetLinear(farg1, farg2) +swig_result = fresult +end function + +function FMRIStepSetNonlinear(arkode_mem) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_INT) :: fresult +type(C_PTR) :: farg1 + +farg1 = arkode_mem +fresult = swigc_FMRIStepSetNonlinear(farg1) +swig_result = fresult +end function + +function FMRIStepSetMaxNumSteps(arkode_mem, mxsteps) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_LONG), intent(in) :: mxsteps +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_LONG) :: farg2 + +farg1 = arkode_mem +farg2 = mxsteps +fresult = swigc_FMRIStepSetMaxNumSteps(farg1, farg2) +swig_result = fresult +end function + +function FMRIStepSetNonlinCRDown(arkode_mem, crdown) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +real(C_DOUBLE), intent(in) :: crdown +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 + +farg1 = arkode_mem +farg2 = crdown +fresult = swigc_FMRIStepSetNonlinCRDown(farg1, farg2) +swig_result = fresult +end function + +function FMRIStepSetNonlinRDiv(arkode_mem, rdiv) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +real(C_DOUBLE), intent(in) :: rdiv +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 + +farg1 = arkode_mem +farg2 = rdiv +fresult = swigc_FMRIStepSetNonlinRDiv(farg1, farg2) +swig_result = fresult +end function + +function FMRIStepSetDeltaGammaMax(arkode_mem, dgmax) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +real(C_DOUBLE), intent(in) :: dgmax +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 + +farg1 = arkode_mem +farg2 = dgmax +fresult = swigc_FMRIStepSetDeltaGammaMax(farg1, farg2) +swig_result = fresult +end function + +function FMRIStepSetLSetupFrequency(arkode_mem, msbp) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_INT), intent(in) :: msbp +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = arkode_mem +farg2 = msbp +fresult = swigc_FMRIStepSetLSetupFrequency(farg1, farg2) +swig_result = fresult +end function + +function FMRIStepSetPredictorMethod(arkode_mem, method) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_INT), intent(in) :: method +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = arkode_mem +farg2 = method +fresult = swigc_FMRIStepSetPredictorMethod(farg1, farg2) +swig_result = fresult +end function + +function FMRIStepSetMaxNonlinIters(arkode_mem, maxcor) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_INT), intent(in) :: maxcor +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = arkode_mem +farg2 = maxcor +fresult = swigc_FMRIStepSetMaxNonlinIters(farg1, farg2) +swig_result = fresult +end function + +function FMRIStepSetNonlinConvCoef(arkode_mem, nlscoef) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +real(C_DOUBLE), intent(in) :: nlscoef +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 + +farg1 = arkode_mem +farg2 = nlscoef +fresult = swigc_FMRIStepSetNonlinConvCoef(farg1, farg2) +swig_result = fresult +end function + +function FMRIStepSetMaxHnilWarns(arkode_mem, mxhnil) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_INT), intent(in) :: mxhnil +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = arkode_mem +farg2 = mxhnil +fresult = swigc_FMRIStepSetMaxHnilWarns(farg1, farg2) +swig_result = fresult +end function + +function FMRIStepSetInterpolateStopTime(arkode_mem, interp) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_INT), intent(in) :: interp +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = arkode_mem +farg2 = interp +fresult = swigc_FMRIStepSetInterpolateStopTime(farg1, farg2) +swig_result = fresult +end function + +function FMRIStepSetStopTime(arkode_mem, tstop) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +real(C_DOUBLE), intent(in) :: tstop +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 + +farg1 = arkode_mem +farg2 = tstop +fresult = swigc_FMRIStepSetStopTime(farg1, farg2) +swig_result = fresult +end function + +function FMRIStepClearStopTime(arkode_mem) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_INT) :: fresult +type(C_PTR) :: farg1 + +farg1 = arkode_mem +fresult = swigc_FMRIStepClearStopTime(farg1) +swig_result = fresult +end function + +function FMRIStepSetFixedStep(arkode_mem, hsfixed) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +real(C_DOUBLE), intent(in) :: hsfixed +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 + +farg1 = arkode_mem +farg2 = hsfixed +fresult = swigc_FMRIStepSetFixedStep(farg1, farg2) +swig_result = fresult +end function + +function FMRIStepSetRootDirection(arkode_mem, rootdir) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_INT), dimension(*), target, intent(inout) :: rootdir +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(rootdir(1)) +fresult = swigc_FMRIStepSetRootDirection(farg1, farg2) +swig_result = fresult +end function + +function FMRIStepSetNoInactiveRootWarn(arkode_mem) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_INT) :: fresult +type(C_PTR) :: farg1 + +farg1 = arkode_mem +fresult = swigc_FMRIStepSetNoInactiveRootWarn(farg1) +swig_result = fresult +end function + +function FMRIStepSetUserData(arkode_mem, user_data) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +type(C_PTR) :: user_data +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = user_data +fresult = swigc_FMRIStepSetUserData(farg1, farg2) +swig_result = fresult +end function + +function FMRIStepSetPostprocessStepFn(arkode_mem, processstep) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +type(C_FUNPTR), intent(in), value :: processstep +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_FUNPTR) :: farg2 + +farg1 = arkode_mem +farg2 = processstep +fresult = swigc_FMRIStepSetPostprocessStepFn(farg1, farg2) +swig_result = fresult +end function + +function FMRIStepSetPostprocessStageFn(arkode_mem, processstage) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +type(C_FUNPTR), intent(in), value :: processstage +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_FUNPTR) :: farg2 + +farg1 = arkode_mem +farg2 = processstage +fresult = swigc_FMRIStepSetPostprocessStageFn(farg1, farg2) +swig_result = fresult +end function + +function FMRIStepSetStagePredictFn(arkode_mem, predictstage) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +type(C_FUNPTR), intent(in), value :: predictstage +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_FUNPTR) :: farg2 + +farg1 = arkode_mem +farg2 = predictstage +fresult = swigc_FMRIStepSetStagePredictFn(farg1, farg2) +swig_result = fresult +end function + +function FMRIStepSetDeduceImplicitRhs(arkode_mem, deduce) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_INT), intent(in) :: deduce +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = arkode_mem +farg2 = deduce +fresult = swigc_FMRIStepSetDeduceImplicitRhs(farg1, farg2) +swig_result = fresult +end function + +function FMRIStepSetJacFn(arkode_mem, jac) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +type(C_FUNPTR), intent(in), value :: jac +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_FUNPTR) :: farg2 + +farg1 = arkode_mem +farg2 = jac +fresult = swigc_FMRIStepSetJacFn(farg1, farg2) +swig_result = fresult +end function + +function FMRIStepSetJacEvalFrequency(arkode_mem, msbj) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_LONG), intent(in) :: msbj +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_LONG) :: farg2 + +farg1 = arkode_mem +farg2 = msbj +fresult = swigc_FMRIStepSetJacEvalFrequency(farg1, farg2) +swig_result = fresult +end function + +function FMRIStepSetLinearSolutionScaling(arkode_mem, onoff) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_INT), intent(in) :: onoff +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = arkode_mem +farg2 = onoff +fresult = swigc_FMRIStepSetLinearSolutionScaling(farg1, farg2) +swig_result = fresult +end function + +function FMRIStepSetEpsLin(arkode_mem, eplifac) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +real(C_DOUBLE), intent(in) :: eplifac +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 + +farg1 = arkode_mem +farg2 = eplifac +fresult = swigc_FMRIStepSetEpsLin(farg1, farg2) +swig_result = fresult +end function + +function FMRIStepSetLSNormFactor(arkode_mem, nrmfac) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +real(C_DOUBLE), intent(in) :: nrmfac +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 + +farg1 = arkode_mem +farg2 = nrmfac +fresult = swigc_FMRIStepSetLSNormFactor(farg1, farg2) +swig_result = fresult +end function + +function FMRIStepSetPreconditioner(arkode_mem, psetup, psolve) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +type(C_FUNPTR), intent(in), value :: psetup +type(C_FUNPTR), intent(in), value :: psolve +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_FUNPTR) :: farg2 +type(C_FUNPTR) :: farg3 + +farg1 = arkode_mem +farg2 = psetup +farg3 = psolve +fresult = swigc_FMRIStepSetPreconditioner(farg1, farg2, farg3) +swig_result = fresult +end function + +function FMRIStepSetJacTimes(arkode_mem, jtsetup, jtimes) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +type(C_FUNPTR), intent(in), value :: jtsetup +type(C_FUNPTR), intent(in), value :: jtimes +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_FUNPTR) :: farg2 +type(C_FUNPTR) :: farg3 + +farg1 = arkode_mem +farg2 = jtsetup +farg3 = jtimes +fresult = swigc_FMRIStepSetJacTimes(farg1, farg2, farg3) +swig_result = fresult +end function + +function FMRIStepSetJacTimesRhsFn(arkode_mem, jtimesrhsfn) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +type(C_FUNPTR), intent(in), value :: jtimesrhsfn +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_FUNPTR) :: farg2 + +farg1 = arkode_mem +farg2 = jtimesrhsfn +fresult = swigc_FMRIStepSetJacTimesRhsFn(farg1, farg2) +swig_result = fresult +end function + +function FMRIStepSetLinSysFn(arkode_mem, linsys) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +type(C_FUNPTR), intent(in), value :: linsys +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_FUNPTR) :: farg2 + +farg1 = arkode_mem +farg2 = linsys +fresult = swigc_FMRIStepSetLinSysFn(farg1, farg2) +swig_result = fresult +end function + +function FMRIStepEvolve(arkode_mem, tout, yout, tret, itask) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +real(C_DOUBLE), intent(in) :: tout +type(N_Vector), target, intent(inout) :: yout +real(C_DOUBLE), dimension(*), target, intent(inout) :: tret +integer(C_INT), intent(in) :: itask +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 +type(C_PTR) :: farg3 +type(C_PTR) :: farg4 +integer(C_INT) :: farg5 + +farg1 = arkode_mem +farg2 = tout +farg3 = c_loc(yout) +farg4 = c_loc(tret(1)) +farg5 = itask +fresult = swigc_FMRIStepEvolve(farg1, farg2, farg3, farg4, farg5) +swig_result = fresult +end function + +function FMRIStepGetDky(arkode_mem, t, k, dky) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +real(C_DOUBLE), intent(in) :: t +integer(C_INT), intent(in) :: k +type(N_Vector), target, intent(inout) :: dky +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 +integer(C_INT) :: farg3 +type(C_PTR) :: farg4 + +farg1 = arkode_mem +farg2 = t +farg3 = k +farg4 = c_loc(dky) +fresult = swigc_FMRIStepGetDky(farg1, farg2, farg3, farg4) +swig_result = fresult +end function + +function FMRIStepComputeState(arkode_mem, zcor, z) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +type(N_Vector), target, intent(inout) :: zcor +type(N_Vector), target, intent(inout) :: z +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = arkode_mem +farg2 = c_loc(zcor) +farg3 = c_loc(z) +fresult = swigc_FMRIStepComputeState(farg1, farg2, farg3) +swig_result = fresult +end function + +function FMRIStepGetNumLinSolvSetups(arkode_mem, nlinsetups) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: nlinsetups +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(nlinsetups(1)) +fresult = swigc_FMRIStepGetNumLinSolvSetups(farg1, farg2) +swig_result = fresult +end function + +function FMRIStepGetWorkSpace(arkode_mem, lenrw, leniw) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: lenrw +integer(C_LONG), dimension(*), target, intent(inout) :: leniw +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = arkode_mem +farg2 = c_loc(lenrw(1)) +farg3 = c_loc(leniw(1)) +fresult = swigc_FMRIStepGetWorkSpace(farg1, farg2, farg3) +swig_result = fresult +end function + +function FMRIStepGetNumSteps(arkode_mem, nssteps) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: nssteps +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(nssteps(1)) +fresult = swigc_FMRIStepGetNumSteps(farg1, farg2) +swig_result = fresult +end function + +function FMRIStepGetLastStep(arkode_mem, hlast) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +real(C_DOUBLE), dimension(*), target, intent(inout) :: hlast +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(hlast(1)) +fresult = swigc_FMRIStepGetLastStep(farg1, farg2) +swig_result = fresult +end function + +function FMRIStepGetCurrentTime(arkode_mem, tcur) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +real(C_DOUBLE), dimension(*), target, intent(inout) :: tcur +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(tcur(1)) +fresult = swigc_FMRIStepGetCurrentTime(farg1, farg2) +swig_result = fresult +end function + +function FMRIStepGetCurrentState(arkode_mem, state) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +type(C_PTR) :: state +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = state +fresult = swigc_FMRIStepGetCurrentState(farg1, farg2) +swig_result = fresult +end function + +function FMRIStepGetCurrentGamma(arkode_mem, gamma) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +real(C_DOUBLE), dimension(*), target, intent(inout) :: gamma +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(gamma(1)) +fresult = swigc_FMRIStepGetCurrentGamma(farg1, farg2) +swig_result = fresult +end function + +function FMRIStepGetTolScaleFactor(arkode_mem, tolsfac) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +real(C_DOUBLE), dimension(*), target, intent(inout) :: tolsfac +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(tolsfac(1)) +fresult = swigc_FMRIStepGetTolScaleFactor(farg1, farg2) +swig_result = fresult +end function + +function FMRIStepGetErrWeights(arkode_mem, eweight) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +type(N_Vector), target, intent(inout) :: eweight +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(eweight) +fresult = swigc_FMRIStepGetErrWeights(farg1, farg2) +swig_result = fresult +end function + +function FMRIStepGetNumGEvals(arkode_mem, ngevals) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: ngevals +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(ngevals(1)) +fresult = swigc_FMRIStepGetNumGEvals(farg1, farg2) +swig_result = fresult +end function + +function FMRIStepGetRootInfo(arkode_mem, rootsfound) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_INT), dimension(*), target, intent(inout) :: rootsfound +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(rootsfound(1)) +fresult = swigc_FMRIStepGetRootInfo(farg1, farg2) +swig_result = fresult +end function + +function FMRIStepGetUserData(arkode_mem, user_data) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +type(C_PTR), target, intent(inout) :: user_data +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(user_data) +fresult = swigc_FMRIStepGetUserData(farg1, farg2) +swig_result = fresult +end function + +function FMRIStepPrintAllStats(arkode_mem, outfile, fmt) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +type(C_PTR) :: outfile +integer(SUNOutputFormat), intent(in) :: fmt +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +integer(C_INT) :: farg3 + +farg1 = arkode_mem +farg2 = outfile +farg3 = fmt +fresult = swigc_FMRIStepPrintAllStats(farg1, farg2, farg3) +swig_result = fresult +end function + + +subroutine SWIG_chararray_to_string(wrap, string) + use, intrinsic :: ISO_C_BINDING + type(SwigArrayWrapper), intent(IN) :: wrap + character(kind=C_CHAR, len=:), allocatable, intent(OUT) :: string + character(kind=C_CHAR), dimension(:), pointer :: chars + integer(kind=C_SIZE_T) :: i + call c_f_pointer(wrap%data, chars, [wrap%size]) + allocate(character(kind=C_CHAR, len=wrap%size) :: string) + do i=1, wrap%size + string(i:i) = chars(i) + end do +end subroutine + +function FMRIStepGetReturnFlagName(flag) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +character(kind=C_CHAR, len=:), allocatable :: swig_result +integer(C_LONG), intent(in) :: flag +type(SwigArrayWrapper) :: fresult +integer(C_LONG) :: farg1 + +farg1 = flag +fresult = swigc_FMRIStepGetReturnFlagName(farg1) +call SWIG_chararray_to_string(fresult, swig_result) +if (.false.) call SWIG_free(fresult%data) +end function + +function FMRIStepWriteParameters(arkode_mem, fp) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +type(C_PTR) :: fp +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = fp +fresult = swigc_FMRIStepWriteParameters(farg1, farg2) +swig_result = fresult +end function + +function FMRIStepWriteCoupling(arkode_mem, fp) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +type(C_PTR) :: fp +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = fp +fresult = swigc_FMRIStepWriteCoupling(farg1, farg2) +swig_result = fresult +end function + +function FMRIStepGetNonlinearSystemData(arkode_mem, tcur, zpred, z, f, gamma, sdata, user_data) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +real(C_DOUBLE), dimension(*), target, intent(inout) :: tcur +type(C_PTR) :: zpred +type(C_PTR) :: z +type(C_PTR) :: f +real(C_DOUBLE), dimension(*), target, intent(inout) :: gamma +type(C_PTR) :: sdata +type(C_PTR), target, intent(inout) :: user_data +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 +type(C_PTR) :: farg4 +type(C_PTR) :: farg5 +type(C_PTR) :: farg6 +type(C_PTR) :: farg7 +type(C_PTR) :: farg8 + +farg1 = arkode_mem +farg2 = c_loc(tcur(1)) +farg3 = zpred +farg4 = z +farg5 = f +farg6 = c_loc(gamma(1)) +farg7 = sdata +farg8 = c_loc(user_data) +fresult = swigc_FMRIStepGetNonlinearSystemData(farg1, farg2, farg3, farg4, farg5, farg6, farg7, farg8) +swig_result = fresult +end function + +function FMRIStepGetNumNonlinSolvIters(arkode_mem, nniters) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: nniters +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(nniters(1)) +fresult = swigc_FMRIStepGetNumNonlinSolvIters(farg1, farg2) +swig_result = fresult +end function + +function FMRIStepGetNumNonlinSolvConvFails(arkode_mem, nnfails) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: nnfails +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(nnfails(1)) +fresult = swigc_FMRIStepGetNumNonlinSolvConvFails(farg1, farg2) +swig_result = fresult +end function + +function FMRIStepGetNonlinSolvStats(arkode_mem, nniters, nnfails) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: nniters +integer(C_LONG), dimension(*), target, intent(inout) :: nnfails +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = arkode_mem +farg2 = c_loc(nniters(1)) +farg3 = c_loc(nnfails(1)) +fresult = swigc_FMRIStepGetNonlinSolvStats(farg1, farg2, farg3) +swig_result = fresult +end function + +function FMRIStepGetNumStepSolveFails(arkode_mem, nncfails) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: nncfails +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(nncfails(1)) +fresult = swigc_FMRIStepGetNumStepSolveFails(farg1, farg2) +swig_result = fresult +end function + +function FMRIStepGetJac(arkode_mem, j) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +type(C_PTR), target, intent(inout) :: j +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(j) +fresult = swigc_FMRIStepGetJac(farg1, farg2) +swig_result = fresult +end function + +function FMRIStepGetJacTime(arkode_mem, t_j) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +real(C_DOUBLE), dimension(*), target, intent(inout) :: t_j +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(t_j(1)) +fresult = swigc_FMRIStepGetJacTime(farg1, farg2) +swig_result = fresult +end function + +function FMRIStepGetJacNumSteps(arkode_mem, nst_j) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: nst_j +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(nst_j(1)) +fresult = swigc_FMRIStepGetJacNumSteps(farg1, farg2) +swig_result = fresult +end function + +function FMRIStepGetLinWorkSpace(arkode_mem, lenrwls, leniwls) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: lenrwls +integer(C_LONG), dimension(*), target, intent(inout) :: leniwls +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = arkode_mem +farg2 = c_loc(lenrwls(1)) +farg3 = c_loc(leniwls(1)) +fresult = swigc_FMRIStepGetLinWorkSpace(farg1, farg2, farg3) +swig_result = fresult +end function + +function FMRIStepGetNumJacEvals(arkode_mem, njevals) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: njevals +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(njevals(1)) +fresult = swigc_FMRIStepGetNumJacEvals(farg1, farg2) +swig_result = fresult +end function + +function FMRIStepGetNumPrecEvals(arkode_mem, npevals) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: npevals +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(npevals(1)) +fresult = swigc_FMRIStepGetNumPrecEvals(farg1, farg2) +swig_result = fresult +end function + +function FMRIStepGetNumPrecSolves(arkode_mem, npsolves) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: npsolves +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(npsolves(1)) +fresult = swigc_FMRIStepGetNumPrecSolves(farg1, farg2) +swig_result = fresult +end function + +function FMRIStepGetNumLinIters(arkode_mem, nliters) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: nliters +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(nliters(1)) +fresult = swigc_FMRIStepGetNumLinIters(farg1, farg2) +swig_result = fresult +end function + +function FMRIStepGetNumLinConvFails(arkode_mem, nlcfails) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: nlcfails +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(nlcfails(1)) +fresult = swigc_FMRIStepGetNumLinConvFails(farg1, farg2) +swig_result = fresult +end function + +function FMRIStepGetNumJTSetupEvals(arkode_mem, njtsetups) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: njtsetups +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(njtsetups(1)) +fresult = swigc_FMRIStepGetNumJTSetupEvals(farg1, farg2) +swig_result = fresult +end function + +function FMRIStepGetNumJtimesEvals(arkode_mem, njvevals) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: njvevals +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(njvevals(1)) +fresult = swigc_FMRIStepGetNumJtimesEvals(farg1, farg2) +swig_result = fresult +end function + +function FMRIStepGetNumLinRhsEvals(arkode_mem, nfevalsls) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: nfevalsls +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(nfevalsls(1)) +fresult = swigc_FMRIStepGetNumLinRhsEvals(farg1, farg2) +swig_result = fresult +end function + +function FMRIStepGetLastLinFlag(arkode_mem, flag) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: flag +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(flag(1)) +fresult = swigc_FMRIStepGetLastLinFlag(farg1, farg2) +swig_result = fresult +end function + +function FMRIStepGetLinReturnFlagName(flag) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +character(kind=C_CHAR, len=:), allocatable :: swig_result +integer(C_LONG), intent(in) :: flag +type(SwigArrayWrapper) :: fresult +integer(C_LONG) :: farg1 + +farg1 = flag +fresult = swigc_FMRIStepGetLinReturnFlagName(farg1) +call SWIG_chararray_to_string(fresult, swig_result) +if (.false.) call SWIG_free(fresult%data) +end function + +subroutine FMRIStepFree(arkode_mem) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), target, intent(inout) :: arkode_mem +type(C_PTR) :: farg1 + +farg1 = c_loc(arkode_mem) +call swigc_FMRIStepFree(farg1) +end subroutine + +subroutine FMRIStepPrintMem(arkode_mem, outfile) +use, intrinsic :: ISO_C_BINDING +type(C_PTR) :: arkode_mem +type(C_PTR) :: outfile +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = outfile +call swigc_FMRIStepPrintMem(farg1, farg2) +end subroutine + + +end module diff --git a/src/arkode/fmod/farkode_sprkstep_mod.c b/src/arkode/fmod_int32/farkode_sprkstep_mod.c similarity index 100% rename from src/arkode/fmod/farkode_sprkstep_mod.c rename to src/arkode/fmod_int32/farkode_sprkstep_mod.c diff --git a/src/arkode/fmod/farkode_sprkstep_mod.f90 b/src/arkode/fmod_int32/farkode_sprkstep_mod.f90 similarity index 100% rename from src/arkode/fmod/farkode_sprkstep_mod.f90 rename to src/arkode/fmod_int32/farkode_sprkstep_mod.f90 diff --git a/src/arkode/fmod_int64/CMakeLists.txt b/src/arkode/fmod_int64/CMakeLists.txt new file mode 100644 index 0000000000..32e5c935d7 --- /dev/null +++ b/src/arkode/fmod_int64/CMakeLists.txt @@ -0,0 +1,59 @@ +# --------------------------------------------------------------- +# Programmer(s): Cody J. Balos @ LLNL +# --------------------------------------------------------------- +# SUNDIALS Copyright Start +# Copyright (c) 2002-2024, Lawrence Livermore National Security +# and Southern Methodist University. +# All rights reserved. +# +# See the top-level LICENSE and NOTICE files for details. +# +# SPDX-License-Identifier: BSD-3-Clause +# SUNDIALS Copyright End +# --------------------------------------------------------------- +# CMakeLists.txt file for the F2003 ARKODE object library +# --------------------------------------------------------------- + +set(arkode_SOURCES + farkode_mod.f90 + farkode_mod.c + farkode_arkstep_mod.f90 + farkode_arkstep_mod.c + farkode_erkstep_mod.f90 + farkode_erkstep_mod.c + farkode_sprkstep_mod.f90 + farkode_sprkstep_mod.c + farkode_mristep_mod.f90 + farkode_mristep_mod.c) + +# Create the library +sundials_add_f2003_library(sundials_farkode_mod + SOURCES + ${arkode_SOURCES} + LINK_LIBRARIES + PUBLIC sundials_fcore_mod + OBJECT_LIBRARIES + sundials_fnvecserial_mod_obj + sundials_fsunadaptcontrollersoderlind_mod_obj + sundials_fsunadaptcontrollerimexgus_mod_obj + sundials_fsunmatrixband_mod_obj + sundials_fsunmatrixdense_mod_obj + sundials_fsunmatrixsparse_mod_obj + sundials_fsunlinsolband_mod_obj + sundials_fsunlinsoldense_mod_obj + sundials_fsunlinsolspbcgs_mod_obj + sundials_fsunlinsolspfgmr_mod_obj + sundials_fsunlinsolspgmr_mod_obj + sundials_fsunlinsolsptfqmr_mod_obj + sundials_fsunlinsolpcg_mod_obj + sundials_fsunnonlinsolnewton_mod_obj + sundials_fsunnonlinsolfixedpoint_mod_obj + OUTPUT_NAME + sundials_farkode_mod + VERSION + ${arkodelib_VERSION} + SOVERSION + ${arkodelib_SOVERSION} +) + +message(STATUS "Added ARKODE F2003 interface") diff --git a/src/arkode/fmod_int64/farkode_arkstep_mod.c b/src/arkode/fmod_int64/farkode_arkstep_mod.c new file mode 100644 index 0000000000..4791bedcdc --- /dev/null +++ b/src/arkode/fmod_int64/farkode_arkstep_mod.c @@ -0,0 +1,2660 @@ +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.0 + * + * This file is not intended to be easily readable and contains a number of + * coding conventions designed to improve portability and efficiency. Do not make + * changes to this file unless you know what you are doing--modify the SWIG + * interface file instead. + * ----------------------------------------------------------------------------- */ + +/* --------------------------------------------------------------- + * Programmer(s): Auto-generated by swig. + * --------------------------------------------------------------- + * SUNDIALS Copyright Start + * Copyright (c) 2002-2024, Lawrence Livermore National Security + * and Southern Methodist University. + * All rights reserved. + * + * See the top-level LICENSE and NOTICE files for details. + * + * SPDX-License-Identifier: BSD-3-Clause + * SUNDIALS Copyright End + * -------------------------------------------------------------*/ + +/* ----------------------------------------------------------------------------- + * This section contains generic SWIG labels for method/variable + * declarations/attributes, and other compiler dependent labels. + * ----------------------------------------------------------------------------- */ + +/* template workaround for compilers that cannot correctly implement the C++ standard */ +#ifndef SWIGTEMPLATEDISAMBIGUATOR +# if defined(__SUNPRO_CC) && (__SUNPRO_CC <= 0x560) +# define SWIGTEMPLATEDISAMBIGUATOR template +# elif defined(__HP_aCC) +/* Needed even with `aCC -AA' when `aCC -V' reports HP ANSI C++ B3910B A.03.55 */ +/* If we find a maximum version that requires this, the test would be __HP_aCC <= 35500 for A.03.55 */ +# define SWIGTEMPLATEDISAMBIGUATOR template +# else +# define SWIGTEMPLATEDISAMBIGUATOR +# endif +#endif + +/* inline attribute */ +#ifndef SWIGINLINE +# if defined(__cplusplus) || (defined(__GNUC__) && !defined(__STRICT_ANSI__)) +# define SWIGINLINE inline +# else +# define SWIGINLINE +# endif +#endif + +/* attribute recognised by some compilers to avoid 'unused' warnings */ +#ifndef SWIGUNUSED +# if defined(__GNUC__) +# if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)) +# define SWIGUNUSED __attribute__ ((__unused__)) +# else +# define SWIGUNUSED +# endif +# elif defined(__ICC) +# define SWIGUNUSED __attribute__ ((__unused__)) +# else +# define SWIGUNUSED +# endif +#endif + +#ifndef SWIG_MSC_UNSUPPRESS_4505 +# if defined(_MSC_VER) +# pragma warning(disable : 4505) /* unreferenced local function has been removed */ +# endif +#endif + +#ifndef SWIGUNUSEDPARM +# ifdef __cplusplus +# define SWIGUNUSEDPARM(p) +# else +# define SWIGUNUSEDPARM(p) p SWIGUNUSED +# endif +#endif + +/* internal SWIG method */ +#ifndef SWIGINTERN +# define SWIGINTERN static SWIGUNUSED +#endif + +/* internal inline SWIG method */ +#ifndef SWIGINTERNINLINE +# define SWIGINTERNINLINE SWIGINTERN SWIGINLINE +#endif + +/* qualifier for exported *const* global data variables*/ +#ifndef SWIGEXTERN +# ifdef __cplusplus +# define SWIGEXTERN extern +# else +# define SWIGEXTERN +# endif +#endif + +/* exporting methods */ +#if defined(__GNUC__) +# if (__GNUC__ >= 4) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) +# ifndef GCC_HASCLASSVISIBILITY +# define GCC_HASCLASSVISIBILITY +# endif +# endif +#endif + +#ifndef SWIGEXPORT +# if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__) +# if defined(STATIC_LINKED) +# define SWIGEXPORT +# else +# define SWIGEXPORT __declspec(dllexport) +# endif +# else +# if defined(__GNUC__) && defined(GCC_HASCLASSVISIBILITY) +# define SWIGEXPORT __attribute__ ((visibility("default"))) +# else +# define SWIGEXPORT +# endif +# endif +#endif + +/* calling conventions for Windows */ +#ifndef SWIGSTDCALL +# if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__) +# define SWIGSTDCALL __stdcall +# else +# define SWIGSTDCALL +# endif +#endif + +/* Deal with Microsoft's attempt at deprecating C standard runtime functions */ +#if !defined(SWIG_NO_CRT_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_CRT_SECURE_NO_DEPRECATE) +# define _CRT_SECURE_NO_DEPRECATE +#endif + +/* Deal with Microsoft's attempt at deprecating methods in the standard C++ library */ +#if !defined(SWIG_NO_SCL_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_SCL_SECURE_NO_DEPRECATE) +# define _SCL_SECURE_NO_DEPRECATE +#endif + +/* Deal with Apple's deprecated 'AssertMacros.h' from Carbon-framework */ +#if defined(__APPLE__) && !defined(__ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES) +# define __ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES 0 +#endif + +/* Intel's compiler complains if a variable which was never initialised is + * cast to void, which is a common idiom which we use to indicate that we + * are aware a variable isn't used. So we just silence that warning. + * See: https://github.com/swig/swig/issues/192 for more discussion. + */ +#ifdef __INTEL_COMPILER +# pragma warning disable 592 +#endif + +/* Errors in SWIG */ +#define SWIG_UnknownError -1 +#define SWIG_IOError -2 +#define SWIG_RuntimeError -3 +#define SWIG_IndexError -4 +#define SWIG_TypeError -5 +#define SWIG_DivisionByZero -6 +#define SWIG_OverflowError -7 +#define SWIG_SyntaxError -8 +#define SWIG_ValueError -9 +#define SWIG_SystemError -10 +#define SWIG_AttributeError -11 +#define SWIG_MemoryError -12 +#define SWIG_NullReferenceError -13 + + + + +#include +#define SWIG_exception_impl(DECL, CODE, MSG, RETURNNULL) \ + { printf("In " DECL ": " MSG); assert(0); RETURNNULL; } + + +#include +#if defined(_MSC_VER) || defined(__BORLANDC__) || defined(_WATCOM) +# ifndef snprintf +# define snprintf _snprintf +# endif +#endif + + +/* Support for the `contract` feature. + * + * Note that RETURNNULL is first because it's inserted via a 'Replaceall' in + * the fortran.cxx file. + */ +#define SWIG_contract_assert(RETURNNULL, EXPR, MSG) \ + if (!(EXPR)) { SWIG_exception_impl("$decl", SWIG_ValueError, MSG, RETURNNULL); } + + +#define SWIGVERSION 0x040000 +#define SWIG_VERSION SWIGVERSION + + +#define SWIG_as_voidptr(a) (void *)((const void *)(a)) +#define SWIG_as_voidptrptr(a) ((void)SWIG_as_voidptr(*a),(void**)(a)) + + +#include "arkode/arkode_arkstep.h" + + +#include +#ifdef _MSC_VER +# ifndef strtoull +# define strtoull _strtoui64 +# endif +# ifndef strtoll +# define strtoll _strtoi64 +# endif +#endif + + +typedef struct { + void* data; + size_t size; +} SwigArrayWrapper; + + +SWIGINTERN SwigArrayWrapper SwigArrayWrapper_uninitialized() { + SwigArrayWrapper result; + result.data = NULL; + result.size = 0; + return result; +} + + +#include + +SWIGEXPORT void * _wrap_FARKStepCreate(ARKRhsFn farg1, ARKRhsFn farg2, double const *farg3, N_Vector farg4, void *farg5) { + void * fresult ; + ARKRhsFn arg1 = (ARKRhsFn) 0 ; + ARKRhsFn arg2 = (ARKRhsFn) 0 ; + sunrealtype arg3 ; + N_Vector arg4 = (N_Vector) 0 ; + SUNContext arg5 = (SUNContext) 0 ; + void *result = 0 ; + + arg1 = (ARKRhsFn)(farg1); + arg2 = (ARKRhsFn)(farg2); + arg3 = (sunrealtype)(*farg3); + arg4 = (N_Vector)(farg4); + arg5 = (SUNContext)(farg5); + result = (void *)ARKStepCreate(arg1,arg2,arg3,arg4,arg5); + fresult = result; + return fresult; +} + + +SWIGEXPORT int _wrap_FARKStepReInit(void *farg1, ARKRhsFn farg2, ARKRhsFn farg3, double const *farg4, N_Vector farg5) { + int fresult ; + void *arg1 = (void *) 0 ; + ARKRhsFn arg2 = (ARKRhsFn) 0 ; + ARKRhsFn arg3 = (ARKRhsFn) 0 ; + sunrealtype arg4 ; + N_Vector arg5 = (N_Vector) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (ARKRhsFn)(farg2); + arg3 = (ARKRhsFn)(farg3); + arg4 = (sunrealtype)(*farg4); + arg5 = (N_Vector)(farg5); + result = (int)ARKStepReInit(arg1,arg2,arg3,arg4,arg5); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKStepSetExplicit(void *farg1) { + int fresult ; + void *arg1 = (void *) 0 ; + int result; + + arg1 = (void *)(farg1); + result = (int)ARKStepSetExplicit(arg1); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKStepSetImplicit(void *farg1) { + int fresult ; + void *arg1 = (void *) 0 ; + int result; + + arg1 = (void *)(farg1); + result = (int)ARKStepSetImplicit(arg1); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKStepSetImEx(void *farg1) { + int fresult ; + void *arg1 = (void *) 0 ; + int result; + + arg1 = (void *)(farg1); + result = (int)ARKStepSetImEx(arg1); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKStepSetTables(void *farg1, int const *farg2, int const *farg3, void *farg4, void *farg5) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + int arg3 ; + ARKodeButcherTable arg4 = (ARKodeButcherTable) 0 ; + ARKodeButcherTable arg5 = (ARKodeButcherTable) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + arg3 = (int)(*farg3); + arg4 = (ARKodeButcherTable)(farg4); + arg5 = (ARKodeButcherTable)(farg5); + result = (int)ARKStepSetTables(arg1,arg2,arg3,arg4,arg5); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKStepSetTableNum(void *farg1, int const *farg2, int const *farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + ARKODE_DIRKTableID arg2 ; + ARKODE_ERKTableID arg3 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (ARKODE_DIRKTableID)(*farg2); + arg3 = (ARKODE_ERKTableID)(*farg3); + result = (int)ARKStepSetTableNum(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKStepSetTableName(void *farg1, SwigArrayWrapper *farg2, SwigArrayWrapper *farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + char *arg2 = (char *) 0 ; + char *arg3 = (char *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (char *)(farg2->data); + arg3 = (char *)(farg3->data); + result = (int)ARKStepSetTableName(arg1,(char const *)arg2,(char const *)arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKStepGetNumRhsEvals(void *farg1, long *farg2, long *farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + long *arg3 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + arg3 = (long *)(farg3); + result = (int)ARKStepGetNumRhsEvals(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKStepGetCurrentButcherTables(void *farg1, void *farg2, void *farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + ARKodeButcherTable *arg2 = (ARKodeButcherTable *) 0 ; + ARKodeButcherTable *arg3 = (ARKodeButcherTable *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (ARKodeButcherTable *)(farg2); + arg3 = (ARKodeButcherTable *)(farg3); + result = (int)ARKStepGetCurrentButcherTables(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKStepGetTimestepperStats(void *farg1, long *farg2, long *farg3, long *farg4, long *farg5, long *farg6, long *farg7, long *farg8) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + long *arg3 = (long *) 0 ; + long *arg4 = (long *) 0 ; + long *arg5 = (long *) 0 ; + long *arg6 = (long *) 0 ; + long *arg7 = (long *) 0 ; + long *arg8 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + arg3 = (long *)(farg3); + arg4 = (long *)(farg4); + arg5 = (long *)(farg5); + arg6 = (long *)(farg6); + arg7 = (long *)(farg7); + arg8 = (long *)(farg8); + result = (int)ARKStepGetTimestepperStats(arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKStepCreateMRIStepInnerStepper(void *farg1, void *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + MRIStepInnerStepper *arg2 = (MRIStepInnerStepper *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (MRIStepInnerStepper *)(farg2); + result = (int)ARKStepCreateMRIStepInnerStepper(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKStepResize(void *farg1, N_Vector farg2, double const *farg3, double const *farg4, ARKVecResizeFn farg5, void *farg6) { + int fresult ; + void *arg1 = (void *) 0 ; + N_Vector arg2 = (N_Vector) 0 ; + sunrealtype arg3 ; + sunrealtype arg4 ; + ARKVecResizeFn arg5 = (ARKVecResizeFn) 0 ; + void *arg6 = (void *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (N_Vector)(farg2); + arg3 = (sunrealtype)(*farg3); + arg4 = (sunrealtype)(*farg4); + arg5 = (ARKVecResizeFn)(farg5); + arg6 = (void *)(farg6); + result = (int)ARKStepResize(arg1,arg2,arg3,arg4,arg5,arg6); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKStepReset(void *farg1, double const *farg2, N_Vector farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + N_Vector arg3 = (N_Vector) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + arg3 = (N_Vector)(farg3); + result = (int)ARKStepReset(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKStepSStolerances(void *farg1, double const *farg2, double const *farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + sunrealtype arg3 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + arg3 = (sunrealtype)(*farg3); + result = (int)ARKStepSStolerances(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKStepSVtolerances(void *farg1, double const *farg2, N_Vector farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + N_Vector arg3 = (N_Vector) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + arg3 = (N_Vector)(farg3); + result = (int)ARKStepSVtolerances(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKStepWFtolerances(void *farg1, ARKEwtFn farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + ARKEwtFn arg2 = (ARKEwtFn) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (ARKEwtFn)(farg2); + result = (int)ARKStepWFtolerances(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKStepResStolerance(void *farg1, double const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + result = (int)ARKStepResStolerance(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKStepResVtolerance(void *farg1, N_Vector farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + N_Vector arg2 = (N_Vector) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (N_Vector)(farg2); + result = (int)ARKStepResVtolerance(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKStepResFtolerance(void *farg1, ARKRwtFn farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + ARKRwtFn arg2 = (ARKRwtFn) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (ARKRwtFn)(farg2); + result = (int)ARKStepResFtolerance(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKStepSetLinearSolver(void *farg1, SUNLinearSolver farg2, SUNMatrix farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + SUNLinearSolver arg2 = (SUNLinearSolver) 0 ; + SUNMatrix arg3 = (SUNMatrix) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (SUNLinearSolver)(farg2); + arg3 = (SUNMatrix)(farg3); + result = (int)ARKStepSetLinearSolver(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKStepSetMassLinearSolver(void *farg1, SUNLinearSolver farg2, SUNMatrix farg3, int const *farg4) { + int fresult ; + void *arg1 = (void *) 0 ; + SUNLinearSolver arg2 = (SUNLinearSolver) 0 ; + SUNMatrix arg3 = (SUNMatrix) 0 ; + int arg4 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (SUNLinearSolver)(farg2); + arg3 = (SUNMatrix)(farg3); + arg4 = (int)(*farg4); + result = (int)ARKStepSetMassLinearSolver(arg1,arg2,arg3,arg4); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKStepRootInit(void *farg1, int const *farg2, ARKRootFn farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + ARKRootFn arg3 = (ARKRootFn) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + arg3 = (ARKRootFn)(farg3); + result = (int)ARKStepRootInit(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKStepSetDefaults(void *farg1) { + int fresult ; + void *arg1 = (void *) 0 ; + int result; + + arg1 = (void *)(farg1); + result = (int)ARKStepSetDefaults(arg1); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKStepSetOptimalParams(void *farg1) { + int fresult ; + void *arg1 = (void *) 0 ; + int result; + + arg1 = (void *)(farg1); + result = (int)ARKStepSetOptimalParams(arg1); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKStepSetOrder(void *farg1, int const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + result = (int)ARKStepSetOrder(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKStepSetInterpolantType(void *farg1, int const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + result = (int)ARKStepSetInterpolantType(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKStepSetInterpolantDegree(void *farg1, int const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + result = (int)ARKStepSetInterpolantDegree(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKStepSetDenseOrder(void *farg1, int const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + result = (int)ARKStepSetDenseOrder(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKStepSetNonlinearSolver(void *farg1, SUNNonlinearSolver farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + SUNNonlinearSolver arg2 = (SUNNonlinearSolver) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (SUNNonlinearSolver)(farg2); + result = (int)ARKStepSetNonlinearSolver(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKStepSetNlsRhsFn(void *farg1, ARKRhsFn farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + ARKRhsFn arg2 = (ARKRhsFn) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (ARKRhsFn)(farg2); + result = (int)ARKStepSetNlsRhsFn(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKStepSetLinear(void *farg1, int const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + result = (int)ARKStepSetLinear(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKStepSetNonlinear(void *farg1) { + int fresult ; + void *arg1 = (void *) 0 ; + int result; + + arg1 = (void *)(farg1); + result = (int)ARKStepSetNonlinear(arg1); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKStepSetDeduceImplicitRhs(void *farg1, int const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + result = (int)ARKStepSetDeduceImplicitRhs(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKStepSetAdaptController(void *farg1, SUNAdaptController farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + SUNAdaptController arg2 = (SUNAdaptController) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (SUNAdaptController)(farg2); + result = (int)ARKStepSetAdaptController(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKStepSetAdaptivityAdjustment(void *farg1, int const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + result = (int)ARKStepSetAdaptivityAdjustment(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKStepSetCFLFraction(void *farg1, double const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + result = (int)ARKStepSetCFLFraction(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKStepSetSafetyFactor(void *farg1, double const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + result = (int)ARKStepSetSafetyFactor(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKStepSetErrorBias(void *farg1, double const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + result = (int)ARKStepSetErrorBias(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKStepSetMaxGrowth(void *farg1, double const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + result = (int)ARKStepSetMaxGrowth(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKStepSetMinReduction(void *farg1, double const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + result = (int)ARKStepSetMinReduction(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKStepSetFixedStepBounds(void *farg1, double const *farg2, double const *farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + sunrealtype arg3 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + arg3 = (sunrealtype)(*farg3); + result = (int)ARKStepSetFixedStepBounds(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKStepSetAdaptivityMethod(void *farg1, int const *farg2, int const *farg3, int const *farg4, double *farg5) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + int arg3 ; + int arg4 ; + sunrealtype *arg5 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + arg3 = (int)(*farg3); + arg4 = (int)(*farg4); + arg5 = (double *)(farg5); + result = (int)ARKStepSetAdaptivityMethod(arg1,arg2,arg3,arg4,arg5); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKStepSetAdaptivityFn(void *farg1, ARKAdaptFn farg2, void *farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + ARKAdaptFn arg2 = (ARKAdaptFn) 0 ; + void *arg3 = (void *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (ARKAdaptFn)(farg2); + arg3 = (void *)(farg3); + result = (int)ARKStepSetAdaptivityFn(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKStepSetMaxFirstGrowth(void *farg1, double const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + result = (int)ARKStepSetMaxFirstGrowth(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKStepSetMaxEFailGrowth(void *farg1, double const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + result = (int)ARKStepSetMaxEFailGrowth(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKStepSetSmallNumEFails(void *farg1, int const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + result = (int)ARKStepSetSmallNumEFails(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKStepSetMaxCFailGrowth(void *farg1, double const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + result = (int)ARKStepSetMaxCFailGrowth(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKStepSetNonlinCRDown(void *farg1, double const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + result = (int)ARKStepSetNonlinCRDown(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKStepSetNonlinRDiv(void *farg1, double const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + result = (int)ARKStepSetNonlinRDiv(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKStepSetDeltaGammaMax(void *farg1, double const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + result = (int)ARKStepSetDeltaGammaMax(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKStepSetLSetupFrequency(void *farg1, int const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + result = (int)ARKStepSetLSetupFrequency(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKStepSetPredictorMethod(void *farg1, int const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + result = (int)ARKStepSetPredictorMethod(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKStepSetStabilityFn(void *farg1, ARKExpStabFn farg2, void *farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + ARKExpStabFn arg2 = (ARKExpStabFn) 0 ; + void *arg3 = (void *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (ARKExpStabFn)(farg2); + arg3 = (void *)(farg3); + result = (int)ARKStepSetStabilityFn(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKStepSetMaxErrTestFails(void *farg1, int const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + result = (int)ARKStepSetMaxErrTestFails(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKStepSetMaxNonlinIters(void *farg1, int const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + result = (int)ARKStepSetMaxNonlinIters(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKStepSetMaxConvFails(void *farg1, int const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + result = (int)ARKStepSetMaxConvFails(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKStepSetNonlinConvCoef(void *farg1, double const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + result = (int)ARKStepSetNonlinConvCoef(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKStepSetConstraints(void *farg1, N_Vector farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + N_Vector arg2 = (N_Vector) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (N_Vector)(farg2); + result = (int)ARKStepSetConstraints(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKStepSetMaxNumSteps(void *farg1, long const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long)(*farg2); + result = (int)ARKStepSetMaxNumSteps(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKStepSetMaxHnilWarns(void *farg1, int const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + result = (int)ARKStepSetMaxHnilWarns(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKStepSetInitStep(void *farg1, double const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + result = (int)ARKStepSetInitStep(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKStepSetMinStep(void *farg1, double const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + result = (int)ARKStepSetMinStep(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKStepSetMaxStep(void *farg1, double const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + result = (int)ARKStepSetMaxStep(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKStepSetInterpolateStopTime(void *farg1, int const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + result = (int)ARKStepSetInterpolateStopTime(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKStepSetStopTime(void *farg1, double const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + result = (int)ARKStepSetStopTime(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKStepClearStopTime(void *farg1) { + int fresult ; + void *arg1 = (void *) 0 ; + int result; + + arg1 = (void *)(farg1); + result = (int)ARKStepClearStopTime(arg1); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKStepSetFixedStep(void *farg1, double const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + result = (int)ARKStepSetFixedStep(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKStepSetMaxNumConstrFails(void *farg1, int const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + result = (int)ARKStepSetMaxNumConstrFails(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKStepSetRootDirection(void *farg1, int *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + int *arg2 = (int *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int *)(farg2); + result = (int)ARKStepSetRootDirection(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKStepSetNoInactiveRootWarn(void *farg1) { + int fresult ; + void *arg1 = (void *) 0 ; + int result; + + arg1 = (void *)(farg1); + result = (int)ARKStepSetNoInactiveRootWarn(arg1); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKStepSetUserData(void *farg1, void *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + void *arg2 = (void *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (void *)(farg2); + result = (int)ARKStepSetUserData(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKStepSetPostprocessStepFn(void *farg1, ARKPostProcessFn farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + ARKPostProcessFn arg2 = (ARKPostProcessFn) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (ARKPostProcessFn)(farg2); + result = (int)ARKStepSetPostprocessStepFn(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKStepSetPostprocessStageFn(void *farg1, ARKPostProcessFn farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + ARKPostProcessFn arg2 = (ARKPostProcessFn) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (ARKPostProcessFn)(farg2); + result = (int)ARKStepSetPostprocessStageFn(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKStepSetStagePredictFn(void *farg1, ARKStagePredictFn farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + ARKStagePredictFn arg2 = (ARKStagePredictFn) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (ARKStagePredictFn)(farg2); + result = (int)ARKStepSetStagePredictFn(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKStepSetJacFn(void *farg1, ARKLsJacFn farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + ARKLsJacFn arg2 = (ARKLsJacFn) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (ARKLsJacFn)(farg2); + result = (int)ARKStepSetJacFn(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKStepSetMassFn(void *farg1, ARKLsMassFn farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + ARKLsMassFn arg2 = (ARKLsMassFn) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (ARKLsMassFn)(farg2); + result = (int)ARKStepSetMassFn(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKStepSetJacEvalFrequency(void *farg1, long const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long)(*farg2); + result = (int)ARKStepSetJacEvalFrequency(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKStepSetLinearSolutionScaling(void *farg1, int const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + result = (int)ARKStepSetLinearSolutionScaling(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKStepSetEpsLin(void *farg1, double const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + result = (int)ARKStepSetEpsLin(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKStepSetMassEpsLin(void *farg1, double const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + result = (int)ARKStepSetMassEpsLin(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKStepSetLSNormFactor(void *farg1, double const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + result = (int)ARKStepSetLSNormFactor(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKStepSetMassLSNormFactor(void *farg1, double const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + result = (int)ARKStepSetMassLSNormFactor(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKStepSetPreconditioner(void *farg1, ARKLsPrecSetupFn farg2, ARKLsPrecSolveFn farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + ARKLsPrecSetupFn arg2 = (ARKLsPrecSetupFn) 0 ; + ARKLsPrecSolveFn arg3 = (ARKLsPrecSolveFn) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (ARKLsPrecSetupFn)(farg2); + arg3 = (ARKLsPrecSolveFn)(farg3); + result = (int)ARKStepSetPreconditioner(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKStepSetMassPreconditioner(void *farg1, ARKLsMassPrecSetupFn farg2, ARKLsMassPrecSolveFn farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + ARKLsMassPrecSetupFn arg2 = (ARKLsMassPrecSetupFn) 0 ; + ARKLsMassPrecSolveFn arg3 = (ARKLsMassPrecSolveFn) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (ARKLsMassPrecSetupFn)(farg2); + arg3 = (ARKLsMassPrecSolveFn)(farg3); + result = (int)ARKStepSetMassPreconditioner(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKStepSetJacTimes(void *farg1, ARKLsJacTimesSetupFn farg2, ARKLsJacTimesVecFn farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + ARKLsJacTimesSetupFn arg2 = (ARKLsJacTimesSetupFn) 0 ; + ARKLsJacTimesVecFn arg3 = (ARKLsJacTimesVecFn) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (ARKLsJacTimesSetupFn)(farg2); + arg3 = (ARKLsJacTimesVecFn)(farg3); + result = (int)ARKStepSetJacTimes(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKStepSetJacTimesRhsFn(void *farg1, ARKRhsFn farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + ARKRhsFn arg2 = (ARKRhsFn) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (ARKRhsFn)(farg2); + result = (int)ARKStepSetJacTimesRhsFn(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKStepSetMassTimes(void *farg1, ARKLsMassTimesSetupFn farg2, ARKLsMassTimesVecFn farg3, void *farg4) { + int fresult ; + void *arg1 = (void *) 0 ; + ARKLsMassTimesSetupFn arg2 = (ARKLsMassTimesSetupFn) 0 ; + ARKLsMassTimesVecFn arg3 = (ARKLsMassTimesVecFn) 0 ; + void *arg4 = (void *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (ARKLsMassTimesSetupFn)(farg2); + arg3 = (ARKLsMassTimesVecFn)(farg3); + arg4 = (void *)(farg4); + result = (int)ARKStepSetMassTimes(arg1,arg2,arg3,arg4); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKStepSetLinSysFn(void *farg1, ARKLsLinSysFn farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + ARKLsLinSysFn arg2 = (ARKLsLinSysFn) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (ARKLsLinSysFn)(farg2); + result = (int)ARKStepSetLinSysFn(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKStepEvolve(void *farg1, double const *farg2, N_Vector farg3, double *farg4, int const *farg5) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + N_Vector arg3 = (N_Vector) 0 ; + sunrealtype *arg4 = (sunrealtype *) 0 ; + int arg5 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + arg3 = (N_Vector)(farg3); + arg4 = (sunrealtype *)(farg4); + arg5 = (int)(*farg5); + result = (int)ARKStepEvolve(arg1,arg2,arg3,arg4,arg5); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKStepGetDky(void *farg1, double const *farg2, int const *farg3, N_Vector farg4) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + int arg3 ; + N_Vector arg4 = (N_Vector) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + arg3 = (int)(*farg3); + arg4 = (N_Vector)(farg4); + result = (int)ARKStepGetDky(arg1,arg2,arg3,arg4); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKStepComputeState(void *farg1, N_Vector farg2, N_Vector farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + N_Vector arg2 = (N_Vector) 0 ; + N_Vector arg3 = (N_Vector) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (N_Vector)(farg2); + arg3 = (N_Vector)(farg3); + result = (int)ARKStepComputeState(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKStepGetNumExpSteps(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)ARKStepGetNumExpSteps(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKStepGetNumAccSteps(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)ARKStepGetNumAccSteps(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKStepGetNumStepAttempts(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)ARKStepGetNumStepAttempts(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKStepGetNumLinSolvSetups(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)ARKStepGetNumLinSolvSetups(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKStepGetNumErrTestFails(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)ARKStepGetNumErrTestFails(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKStepGetEstLocalErrors(void *farg1, N_Vector farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + N_Vector arg2 = (N_Vector) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (N_Vector)(farg2); + result = (int)ARKStepGetEstLocalErrors(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKStepGetWorkSpace(void *farg1, long *farg2, long *farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + long *arg3 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + arg3 = (long *)(farg3); + result = (int)ARKStepGetWorkSpace(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKStepGetNumSteps(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)ARKStepGetNumSteps(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKStepGetActualInitStep(void *farg1, double *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype *arg2 = (sunrealtype *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype *)(farg2); + result = (int)ARKStepGetActualInitStep(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKStepGetLastStep(void *farg1, double *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype *arg2 = (sunrealtype *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype *)(farg2); + result = (int)ARKStepGetLastStep(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKStepGetCurrentStep(void *farg1, double *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype *arg2 = (sunrealtype *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype *)(farg2); + result = (int)ARKStepGetCurrentStep(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKStepGetCurrentTime(void *farg1, double *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype *arg2 = (sunrealtype *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype *)(farg2); + result = (int)ARKStepGetCurrentTime(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKStepGetCurrentState(void *farg1, void *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + N_Vector *arg2 = (N_Vector *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (N_Vector *)(farg2); + result = (int)ARKStepGetCurrentState(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKStepGetCurrentGamma(void *farg1, double *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype *arg2 = (sunrealtype *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype *)(farg2); + result = (int)ARKStepGetCurrentGamma(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKStepGetCurrentMassMatrix(void *farg1, void *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + SUNMatrix *arg2 = (SUNMatrix *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (SUNMatrix *)(farg2); + result = (int)ARKStepGetCurrentMassMatrix(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKStepGetTolScaleFactor(void *farg1, double *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype *arg2 = (sunrealtype *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype *)(farg2); + result = (int)ARKStepGetTolScaleFactor(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKStepGetErrWeights(void *farg1, N_Vector farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + N_Vector arg2 = (N_Vector) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (N_Vector)(farg2); + result = (int)ARKStepGetErrWeights(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKStepGetResWeights(void *farg1, N_Vector farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + N_Vector arg2 = (N_Vector) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (N_Vector)(farg2); + result = (int)ARKStepGetResWeights(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKStepGetNumGEvals(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)ARKStepGetNumGEvals(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKStepGetRootInfo(void *farg1, int *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + int *arg2 = (int *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int *)(farg2); + result = (int)ARKStepGetRootInfo(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKStepGetNumConstrFails(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)ARKStepGetNumConstrFails(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKStepGetUserData(void *farg1, void *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + void **arg2 = (void **) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (void **)(farg2); + result = (int)ARKStepGetUserData(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKStepPrintAllStats(void *farg1, void *farg2, int const *farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + FILE *arg2 = (FILE *) 0 ; + SUNOutputFormat arg3 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (FILE *)(farg2); + arg3 = (SUNOutputFormat)(*farg3); + result = (int)ARKStepPrintAllStats(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT SwigArrayWrapper _wrap_FARKStepGetReturnFlagName(long const *farg1) { + SwigArrayWrapper fresult ; + long arg1 ; + char *result = 0 ; + + arg1 = (long)(*farg1); + result = (char *)ARKStepGetReturnFlagName(arg1); + fresult.size = strlen((const char*)(result)); + fresult.data = (char *)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKStepWriteParameters(void *farg1, void *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + FILE *arg2 = (FILE *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (FILE *)(farg2); + result = (int)ARKStepWriteParameters(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKStepWriteButcher(void *farg1, void *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + FILE *arg2 = (FILE *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (FILE *)(farg2); + result = (int)ARKStepWriteButcher(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKStepGetStepStats(void *farg1, long *farg2, double *farg3, double *farg4, double *farg5, double *farg6) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + sunrealtype *arg3 = (sunrealtype *) 0 ; + sunrealtype *arg4 = (sunrealtype *) 0 ; + sunrealtype *arg5 = (sunrealtype *) 0 ; + sunrealtype *arg6 = (sunrealtype *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + arg3 = (sunrealtype *)(farg3); + arg4 = (sunrealtype *)(farg4); + arg5 = (sunrealtype *)(farg5); + arg6 = (sunrealtype *)(farg6); + result = (int)ARKStepGetStepStats(arg1,arg2,arg3,arg4,arg5,arg6); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKStepGetNonlinearSystemData(void *farg1, double *farg2, void *farg3, void *farg4, void *farg5, double *farg6, void *farg7, void *farg8) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype *arg2 = (sunrealtype *) 0 ; + N_Vector *arg3 = (N_Vector *) 0 ; + N_Vector *arg4 = (N_Vector *) 0 ; + N_Vector *arg5 = (N_Vector *) 0 ; + sunrealtype *arg6 = (sunrealtype *) 0 ; + N_Vector *arg7 = (N_Vector *) 0 ; + void **arg8 = (void **) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype *)(farg2); + arg3 = (N_Vector *)(farg3); + arg4 = (N_Vector *)(farg4); + arg5 = (N_Vector *)(farg5); + arg6 = (sunrealtype *)(farg6); + arg7 = (N_Vector *)(farg7); + arg8 = (void **)(farg8); + result = (int)ARKStepGetNonlinearSystemData(arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKStepGetNumNonlinSolvIters(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)ARKStepGetNumNonlinSolvIters(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKStepGetNumNonlinSolvConvFails(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)ARKStepGetNumNonlinSolvConvFails(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKStepGetNonlinSolvStats(void *farg1, long *farg2, long *farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + long *arg3 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + arg3 = (long *)(farg3); + result = (int)ARKStepGetNonlinSolvStats(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKStepGetNumStepSolveFails(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)ARKStepGetNumStepSolveFails(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKStepGetJac(void *farg1, void *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + SUNMatrix *arg2 = (SUNMatrix *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (SUNMatrix *)(farg2); + result = (int)ARKStepGetJac(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKStepGetJacTime(void *farg1, double *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype *arg2 = (sunrealtype *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype *)(farg2); + result = (int)ARKStepGetJacTime(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKStepGetJacNumSteps(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)ARKStepGetJacNumSteps(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKStepGetLinWorkSpace(void *farg1, long *farg2, long *farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + long *arg3 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + arg3 = (long *)(farg3); + result = (int)ARKStepGetLinWorkSpace(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKStepGetNumJacEvals(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)ARKStepGetNumJacEvals(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKStepGetNumPrecEvals(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)ARKStepGetNumPrecEvals(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKStepGetNumPrecSolves(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)ARKStepGetNumPrecSolves(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKStepGetNumLinIters(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)ARKStepGetNumLinIters(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKStepGetNumLinConvFails(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)ARKStepGetNumLinConvFails(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKStepGetNumJTSetupEvals(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)ARKStepGetNumJTSetupEvals(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKStepGetNumJtimesEvals(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)ARKStepGetNumJtimesEvals(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKStepGetNumLinRhsEvals(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)ARKStepGetNumLinRhsEvals(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKStepGetLastLinFlag(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)ARKStepGetLastLinFlag(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKStepGetMassWorkSpace(void *farg1, long *farg2, long *farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + long *arg3 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + arg3 = (long *)(farg3); + result = (int)ARKStepGetMassWorkSpace(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKStepGetNumMassSetups(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)ARKStepGetNumMassSetups(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKStepGetNumMassMultSetups(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)ARKStepGetNumMassMultSetups(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKStepGetNumMassMult(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)ARKStepGetNumMassMult(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKStepGetNumMassSolves(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)ARKStepGetNumMassSolves(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKStepGetNumMassPrecEvals(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)ARKStepGetNumMassPrecEvals(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKStepGetNumMassPrecSolves(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)ARKStepGetNumMassPrecSolves(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKStepGetNumMassIters(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)ARKStepGetNumMassIters(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKStepGetNumMassConvFails(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)ARKStepGetNumMassConvFails(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKStepGetNumMTSetups(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)ARKStepGetNumMTSetups(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKStepGetLastMassFlag(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)ARKStepGetLastMassFlag(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT SwigArrayWrapper _wrap_FARKStepGetLinReturnFlagName(long const *farg1) { + SwigArrayWrapper fresult ; + long arg1 ; + char *result = 0 ; + + arg1 = (long)(*farg1); + result = (char *)ARKStepGetLinReturnFlagName(arg1); + fresult.size = strlen((const char*)(result)); + fresult.data = (char *)(result); + return fresult; +} + + +SWIGEXPORT void _wrap_FARKStepFree(void *farg1) { + void **arg1 = (void **) 0 ; + + arg1 = (void **)(farg1); + ARKStepFree(arg1); +} + + +SWIGEXPORT void _wrap_FARKStepPrintMem(void *farg1, void *farg2) { + void *arg1 = (void *) 0 ; + FILE *arg2 = (FILE *) 0 ; + + arg1 = (void *)(farg1); + arg2 = (FILE *)(farg2); + ARKStepPrintMem(arg1,arg2); +} + + +SWIGEXPORT int _wrap_FARKStepSetRelaxFn(void *farg1, ARKRelaxFn farg2, ARKRelaxJacFn farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + ARKRelaxFn arg2 = (ARKRelaxFn) 0 ; + ARKRelaxJacFn arg3 = (ARKRelaxJacFn) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (ARKRelaxFn)(farg2); + arg3 = (ARKRelaxJacFn)(farg3); + result = (int)ARKStepSetRelaxFn(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKStepSetRelaxEtaFail(void *farg1, double const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + result = (int)ARKStepSetRelaxEtaFail(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKStepSetRelaxLowerBound(void *farg1, double const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + result = (int)ARKStepSetRelaxLowerBound(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKStepSetRelaxMaxFails(void *farg1, int const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + result = (int)ARKStepSetRelaxMaxFails(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKStepSetRelaxMaxIters(void *farg1, int const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + result = (int)ARKStepSetRelaxMaxIters(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKStepSetRelaxSolver(void *farg1, int const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + ARKRelaxSolver arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (ARKRelaxSolver)(*farg2); + result = (int)ARKStepSetRelaxSolver(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKStepSetRelaxResTol(void *farg1, double const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + result = (int)ARKStepSetRelaxResTol(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKStepSetRelaxTol(void *farg1, double const *farg2, double const *farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + sunrealtype arg3 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + arg3 = (sunrealtype)(*farg3); + result = (int)ARKStepSetRelaxTol(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKStepSetRelaxUpperBound(void *farg1, double const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + result = (int)ARKStepSetRelaxUpperBound(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKStepGetNumRelaxFnEvals(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)ARKStepGetNumRelaxFnEvals(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKStepGetNumRelaxJacEvals(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)ARKStepGetNumRelaxJacEvals(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKStepGetNumRelaxFails(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)ARKStepGetNumRelaxFails(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKStepGetNumRelaxBoundFails(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)ARKStepGetNumRelaxBoundFails(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKStepGetNumRelaxSolveFails(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)ARKStepGetNumRelaxSolveFails(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKStepGetNumRelaxSolveIters(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)ARKStepGetNumRelaxSolveIters(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + + diff --git a/src/arkode/fmod_int64/farkode_arkstep_mod.f90 b/src/arkode/fmod_int64/farkode_arkstep_mod.f90 new file mode 100644 index 0000000000..cc0373f1eb --- /dev/null +++ b/src/arkode/fmod_int64/farkode_arkstep_mod.f90 @@ -0,0 +1,4625 @@ +! This file was automatically generated by SWIG (http://www.swig.org). +! Version 4.0.0 +! +! Do not make changes to this file unless you know what you are doing--modify +! the SWIG interface file instead. + +! --------------------------------------------------------------- +! Programmer(s): Auto-generated by swig. +! --------------------------------------------------------------- +! SUNDIALS Copyright Start +! Copyright (c) 2002-2024, Lawrence Livermore National Security +! and Southern Methodist University. +! All rights reserved. +! +! See the top-level LICENSE and NOTICE files for details. +! +! SPDX-License-Identifier: BSD-3-Clause +! SUNDIALS Copyright End +! --------------------------------------------------------------- + +module farkode_arkstep_mod + use, intrinsic :: ISO_C_BINDING + use farkode_mod + use fsundials_core_mod + implicit none + private + + ! DECLARATION CONSTRUCTS + integer(C_INT), parameter, public :: ARKSTEP_DEFAULT_ERK_1 = ARKODE_FORWARD_EULER_1_1 + integer(C_INT), parameter, public :: ARKSTEP_DEFAULT_ERK_2 = ARKODE_HEUN_EULER_2_1_2 + integer(C_INT), parameter, public :: ARKSTEP_DEFAULT_ERK_3 = ARKODE_BOGACKI_SHAMPINE_4_2_3 + integer(C_INT), parameter, public :: ARKSTEP_DEFAULT_ERK_4 = ARKODE_ZONNEVELD_5_3_4 + integer(C_INT), parameter, public :: ARKSTEP_DEFAULT_ERK_5 = ARKODE_CASH_KARP_6_4_5 + integer(C_INT), parameter, public :: ARKSTEP_DEFAULT_ERK_6 = ARKODE_VERNER_8_5_6 + integer(C_INT), parameter, public :: ARKSTEP_DEFAULT_ERK_7 = ARKODE_VERNER_10_6_7 + integer(C_INT), parameter, public :: ARKSTEP_DEFAULT_ERK_8 = ARKODE_FEHLBERG_13_7_8 + integer(C_INT), parameter, public :: ARKSTEP_DEFAULT_ERK_9 = ARKODE_VERNER_16_8_9 + integer(C_INT), parameter, public :: ARKSTEP_DEFAULT_DIRK_1 = ARKODE_BACKWARD_EULER_1_1 + integer(C_INT), parameter, public :: ARKSTEP_DEFAULT_DIRK_2 = ARKODE_SDIRK_2_1_2 + integer(C_INT), parameter, public :: ARKSTEP_DEFAULT_DIRK_3 = ARKODE_ARK324L2SA_DIRK_4_2_3 + integer(C_INT), parameter, public :: ARKSTEP_DEFAULT_DIRK_4 = ARKODE_SDIRK_5_3_4 + integer(C_INT), parameter, public :: ARKSTEP_DEFAULT_DIRK_5 = ARKODE_ARK548L2SA_DIRK_8_4_5 + integer(C_INT), parameter, public :: ARKSTEP_DEFAULT_ARK_ETABLE_2 = ARKODE_ARK2_ERK_3_1_2 + integer(C_INT), parameter, public :: ARKSTEP_DEFAULT_ARK_ETABLE_3 = ARKODE_ARK324L2SA_ERK_4_2_3 + integer(C_INT), parameter, public :: ARKSTEP_DEFAULT_ARK_ETABLE_4 = ARKODE_ARK436L2SA_ERK_6_3_4 + integer(C_INT), parameter, public :: ARKSTEP_DEFAULT_ARK_ETABLE_5 = ARKODE_ARK548L2SA_ERK_8_4_5 + integer(C_INT), parameter, public :: ARKSTEP_DEFAULT_ARK_ITABLE_2 = ARKODE_ARK2_DIRK_3_1_2 + integer(C_INT), parameter, public :: ARKSTEP_DEFAULT_ARK_ITABLE_3 = ARKODE_ARK324L2SA_DIRK_4_2_3 + integer(C_INT), parameter, public :: ARKSTEP_DEFAULT_ARK_ITABLE_4 = ARKODE_ARK436L2SA_DIRK_6_3_4 + integer(C_INT), parameter, public :: ARKSTEP_DEFAULT_ARK_ITABLE_5 = ARKODE_ARK548L2SA_DIRK_8_4_5 + public :: FARKStepCreate + public :: FARKStepReInit + public :: FARKStepSetExplicit + public :: FARKStepSetImplicit + public :: FARKStepSetImEx + public :: FARKStepSetTables + public :: FARKStepSetTableNum + type, bind(C) :: SwigArrayWrapper + type(C_PTR), public :: data = C_NULL_PTR + integer(C_SIZE_T), public :: size = 0 + end type + public :: FARKStepSetTableName + public :: FARKStepGetNumRhsEvals + public :: FARKStepGetCurrentButcherTables + public :: FARKStepGetTimestepperStats + public :: FARKStepCreateMRIStepInnerStepper + public :: FARKStepResize + public :: FARKStepReset + public :: FARKStepSStolerances + public :: FARKStepSVtolerances + public :: FARKStepWFtolerances + public :: FARKStepResStolerance + public :: FARKStepResVtolerance + public :: FARKStepResFtolerance + public :: FARKStepSetLinearSolver + public :: FARKStepSetMassLinearSolver + public :: FARKStepRootInit + public :: FARKStepSetDefaults + public :: FARKStepSetOptimalParams + public :: FARKStepSetOrder + public :: FARKStepSetInterpolantType + public :: FARKStepSetInterpolantDegree + public :: FARKStepSetDenseOrder + public :: FARKStepSetNonlinearSolver + public :: FARKStepSetNlsRhsFn + public :: FARKStepSetLinear + public :: FARKStepSetNonlinear + public :: FARKStepSetDeduceImplicitRhs + public :: FARKStepSetAdaptController + public :: FARKStepSetAdaptivityAdjustment + public :: FARKStepSetCFLFraction + public :: FARKStepSetSafetyFactor + public :: FARKStepSetErrorBias + public :: FARKStepSetMaxGrowth + public :: FARKStepSetMinReduction + public :: FARKStepSetFixedStepBounds + public :: FARKStepSetAdaptivityMethod + public :: FARKStepSetAdaptivityFn + public :: FARKStepSetMaxFirstGrowth + public :: FARKStepSetMaxEFailGrowth + public :: FARKStepSetSmallNumEFails + public :: FARKStepSetMaxCFailGrowth + public :: FARKStepSetNonlinCRDown + public :: FARKStepSetNonlinRDiv + public :: FARKStepSetDeltaGammaMax + public :: FARKStepSetLSetupFrequency + public :: FARKStepSetPredictorMethod + public :: FARKStepSetStabilityFn + public :: FARKStepSetMaxErrTestFails + public :: FARKStepSetMaxNonlinIters + public :: FARKStepSetMaxConvFails + public :: FARKStepSetNonlinConvCoef + public :: FARKStepSetConstraints + public :: FARKStepSetMaxNumSteps + public :: FARKStepSetMaxHnilWarns + public :: FARKStepSetInitStep + public :: FARKStepSetMinStep + public :: FARKStepSetMaxStep + public :: FARKStepSetInterpolateStopTime + public :: FARKStepSetStopTime + public :: FARKStepClearStopTime + public :: FARKStepSetFixedStep + public :: FARKStepSetMaxNumConstrFails + public :: FARKStepSetRootDirection + public :: FARKStepSetNoInactiveRootWarn + public :: FARKStepSetUserData + public :: FARKStepSetPostprocessStepFn + public :: FARKStepSetPostprocessStageFn + public :: FARKStepSetStagePredictFn + public :: FARKStepSetJacFn + public :: FARKStepSetMassFn + public :: FARKStepSetJacEvalFrequency + public :: FARKStepSetLinearSolutionScaling + public :: FARKStepSetEpsLin + public :: FARKStepSetMassEpsLin + public :: FARKStepSetLSNormFactor + public :: FARKStepSetMassLSNormFactor + public :: FARKStepSetPreconditioner + public :: FARKStepSetMassPreconditioner + public :: FARKStepSetJacTimes + public :: FARKStepSetJacTimesRhsFn + public :: FARKStepSetMassTimes + public :: FARKStepSetLinSysFn + public :: FARKStepEvolve + public :: FARKStepGetDky + public :: FARKStepComputeState + public :: FARKStepGetNumExpSteps + public :: FARKStepGetNumAccSteps + public :: FARKStepGetNumStepAttempts + public :: FARKStepGetNumLinSolvSetups + public :: FARKStepGetNumErrTestFails + public :: FARKStepGetEstLocalErrors + public :: FARKStepGetWorkSpace + public :: FARKStepGetNumSteps + public :: FARKStepGetActualInitStep + public :: FARKStepGetLastStep + public :: FARKStepGetCurrentStep + public :: FARKStepGetCurrentTime + public :: FARKStepGetCurrentState + public :: FARKStepGetCurrentGamma + public :: FARKStepGetCurrentMassMatrix + public :: FARKStepGetTolScaleFactor + public :: FARKStepGetErrWeights + public :: FARKStepGetResWeights + public :: FARKStepGetNumGEvals + public :: FARKStepGetRootInfo + public :: FARKStepGetNumConstrFails + public :: FARKStepGetUserData + public :: FARKStepPrintAllStats + public :: FARKStepGetReturnFlagName + public :: FARKStepWriteParameters + public :: FARKStepWriteButcher + public :: FARKStepGetStepStats + public :: FARKStepGetNonlinearSystemData + public :: FARKStepGetNumNonlinSolvIters + public :: FARKStepGetNumNonlinSolvConvFails + public :: FARKStepGetNonlinSolvStats + public :: FARKStepGetNumStepSolveFails + public :: FARKStepGetJac + public :: FARKStepGetJacTime + public :: FARKStepGetJacNumSteps + public :: FARKStepGetLinWorkSpace + public :: FARKStepGetNumJacEvals + public :: FARKStepGetNumPrecEvals + public :: FARKStepGetNumPrecSolves + public :: FARKStepGetNumLinIters + public :: FARKStepGetNumLinConvFails + public :: FARKStepGetNumJTSetupEvals + public :: FARKStepGetNumJtimesEvals + public :: FARKStepGetNumLinRhsEvals + public :: FARKStepGetLastLinFlag + public :: FARKStepGetMassWorkSpace + public :: FARKStepGetNumMassSetups + public :: FARKStepGetNumMassMultSetups + public :: FARKStepGetNumMassMult + public :: FARKStepGetNumMassSolves + public :: FARKStepGetNumMassPrecEvals + public :: FARKStepGetNumMassPrecSolves + public :: FARKStepGetNumMassIters + public :: FARKStepGetNumMassConvFails + public :: FARKStepGetNumMTSetups + public :: FARKStepGetLastMassFlag + public :: FARKStepGetLinReturnFlagName + public :: FARKStepFree + public :: FARKStepPrintMem + public :: FARKStepSetRelaxFn + public :: FARKStepSetRelaxEtaFail + public :: FARKStepSetRelaxLowerBound + public :: FARKStepSetRelaxMaxFails + public :: FARKStepSetRelaxMaxIters + public :: FARKStepSetRelaxSolver + public :: FARKStepSetRelaxResTol + public :: FARKStepSetRelaxTol + public :: FARKStepSetRelaxUpperBound + public :: FARKStepGetNumRelaxFnEvals + public :: FARKStepGetNumRelaxJacEvals + public :: FARKStepGetNumRelaxFails + public :: FARKStepGetNumRelaxBoundFails + public :: FARKStepGetNumRelaxSolveFails + public :: FARKStepGetNumRelaxSolveIters + +! WRAPPER DECLARATIONS +interface +function swigc_FARKStepCreate(farg1, farg2, farg3, farg4, farg5) & +bind(C, name="_wrap_FARKStepCreate") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_FUNPTR), value :: farg1 +type(C_FUNPTR), value :: farg2 +real(C_DOUBLE), intent(in) :: farg3 +type(C_PTR), value :: farg4 +type(C_PTR), value :: farg5 +type(C_PTR) :: fresult +end function + +function swigc_FARKStepReInit(farg1, farg2, farg3, farg4, farg5) & +bind(C, name="_wrap_FARKStepReInit") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_FUNPTR), value :: farg2 +type(C_FUNPTR), value :: farg3 +real(C_DOUBLE), intent(in) :: farg4 +type(C_PTR), value :: farg5 +integer(C_INT) :: fresult +end function + +function swigc_FARKStepSetExplicit(farg1) & +bind(C, name="_wrap_FARKStepSetExplicit") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT) :: fresult +end function + +function swigc_FARKStepSetImplicit(farg1) & +bind(C, name="_wrap_FARKStepSetImplicit") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT) :: fresult +end function + +function swigc_FARKStepSetImEx(farg1) & +bind(C, name="_wrap_FARKStepSetImEx") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT) :: fresult +end function + +function swigc_FARKStepSetTables(farg1, farg2, farg3, farg4, farg5) & +bind(C, name="_wrap_FARKStepSetTables") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT), intent(in) :: farg3 +type(C_PTR), value :: farg4 +type(C_PTR), value :: farg5 +integer(C_INT) :: fresult +end function + +function swigc_FARKStepSetTableNum(farg1, farg2, farg3) & +bind(C, name="_wrap_FARKStepSetTableNum") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT), intent(in) :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FARKStepSetTableName(farg1, farg2, farg3) & +bind(C, name="_wrap_FARKStepSetTableName") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +import :: swigarraywrapper +type(C_PTR), value :: farg1 +type(SwigArrayWrapper) :: farg2 +type(SwigArrayWrapper) :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FARKStepGetNumRhsEvals(farg1, farg2, farg3) & +bind(C, name="_wrap_FARKStepGetNumRhsEvals") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FARKStepGetCurrentButcherTables(farg1, farg2, farg3) & +bind(C, name="_wrap_FARKStepGetCurrentButcherTables") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FARKStepGetTimestepperStats(farg1, farg2, farg3, farg4, farg5, farg6, farg7, farg8) & +bind(C, name="_wrap_FARKStepGetTimestepperStats") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +type(C_PTR), value :: farg4 +type(C_PTR), value :: farg5 +type(C_PTR), value :: farg6 +type(C_PTR), value :: farg7 +type(C_PTR), value :: farg8 +integer(C_INT) :: fresult +end function + +function swigc_FARKStepCreateMRIStepInnerStepper(farg1, farg2) & +bind(C, name="_wrap_FARKStepCreateMRIStepInnerStepper") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKStepResize(farg1, farg2, farg3, farg4, farg5, farg6) & +bind(C, name="_wrap_FARKStepResize") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +real(C_DOUBLE), intent(in) :: farg3 +real(C_DOUBLE), intent(in) :: farg4 +type(C_FUNPTR), value :: farg5 +type(C_PTR), value :: farg6 +integer(C_INT) :: fresult +end function + +function swigc_FARKStepReset(farg1, farg2, farg3) & +bind(C, name="_wrap_FARKStepReset") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FARKStepSStolerances(farg1, farg2, farg3) & +bind(C, name="_wrap_FARKStepSStolerances") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +real(C_DOUBLE), intent(in) :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FARKStepSVtolerances(farg1, farg2, farg3) & +bind(C, name="_wrap_FARKStepSVtolerances") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FARKStepWFtolerances(farg1, farg2) & +bind(C, name="_wrap_FARKStepWFtolerances") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_FUNPTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKStepResStolerance(farg1, farg2) & +bind(C, name="_wrap_FARKStepResStolerance") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKStepResVtolerance(farg1, farg2) & +bind(C, name="_wrap_FARKStepResVtolerance") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKStepResFtolerance(farg1, farg2) & +bind(C, name="_wrap_FARKStepResFtolerance") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_FUNPTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKStepSetLinearSolver(farg1, farg2, farg3) & +bind(C, name="_wrap_FARKStepSetLinearSolver") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FARKStepSetMassLinearSolver(farg1, farg2, farg3, farg4) & +bind(C, name="_wrap_FARKStepSetMassLinearSolver") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT), intent(in) :: farg4 +integer(C_INT) :: fresult +end function + +function swigc_FARKStepRootInit(farg1, farg2, farg3) & +bind(C, name="_wrap_FARKStepRootInit") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +type(C_FUNPTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FARKStepSetDefaults(farg1) & +bind(C, name="_wrap_FARKStepSetDefaults") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT) :: fresult +end function + +function swigc_FARKStepSetOptimalParams(farg1) & +bind(C, name="_wrap_FARKStepSetOptimalParams") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT) :: fresult +end function + +function swigc_FARKStepSetOrder(farg1, farg2) & +bind(C, name="_wrap_FARKStepSetOrder") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKStepSetInterpolantType(farg1, farg2) & +bind(C, name="_wrap_FARKStepSetInterpolantType") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKStepSetInterpolantDegree(farg1, farg2) & +bind(C, name="_wrap_FARKStepSetInterpolantDegree") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKStepSetDenseOrder(farg1, farg2) & +bind(C, name="_wrap_FARKStepSetDenseOrder") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKStepSetNonlinearSolver(farg1, farg2) & +bind(C, name="_wrap_FARKStepSetNonlinearSolver") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKStepSetNlsRhsFn(farg1, farg2) & +bind(C, name="_wrap_FARKStepSetNlsRhsFn") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_FUNPTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKStepSetLinear(farg1, farg2) & +bind(C, name="_wrap_FARKStepSetLinear") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKStepSetNonlinear(farg1) & +bind(C, name="_wrap_FARKStepSetNonlinear") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT) :: fresult +end function + +function swigc_FARKStepSetDeduceImplicitRhs(farg1, farg2) & +bind(C, name="_wrap_FARKStepSetDeduceImplicitRhs") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKStepSetAdaptController(farg1, farg2) & +bind(C, name="_wrap_FARKStepSetAdaptController") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKStepSetAdaptivityAdjustment(farg1, farg2) & +bind(C, name="_wrap_FARKStepSetAdaptivityAdjustment") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKStepSetCFLFraction(farg1, farg2) & +bind(C, name="_wrap_FARKStepSetCFLFraction") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKStepSetSafetyFactor(farg1, farg2) & +bind(C, name="_wrap_FARKStepSetSafetyFactor") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKStepSetErrorBias(farg1, farg2) & +bind(C, name="_wrap_FARKStepSetErrorBias") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKStepSetMaxGrowth(farg1, farg2) & +bind(C, name="_wrap_FARKStepSetMaxGrowth") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKStepSetMinReduction(farg1, farg2) & +bind(C, name="_wrap_FARKStepSetMinReduction") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKStepSetFixedStepBounds(farg1, farg2, farg3) & +bind(C, name="_wrap_FARKStepSetFixedStepBounds") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +real(C_DOUBLE), intent(in) :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FARKStepSetAdaptivityMethod(farg1, farg2, farg3, farg4, farg5) & +bind(C, name="_wrap_FARKStepSetAdaptivityMethod") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT), intent(in) :: farg3 +integer(C_INT), intent(in) :: farg4 +type(C_PTR), value :: farg5 +integer(C_INT) :: fresult +end function + +function swigc_FARKStepSetAdaptivityFn(farg1, farg2, farg3) & +bind(C, name="_wrap_FARKStepSetAdaptivityFn") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_FUNPTR), value :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FARKStepSetMaxFirstGrowth(farg1, farg2) & +bind(C, name="_wrap_FARKStepSetMaxFirstGrowth") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKStepSetMaxEFailGrowth(farg1, farg2) & +bind(C, name="_wrap_FARKStepSetMaxEFailGrowth") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKStepSetSmallNumEFails(farg1, farg2) & +bind(C, name="_wrap_FARKStepSetSmallNumEFails") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKStepSetMaxCFailGrowth(farg1, farg2) & +bind(C, name="_wrap_FARKStepSetMaxCFailGrowth") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKStepSetNonlinCRDown(farg1, farg2) & +bind(C, name="_wrap_FARKStepSetNonlinCRDown") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKStepSetNonlinRDiv(farg1, farg2) & +bind(C, name="_wrap_FARKStepSetNonlinRDiv") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKStepSetDeltaGammaMax(farg1, farg2) & +bind(C, name="_wrap_FARKStepSetDeltaGammaMax") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKStepSetLSetupFrequency(farg1, farg2) & +bind(C, name="_wrap_FARKStepSetLSetupFrequency") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKStepSetPredictorMethod(farg1, farg2) & +bind(C, name="_wrap_FARKStepSetPredictorMethod") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKStepSetStabilityFn(farg1, farg2, farg3) & +bind(C, name="_wrap_FARKStepSetStabilityFn") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_FUNPTR), value :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FARKStepSetMaxErrTestFails(farg1, farg2) & +bind(C, name="_wrap_FARKStepSetMaxErrTestFails") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKStepSetMaxNonlinIters(farg1, farg2) & +bind(C, name="_wrap_FARKStepSetMaxNonlinIters") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKStepSetMaxConvFails(farg1, farg2) & +bind(C, name="_wrap_FARKStepSetMaxConvFails") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKStepSetNonlinConvCoef(farg1, farg2) & +bind(C, name="_wrap_FARKStepSetNonlinConvCoef") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKStepSetConstraints(farg1, farg2) & +bind(C, name="_wrap_FARKStepSetConstraints") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKStepSetMaxNumSteps(farg1, farg2) & +bind(C, name="_wrap_FARKStepSetMaxNumSteps") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_LONG), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKStepSetMaxHnilWarns(farg1, farg2) & +bind(C, name="_wrap_FARKStepSetMaxHnilWarns") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKStepSetInitStep(farg1, farg2) & +bind(C, name="_wrap_FARKStepSetInitStep") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKStepSetMinStep(farg1, farg2) & +bind(C, name="_wrap_FARKStepSetMinStep") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKStepSetMaxStep(farg1, farg2) & +bind(C, name="_wrap_FARKStepSetMaxStep") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKStepSetInterpolateStopTime(farg1, farg2) & +bind(C, name="_wrap_FARKStepSetInterpolateStopTime") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKStepSetStopTime(farg1, farg2) & +bind(C, name="_wrap_FARKStepSetStopTime") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKStepClearStopTime(farg1) & +bind(C, name="_wrap_FARKStepClearStopTime") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT) :: fresult +end function + +function swigc_FARKStepSetFixedStep(farg1, farg2) & +bind(C, name="_wrap_FARKStepSetFixedStep") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKStepSetMaxNumConstrFails(farg1, farg2) & +bind(C, name="_wrap_FARKStepSetMaxNumConstrFails") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKStepSetRootDirection(farg1, farg2) & +bind(C, name="_wrap_FARKStepSetRootDirection") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKStepSetNoInactiveRootWarn(farg1) & +bind(C, name="_wrap_FARKStepSetNoInactiveRootWarn") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT) :: fresult +end function + +function swigc_FARKStepSetUserData(farg1, farg2) & +bind(C, name="_wrap_FARKStepSetUserData") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKStepSetPostprocessStepFn(farg1, farg2) & +bind(C, name="_wrap_FARKStepSetPostprocessStepFn") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_FUNPTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKStepSetPostprocessStageFn(farg1, farg2) & +bind(C, name="_wrap_FARKStepSetPostprocessStageFn") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_FUNPTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKStepSetStagePredictFn(farg1, farg2) & +bind(C, name="_wrap_FARKStepSetStagePredictFn") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_FUNPTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKStepSetJacFn(farg1, farg2) & +bind(C, name="_wrap_FARKStepSetJacFn") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_FUNPTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKStepSetMassFn(farg1, farg2) & +bind(C, name="_wrap_FARKStepSetMassFn") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_FUNPTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKStepSetJacEvalFrequency(farg1, farg2) & +bind(C, name="_wrap_FARKStepSetJacEvalFrequency") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_LONG), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKStepSetLinearSolutionScaling(farg1, farg2) & +bind(C, name="_wrap_FARKStepSetLinearSolutionScaling") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKStepSetEpsLin(farg1, farg2) & +bind(C, name="_wrap_FARKStepSetEpsLin") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKStepSetMassEpsLin(farg1, farg2) & +bind(C, name="_wrap_FARKStepSetMassEpsLin") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKStepSetLSNormFactor(farg1, farg2) & +bind(C, name="_wrap_FARKStepSetLSNormFactor") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKStepSetMassLSNormFactor(farg1, farg2) & +bind(C, name="_wrap_FARKStepSetMassLSNormFactor") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKStepSetPreconditioner(farg1, farg2, farg3) & +bind(C, name="_wrap_FARKStepSetPreconditioner") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_FUNPTR), value :: farg2 +type(C_FUNPTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FARKStepSetMassPreconditioner(farg1, farg2, farg3) & +bind(C, name="_wrap_FARKStepSetMassPreconditioner") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_FUNPTR), value :: farg2 +type(C_FUNPTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FARKStepSetJacTimes(farg1, farg2, farg3) & +bind(C, name="_wrap_FARKStepSetJacTimes") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_FUNPTR), value :: farg2 +type(C_FUNPTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FARKStepSetJacTimesRhsFn(farg1, farg2) & +bind(C, name="_wrap_FARKStepSetJacTimesRhsFn") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_FUNPTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKStepSetMassTimes(farg1, farg2, farg3, farg4) & +bind(C, name="_wrap_FARKStepSetMassTimes") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_FUNPTR), value :: farg2 +type(C_FUNPTR), value :: farg3 +type(C_PTR), value :: farg4 +integer(C_INT) :: fresult +end function + +function swigc_FARKStepSetLinSysFn(farg1, farg2) & +bind(C, name="_wrap_FARKStepSetLinSysFn") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_FUNPTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKStepEvolve(farg1, farg2, farg3, farg4, farg5) & +bind(C, name="_wrap_FARKStepEvolve") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +type(C_PTR), value :: farg3 +type(C_PTR), value :: farg4 +integer(C_INT), intent(in) :: farg5 +integer(C_INT) :: fresult +end function + +function swigc_FARKStepGetDky(farg1, farg2, farg3, farg4) & +bind(C, name="_wrap_FARKStepGetDky") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT), intent(in) :: farg3 +type(C_PTR), value :: farg4 +integer(C_INT) :: fresult +end function + +function swigc_FARKStepComputeState(farg1, farg2, farg3) & +bind(C, name="_wrap_FARKStepComputeState") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FARKStepGetNumExpSteps(farg1, farg2) & +bind(C, name="_wrap_FARKStepGetNumExpSteps") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKStepGetNumAccSteps(farg1, farg2) & +bind(C, name="_wrap_FARKStepGetNumAccSteps") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKStepGetNumStepAttempts(farg1, farg2) & +bind(C, name="_wrap_FARKStepGetNumStepAttempts") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKStepGetNumLinSolvSetups(farg1, farg2) & +bind(C, name="_wrap_FARKStepGetNumLinSolvSetups") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKStepGetNumErrTestFails(farg1, farg2) & +bind(C, name="_wrap_FARKStepGetNumErrTestFails") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKStepGetEstLocalErrors(farg1, farg2) & +bind(C, name="_wrap_FARKStepGetEstLocalErrors") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKStepGetWorkSpace(farg1, farg2, farg3) & +bind(C, name="_wrap_FARKStepGetWorkSpace") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FARKStepGetNumSteps(farg1, farg2) & +bind(C, name="_wrap_FARKStepGetNumSteps") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKStepGetActualInitStep(farg1, farg2) & +bind(C, name="_wrap_FARKStepGetActualInitStep") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKStepGetLastStep(farg1, farg2) & +bind(C, name="_wrap_FARKStepGetLastStep") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKStepGetCurrentStep(farg1, farg2) & +bind(C, name="_wrap_FARKStepGetCurrentStep") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKStepGetCurrentTime(farg1, farg2) & +bind(C, name="_wrap_FARKStepGetCurrentTime") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKStepGetCurrentState(farg1, farg2) & +bind(C, name="_wrap_FARKStepGetCurrentState") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKStepGetCurrentGamma(farg1, farg2) & +bind(C, name="_wrap_FARKStepGetCurrentGamma") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKStepGetCurrentMassMatrix(farg1, farg2) & +bind(C, name="_wrap_FARKStepGetCurrentMassMatrix") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKStepGetTolScaleFactor(farg1, farg2) & +bind(C, name="_wrap_FARKStepGetTolScaleFactor") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKStepGetErrWeights(farg1, farg2) & +bind(C, name="_wrap_FARKStepGetErrWeights") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKStepGetResWeights(farg1, farg2) & +bind(C, name="_wrap_FARKStepGetResWeights") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKStepGetNumGEvals(farg1, farg2) & +bind(C, name="_wrap_FARKStepGetNumGEvals") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKStepGetRootInfo(farg1, farg2) & +bind(C, name="_wrap_FARKStepGetRootInfo") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKStepGetNumConstrFails(farg1, farg2) & +bind(C, name="_wrap_FARKStepGetNumConstrFails") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKStepGetUserData(farg1, farg2) & +bind(C, name="_wrap_FARKStepGetUserData") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKStepPrintAllStats(farg1, farg2, farg3) & +bind(C, name="_wrap_FARKStepPrintAllStats") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT), intent(in) :: farg3 +integer(C_INT) :: fresult +end function + + subroutine SWIG_free(cptr) & + bind(C, name="free") + use, intrinsic :: ISO_C_BINDING + type(C_PTR), value :: cptr +end subroutine +function swigc_FARKStepGetReturnFlagName(farg1) & +bind(C, name="_wrap_FARKStepGetReturnFlagName") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +import :: swigarraywrapper +integer(C_LONG), intent(in) :: farg1 +type(SwigArrayWrapper) :: fresult +end function + +function swigc_FARKStepWriteParameters(farg1, farg2) & +bind(C, name="_wrap_FARKStepWriteParameters") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKStepWriteButcher(farg1, farg2) & +bind(C, name="_wrap_FARKStepWriteButcher") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKStepGetStepStats(farg1, farg2, farg3, farg4, farg5, farg6) & +bind(C, name="_wrap_FARKStepGetStepStats") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +type(C_PTR), value :: farg4 +type(C_PTR), value :: farg5 +type(C_PTR), value :: farg6 +integer(C_INT) :: fresult +end function + +function swigc_FARKStepGetNonlinearSystemData(farg1, farg2, farg3, farg4, farg5, farg6, farg7, farg8) & +bind(C, name="_wrap_FARKStepGetNonlinearSystemData") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +type(C_PTR), value :: farg4 +type(C_PTR), value :: farg5 +type(C_PTR), value :: farg6 +type(C_PTR), value :: farg7 +type(C_PTR), value :: farg8 +integer(C_INT) :: fresult +end function + +function swigc_FARKStepGetNumNonlinSolvIters(farg1, farg2) & +bind(C, name="_wrap_FARKStepGetNumNonlinSolvIters") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKStepGetNumNonlinSolvConvFails(farg1, farg2) & +bind(C, name="_wrap_FARKStepGetNumNonlinSolvConvFails") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKStepGetNonlinSolvStats(farg1, farg2, farg3) & +bind(C, name="_wrap_FARKStepGetNonlinSolvStats") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FARKStepGetNumStepSolveFails(farg1, farg2) & +bind(C, name="_wrap_FARKStepGetNumStepSolveFails") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKStepGetJac(farg1, farg2) & +bind(C, name="_wrap_FARKStepGetJac") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKStepGetJacTime(farg1, farg2) & +bind(C, name="_wrap_FARKStepGetJacTime") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKStepGetJacNumSteps(farg1, farg2) & +bind(C, name="_wrap_FARKStepGetJacNumSteps") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKStepGetLinWorkSpace(farg1, farg2, farg3) & +bind(C, name="_wrap_FARKStepGetLinWorkSpace") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FARKStepGetNumJacEvals(farg1, farg2) & +bind(C, name="_wrap_FARKStepGetNumJacEvals") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKStepGetNumPrecEvals(farg1, farg2) & +bind(C, name="_wrap_FARKStepGetNumPrecEvals") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKStepGetNumPrecSolves(farg1, farg2) & +bind(C, name="_wrap_FARKStepGetNumPrecSolves") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKStepGetNumLinIters(farg1, farg2) & +bind(C, name="_wrap_FARKStepGetNumLinIters") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKStepGetNumLinConvFails(farg1, farg2) & +bind(C, name="_wrap_FARKStepGetNumLinConvFails") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKStepGetNumJTSetupEvals(farg1, farg2) & +bind(C, name="_wrap_FARKStepGetNumJTSetupEvals") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKStepGetNumJtimesEvals(farg1, farg2) & +bind(C, name="_wrap_FARKStepGetNumJtimesEvals") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKStepGetNumLinRhsEvals(farg1, farg2) & +bind(C, name="_wrap_FARKStepGetNumLinRhsEvals") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKStepGetLastLinFlag(farg1, farg2) & +bind(C, name="_wrap_FARKStepGetLastLinFlag") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKStepGetMassWorkSpace(farg1, farg2, farg3) & +bind(C, name="_wrap_FARKStepGetMassWorkSpace") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FARKStepGetNumMassSetups(farg1, farg2) & +bind(C, name="_wrap_FARKStepGetNumMassSetups") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKStepGetNumMassMultSetups(farg1, farg2) & +bind(C, name="_wrap_FARKStepGetNumMassMultSetups") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKStepGetNumMassMult(farg1, farg2) & +bind(C, name="_wrap_FARKStepGetNumMassMult") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKStepGetNumMassSolves(farg1, farg2) & +bind(C, name="_wrap_FARKStepGetNumMassSolves") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKStepGetNumMassPrecEvals(farg1, farg2) & +bind(C, name="_wrap_FARKStepGetNumMassPrecEvals") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKStepGetNumMassPrecSolves(farg1, farg2) & +bind(C, name="_wrap_FARKStepGetNumMassPrecSolves") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKStepGetNumMassIters(farg1, farg2) & +bind(C, name="_wrap_FARKStepGetNumMassIters") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKStepGetNumMassConvFails(farg1, farg2) & +bind(C, name="_wrap_FARKStepGetNumMassConvFails") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKStepGetNumMTSetups(farg1, farg2) & +bind(C, name="_wrap_FARKStepGetNumMTSetups") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKStepGetLastMassFlag(farg1, farg2) & +bind(C, name="_wrap_FARKStepGetLastMassFlag") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKStepGetLinReturnFlagName(farg1) & +bind(C, name="_wrap_FARKStepGetLinReturnFlagName") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +import :: swigarraywrapper +integer(C_LONG), intent(in) :: farg1 +type(SwigArrayWrapper) :: fresult +end function + +subroutine swigc_FARKStepFree(farg1) & +bind(C, name="_wrap_FARKStepFree") +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +end subroutine + +subroutine swigc_FARKStepPrintMem(farg1, farg2) & +bind(C, name="_wrap_FARKStepPrintMem") +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +end subroutine + +function swigc_FARKStepSetRelaxFn(farg1, farg2, farg3) & +bind(C, name="_wrap_FARKStepSetRelaxFn") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_FUNPTR), value :: farg2 +type(C_FUNPTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FARKStepSetRelaxEtaFail(farg1, farg2) & +bind(C, name="_wrap_FARKStepSetRelaxEtaFail") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKStepSetRelaxLowerBound(farg1, farg2) & +bind(C, name="_wrap_FARKStepSetRelaxLowerBound") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKStepSetRelaxMaxFails(farg1, farg2) & +bind(C, name="_wrap_FARKStepSetRelaxMaxFails") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKStepSetRelaxMaxIters(farg1, farg2) & +bind(C, name="_wrap_FARKStepSetRelaxMaxIters") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKStepSetRelaxSolver(farg1, farg2) & +bind(C, name="_wrap_FARKStepSetRelaxSolver") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKStepSetRelaxResTol(farg1, farg2) & +bind(C, name="_wrap_FARKStepSetRelaxResTol") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKStepSetRelaxTol(farg1, farg2, farg3) & +bind(C, name="_wrap_FARKStepSetRelaxTol") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +real(C_DOUBLE), intent(in) :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FARKStepSetRelaxUpperBound(farg1, farg2) & +bind(C, name="_wrap_FARKStepSetRelaxUpperBound") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKStepGetNumRelaxFnEvals(farg1, farg2) & +bind(C, name="_wrap_FARKStepGetNumRelaxFnEvals") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKStepGetNumRelaxJacEvals(farg1, farg2) & +bind(C, name="_wrap_FARKStepGetNumRelaxJacEvals") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKStepGetNumRelaxFails(farg1, farg2) & +bind(C, name="_wrap_FARKStepGetNumRelaxFails") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKStepGetNumRelaxBoundFails(farg1, farg2) & +bind(C, name="_wrap_FARKStepGetNumRelaxBoundFails") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKStepGetNumRelaxSolveFails(farg1, farg2) & +bind(C, name="_wrap_FARKStepGetNumRelaxSolveFails") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKStepGetNumRelaxSolveIters(farg1, farg2) & +bind(C, name="_wrap_FARKStepGetNumRelaxSolveIters") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +end interface + + +contains + ! MODULE SUBPROGRAMS +function FARKStepCreate(fe, fi, t0, y0, sunctx) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +type(C_PTR) :: swig_result +type(C_FUNPTR), intent(in), value :: fe +type(C_FUNPTR), intent(in), value :: fi +real(C_DOUBLE), intent(in) :: t0 +type(N_Vector), target, intent(inout) :: y0 +type(C_PTR) :: sunctx +type(C_PTR) :: fresult +type(C_FUNPTR) :: farg1 +type(C_FUNPTR) :: farg2 +real(C_DOUBLE) :: farg3 +type(C_PTR) :: farg4 +type(C_PTR) :: farg5 + +farg1 = fe +farg2 = fi +farg3 = t0 +farg4 = c_loc(y0) +farg5 = sunctx +fresult = swigc_FARKStepCreate(farg1, farg2, farg3, farg4, farg5) +swig_result = fresult +end function + +function FARKStepReInit(arkode_mem, fe, fi, t0, y0) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +type(C_FUNPTR), intent(in), value :: fe +type(C_FUNPTR), intent(in), value :: fi +real(C_DOUBLE), intent(in) :: t0 +type(N_Vector), target, intent(inout) :: y0 +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_FUNPTR) :: farg2 +type(C_FUNPTR) :: farg3 +real(C_DOUBLE) :: farg4 +type(C_PTR) :: farg5 + +farg1 = arkode_mem +farg2 = fe +farg3 = fi +farg4 = t0 +farg5 = c_loc(y0) +fresult = swigc_FARKStepReInit(farg1, farg2, farg3, farg4, farg5) +swig_result = fresult +end function + +function FARKStepSetExplicit(arkode_mem) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_INT) :: fresult +type(C_PTR) :: farg1 + +farg1 = arkode_mem +fresult = swigc_FARKStepSetExplicit(farg1) +swig_result = fresult +end function + +function FARKStepSetImplicit(arkode_mem) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_INT) :: fresult +type(C_PTR) :: farg1 + +farg1 = arkode_mem +fresult = swigc_FARKStepSetImplicit(farg1) +swig_result = fresult +end function + +function FARKStepSetImEx(arkode_mem) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_INT) :: fresult +type(C_PTR) :: farg1 + +farg1 = arkode_mem +fresult = swigc_FARKStepSetImEx(farg1) +swig_result = fresult +end function + +function FARKStepSetTables(arkode_mem, q, p, bi, be) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_INT), intent(in) :: q +integer(C_INT), intent(in) :: p +type(C_PTR) :: bi +type(C_PTR) :: be +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 +integer(C_INT) :: farg3 +type(C_PTR) :: farg4 +type(C_PTR) :: farg5 + +farg1 = arkode_mem +farg2 = q +farg3 = p +farg4 = bi +farg5 = be +fresult = swigc_FARKStepSetTables(farg1, farg2, farg3, farg4, farg5) +swig_result = fresult +end function + +function FARKStepSetTableNum(arkode_mem, itable, etable) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(ARKODE_DIRKTableID), intent(in) :: itable +integer(ARKODE_ERKTableID), intent(in) :: etable +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 +integer(C_INT) :: farg3 + +farg1 = arkode_mem +farg2 = itable +farg3 = etable +fresult = swigc_FARKStepSetTableNum(farg1, farg2, farg3) +swig_result = fresult +end function + + +subroutine SWIG_string_to_chararray(string, chars, wrap) + use, intrinsic :: ISO_C_BINDING + character(kind=C_CHAR, len=*), intent(IN) :: string + character(kind=C_CHAR), dimension(:), target, allocatable, intent(OUT) :: chars + type(SwigArrayWrapper), intent(OUT) :: wrap + integer :: i + + allocate(character(kind=C_CHAR) :: chars(len(string) + 1)) + do i=1,len(string) + chars(i) = string(i:i) + end do + i = len(string) + 1 + chars(i) = C_NULL_CHAR ! C string compatibility + wrap%data = c_loc(chars) + wrap%size = len(string) +end subroutine + +function FARKStepSetTableName(arkode_mem, itable, etable) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +character(kind=C_CHAR, len=*), target :: itable +character(kind=C_CHAR), dimension(:), allocatable, target :: farg2_chars +character(kind=C_CHAR, len=*), target :: etable +character(kind=C_CHAR), dimension(:), allocatable, target :: farg3_chars +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(SwigArrayWrapper) :: farg2 +type(SwigArrayWrapper) :: farg3 + +farg1 = arkode_mem +call SWIG_string_to_chararray(itable, farg2_chars, farg2) +call SWIG_string_to_chararray(etable, farg3_chars, farg3) +fresult = swigc_FARKStepSetTableName(farg1, farg2, farg3) +swig_result = fresult +end function + +function FARKStepGetNumRhsEvals(arkode_mem, nfe_evals, nfi_evals) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: nfe_evals +integer(C_LONG), dimension(*), target, intent(inout) :: nfi_evals +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = arkode_mem +farg2 = c_loc(nfe_evals(1)) +farg3 = c_loc(nfi_evals(1)) +fresult = swigc_FARKStepGetNumRhsEvals(farg1, farg2, farg3) +swig_result = fresult +end function + +function FARKStepGetCurrentButcherTables(arkode_mem, bi, be) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +type(C_PTR), target, intent(inout) :: bi +type(C_PTR), target, intent(inout) :: be +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = arkode_mem +farg2 = c_loc(bi) +farg3 = c_loc(be) +fresult = swigc_FARKStepGetCurrentButcherTables(farg1, farg2, farg3) +swig_result = fresult +end function + +function FARKStepGetTimestepperStats(arkode_mem, expsteps, accsteps, step_attempts, nfe_evals, nfi_evals, nlinsetups, & + netfails) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: expsteps +integer(C_LONG), dimension(*), target, intent(inout) :: accsteps +integer(C_LONG), dimension(*), target, intent(inout) :: step_attempts +integer(C_LONG), dimension(*), target, intent(inout) :: nfe_evals +integer(C_LONG), dimension(*), target, intent(inout) :: nfi_evals +integer(C_LONG), dimension(*), target, intent(inout) :: nlinsetups +integer(C_LONG), dimension(*), target, intent(inout) :: netfails +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 +type(C_PTR) :: farg4 +type(C_PTR) :: farg5 +type(C_PTR) :: farg6 +type(C_PTR) :: farg7 +type(C_PTR) :: farg8 + +farg1 = arkode_mem +farg2 = c_loc(expsteps(1)) +farg3 = c_loc(accsteps(1)) +farg4 = c_loc(step_attempts(1)) +farg5 = c_loc(nfe_evals(1)) +farg6 = c_loc(nfi_evals(1)) +farg7 = c_loc(nlinsetups(1)) +farg8 = c_loc(netfails(1)) +fresult = swigc_FARKStepGetTimestepperStats(farg1, farg2, farg3, farg4, farg5, farg6, farg7, farg8) +swig_result = fresult +end function + +function FARKStepCreateMRIStepInnerStepper(arkode_mem, stepper) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +type(C_PTR), target, intent(inout) :: stepper +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(stepper) +fresult = swigc_FARKStepCreateMRIStepInnerStepper(farg1, farg2) +swig_result = fresult +end function + +function FARKStepResize(arkode_mem, ynew, hscale, t0, resize, resize_data) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +type(N_Vector), target, intent(inout) :: ynew +real(C_DOUBLE), intent(in) :: hscale +real(C_DOUBLE), intent(in) :: t0 +type(C_FUNPTR), intent(in), value :: resize +type(C_PTR) :: resize_data +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +real(C_DOUBLE) :: farg3 +real(C_DOUBLE) :: farg4 +type(C_FUNPTR) :: farg5 +type(C_PTR) :: farg6 + +farg1 = arkode_mem +farg2 = c_loc(ynew) +farg3 = hscale +farg4 = t0 +farg5 = resize +farg6 = resize_data +fresult = swigc_FARKStepResize(farg1, farg2, farg3, farg4, farg5, farg6) +swig_result = fresult +end function + +function FARKStepReset(arkode_mem, tr, yr) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +real(C_DOUBLE), intent(in) :: tr +type(N_Vector), target, intent(inout) :: yr +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 +type(C_PTR) :: farg3 + +farg1 = arkode_mem +farg2 = tr +farg3 = c_loc(yr) +fresult = swigc_FARKStepReset(farg1, farg2, farg3) +swig_result = fresult +end function + +function FARKStepSStolerances(arkode_mem, reltol, abstol) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +real(C_DOUBLE), intent(in) :: reltol +real(C_DOUBLE), intent(in) :: abstol +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 +real(C_DOUBLE) :: farg3 + +farg1 = arkode_mem +farg2 = reltol +farg3 = abstol +fresult = swigc_FARKStepSStolerances(farg1, farg2, farg3) +swig_result = fresult +end function + +function FARKStepSVtolerances(arkode_mem, reltol, abstol) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +real(C_DOUBLE), intent(in) :: reltol +type(N_Vector), target, intent(inout) :: abstol +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 +type(C_PTR) :: farg3 + +farg1 = arkode_mem +farg2 = reltol +farg3 = c_loc(abstol) +fresult = swigc_FARKStepSVtolerances(farg1, farg2, farg3) +swig_result = fresult +end function + +function FARKStepWFtolerances(arkode_mem, efun) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +type(C_FUNPTR), intent(in), value :: efun +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_FUNPTR) :: farg2 + +farg1 = arkode_mem +farg2 = efun +fresult = swigc_FARKStepWFtolerances(farg1, farg2) +swig_result = fresult +end function + +function FARKStepResStolerance(arkode_mem, rabstol) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +real(C_DOUBLE), intent(in) :: rabstol +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 + +farg1 = arkode_mem +farg2 = rabstol +fresult = swigc_FARKStepResStolerance(farg1, farg2) +swig_result = fresult +end function + +function FARKStepResVtolerance(arkode_mem, rabstol) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +type(N_Vector), target, intent(inout) :: rabstol +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(rabstol) +fresult = swigc_FARKStepResVtolerance(farg1, farg2) +swig_result = fresult +end function + +function FARKStepResFtolerance(arkode_mem, rfun) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +type(C_FUNPTR), intent(in), value :: rfun +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_FUNPTR) :: farg2 + +farg1 = arkode_mem +farg2 = rfun +fresult = swigc_FARKStepResFtolerance(farg1, farg2) +swig_result = fresult +end function + +function FARKStepSetLinearSolver(arkode_mem, ls, a) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +type(SUNLinearSolver), target, intent(inout) :: ls +type(SUNMatrix), target, intent(inout) :: a +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = arkode_mem +farg2 = c_loc(ls) +farg3 = c_loc(a) +fresult = swigc_FARKStepSetLinearSolver(farg1, farg2, farg3) +swig_result = fresult +end function + +function FARKStepSetMassLinearSolver(arkode_mem, ls, m, time_dep) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +type(SUNLinearSolver), target, intent(inout) :: ls +type(SUNMatrix), target, intent(inout) :: m +integer(C_INT), intent(in) :: time_dep +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 +integer(C_INT) :: farg4 + +farg1 = arkode_mem +farg2 = c_loc(ls) +farg3 = c_loc(m) +farg4 = time_dep +fresult = swigc_FARKStepSetMassLinearSolver(farg1, farg2, farg3, farg4) +swig_result = fresult +end function + +function FARKStepRootInit(arkode_mem, nrtfn, g) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_INT), intent(in) :: nrtfn +type(C_FUNPTR), intent(in), value :: g +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 +type(C_FUNPTR) :: farg3 + +farg1 = arkode_mem +farg2 = nrtfn +farg3 = g +fresult = swigc_FARKStepRootInit(farg1, farg2, farg3) +swig_result = fresult +end function + +function FARKStepSetDefaults(arkode_mem) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_INT) :: fresult +type(C_PTR) :: farg1 + +farg1 = arkode_mem +fresult = swigc_FARKStepSetDefaults(farg1) +swig_result = fresult +end function + +function FARKStepSetOptimalParams(arkode_mem) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_INT) :: fresult +type(C_PTR) :: farg1 + +farg1 = arkode_mem +fresult = swigc_FARKStepSetOptimalParams(farg1) +swig_result = fresult +end function + +function FARKStepSetOrder(arkode_mem, maxord) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_INT), intent(in) :: maxord +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = arkode_mem +farg2 = maxord +fresult = swigc_FARKStepSetOrder(farg1, farg2) +swig_result = fresult +end function + +function FARKStepSetInterpolantType(arkode_mem, itype) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_INT), intent(in) :: itype +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = arkode_mem +farg2 = itype +fresult = swigc_FARKStepSetInterpolantType(farg1, farg2) +swig_result = fresult +end function + +function FARKStepSetInterpolantDegree(arkode_mem, degree) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_INT), intent(in) :: degree +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = arkode_mem +farg2 = degree +fresult = swigc_FARKStepSetInterpolantDegree(farg1, farg2) +swig_result = fresult +end function + +function FARKStepSetDenseOrder(arkode_mem, dord) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_INT), intent(in) :: dord +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = arkode_mem +farg2 = dord +fresult = swigc_FARKStepSetDenseOrder(farg1, farg2) +swig_result = fresult +end function + +function FARKStepSetNonlinearSolver(arkode_mem, nls) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +type(SUNNonlinearSolver), target, intent(inout) :: nls +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(nls) +fresult = swigc_FARKStepSetNonlinearSolver(farg1, farg2) +swig_result = fresult +end function + +function FARKStepSetNlsRhsFn(arkode_mem, nls_fi) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +type(C_FUNPTR), intent(in), value :: nls_fi +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_FUNPTR) :: farg2 + +farg1 = arkode_mem +farg2 = nls_fi +fresult = swigc_FARKStepSetNlsRhsFn(farg1, farg2) +swig_result = fresult +end function + +function FARKStepSetLinear(arkode_mem, timedepend) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_INT), intent(in) :: timedepend +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = arkode_mem +farg2 = timedepend +fresult = swigc_FARKStepSetLinear(farg1, farg2) +swig_result = fresult +end function + +function FARKStepSetNonlinear(arkode_mem) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_INT) :: fresult +type(C_PTR) :: farg1 + +farg1 = arkode_mem +fresult = swigc_FARKStepSetNonlinear(farg1) +swig_result = fresult +end function + +function FARKStepSetDeduceImplicitRhs(arkode_mem, deduce) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_INT), intent(in) :: deduce +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = arkode_mem +farg2 = deduce +fresult = swigc_FARKStepSetDeduceImplicitRhs(farg1, farg2) +swig_result = fresult +end function + +function FARKStepSetAdaptController(arkode_mem, c) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +type(SUNAdaptController), target, intent(inout) :: c +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(c) +fresult = swigc_FARKStepSetAdaptController(farg1, farg2) +swig_result = fresult +end function + +function FARKStepSetAdaptivityAdjustment(arkode_mem, adjust) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_INT), intent(in) :: adjust +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = arkode_mem +farg2 = adjust +fresult = swigc_FARKStepSetAdaptivityAdjustment(farg1, farg2) +swig_result = fresult +end function + +function FARKStepSetCFLFraction(arkode_mem, cfl_frac) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +real(C_DOUBLE), intent(in) :: cfl_frac +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 + +farg1 = arkode_mem +farg2 = cfl_frac +fresult = swigc_FARKStepSetCFLFraction(farg1, farg2) +swig_result = fresult +end function + +function FARKStepSetSafetyFactor(arkode_mem, safety) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +real(C_DOUBLE), intent(in) :: safety +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 + +farg1 = arkode_mem +farg2 = safety +fresult = swigc_FARKStepSetSafetyFactor(farg1, farg2) +swig_result = fresult +end function + +function FARKStepSetErrorBias(arkode_mem, bias) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +real(C_DOUBLE), intent(in) :: bias +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 + +farg1 = arkode_mem +farg2 = bias +fresult = swigc_FARKStepSetErrorBias(farg1, farg2) +swig_result = fresult +end function + +function FARKStepSetMaxGrowth(arkode_mem, mx_growth) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +real(C_DOUBLE), intent(in) :: mx_growth +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 + +farg1 = arkode_mem +farg2 = mx_growth +fresult = swigc_FARKStepSetMaxGrowth(farg1, farg2) +swig_result = fresult +end function + +function FARKStepSetMinReduction(arkode_mem, eta_min) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +real(C_DOUBLE), intent(in) :: eta_min +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 + +farg1 = arkode_mem +farg2 = eta_min +fresult = swigc_FARKStepSetMinReduction(farg1, farg2) +swig_result = fresult +end function + +function FARKStepSetFixedStepBounds(arkode_mem, lb, ub) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +real(C_DOUBLE), intent(in) :: lb +real(C_DOUBLE), intent(in) :: ub +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 +real(C_DOUBLE) :: farg3 + +farg1 = arkode_mem +farg2 = lb +farg3 = ub +fresult = swigc_FARKStepSetFixedStepBounds(farg1, farg2, farg3) +swig_result = fresult +end function + +function FARKStepSetAdaptivityMethod(arkode_mem, imethod, idefault, pq, adapt_params) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_INT), intent(in) :: imethod +integer(C_INT), intent(in) :: idefault +integer(C_INT), intent(in) :: pq +real(C_DOUBLE), dimension(3), target, intent(inout) :: adapt_params +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 +integer(C_INT) :: farg3 +integer(C_INT) :: farg4 +type(C_PTR) :: farg5 + +farg1 = arkode_mem +farg2 = imethod +farg3 = idefault +farg4 = pq +farg5 = c_loc(adapt_params(1)) +fresult = swigc_FARKStepSetAdaptivityMethod(farg1, farg2, farg3, farg4, farg5) +swig_result = fresult +end function + +function FARKStepSetAdaptivityFn(arkode_mem, hfun, h_data) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +type(C_FUNPTR), intent(in), value :: hfun +type(C_PTR) :: h_data +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_FUNPTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = arkode_mem +farg2 = hfun +farg3 = h_data +fresult = swigc_FARKStepSetAdaptivityFn(farg1, farg2, farg3) +swig_result = fresult +end function + +function FARKStepSetMaxFirstGrowth(arkode_mem, etamx1) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +real(C_DOUBLE), intent(in) :: etamx1 +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 + +farg1 = arkode_mem +farg2 = etamx1 +fresult = swigc_FARKStepSetMaxFirstGrowth(farg1, farg2) +swig_result = fresult +end function + +function FARKStepSetMaxEFailGrowth(arkode_mem, etamxf) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +real(C_DOUBLE), intent(in) :: etamxf +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 + +farg1 = arkode_mem +farg2 = etamxf +fresult = swigc_FARKStepSetMaxEFailGrowth(farg1, farg2) +swig_result = fresult +end function + +function FARKStepSetSmallNumEFails(arkode_mem, small_nef) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_INT), intent(in) :: small_nef +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = arkode_mem +farg2 = small_nef +fresult = swigc_FARKStepSetSmallNumEFails(farg1, farg2) +swig_result = fresult +end function + +function FARKStepSetMaxCFailGrowth(arkode_mem, etacf) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +real(C_DOUBLE), intent(in) :: etacf +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 + +farg1 = arkode_mem +farg2 = etacf +fresult = swigc_FARKStepSetMaxCFailGrowth(farg1, farg2) +swig_result = fresult +end function + +function FARKStepSetNonlinCRDown(arkode_mem, crdown) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +real(C_DOUBLE), intent(in) :: crdown +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 + +farg1 = arkode_mem +farg2 = crdown +fresult = swigc_FARKStepSetNonlinCRDown(farg1, farg2) +swig_result = fresult +end function + +function FARKStepSetNonlinRDiv(arkode_mem, rdiv) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +real(C_DOUBLE), intent(in) :: rdiv +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 + +farg1 = arkode_mem +farg2 = rdiv +fresult = swigc_FARKStepSetNonlinRDiv(farg1, farg2) +swig_result = fresult +end function + +function FARKStepSetDeltaGammaMax(arkode_mem, dgmax) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +real(C_DOUBLE), intent(in) :: dgmax +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 + +farg1 = arkode_mem +farg2 = dgmax +fresult = swigc_FARKStepSetDeltaGammaMax(farg1, farg2) +swig_result = fresult +end function + +function FARKStepSetLSetupFrequency(arkode_mem, msbp) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_INT), intent(in) :: msbp +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = arkode_mem +farg2 = msbp +fresult = swigc_FARKStepSetLSetupFrequency(farg1, farg2) +swig_result = fresult +end function + +function FARKStepSetPredictorMethod(arkode_mem, method) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_INT), intent(in) :: method +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = arkode_mem +farg2 = method +fresult = swigc_FARKStepSetPredictorMethod(farg1, farg2) +swig_result = fresult +end function + +function FARKStepSetStabilityFn(arkode_mem, estab, estab_data) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +type(C_FUNPTR), intent(in), value :: estab +type(C_PTR) :: estab_data +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_FUNPTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = arkode_mem +farg2 = estab +farg3 = estab_data +fresult = swigc_FARKStepSetStabilityFn(farg1, farg2, farg3) +swig_result = fresult +end function + +function FARKStepSetMaxErrTestFails(arkode_mem, maxnef) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_INT), intent(in) :: maxnef +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = arkode_mem +farg2 = maxnef +fresult = swigc_FARKStepSetMaxErrTestFails(farg1, farg2) +swig_result = fresult +end function + +function FARKStepSetMaxNonlinIters(arkode_mem, maxcor) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_INT), intent(in) :: maxcor +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = arkode_mem +farg2 = maxcor +fresult = swigc_FARKStepSetMaxNonlinIters(farg1, farg2) +swig_result = fresult +end function + +function FARKStepSetMaxConvFails(arkode_mem, maxncf) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_INT), intent(in) :: maxncf +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = arkode_mem +farg2 = maxncf +fresult = swigc_FARKStepSetMaxConvFails(farg1, farg2) +swig_result = fresult +end function + +function FARKStepSetNonlinConvCoef(arkode_mem, nlscoef) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +real(C_DOUBLE), intent(in) :: nlscoef +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 + +farg1 = arkode_mem +farg2 = nlscoef +fresult = swigc_FARKStepSetNonlinConvCoef(farg1, farg2) +swig_result = fresult +end function + +function FARKStepSetConstraints(arkode_mem, constraints) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +type(N_Vector), target, intent(inout) :: constraints +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(constraints) +fresult = swigc_FARKStepSetConstraints(farg1, farg2) +swig_result = fresult +end function + +function FARKStepSetMaxNumSteps(arkode_mem, mxsteps) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_LONG), intent(in) :: mxsteps +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_LONG) :: farg2 + +farg1 = arkode_mem +farg2 = mxsteps +fresult = swigc_FARKStepSetMaxNumSteps(farg1, farg2) +swig_result = fresult +end function + +function FARKStepSetMaxHnilWarns(arkode_mem, mxhnil) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_INT), intent(in) :: mxhnil +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = arkode_mem +farg2 = mxhnil +fresult = swigc_FARKStepSetMaxHnilWarns(farg1, farg2) +swig_result = fresult +end function + +function FARKStepSetInitStep(arkode_mem, hin) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +real(C_DOUBLE), intent(in) :: hin +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 + +farg1 = arkode_mem +farg2 = hin +fresult = swigc_FARKStepSetInitStep(farg1, farg2) +swig_result = fresult +end function + +function FARKStepSetMinStep(arkode_mem, hmin) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +real(C_DOUBLE), intent(in) :: hmin +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 + +farg1 = arkode_mem +farg2 = hmin +fresult = swigc_FARKStepSetMinStep(farg1, farg2) +swig_result = fresult +end function + +function FARKStepSetMaxStep(arkode_mem, hmax) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +real(C_DOUBLE), intent(in) :: hmax +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 + +farg1 = arkode_mem +farg2 = hmax +fresult = swigc_FARKStepSetMaxStep(farg1, farg2) +swig_result = fresult +end function + +function FARKStepSetInterpolateStopTime(arkode_mem, interp) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_INT), intent(in) :: interp +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = arkode_mem +farg2 = interp +fresult = swigc_FARKStepSetInterpolateStopTime(farg1, farg2) +swig_result = fresult +end function + +function FARKStepSetStopTime(arkode_mem, tstop) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +real(C_DOUBLE), intent(in) :: tstop +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 + +farg1 = arkode_mem +farg2 = tstop +fresult = swigc_FARKStepSetStopTime(farg1, farg2) +swig_result = fresult +end function + +function FARKStepClearStopTime(arkode_mem) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_INT) :: fresult +type(C_PTR) :: farg1 + +farg1 = arkode_mem +fresult = swigc_FARKStepClearStopTime(farg1) +swig_result = fresult +end function + +function FARKStepSetFixedStep(arkode_mem, hfixed) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +real(C_DOUBLE), intent(in) :: hfixed +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 + +farg1 = arkode_mem +farg2 = hfixed +fresult = swigc_FARKStepSetFixedStep(farg1, farg2) +swig_result = fresult +end function + +function FARKStepSetMaxNumConstrFails(arkode_mem, maxfails) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_INT), intent(in) :: maxfails +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = arkode_mem +farg2 = maxfails +fresult = swigc_FARKStepSetMaxNumConstrFails(farg1, farg2) +swig_result = fresult +end function + +function FARKStepSetRootDirection(arkode_mem, rootdir) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_INT), dimension(*), target, intent(inout) :: rootdir +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(rootdir(1)) +fresult = swigc_FARKStepSetRootDirection(farg1, farg2) +swig_result = fresult +end function + +function FARKStepSetNoInactiveRootWarn(arkode_mem) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_INT) :: fresult +type(C_PTR) :: farg1 + +farg1 = arkode_mem +fresult = swigc_FARKStepSetNoInactiveRootWarn(farg1) +swig_result = fresult +end function + +function FARKStepSetUserData(arkode_mem, user_data) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +type(C_PTR) :: user_data +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = user_data +fresult = swigc_FARKStepSetUserData(farg1, farg2) +swig_result = fresult +end function + +function FARKStepSetPostprocessStepFn(arkode_mem, processstep) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +type(C_FUNPTR), intent(in), value :: processstep +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_FUNPTR) :: farg2 + +farg1 = arkode_mem +farg2 = processstep +fresult = swigc_FARKStepSetPostprocessStepFn(farg1, farg2) +swig_result = fresult +end function + +function FARKStepSetPostprocessStageFn(arkode_mem, processstage) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +type(C_FUNPTR), intent(in), value :: processstage +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_FUNPTR) :: farg2 + +farg1 = arkode_mem +farg2 = processstage +fresult = swigc_FARKStepSetPostprocessStageFn(farg1, farg2) +swig_result = fresult +end function + +function FARKStepSetStagePredictFn(arkode_mem, predictstage) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +type(C_FUNPTR), intent(in), value :: predictstage +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_FUNPTR) :: farg2 + +farg1 = arkode_mem +farg2 = predictstage +fresult = swigc_FARKStepSetStagePredictFn(farg1, farg2) +swig_result = fresult +end function + +function FARKStepSetJacFn(arkode_mem, jac) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +type(C_FUNPTR), intent(in), value :: jac +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_FUNPTR) :: farg2 + +farg1 = arkode_mem +farg2 = jac +fresult = swigc_FARKStepSetJacFn(farg1, farg2) +swig_result = fresult +end function + +function FARKStepSetMassFn(arkode_mem, mass) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +type(C_FUNPTR), intent(in), value :: mass +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_FUNPTR) :: farg2 + +farg1 = arkode_mem +farg2 = mass +fresult = swigc_FARKStepSetMassFn(farg1, farg2) +swig_result = fresult +end function + +function FARKStepSetJacEvalFrequency(arkode_mem, msbj) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_LONG), intent(in) :: msbj +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_LONG) :: farg2 + +farg1 = arkode_mem +farg2 = msbj +fresult = swigc_FARKStepSetJacEvalFrequency(farg1, farg2) +swig_result = fresult +end function + +function FARKStepSetLinearSolutionScaling(arkode_mem, onoff) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_INT), intent(in) :: onoff +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = arkode_mem +farg2 = onoff +fresult = swigc_FARKStepSetLinearSolutionScaling(farg1, farg2) +swig_result = fresult +end function + +function FARKStepSetEpsLin(arkode_mem, eplifac) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +real(C_DOUBLE), intent(in) :: eplifac +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 + +farg1 = arkode_mem +farg2 = eplifac +fresult = swigc_FARKStepSetEpsLin(farg1, farg2) +swig_result = fresult +end function + +function FARKStepSetMassEpsLin(arkode_mem, eplifac) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +real(C_DOUBLE), intent(in) :: eplifac +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 + +farg1 = arkode_mem +farg2 = eplifac +fresult = swigc_FARKStepSetMassEpsLin(farg1, farg2) +swig_result = fresult +end function + +function FARKStepSetLSNormFactor(arkode_mem, nrmfac) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +real(C_DOUBLE), intent(in) :: nrmfac +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 + +farg1 = arkode_mem +farg2 = nrmfac +fresult = swigc_FARKStepSetLSNormFactor(farg1, farg2) +swig_result = fresult +end function + +function FARKStepSetMassLSNormFactor(arkode_mem, nrmfac) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +real(C_DOUBLE), intent(in) :: nrmfac +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 + +farg1 = arkode_mem +farg2 = nrmfac +fresult = swigc_FARKStepSetMassLSNormFactor(farg1, farg2) +swig_result = fresult +end function + +function FARKStepSetPreconditioner(arkode_mem, psetup, psolve) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +type(C_FUNPTR), intent(in), value :: psetup +type(C_FUNPTR), intent(in), value :: psolve +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_FUNPTR) :: farg2 +type(C_FUNPTR) :: farg3 + +farg1 = arkode_mem +farg2 = psetup +farg3 = psolve +fresult = swigc_FARKStepSetPreconditioner(farg1, farg2, farg3) +swig_result = fresult +end function + +function FARKStepSetMassPreconditioner(arkode_mem, psetup, psolve) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +type(C_FUNPTR), intent(in), value :: psetup +type(C_FUNPTR), intent(in), value :: psolve +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_FUNPTR) :: farg2 +type(C_FUNPTR) :: farg3 + +farg1 = arkode_mem +farg2 = psetup +farg3 = psolve +fresult = swigc_FARKStepSetMassPreconditioner(farg1, farg2, farg3) +swig_result = fresult +end function + +function FARKStepSetJacTimes(arkode_mem, jtsetup, jtimes) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +type(C_FUNPTR), intent(in), value :: jtsetup +type(C_FUNPTR), intent(in), value :: jtimes +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_FUNPTR) :: farg2 +type(C_FUNPTR) :: farg3 + +farg1 = arkode_mem +farg2 = jtsetup +farg3 = jtimes +fresult = swigc_FARKStepSetJacTimes(farg1, farg2, farg3) +swig_result = fresult +end function + +function FARKStepSetJacTimesRhsFn(arkode_mem, jtimesrhsfn) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +type(C_FUNPTR), intent(in), value :: jtimesrhsfn +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_FUNPTR) :: farg2 + +farg1 = arkode_mem +farg2 = jtimesrhsfn +fresult = swigc_FARKStepSetJacTimesRhsFn(farg1, farg2) +swig_result = fresult +end function + +function FARKStepSetMassTimes(arkode_mem, msetup, mtimes, mtimes_data) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +type(C_FUNPTR), intent(in), value :: msetup +type(C_FUNPTR), intent(in), value :: mtimes +type(C_PTR) :: mtimes_data +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_FUNPTR) :: farg2 +type(C_FUNPTR) :: farg3 +type(C_PTR) :: farg4 + +farg1 = arkode_mem +farg2 = msetup +farg3 = mtimes +farg4 = mtimes_data +fresult = swigc_FARKStepSetMassTimes(farg1, farg2, farg3, farg4) +swig_result = fresult +end function + +function FARKStepSetLinSysFn(arkode_mem, linsys) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +type(C_FUNPTR), intent(in), value :: linsys +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_FUNPTR) :: farg2 + +farg1 = arkode_mem +farg2 = linsys +fresult = swigc_FARKStepSetLinSysFn(farg1, farg2) +swig_result = fresult +end function + +function FARKStepEvolve(arkode_mem, tout, yout, tret, itask) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +real(C_DOUBLE), intent(in) :: tout +type(N_Vector), target, intent(inout) :: yout +real(C_DOUBLE), dimension(*), target, intent(inout) :: tret +integer(C_INT), intent(in) :: itask +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 +type(C_PTR) :: farg3 +type(C_PTR) :: farg4 +integer(C_INT) :: farg5 + +farg1 = arkode_mem +farg2 = tout +farg3 = c_loc(yout) +farg4 = c_loc(tret(1)) +farg5 = itask +fresult = swigc_FARKStepEvolve(farg1, farg2, farg3, farg4, farg5) +swig_result = fresult +end function + +function FARKStepGetDky(arkode_mem, t, k, dky) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +real(C_DOUBLE), intent(in) :: t +integer(C_INT), intent(in) :: k +type(N_Vector), target, intent(inout) :: dky +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 +integer(C_INT) :: farg3 +type(C_PTR) :: farg4 + +farg1 = arkode_mem +farg2 = t +farg3 = k +farg4 = c_loc(dky) +fresult = swigc_FARKStepGetDky(farg1, farg2, farg3, farg4) +swig_result = fresult +end function + +function FARKStepComputeState(arkode_mem, zcor, z) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +type(N_Vector), target, intent(inout) :: zcor +type(N_Vector), target, intent(inout) :: z +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = arkode_mem +farg2 = c_loc(zcor) +farg3 = c_loc(z) +fresult = swigc_FARKStepComputeState(farg1, farg2, farg3) +swig_result = fresult +end function + +function FARKStepGetNumExpSteps(arkode_mem, expsteps) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: expsteps +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(expsteps(1)) +fresult = swigc_FARKStepGetNumExpSteps(farg1, farg2) +swig_result = fresult +end function + +function FARKStepGetNumAccSteps(arkode_mem, accsteps) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: accsteps +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(accsteps(1)) +fresult = swigc_FARKStepGetNumAccSteps(farg1, farg2) +swig_result = fresult +end function + +function FARKStepGetNumStepAttempts(arkode_mem, step_attempts) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: step_attempts +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(step_attempts(1)) +fresult = swigc_FARKStepGetNumStepAttempts(farg1, farg2) +swig_result = fresult +end function + +function FARKStepGetNumLinSolvSetups(arkode_mem, nlinsetups) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: nlinsetups +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(nlinsetups(1)) +fresult = swigc_FARKStepGetNumLinSolvSetups(farg1, farg2) +swig_result = fresult +end function + +function FARKStepGetNumErrTestFails(arkode_mem, netfails) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: netfails +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(netfails(1)) +fresult = swigc_FARKStepGetNumErrTestFails(farg1, farg2) +swig_result = fresult +end function + +function FARKStepGetEstLocalErrors(arkode_mem, ele) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +type(N_Vector), target, intent(inout) :: ele +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(ele) +fresult = swigc_FARKStepGetEstLocalErrors(farg1, farg2) +swig_result = fresult +end function + +function FARKStepGetWorkSpace(arkode_mem, lenrw, leniw) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: lenrw +integer(C_LONG), dimension(*), target, intent(inout) :: leniw +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = arkode_mem +farg2 = c_loc(lenrw(1)) +farg3 = c_loc(leniw(1)) +fresult = swigc_FARKStepGetWorkSpace(farg1, farg2, farg3) +swig_result = fresult +end function + +function FARKStepGetNumSteps(arkode_mem, nsteps) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: nsteps +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(nsteps(1)) +fresult = swigc_FARKStepGetNumSteps(farg1, farg2) +swig_result = fresult +end function + +function FARKStepGetActualInitStep(arkode_mem, hinused) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +real(C_DOUBLE), dimension(*), target, intent(inout) :: hinused +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(hinused(1)) +fresult = swigc_FARKStepGetActualInitStep(farg1, farg2) +swig_result = fresult +end function + +function FARKStepGetLastStep(arkode_mem, hlast) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +real(C_DOUBLE), dimension(*), target, intent(inout) :: hlast +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(hlast(1)) +fresult = swigc_FARKStepGetLastStep(farg1, farg2) +swig_result = fresult +end function + +function FARKStepGetCurrentStep(arkode_mem, hcur) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +real(C_DOUBLE), dimension(*), target, intent(inout) :: hcur +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(hcur(1)) +fresult = swigc_FARKStepGetCurrentStep(farg1, farg2) +swig_result = fresult +end function + +function FARKStepGetCurrentTime(arkode_mem, tcur) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +real(C_DOUBLE), dimension(*), target, intent(inout) :: tcur +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(tcur(1)) +fresult = swigc_FARKStepGetCurrentTime(farg1, farg2) +swig_result = fresult +end function + +function FARKStepGetCurrentState(arkode_mem, state) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +type(C_PTR) :: state +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = state +fresult = swigc_FARKStepGetCurrentState(farg1, farg2) +swig_result = fresult +end function + +function FARKStepGetCurrentGamma(arkode_mem, gamma) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +real(C_DOUBLE), dimension(*), target, intent(inout) :: gamma +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(gamma(1)) +fresult = swigc_FARKStepGetCurrentGamma(farg1, farg2) +swig_result = fresult +end function + +function FARKStepGetCurrentMassMatrix(arkode_mem, m) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +type(C_PTR), target, intent(inout) :: m +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(m) +fresult = swigc_FARKStepGetCurrentMassMatrix(farg1, farg2) +swig_result = fresult +end function + +function FARKStepGetTolScaleFactor(arkode_mem, tolsfac) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +real(C_DOUBLE), dimension(*), target, intent(inout) :: tolsfac +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(tolsfac(1)) +fresult = swigc_FARKStepGetTolScaleFactor(farg1, farg2) +swig_result = fresult +end function + +function FARKStepGetErrWeights(arkode_mem, eweight) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +type(N_Vector), target, intent(inout) :: eweight +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(eweight) +fresult = swigc_FARKStepGetErrWeights(farg1, farg2) +swig_result = fresult +end function + +function FARKStepGetResWeights(arkode_mem, rweight) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +type(N_Vector), target, intent(inout) :: rweight +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(rweight) +fresult = swigc_FARKStepGetResWeights(farg1, farg2) +swig_result = fresult +end function + +function FARKStepGetNumGEvals(arkode_mem, ngevals) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: ngevals +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(ngevals(1)) +fresult = swigc_FARKStepGetNumGEvals(farg1, farg2) +swig_result = fresult +end function + +function FARKStepGetRootInfo(arkode_mem, rootsfound) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_INT), dimension(*), target, intent(inout) :: rootsfound +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(rootsfound(1)) +fresult = swigc_FARKStepGetRootInfo(farg1, farg2) +swig_result = fresult +end function + +function FARKStepGetNumConstrFails(arkode_mem, nconstrfails) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: nconstrfails +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(nconstrfails(1)) +fresult = swigc_FARKStepGetNumConstrFails(farg1, farg2) +swig_result = fresult +end function + +function FARKStepGetUserData(arkode_mem, user_data) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +type(C_PTR), target, intent(inout) :: user_data +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(user_data) +fresult = swigc_FARKStepGetUserData(farg1, farg2) +swig_result = fresult +end function + +function FARKStepPrintAllStats(arkode_mem, outfile, fmt) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +type(C_PTR) :: outfile +integer(SUNOutputFormat), intent(in) :: fmt +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +integer(C_INT) :: farg3 + +farg1 = arkode_mem +farg2 = outfile +farg3 = fmt +fresult = swigc_FARKStepPrintAllStats(farg1, farg2, farg3) +swig_result = fresult +end function + + +subroutine SWIG_chararray_to_string(wrap, string) + use, intrinsic :: ISO_C_BINDING + type(SwigArrayWrapper), intent(IN) :: wrap + character(kind=C_CHAR, len=:), allocatable, intent(OUT) :: string + character(kind=C_CHAR), dimension(:), pointer :: chars + integer(kind=C_SIZE_T) :: i + call c_f_pointer(wrap%data, chars, [wrap%size]) + allocate(character(kind=C_CHAR, len=wrap%size) :: string) + do i=1, wrap%size + string(i:i) = chars(i) + end do +end subroutine + +function FARKStepGetReturnFlagName(flag) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +character(kind=C_CHAR, len=:), allocatable :: swig_result +integer(C_LONG), intent(in) :: flag +type(SwigArrayWrapper) :: fresult +integer(C_LONG) :: farg1 + +farg1 = flag +fresult = swigc_FARKStepGetReturnFlagName(farg1) +call SWIG_chararray_to_string(fresult, swig_result) +if (.false.) call SWIG_free(fresult%data) +end function + +function FARKStepWriteParameters(arkode_mem, fp) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +type(C_PTR) :: fp +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = fp +fresult = swigc_FARKStepWriteParameters(farg1, farg2) +swig_result = fresult +end function + +function FARKStepWriteButcher(arkode_mem, fp) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +type(C_PTR) :: fp +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = fp +fresult = swigc_FARKStepWriteButcher(farg1, farg2) +swig_result = fresult +end function + +function FARKStepGetStepStats(arkode_mem, nsteps, hinused, hlast, hcur, tcur) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: nsteps +real(C_DOUBLE), dimension(*), target, intent(inout) :: hinused +real(C_DOUBLE), dimension(*), target, intent(inout) :: hlast +real(C_DOUBLE), dimension(*), target, intent(inout) :: hcur +real(C_DOUBLE), dimension(*), target, intent(inout) :: tcur +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 +type(C_PTR) :: farg4 +type(C_PTR) :: farg5 +type(C_PTR) :: farg6 + +farg1 = arkode_mem +farg2 = c_loc(nsteps(1)) +farg3 = c_loc(hinused(1)) +farg4 = c_loc(hlast(1)) +farg5 = c_loc(hcur(1)) +farg6 = c_loc(tcur(1)) +fresult = swigc_FARKStepGetStepStats(farg1, farg2, farg3, farg4, farg5, farg6) +swig_result = fresult +end function + +function FARKStepGetNonlinearSystemData(arkode_mem, tcur, zpred, z, fi, gamma, sdata, user_data) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +real(C_DOUBLE), dimension(*), target, intent(inout) :: tcur +type(C_PTR) :: zpred +type(C_PTR) :: z +type(C_PTR) :: fi +real(C_DOUBLE), dimension(*), target, intent(inout) :: gamma +type(C_PTR) :: sdata +type(C_PTR), target, intent(inout) :: user_data +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 +type(C_PTR) :: farg4 +type(C_PTR) :: farg5 +type(C_PTR) :: farg6 +type(C_PTR) :: farg7 +type(C_PTR) :: farg8 + +farg1 = arkode_mem +farg2 = c_loc(tcur(1)) +farg3 = zpred +farg4 = z +farg5 = fi +farg6 = c_loc(gamma(1)) +farg7 = sdata +farg8 = c_loc(user_data) +fresult = swigc_FARKStepGetNonlinearSystemData(farg1, farg2, farg3, farg4, farg5, farg6, farg7, farg8) +swig_result = fresult +end function + +function FARKStepGetNumNonlinSolvIters(arkode_mem, nniters) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: nniters +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(nniters(1)) +fresult = swigc_FARKStepGetNumNonlinSolvIters(farg1, farg2) +swig_result = fresult +end function + +function FARKStepGetNumNonlinSolvConvFails(arkode_mem, nnfails) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: nnfails +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(nnfails(1)) +fresult = swigc_FARKStepGetNumNonlinSolvConvFails(farg1, farg2) +swig_result = fresult +end function + +function FARKStepGetNonlinSolvStats(arkode_mem, nniters, nnfails) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: nniters +integer(C_LONG), dimension(*), target, intent(inout) :: nnfails +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = arkode_mem +farg2 = c_loc(nniters(1)) +farg3 = c_loc(nnfails(1)) +fresult = swigc_FARKStepGetNonlinSolvStats(farg1, farg2, farg3) +swig_result = fresult +end function + +function FARKStepGetNumStepSolveFails(arkode_mem, nncfails) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: nncfails +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(nncfails(1)) +fresult = swigc_FARKStepGetNumStepSolveFails(farg1, farg2) +swig_result = fresult +end function + +function FARKStepGetJac(arkode_mem, j) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +type(C_PTR), target, intent(inout) :: j +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(j) +fresult = swigc_FARKStepGetJac(farg1, farg2) +swig_result = fresult +end function + +function FARKStepGetJacTime(arkode_mem, t_j) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +real(C_DOUBLE), dimension(*), target, intent(inout) :: t_j +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(t_j(1)) +fresult = swigc_FARKStepGetJacTime(farg1, farg2) +swig_result = fresult +end function + +function FARKStepGetJacNumSteps(arkode_mem, nst_j) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: nst_j +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(nst_j(1)) +fresult = swigc_FARKStepGetJacNumSteps(farg1, farg2) +swig_result = fresult +end function + +function FARKStepGetLinWorkSpace(arkode_mem, lenrwls, leniwls) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: lenrwls +integer(C_LONG), dimension(*), target, intent(inout) :: leniwls +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = arkode_mem +farg2 = c_loc(lenrwls(1)) +farg3 = c_loc(leniwls(1)) +fresult = swigc_FARKStepGetLinWorkSpace(farg1, farg2, farg3) +swig_result = fresult +end function + +function FARKStepGetNumJacEvals(arkode_mem, njevals) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: njevals +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(njevals(1)) +fresult = swigc_FARKStepGetNumJacEvals(farg1, farg2) +swig_result = fresult +end function + +function FARKStepGetNumPrecEvals(arkode_mem, npevals) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: npevals +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(npevals(1)) +fresult = swigc_FARKStepGetNumPrecEvals(farg1, farg2) +swig_result = fresult +end function + +function FARKStepGetNumPrecSolves(arkode_mem, npsolves) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: npsolves +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(npsolves(1)) +fresult = swigc_FARKStepGetNumPrecSolves(farg1, farg2) +swig_result = fresult +end function + +function FARKStepGetNumLinIters(arkode_mem, nliters) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: nliters +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(nliters(1)) +fresult = swigc_FARKStepGetNumLinIters(farg1, farg2) +swig_result = fresult +end function + +function FARKStepGetNumLinConvFails(arkode_mem, nlcfails) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: nlcfails +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(nlcfails(1)) +fresult = swigc_FARKStepGetNumLinConvFails(farg1, farg2) +swig_result = fresult +end function + +function FARKStepGetNumJTSetupEvals(arkode_mem, njtsetups) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: njtsetups +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(njtsetups(1)) +fresult = swigc_FARKStepGetNumJTSetupEvals(farg1, farg2) +swig_result = fresult +end function + +function FARKStepGetNumJtimesEvals(arkode_mem, njvevals) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: njvevals +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(njvevals(1)) +fresult = swigc_FARKStepGetNumJtimesEvals(farg1, farg2) +swig_result = fresult +end function + +function FARKStepGetNumLinRhsEvals(arkode_mem, nfevalsls) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: nfevalsls +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(nfevalsls(1)) +fresult = swigc_FARKStepGetNumLinRhsEvals(farg1, farg2) +swig_result = fresult +end function + +function FARKStepGetLastLinFlag(arkode_mem, flag) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: flag +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(flag(1)) +fresult = swigc_FARKStepGetLastLinFlag(farg1, farg2) +swig_result = fresult +end function + +function FARKStepGetMassWorkSpace(arkode_mem, lenrwmls, leniwmls) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: lenrwmls +integer(C_LONG), dimension(*), target, intent(inout) :: leniwmls +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = arkode_mem +farg2 = c_loc(lenrwmls(1)) +farg3 = c_loc(leniwmls(1)) +fresult = swigc_FARKStepGetMassWorkSpace(farg1, farg2, farg3) +swig_result = fresult +end function + +function FARKStepGetNumMassSetups(arkode_mem, nmsetups) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: nmsetups +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(nmsetups(1)) +fresult = swigc_FARKStepGetNumMassSetups(farg1, farg2) +swig_result = fresult +end function + +function FARKStepGetNumMassMultSetups(arkode_mem, nmvsetups) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: nmvsetups +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(nmvsetups(1)) +fresult = swigc_FARKStepGetNumMassMultSetups(farg1, farg2) +swig_result = fresult +end function + +function FARKStepGetNumMassMult(arkode_mem, nmvevals) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: nmvevals +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(nmvevals(1)) +fresult = swigc_FARKStepGetNumMassMult(farg1, farg2) +swig_result = fresult +end function + +function FARKStepGetNumMassSolves(arkode_mem, nmsolves) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: nmsolves +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(nmsolves(1)) +fresult = swigc_FARKStepGetNumMassSolves(farg1, farg2) +swig_result = fresult +end function + +function FARKStepGetNumMassPrecEvals(arkode_mem, nmpevals) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: nmpevals +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(nmpevals(1)) +fresult = swigc_FARKStepGetNumMassPrecEvals(farg1, farg2) +swig_result = fresult +end function + +function FARKStepGetNumMassPrecSolves(arkode_mem, nmpsolves) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: nmpsolves +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(nmpsolves(1)) +fresult = swigc_FARKStepGetNumMassPrecSolves(farg1, farg2) +swig_result = fresult +end function + +function FARKStepGetNumMassIters(arkode_mem, nmiters) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: nmiters +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(nmiters(1)) +fresult = swigc_FARKStepGetNumMassIters(farg1, farg2) +swig_result = fresult +end function + +function FARKStepGetNumMassConvFails(arkode_mem, nmcfails) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: nmcfails +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(nmcfails(1)) +fresult = swigc_FARKStepGetNumMassConvFails(farg1, farg2) +swig_result = fresult +end function + +function FARKStepGetNumMTSetups(arkode_mem, nmtsetups) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: nmtsetups +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(nmtsetups(1)) +fresult = swigc_FARKStepGetNumMTSetups(farg1, farg2) +swig_result = fresult +end function + +function FARKStepGetLastMassFlag(arkode_mem, flag) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: flag +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(flag(1)) +fresult = swigc_FARKStepGetLastMassFlag(farg1, farg2) +swig_result = fresult +end function + +function FARKStepGetLinReturnFlagName(flag) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +character(kind=C_CHAR, len=:), allocatable :: swig_result +integer(C_LONG), intent(in) :: flag +type(SwigArrayWrapper) :: fresult +integer(C_LONG) :: farg1 + +farg1 = flag +fresult = swigc_FARKStepGetLinReturnFlagName(farg1) +call SWIG_chararray_to_string(fresult, swig_result) +if (.false.) call SWIG_free(fresult%data) +end function + +subroutine FARKStepFree(arkode_mem) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), target, intent(inout) :: arkode_mem +type(C_PTR) :: farg1 + +farg1 = c_loc(arkode_mem) +call swigc_FARKStepFree(farg1) +end subroutine + +subroutine FARKStepPrintMem(arkode_mem, outfile) +use, intrinsic :: ISO_C_BINDING +type(C_PTR) :: arkode_mem +type(C_PTR) :: outfile +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = outfile +call swigc_FARKStepPrintMem(farg1, farg2) +end subroutine + +function FARKStepSetRelaxFn(arkode_mem, rfn, rjac) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +type(C_FUNPTR), intent(in), value :: rfn +type(C_FUNPTR), intent(in), value :: rjac +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_FUNPTR) :: farg2 +type(C_FUNPTR) :: farg3 + +farg1 = arkode_mem +farg2 = rfn +farg3 = rjac +fresult = swigc_FARKStepSetRelaxFn(farg1, farg2, farg3) +swig_result = fresult +end function + +function FARKStepSetRelaxEtaFail(arkode_mem, eta_rf) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +real(C_DOUBLE), intent(in) :: eta_rf +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 + +farg1 = arkode_mem +farg2 = eta_rf +fresult = swigc_FARKStepSetRelaxEtaFail(farg1, farg2) +swig_result = fresult +end function + +function FARKStepSetRelaxLowerBound(arkode_mem, lower) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +real(C_DOUBLE), intent(in) :: lower +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 + +farg1 = arkode_mem +farg2 = lower +fresult = swigc_FARKStepSetRelaxLowerBound(farg1, farg2) +swig_result = fresult +end function + +function FARKStepSetRelaxMaxFails(arkode_mem, max_fails) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_INT), intent(in) :: max_fails +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = arkode_mem +farg2 = max_fails +fresult = swigc_FARKStepSetRelaxMaxFails(farg1, farg2) +swig_result = fresult +end function + +function FARKStepSetRelaxMaxIters(arkode_mem, max_iters) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_INT), intent(in) :: max_iters +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = arkode_mem +farg2 = max_iters +fresult = swigc_FARKStepSetRelaxMaxIters(farg1, farg2) +swig_result = fresult +end function + +function FARKStepSetRelaxSolver(arkode_mem, solver) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(ARKRelaxSolver), intent(in) :: solver +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = arkode_mem +farg2 = solver +fresult = swigc_FARKStepSetRelaxSolver(farg1, farg2) +swig_result = fresult +end function + +function FARKStepSetRelaxResTol(arkode_mem, res_tol) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +real(C_DOUBLE), intent(in) :: res_tol +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 + +farg1 = arkode_mem +farg2 = res_tol +fresult = swigc_FARKStepSetRelaxResTol(farg1, farg2) +swig_result = fresult +end function + +function FARKStepSetRelaxTol(arkode_mem, rel_tol, abs_tol) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +real(C_DOUBLE), intent(in) :: rel_tol +real(C_DOUBLE), intent(in) :: abs_tol +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 +real(C_DOUBLE) :: farg3 + +farg1 = arkode_mem +farg2 = rel_tol +farg3 = abs_tol +fresult = swigc_FARKStepSetRelaxTol(farg1, farg2, farg3) +swig_result = fresult +end function + +function FARKStepSetRelaxUpperBound(arkode_mem, upper) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +real(C_DOUBLE), intent(in) :: upper +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 + +farg1 = arkode_mem +farg2 = upper +fresult = swigc_FARKStepSetRelaxUpperBound(farg1, farg2) +swig_result = fresult +end function + +function FARKStepGetNumRelaxFnEvals(arkode_mem, r_evals) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: r_evals +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(r_evals(1)) +fresult = swigc_FARKStepGetNumRelaxFnEvals(farg1, farg2) +swig_result = fresult +end function + +function FARKStepGetNumRelaxJacEvals(arkode_mem, j_evals) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: j_evals +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(j_evals(1)) +fresult = swigc_FARKStepGetNumRelaxJacEvals(farg1, farg2) +swig_result = fresult +end function + +function FARKStepGetNumRelaxFails(arkode_mem, relax_fails) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: relax_fails +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(relax_fails(1)) +fresult = swigc_FARKStepGetNumRelaxFails(farg1, farg2) +swig_result = fresult +end function + +function FARKStepGetNumRelaxBoundFails(arkode_mem, fails) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: fails +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(fails(1)) +fresult = swigc_FARKStepGetNumRelaxBoundFails(farg1, farg2) +swig_result = fresult +end function + +function FARKStepGetNumRelaxSolveFails(arkode_mem, fails) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: fails +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(fails(1)) +fresult = swigc_FARKStepGetNumRelaxSolveFails(farg1, farg2) +swig_result = fresult +end function + +function FARKStepGetNumRelaxSolveIters(arkode_mem, iters) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: iters +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(iters(1)) +fresult = swigc_FARKStepGetNumRelaxSolveIters(farg1, farg2) +swig_result = fresult +end function + + +end module diff --git a/src/arkode/fmod_int64/farkode_erkstep_mod.c b/src/arkode/fmod_int64/farkode_erkstep_mod.c new file mode 100644 index 0000000000..5def57befc --- /dev/null +++ b/src/arkode/fmod_int64/farkode_erkstep_mod.c @@ -0,0 +1,1563 @@ +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.0 + * + * This file is not intended to be easily readable and contains a number of + * coding conventions designed to improve portability and efficiency. Do not make + * changes to this file unless you know what you are doing--modify the SWIG + * interface file instead. + * ----------------------------------------------------------------------------- */ + +/* --------------------------------------------------------------- + * Programmer(s): Auto-generated by swig. + * --------------------------------------------------------------- + * SUNDIALS Copyright Start + * Copyright (c) 2002-2024, Lawrence Livermore National Security + * and Southern Methodist University. + * All rights reserved. + * + * See the top-level LICENSE and NOTICE files for details. + * + * SPDX-License-Identifier: BSD-3-Clause + * SUNDIALS Copyright End + * -------------------------------------------------------------*/ + +/* ----------------------------------------------------------------------------- + * This section contains generic SWIG labels for method/variable + * declarations/attributes, and other compiler dependent labels. + * ----------------------------------------------------------------------------- */ + +/* template workaround for compilers that cannot correctly implement the C++ standard */ +#ifndef SWIGTEMPLATEDISAMBIGUATOR +# if defined(__SUNPRO_CC) && (__SUNPRO_CC <= 0x560) +# define SWIGTEMPLATEDISAMBIGUATOR template +# elif defined(__HP_aCC) +/* Needed even with `aCC -AA' when `aCC -V' reports HP ANSI C++ B3910B A.03.55 */ +/* If we find a maximum version that requires this, the test would be __HP_aCC <= 35500 for A.03.55 */ +# define SWIGTEMPLATEDISAMBIGUATOR template +# else +# define SWIGTEMPLATEDISAMBIGUATOR +# endif +#endif + +/* inline attribute */ +#ifndef SWIGINLINE +# if defined(__cplusplus) || (defined(__GNUC__) && !defined(__STRICT_ANSI__)) +# define SWIGINLINE inline +# else +# define SWIGINLINE +# endif +#endif + +/* attribute recognised by some compilers to avoid 'unused' warnings */ +#ifndef SWIGUNUSED +# if defined(__GNUC__) +# if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)) +# define SWIGUNUSED __attribute__ ((__unused__)) +# else +# define SWIGUNUSED +# endif +# elif defined(__ICC) +# define SWIGUNUSED __attribute__ ((__unused__)) +# else +# define SWIGUNUSED +# endif +#endif + +#ifndef SWIG_MSC_UNSUPPRESS_4505 +# if defined(_MSC_VER) +# pragma warning(disable : 4505) /* unreferenced local function has been removed */ +# endif +#endif + +#ifndef SWIGUNUSEDPARM +# ifdef __cplusplus +# define SWIGUNUSEDPARM(p) +# else +# define SWIGUNUSEDPARM(p) p SWIGUNUSED +# endif +#endif + +/* internal SWIG method */ +#ifndef SWIGINTERN +# define SWIGINTERN static SWIGUNUSED +#endif + +/* internal inline SWIG method */ +#ifndef SWIGINTERNINLINE +# define SWIGINTERNINLINE SWIGINTERN SWIGINLINE +#endif + +/* qualifier for exported *const* global data variables*/ +#ifndef SWIGEXTERN +# ifdef __cplusplus +# define SWIGEXTERN extern +# else +# define SWIGEXTERN +# endif +#endif + +/* exporting methods */ +#if defined(__GNUC__) +# if (__GNUC__ >= 4) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) +# ifndef GCC_HASCLASSVISIBILITY +# define GCC_HASCLASSVISIBILITY +# endif +# endif +#endif + +#ifndef SWIGEXPORT +# if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__) +# if defined(STATIC_LINKED) +# define SWIGEXPORT +# else +# define SWIGEXPORT __declspec(dllexport) +# endif +# else +# if defined(__GNUC__) && defined(GCC_HASCLASSVISIBILITY) +# define SWIGEXPORT __attribute__ ((visibility("default"))) +# else +# define SWIGEXPORT +# endif +# endif +#endif + +/* calling conventions for Windows */ +#ifndef SWIGSTDCALL +# if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__) +# define SWIGSTDCALL __stdcall +# else +# define SWIGSTDCALL +# endif +#endif + +/* Deal with Microsoft's attempt at deprecating C standard runtime functions */ +#if !defined(SWIG_NO_CRT_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_CRT_SECURE_NO_DEPRECATE) +# define _CRT_SECURE_NO_DEPRECATE +#endif + +/* Deal with Microsoft's attempt at deprecating methods in the standard C++ library */ +#if !defined(SWIG_NO_SCL_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_SCL_SECURE_NO_DEPRECATE) +# define _SCL_SECURE_NO_DEPRECATE +#endif + +/* Deal with Apple's deprecated 'AssertMacros.h' from Carbon-framework */ +#if defined(__APPLE__) && !defined(__ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES) +# define __ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES 0 +#endif + +/* Intel's compiler complains if a variable which was never initialised is + * cast to void, which is a common idiom which we use to indicate that we + * are aware a variable isn't used. So we just silence that warning. + * See: https://github.com/swig/swig/issues/192 for more discussion. + */ +#ifdef __INTEL_COMPILER +# pragma warning disable 592 +#endif + +/* Errors in SWIG */ +#define SWIG_UnknownError -1 +#define SWIG_IOError -2 +#define SWIG_RuntimeError -3 +#define SWIG_IndexError -4 +#define SWIG_TypeError -5 +#define SWIG_DivisionByZero -6 +#define SWIG_OverflowError -7 +#define SWIG_SyntaxError -8 +#define SWIG_ValueError -9 +#define SWIG_SystemError -10 +#define SWIG_AttributeError -11 +#define SWIG_MemoryError -12 +#define SWIG_NullReferenceError -13 + + + + +#include +#define SWIG_exception_impl(DECL, CODE, MSG, RETURNNULL) \ + { printf("In " DECL ": " MSG); assert(0); RETURNNULL; } + + +#include +#if defined(_MSC_VER) || defined(__BORLANDC__) || defined(_WATCOM) +# ifndef snprintf +# define snprintf _snprintf +# endif +#endif + + +/* Support for the `contract` feature. + * + * Note that RETURNNULL is first because it's inserted via a 'Replaceall' in + * the fortran.cxx file. + */ +#define SWIG_contract_assert(RETURNNULL, EXPR, MSG) \ + if (!(EXPR)) { SWIG_exception_impl("$decl", SWIG_ValueError, MSG, RETURNNULL); } + + +#define SWIGVERSION 0x040000 +#define SWIG_VERSION SWIGVERSION + + +#define SWIG_as_voidptr(a) (void *)((const void *)(a)) +#define SWIG_as_voidptrptr(a) ((void)SWIG_as_voidptr(*a),(void**)(a)) + + +#include "arkode/arkode_erkstep.h" + + +#include +#ifdef _MSC_VER +# ifndef strtoull +# define strtoull _strtoui64 +# endif +# ifndef strtoll +# define strtoll _strtoi64 +# endif +#endif + + +typedef struct { + void* data; + size_t size; +} SwigArrayWrapper; + + +SWIGINTERN SwigArrayWrapper SwigArrayWrapper_uninitialized() { + SwigArrayWrapper result; + result.data = NULL; + result.size = 0; + return result; +} + + +#include + +SWIGEXPORT void * _wrap_FERKStepCreate(ARKRhsFn farg1, double const *farg2, N_Vector farg3, void *farg4) { + void * fresult ; + ARKRhsFn arg1 = (ARKRhsFn) 0 ; + sunrealtype arg2 ; + N_Vector arg3 = (N_Vector) 0 ; + SUNContext arg4 = (SUNContext) 0 ; + void *result = 0 ; + + arg1 = (ARKRhsFn)(farg1); + arg2 = (sunrealtype)(*farg2); + arg3 = (N_Vector)(farg3); + arg4 = (SUNContext)(farg4); + result = (void *)ERKStepCreate(arg1,arg2,arg3,arg4); + fresult = result; + return fresult; +} + + +SWIGEXPORT int _wrap_FERKStepReInit(void *farg1, ARKRhsFn farg2, double const *farg3, N_Vector farg4) { + int fresult ; + void *arg1 = (void *) 0 ; + ARKRhsFn arg2 = (ARKRhsFn) 0 ; + sunrealtype arg3 ; + N_Vector arg4 = (N_Vector) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (ARKRhsFn)(farg2); + arg3 = (sunrealtype)(*farg3); + arg4 = (N_Vector)(farg4); + result = (int)ERKStepReInit(arg1,arg2,arg3,arg4); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FERKStepSetTable(void *farg1, void *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + ARKodeButcherTable arg2 = (ARKodeButcherTable) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (ARKodeButcherTable)(farg2); + result = (int)ERKStepSetTable(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FERKStepSetTableNum(void *farg1, int const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + ARKODE_ERKTableID arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (ARKODE_ERKTableID)(*farg2); + result = (int)ERKStepSetTableNum(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FERKStepSetTableName(void *farg1, SwigArrayWrapper *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + char *arg2 = (char *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (char *)(farg2->data); + result = (int)ERKStepSetTableName(arg1,(char const *)arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FERKStepGetNumRhsEvals(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)ERKStepGetNumRhsEvals(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FERKStepGetCurrentButcherTable(void *farg1, void *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + ARKodeButcherTable *arg2 = (ARKodeButcherTable *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (ARKodeButcherTable *)(farg2); + result = (int)ERKStepGetCurrentButcherTable(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FERKStepGetTimestepperStats(void *farg1, long *farg2, long *farg3, long *farg4, long *farg5, long *farg6) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + long *arg3 = (long *) 0 ; + long *arg4 = (long *) 0 ; + long *arg5 = (long *) 0 ; + long *arg6 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + arg3 = (long *)(farg3); + arg4 = (long *)(farg4); + arg5 = (long *)(farg5); + arg6 = (long *)(farg6); + result = (int)ERKStepGetTimestepperStats(arg1,arg2,arg3,arg4,arg5,arg6); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FERKStepResize(void *farg1, N_Vector farg2, double const *farg3, double const *farg4, ARKVecResizeFn farg5, void *farg6) { + int fresult ; + void *arg1 = (void *) 0 ; + N_Vector arg2 = (N_Vector) 0 ; + sunrealtype arg3 ; + sunrealtype arg4 ; + ARKVecResizeFn arg5 = (ARKVecResizeFn) 0 ; + void *arg6 = (void *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (N_Vector)(farg2); + arg3 = (sunrealtype)(*farg3); + arg4 = (sunrealtype)(*farg4); + arg5 = (ARKVecResizeFn)(farg5); + arg6 = (void *)(farg6); + result = (int)ERKStepResize(arg1,arg2,arg3,arg4,arg5,arg6); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FERKStepReset(void *farg1, double const *farg2, N_Vector farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + N_Vector arg3 = (N_Vector) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + arg3 = (N_Vector)(farg3); + result = (int)ERKStepReset(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FERKStepSStolerances(void *farg1, double const *farg2, double const *farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + sunrealtype arg3 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + arg3 = (sunrealtype)(*farg3); + result = (int)ERKStepSStolerances(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FERKStepSVtolerances(void *farg1, double const *farg2, N_Vector farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + N_Vector arg3 = (N_Vector) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + arg3 = (N_Vector)(farg3); + result = (int)ERKStepSVtolerances(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FERKStepWFtolerances(void *farg1, ARKEwtFn farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + ARKEwtFn arg2 = (ARKEwtFn) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (ARKEwtFn)(farg2); + result = (int)ERKStepWFtolerances(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FERKStepRootInit(void *farg1, int const *farg2, ARKRootFn farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + ARKRootFn arg3 = (ARKRootFn) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + arg3 = (ARKRootFn)(farg3); + result = (int)ERKStepRootInit(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FERKStepSetDefaults(void *farg1) { + int fresult ; + void *arg1 = (void *) 0 ; + int result; + + arg1 = (void *)(farg1); + result = (int)ERKStepSetDefaults(arg1); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FERKStepSetOrder(void *farg1, int const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + result = (int)ERKStepSetOrder(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FERKStepSetInterpolantType(void *farg1, int const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + result = (int)ERKStepSetInterpolantType(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FERKStepSetInterpolantDegree(void *farg1, int const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + result = (int)ERKStepSetInterpolantDegree(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FERKStepSetDenseOrder(void *farg1, int const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + result = (int)ERKStepSetDenseOrder(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FERKStepSetAdaptController(void *farg1, SUNAdaptController farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + SUNAdaptController arg2 = (SUNAdaptController) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (SUNAdaptController)(farg2); + result = (int)ERKStepSetAdaptController(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FERKStepSetAdaptivityAdjustment(void *farg1, int const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + result = (int)ERKStepSetAdaptivityAdjustment(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FERKStepSetCFLFraction(void *farg1, double const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + result = (int)ERKStepSetCFLFraction(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FERKStepSetSafetyFactor(void *farg1, double const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + result = (int)ERKStepSetSafetyFactor(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FERKStepSetErrorBias(void *farg1, double const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + result = (int)ERKStepSetErrorBias(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FERKStepSetMaxGrowth(void *farg1, double const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + result = (int)ERKStepSetMaxGrowth(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FERKStepSetMinReduction(void *farg1, double const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + result = (int)ERKStepSetMinReduction(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FERKStepSetFixedStepBounds(void *farg1, double const *farg2, double const *farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + sunrealtype arg3 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + arg3 = (sunrealtype)(*farg3); + result = (int)ERKStepSetFixedStepBounds(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FERKStepSetAdaptivityMethod(void *farg1, int const *farg2, int const *farg3, int const *farg4, double *farg5) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + int arg3 ; + int arg4 ; + sunrealtype *arg5 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + arg3 = (int)(*farg3); + arg4 = (int)(*farg4); + arg5 = (double *)(farg5); + result = (int)ERKStepSetAdaptivityMethod(arg1,arg2,arg3,arg4,arg5); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FERKStepSetAdaptivityFn(void *farg1, ARKAdaptFn farg2, void *farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + ARKAdaptFn arg2 = (ARKAdaptFn) 0 ; + void *arg3 = (void *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (ARKAdaptFn)(farg2); + arg3 = (void *)(farg3); + result = (int)ERKStepSetAdaptivityFn(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FERKStepSetMaxFirstGrowth(void *farg1, double const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + result = (int)ERKStepSetMaxFirstGrowth(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FERKStepSetMaxEFailGrowth(void *farg1, double const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + result = (int)ERKStepSetMaxEFailGrowth(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FERKStepSetSmallNumEFails(void *farg1, int const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + result = (int)ERKStepSetSmallNumEFails(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FERKStepSetStabilityFn(void *farg1, ARKExpStabFn farg2, void *farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + ARKExpStabFn arg2 = (ARKExpStabFn) 0 ; + void *arg3 = (void *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (ARKExpStabFn)(farg2); + arg3 = (void *)(farg3); + result = (int)ERKStepSetStabilityFn(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FERKStepSetMaxErrTestFails(void *farg1, int const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + result = (int)ERKStepSetMaxErrTestFails(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FERKStepSetConstraints(void *farg1, N_Vector farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + N_Vector arg2 = (N_Vector) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (N_Vector)(farg2); + result = (int)ERKStepSetConstraints(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FERKStepSetMaxNumSteps(void *farg1, long const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long)(*farg2); + result = (int)ERKStepSetMaxNumSteps(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FERKStepSetMaxHnilWarns(void *farg1, int const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + result = (int)ERKStepSetMaxHnilWarns(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FERKStepSetInitStep(void *farg1, double const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + result = (int)ERKStepSetInitStep(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FERKStepSetMinStep(void *farg1, double const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + result = (int)ERKStepSetMinStep(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FERKStepSetMaxStep(void *farg1, double const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + result = (int)ERKStepSetMaxStep(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FERKStepSetInterpolateStopTime(void *farg1, int const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + result = (int)ERKStepSetInterpolateStopTime(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FERKStepSetStopTime(void *farg1, double const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + result = (int)ERKStepSetStopTime(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FERKStepClearStopTime(void *farg1) { + int fresult ; + void *arg1 = (void *) 0 ; + int result; + + arg1 = (void *)(farg1); + result = (int)ERKStepClearStopTime(arg1); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FERKStepSetFixedStep(void *farg1, double const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + result = (int)ERKStepSetFixedStep(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FERKStepSetMaxNumConstrFails(void *farg1, int const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + result = (int)ERKStepSetMaxNumConstrFails(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FERKStepSetRootDirection(void *farg1, int *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + int *arg2 = (int *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int *)(farg2); + result = (int)ERKStepSetRootDirection(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FERKStepSetNoInactiveRootWarn(void *farg1) { + int fresult ; + void *arg1 = (void *) 0 ; + int result; + + arg1 = (void *)(farg1); + result = (int)ERKStepSetNoInactiveRootWarn(arg1); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FERKStepSetUserData(void *farg1, void *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + void *arg2 = (void *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (void *)(farg2); + result = (int)ERKStepSetUserData(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FERKStepSetPostprocessStepFn(void *farg1, ARKPostProcessFn farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + ARKPostProcessFn arg2 = (ARKPostProcessFn) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (ARKPostProcessFn)(farg2); + result = (int)ERKStepSetPostprocessStepFn(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FERKStepSetPostprocessStageFn(void *farg1, ARKPostProcessFn farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + ARKPostProcessFn arg2 = (ARKPostProcessFn) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (ARKPostProcessFn)(farg2); + result = (int)ERKStepSetPostprocessStageFn(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FERKStepEvolve(void *farg1, double const *farg2, N_Vector farg3, double *farg4, int const *farg5) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + N_Vector arg3 = (N_Vector) 0 ; + sunrealtype *arg4 = (sunrealtype *) 0 ; + int arg5 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + arg3 = (N_Vector)(farg3); + arg4 = (sunrealtype *)(farg4); + arg5 = (int)(*farg5); + result = (int)ERKStepEvolve(arg1,arg2,arg3,arg4,arg5); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FERKStepGetDky(void *farg1, double const *farg2, int const *farg3, N_Vector farg4) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + int arg3 ; + N_Vector arg4 = (N_Vector) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + arg3 = (int)(*farg3); + arg4 = (N_Vector)(farg4); + result = (int)ERKStepGetDky(arg1,arg2,arg3,arg4); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FERKStepGetNumExpSteps(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)ERKStepGetNumExpSteps(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FERKStepGetNumAccSteps(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)ERKStepGetNumAccSteps(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FERKStepGetNumStepAttempts(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)ERKStepGetNumStepAttempts(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FERKStepGetNumErrTestFails(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)ERKStepGetNumErrTestFails(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FERKStepGetEstLocalErrors(void *farg1, N_Vector farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + N_Vector arg2 = (N_Vector) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (N_Vector)(farg2); + result = (int)ERKStepGetEstLocalErrors(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FERKStepGetWorkSpace(void *farg1, long *farg2, long *farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + long *arg3 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + arg3 = (long *)(farg3); + result = (int)ERKStepGetWorkSpace(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FERKStepGetNumSteps(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)ERKStepGetNumSteps(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FERKStepGetActualInitStep(void *farg1, double *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype *arg2 = (sunrealtype *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype *)(farg2); + result = (int)ERKStepGetActualInitStep(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FERKStepGetLastStep(void *farg1, double *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype *arg2 = (sunrealtype *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype *)(farg2); + result = (int)ERKStepGetLastStep(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FERKStepGetCurrentStep(void *farg1, double *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype *arg2 = (sunrealtype *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype *)(farg2); + result = (int)ERKStepGetCurrentStep(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FERKStepGetCurrentTime(void *farg1, double *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype *arg2 = (sunrealtype *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype *)(farg2); + result = (int)ERKStepGetCurrentTime(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FERKStepGetTolScaleFactor(void *farg1, double *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype *arg2 = (sunrealtype *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype *)(farg2); + result = (int)ERKStepGetTolScaleFactor(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FERKStepGetErrWeights(void *farg1, N_Vector farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + N_Vector arg2 = (N_Vector) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (N_Vector)(farg2); + result = (int)ERKStepGetErrWeights(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FERKStepGetNumGEvals(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)ERKStepGetNumGEvals(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FERKStepGetRootInfo(void *farg1, int *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + int *arg2 = (int *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int *)(farg2); + result = (int)ERKStepGetRootInfo(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FERKStepGetNumConstrFails(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)ERKStepGetNumConstrFails(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FERKStepGetUserData(void *farg1, void *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + void **arg2 = (void **) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (void **)(farg2); + result = (int)ERKStepGetUserData(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FERKStepPrintAllStats(void *farg1, void *farg2, int const *farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + FILE *arg2 = (FILE *) 0 ; + SUNOutputFormat arg3 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (FILE *)(farg2); + arg3 = (SUNOutputFormat)(*farg3); + result = (int)ERKStepPrintAllStats(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT SwigArrayWrapper _wrap_FERKStepGetReturnFlagName(long const *farg1) { + SwigArrayWrapper fresult ; + long arg1 ; + char *result = 0 ; + + arg1 = (long)(*farg1); + result = (char *)ERKStepGetReturnFlagName(arg1); + fresult.size = strlen((const char*)(result)); + fresult.data = (char *)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FERKStepWriteParameters(void *farg1, void *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + FILE *arg2 = (FILE *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (FILE *)(farg2); + result = (int)ERKStepWriteParameters(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FERKStepWriteButcher(void *farg1, void *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + FILE *arg2 = (FILE *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (FILE *)(farg2); + result = (int)ERKStepWriteButcher(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FERKStepGetStepStats(void *farg1, long *farg2, double *farg3, double *farg4, double *farg5, double *farg6) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + sunrealtype *arg3 = (sunrealtype *) 0 ; + sunrealtype *arg4 = (sunrealtype *) 0 ; + sunrealtype *arg5 = (sunrealtype *) 0 ; + sunrealtype *arg6 = (sunrealtype *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + arg3 = (sunrealtype *)(farg3); + arg4 = (sunrealtype *)(farg4); + arg5 = (sunrealtype *)(farg5); + arg6 = (sunrealtype *)(farg6); + result = (int)ERKStepGetStepStats(arg1,arg2,arg3,arg4,arg5,arg6); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT void _wrap_FERKStepFree(void *farg1) { + void **arg1 = (void **) 0 ; + + arg1 = (void **)(farg1); + ERKStepFree(arg1); +} + + +SWIGEXPORT void _wrap_FERKStepPrintMem(void *farg1, void *farg2) { + void *arg1 = (void *) 0 ; + FILE *arg2 = (FILE *) 0 ; + + arg1 = (void *)(farg1); + arg2 = (FILE *)(farg2); + ERKStepPrintMem(arg1,arg2); +} + + +SWIGEXPORT int _wrap_FERKStepSetRelaxFn(void *farg1, ARKRelaxFn farg2, ARKRelaxJacFn farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + ARKRelaxFn arg2 = (ARKRelaxFn) 0 ; + ARKRelaxJacFn arg3 = (ARKRelaxJacFn) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (ARKRelaxFn)(farg2); + arg3 = (ARKRelaxJacFn)(farg3); + result = (int)ERKStepSetRelaxFn(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FERKStepSetRelaxEtaFail(void *farg1, double const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + result = (int)ERKStepSetRelaxEtaFail(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FERKStepSetRelaxLowerBound(void *farg1, double const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + result = (int)ERKStepSetRelaxLowerBound(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FERKStepSetRelaxMaxFails(void *farg1, int const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + result = (int)ERKStepSetRelaxMaxFails(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FERKStepSetRelaxMaxIters(void *farg1, int const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + result = (int)ERKStepSetRelaxMaxIters(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FERKStepSetRelaxSolver(void *farg1, int const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + ARKRelaxSolver arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (ARKRelaxSolver)(*farg2); + result = (int)ERKStepSetRelaxSolver(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FERKStepSetRelaxResTol(void *farg1, double const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + result = (int)ERKStepSetRelaxResTol(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FERKStepSetRelaxTol(void *farg1, double const *farg2, double const *farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + sunrealtype arg3 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + arg3 = (sunrealtype)(*farg3); + result = (int)ERKStepSetRelaxTol(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FERKStepSetRelaxUpperBound(void *farg1, double const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + result = (int)ERKStepSetRelaxUpperBound(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FERKStepGetNumRelaxFnEvals(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)ERKStepGetNumRelaxFnEvals(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FERKStepGetNumRelaxJacEvals(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)ERKStepGetNumRelaxJacEvals(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FERKStepGetNumRelaxFails(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)ERKStepGetNumRelaxFails(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FERKStepGetNumRelaxBoundFails(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)ERKStepGetNumRelaxBoundFails(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FERKStepGetNumRelaxSolveFails(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)ERKStepGetNumRelaxSolveFails(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FERKStepGetNumRelaxSolveIters(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)ERKStepGetNumRelaxSolveIters(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + + diff --git a/src/arkode/fmod_int64/farkode_erkstep_mod.f90 b/src/arkode/fmod_int64/farkode_erkstep_mod.f90 new file mode 100644 index 0000000000..291dc643d5 --- /dev/null +++ b/src/arkode/fmod_int64/farkode_erkstep_mod.f90 @@ -0,0 +1,2566 @@ +! This file was automatically generated by SWIG (http://www.swig.org). +! Version 4.0.0 +! +! Do not make changes to this file unless you know what you are doing--modify +! the SWIG interface file instead. + +! --------------------------------------------------------------- +! Programmer(s): Auto-generated by swig. +! --------------------------------------------------------------- +! SUNDIALS Copyright Start +! Copyright (c) 2002-2024, Lawrence Livermore National Security +! and Southern Methodist University. +! All rights reserved. +! +! See the top-level LICENSE and NOTICE files for details. +! +! SPDX-License-Identifier: BSD-3-Clause +! SUNDIALS Copyright End +! --------------------------------------------------------------- + +module farkode_erkstep_mod + use, intrinsic :: ISO_C_BINDING + use farkode_mod + use fsundials_core_mod + implicit none + private + + ! DECLARATION CONSTRUCTS + integer(C_INT), parameter, public :: ERKSTEP_DEFAULT_1 = ARKODE_FORWARD_EULER_1_1 + integer(C_INT), parameter, public :: ERKSTEP_DEFAULT_2 = ARKODE_HEUN_EULER_2_1_2 + integer(C_INT), parameter, public :: ERKSTEP_DEFAULT_3 = ARKODE_BOGACKI_SHAMPINE_4_2_3 + integer(C_INT), parameter, public :: ERKSTEP_DEFAULT_4 = ARKODE_ZONNEVELD_5_3_4 + integer(C_INT), parameter, public :: ERKSTEP_DEFAULT_5 = ARKODE_CASH_KARP_6_4_5 + integer(C_INT), parameter, public :: ERKSTEP_DEFAULT_6 = ARKODE_VERNER_8_5_6 + integer(C_INT), parameter, public :: ERKSTEP_DEFAULT_7 = ARKODE_VERNER_10_6_7 + integer(C_INT), parameter, public :: ERKSTEP_DEFAULT_8 = ARKODE_FEHLBERG_13_7_8 + integer(C_INT), parameter, public :: ERKSTEP_DEFAULT_9 = ARKODE_VERNER_16_8_9 + public :: FERKStepCreate + public :: FERKStepReInit + public :: FERKStepSetTable + public :: FERKStepSetTableNum + type, bind(C) :: SwigArrayWrapper + type(C_PTR), public :: data = C_NULL_PTR + integer(C_SIZE_T), public :: size = 0 + end type + public :: FERKStepSetTableName + public :: FERKStepGetNumRhsEvals + public :: FERKStepGetCurrentButcherTable + public :: FERKStepGetTimestepperStats + public :: FERKStepResize + public :: FERKStepReset + public :: FERKStepSStolerances + public :: FERKStepSVtolerances + public :: FERKStepWFtolerances + public :: FERKStepRootInit + public :: FERKStepSetDefaults + public :: FERKStepSetOrder + public :: FERKStepSetInterpolantType + public :: FERKStepSetInterpolantDegree + public :: FERKStepSetDenseOrder + public :: FERKStepSetAdaptController + public :: FERKStepSetAdaptivityAdjustment + public :: FERKStepSetCFLFraction + public :: FERKStepSetSafetyFactor + public :: FERKStepSetErrorBias + public :: FERKStepSetMaxGrowth + public :: FERKStepSetMinReduction + public :: FERKStepSetFixedStepBounds + public :: FERKStepSetAdaptivityMethod + public :: FERKStepSetAdaptivityFn + public :: FERKStepSetMaxFirstGrowth + public :: FERKStepSetMaxEFailGrowth + public :: FERKStepSetSmallNumEFails + public :: FERKStepSetStabilityFn + public :: FERKStepSetMaxErrTestFails + public :: FERKStepSetConstraints + public :: FERKStepSetMaxNumSteps + public :: FERKStepSetMaxHnilWarns + public :: FERKStepSetInitStep + public :: FERKStepSetMinStep + public :: FERKStepSetMaxStep + public :: FERKStepSetInterpolateStopTime + public :: FERKStepSetStopTime + public :: FERKStepClearStopTime + public :: FERKStepSetFixedStep + public :: FERKStepSetMaxNumConstrFails + public :: FERKStepSetRootDirection + public :: FERKStepSetNoInactiveRootWarn + public :: FERKStepSetUserData + public :: FERKStepSetPostprocessStepFn + public :: FERKStepSetPostprocessStageFn + public :: FERKStepEvolve + public :: FERKStepGetDky + public :: FERKStepGetNumExpSteps + public :: FERKStepGetNumAccSteps + public :: FERKStepGetNumStepAttempts + public :: FERKStepGetNumErrTestFails + public :: FERKStepGetEstLocalErrors + public :: FERKStepGetWorkSpace + public :: FERKStepGetNumSteps + public :: FERKStepGetActualInitStep + public :: FERKStepGetLastStep + public :: FERKStepGetCurrentStep + public :: FERKStepGetCurrentTime + public :: FERKStepGetTolScaleFactor + public :: FERKStepGetErrWeights + public :: FERKStepGetNumGEvals + public :: FERKStepGetRootInfo + public :: FERKStepGetNumConstrFails + public :: FERKStepGetUserData + public :: FERKStepPrintAllStats + public :: FERKStepGetReturnFlagName + public :: FERKStepWriteParameters + public :: FERKStepWriteButcher + public :: FERKStepGetStepStats + public :: FERKStepFree + public :: FERKStepPrintMem + public :: FERKStepSetRelaxFn + public :: FERKStepSetRelaxEtaFail + public :: FERKStepSetRelaxLowerBound + public :: FERKStepSetRelaxMaxFails + public :: FERKStepSetRelaxMaxIters + public :: FERKStepSetRelaxSolver + public :: FERKStepSetRelaxResTol + public :: FERKStepSetRelaxTol + public :: FERKStepSetRelaxUpperBound + public :: FERKStepGetNumRelaxFnEvals + public :: FERKStepGetNumRelaxJacEvals + public :: FERKStepGetNumRelaxFails + public :: FERKStepGetNumRelaxBoundFails + public :: FERKStepGetNumRelaxSolveFails + public :: FERKStepGetNumRelaxSolveIters + +! WRAPPER DECLARATIONS +interface +function swigc_FERKStepCreate(farg1, farg2, farg3, farg4) & +bind(C, name="_wrap_FERKStepCreate") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_FUNPTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +type(C_PTR), value :: farg3 +type(C_PTR), value :: farg4 +type(C_PTR) :: fresult +end function + +function swigc_FERKStepReInit(farg1, farg2, farg3, farg4) & +bind(C, name="_wrap_FERKStepReInit") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_FUNPTR), value :: farg2 +real(C_DOUBLE), intent(in) :: farg3 +type(C_PTR), value :: farg4 +integer(C_INT) :: fresult +end function + +function swigc_FERKStepSetTable(farg1, farg2) & +bind(C, name="_wrap_FERKStepSetTable") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FERKStepSetTableNum(farg1, farg2) & +bind(C, name="_wrap_FERKStepSetTableNum") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FERKStepSetTableName(farg1, farg2) & +bind(C, name="_wrap_FERKStepSetTableName") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +import :: swigarraywrapper +type(C_PTR), value :: farg1 +type(SwigArrayWrapper) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FERKStepGetNumRhsEvals(farg1, farg2) & +bind(C, name="_wrap_FERKStepGetNumRhsEvals") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FERKStepGetCurrentButcherTable(farg1, farg2) & +bind(C, name="_wrap_FERKStepGetCurrentButcherTable") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FERKStepGetTimestepperStats(farg1, farg2, farg3, farg4, farg5, farg6) & +bind(C, name="_wrap_FERKStepGetTimestepperStats") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +type(C_PTR), value :: farg4 +type(C_PTR), value :: farg5 +type(C_PTR), value :: farg6 +integer(C_INT) :: fresult +end function + +function swigc_FERKStepResize(farg1, farg2, farg3, farg4, farg5, farg6) & +bind(C, name="_wrap_FERKStepResize") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +real(C_DOUBLE), intent(in) :: farg3 +real(C_DOUBLE), intent(in) :: farg4 +type(C_FUNPTR), value :: farg5 +type(C_PTR), value :: farg6 +integer(C_INT) :: fresult +end function + +function swigc_FERKStepReset(farg1, farg2, farg3) & +bind(C, name="_wrap_FERKStepReset") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FERKStepSStolerances(farg1, farg2, farg3) & +bind(C, name="_wrap_FERKStepSStolerances") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +real(C_DOUBLE), intent(in) :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FERKStepSVtolerances(farg1, farg2, farg3) & +bind(C, name="_wrap_FERKStepSVtolerances") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FERKStepWFtolerances(farg1, farg2) & +bind(C, name="_wrap_FERKStepWFtolerances") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_FUNPTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FERKStepRootInit(farg1, farg2, farg3) & +bind(C, name="_wrap_FERKStepRootInit") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +type(C_FUNPTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FERKStepSetDefaults(farg1) & +bind(C, name="_wrap_FERKStepSetDefaults") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT) :: fresult +end function + +function swigc_FERKStepSetOrder(farg1, farg2) & +bind(C, name="_wrap_FERKStepSetOrder") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FERKStepSetInterpolantType(farg1, farg2) & +bind(C, name="_wrap_FERKStepSetInterpolantType") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FERKStepSetInterpolantDegree(farg1, farg2) & +bind(C, name="_wrap_FERKStepSetInterpolantDegree") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FERKStepSetDenseOrder(farg1, farg2) & +bind(C, name="_wrap_FERKStepSetDenseOrder") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FERKStepSetAdaptController(farg1, farg2) & +bind(C, name="_wrap_FERKStepSetAdaptController") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FERKStepSetAdaptivityAdjustment(farg1, farg2) & +bind(C, name="_wrap_FERKStepSetAdaptivityAdjustment") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FERKStepSetCFLFraction(farg1, farg2) & +bind(C, name="_wrap_FERKStepSetCFLFraction") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FERKStepSetSafetyFactor(farg1, farg2) & +bind(C, name="_wrap_FERKStepSetSafetyFactor") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FERKStepSetErrorBias(farg1, farg2) & +bind(C, name="_wrap_FERKStepSetErrorBias") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FERKStepSetMaxGrowth(farg1, farg2) & +bind(C, name="_wrap_FERKStepSetMaxGrowth") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FERKStepSetMinReduction(farg1, farg2) & +bind(C, name="_wrap_FERKStepSetMinReduction") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FERKStepSetFixedStepBounds(farg1, farg2, farg3) & +bind(C, name="_wrap_FERKStepSetFixedStepBounds") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +real(C_DOUBLE), intent(in) :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FERKStepSetAdaptivityMethod(farg1, farg2, farg3, farg4, farg5) & +bind(C, name="_wrap_FERKStepSetAdaptivityMethod") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT), intent(in) :: farg3 +integer(C_INT), intent(in) :: farg4 +type(C_PTR), value :: farg5 +integer(C_INT) :: fresult +end function + +function swigc_FERKStepSetAdaptivityFn(farg1, farg2, farg3) & +bind(C, name="_wrap_FERKStepSetAdaptivityFn") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_FUNPTR), value :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FERKStepSetMaxFirstGrowth(farg1, farg2) & +bind(C, name="_wrap_FERKStepSetMaxFirstGrowth") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FERKStepSetMaxEFailGrowth(farg1, farg2) & +bind(C, name="_wrap_FERKStepSetMaxEFailGrowth") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FERKStepSetSmallNumEFails(farg1, farg2) & +bind(C, name="_wrap_FERKStepSetSmallNumEFails") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FERKStepSetStabilityFn(farg1, farg2, farg3) & +bind(C, name="_wrap_FERKStepSetStabilityFn") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_FUNPTR), value :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FERKStepSetMaxErrTestFails(farg1, farg2) & +bind(C, name="_wrap_FERKStepSetMaxErrTestFails") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FERKStepSetConstraints(farg1, farg2) & +bind(C, name="_wrap_FERKStepSetConstraints") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FERKStepSetMaxNumSteps(farg1, farg2) & +bind(C, name="_wrap_FERKStepSetMaxNumSteps") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_LONG), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FERKStepSetMaxHnilWarns(farg1, farg2) & +bind(C, name="_wrap_FERKStepSetMaxHnilWarns") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FERKStepSetInitStep(farg1, farg2) & +bind(C, name="_wrap_FERKStepSetInitStep") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FERKStepSetMinStep(farg1, farg2) & +bind(C, name="_wrap_FERKStepSetMinStep") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FERKStepSetMaxStep(farg1, farg2) & +bind(C, name="_wrap_FERKStepSetMaxStep") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FERKStepSetInterpolateStopTime(farg1, farg2) & +bind(C, name="_wrap_FERKStepSetInterpolateStopTime") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FERKStepSetStopTime(farg1, farg2) & +bind(C, name="_wrap_FERKStepSetStopTime") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FERKStepClearStopTime(farg1) & +bind(C, name="_wrap_FERKStepClearStopTime") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT) :: fresult +end function + +function swigc_FERKStepSetFixedStep(farg1, farg2) & +bind(C, name="_wrap_FERKStepSetFixedStep") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FERKStepSetMaxNumConstrFails(farg1, farg2) & +bind(C, name="_wrap_FERKStepSetMaxNumConstrFails") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FERKStepSetRootDirection(farg1, farg2) & +bind(C, name="_wrap_FERKStepSetRootDirection") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FERKStepSetNoInactiveRootWarn(farg1) & +bind(C, name="_wrap_FERKStepSetNoInactiveRootWarn") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT) :: fresult +end function + +function swigc_FERKStepSetUserData(farg1, farg2) & +bind(C, name="_wrap_FERKStepSetUserData") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FERKStepSetPostprocessStepFn(farg1, farg2) & +bind(C, name="_wrap_FERKStepSetPostprocessStepFn") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_FUNPTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FERKStepSetPostprocessStageFn(farg1, farg2) & +bind(C, name="_wrap_FERKStepSetPostprocessStageFn") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_FUNPTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FERKStepEvolve(farg1, farg2, farg3, farg4, farg5) & +bind(C, name="_wrap_FERKStepEvolve") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +type(C_PTR), value :: farg3 +type(C_PTR), value :: farg4 +integer(C_INT), intent(in) :: farg5 +integer(C_INT) :: fresult +end function + +function swigc_FERKStepGetDky(farg1, farg2, farg3, farg4) & +bind(C, name="_wrap_FERKStepGetDky") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT), intent(in) :: farg3 +type(C_PTR), value :: farg4 +integer(C_INT) :: fresult +end function + +function swigc_FERKStepGetNumExpSteps(farg1, farg2) & +bind(C, name="_wrap_FERKStepGetNumExpSteps") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FERKStepGetNumAccSteps(farg1, farg2) & +bind(C, name="_wrap_FERKStepGetNumAccSteps") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FERKStepGetNumStepAttempts(farg1, farg2) & +bind(C, name="_wrap_FERKStepGetNumStepAttempts") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FERKStepGetNumErrTestFails(farg1, farg2) & +bind(C, name="_wrap_FERKStepGetNumErrTestFails") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FERKStepGetEstLocalErrors(farg1, farg2) & +bind(C, name="_wrap_FERKStepGetEstLocalErrors") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FERKStepGetWorkSpace(farg1, farg2, farg3) & +bind(C, name="_wrap_FERKStepGetWorkSpace") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FERKStepGetNumSteps(farg1, farg2) & +bind(C, name="_wrap_FERKStepGetNumSteps") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FERKStepGetActualInitStep(farg1, farg2) & +bind(C, name="_wrap_FERKStepGetActualInitStep") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FERKStepGetLastStep(farg1, farg2) & +bind(C, name="_wrap_FERKStepGetLastStep") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FERKStepGetCurrentStep(farg1, farg2) & +bind(C, name="_wrap_FERKStepGetCurrentStep") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FERKStepGetCurrentTime(farg1, farg2) & +bind(C, name="_wrap_FERKStepGetCurrentTime") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FERKStepGetTolScaleFactor(farg1, farg2) & +bind(C, name="_wrap_FERKStepGetTolScaleFactor") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FERKStepGetErrWeights(farg1, farg2) & +bind(C, name="_wrap_FERKStepGetErrWeights") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FERKStepGetNumGEvals(farg1, farg2) & +bind(C, name="_wrap_FERKStepGetNumGEvals") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FERKStepGetRootInfo(farg1, farg2) & +bind(C, name="_wrap_FERKStepGetRootInfo") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FERKStepGetNumConstrFails(farg1, farg2) & +bind(C, name="_wrap_FERKStepGetNumConstrFails") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FERKStepGetUserData(farg1, farg2) & +bind(C, name="_wrap_FERKStepGetUserData") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FERKStepPrintAllStats(farg1, farg2, farg3) & +bind(C, name="_wrap_FERKStepPrintAllStats") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT), intent(in) :: farg3 +integer(C_INT) :: fresult +end function + + subroutine SWIG_free(cptr) & + bind(C, name="free") + use, intrinsic :: ISO_C_BINDING + type(C_PTR), value :: cptr +end subroutine +function swigc_FERKStepGetReturnFlagName(farg1) & +bind(C, name="_wrap_FERKStepGetReturnFlagName") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +import :: swigarraywrapper +integer(C_LONG), intent(in) :: farg1 +type(SwigArrayWrapper) :: fresult +end function + +function swigc_FERKStepWriteParameters(farg1, farg2) & +bind(C, name="_wrap_FERKStepWriteParameters") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FERKStepWriteButcher(farg1, farg2) & +bind(C, name="_wrap_FERKStepWriteButcher") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FERKStepGetStepStats(farg1, farg2, farg3, farg4, farg5, farg6) & +bind(C, name="_wrap_FERKStepGetStepStats") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +type(C_PTR), value :: farg4 +type(C_PTR), value :: farg5 +type(C_PTR), value :: farg6 +integer(C_INT) :: fresult +end function + +subroutine swigc_FERKStepFree(farg1) & +bind(C, name="_wrap_FERKStepFree") +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +end subroutine + +subroutine swigc_FERKStepPrintMem(farg1, farg2) & +bind(C, name="_wrap_FERKStepPrintMem") +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +end subroutine + +function swigc_FERKStepSetRelaxFn(farg1, farg2, farg3) & +bind(C, name="_wrap_FERKStepSetRelaxFn") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_FUNPTR), value :: farg2 +type(C_FUNPTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FERKStepSetRelaxEtaFail(farg1, farg2) & +bind(C, name="_wrap_FERKStepSetRelaxEtaFail") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FERKStepSetRelaxLowerBound(farg1, farg2) & +bind(C, name="_wrap_FERKStepSetRelaxLowerBound") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FERKStepSetRelaxMaxFails(farg1, farg2) & +bind(C, name="_wrap_FERKStepSetRelaxMaxFails") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FERKStepSetRelaxMaxIters(farg1, farg2) & +bind(C, name="_wrap_FERKStepSetRelaxMaxIters") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FERKStepSetRelaxSolver(farg1, farg2) & +bind(C, name="_wrap_FERKStepSetRelaxSolver") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FERKStepSetRelaxResTol(farg1, farg2) & +bind(C, name="_wrap_FERKStepSetRelaxResTol") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FERKStepSetRelaxTol(farg1, farg2, farg3) & +bind(C, name="_wrap_FERKStepSetRelaxTol") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +real(C_DOUBLE), intent(in) :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FERKStepSetRelaxUpperBound(farg1, farg2) & +bind(C, name="_wrap_FERKStepSetRelaxUpperBound") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FERKStepGetNumRelaxFnEvals(farg1, farg2) & +bind(C, name="_wrap_FERKStepGetNumRelaxFnEvals") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FERKStepGetNumRelaxJacEvals(farg1, farg2) & +bind(C, name="_wrap_FERKStepGetNumRelaxJacEvals") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FERKStepGetNumRelaxFails(farg1, farg2) & +bind(C, name="_wrap_FERKStepGetNumRelaxFails") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FERKStepGetNumRelaxBoundFails(farg1, farg2) & +bind(C, name="_wrap_FERKStepGetNumRelaxBoundFails") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FERKStepGetNumRelaxSolveFails(farg1, farg2) & +bind(C, name="_wrap_FERKStepGetNumRelaxSolveFails") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FERKStepGetNumRelaxSolveIters(farg1, farg2) & +bind(C, name="_wrap_FERKStepGetNumRelaxSolveIters") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +end interface + + +contains + ! MODULE SUBPROGRAMS +function FERKStepCreate(f, t0, y0, sunctx) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +type(C_PTR) :: swig_result +type(C_FUNPTR), intent(in), value :: f +real(C_DOUBLE), intent(in) :: t0 +type(N_Vector), target, intent(inout) :: y0 +type(C_PTR) :: sunctx +type(C_PTR) :: fresult +type(C_FUNPTR) :: farg1 +real(C_DOUBLE) :: farg2 +type(C_PTR) :: farg3 +type(C_PTR) :: farg4 + +farg1 = f +farg2 = t0 +farg3 = c_loc(y0) +farg4 = sunctx +fresult = swigc_FERKStepCreate(farg1, farg2, farg3, farg4) +swig_result = fresult +end function + +function FERKStepReInit(arkode_mem, f, t0, y0) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +type(C_FUNPTR), intent(in), value :: f +real(C_DOUBLE), intent(in) :: t0 +type(N_Vector), target, intent(inout) :: y0 +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_FUNPTR) :: farg2 +real(C_DOUBLE) :: farg3 +type(C_PTR) :: farg4 + +farg1 = arkode_mem +farg2 = f +farg3 = t0 +farg4 = c_loc(y0) +fresult = swigc_FERKStepReInit(farg1, farg2, farg3, farg4) +swig_result = fresult +end function + +function FERKStepSetTable(arkode_mem, b) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +type(C_PTR) :: b +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = b +fresult = swigc_FERKStepSetTable(farg1, farg2) +swig_result = fresult +end function + +function FERKStepSetTableNum(arkode_mem, etable) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(ARKODE_ERKTableID), intent(in) :: etable +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = arkode_mem +farg2 = etable +fresult = swigc_FERKStepSetTableNum(farg1, farg2) +swig_result = fresult +end function + + +subroutine SWIG_string_to_chararray(string, chars, wrap) + use, intrinsic :: ISO_C_BINDING + character(kind=C_CHAR, len=*), intent(IN) :: string + character(kind=C_CHAR), dimension(:), target, allocatable, intent(OUT) :: chars + type(SwigArrayWrapper), intent(OUT) :: wrap + integer :: i + + allocate(character(kind=C_CHAR) :: chars(len(string) + 1)) + do i=1,len(string) + chars(i) = string(i:i) + end do + i = len(string) + 1 + chars(i) = C_NULL_CHAR ! C string compatibility + wrap%data = c_loc(chars) + wrap%size = len(string) +end subroutine + +function FERKStepSetTableName(arkode_mem, etable) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +character(kind=C_CHAR, len=*), target :: etable +character(kind=C_CHAR), dimension(:), allocatable, target :: farg2_chars +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(SwigArrayWrapper) :: farg2 + +farg1 = arkode_mem +call SWIG_string_to_chararray(etable, farg2_chars, farg2) +fresult = swigc_FERKStepSetTableName(farg1, farg2) +swig_result = fresult +end function + +function FERKStepGetNumRhsEvals(arkode_mem, nfevals) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: nfevals +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(nfevals(1)) +fresult = swigc_FERKStepGetNumRhsEvals(farg1, farg2) +swig_result = fresult +end function + +function FERKStepGetCurrentButcherTable(arkode_mem, b) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +type(C_PTR), target, intent(inout) :: b +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(b) +fresult = swigc_FERKStepGetCurrentButcherTable(farg1, farg2) +swig_result = fresult +end function + +function FERKStepGetTimestepperStats(arkode_mem, expsteps, accsteps, step_attempts, nfevals, netfails) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: expsteps +integer(C_LONG), dimension(*), target, intent(inout) :: accsteps +integer(C_LONG), dimension(*), target, intent(inout) :: step_attempts +integer(C_LONG), dimension(*), target, intent(inout) :: nfevals +integer(C_LONG), dimension(*), target, intent(inout) :: netfails +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 +type(C_PTR) :: farg4 +type(C_PTR) :: farg5 +type(C_PTR) :: farg6 + +farg1 = arkode_mem +farg2 = c_loc(expsteps(1)) +farg3 = c_loc(accsteps(1)) +farg4 = c_loc(step_attempts(1)) +farg5 = c_loc(nfevals(1)) +farg6 = c_loc(netfails(1)) +fresult = swigc_FERKStepGetTimestepperStats(farg1, farg2, farg3, farg4, farg5, farg6) +swig_result = fresult +end function + +function FERKStepResize(arkode_mem, ynew, hscale, t0, resize, resize_data) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +type(N_Vector), target, intent(inout) :: ynew +real(C_DOUBLE), intent(in) :: hscale +real(C_DOUBLE), intent(in) :: t0 +type(C_FUNPTR), intent(in), value :: resize +type(C_PTR) :: resize_data +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +real(C_DOUBLE) :: farg3 +real(C_DOUBLE) :: farg4 +type(C_FUNPTR) :: farg5 +type(C_PTR) :: farg6 + +farg1 = arkode_mem +farg2 = c_loc(ynew) +farg3 = hscale +farg4 = t0 +farg5 = resize +farg6 = resize_data +fresult = swigc_FERKStepResize(farg1, farg2, farg3, farg4, farg5, farg6) +swig_result = fresult +end function + +function FERKStepReset(arkode_mem, tr, yr) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +real(C_DOUBLE), intent(in) :: tr +type(N_Vector), target, intent(inout) :: yr +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 +type(C_PTR) :: farg3 + +farg1 = arkode_mem +farg2 = tr +farg3 = c_loc(yr) +fresult = swigc_FERKStepReset(farg1, farg2, farg3) +swig_result = fresult +end function + +function FERKStepSStolerances(arkode_mem, reltol, abstol) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +real(C_DOUBLE), intent(in) :: reltol +real(C_DOUBLE), intent(in) :: abstol +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 +real(C_DOUBLE) :: farg3 + +farg1 = arkode_mem +farg2 = reltol +farg3 = abstol +fresult = swigc_FERKStepSStolerances(farg1, farg2, farg3) +swig_result = fresult +end function + +function FERKStepSVtolerances(arkode_mem, reltol, abstol) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +real(C_DOUBLE), intent(in) :: reltol +type(N_Vector), target, intent(inout) :: abstol +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 +type(C_PTR) :: farg3 + +farg1 = arkode_mem +farg2 = reltol +farg3 = c_loc(abstol) +fresult = swigc_FERKStepSVtolerances(farg1, farg2, farg3) +swig_result = fresult +end function + +function FERKStepWFtolerances(arkode_mem, efun) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +type(C_FUNPTR), intent(in), value :: efun +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_FUNPTR) :: farg2 + +farg1 = arkode_mem +farg2 = efun +fresult = swigc_FERKStepWFtolerances(farg1, farg2) +swig_result = fresult +end function + +function FERKStepRootInit(arkode_mem, nrtfn, g) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_INT), intent(in) :: nrtfn +type(C_FUNPTR), intent(in), value :: g +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 +type(C_FUNPTR) :: farg3 + +farg1 = arkode_mem +farg2 = nrtfn +farg3 = g +fresult = swigc_FERKStepRootInit(farg1, farg2, farg3) +swig_result = fresult +end function + +function FERKStepSetDefaults(arkode_mem) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_INT) :: fresult +type(C_PTR) :: farg1 + +farg1 = arkode_mem +fresult = swigc_FERKStepSetDefaults(farg1) +swig_result = fresult +end function + +function FERKStepSetOrder(arkode_mem, maxord) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_INT), intent(in) :: maxord +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = arkode_mem +farg2 = maxord +fresult = swigc_FERKStepSetOrder(farg1, farg2) +swig_result = fresult +end function + +function FERKStepSetInterpolantType(arkode_mem, itype) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_INT), intent(in) :: itype +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = arkode_mem +farg2 = itype +fresult = swigc_FERKStepSetInterpolantType(farg1, farg2) +swig_result = fresult +end function + +function FERKStepSetInterpolantDegree(arkode_mem, degree) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_INT), intent(in) :: degree +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = arkode_mem +farg2 = degree +fresult = swigc_FERKStepSetInterpolantDegree(farg1, farg2) +swig_result = fresult +end function + +function FERKStepSetDenseOrder(arkode_mem, dord) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_INT), intent(in) :: dord +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = arkode_mem +farg2 = dord +fresult = swigc_FERKStepSetDenseOrder(farg1, farg2) +swig_result = fresult +end function + +function FERKStepSetAdaptController(arkode_mem, c) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +type(SUNAdaptController), target, intent(inout) :: c +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(c) +fresult = swigc_FERKStepSetAdaptController(farg1, farg2) +swig_result = fresult +end function + +function FERKStepSetAdaptivityAdjustment(arkode_mem, adjust) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_INT), intent(in) :: adjust +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = arkode_mem +farg2 = adjust +fresult = swigc_FERKStepSetAdaptivityAdjustment(farg1, farg2) +swig_result = fresult +end function + +function FERKStepSetCFLFraction(arkode_mem, cfl_frac) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +real(C_DOUBLE), intent(in) :: cfl_frac +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 + +farg1 = arkode_mem +farg2 = cfl_frac +fresult = swigc_FERKStepSetCFLFraction(farg1, farg2) +swig_result = fresult +end function + +function FERKStepSetSafetyFactor(arkode_mem, safety) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +real(C_DOUBLE), intent(in) :: safety +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 + +farg1 = arkode_mem +farg2 = safety +fresult = swigc_FERKStepSetSafetyFactor(farg1, farg2) +swig_result = fresult +end function + +function FERKStepSetErrorBias(arkode_mem, bias) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +real(C_DOUBLE), intent(in) :: bias +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 + +farg1 = arkode_mem +farg2 = bias +fresult = swigc_FERKStepSetErrorBias(farg1, farg2) +swig_result = fresult +end function + +function FERKStepSetMaxGrowth(arkode_mem, mx_growth) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +real(C_DOUBLE), intent(in) :: mx_growth +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 + +farg1 = arkode_mem +farg2 = mx_growth +fresult = swigc_FERKStepSetMaxGrowth(farg1, farg2) +swig_result = fresult +end function + +function FERKStepSetMinReduction(arkode_mem, eta_min) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +real(C_DOUBLE), intent(in) :: eta_min +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 + +farg1 = arkode_mem +farg2 = eta_min +fresult = swigc_FERKStepSetMinReduction(farg1, farg2) +swig_result = fresult +end function + +function FERKStepSetFixedStepBounds(arkode_mem, lb, ub) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +real(C_DOUBLE), intent(in) :: lb +real(C_DOUBLE), intent(in) :: ub +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 +real(C_DOUBLE) :: farg3 + +farg1 = arkode_mem +farg2 = lb +farg3 = ub +fresult = swigc_FERKStepSetFixedStepBounds(farg1, farg2, farg3) +swig_result = fresult +end function + +function FERKStepSetAdaptivityMethod(arkode_mem, imethod, idefault, pq, adapt_params) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_INT), intent(in) :: imethod +integer(C_INT), intent(in) :: idefault +integer(C_INT), intent(in) :: pq +real(C_DOUBLE), dimension(3), target, intent(inout) :: adapt_params +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 +integer(C_INT) :: farg3 +integer(C_INT) :: farg4 +type(C_PTR) :: farg5 + +farg1 = arkode_mem +farg2 = imethod +farg3 = idefault +farg4 = pq +farg5 = c_loc(adapt_params(1)) +fresult = swigc_FERKStepSetAdaptivityMethod(farg1, farg2, farg3, farg4, farg5) +swig_result = fresult +end function + +function FERKStepSetAdaptivityFn(arkode_mem, hfun, h_data) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +type(C_FUNPTR), intent(in), value :: hfun +type(C_PTR) :: h_data +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_FUNPTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = arkode_mem +farg2 = hfun +farg3 = h_data +fresult = swigc_FERKStepSetAdaptivityFn(farg1, farg2, farg3) +swig_result = fresult +end function + +function FERKStepSetMaxFirstGrowth(arkode_mem, etamx1) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +real(C_DOUBLE), intent(in) :: etamx1 +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 + +farg1 = arkode_mem +farg2 = etamx1 +fresult = swigc_FERKStepSetMaxFirstGrowth(farg1, farg2) +swig_result = fresult +end function + +function FERKStepSetMaxEFailGrowth(arkode_mem, etamxf) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +real(C_DOUBLE), intent(in) :: etamxf +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 + +farg1 = arkode_mem +farg2 = etamxf +fresult = swigc_FERKStepSetMaxEFailGrowth(farg1, farg2) +swig_result = fresult +end function + +function FERKStepSetSmallNumEFails(arkode_mem, small_nef) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_INT), intent(in) :: small_nef +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = arkode_mem +farg2 = small_nef +fresult = swigc_FERKStepSetSmallNumEFails(farg1, farg2) +swig_result = fresult +end function + +function FERKStepSetStabilityFn(arkode_mem, estab, estab_data) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +type(C_FUNPTR), intent(in), value :: estab +type(C_PTR) :: estab_data +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_FUNPTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = arkode_mem +farg2 = estab +farg3 = estab_data +fresult = swigc_FERKStepSetStabilityFn(farg1, farg2, farg3) +swig_result = fresult +end function + +function FERKStepSetMaxErrTestFails(arkode_mem, maxnef) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_INT), intent(in) :: maxnef +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = arkode_mem +farg2 = maxnef +fresult = swigc_FERKStepSetMaxErrTestFails(farg1, farg2) +swig_result = fresult +end function + +function FERKStepSetConstraints(arkode_mem, constraints) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +type(N_Vector), target, intent(inout) :: constraints +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(constraints) +fresult = swigc_FERKStepSetConstraints(farg1, farg2) +swig_result = fresult +end function + +function FERKStepSetMaxNumSteps(arkode_mem, mxsteps) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_LONG), intent(in) :: mxsteps +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_LONG) :: farg2 + +farg1 = arkode_mem +farg2 = mxsteps +fresult = swigc_FERKStepSetMaxNumSteps(farg1, farg2) +swig_result = fresult +end function + +function FERKStepSetMaxHnilWarns(arkode_mem, mxhnil) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_INT), intent(in) :: mxhnil +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = arkode_mem +farg2 = mxhnil +fresult = swigc_FERKStepSetMaxHnilWarns(farg1, farg2) +swig_result = fresult +end function + +function FERKStepSetInitStep(arkode_mem, hin) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +real(C_DOUBLE), intent(in) :: hin +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 + +farg1 = arkode_mem +farg2 = hin +fresult = swigc_FERKStepSetInitStep(farg1, farg2) +swig_result = fresult +end function + +function FERKStepSetMinStep(arkode_mem, hmin) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +real(C_DOUBLE), intent(in) :: hmin +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 + +farg1 = arkode_mem +farg2 = hmin +fresult = swigc_FERKStepSetMinStep(farg1, farg2) +swig_result = fresult +end function + +function FERKStepSetMaxStep(arkode_mem, hmax) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +real(C_DOUBLE), intent(in) :: hmax +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 + +farg1 = arkode_mem +farg2 = hmax +fresult = swigc_FERKStepSetMaxStep(farg1, farg2) +swig_result = fresult +end function + +function FERKStepSetInterpolateStopTime(arkode_mem, interp) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_INT), intent(in) :: interp +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = arkode_mem +farg2 = interp +fresult = swigc_FERKStepSetInterpolateStopTime(farg1, farg2) +swig_result = fresult +end function + +function FERKStepSetStopTime(arkode_mem, tstop) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +real(C_DOUBLE), intent(in) :: tstop +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 + +farg1 = arkode_mem +farg2 = tstop +fresult = swigc_FERKStepSetStopTime(farg1, farg2) +swig_result = fresult +end function + +function FERKStepClearStopTime(arkode_mem) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_INT) :: fresult +type(C_PTR) :: farg1 + +farg1 = arkode_mem +fresult = swigc_FERKStepClearStopTime(farg1) +swig_result = fresult +end function + +function FERKStepSetFixedStep(arkode_mem, hfixed) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +real(C_DOUBLE), intent(in) :: hfixed +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 + +farg1 = arkode_mem +farg2 = hfixed +fresult = swigc_FERKStepSetFixedStep(farg1, farg2) +swig_result = fresult +end function + +function FERKStepSetMaxNumConstrFails(arkode_mem, maxfails) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_INT), intent(in) :: maxfails +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = arkode_mem +farg2 = maxfails +fresult = swigc_FERKStepSetMaxNumConstrFails(farg1, farg2) +swig_result = fresult +end function + +function FERKStepSetRootDirection(arkode_mem, rootdir) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_INT), dimension(*), target, intent(inout) :: rootdir +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(rootdir(1)) +fresult = swigc_FERKStepSetRootDirection(farg1, farg2) +swig_result = fresult +end function + +function FERKStepSetNoInactiveRootWarn(arkode_mem) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_INT) :: fresult +type(C_PTR) :: farg1 + +farg1 = arkode_mem +fresult = swigc_FERKStepSetNoInactiveRootWarn(farg1) +swig_result = fresult +end function + +function FERKStepSetUserData(arkode_mem, user_data) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +type(C_PTR) :: user_data +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = user_data +fresult = swigc_FERKStepSetUserData(farg1, farg2) +swig_result = fresult +end function + +function FERKStepSetPostprocessStepFn(arkode_mem, processstep) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +type(C_FUNPTR), intent(in), value :: processstep +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_FUNPTR) :: farg2 + +farg1 = arkode_mem +farg2 = processstep +fresult = swigc_FERKStepSetPostprocessStepFn(farg1, farg2) +swig_result = fresult +end function + +function FERKStepSetPostprocessStageFn(arkode_mem, processstage) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +type(C_FUNPTR), intent(in), value :: processstage +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_FUNPTR) :: farg2 + +farg1 = arkode_mem +farg2 = processstage +fresult = swigc_FERKStepSetPostprocessStageFn(farg1, farg2) +swig_result = fresult +end function + +function FERKStepEvolve(arkode_mem, tout, yout, tret, itask) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +real(C_DOUBLE), intent(in) :: tout +type(N_Vector), target, intent(inout) :: yout +real(C_DOUBLE), dimension(*), target, intent(inout) :: tret +integer(C_INT), intent(in) :: itask +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 +type(C_PTR) :: farg3 +type(C_PTR) :: farg4 +integer(C_INT) :: farg5 + +farg1 = arkode_mem +farg2 = tout +farg3 = c_loc(yout) +farg4 = c_loc(tret(1)) +farg5 = itask +fresult = swigc_FERKStepEvolve(farg1, farg2, farg3, farg4, farg5) +swig_result = fresult +end function + +function FERKStepGetDky(arkode_mem, t, k, dky) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +real(C_DOUBLE), intent(in) :: t +integer(C_INT), intent(in) :: k +type(N_Vector), target, intent(inout) :: dky +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 +integer(C_INT) :: farg3 +type(C_PTR) :: farg4 + +farg1 = arkode_mem +farg2 = t +farg3 = k +farg4 = c_loc(dky) +fresult = swigc_FERKStepGetDky(farg1, farg2, farg3, farg4) +swig_result = fresult +end function + +function FERKStepGetNumExpSteps(arkode_mem, expsteps) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: expsteps +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(expsteps(1)) +fresult = swigc_FERKStepGetNumExpSteps(farg1, farg2) +swig_result = fresult +end function + +function FERKStepGetNumAccSteps(arkode_mem, accsteps) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: accsteps +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(accsteps(1)) +fresult = swigc_FERKStepGetNumAccSteps(farg1, farg2) +swig_result = fresult +end function + +function FERKStepGetNumStepAttempts(arkode_mem, step_attempts) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: step_attempts +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(step_attempts(1)) +fresult = swigc_FERKStepGetNumStepAttempts(farg1, farg2) +swig_result = fresult +end function + +function FERKStepGetNumErrTestFails(arkode_mem, netfails) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: netfails +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(netfails(1)) +fresult = swigc_FERKStepGetNumErrTestFails(farg1, farg2) +swig_result = fresult +end function + +function FERKStepGetEstLocalErrors(arkode_mem, ele) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +type(N_Vector), target, intent(inout) :: ele +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(ele) +fresult = swigc_FERKStepGetEstLocalErrors(farg1, farg2) +swig_result = fresult +end function + +function FERKStepGetWorkSpace(arkode_mem, lenrw, leniw) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: lenrw +integer(C_LONG), dimension(*), target, intent(inout) :: leniw +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = arkode_mem +farg2 = c_loc(lenrw(1)) +farg3 = c_loc(leniw(1)) +fresult = swigc_FERKStepGetWorkSpace(farg1, farg2, farg3) +swig_result = fresult +end function + +function FERKStepGetNumSteps(arkode_mem, nsteps) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: nsteps +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(nsteps(1)) +fresult = swigc_FERKStepGetNumSteps(farg1, farg2) +swig_result = fresult +end function + +function FERKStepGetActualInitStep(arkode_mem, hinused) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +real(C_DOUBLE), dimension(*), target, intent(inout) :: hinused +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(hinused(1)) +fresult = swigc_FERKStepGetActualInitStep(farg1, farg2) +swig_result = fresult +end function + +function FERKStepGetLastStep(arkode_mem, hlast) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +real(C_DOUBLE), dimension(*), target, intent(inout) :: hlast +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(hlast(1)) +fresult = swigc_FERKStepGetLastStep(farg1, farg2) +swig_result = fresult +end function + +function FERKStepGetCurrentStep(arkode_mem, hcur) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +real(C_DOUBLE), dimension(*), target, intent(inout) :: hcur +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(hcur(1)) +fresult = swigc_FERKStepGetCurrentStep(farg1, farg2) +swig_result = fresult +end function + +function FERKStepGetCurrentTime(arkode_mem, tcur) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +real(C_DOUBLE), dimension(*), target, intent(inout) :: tcur +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(tcur(1)) +fresult = swigc_FERKStepGetCurrentTime(farg1, farg2) +swig_result = fresult +end function + +function FERKStepGetTolScaleFactor(arkode_mem, tolsfac) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +real(C_DOUBLE), dimension(*), target, intent(inout) :: tolsfac +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(tolsfac(1)) +fresult = swigc_FERKStepGetTolScaleFactor(farg1, farg2) +swig_result = fresult +end function + +function FERKStepGetErrWeights(arkode_mem, eweight) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +type(N_Vector), target, intent(inout) :: eweight +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(eweight) +fresult = swigc_FERKStepGetErrWeights(farg1, farg2) +swig_result = fresult +end function + +function FERKStepGetNumGEvals(arkode_mem, ngevals) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: ngevals +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(ngevals(1)) +fresult = swigc_FERKStepGetNumGEvals(farg1, farg2) +swig_result = fresult +end function + +function FERKStepGetRootInfo(arkode_mem, rootsfound) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_INT), dimension(*), target, intent(inout) :: rootsfound +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(rootsfound(1)) +fresult = swigc_FERKStepGetRootInfo(farg1, farg2) +swig_result = fresult +end function + +function FERKStepGetNumConstrFails(arkode_mem, nconstrfails) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: nconstrfails +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(nconstrfails(1)) +fresult = swigc_FERKStepGetNumConstrFails(farg1, farg2) +swig_result = fresult +end function + +function FERKStepGetUserData(arkode_mem, user_data) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +type(C_PTR), target, intent(inout) :: user_data +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(user_data) +fresult = swigc_FERKStepGetUserData(farg1, farg2) +swig_result = fresult +end function + +function FERKStepPrintAllStats(arkode_mem, outfile, fmt) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +type(C_PTR) :: outfile +integer(SUNOutputFormat), intent(in) :: fmt +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +integer(C_INT) :: farg3 + +farg1 = arkode_mem +farg2 = outfile +farg3 = fmt +fresult = swigc_FERKStepPrintAllStats(farg1, farg2, farg3) +swig_result = fresult +end function + + +subroutine SWIG_chararray_to_string(wrap, string) + use, intrinsic :: ISO_C_BINDING + type(SwigArrayWrapper), intent(IN) :: wrap + character(kind=C_CHAR, len=:), allocatable, intent(OUT) :: string + character(kind=C_CHAR), dimension(:), pointer :: chars + integer(kind=C_SIZE_T) :: i + call c_f_pointer(wrap%data, chars, [wrap%size]) + allocate(character(kind=C_CHAR, len=wrap%size) :: string) + do i=1, wrap%size + string(i:i) = chars(i) + end do +end subroutine + +function FERKStepGetReturnFlagName(flag) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +character(kind=C_CHAR, len=:), allocatable :: swig_result +integer(C_LONG), intent(in) :: flag +type(SwigArrayWrapper) :: fresult +integer(C_LONG) :: farg1 + +farg1 = flag +fresult = swigc_FERKStepGetReturnFlagName(farg1) +call SWIG_chararray_to_string(fresult, swig_result) +if (.false.) call SWIG_free(fresult%data) +end function + +function FERKStepWriteParameters(arkode_mem, fp) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +type(C_PTR) :: fp +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = fp +fresult = swigc_FERKStepWriteParameters(farg1, farg2) +swig_result = fresult +end function + +function FERKStepWriteButcher(arkode_mem, fp) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +type(C_PTR) :: fp +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = fp +fresult = swigc_FERKStepWriteButcher(farg1, farg2) +swig_result = fresult +end function + +function FERKStepGetStepStats(arkode_mem, nsteps, hinused, hlast, hcur, tcur) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: nsteps +real(C_DOUBLE), dimension(*), target, intent(inout) :: hinused +real(C_DOUBLE), dimension(*), target, intent(inout) :: hlast +real(C_DOUBLE), dimension(*), target, intent(inout) :: hcur +real(C_DOUBLE), dimension(*), target, intent(inout) :: tcur +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 +type(C_PTR) :: farg4 +type(C_PTR) :: farg5 +type(C_PTR) :: farg6 + +farg1 = arkode_mem +farg2 = c_loc(nsteps(1)) +farg3 = c_loc(hinused(1)) +farg4 = c_loc(hlast(1)) +farg5 = c_loc(hcur(1)) +farg6 = c_loc(tcur(1)) +fresult = swigc_FERKStepGetStepStats(farg1, farg2, farg3, farg4, farg5, farg6) +swig_result = fresult +end function + +subroutine FERKStepFree(arkode_mem) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), target, intent(inout) :: arkode_mem +type(C_PTR) :: farg1 + +farg1 = c_loc(arkode_mem) +call swigc_FERKStepFree(farg1) +end subroutine + +subroutine FERKStepPrintMem(arkode_mem, outfile) +use, intrinsic :: ISO_C_BINDING +type(C_PTR) :: arkode_mem +type(C_PTR) :: outfile +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = outfile +call swigc_FERKStepPrintMem(farg1, farg2) +end subroutine + +function FERKStepSetRelaxFn(arkode_mem, rfn, rjac) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +type(C_FUNPTR), intent(in), value :: rfn +type(C_FUNPTR), intent(in), value :: rjac +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_FUNPTR) :: farg2 +type(C_FUNPTR) :: farg3 + +farg1 = arkode_mem +farg2 = rfn +farg3 = rjac +fresult = swigc_FERKStepSetRelaxFn(farg1, farg2, farg3) +swig_result = fresult +end function + +function FERKStepSetRelaxEtaFail(arkode_mem, eta_rf) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +real(C_DOUBLE), intent(in) :: eta_rf +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 + +farg1 = arkode_mem +farg2 = eta_rf +fresult = swigc_FERKStepSetRelaxEtaFail(farg1, farg2) +swig_result = fresult +end function + +function FERKStepSetRelaxLowerBound(arkode_mem, lower) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +real(C_DOUBLE), intent(in) :: lower +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 + +farg1 = arkode_mem +farg2 = lower +fresult = swigc_FERKStepSetRelaxLowerBound(farg1, farg2) +swig_result = fresult +end function + +function FERKStepSetRelaxMaxFails(arkode_mem, max_fails) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_INT), intent(in) :: max_fails +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = arkode_mem +farg2 = max_fails +fresult = swigc_FERKStepSetRelaxMaxFails(farg1, farg2) +swig_result = fresult +end function + +function FERKStepSetRelaxMaxIters(arkode_mem, max_iters) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_INT), intent(in) :: max_iters +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = arkode_mem +farg2 = max_iters +fresult = swigc_FERKStepSetRelaxMaxIters(farg1, farg2) +swig_result = fresult +end function + +function FERKStepSetRelaxSolver(arkode_mem, solver) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(ARKRelaxSolver), intent(in) :: solver +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = arkode_mem +farg2 = solver +fresult = swigc_FERKStepSetRelaxSolver(farg1, farg2) +swig_result = fresult +end function + +function FERKStepSetRelaxResTol(arkode_mem, res_tol) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +real(C_DOUBLE), intent(in) :: res_tol +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 + +farg1 = arkode_mem +farg2 = res_tol +fresult = swigc_FERKStepSetRelaxResTol(farg1, farg2) +swig_result = fresult +end function + +function FERKStepSetRelaxTol(arkode_mem, rel_tol, abs_tol) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +real(C_DOUBLE), intent(in) :: rel_tol +real(C_DOUBLE), intent(in) :: abs_tol +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 +real(C_DOUBLE) :: farg3 + +farg1 = arkode_mem +farg2 = rel_tol +farg3 = abs_tol +fresult = swigc_FERKStepSetRelaxTol(farg1, farg2, farg3) +swig_result = fresult +end function + +function FERKStepSetRelaxUpperBound(arkode_mem, upper) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +real(C_DOUBLE), intent(in) :: upper +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 + +farg1 = arkode_mem +farg2 = upper +fresult = swigc_FERKStepSetRelaxUpperBound(farg1, farg2) +swig_result = fresult +end function + +function FERKStepGetNumRelaxFnEvals(arkode_mem, r_evals) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: r_evals +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(r_evals(1)) +fresult = swigc_FERKStepGetNumRelaxFnEvals(farg1, farg2) +swig_result = fresult +end function + +function FERKStepGetNumRelaxJacEvals(arkode_mem, j_evals) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: j_evals +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(j_evals(1)) +fresult = swigc_FERKStepGetNumRelaxJacEvals(farg1, farg2) +swig_result = fresult +end function + +function FERKStepGetNumRelaxFails(arkode_mem, relax_fails) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: relax_fails +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(relax_fails(1)) +fresult = swigc_FERKStepGetNumRelaxFails(farg1, farg2) +swig_result = fresult +end function + +function FERKStepGetNumRelaxBoundFails(arkode_mem, fails) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: fails +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(fails(1)) +fresult = swigc_FERKStepGetNumRelaxBoundFails(farg1, farg2) +swig_result = fresult +end function + +function FERKStepGetNumRelaxSolveFails(arkode_mem, fails) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: fails +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(fails(1)) +fresult = swigc_FERKStepGetNumRelaxSolveFails(farg1, farg2) +swig_result = fresult +end function + +function FERKStepGetNumRelaxSolveIters(arkode_mem, iters) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: iters +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(iters(1)) +fresult = swigc_FERKStepGetNumRelaxSolveIters(farg1, farg2) +swig_result = fresult +end function + + +end module diff --git a/src/arkode/fmod/farkode_mod.c b/src/arkode/fmod_int64/farkode_mod.c similarity index 100% rename from src/arkode/fmod/farkode_mod.c rename to src/arkode/fmod_int64/farkode_mod.c diff --git a/src/arkode/fmod/farkode_mod.f90 b/src/arkode/fmod_int64/farkode_mod.f90 similarity index 100% rename from src/arkode/fmod/farkode_mod.f90 rename to src/arkode/fmod_int64/farkode_mod.f90 diff --git a/src/arkode/fmod/farkode_mristep_mod.c b/src/arkode/fmod_int64/farkode_mristep_mod.c similarity index 100% rename from src/arkode/fmod/farkode_mristep_mod.c rename to src/arkode/fmod_int64/farkode_mristep_mod.c diff --git a/src/arkode/fmod/farkode_mristep_mod.f90 b/src/arkode/fmod_int64/farkode_mristep_mod.f90 similarity index 100% rename from src/arkode/fmod/farkode_mristep_mod.f90 rename to src/arkode/fmod_int64/farkode_mristep_mod.f90 diff --git a/src/arkode/fmod_int64/farkode_sprkstep_mod.c b/src/arkode/fmod_int64/farkode_sprkstep_mod.c new file mode 100644 index 0000000000..28cfb297d4 --- /dev/null +++ b/src/arkode/fmod_int64/farkode_sprkstep_mod.c @@ -0,0 +1,767 @@ +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.0 + * + * This file is not intended to be easily readable and contains a number of + * coding conventions designed to improve portability and efficiency. Do not make + * changes to this file unless you know what you are doing--modify the SWIG + * interface file instead. + * ----------------------------------------------------------------------------- */ + +/* --------------------------------------------------------------- + * Programmer(s): Auto-generated by swig. + * --------------------------------------------------------------- + * SUNDIALS Copyright Start + * Copyright (c) 2002-2024, Lawrence Livermore National Security + * and Southern Methodist University. + * All rights reserved. + * + * See the top-level LICENSE and NOTICE files for details. + * + * SPDX-License-Identifier: BSD-3-Clause + * SUNDIALS Copyright End + * -------------------------------------------------------------*/ + +/* ----------------------------------------------------------------------------- + * This section contains generic SWIG labels for method/variable + * declarations/attributes, and other compiler dependent labels. + * ----------------------------------------------------------------------------- */ + +/* template workaround for compilers that cannot correctly implement the C++ standard */ +#ifndef SWIGTEMPLATEDISAMBIGUATOR +# if defined(__SUNPRO_CC) && (__SUNPRO_CC <= 0x560) +# define SWIGTEMPLATEDISAMBIGUATOR template +# elif defined(__HP_aCC) +/* Needed even with `aCC -AA' when `aCC -V' reports HP ANSI C++ B3910B A.03.55 */ +/* If we find a maximum version that requires this, the test would be __HP_aCC <= 35500 for A.03.55 */ +# define SWIGTEMPLATEDISAMBIGUATOR template +# else +# define SWIGTEMPLATEDISAMBIGUATOR +# endif +#endif + +/* inline attribute */ +#ifndef SWIGINLINE +# if defined(__cplusplus) || (defined(__GNUC__) && !defined(__STRICT_ANSI__)) +# define SWIGINLINE inline +# else +# define SWIGINLINE +# endif +#endif + +/* attribute recognised by some compilers to avoid 'unused' warnings */ +#ifndef SWIGUNUSED +# if defined(__GNUC__) +# if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)) +# define SWIGUNUSED __attribute__ ((__unused__)) +# else +# define SWIGUNUSED +# endif +# elif defined(__ICC) +# define SWIGUNUSED __attribute__ ((__unused__)) +# else +# define SWIGUNUSED +# endif +#endif + +#ifndef SWIG_MSC_UNSUPPRESS_4505 +# if defined(_MSC_VER) +# pragma warning(disable : 4505) /* unreferenced local function has been removed */ +# endif +#endif + +#ifndef SWIGUNUSEDPARM +# ifdef __cplusplus +# define SWIGUNUSEDPARM(p) +# else +# define SWIGUNUSEDPARM(p) p SWIGUNUSED +# endif +#endif + +/* internal SWIG method */ +#ifndef SWIGINTERN +# define SWIGINTERN static SWIGUNUSED +#endif + +/* internal inline SWIG method */ +#ifndef SWIGINTERNINLINE +# define SWIGINTERNINLINE SWIGINTERN SWIGINLINE +#endif + +/* qualifier for exported *const* global data variables*/ +#ifndef SWIGEXTERN +# ifdef __cplusplus +# define SWIGEXTERN extern +# else +# define SWIGEXTERN +# endif +#endif + +/* exporting methods */ +#if defined(__GNUC__) +# if (__GNUC__ >= 4) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) +# ifndef GCC_HASCLASSVISIBILITY +# define GCC_HASCLASSVISIBILITY +# endif +# endif +#endif + +#ifndef SWIGEXPORT +# if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__) +# if defined(STATIC_LINKED) +# define SWIGEXPORT +# else +# define SWIGEXPORT __declspec(dllexport) +# endif +# else +# if defined(__GNUC__) && defined(GCC_HASCLASSVISIBILITY) +# define SWIGEXPORT __attribute__ ((visibility("default"))) +# else +# define SWIGEXPORT +# endif +# endif +#endif + +/* calling conventions for Windows */ +#ifndef SWIGSTDCALL +# if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__) +# define SWIGSTDCALL __stdcall +# else +# define SWIGSTDCALL +# endif +#endif + +/* Deal with Microsoft's attempt at deprecating C standard runtime functions */ +#if !defined(SWIG_NO_CRT_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_CRT_SECURE_NO_DEPRECATE) +# define _CRT_SECURE_NO_DEPRECATE +#endif + +/* Deal with Microsoft's attempt at deprecating methods in the standard C++ library */ +#if !defined(SWIG_NO_SCL_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_SCL_SECURE_NO_DEPRECATE) +# define _SCL_SECURE_NO_DEPRECATE +#endif + +/* Deal with Apple's deprecated 'AssertMacros.h' from Carbon-framework */ +#if defined(__APPLE__) && !defined(__ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES) +# define __ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES 0 +#endif + +/* Intel's compiler complains if a variable which was never initialised is + * cast to void, which is a common idiom which we use to indicate that we + * are aware a variable isn't used. So we just silence that warning. + * See: https://github.com/swig/swig/issues/192 for more discussion. + */ +#ifdef __INTEL_COMPILER +# pragma warning disable 592 +#endif + +/* Errors in SWIG */ +#define SWIG_UnknownError -1 +#define SWIG_IOError -2 +#define SWIG_RuntimeError -3 +#define SWIG_IndexError -4 +#define SWIG_TypeError -5 +#define SWIG_DivisionByZero -6 +#define SWIG_OverflowError -7 +#define SWIG_SyntaxError -8 +#define SWIG_ValueError -9 +#define SWIG_SystemError -10 +#define SWIG_AttributeError -11 +#define SWIG_MemoryError -12 +#define SWIG_NullReferenceError -13 + + + + +#include +#define SWIG_exception_impl(DECL, CODE, MSG, RETURNNULL) \ + { printf("In " DECL ": " MSG); assert(0); RETURNNULL; } + + +#include +#if defined(_MSC_VER) || defined(__BORLANDC__) || defined(_WATCOM) +# ifndef snprintf +# define snprintf _snprintf +# endif +#endif + + +/* Support for the `contract` feature. + * + * Note that RETURNNULL is first because it's inserted via a 'Replaceall' in + * the fortran.cxx file. + */ +#define SWIG_contract_assert(RETURNNULL, EXPR, MSG) \ + if (!(EXPR)) { SWIG_exception_impl("$decl", SWIG_ValueError, MSG, RETURNNULL); } + + +#define SWIGVERSION 0x040000 +#define SWIG_VERSION SWIGVERSION + + +#define SWIG_as_voidptr(a) (void *)((const void *)(a)) +#define SWIG_as_voidptrptr(a) ((void)SWIG_as_voidptr(*a),(void**)(a)) + + +#include "arkode/arkode_sprkstep.h" + + +#include +#ifdef _MSC_VER +# ifndef strtoull +# define strtoull _strtoui64 +# endif +# ifndef strtoll +# define strtoll _strtoi64 +# endif +#endif + + +typedef struct { + void* data; + size_t size; +} SwigArrayWrapper; + + +SWIGINTERN SwigArrayWrapper SwigArrayWrapper_uninitialized() { + SwigArrayWrapper result; + result.data = NULL; + result.size = 0; + return result; +} + + +#include + +SWIGEXPORT void * _wrap_FSPRKStepCreate(ARKRhsFn farg1, ARKRhsFn farg2, double const *farg3, N_Vector farg4, void *farg5) { + void * fresult ; + ARKRhsFn arg1 = (ARKRhsFn) 0 ; + ARKRhsFn arg2 = (ARKRhsFn) 0 ; + sunrealtype arg3 ; + N_Vector arg4 = (N_Vector) 0 ; + SUNContext arg5 = (SUNContext) 0 ; + void *result = 0 ; + + arg1 = (ARKRhsFn)(farg1); + arg2 = (ARKRhsFn)(farg2); + arg3 = (sunrealtype)(*farg3); + arg4 = (N_Vector)(farg4); + arg5 = (SUNContext)(farg5); + result = (void *)SPRKStepCreate(arg1,arg2,arg3,arg4,arg5); + fresult = result; + return fresult; +} + + +SWIGEXPORT int _wrap_FSPRKStepReInit(void *farg1, ARKRhsFn farg2, ARKRhsFn farg3, double const *farg4, N_Vector farg5) { + int fresult ; + void *arg1 = (void *) 0 ; + ARKRhsFn arg2 = (ARKRhsFn) 0 ; + ARKRhsFn arg3 = (ARKRhsFn) 0 ; + sunrealtype arg4 ; + N_Vector arg5 = (N_Vector) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (ARKRhsFn)(farg2); + arg3 = (ARKRhsFn)(farg3); + arg4 = (sunrealtype)(*farg4); + arg5 = (N_Vector)(farg5); + result = (int)SPRKStepReInit(arg1,arg2,arg3,arg4,arg5); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSPRKStepSetUseCompensatedSums(void *farg1, int const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + result = (int)SPRKStepSetUseCompensatedSums(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSPRKStepSetMethod(void *farg1, void *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + ARKodeSPRKTable arg2 = (ARKodeSPRKTable) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (ARKodeSPRKTable)(farg2); + result = (int)SPRKStepSetMethod(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSPRKStepSetMethodName(void *farg1, SwigArrayWrapper *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + char *arg2 = (char *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (char *)(farg2->data); + result = (int)SPRKStepSetMethodName(arg1,(char const *)arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSPRKStepGetCurrentMethod(void *farg1, void *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + ARKodeSPRKTable *arg2 = (ARKodeSPRKTable *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (ARKodeSPRKTable *)(farg2); + result = (int)SPRKStepGetCurrentMethod(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSPRKStepGetNumRhsEvals(void *farg1, long *farg2, long *farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + long *arg3 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + arg3 = (long *)(farg3); + result = (int)SPRKStepGetNumRhsEvals(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSPRKStepReset(void *farg1, double const *farg2, N_Vector farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + N_Vector arg3 = (N_Vector) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + arg3 = (N_Vector)(farg3); + result = (int)SPRKStepReset(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSPRKStepRootInit(void *farg1, int const *farg2, ARKRootFn farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + ARKRootFn arg3 = (ARKRootFn) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + arg3 = (ARKRootFn)(farg3); + result = (int)SPRKStepRootInit(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSPRKStepSetRootDirection(void *farg1, int *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + int *arg2 = (int *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int *)(farg2); + result = (int)SPRKStepSetRootDirection(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSPRKStepSetNoInactiveRootWarn(void *farg1) { + int fresult ; + void *arg1 = (void *) 0 ; + int result; + + arg1 = (void *)(farg1); + result = (int)SPRKStepSetNoInactiveRootWarn(arg1); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSPRKStepSetDefaults(void *farg1) { + int fresult ; + void *arg1 = (void *) 0 ; + int result; + + arg1 = (void *)(farg1); + result = (int)SPRKStepSetDefaults(arg1); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSPRKStepSetOrder(void *farg1, int const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + result = (int)SPRKStepSetOrder(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSPRKStepSetInterpolantType(void *farg1, int const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + result = (int)SPRKStepSetInterpolantType(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSPRKStepSetInterpolantDegree(void *farg1, int const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + result = (int)SPRKStepSetInterpolantDegree(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSPRKStepSetMaxNumSteps(void *farg1, long const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long)(*farg2); + result = (int)SPRKStepSetMaxNumSteps(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSPRKStepSetStopTime(void *farg1, double const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + result = (int)SPRKStepSetStopTime(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSPRKStepSetFixedStep(void *farg1, double const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + result = (int)SPRKStepSetFixedStep(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSPRKStepSetUserData(void *farg1, void *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + void *arg2 = (void *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (void *)(farg2); + result = (int)SPRKStepSetUserData(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSPRKStepSetPostprocessStepFn(void *farg1, ARKPostProcessFn farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + ARKPostProcessFn arg2 = (ARKPostProcessFn) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (ARKPostProcessFn)(farg2); + result = (int)SPRKStepSetPostprocessStepFn(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSPRKStepSetPostprocessStageFn(void *farg1, ARKPostProcessFn farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + ARKPostProcessFn arg2 = (ARKPostProcessFn) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (ARKPostProcessFn)(farg2); + result = (int)SPRKStepSetPostprocessStageFn(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSPRKStepEvolve(void *farg1, double const *farg2, N_Vector farg3, double *farg4, int const *farg5) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + N_Vector arg3 = (N_Vector) 0 ; + sunrealtype *arg4 = (sunrealtype *) 0 ; + int arg5 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + arg3 = (N_Vector)(farg3); + arg4 = (sunrealtype *)(farg4); + arg5 = (int)(*farg5); + result = (int)SPRKStepEvolve(arg1,arg2,arg3,arg4,arg5); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSPRKStepGetDky(void *farg1, double const *farg2, int const *farg3, N_Vector farg4) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + int arg3 ; + N_Vector arg4 = (N_Vector) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + arg3 = (int)(*farg3); + arg4 = (N_Vector)(farg4); + result = (int)SPRKStepGetDky(arg1,arg2,arg3,arg4); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT SwigArrayWrapper _wrap_FSPRKStepGetReturnFlagName(long const *farg1) { + SwigArrayWrapper fresult ; + long arg1 ; + char *result = 0 ; + + arg1 = (long)(*farg1); + result = (char *)SPRKStepGetReturnFlagName(arg1); + fresult.size = strlen((const char*)(result)); + fresult.data = (char *)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSPRKStepGetCurrentState(void *farg1, void *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + N_Vector *arg2 = (N_Vector *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (N_Vector *)(farg2); + result = (int)SPRKStepGetCurrentState(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSPRKStepGetCurrentStep(void *farg1, double *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype *arg2 = (sunrealtype *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype *)(farg2); + result = (int)SPRKStepGetCurrentStep(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSPRKStepGetCurrentTime(void *farg1, double *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype *arg2 = (sunrealtype *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype *)(farg2); + result = (int)SPRKStepGetCurrentTime(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSPRKStepGetLastStep(void *farg1, double *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype *arg2 = (sunrealtype *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype *)(farg2); + result = (int)SPRKStepGetLastStep(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSPRKStepGetNumStepAttempts(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)SPRKStepGetNumStepAttempts(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSPRKStepGetNumSteps(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)SPRKStepGetNumSteps(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSPRKStepGetRootInfo(void *farg1, int *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + int *arg2 = (int *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int *)(farg2); + result = (int)SPRKStepGetRootInfo(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSPRKStepGetUserData(void *farg1, void *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + void **arg2 = (void **) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (void **)(farg2); + result = (int)SPRKStepGetUserData(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSPRKStepPrintAllStats(void *farg1, void *farg2, int const *farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + FILE *arg2 = (FILE *) 0 ; + SUNOutputFormat arg3 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (FILE *)(farg2); + arg3 = (SUNOutputFormat)(*farg3); + result = (int)SPRKStepPrintAllStats(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSPRKStepWriteParameters(void *farg1, void *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + FILE *arg2 = (FILE *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (FILE *)(farg2); + result = (int)SPRKStepWriteParameters(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSPRKStepGetStepStats(void *farg1, long *farg2, double *farg3, double *farg4, double *farg5, double *farg6) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + sunrealtype *arg3 = (sunrealtype *) 0 ; + sunrealtype *arg4 = (sunrealtype *) 0 ; + sunrealtype *arg5 = (sunrealtype *) 0 ; + sunrealtype *arg6 = (sunrealtype *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + arg3 = (sunrealtype *)(farg3); + arg4 = (sunrealtype *)(farg4); + arg5 = (sunrealtype *)(farg5); + arg6 = (sunrealtype *)(farg6); + result = (int)SPRKStepGetStepStats(arg1,arg2,arg3,arg4,arg5,arg6); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT void _wrap_FSPRKStepFree(void *farg1) { + void **arg1 = (void **) 0 ; + + arg1 = (void **)(farg1); + SPRKStepFree(arg1); +} + + + diff --git a/src/arkode/fmod_int64/farkode_sprkstep_mod.f90 b/src/arkode/fmod_int64/farkode_sprkstep_mod.f90 new file mode 100644 index 0000000000..82217e7b1b --- /dev/null +++ b/src/arkode/fmod_int64/farkode_sprkstep_mod.f90 @@ -0,0 +1,1081 @@ +! This file was automatically generated by SWIG (http://www.swig.org). +! Version 4.0.0 +! +! Do not make changes to this file unless you know what you are doing--modify +! the SWIG interface file instead. + +! --------------------------------------------------------------- +! Programmer(s): Auto-generated by swig. +! --------------------------------------------------------------- +! SUNDIALS Copyright Start +! Copyright (c) 2002-2024, Lawrence Livermore National Security +! and Southern Methodist University. +! All rights reserved. +! +! See the top-level LICENSE and NOTICE files for details. +! +! SPDX-License-Identifier: BSD-3-Clause +! SUNDIALS Copyright End +! --------------------------------------------------------------- + +module farkode_sprkstep_mod + use, intrinsic :: ISO_C_BINDING + use farkode_mod + use fsundials_core_mod + implicit none + private + + ! DECLARATION CONSTRUCTS + integer(C_INT), parameter, public :: SPRKSTEP_DEFAULT_1 = ARKODE_SPRK_EULER_1_1 + integer(C_INT), parameter, public :: SPRKSTEP_DEFAULT_2 = ARKODE_SPRK_LEAPFROG_2_2 + integer(C_INT), parameter, public :: SPRKSTEP_DEFAULT_3 = ARKODE_SPRK_MCLACHLAN_3_3 + integer(C_INT), parameter, public :: SPRKSTEP_DEFAULT_4 = ARKODE_SPRK_MCLACHLAN_4_4 + integer(C_INT), parameter, public :: SPRKSTEP_DEFAULT_5 = ARKODE_SPRK_MCLACHLAN_5_6 + integer(C_INT), parameter, public :: SPRKSTEP_DEFAULT_6 = ARKODE_SPRK_YOSHIDA_6_8 + integer(C_INT), parameter, public :: SPRKSTEP_DEFAULT_8 = ARKODE_SPRK_SUZUKI_UMENO_8_16 + integer(C_INT), parameter, public :: SPRKSTEP_DEFAULT_10 = ARKODE_SPRK_SOFRONIOU_10_36 + public :: FSPRKStepCreate + public :: FSPRKStepReInit + public :: FSPRKStepSetUseCompensatedSums + public :: FSPRKStepSetMethod + type, bind(C) :: SwigArrayWrapper + type(C_PTR), public :: data = C_NULL_PTR + integer(C_SIZE_T), public :: size = 0 + end type + public :: FSPRKStepSetMethodName + public :: FSPRKStepGetCurrentMethod + public :: FSPRKStepGetNumRhsEvals + public :: FSPRKStepReset + public :: FSPRKStepRootInit + public :: FSPRKStepSetRootDirection + public :: FSPRKStepSetNoInactiveRootWarn + public :: FSPRKStepSetDefaults + public :: FSPRKStepSetOrder + public :: FSPRKStepSetInterpolantType + public :: FSPRKStepSetInterpolantDegree + public :: FSPRKStepSetMaxNumSteps + public :: FSPRKStepSetStopTime + public :: FSPRKStepSetFixedStep + public :: FSPRKStepSetUserData + public :: FSPRKStepSetPostprocessStepFn + public :: FSPRKStepSetPostprocessStageFn + public :: FSPRKStepEvolve + public :: FSPRKStepGetDky + public :: FSPRKStepGetReturnFlagName + public :: FSPRKStepGetCurrentState + public :: FSPRKStepGetCurrentStep + public :: FSPRKStepGetCurrentTime + public :: FSPRKStepGetLastStep + public :: FSPRKStepGetNumStepAttempts + public :: FSPRKStepGetNumSteps + public :: FSPRKStepGetRootInfo + public :: FSPRKStepGetUserData + public :: FSPRKStepPrintAllStats + public :: FSPRKStepWriteParameters + public :: FSPRKStepGetStepStats + public :: FSPRKStepFree + +! WRAPPER DECLARATIONS +interface +function swigc_FSPRKStepCreate(farg1, farg2, farg3, farg4, farg5) & +bind(C, name="_wrap_FSPRKStepCreate") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_FUNPTR), value :: farg1 +type(C_FUNPTR), value :: farg2 +real(C_DOUBLE), intent(in) :: farg3 +type(C_PTR), value :: farg4 +type(C_PTR), value :: farg5 +type(C_PTR) :: fresult +end function + +function swigc_FSPRKStepReInit(farg1, farg2, farg3, farg4, farg5) & +bind(C, name="_wrap_FSPRKStepReInit") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_FUNPTR), value :: farg2 +type(C_FUNPTR), value :: farg3 +real(C_DOUBLE), intent(in) :: farg4 +type(C_PTR), value :: farg5 +integer(C_INT) :: fresult +end function + +function swigc_FSPRKStepSetUseCompensatedSums(farg1, farg2) & +bind(C, name="_wrap_FSPRKStepSetUseCompensatedSums") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FSPRKStepSetMethod(farg1, farg2) & +bind(C, name="_wrap_FSPRKStepSetMethod") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FSPRKStepSetMethodName(farg1, farg2) & +bind(C, name="_wrap_FSPRKStepSetMethodName") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +import :: swigarraywrapper +type(C_PTR), value :: farg1 +type(SwigArrayWrapper) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FSPRKStepGetCurrentMethod(farg1, farg2) & +bind(C, name="_wrap_FSPRKStepGetCurrentMethod") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FSPRKStepGetNumRhsEvals(farg1, farg2, farg3) & +bind(C, name="_wrap_FSPRKStepGetNumRhsEvals") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FSPRKStepReset(farg1, farg2, farg3) & +bind(C, name="_wrap_FSPRKStepReset") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FSPRKStepRootInit(farg1, farg2, farg3) & +bind(C, name="_wrap_FSPRKStepRootInit") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +type(C_FUNPTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FSPRKStepSetRootDirection(farg1, farg2) & +bind(C, name="_wrap_FSPRKStepSetRootDirection") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FSPRKStepSetNoInactiveRootWarn(farg1) & +bind(C, name="_wrap_FSPRKStepSetNoInactiveRootWarn") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT) :: fresult +end function + +function swigc_FSPRKStepSetDefaults(farg1) & +bind(C, name="_wrap_FSPRKStepSetDefaults") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT) :: fresult +end function + +function swigc_FSPRKStepSetOrder(farg1, farg2) & +bind(C, name="_wrap_FSPRKStepSetOrder") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FSPRKStepSetInterpolantType(farg1, farg2) & +bind(C, name="_wrap_FSPRKStepSetInterpolantType") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FSPRKStepSetInterpolantDegree(farg1, farg2) & +bind(C, name="_wrap_FSPRKStepSetInterpolantDegree") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FSPRKStepSetMaxNumSteps(farg1, farg2) & +bind(C, name="_wrap_FSPRKStepSetMaxNumSteps") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_LONG), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FSPRKStepSetStopTime(farg1, farg2) & +bind(C, name="_wrap_FSPRKStepSetStopTime") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FSPRKStepSetFixedStep(farg1, farg2) & +bind(C, name="_wrap_FSPRKStepSetFixedStep") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FSPRKStepSetUserData(farg1, farg2) & +bind(C, name="_wrap_FSPRKStepSetUserData") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FSPRKStepSetPostprocessStepFn(farg1, farg2) & +bind(C, name="_wrap_FSPRKStepSetPostprocessStepFn") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_FUNPTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FSPRKStepSetPostprocessStageFn(farg1, farg2) & +bind(C, name="_wrap_FSPRKStepSetPostprocessStageFn") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_FUNPTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FSPRKStepEvolve(farg1, farg2, farg3, farg4, farg5) & +bind(C, name="_wrap_FSPRKStepEvolve") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +type(C_PTR), value :: farg3 +type(C_PTR), value :: farg4 +integer(C_INT), intent(in) :: farg5 +integer(C_INT) :: fresult +end function + +function swigc_FSPRKStepGetDky(farg1, farg2, farg3, farg4) & +bind(C, name="_wrap_FSPRKStepGetDky") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT), intent(in) :: farg3 +type(C_PTR), value :: farg4 +integer(C_INT) :: fresult +end function + + subroutine SWIG_free(cptr) & + bind(C, name="free") + use, intrinsic :: ISO_C_BINDING + type(C_PTR), value :: cptr +end subroutine +function swigc_FSPRKStepGetReturnFlagName(farg1) & +bind(C, name="_wrap_FSPRKStepGetReturnFlagName") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +import :: swigarraywrapper +integer(C_LONG), intent(in) :: farg1 +type(SwigArrayWrapper) :: fresult +end function + +function swigc_FSPRKStepGetCurrentState(farg1, farg2) & +bind(C, name="_wrap_FSPRKStepGetCurrentState") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FSPRKStepGetCurrentStep(farg1, farg2) & +bind(C, name="_wrap_FSPRKStepGetCurrentStep") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FSPRKStepGetCurrentTime(farg1, farg2) & +bind(C, name="_wrap_FSPRKStepGetCurrentTime") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FSPRKStepGetLastStep(farg1, farg2) & +bind(C, name="_wrap_FSPRKStepGetLastStep") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FSPRKStepGetNumStepAttempts(farg1, farg2) & +bind(C, name="_wrap_FSPRKStepGetNumStepAttempts") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FSPRKStepGetNumSteps(farg1, farg2) & +bind(C, name="_wrap_FSPRKStepGetNumSteps") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FSPRKStepGetRootInfo(farg1, farg2) & +bind(C, name="_wrap_FSPRKStepGetRootInfo") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FSPRKStepGetUserData(farg1, farg2) & +bind(C, name="_wrap_FSPRKStepGetUserData") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FSPRKStepPrintAllStats(farg1, farg2, farg3) & +bind(C, name="_wrap_FSPRKStepPrintAllStats") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT), intent(in) :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FSPRKStepWriteParameters(farg1, farg2) & +bind(C, name="_wrap_FSPRKStepWriteParameters") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FSPRKStepGetStepStats(farg1, farg2, farg3, farg4, farg5, farg6) & +bind(C, name="_wrap_FSPRKStepGetStepStats") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +type(C_PTR), value :: farg4 +type(C_PTR), value :: farg5 +type(C_PTR), value :: farg6 +integer(C_INT) :: fresult +end function + +subroutine swigc_FSPRKStepFree(farg1) & +bind(C, name="_wrap_FSPRKStepFree") +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +end subroutine + +end interface + + +contains + ! MODULE SUBPROGRAMS +function FSPRKStepCreate(f1, f2, t0, y0, sunctx) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +type(C_PTR) :: swig_result +type(C_FUNPTR), intent(in), value :: f1 +type(C_FUNPTR), intent(in), value :: f2 +real(C_DOUBLE), intent(in) :: t0 +type(N_Vector), target, intent(inout) :: y0 +type(C_PTR) :: sunctx +type(C_PTR) :: fresult +type(C_FUNPTR) :: farg1 +type(C_FUNPTR) :: farg2 +real(C_DOUBLE) :: farg3 +type(C_PTR) :: farg4 +type(C_PTR) :: farg5 + +farg1 = f1 +farg2 = f2 +farg3 = t0 +farg4 = c_loc(y0) +farg5 = sunctx +fresult = swigc_FSPRKStepCreate(farg1, farg2, farg3, farg4, farg5) +swig_result = fresult +end function + +function FSPRKStepReInit(arkode_mem, f1, f2, t0, y0) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +type(C_FUNPTR), intent(in), value :: f1 +type(C_FUNPTR), intent(in), value :: f2 +real(C_DOUBLE), intent(in) :: t0 +type(N_Vector), target, intent(inout) :: y0 +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_FUNPTR) :: farg2 +type(C_FUNPTR) :: farg3 +real(C_DOUBLE) :: farg4 +type(C_PTR) :: farg5 + +farg1 = arkode_mem +farg2 = f1 +farg3 = f2 +farg4 = t0 +farg5 = c_loc(y0) +fresult = swigc_FSPRKStepReInit(farg1, farg2, farg3, farg4, farg5) +swig_result = fresult +end function + +function FSPRKStepSetUseCompensatedSums(arkode_mem, onoff) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_INT), intent(in) :: onoff +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = arkode_mem +farg2 = onoff +fresult = swigc_FSPRKStepSetUseCompensatedSums(farg1, farg2) +swig_result = fresult +end function + +function FSPRKStepSetMethod(arkode_mem, sprk_storage) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +type(C_PTR) :: sprk_storage +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = sprk_storage +fresult = swigc_FSPRKStepSetMethod(farg1, farg2) +swig_result = fresult +end function + + +subroutine SWIG_string_to_chararray(string, chars, wrap) + use, intrinsic :: ISO_C_BINDING + character(kind=C_CHAR, len=*), intent(IN) :: string + character(kind=C_CHAR), dimension(:), target, allocatable, intent(OUT) :: chars + type(SwigArrayWrapper), intent(OUT) :: wrap + integer :: i + + allocate(character(kind=C_CHAR) :: chars(len(string) + 1)) + do i=1,len(string) + chars(i) = string(i:i) + end do + i = len(string) + 1 + chars(i) = C_NULL_CHAR ! C string compatibility + wrap%data = c_loc(chars) + wrap%size = len(string) +end subroutine + +function FSPRKStepSetMethodName(arkode_mem, method) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +character(kind=C_CHAR, len=*), target :: method +character(kind=C_CHAR), dimension(:), allocatable, target :: farg2_chars +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(SwigArrayWrapper) :: farg2 + +farg1 = arkode_mem +call SWIG_string_to_chararray(method, farg2_chars, farg2) +fresult = swigc_FSPRKStepSetMethodName(farg1, farg2) +swig_result = fresult +end function + +function FSPRKStepGetCurrentMethod(arkode_mem, sprk_storage) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +type(C_PTR), target, intent(inout) :: sprk_storage +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(sprk_storage) +fresult = swigc_FSPRKStepGetCurrentMethod(farg1, farg2) +swig_result = fresult +end function + +function FSPRKStepGetNumRhsEvals(arkode_mem, nf1, nf2) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: nf1 +integer(C_LONG), dimension(*), target, intent(inout) :: nf2 +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = arkode_mem +farg2 = c_loc(nf1(1)) +farg3 = c_loc(nf2(1)) +fresult = swigc_FSPRKStepGetNumRhsEvals(farg1, farg2, farg3) +swig_result = fresult +end function + +function FSPRKStepReset(arkode_mem, tr, yr) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +real(C_DOUBLE), intent(in) :: tr +type(N_Vector), target, intent(inout) :: yr +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 +type(C_PTR) :: farg3 + +farg1 = arkode_mem +farg2 = tr +farg3 = c_loc(yr) +fresult = swigc_FSPRKStepReset(farg1, farg2, farg3) +swig_result = fresult +end function + +function FSPRKStepRootInit(arkode_mem, nrtfn, g) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_INT), intent(in) :: nrtfn +type(C_FUNPTR), intent(in), value :: g +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 +type(C_FUNPTR) :: farg3 + +farg1 = arkode_mem +farg2 = nrtfn +farg3 = g +fresult = swigc_FSPRKStepRootInit(farg1, farg2, farg3) +swig_result = fresult +end function + +function FSPRKStepSetRootDirection(arkode_mem, rootdir) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_INT), dimension(*), target, intent(inout) :: rootdir +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(rootdir(1)) +fresult = swigc_FSPRKStepSetRootDirection(farg1, farg2) +swig_result = fresult +end function + +function FSPRKStepSetNoInactiveRootWarn(arkode_mem) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_INT) :: fresult +type(C_PTR) :: farg1 + +farg1 = arkode_mem +fresult = swigc_FSPRKStepSetNoInactiveRootWarn(farg1) +swig_result = fresult +end function + +function FSPRKStepSetDefaults(arkode_mem) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_INT) :: fresult +type(C_PTR) :: farg1 + +farg1 = arkode_mem +fresult = swigc_FSPRKStepSetDefaults(farg1) +swig_result = fresult +end function + +function FSPRKStepSetOrder(arkode_mem, maxord) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_INT), intent(in) :: maxord +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = arkode_mem +farg2 = maxord +fresult = swigc_FSPRKStepSetOrder(farg1, farg2) +swig_result = fresult +end function + +function FSPRKStepSetInterpolantType(arkode_mem, itype) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_INT), intent(in) :: itype +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = arkode_mem +farg2 = itype +fresult = swigc_FSPRKStepSetInterpolantType(farg1, farg2) +swig_result = fresult +end function + +function FSPRKStepSetInterpolantDegree(arkode_mem, degree) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_INT), intent(in) :: degree +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = arkode_mem +farg2 = degree +fresult = swigc_FSPRKStepSetInterpolantDegree(farg1, farg2) +swig_result = fresult +end function + +function FSPRKStepSetMaxNumSteps(arkode_mem, mxsteps) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_LONG), intent(in) :: mxsteps +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_LONG) :: farg2 + +farg1 = arkode_mem +farg2 = mxsteps +fresult = swigc_FSPRKStepSetMaxNumSteps(farg1, farg2) +swig_result = fresult +end function + +function FSPRKStepSetStopTime(arkode_mem, tstop) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +real(C_DOUBLE), intent(in) :: tstop +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 + +farg1 = arkode_mem +farg2 = tstop +fresult = swigc_FSPRKStepSetStopTime(farg1, farg2) +swig_result = fresult +end function + +function FSPRKStepSetFixedStep(arkode_mem, hfixed) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +real(C_DOUBLE), intent(in) :: hfixed +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 + +farg1 = arkode_mem +farg2 = hfixed +fresult = swigc_FSPRKStepSetFixedStep(farg1, farg2) +swig_result = fresult +end function + +function FSPRKStepSetUserData(arkode_mem, user_data) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +type(C_PTR) :: user_data +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = user_data +fresult = swigc_FSPRKStepSetUserData(farg1, farg2) +swig_result = fresult +end function + +function FSPRKStepSetPostprocessStepFn(arkode_mem, processstep) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +type(C_FUNPTR), intent(in), value :: processstep +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_FUNPTR) :: farg2 + +farg1 = arkode_mem +farg2 = processstep +fresult = swigc_FSPRKStepSetPostprocessStepFn(farg1, farg2) +swig_result = fresult +end function + +function FSPRKStepSetPostprocessStageFn(arkode_mem, processstage) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +type(C_FUNPTR), intent(in), value :: processstage +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_FUNPTR) :: farg2 + +farg1 = arkode_mem +farg2 = processstage +fresult = swigc_FSPRKStepSetPostprocessStageFn(farg1, farg2) +swig_result = fresult +end function + +function FSPRKStepEvolve(arkode_mem, tout, yout, tret, itask) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +real(C_DOUBLE), intent(in) :: tout +type(N_Vector), target, intent(inout) :: yout +real(C_DOUBLE), dimension(*), target, intent(inout) :: tret +integer(C_INT), intent(in) :: itask +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 +type(C_PTR) :: farg3 +type(C_PTR) :: farg4 +integer(C_INT) :: farg5 + +farg1 = arkode_mem +farg2 = tout +farg3 = c_loc(yout) +farg4 = c_loc(tret(1)) +farg5 = itask +fresult = swigc_FSPRKStepEvolve(farg1, farg2, farg3, farg4, farg5) +swig_result = fresult +end function + +function FSPRKStepGetDky(arkode_mem, t, k, dky) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +real(C_DOUBLE), intent(in) :: t +integer(C_INT), intent(in) :: k +type(N_Vector), target, intent(inout) :: dky +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 +integer(C_INT) :: farg3 +type(C_PTR) :: farg4 + +farg1 = arkode_mem +farg2 = t +farg3 = k +farg4 = c_loc(dky) +fresult = swigc_FSPRKStepGetDky(farg1, farg2, farg3, farg4) +swig_result = fresult +end function + + +subroutine SWIG_chararray_to_string(wrap, string) + use, intrinsic :: ISO_C_BINDING + type(SwigArrayWrapper), intent(IN) :: wrap + character(kind=C_CHAR, len=:), allocatable, intent(OUT) :: string + character(kind=C_CHAR), dimension(:), pointer :: chars + integer(kind=C_SIZE_T) :: i + call c_f_pointer(wrap%data, chars, [wrap%size]) + allocate(character(kind=C_CHAR, len=wrap%size) :: string) + do i=1, wrap%size + string(i:i) = chars(i) + end do +end subroutine + +function FSPRKStepGetReturnFlagName(flag) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +character(kind=C_CHAR, len=:), allocatable :: swig_result +integer(C_LONG), intent(in) :: flag +type(SwigArrayWrapper) :: fresult +integer(C_LONG) :: farg1 + +farg1 = flag +fresult = swigc_FSPRKStepGetReturnFlagName(farg1) +call SWIG_chararray_to_string(fresult, swig_result) +if (.false.) call SWIG_free(fresult%data) +end function + +function FSPRKStepGetCurrentState(arkode_mem, state) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +type(C_PTR) :: state +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = state +fresult = swigc_FSPRKStepGetCurrentState(farg1, farg2) +swig_result = fresult +end function + +function FSPRKStepGetCurrentStep(arkode_mem, hcur) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +real(C_DOUBLE), dimension(*), target, intent(inout) :: hcur +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(hcur(1)) +fresult = swigc_FSPRKStepGetCurrentStep(farg1, farg2) +swig_result = fresult +end function + +function FSPRKStepGetCurrentTime(arkode_mem, tcur) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +real(C_DOUBLE), dimension(*), target, intent(inout) :: tcur +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(tcur(1)) +fresult = swigc_FSPRKStepGetCurrentTime(farg1, farg2) +swig_result = fresult +end function + +function FSPRKStepGetLastStep(arkode_mem, hlast) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +real(C_DOUBLE), dimension(*), target, intent(inout) :: hlast +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(hlast(1)) +fresult = swigc_FSPRKStepGetLastStep(farg1, farg2) +swig_result = fresult +end function + +function FSPRKStepGetNumStepAttempts(arkode_mem, step_attempts) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: step_attempts +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(step_attempts(1)) +fresult = swigc_FSPRKStepGetNumStepAttempts(farg1, farg2) +swig_result = fresult +end function + +function FSPRKStepGetNumSteps(arkode_mem, nsteps) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: nsteps +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(nsteps(1)) +fresult = swigc_FSPRKStepGetNumSteps(farg1, farg2) +swig_result = fresult +end function + +function FSPRKStepGetRootInfo(arkode_mem, rootsfound) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_INT), dimension(*), target, intent(inout) :: rootsfound +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(rootsfound(1)) +fresult = swigc_FSPRKStepGetRootInfo(farg1, farg2) +swig_result = fresult +end function + +function FSPRKStepGetUserData(arkode_mem, user_data) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +type(C_PTR), target, intent(inout) :: user_data +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(user_data) +fresult = swigc_FSPRKStepGetUserData(farg1, farg2) +swig_result = fresult +end function + +function FSPRKStepPrintAllStats(arkode_mem, outfile, fmt) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +type(C_PTR) :: outfile +integer(SUNOutputFormat), intent(in) :: fmt +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +integer(C_INT) :: farg3 + +farg1 = arkode_mem +farg2 = outfile +farg3 = fmt +fresult = swigc_FSPRKStepPrintAllStats(farg1, farg2, farg3) +swig_result = fresult +end function + +function FSPRKStepWriteParameters(arkode_mem, fp) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +type(C_PTR) :: fp +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = fp +fresult = swigc_FSPRKStepWriteParameters(farg1, farg2) +swig_result = fresult +end function + +function FSPRKStepGetStepStats(arkode_mem, nsteps, hinused, hlast, hcur, tcur) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: nsteps +real(C_DOUBLE), dimension(*), target, intent(inout) :: hinused +real(C_DOUBLE), dimension(*), target, intent(inout) :: hlast +real(C_DOUBLE), dimension(*), target, intent(inout) :: hcur +real(C_DOUBLE), dimension(*), target, intent(inout) :: tcur +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 +type(C_PTR) :: farg4 +type(C_PTR) :: farg5 +type(C_PTR) :: farg6 + +farg1 = arkode_mem +farg2 = c_loc(nsteps(1)) +farg3 = c_loc(hinused(1)) +farg4 = c_loc(hlast(1)) +farg5 = c_loc(hcur(1)) +farg6 = c_loc(tcur(1)) +fresult = swigc_FSPRKStepGetStepStats(farg1, farg2, farg3, farg4, farg5, farg6) +swig_result = fresult +end function + +subroutine FSPRKStepFree(arkode_mem) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), target, intent(inout) :: arkode_mem +type(C_PTR) :: farg1 + +farg1 = c_loc(arkode_mem) +call swigc_FSPRKStepFree(farg1) +end subroutine + + +end module diff --git a/src/cvode/CMakeLists.txt b/src/cvode/CMakeLists.txt index ca1e745b98..7a3e01613a 100644 --- a/src/cvode/CMakeLists.txt +++ b/src/cvode/CMakeLists.txt @@ -142,5 +142,5 @@ message(STATUS "Added CVODE module") # Add F2003 module if the interface is enabled if(BUILD_FORTRAN_MODULE_INTERFACE) - add_subdirectory(fmod) + add_subdirectory("fmod_int${SUNDIALS_INDEX_SIZE}") endif() diff --git a/src/cvode/fmod/CMakeLists.txt b/src/cvode/fmod_int32/CMakeLists.txt similarity index 100% rename from src/cvode/fmod/CMakeLists.txt rename to src/cvode/fmod_int32/CMakeLists.txt diff --git a/src/cvode/fmod_int32/fcvode_mod.c b/src/cvode/fmod_int32/fcvode_mod.c new file mode 100644 index 0000000000..d7ebeac053 --- /dev/null +++ b/src/cvode/fmod_int32/fcvode_mod.c @@ -0,0 +1,2020 @@ +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.0 + * + * This file is not intended to be easily readable and contains a number of + * coding conventions designed to improve portability and efficiency. Do not make + * changes to this file unless you know what you are doing--modify the SWIG + * interface file instead. + * ----------------------------------------------------------------------------- */ + +/* --------------------------------------------------------------- + * Programmer(s): Auto-generated by swig. + * --------------------------------------------------------------- + * SUNDIALS Copyright Start + * Copyright (c) 2002-2024, Lawrence Livermore National Security + * and Southern Methodist University. + * All rights reserved. + * + * See the top-level LICENSE and NOTICE files for details. + * + * SPDX-License-Identifier: BSD-3-Clause + * SUNDIALS Copyright End + * -------------------------------------------------------------*/ + +/* ----------------------------------------------------------------------------- + * This section contains generic SWIG labels for method/variable + * declarations/attributes, and other compiler dependent labels. + * ----------------------------------------------------------------------------- */ + +/* template workaround for compilers that cannot correctly implement the C++ standard */ +#ifndef SWIGTEMPLATEDISAMBIGUATOR +# if defined(__SUNPRO_CC) && (__SUNPRO_CC <= 0x560) +# define SWIGTEMPLATEDISAMBIGUATOR template +# elif defined(__HP_aCC) +/* Needed even with `aCC -AA' when `aCC -V' reports HP ANSI C++ B3910B A.03.55 */ +/* If we find a maximum version that requires this, the test would be __HP_aCC <= 35500 for A.03.55 */ +# define SWIGTEMPLATEDISAMBIGUATOR template +# else +# define SWIGTEMPLATEDISAMBIGUATOR +# endif +#endif + +/* inline attribute */ +#ifndef SWIGINLINE +# if defined(__cplusplus) || (defined(__GNUC__) && !defined(__STRICT_ANSI__)) +# define SWIGINLINE inline +# else +# define SWIGINLINE +# endif +#endif + +/* attribute recognised by some compilers to avoid 'unused' warnings */ +#ifndef SWIGUNUSED +# if defined(__GNUC__) +# if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)) +# define SWIGUNUSED __attribute__ ((__unused__)) +# else +# define SWIGUNUSED +# endif +# elif defined(__ICC) +# define SWIGUNUSED __attribute__ ((__unused__)) +# else +# define SWIGUNUSED +# endif +#endif + +#ifndef SWIG_MSC_UNSUPPRESS_4505 +# if defined(_MSC_VER) +# pragma warning(disable : 4505) /* unreferenced local function has been removed */ +# endif +#endif + +#ifndef SWIGUNUSEDPARM +# ifdef __cplusplus +# define SWIGUNUSEDPARM(p) +# else +# define SWIGUNUSEDPARM(p) p SWIGUNUSED +# endif +#endif + +/* internal SWIG method */ +#ifndef SWIGINTERN +# define SWIGINTERN static SWIGUNUSED +#endif + +/* internal inline SWIG method */ +#ifndef SWIGINTERNINLINE +# define SWIGINTERNINLINE SWIGINTERN SWIGINLINE +#endif + +/* qualifier for exported *const* global data variables*/ +#ifndef SWIGEXTERN +# ifdef __cplusplus +# define SWIGEXTERN extern +# else +# define SWIGEXTERN +# endif +#endif + +/* exporting methods */ +#if defined(__GNUC__) +# if (__GNUC__ >= 4) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) +# ifndef GCC_HASCLASSVISIBILITY +# define GCC_HASCLASSVISIBILITY +# endif +# endif +#endif + +#ifndef SWIGEXPORT +# if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__) +# if defined(STATIC_LINKED) +# define SWIGEXPORT +# else +# define SWIGEXPORT __declspec(dllexport) +# endif +# else +# if defined(__GNUC__) && defined(GCC_HASCLASSVISIBILITY) +# define SWIGEXPORT __attribute__ ((visibility("default"))) +# else +# define SWIGEXPORT +# endif +# endif +#endif + +/* calling conventions for Windows */ +#ifndef SWIGSTDCALL +# if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__) +# define SWIGSTDCALL __stdcall +# else +# define SWIGSTDCALL +# endif +#endif + +/* Deal with Microsoft's attempt at deprecating C standard runtime functions */ +#if !defined(SWIG_NO_CRT_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_CRT_SECURE_NO_DEPRECATE) +# define _CRT_SECURE_NO_DEPRECATE +#endif + +/* Deal with Microsoft's attempt at deprecating methods in the standard C++ library */ +#if !defined(SWIG_NO_SCL_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_SCL_SECURE_NO_DEPRECATE) +# define _SCL_SECURE_NO_DEPRECATE +#endif + +/* Deal with Apple's deprecated 'AssertMacros.h' from Carbon-framework */ +#if defined(__APPLE__) && !defined(__ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES) +# define __ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES 0 +#endif + +/* Intel's compiler complains if a variable which was never initialised is + * cast to void, which is a common idiom which we use to indicate that we + * are aware a variable isn't used. So we just silence that warning. + * See: https://github.com/swig/swig/issues/192 for more discussion. + */ +#ifdef __INTEL_COMPILER +# pragma warning disable 592 +#endif + +/* Errors in SWIG */ +#define SWIG_UnknownError -1 +#define SWIG_IOError -2 +#define SWIG_RuntimeError -3 +#define SWIG_IndexError -4 +#define SWIG_TypeError -5 +#define SWIG_DivisionByZero -6 +#define SWIG_OverflowError -7 +#define SWIG_SyntaxError -8 +#define SWIG_ValueError -9 +#define SWIG_SystemError -10 +#define SWIG_AttributeError -11 +#define SWIG_MemoryError -12 +#define SWIG_NullReferenceError -13 + + + + +#include +#define SWIG_exception_impl(DECL, CODE, MSG, RETURNNULL) \ + { printf("In " DECL ": " MSG); assert(0); RETURNNULL; } + + +#include +#if defined(_MSC_VER) || defined(__BORLANDC__) || defined(_WATCOM) +# ifndef snprintf +# define snprintf _snprintf +# endif +#endif + + +/* Support for the `contract` feature. + * + * Note that RETURNNULL is first because it's inserted via a 'Replaceall' in + * the fortran.cxx file. + */ +#define SWIG_contract_assert(RETURNNULL, EXPR, MSG) \ + if (!(EXPR)) { SWIG_exception_impl("$decl", SWIG_ValueError, MSG, RETURNNULL); } + + +#define SWIGVERSION 0x040000 +#define SWIG_VERSION SWIGVERSION + + +#define SWIG_as_voidptr(a) (void *)((const void *)(a)) +#define SWIG_as_voidptrptr(a) ((void)SWIG_as_voidptr(*a),(void**)(a)) + + +#include "cvode/cvode.h" +#include "cvode/cvode_bandpre.h" +#include "cvode/cvode_bbdpre.h" +#include "cvode/cvode_diag.h" +#include "cvode/cvode_ls.h" +#include "cvode/cvode_proj.h" + + +#include +#ifdef _MSC_VER +# ifndef strtoull +# define strtoull _strtoui64 +# endif +# ifndef strtoll +# define strtoll _strtoi64 +# endif +#endif + + +typedef struct { + void* data; + size_t size; +} SwigArrayWrapper; + + +SWIGINTERN SwigArrayWrapper SwigArrayWrapper_uninitialized() { + SwigArrayWrapper result; + result.data = NULL; + result.size = 0; + return result; +} + + +#include + +SWIGEXPORT void * _wrap_FCVodeCreate(int const *farg1, void *farg2) { + void * fresult ; + int arg1 ; + SUNContext arg2 = (SUNContext) 0 ; + void *result = 0 ; + + arg1 = (int)(*farg1); + arg2 = (SUNContext)(farg2); + result = (void *)CVodeCreate(arg1,arg2); + fresult = result; + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeInit(void *farg1, CVRhsFn farg2, double const *farg3, N_Vector farg4) { + int fresult ; + void *arg1 = (void *) 0 ; + CVRhsFn arg2 = (CVRhsFn) 0 ; + sunrealtype arg3 ; + N_Vector arg4 = (N_Vector) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (CVRhsFn)(farg2); + arg3 = (sunrealtype)(*farg3); + arg4 = (N_Vector)(farg4); + result = (int)CVodeInit(arg1,arg2,arg3,arg4); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeReInit(void *farg1, double const *farg2, N_Vector farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + N_Vector arg3 = (N_Vector) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + arg3 = (N_Vector)(farg3); + result = (int)CVodeReInit(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeSStolerances(void *farg1, double const *farg2, double const *farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + sunrealtype arg3 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + arg3 = (sunrealtype)(*farg3); + result = (int)CVodeSStolerances(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeSVtolerances(void *farg1, double const *farg2, N_Vector farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + N_Vector arg3 = (N_Vector) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + arg3 = (N_Vector)(farg3); + result = (int)CVodeSVtolerances(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeWFtolerances(void *farg1, CVEwtFn farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + CVEwtFn arg2 = (CVEwtFn) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (CVEwtFn)(farg2); + result = (int)CVodeWFtolerances(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeSetConstraints(void *farg1, N_Vector farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + N_Vector arg2 = (N_Vector) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (N_Vector)(farg2); + result = (int)CVodeSetConstraints(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeSetDeltaGammaMaxLSetup(void *farg1, double const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + result = (int)CVodeSetDeltaGammaMaxLSetup(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeSetInitStep(void *farg1, double const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + result = (int)CVodeSetInitStep(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeSetLSetupFrequency(void *farg1, long const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long)(*farg2); + result = (int)CVodeSetLSetupFrequency(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeSetMaxConvFails(void *farg1, int const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + result = (int)CVodeSetMaxConvFails(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeSetMaxErrTestFails(void *farg1, int const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + result = (int)CVodeSetMaxErrTestFails(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeSetMaxHnilWarns(void *farg1, int const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + result = (int)CVodeSetMaxHnilWarns(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeSetMaxNonlinIters(void *farg1, int const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + result = (int)CVodeSetMaxNonlinIters(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeSetMaxNumSteps(void *farg1, long const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long)(*farg2); + result = (int)CVodeSetMaxNumSteps(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeSetMaxOrd(void *farg1, int const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + result = (int)CVodeSetMaxOrd(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeSetMaxStep(void *farg1, double const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + result = (int)CVodeSetMaxStep(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeSetMinStep(void *farg1, double const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + result = (int)CVodeSetMinStep(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeSetMonitorFn(void *farg1, CVMonitorFn farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + CVMonitorFn arg2 = (CVMonitorFn) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (CVMonitorFn)(farg2); + result = (int)CVodeSetMonitorFn(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeSetMonitorFrequency(void *farg1, long const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long)(*farg2); + result = (int)CVodeSetMonitorFrequency(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeSetNlsRhsFn(void *farg1, CVRhsFn farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + CVRhsFn arg2 = (CVRhsFn) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (CVRhsFn)(farg2); + result = (int)CVodeSetNlsRhsFn(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeSetNonlinConvCoef(void *farg1, double const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + result = (int)CVodeSetNonlinConvCoef(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeSetNonlinearSolver(void *farg1, SUNNonlinearSolver farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + SUNNonlinearSolver arg2 = (SUNNonlinearSolver) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (SUNNonlinearSolver)(farg2); + result = (int)CVodeSetNonlinearSolver(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeSetStabLimDet(void *farg1, int const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + result = (int)CVodeSetStabLimDet(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeSetStopTime(void *farg1, double const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + result = (int)CVodeSetStopTime(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeSetInterpolateStopTime(void *farg1, int const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + result = (int)CVodeSetInterpolateStopTime(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeClearStopTime(void *farg1) { + int fresult ; + void *arg1 = (void *) 0 ; + int result; + + arg1 = (void *)(farg1); + result = (int)CVodeClearStopTime(arg1); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeSetUseIntegratorFusedKernels(void *farg1, int const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + result = (int)CVodeSetUseIntegratorFusedKernels(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeSetUserData(void *farg1, void *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + void *arg2 = (void *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (void *)(farg2); + result = (int)CVodeSetUserData(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeSetEtaFixedStepBounds(void *farg1, double const *farg2, double const *farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + sunrealtype arg3 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + arg3 = (sunrealtype)(*farg3); + result = (int)CVodeSetEtaFixedStepBounds(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeSetEtaMaxFirstStep(void *farg1, double const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + result = (int)CVodeSetEtaMaxFirstStep(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeSetEtaMaxEarlyStep(void *farg1, double const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + result = (int)CVodeSetEtaMaxEarlyStep(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeSetNumStepsEtaMaxEarlyStep(void *farg1, long const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long)(*farg2); + result = (int)CVodeSetNumStepsEtaMaxEarlyStep(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeSetEtaMax(void *farg1, double const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + result = (int)CVodeSetEtaMax(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeSetEtaMin(void *farg1, double const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + result = (int)CVodeSetEtaMin(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeSetEtaMinErrFail(void *farg1, double const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + result = (int)CVodeSetEtaMinErrFail(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeSetEtaMaxErrFail(void *farg1, double const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + result = (int)CVodeSetEtaMaxErrFail(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeSetNumFailsEtaMaxErrFail(void *farg1, int const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + result = (int)CVodeSetNumFailsEtaMaxErrFail(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeSetEtaConvFail(void *farg1, double const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + result = (int)CVodeSetEtaConvFail(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeRootInit(void *farg1, int const *farg2, CVRootFn farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + CVRootFn arg3 = (CVRootFn) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + arg3 = (CVRootFn)(farg3); + result = (int)CVodeRootInit(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeSetRootDirection(void *farg1, int *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + int *arg2 = (int *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int *)(farg2); + result = (int)CVodeSetRootDirection(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeSetNoInactiveRootWarn(void *farg1) { + int fresult ; + void *arg1 = (void *) 0 ; + int result; + + arg1 = (void *)(farg1); + result = (int)CVodeSetNoInactiveRootWarn(arg1); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVode(void *farg1, double const *farg2, N_Vector farg3, double *farg4, int const *farg5) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + N_Vector arg3 = (N_Vector) 0 ; + sunrealtype *arg4 = (sunrealtype *) 0 ; + int arg5 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + arg3 = (N_Vector)(farg3); + arg4 = (sunrealtype *)(farg4); + arg5 = (int)(*farg5); + result = (int)CVode(arg1,arg2,arg3,arg4,arg5); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeComputeState(void *farg1, N_Vector farg2, N_Vector farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + N_Vector arg2 = (N_Vector) 0 ; + N_Vector arg3 = (N_Vector) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (N_Vector)(farg2); + arg3 = (N_Vector)(farg3); + result = (int)CVodeComputeState(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeGetDky(void *farg1, double const *farg2, int const *farg3, N_Vector farg4) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + int arg3 ; + N_Vector arg4 = (N_Vector) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + arg3 = (int)(*farg3); + arg4 = (N_Vector)(farg4); + result = (int)CVodeGetDky(arg1,arg2,arg3,arg4); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeGetWorkSpace(void *farg1, long *farg2, long *farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + long *arg3 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + arg3 = (long *)(farg3); + result = (int)CVodeGetWorkSpace(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeGetNumSteps(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)CVodeGetNumSteps(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeGetNumRhsEvals(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)CVodeGetNumRhsEvals(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeGetNumLinSolvSetups(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)CVodeGetNumLinSolvSetups(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeGetNumErrTestFails(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)CVodeGetNumErrTestFails(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeGetLastOrder(void *farg1, int *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + int *arg2 = (int *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int *)(farg2); + result = (int)CVodeGetLastOrder(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeGetCurrentOrder(void *farg1, int *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + int *arg2 = (int *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int *)(farg2); + result = (int)CVodeGetCurrentOrder(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeGetCurrentGamma(void *farg1, double *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype *arg2 = (sunrealtype *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype *)(farg2); + result = (int)CVodeGetCurrentGamma(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeGetNumStabLimOrderReds(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)CVodeGetNumStabLimOrderReds(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeGetActualInitStep(void *farg1, double *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype *arg2 = (sunrealtype *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype *)(farg2); + result = (int)CVodeGetActualInitStep(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeGetLastStep(void *farg1, double *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype *arg2 = (sunrealtype *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype *)(farg2); + result = (int)CVodeGetLastStep(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeGetCurrentStep(void *farg1, double *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype *arg2 = (sunrealtype *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype *)(farg2); + result = (int)CVodeGetCurrentStep(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeGetCurrentState(void *farg1, void *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + N_Vector *arg2 = (N_Vector *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (N_Vector *)(farg2); + result = (int)CVodeGetCurrentState(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeGetCurrentTime(void *farg1, double *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype *arg2 = (sunrealtype *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype *)(farg2); + result = (int)CVodeGetCurrentTime(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeGetTolScaleFactor(void *farg1, double *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype *arg2 = (sunrealtype *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype *)(farg2); + result = (int)CVodeGetTolScaleFactor(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeGetErrWeights(void *farg1, N_Vector farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + N_Vector arg2 = (N_Vector) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (N_Vector)(farg2); + result = (int)CVodeGetErrWeights(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeGetEstLocalErrors(void *farg1, N_Vector farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + N_Vector arg2 = (N_Vector) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (N_Vector)(farg2); + result = (int)CVodeGetEstLocalErrors(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeGetNumGEvals(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)CVodeGetNumGEvals(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeGetRootInfo(void *farg1, int *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + int *arg2 = (int *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int *)(farg2); + result = (int)CVodeGetRootInfo(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeGetIntegratorStats(void *farg1, long *farg2, long *farg3, long *farg4, long *farg5, int *farg6, int *farg7, double *farg8, double *farg9, double *farg10, double *farg11) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + long *arg3 = (long *) 0 ; + long *arg4 = (long *) 0 ; + long *arg5 = (long *) 0 ; + int *arg6 = (int *) 0 ; + int *arg7 = (int *) 0 ; + sunrealtype *arg8 = (sunrealtype *) 0 ; + sunrealtype *arg9 = (sunrealtype *) 0 ; + sunrealtype *arg10 = (sunrealtype *) 0 ; + sunrealtype *arg11 = (sunrealtype *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + arg3 = (long *)(farg3); + arg4 = (long *)(farg4); + arg5 = (long *)(farg5); + arg6 = (int *)(farg6); + arg7 = (int *)(farg7); + arg8 = (sunrealtype *)(farg8); + arg9 = (sunrealtype *)(farg9); + arg10 = (sunrealtype *)(farg10); + arg11 = (sunrealtype *)(farg11); + result = (int)CVodeGetIntegratorStats(arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9,arg10,arg11); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeGetNonlinearSystemData(void *farg1, double *farg2, void *farg3, void *farg4, void *farg5, double *farg6, double *farg7, void *farg8, void *farg9) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype *arg2 = (sunrealtype *) 0 ; + N_Vector *arg3 = (N_Vector *) 0 ; + N_Vector *arg4 = (N_Vector *) 0 ; + N_Vector *arg5 = (N_Vector *) 0 ; + sunrealtype *arg6 = (sunrealtype *) 0 ; + sunrealtype *arg7 = (sunrealtype *) 0 ; + N_Vector *arg8 = (N_Vector *) 0 ; + void **arg9 = (void **) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype *)(farg2); + arg3 = (N_Vector *)(farg3); + arg4 = (N_Vector *)(farg4); + arg5 = (N_Vector *)(farg5); + arg6 = (sunrealtype *)(farg6); + arg7 = (sunrealtype *)(farg7); + arg8 = (N_Vector *)(farg8); + arg9 = (void **)(farg9); + result = (int)CVodeGetNonlinearSystemData(arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeGetNumNonlinSolvIters(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)CVodeGetNumNonlinSolvIters(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeGetNumNonlinSolvConvFails(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)CVodeGetNumNonlinSolvConvFails(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeGetNonlinSolvStats(void *farg1, long *farg2, long *farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + long *arg3 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + arg3 = (long *)(farg3); + result = (int)CVodeGetNonlinSolvStats(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeGetNumStepSolveFails(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)CVodeGetNumStepSolveFails(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeGetUserData(void *farg1, void *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + void **arg2 = (void **) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (void **)(farg2); + result = (int)CVodeGetUserData(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodePrintAllStats(void *farg1, void *farg2, int const *farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + FILE *arg2 = (FILE *) 0 ; + SUNOutputFormat arg3 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (FILE *)(farg2); + arg3 = (SUNOutputFormat)(*farg3); + result = (int)CVodePrintAllStats(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT SwigArrayWrapper _wrap_FCVodeGetReturnFlagName(long const *farg1) { + SwigArrayWrapper fresult ; + long arg1 ; + char *result = 0 ; + + arg1 = (long)(*farg1); + result = (char *)CVodeGetReturnFlagName(arg1); + fresult.size = strlen((const char*)(result)); + fresult.data = (char *)(result); + return fresult; +} + + +SWIGEXPORT void _wrap_FCVodeFree(void *farg1) { + void **arg1 = (void **) 0 ; + + arg1 = (void **)(farg1); + CVodeFree(arg1); +} + + +SWIGEXPORT int _wrap_FCVodeSetJacTimesRhsFn(void *farg1, CVRhsFn farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + CVRhsFn arg2 = (CVRhsFn) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (CVRhsFn)(farg2); + result = (int)CVodeSetJacTimesRhsFn(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVBandPrecInit(void *farg1, int32_t const *farg2, int32_t const *farg3, int32_t const *farg4) { + int fresult ; + void *arg1 = (void *) 0 ; + sunindextype arg2 ; + sunindextype arg3 ; + sunindextype arg4 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunindextype)(*farg2); + arg3 = (sunindextype)(*farg3); + arg4 = (sunindextype)(*farg4); + result = (int)CVBandPrecInit(arg1,arg2,arg3,arg4); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVBandPrecGetWorkSpace(void *farg1, long *farg2, long *farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + long *arg3 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + arg3 = (long *)(farg3); + result = (int)CVBandPrecGetWorkSpace(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVBandPrecGetNumRhsEvals(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)CVBandPrecGetNumRhsEvals(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVBBDPrecInit(void *farg1, int32_t const *farg2, int32_t const *farg3, int32_t const *farg4, int32_t const *farg5, int32_t const *farg6, double const *farg7, CVLocalFn farg8, CVCommFn farg9) { + int fresult ; + void *arg1 = (void *) 0 ; + sunindextype arg2 ; + sunindextype arg3 ; + sunindextype arg4 ; + sunindextype arg5 ; + sunindextype arg6 ; + sunrealtype arg7 ; + CVLocalFn arg8 = (CVLocalFn) 0 ; + CVCommFn arg9 = (CVCommFn) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunindextype)(*farg2); + arg3 = (sunindextype)(*farg3); + arg4 = (sunindextype)(*farg4); + arg5 = (sunindextype)(*farg5); + arg6 = (sunindextype)(*farg6); + arg7 = (sunrealtype)(*farg7); + arg8 = (CVLocalFn)(farg8); + arg9 = (CVCommFn)(farg9); + result = (int)CVBBDPrecInit(arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVBBDPrecReInit(void *farg1, int32_t const *farg2, int32_t const *farg3, double const *farg4) { + int fresult ; + void *arg1 = (void *) 0 ; + sunindextype arg2 ; + sunindextype arg3 ; + sunrealtype arg4 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunindextype)(*farg2); + arg3 = (sunindextype)(*farg3); + arg4 = (sunrealtype)(*farg4); + result = (int)CVBBDPrecReInit(arg1,arg2,arg3,arg4); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVBBDPrecGetWorkSpace(void *farg1, long *farg2, long *farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + long *arg3 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + arg3 = (long *)(farg3); + result = (int)CVBBDPrecGetWorkSpace(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVBBDPrecGetNumGfnEvals(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)CVBBDPrecGetNumGfnEvals(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVDiag(void *farg1) { + int fresult ; + void *arg1 = (void *) 0 ; + int result; + + arg1 = (void *)(farg1); + result = (int)CVDiag(arg1); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVDiagGetWorkSpace(void *farg1, long *farg2, long *farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + long *arg3 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + arg3 = (long *)(farg3); + result = (int)CVDiagGetWorkSpace(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVDiagGetNumRhsEvals(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)CVDiagGetNumRhsEvals(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVDiagGetLastFlag(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)CVDiagGetLastFlag(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT SwigArrayWrapper _wrap_FCVDiagGetReturnFlagName(long const *farg1) { + SwigArrayWrapper fresult ; + long arg1 ; + char *result = 0 ; + + arg1 = (long)(*farg1); + result = (char *)CVDiagGetReturnFlagName(arg1); + fresult.size = strlen((const char*)(result)); + fresult.data = (char *)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeSetLinearSolver(void *farg1, SUNLinearSolver farg2, SUNMatrix farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + SUNLinearSolver arg2 = (SUNLinearSolver) 0 ; + SUNMatrix arg3 = (SUNMatrix) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (SUNLinearSolver)(farg2); + arg3 = (SUNMatrix)(farg3); + result = (int)CVodeSetLinearSolver(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeSetJacFn(void *farg1, CVLsJacFn farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + CVLsJacFn arg2 = (CVLsJacFn) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (CVLsJacFn)(farg2); + result = (int)CVodeSetJacFn(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeSetJacEvalFrequency(void *farg1, long const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long)(*farg2); + result = (int)CVodeSetJacEvalFrequency(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeSetLinearSolutionScaling(void *farg1, int const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + result = (int)CVodeSetLinearSolutionScaling(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeSetDeltaGammaMaxBadJac(void *farg1, double const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + result = (int)CVodeSetDeltaGammaMaxBadJac(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeSetEpsLin(void *farg1, double const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + result = (int)CVodeSetEpsLin(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeSetLSNormFactor(void *farg1, double const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + result = (int)CVodeSetLSNormFactor(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeSetPreconditioner(void *farg1, CVLsPrecSetupFn farg2, CVLsPrecSolveFn farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + CVLsPrecSetupFn arg2 = (CVLsPrecSetupFn) 0 ; + CVLsPrecSolveFn arg3 = (CVLsPrecSolveFn) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (CVLsPrecSetupFn)(farg2); + arg3 = (CVLsPrecSolveFn)(farg3); + result = (int)CVodeSetPreconditioner(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeSetJacTimes(void *farg1, CVLsJacTimesSetupFn farg2, CVLsJacTimesVecFn farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + CVLsJacTimesSetupFn arg2 = (CVLsJacTimesSetupFn) 0 ; + CVLsJacTimesVecFn arg3 = (CVLsJacTimesVecFn) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (CVLsJacTimesSetupFn)(farg2); + arg3 = (CVLsJacTimesVecFn)(farg3); + result = (int)CVodeSetJacTimes(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeSetLinSysFn(void *farg1, CVLsLinSysFn farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + CVLsLinSysFn arg2 = (CVLsLinSysFn) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (CVLsLinSysFn)(farg2); + result = (int)CVodeSetLinSysFn(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeGetJac(void *farg1, void *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + SUNMatrix *arg2 = (SUNMatrix *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (SUNMatrix *)(farg2); + result = (int)CVodeGetJac(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeGetJacTime(void *farg1, double *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype *arg2 = (sunrealtype *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype *)(farg2); + result = (int)CVodeGetJacTime(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeGetJacNumSteps(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)CVodeGetJacNumSteps(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeGetLinWorkSpace(void *farg1, long *farg2, long *farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + long *arg3 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + arg3 = (long *)(farg3); + result = (int)CVodeGetLinWorkSpace(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeGetNumJacEvals(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)CVodeGetNumJacEvals(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeGetNumPrecEvals(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)CVodeGetNumPrecEvals(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeGetNumPrecSolves(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)CVodeGetNumPrecSolves(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeGetNumLinIters(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)CVodeGetNumLinIters(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeGetNumLinConvFails(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)CVodeGetNumLinConvFails(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeGetNumJTSetupEvals(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)CVodeGetNumJTSetupEvals(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeGetNumJtimesEvals(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)CVodeGetNumJtimesEvals(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeGetNumLinRhsEvals(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)CVodeGetNumLinRhsEvals(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeGetLinSolveStats(void *farg1, long *farg2, long *farg3, long *farg4, long *farg5, long *farg6, long *farg7, long *farg8, long *farg9) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + long *arg3 = (long *) 0 ; + long *arg4 = (long *) 0 ; + long *arg5 = (long *) 0 ; + long *arg6 = (long *) 0 ; + long *arg7 = (long *) 0 ; + long *arg8 = (long *) 0 ; + long *arg9 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + arg3 = (long *)(farg3); + arg4 = (long *)(farg4); + arg5 = (long *)(farg5); + arg6 = (long *)(farg6); + arg7 = (long *)(farg7); + arg8 = (long *)(farg8); + arg9 = (long *)(farg9); + result = (int)CVodeGetLinSolveStats(arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeGetLastLinFlag(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)CVodeGetLastLinFlag(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT SwigArrayWrapper _wrap_FCVodeGetLinReturnFlagName(long const *farg1) { + SwigArrayWrapper fresult ; + long arg1 ; + char *result = 0 ; + + arg1 = (long)(*farg1); + result = (char *)CVodeGetLinReturnFlagName(arg1); + fresult.size = strlen((const char*)(result)); + fresult.data = (char *)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeSetProjFn(void *farg1, CVProjFn farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + CVProjFn arg2 = (CVProjFn) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (CVProjFn)(farg2); + result = (int)CVodeSetProjFn(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeSetProjErrEst(void *farg1, int const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + result = (int)CVodeSetProjErrEst(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeSetProjFrequency(void *farg1, long const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long)(*farg2); + result = (int)CVodeSetProjFrequency(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeSetMaxNumProjFails(void *farg1, int const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + result = (int)CVodeSetMaxNumProjFails(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeSetEpsProj(void *farg1, double const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + result = (int)CVodeSetEpsProj(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeSetProjFailEta(void *farg1, double const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + result = (int)CVodeSetProjFailEta(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeGetNumProjEvals(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)CVodeGetNumProjEvals(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeGetNumProjFails(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)CVodeGetNumProjFails(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + + diff --git a/src/cvode/fmod_int32/fcvode_mod.f90 b/src/cvode/fmod_int32/fcvode_mod.f90 new file mode 100644 index 0000000000..6a597e65da --- /dev/null +++ b/src/cvode/fmod_int32/fcvode_mod.f90 @@ -0,0 +1,3436 @@ +! This file was automatically generated by SWIG (http://www.swig.org). +! Version 4.0.0 +! +! Do not make changes to this file unless you know what you are doing--modify +! the SWIG interface file instead. + +! --------------------------------------------------------------- +! Programmer(s): Auto-generated by swig. +! --------------------------------------------------------------- +! SUNDIALS Copyright Start +! Copyright (c) 2002-2024, Lawrence Livermore National Security +! and Southern Methodist University. +! All rights reserved. +! +! See the top-level LICENSE and NOTICE files for details. +! +! SPDX-License-Identifier: BSD-3-Clause +! SUNDIALS Copyright End +! --------------------------------------------------------------- + +module fcvode_mod + use, intrinsic :: ISO_C_BINDING + use fsundials_core_mod + implicit none + private + + ! DECLARATION CONSTRUCTS + integer(C_INT), parameter, public :: CV_ADAMS = 1_C_INT + integer(C_INT), parameter, public :: CV_BDF = 2_C_INT + integer(C_INT), parameter, public :: CV_NORMAL = 1_C_INT + integer(C_INT), parameter, public :: CV_ONE_STEP = 2_C_INT + integer(C_INT), parameter, public :: CV_SUCCESS = 0_C_INT + integer(C_INT), parameter, public :: CV_TSTOP_RETURN = 1_C_INT + integer(C_INT), parameter, public :: CV_ROOT_RETURN = 2_C_INT + integer(C_INT), parameter, public :: CV_WARNING = 99_C_INT + integer(C_INT), parameter, public :: CV_TOO_MUCH_WORK = -1_C_INT + integer(C_INT), parameter, public :: CV_TOO_MUCH_ACC = -2_C_INT + integer(C_INT), parameter, public :: CV_ERR_FAILURE = -3_C_INT + integer(C_INT), parameter, public :: CV_CONV_FAILURE = -4_C_INT + integer(C_INT), parameter, public :: CV_LINIT_FAIL = -5_C_INT + integer(C_INT), parameter, public :: CV_LSETUP_FAIL = -6_C_INT + integer(C_INT), parameter, public :: CV_LSOLVE_FAIL = -7_C_INT + integer(C_INT), parameter, public :: CV_RHSFUNC_FAIL = -8_C_INT + integer(C_INT), parameter, public :: CV_FIRST_RHSFUNC_ERR = -9_C_INT + integer(C_INT), parameter, public :: CV_REPTD_RHSFUNC_ERR = -10_C_INT + integer(C_INT), parameter, public :: CV_UNREC_RHSFUNC_ERR = -11_C_INT + integer(C_INT), parameter, public :: CV_RTFUNC_FAIL = -12_C_INT + integer(C_INT), parameter, public :: CV_NLS_INIT_FAIL = -13_C_INT + integer(C_INT), parameter, public :: CV_NLS_SETUP_FAIL = -14_C_INT + integer(C_INT), parameter, public :: CV_CONSTR_FAIL = -15_C_INT + integer(C_INT), parameter, public :: CV_NLS_FAIL = -16_C_INT + integer(C_INT), parameter, public :: CV_MEM_FAIL = -20_C_INT + integer(C_INT), parameter, public :: CV_MEM_NULL = -21_C_INT + integer(C_INT), parameter, public :: CV_ILL_INPUT = -22_C_INT + integer(C_INT), parameter, public :: CV_NO_MALLOC = -23_C_INT + integer(C_INT), parameter, public :: CV_BAD_K = -24_C_INT + integer(C_INT), parameter, public :: CV_BAD_T = -25_C_INT + integer(C_INT), parameter, public :: CV_BAD_DKY = -26_C_INT + integer(C_INT), parameter, public :: CV_TOO_CLOSE = -27_C_INT + integer(C_INT), parameter, public :: CV_VECTOROP_ERR = -28_C_INT + integer(C_INT), parameter, public :: CV_PROJ_MEM_NULL = -29_C_INT + integer(C_INT), parameter, public :: CV_PROJFUNC_FAIL = -30_C_INT + integer(C_INT), parameter, public :: CV_REPTD_PROJFUNC_ERR = -31_C_INT + integer(C_INT), parameter, public :: CV_CONTEXT_ERR = -32_C_INT + integer(C_INT), parameter, public :: CV_UNRECOGNIZED_ERR = -99_C_INT + public :: FCVodeCreate + public :: FCVodeInit + public :: FCVodeReInit + public :: FCVodeSStolerances + public :: FCVodeSVtolerances + public :: FCVodeWFtolerances + public :: FCVodeSetConstraints + public :: FCVodeSetDeltaGammaMaxLSetup + public :: FCVodeSetInitStep + public :: FCVodeSetLSetupFrequency + public :: FCVodeSetMaxConvFails + public :: FCVodeSetMaxErrTestFails + public :: FCVodeSetMaxHnilWarns + public :: FCVodeSetMaxNonlinIters + public :: FCVodeSetMaxNumSteps + public :: FCVodeSetMaxOrd + public :: FCVodeSetMaxStep + public :: FCVodeSetMinStep + public :: FCVodeSetMonitorFn + public :: FCVodeSetMonitorFrequency + public :: FCVodeSetNlsRhsFn + public :: FCVodeSetNonlinConvCoef + public :: FCVodeSetNonlinearSolver + public :: FCVodeSetStabLimDet + public :: FCVodeSetStopTime + public :: FCVodeSetInterpolateStopTime + public :: FCVodeClearStopTime + public :: FCVodeSetUseIntegratorFusedKernels + public :: FCVodeSetUserData + public :: FCVodeSetEtaFixedStepBounds + public :: FCVodeSetEtaMaxFirstStep + public :: FCVodeSetEtaMaxEarlyStep + public :: FCVodeSetNumStepsEtaMaxEarlyStep + public :: FCVodeSetEtaMax + public :: FCVodeSetEtaMin + public :: FCVodeSetEtaMinErrFail + public :: FCVodeSetEtaMaxErrFail + public :: FCVodeSetNumFailsEtaMaxErrFail + public :: FCVodeSetEtaConvFail + public :: FCVodeRootInit + public :: FCVodeSetRootDirection + public :: FCVodeSetNoInactiveRootWarn + public :: FCVode + public :: FCVodeComputeState + public :: FCVodeGetDky + public :: FCVodeGetWorkSpace + public :: FCVodeGetNumSteps + public :: FCVodeGetNumRhsEvals + public :: FCVodeGetNumLinSolvSetups + public :: FCVodeGetNumErrTestFails + public :: FCVodeGetLastOrder + public :: FCVodeGetCurrentOrder + public :: FCVodeGetCurrentGamma + public :: FCVodeGetNumStabLimOrderReds + public :: FCVodeGetActualInitStep + public :: FCVodeGetLastStep + public :: FCVodeGetCurrentStep + public :: FCVodeGetCurrentState + public :: FCVodeGetCurrentTime + public :: FCVodeGetTolScaleFactor + public :: FCVodeGetErrWeights + public :: FCVodeGetEstLocalErrors + public :: FCVodeGetNumGEvals + public :: FCVodeGetRootInfo + public :: FCVodeGetIntegratorStats + public :: FCVodeGetNonlinearSystemData + public :: FCVodeGetNumNonlinSolvIters + public :: FCVodeGetNumNonlinSolvConvFails + public :: FCVodeGetNonlinSolvStats + public :: FCVodeGetNumStepSolveFails + public :: FCVodeGetUserData + public :: FCVodePrintAllStats + type, bind(C) :: SwigArrayWrapper + type(C_PTR), public :: data = C_NULL_PTR + integer(C_SIZE_T), public :: size = 0 + end type + public :: FCVodeGetReturnFlagName + public :: FCVodeFree + public :: FCVodeSetJacTimesRhsFn + public :: FCVBandPrecInit + public :: FCVBandPrecGetWorkSpace + public :: FCVBandPrecGetNumRhsEvals + public :: FCVBBDPrecInit + public :: FCVBBDPrecReInit + public :: FCVBBDPrecGetWorkSpace + public :: FCVBBDPrecGetNumGfnEvals + integer(C_INT), parameter, public :: CVDIAG_SUCCESS = 0_C_INT + integer(C_INT), parameter, public :: CVDIAG_MEM_NULL = -1_C_INT + integer(C_INT), parameter, public :: CVDIAG_LMEM_NULL = -2_C_INT + integer(C_INT), parameter, public :: CVDIAG_ILL_INPUT = -3_C_INT + integer(C_INT), parameter, public :: CVDIAG_MEM_FAIL = -4_C_INT + integer(C_INT), parameter, public :: CVDIAG_INV_FAIL = -5_C_INT + integer(C_INT), parameter, public :: CVDIAG_RHSFUNC_UNRECVR = -6_C_INT + integer(C_INT), parameter, public :: CVDIAG_RHSFUNC_RECVR = -7_C_INT + public :: FCVDiag + public :: FCVDiagGetWorkSpace + public :: FCVDiagGetNumRhsEvals + public :: FCVDiagGetLastFlag + public :: FCVDiagGetReturnFlagName + integer(C_INT), parameter, public :: CVLS_SUCCESS = 0_C_INT + integer(C_INT), parameter, public :: CVLS_MEM_NULL = -1_C_INT + integer(C_INT), parameter, public :: CVLS_LMEM_NULL = -2_C_INT + integer(C_INT), parameter, public :: CVLS_ILL_INPUT = -3_C_INT + integer(C_INT), parameter, public :: CVLS_MEM_FAIL = -4_C_INT + integer(C_INT), parameter, public :: CVLS_PMEM_NULL = -5_C_INT + integer(C_INT), parameter, public :: CVLS_JACFUNC_UNRECVR = -6_C_INT + integer(C_INT), parameter, public :: CVLS_JACFUNC_RECVR = -7_C_INT + integer(C_INT), parameter, public :: CVLS_SUNMAT_FAIL = -8_C_INT + integer(C_INT), parameter, public :: CVLS_SUNLS_FAIL = -9_C_INT + public :: FCVodeSetLinearSolver + public :: FCVodeSetJacFn + public :: FCVodeSetJacEvalFrequency + public :: FCVodeSetLinearSolutionScaling + public :: FCVodeSetDeltaGammaMaxBadJac + public :: FCVodeSetEpsLin + public :: FCVodeSetLSNormFactor + public :: FCVodeSetPreconditioner + public :: FCVodeSetJacTimes + public :: FCVodeSetLinSysFn + public :: FCVodeGetJac + public :: FCVodeGetJacTime + public :: FCVodeGetJacNumSteps + public :: FCVodeGetLinWorkSpace + public :: FCVodeGetNumJacEvals + public :: FCVodeGetNumPrecEvals + public :: FCVodeGetNumPrecSolves + public :: FCVodeGetNumLinIters + public :: FCVodeGetNumLinConvFails + public :: FCVodeGetNumJTSetupEvals + public :: FCVodeGetNumJtimesEvals + public :: FCVodeGetNumLinRhsEvals + public :: FCVodeGetLinSolveStats + public :: FCVodeGetLastLinFlag + public :: FCVodeGetLinReturnFlagName + public :: FCVodeSetProjFn + public :: FCVodeSetProjErrEst + public :: FCVodeSetProjFrequency + public :: FCVodeSetMaxNumProjFails + public :: FCVodeSetEpsProj + public :: FCVodeSetProjFailEta + public :: FCVodeGetNumProjEvals + public :: FCVodeGetNumProjFails + +! WRAPPER DECLARATIONS +interface +function swigc_FCVodeCreate(farg1, farg2) & +bind(C, name="_wrap_FCVodeCreate") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +integer(C_INT), intent(in) :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR) :: fresult +end function + +function swigc_FCVodeInit(farg1, farg2, farg3, farg4) & +bind(C, name="_wrap_FCVodeInit") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_FUNPTR), value :: farg2 +real(C_DOUBLE), intent(in) :: farg3 +type(C_PTR), value :: farg4 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeReInit(farg1, farg2, farg3) & +bind(C, name="_wrap_FCVodeReInit") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeSStolerances(farg1, farg2, farg3) & +bind(C, name="_wrap_FCVodeSStolerances") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +real(C_DOUBLE), intent(in) :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeSVtolerances(farg1, farg2, farg3) & +bind(C, name="_wrap_FCVodeSVtolerances") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeWFtolerances(farg1, farg2) & +bind(C, name="_wrap_FCVodeWFtolerances") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_FUNPTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeSetConstraints(farg1, farg2) & +bind(C, name="_wrap_FCVodeSetConstraints") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeSetDeltaGammaMaxLSetup(farg1, farg2) & +bind(C, name="_wrap_FCVodeSetDeltaGammaMaxLSetup") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeSetInitStep(farg1, farg2) & +bind(C, name="_wrap_FCVodeSetInitStep") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeSetLSetupFrequency(farg1, farg2) & +bind(C, name="_wrap_FCVodeSetLSetupFrequency") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_LONG), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeSetMaxConvFails(farg1, farg2) & +bind(C, name="_wrap_FCVodeSetMaxConvFails") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeSetMaxErrTestFails(farg1, farg2) & +bind(C, name="_wrap_FCVodeSetMaxErrTestFails") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeSetMaxHnilWarns(farg1, farg2) & +bind(C, name="_wrap_FCVodeSetMaxHnilWarns") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeSetMaxNonlinIters(farg1, farg2) & +bind(C, name="_wrap_FCVodeSetMaxNonlinIters") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeSetMaxNumSteps(farg1, farg2) & +bind(C, name="_wrap_FCVodeSetMaxNumSteps") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_LONG), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeSetMaxOrd(farg1, farg2) & +bind(C, name="_wrap_FCVodeSetMaxOrd") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeSetMaxStep(farg1, farg2) & +bind(C, name="_wrap_FCVodeSetMaxStep") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeSetMinStep(farg1, farg2) & +bind(C, name="_wrap_FCVodeSetMinStep") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeSetMonitorFn(farg1, farg2) & +bind(C, name="_wrap_FCVodeSetMonitorFn") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_FUNPTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeSetMonitorFrequency(farg1, farg2) & +bind(C, name="_wrap_FCVodeSetMonitorFrequency") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_LONG), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeSetNlsRhsFn(farg1, farg2) & +bind(C, name="_wrap_FCVodeSetNlsRhsFn") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_FUNPTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeSetNonlinConvCoef(farg1, farg2) & +bind(C, name="_wrap_FCVodeSetNonlinConvCoef") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeSetNonlinearSolver(farg1, farg2) & +bind(C, name="_wrap_FCVodeSetNonlinearSolver") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeSetStabLimDet(farg1, farg2) & +bind(C, name="_wrap_FCVodeSetStabLimDet") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeSetStopTime(farg1, farg2) & +bind(C, name="_wrap_FCVodeSetStopTime") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeSetInterpolateStopTime(farg1, farg2) & +bind(C, name="_wrap_FCVodeSetInterpolateStopTime") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeClearStopTime(farg1) & +bind(C, name="_wrap_FCVodeClearStopTime") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeSetUseIntegratorFusedKernels(farg1, farg2) & +bind(C, name="_wrap_FCVodeSetUseIntegratorFusedKernels") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeSetUserData(farg1, farg2) & +bind(C, name="_wrap_FCVodeSetUserData") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeSetEtaFixedStepBounds(farg1, farg2, farg3) & +bind(C, name="_wrap_FCVodeSetEtaFixedStepBounds") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +real(C_DOUBLE), intent(in) :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeSetEtaMaxFirstStep(farg1, farg2) & +bind(C, name="_wrap_FCVodeSetEtaMaxFirstStep") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeSetEtaMaxEarlyStep(farg1, farg2) & +bind(C, name="_wrap_FCVodeSetEtaMaxEarlyStep") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeSetNumStepsEtaMaxEarlyStep(farg1, farg2) & +bind(C, name="_wrap_FCVodeSetNumStepsEtaMaxEarlyStep") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_LONG), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeSetEtaMax(farg1, farg2) & +bind(C, name="_wrap_FCVodeSetEtaMax") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeSetEtaMin(farg1, farg2) & +bind(C, name="_wrap_FCVodeSetEtaMin") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeSetEtaMinErrFail(farg1, farg2) & +bind(C, name="_wrap_FCVodeSetEtaMinErrFail") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeSetEtaMaxErrFail(farg1, farg2) & +bind(C, name="_wrap_FCVodeSetEtaMaxErrFail") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeSetNumFailsEtaMaxErrFail(farg1, farg2) & +bind(C, name="_wrap_FCVodeSetNumFailsEtaMaxErrFail") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeSetEtaConvFail(farg1, farg2) & +bind(C, name="_wrap_FCVodeSetEtaConvFail") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeRootInit(farg1, farg2, farg3) & +bind(C, name="_wrap_FCVodeRootInit") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +type(C_FUNPTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeSetRootDirection(farg1, farg2) & +bind(C, name="_wrap_FCVodeSetRootDirection") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeSetNoInactiveRootWarn(farg1) & +bind(C, name="_wrap_FCVodeSetNoInactiveRootWarn") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT) :: fresult +end function + +function swigc_FCVode(farg1, farg2, farg3, farg4, farg5) & +bind(C, name="_wrap_FCVode") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +type(C_PTR), value :: farg3 +type(C_PTR), value :: farg4 +integer(C_INT), intent(in) :: farg5 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeComputeState(farg1, farg2, farg3) & +bind(C, name="_wrap_FCVodeComputeState") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeGetDky(farg1, farg2, farg3, farg4) & +bind(C, name="_wrap_FCVodeGetDky") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT), intent(in) :: farg3 +type(C_PTR), value :: farg4 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeGetWorkSpace(farg1, farg2, farg3) & +bind(C, name="_wrap_FCVodeGetWorkSpace") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeGetNumSteps(farg1, farg2) & +bind(C, name="_wrap_FCVodeGetNumSteps") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeGetNumRhsEvals(farg1, farg2) & +bind(C, name="_wrap_FCVodeGetNumRhsEvals") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeGetNumLinSolvSetups(farg1, farg2) & +bind(C, name="_wrap_FCVodeGetNumLinSolvSetups") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeGetNumErrTestFails(farg1, farg2) & +bind(C, name="_wrap_FCVodeGetNumErrTestFails") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeGetLastOrder(farg1, farg2) & +bind(C, name="_wrap_FCVodeGetLastOrder") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeGetCurrentOrder(farg1, farg2) & +bind(C, name="_wrap_FCVodeGetCurrentOrder") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeGetCurrentGamma(farg1, farg2) & +bind(C, name="_wrap_FCVodeGetCurrentGamma") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeGetNumStabLimOrderReds(farg1, farg2) & +bind(C, name="_wrap_FCVodeGetNumStabLimOrderReds") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeGetActualInitStep(farg1, farg2) & +bind(C, name="_wrap_FCVodeGetActualInitStep") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeGetLastStep(farg1, farg2) & +bind(C, name="_wrap_FCVodeGetLastStep") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeGetCurrentStep(farg1, farg2) & +bind(C, name="_wrap_FCVodeGetCurrentStep") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeGetCurrentState(farg1, farg2) & +bind(C, name="_wrap_FCVodeGetCurrentState") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeGetCurrentTime(farg1, farg2) & +bind(C, name="_wrap_FCVodeGetCurrentTime") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeGetTolScaleFactor(farg1, farg2) & +bind(C, name="_wrap_FCVodeGetTolScaleFactor") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeGetErrWeights(farg1, farg2) & +bind(C, name="_wrap_FCVodeGetErrWeights") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeGetEstLocalErrors(farg1, farg2) & +bind(C, name="_wrap_FCVodeGetEstLocalErrors") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeGetNumGEvals(farg1, farg2) & +bind(C, name="_wrap_FCVodeGetNumGEvals") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeGetRootInfo(farg1, farg2) & +bind(C, name="_wrap_FCVodeGetRootInfo") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeGetIntegratorStats(farg1, farg2, farg3, farg4, farg5, farg6, farg7, farg8, farg9, farg10, farg11) & +bind(C, name="_wrap_FCVodeGetIntegratorStats") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +type(C_PTR), value :: farg4 +type(C_PTR), value :: farg5 +type(C_PTR), value :: farg6 +type(C_PTR), value :: farg7 +type(C_PTR), value :: farg8 +type(C_PTR), value :: farg9 +type(C_PTR), value :: farg10 +type(C_PTR), value :: farg11 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeGetNonlinearSystemData(farg1, farg2, farg3, farg4, farg5, farg6, farg7, farg8, farg9) & +bind(C, name="_wrap_FCVodeGetNonlinearSystemData") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +type(C_PTR), value :: farg4 +type(C_PTR), value :: farg5 +type(C_PTR), value :: farg6 +type(C_PTR), value :: farg7 +type(C_PTR), value :: farg8 +type(C_PTR), value :: farg9 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeGetNumNonlinSolvIters(farg1, farg2) & +bind(C, name="_wrap_FCVodeGetNumNonlinSolvIters") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeGetNumNonlinSolvConvFails(farg1, farg2) & +bind(C, name="_wrap_FCVodeGetNumNonlinSolvConvFails") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeGetNonlinSolvStats(farg1, farg2, farg3) & +bind(C, name="_wrap_FCVodeGetNonlinSolvStats") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeGetNumStepSolveFails(farg1, farg2) & +bind(C, name="_wrap_FCVodeGetNumStepSolveFails") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeGetUserData(farg1, farg2) & +bind(C, name="_wrap_FCVodeGetUserData") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodePrintAllStats(farg1, farg2, farg3) & +bind(C, name="_wrap_FCVodePrintAllStats") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT), intent(in) :: farg3 +integer(C_INT) :: fresult +end function + + subroutine SWIG_free(cptr) & + bind(C, name="free") + use, intrinsic :: ISO_C_BINDING + type(C_PTR), value :: cptr +end subroutine +function swigc_FCVodeGetReturnFlagName(farg1) & +bind(C, name="_wrap_FCVodeGetReturnFlagName") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +import :: swigarraywrapper +integer(C_LONG), intent(in) :: farg1 +type(SwigArrayWrapper) :: fresult +end function + +subroutine swigc_FCVodeFree(farg1) & +bind(C, name="_wrap_FCVodeFree") +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +end subroutine + +function swigc_FCVodeSetJacTimesRhsFn(farg1, farg2) & +bind(C, name="_wrap_FCVodeSetJacTimesRhsFn") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_FUNPTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVBandPrecInit(farg1, farg2, farg3, farg4) & +bind(C, name="_wrap_FCVBandPrecInit") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT32_T), intent(in) :: farg2 +integer(C_INT32_T), intent(in) :: farg3 +integer(C_INT32_T), intent(in) :: farg4 +integer(C_INT) :: fresult +end function + +function swigc_FCVBandPrecGetWorkSpace(farg1, farg2, farg3) & +bind(C, name="_wrap_FCVBandPrecGetWorkSpace") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FCVBandPrecGetNumRhsEvals(farg1, farg2) & +bind(C, name="_wrap_FCVBandPrecGetNumRhsEvals") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVBBDPrecInit(farg1, farg2, farg3, farg4, farg5, farg6, farg7, farg8, farg9) & +bind(C, name="_wrap_FCVBBDPrecInit") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT32_T), intent(in) :: farg2 +integer(C_INT32_T), intent(in) :: farg3 +integer(C_INT32_T), intent(in) :: farg4 +integer(C_INT32_T), intent(in) :: farg5 +integer(C_INT32_T), intent(in) :: farg6 +real(C_DOUBLE), intent(in) :: farg7 +type(C_FUNPTR), value :: farg8 +type(C_FUNPTR), value :: farg9 +integer(C_INT) :: fresult +end function + +function swigc_FCVBBDPrecReInit(farg1, farg2, farg3, farg4) & +bind(C, name="_wrap_FCVBBDPrecReInit") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT32_T), intent(in) :: farg2 +integer(C_INT32_T), intent(in) :: farg3 +real(C_DOUBLE), intent(in) :: farg4 +integer(C_INT) :: fresult +end function + +function swigc_FCVBBDPrecGetWorkSpace(farg1, farg2, farg3) & +bind(C, name="_wrap_FCVBBDPrecGetWorkSpace") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FCVBBDPrecGetNumGfnEvals(farg1, farg2) & +bind(C, name="_wrap_FCVBBDPrecGetNumGfnEvals") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVDiag(farg1) & +bind(C, name="_wrap_FCVDiag") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT) :: fresult +end function + +function swigc_FCVDiagGetWorkSpace(farg1, farg2, farg3) & +bind(C, name="_wrap_FCVDiagGetWorkSpace") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FCVDiagGetNumRhsEvals(farg1, farg2) & +bind(C, name="_wrap_FCVDiagGetNumRhsEvals") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVDiagGetLastFlag(farg1, farg2) & +bind(C, name="_wrap_FCVDiagGetLastFlag") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVDiagGetReturnFlagName(farg1) & +bind(C, name="_wrap_FCVDiagGetReturnFlagName") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +import :: swigarraywrapper +integer(C_LONG), intent(in) :: farg1 +type(SwigArrayWrapper) :: fresult +end function + +function swigc_FCVodeSetLinearSolver(farg1, farg2, farg3) & +bind(C, name="_wrap_FCVodeSetLinearSolver") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeSetJacFn(farg1, farg2) & +bind(C, name="_wrap_FCVodeSetJacFn") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_FUNPTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeSetJacEvalFrequency(farg1, farg2) & +bind(C, name="_wrap_FCVodeSetJacEvalFrequency") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_LONG), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeSetLinearSolutionScaling(farg1, farg2) & +bind(C, name="_wrap_FCVodeSetLinearSolutionScaling") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeSetDeltaGammaMaxBadJac(farg1, farg2) & +bind(C, name="_wrap_FCVodeSetDeltaGammaMaxBadJac") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeSetEpsLin(farg1, farg2) & +bind(C, name="_wrap_FCVodeSetEpsLin") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeSetLSNormFactor(farg1, farg2) & +bind(C, name="_wrap_FCVodeSetLSNormFactor") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeSetPreconditioner(farg1, farg2, farg3) & +bind(C, name="_wrap_FCVodeSetPreconditioner") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_FUNPTR), value :: farg2 +type(C_FUNPTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeSetJacTimes(farg1, farg2, farg3) & +bind(C, name="_wrap_FCVodeSetJacTimes") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_FUNPTR), value :: farg2 +type(C_FUNPTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeSetLinSysFn(farg1, farg2) & +bind(C, name="_wrap_FCVodeSetLinSysFn") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_FUNPTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeGetJac(farg1, farg2) & +bind(C, name="_wrap_FCVodeGetJac") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeGetJacTime(farg1, farg2) & +bind(C, name="_wrap_FCVodeGetJacTime") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeGetJacNumSteps(farg1, farg2) & +bind(C, name="_wrap_FCVodeGetJacNumSteps") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeGetLinWorkSpace(farg1, farg2, farg3) & +bind(C, name="_wrap_FCVodeGetLinWorkSpace") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeGetNumJacEvals(farg1, farg2) & +bind(C, name="_wrap_FCVodeGetNumJacEvals") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeGetNumPrecEvals(farg1, farg2) & +bind(C, name="_wrap_FCVodeGetNumPrecEvals") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeGetNumPrecSolves(farg1, farg2) & +bind(C, name="_wrap_FCVodeGetNumPrecSolves") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeGetNumLinIters(farg1, farg2) & +bind(C, name="_wrap_FCVodeGetNumLinIters") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeGetNumLinConvFails(farg1, farg2) & +bind(C, name="_wrap_FCVodeGetNumLinConvFails") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeGetNumJTSetupEvals(farg1, farg2) & +bind(C, name="_wrap_FCVodeGetNumJTSetupEvals") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeGetNumJtimesEvals(farg1, farg2) & +bind(C, name="_wrap_FCVodeGetNumJtimesEvals") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeGetNumLinRhsEvals(farg1, farg2) & +bind(C, name="_wrap_FCVodeGetNumLinRhsEvals") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeGetLinSolveStats(farg1, farg2, farg3, farg4, farg5, farg6, farg7, farg8, farg9) & +bind(C, name="_wrap_FCVodeGetLinSolveStats") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +type(C_PTR), value :: farg4 +type(C_PTR), value :: farg5 +type(C_PTR), value :: farg6 +type(C_PTR), value :: farg7 +type(C_PTR), value :: farg8 +type(C_PTR), value :: farg9 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeGetLastLinFlag(farg1, farg2) & +bind(C, name="_wrap_FCVodeGetLastLinFlag") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeGetLinReturnFlagName(farg1) & +bind(C, name="_wrap_FCVodeGetLinReturnFlagName") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +import :: swigarraywrapper +integer(C_LONG), intent(in) :: farg1 +type(SwigArrayWrapper) :: fresult +end function + +function swigc_FCVodeSetProjFn(farg1, farg2) & +bind(C, name="_wrap_FCVodeSetProjFn") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_FUNPTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeSetProjErrEst(farg1, farg2) & +bind(C, name="_wrap_FCVodeSetProjErrEst") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeSetProjFrequency(farg1, farg2) & +bind(C, name="_wrap_FCVodeSetProjFrequency") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_LONG), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeSetMaxNumProjFails(farg1, farg2) & +bind(C, name="_wrap_FCVodeSetMaxNumProjFails") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeSetEpsProj(farg1, farg2) & +bind(C, name="_wrap_FCVodeSetEpsProj") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeSetProjFailEta(farg1, farg2) & +bind(C, name="_wrap_FCVodeSetProjFailEta") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeGetNumProjEvals(farg1, farg2) & +bind(C, name="_wrap_FCVodeGetNumProjEvals") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeGetNumProjFails(farg1, farg2) & +bind(C, name="_wrap_FCVodeGetNumProjFails") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +end interface + + +contains + ! MODULE SUBPROGRAMS +function FCVodeCreate(lmm, sunctx) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +type(C_PTR) :: swig_result +integer(C_INT), intent(in) :: lmm +type(C_PTR) :: sunctx +type(C_PTR) :: fresult +integer(C_INT) :: farg1 +type(C_PTR) :: farg2 + +farg1 = lmm +farg2 = sunctx +fresult = swigc_FCVodeCreate(farg1, farg2) +swig_result = fresult +end function + +function FCVodeInit(cvode_mem, f, t0, y0) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +type(C_FUNPTR), intent(in), value :: f +real(C_DOUBLE), intent(in) :: t0 +type(N_Vector), target, intent(inout) :: y0 +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_FUNPTR) :: farg2 +real(C_DOUBLE) :: farg3 +type(C_PTR) :: farg4 + +farg1 = cvode_mem +farg2 = f +farg3 = t0 +farg4 = c_loc(y0) +fresult = swigc_FCVodeInit(farg1, farg2, farg3, farg4) +swig_result = fresult +end function + +function FCVodeReInit(cvode_mem, t0, y0) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +real(C_DOUBLE), intent(in) :: t0 +type(N_Vector), target, intent(inout) :: y0 +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 +type(C_PTR) :: farg3 + +farg1 = cvode_mem +farg2 = t0 +farg3 = c_loc(y0) +fresult = swigc_FCVodeReInit(farg1, farg2, farg3) +swig_result = fresult +end function + +function FCVodeSStolerances(cvode_mem, reltol, abstol) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +real(C_DOUBLE), intent(in) :: reltol +real(C_DOUBLE), intent(in) :: abstol +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 +real(C_DOUBLE) :: farg3 + +farg1 = cvode_mem +farg2 = reltol +farg3 = abstol +fresult = swigc_FCVodeSStolerances(farg1, farg2, farg3) +swig_result = fresult +end function + +function FCVodeSVtolerances(cvode_mem, reltol, abstol) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +real(C_DOUBLE), intent(in) :: reltol +type(N_Vector), target, intent(inout) :: abstol +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 +type(C_PTR) :: farg3 + +farg1 = cvode_mem +farg2 = reltol +farg3 = c_loc(abstol) +fresult = swigc_FCVodeSVtolerances(farg1, farg2, farg3) +swig_result = fresult +end function + +function FCVodeWFtolerances(cvode_mem, efun) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +type(C_FUNPTR), intent(in), value :: efun +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_FUNPTR) :: farg2 + +farg1 = cvode_mem +farg2 = efun +fresult = swigc_FCVodeWFtolerances(farg1, farg2) +swig_result = fresult +end function + +function FCVodeSetConstraints(cvode_mem, constraints) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +type(N_Vector), target, intent(inout) :: constraints +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = cvode_mem +farg2 = c_loc(constraints) +fresult = swigc_FCVodeSetConstraints(farg1, farg2) +swig_result = fresult +end function + +function FCVodeSetDeltaGammaMaxLSetup(cvode_mem, dgmax_lsetup) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +real(C_DOUBLE), intent(in) :: dgmax_lsetup +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 + +farg1 = cvode_mem +farg2 = dgmax_lsetup +fresult = swigc_FCVodeSetDeltaGammaMaxLSetup(farg1, farg2) +swig_result = fresult +end function + +function FCVodeSetInitStep(cvode_mem, hin) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +real(C_DOUBLE), intent(in) :: hin +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 + +farg1 = cvode_mem +farg2 = hin +fresult = swigc_FCVodeSetInitStep(farg1, farg2) +swig_result = fresult +end function + +function FCVodeSetLSetupFrequency(cvode_mem, msbp) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_LONG), intent(in) :: msbp +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_LONG) :: farg2 + +farg1 = cvode_mem +farg2 = msbp +fresult = swigc_FCVodeSetLSetupFrequency(farg1, farg2) +swig_result = fresult +end function + +function FCVodeSetMaxConvFails(cvode_mem, maxncf) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_INT), intent(in) :: maxncf +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = cvode_mem +farg2 = maxncf +fresult = swigc_FCVodeSetMaxConvFails(farg1, farg2) +swig_result = fresult +end function + +function FCVodeSetMaxErrTestFails(cvode_mem, maxnef) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_INT), intent(in) :: maxnef +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = cvode_mem +farg2 = maxnef +fresult = swigc_FCVodeSetMaxErrTestFails(farg1, farg2) +swig_result = fresult +end function + +function FCVodeSetMaxHnilWarns(cvode_mem, mxhnil) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_INT), intent(in) :: mxhnil +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = cvode_mem +farg2 = mxhnil +fresult = swigc_FCVodeSetMaxHnilWarns(farg1, farg2) +swig_result = fresult +end function + +function FCVodeSetMaxNonlinIters(cvode_mem, maxcor) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_INT), intent(in) :: maxcor +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = cvode_mem +farg2 = maxcor +fresult = swigc_FCVodeSetMaxNonlinIters(farg1, farg2) +swig_result = fresult +end function + +function FCVodeSetMaxNumSteps(cvode_mem, mxsteps) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_LONG), intent(in) :: mxsteps +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_LONG) :: farg2 + +farg1 = cvode_mem +farg2 = mxsteps +fresult = swigc_FCVodeSetMaxNumSteps(farg1, farg2) +swig_result = fresult +end function + +function FCVodeSetMaxOrd(cvode_mem, maxord) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_INT), intent(in) :: maxord +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = cvode_mem +farg2 = maxord +fresult = swigc_FCVodeSetMaxOrd(farg1, farg2) +swig_result = fresult +end function + +function FCVodeSetMaxStep(cvode_mem, hmax) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +real(C_DOUBLE), intent(in) :: hmax +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 + +farg1 = cvode_mem +farg2 = hmax +fresult = swigc_FCVodeSetMaxStep(farg1, farg2) +swig_result = fresult +end function + +function FCVodeSetMinStep(cvode_mem, hmin) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +real(C_DOUBLE), intent(in) :: hmin +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 + +farg1 = cvode_mem +farg2 = hmin +fresult = swigc_FCVodeSetMinStep(farg1, farg2) +swig_result = fresult +end function + +function FCVodeSetMonitorFn(cvode_mem, fn) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +type(C_FUNPTR), intent(in), value :: fn +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_FUNPTR) :: farg2 + +farg1 = cvode_mem +farg2 = fn +fresult = swigc_FCVodeSetMonitorFn(farg1, farg2) +swig_result = fresult +end function + +function FCVodeSetMonitorFrequency(cvode_mem, nst) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_LONG), intent(in) :: nst +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_LONG) :: farg2 + +farg1 = cvode_mem +farg2 = nst +fresult = swigc_FCVodeSetMonitorFrequency(farg1, farg2) +swig_result = fresult +end function + +function FCVodeSetNlsRhsFn(cvode_mem, f) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +type(C_FUNPTR), intent(in), value :: f +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_FUNPTR) :: farg2 + +farg1 = cvode_mem +farg2 = f +fresult = swigc_FCVodeSetNlsRhsFn(farg1, farg2) +swig_result = fresult +end function + +function FCVodeSetNonlinConvCoef(cvode_mem, nlscoef) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +real(C_DOUBLE), intent(in) :: nlscoef +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 + +farg1 = cvode_mem +farg2 = nlscoef +fresult = swigc_FCVodeSetNonlinConvCoef(farg1, farg2) +swig_result = fresult +end function + +function FCVodeSetNonlinearSolver(cvode_mem, nls) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +type(SUNNonlinearSolver), target, intent(inout) :: nls +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = cvode_mem +farg2 = c_loc(nls) +fresult = swigc_FCVodeSetNonlinearSolver(farg1, farg2) +swig_result = fresult +end function + +function FCVodeSetStabLimDet(cvode_mem, stldet) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_INT), intent(in) :: stldet +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = cvode_mem +farg2 = stldet +fresult = swigc_FCVodeSetStabLimDet(farg1, farg2) +swig_result = fresult +end function + +function FCVodeSetStopTime(cvode_mem, tstop) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +real(C_DOUBLE), intent(in) :: tstop +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 + +farg1 = cvode_mem +farg2 = tstop +fresult = swigc_FCVodeSetStopTime(farg1, farg2) +swig_result = fresult +end function + +function FCVodeSetInterpolateStopTime(cvode_mem, interp) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_INT), intent(in) :: interp +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = cvode_mem +farg2 = interp +fresult = swigc_FCVodeSetInterpolateStopTime(farg1, farg2) +swig_result = fresult +end function + +function FCVodeClearStopTime(cvode_mem) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_INT) :: fresult +type(C_PTR) :: farg1 + +farg1 = cvode_mem +fresult = swigc_FCVodeClearStopTime(farg1) +swig_result = fresult +end function + +function FCVodeSetUseIntegratorFusedKernels(cvode_mem, onoff) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_INT), intent(in) :: onoff +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = cvode_mem +farg2 = onoff +fresult = swigc_FCVodeSetUseIntegratorFusedKernels(farg1, farg2) +swig_result = fresult +end function + +function FCVodeSetUserData(cvode_mem, user_data) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +type(C_PTR) :: user_data +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = cvode_mem +farg2 = user_data +fresult = swigc_FCVodeSetUserData(farg1, farg2) +swig_result = fresult +end function + +function FCVodeSetEtaFixedStepBounds(cvode_mem, eta_min_fx, eta_max_fx) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +real(C_DOUBLE), intent(in) :: eta_min_fx +real(C_DOUBLE), intent(in) :: eta_max_fx +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 +real(C_DOUBLE) :: farg3 + +farg1 = cvode_mem +farg2 = eta_min_fx +farg3 = eta_max_fx +fresult = swigc_FCVodeSetEtaFixedStepBounds(farg1, farg2, farg3) +swig_result = fresult +end function + +function FCVodeSetEtaMaxFirstStep(cvode_mem, eta_max_fs) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +real(C_DOUBLE), intent(in) :: eta_max_fs +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 + +farg1 = cvode_mem +farg2 = eta_max_fs +fresult = swigc_FCVodeSetEtaMaxFirstStep(farg1, farg2) +swig_result = fresult +end function + +function FCVodeSetEtaMaxEarlyStep(cvode_mem, eta_max_es) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +real(C_DOUBLE), intent(in) :: eta_max_es +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 + +farg1 = cvode_mem +farg2 = eta_max_es +fresult = swigc_FCVodeSetEtaMaxEarlyStep(farg1, farg2) +swig_result = fresult +end function + +function FCVodeSetNumStepsEtaMaxEarlyStep(cvode_mem, small_nst) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_LONG), intent(in) :: small_nst +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_LONG) :: farg2 + +farg1 = cvode_mem +farg2 = small_nst +fresult = swigc_FCVodeSetNumStepsEtaMaxEarlyStep(farg1, farg2) +swig_result = fresult +end function + +function FCVodeSetEtaMax(cvode_mem, eta_max_gs) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +real(C_DOUBLE), intent(in) :: eta_max_gs +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 + +farg1 = cvode_mem +farg2 = eta_max_gs +fresult = swigc_FCVodeSetEtaMax(farg1, farg2) +swig_result = fresult +end function + +function FCVodeSetEtaMin(cvode_mem, eta_min) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +real(C_DOUBLE), intent(in) :: eta_min +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 + +farg1 = cvode_mem +farg2 = eta_min +fresult = swigc_FCVodeSetEtaMin(farg1, farg2) +swig_result = fresult +end function + +function FCVodeSetEtaMinErrFail(cvode_mem, eta_min_ef) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +real(C_DOUBLE), intent(in) :: eta_min_ef +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 + +farg1 = cvode_mem +farg2 = eta_min_ef +fresult = swigc_FCVodeSetEtaMinErrFail(farg1, farg2) +swig_result = fresult +end function + +function FCVodeSetEtaMaxErrFail(cvode_mem, eta_max_ef) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +real(C_DOUBLE), intent(in) :: eta_max_ef +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 + +farg1 = cvode_mem +farg2 = eta_max_ef +fresult = swigc_FCVodeSetEtaMaxErrFail(farg1, farg2) +swig_result = fresult +end function + +function FCVodeSetNumFailsEtaMaxErrFail(cvode_mem, small_nef) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_INT), intent(in) :: small_nef +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = cvode_mem +farg2 = small_nef +fresult = swigc_FCVodeSetNumFailsEtaMaxErrFail(farg1, farg2) +swig_result = fresult +end function + +function FCVodeSetEtaConvFail(cvode_mem, eta_cf) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +real(C_DOUBLE), intent(in) :: eta_cf +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 + +farg1 = cvode_mem +farg2 = eta_cf +fresult = swigc_FCVodeSetEtaConvFail(farg1, farg2) +swig_result = fresult +end function + +function FCVodeRootInit(cvode_mem, nrtfn, g) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_INT), intent(in) :: nrtfn +type(C_FUNPTR), intent(in), value :: g +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 +type(C_FUNPTR) :: farg3 + +farg1 = cvode_mem +farg2 = nrtfn +farg3 = g +fresult = swigc_FCVodeRootInit(farg1, farg2, farg3) +swig_result = fresult +end function + +function FCVodeSetRootDirection(cvode_mem, rootdir) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_INT), dimension(*), target, intent(inout) :: rootdir +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = cvode_mem +farg2 = c_loc(rootdir(1)) +fresult = swigc_FCVodeSetRootDirection(farg1, farg2) +swig_result = fresult +end function + +function FCVodeSetNoInactiveRootWarn(cvode_mem) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_INT) :: fresult +type(C_PTR) :: farg1 + +farg1 = cvode_mem +fresult = swigc_FCVodeSetNoInactiveRootWarn(farg1) +swig_result = fresult +end function + +function FCVode(cvode_mem, tout, yout, tret, itask) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +real(C_DOUBLE), intent(in) :: tout +type(N_Vector), target, intent(inout) :: yout +real(C_DOUBLE), dimension(*), target, intent(inout) :: tret +integer(C_INT), intent(in) :: itask +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 +type(C_PTR) :: farg3 +type(C_PTR) :: farg4 +integer(C_INT) :: farg5 + +farg1 = cvode_mem +farg2 = tout +farg3 = c_loc(yout) +farg4 = c_loc(tret(1)) +farg5 = itask +fresult = swigc_FCVode(farg1, farg2, farg3, farg4, farg5) +swig_result = fresult +end function + +function FCVodeComputeState(cvode_mem, ycor, y) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +type(N_Vector), target, intent(inout) :: ycor +type(N_Vector), target, intent(inout) :: y +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = cvode_mem +farg2 = c_loc(ycor) +farg3 = c_loc(y) +fresult = swigc_FCVodeComputeState(farg1, farg2, farg3) +swig_result = fresult +end function + +function FCVodeGetDky(cvode_mem, t, k, dky) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +real(C_DOUBLE), intent(in) :: t +integer(C_INT), intent(in) :: k +type(N_Vector), target, intent(inout) :: dky +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 +integer(C_INT) :: farg3 +type(C_PTR) :: farg4 + +farg1 = cvode_mem +farg2 = t +farg3 = k +farg4 = c_loc(dky) +fresult = swigc_FCVodeGetDky(farg1, farg2, farg3, farg4) +swig_result = fresult +end function + +function FCVodeGetWorkSpace(cvode_mem, lenrw, leniw) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: lenrw +integer(C_LONG), dimension(*), target, intent(inout) :: leniw +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = cvode_mem +farg2 = c_loc(lenrw(1)) +farg3 = c_loc(leniw(1)) +fresult = swigc_FCVodeGetWorkSpace(farg1, farg2, farg3) +swig_result = fresult +end function + +function FCVodeGetNumSteps(cvode_mem, nsteps) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: nsteps +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = cvode_mem +farg2 = c_loc(nsteps(1)) +fresult = swigc_FCVodeGetNumSteps(farg1, farg2) +swig_result = fresult +end function + +function FCVodeGetNumRhsEvals(cvode_mem, nfevals) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: nfevals +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = cvode_mem +farg2 = c_loc(nfevals(1)) +fresult = swigc_FCVodeGetNumRhsEvals(farg1, farg2) +swig_result = fresult +end function + +function FCVodeGetNumLinSolvSetups(cvode_mem, nlinsetups) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: nlinsetups +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = cvode_mem +farg2 = c_loc(nlinsetups(1)) +fresult = swigc_FCVodeGetNumLinSolvSetups(farg1, farg2) +swig_result = fresult +end function + +function FCVodeGetNumErrTestFails(cvode_mem, netfails) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: netfails +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = cvode_mem +farg2 = c_loc(netfails(1)) +fresult = swigc_FCVodeGetNumErrTestFails(farg1, farg2) +swig_result = fresult +end function + +function FCVodeGetLastOrder(cvode_mem, qlast) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_INT), dimension(*), target, intent(inout) :: qlast +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = cvode_mem +farg2 = c_loc(qlast(1)) +fresult = swigc_FCVodeGetLastOrder(farg1, farg2) +swig_result = fresult +end function + +function FCVodeGetCurrentOrder(cvode_mem, qcur) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_INT), dimension(*), target, intent(inout) :: qcur +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = cvode_mem +farg2 = c_loc(qcur(1)) +fresult = swigc_FCVodeGetCurrentOrder(farg1, farg2) +swig_result = fresult +end function + +function FCVodeGetCurrentGamma(cvode_mem, gamma) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +real(C_DOUBLE), dimension(*), target, intent(inout) :: gamma +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = cvode_mem +farg2 = c_loc(gamma(1)) +fresult = swigc_FCVodeGetCurrentGamma(farg1, farg2) +swig_result = fresult +end function + +function FCVodeGetNumStabLimOrderReds(cvode_mem, nslred) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: nslred +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = cvode_mem +farg2 = c_loc(nslred(1)) +fresult = swigc_FCVodeGetNumStabLimOrderReds(farg1, farg2) +swig_result = fresult +end function + +function FCVodeGetActualInitStep(cvode_mem, hinused) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +real(C_DOUBLE), dimension(*), target, intent(inout) :: hinused +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = cvode_mem +farg2 = c_loc(hinused(1)) +fresult = swigc_FCVodeGetActualInitStep(farg1, farg2) +swig_result = fresult +end function + +function FCVodeGetLastStep(cvode_mem, hlast) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +real(C_DOUBLE), dimension(*), target, intent(inout) :: hlast +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = cvode_mem +farg2 = c_loc(hlast(1)) +fresult = swigc_FCVodeGetLastStep(farg1, farg2) +swig_result = fresult +end function + +function FCVodeGetCurrentStep(cvode_mem, hcur) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +real(C_DOUBLE), dimension(*), target, intent(inout) :: hcur +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = cvode_mem +farg2 = c_loc(hcur(1)) +fresult = swigc_FCVodeGetCurrentStep(farg1, farg2) +swig_result = fresult +end function + +function FCVodeGetCurrentState(cvode_mem, y) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +type(C_PTR) :: y +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = cvode_mem +farg2 = y +fresult = swigc_FCVodeGetCurrentState(farg1, farg2) +swig_result = fresult +end function + +function FCVodeGetCurrentTime(cvode_mem, tcur) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +real(C_DOUBLE), dimension(*), target, intent(inout) :: tcur +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = cvode_mem +farg2 = c_loc(tcur(1)) +fresult = swigc_FCVodeGetCurrentTime(farg1, farg2) +swig_result = fresult +end function + +function FCVodeGetTolScaleFactor(cvode_mem, tolsfac) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +real(C_DOUBLE), dimension(*), target, intent(inout) :: tolsfac +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = cvode_mem +farg2 = c_loc(tolsfac(1)) +fresult = swigc_FCVodeGetTolScaleFactor(farg1, farg2) +swig_result = fresult +end function + +function FCVodeGetErrWeights(cvode_mem, eweight) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +type(N_Vector), target, intent(inout) :: eweight +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = cvode_mem +farg2 = c_loc(eweight) +fresult = swigc_FCVodeGetErrWeights(farg1, farg2) +swig_result = fresult +end function + +function FCVodeGetEstLocalErrors(cvode_mem, ele) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +type(N_Vector), target, intent(inout) :: ele +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = cvode_mem +farg2 = c_loc(ele) +fresult = swigc_FCVodeGetEstLocalErrors(farg1, farg2) +swig_result = fresult +end function + +function FCVodeGetNumGEvals(cvode_mem, ngevals) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: ngevals +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = cvode_mem +farg2 = c_loc(ngevals(1)) +fresult = swigc_FCVodeGetNumGEvals(farg1, farg2) +swig_result = fresult +end function + +function FCVodeGetRootInfo(cvode_mem, rootsfound) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_INT), dimension(*), target, intent(inout) :: rootsfound +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = cvode_mem +farg2 = c_loc(rootsfound(1)) +fresult = swigc_FCVodeGetRootInfo(farg1, farg2) +swig_result = fresult +end function + +function FCVodeGetIntegratorStats(cvode_mem, nsteps, nfevals, nlinsetups, netfails, qlast, qcur, hinused, hlast, hcur, tcur) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: nsteps +integer(C_LONG), dimension(*), target, intent(inout) :: nfevals +integer(C_LONG), dimension(*), target, intent(inout) :: nlinsetups +integer(C_LONG), dimension(*), target, intent(inout) :: netfails +integer(C_INT), dimension(*), target, intent(inout) :: qlast +integer(C_INT), dimension(*), target, intent(inout) :: qcur +real(C_DOUBLE), dimension(*), target, intent(inout) :: hinused +real(C_DOUBLE), dimension(*), target, intent(inout) :: hlast +real(C_DOUBLE), dimension(*), target, intent(inout) :: hcur +real(C_DOUBLE), dimension(*), target, intent(inout) :: tcur +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 +type(C_PTR) :: farg4 +type(C_PTR) :: farg5 +type(C_PTR) :: farg6 +type(C_PTR) :: farg7 +type(C_PTR) :: farg8 +type(C_PTR) :: farg9 +type(C_PTR) :: farg10 +type(C_PTR) :: farg11 + +farg1 = cvode_mem +farg2 = c_loc(nsteps(1)) +farg3 = c_loc(nfevals(1)) +farg4 = c_loc(nlinsetups(1)) +farg5 = c_loc(netfails(1)) +farg6 = c_loc(qlast(1)) +farg7 = c_loc(qcur(1)) +farg8 = c_loc(hinused(1)) +farg9 = c_loc(hlast(1)) +farg10 = c_loc(hcur(1)) +farg11 = c_loc(tcur(1)) +fresult = swigc_FCVodeGetIntegratorStats(farg1, farg2, farg3, farg4, farg5, farg6, farg7, farg8, farg9, farg10, farg11) +swig_result = fresult +end function + +function FCVodeGetNonlinearSystemData(cvode_mem, tcur, ypred, yn, fn, gamma, rl1, zn1, user_data) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +real(C_DOUBLE), dimension(*), target, intent(inout) :: tcur +type(C_PTR) :: ypred +type(C_PTR) :: yn +type(C_PTR) :: fn +real(C_DOUBLE), dimension(*), target, intent(inout) :: gamma +real(C_DOUBLE), dimension(*), target, intent(inout) :: rl1 +type(C_PTR) :: zn1 +type(C_PTR), target, intent(inout) :: user_data +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 +type(C_PTR) :: farg4 +type(C_PTR) :: farg5 +type(C_PTR) :: farg6 +type(C_PTR) :: farg7 +type(C_PTR) :: farg8 +type(C_PTR) :: farg9 + +farg1 = cvode_mem +farg2 = c_loc(tcur(1)) +farg3 = ypred +farg4 = yn +farg5 = fn +farg6 = c_loc(gamma(1)) +farg7 = c_loc(rl1(1)) +farg8 = zn1 +farg9 = c_loc(user_data) +fresult = swigc_FCVodeGetNonlinearSystemData(farg1, farg2, farg3, farg4, farg5, farg6, farg7, farg8, farg9) +swig_result = fresult +end function + +function FCVodeGetNumNonlinSolvIters(cvode_mem, nniters) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: nniters +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = cvode_mem +farg2 = c_loc(nniters(1)) +fresult = swigc_FCVodeGetNumNonlinSolvIters(farg1, farg2) +swig_result = fresult +end function + +function FCVodeGetNumNonlinSolvConvFails(cvode_mem, nnfails) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: nnfails +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = cvode_mem +farg2 = c_loc(nnfails(1)) +fresult = swigc_FCVodeGetNumNonlinSolvConvFails(farg1, farg2) +swig_result = fresult +end function + +function FCVodeGetNonlinSolvStats(cvode_mem, nniters, nnfails) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: nniters +integer(C_LONG), dimension(*), target, intent(inout) :: nnfails +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = cvode_mem +farg2 = c_loc(nniters(1)) +farg3 = c_loc(nnfails(1)) +fresult = swigc_FCVodeGetNonlinSolvStats(farg1, farg2, farg3) +swig_result = fresult +end function + +function FCVodeGetNumStepSolveFails(cvode_mem, nncfails) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: nncfails +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = cvode_mem +farg2 = c_loc(nncfails(1)) +fresult = swigc_FCVodeGetNumStepSolveFails(farg1, farg2) +swig_result = fresult +end function + +function FCVodeGetUserData(cvode_mem, user_data) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +type(C_PTR), target, intent(inout) :: user_data +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = cvode_mem +farg2 = c_loc(user_data) +fresult = swigc_FCVodeGetUserData(farg1, farg2) +swig_result = fresult +end function + +function FCVodePrintAllStats(cvode_mem, outfile, fmt) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +type(C_PTR) :: outfile +integer(SUNOutputFormat), intent(in) :: fmt +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +integer(C_INT) :: farg3 + +farg1 = cvode_mem +farg2 = outfile +farg3 = fmt +fresult = swigc_FCVodePrintAllStats(farg1, farg2, farg3) +swig_result = fresult +end function + + +subroutine SWIG_chararray_to_string(wrap, string) + use, intrinsic :: ISO_C_BINDING + type(SwigArrayWrapper), intent(IN) :: wrap + character(kind=C_CHAR, len=:), allocatable, intent(OUT) :: string + character(kind=C_CHAR), dimension(:), pointer :: chars + integer(kind=C_SIZE_T) :: i + call c_f_pointer(wrap%data, chars, [wrap%size]) + allocate(character(kind=C_CHAR, len=wrap%size) :: string) + do i=1, wrap%size + string(i:i) = chars(i) + end do +end subroutine + +function FCVodeGetReturnFlagName(flag) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +character(kind=C_CHAR, len=:), allocatable :: swig_result +integer(C_LONG), intent(in) :: flag +type(SwigArrayWrapper) :: fresult +integer(C_LONG) :: farg1 + +farg1 = flag +fresult = swigc_FCVodeGetReturnFlagName(farg1) +call SWIG_chararray_to_string(fresult, swig_result) +if (.false.) call SWIG_free(fresult%data) +end function + +subroutine FCVodeFree(cvode_mem) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), target, intent(inout) :: cvode_mem +type(C_PTR) :: farg1 + +farg1 = c_loc(cvode_mem) +call swigc_FCVodeFree(farg1) +end subroutine + +function FCVodeSetJacTimesRhsFn(cvode_mem, jtimesrhsfn) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +type(C_FUNPTR), intent(in), value :: jtimesrhsfn +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_FUNPTR) :: farg2 + +farg1 = cvode_mem +farg2 = jtimesrhsfn +fresult = swigc_FCVodeSetJacTimesRhsFn(farg1, farg2) +swig_result = fresult +end function + +function FCVBandPrecInit(cvode_mem, n, mu, ml) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_INT32_T), intent(in) :: n +integer(C_INT32_T), intent(in) :: mu +integer(C_INT32_T), intent(in) :: ml +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT32_T) :: farg2 +integer(C_INT32_T) :: farg3 +integer(C_INT32_T) :: farg4 + +farg1 = cvode_mem +farg2 = n +farg3 = mu +farg4 = ml +fresult = swigc_FCVBandPrecInit(farg1, farg2, farg3, farg4) +swig_result = fresult +end function + +function FCVBandPrecGetWorkSpace(cvode_mem, lenrwls, leniwls) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: lenrwls +integer(C_LONG), dimension(*), target, intent(inout) :: leniwls +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = cvode_mem +farg2 = c_loc(lenrwls(1)) +farg3 = c_loc(leniwls(1)) +fresult = swigc_FCVBandPrecGetWorkSpace(farg1, farg2, farg3) +swig_result = fresult +end function + +function FCVBandPrecGetNumRhsEvals(cvode_mem, nfevalsbp) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: nfevalsbp +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = cvode_mem +farg2 = c_loc(nfevalsbp(1)) +fresult = swigc_FCVBandPrecGetNumRhsEvals(farg1, farg2) +swig_result = fresult +end function + +function FCVBBDPrecInit(cvode_mem, nlocal, mudq, mldq, mukeep, mlkeep, dqrely, gloc, cfn) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_INT32_T), intent(in) :: nlocal +integer(C_INT32_T), intent(in) :: mudq +integer(C_INT32_T), intent(in) :: mldq +integer(C_INT32_T), intent(in) :: mukeep +integer(C_INT32_T), intent(in) :: mlkeep +real(C_DOUBLE), intent(in) :: dqrely +type(C_FUNPTR), intent(in), value :: gloc +type(C_FUNPTR), intent(in), value :: cfn +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT32_T) :: farg2 +integer(C_INT32_T) :: farg3 +integer(C_INT32_T) :: farg4 +integer(C_INT32_T) :: farg5 +integer(C_INT32_T) :: farg6 +real(C_DOUBLE) :: farg7 +type(C_FUNPTR) :: farg8 +type(C_FUNPTR) :: farg9 + +farg1 = cvode_mem +farg2 = nlocal +farg3 = mudq +farg4 = mldq +farg5 = mukeep +farg6 = mlkeep +farg7 = dqrely +farg8 = gloc +farg9 = cfn +fresult = swigc_FCVBBDPrecInit(farg1, farg2, farg3, farg4, farg5, farg6, farg7, farg8, farg9) +swig_result = fresult +end function + +function FCVBBDPrecReInit(cvode_mem, mudq, mldq, dqrely) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_INT32_T), intent(in) :: mudq +integer(C_INT32_T), intent(in) :: mldq +real(C_DOUBLE), intent(in) :: dqrely +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT32_T) :: farg2 +integer(C_INT32_T) :: farg3 +real(C_DOUBLE) :: farg4 + +farg1 = cvode_mem +farg2 = mudq +farg3 = mldq +farg4 = dqrely +fresult = swigc_FCVBBDPrecReInit(farg1, farg2, farg3, farg4) +swig_result = fresult +end function + +function FCVBBDPrecGetWorkSpace(cvode_mem, lenrwbbdp, leniwbbdp) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: lenrwbbdp +integer(C_LONG), dimension(*), target, intent(inout) :: leniwbbdp +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = cvode_mem +farg2 = c_loc(lenrwbbdp(1)) +farg3 = c_loc(leniwbbdp(1)) +fresult = swigc_FCVBBDPrecGetWorkSpace(farg1, farg2, farg3) +swig_result = fresult +end function + +function FCVBBDPrecGetNumGfnEvals(cvode_mem, ngevalsbbdp) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: ngevalsbbdp +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = cvode_mem +farg2 = c_loc(ngevalsbbdp(1)) +fresult = swigc_FCVBBDPrecGetNumGfnEvals(farg1, farg2) +swig_result = fresult +end function + +function FCVDiag(cvode_mem) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_INT) :: fresult +type(C_PTR) :: farg1 + +farg1 = cvode_mem +fresult = swigc_FCVDiag(farg1) +swig_result = fresult +end function + +function FCVDiagGetWorkSpace(cvode_mem, lenrwls, leniwls) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: lenrwls +integer(C_LONG), dimension(*), target, intent(inout) :: leniwls +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = cvode_mem +farg2 = c_loc(lenrwls(1)) +farg3 = c_loc(leniwls(1)) +fresult = swigc_FCVDiagGetWorkSpace(farg1, farg2, farg3) +swig_result = fresult +end function + +function FCVDiagGetNumRhsEvals(cvode_mem, nfevalsls) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: nfevalsls +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = cvode_mem +farg2 = c_loc(nfevalsls(1)) +fresult = swigc_FCVDiagGetNumRhsEvals(farg1, farg2) +swig_result = fresult +end function + +function FCVDiagGetLastFlag(cvode_mem, flag) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: flag +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = cvode_mem +farg2 = c_loc(flag(1)) +fresult = swigc_FCVDiagGetLastFlag(farg1, farg2) +swig_result = fresult +end function + +function FCVDiagGetReturnFlagName(flag) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +character(kind=C_CHAR, len=:), allocatable :: swig_result +integer(C_LONG), intent(in) :: flag +type(SwigArrayWrapper) :: fresult +integer(C_LONG) :: farg1 + +farg1 = flag +fresult = swigc_FCVDiagGetReturnFlagName(farg1) +call SWIG_chararray_to_string(fresult, swig_result) +if (.false.) call SWIG_free(fresult%data) +end function + +function FCVodeSetLinearSolver(cvode_mem, ls, a) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +type(SUNLinearSolver), target, intent(inout) :: ls +type(SUNMatrix), target, intent(inout) :: a +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = cvode_mem +farg2 = c_loc(ls) +farg3 = c_loc(a) +fresult = swigc_FCVodeSetLinearSolver(farg1, farg2, farg3) +swig_result = fresult +end function + +function FCVodeSetJacFn(cvode_mem, jac) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +type(C_FUNPTR), intent(in), value :: jac +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_FUNPTR) :: farg2 + +farg1 = cvode_mem +farg2 = jac +fresult = swigc_FCVodeSetJacFn(farg1, farg2) +swig_result = fresult +end function + +function FCVodeSetJacEvalFrequency(cvode_mem, msbj) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_LONG), intent(in) :: msbj +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_LONG) :: farg2 + +farg1 = cvode_mem +farg2 = msbj +fresult = swigc_FCVodeSetJacEvalFrequency(farg1, farg2) +swig_result = fresult +end function + +function FCVodeSetLinearSolutionScaling(cvode_mem, onoff) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_INT), intent(in) :: onoff +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = cvode_mem +farg2 = onoff +fresult = swigc_FCVodeSetLinearSolutionScaling(farg1, farg2) +swig_result = fresult +end function + +function FCVodeSetDeltaGammaMaxBadJac(cvode_mem, dgmax_jbad) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +real(C_DOUBLE), intent(in) :: dgmax_jbad +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 + +farg1 = cvode_mem +farg2 = dgmax_jbad +fresult = swigc_FCVodeSetDeltaGammaMaxBadJac(farg1, farg2) +swig_result = fresult +end function + +function FCVodeSetEpsLin(cvode_mem, eplifac) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +real(C_DOUBLE), intent(in) :: eplifac +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 + +farg1 = cvode_mem +farg2 = eplifac +fresult = swigc_FCVodeSetEpsLin(farg1, farg2) +swig_result = fresult +end function + +function FCVodeSetLSNormFactor(arkode_mem, nrmfac) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +real(C_DOUBLE), intent(in) :: nrmfac +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 + +farg1 = arkode_mem +farg2 = nrmfac +fresult = swigc_FCVodeSetLSNormFactor(farg1, farg2) +swig_result = fresult +end function + +function FCVodeSetPreconditioner(cvode_mem, pset, psolve) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +type(C_FUNPTR), intent(in), value :: pset +type(C_FUNPTR), intent(in), value :: psolve +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_FUNPTR) :: farg2 +type(C_FUNPTR) :: farg3 + +farg1 = cvode_mem +farg2 = pset +farg3 = psolve +fresult = swigc_FCVodeSetPreconditioner(farg1, farg2, farg3) +swig_result = fresult +end function + +function FCVodeSetJacTimes(cvode_mem, jtsetup, jtimes) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +type(C_FUNPTR), intent(in), value :: jtsetup +type(C_FUNPTR), intent(in), value :: jtimes +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_FUNPTR) :: farg2 +type(C_FUNPTR) :: farg3 + +farg1 = cvode_mem +farg2 = jtsetup +farg3 = jtimes +fresult = swigc_FCVodeSetJacTimes(farg1, farg2, farg3) +swig_result = fresult +end function + +function FCVodeSetLinSysFn(cvode_mem, linsys) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +type(C_FUNPTR), intent(in), value :: linsys +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_FUNPTR) :: farg2 + +farg1 = cvode_mem +farg2 = linsys +fresult = swigc_FCVodeSetLinSysFn(farg1, farg2) +swig_result = fresult +end function + +function FCVodeGetJac(cvode_mem, j) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +type(C_PTR), target, intent(inout) :: j +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = cvode_mem +farg2 = c_loc(j) +fresult = swigc_FCVodeGetJac(farg1, farg2) +swig_result = fresult +end function + +function FCVodeGetJacTime(cvode_mem, t_j) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +real(C_DOUBLE), dimension(*), target, intent(inout) :: t_j +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = cvode_mem +farg2 = c_loc(t_j(1)) +fresult = swigc_FCVodeGetJacTime(farg1, farg2) +swig_result = fresult +end function + +function FCVodeGetJacNumSteps(cvode_mem, nst_j) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: nst_j +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = cvode_mem +farg2 = c_loc(nst_j(1)) +fresult = swigc_FCVodeGetJacNumSteps(farg1, farg2) +swig_result = fresult +end function + +function FCVodeGetLinWorkSpace(cvode_mem, lenrwls, leniwls) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: lenrwls +integer(C_LONG), dimension(*), target, intent(inout) :: leniwls +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = cvode_mem +farg2 = c_loc(lenrwls(1)) +farg3 = c_loc(leniwls(1)) +fresult = swigc_FCVodeGetLinWorkSpace(farg1, farg2, farg3) +swig_result = fresult +end function + +function FCVodeGetNumJacEvals(cvode_mem, njevals) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: njevals +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = cvode_mem +farg2 = c_loc(njevals(1)) +fresult = swigc_FCVodeGetNumJacEvals(farg1, farg2) +swig_result = fresult +end function + +function FCVodeGetNumPrecEvals(cvode_mem, npevals) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: npevals +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = cvode_mem +farg2 = c_loc(npevals(1)) +fresult = swigc_FCVodeGetNumPrecEvals(farg1, farg2) +swig_result = fresult +end function + +function FCVodeGetNumPrecSolves(cvode_mem, npsolves) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: npsolves +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = cvode_mem +farg2 = c_loc(npsolves(1)) +fresult = swigc_FCVodeGetNumPrecSolves(farg1, farg2) +swig_result = fresult +end function + +function FCVodeGetNumLinIters(cvode_mem, nliters) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: nliters +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = cvode_mem +farg2 = c_loc(nliters(1)) +fresult = swigc_FCVodeGetNumLinIters(farg1, farg2) +swig_result = fresult +end function + +function FCVodeGetNumLinConvFails(cvode_mem, nlcfails) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: nlcfails +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = cvode_mem +farg2 = c_loc(nlcfails(1)) +fresult = swigc_FCVodeGetNumLinConvFails(farg1, farg2) +swig_result = fresult +end function + +function FCVodeGetNumJTSetupEvals(cvode_mem, njtsetups) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: njtsetups +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = cvode_mem +farg2 = c_loc(njtsetups(1)) +fresult = swigc_FCVodeGetNumJTSetupEvals(farg1, farg2) +swig_result = fresult +end function + +function FCVodeGetNumJtimesEvals(cvode_mem, njvevals) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: njvevals +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = cvode_mem +farg2 = c_loc(njvevals(1)) +fresult = swigc_FCVodeGetNumJtimesEvals(farg1, farg2) +swig_result = fresult +end function + +function FCVodeGetNumLinRhsEvals(cvode_mem, nfevalsls) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: nfevalsls +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = cvode_mem +farg2 = c_loc(nfevalsls(1)) +fresult = swigc_FCVodeGetNumLinRhsEvals(farg1, farg2) +swig_result = fresult +end function + +function FCVodeGetLinSolveStats(cvode_mem, njevals, nfevalsls, nliters, nlcfails, npevals, npsolves, njtsetups, njtimes) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: njevals +integer(C_LONG), dimension(*), target, intent(inout) :: nfevalsls +integer(C_LONG), dimension(*), target, intent(inout) :: nliters +integer(C_LONG), dimension(*), target, intent(inout) :: nlcfails +integer(C_LONG), dimension(*), target, intent(inout) :: npevals +integer(C_LONG), dimension(*), target, intent(inout) :: npsolves +integer(C_LONG), dimension(*), target, intent(inout) :: njtsetups +integer(C_LONG), dimension(*), target, intent(inout) :: njtimes +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 +type(C_PTR) :: farg4 +type(C_PTR) :: farg5 +type(C_PTR) :: farg6 +type(C_PTR) :: farg7 +type(C_PTR) :: farg8 +type(C_PTR) :: farg9 + +farg1 = cvode_mem +farg2 = c_loc(njevals(1)) +farg3 = c_loc(nfevalsls(1)) +farg4 = c_loc(nliters(1)) +farg5 = c_loc(nlcfails(1)) +farg6 = c_loc(npevals(1)) +farg7 = c_loc(npsolves(1)) +farg8 = c_loc(njtsetups(1)) +farg9 = c_loc(njtimes(1)) +fresult = swigc_FCVodeGetLinSolveStats(farg1, farg2, farg3, farg4, farg5, farg6, farg7, farg8, farg9) +swig_result = fresult +end function + +function FCVodeGetLastLinFlag(cvode_mem, flag) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: flag +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = cvode_mem +farg2 = c_loc(flag(1)) +fresult = swigc_FCVodeGetLastLinFlag(farg1, farg2) +swig_result = fresult +end function + +function FCVodeGetLinReturnFlagName(flag) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +character(kind=C_CHAR, len=:), allocatable :: swig_result +integer(C_LONG), intent(in) :: flag +type(SwigArrayWrapper) :: fresult +integer(C_LONG) :: farg1 + +farg1 = flag +fresult = swigc_FCVodeGetLinReturnFlagName(farg1) +call SWIG_chararray_to_string(fresult, swig_result) +if (.false.) call SWIG_free(fresult%data) +end function + +function FCVodeSetProjFn(cvode_mem, pfun) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +type(C_FUNPTR), intent(in), value :: pfun +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_FUNPTR) :: farg2 + +farg1 = cvode_mem +farg2 = pfun +fresult = swigc_FCVodeSetProjFn(farg1, farg2) +swig_result = fresult +end function + +function FCVodeSetProjErrEst(cvode_mem, onoff) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_INT), intent(in) :: onoff +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = cvode_mem +farg2 = onoff +fresult = swigc_FCVodeSetProjErrEst(farg1, farg2) +swig_result = fresult +end function + +function FCVodeSetProjFrequency(cvode_mem, proj_freq) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_LONG), intent(in) :: proj_freq +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_LONG) :: farg2 + +farg1 = cvode_mem +farg2 = proj_freq +fresult = swigc_FCVodeSetProjFrequency(farg1, farg2) +swig_result = fresult +end function + +function FCVodeSetMaxNumProjFails(cvode_mem, max_fails) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_INT), intent(in) :: max_fails +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = cvode_mem +farg2 = max_fails +fresult = swigc_FCVodeSetMaxNumProjFails(farg1, farg2) +swig_result = fresult +end function + +function FCVodeSetEpsProj(cvode_mem, eps) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +real(C_DOUBLE), intent(in) :: eps +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 + +farg1 = cvode_mem +farg2 = eps +fresult = swigc_FCVodeSetEpsProj(farg1, farg2) +swig_result = fresult +end function + +function FCVodeSetProjFailEta(cvode_mem, eta) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +real(C_DOUBLE), intent(in) :: eta +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 + +farg1 = cvode_mem +farg2 = eta +fresult = swigc_FCVodeSetProjFailEta(farg1, farg2) +swig_result = fresult +end function + +function FCVodeGetNumProjEvals(cvode_mem, nproj) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: nproj +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = cvode_mem +farg2 = c_loc(nproj(1)) +fresult = swigc_FCVodeGetNumProjEvals(farg1, farg2) +swig_result = fresult +end function + +function FCVodeGetNumProjFails(cvode_mem, nprf) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: nprf +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = cvode_mem +farg2 = c_loc(nprf(1)) +fresult = swigc_FCVodeGetNumProjFails(farg1, farg2) +swig_result = fresult +end function + + +end module diff --git a/src/cvode/fmod_int64/CMakeLists.txt b/src/cvode/fmod_int64/CMakeLists.txt new file mode 100644 index 0000000000..e27c43ae02 --- /dev/null +++ b/src/cvode/fmod_int64/CMakeLists.txt @@ -0,0 +1,47 @@ +# --------------------------------------------------------------- +# Programmer(s): Cody J. Balos @ LLNL +# --------------------------------------------------------------- +# SUNDIALS Copyright Start +# Copyright (c) 2002-2024, Lawrence Livermore National Security +# and Southern Methodist University. +# All rights reserved. +# +# See the top-level LICENSE and NOTICE files for details. +# +# SPDX-License-Identifier: BSD-3-Clause +# SUNDIALS Copyright End +# --------------------------------------------------------------- +# CMakeLists.txt file for the F2003 CVODE object library +# --------------------------------------------------------------- + +set(cvode_SOURCES fcvode_mod.f90 fcvode_mod.c) + +# Create the library +sundials_add_f2003_library(sundials_fcvode_mod + SOURCES + ${cvode_SOURCES} + LINK_LIBRARIES + PUBLIC sundials_fcore_mod + OBJECT_LIBRARIES + sundials_fnvecserial_mod_obj + sundials_fsunmatrixband_mod_obj + sundials_fsunmatrixdense_mod_obj + sundials_fsunmatrixsparse_mod_obj + sundials_fsunlinsolband_mod_obj + sundials_fsunlinsoldense_mod_obj + sundials_fsunlinsolspbcgs_mod_obj + sundials_fsunlinsolspfgmr_mod_obj + sundials_fsunlinsolspgmr_mod_obj + sundials_fsunlinsolsptfqmr_mod_obj + sundials_fsunlinsolpcg_mod_obj + sundials_fsunnonlinsolnewton_mod_obj + sundials_fsunnonlinsolfixedpoint_mod_obj + OUTPUT_NAME + sundials_fcvode_mod + VERSION + ${cvodelib_VERSION} + SOVERSION + ${cvodelib_SOVERSION} +) + +message(STATUS "Added CVODE F2003 interface") diff --git a/src/cvode/fmod/fcvode_mod.c b/src/cvode/fmod_int64/fcvode_mod.c similarity index 100% rename from src/cvode/fmod/fcvode_mod.c rename to src/cvode/fmod_int64/fcvode_mod.c diff --git a/src/cvode/fmod/fcvode_mod.f90 b/src/cvode/fmod_int64/fcvode_mod.f90 similarity index 100% rename from src/cvode/fmod/fcvode_mod.f90 rename to src/cvode/fmod_int64/fcvode_mod.f90 diff --git a/src/cvodes/CMakeLists.txt b/src/cvodes/CMakeLists.txt index 26d9323f7e..1879c49614 100644 --- a/src/cvodes/CMakeLists.txt +++ b/src/cvodes/CMakeLists.txt @@ -85,5 +85,5 @@ message(STATUS "Added CVODES module") # Add F2003 module if the interface is enabled if(BUILD_FORTRAN_MODULE_INTERFACE) - add_subdirectory(fmod) + add_subdirectory("fmod_int${SUNDIALS_INDEX_SIZE}") endif() diff --git a/src/cvodes/fmod/CMakeLists.txt b/src/cvodes/fmod_int32/CMakeLists.txt similarity index 100% rename from src/cvodes/fmod/CMakeLists.txt rename to src/cvodes/fmod_int32/CMakeLists.txt diff --git a/src/cvodes/fmod_int32/fcvodes_mod.c b/src/cvodes/fmod_int32/fcvodes_mod.c new file mode 100644 index 0000000000..dfb9a1d1b5 --- /dev/null +++ b/src/cvodes/fmod_int32/fcvodes_mod.c @@ -0,0 +1,4040 @@ +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.0 + * + * This file is not intended to be easily readable and contains a number of + * coding conventions designed to improve portability and efficiency. Do not make + * changes to this file unless you know what you are doing--modify the SWIG + * interface file instead. + * ----------------------------------------------------------------------------- */ + +/* --------------------------------------------------------------- + * Programmer(s): Auto-generated by swig. + * --------------------------------------------------------------- + * SUNDIALS Copyright Start + * Copyright (c) 2002-2024, Lawrence Livermore National Security + * and Southern Methodist University. + * All rights reserved. + * + * See the top-level LICENSE and NOTICE files for details. + * + * SPDX-License-Identifier: BSD-3-Clause + * SUNDIALS Copyright End + * -------------------------------------------------------------*/ + +/* ----------------------------------------------------------------------------- + * This section contains generic SWIG labels for method/variable + * declarations/attributes, and other compiler dependent labels. + * ----------------------------------------------------------------------------- */ + +/* template workaround for compilers that cannot correctly implement the C++ standard */ +#ifndef SWIGTEMPLATEDISAMBIGUATOR +# if defined(__SUNPRO_CC) && (__SUNPRO_CC <= 0x560) +# define SWIGTEMPLATEDISAMBIGUATOR template +# elif defined(__HP_aCC) +/* Needed even with `aCC -AA' when `aCC -V' reports HP ANSI C++ B3910B A.03.55 */ +/* If we find a maximum version that requires this, the test would be __HP_aCC <= 35500 for A.03.55 */ +# define SWIGTEMPLATEDISAMBIGUATOR template +# else +# define SWIGTEMPLATEDISAMBIGUATOR +# endif +#endif + +/* inline attribute */ +#ifndef SWIGINLINE +# if defined(__cplusplus) || (defined(__GNUC__) && !defined(__STRICT_ANSI__)) +# define SWIGINLINE inline +# else +# define SWIGINLINE +# endif +#endif + +/* attribute recognised by some compilers to avoid 'unused' warnings */ +#ifndef SWIGUNUSED +# if defined(__GNUC__) +# if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)) +# define SWIGUNUSED __attribute__ ((__unused__)) +# else +# define SWIGUNUSED +# endif +# elif defined(__ICC) +# define SWIGUNUSED __attribute__ ((__unused__)) +# else +# define SWIGUNUSED +# endif +#endif + +#ifndef SWIG_MSC_UNSUPPRESS_4505 +# if defined(_MSC_VER) +# pragma warning(disable : 4505) /* unreferenced local function has been removed */ +# endif +#endif + +#ifndef SWIGUNUSEDPARM +# ifdef __cplusplus +# define SWIGUNUSEDPARM(p) +# else +# define SWIGUNUSEDPARM(p) p SWIGUNUSED +# endif +#endif + +/* internal SWIG method */ +#ifndef SWIGINTERN +# define SWIGINTERN static SWIGUNUSED +#endif + +/* internal inline SWIG method */ +#ifndef SWIGINTERNINLINE +# define SWIGINTERNINLINE SWIGINTERN SWIGINLINE +#endif + +/* qualifier for exported *const* global data variables*/ +#ifndef SWIGEXTERN +# ifdef __cplusplus +# define SWIGEXTERN extern +# else +# define SWIGEXTERN +# endif +#endif + +/* exporting methods */ +#if defined(__GNUC__) +# if (__GNUC__ >= 4) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) +# ifndef GCC_HASCLASSVISIBILITY +# define GCC_HASCLASSVISIBILITY +# endif +# endif +#endif + +#ifndef SWIGEXPORT +# if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__) +# if defined(STATIC_LINKED) +# define SWIGEXPORT +# else +# define SWIGEXPORT __declspec(dllexport) +# endif +# else +# if defined(__GNUC__) && defined(GCC_HASCLASSVISIBILITY) +# define SWIGEXPORT __attribute__ ((visibility("default"))) +# else +# define SWIGEXPORT +# endif +# endif +#endif + +/* calling conventions for Windows */ +#ifndef SWIGSTDCALL +# if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__) +# define SWIGSTDCALL __stdcall +# else +# define SWIGSTDCALL +# endif +#endif + +/* Deal with Microsoft's attempt at deprecating C standard runtime functions */ +#if !defined(SWIG_NO_CRT_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_CRT_SECURE_NO_DEPRECATE) +# define _CRT_SECURE_NO_DEPRECATE +#endif + +/* Deal with Microsoft's attempt at deprecating methods in the standard C++ library */ +#if !defined(SWIG_NO_SCL_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_SCL_SECURE_NO_DEPRECATE) +# define _SCL_SECURE_NO_DEPRECATE +#endif + +/* Deal with Apple's deprecated 'AssertMacros.h' from Carbon-framework */ +#if defined(__APPLE__) && !defined(__ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES) +# define __ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES 0 +#endif + +/* Intel's compiler complains if a variable which was never initialised is + * cast to void, which is a common idiom which we use to indicate that we + * are aware a variable isn't used. So we just silence that warning. + * See: https://github.com/swig/swig/issues/192 for more discussion. + */ +#ifdef __INTEL_COMPILER +# pragma warning disable 592 +#endif + +/* Errors in SWIG */ +#define SWIG_UnknownError -1 +#define SWIG_IOError -2 +#define SWIG_RuntimeError -3 +#define SWIG_IndexError -4 +#define SWIG_TypeError -5 +#define SWIG_DivisionByZero -6 +#define SWIG_OverflowError -7 +#define SWIG_SyntaxError -8 +#define SWIG_ValueError -9 +#define SWIG_SystemError -10 +#define SWIG_AttributeError -11 +#define SWIG_MemoryError -12 +#define SWIG_NullReferenceError -13 + + + + +#include +#define SWIG_exception_impl(DECL, CODE, MSG, RETURNNULL) \ + { printf("In " DECL ": " MSG); assert(0); RETURNNULL; } + + +enum { + SWIG_MEM_OWN = 0x01, + SWIG_MEM_RVALUE = 0x02, + SWIG_MEM_CONST = 0x04 +}; + + +#define SWIG_check_mutable(SWIG_CLASS_WRAPPER, TYPENAME, FNAME, FUNCNAME, RETURNNULL) \ + if ((SWIG_CLASS_WRAPPER).cmemflags & SWIG_MEM_CONST) { \ + SWIG_exception_impl(FUNCNAME, SWIG_TypeError, \ + "Cannot pass const " TYPENAME " (class " FNAME ") " \ + "as a mutable reference", \ + RETURNNULL); \ + } + + +#define SWIG_check_nonnull(SWIG_CLASS_WRAPPER, TYPENAME, FNAME, FUNCNAME, RETURNNULL) \ + if (!(SWIG_CLASS_WRAPPER).cptr) { \ + SWIG_exception_impl(FUNCNAME, SWIG_TypeError, \ + "Cannot pass null " TYPENAME " (class " FNAME ") " \ + "as a reference", RETURNNULL); \ + } + + +#define SWIG_check_mutable_nonnull(SWIG_CLASS_WRAPPER, TYPENAME, FNAME, FUNCNAME, RETURNNULL) \ + SWIG_check_nonnull(SWIG_CLASS_WRAPPER, TYPENAME, FNAME, FUNCNAME, RETURNNULL); \ + SWIG_check_mutable(SWIG_CLASS_WRAPPER, TYPENAME, FNAME, FUNCNAME, RETURNNULL); + + +#include +#if defined(_MSC_VER) || defined(__BORLANDC__) || defined(_WATCOM) +# ifndef snprintf +# define snprintf _snprintf +# endif +#endif + + +/* Support for the `contract` feature. + * + * Note that RETURNNULL is first because it's inserted via a 'Replaceall' in + * the fortran.cxx file. + */ +#define SWIG_contract_assert(RETURNNULL, EXPR, MSG) \ + if (!(EXPR)) { SWIG_exception_impl("$decl", SWIG_ValueError, MSG, RETURNNULL); } + + +#define SWIGVERSION 0x040000 +#define SWIG_VERSION SWIGVERSION + + +#define SWIG_as_voidptr(a) (void *)((const void *)(a)) +#define SWIG_as_voidptrptr(a) ((void)SWIG_as_voidptr(*a),(void**)(a)) + + +#include "cvodes/cvodes.h" +#include "cvodes/cvodes_bandpre.h" +#include "cvodes/cvodes_bbdpre.h" +#include "cvodes/cvodes_diag.h" +#include "cvodes/cvodes_ls.h" + + +#include +#ifdef _MSC_VER +# ifndef strtoull +# define strtoull _strtoui64 +# endif +# ifndef strtoll +# define strtoll _strtoi64 +# endif +#endif + + +typedef struct { + void* data; + size_t size; +} SwigArrayWrapper; + + +SWIGINTERN SwigArrayWrapper SwigArrayWrapper_uninitialized() { + SwigArrayWrapper result; + result.data = NULL; + result.size = 0; + return result; +} + + +#include + + +typedef struct { + void* cptr; + int cmemflags; +} SwigClassWrapper; + + +SWIGINTERN SwigClassWrapper SwigClassWrapper_uninitialized() { + SwigClassWrapper result; + result.cptr = NULL; + result.cmemflags = 0; + return result; +} + + +SWIGINTERN void SWIG_assign(SwigClassWrapper* self, SwigClassWrapper other) { + if (self->cptr == NULL) { + /* LHS is unassigned */ + if (other.cmemflags & SWIG_MEM_RVALUE) { + /* Capture pointer from RHS, clear 'moving' flag */ + self->cptr = other.cptr; + self->cmemflags = other.cmemflags & (~SWIG_MEM_RVALUE); + } else { + /* Become a reference to the other object */ + self->cptr = other.cptr; + self->cmemflags = other.cmemflags & (~SWIG_MEM_OWN); + } + } else if (other.cptr == NULL) { + /* Replace LHS with a null pointer */ + free(self->cptr); + *self = SwigClassWrapper_uninitialized(); + } else { + if (self->cmemflags & SWIG_MEM_OWN) { + free(self->cptr); + } + self->cptr = other.cptr; + if (other.cmemflags & SWIG_MEM_RVALUE) { + /* Capture RHS */ + self->cmemflags = other.cmemflags & ~SWIG_MEM_RVALUE; + } else { + /* Point to RHS */ + self->cmemflags = other.cmemflags & ~SWIG_MEM_OWN; + } + } +} + +SWIGEXPORT void * _wrap_FCVodeCreate(int const *farg1, void *farg2) { + void * fresult ; + int arg1 ; + SUNContext arg2 = (SUNContext) 0 ; + void *result = 0 ; + + arg1 = (int)(*farg1); + arg2 = (SUNContext)(farg2); + result = (void *)CVodeCreate(arg1,arg2); + fresult = result; + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeInit(void *farg1, CVRhsFn farg2, double const *farg3, N_Vector farg4) { + int fresult ; + void *arg1 = (void *) 0 ; + CVRhsFn arg2 = (CVRhsFn) 0 ; + sunrealtype arg3 ; + N_Vector arg4 = (N_Vector) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (CVRhsFn)(farg2); + arg3 = (sunrealtype)(*farg3); + arg4 = (N_Vector)(farg4); + result = (int)CVodeInit(arg1,arg2,arg3,arg4); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeReInit(void *farg1, double const *farg2, N_Vector farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + N_Vector arg3 = (N_Vector) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + arg3 = (N_Vector)(farg3); + result = (int)CVodeReInit(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeSStolerances(void *farg1, double const *farg2, double const *farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + sunrealtype arg3 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + arg3 = (sunrealtype)(*farg3); + result = (int)CVodeSStolerances(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeSVtolerances(void *farg1, double const *farg2, N_Vector farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + N_Vector arg3 = (N_Vector) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + arg3 = (N_Vector)(farg3); + result = (int)CVodeSVtolerances(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeWFtolerances(void *farg1, CVEwtFn farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + CVEwtFn arg2 = (CVEwtFn) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (CVEwtFn)(farg2); + result = (int)CVodeWFtolerances(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeSetConstraints(void *farg1, N_Vector farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + N_Vector arg2 = (N_Vector) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (N_Vector)(farg2); + result = (int)CVodeSetConstraints(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeSetDeltaGammaMaxLSetup(void *farg1, double const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + result = (int)CVodeSetDeltaGammaMaxLSetup(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeSetInitStep(void *farg1, double const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + result = (int)CVodeSetInitStep(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeSetLSetupFrequency(void *farg1, long const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long)(*farg2); + result = (int)CVodeSetLSetupFrequency(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeSetMaxConvFails(void *farg1, int const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + result = (int)CVodeSetMaxConvFails(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeSetMaxErrTestFails(void *farg1, int const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + result = (int)CVodeSetMaxErrTestFails(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeSetMaxHnilWarns(void *farg1, int const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + result = (int)CVodeSetMaxHnilWarns(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeSetMaxNonlinIters(void *farg1, int const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + result = (int)CVodeSetMaxNonlinIters(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeSetMaxNumSteps(void *farg1, long const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long)(*farg2); + result = (int)CVodeSetMaxNumSteps(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeSetMaxOrd(void *farg1, int const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + result = (int)CVodeSetMaxOrd(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeSetMaxStep(void *farg1, double const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + result = (int)CVodeSetMaxStep(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeSetMinStep(void *farg1, double const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + result = (int)CVodeSetMinStep(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeSetMonitorFn(void *farg1, CVMonitorFn farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + CVMonitorFn arg2 = (CVMonitorFn) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (CVMonitorFn)(farg2); + result = (int)CVodeSetMonitorFn(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeSetMonitorFrequency(void *farg1, long const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long)(*farg2); + result = (int)CVodeSetMonitorFrequency(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeSetNlsRhsFn(void *farg1, CVRhsFn farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + CVRhsFn arg2 = (CVRhsFn) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (CVRhsFn)(farg2); + result = (int)CVodeSetNlsRhsFn(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeSetNonlinConvCoef(void *farg1, double const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + result = (int)CVodeSetNonlinConvCoef(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeSetNonlinearSolver(void *farg1, SUNNonlinearSolver farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + SUNNonlinearSolver arg2 = (SUNNonlinearSolver) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (SUNNonlinearSolver)(farg2); + result = (int)CVodeSetNonlinearSolver(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeSetStabLimDet(void *farg1, int const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + result = (int)CVodeSetStabLimDet(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeSetStopTime(void *farg1, double const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + result = (int)CVodeSetStopTime(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeSetInterpolateStopTime(void *farg1, int const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + result = (int)CVodeSetInterpolateStopTime(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeClearStopTime(void *farg1) { + int fresult ; + void *arg1 = (void *) 0 ; + int result; + + arg1 = (void *)(farg1); + result = (int)CVodeClearStopTime(arg1); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeSetUserData(void *farg1, void *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + void *arg2 = (void *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (void *)(farg2); + result = (int)CVodeSetUserData(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeSetEtaFixedStepBounds(void *farg1, double const *farg2, double const *farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + sunrealtype arg3 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + arg3 = (sunrealtype)(*farg3); + result = (int)CVodeSetEtaFixedStepBounds(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeSetEtaMaxFirstStep(void *farg1, double const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + result = (int)CVodeSetEtaMaxFirstStep(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeSetEtaMaxEarlyStep(void *farg1, double const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + result = (int)CVodeSetEtaMaxEarlyStep(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeSetNumStepsEtaMaxEarlyStep(void *farg1, long const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long)(*farg2); + result = (int)CVodeSetNumStepsEtaMaxEarlyStep(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeSetEtaMax(void *farg1, double const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + result = (int)CVodeSetEtaMax(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeSetEtaMin(void *farg1, double const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + result = (int)CVodeSetEtaMin(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeSetEtaMinErrFail(void *farg1, double const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + result = (int)CVodeSetEtaMinErrFail(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeSetEtaMaxErrFail(void *farg1, double const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + result = (int)CVodeSetEtaMaxErrFail(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeSetNumFailsEtaMaxErrFail(void *farg1, int const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + result = (int)CVodeSetNumFailsEtaMaxErrFail(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeSetEtaConvFail(void *farg1, double const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + result = (int)CVodeSetEtaConvFail(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeRootInit(void *farg1, int const *farg2, CVRootFn farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + CVRootFn arg3 = (CVRootFn) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + arg3 = (CVRootFn)(farg3); + result = (int)CVodeRootInit(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeSetRootDirection(void *farg1, int *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + int *arg2 = (int *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int *)(farg2); + result = (int)CVodeSetRootDirection(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeSetNoInactiveRootWarn(void *farg1) { + int fresult ; + void *arg1 = (void *) 0 ; + int result; + + arg1 = (void *)(farg1); + result = (int)CVodeSetNoInactiveRootWarn(arg1); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVode(void *farg1, double const *farg2, N_Vector farg3, double *farg4, int const *farg5) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + N_Vector arg3 = (N_Vector) 0 ; + sunrealtype *arg4 = (sunrealtype *) 0 ; + int arg5 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + arg3 = (N_Vector)(farg3); + arg4 = (sunrealtype *)(farg4); + arg5 = (int)(*farg5); + result = (int)CVode(arg1,arg2,arg3,arg4,arg5); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeComputeState(void *farg1, N_Vector farg2, N_Vector farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + N_Vector arg2 = (N_Vector) 0 ; + N_Vector arg3 = (N_Vector) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (N_Vector)(farg2); + arg3 = (N_Vector)(farg3); + result = (int)CVodeComputeState(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeComputeStateSens(void *farg1, void *farg2, void *farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + N_Vector *arg2 = (N_Vector *) 0 ; + N_Vector *arg3 = (N_Vector *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (N_Vector *)(farg2); + arg3 = (N_Vector *)(farg3); + result = (int)CVodeComputeStateSens(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeComputeStateSens1(void *farg1, int const *farg2, N_Vector farg3, N_Vector farg4) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + N_Vector arg3 = (N_Vector) 0 ; + N_Vector arg4 = (N_Vector) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + arg3 = (N_Vector)(farg3); + arg4 = (N_Vector)(farg4); + result = (int)CVodeComputeStateSens1(arg1,arg2,arg3,arg4); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeGetDky(void *farg1, double const *farg2, int const *farg3, N_Vector farg4) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + int arg3 ; + N_Vector arg4 = (N_Vector) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + arg3 = (int)(*farg3); + arg4 = (N_Vector)(farg4); + result = (int)CVodeGetDky(arg1,arg2,arg3,arg4); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeGetWorkSpace(void *farg1, long *farg2, long *farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + long *arg3 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + arg3 = (long *)(farg3); + result = (int)CVodeGetWorkSpace(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeGetNumSteps(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)CVodeGetNumSteps(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeGetNumRhsEvals(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)CVodeGetNumRhsEvals(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeGetNumLinSolvSetups(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)CVodeGetNumLinSolvSetups(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeGetNumErrTestFails(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)CVodeGetNumErrTestFails(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeGetLastOrder(void *farg1, int *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + int *arg2 = (int *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int *)(farg2); + result = (int)CVodeGetLastOrder(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeGetCurrentOrder(void *farg1, int *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + int *arg2 = (int *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int *)(farg2); + result = (int)CVodeGetCurrentOrder(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeGetCurrentGamma(void *farg1, double *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype *arg2 = (sunrealtype *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype *)(farg2); + result = (int)CVodeGetCurrentGamma(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeGetNumStabLimOrderReds(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)CVodeGetNumStabLimOrderReds(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeGetActualInitStep(void *farg1, double *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype *arg2 = (sunrealtype *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype *)(farg2); + result = (int)CVodeGetActualInitStep(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeGetLastStep(void *farg1, double *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype *arg2 = (sunrealtype *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype *)(farg2); + result = (int)CVodeGetLastStep(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeGetCurrentStep(void *farg1, double *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype *arg2 = (sunrealtype *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype *)(farg2); + result = (int)CVodeGetCurrentStep(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeGetCurrentState(void *farg1, void *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + N_Vector *arg2 = (N_Vector *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (N_Vector *)(farg2); + result = (int)CVodeGetCurrentState(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeGetCurrentStateSens(void *farg1, void *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + N_Vector **arg2 = (N_Vector **) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (N_Vector **)(farg2); + result = (int)CVodeGetCurrentStateSens(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeGetCurrentSensSolveIndex(void *farg1, int *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + int *arg2 = (int *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int *)(farg2); + result = (int)CVodeGetCurrentSensSolveIndex(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeGetCurrentTime(void *farg1, double *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype *arg2 = (sunrealtype *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype *)(farg2); + result = (int)CVodeGetCurrentTime(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeGetTolScaleFactor(void *farg1, double *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype *arg2 = (sunrealtype *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype *)(farg2); + result = (int)CVodeGetTolScaleFactor(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeGetErrWeights(void *farg1, N_Vector farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + N_Vector arg2 = (N_Vector) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (N_Vector)(farg2); + result = (int)CVodeGetErrWeights(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeGetEstLocalErrors(void *farg1, N_Vector farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + N_Vector arg2 = (N_Vector) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (N_Vector)(farg2); + result = (int)CVodeGetEstLocalErrors(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeGetNumGEvals(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)CVodeGetNumGEvals(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeGetRootInfo(void *farg1, int *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + int *arg2 = (int *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int *)(farg2); + result = (int)CVodeGetRootInfo(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeGetIntegratorStats(void *farg1, long *farg2, long *farg3, long *farg4, long *farg5, int *farg6, int *farg7, double *farg8, double *farg9, double *farg10, double *farg11) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + long *arg3 = (long *) 0 ; + long *arg4 = (long *) 0 ; + long *arg5 = (long *) 0 ; + int *arg6 = (int *) 0 ; + int *arg7 = (int *) 0 ; + sunrealtype *arg8 = (sunrealtype *) 0 ; + sunrealtype *arg9 = (sunrealtype *) 0 ; + sunrealtype *arg10 = (sunrealtype *) 0 ; + sunrealtype *arg11 = (sunrealtype *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + arg3 = (long *)(farg3); + arg4 = (long *)(farg4); + arg5 = (long *)(farg5); + arg6 = (int *)(farg6); + arg7 = (int *)(farg7); + arg8 = (sunrealtype *)(farg8); + arg9 = (sunrealtype *)(farg9); + arg10 = (sunrealtype *)(farg10); + arg11 = (sunrealtype *)(farg11); + result = (int)CVodeGetIntegratorStats(arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9,arg10,arg11); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeGetNonlinearSystemData(void *farg1, double *farg2, void *farg3, void *farg4, void *farg5, double *farg6, double *farg7, void *farg8, void *farg9) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype *arg2 = (sunrealtype *) 0 ; + N_Vector *arg3 = (N_Vector *) 0 ; + N_Vector *arg4 = (N_Vector *) 0 ; + N_Vector *arg5 = (N_Vector *) 0 ; + sunrealtype *arg6 = (sunrealtype *) 0 ; + sunrealtype *arg7 = (sunrealtype *) 0 ; + N_Vector *arg8 = (N_Vector *) 0 ; + void **arg9 = (void **) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype *)(farg2); + arg3 = (N_Vector *)(farg3); + arg4 = (N_Vector *)(farg4); + arg5 = (N_Vector *)(farg5); + arg6 = (sunrealtype *)(farg6); + arg7 = (sunrealtype *)(farg7); + arg8 = (N_Vector *)(farg8); + arg9 = (void **)(farg9); + result = (int)CVodeGetNonlinearSystemData(arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeGetNonlinearSystemDataSens(void *farg1, double *farg2, void *farg3, void *farg4, double *farg5, double *farg6, void *farg7, void *farg8) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype *arg2 = (sunrealtype *) 0 ; + N_Vector **arg3 = (N_Vector **) 0 ; + N_Vector **arg4 = (N_Vector **) 0 ; + sunrealtype *arg5 = (sunrealtype *) 0 ; + sunrealtype *arg6 = (sunrealtype *) 0 ; + N_Vector **arg7 = (N_Vector **) 0 ; + void **arg8 = (void **) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype *)(farg2); + arg3 = (N_Vector **)(farg3); + arg4 = (N_Vector **)(farg4); + arg5 = (sunrealtype *)(farg5); + arg6 = (sunrealtype *)(farg6); + arg7 = (N_Vector **)(farg7); + arg8 = (void **)(farg8); + result = (int)CVodeGetNonlinearSystemDataSens(arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeGetNumNonlinSolvIters(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)CVodeGetNumNonlinSolvIters(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeGetNumNonlinSolvConvFails(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)CVodeGetNumNonlinSolvConvFails(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeGetNonlinSolvStats(void *farg1, long *farg2, long *farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + long *arg3 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + arg3 = (long *)(farg3); + result = (int)CVodeGetNonlinSolvStats(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeGetNumStepSolveFails(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)CVodeGetNumStepSolveFails(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeGetUserData(void *farg1, void *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + void **arg2 = (void **) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (void **)(farg2); + result = (int)CVodeGetUserData(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodePrintAllStats(void *farg1, void *farg2, int const *farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + FILE *arg2 = (FILE *) 0 ; + SUNOutputFormat arg3 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (FILE *)(farg2); + arg3 = (SUNOutputFormat)(*farg3); + result = (int)CVodePrintAllStats(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT SwigArrayWrapper _wrap_FCVodeGetReturnFlagName(long const *farg1) { + SwigArrayWrapper fresult ; + long arg1 ; + char *result = 0 ; + + arg1 = (long)(*farg1); + result = (char *)CVodeGetReturnFlagName(arg1); + fresult.size = strlen((const char*)(result)); + fresult.data = (char *)(result); + return fresult; +} + + +SWIGEXPORT void _wrap_FCVodeFree(void *farg1) { + void **arg1 = (void **) 0 ; + + arg1 = (void **)(farg1); + CVodeFree(arg1); +} + + +SWIGEXPORT int _wrap_FCVodeSetJacTimesRhsFn(void *farg1, CVRhsFn farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + CVRhsFn arg2 = (CVRhsFn) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (CVRhsFn)(farg2); + result = (int)CVodeSetJacTimesRhsFn(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeQuadInit(void *farg1, CVQuadRhsFn farg2, N_Vector farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + CVQuadRhsFn arg2 = (CVQuadRhsFn) 0 ; + N_Vector arg3 = (N_Vector) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (CVQuadRhsFn)(farg2); + arg3 = (N_Vector)(farg3); + result = (int)CVodeQuadInit(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeQuadReInit(void *farg1, N_Vector farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + N_Vector arg2 = (N_Vector) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (N_Vector)(farg2); + result = (int)CVodeQuadReInit(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeQuadSStolerances(void *farg1, double const *farg2, double const *farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + sunrealtype arg3 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + arg3 = (sunrealtype)(*farg3); + result = (int)CVodeQuadSStolerances(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeQuadSVtolerances(void *farg1, double const *farg2, N_Vector farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + N_Vector arg3 = (N_Vector) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + arg3 = (N_Vector)(farg3); + result = (int)CVodeQuadSVtolerances(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeSetQuadErrCon(void *farg1, int const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + result = (int)CVodeSetQuadErrCon(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeGetQuad(void *farg1, double *farg2, N_Vector farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype *arg2 = (sunrealtype *) 0 ; + N_Vector arg3 = (N_Vector) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype *)(farg2); + arg3 = (N_Vector)(farg3); + result = (int)CVodeGetQuad(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeGetQuadDky(void *farg1, double const *farg2, int const *farg3, N_Vector farg4) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + int arg3 ; + N_Vector arg4 = (N_Vector) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + arg3 = (int)(*farg3); + arg4 = (N_Vector)(farg4); + result = (int)CVodeGetQuadDky(arg1,arg2,arg3,arg4); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeGetQuadNumRhsEvals(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)CVodeGetQuadNumRhsEvals(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeGetQuadNumErrTestFails(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)CVodeGetQuadNumErrTestFails(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeGetQuadErrWeights(void *farg1, N_Vector farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + N_Vector arg2 = (N_Vector) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (N_Vector)(farg2); + result = (int)CVodeGetQuadErrWeights(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeGetQuadStats(void *farg1, long *farg2, long *farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + long *arg3 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + arg3 = (long *)(farg3); + result = (int)CVodeGetQuadStats(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT void _wrap_FCVodeQuadFree(void *farg1) { + void *arg1 = (void *) 0 ; + + arg1 = (void *)(farg1); + CVodeQuadFree(arg1); +} + + +SWIGEXPORT int _wrap_FCVodeSensInit(void *farg1, int const *farg2, int const *farg3, CVSensRhsFn farg4, void *farg5) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + int arg3 ; + CVSensRhsFn arg4 = (CVSensRhsFn) 0 ; + N_Vector *arg5 = (N_Vector *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + arg3 = (int)(*farg3); + arg4 = (CVSensRhsFn)(farg4); + arg5 = (N_Vector *)(farg5); + result = (int)CVodeSensInit(arg1,arg2,arg3,arg4,arg5); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeSensInit1(void *farg1, int const *farg2, int const *farg3, CVSensRhs1Fn farg4, void *farg5) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + int arg3 ; + CVSensRhs1Fn arg4 = (CVSensRhs1Fn) 0 ; + N_Vector *arg5 = (N_Vector *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + arg3 = (int)(*farg3); + arg4 = (CVSensRhs1Fn)(farg4); + arg5 = (N_Vector *)(farg5); + result = (int)CVodeSensInit1(arg1,arg2,arg3,arg4,arg5); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeSensReInit(void *farg1, int const *farg2, void *farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + N_Vector *arg3 = (N_Vector *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + arg3 = (N_Vector *)(farg3); + result = (int)CVodeSensReInit(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeSensSStolerances(void *farg1, double const *farg2, double *farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + sunrealtype *arg3 = (sunrealtype *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + arg3 = (sunrealtype *)(farg3); + result = (int)CVodeSensSStolerances(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeSensSVtolerances(void *farg1, double const *farg2, void *farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + N_Vector *arg3 = (N_Vector *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + arg3 = (N_Vector *)(farg3); + result = (int)CVodeSensSVtolerances(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeSensEEtolerances(void *farg1) { + int fresult ; + void *arg1 = (void *) 0 ; + int result; + + arg1 = (void *)(farg1); + result = (int)CVodeSensEEtolerances(arg1); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeSetSensDQMethod(void *farg1, int const *farg2, double const *farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + sunrealtype arg3 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + arg3 = (sunrealtype)(*farg3); + result = (int)CVodeSetSensDQMethod(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeSetSensErrCon(void *farg1, int const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + result = (int)CVodeSetSensErrCon(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeSetSensMaxNonlinIters(void *farg1, int const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + result = (int)CVodeSetSensMaxNonlinIters(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeSetSensParams(void *farg1, double *farg2, double *farg3, int *farg4) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype *arg2 = (sunrealtype *) 0 ; + sunrealtype *arg3 = (sunrealtype *) 0 ; + int *arg4 = (int *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype *)(farg2); + arg3 = (sunrealtype *)(farg3); + arg4 = (int *)(farg4); + result = (int)CVodeSetSensParams(arg1,arg2,arg3,arg4); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeSetNonlinearSolverSensSim(void *farg1, SUNNonlinearSolver farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + SUNNonlinearSolver arg2 = (SUNNonlinearSolver) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (SUNNonlinearSolver)(farg2); + result = (int)CVodeSetNonlinearSolverSensSim(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeSetNonlinearSolverSensStg(void *farg1, SUNNonlinearSolver farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + SUNNonlinearSolver arg2 = (SUNNonlinearSolver) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (SUNNonlinearSolver)(farg2); + result = (int)CVodeSetNonlinearSolverSensStg(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeSetNonlinearSolverSensStg1(void *farg1, SUNNonlinearSolver farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + SUNNonlinearSolver arg2 = (SUNNonlinearSolver) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (SUNNonlinearSolver)(farg2); + result = (int)CVodeSetNonlinearSolverSensStg1(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeSensToggleOff(void *farg1) { + int fresult ; + void *arg1 = (void *) 0 ; + int result; + + arg1 = (void *)(farg1); + result = (int)CVodeSensToggleOff(arg1); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeGetSens(void *farg1, double *farg2, void *farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype *arg2 = (sunrealtype *) 0 ; + N_Vector *arg3 = (N_Vector *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype *)(farg2); + arg3 = (N_Vector *)(farg3); + result = (int)CVodeGetSens(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeGetSens1(void *farg1, double *farg2, int const *farg3, N_Vector farg4) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype *arg2 = (sunrealtype *) 0 ; + int arg3 ; + N_Vector arg4 = (N_Vector) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype *)(farg2); + arg3 = (int)(*farg3); + arg4 = (N_Vector)(farg4); + result = (int)CVodeGetSens1(arg1,arg2,arg3,arg4); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeGetSensDky(void *farg1, double const *farg2, int const *farg3, void *farg4) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + int arg3 ; + N_Vector *arg4 = (N_Vector *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + arg3 = (int)(*farg3); + arg4 = (N_Vector *)(farg4); + result = (int)CVodeGetSensDky(arg1,arg2,arg3,arg4); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeGetSensDky1(void *farg1, double const *farg2, int const *farg3, int const *farg4, N_Vector farg5) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + int arg3 ; + int arg4 ; + N_Vector arg5 = (N_Vector) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + arg3 = (int)(*farg3); + arg4 = (int)(*farg4); + arg5 = (N_Vector)(farg5); + result = (int)CVodeGetSensDky1(arg1,arg2,arg3,arg4,arg5); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeGetSensNumRhsEvals(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)CVodeGetSensNumRhsEvals(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeGetNumRhsEvalsSens(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)CVodeGetNumRhsEvalsSens(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeGetSensNumErrTestFails(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)CVodeGetSensNumErrTestFails(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeGetSensNumLinSolvSetups(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)CVodeGetSensNumLinSolvSetups(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeGetSensErrWeights(void *farg1, void *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + N_Vector *arg2 = (N_Vector *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (N_Vector *)(farg2); + result = (int)CVodeGetSensErrWeights(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeGetSensStats(void *farg1, long *farg2, long *farg3, long *farg4, long *farg5) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + long *arg3 = (long *) 0 ; + long *arg4 = (long *) 0 ; + long *arg5 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + arg3 = (long *)(farg3); + arg4 = (long *)(farg4); + arg5 = (long *)(farg5); + result = (int)CVodeGetSensStats(arg1,arg2,arg3,arg4,arg5); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeGetSensNumNonlinSolvIters(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)CVodeGetSensNumNonlinSolvIters(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeGetSensNumNonlinSolvConvFails(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)CVodeGetSensNumNonlinSolvConvFails(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeGetSensNonlinSolvStats(void *farg1, long *farg2, long *farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + long *arg3 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + arg3 = (long *)(farg3); + result = (int)CVodeGetSensNonlinSolvStats(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeGetNumStepSensSolveFails(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)CVodeGetNumStepSensSolveFails(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeGetStgrSensNumNonlinSolvIters(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)CVodeGetStgrSensNumNonlinSolvIters(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeGetStgrSensNumNonlinSolvConvFails(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)CVodeGetStgrSensNumNonlinSolvConvFails(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeGetStgrSensNonlinSolvStats(void *farg1, long *farg2, long *farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + long *arg3 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + arg3 = (long *)(farg3); + result = (int)CVodeGetStgrSensNonlinSolvStats(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeGetNumStepStgrSensSolveFails(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)CVodeGetNumStepStgrSensSolveFails(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT void _wrap_FCVodeSensFree(void *farg1) { + void *arg1 = (void *) 0 ; + + arg1 = (void *)(farg1); + CVodeSensFree(arg1); +} + + +SWIGEXPORT int _wrap_FCVodeQuadSensInit(void *farg1, CVQuadSensRhsFn farg2, void *farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + CVQuadSensRhsFn arg2 = (CVQuadSensRhsFn) 0 ; + N_Vector *arg3 = (N_Vector *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (CVQuadSensRhsFn)(farg2); + arg3 = (N_Vector *)(farg3); + result = (int)CVodeQuadSensInit(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeQuadSensReInit(void *farg1, void *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + N_Vector *arg2 = (N_Vector *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (N_Vector *)(farg2); + result = (int)CVodeQuadSensReInit(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeQuadSensSStolerances(void *farg1, double const *farg2, double *farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + sunrealtype *arg3 = (sunrealtype *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + arg3 = (sunrealtype *)(farg3); + result = (int)CVodeQuadSensSStolerances(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeQuadSensSVtolerances(void *farg1, double const *farg2, void *farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + N_Vector *arg3 = (N_Vector *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + arg3 = (N_Vector *)(farg3); + result = (int)CVodeQuadSensSVtolerances(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeQuadSensEEtolerances(void *farg1) { + int fresult ; + void *arg1 = (void *) 0 ; + int result; + + arg1 = (void *)(farg1); + result = (int)CVodeQuadSensEEtolerances(arg1); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeSetQuadSensErrCon(void *farg1, int const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + result = (int)CVodeSetQuadSensErrCon(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeGetQuadSens(void *farg1, double *farg2, void *farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype *arg2 = (sunrealtype *) 0 ; + N_Vector *arg3 = (N_Vector *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype *)(farg2); + arg3 = (N_Vector *)(farg3); + result = (int)CVodeGetQuadSens(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeGetQuadSens1(void *farg1, double *farg2, int const *farg3, N_Vector farg4) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype *arg2 = (sunrealtype *) 0 ; + int arg3 ; + N_Vector arg4 = (N_Vector) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype *)(farg2); + arg3 = (int)(*farg3); + arg4 = (N_Vector)(farg4); + result = (int)CVodeGetQuadSens1(arg1,arg2,arg3,arg4); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeGetQuadSensDky(void *farg1, double const *farg2, int const *farg3, void *farg4) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + int arg3 ; + N_Vector *arg4 = (N_Vector *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + arg3 = (int)(*farg3); + arg4 = (N_Vector *)(farg4); + result = (int)CVodeGetQuadSensDky(arg1,arg2,arg3,arg4); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeGetQuadSensDky1(void *farg1, double const *farg2, int const *farg3, int const *farg4, N_Vector farg5) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + int arg3 ; + int arg4 ; + N_Vector arg5 = (N_Vector) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + arg3 = (int)(*farg3); + arg4 = (int)(*farg4); + arg5 = (N_Vector)(farg5); + result = (int)CVodeGetQuadSensDky1(arg1,arg2,arg3,arg4,arg5); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeGetQuadSensNumRhsEvals(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)CVodeGetQuadSensNumRhsEvals(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeGetQuadSensNumErrTestFails(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)CVodeGetQuadSensNumErrTestFails(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeGetQuadSensErrWeights(void *farg1, void *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + N_Vector *arg2 = (N_Vector *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (N_Vector *)(farg2); + result = (int)CVodeGetQuadSensErrWeights(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeGetQuadSensStats(void *farg1, long *farg2, long *farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + long *arg3 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + arg3 = (long *)(farg3); + result = (int)CVodeGetQuadSensStats(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT void _wrap_FCVodeQuadSensFree(void *farg1) { + void *arg1 = (void *) 0 ; + + arg1 = (void *)(farg1); + CVodeQuadSensFree(arg1); +} + + +SWIGEXPORT int _wrap_FCVodeAdjInit(void *farg1, long const *farg2, int const *farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + long arg2 ; + int arg3 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long)(*farg2); + arg3 = (int)(*farg3); + result = (int)CVodeAdjInit(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeAdjReInit(void *farg1) { + int fresult ; + void *arg1 = (void *) 0 ; + int result; + + arg1 = (void *)(farg1); + result = (int)CVodeAdjReInit(arg1); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT void _wrap_FCVodeAdjFree(void *farg1) { + void *arg1 = (void *) 0 ; + + arg1 = (void *)(farg1); + CVodeAdjFree(arg1); +} + + +SWIGEXPORT int _wrap_FCVodeCreateB(void *farg1, int const *farg2, int *farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + int *arg3 = (int *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + arg3 = (int *)(farg3); + result = (int)CVodeCreateB(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeInitB(void *farg1, int const *farg2, CVRhsFnB farg3, double const *farg4, N_Vector farg5) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + CVRhsFnB arg3 = (CVRhsFnB) 0 ; + sunrealtype arg4 ; + N_Vector arg5 = (N_Vector) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + arg3 = (CVRhsFnB)(farg3); + arg4 = (sunrealtype)(*farg4); + arg5 = (N_Vector)(farg5); + result = (int)CVodeInitB(arg1,arg2,arg3,arg4,arg5); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeInitBS(void *farg1, int const *farg2, CVRhsFnBS farg3, double const *farg4, N_Vector farg5) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + CVRhsFnBS arg3 = (CVRhsFnBS) 0 ; + sunrealtype arg4 ; + N_Vector arg5 = (N_Vector) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + arg3 = (CVRhsFnBS)(farg3); + arg4 = (sunrealtype)(*farg4); + arg5 = (N_Vector)(farg5); + result = (int)CVodeInitBS(arg1,arg2,arg3,arg4,arg5); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeReInitB(void *farg1, int const *farg2, double const *farg3, N_Vector farg4) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + sunrealtype arg3 ; + N_Vector arg4 = (N_Vector) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + arg3 = (sunrealtype)(*farg3); + arg4 = (N_Vector)(farg4); + result = (int)CVodeReInitB(arg1,arg2,arg3,arg4); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeSStolerancesB(void *farg1, int const *farg2, double const *farg3, double const *farg4) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + sunrealtype arg3 ; + sunrealtype arg4 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + arg3 = (sunrealtype)(*farg3); + arg4 = (sunrealtype)(*farg4); + result = (int)CVodeSStolerancesB(arg1,arg2,arg3,arg4); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeSVtolerancesB(void *farg1, int const *farg2, double const *farg3, N_Vector farg4) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + sunrealtype arg3 ; + N_Vector arg4 = (N_Vector) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + arg3 = (sunrealtype)(*farg3); + arg4 = (N_Vector)(farg4); + result = (int)CVodeSVtolerancesB(arg1,arg2,arg3,arg4); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeQuadInitB(void *farg1, int const *farg2, CVQuadRhsFnB farg3, N_Vector farg4) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + CVQuadRhsFnB arg3 = (CVQuadRhsFnB) 0 ; + N_Vector arg4 = (N_Vector) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + arg3 = (CVQuadRhsFnB)(farg3); + arg4 = (N_Vector)(farg4); + result = (int)CVodeQuadInitB(arg1,arg2,arg3,arg4); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeQuadInitBS(void *farg1, int const *farg2, CVQuadRhsFnBS farg3, N_Vector farg4) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + CVQuadRhsFnBS arg3 = (CVQuadRhsFnBS) 0 ; + N_Vector arg4 = (N_Vector) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + arg3 = (CVQuadRhsFnBS)(farg3); + arg4 = (N_Vector)(farg4); + result = (int)CVodeQuadInitBS(arg1,arg2,arg3,arg4); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeQuadReInitB(void *farg1, int const *farg2, N_Vector farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + N_Vector arg3 = (N_Vector) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + arg3 = (N_Vector)(farg3); + result = (int)CVodeQuadReInitB(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeQuadSStolerancesB(void *farg1, int const *farg2, double const *farg3, double const *farg4) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + sunrealtype arg3 ; + sunrealtype arg4 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + arg3 = (sunrealtype)(*farg3); + arg4 = (sunrealtype)(*farg4); + result = (int)CVodeQuadSStolerancesB(arg1,arg2,arg3,arg4); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeQuadSVtolerancesB(void *farg1, int const *farg2, double const *farg3, N_Vector farg4) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + sunrealtype arg3 ; + N_Vector arg4 = (N_Vector) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + arg3 = (sunrealtype)(*farg3); + arg4 = (N_Vector)(farg4); + result = (int)CVodeQuadSVtolerancesB(arg1,arg2,arg3,arg4); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeF(void *farg1, double const *farg2, N_Vector farg3, double *farg4, int const *farg5, int *farg6) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + N_Vector arg3 = (N_Vector) 0 ; + sunrealtype *arg4 = (sunrealtype *) 0 ; + int arg5 ; + int *arg6 = (int *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + arg3 = (N_Vector)(farg3); + arg4 = (sunrealtype *)(farg4); + arg5 = (int)(*farg5); + arg6 = (int *)(farg6); + result = (int)CVodeF(arg1,arg2,arg3,arg4,arg5,arg6); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeB(void *farg1, double const *farg2, int const *farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + int arg3 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + arg3 = (int)(*farg3); + result = (int)CVodeB(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeSetAdjNoSensi(void *farg1) { + int fresult ; + void *arg1 = (void *) 0 ; + int result; + + arg1 = (void *)(farg1); + result = (int)CVodeSetAdjNoSensi(arg1); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeSetUserDataB(void *farg1, int const *farg2, void *farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + void *arg3 = (void *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + arg3 = (void *)(farg3); + result = (int)CVodeSetUserDataB(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeSetMaxOrdB(void *farg1, int const *farg2, int const *farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + int arg3 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + arg3 = (int)(*farg3); + result = (int)CVodeSetMaxOrdB(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeSetMaxNumStepsB(void *farg1, int const *farg2, long const *farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + long arg3 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + arg3 = (long)(*farg3); + result = (int)CVodeSetMaxNumStepsB(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeSetStabLimDetB(void *farg1, int const *farg2, int const *farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + int arg3 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + arg3 = (int)(*farg3); + result = (int)CVodeSetStabLimDetB(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeSetInitStepB(void *farg1, int const *farg2, double const *farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + sunrealtype arg3 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + arg3 = (sunrealtype)(*farg3); + result = (int)CVodeSetInitStepB(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeSetMinStepB(void *farg1, int const *farg2, double const *farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + sunrealtype arg3 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + arg3 = (sunrealtype)(*farg3); + result = (int)CVodeSetMinStepB(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeSetMaxStepB(void *farg1, int const *farg2, double const *farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + sunrealtype arg3 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + arg3 = (sunrealtype)(*farg3); + result = (int)CVodeSetMaxStepB(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeSetConstraintsB(void *farg1, int const *farg2, N_Vector farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + N_Vector arg3 = (N_Vector) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + arg3 = (N_Vector)(farg3); + result = (int)CVodeSetConstraintsB(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeSetQuadErrConB(void *farg1, int const *farg2, int const *farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + int arg3 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + arg3 = (int)(*farg3); + result = (int)CVodeSetQuadErrConB(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeSetNonlinearSolverB(void *farg1, int const *farg2, SUNNonlinearSolver farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + SUNNonlinearSolver arg3 = (SUNNonlinearSolver) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + arg3 = (SUNNonlinearSolver)(farg3); + result = (int)CVodeSetNonlinearSolverB(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeGetB(void *farg1, int const *farg2, double *farg3, N_Vector farg4) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + sunrealtype *arg3 = (sunrealtype *) 0 ; + N_Vector arg4 = (N_Vector) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + arg3 = (sunrealtype *)(farg3); + arg4 = (N_Vector)(farg4); + result = (int)CVodeGetB(arg1,arg2,arg3,arg4); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeGetQuadB(void *farg1, int const *farg2, double *farg3, N_Vector farg4) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + sunrealtype *arg3 = (sunrealtype *) 0 ; + N_Vector arg4 = (N_Vector) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + arg3 = (sunrealtype *)(farg3); + arg4 = (N_Vector)(farg4); + result = (int)CVodeGetQuadB(arg1,arg2,arg3,arg4); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT void * _wrap_FCVodeGetAdjCVodeBmem(void *farg1, int const *farg2) { + void * fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + void *result = 0 ; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + result = (void *)CVodeGetAdjCVodeBmem(arg1,arg2); + fresult = result; + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeGetAdjY(void *farg1, double const *farg2, N_Vector farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + N_Vector arg3 = (N_Vector) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + arg3 = (N_Vector)(farg3); + result = (int)CVodeGetAdjY(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT void _wrap_CVadjCheckPointRec_my_addr_set(SwigClassWrapper const *farg1, void *farg2) { + CVadjCheckPointRec *arg1 = (CVadjCheckPointRec *) 0 ; + void *arg2 = (void *) 0 ; + + SWIG_check_mutable_nonnull(*farg1, "CVadjCheckPointRec *", "CVadjCheckPointRec", "CVadjCheckPointRec::my_addr", return ); + arg1 = (CVadjCheckPointRec *)(farg1->cptr); + arg2 = (void *)(farg2); + if (arg1) (arg1)->my_addr = arg2; +} + + +SWIGEXPORT void * _wrap_CVadjCheckPointRec_my_addr_get(SwigClassWrapper const *farg1) { + void * fresult ; + CVadjCheckPointRec *arg1 = (CVadjCheckPointRec *) 0 ; + void *result = 0 ; + + SWIG_check_mutable_nonnull(*farg1, "CVadjCheckPointRec *", "CVadjCheckPointRec", "CVadjCheckPointRec::my_addr", return 0); + arg1 = (CVadjCheckPointRec *)(farg1->cptr); + result = (void *) ((arg1)->my_addr); + fresult = result; + return fresult; +} + + +SWIGEXPORT void _wrap_CVadjCheckPointRec_next_addr_set(SwigClassWrapper const *farg1, void *farg2) { + CVadjCheckPointRec *arg1 = (CVadjCheckPointRec *) 0 ; + void *arg2 = (void *) 0 ; + + SWIG_check_mutable_nonnull(*farg1, "CVadjCheckPointRec *", "CVadjCheckPointRec", "CVadjCheckPointRec::next_addr", return ); + arg1 = (CVadjCheckPointRec *)(farg1->cptr); + arg2 = (void *)(farg2); + if (arg1) (arg1)->next_addr = arg2; +} + + +SWIGEXPORT void * _wrap_CVadjCheckPointRec_next_addr_get(SwigClassWrapper const *farg1) { + void * fresult ; + CVadjCheckPointRec *arg1 = (CVadjCheckPointRec *) 0 ; + void *result = 0 ; + + SWIG_check_mutable_nonnull(*farg1, "CVadjCheckPointRec *", "CVadjCheckPointRec", "CVadjCheckPointRec::next_addr", return 0); + arg1 = (CVadjCheckPointRec *)(farg1->cptr); + result = (void *) ((arg1)->next_addr); + fresult = result; + return fresult; +} + + +SWIGEXPORT void _wrap_CVadjCheckPointRec_t0_set(SwigClassWrapper const *farg1, double const *farg2) { + CVadjCheckPointRec *arg1 = (CVadjCheckPointRec *) 0 ; + sunrealtype arg2 ; + + SWIG_check_mutable_nonnull(*farg1, "CVadjCheckPointRec *", "CVadjCheckPointRec", "CVadjCheckPointRec::t0", return ); + arg1 = (CVadjCheckPointRec *)(farg1->cptr); + arg2 = (sunrealtype)(*farg2); + if (arg1) (arg1)->t0 = arg2; +} + + +SWIGEXPORT double _wrap_CVadjCheckPointRec_t0_get(SwigClassWrapper const *farg1) { + double fresult ; + CVadjCheckPointRec *arg1 = (CVadjCheckPointRec *) 0 ; + sunrealtype result; + + SWIG_check_mutable_nonnull(*farg1, "CVadjCheckPointRec *", "CVadjCheckPointRec", "CVadjCheckPointRec::t0", return 0); + arg1 = (CVadjCheckPointRec *)(farg1->cptr); + result = (sunrealtype) ((arg1)->t0); + fresult = (sunrealtype)(result); + return fresult; +} + + +SWIGEXPORT void _wrap_CVadjCheckPointRec_t1_set(SwigClassWrapper const *farg1, double const *farg2) { + CVadjCheckPointRec *arg1 = (CVadjCheckPointRec *) 0 ; + sunrealtype arg2 ; + + SWIG_check_mutable_nonnull(*farg1, "CVadjCheckPointRec *", "CVadjCheckPointRec", "CVadjCheckPointRec::t1", return ); + arg1 = (CVadjCheckPointRec *)(farg1->cptr); + arg2 = (sunrealtype)(*farg2); + if (arg1) (arg1)->t1 = arg2; +} + + +SWIGEXPORT double _wrap_CVadjCheckPointRec_t1_get(SwigClassWrapper const *farg1) { + double fresult ; + CVadjCheckPointRec *arg1 = (CVadjCheckPointRec *) 0 ; + sunrealtype result; + + SWIG_check_mutable_nonnull(*farg1, "CVadjCheckPointRec *", "CVadjCheckPointRec", "CVadjCheckPointRec::t1", return 0); + arg1 = (CVadjCheckPointRec *)(farg1->cptr); + result = (sunrealtype) ((arg1)->t1); + fresult = (sunrealtype)(result); + return fresult; +} + + +SWIGEXPORT void _wrap_CVadjCheckPointRec_nstep_set(SwigClassWrapper const *farg1, long const *farg2) { + CVadjCheckPointRec *arg1 = (CVadjCheckPointRec *) 0 ; + long arg2 ; + + SWIG_check_mutable_nonnull(*farg1, "CVadjCheckPointRec *", "CVadjCheckPointRec", "CVadjCheckPointRec::nstep", return ); + arg1 = (CVadjCheckPointRec *)(farg1->cptr); + arg2 = (long)(*farg2); + if (arg1) (arg1)->nstep = arg2; +} + + +SWIGEXPORT long _wrap_CVadjCheckPointRec_nstep_get(SwigClassWrapper const *farg1) { + long fresult ; + CVadjCheckPointRec *arg1 = (CVadjCheckPointRec *) 0 ; + long result; + + SWIG_check_mutable_nonnull(*farg1, "CVadjCheckPointRec *", "CVadjCheckPointRec", "CVadjCheckPointRec::nstep", return 0); + arg1 = (CVadjCheckPointRec *)(farg1->cptr); + result = (long) ((arg1)->nstep); + fresult = (long)(result); + return fresult; +} + + +SWIGEXPORT void _wrap_CVadjCheckPointRec_order_set(SwigClassWrapper const *farg1, int const *farg2) { + CVadjCheckPointRec *arg1 = (CVadjCheckPointRec *) 0 ; + int arg2 ; + + SWIG_check_mutable_nonnull(*farg1, "CVadjCheckPointRec *", "CVadjCheckPointRec", "CVadjCheckPointRec::order", return ); + arg1 = (CVadjCheckPointRec *)(farg1->cptr); + arg2 = (int)(*farg2); + if (arg1) (arg1)->order = arg2; +} + + +SWIGEXPORT int _wrap_CVadjCheckPointRec_order_get(SwigClassWrapper const *farg1) { + int fresult ; + CVadjCheckPointRec *arg1 = (CVadjCheckPointRec *) 0 ; + int result; + + SWIG_check_mutable_nonnull(*farg1, "CVadjCheckPointRec *", "CVadjCheckPointRec", "CVadjCheckPointRec::order", return 0); + arg1 = (CVadjCheckPointRec *)(farg1->cptr); + result = (int) ((arg1)->order); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT void _wrap_CVadjCheckPointRec_step_set(SwigClassWrapper const *farg1, double const *farg2) { + CVadjCheckPointRec *arg1 = (CVadjCheckPointRec *) 0 ; + sunrealtype arg2 ; + + SWIG_check_mutable_nonnull(*farg1, "CVadjCheckPointRec *", "CVadjCheckPointRec", "CVadjCheckPointRec::step", return ); + arg1 = (CVadjCheckPointRec *)(farg1->cptr); + arg2 = (sunrealtype)(*farg2); + if (arg1) (arg1)->step = arg2; +} + + +SWIGEXPORT double _wrap_CVadjCheckPointRec_step_get(SwigClassWrapper const *farg1) { + double fresult ; + CVadjCheckPointRec *arg1 = (CVadjCheckPointRec *) 0 ; + sunrealtype result; + + SWIG_check_mutable_nonnull(*farg1, "CVadjCheckPointRec *", "CVadjCheckPointRec", "CVadjCheckPointRec::step", return 0); + arg1 = (CVadjCheckPointRec *)(farg1->cptr); + result = (sunrealtype) ((arg1)->step); + fresult = (sunrealtype)(result); + return fresult; +} + + +SWIGEXPORT SwigClassWrapper _wrap_new_CVadjCheckPointRec() { + SwigClassWrapper fresult ; + CVadjCheckPointRec *result = 0 ; + + result = (CVadjCheckPointRec *)calloc(1, sizeof(CVadjCheckPointRec)); + fresult.cptr = result; + fresult.cmemflags = SWIG_MEM_RVALUE | (1 ? SWIG_MEM_OWN : 0); + return fresult; +} + + +SWIGEXPORT void _wrap_delete_CVadjCheckPointRec(SwigClassWrapper *farg1) { + CVadjCheckPointRec *arg1 = (CVadjCheckPointRec *) 0 ; + + SWIG_check_mutable(*farg1, "CVadjCheckPointRec *", "CVadjCheckPointRec", "CVadjCheckPointRec::~CVadjCheckPointRec()", return ); + arg1 = (CVadjCheckPointRec *)(farg1->cptr); + free((char *) arg1); +} + + +SWIGEXPORT void _wrap_CVadjCheckPointRec_op_assign__(SwigClassWrapper *farg1, SwigClassWrapper const *farg2) { + CVadjCheckPointRec *arg1 = (CVadjCheckPointRec *) 0 ; + CVadjCheckPointRec *arg2 = 0 ; + + (void)sizeof(arg1); + (void)sizeof(arg2); + SWIG_assign(farg1, *farg2); + +} + + +SWIGEXPORT int _wrap_FCVodeGetAdjCheckPointsInfo(void *farg1, SwigClassWrapper const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + CVadjCheckPointRec *arg2 = (CVadjCheckPointRec *) 0 ; + int result; + + arg1 = (void *)(farg1); + SWIG_check_mutable(*farg2, "CVadjCheckPointRec *", "CVadjCheckPointRec", "CVodeGetAdjCheckPointsInfo(void *,CVadjCheckPointRec *)", return 0); + arg2 = (CVadjCheckPointRec *)(farg2->cptr); + result = (int)CVodeGetAdjCheckPointsInfo(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeSetJacTimesRhsFnB(void *farg1, int const *farg2, CVRhsFn farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + CVRhsFn arg3 = (CVRhsFn) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + arg3 = (CVRhsFn)(farg3); + result = (int)CVodeSetJacTimesRhsFnB(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeGetAdjDataPointHermite(void *farg1, int const *farg2, double *farg3, N_Vector farg4, N_Vector farg5) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + sunrealtype *arg3 = (sunrealtype *) 0 ; + N_Vector arg4 = (N_Vector) 0 ; + N_Vector arg5 = (N_Vector) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + arg3 = (sunrealtype *)(farg3); + arg4 = (N_Vector)(farg4); + arg5 = (N_Vector)(farg5); + result = (int)CVodeGetAdjDataPointHermite(arg1,arg2,arg3,arg4,arg5); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeGetAdjDataPointPolynomial(void *farg1, int const *farg2, double *farg3, int *farg4, N_Vector farg5) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + sunrealtype *arg3 = (sunrealtype *) 0 ; + int *arg4 = (int *) 0 ; + N_Vector arg5 = (N_Vector) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + arg3 = (sunrealtype *)(farg3); + arg4 = (int *)(farg4); + arg5 = (N_Vector)(farg5); + result = (int)CVodeGetAdjDataPointPolynomial(arg1,arg2,arg3,arg4,arg5); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeGetAdjCurrentCheckPoint(void *farg1, void *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + void **arg2 = (void **) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (void **)(farg2); + result = (int)CVodeGetAdjCurrentCheckPoint(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVBandPrecInit(void *farg1, int32_t const *farg2, int32_t const *farg3, int32_t const *farg4) { + int fresult ; + void *arg1 = (void *) 0 ; + sunindextype arg2 ; + sunindextype arg3 ; + sunindextype arg4 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunindextype)(*farg2); + arg3 = (sunindextype)(*farg3); + arg4 = (sunindextype)(*farg4); + result = (int)CVBandPrecInit(arg1,arg2,arg3,arg4); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVBandPrecGetWorkSpace(void *farg1, long *farg2, long *farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + long *arg3 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + arg3 = (long *)(farg3); + result = (int)CVBandPrecGetWorkSpace(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVBandPrecGetNumRhsEvals(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)CVBandPrecGetNumRhsEvals(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVBandPrecInitB(void *farg1, int const *farg2, int32_t const *farg3, int32_t const *farg4, int32_t const *farg5) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + sunindextype arg3 ; + sunindextype arg4 ; + sunindextype arg5 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + arg3 = (sunindextype)(*farg3); + arg4 = (sunindextype)(*farg4); + arg5 = (sunindextype)(*farg5); + result = (int)CVBandPrecInitB(arg1,arg2,arg3,arg4,arg5); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVBBDPrecInit(void *farg1, int32_t const *farg2, int32_t const *farg3, int32_t const *farg4, int32_t const *farg5, int32_t const *farg6, double const *farg7, CVLocalFn farg8, CVCommFn farg9) { + int fresult ; + void *arg1 = (void *) 0 ; + sunindextype arg2 ; + sunindextype arg3 ; + sunindextype arg4 ; + sunindextype arg5 ; + sunindextype arg6 ; + sunrealtype arg7 ; + CVLocalFn arg8 = (CVLocalFn) 0 ; + CVCommFn arg9 = (CVCommFn) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunindextype)(*farg2); + arg3 = (sunindextype)(*farg3); + arg4 = (sunindextype)(*farg4); + arg5 = (sunindextype)(*farg5); + arg6 = (sunindextype)(*farg6); + arg7 = (sunrealtype)(*farg7); + arg8 = (CVLocalFn)(farg8); + arg9 = (CVCommFn)(farg9); + result = (int)CVBBDPrecInit(arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVBBDPrecReInit(void *farg1, int32_t const *farg2, int32_t const *farg3, double const *farg4) { + int fresult ; + void *arg1 = (void *) 0 ; + sunindextype arg2 ; + sunindextype arg3 ; + sunrealtype arg4 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunindextype)(*farg2); + arg3 = (sunindextype)(*farg3); + arg4 = (sunrealtype)(*farg4); + result = (int)CVBBDPrecReInit(arg1,arg2,arg3,arg4); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVBBDPrecGetWorkSpace(void *farg1, long *farg2, long *farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + long *arg3 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + arg3 = (long *)(farg3); + result = (int)CVBBDPrecGetWorkSpace(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVBBDPrecGetNumGfnEvals(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)CVBBDPrecGetNumGfnEvals(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVBBDPrecInitB(void *farg1, int const *farg2, int32_t const *farg3, int32_t const *farg4, int32_t const *farg5, int32_t const *farg6, int32_t const *farg7, double const *farg8, CVLocalFnB farg9, CVCommFnB farg10) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + sunindextype arg3 ; + sunindextype arg4 ; + sunindextype arg5 ; + sunindextype arg6 ; + sunindextype arg7 ; + sunrealtype arg8 ; + CVLocalFnB arg9 = (CVLocalFnB) 0 ; + CVCommFnB arg10 = (CVCommFnB) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + arg3 = (sunindextype)(*farg3); + arg4 = (sunindextype)(*farg4); + arg5 = (sunindextype)(*farg5); + arg6 = (sunindextype)(*farg6); + arg7 = (sunindextype)(*farg7); + arg8 = (sunrealtype)(*farg8); + arg9 = (CVLocalFnB)(farg9); + arg10 = (CVCommFnB)(farg10); + result = (int)CVBBDPrecInitB(arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9,arg10); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVBBDPrecReInitB(void *farg1, int const *farg2, int32_t const *farg3, int32_t const *farg4, double const *farg5) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + sunindextype arg3 ; + sunindextype arg4 ; + sunrealtype arg5 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + arg3 = (sunindextype)(*farg3); + arg4 = (sunindextype)(*farg4); + arg5 = (sunrealtype)(*farg5); + result = (int)CVBBDPrecReInitB(arg1,arg2,arg3,arg4,arg5); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVDiag(void *farg1) { + int fresult ; + void *arg1 = (void *) 0 ; + int result; + + arg1 = (void *)(farg1); + result = (int)CVDiag(arg1); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVDiagGetWorkSpace(void *farg1, long *farg2, long *farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + long *arg3 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + arg3 = (long *)(farg3); + result = (int)CVDiagGetWorkSpace(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVDiagGetNumRhsEvals(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)CVDiagGetNumRhsEvals(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVDiagGetLastFlag(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)CVDiagGetLastFlag(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT SwigArrayWrapper _wrap_FCVDiagGetReturnFlagName(long const *farg1) { + SwigArrayWrapper fresult ; + long arg1 ; + char *result = 0 ; + + arg1 = (long)(*farg1); + result = (char *)CVDiagGetReturnFlagName(arg1); + fresult.size = strlen((const char*)(result)); + fresult.data = (char *)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVDiagB(void *farg1, int const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + result = (int)CVDiagB(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeSetLinearSolver(void *farg1, SUNLinearSolver farg2, SUNMatrix farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + SUNLinearSolver arg2 = (SUNLinearSolver) 0 ; + SUNMatrix arg3 = (SUNMatrix) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (SUNLinearSolver)(farg2); + arg3 = (SUNMatrix)(farg3); + result = (int)CVodeSetLinearSolver(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeSetJacFn(void *farg1, CVLsJacFn farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + CVLsJacFn arg2 = (CVLsJacFn) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (CVLsJacFn)(farg2); + result = (int)CVodeSetJacFn(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeSetJacEvalFrequency(void *farg1, long const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long)(*farg2); + result = (int)CVodeSetJacEvalFrequency(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeSetLinearSolutionScaling(void *farg1, int const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + result = (int)CVodeSetLinearSolutionScaling(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeSetDeltaGammaMaxBadJac(void *farg1, double const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + result = (int)CVodeSetDeltaGammaMaxBadJac(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeSetEpsLin(void *farg1, double const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + result = (int)CVodeSetEpsLin(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeSetLSNormFactor(void *farg1, double const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + result = (int)CVodeSetLSNormFactor(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeSetPreconditioner(void *farg1, CVLsPrecSetupFn farg2, CVLsPrecSolveFn farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + CVLsPrecSetupFn arg2 = (CVLsPrecSetupFn) 0 ; + CVLsPrecSolveFn arg3 = (CVLsPrecSolveFn) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (CVLsPrecSetupFn)(farg2); + arg3 = (CVLsPrecSolveFn)(farg3); + result = (int)CVodeSetPreconditioner(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeSetJacTimes(void *farg1, CVLsJacTimesSetupFn farg2, CVLsJacTimesVecFn farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + CVLsJacTimesSetupFn arg2 = (CVLsJacTimesSetupFn) 0 ; + CVLsJacTimesVecFn arg3 = (CVLsJacTimesVecFn) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (CVLsJacTimesSetupFn)(farg2); + arg3 = (CVLsJacTimesVecFn)(farg3); + result = (int)CVodeSetJacTimes(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeSetLinSysFn(void *farg1, CVLsLinSysFn farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + CVLsLinSysFn arg2 = (CVLsLinSysFn) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (CVLsLinSysFn)(farg2); + result = (int)CVodeSetLinSysFn(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeGetJac(void *farg1, void *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + SUNMatrix *arg2 = (SUNMatrix *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (SUNMatrix *)(farg2); + result = (int)CVodeGetJac(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeGetJacTime(void *farg1, double *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype *arg2 = (sunrealtype *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype *)(farg2); + result = (int)CVodeGetJacTime(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeGetJacNumSteps(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)CVodeGetJacNumSteps(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeGetLinWorkSpace(void *farg1, long *farg2, long *farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + long *arg3 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + arg3 = (long *)(farg3); + result = (int)CVodeGetLinWorkSpace(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeGetNumJacEvals(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)CVodeGetNumJacEvals(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeGetNumPrecEvals(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)CVodeGetNumPrecEvals(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeGetNumPrecSolves(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)CVodeGetNumPrecSolves(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeGetNumLinIters(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)CVodeGetNumLinIters(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeGetNumLinConvFails(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)CVodeGetNumLinConvFails(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeGetNumJTSetupEvals(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)CVodeGetNumJTSetupEvals(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeGetNumJtimesEvals(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)CVodeGetNumJtimesEvals(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeGetNumLinRhsEvals(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)CVodeGetNumLinRhsEvals(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeGetLinSolveStats(void *farg1, long *farg2, long *farg3, long *farg4, long *farg5, long *farg6, long *farg7, long *farg8, long *farg9) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + long *arg3 = (long *) 0 ; + long *arg4 = (long *) 0 ; + long *arg5 = (long *) 0 ; + long *arg6 = (long *) 0 ; + long *arg7 = (long *) 0 ; + long *arg8 = (long *) 0 ; + long *arg9 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + arg3 = (long *)(farg3); + arg4 = (long *)(farg4); + arg5 = (long *)(farg5); + arg6 = (long *)(farg6); + arg7 = (long *)(farg7); + arg8 = (long *)(farg8); + arg9 = (long *)(farg9); + result = (int)CVodeGetLinSolveStats(arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeGetLastLinFlag(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)CVodeGetLastLinFlag(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT SwigArrayWrapper _wrap_FCVodeGetLinReturnFlagName(long const *farg1) { + SwigArrayWrapper fresult ; + long arg1 ; + char *result = 0 ; + + arg1 = (long)(*farg1); + result = (char *)CVodeGetLinReturnFlagName(arg1); + fresult.size = strlen((const char*)(result)); + fresult.data = (char *)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeSetLinearSolverB(void *farg1, int const *farg2, SUNLinearSolver farg3, SUNMatrix farg4) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + SUNLinearSolver arg3 = (SUNLinearSolver) 0 ; + SUNMatrix arg4 = (SUNMatrix) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + arg3 = (SUNLinearSolver)(farg3); + arg4 = (SUNMatrix)(farg4); + result = (int)CVodeSetLinearSolverB(arg1,arg2,arg3,arg4); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeSetJacFnB(void *farg1, int const *farg2, CVLsJacFnB farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + CVLsJacFnB arg3 = (CVLsJacFnB) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + arg3 = (CVLsJacFnB)(farg3); + result = (int)CVodeSetJacFnB(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeSetJacFnBS(void *farg1, int const *farg2, CVLsJacFnBS farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + CVLsJacFnBS arg3 = (CVLsJacFnBS) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + arg3 = (CVLsJacFnBS)(farg3); + result = (int)CVodeSetJacFnBS(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeSetEpsLinB(void *farg1, int const *farg2, double const *farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + sunrealtype arg3 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + arg3 = (sunrealtype)(*farg3); + result = (int)CVodeSetEpsLinB(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeSetLSNormFactorB(void *farg1, int const *farg2, double const *farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + sunrealtype arg3 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + arg3 = (sunrealtype)(*farg3); + result = (int)CVodeSetLSNormFactorB(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeSetLinearSolutionScalingB(void *farg1, int const *farg2, int const *farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + int arg3 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + arg3 = (int)(*farg3); + result = (int)CVodeSetLinearSolutionScalingB(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeSetPreconditionerB(void *farg1, int const *farg2, CVLsPrecSetupFnB farg3, CVLsPrecSolveFnB farg4) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + CVLsPrecSetupFnB arg3 = (CVLsPrecSetupFnB) 0 ; + CVLsPrecSolveFnB arg4 = (CVLsPrecSolveFnB) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + arg3 = (CVLsPrecSetupFnB)(farg3); + arg4 = (CVLsPrecSolveFnB)(farg4); + result = (int)CVodeSetPreconditionerB(arg1,arg2,arg3,arg4); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeSetPreconditionerBS(void *farg1, int const *farg2, CVLsPrecSetupFnBS farg3, CVLsPrecSolveFnBS farg4) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + CVLsPrecSetupFnBS arg3 = (CVLsPrecSetupFnBS) 0 ; + CVLsPrecSolveFnBS arg4 = (CVLsPrecSolveFnBS) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + arg3 = (CVLsPrecSetupFnBS)(farg3); + arg4 = (CVLsPrecSolveFnBS)(farg4); + result = (int)CVodeSetPreconditionerBS(arg1,arg2,arg3,arg4); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeSetJacTimesB(void *farg1, int const *farg2, CVLsJacTimesSetupFnB farg3, CVLsJacTimesVecFnB farg4) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + CVLsJacTimesSetupFnB arg3 = (CVLsJacTimesSetupFnB) 0 ; + CVLsJacTimesVecFnB arg4 = (CVLsJacTimesVecFnB) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + arg3 = (CVLsJacTimesSetupFnB)(farg3); + arg4 = (CVLsJacTimesVecFnB)(farg4); + result = (int)CVodeSetJacTimesB(arg1,arg2,arg3,arg4); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeSetJacTimesBS(void *farg1, int const *farg2, CVLsJacTimesSetupFnBS farg3, CVLsJacTimesVecFnBS farg4) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + CVLsJacTimesSetupFnBS arg3 = (CVLsJacTimesSetupFnBS) 0 ; + CVLsJacTimesVecFnBS arg4 = (CVLsJacTimesVecFnBS) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + arg3 = (CVLsJacTimesSetupFnBS)(farg3); + arg4 = (CVLsJacTimesVecFnBS)(farg4); + result = (int)CVodeSetJacTimesBS(arg1,arg2,arg3,arg4); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeSetLinSysFnB(void *farg1, int const *farg2, CVLsLinSysFnB farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + CVLsLinSysFnB arg3 = (CVLsLinSysFnB) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + arg3 = (CVLsLinSysFnB)(farg3); + result = (int)CVodeSetLinSysFnB(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FCVodeSetLinSysFnBS(void *farg1, int const *farg2, CVLsLinSysFnBS farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + CVLsLinSysFnBS arg3 = (CVLsLinSysFnBS) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + arg3 = (CVLsLinSysFnBS)(farg3); + result = (int)CVodeSetLinSysFnBS(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + + diff --git a/src/cvodes/fmod_int32/fcvodes_mod.f90 b/src/cvodes/fmod_int32/fcvodes_mod.f90 new file mode 100644 index 0000000000..f3cd69dcbf --- /dev/null +++ b/src/cvodes/fmod_int32/fcvodes_mod.f90 @@ -0,0 +1,7142 @@ +! This file was automatically generated by SWIG (http://www.swig.org). +! Version 4.0.0 +! +! Do not make changes to this file unless you know what you are doing--modify +! the SWIG interface file instead. + +! --------------------------------------------------------------- +! Programmer(s): Auto-generated by swig. +! --------------------------------------------------------------- +! SUNDIALS Copyright Start +! Copyright (c) 2002-2024, Lawrence Livermore National Security +! and Southern Methodist University. +! All rights reserved. +! +! See the top-level LICENSE and NOTICE files for details. +! +! SPDX-License-Identifier: BSD-3-Clause +! SUNDIALS Copyright End +! --------------------------------------------------------------- + +module fcvodes_mod + use, intrinsic :: ISO_C_BINDING + use fsundials_core_mod + implicit none + private + + ! DECLARATION CONSTRUCTS + integer(C_INT), parameter, public :: CV_ADAMS = 1_C_INT + integer(C_INT), parameter, public :: CV_BDF = 2_C_INT + integer(C_INT), parameter, public :: CV_NORMAL = 1_C_INT + integer(C_INT), parameter, public :: CV_ONE_STEP = 2_C_INT + integer(C_INT), parameter, public :: CV_SIMULTANEOUS = 1_C_INT + integer(C_INT), parameter, public :: CV_STAGGERED = 2_C_INT + integer(C_INT), parameter, public :: CV_STAGGERED1 = 3_C_INT + integer(C_INT), parameter, public :: CV_CENTERED = 1_C_INT + integer(C_INT), parameter, public :: CV_FORWARD = 2_C_INT + integer(C_INT), parameter, public :: CV_HERMITE = 1_C_INT + integer(C_INT), parameter, public :: CV_POLYNOMIAL = 2_C_INT + integer(C_INT), parameter, public :: CV_SUCCESS = 0_C_INT + integer(C_INT), parameter, public :: CV_TSTOP_RETURN = 1_C_INT + integer(C_INT), parameter, public :: CV_ROOT_RETURN = 2_C_INT + integer(C_INT), parameter, public :: CV_WARNING = 99_C_INT + integer(C_INT), parameter, public :: CV_TOO_MUCH_WORK = -1_C_INT + integer(C_INT), parameter, public :: CV_TOO_MUCH_ACC = -2_C_INT + integer(C_INT), parameter, public :: CV_ERR_FAILURE = -3_C_INT + integer(C_INT), parameter, public :: CV_CONV_FAILURE = -4_C_INT + integer(C_INT), parameter, public :: CV_LINIT_FAIL = -5_C_INT + integer(C_INT), parameter, public :: CV_LSETUP_FAIL = -6_C_INT + integer(C_INT), parameter, public :: CV_LSOLVE_FAIL = -7_C_INT + integer(C_INT), parameter, public :: CV_RHSFUNC_FAIL = -8_C_INT + integer(C_INT), parameter, public :: CV_FIRST_RHSFUNC_ERR = -9_C_INT + integer(C_INT), parameter, public :: CV_REPTD_RHSFUNC_ERR = -10_C_INT + integer(C_INT), parameter, public :: CV_UNREC_RHSFUNC_ERR = -11_C_INT + integer(C_INT), parameter, public :: CV_RTFUNC_FAIL = -12_C_INT + integer(C_INT), parameter, public :: CV_NLS_INIT_FAIL = -13_C_INT + integer(C_INT), parameter, public :: CV_NLS_SETUP_FAIL = -14_C_INT + integer(C_INT), parameter, public :: CV_CONSTR_FAIL = -15_C_INT + integer(C_INT), parameter, public :: CV_NLS_FAIL = -16_C_INT + integer(C_INT), parameter, public :: CV_MEM_FAIL = -20_C_INT + integer(C_INT), parameter, public :: CV_MEM_NULL = -21_C_INT + integer(C_INT), parameter, public :: CV_ILL_INPUT = -22_C_INT + integer(C_INT), parameter, public :: CV_NO_MALLOC = -23_C_INT + integer(C_INT), parameter, public :: CV_BAD_K = -24_C_INT + integer(C_INT), parameter, public :: CV_BAD_T = -25_C_INT + integer(C_INT), parameter, public :: CV_BAD_DKY = -26_C_INT + integer(C_INT), parameter, public :: CV_TOO_CLOSE = -27_C_INT + integer(C_INT), parameter, public :: CV_VECTOROP_ERR = -28_C_INT + integer(C_INT), parameter, public :: CV_NO_QUAD = -30_C_INT + integer(C_INT), parameter, public :: CV_QRHSFUNC_FAIL = -31_C_INT + integer(C_INT), parameter, public :: CV_FIRST_QRHSFUNC_ERR = -32_C_INT + integer(C_INT), parameter, public :: CV_REPTD_QRHSFUNC_ERR = -33_C_INT + integer(C_INT), parameter, public :: CV_UNREC_QRHSFUNC_ERR = -34_C_INT + integer(C_INT), parameter, public :: CV_NO_SENS = -40_C_INT + integer(C_INT), parameter, public :: CV_SRHSFUNC_FAIL = -41_C_INT + integer(C_INT), parameter, public :: CV_FIRST_SRHSFUNC_ERR = -42_C_INT + integer(C_INT), parameter, public :: CV_REPTD_SRHSFUNC_ERR = -43_C_INT + integer(C_INT), parameter, public :: CV_UNREC_SRHSFUNC_ERR = -44_C_INT + integer(C_INT), parameter, public :: CV_BAD_IS = -45_C_INT + integer(C_INT), parameter, public :: CV_NO_QUADSENS = -50_C_INT + integer(C_INT), parameter, public :: CV_QSRHSFUNC_FAIL = -51_C_INT + integer(C_INT), parameter, public :: CV_FIRST_QSRHSFUNC_ERR = -52_C_INT + integer(C_INT), parameter, public :: CV_REPTD_QSRHSFUNC_ERR = -53_C_INT + integer(C_INT), parameter, public :: CV_UNREC_QSRHSFUNC_ERR = -54_C_INT + integer(C_INT), parameter, public :: CV_CONTEXT_ERR = -55_C_INT + integer(C_INT), parameter, public :: CV_PROJ_MEM_NULL = -56_C_INT + integer(C_INT), parameter, public :: CV_PROJFUNC_FAIL = -57_C_INT + integer(C_INT), parameter, public :: CV_REPTD_PROJFUNC_ERR = -58_C_INT + integer(C_INT), parameter, public :: CV_BAD_TINTERP = -59_C_INT + integer(C_INT), parameter, public :: CV_UNRECOGNIZED_ERR = -99_C_INT + integer(C_INT), parameter, public :: CV_NO_ADJ = -101_C_INT + integer(C_INT), parameter, public :: CV_NO_FWD = -102_C_INT + integer(C_INT), parameter, public :: CV_NO_BCK = -103_C_INT + integer(C_INT), parameter, public :: CV_BAD_TB0 = -104_C_INT + integer(C_INT), parameter, public :: CV_REIFWD_FAIL = -105_C_INT + integer(C_INT), parameter, public :: CV_FWD_FAIL = -106_C_INT + integer(C_INT), parameter, public :: CV_GETY_BADT = -107_C_INT + public :: FCVodeCreate + public :: FCVodeInit + public :: FCVodeReInit + public :: FCVodeSStolerances + public :: FCVodeSVtolerances + public :: FCVodeWFtolerances + public :: FCVodeSetConstraints + public :: FCVodeSetDeltaGammaMaxLSetup + public :: FCVodeSetInitStep + public :: FCVodeSetLSetupFrequency + public :: FCVodeSetMaxConvFails + public :: FCVodeSetMaxErrTestFails + public :: FCVodeSetMaxHnilWarns + public :: FCVodeSetMaxNonlinIters + public :: FCVodeSetMaxNumSteps + public :: FCVodeSetMaxOrd + public :: FCVodeSetMaxStep + public :: FCVodeSetMinStep + public :: FCVodeSetMonitorFn + public :: FCVodeSetMonitorFrequency + public :: FCVodeSetNlsRhsFn + public :: FCVodeSetNonlinConvCoef + public :: FCVodeSetNonlinearSolver + public :: FCVodeSetStabLimDet + public :: FCVodeSetStopTime + public :: FCVodeSetInterpolateStopTime + public :: FCVodeClearStopTime + public :: FCVodeSetUserData + public :: FCVodeSetEtaFixedStepBounds + public :: FCVodeSetEtaMaxFirstStep + public :: FCVodeSetEtaMaxEarlyStep + public :: FCVodeSetNumStepsEtaMaxEarlyStep + public :: FCVodeSetEtaMax + public :: FCVodeSetEtaMin + public :: FCVodeSetEtaMinErrFail + public :: FCVodeSetEtaMaxErrFail + public :: FCVodeSetNumFailsEtaMaxErrFail + public :: FCVodeSetEtaConvFail + public :: FCVodeRootInit + public :: FCVodeSetRootDirection + public :: FCVodeSetNoInactiveRootWarn + public :: FCVode + public :: FCVodeComputeState + public :: FCVodeComputeStateSens + public :: FCVodeComputeStateSens1 + public :: FCVodeGetDky + public :: FCVodeGetWorkSpace + public :: FCVodeGetNumSteps + public :: FCVodeGetNumRhsEvals + public :: FCVodeGetNumLinSolvSetups + public :: FCVodeGetNumErrTestFails + public :: FCVodeGetLastOrder + public :: FCVodeGetCurrentOrder + public :: FCVodeGetCurrentGamma + public :: FCVodeGetNumStabLimOrderReds + public :: FCVodeGetActualInitStep + public :: FCVodeGetLastStep + public :: FCVodeGetCurrentStep + public :: FCVodeGetCurrentState + public :: FCVodeGetCurrentStateSens + public :: FCVodeGetCurrentSensSolveIndex + public :: FCVodeGetCurrentTime + public :: FCVodeGetTolScaleFactor + public :: FCVodeGetErrWeights + public :: FCVodeGetEstLocalErrors + public :: FCVodeGetNumGEvals + public :: FCVodeGetRootInfo + public :: FCVodeGetIntegratorStats + public :: FCVodeGetNonlinearSystemData + public :: FCVodeGetNonlinearSystemDataSens + public :: FCVodeGetNumNonlinSolvIters + public :: FCVodeGetNumNonlinSolvConvFails + public :: FCVodeGetNonlinSolvStats + public :: FCVodeGetNumStepSolveFails + public :: FCVodeGetUserData + public :: FCVodePrintAllStats + type, bind(C) :: SwigArrayWrapper + type(C_PTR), public :: data = C_NULL_PTR + integer(C_SIZE_T), public :: size = 0 + end type + public :: FCVodeGetReturnFlagName + public :: FCVodeFree + public :: FCVodeSetJacTimesRhsFn + public :: FCVodeQuadInit + public :: FCVodeQuadReInit + public :: FCVodeQuadSStolerances + public :: FCVodeQuadSVtolerances + public :: FCVodeSetQuadErrCon + public :: FCVodeGetQuad + public :: FCVodeGetQuadDky + public :: FCVodeGetQuadNumRhsEvals + public :: FCVodeGetQuadNumErrTestFails + public :: FCVodeGetQuadErrWeights + public :: FCVodeGetQuadStats + public :: FCVodeQuadFree + public :: FCVodeSensInit + public :: FCVodeSensInit1 + public :: FCVodeSensReInit + public :: FCVodeSensSStolerances + public :: FCVodeSensSVtolerances + public :: FCVodeSensEEtolerances + public :: FCVodeSetSensDQMethod + public :: FCVodeSetSensErrCon + public :: FCVodeSetSensMaxNonlinIters + public :: FCVodeSetSensParams + public :: FCVodeSetNonlinearSolverSensSim + public :: FCVodeSetNonlinearSolverSensStg + public :: FCVodeSetNonlinearSolverSensStg1 + public :: FCVodeSensToggleOff + public :: FCVodeGetSens + public :: FCVodeGetSens1 + public :: FCVodeGetSensDky + public :: FCVodeGetSensDky1 + public :: FCVodeGetSensNumRhsEvals + public :: FCVodeGetNumRhsEvalsSens + public :: FCVodeGetSensNumErrTestFails + public :: FCVodeGetSensNumLinSolvSetups + public :: FCVodeGetSensErrWeights + public :: FCVodeGetSensStats + public :: FCVodeGetSensNumNonlinSolvIters + public :: FCVodeGetSensNumNonlinSolvConvFails + public :: FCVodeGetSensNonlinSolvStats + public :: FCVodeGetNumStepSensSolveFails + public :: FCVodeGetStgrSensNumNonlinSolvIters + public :: FCVodeGetStgrSensNumNonlinSolvConvFails + public :: FCVodeGetStgrSensNonlinSolvStats + public :: FCVodeGetNumStepStgrSensSolveFails + public :: FCVodeSensFree + public :: FCVodeQuadSensInit + public :: FCVodeQuadSensReInit + public :: FCVodeQuadSensSStolerances + public :: FCVodeQuadSensSVtolerances + public :: FCVodeQuadSensEEtolerances + public :: FCVodeSetQuadSensErrCon + public :: FCVodeGetQuadSens + public :: FCVodeGetQuadSens1 + public :: FCVodeGetQuadSensDky + public :: FCVodeGetQuadSensDky1 + public :: FCVodeGetQuadSensNumRhsEvals + public :: FCVodeGetQuadSensNumErrTestFails + public :: FCVodeGetQuadSensErrWeights + public :: FCVodeGetQuadSensStats + public :: FCVodeQuadSensFree + public :: FCVodeAdjInit + public :: FCVodeAdjReInit + public :: FCVodeAdjFree + public :: FCVodeCreateB + public :: FCVodeInitB + public :: FCVodeInitBS + public :: FCVodeReInitB + public :: FCVodeSStolerancesB + public :: FCVodeSVtolerancesB + public :: FCVodeQuadInitB + public :: FCVodeQuadInitBS + public :: FCVodeQuadReInitB + public :: FCVodeQuadSStolerancesB + public :: FCVodeQuadSVtolerancesB + public :: FCVodeF + public :: FCVodeB + public :: FCVodeSetAdjNoSensi + public :: FCVodeSetUserDataB + public :: FCVodeSetMaxOrdB + public :: FCVodeSetMaxNumStepsB + public :: FCVodeSetStabLimDetB + public :: FCVodeSetInitStepB + public :: FCVodeSetMinStepB + public :: FCVodeSetMaxStepB + public :: FCVodeSetConstraintsB + public :: FCVodeSetQuadErrConB + public :: FCVodeSetNonlinearSolverB + public :: FCVodeGetB + public :: FCVodeGetQuadB + public :: FCVodeGetAdjCVodeBmem + public :: FCVodeGetAdjY + + integer, parameter :: swig_cmem_own_bit = 0 + integer, parameter :: swig_cmem_rvalue_bit = 1 + integer, parameter :: swig_cmem_const_bit = 2 + type, bind(C) :: SwigClassWrapper + type(C_PTR), public :: cptr = C_NULL_PTR + integer(C_INT), public :: cmemflags = 0 + end type + ! struct CVadjCheckPointRec + type, public :: CVadjCheckPointRec + type(SwigClassWrapper), public :: swigdata + contains + procedure :: set_my_addr => swigf_CVadjCheckPointRec_my_addr_set + procedure :: get_my_addr => swigf_CVadjCheckPointRec_my_addr_get + procedure :: set_next_addr => swigf_CVadjCheckPointRec_next_addr_set + procedure :: get_next_addr => swigf_CVadjCheckPointRec_next_addr_get + procedure :: set_t0 => swigf_CVadjCheckPointRec_t0_set + procedure :: get_t0 => swigf_CVadjCheckPointRec_t0_get + procedure :: set_t1 => swigf_CVadjCheckPointRec_t1_set + procedure :: get_t1 => swigf_CVadjCheckPointRec_t1_get + procedure :: set_nstep => swigf_CVadjCheckPointRec_nstep_set + procedure :: get_nstep => swigf_CVadjCheckPointRec_nstep_get + procedure :: set_order => swigf_CVadjCheckPointRec_order_set + procedure :: get_order => swigf_CVadjCheckPointRec_order_get + procedure :: set_step => swigf_CVadjCheckPointRec_step_set + procedure :: get_step => swigf_CVadjCheckPointRec_step_get + procedure :: release => swigf_release_CVadjCheckPointRec + procedure, private :: swigf_CVadjCheckPointRec_op_assign__ + generic :: assignment(=) => swigf_CVadjCheckPointRec_op_assign__ + end type CVadjCheckPointRec + interface CVadjCheckPointRec + module procedure swigf_create_CVadjCheckPointRec + end interface + public :: FCVodeGetAdjCheckPointsInfo + public :: FCVodeSetJacTimesRhsFnB + public :: FCVodeGetAdjDataPointHermite + public :: FCVodeGetAdjDataPointPolynomial + public :: FCVodeGetAdjCurrentCheckPoint + public :: FCVBandPrecInit + public :: FCVBandPrecGetWorkSpace + public :: FCVBandPrecGetNumRhsEvals + public :: FCVBandPrecInitB + public :: FCVBBDPrecInit + public :: FCVBBDPrecReInit + public :: FCVBBDPrecGetWorkSpace + public :: FCVBBDPrecGetNumGfnEvals + public :: FCVBBDPrecInitB + public :: FCVBBDPrecReInitB + integer(C_INT), parameter, public :: CVDIAG_SUCCESS = 0_C_INT + integer(C_INT), parameter, public :: CVDIAG_MEM_NULL = -1_C_INT + integer(C_INT), parameter, public :: CVDIAG_LMEM_NULL = -2_C_INT + integer(C_INT), parameter, public :: CVDIAG_ILL_INPUT = -3_C_INT + integer(C_INT), parameter, public :: CVDIAG_MEM_FAIL = -4_C_INT + integer(C_INT), parameter, public :: CVDIAG_INV_FAIL = -5_C_INT + integer(C_INT), parameter, public :: CVDIAG_RHSFUNC_UNRECVR = -6_C_INT + integer(C_INT), parameter, public :: CVDIAG_RHSFUNC_RECVR = -7_C_INT + integer(C_INT), parameter, public :: CVDIAG_NO_ADJ = -101_C_INT + public :: FCVDiag + public :: FCVDiagGetWorkSpace + public :: FCVDiagGetNumRhsEvals + public :: FCVDiagGetLastFlag + public :: FCVDiagGetReturnFlagName + public :: FCVDiagB + integer(C_INT), parameter, public :: CVLS_SUCCESS = 0_C_INT + integer(C_INT), parameter, public :: CVLS_MEM_NULL = -1_C_INT + integer(C_INT), parameter, public :: CVLS_LMEM_NULL = -2_C_INT + integer(C_INT), parameter, public :: CVLS_ILL_INPUT = -3_C_INT + integer(C_INT), parameter, public :: CVLS_MEM_FAIL = -4_C_INT + integer(C_INT), parameter, public :: CVLS_PMEM_NULL = -5_C_INT + integer(C_INT), parameter, public :: CVLS_JACFUNC_UNRECVR = -6_C_INT + integer(C_INT), parameter, public :: CVLS_JACFUNC_RECVR = -7_C_INT + integer(C_INT), parameter, public :: CVLS_SUNMAT_FAIL = -8_C_INT + integer(C_INT), parameter, public :: CVLS_SUNLS_FAIL = -9_C_INT + integer(C_INT), parameter, public :: CVLS_NO_ADJ = -101_C_INT + integer(C_INT), parameter, public :: CVLS_LMEMB_NULL = -102_C_INT + public :: FCVodeSetLinearSolver + public :: FCVodeSetJacFn + public :: FCVodeSetJacEvalFrequency + public :: FCVodeSetLinearSolutionScaling + public :: FCVodeSetDeltaGammaMaxBadJac + public :: FCVodeSetEpsLin + public :: FCVodeSetLSNormFactor + public :: FCVodeSetPreconditioner + public :: FCVodeSetJacTimes + public :: FCVodeSetLinSysFn + public :: FCVodeGetJac + public :: FCVodeGetJacTime + public :: FCVodeGetJacNumSteps + public :: FCVodeGetLinWorkSpace + public :: FCVodeGetNumJacEvals + public :: FCVodeGetNumPrecEvals + public :: FCVodeGetNumPrecSolves + public :: FCVodeGetNumLinIters + public :: FCVodeGetNumLinConvFails + public :: FCVodeGetNumJTSetupEvals + public :: FCVodeGetNumJtimesEvals + public :: FCVodeGetNumLinRhsEvals + public :: FCVodeGetLinSolveStats + public :: FCVodeGetLastLinFlag + public :: FCVodeGetLinReturnFlagName + public :: FCVodeSetLinearSolverB + public :: FCVodeSetJacFnB + public :: FCVodeSetJacFnBS + public :: FCVodeSetEpsLinB + public :: FCVodeSetLSNormFactorB + public :: FCVodeSetLinearSolutionScalingB + public :: FCVodeSetPreconditionerB + public :: FCVodeSetPreconditionerBS + public :: FCVodeSetJacTimesB + public :: FCVodeSetJacTimesBS + public :: FCVodeSetLinSysFnB + public :: FCVodeSetLinSysFnBS + +! WRAPPER DECLARATIONS +interface +function swigc_FCVodeCreate(farg1, farg2) & +bind(C, name="_wrap_FCVodeCreate") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +integer(C_INT), intent(in) :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR) :: fresult +end function + +function swigc_FCVodeInit(farg1, farg2, farg3, farg4) & +bind(C, name="_wrap_FCVodeInit") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_FUNPTR), value :: farg2 +real(C_DOUBLE), intent(in) :: farg3 +type(C_PTR), value :: farg4 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeReInit(farg1, farg2, farg3) & +bind(C, name="_wrap_FCVodeReInit") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeSStolerances(farg1, farg2, farg3) & +bind(C, name="_wrap_FCVodeSStolerances") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +real(C_DOUBLE), intent(in) :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeSVtolerances(farg1, farg2, farg3) & +bind(C, name="_wrap_FCVodeSVtolerances") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeWFtolerances(farg1, farg2) & +bind(C, name="_wrap_FCVodeWFtolerances") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_FUNPTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeSetConstraints(farg1, farg2) & +bind(C, name="_wrap_FCVodeSetConstraints") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeSetDeltaGammaMaxLSetup(farg1, farg2) & +bind(C, name="_wrap_FCVodeSetDeltaGammaMaxLSetup") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeSetInitStep(farg1, farg2) & +bind(C, name="_wrap_FCVodeSetInitStep") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeSetLSetupFrequency(farg1, farg2) & +bind(C, name="_wrap_FCVodeSetLSetupFrequency") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_LONG), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeSetMaxConvFails(farg1, farg2) & +bind(C, name="_wrap_FCVodeSetMaxConvFails") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeSetMaxErrTestFails(farg1, farg2) & +bind(C, name="_wrap_FCVodeSetMaxErrTestFails") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeSetMaxHnilWarns(farg1, farg2) & +bind(C, name="_wrap_FCVodeSetMaxHnilWarns") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeSetMaxNonlinIters(farg1, farg2) & +bind(C, name="_wrap_FCVodeSetMaxNonlinIters") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeSetMaxNumSteps(farg1, farg2) & +bind(C, name="_wrap_FCVodeSetMaxNumSteps") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_LONG), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeSetMaxOrd(farg1, farg2) & +bind(C, name="_wrap_FCVodeSetMaxOrd") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeSetMaxStep(farg1, farg2) & +bind(C, name="_wrap_FCVodeSetMaxStep") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeSetMinStep(farg1, farg2) & +bind(C, name="_wrap_FCVodeSetMinStep") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeSetMonitorFn(farg1, farg2) & +bind(C, name="_wrap_FCVodeSetMonitorFn") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_FUNPTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeSetMonitorFrequency(farg1, farg2) & +bind(C, name="_wrap_FCVodeSetMonitorFrequency") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_LONG), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeSetNlsRhsFn(farg1, farg2) & +bind(C, name="_wrap_FCVodeSetNlsRhsFn") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_FUNPTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeSetNonlinConvCoef(farg1, farg2) & +bind(C, name="_wrap_FCVodeSetNonlinConvCoef") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeSetNonlinearSolver(farg1, farg2) & +bind(C, name="_wrap_FCVodeSetNonlinearSolver") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeSetStabLimDet(farg1, farg2) & +bind(C, name="_wrap_FCVodeSetStabLimDet") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeSetStopTime(farg1, farg2) & +bind(C, name="_wrap_FCVodeSetStopTime") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeSetInterpolateStopTime(farg1, farg2) & +bind(C, name="_wrap_FCVodeSetInterpolateStopTime") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeClearStopTime(farg1) & +bind(C, name="_wrap_FCVodeClearStopTime") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeSetUserData(farg1, farg2) & +bind(C, name="_wrap_FCVodeSetUserData") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeSetEtaFixedStepBounds(farg1, farg2, farg3) & +bind(C, name="_wrap_FCVodeSetEtaFixedStepBounds") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +real(C_DOUBLE), intent(in) :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeSetEtaMaxFirstStep(farg1, farg2) & +bind(C, name="_wrap_FCVodeSetEtaMaxFirstStep") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeSetEtaMaxEarlyStep(farg1, farg2) & +bind(C, name="_wrap_FCVodeSetEtaMaxEarlyStep") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeSetNumStepsEtaMaxEarlyStep(farg1, farg2) & +bind(C, name="_wrap_FCVodeSetNumStepsEtaMaxEarlyStep") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_LONG), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeSetEtaMax(farg1, farg2) & +bind(C, name="_wrap_FCVodeSetEtaMax") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeSetEtaMin(farg1, farg2) & +bind(C, name="_wrap_FCVodeSetEtaMin") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeSetEtaMinErrFail(farg1, farg2) & +bind(C, name="_wrap_FCVodeSetEtaMinErrFail") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeSetEtaMaxErrFail(farg1, farg2) & +bind(C, name="_wrap_FCVodeSetEtaMaxErrFail") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeSetNumFailsEtaMaxErrFail(farg1, farg2) & +bind(C, name="_wrap_FCVodeSetNumFailsEtaMaxErrFail") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeSetEtaConvFail(farg1, farg2) & +bind(C, name="_wrap_FCVodeSetEtaConvFail") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeRootInit(farg1, farg2, farg3) & +bind(C, name="_wrap_FCVodeRootInit") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +type(C_FUNPTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeSetRootDirection(farg1, farg2) & +bind(C, name="_wrap_FCVodeSetRootDirection") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeSetNoInactiveRootWarn(farg1) & +bind(C, name="_wrap_FCVodeSetNoInactiveRootWarn") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT) :: fresult +end function + +function swigc_FCVode(farg1, farg2, farg3, farg4, farg5) & +bind(C, name="_wrap_FCVode") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +type(C_PTR), value :: farg3 +type(C_PTR), value :: farg4 +integer(C_INT), intent(in) :: farg5 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeComputeState(farg1, farg2, farg3) & +bind(C, name="_wrap_FCVodeComputeState") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeComputeStateSens(farg1, farg2, farg3) & +bind(C, name="_wrap_FCVodeComputeStateSens") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeComputeStateSens1(farg1, farg2, farg3, farg4) & +bind(C, name="_wrap_FCVodeComputeStateSens1") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +type(C_PTR), value :: farg3 +type(C_PTR), value :: farg4 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeGetDky(farg1, farg2, farg3, farg4) & +bind(C, name="_wrap_FCVodeGetDky") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT), intent(in) :: farg3 +type(C_PTR), value :: farg4 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeGetWorkSpace(farg1, farg2, farg3) & +bind(C, name="_wrap_FCVodeGetWorkSpace") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeGetNumSteps(farg1, farg2) & +bind(C, name="_wrap_FCVodeGetNumSteps") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeGetNumRhsEvals(farg1, farg2) & +bind(C, name="_wrap_FCVodeGetNumRhsEvals") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeGetNumLinSolvSetups(farg1, farg2) & +bind(C, name="_wrap_FCVodeGetNumLinSolvSetups") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeGetNumErrTestFails(farg1, farg2) & +bind(C, name="_wrap_FCVodeGetNumErrTestFails") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeGetLastOrder(farg1, farg2) & +bind(C, name="_wrap_FCVodeGetLastOrder") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeGetCurrentOrder(farg1, farg2) & +bind(C, name="_wrap_FCVodeGetCurrentOrder") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeGetCurrentGamma(farg1, farg2) & +bind(C, name="_wrap_FCVodeGetCurrentGamma") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeGetNumStabLimOrderReds(farg1, farg2) & +bind(C, name="_wrap_FCVodeGetNumStabLimOrderReds") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeGetActualInitStep(farg1, farg2) & +bind(C, name="_wrap_FCVodeGetActualInitStep") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeGetLastStep(farg1, farg2) & +bind(C, name="_wrap_FCVodeGetLastStep") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeGetCurrentStep(farg1, farg2) & +bind(C, name="_wrap_FCVodeGetCurrentStep") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeGetCurrentState(farg1, farg2) & +bind(C, name="_wrap_FCVodeGetCurrentState") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeGetCurrentStateSens(farg1, farg2) & +bind(C, name="_wrap_FCVodeGetCurrentStateSens") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeGetCurrentSensSolveIndex(farg1, farg2) & +bind(C, name="_wrap_FCVodeGetCurrentSensSolveIndex") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeGetCurrentTime(farg1, farg2) & +bind(C, name="_wrap_FCVodeGetCurrentTime") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeGetTolScaleFactor(farg1, farg2) & +bind(C, name="_wrap_FCVodeGetTolScaleFactor") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeGetErrWeights(farg1, farg2) & +bind(C, name="_wrap_FCVodeGetErrWeights") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeGetEstLocalErrors(farg1, farg2) & +bind(C, name="_wrap_FCVodeGetEstLocalErrors") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeGetNumGEvals(farg1, farg2) & +bind(C, name="_wrap_FCVodeGetNumGEvals") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeGetRootInfo(farg1, farg2) & +bind(C, name="_wrap_FCVodeGetRootInfo") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeGetIntegratorStats(farg1, farg2, farg3, farg4, farg5, farg6, farg7, farg8, farg9, farg10, farg11) & +bind(C, name="_wrap_FCVodeGetIntegratorStats") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +type(C_PTR), value :: farg4 +type(C_PTR), value :: farg5 +type(C_PTR), value :: farg6 +type(C_PTR), value :: farg7 +type(C_PTR), value :: farg8 +type(C_PTR), value :: farg9 +type(C_PTR), value :: farg10 +type(C_PTR), value :: farg11 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeGetNonlinearSystemData(farg1, farg2, farg3, farg4, farg5, farg6, farg7, farg8, farg9) & +bind(C, name="_wrap_FCVodeGetNonlinearSystemData") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +type(C_PTR), value :: farg4 +type(C_PTR), value :: farg5 +type(C_PTR), value :: farg6 +type(C_PTR), value :: farg7 +type(C_PTR), value :: farg8 +type(C_PTR), value :: farg9 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeGetNonlinearSystemDataSens(farg1, farg2, farg3, farg4, farg5, farg6, farg7, farg8) & +bind(C, name="_wrap_FCVodeGetNonlinearSystemDataSens") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +type(C_PTR), value :: farg4 +type(C_PTR), value :: farg5 +type(C_PTR), value :: farg6 +type(C_PTR), value :: farg7 +type(C_PTR), value :: farg8 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeGetNumNonlinSolvIters(farg1, farg2) & +bind(C, name="_wrap_FCVodeGetNumNonlinSolvIters") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeGetNumNonlinSolvConvFails(farg1, farg2) & +bind(C, name="_wrap_FCVodeGetNumNonlinSolvConvFails") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeGetNonlinSolvStats(farg1, farg2, farg3) & +bind(C, name="_wrap_FCVodeGetNonlinSolvStats") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeGetNumStepSolveFails(farg1, farg2) & +bind(C, name="_wrap_FCVodeGetNumStepSolveFails") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeGetUserData(farg1, farg2) & +bind(C, name="_wrap_FCVodeGetUserData") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodePrintAllStats(farg1, farg2, farg3) & +bind(C, name="_wrap_FCVodePrintAllStats") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT), intent(in) :: farg3 +integer(C_INT) :: fresult +end function + + subroutine SWIG_free(cptr) & + bind(C, name="free") + use, intrinsic :: ISO_C_BINDING + type(C_PTR), value :: cptr +end subroutine +function swigc_FCVodeGetReturnFlagName(farg1) & +bind(C, name="_wrap_FCVodeGetReturnFlagName") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +import :: swigarraywrapper +integer(C_LONG), intent(in) :: farg1 +type(SwigArrayWrapper) :: fresult +end function + +subroutine swigc_FCVodeFree(farg1) & +bind(C, name="_wrap_FCVodeFree") +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +end subroutine + +function swigc_FCVodeSetJacTimesRhsFn(farg1, farg2) & +bind(C, name="_wrap_FCVodeSetJacTimesRhsFn") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_FUNPTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeQuadInit(farg1, farg2, farg3) & +bind(C, name="_wrap_FCVodeQuadInit") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_FUNPTR), value :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeQuadReInit(farg1, farg2) & +bind(C, name="_wrap_FCVodeQuadReInit") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeQuadSStolerances(farg1, farg2, farg3) & +bind(C, name="_wrap_FCVodeQuadSStolerances") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +real(C_DOUBLE), intent(in) :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeQuadSVtolerances(farg1, farg2, farg3) & +bind(C, name="_wrap_FCVodeQuadSVtolerances") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeSetQuadErrCon(farg1, farg2) & +bind(C, name="_wrap_FCVodeSetQuadErrCon") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeGetQuad(farg1, farg2, farg3) & +bind(C, name="_wrap_FCVodeGetQuad") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeGetQuadDky(farg1, farg2, farg3, farg4) & +bind(C, name="_wrap_FCVodeGetQuadDky") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT), intent(in) :: farg3 +type(C_PTR), value :: farg4 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeGetQuadNumRhsEvals(farg1, farg2) & +bind(C, name="_wrap_FCVodeGetQuadNumRhsEvals") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeGetQuadNumErrTestFails(farg1, farg2) & +bind(C, name="_wrap_FCVodeGetQuadNumErrTestFails") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeGetQuadErrWeights(farg1, farg2) & +bind(C, name="_wrap_FCVodeGetQuadErrWeights") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeGetQuadStats(farg1, farg2, farg3) & +bind(C, name="_wrap_FCVodeGetQuadStats") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +subroutine swigc_FCVodeQuadFree(farg1) & +bind(C, name="_wrap_FCVodeQuadFree") +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +end subroutine + +function swigc_FCVodeSensInit(farg1, farg2, farg3, farg4, farg5) & +bind(C, name="_wrap_FCVodeSensInit") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT), intent(in) :: farg3 +type(C_FUNPTR), value :: farg4 +type(C_PTR), value :: farg5 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeSensInit1(farg1, farg2, farg3, farg4, farg5) & +bind(C, name="_wrap_FCVodeSensInit1") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT), intent(in) :: farg3 +type(C_FUNPTR), value :: farg4 +type(C_PTR), value :: farg5 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeSensReInit(farg1, farg2, farg3) & +bind(C, name="_wrap_FCVodeSensReInit") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeSensSStolerances(farg1, farg2, farg3) & +bind(C, name="_wrap_FCVodeSensSStolerances") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeSensSVtolerances(farg1, farg2, farg3) & +bind(C, name="_wrap_FCVodeSensSVtolerances") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeSensEEtolerances(farg1) & +bind(C, name="_wrap_FCVodeSensEEtolerances") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeSetSensDQMethod(farg1, farg2, farg3) & +bind(C, name="_wrap_FCVodeSetSensDQMethod") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +real(C_DOUBLE), intent(in) :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeSetSensErrCon(farg1, farg2) & +bind(C, name="_wrap_FCVodeSetSensErrCon") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeSetSensMaxNonlinIters(farg1, farg2) & +bind(C, name="_wrap_FCVodeSetSensMaxNonlinIters") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeSetSensParams(farg1, farg2, farg3, farg4) & +bind(C, name="_wrap_FCVodeSetSensParams") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +type(C_PTR), value :: farg4 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeSetNonlinearSolverSensSim(farg1, farg2) & +bind(C, name="_wrap_FCVodeSetNonlinearSolverSensSim") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeSetNonlinearSolverSensStg(farg1, farg2) & +bind(C, name="_wrap_FCVodeSetNonlinearSolverSensStg") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeSetNonlinearSolverSensStg1(farg1, farg2) & +bind(C, name="_wrap_FCVodeSetNonlinearSolverSensStg1") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeSensToggleOff(farg1) & +bind(C, name="_wrap_FCVodeSensToggleOff") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeGetSens(farg1, farg2, farg3) & +bind(C, name="_wrap_FCVodeGetSens") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeGetSens1(farg1, farg2, farg3, farg4) & +bind(C, name="_wrap_FCVodeGetSens1") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT), intent(in) :: farg3 +type(C_PTR), value :: farg4 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeGetSensDky(farg1, farg2, farg3, farg4) & +bind(C, name="_wrap_FCVodeGetSensDky") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT), intent(in) :: farg3 +type(C_PTR), value :: farg4 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeGetSensDky1(farg1, farg2, farg3, farg4, farg5) & +bind(C, name="_wrap_FCVodeGetSensDky1") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT), intent(in) :: farg3 +integer(C_INT), intent(in) :: farg4 +type(C_PTR), value :: farg5 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeGetSensNumRhsEvals(farg1, farg2) & +bind(C, name="_wrap_FCVodeGetSensNumRhsEvals") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeGetNumRhsEvalsSens(farg1, farg2) & +bind(C, name="_wrap_FCVodeGetNumRhsEvalsSens") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeGetSensNumErrTestFails(farg1, farg2) & +bind(C, name="_wrap_FCVodeGetSensNumErrTestFails") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeGetSensNumLinSolvSetups(farg1, farg2) & +bind(C, name="_wrap_FCVodeGetSensNumLinSolvSetups") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeGetSensErrWeights(farg1, farg2) & +bind(C, name="_wrap_FCVodeGetSensErrWeights") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeGetSensStats(farg1, farg2, farg3, farg4, farg5) & +bind(C, name="_wrap_FCVodeGetSensStats") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +type(C_PTR), value :: farg4 +type(C_PTR), value :: farg5 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeGetSensNumNonlinSolvIters(farg1, farg2) & +bind(C, name="_wrap_FCVodeGetSensNumNonlinSolvIters") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeGetSensNumNonlinSolvConvFails(farg1, farg2) & +bind(C, name="_wrap_FCVodeGetSensNumNonlinSolvConvFails") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeGetSensNonlinSolvStats(farg1, farg2, farg3) & +bind(C, name="_wrap_FCVodeGetSensNonlinSolvStats") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeGetNumStepSensSolveFails(farg1, farg2) & +bind(C, name="_wrap_FCVodeGetNumStepSensSolveFails") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeGetStgrSensNumNonlinSolvIters(farg1, farg2) & +bind(C, name="_wrap_FCVodeGetStgrSensNumNonlinSolvIters") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeGetStgrSensNumNonlinSolvConvFails(farg1, farg2) & +bind(C, name="_wrap_FCVodeGetStgrSensNumNonlinSolvConvFails") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeGetStgrSensNonlinSolvStats(farg1, farg2, farg3) & +bind(C, name="_wrap_FCVodeGetStgrSensNonlinSolvStats") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeGetNumStepStgrSensSolveFails(farg1, farg2) & +bind(C, name="_wrap_FCVodeGetNumStepStgrSensSolveFails") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +subroutine swigc_FCVodeSensFree(farg1) & +bind(C, name="_wrap_FCVodeSensFree") +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +end subroutine + +function swigc_FCVodeQuadSensInit(farg1, farg2, farg3) & +bind(C, name="_wrap_FCVodeQuadSensInit") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_FUNPTR), value :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeQuadSensReInit(farg1, farg2) & +bind(C, name="_wrap_FCVodeQuadSensReInit") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeQuadSensSStolerances(farg1, farg2, farg3) & +bind(C, name="_wrap_FCVodeQuadSensSStolerances") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeQuadSensSVtolerances(farg1, farg2, farg3) & +bind(C, name="_wrap_FCVodeQuadSensSVtolerances") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeQuadSensEEtolerances(farg1) & +bind(C, name="_wrap_FCVodeQuadSensEEtolerances") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeSetQuadSensErrCon(farg1, farg2) & +bind(C, name="_wrap_FCVodeSetQuadSensErrCon") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeGetQuadSens(farg1, farg2, farg3) & +bind(C, name="_wrap_FCVodeGetQuadSens") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeGetQuadSens1(farg1, farg2, farg3, farg4) & +bind(C, name="_wrap_FCVodeGetQuadSens1") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT), intent(in) :: farg3 +type(C_PTR), value :: farg4 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeGetQuadSensDky(farg1, farg2, farg3, farg4) & +bind(C, name="_wrap_FCVodeGetQuadSensDky") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT), intent(in) :: farg3 +type(C_PTR), value :: farg4 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeGetQuadSensDky1(farg1, farg2, farg3, farg4, farg5) & +bind(C, name="_wrap_FCVodeGetQuadSensDky1") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT), intent(in) :: farg3 +integer(C_INT), intent(in) :: farg4 +type(C_PTR), value :: farg5 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeGetQuadSensNumRhsEvals(farg1, farg2) & +bind(C, name="_wrap_FCVodeGetQuadSensNumRhsEvals") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeGetQuadSensNumErrTestFails(farg1, farg2) & +bind(C, name="_wrap_FCVodeGetQuadSensNumErrTestFails") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeGetQuadSensErrWeights(farg1, farg2) & +bind(C, name="_wrap_FCVodeGetQuadSensErrWeights") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeGetQuadSensStats(farg1, farg2, farg3) & +bind(C, name="_wrap_FCVodeGetQuadSensStats") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +subroutine swigc_FCVodeQuadSensFree(farg1) & +bind(C, name="_wrap_FCVodeQuadSensFree") +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +end subroutine + +function swigc_FCVodeAdjInit(farg1, farg2, farg3) & +bind(C, name="_wrap_FCVodeAdjInit") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_LONG), intent(in) :: farg2 +integer(C_INT), intent(in) :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeAdjReInit(farg1) & +bind(C, name="_wrap_FCVodeAdjReInit") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT) :: fresult +end function + +subroutine swigc_FCVodeAdjFree(farg1) & +bind(C, name="_wrap_FCVodeAdjFree") +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +end subroutine + +function swigc_FCVodeCreateB(farg1, farg2, farg3) & +bind(C, name="_wrap_FCVodeCreateB") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeInitB(farg1, farg2, farg3, farg4, farg5) & +bind(C, name="_wrap_FCVodeInitB") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +type(C_FUNPTR), value :: farg3 +real(C_DOUBLE), intent(in) :: farg4 +type(C_PTR), value :: farg5 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeInitBS(farg1, farg2, farg3, farg4, farg5) & +bind(C, name="_wrap_FCVodeInitBS") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +type(C_FUNPTR), value :: farg3 +real(C_DOUBLE), intent(in) :: farg4 +type(C_PTR), value :: farg5 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeReInitB(farg1, farg2, farg3, farg4) & +bind(C, name="_wrap_FCVodeReInitB") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +real(C_DOUBLE), intent(in) :: farg3 +type(C_PTR), value :: farg4 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeSStolerancesB(farg1, farg2, farg3, farg4) & +bind(C, name="_wrap_FCVodeSStolerancesB") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +real(C_DOUBLE), intent(in) :: farg3 +real(C_DOUBLE), intent(in) :: farg4 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeSVtolerancesB(farg1, farg2, farg3, farg4) & +bind(C, name="_wrap_FCVodeSVtolerancesB") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +real(C_DOUBLE), intent(in) :: farg3 +type(C_PTR), value :: farg4 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeQuadInitB(farg1, farg2, farg3, farg4) & +bind(C, name="_wrap_FCVodeQuadInitB") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +type(C_FUNPTR), value :: farg3 +type(C_PTR), value :: farg4 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeQuadInitBS(farg1, farg2, farg3, farg4) & +bind(C, name="_wrap_FCVodeQuadInitBS") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +type(C_FUNPTR), value :: farg3 +type(C_PTR), value :: farg4 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeQuadReInitB(farg1, farg2, farg3) & +bind(C, name="_wrap_FCVodeQuadReInitB") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeQuadSStolerancesB(farg1, farg2, farg3, farg4) & +bind(C, name="_wrap_FCVodeQuadSStolerancesB") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +real(C_DOUBLE), intent(in) :: farg3 +real(C_DOUBLE), intent(in) :: farg4 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeQuadSVtolerancesB(farg1, farg2, farg3, farg4) & +bind(C, name="_wrap_FCVodeQuadSVtolerancesB") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +real(C_DOUBLE), intent(in) :: farg3 +type(C_PTR), value :: farg4 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeF(farg1, farg2, farg3, farg4, farg5, farg6) & +bind(C, name="_wrap_FCVodeF") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +type(C_PTR), value :: farg3 +type(C_PTR), value :: farg4 +integer(C_INT), intent(in) :: farg5 +type(C_PTR), value :: farg6 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeB(farg1, farg2, farg3) & +bind(C, name="_wrap_FCVodeB") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT), intent(in) :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeSetAdjNoSensi(farg1) & +bind(C, name="_wrap_FCVodeSetAdjNoSensi") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeSetUserDataB(farg1, farg2, farg3) & +bind(C, name="_wrap_FCVodeSetUserDataB") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeSetMaxOrdB(farg1, farg2, farg3) & +bind(C, name="_wrap_FCVodeSetMaxOrdB") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT), intent(in) :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeSetMaxNumStepsB(farg1, farg2, farg3) & +bind(C, name="_wrap_FCVodeSetMaxNumStepsB") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_LONG), intent(in) :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeSetStabLimDetB(farg1, farg2, farg3) & +bind(C, name="_wrap_FCVodeSetStabLimDetB") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT), intent(in) :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeSetInitStepB(farg1, farg2, farg3) & +bind(C, name="_wrap_FCVodeSetInitStepB") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +real(C_DOUBLE), intent(in) :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeSetMinStepB(farg1, farg2, farg3) & +bind(C, name="_wrap_FCVodeSetMinStepB") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +real(C_DOUBLE), intent(in) :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeSetMaxStepB(farg1, farg2, farg3) & +bind(C, name="_wrap_FCVodeSetMaxStepB") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +real(C_DOUBLE), intent(in) :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeSetConstraintsB(farg1, farg2, farg3) & +bind(C, name="_wrap_FCVodeSetConstraintsB") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeSetQuadErrConB(farg1, farg2, farg3) & +bind(C, name="_wrap_FCVodeSetQuadErrConB") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT), intent(in) :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeSetNonlinearSolverB(farg1, farg2, farg3) & +bind(C, name="_wrap_FCVodeSetNonlinearSolverB") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeGetB(farg1, farg2, farg3, farg4) & +bind(C, name="_wrap_FCVodeGetB") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +type(C_PTR), value :: farg3 +type(C_PTR), value :: farg4 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeGetQuadB(farg1, farg2, farg3, farg4) & +bind(C, name="_wrap_FCVodeGetQuadB") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +type(C_PTR), value :: farg3 +type(C_PTR), value :: farg4 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeGetAdjCVodeBmem(farg1, farg2) & +bind(C, name="_wrap_FCVodeGetAdjCVodeBmem") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +type(C_PTR) :: fresult +end function + +function swigc_FCVodeGetAdjY(farg1, farg2, farg3) & +bind(C, name="_wrap_FCVodeGetAdjY") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +subroutine swigc_CVadjCheckPointRec_my_addr_set(farg1, farg2) & +bind(C, name="_wrap_CVadjCheckPointRec_my_addr_set") +use, intrinsic :: ISO_C_BINDING +import :: swigclasswrapper +type(SwigClassWrapper) :: farg1 +type(C_PTR), value :: farg2 +end subroutine + +function swigc_CVadjCheckPointRec_my_addr_get(farg1) & +bind(C, name="_wrap_CVadjCheckPointRec_my_addr_get") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +import :: swigclasswrapper +type(SwigClassWrapper) :: farg1 +type(C_PTR) :: fresult +end function + +subroutine swigc_CVadjCheckPointRec_next_addr_set(farg1, farg2) & +bind(C, name="_wrap_CVadjCheckPointRec_next_addr_set") +use, intrinsic :: ISO_C_BINDING +import :: swigclasswrapper +type(SwigClassWrapper) :: farg1 +type(C_PTR), value :: farg2 +end subroutine + +function swigc_CVadjCheckPointRec_next_addr_get(farg1) & +bind(C, name="_wrap_CVadjCheckPointRec_next_addr_get") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +import :: swigclasswrapper +type(SwigClassWrapper) :: farg1 +type(C_PTR) :: fresult +end function + +subroutine swigc_CVadjCheckPointRec_t0_set(farg1, farg2) & +bind(C, name="_wrap_CVadjCheckPointRec_t0_set") +use, intrinsic :: ISO_C_BINDING +import :: swigclasswrapper +type(SwigClassWrapper) :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +end subroutine + +function swigc_CVadjCheckPointRec_t0_get(farg1) & +bind(C, name="_wrap_CVadjCheckPointRec_t0_get") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +import :: swigclasswrapper +type(SwigClassWrapper) :: farg1 +real(C_DOUBLE) :: fresult +end function + +subroutine swigc_CVadjCheckPointRec_t1_set(farg1, farg2) & +bind(C, name="_wrap_CVadjCheckPointRec_t1_set") +use, intrinsic :: ISO_C_BINDING +import :: swigclasswrapper +type(SwigClassWrapper) :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +end subroutine + +function swigc_CVadjCheckPointRec_t1_get(farg1) & +bind(C, name="_wrap_CVadjCheckPointRec_t1_get") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +import :: swigclasswrapper +type(SwigClassWrapper) :: farg1 +real(C_DOUBLE) :: fresult +end function + +subroutine swigc_CVadjCheckPointRec_nstep_set(farg1, farg2) & +bind(C, name="_wrap_CVadjCheckPointRec_nstep_set") +use, intrinsic :: ISO_C_BINDING +import :: swigclasswrapper +type(SwigClassWrapper) :: farg1 +integer(C_LONG), intent(in) :: farg2 +end subroutine + +function swigc_CVadjCheckPointRec_nstep_get(farg1) & +bind(C, name="_wrap_CVadjCheckPointRec_nstep_get") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +import :: swigclasswrapper +type(SwigClassWrapper) :: farg1 +integer(C_LONG) :: fresult +end function + +subroutine swigc_CVadjCheckPointRec_order_set(farg1, farg2) & +bind(C, name="_wrap_CVadjCheckPointRec_order_set") +use, intrinsic :: ISO_C_BINDING +import :: swigclasswrapper +type(SwigClassWrapper) :: farg1 +integer(C_INT), intent(in) :: farg2 +end subroutine + +function swigc_CVadjCheckPointRec_order_get(farg1) & +bind(C, name="_wrap_CVadjCheckPointRec_order_get") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +import :: swigclasswrapper +type(SwigClassWrapper) :: farg1 +integer(C_INT) :: fresult +end function + +subroutine swigc_CVadjCheckPointRec_step_set(farg1, farg2) & +bind(C, name="_wrap_CVadjCheckPointRec_step_set") +use, intrinsic :: ISO_C_BINDING +import :: swigclasswrapper +type(SwigClassWrapper) :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +end subroutine + +function swigc_CVadjCheckPointRec_step_get(farg1) & +bind(C, name="_wrap_CVadjCheckPointRec_step_get") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +import :: swigclasswrapper +type(SwigClassWrapper) :: farg1 +real(C_DOUBLE) :: fresult +end function + +function swigc_new_CVadjCheckPointRec() & +bind(C, name="_wrap_new_CVadjCheckPointRec") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +import :: swigclasswrapper +type(SwigClassWrapper) :: fresult +end function + +subroutine swigc_delete_CVadjCheckPointRec(farg1) & +bind(C, name="_wrap_delete_CVadjCheckPointRec") +use, intrinsic :: ISO_C_BINDING +import :: swigclasswrapper +type(SwigClassWrapper), intent(inout) :: farg1 +end subroutine + +subroutine swigc_CVadjCheckPointRec_op_assign__(farg1, farg2) & +bind(C, name="_wrap_CVadjCheckPointRec_op_assign__") +use, intrinsic :: ISO_C_BINDING +import :: swigclasswrapper +type(SwigClassWrapper), intent(inout) :: farg1 +type(SwigClassWrapper) :: farg2 +end subroutine + +function swigc_FCVodeGetAdjCheckPointsInfo(farg1, farg2) & +bind(C, name="_wrap_FCVodeGetAdjCheckPointsInfo") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +import :: swigclasswrapper +type(C_PTR), value :: farg1 +type(SwigClassWrapper) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeSetJacTimesRhsFnB(farg1, farg2, farg3) & +bind(C, name="_wrap_FCVodeSetJacTimesRhsFnB") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +type(C_FUNPTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeGetAdjDataPointHermite(farg1, farg2, farg3, farg4, farg5) & +bind(C, name="_wrap_FCVodeGetAdjDataPointHermite") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +type(C_PTR), value :: farg3 +type(C_PTR), value :: farg4 +type(C_PTR), value :: farg5 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeGetAdjDataPointPolynomial(farg1, farg2, farg3, farg4, farg5) & +bind(C, name="_wrap_FCVodeGetAdjDataPointPolynomial") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +type(C_PTR), value :: farg3 +type(C_PTR), value :: farg4 +type(C_PTR), value :: farg5 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeGetAdjCurrentCheckPoint(farg1, farg2) & +bind(C, name="_wrap_FCVodeGetAdjCurrentCheckPoint") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVBandPrecInit(farg1, farg2, farg3, farg4) & +bind(C, name="_wrap_FCVBandPrecInit") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT32_T), intent(in) :: farg2 +integer(C_INT32_T), intent(in) :: farg3 +integer(C_INT32_T), intent(in) :: farg4 +integer(C_INT) :: fresult +end function + +function swigc_FCVBandPrecGetWorkSpace(farg1, farg2, farg3) & +bind(C, name="_wrap_FCVBandPrecGetWorkSpace") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FCVBandPrecGetNumRhsEvals(farg1, farg2) & +bind(C, name="_wrap_FCVBandPrecGetNumRhsEvals") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVBandPrecInitB(farg1, farg2, farg3, farg4, farg5) & +bind(C, name="_wrap_FCVBandPrecInitB") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT32_T), intent(in) :: farg3 +integer(C_INT32_T), intent(in) :: farg4 +integer(C_INT32_T), intent(in) :: farg5 +integer(C_INT) :: fresult +end function + +function swigc_FCVBBDPrecInit(farg1, farg2, farg3, farg4, farg5, farg6, farg7, farg8, farg9) & +bind(C, name="_wrap_FCVBBDPrecInit") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT32_T), intent(in) :: farg2 +integer(C_INT32_T), intent(in) :: farg3 +integer(C_INT32_T), intent(in) :: farg4 +integer(C_INT32_T), intent(in) :: farg5 +integer(C_INT32_T), intent(in) :: farg6 +real(C_DOUBLE), intent(in) :: farg7 +type(C_FUNPTR), value :: farg8 +type(C_FUNPTR), value :: farg9 +integer(C_INT) :: fresult +end function + +function swigc_FCVBBDPrecReInit(farg1, farg2, farg3, farg4) & +bind(C, name="_wrap_FCVBBDPrecReInit") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT32_T), intent(in) :: farg2 +integer(C_INT32_T), intent(in) :: farg3 +real(C_DOUBLE), intent(in) :: farg4 +integer(C_INT) :: fresult +end function + +function swigc_FCVBBDPrecGetWorkSpace(farg1, farg2, farg3) & +bind(C, name="_wrap_FCVBBDPrecGetWorkSpace") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FCVBBDPrecGetNumGfnEvals(farg1, farg2) & +bind(C, name="_wrap_FCVBBDPrecGetNumGfnEvals") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVBBDPrecInitB(farg1, farg2, farg3, farg4, farg5, farg6, farg7, farg8, farg9, farg10) & +bind(C, name="_wrap_FCVBBDPrecInitB") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT32_T), intent(in) :: farg3 +integer(C_INT32_T), intent(in) :: farg4 +integer(C_INT32_T), intent(in) :: farg5 +integer(C_INT32_T), intent(in) :: farg6 +integer(C_INT32_T), intent(in) :: farg7 +real(C_DOUBLE), intent(in) :: farg8 +type(C_FUNPTR), value :: farg9 +type(C_FUNPTR), value :: farg10 +integer(C_INT) :: fresult +end function + +function swigc_FCVBBDPrecReInitB(farg1, farg2, farg3, farg4, farg5) & +bind(C, name="_wrap_FCVBBDPrecReInitB") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT32_T), intent(in) :: farg3 +integer(C_INT32_T), intent(in) :: farg4 +real(C_DOUBLE), intent(in) :: farg5 +integer(C_INT) :: fresult +end function + +function swigc_FCVDiag(farg1) & +bind(C, name="_wrap_FCVDiag") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT) :: fresult +end function + +function swigc_FCVDiagGetWorkSpace(farg1, farg2, farg3) & +bind(C, name="_wrap_FCVDiagGetWorkSpace") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FCVDiagGetNumRhsEvals(farg1, farg2) & +bind(C, name="_wrap_FCVDiagGetNumRhsEvals") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVDiagGetLastFlag(farg1, farg2) & +bind(C, name="_wrap_FCVDiagGetLastFlag") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVDiagGetReturnFlagName(farg1) & +bind(C, name="_wrap_FCVDiagGetReturnFlagName") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +import :: swigarraywrapper +integer(C_LONG), intent(in) :: farg1 +type(SwigArrayWrapper) :: fresult +end function + +function swigc_FCVDiagB(farg1, farg2) & +bind(C, name="_wrap_FCVDiagB") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeSetLinearSolver(farg1, farg2, farg3) & +bind(C, name="_wrap_FCVodeSetLinearSolver") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeSetJacFn(farg1, farg2) & +bind(C, name="_wrap_FCVodeSetJacFn") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_FUNPTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeSetJacEvalFrequency(farg1, farg2) & +bind(C, name="_wrap_FCVodeSetJacEvalFrequency") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_LONG), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeSetLinearSolutionScaling(farg1, farg2) & +bind(C, name="_wrap_FCVodeSetLinearSolutionScaling") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeSetDeltaGammaMaxBadJac(farg1, farg2) & +bind(C, name="_wrap_FCVodeSetDeltaGammaMaxBadJac") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeSetEpsLin(farg1, farg2) & +bind(C, name="_wrap_FCVodeSetEpsLin") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeSetLSNormFactor(farg1, farg2) & +bind(C, name="_wrap_FCVodeSetLSNormFactor") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeSetPreconditioner(farg1, farg2, farg3) & +bind(C, name="_wrap_FCVodeSetPreconditioner") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_FUNPTR), value :: farg2 +type(C_FUNPTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeSetJacTimes(farg1, farg2, farg3) & +bind(C, name="_wrap_FCVodeSetJacTimes") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_FUNPTR), value :: farg2 +type(C_FUNPTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeSetLinSysFn(farg1, farg2) & +bind(C, name="_wrap_FCVodeSetLinSysFn") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_FUNPTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeGetJac(farg1, farg2) & +bind(C, name="_wrap_FCVodeGetJac") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeGetJacTime(farg1, farg2) & +bind(C, name="_wrap_FCVodeGetJacTime") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeGetJacNumSteps(farg1, farg2) & +bind(C, name="_wrap_FCVodeGetJacNumSteps") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeGetLinWorkSpace(farg1, farg2, farg3) & +bind(C, name="_wrap_FCVodeGetLinWorkSpace") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeGetNumJacEvals(farg1, farg2) & +bind(C, name="_wrap_FCVodeGetNumJacEvals") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeGetNumPrecEvals(farg1, farg2) & +bind(C, name="_wrap_FCVodeGetNumPrecEvals") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeGetNumPrecSolves(farg1, farg2) & +bind(C, name="_wrap_FCVodeGetNumPrecSolves") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeGetNumLinIters(farg1, farg2) & +bind(C, name="_wrap_FCVodeGetNumLinIters") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeGetNumLinConvFails(farg1, farg2) & +bind(C, name="_wrap_FCVodeGetNumLinConvFails") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeGetNumJTSetupEvals(farg1, farg2) & +bind(C, name="_wrap_FCVodeGetNumJTSetupEvals") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeGetNumJtimesEvals(farg1, farg2) & +bind(C, name="_wrap_FCVodeGetNumJtimesEvals") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeGetNumLinRhsEvals(farg1, farg2) & +bind(C, name="_wrap_FCVodeGetNumLinRhsEvals") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeGetLinSolveStats(farg1, farg2, farg3, farg4, farg5, farg6, farg7, farg8, farg9) & +bind(C, name="_wrap_FCVodeGetLinSolveStats") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +type(C_PTR), value :: farg4 +type(C_PTR), value :: farg5 +type(C_PTR), value :: farg6 +type(C_PTR), value :: farg7 +type(C_PTR), value :: farg8 +type(C_PTR), value :: farg9 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeGetLastLinFlag(farg1, farg2) & +bind(C, name="_wrap_FCVodeGetLastLinFlag") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeGetLinReturnFlagName(farg1) & +bind(C, name="_wrap_FCVodeGetLinReturnFlagName") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +import :: swigarraywrapper +integer(C_LONG), intent(in) :: farg1 +type(SwigArrayWrapper) :: fresult +end function + +function swigc_FCVodeSetLinearSolverB(farg1, farg2, farg3, farg4) & +bind(C, name="_wrap_FCVodeSetLinearSolverB") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +type(C_PTR), value :: farg3 +type(C_PTR), value :: farg4 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeSetJacFnB(farg1, farg2, farg3) & +bind(C, name="_wrap_FCVodeSetJacFnB") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +type(C_FUNPTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeSetJacFnBS(farg1, farg2, farg3) & +bind(C, name="_wrap_FCVodeSetJacFnBS") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +type(C_FUNPTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeSetEpsLinB(farg1, farg2, farg3) & +bind(C, name="_wrap_FCVodeSetEpsLinB") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +real(C_DOUBLE), intent(in) :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeSetLSNormFactorB(farg1, farg2, farg3) & +bind(C, name="_wrap_FCVodeSetLSNormFactorB") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +real(C_DOUBLE), intent(in) :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeSetLinearSolutionScalingB(farg1, farg2, farg3) & +bind(C, name="_wrap_FCVodeSetLinearSolutionScalingB") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT), intent(in) :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeSetPreconditionerB(farg1, farg2, farg3, farg4) & +bind(C, name="_wrap_FCVodeSetPreconditionerB") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +type(C_FUNPTR), value :: farg3 +type(C_FUNPTR), value :: farg4 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeSetPreconditionerBS(farg1, farg2, farg3, farg4) & +bind(C, name="_wrap_FCVodeSetPreconditionerBS") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +type(C_FUNPTR), value :: farg3 +type(C_FUNPTR), value :: farg4 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeSetJacTimesB(farg1, farg2, farg3, farg4) & +bind(C, name="_wrap_FCVodeSetJacTimesB") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +type(C_FUNPTR), value :: farg3 +type(C_FUNPTR), value :: farg4 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeSetJacTimesBS(farg1, farg2, farg3, farg4) & +bind(C, name="_wrap_FCVodeSetJacTimesBS") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +type(C_FUNPTR), value :: farg3 +type(C_FUNPTR), value :: farg4 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeSetLinSysFnB(farg1, farg2, farg3) & +bind(C, name="_wrap_FCVodeSetLinSysFnB") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +type(C_FUNPTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FCVodeSetLinSysFnBS(farg1, farg2, farg3) & +bind(C, name="_wrap_FCVodeSetLinSysFnBS") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +type(C_FUNPTR), value :: farg3 +integer(C_INT) :: fresult +end function + +end interface + + +contains + ! MODULE SUBPROGRAMS +function FCVodeCreate(lmm, sunctx) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +type(C_PTR) :: swig_result +integer(C_INT), intent(in) :: lmm +type(C_PTR) :: sunctx +type(C_PTR) :: fresult +integer(C_INT) :: farg1 +type(C_PTR) :: farg2 + +farg1 = lmm +farg2 = sunctx +fresult = swigc_FCVodeCreate(farg1, farg2) +swig_result = fresult +end function + +function FCVodeInit(cvode_mem, f, t0, y0) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +type(C_FUNPTR), intent(in), value :: f +real(C_DOUBLE), intent(in) :: t0 +type(N_Vector), target, intent(inout) :: y0 +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_FUNPTR) :: farg2 +real(C_DOUBLE) :: farg3 +type(C_PTR) :: farg4 + +farg1 = cvode_mem +farg2 = f +farg3 = t0 +farg4 = c_loc(y0) +fresult = swigc_FCVodeInit(farg1, farg2, farg3, farg4) +swig_result = fresult +end function + +function FCVodeReInit(cvode_mem, t0, y0) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +real(C_DOUBLE), intent(in) :: t0 +type(N_Vector), target, intent(inout) :: y0 +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 +type(C_PTR) :: farg3 + +farg1 = cvode_mem +farg2 = t0 +farg3 = c_loc(y0) +fresult = swigc_FCVodeReInit(farg1, farg2, farg3) +swig_result = fresult +end function + +function FCVodeSStolerances(cvode_mem, reltol, abstol) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +real(C_DOUBLE), intent(in) :: reltol +real(C_DOUBLE), intent(in) :: abstol +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 +real(C_DOUBLE) :: farg3 + +farg1 = cvode_mem +farg2 = reltol +farg3 = abstol +fresult = swigc_FCVodeSStolerances(farg1, farg2, farg3) +swig_result = fresult +end function + +function FCVodeSVtolerances(cvode_mem, reltol, abstol) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +real(C_DOUBLE), intent(in) :: reltol +type(N_Vector), target, intent(inout) :: abstol +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 +type(C_PTR) :: farg3 + +farg1 = cvode_mem +farg2 = reltol +farg3 = c_loc(abstol) +fresult = swigc_FCVodeSVtolerances(farg1, farg2, farg3) +swig_result = fresult +end function + +function FCVodeWFtolerances(cvode_mem, efun) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +type(C_FUNPTR), intent(in), value :: efun +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_FUNPTR) :: farg2 + +farg1 = cvode_mem +farg2 = efun +fresult = swigc_FCVodeWFtolerances(farg1, farg2) +swig_result = fresult +end function + +function FCVodeSetConstraints(cvode_mem, constraints) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +type(N_Vector), target, intent(inout) :: constraints +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = cvode_mem +farg2 = c_loc(constraints) +fresult = swigc_FCVodeSetConstraints(farg1, farg2) +swig_result = fresult +end function + +function FCVodeSetDeltaGammaMaxLSetup(cvode_mem, dgmax_lsetup) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +real(C_DOUBLE), intent(in) :: dgmax_lsetup +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 + +farg1 = cvode_mem +farg2 = dgmax_lsetup +fresult = swigc_FCVodeSetDeltaGammaMaxLSetup(farg1, farg2) +swig_result = fresult +end function + +function FCVodeSetInitStep(cvode_mem, hin) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +real(C_DOUBLE), intent(in) :: hin +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 + +farg1 = cvode_mem +farg2 = hin +fresult = swigc_FCVodeSetInitStep(farg1, farg2) +swig_result = fresult +end function + +function FCVodeSetLSetupFrequency(cvode_mem, msbp) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_LONG), intent(in) :: msbp +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_LONG) :: farg2 + +farg1 = cvode_mem +farg2 = msbp +fresult = swigc_FCVodeSetLSetupFrequency(farg1, farg2) +swig_result = fresult +end function + +function FCVodeSetMaxConvFails(cvode_mem, maxncf) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_INT), intent(in) :: maxncf +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = cvode_mem +farg2 = maxncf +fresult = swigc_FCVodeSetMaxConvFails(farg1, farg2) +swig_result = fresult +end function + +function FCVodeSetMaxErrTestFails(cvode_mem, maxnef) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_INT), intent(in) :: maxnef +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = cvode_mem +farg2 = maxnef +fresult = swigc_FCVodeSetMaxErrTestFails(farg1, farg2) +swig_result = fresult +end function + +function FCVodeSetMaxHnilWarns(cvode_mem, mxhnil) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_INT), intent(in) :: mxhnil +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = cvode_mem +farg2 = mxhnil +fresult = swigc_FCVodeSetMaxHnilWarns(farg1, farg2) +swig_result = fresult +end function + +function FCVodeSetMaxNonlinIters(cvode_mem, maxcor) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_INT), intent(in) :: maxcor +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = cvode_mem +farg2 = maxcor +fresult = swigc_FCVodeSetMaxNonlinIters(farg1, farg2) +swig_result = fresult +end function + +function FCVodeSetMaxNumSteps(cvode_mem, mxsteps) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_LONG), intent(in) :: mxsteps +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_LONG) :: farg2 + +farg1 = cvode_mem +farg2 = mxsteps +fresult = swigc_FCVodeSetMaxNumSteps(farg1, farg2) +swig_result = fresult +end function + +function FCVodeSetMaxOrd(cvode_mem, maxord) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_INT), intent(in) :: maxord +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = cvode_mem +farg2 = maxord +fresult = swigc_FCVodeSetMaxOrd(farg1, farg2) +swig_result = fresult +end function + +function FCVodeSetMaxStep(cvode_mem, hmax) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +real(C_DOUBLE), intent(in) :: hmax +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 + +farg1 = cvode_mem +farg2 = hmax +fresult = swigc_FCVodeSetMaxStep(farg1, farg2) +swig_result = fresult +end function + +function FCVodeSetMinStep(cvode_mem, hmin) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +real(C_DOUBLE), intent(in) :: hmin +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 + +farg1 = cvode_mem +farg2 = hmin +fresult = swigc_FCVodeSetMinStep(farg1, farg2) +swig_result = fresult +end function + +function FCVodeSetMonitorFn(cvode_mem, fn) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +type(C_FUNPTR), intent(in), value :: fn +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_FUNPTR) :: farg2 + +farg1 = cvode_mem +farg2 = fn +fresult = swigc_FCVodeSetMonitorFn(farg1, farg2) +swig_result = fresult +end function + +function FCVodeSetMonitorFrequency(cvode_mem, nst) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_LONG), intent(in) :: nst +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_LONG) :: farg2 + +farg1 = cvode_mem +farg2 = nst +fresult = swigc_FCVodeSetMonitorFrequency(farg1, farg2) +swig_result = fresult +end function + +function FCVodeSetNlsRhsFn(cvode_mem, f) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +type(C_FUNPTR), intent(in), value :: f +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_FUNPTR) :: farg2 + +farg1 = cvode_mem +farg2 = f +fresult = swigc_FCVodeSetNlsRhsFn(farg1, farg2) +swig_result = fresult +end function + +function FCVodeSetNonlinConvCoef(cvode_mem, nlscoef) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +real(C_DOUBLE), intent(in) :: nlscoef +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 + +farg1 = cvode_mem +farg2 = nlscoef +fresult = swigc_FCVodeSetNonlinConvCoef(farg1, farg2) +swig_result = fresult +end function + +function FCVodeSetNonlinearSolver(cvode_mem, nls) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +type(SUNNonlinearSolver), target, intent(inout) :: nls +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = cvode_mem +farg2 = c_loc(nls) +fresult = swigc_FCVodeSetNonlinearSolver(farg1, farg2) +swig_result = fresult +end function + +function FCVodeSetStabLimDet(cvode_mem, stldet) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_INT), intent(in) :: stldet +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = cvode_mem +farg2 = stldet +fresult = swigc_FCVodeSetStabLimDet(farg1, farg2) +swig_result = fresult +end function + +function FCVodeSetStopTime(cvode_mem, tstop) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +real(C_DOUBLE), intent(in) :: tstop +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 + +farg1 = cvode_mem +farg2 = tstop +fresult = swigc_FCVodeSetStopTime(farg1, farg2) +swig_result = fresult +end function + +function FCVodeSetInterpolateStopTime(cvode_mem, interp) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_INT), intent(in) :: interp +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = cvode_mem +farg2 = interp +fresult = swigc_FCVodeSetInterpolateStopTime(farg1, farg2) +swig_result = fresult +end function + +function FCVodeClearStopTime(cvode_mem) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_INT) :: fresult +type(C_PTR) :: farg1 + +farg1 = cvode_mem +fresult = swigc_FCVodeClearStopTime(farg1) +swig_result = fresult +end function + +function FCVodeSetUserData(cvode_mem, user_data) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +type(C_PTR) :: user_data +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = cvode_mem +farg2 = user_data +fresult = swigc_FCVodeSetUserData(farg1, farg2) +swig_result = fresult +end function + +function FCVodeSetEtaFixedStepBounds(cvode_mem, eta_min_fx, eta_max_fx) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +real(C_DOUBLE), intent(in) :: eta_min_fx +real(C_DOUBLE), intent(in) :: eta_max_fx +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 +real(C_DOUBLE) :: farg3 + +farg1 = cvode_mem +farg2 = eta_min_fx +farg3 = eta_max_fx +fresult = swigc_FCVodeSetEtaFixedStepBounds(farg1, farg2, farg3) +swig_result = fresult +end function + +function FCVodeSetEtaMaxFirstStep(cvode_mem, eta_max_fs) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +real(C_DOUBLE), intent(in) :: eta_max_fs +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 + +farg1 = cvode_mem +farg2 = eta_max_fs +fresult = swigc_FCVodeSetEtaMaxFirstStep(farg1, farg2) +swig_result = fresult +end function + +function FCVodeSetEtaMaxEarlyStep(cvode_mem, eta_max_es) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +real(C_DOUBLE), intent(in) :: eta_max_es +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 + +farg1 = cvode_mem +farg2 = eta_max_es +fresult = swigc_FCVodeSetEtaMaxEarlyStep(farg1, farg2) +swig_result = fresult +end function + +function FCVodeSetNumStepsEtaMaxEarlyStep(cvode_mem, small_nst) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_LONG), intent(in) :: small_nst +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_LONG) :: farg2 + +farg1 = cvode_mem +farg2 = small_nst +fresult = swigc_FCVodeSetNumStepsEtaMaxEarlyStep(farg1, farg2) +swig_result = fresult +end function + +function FCVodeSetEtaMax(cvode_mem, eta_max_gs) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +real(C_DOUBLE), intent(in) :: eta_max_gs +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 + +farg1 = cvode_mem +farg2 = eta_max_gs +fresult = swigc_FCVodeSetEtaMax(farg1, farg2) +swig_result = fresult +end function + +function FCVodeSetEtaMin(cvode_mem, eta_min) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +real(C_DOUBLE), intent(in) :: eta_min +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 + +farg1 = cvode_mem +farg2 = eta_min +fresult = swigc_FCVodeSetEtaMin(farg1, farg2) +swig_result = fresult +end function + +function FCVodeSetEtaMinErrFail(cvode_mem, eta_min_ef) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +real(C_DOUBLE), intent(in) :: eta_min_ef +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 + +farg1 = cvode_mem +farg2 = eta_min_ef +fresult = swigc_FCVodeSetEtaMinErrFail(farg1, farg2) +swig_result = fresult +end function + +function FCVodeSetEtaMaxErrFail(cvode_mem, eta_max_ef) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +real(C_DOUBLE), intent(in) :: eta_max_ef +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 + +farg1 = cvode_mem +farg2 = eta_max_ef +fresult = swigc_FCVodeSetEtaMaxErrFail(farg1, farg2) +swig_result = fresult +end function + +function FCVodeSetNumFailsEtaMaxErrFail(cvode_mem, small_nef) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_INT), intent(in) :: small_nef +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = cvode_mem +farg2 = small_nef +fresult = swigc_FCVodeSetNumFailsEtaMaxErrFail(farg1, farg2) +swig_result = fresult +end function + +function FCVodeSetEtaConvFail(cvode_mem, eta_cf) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +real(C_DOUBLE), intent(in) :: eta_cf +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 + +farg1 = cvode_mem +farg2 = eta_cf +fresult = swigc_FCVodeSetEtaConvFail(farg1, farg2) +swig_result = fresult +end function + +function FCVodeRootInit(cvode_mem, nrtfn, g) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_INT), intent(in) :: nrtfn +type(C_FUNPTR), intent(in), value :: g +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 +type(C_FUNPTR) :: farg3 + +farg1 = cvode_mem +farg2 = nrtfn +farg3 = g +fresult = swigc_FCVodeRootInit(farg1, farg2, farg3) +swig_result = fresult +end function + +function FCVodeSetRootDirection(cvode_mem, rootdir) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_INT), dimension(*), target, intent(inout) :: rootdir +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = cvode_mem +farg2 = c_loc(rootdir(1)) +fresult = swigc_FCVodeSetRootDirection(farg1, farg2) +swig_result = fresult +end function + +function FCVodeSetNoInactiveRootWarn(cvode_mem) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_INT) :: fresult +type(C_PTR) :: farg1 + +farg1 = cvode_mem +fresult = swigc_FCVodeSetNoInactiveRootWarn(farg1) +swig_result = fresult +end function + +function FCVode(cvode_mem, tout, yout, tret, itask) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +real(C_DOUBLE), intent(in) :: tout +type(N_Vector), target, intent(inout) :: yout +real(C_DOUBLE), dimension(*), target, intent(inout) :: tret +integer(C_INT), intent(in) :: itask +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 +type(C_PTR) :: farg3 +type(C_PTR) :: farg4 +integer(C_INT) :: farg5 + +farg1 = cvode_mem +farg2 = tout +farg3 = c_loc(yout) +farg4 = c_loc(tret(1)) +farg5 = itask +fresult = swigc_FCVode(farg1, farg2, farg3, farg4, farg5) +swig_result = fresult +end function + +function FCVodeComputeState(cvode_mem, ycor, y) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +type(N_Vector), target, intent(inout) :: ycor +type(N_Vector), target, intent(inout) :: y +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = cvode_mem +farg2 = c_loc(ycor) +farg3 = c_loc(y) +fresult = swigc_FCVodeComputeState(farg1, farg2, farg3) +swig_result = fresult +end function + +function FCVodeComputeStateSens(cvode_mem, yscor, ys) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +type(C_PTR) :: yscor +type(C_PTR) :: ys +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = cvode_mem +farg2 = yscor +farg3 = ys +fresult = swigc_FCVodeComputeStateSens(farg1, farg2, farg3) +swig_result = fresult +end function + +function FCVodeComputeStateSens1(cvode_mem, idx, yscor1, ys1) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_INT), intent(in) :: idx +type(N_Vector), target, intent(inout) :: yscor1 +type(N_Vector), target, intent(inout) :: ys1 +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 +type(C_PTR) :: farg3 +type(C_PTR) :: farg4 + +farg1 = cvode_mem +farg2 = idx +farg3 = c_loc(yscor1) +farg4 = c_loc(ys1) +fresult = swigc_FCVodeComputeStateSens1(farg1, farg2, farg3, farg4) +swig_result = fresult +end function + +function FCVodeGetDky(cvode_mem, t, k, dky) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +real(C_DOUBLE), intent(in) :: t +integer(C_INT), intent(in) :: k +type(N_Vector), target, intent(inout) :: dky +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 +integer(C_INT) :: farg3 +type(C_PTR) :: farg4 + +farg1 = cvode_mem +farg2 = t +farg3 = k +farg4 = c_loc(dky) +fresult = swigc_FCVodeGetDky(farg1, farg2, farg3, farg4) +swig_result = fresult +end function + +function FCVodeGetWorkSpace(cvode_mem, lenrw, leniw) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: lenrw +integer(C_LONG), dimension(*), target, intent(inout) :: leniw +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = cvode_mem +farg2 = c_loc(lenrw(1)) +farg3 = c_loc(leniw(1)) +fresult = swigc_FCVodeGetWorkSpace(farg1, farg2, farg3) +swig_result = fresult +end function + +function FCVodeGetNumSteps(cvode_mem, nsteps) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: nsteps +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = cvode_mem +farg2 = c_loc(nsteps(1)) +fresult = swigc_FCVodeGetNumSteps(farg1, farg2) +swig_result = fresult +end function + +function FCVodeGetNumRhsEvals(cvode_mem, nfevals) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: nfevals +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = cvode_mem +farg2 = c_loc(nfevals(1)) +fresult = swigc_FCVodeGetNumRhsEvals(farg1, farg2) +swig_result = fresult +end function + +function FCVodeGetNumLinSolvSetups(cvode_mem, nlinsetups) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: nlinsetups +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = cvode_mem +farg2 = c_loc(nlinsetups(1)) +fresult = swigc_FCVodeGetNumLinSolvSetups(farg1, farg2) +swig_result = fresult +end function + +function FCVodeGetNumErrTestFails(cvode_mem, netfails) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: netfails +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = cvode_mem +farg2 = c_loc(netfails(1)) +fresult = swigc_FCVodeGetNumErrTestFails(farg1, farg2) +swig_result = fresult +end function + +function FCVodeGetLastOrder(cvode_mem, qlast) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_INT), dimension(*), target, intent(inout) :: qlast +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = cvode_mem +farg2 = c_loc(qlast(1)) +fresult = swigc_FCVodeGetLastOrder(farg1, farg2) +swig_result = fresult +end function + +function FCVodeGetCurrentOrder(cvode_mem, qcur) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_INT), dimension(*), target, intent(inout) :: qcur +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = cvode_mem +farg2 = c_loc(qcur(1)) +fresult = swigc_FCVodeGetCurrentOrder(farg1, farg2) +swig_result = fresult +end function + +function FCVodeGetCurrentGamma(cvode_mem, gamma) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +real(C_DOUBLE), dimension(*), target, intent(inout) :: gamma +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = cvode_mem +farg2 = c_loc(gamma(1)) +fresult = swigc_FCVodeGetCurrentGamma(farg1, farg2) +swig_result = fresult +end function + +function FCVodeGetNumStabLimOrderReds(cvode_mem, nslred) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: nslred +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = cvode_mem +farg2 = c_loc(nslred(1)) +fresult = swigc_FCVodeGetNumStabLimOrderReds(farg1, farg2) +swig_result = fresult +end function + +function FCVodeGetActualInitStep(cvode_mem, hinused) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +real(C_DOUBLE), dimension(*), target, intent(inout) :: hinused +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = cvode_mem +farg2 = c_loc(hinused(1)) +fresult = swigc_FCVodeGetActualInitStep(farg1, farg2) +swig_result = fresult +end function + +function FCVodeGetLastStep(cvode_mem, hlast) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +real(C_DOUBLE), dimension(*), target, intent(inout) :: hlast +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = cvode_mem +farg2 = c_loc(hlast(1)) +fresult = swigc_FCVodeGetLastStep(farg1, farg2) +swig_result = fresult +end function + +function FCVodeGetCurrentStep(cvode_mem, hcur) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +real(C_DOUBLE), dimension(*), target, intent(inout) :: hcur +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = cvode_mem +farg2 = c_loc(hcur(1)) +fresult = swigc_FCVodeGetCurrentStep(farg1, farg2) +swig_result = fresult +end function + +function FCVodeGetCurrentState(cvode_mem, y) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +type(C_PTR) :: y +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = cvode_mem +farg2 = y +fresult = swigc_FCVodeGetCurrentState(farg1, farg2) +swig_result = fresult +end function + +function FCVodeGetCurrentStateSens(cvode_mem, ys) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +type(C_PTR), target, intent(inout) :: ys +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = cvode_mem +farg2 = c_loc(ys) +fresult = swigc_FCVodeGetCurrentStateSens(farg1, farg2) +swig_result = fresult +end function + +function FCVodeGetCurrentSensSolveIndex(cvode_mem, index) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_INT), dimension(*), target, intent(inout) :: index +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = cvode_mem +farg2 = c_loc(index(1)) +fresult = swigc_FCVodeGetCurrentSensSolveIndex(farg1, farg2) +swig_result = fresult +end function + +function FCVodeGetCurrentTime(cvode_mem, tcur) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +real(C_DOUBLE), dimension(*), target, intent(inout) :: tcur +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = cvode_mem +farg2 = c_loc(tcur(1)) +fresult = swigc_FCVodeGetCurrentTime(farg1, farg2) +swig_result = fresult +end function + +function FCVodeGetTolScaleFactor(cvode_mem, tolsfac) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +real(C_DOUBLE), dimension(*), target, intent(inout) :: tolsfac +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = cvode_mem +farg2 = c_loc(tolsfac(1)) +fresult = swigc_FCVodeGetTolScaleFactor(farg1, farg2) +swig_result = fresult +end function + +function FCVodeGetErrWeights(cvode_mem, eweight) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +type(N_Vector), target, intent(inout) :: eweight +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = cvode_mem +farg2 = c_loc(eweight) +fresult = swigc_FCVodeGetErrWeights(farg1, farg2) +swig_result = fresult +end function + +function FCVodeGetEstLocalErrors(cvode_mem, ele) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +type(N_Vector), target, intent(inout) :: ele +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = cvode_mem +farg2 = c_loc(ele) +fresult = swigc_FCVodeGetEstLocalErrors(farg1, farg2) +swig_result = fresult +end function + +function FCVodeGetNumGEvals(cvode_mem, ngevals) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: ngevals +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = cvode_mem +farg2 = c_loc(ngevals(1)) +fresult = swigc_FCVodeGetNumGEvals(farg1, farg2) +swig_result = fresult +end function + +function FCVodeGetRootInfo(cvode_mem, rootsfound) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_INT), dimension(*), target, intent(inout) :: rootsfound +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = cvode_mem +farg2 = c_loc(rootsfound(1)) +fresult = swigc_FCVodeGetRootInfo(farg1, farg2) +swig_result = fresult +end function + +function FCVodeGetIntegratorStats(cvode_mem, nsteps, nfevals, nlinsetups, netfails, qlast, qcur, hinused, hlast, hcur, tcur) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: nsteps +integer(C_LONG), dimension(*), target, intent(inout) :: nfevals +integer(C_LONG), dimension(*), target, intent(inout) :: nlinsetups +integer(C_LONG), dimension(*), target, intent(inout) :: netfails +integer(C_INT), dimension(*), target, intent(inout) :: qlast +integer(C_INT), dimension(*), target, intent(inout) :: qcur +real(C_DOUBLE), dimension(*), target, intent(inout) :: hinused +real(C_DOUBLE), dimension(*), target, intent(inout) :: hlast +real(C_DOUBLE), dimension(*), target, intent(inout) :: hcur +real(C_DOUBLE), dimension(*), target, intent(inout) :: tcur +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 +type(C_PTR) :: farg4 +type(C_PTR) :: farg5 +type(C_PTR) :: farg6 +type(C_PTR) :: farg7 +type(C_PTR) :: farg8 +type(C_PTR) :: farg9 +type(C_PTR) :: farg10 +type(C_PTR) :: farg11 + +farg1 = cvode_mem +farg2 = c_loc(nsteps(1)) +farg3 = c_loc(nfevals(1)) +farg4 = c_loc(nlinsetups(1)) +farg5 = c_loc(netfails(1)) +farg6 = c_loc(qlast(1)) +farg7 = c_loc(qcur(1)) +farg8 = c_loc(hinused(1)) +farg9 = c_loc(hlast(1)) +farg10 = c_loc(hcur(1)) +farg11 = c_loc(tcur(1)) +fresult = swigc_FCVodeGetIntegratorStats(farg1, farg2, farg3, farg4, farg5, farg6, farg7, farg8, farg9, farg10, farg11) +swig_result = fresult +end function + +function FCVodeGetNonlinearSystemData(cvode_mem, tcur, ypred, yn, fn, gamma, rl1, zn1, user_data) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +real(C_DOUBLE), dimension(*), target, intent(inout) :: tcur +type(C_PTR) :: ypred +type(C_PTR) :: yn +type(C_PTR) :: fn +real(C_DOUBLE), dimension(*), target, intent(inout) :: gamma +real(C_DOUBLE), dimension(*), target, intent(inout) :: rl1 +type(C_PTR) :: zn1 +type(C_PTR), target, intent(inout) :: user_data +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 +type(C_PTR) :: farg4 +type(C_PTR) :: farg5 +type(C_PTR) :: farg6 +type(C_PTR) :: farg7 +type(C_PTR) :: farg8 +type(C_PTR) :: farg9 + +farg1 = cvode_mem +farg2 = c_loc(tcur(1)) +farg3 = ypred +farg4 = yn +farg5 = fn +farg6 = c_loc(gamma(1)) +farg7 = c_loc(rl1(1)) +farg8 = zn1 +farg9 = c_loc(user_data) +fresult = swigc_FCVodeGetNonlinearSystemData(farg1, farg2, farg3, farg4, farg5, farg6, farg7, farg8, farg9) +swig_result = fresult +end function + +function FCVodeGetNonlinearSystemDataSens(cvode_mem, tcur, yspred, ysn, gamma, rl1, zn1, user_data) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +real(C_DOUBLE), dimension(*), target, intent(inout) :: tcur +type(C_PTR), target, intent(inout) :: yspred +type(C_PTR), target, intent(inout) :: ysn +real(C_DOUBLE), dimension(*), target, intent(inout) :: gamma +real(C_DOUBLE), dimension(*), target, intent(inout) :: rl1 +type(C_PTR), target, intent(inout) :: zn1 +type(C_PTR), target, intent(inout) :: user_data +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 +type(C_PTR) :: farg4 +type(C_PTR) :: farg5 +type(C_PTR) :: farg6 +type(C_PTR) :: farg7 +type(C_PTR) :: farg8 + +farg1 = cvode_mem +farg2 = c_loc(tcur(1)) +farg3 = c_loc(yspred) +farg4 = c_loc(ysn) +farg5 = c_loc(gamma(1)) +farg6 = c_loc(rl1(1)) +farg7 = c_loc(zn1) +farg8 = c_loc(user_data) +fresult = swigc_FCVodeGetNonlinearSystemDataSens(farg1, farg2, farg3, farg4, farg5, farg6, farg7, farg8) +swig_result = fresult +end function + +function FCVodeGetNumNonlinSolvIters(cvode_mem, nniters) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: nniters +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = cvode_mem +farg2 = c_loc(nniters(1)) +fresult = swigc_FCVodeGetNumNonlinSolvIters(farg1, farg2) +swig_result = fresult +end function + +function FCVodeGetNumNonlinSolvConvFails(cvode_mem, nnfails) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: nnfails +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = cvode_mem +farg2 = c_loc(nnfails(1)) +fresult = swigc_FCVodeGetNumNonlinSolvConvFails(farg1, farg2) +swig_result = fresult +end function + +function FCVodeGetNonlinSolvStats(cvode_mem, nniters, nnfails) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: nniters +integer(C_LONG), dimension(*), target, intent(inout) :: nnfails +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = cvode_mem +farg2 = c_loc(nniters(1)) +farg3 = c_loc(nnfails(1)) +fresult = swigc_FCVodeGetNonlinSolvStats(farg1, farg2, farg3) +swig_result = fresult +end function + +function FCVodeGetNumStepSolveFails(cvode_mem, nncfails) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: nncfails +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = cvode_mem +farg2 = c_loc(nncfails(1)) +fresult = swigc_FCVodeGetNumStepSolveFails(farg1, farg2) +swig_result = fresult +end function + +function FCVodeGetUserData(cvode_mem, user_data) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +type(C_PTR), target, intent(inout) :: user_data +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = cvode_mem +farg2 = c_loc(user_data) +fresult = swigc_FCVodeGetUserData(farg1, farg2) +swig_result = fresult +end function + +function FCVodePrintAllStats(cvode_mem, outfile, fmt) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +type(C_PTR) :: outfile +integer(SUNOutputFormat), intent(in) :: fmt +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +integer(C_INT) :: farg3 + +farg1 = cvode_mem +farg2 = outfile +farg3 = fmt +fresult = swigc_FCVodePrintAllStats(farg1, farg2, farg3) +swig_result = fresult +end function + + +subroutine SWIG_chararray_to_string(wrap, string) + use, intrinsic :: ISO_C_BINDING + type(SwigArrayWrapper), intent(IN) :: wrap + character(kind=C_CHAR, len=:), allocatable, intent(OUT) :: string + character(kind=C_CHAR), dimension(:), pointer :: chars + integer(kind=C_SIZE_T) :: i + call c_f_pointer(wrap%data, chars, [wrap%size]) + allocate(character(kind=C_CHAR, len=wrap%size) :: string) + do i=1, wrap%size + string(i:i) = chars(i) + end do +end subroutine + +function FCVodeGetReturnFlagName(flag) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +character(kind=C_CHAR, len=:), allocatable :: swig_result +integer(C_LONG), intent(in) :: flag +type(SwigArrayWrapper) :: fresult +integer(C_LONG) :: farg1 + +farg1 = flag +fresult = swigc_FCVodeGetReturnFlagName(farg1) +call SWIG_chararray_to_string(fresult, swig_result) +if (.false.) call SWIG_free(fresult%data) +end function + +subroutine FCVodeFree(cvode_mem) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), target, intent(inout) :: cvode_mem +type(C_PTR) :: farg1 + +farg1 = c_loc(cvode_mem) +call swigc_FCVodeFree(farg1) +end subroutine + +function FCVodeSetJacTimesRhsFn(cvode_mem, jtimesrhsfn) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +type(C_FUNPTR), intent(in), value :: jtimesrhsfn +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_FUNPTR) :: farg2 + +farg1 = cvode_mem +farg2 = jtimesrhsfn +fresult = swigc_FCVodeSetJacTimesRhsFn(farg1, farg2) +swig_result = fresult +end function + +function FCVodeQuadInit(cvode_mem, fq, yq0) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +type(C_FUNPTR), intent(in), value :: fq +type(N_Vector), target, intent(inout) :: yq0 +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_FUNPTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = cvode_mem +farg2 = fq +farg3 = c_loc(yq0) +fresult = swigc_FCVodeQuadInit(farg1, farg2, farg3) +swig_result = fresult +end function + +function FCVodeQuadReInit(cvode_mem, yq0) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +type(N_Vector), target, intent(inout) :: yq0 +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = cvode_mem +farg2 = c_loc(yq0) +fresult = swigc_FCVodeQuadReInit(farg1, farg2) +swig_result = fresult +end function + +function FCVodeQuadSStolerances(cvode_mem, reltolq, abstolq) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +real(C_DOUBLE), intent(in) :: reltolq +real(C_DOUBLE), intent(in) :: abstolq +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 +real(C_DOUBLE) :: farg3 + +farg1 = cvode_mem +farg2 = reltolq +farg3 = abstolq +fresult = swigc_FCVodeQuadSStolerances(farg1, farg2, farg3) +swig_result = fresult +end function + +function FCVodeQuadSVtolerances(cvode_mem, reltolq, abstolq) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +real(C_DOUBLE), intent(in) :: reltolq +type(N_Vector), target, intent(inout) :: abstolq +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 +type(C_PTR) :: farg3 + +farg1 = cvode_mem +farg2 = reltolq +farg3 = c_loc(abstolq) +fresult = swigc_FCVodeQuadSVtolerances(farg1, farg2, farg3) +swig_result = fresult +end function + +function FCVodeSetQuadErrCon(cvode_mem, errconq) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_INT), intent(in) :: errconq +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = cvode_mem +farg2 = errconq +fresult = swigc_FCVodeSetQuadErrCon(farg1, farg2) +swig_result = fresult +end function + +function FCVodeGetQuad(cvode_mem, tret, yqout) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +real(C_DOUBLE), dimension(*), target, intent(inout) :: tret +type(N_Vector), target, intent(inout) :: yqout +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = cvode_mem +farg2 = c_loc(tret(1)) +farg3 = c_loc(yqout) +fresult = swigc_FCVodeGetQuad(farg1, farg2, farg3) +swig_result = fresult +end function + +function FCVodeGetQuadDky(cvode_mem, t, k, dky) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +real(C_DOUBLE), intent(in) :: t +integer(C_INT), intent(in) :: k +type(N_Vector), target, intent(inout) :: dky +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 +integer(C_INT) :: farg3 +type(C_PTR) :: farg4 + +farg1 = cvode_mem +farg2 = t +farg3 = k +farg4 = c_loc(dky) +fresult = swigc_FCVodeGetQuadDky(farg1, farg2, farg3, farg4) +swig_result = fresult +end function + +function FCVodeGetQuadNumRhsEvals(cvode_mem, nfqevals) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: nfqevals +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = cvode_mem +farg2 = c_loc(nfqevals(1)) +fresult = swigc_FCVodeGetQuadNumRhsEvals(farg1, farg2) +swig_result = fresult +end function + +function FCVodeGetQuadNumErrTestFails(cvode_mem, nqetfails) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: nqetfails +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = cvode_mem +farg2 = c_loc(nqetfails(1)) +fresult = swigc_FCVodeGetQuadNumErrTestFails(farg1, farg2) +swig_result = fresult +end function + +function FCVodeGetQuadErrWeights(cvode_mem, eqweight) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +type(N_Vector), target, intent(inout) :: eqweight +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = cvode_mem +farg2 = c_loc(eqweight) +fresult = swigc_FCVodeGetQuadErrWeights(farg1, farg2) +swig_result = fresult +end function + +function FCVodeGetQuadStats(cvode_mem, nfqevals, nqetfails) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: nfqevals +integer(C_LONG), dimension(*), target, intent(inout) :: nqetfails +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = cvode_mem +farg2 = c_loc(nfqevals(1)) +farg3 = c_loc(nqetfails(1)) +fresult = swigc_FCVodeGetQuadStats(farg1, farg2, farg3) +swig_result = fresult +end function + +subroutine FCVodeQuadFree(cvode_mem) +use, intrinsic :: ISO_C_BINDING +type(C_PTR) :: cvode_mem +type(C_PTR) :: farg1 + +farg1 = cvode_mem +call swigc_FCVodeQuadFree(farg1) +end subroutine + +function FCVodeSensInit(cvode_mem, ns, ism, fs, ys0) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_INT), intent(in) :: ns +integer(C_INT), intent(in) :: ism +type(C_FUNPTR), intent(in), value :: fs +type(C_PTR) :: ys0 +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 +integer(C_INT) :: farg3 +type(C_FUNPTR) :: farg4 +type(C_PTR) :: farg5 + +farg1 = cvode_mem +farg2 = ns +farg3 = ism +farg4 = fs +farg5 = ys0 +fresult = swigc_FCVodeSensInit(farg1, farg2, farg3, farg4, farg5) +swig_result = fresult +end function + +function FCVodeSensInit1(cvode_mem, ns, ism, fs1, ys0) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_INT), intent(in) :: ns +integer(C_INT), intent(in) :: ism +type(C_FUNPTR), intent(in), value :: fs1 +type(C_PTR) :: ys0 +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 +integer(C_INT) :: farg3 +type(C_FUNPTR) :: farg4 +type(C_PTR) :: farg5 + +farg1 = cvode_mem +farg2 = ns +farg3 = ism +farg4 = fs1 +farg5 = ys0 +fresult = swigc_FCVodeSensInit1(farg1, farg2, farg3, farg4, farg5) +swig_result = fresult +end function + +function FCVodeSensReInit(cvode_mem, ism, ys0) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_INT), intent(in) :: ism +type(C_PTR) :: ys0 +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 +type(C_PTR) :: farg3 + +farg1 = cvode_mem +farg2 = ism +farg3 = ys0 +fresult = swigc_FCVodeSensReInit(farg1, farg2, farg3) +swig_result = fresult +end function + +function FCVodeSensSStolerances(cvode_mem, reltols, abstols) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +real(C_DOUBLE), intent(in) :: reltols +real(C_DOUBLE), dimension(*), target, intent(inout) :: abstols +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 +type(C_PTR) :: farg3 + +farg1 = cvode_mem +farg2 = reltols +farg3 = c_loc(abstols(1)) +fresult = swigc_FCVodeSensSStolerances(farg1, farg2, farg3) +swig_result = fresult +end function + +function FCVodeSensSVtolerances(cvode_mem, reltols, abstols) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +real(C_DOUBLE), intent(in) :: reltols +type(C_PTR) :: abstols +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 +type(C_PTR) :: farg3 + +farg1 = cvode_mem +farg2 = reltols +farg3 = abstols +fresult = swigc_FCVodeSensSVtolerances(farg1, farg2, farg3) +swig_result = fresult +end function + +function FCVodeSensEEtolerances(cvode_mem) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_INT) :: fresult +type(C_PTR) :: farg1 + +farg1 = cvode_mem +fresult = swigc_FCVodeSensEEtolerances(farg1) +swig_result = fresult +end function + +function FCVodeSetSensDQMethod(cvode_mem, dqtype, dqrhomax) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_INT), intent(in) :: dqtype +real(C_DOUBLE), intent(in) :: dqrhomax +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 +real(C_DOUBLE) :: farg3 + +farg1 = cvode_mem +farg2 = dqtype +farg3 = dqrhomax +fresult = swigc_FCVodeSetSensDQMethod(farg1, farg2, farg3) +swig_result = fresult +end function + +function FCVodeSetSensErrCon(cvode_mem, errcons) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_INT), intent(in) :: errcons +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = cvode_mem +farg2 = errcons +fresult = swigc_FCVodeSetSensErrCon(farg1, farg2) +swig_result = fresult +end function + +function FCVodeSetSensMaxNonlinIters(cvode_mem, maxcors) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_INT), intent(in) :: maxcors +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = cvode_mem +farg2 = maxcors +fresult = swigc_FCVodeSetSensMaxNonlinIters(farg1, farg2) +swig_result = fresult +end function + +function FCVodeSetSensParams(cvode_mem, p, pbar, plist) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +real(C_DOUBLE), dimension(*), target, intent(inout) :: p +real(C_DOUBLE), dimension(*), target, intent(inout) :: pbar +integer(C_INT), dimension(*), target, intent(inout) :: plist +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 +type(C_PTR) :: farg4 + +farg1 = cvode_mem +farg2 = c_loc(p(1)) +farg3 = c_loc(pbar(1)) +farg4 = c_loc(plist(1)) +fresult = swigc_FCVodeSetSensParams(farg1, farg2, farg3, farg4) +swig_result = fresult +end function + +function FCVodeSetNonlinearSolverSensSim(cvode_mem, nls) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +type(SUNNonlinearSolver), target, intent(inout) :: nls +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = cvode_mem +farg2 = c_loc(nls) +fresult = swigc_FCVodeSetNonlinearSolverSensSim(farg1, farg2) +swig_result = fresult +end function + +function FCVodeSetNonlinearSolverSensStg(cvode_mem, nls) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +type(SUNNonlinearSolver), target, intent(inout) :: nls +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = cvode_mem +farg2 = c_loc(nls) +fresult = swigc_FCVodeSetNonlinearSolverSensStg(farg1, farg2) +swig_result = fresult +end function + +function FCVodeSetNonlinearSolverSensStg1(cvode_mem, nls) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +type(SUNNonlinearSolver), target, intent(inout) :: nls +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = cvode_mem +farg2 = c_loc(nls) +fresult = swigc_FCVodeSetNonlinearSolverSensStg1(farg1, farg2) +swig_result = fresult +end function + +function FCVodeSensToggleOff(cvode_mem) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_INT) :: fresult +type(C_PTR) :: farg1 + +farg1 = cvode_mem +fresult = swigc_FCVodeSensToggleOff(farg1) +swig_result = fresult +end function + +function FCVodeGetSens(cvode_mem, tret, ysout) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +real(C_DOUBLE), dimension(*), target, intent(inout) :: tret +type(C_PTR) :: ysout +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = cvode_mem +farg2 = c_loc(tret(1)) +farg3 = ysout +fresult = swigc_FCVodeGetSens(farg1, farg2, farg3) +swig_result = fresult +end function + +function FCVodeGetSens1(cvode_mem, tret, is, ysout) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +real(C_DOUBLE), dimension(*), target, intent(inout) :: tret +integer(C_INT), intent(in) :: is +type(N_Vector), target, intent(inout) :: ysout +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +integer(C_INT) :: farg3 +type(C_PTR) :: farg4 + +farg1 = cvode_mem +farg2 = c_loc(tret(1)) +farg3 = is +farg4 = c_loc(ysout) +fresult = swigc_FCVodeGetSens1(farg1, farg2, farg3, farg4) +swig_result = fresult +end function + +function FCVodeGetSensDky(cvode_mem, t, k, dkya) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +real(C_DOUBLE), intent(in) :: t +integer(C_INT), intent(in) :: k +type(C_PTR) :: dkya +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 +integer(C_INT) :: farg3 +type(C_PTR) :: farg4 + +farg1 = cvode_mem +farg2 = t +farg3 = k +farg4 = dkya +fresult = swigc_FCVodeGetSensDky(farg1, farg2, farg3, farg4) +swig_result = fresult +end function + +function FCVodeGetSensDky1(cvode_mem, t, k, is, dky) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +real(C_DOUBLE), intent(in) :: t +integer(C_INT), intent(in) :: k +integer(C_INT), intent(in) :: is +type(N_Vector), target, intent(inout) :: dky +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 +integer(C_INT) :: farg3 +integer(C_INT) :: farg4 +type(C_PTR) :: farg5 + +farg1 = cvode_mem +farg2 = t +farg3 = k +farg4 = is +farg5 = c_loc(dky) +fresult = swigc_FCVodeGetSensDky1(farg1, farg2, farg3, farg4, farg5) +swig_result = fresult +end function + +function FCVodeGetSensNumRhsEvals(cvode_mem, nfsevals) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: nfsevals +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = cvode_mem +farg2 = c_loc(nfsevals(1)) +fresult = swigc_FCVodeGetSensNumRhsEvals(farg1, farg2) +swig_result = fresult +end function + +function FCVodeGetNumRhsEvalsSens(cvode_mem, nfevalss) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: nfevalss +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = cvode_mem +farg2 = c_loc(nfevalss(1)) +fresult = swigc_FCVodeGetNumRhsEvalsSens(farg1, farg2) +swig_result = fresult +end function + +function FCVodeGetSensNumErrTestFails(cvode_mem, nsetfails) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: nsetfails +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = cvode_mem +farg2 = c_loc(nsetfails(1)) +fresult = swigc_FCVodeGetSensNumErrTestFails(farg1, farg2) +swig_result = fresult +end function + +function FCVodeGetSensNumLinSolvSetups(cvode_mem, nlinsetupss) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: nlinsetupss +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = cvode_mem +farg2 = c_loc(nlinsetupss(1)) +fresult = swigc_FCVodeGetSensNumLinSolvSetups(farg1, farg2) +swig_result = fresult +end function + +function FCVodeGetSensErrWeights(cvode_mem, esweight) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +type(C_PTR) :: esweight +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = cvode_mem +farg2 = esweight +fresult = swigc_FCVodeGetSensErrWeights(farg1, farg2) +swig_result = fresult +end function + +function FCVodeGetSensStats(cvode_mem, nfsevals, nfevalss, nsetfails, nlinsetupss) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: nfsevals +integer(C_LONG), dimension(*), target, intent(inout) :: nfevalss +integer(C_LONG), dimension(*), target, intent(inout) :: nsetfails +integer(C_LONG), dimension(*), target, intent(inout) :: nlinsetupss +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 +type(C_PTR) :: farg4 +type(C_PTR) :: farg5 + +farg1 = cvode_mem +farg2 = c_loc(nfsevals(1)) +farg3 = c_loc(nfevalss(1)) +farg4 = c_loc(nsetfails(1)) +farg5 = c_loc(nlinsetupss(1)) +fresult = swigc_FCVodeGetSensStats(farg1, farg2, farg3, farg4, farg5) +swig_result = fresult +end function + +function FCVodeGetSensNumNonlinSolvIters(cvode_mem, nsniters) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: nsniters +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = cvode_mem +farg2 = c_loc(nsniters(1)) +fresult = swigc_FCVodeGetSensNumNonlinSolvIters(farg1, farg2) +swig_result = fresult +end function + +function FCVodeGetSensNumNonlinSolvConvFails(cvode_mem, nsnfails) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: nsnfails +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = cvode_mem +farg2 = c_loc(nsnfails(1)) +fresult = swigc_FCVodeGetSensNumNonlinSolvConvFails(farg1, farg2) +swig_result = fresult +end function + +function FCVodeGetSensNonlinSolvStats(cvode_mem, nsniters, nsnfails) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: nsniters +integer(C_LONG), dimension(*), target, intent(inout) :: nsnfails +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = cvode_mem +farg2 = c_loc(nsniters(1)) +farg3 = c_loc(nsnfails(1)) +fresult = swigc_FCVodeGetSensNonlinSolvStats(farg1, farg2, farg3) +swig_result = fresult +end function + +function FCVodeGetNumStepSensSolveFails(cvode_mem, nsncfails) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: nsncfails +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = cvode_mem +farg2 = c_loc(nsncfails(1)) +fresult = swigc_FCVodeGetNumStepSensSolveFails(farg1, farg2) +swig_result = fresult +end function + +function FCVodeGetStgrSensNumNonlinSolvIters(cvode_mem, nstgr1niters) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: nstgr1niters +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = cvode_mem +farg2 = c_loc(nstgr1niters(1)) +fresult = swigc_FCVodeGetStgrSensNumNonlinSolvIters(farg1, farg2) +swig_result = fresult +end function + +function FCVodeGetStgrSensNumNonlinSolvConvFails(cvode_mem, nstgr1nfails) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: nstgr1nfails +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = cvode_mem +farg2 = c_loc(nstgr1nfails(1)) +fresult = swigc_FCVodeGetStgrSensNumNonlinSolvConvFails(farg1, farg2) +swig_result = fresult +end function + +function FCVodeGetStgrSensNonlinSolvStats(cvode_mem, nstgr1niters, nstgr1nfails) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: nstgr1niters +integer(C_LONG), dimension(*), target, intent(inout) :: nstgr1nfails +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = cvode_mem +farg2 = c_loc(nstgr1niters(1)) +farg3 = c_loc(nstgr1nfails(1)) +fresult = swigc_FCVodeGetStgrSensNonlinSolvStats(farg1, farg2, farg3) +swig_result = fresult +end function + +function FCVodeGetNumStepStgrSensSolveFails(cvode_mem, nstgr1ncfails) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: nstgr1ncfails +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = cvode_mem +farg2 = c_loc(nstgr1ncfails(1)) +fresult = swigc_FCVodeGetNumStepStgrSensSolveFails(farg1, farg2) +swig_result = fresult +end function + +subroutine FCVodeSensFree(cvode_mem) +use, intrinsic :: ISO_C_BINDING +type(C_PTR) :: cvode_mem +type(C_PTR) :: farg1 + +farg1 = cvode_mem +call swigc_FCVodeSensFree(farg1) +end subroutine + +function FCVodeQuadSensInit(cvode_mem, fqs, yqs0) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +type(C_FUNPTR), intent(in), value :: fqs +type(C_PTR) :: yqs0 +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_FUNPTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = cvode_mem +farg2 = fqs +farg3 = yqs0 +fresult = swigc_FCVodeQuadSensInit(farg1, farg2, farg3) +swig_result = fresult +end function + +function FCVodeQuadSensReInit(cvode_mem, yqs0) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +type(C_PTR) :: yqs0 +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = cvode_mem +farg2 = yqs0 +fresult = swigc_FCVodeQuadSensReInit(farg1, farg2) +swig_result = fresult +end function + +function FCVodeQuadSensSStolerances(cvode_mem, reltolqs, abstolqs) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +real(C_DOUBLE), intent(in) :: reltolqs +real(C_DOUBLE), dimension(*), target, intent(inout) :: abstolqs +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 +type(C_PTR) :: farg3 + +farg1 = cvode_mem +farg2 = reltolqs +farg3 = c_loc(abstolqs(1)) +fresult = swigc_FCVodeQuadSensSStolerances(farg1, farg2, farg3) +swig_result = fresult +end function + +function FCVodeQuadSensSVtolerances(cvode_mem, reltolqs, abstolqs) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +real(C_DOUBLE), intent(in) :: reltolqs +type(C_PTR) :: abstolqs +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 +type(C_PTR) :: farg3 + +farg1 = cvode_mem +farg2 = reltolqs +farg3 = abstolqs +fresult = swigc_FCVodeQuadSensSVtolerances(farg1, farg2, farg3) +swig_result = fresult +end function + +function FCVodeQuadSensEEtolerances(cvode_mem) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_INT) :: fresult +type(C_PTR) :: farg1 + +farg1 = cvode_mem +fresult = swigc_FCVodeQuadSensEEtolerances(farg1) +swig_result = fresult +end function + +function FCVodeSetQuadSensErrCon(cvode_mem, errconqs) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_INT), intent(in) :: errconqs +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = cvode_mem +farg2 = errconqs +fresult = swigc_FCVodeSetQuadSensErrCon(farg1, farg2) +swig_result = fresult +end function + +function FCVodeGetQuadSens(cvode_mem, tret, yqsout) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +real(C_DOUBLE), dimension(*), target, intent(inout) :: tret +type(C_PTR) :: yqsout +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = cvode_mem +farg2 = c_loc(tret(1)) +farg3 = yqsout +fresult = swigc_FCVodeGetQuadSens(farg1, farg2, farg3) +swig_result = fresult +end function + +function FCVodeGetQuadSens1(cvode_mem, tret, is, yqsout) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +real(C_DOUBLE), dimension(*), target, intent(inout) :: tret +integer(C_INT), intent(in) :: is +type(N_Vector), target, intent(inout) :: yqsout +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +integer(C_INT) :: farg3 +type(C_PTR) :: farg4 + +farg1 = cvode_mem +farg2 = c_loc(tret(1)) +farg3 = is +farg4 = c_loc(yqsout) +fresult = swigc_FCVodeGetQuadSens1(farg1, farg2, farg3, farg4) +swig_result = fresult +end function + +function FCVodeGetQuadSensDky(cvode_mem, t, k, dkyqs_all) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +real(C_DOUBLE), intent(in) :: t +integer(C_INT), intent(in) :: k +type(C_PTR) :: dkyqs_all +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 +integer(C_INT) :: farg3 +type(C_PTR) :: farg4 + +farg1 = cvode_mem +farg2 = t +farg3 = k +farg4 = dkyqs_all +fresult = swigc_FCVodeGetQuadSensDky(farg1, farg2, farg3, farg4) +swig_result = fresult +end function + +function FCVodeGetQuadSensDky1(cvode_mem, t, k, is, dkyqs) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +real(C_DOUBLE), intent(in) :: t +integer(C_INT), intent(in) :: k +integer(C_INT), intent(in) :: is +type(N_Vector), target, intent(inout) :: dkyqs +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 +integer(C_INT) :: farg3 +integer(C_INT) :: farg4 +type(C_PTR) :: farg5 + +farg1 = cvode_mem +farg2 = t +farg3 = k +farg4 = is +farg5 = c_loc(dkyqs) +fresult = swigc_FCVodeGetQuadSensDky1(farg1, farg2, farg3, farg4, farg5) +swig_result = fresult +end function + +function FCVodeGetQuadSensNumRhsEvals(cvode_mem, nfqsevals) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: nfqsevals +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = cvode_mem +farg2 = c_loc(nfqsevals(1)) +fresult = swigc_FCVodeGetQuadSensNumRhsEvals(farg1, farg2) +swig_result = fresult +end function + +function FCVodeGetQuadSensNumErrTestFails(cvode_mem, nqsetfails) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: nqsetfails +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = cvode_mem +farg2 = c_loc(nqsetfails(1)) +fresult = swigc_FCVodeGetQuadSensNumErrTestFails(farg1, farg2) +swig_result = fresult +end function + +function FCVodeGetQuadSensErrWeights(cvode_mem, eqsweight) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +type(C_PTR) :: eqsweight +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = cvode_mem +farg2 = eqsweight +fresult = swigc_FCVodeGetQuadSensErrWeights(farg1, farg2) +swig_result = fresult +end function + +function FCVodeGetQuadSensStats(cvode_mem, nfqsevals, nqsetfails) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: nfqsevals +integer(C_LONG), dimension(*), target, intent(inout) :: nqsetfails +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = cvode_mem +farg2 = c_loc(nfqsevals(1)) +farg3 = c_loc(nqsetfails(1)) +fresult = swigc_FCVodeGetQuadSensStats(farg1, farg2, farg3) +swig_result = fresult +end function + +subroutine FCVodeQuadSensFree(cvode_mem) +use, intrinsic :: ISO_C_BINDING +type(C_PTR) :: cvode_mem +type(C_PTR) :: farg1 + +farg1 = cvode_mem +call swigc_FCVodeQuadSensFree(farg1) +end subroutine + +function FCVodeAdjInit(cvode_mem, steps, interp) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_LONG), intent(in) :: steps +integer(C_INT), intent(in) :: interp +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_LONG) :: farg2 +integer(C_INT) :: farg3 + +farg1 = cvode_mem +farg2 = steps +farg3 = interp +fresult = swigc_FCVodeAdjInit(farg1, farg2, farg3) +swig_result = fresult +end function + +function FCVodeAdjReInit(cvode_mem) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_INT) :: fresult +type(C_PTR) :: farg1 + +farg1 = cvode_mem +fresult = swigc_FCVodeAdjReInit(farg1) +swig_result = fresult +end function + +subroutine FCVodeAdjFree(cvode_mem) +use, intrinsic :: ISO_C_BINDING +type(C_PTR) :: cvode_mem +type(C_PTR) :: farg1 + +farg1 = cvode_mem +call swigc_FCVodeAdjFree(farg1) +end subroutine + +function FCVodeCreateB(cvode_mem, lmmb, which) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_INT), intent(in) :: lmmb +integer(C_INT), dimension(*), target, intent(inout) :: which +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 +type(C_PTR) :: farg3 + +farg1 = cvode_mem +farg2 = lmmb +farg3 = c_loc(which(1)) +fresult = swigc_FCVodeCreateB(farg1, farg2, farg3) +swig_result = fresult +end function + +function FCVodeInitB(cvode_mem, which, fb, tb0, yb0) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_INT), intent(in) :: which +type(C_FUNPTR), intent(in), value :: fb +real(C_DOUBLE), intent(in) :: tb0 +type(N_Vector), target, intent(inout) :: yb0 +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 +type(C_FUNPTR) :: farg3 +real(C_DOUBLE) :: farg4 +type(C_PTR) :: farg5 + +farg1 = cvode_mem +farg2 = which +farg3 = fb +farg4 = tb0 +farg5 = c_loc(yb0) +fresult = swigc_FCVodeInitB(farg1, farg2, farg3, farg4, farg5) +swig_result = fresult +end function + +function FCVodeInitBS(cvode_mem, which, fbs, tb0, yb0) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_INT), intent(in) :: which +type(C_FUNPTR), intent(in), value :: fbs +real(C_DOUBLE), intent(in) :: tb0 +type(N_Vector), target, intent(inout) :: yb0 +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 +type(C_FUNPTR) :: farg3 +real(C_DOUBLE) :: farg4 +type(C_PTR) :: farg5 + +farg1 = cvode_mem +farg2 = which +farg3 = fbs +farg4 = tb0 +farg5 = c_loc(yb0) +fresult = swigc_FCVodeInitBS(farg1, farg2, farg3, farg4, farg5) +swig_result = fresult +end function + +function FCVodeReInitB(cvode_mem, which, tb0, yb0) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_INT), intent(in) :: which +real(C_DOUBLE), intent(in) :: tb0 +type(N_Vector), target, intent(inout) :: yb0 +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 +real(C_DOUBLE) :: farg3 +type(C_PTR) :: farg4 + +farg1 = cvode_mem +farg2 = which +farg3 = tb0 +farg4 = c_loc(yb0) +fresult = swigc_FCVodeReInitB(farg1, farg2, farg3, farg4) +swig_result = fresult +end function + +function FCVodeSStolerancesB(cvode_mem, which, reltolb, abstolb) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_INT), intent(in) :: which +real(C_DOUBLE), intent(in) :: reltolb +real(C_DOUBLE), intent(in) :: abstolb +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 +real(C_DOUBLE) :: farg3 +real(C_DOUBLE) :: farg4 + +farg1 = cvode_mem +farg2 = which +farg3 = reltolb +farg4 = abstolb +fresult = swigc_FCVodeSStolerancesB(farg1, farg2, farg3, farg4) +swig_result = fresult +end function + +function FCVodeSVtolerancesB(cvode_mem, which, reltolb, abstolb) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_INT), intent(in) :: which +real(C_DOUBLE), intent(in) :: reltolb +type(N_Vector), target, intent(inout) :: abstolb +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 +real(C_DOUBLE) :: farg3 +type(C_PTR) :: farg4 + +farg1 = cvode_mem +farg2 = which +farg3 = reltolb +farg4 = c_loc(abstolb) +fresult = swigc_FCVodeSVtolerancesB(farg1, farg2, farg3, farg4) +swig_result = fresult +end function + +function FCVodeQuadInitB(cvode_mem, which, fqb, yqb0) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_INT), intent(in) :: which +type(C_FUNPTR), intent(in), value :: fqb +type(N_Vector), target, intent(inout) :: yqb0 +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 +type(C_FUNPTR) :: farg3 +type(C_PTR) :: farg4 + +farg1 = cvode_mem +farg2 = which +farg3 = fqb +farg4 = c_loc(yqb0) +fresult = swigc_FCVodeQuadInitB(farg1, farg2, farg3, farg4) +swig_result = fresult +end function + +function FCVodeQuadInitBS(cvode_mem, which, fqbs, yqb0) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_INT), intent(in) :: which +type(C_FUNPTR), intent(in), value :: fqbs +type(N_Vector), target, intent(inout) :: yqb0 +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 +type(C_FUNPTR) :: farg3 +type(C_PTR) :: farg4 + +farg1 = cvode_mem +farg2 = which +farg3 = fqbs +farg4 = c_loc(yqb0) +fresult = swigc_FCVodeQuadInitBS(farg1, farg2, farg3, farg4) +swig_result = fresult +end function + +function FCVodeQuadReInitB(cvode_mem, which, yqb0) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_INT), intent(in) :: which +type(N_Vector), target, intent(inout) :: yqb0 +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 +type(C_PTR) :: farg3 + +farg1 = cvode_mem +farg2 = which +farg3 = c_loc(yqb0) +fresult = swigc_FCVodeQuadReInitB(farg1, farg2, farg3) +swig_result = fresult +end function + +function FCVodeQuadSStolerancesB(cvode_mem, which, reltolqb, abstolqb) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_INT), intent(in) :: which +real(C_DOUBLE), intent(in) :: reltolqb +real(C_DOUBLE), intent(in) :: abstolqb +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 +real(C_DOUBLE) :: farg3 +real(C_DOUBLE) :: farg4 + +farg1 = cvode_mem +farg2 = which +farg3 = reltolqb +farg4 = abstolqb +fresult = swigc_FCVodeQuadSStolerancesB(farg1, farg2, farg3, farg4) +swig_result = fresult +end function + +function FCVodeQuadSVtolerancesB(cvode_mem, which, reltolqb, abstolqb) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_INT), intent(in) :: which +real(C_DOUBLE), intent(in) :: reltolqb +type(N_Vector), target, intent(inout) :: abstolqb +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 +real(C_DOUBLE) :: farg3 +type(C_PTR) :: farg4 + +farg1 = cvode_mem +farg2 = which +farg3 = reltolqb +farg4 = c_loc(abstolqb) +fresult = swigc_FCVodeQuadSVtolerancesB(farg1, farg2, farg3, farg4) +swig_result = fresult +end function + +function FCVodeF(cvode_mem, tout, yout, tret, itask, ncheckptr) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +real(C_DOUBLE), intent(in) :: tout +type(N_Vector), target, intent(inout) :: yout +real(C_DOUBLE), dimension(*), target, intent(inout) :: tret +integer(C_INT), intent(in) :: itask +integer(C_INT), dimension(*), target, intent(inout) :: ncheckptr +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 +type(C_PTR) :: farg3 +type(C_PTR) :: farg4 +integer(C_INT) :: farg5 +type(C_PTR) :: farg6 + +farg1 = cvode_mem +farg2 = tout +farg3 = c_loc(yout) +farg4 = c_loc(tret(1)) +farg5 = itask +farg6 = c_loc(ncheckptr(1)) +fresult = swigc_FCVodeF(farg1, farg2, farg3, farg4, farg5, farg6) +swig_result = fresult +end function + +function FCVodeB(cvode_mem, tbout, itaskb) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +real(C_DOUBLE), intent(in) :: tbout +integer(C_INT), intent(in) :: itaskb +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 +integer(C_INT) :: farg3 + +farg1 = cvode_mem +farg2 = tbout +farg3 = itaskb +fresult = swigc_FCVodeB(farg1, farg2, farg3) +swig_result = fresult +end function + +function FCVodeSetAdjNoSensi(cvode_mem) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_INT) :: fresult +type(C_PTR) :: farg1 + +farg1 = cvode_mem +fresult = swigc_FCVodeSetAdjNoSensi(farg1) +swig_result = fresult +end function + +function FCVodeSetUserDataB(cvode_mem, which, user_datab) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_INT), intent(in) :: which +type(C_PTR) :: user_datab +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 +type(C_PTR) :: farg3 + +farg1 = cvode_mem +farg2 = which +farg3 = user_datab +fresult = swigc_FCVodeSetUserDataB(farg1, farg2, farg3) +swig_result = fresult +end function + +function FCVodeSetMaxOrdB(cvode_mem, which, maxordb) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_INT), intent(in) :: which +integer(C_INT), intent(in) :: maxordb +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 +integer(C_INT) :: farg3 + +farg1 = cvode_mem +farg2 = which +farg3 = maxordb +fresult = swigc_FCVodeSetMaxOrdB(farg1, farg2, farg3) +swig_result = fresult +end function + +function FCVodeSetMaxNumStepsB(cvode_mem, which, mxstepsb) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_INT), intent(in) :: which +integer(C_LONG), intent(in) :: mxstepsb +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 +integer(C_LONG) :: farg3 + +farg1 = cvode_mem +farg2 = which +farg3 = mxstepsb +fresult = swigc_FCVodeSetMaxNumStepsB(farg1, farg2, farg3) +swig_result = fresult +end function + +function FCVodeSetStabLimDetB(cvode_mem, which, stldetb) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_INT), intent(in) :: which +integer(C_INT), intent(in) :: stldetb +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 +integer(C_INT) :: farg3 + +farg1 = cvode_mem +farg2 = which +farg3 = stldetb +fresult = swigc_FCVodeSetStabLimDetB(farg1, farg2, farg3) +swig_result = fresult +end function + +function FCVodeSetInitStepB(cvode_mem, which, hinb) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_INT), intent(in) :: which +real(C_DOUBLE), intent(in) :: hinb +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 +real(C_DOUBLE) :: farg3 + +farg1 = cvode_mem +farg2 = which +farg3 = hinb +fresult = swigc_FCVodeSetInitStepB(farg1, farg2, farg3) +swig_result = fresult +end function + +function FCVodeSetMinStepB(cvode_mem, which, hminb) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_INT), intent(in) :: which +real(C_DOUBLE), intent(in) :: hminb +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 +real(C_DOUBLE) :: farg3 + +farg1 = cvode_mem +farg2 = which +farg3 = hminb +fresult = swigc_FCVodeSetMinStepB(farg1, farg2, farg3) +swig_result = fresult +end function + +function FCVodeSetMaxStepB(cvode_mem, which, hmaxb) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_INT), intent(in) :: which +real(C_DOUBLE), intent(in) :: hmaxb +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 +real(C_DOUBLE) :: farg3 + +farg1 = cvode_mem +farg2 = which +farg3 = hmaxb +fresult = swigc_FCVodeSetMaxStepB(farg1, farg2, farg3) +swig_result = fresult +end function + +function FCVodeSetConstraintsB(cvode_mem, which, constraintsb) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_INT), intent(in) :: which +type(N_Vector), target, intent(inout) :: constraintsb +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 +type(C_PTR) :: farg3 + +farg1 = cvode_mem +farg2 = which +farg3 = c_loc(constraintsb) +fresult = swigc_FCVodeSetConstraintsB(farg1, farg2, farg3) +swig_result = fresult +end function + +function FCVodeSetQuadErrConB(cvode_mem, which, errconqb) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_INT), intent(in) :: which +integer(C_INT), intent(in) :: errconqb +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 +integer(C_INT) :: farg3 + +farg1 = cvode_mem +farg2 = which +farg3 = errconqb +fresult = swigc_FCVodeSetQuadErrConB(farg1, farg2, farg3) +swig_result = fresult +end function + +function FCVodeSetNonlinearSolverB(cvode_mem, which, nls) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_INT), intent(in) :: which +type(SUNNonlinearSolver), target, intent(inout) :: nls +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 +type(C_PTR) :: farg3 + +farg1 = cvode_mem +farg2 = which +farg3 = c_loc(nls) +fresult = swigc_FCVodeSetNonlinearSolverB(farg1, farg2, farg3) +swig_result = fresult +end function + +function FCVodeGetB(cvode_mem, which, tbret, yb) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_INT), intent(in) :: which +real(C_DOUBLE), dimension(*), target, intent(inout) :: tbret +type(N_Vector), target, intent(inout) :: yb +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 +type(C_PTR) :: farg3 +type(C_PTR) :: farg4 + +farg1 = cvode_mem +farg2 = which +farg3 = c_loc(tbret(1)) +farg4 = c_loc(yb) +fresult = swigc_FCVodeGetB(farg1, farg2, farg3, farg4) +swig_result = fresult +end function + +function FCVodeGetQuadB(cvode_mem, which, tbret, qb) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_INT), intent(in) :: which +real(C_DOUBLE), dimension(*), target, intent(inout) :: tbret +type(N_Vector), target, intent(inout) :: qb +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 +type(C_PTR) :: farg3 +type(C_PTR) :: farg4 + +farg1 = cvode_mem +farg2 = which +farg3 = c_loc(tbret(1)) +farg4 = c_loc(qb) +fresult = swigc_FCVodeGetQuadB(farg1, farg2, farg3, farg4) +swig_result = fresult +end function + +function FCVodeGetAdjCVodeBmem(cvode_mem, which) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +type(C_PTR) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_INT), intent(in) :: which +type(C_PTR) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = cvode_mem +farg2 = which +fresult = swigc_FCVodeGetAdjCVodeBmem(farg1, farg2) +swig_result = fresult +end function + +function FCVodeGetAdjY(cvode_mem, t, y) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +real(C_DOUBLE), intent(in) :: t +type(N_Vector), target, intent(inout) :: y +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 +type(C_PTR) :: farg3 + +farg1 = cvode_mem +farg2 = t +farg3 = c_loc(y) +fresult = swigc_FCVodeGetAdjY(farg1, farg2, farg3) +swig_result = fresult +end function + +subroutine swigf_CVadjCheckPointRec_my_addr_set(self, my_addr) +use, intrinsic :: ISO_C_BINDING +class(CVadjCheckPointRec), intent(in) :: self +type(C_PTR) :: my_addr +type(SwigClassWrapper) :: farg1 +type(C_PTR) :: farg2 + +farg1 = self%swigdata +farg2 = my_addr +call swigc_CVadjCheckPointRec_my_addr_set(farg1, farg2) +end subroutine + +function swigf_CVadjCheckPointRec_my_addr_get(self) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +type(C_PTR) :: swig_result +class(CVadjCheckPointRec), intent(in) :: self +type(C_PTR) :: fresult +type(SwigClassWrapper) :: farg1 + +farg1 = self%swigdata +fresult = swigc_CVadjCheckPointRec_my_addr_get(farg1) +swig_result = fresult +end function + +subroutine swigf_CVadjCheckPointRec_next_addr_set(self, next_addr) +use, intrinsic :: ISO_C_BINDING +class(CVadjCheckPointRec), intent(in) :: self +type(C_PTR) :: next_addr +type(SwigClassWrapper) :: farg1 +type(C_PTR) :: farg2 + +farg1 = self%swigdata +farg2 = next_addr +call swigc_CVadjCheckPointRec_next_addr_set(farg1, farg2) +end subroutine + +function swigf_CVadjCheckPointRec_next_addr_get(self) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +type(C_PTR) :: swig_result +class(CVadjCheckPointRec), intent(in) :: self +type(C_PTR) :: fresult +type(SwigClassWrapper) :: farg1 + +farg1 = self%swigdata +fresult = swigc_CVadjCheckPointRec_next_addr_get(farg1) +swig_result = fresult +end function + +subroutine swigf_CVadjCheckPointRec_t0_set(self, t0) +use, intrinsic :: ISO_C_BINDING +class(CVadjCheckPointRec), intent(in) :: self +real(C_DOUBLE), intent(in) :: t0 +type(SwigClassWrapper) :: farg1 +real(C_DOUBLE) :: farg2 + +farg1 = self%swigdata +farg2 = t0 +call swigc_CVadjCheckPointRec_t0_set(farg1, farg2) +end subroutine + +function swigf_CVadjCheckPointRec_t0_get(self) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE) :: swig_result +class(CVadjCheckPointRec), intent(in) :: self +real(C_DOUBLE) :: fresult +type(SwigClassWrapper) :: farg1 + +farg1 = self%swigdata +fresult = swigc_CVadjCheckPointRec_t0_get(farg1) +swig_result = fresult +end function + +subroutine swigf_CVadjCheckPointRec_t1_set(self, t1) +use, intrinsic :: ISO_C_BINDING +class(CVadjCheckPointRec), intent(in) :: self +real(C_DOUBLE), intent(in) :: t1 +type(SwigClassWrapper) :: farg1 +real(C_DOUBLE) :: farg2 + +farg1 = self%swigdata +farg2 = t1 +call swigc_CVadjCheckPointRec_t1_set(farg1, farg2) +end subroutine + +function swigf_CVadjCheckPointRec_t1_get(self) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE) :: swig_result +class(CVadjCheckPointRec), intent(in) :: self +real(C_DOUBLE) :: fresult +type(SwigClassWrapper) :: farg1 + +farg1 = self%swigdata +fresult = swigc_CVadjCheckPointRec_t1_get(farg1) +swig_result = fresult +end function + +subroutine swigf_CVadjCheckPointRec_nstep_set(self, nstep) +use, intrinsic :: ISO_C_BINDING +class(CVadjCheckPointRec), intent(in) :: self +integer(C_LONG), intent(in) :: nstep +type(SwigClassWrapper) :: farg1 +integer(C_LONG) :: farg2 + +farg1 = self%swigdata +farg2 = nstep +call swigc_CVadjCheckPointRec_nstep_set(farg1, farg2) +end subroutine + +function swigf_CVadjCheckPointRec_nstep_get(self) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_LONG) :: swig_result +class(CVadjCheckPointRec), intent(in) :: self +integer(C_LONG) :: fresult +type(SwigClassWrapper) :: farg1 + +farg1 = self%swigdata +fresult = swigc_CVadjCheckPointRec_nstep_get(farg1) +swig_result = fresult +end function + +subroutine swigf_CVadjCheckPointRec_order_set(self, order) +use, intrinsic :: ISO_C_BINDING +class(CVadjCheckPointRec), intent(in) :: self +integer(C_INT), intent(in) :: order +type(SwigClassWrapper) :: farg1 +integer(C_INT) :: farg2 + +farg1 = self%swigdata +farg2 = order +call swigc_CVadjCheckPointRec_order_set(farg1, farg2) +end subroutine + +function swigf_CVadjCheckPointRec_order_get(self) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +class(CVadjCheckPointRec), intent(in) :: self +integer(C_INT) :: fresult +type(SwigClassWrapper) :: farg1 + +farg1 = self%swigdata +fresult = swigc_CVadjCheckPointRec_order_get(farg1) +swig_result = fresult +end function + +subroutine swigf_CVadjCheckPointRec_step_set(self, step) +use, intrinsic :: ISO_C_BINDING +class(CVadjCheckPointRec), intent(in) :: self +real(C_DOUBLE), intent(in) :: step +type(SwigClassWrapper) :: farg1 +real(C_DOUBLE) :: farg2 + +farg1 = self%swigdata +farg2 = step +call swigc_CVadjCheckPointRec_step_set(farg1, farg2) +end subroutine + +function swigf_CVadjCheckPointRec_step_get(self) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE) :: swig_result +class(CVadjCheckPointRec), intent(in) :: self +real(C_DOUBLE) :: fresult +type(SwigClassWrapper) :: farg1 + +farg1 = self%swigdata +fresult = swigc_CVadjCheckPointRec_step_get(farg1) +swig_result = fresult +end function + +function swigf_create_CVadjCheckPointRec() & +result(self) +use, intrinsic :: ISO_C_BINDING +type(CVadjCheckPointRec) :: self +type(SwigClassWrapper) :: fresult + +fresult = swigc_new_CVadjCheckPointRec() +self%swigdata = fresult +end function + +subroutine swigf_release_CVadjCheckPointRec(self) +use, intrinsic :: ISO_C_BINDING +class(CVadjCheckPointRec), intent(inout) :: self +type(SwigClassWrapper) :: farg1 + +farg1 = self%swigdata +if (btest(farg1%cmemflags, swig_cmem_own_bit)) then +call swigc_delete_CVadjCheckPointRec(farg1) +endif +farg1%cptr = C_NULL_PTR +farg1%cmemflags = 0 +self%swigdata = farg1 +end subroutine + +subroutine swigf_CVadjCheckPointRec_op_assign__(self, other) +use, intrinsic :: ISO_C_BINDING +class(CVadjCheckPointRec), intent(inout) :: self +type(CVadjCheckPointRec), intent(in) :: other +type(SwigClassWrapper) :: farg1 +type(SwigClassWrapper) :: farg2 + +farg1 = self%swigdata +farg2 = other%swigdata +call swigc_CVadjCheckPointRec_op_assign__(farg1, farg2) +self%swigdata = farg1 +end subroutine + +function FCVodeGetAdjCheckPointsInfo(cvode_mem, ckpnt) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +class(CVadjCheckPointRec), intent(in) :: ckpnt +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(SwigClassWrapper) :: farg2 + +farg1 = cvode_mem +farg2 = ckpnt%swigdata +fresult = swigc_FCVodeGetAdjCheckPointsInfo(farg1, farg2) +swig_result = fresult +end function + +function FCVodeSetJacTimesRhsFnB(cvode_mem, which, jtimesrhsfn) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_INT), intent(in) :: which +type(C_FUNPTR), intent(in), value :: jtimesrhsfn +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 +type(C_FUNPTR) :: farg3 + +farg1 = cvode_mem +farg2 = which +farg3 = jtimesrhsfn +fresult = swigc_FCVodeSetJacTimesRhsFnB(farg1, farg2, farg3) +swig_result = fresult +end function + +function FCVodeGetAdjDataPointHermite(cvode_mem, which, t, y, yd) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_INT), intent(in) :: which +real(C_DOUBLE), dimension(*), target, intent(inout) :: t +type(N_Vector), target, intent(inout) :: y +type(N_Vector), target, intent(inout) :: yd +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 +type(C_PTR) :: farg3 +type(C_PTR) :: farg4 +type(C_PTR) :: farg5 + +farg1 = cvode_mem +farg2 = which +farg3 = c_loc(t(1)) +farg4 = c_loc(y) +farg5 = c_loc(yd) +fresult = swigc_FCVodeGetAdjDataPointHermite(farg1, farg2, farg3, farg4, farg5) +swig_result = fresult +end function + +function FCVodeGetAdjDataPointPolynomial(cvode_mem, which, t, order, y) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_INT), intent(in) :: which +real(C_DOUBLE), dimension(*), target, intent(inout) :: t +integer(C_INT), dimension(*), target, intent(inout) :: order +type(N_Vector), target, intent(inout) :: y +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 +type(C_PTR) :: farg3 +type(C_PTR) :: farg4 +type(C_PTR) :: farg5 + +farg1 = cvode_mem +farg2 = which +farg3 = c_loc(t(1)) +farg4 = c_loc(order(1)) +farg5 = c_loc(y) +fresult = swigc_FCVodeGetAdjDataPointPolynomial(farg1, farg2, farg3, farg4, farg5) +swig_result = fresult +end function + +function FCVodeGetAdjCurrentCheckPoint(cvode_mem, addr) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +type(C_PTR), target, intent(inout) :: addr +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = cvode_mem +farg2 = c_loc(addr) +fresult = swigc_FCVodeGetAdjCurrentCheckPoint(farg1, farg2) +swig_result = fresult +end function + +function FCVBandPrecInit(cvode_mem, n, mu, ml) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_INT32_T), intent(in) :: n +integer(C_INT32_T), intent(in) :: mu +integer(C_INT32_T), intent(in) :: ml +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT32_T) :: farg2 +integer(C_INT32_T) :: farg3 +integer(C_INT32_T) :: farg4 + +farg1 = cvode_mem +farg2 = n +farg3 = mu +farg4 = ml +fresult = swigc_FCVBandPrecInit(farg1, farg2, farg3, farg4) +swig_result = fresult +end function + +function FCVBandPrecGetWorkSpace(cvode_mem, lenrwls, leniwls) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: lenrwls +integer(C_LONG), dimension(*), target, intent(inout) :: leniwls +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = cvode_mem +farg2 = c_loc(lenrwls(1)) +farg3 = c_loc(leniwls(1)) +fresult = swigc_FCVBandPrecGetWorkSpace(farg1, farg2, farg3) +swig_result = fresult +end function + +function FCVBandPrecGetNumRhsEvals(cvode_mem, nfevalsbp) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: nfevalsbp +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = cvode_mem +farg2 = c_loc(nfevalsbp(1)) +fresult = swigc_FCVBandPrecGetNumRhsEvals(farg1, farg2) +swig_result = fresult +end function + +function FCVBandPrecInitB(cvode_mem, which, nb, mub, mlb) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_INT), intent(in) :: which +integer(C_INT32_T), intent(in) :: nb +integer(C_INT32_T), intent(in) :: mub +integer(C_INT32_T), intent(in) :: mlb +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 +integer(C_INT32_T) :: farg3 +integer(C_INT32_T) :: farg4 +integer(C_INT32_T) :: farg5 + +farg1 = cvode_mem +farg2 = which +farg3 = nb +farg4 = mub +farg5 = mlb +fresult = swigc_FCVBandPrecInitB(farg1, farg2, farg3, farg4, farg5) +swig_result = fresult +end function + +function FCVBBDPrecInit(cvode_mem, nlocal, mudq, mldq, mukeep, mlkeep, dqrely, gloc, cfn) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_INT32_T), intent(in) :: nlocal +integer(C_INT32_T), intent(in) :: mudq +integer(C_INT32_T), intent(in) :: mldq +integer(C_INT32_T), intent(in) :: mukeep +integer(C_INT32_T), intent(in) :: mlkeep +real(C_DOUBLE), intent(in) :: dqrely +type(C_FUNPTR), intent(in), value :: gloc +type(C_FUNPTR), intent(in), value :: cfn +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT32_T) :: farg2 +integer(C_INT32_T) :: farg3 +integer(C_INT32_T) :: farg4 +integer(C_INT32_T) :: farg5 +integer(C_INT32_T) :: farg6 +real(C_DOUBLE) :: farg7 +type(C_FUNPTR) :: farg8 +type(C_FUNPTR) :: farg9 + +farg1 = cvode_mem +farg2 = nlocal +farg3 = mudq +farg4 = mldq +farg5 = mukeep +farg6 = mlkeep +farg7 = dqrely +farg8 = gloc +farg9 = cfn +fresult = swigc_FCVBBDPrecInit(farg1, farg2, farg3, farg4, farg5, farg6, farg7, farg8, farg9) +swig_result = fresult +end function + +function FCVBBDPrecReInit(cvode_mem, mudq, mldq, dqrely) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_INT32_T), intent(in) :: mudq +integer(C_INT32_T), intent(in) :: mldq +real(C_DOUBLE), intent(in) :: dqrely +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT32_T) :: farg2 +integer(C_INT32_T) :: farg3 +real(C_DOUBLE) :: farg4 + +farg1 = cvode_mem +farg2 = mudq +farg3 = mldq +farg4 = dqrely +fresult = swigc_FCVBBDPrecReInit(farg1, farg2, farg3, farg4) +swig_result = fresult +end function + +function FCVBBDPrecGetWorkSpace(cvode_mem, lenrwbbdp, leniwbbdp) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: lenrwbbdp +integer(C_LONG), dimension(*), target, intent(inout) :: leniwbbdp +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = cvode_mem +farg2 = c_loc(lenrwbbdp(1)) +farg3 = c_loc(leniwbbdp(1)) +fresult = swigc_FCVBBDPrecGetWorkSpace(farg1, farg2, farg3) +swig_result = fresult +end function + +function FCVBBDPrecGetNumGfnEvals(cvode_mem, ngevalsbbdp) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: ngevalsbbdp +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = cvode_mem +farg2 = c_loc(ngevalsbbdp(1)) +fresult = swigc_FCVBBDPrecGetNumGfnEvals(farg1, farg2) +swig_result = fresult +end function + +function FCVBBDPrecInitB(cvode_mem, which, nlocalb, mudqb, mldqb, mukeepb, mlkeepb, dqrelyb, glocb, cfnb) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_INT), intent(in) :: which +integer(C_INT32_T), intent(in) :: nlocalb +integer(C_INT32_T), intent(in) :: mudqb +integer(C_INT32_T), intent(in) :: mldqb +integer(C_INT32_T), intent(in) :: mukeepb +integer(C_INT32_T), intent(in) :: mlkeepb +real(C_DOUBLE), intent(in) :: dqrelyb +type(C_FUNPTR), intent(in), value :: glocb +type(C_FUNPTR), intent(in), value :: cfnb +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 +integer(C_INT32_T) :: farg3 +integer(C_INT32_T) :: farg4 +integer(C_INT32_T) :: farg5 +integer(C_INT32_T) :: farg6 +integer(C_INT32_T) :: farg7 +real(C_DOUBLE) :: farg8 +type(C_FUNPTR) :: farg9 +type(C_FUNPTR) :: farg10 + +farg1 = cvode_mem +farg2 = which +farg3 = nlocalb +farg4 = mudqb +farg5 = mldqb +farg6 = mukeepb +farg7 = mlkeepb +farg8 = dqrelyb +farg9 = glocb +farg10 = cfnb +fresult = swigc_FCVBBDPrecInitB(farg1, farg2, farg3, farg4, farg5, farg6, farg7, farg8, farg9, farg10) +swig_result = fresult +end function + +function FCVBBDPrecReInitB(cvode_mem, which, mudqb, mldqb, dqrelyb) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_INT), intent(in) :: which +integer(C_INT32_T), intent(in) :: mudqb +integer(C_INT32_T), intent(in) :: mldqb +real(C_DOUBLE), intent(in) :: dqrelyb +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 +integer(C_INT32_T) :: farg3 +integer(C_INT32_T) :: farg4 +real(C_DOUBLE) :: farg5 + +farg1 = cvode_mem +farg2 = which +farg3 = mudqb +farg4 = mldqb +farg5 = dqrelyb +fresult = swigc_FCVBBDPrecReInitB(farg1, farg2, farg3, farg4, farg5) +swig_result = fresult +end function + +function FCVDiag(cvode_mem) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_INT) :: fresult +type(C_PTR) :: farg1 + +farg1 = cvode_mem +fresult = swigc_FCVDiag(farg1) +swig_result = fresult +end function + +function FCVDiagGetWorkSpace(cvode_mem, lenrwls, leniwls) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: lenrwls +integer(C_LONG), dimension(*), target, intent(inout) :: leniwls +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = cvode_mem +farg2 = c_loc(lenrwls(1)) +farg3 = c_loc(leniwls(1)) +fresult = swigc_FCVDiagGetWorkSpace(farg1, farg2, farg3) +swig_result = fresult +end function + +function FCVDiagGetNumRhsEvals(cvode_mem, nfevalsls) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: nfevalsls +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = cvode_mem +farg2 = c_loc(nfevalsls(1)) +fresult = swigc_FCVDiagGetNumRhsEvals(farg1, farg2) +swig_result = fresult +end function + +function FCVDiagGetLastFlag(cvode_mem, flag) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: flag +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = cvode_mem +farg2 = c_loc(flag(1)) +fresult = swigc_FCVDiagGetLastFlag(farg1, farg2) +swig_result = fresult +end function + +function FCVDiagGetReturnFlagName(flag) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +character(kind=C_CHAR, len=:), allocatable :: swig_result +integer(C_LONG), intent(in) :: flag +type(SwigArrayWrapper) :: fresult +integer(C_LONG) :: farg1 + +farg1 = flag +fresult = swigc_FCVDiagGetReturnFlagName(farg1) +call SWIG_chararray_to_string(fresult, swig_result) +if (.false.) call SWIG_free(fresult%data) +end function + +function FCVDiagB(cvode_mem, which) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_INT), intent(in) :: which +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = cvode_mem +farg2 = which +fresult = swigc_FCVDiagB(farg1, farg2) +swig_result = fresult +end function + +function FCVodeSetLinearSolver(cvode_mem, ls, a) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +type(SUNLinearSolver), target, intent(inout) :: ls +type(SUNMatrix), target, intent(inout) :: a +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = cvode_mem +farg2 = c_loc(ls) +farg3 = c_loc(a) +fresult = swigc_FCVodeSetLinearSolver(farg1, farg2, farg3) +swig_result = fresult +end function + +function FCVodeSetJacFn(cvode_mem, jac) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +type(C_FUNPTR), intent(in), value :: jac +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_FUNPTR) :: farg2 + +farg1 = cvode_mem +farg2 = jac +fresult = swigc_FCVodeSetJacFn(farg1, farg2) +swig_result = fresult +end function + +function FCVodeSetJacEvalFrequency(cvode_mem, msbj) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_LONG), intent(in) :: msbj +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_LONG) :: farg2 + +farg1 = cvode_mem +farg2 = msbj +fresult = swigc_FCVodeSetJacEvalFrequency(farg1, farg2) +swig_result = fresult +end function + +function FCVodeSetLinearSolutionScaling(cvode_mem, onoff) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_INT), intent(in) :: onoff +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = cvode_mem +farg2 = onoff +fresult = swigc_FCVodeSetLinearSolutionScaling(farg1, farg2) +swig_result = fresult +end function + +function FCVodeSetDeltaGammaMaxBadJac(cvode_mem, dgmax_jbad) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +real(C_DOUBLE), intent(in) :: dgmax_jbad +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 + +farg1 = cvode_mem +farg2 = dgmax_jbad +fresult = swigc_FCVodeSetDeltaGammaMaxBadJac(farg1, farg2) +swig_result = fresult +end function + +function FCVodeSetEpsLin(cvode_mem, eplifac) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +real(C_DOUBLE), intent(in) :: eplifac +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 + +farg1 = cvode_mem +farg2 = eplifac +fresult = swigc_FCVodeSetEpsLin(farg1, farg2) +swig_result = fresult +end function + +function FCVodeSetLSNormFactor(arkode_mem, nrmfac) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +real(C_DOUBLE), intent(in) :: nrmfac +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 + +farg1 = arkode_mem +farg2 = nrmfac +fresult = swigc_FCVodeSetLSNormFactor(farg1, farg2) +swig_result = fresult +end function + +function FCVodeSetPreconditioner(cvode_mem, pset, psolve) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +type(C_FUNPTR), intent(in), value :: pset +type(C_FUNPTR), intent(in), value :: psolve +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_FUNPTR) :: farg2 +type(C_FUNPTR) :: farg3 + +farg1 = cvode_mem +farg2 = pset +farg3 = psolve +fresult = swigc_FCVodeSetPreconditioner(farg1, farg2, farg3) +swig_result = fresult +end function + +function FCVodeSetJacTimes(cvode_mem, jtsetup, jtimes) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +type(C_FUNPTR), intent(in), value :: jtsetup +type(C_FUNPTR), intent(in), value :: jtimes +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_FUNPTR) :: farg2 +type(C_FUNPTR) :: farg3 + +farg1 = cvode_mem +farg2 = jtsetup +farg3 = jtimes +fresult = swigc_FCVodeSetJacTimes(farg1, farg2, farg3) +swig_result = fresult +end function + +function FCVodeSetLinSysFn(cvode_mem, linsys) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +type(C_FUNPTR), intent(in), value :: linsys +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_FUNPTR) :: farg2 + +farg1 = cvode_mem +farg2 = linsys +fresult = swigc_FCVodeSetLinSysFn(farg1, farg2) +swig_result = fresult +end function + +function FCVodeGetJac(cvode_mem, j) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +type(C_PTR), target, intent(inout) :: j +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = cvode_mem +farg2 = c_loc(j) +fresult = swigc_FCVodeGetJac(farg1, farg2) +swig_result = fresult +end function + +function FCVodeGetJacTime(cvode_mem, t_j) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +real(C_DOUBLE), dimension(*), target, intent(inout) :: t_j +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = cvode_mem +farg2 = c_loc(t_j(1)) +fresult = swigc_FCVodeGetJacTime(farg1, farg2) +swig_result = fresult +end function + +function FCVodeGetJacNumSteps(cvode_mem, nst_j) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: nst_j +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = cvode_mem +farg2 = c_loc(nst_j(1)) +fresult = swigc_FCVodeGetJacNumSteps(farg1, farg2) +swig_result = fresult +end function + +function FCVodeGetLinWorkSpace(cvode_mem, lenrwls, leniwls) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: lenrwls +integer(C_LONG), dimension(*), target, intent(inout) :: leniwls +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = cvode_mem +farg2 = c_loc(lenrwls(1)) +farg3 = c_loc(leniwls(1)) +fresult = swigc_FCVodeGetLinWorkSpace(farg1, farg2, farg3) +swig_result = fresult +end function + +function FCVodeGetNumJacEvals(cvode_mem, njevals) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: njevals +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = cvode_mem +farg2 = c_loc(njevals(1)) +fresult = swigc_FCVodeGetNumJacEvals(farg1, farg2) +swig_result = fresult +end function + +function FCVodeGetNumPrecEvals(cvode_mem, npevals) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: npevals +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = cvode_mem +farg2 = c_loc(npevals(1)) +fresult = swigc_FCVodeGetNumPrecEvals(farg1, farg2) +swig_result = fresult +end function + +function FCVodeGetNumPrecSolves(cvode_mem, npsolves) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: npsolves +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = cvode_mem +farg2 = c_loc(npsolves(1)) +fresult = swigc_FCVodeGetNumPrecSolves(farg1, farg2) +swig_result = fresult +end function + +function FCVodeGetNumLinIters(cvode_mem, nliters) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: nliters +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = cvode_mem +farg2 = c_loc(nliters(1)) +fresult = swigc_FCVodeGetNumLinIters(farg1, farg2) +swig_result = fresult +end function + +function FCVodeGetNumLinConvFails(cvode_mem, nlcfails) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: nlcfails +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = cvode_mem +farg2 = c_loc(nlcfails(1)) +fresult = swigc_FCVodeGetNumLinConvFails(farg1, farg2) +swig_result = fresult +end function + +function FCVodeGetNumJTSetupEvals(cvode_mem, njtsetups) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: njtsetups +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = cvode_mem +farg2 = c_loc(njtsetups(1)) +fresult = swigc_FCVodeGetNumJTSetupEvals(farg1, farg2) +swig_result = fresult +end function + +function FCVodeGetNumJtimesEvals(cvode_mem, njvevals) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: njvevals +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = cvode_mem +farg2 = c_loc(njvevals(1)) +fresult = swigc_FCVodeGetNumJtimesEvals(farg1, farg2) +swig_result = fresult +end function + +function FCVodeGetNumLinRhsEvals(cvode_mem, nfevalsls) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: nfevalsls +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = cvode_mem +farg2 = c_loc(nfevalsls(1)) +fresult = swigc_FCVodeGetNumLinRhsEvals(farg1, farg2) +swig_result = fresult +end function + +function FCVodeGetLinSolveStats(cvode_mem, njevals, nfevalsls, nliters, nlcfails, npevals, npsolves, njtsetups, njtimes) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: njevals +integer(C_LONG), dimension(*), target, intent(inout) :: nfevalsls +integer(C_LONG), dimension(*), target, intent(inout) :: nliters +integer(C_LONG), dimension(*), target, intent(inout) :: nlcfails +integer(C_LONG), dimension(*), target, intent(inout) :: npevals +integer(C_LONG), dimension(*), target, intent(inout) :: npsolves +integer(C_LONG), dimension(*), target, intent(inout) :: njtsetups +integer(C_LONG), dimension(*), target, intent(inout) :: njtimes +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 +type(C_PTR) :: farg4 +type(C_PTR) :: farg5 +type(C_PTR) :: farg6 +type(C_PTR) :: farg7 +type(C_PTR) :: farg8 +type(C_PTR) :: farg9 + +farg1 = cvode_mem +farg2 = c_loc(njevals(1)) +farg3 = c_loc(nfevalsls(1)) +farg4 = c_loc(nliters(1)) +farg5 = c_loc(nlcfails(1)) +farg6 = c_loc(npevals(1)) +farg7 = c_loc(npsolves(1)) +farg8 = c_loc(njtsetups(1)) +farg9 = c_loc(njtimes(1)) +fresult = swigc_FCVodeGetLinSolveStats(farg1, farg2, farg3, farg4, farg5, farg6, farg7, farg8, farg9) +swig_result = fresult +end function + +function FCVodeGetLastLinFlag(cvode_mem, flag) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: flag +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = cvode_mem +farg2 = c_loc(flag(1)) +fresult = swigc_FCVodeGetLastLinFlag(farg1, farg2) +swig_result = fresult +end function + +function FCVodeGetLinReturnFlagName(flag) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +character(kind=C_CHAR, len=:), allocatable :: swig_result +integer(C_LONG), intent(in) :: flag +type(SwigArrayWrapper) :: fresult +integer(C_LONG) :: farg1 + +farg1 = flag +fresult = swigc_FCVodeGetLinReturnFlagName(farg1) +call SWIG_chararray_to_string(fresult, swig_result) +if (.false.) call SWIG_free(fresult%data) +end function + +function FCVodeSetLinearSolverB(cvode_mem, which, ls, a) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_INT), intent(in) :: which +type(SUNLinearSolver), target, intent(inout) :: ls +type(SUNMatrix), target, intent(inout) :: a +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 +type(C_PTR) :: farg3 +type(C_PTR) :: farg4 + +farg1 = cvode_mem +farg2 = which +farg3 = c_loc(ls) +farg4 = c_loc(a) +fresult = swigc_FCVodeSetLinearSolverB(farg1, farg2, farg3, farg4) +swig_result = fresult +end function + +function FCVodeSetJacFnB(cvode_mem, which, jacb) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_INT), intent(in) :: which +type(C_FUNPTR), intent(in), value :: jacb +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 +type(C_FUNPTR) :: farg3 + +farg1 = cvode_mem +farg2 = which +farg3 = jacb +fresult = swigc_FCVodeSetJacFnB(farg1, farg2, farg3) +swig_result = fresult +end function + +function FCVodeSetJacFnBS(cvode_mem, which, jacbs) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_INT), intent(in) :: which +type(C_FUNPTR), intent(in), value :: jacbs +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 +type(C_FUNPTR) :: farg3 + +farg1 = cvode_mem +farg2 = which +farg3 = jacbs +fresult = swigc_FCVodeSetJacFnBS(farg1, farg2, farg3) +swig_result = fresult +end function + +function FCVodeSetEpsLinB(cvode_mem, which, eplifacb) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_INT), intent(in) :: which +real(C_DOUBLE), intent(in) :: eplifacb +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 +real(C_DOUBLE) :: farg3 + +farg1 = cvode_mem +farg2 = which +farg3 = eplifacb +fresult = swigc_FCVodeSetEpsLinB(farg1, farg2, farg3) +swig_result = fresult +end function + +function FCVodeSetLSNormFactorB(arkode_mem, which, nrmfacb) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_INT), intent(in) :: which +real(C_DOUBLE), intent(in) :: nrmfacb +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 +real(C_DOUBLE) :: farg3 + +farg1 = arkode_mem +farg2 = which +farg3 = nrmfacb +fresult = swigc_FCVodeSetLSNormFactorB(farg1, farg2, farg3) +swig_result = fresult +end function + +function FCVodeSetLinearSolutionScalingB(cvode_mem, which, onoffb) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_INT), intent(in) :: which +integer(C_INT), intent(in) :: onoffb +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 +integer(C_INT) :: farg3 + +farg1 = cvode_mem +farg2 = which +farg3 = onoffb +fresult = swigc_FCVodeSetLinearSolutionScalingB(farg1, farg2, farg3) +swig_result = fresult +end function + +function FCVodeSetPreconditionerB(cvode_mem, which, psetb, psolveb) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_INT), intent(in) :: which +type(C_FUNPTR), intent(in), value :: psetb +type(C_FUNPTR), intent(in), value :: psolveb +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 +type(C_FUNPTR) :: farg3 +type(C_FUNPTR) :: farg4 + +farg1 = cvode_mem +farg2 = which +farg3 = psetb +farg4 = psolveb +fresult = swigc_FCVodeSetPreconditionerB(farg1, farg2, farg3, farg4) +swig_result = fresult +end function + +function FCVodeSetPreconditionerBS(cvode_mem, which, psetbs, psolvebs) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_INT), intent(in) :: which +type(C_FUNPTR), intent(in), value :: psetbs +type(C_FUNPTR), intent(in), value :: psolvebs +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 +type(C_FUNPTR) :: farg3 +type(C_FUNPTR) :: farg4 + +farg1 = cvode_mem +farg2 = which +farg3 = psetbs +farg4 = psolvebs +fresult = swigc_FCVodeSetPreconditionerBS(farg1, farg2, farg3, farg4) +swig_result = fresult +end function + +function FCVodeSetJacTimesB(cvode_mem, which, jtsetupb, jtimesb) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_INT), intent(in) :: which +type(C_FUNPTR), intent(in), value :: jtsetupb +type(C_FUNPTR), intent(in), value :: jtimesb +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 +type(C_FUNPTR) :: farg3 +type(C_FUNPTR) :: farg4 + +farg1 = cvode_mem +farg2 = which +farg3 = jtsetupb +farg4 = jtimesb +fresult = swigc_FCVodeSetJacTimesB(farg1, farg2, farg3, farg4) +swig_result = fresult +end function + +function FCVodeSetJacTimesBS(cvode_mem, which, jtsetupbs, jtimesbs) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_INT), intent(in) :: which +type(C_FUNPTR), intent(in), value :: jtsetupbs +type(C_FUNPTR), intent(in), value :: jtimesbs +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 +type(C_FUNPTR) :: farg3 +type(C_FUNPTR) :: farg4 + +farg1 = cvode_mem +farg2 = which +farg3 = jtsetupbs +farg4 = jtimesbs +fresult = swigc_FCVodeSetJacTimesBS(farg1, farg2, farg3, farg4) +swig_result = fresult +end function + +function FCVodeSetLinSysFnB(cvode_mem, which, linsys) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_INT), intent(in) :: which +type(C_FUNPTR), intent(in), value :: linsys +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 +type(C_FUNPTR) :: farg3 + +farg1 = cvode_mem +farg2 = which +farg3 = linsys +fresult = swigc_FCVodeSetLinSysFnB(farg1, farg2, farg3) +swig_result = fresult +end function + +function FCVodeSetLinSysFnBS(cvode_mem, which, linsys) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: cvode_mem +integer(C_INT), intent(in) :: which +type(C_FUNPTR), intent(in), value :: linsys +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 +type(C_FUNPTR) :: farg3 + +farg1 = cvode_mem +farg2 = which +farg3 = linsys +fresult = swigc_FCVodeSetLinSysFnBS(farg1, farg2, farg3) +swig_result = fresult +end function + + +end module diff --git a/src/cvodes/fmod_int64/CMakeLists.txt b/src/cvodes/fmod_int64/CMakeLists.txt new file mode 100644 index 0000000000..031ac9c6f9 --- /dev/null +++ b/src/cvodes/fmod_int64/CMakeLists.txt @@ -0,0 +1,46 @@ +# --------------------------------------------------------------- +# Programmer: Cody J. Balos @ LLNL +# --------------------------------------------------------------- +# SUNDIALS Copyright Start +# Copyright (c) 2002-2024, Lawrence Livermore National Security +# and Southern Methodist University. +# All rights reserved. +# +# See the top-level LICENSE and NOTICE files for details. +# +# SPDX-License-Identifier: BSD-3-Clause +# SUNDIALS Copyright End +# --------------------------------------------------------------- +# CMakeLists.txt file for the F2003 cvodes object library + +set(cvodes_SOURCES fcvodes_mod.f90 fcvodes_mod.c) + +# Create the library +sundials_add_f2003_library(sundials_fcvodes_mod + SOURCES + ${cvodes_SOURCES} + LINK_LIBRARIES + PUBLIC sundials_fcore_mod + OBJECT_LIBRARIES + sundials_fnvecserial_mod_obj + sundials_fsunmatrixband_mod_obj + sundials_fsunmatrixdense_mod_obj + sundials_fsunmatrixsparse_mod_obj + sundials_fsunlinsolband_mod_obj + sundials_fsunlinsoldense_mod_obj + sundials_fsunlinsolspbcgs_mod_obj + sundials_fsunlinsolspfgmr_mod_obj + sundials_fsunlinsolspgmr_mod_obj + sundials_fsunlinsolsptfqmr_mod_obj + sundials_fsunlinsolpcg_mod_obj + sundials_fsunnonlinsolnewton_mod_obj + sundials_fsunnonlinsolfixedpoint_mod_obj + OUTPUT_NAME + sundials_fcvodes_mod + VERSION + ${cvodeslib_VERSION} + SOVERSION + ${cvodeslib_SOVERSION} +) + +message(STATUS "Added CVODES F2003 interface") diff --git a/src/cvodes/fmod/fcvodes_mod.c b/src/cvodes/fmod_int64/fcvodes_mod.c similarity index 100% rename from src/cvodes/fmod/fcvodes_mod.c rename to src/cvodes/fmod_int64/fcvodes_mod.c diff --git a/src/cvodes/fmod/fcvodes_mod.f90 b/src/cvodes/fmod_int64/fcvodes_mod.f90 similarity index 100% rename from src/cvodes/fmod/fcvodes_mod.f90 rename to src/cvodes/fmod_int64/fcvodes_mod.f90 diff --git a/src/ida/CMakeLists.txt b/src/ida/CMakeLists.txt index 2bb371dee2..8a7e5ae25e 100644 --- a/src/ida/CMakeLists.txt +++ b/src/ida/CMakeLists.txt @@ -75,5 +75,5 @@ message(STATUS "Added IDA module") # Add F2003 module if the interface is enabled if(BUILD_FORTRAN_MODULE_INTERFACE) - add_subdirectory(fmod) + add_subdirectory("fmod_int${SUNDIALS_INDEX_SIZE}") endif() diff --git a/src/ida/fmod/CMakeLists.txt b/src/ida/fmod_int32/CMakeLists.txt similarity index 100% rename from src/ida/fmod/CMakeLists.txt rename to src/ida/fmod_int32/CMakeLists.txt diff --git a/src/ida/fmod_int32/fida_mod.c b/src/ida/fmod_int32/fida_mod.c new file mode 100644 index 0000000000..0ebd34a2c2 --- /dev/null +++ b/src/ida/fmod_int32/fida_mod.c @@ -0,0 +1,1784 @@ +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.0 + * + * This file is not intended to be easily readable and contains a number of + * coding conventions designed to improve portability and efficiency. Do not make + * changes to this file unless you know what you are doing--modify the SWIG + * interface file instead. + * ----------------------------------------------------------------------------- */ + +/* --------------------------------------------------------------- + * Programmer(s): Auto-generated by swig. + * --------------------------------------------------------------- + * SUNDIALS Copyright Start + * Copyright (c) 2002-2024, Lawrence Livermore National Security + * and Southern Methodist University. + * All rights reserved. + * + * See the top-level LICENSE and NOTICE files for details. + * + * SPDX-License-Identifier: BSD-3-Clause + * SUNDIALS Copyright End + * -------------------------------------------------------------*/ + +/* ----------------------------------------------------------------------------- + * This section contains generic SWIG labels for method/variable + * declarations/attributes, and other compiler dependent labels. + * ----------------------------------------------------------------------------- */ + +/* template workaround for compilers that cannot correctly implement the C++ standard */ +#ifndef SWIGTEMPLATEDISAMBIGUATOR +# if defined(__SUNPRO_CC) && (__SUNPRO_CC <= 0x560) +# define SWIGTEMPLATEDISAMBIGUATOR template +# elif defined(__HP_aCC) +/* Needed even with `aCC -AA' when `aCC -V' reports HP ANSI C++ B3910B A.03.55 */ +/* If we find a maximum version that requires this, the test would be __HP_aCC <= 35500 for A.03.55 */ +# define SWIGTEMPLATEDISAMBIGUATOR template +# else +# define SWIGTEMPLATEDISAMBIGUATOR +# endif +#endif + +/* inline attribute */ +#ifndef SWIGINLINE +# if defined(__cplusplus) || (defined(__GNUC__) && !defined(__STRICT_ANSI__)) +# define SWIGINLINE inline +# else +# define SWIGINLINE +# endif +#endif + +/* attribute recognised by some compilers to avoid 'unused' warnings */ +#ifndef SWIGUNUSED +# if defined(__GNUC__) +# if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)) +# define SWIGUNUSED __attribute__ ((__unused__)) +# else +# define SWIGUNUSED +# endif +# elif defined(__ICC) +# define SWIGUNUSED __attribute__ ((__unused__)) +# else +# define SWIGUNUSED +# endif +#endif + +#ifndef SWIG_MSC_UNSUPPRESS_4505 +# if defined(_MSC_VER) +# pragma warning(disable : 4505) /* unreferenced local function has been removed */ +# endif +#endif + +#ifndef SWIGUNUSEDPARM +# ifdef __cplusplus +# define SWIGUNUSEDPARM(p) +# else +# define SWIGUNUSEDPARM(p) p SWIGUNUSED +# endif +#endif + +/* internal SWIG method */ +#ifndef SWIGINTERN +# define SWIGINTERN static SWIGUNUSED +#endif + +/* internal inline SWIG method */ +#ifndef SWIGINTERNINLINE +# define SWIGINTERNINLINE SWIGINTERN SWIGINLINE +#endif + +/* qualifier for exported *const* global data variables*/ +#ifndef SWIGEXTERN +# ifdef __cplusplus +# define SWIGEXTERN extern +# else +# define SWIGEXTERN +# endif +#endif + +/* exporting methods */ +#if defined(__GNUC__) +# if (__GNUC__ >= 4) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) +# ifndef GCC_HASCLASSVISIBILITY +# define GCC_HASCLASSVISIBILITY +# endif +# endif +#endif + +#ifndef SWIGEXPORT +# if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__) +# if defined(STATIC_LINKED) +# define SWIGEXPORT +# else +# define SWIGEXPORT __declspec(dllexport) +# endif +# else +# if defined(__GNUC__) && defined(GCC_HASCLASSVISIBILITY) +# define SWIGEXPORT __attribute__ ((visibility("default"))) +# else +# define SWIGEXPORT +# endif +# endif +#endif + +/* calling conventions for Windows */ +#ifndef SWIGSTDCALL +# if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__) +# define SWIGSTDCALL __stdcall +# else +# define SWIGSTDCALL +# endif +#endif + +/* Deal with Microsoft's attempt at deprecating C standard runtime functions */ +#if !defined(SWIG_NO_CRT_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_CRT_SECURE_NO_DEPRECATE) +# define _CRT_SECURE_NO_DEPRECATE +#endif + +/* Deal with Microsoft's attempt at deprecating methods in the standard C++ library */ +#if !defined(SWIG_NO_SCL_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_SCL_SECURE_NO_DEPRECATE) +# define _SCL_SECURE_NO_DEPRECATE +#endif + +/* Deal with Apple's deprecated 'AssertMacros.h' from Carbon-framework */ +#if defined(__APPLE__) && !defined(__ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES) +# define __ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES 0 +#endif + +/* Intel's compiler complains if a variable which was never initialised is + * cast to void, which is a common idiom which we use to indicate that we + * are aware a variable isn't used. So we just silence that warning. + * See: https://github.com/swig/swig/issues/192 for more discussion. + */ +#ifdef __INTEL_COMPILER +# pragma warning disable 592 +#endif + +/* Errors in SWIG */ +#define SWIG_UnknownError -1 +#define SWIG_IOError -2 +#define SWIG_RuntimeError -3 +#define SWIG_IndexError -4 +#define SWIG_TypeError -5 +#define SWIG_DivisionByZero -6 +#define SWIG_OverflowError -7 +#define SWIG_SyntaxError -8 +#define SWIG_ValueError -9 +#define SWIG_SystemError -10 +#define SWIG_AttributeError -11 +#define SWIG_MemoryError -12 +#define SWIG_NullReferenceError -13 + + + + +#include +#define SWIG_exception_impl(DECL, CODE, MSG, RETURNNULL) \ + { printf("In " DECL ": " MSG); assert(0); RETURNNULL; } + + +#include +#if defined(_MSC_VER) || defined(__BORLANDC__) || defined(_WATCOM) +# ifndef snprintf +# define snprintf _snprintf +# endif +#endif + + +/* Support for the `contract` feature. + * + * Note that RETURNNULL is first because it's inserted via a 'Replaceall' in + * the fortran.cxx file. + */ +#define SWIG_contract_assert(RETURNNULL, EXPR, MSG) \ + if (!(EXPR)) { SWIG_exception_impl("$decl", SWIG_ValueError, MSG, RETURNNULL); } + + +#define SWIGVERSION 0x040000 +#define SWIG_VERSION SWIGVERSION + + +#define SWIG_as_voidptr(a) (void *)((const void *)(a)) +#define SWIG_as_voidptrptr(a) ((void)SWIG_as_voidptr(*a),(void**)(a)) + + +#include "ida/ida.h" +#include "ida/ida_bbdpre.h" +#include "ida/ida_ls.h" + + +#include +#ifdef _MSC_VER +# ifndef strtoull +# define strtoull _strtoui64 +# endif +# ifndef strtoll +# define strtoll _strtoi64 +# endif +#endif + + +typedef struct { + void* data; + size_t size; +} SwigArrayWrapper; + + +SWIGINTERN SwigArrayWrapper SwigArrayWrapper_uninitialized() { + SwigArrayWrapper result; + result.data = NULL; + result.size = 0; + return result; +} + + +#include + +SWIGEXPORT void * _wrap_FIDACreate(void *farg1) { + void * fresult ; + SUNContext arg1 = (SUNContext) 0 ; + void *result = 0 ; + + arg1 = (SUNContext)(farg1); + result = (void *)IDACreate(arg1); + fresult = result; + return fresult; +} + + +SWIGEXPORT int _wrap_FIDAInit(void *farg1, IDAResFn farg2, double const *farg3, N_Vector farg4, N_Vector farg5) { + int fresult ; + void *arg1 = (void *) 0 ; + IDAResFn arg2 = (IDAResFn) 0 ; + sunrealtype arg3 ; + N_Vector arg4 = (N_Vector) 0 ; + N_Vector arg5 = (N_Vector) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (IDAResFn)(farg2); + arg3 = (sunrealtype)(*farg3); + arg4 = (N_Vector)(farg4); + arg5 = (N_Vector)(farg5); + result = (int)IDAInit(arg1,arg2,arg3,arg4,arg5); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDAReInit(void *farg1, double const *farg2, N_Vector farg3, N_Vector farg4) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + N_Vector arg3 = (N_Vector) 0 ; + N_Vector arg4 = (N_Vector) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + arg3 = (N_Vector)(farg3); + arg4 = (N_Vector)(farg4); + result = (int)IDAReInit(arg1,arg2,arg3,arg4); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDASStolerances(void *farg1, double const *farg2, double const *farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + sunrealtype arg3 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + arg3 = (sunrealtype)(*farg3); + result = (int)IDASStolerances(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDASVtolerances(void *farg1, double const *farg2, N_Vector farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + N_Vector arg3 = (N_Vector) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + arg3 = (N_Vector)(farg3); + result = (int)IDASVtolerances(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDAWFtolerances(void *farg1, IDAEwtFn farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + IDAEwtFn arg2 = (IDAEwtFn) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (IDAEwtFn)(farg2); + result = (int)IDAWFtolerances(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDACalcIC(void *farg1, int const *farg2, double const *farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + sunrealtype arg3 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + arg3 = (sunrealtype)(*farg3); + result = (int)IDACalcIC(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDASetNonlinConvCoefIC(void *farg1, double const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + result = (int)IDASetNonlinConvCoefIC(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDASetMaxNumStepsIC(void *farg1, int const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + result = (int)IDASetMaxNumStepsIC(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDASetMaxNumJacsIC(void *farg1, int const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + result = (int)IDASetMaxNumJacsIC(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDASetMaxNumItersIC(void *farg1, int const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + result = (int)IDASetMaxNumItersIC(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDASetLineSearchOffIC(void *farg1, int const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + result = (int)IDASetLineSearchOffIC(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDASetStepToleranceIC(void *farg1, double const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + result = (int)IDASetStepToleranceIC(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDASetMaxBacksIC(void *farg1, int const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + result = (int)IDASetMaxBacksIC(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDASetDeltaCjLSetup(void *farg1, double const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + result = (int)IDASetDeltaCjLSetup(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDASetUserData(void *farg1, void *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + void *arg2 = (void *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (void *)(farg2); + result = (int)IDASetUserData(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDASetMaxOrd(void *farg1, int const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + result = (int)IDASetMaxOrd(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDASetMaxNumSteps(void *farg1, long const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long)(*farg2); + result = (int)IDASetMaxNumSteps(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDASetInitStep(void *farg1, double const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + result = (int)IDASetInitStep(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDASetMaxStep(void *farg1, double const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + result = (int)IDASetMaxStep(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDASetMinStep(void *farg1, double const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + result = (int)IDASetMinStep(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDASetStopTime(void *farg1, double const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + result = (int)IDASetStopTime(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDAClearStopTime(void *farg1) { + int fresult ; + void *arg1 = (void *) 0 ; + int result; + + arg1 = (void *)(farg1); + result = (int)IDAClearStopTime(arg1); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDASetMaxErrTestFails(void *farg1, int const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + result = (int)IDASetMaxErrTestFails(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDASetSuppressAlg(void *farg1, int const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + result = (int)IDASetSuppressAlg(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDASetId(void *farg1, N_Vector farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + N_Vector arg2 = (N_Vector) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (N_Vector)(farg2); + result = (int)IDASetId(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDASetConstraints(void *farg1, N_Vector farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + N_Vector arg2 = (N_Vector) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (N_Vector)(farg2); + result = (int)IDASetConstraints(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDASetEtaFixedStepBounds(void *farg1, double const *farg2, double const *farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + sunrealtype arg3 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + arg3 = (sunrealtype)(*farg3); + result = (int)IDASetEtaFixedStepBounds(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDASetEtaMin(void *farg1, double const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + result = (int)IDASetEtaMin(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDASetEtaMax(void *farg1, double const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + result = (int)IDASetEtaMax(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDASetEtaLow(void *farg1, double const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + result = (int)IDASetEtaLow(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDASetEtaMinErrFail(void *farg1, double const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + result = (int)IDASetEtaMinErrFail(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDASetEtaConvFail(void *farg1, double const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + result = (int)IDASetEtaConvFail(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDASetMaxConvFails(void *farg1, int const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + result = (int)IDASetMaxConvFails(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDASetMaxNonlinIters(void *farg1, int const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + result = (int)IDASetMaxNonlinIters(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDASetNlsResFn(void *farg1, IDAResFn farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + IDAResFn arg2 = (IDAResFn) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (IDAResFn)(farg2); + result = (int)IDASetNlsResFn(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDASetNonlinConvCoef(void *farg1, double const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + result = (int)IDASetNonlinConvCoef(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDASetNonlinearSolver(void *farg1, SUNNonlinearSolver farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + SUNNonlinearSolver arg2 = (SUNNonlinearSolver) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (SUNNonlinearSolver)(farg2); + result = (int)IDASetNonlinearSolver(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDARootInit(void *farg1, int const *farg2, IDARootFn farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + IDARootFn arg3 = (IDARootFn) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + arg3 = (IDARootFn)(farg3); + result = (int)IDARootInit(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDASetRootDirection(void *farg1, int *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + int *arg2 = (int *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int *)(farg2); + result = (int)IDASetRootDirection(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDASetNoInactiveRootWarn(void *farg1) { + int fresult ; + void *arg1 = (void *) 0 ; + int result; + + arg1 = (void *)(farg1); + result = (int)IDASetNoInactiveRootWarn(arg1); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDASolve(void *farg1, double const *farg2, double *farg3, N_Vector farg4, N_Vector farg5, int const *farg6) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + sunrealtype *arg3 = (sunrealtype *) 0 ; + N_Vector arg4 = (N_Vector) 0 ; + N_Vector arg5 = (N_Vector) 0 ; + int arg6 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + arg3 = (sunrealtype *)(farg3); + arg4 = (N_Vector)(farg4); + arg5 = (N_Vector)(farg5); + arg6 = (int)(*farg6); + result = (int)IDASolve(arg1,arg2,arg3,arg4,arg5,arg6); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDAComputeY(void *farg1, N_Vector farg2, N_Vector farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + N_Vector arg2 = (N_Vector) 0 ; + N_Vector arg3 = (N_Vector) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (N_Vector)(farg2); + arg3 = (N_Vector)(farg3); + result = (int)IDAComputeY(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDAComputeYp(void *farg1, N_Vector farg2, N_Vector farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + N_Vector arg2 = (N_Vector) 0 ; + N_Vector arg3 = (N_Vector) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (N_Vector)(farg2); + arg3 = (N_Vector)(farg3); + result = (int)IDAComputeYp(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDAGetDky(void *farg1, double const *farg2, int const *farg3, N_Vector farg4) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + int arg3 ; + N_Vector arg4 = (N_Vector) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + arg3 = (int)(*farg3); + arg4 = (N_Vector)(farg4); + result = (int)IDAGetDky(arg1,arg2,arg3,arg4); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDAGetWorkSpace(void *farg1, long *farg2, long *farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + long *arg3 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + arg3 = (long *)(farg3); + result = (int)IDAGetWorkSpace(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDAGetNumSteps(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)IDAGetNumSteps(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDAGetNumResEvals(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)IDAGetNumResEvals(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDAGetNumLinSolvSetups(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)IDAGetNumLinSolvSetups(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDAGetNumErrTestFails(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)IDAGetNumErrTestFails(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDAGetNumBacktrackOps(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)IDAGetNumBacktrackOps(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDAGetConsistentIC(void *farg1, N_Vector farg2, N_Vector farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + N_Vector arg2 = (N_Vector) 0 ; + N_Vector arg3 = (N_Vector) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (N_Vector)(farg2); + arg3 = (N_Vector)(farg3); + result = (int)IDAGetConsistentIC(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDAGetLastOrder(void *farg1, int *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + int *arg2 = (int *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int *)(farg2); + result = (int)IDAGetLastOrder(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDAGetCurrentOrder(void *farg1, int *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + int *arg2 = (int *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int *)(farg2); + result = (int)IDAGetCurrentOrder(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDAGetCurrentCj(void *farg1, double *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype *arg2 = (sunrealtype *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype *)(farg2); + result = (int)IDAGetCurrentCj(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDAGetCurrentY(void *farg1, void *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + N_Vector *arg2 = (N_Vector *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (N_Vector *)(farg2); + result = (int)IDAGetCurrentY(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDAGetCurrentYp(void *farg1, void *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + N_Vector *arg2 = (N_Vector *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (N_Vector *)(farg2); + result = (int)IDAGetCurrentYp(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDAGetActualInitStep(void *farg1, double *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype *arg2 = (sunrealtype *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype *)(farg2); + result = (int)IDAGetActualInitStep(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDAGetLastStep(void *farg1, double *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype *arg2 = (sunrealtype *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype *)(farg2); + result = (int)IDAGetLastStep(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDAGetCurrentStep(void *farg1, double *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype *arg2 = (sunrealtype *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype *)(farg2); + result = (int)IDAGetCurrentStep(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDAGetCurrentTime(void *farg1, double *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype *arg2 = (sunrealtype *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype *)(farg2); + result = (int)IDAGetCurrentTime(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDAGetTolScaleFactor(void *farg1, double *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype *arg2 = (sunrealtype *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype *)(farg2); + result = (int)IDAGetTolScaleFactor(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDAGetErrWeights(void *farg1, N_Vector farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + N_Vector arg2 = (N_Vector) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (N_Vector)(farg2); + result = (int)IDAGetErrWeights(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDAGetEstLocalErrors(void *farg1, N_Vector farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + N_Vector arg2 = (N_Vector) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (N_Vector)(farg2); + result = (int)IDAGetEstLocalErrors(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDAGetNumGEvals(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)IDAGetNumGEvals(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDAGetRootInfo(void *farg1, int *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + int *arg2 = (int *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int *)(farg2); + result = (int)IDAGetRootInfo(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDAGetIntegratorStats(void *farg1, long *farg2, long *farg3, long *farg4, long *farg5, int *farg6, int *farg7, double *farg8, double *farg9, double *farg10, double *farg11) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + long *arg3 = (long *) 0 ; + long *arg4 = (long *) 0 ; + long *arg5 = (long *) 0 ; + int *arg6 = (int *) 0 ; + int *arg7 = (int *) 0 ; + sunrealtype *arg8 = (sunrealtype *) 0 ; + sunrealtype *arg9 = (sunrealtype *) 0 ; + sunrealtype *arg10 = (sunrealtype *) 0 ; + sunrealtype *arg11 = (sunrealtype *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + arg3 = (long *)(farg3); + arg4 = (long *)(farg4); + arg5 = (long *)(farg5); + arg6 = (int *)(farg6); + arg7 = (int *)(farg7); + arg8 = (sunrealtype *)(farg8); + arg9 = (sunrealtype *)(farg9); + arg10 = (sunrealtype *)(farg10); + arg11 = (sunrealtype *)(farg11); + result = (int)IDAGetIntegratorStats(arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9,arg10,arg11); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDAGetNonlinearSystemData(void *farg1, double *farg2, void *farg3, void *farg4, void *farg5, void *farg6, void *farg7, double *farg8, void *farg9) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype *arg2 = (sunrealtype *) 0 ; + N_Vector *arg3 = (N_Vector *) 0 ; + N_Vector *arg4 = (N_Vector *) 0 ; + N_Vector *arg5 = (N_Vector *) 0 ; + N_Vector *arg6 = (N_Vector *) 0 ; + N_Vector *arg7 = (N_Vector *) 0 ; + sunrealtype *arg8 = (sunrealtype *) 0 ; + void **arg9 = (void **) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype *)(farg2); + arg3 = (N_Vector *)(farg3); + arg4 = (N_Vector *)(farg4); + arg5 = (N_Vector *)(farg5); + arg6 = (N_Vector *)(farg6); + arg7 = (N_Vector *)(farg7); + arg8 = (sunrealtype *)(farg8); + arg9 = (void **)(farg9); + result = (int)IDAGetNonlinearSystemData(arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDAGetNumNonlinSolvIters(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)IDAGetNumNonlinSolvIters(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDAGetNumNonlinSolvConvFails(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)IDAGetNumNonlinSolvConvFails(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDAGetNonlinSolvStats(void *farg1, long *farg2, long *farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + long *arg3 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + arg3 = (long *)(farg3); + result = (int)IDAGetNonlinSolvStats(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDAGetNumStepSolveFails(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)IDAGetNumStepSolveFails(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDAGetUserData(void *farg1, void *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + void **arg2 = (void **) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (void **)(farg2); + result = (int)IDAGetUserData(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDAPrintAllStats(void *farg1, void *farg2, int const *farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + FILE *arg2 = (FILE *) 0 ; + SUNOutputFormat arg3 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (FILE *)(farg2); + arg3 = (SUNOutputFormat)(*farg3); + result = (int)IDAPrintAllStats(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT SwigArrayWrapper _wrap_FIDAGetReturnFlagName(long const *farg1) { + SwigArrayWrapper fresult ; + long arg1 ; + char *result = 0 ; + + arg1 = (long)(*farg1); + result = (char *)IDAGetReturnFlagName(arg1); + fresult.size = strlen((const char*)(result)); + fresult.data = (char *)(result); + return fresult; +} + + +SWIGEXPORT void _wrap_FIDAFree(void *farg1) { + void **arg1 = (void **) 0 ; + + arg1 = (void **)(farg1); + IDAFree(arg1); +} + + +SWIGEXPORT int _wrap_FIDASetJacTimesResFn(void *farg1, IDAResFn farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + IDAResFn arg2 = (IDAResFn) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (IDAResFn)(farg2); + result = (int)IDASetJacTimesResFn(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDABBDPrecInit(void *farg1, int32_t const *farg2, int32_t const *farg3, int32_t const *farg4, int32_t const *farg5, int32_t const *farg6, double const *farg7, IDABBDLocalFn farg8, IDABBDCommFn farg9) { + int fresult ; + void *arg1 = (void *) 0 ; + sunindextype arg2 ; + sunindextype arg3 ; + sunindextype arg4 ; + sunindextype arg5 ; + sunindextype arg6 ; + sunrealtype arg7 ; + IDABBDLocalFn arg8 = (IDABBDLocalFn) 0 ; + IDABBDCommFn arg9 = (IDABBDCommFn) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunindextype)(*farg2); + arg3 = (sunindextype)(*farg3); + arg4 = (sunindextype)(*farg4); + arg5 = (sunindextype)(*farg5); + arg6 = (sunindextype)(*farg6); + arg7 = (sunrealtype)(*farg7); + arg8 = (IDABBDLocalFn)(farg8); + arg9 = (IDABBDCommFn)(farg9); + result = (int)IDABBDPrecInit(arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDABBDPrecReInit(void *farg1, int32_t const *farg2, int32_t const *farg3, double const *farg4) { + int fresult ; + void *arg1 = (void *) 0 ; + sunindextype arg2 ; + sunindextype arg3 ; + sunrealtype arg4 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunindextype)(*farg2); + arg3 = (sunindextype)(*farg3); + arg4 = (sunrealtype)(*farg4); + result = (int)IDABBDPrecReInit(arg1,arg2,arg3,arg4); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDABBDPrecGetWorkSpace(void *farg1, long *farg2, long *farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + long *arg3 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + arg3 = (long *)(farg3); + result = (int)IDABBDPrecGetWorkSpace(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDABBDPrecGetNumGfnEvals(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)IDABBDPrecGetNumGfnEvals(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDASetLinearSolver(void *farg1, SUNLinearSolver farg2, SUNMatrix farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + SUNLinearSolver arg2 = (SUNLinearSolver) 0 ; + SUNMatrix arg3 = (SUNMatrix) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (SUNLinearSolver)(farg2); + arg3 = (SUNMatrix)(farg3); + result = (int)IDASetLinearSolver(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDASetJacFn(void *farg1, IDALsJacFn farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + IDALsJacFn arg2 = (IDALsJacFn) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (IDALsJacFn)(farg2); + result = (int)IDASetJacFn(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDASetPreconditioner(void *farg1, IDALsPrecSetupFn farg2, IDALsPrecSolveFn farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + IDALsPrecSetupFn arg2 = (IDALsPrecSetupFn) 0 ; + IDALsPrecSolveFn arg3 = (IDALsPrecSolveFn) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (IDALsPrecSetupFn)(farg2); + arg3 = (IDALsPrecSolveFn)(farg3); + result = (int)IDASetPreconditioner(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDASetJacTimes(void *farg1, IDALsJacTimesSetupFn farg2, IDALsJacTimesVecFn farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + IDALsJacTimesSetupFn arg2 = (IDALsJacTimesSetupFn) 0 ; + IDALsJacTimesVecFn arg3 = (IDALsJacTimesVecFn) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (IDALsJacTimesSetupFn)(farg2); + arg3 = (IDALsJacTimesVecFn)(farg3); + result = (int)IDASetJacTimes(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDASetEpsLin(void *farg1, double const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + result = (int)IDASetEpsLin(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDASetLSNormFactor(void *farg1, double const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + result = (int)IDASetLSNormFactor(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDASetLinearSolutionScaling(void *farg1, int const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + result = (int)IDASetLinearSolutionScaling(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDASetIncrementFactor(void *farg1, double const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + result = (int)IDASetIncrementFactor(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDAGetJac(void *farg1, void *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + SUNMatrix *arg2 = (SUNMatrix *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (SUNMatrix *)(farg2); + result = (int)IDAGetJac(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDAGetJacCj(void *farg1, double *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype *arg2 = (sunrealtype *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype *)(farg2); + result = (int)IDAGetJacCj(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDAGetJacTime(void *farg1, double *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype *arg2 = (sunrealtype *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype *)(farg2); + result = (int)IDAGetJacTime(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDAGetJacNumSteps(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)IDAGetJacNumSteps(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDAGetLinWorkSpace(void *farg1, long *farg2, long *farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + long *arg3 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + arg3 = (long *)(farg3); + result = (int)IDAGetLinWorkSpace(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDAGetNumJacEvals(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)IDAGetNumJacEvals(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDAGetNumPrecEvals(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)IDAGetNumPrecEvals(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDAGetNumPrecSolves(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)IDAGetNumPrecSolves(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDAGetNumLinIters(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)IDAGetNumLinIters(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDAGetNumLinConvFails(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)IDAGetNumLinConvFails(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDAGetNumJTSetupEvals(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)IDAGetNumJTSetupEvals(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDAGetNumJtimesEvals(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)IDAGetNumJtimesEvals(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDAGetNumLinResEvals(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)IDAGetNumLinResEvals(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDAGetLastLinFlag(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)IDAGetLastLinFlag(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT SwigArrayWrapper _wrap_FIDAGetLinReturnFlagName(long const *farg1) { + SwigArrayWrapper fresult ; + long arg1 ; + char *result = 0 ; + + arg1 = (long)(*farg1); + result = (char *)IDAGetLinReturnFlagName(arg1); + fresult.size = strlen((const char*)(result)); + fresult.data = (char *)(result); + return fresult; +} + + + diff --git a/src/ida/fmod_int32/fida_mod.f90 b/src/ida/fmod_int32/fida_mod.f90 new file mode 100644 index 0000000000..735aa814cb --- /dev/null +++ b/src/ida/fmod_int32/fida_mod.f90 @@ -0,0 +1,2992 @@ +! This file was automatically generated by SWIG (http://www.swig.org). +! Version 4.0.0 +! +! Do not make changes to this file unless you know what you are doing--modify +! the SWIG interface file instead. + +! --------------------------------------------------------------- +! Programmer(s): Auto-generated by swig. +! --------------------------------------------------------------- +! SUNDIALS Copyright Start +! Copyright (c) 2002-2024, Lawrence Livermore National Security +! and Southern Methodist University. +! All rights reserved. +! +! See the top-level LICENSE and NOTICE files for details. +! +! SPDX-License-Identifier: BSD-3-Clause +! SUNDIALS Copyright End +! --------------------------------------------------------------- + +module fida_mod + use, intrinsic :: ISO_C_BINDING + use fsundials_core_mod + implicit none + private + + ! DECLARATION CONSTRUCTS + integer(C_INT), parameter, public :: IDA_NORMAL = 1_C_INT + integer(C_INT), parameter, public :: IDA_ONE_STEP = 2_C_INT + integer(C_INT), parameter, public :: IDA_YA_YDP_INIT = 1_C_INT + integer(C_INT), parameter, public :: IDA_Y_INIT = 2_C_INT + integer(C_INT), parameter, public :: IDA_SUCCESS = 0_C_INT + integer(C_INT), parameter, public :: IDA_TSTOP_RETURN = 1_C_INT + integer(C_INT), parameter, public :: IDA_ROOT_RETURN = 2_C_INT + integer(C_INT), parameter, public :: IDA_WARNING = 99_C_INT + integer(C_INT), parameter, public :: IDA_TOO_MUCH_WORK = -1_C_INT + integer(C_INT), parameter, public :: IDA_TOO_MUCH_ACC = -2_C_INT + integer(C_INT), parameter, public :: IDA_ERR_FAIL = -3_C_INT + integer(C_INT), parameter, public :: IDA_CONV_FAIL = -4_C_INT + integer(C_INT), parameter, public :: IDA_LINIT_FAIL = -5_C_INT + integer(C_INT), parameter, public :: IDA_LSETUP_FAIL = -6_C_INT + integer(C_INT), parameter, public :: IDA_LSOLVE_FAIL = -7_C_INT + integer(C_INT), parameter, public :: IDA_RES_FAIL = -8_C_INT + integer(C_INT), parameter, public :: IDA_REP_RES_ERR = -9_C_INT + integer(C_INT), parameter, public :: IDA_RTFUNC_FAIL = -10_C_INT + integer(C_INT), parameter, public :: IDA_CONSTR_FAIL = -11_C_INT + integer(C_INT), parameter, public :: IDA_FIRST_RES_FAIL = -12_C_INT + integer(C_INT), parameter, public :: IDA_LINESEARCH_FAIL = -13_C_INT + integer(C_INT), parameter, public :: IDA_NO_RECOVERY = -14_C_INT + integer(C_INT), parameter, public :: IDA_NLS_INIT_FAIL = -15_C_INT + integer(C_INT), parameter, public :: IDA_NLS_SETUP_FAIL = -16_C_INT + integer(C_INT), parameter, public :: IDA_NLS_FAIL = -17_C_INT + integer(C_INT), parameter, public :: IDA_MEM_NULL = -20_C_INT + integer(C_INT), parameter, public :: IDA_MEM_FAIL = -21_C_INT + integer(C_INT), parameter, public :: IDA_ILL_INPUT = -22_C_INT + integer(C_INT), parameter, public :: IDA_NO_MALLOC = -23_C_INT + integer(C_INT), parameter, public :: IDA_BAD_EWT = -24_C_INT + integer(C_INT), parameter, public :: IDA_BAD_K = -25_C_INT + integer(C_INT), parameter, public :: IDA_BAD_T = -26_C_INT + integer(C_INT), parameter, public :: IDA_BAD_DKY = -27_C_INT + integer(C_INT), parameter, public :: IDA_VECTOROP_ERR = -28_C_INT + integer(C_INT), parameter, public :: IDA_CONTEXT_ERR = -29_C_INT + integer(C_INT), parameter, public :: IDA_UNRECOGNIZED_ERROR = -99_C_INT + public :: FIDACreate + public :: FIDAInit + public :: FIDAReInit + public :: FIDASStolerances + public :: FIDASVtolerances + public :: FIDAWFtolerances + public :: FIDACalcIC + public :: FIDASetNonlinConvCoefIC + public :: FIDASetMaxNumStepsIC + public :: FIDASetMaxNumJacsIC + public :: FIDASetMaxNumItersIC + public :: FIDASetLineSearchOffIC + public :: FIDASetStepToleranceIC + public :: FIDASetMaxBacksIC + public :: FIDASetDeltaCjLSetup + public :: FIDASetUserData + public :: FIDASetMaxOrd + public :: FIDASetMaxNumSteps + public :: FIDASetInitStep + public :: FIDASetMaxStep + public :: FIDASetMinStep + public :: FIDASetStopTime + public :: FIDAClearStopTime + public :: FIDASetMaxErrTestFails + public :: FIDASetSuppressAlg + public :: FIDASetId + public :: FIDASetConstraints + public :: FIDASetEtaFixedStepBounds + public :: FIDASetEtaMin + public :: FIDASetEtaMax + public :: FIDASetEtaLow + public :: FIDASetEtaMinErrFail + public :: FIDASetEtaConvFail + public :: FIDASetMaxConvFails + public :: FIDASetMaxNonlinIters + public :: FIDASetNlsResFn + public :: FIDASetNonlinConvCoef + public :: FIDASetNonlinearSolver + public :: FIDARootInit + public :: FIDASetRootDirection + public :: FIDASetNoInactiveRootWarn + public :: FIDASolve + public :: FIDAComputeY + public :: FIDAComputeYp + public :: FIDAGetDky + public :: FIDAGetWorkSpace + public :: FIDAGetNumSteps + public :: FIDAGetNumResEvals + public :: FIDAGetNumLinSolvSetups + public :: FIDAGetNumErrTestFails + public :: FIDAGetNumBacktrackOps + public :: FIDAGetConsistentIC + public :: FIDAGetLastOrder + public :: FIDAGetCurrentOrder + public :: FIDAGetCurrentCj + public :: FIDAGetCurrentY + public :: FIDAGetCurrentYp + public :: FIDAGetActualInitStep + public :: FIDAGetLastStep + public :: FIDAGetCurrentStep + public :: FIDAGetCurrentTime + public :: FIDAGetTolScaleFactor + public :: FIDAGetErrWeights + public :: FIDAGetEstLocalErrors + public :: FIDAGetNumGEvals + public :: FIDAGetRootInfo + public :: FIDAGetIntegratorStats + public :: FIDAGetNonlinearSystemData + public :: FIDAGetNumNonlinSolvIters + public :: FIDAGetNumNonlinSolvConvFails + public :: FIDAGetNonlinSolvStats + public :: FIDAGetNumStepSolveFails + public :: FIDAGetUserData + public :: FIDAPrintAllStats + type, bind(C) :: SwigArrayWrapper + type(C_PTR), public :: data = C_NULL_PTR + integer(C_SIZE_T), public :: size = 0 + end type + public :: FIDAGetReturnFlagName + public :: FIDAFree + public :: FIDASetJacTimesResFn + public :: FIDABBDPrecInit + public :: FIDABBDPrecReInit + public :: FIDABBDPrecGetWorkSpace + public :: FIDABBDPrecGetNumGfnEvals + integer(C_INT), parameter, public :: IDALS_SUCCESS = 0_C_INT + integer(C_INT), parameter, public :: IDALS_MEM_NULL = -1_C_INT + integer(C_INT), parameter, public :: IDALS_LMEM_NULL = -2_C_INT + integer(C_INT), parameter, public :: IDALS_ILL_INPUT = -3_C_INT + integer(C_INT), parameter, public :: IDALS_MEM_FAIL = -4_C_INT + integer(C_INT), parameter, public :: IDALS_PMEM_NULL = -5_C_INT + integer(C_INT), parameter, public :: IDALS_JACFUNC_UNRECVR = -6_C_INT + integer(C_INT), parameter, public :: IDALS_JACFUNC_RECVR = -7_C_INT + integer(C_INT), parameter, public :: IDALS_SUNMAT_FAIL = -8_C_INT + integer(C_INT), parameter, public :: IDALS_SUNLS_FAIL = -9_C_INT + public :: FIDASetLinearSolver + public :: FIDASetJacFn + public :: FIDASetPreconditioner + public :: FIDASetJacTimes + public :: FIDASetEpsLin + public :: FIDASetLSNormFactor + public :: FIDASetLinearSolutionScaling + public :: FIDASetIncrementFactor + public :: FIDAGetJac + public :: FIDAGetJacCj + public :: FIDAGetJacTime + public :: FIDAGetJacNumSteps + public :: FIDAGetLinWorkSpace + public :: FIDAGetNumJacEvals + public :: FIDAGetNumPrecEvals + public :: FIDAGetNumPrecSolves + public :: FIDAGetNumLinIters + public :: FIDAGetNumLinConvFails + public :: FIDAGetNumJTSetupEvals + public :: FIDAGetNumJtimesEvals + public :: FIDAGetNumLinResEvals + public :: FIDAGetLastLinFlag + public :: FIDAGetLinReturnFlagName + +! WRAPPER DECLARATIONS +interface +function swigc_FIDACreate(farg1) & +bind(C, name="_wrap_FIDACreate") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR) :: fresult +end function + +function swigc_FIDAInit(farg1, farg2, farg3, farg4, farg5) & +bind(C, name="_wrap_FIDAInit") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_FUNPTR), value :: farg2 +real(C_DOUBLE), intent(in) :: farg3 +type(C_PTR), value :: farg4 +type(C_PTR), value :: farg5 +integer(C_INT) :: fresult +end function + +function swigc_FIDAReInit(farg1, farg2, farg3, farg4) & +bind(C, name="_wrap_FIDAReInit") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +type(C_PTR), value :: farg3 +type(C_PTR), value :: farg4 +integer(C_INT) :: fresult +end function + +function swigc_FIDASStolerances(farg1, farg2, farg3) & +bind(C, name="_wrap_FIDASStolerances") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +real(C_DOUBLE), intent(in) :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FIDASVtolerances(farg1, farg2, farg3) & +bind(C, name="_wrap_FIDASVtolerances") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FIDAWFtolerances(farg1, farg2) & +bind(C, name="_wrap_FIDAWFtolerances") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_FUNPTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FIDACalcIC(farg1, farg2, farg3) & +bind(C, name="_wrap_FIDACalcIC") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +real(C_DOUBLE), intent(in) :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FIDASetNonlinConvCoefIC(farg1, farg2) & +bind(C, name="_wrap_FIDASetNonlinConvCoefIC") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FIDASetMaxNumStepsIC(farg1, farg2) & +bind(C, name="_wrap_FIDASetMaxNumStepsIC") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FIDASetMaxNumJacsIC(farg1, farg2) & +bind(C, name="_wrap_FIDASetMaxNumJacsIC") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FIDASetMaxNumItersIC(farg1, farg2) & +bind(C, name="_wrap_FIDASetMaxNumItersIC") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FIDASetLineSearchOffIC(farg1, farg2) & +bind(C, name="_wrap_FIDASetLineSearchOffIC") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FIDASetStepToleranceIC(farg1, farg2) & +bind(C, name="_wrap_FIDASetStepToleranceIC") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FIDASetMaxBacksIC(farg1, farg2) & +bind(C, name="_wrap_FIDASetMaxBacksIC") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FIDASetDeltaCjLSetup(farg1, farg2) & +bind(C, name="_wrap_FIDASetDeltaCjLSetup") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FIDASetUserData(farg1, farg2) & +bind(C, name="_wrap_FIDASetUserData") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FIDASetMaxOrd(farg1, farg2) & +bind(C, name="_wrap_FIDASetMaxOrd") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FIDASetMaxNumSteps(farg1, farg2) & +bind(C, name="_wrap_FIDASetMaxNumSteps") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_LONG), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FIDASetInitStep(farg1, farg2) & +bind(C, name="_wrap_FIDASetInitStep") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FIDASetMaxStep(farg1, farg2) & +bind(C, name="_wrap_FIDASetMaxStep") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FIDASetMinStep(farg1, farg2) & +bind(C, name="_wrap_FIDASetMinStep") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FIDASetStopTime(farg1, farg2) & +bind(C, name="_wrap_FIDASetStopTime") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FIDAClearStopTime(farg1) & +bind(C, name="_wrap_FIDAClearStopTime") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT) :: fresult +end function + +function swigc_FIDASetMaxErrTestFails(farg1, farg2) & +bind(C, name="_wrap_FIDASetMaxErrTestFails") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FIDASetSuppressAlg(farg1, farg2) & +bind(C, name="_wrap_FIDASetSuppressAlg") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FIDASetId(farg1, farg2) & +bind(C, name="_wrap_FIDASetId") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FIDASetConstraints(farg1, farg2) & +bind(C, name="_wrap_FIDASetConstraints") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FIDASetEtaFixedStepBounds(farg1, farg2, farg3) & +bind(C, name="_wrap_FIDASetEtaFixedStepBounds") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +real(C_DOUBLE), intent(in) :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FIDASetEtaMin(farg1, farg2) & +bind(C, name="_wrap_FIDASetEtaMin") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FIDASetEtaMax(farg1, farg2) & +bind(C, name="_wrap_FIDASetEtaMax") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FIDASetEtaLow(farg1, farg2) & +bind(C, name="_wrap_FIDASetEtaLow") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FIDASetEtaMinErrFail(farg1, farg2) & +bind(C, name="_wrap_FIDASetEtaMinErrFail") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FIDASetEtaConvFail(farg1, farg2) & +bind(C, name="_wrap_FIDASetEtaConvFail") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FIDASetMaxConvFails(farg1, farg2) & +bind(C, name="_wrap_FIDASetMaxConvFails") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FIDASetMaxNonlinIters(farg1, farg2) & +bind(C, name="_wrap_FIDASetMaxNonlinIters") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FIDASetNlsResFn(farg1, farg2) & +bind(C, name="_wrap_FIDASetNlsResFn") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_FUNPTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FIDASetNonlinConvCoef(farg1, farg2) & +bind(C, name="_wrap_FIDASetNonlinConvCoef") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FIDASetNonlinearSolver(farg1, farg2) & +bind(C, name="_wrap_FIDASetNonlinearSolver") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FIDARootInit(farg1, farg2, farg3) & +bind(C, name="_wrap_FIDARootInit") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +type(C_FUNPTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FIDASetRootDirection(farg1, farg2) & +bind(C, name="_wrap_FIDASetRootDirection") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FIDASetNoInactiveRootWarn(farg1) & +bind(C, name="_wrap_FIDASetNoInactiveRootWarn") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT) :: fresult +end function + +function swigc_FIDASolve(farg1, farg2, farg3, farg4, farg5, farg6) & +bind(C, name="_wrap_FIDASolve") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +type(C_PTR), value :: farg3 +type(C_PTR), value :: farg4 +type(C_PTR), value :: farg5 +integer(C_INT), intent(in) :: farg6 +integer(C_INT) :: fresult +end function + +function swigc_FIDAComputeY(farg1, farg2, farg3) & +bind(C, name="_wrap_FIDAComputeY") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FIDAComputeYp(farg1, farg2, farg3) & +bind(C, name="_wrap_FIDAComputeYp") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FIDAGetDky(farg1, farg2, farg3, farg4) & +bind(C, name="_wrap_FIDAGetDky") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT), intent(in) :: farg3 +type(C_PTR), value :: farg4 +integer(C_INT) :: fresult +end function + +function swigc_FIDAGetWorkSpace(farg1, farg2, farg3) & +bind(C, name="_wrap_FIDAGetWorkSpace") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FIDAGetNumSteps(farg1, farg2) & +bind(C, name="_wrap_FIDAGetNumSteps") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FIDAGetNumResEvals(farg1, farg2) & +bind(C, name="_wrap_FIDAGetNumResEvals") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FIDAGetNumLinSolvSetups(farg1, farg2) & +bind(C, name="_wrap_FIDAGetNumLinSolvSetups") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FIDAGetNumErrTestFails(farg1, farg2) & +bind(C, name="_wrap_FIDAGetNumErrTestFails") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FIDAGetNumBacktrackOps(farg1, farg2) & +bind(C, name="_wrap_FIDAGetNumBacktrackOps") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FIDAGetConsistentIC(farg1, farg2, farg3) & +bind(C, name="_wrap_FIDAGetConsistentIC") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FIDAGetLastOrder(farg1, farg2) & +bind(C, name="_wrap_FIDAGetLastOrder") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FIDAGetCurrentOrder(farg1, farg2) & +bind(C, name="_wrap_FIDAGetCurrentOrder") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FIDAGetCurrentCj(farg1, farg2) & +bind(C, name="_wrap_FIDAGetCurrentCj") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FIDAGetCurrentY(farg1, farg2) & +bind(C, name="_wrap_FIDAGetCurrentY") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FIDAGetCurrentYp(farg1, farg2) & +bind(C, name="_wrap_FIDAGetCurrentYp") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FIDAGetActualInitStep(farg1, farg2) & +bind(C, name="_wrap_FIDAGetActualInitStep") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FIDAGetLastStep(farg1, farg2) & +bind(C, name="_wrap_FIDAGetLastStep") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FIDAGetCurrentStep(farg1, farg2) & +bind(C, name="_wrap_FIDAGetCurrentStep") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FIDAGetCurrentTime(farg1, farg2) & +bind(C, name="_wrap_FIDAGetCurrentTime") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FIDAGetTolScaleFactor(farg1, farg2) & +bind(C, name="_wrap_FIDAGetTolScaleFactor") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FIDAGetErrWeights(farg1, farg2) & +bind(C, name="_wrap_FIDAGetErrWeights") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FIDAGetEstLocalErrors(farg1, farg2) & +bind(C, name="_wrap_FIDAGetEstLocalErrors") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FIDAGetNumGEvals(farg1, farg2) & +bind(C, name="_wrap_FIDAGetNumGEvals") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FIDAGetRootInfo(farg1, farg2) & +bind(C, name="_wrap_FIDAGetRootInfo") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FIDAGetIntegratorStats(farg1, farg2, farg3, farg4, farg5, farg6, farg7, farg8, farg9, farg10, farg11) & +bind(C, name="_wrap_FIDAGetIntegratorStats") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +type(C_PTR), value :: farg4 +type(C_PTR), value :: farg5 +type(C_PTR), value :: farg6 +type(C_PTR), value :: farg7 +type(C_PTR), value :: farg8 +type(C_PTR), value :: farg9 +type(C_PTR), value :: farg10 +type(C_PTR), value :: farg11 +integer(C_INT) :: fresult +end function + +function swigc_FIDAGetNonlinearSystemData(farg1, farg2, farg3, farg4, farg5, farg6, farg7, farg8, farg9) & +bind(C, name="_wrap_FIDAGetNonlinearSystemData") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +type(C_PTR), value :: farg4 +type(C_PTR), value :: farg5 +type(C_PTR), value :: farg6 +type(C_PTR), value :: farg7 +type(C_PTR), value :: farg8 +type(C_PTR), value :: farg9 +integer(C_INT) :: fresult +end function + +function swigc_FIDAGetNumNonlinSolvIters(farg1, farg2) & +bind(C, name="_wrap_FIDAGetNumNonlinSolvIters") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FIDAGetNumNonlinSolvConvFails(farg1, farg2) & +bind(C, name="_wrap_FIDAGetNumNonlinSolvConvFails") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FIDAGetNonlinSolvStats(farg1, farg2, farg3) & +bind(C, name="_wrap_FIDAGetNonlinSolvStats") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FIDAGetNumStepSolveFails(farg1, farg2) & +bind(C, name="_wrap_FIDAGetNumStepSolveFails") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FIDAGetUserData(farg1, farg2) & +bind(C, name="_wrap_FIDAGetUserData") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FIDAPrintAllStats(farg1, farg2, farg3) & +bind(C, name="_wrap_FIDAPrintAllStats") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT), intent(in) :: farg3 +integer(C_INT) :: fresult +end function + + subroutine SWIG_free(cptr) & + bind(C, name="free") + use, intrinsic :: ISO_C_BINDING + type(C_PTR), value :: cptr +end subroutine +function swigc_FIDAGetReturnFlagName(farg1) & +bind(C, name="_wrap_FIDAGetReturnFlagName") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +import :: swigarraywrapper +integer(C_LONG), intent(in) :: farg1 +type(SwigArrayWrapper) :: fresult +end function + +subroutine swigc_FIDAFree(farg1) & +bind(C, name="_wrap_FIDAFree") +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +end subroutine + +function swigc_FIDASetJacTimesResFn(farg1, farg2) & +bind(C, name="_wrap_FIDASetJacTimesResFn") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_FUNPTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FIDABBDPrecInit(farg1, farg2, farg3, farg4, farg5, farg6, farg7, farg8, farg9) & +bind(C, name="_wrap_FIDABBDPrecInit") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT32_T), intent(in) :: farg2 +integer(C_INT32_T), intent(in) :: farg3 +integer(C_INT32_T), intent(in) :: farg4 +integer(C_INT32_T), intent(in) :: farg5 +integer(C_INT32_T), intent(in) :: farg6 +real(C_DOUBLE), intent(in) :: farg7 +type(C_FUNPTR), value :: farg8 +type(C_FUNPTR), value :: farg9 +integer(C_INT) :: fresult +end function + +function swigc_FIDABBDPrecReInit(farg1, farg2, farg3, farg4) & +bind(C, name="_wrap_FIDABBDPrecReInit") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT32_T), intent(in) :: farg2 +integer(C_INT32_T), intent(in) :: farg3 +real(C_DOUBLE), intent(in) :: farg4 +integer(C_INT) :: fresult +end function + +function swigc_FIDABBDPrecGetWorkSpace(farg1, farg2, farg3) & +bind(C, name="_wrap_FIDABBDPrecGetWorkSpace") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FIDABBDPrecGetNumGfnEvals(farg1, farg2) & +bind(C, name="_wrap_FIDABBDPrecGetNumGfnEvals") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FIDASetLinearSolver(farg1, farg2, farg3) & +bind(C, name="_wrap_FIDASetLinearSolver") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FIDASetJacFn(farg1, farg2) & +bind(C, name="_wrap_FIDASetJacFn") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_FUNPTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FIDASetPreconditioner(farg1, farg2, farg3) & +bind(C, name="_wrap_FIDASetPreconditioner") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_FUNPTR), value :: farg2 +type(C_FUNPTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FIDASetJacTimes(farg1, farg2, farg3) & +bind(C, name="_wrap_FIDASetJacTimes") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_FUNPTR), value :: farg2 +type(C_FUNPTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FIDASetEpsLin(farg1, farg2) & +bind(C, name="_wrap_FIDASetEpsLin") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FIDASetLSNormFactor(farg1, farg2) & +bind(C, name="_wrap_FIDASetLSNormFactor") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FIDASetLinearSolutionScaling(farg1, farg2) & +bind(C, name="_wrap_FIDASetLinearSolutionScaling") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FIDASetIncrementFactor(farg1, farg2) & +bind(C, name="_wrap_FIDASetIncrementFactor") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FIDAGetJac(farg1, farg2) & +bind(C, name="_wrap_FIDAGetJac") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FIDAGetJacCj(farg1, farg2) & +bind(C, name="_wrap_FIDAGetJacCj") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FIDAGetJacTime(farg1, farg2) & +bind(C, name="_wrap_FIDAGetJacTime") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FIDAGetJacNumSteps(farg1, farg2) & +bind(C, name="_wrap_FIDAGetJacNumSteps") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FIDAGetLinWorkSpace(farg1, farg2, farg3) & +bind(C, name="_wrap_FIDAGetLinWorkSpace") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FIDAGetNumJacEvals(farg1, farg2) & +bind(C, name="_wrap_FIDAGetNumJacEvals") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FIDAGetNumPrecEvals(farg1, farg2) & +bind(C, name="_wrap_FIDAGetNumPrecEvals") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FIDAGetNumPrecSolves(farg1, farg2) & +bind(C, name="_wrap_FIDAGetNumPrecSolves") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FIDAGetNumLinIters(farg1, farg2) & +bind(C, name="_wrap_FIDAGetNumLinIters") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FIDAGetNumLinConvFails(farg1, farg2) & +bind(C, name="_wrap_FIDAGetNumLinConvFails") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FIDAGetNumJTSetupEvals(farg1, farg2) & +bind(C, name="_wrap_FIDAGetNumJTSetupEvals") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FIDAGetNumJtimesEvals(farg1, farg2) & +bind(C, name="_wrap_FIDAGetNumJtimesEvals") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FIDAGetNumLinResEvals(farg1, farg2) & +bind(C, name="_wrap_FIDAGetNumLinResEvals") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FIDAGetLastLinFlag(farg1, farg2) & +bind(C, name="_wrap_FIDAGetLastLinFlag") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FIDAGetLinReturnFlagName(farg1) & +bind(C, name="_wrap_FIDAGetLinReturnFlagName") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +import :: swigarraywrapper +integer(C_LONG), intent(in) :: farg1 +type(SwigArrayWrapper) :: fresult +end function + +end interface + + +contains + ! MODULE SUBPROGRAMS +function FIDACreate(sunctx) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +type(C_PTR) :: swig_result +type(C_PTR) :: sunctx +type(C_PTR) :: fresult +type(C_PTR) :: farg1 + +farg1 = sunctx +fresult = swigc_FIDACreate(farg1) +swig_result = fresult +end function + +function FIDAInit(ida_mem, res, t0, yy0, yp0) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +type(C_FUNPTR), intent(in), value :: res +real(C_DOUBLE), intent(in) :: t0 +type(N_Vector), target, intent(inout) :: yy0 +type(N_Vector), target, intent(inout) :: yp0 +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_FUNPTR) :: farg2 +real(C_DOUBLE) :: farg3 +type(C_PTR) :: farg4 +type(C_PTR) :: farg5 + +farg1 = ida_mem +farg2 = res +farg3 = t0 +farg4 = c_loc(yy0) +farg5 = c_loc(yp0) +fresult = swigc_FIDAInit(farg1, farg2, farg3, farg4, farg5) +swig_result = fresult +end function + +function FIDAReInit(ida_mem, t0, yy0, yp0) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +real(C_DOUBLE), intent(in) :: t0 +type(N_Vector), target, intent(inout) :: yy0 +type(N_Vector), target, intent(inout) :: yp0 +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 +type(C_PTR) :: farg3 +type(C_PTR) :: farg4 + +farg1 = ida_mem +farg2 = t0 +farg3 = c_loc(yy0) +farg4 = c_loc(yp0) +fresult = swigc_FIDAReInit(farg1, farg2, farg3, farg4) +swig_result = fresult +end function + +function FIDASStolerances(ida_mem, reltol, abstol) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +real(C_DOUBLE), intent(in) :: reltol +real(C_DOUBLE), intent(in) :: abstol +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 +real(C_DOUBLE) :: farg3 + +farg1 = ida_mem +farg2 = reltol +farg3 = abstol +fresult = swigc_FIDASStolerances(farg1, farg2, farg3) +swig_result = fresult +end function + +function FIDASVtolerances(ida_mem, reltol, abstol) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +real(C_DOUBLE), intent(in) :: reltol +type(N_Vector), target, intent(inout) :: abstol +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 +type(C_PTR) :: farg3 + +farg1 = ida_mem +farg2 = reltol +farg3 = c_loc(abstol) +fresult = swigc_FIDASVtolerances(farg1, farg2, farg3) +swig_result = fresult +end function + +function FIDAWFtolerances(ida_mem, efun) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +type(C_FUNPTR), intent(in), value :: efun +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_FUNPTR) :: farg2 + +farg1 = ida_mem +farg2 = efun +fresult = swigc_FIDAWFtolerances(farg1, farg2) +swig_result = fresult +end function + +function FIDACalcIC(ida_mem, icopt, tout1) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +integer(C_INT), intent(in) :: icopt +real(C_DOUBLE), intent(in) :: tout1 +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 +real(C_DOUBLE) :: farg3 + +farg1 = ida_mem +farg2 = icopt +farg3 = tout1 +fresult = swigc_FIDACalcIC(farg1, farg2, farg3) +swig_result = fresult +end function + +function FIDASetNonlinConvCoefIC(ida_mem, epiccon) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +real(C_DOUBLE), intent(in) :: epiccon +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 + +farg1 = ida_mem +farg2 = epiccon +fresult = swigc_FIDASetNonlinConvCoefIC(farg1, farg2) +swig_result = fresult +end function + +function FIDASetMaxNumStepsIC(ida_mem, maxnh) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +integer(C_INT), intent(in) :: maxnh +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = ida_mem +farg2 = maxnh +fresult = swigc_FIDASetMaxNumStepsIC(farg1, farg2) +swig_result = fresult +end function + +function FIDASetMaxNumJacsIC(ida_mem, maxnj) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +integer(C_INT), intent(in) :: maxnj +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = ida_mem +farg2 = maxnj +fresult = swigc_FIDASetMaxNumJacsIC(farg1, farg2) +swig_result = fresult +end function + +function FIDASetMaxNumItersIC(ida_mem, maxnit) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +integer(C_INT), intent(in) :: maxnit +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = ida_mem +farg2 = maxnit +fresult = swigc_FIDASetMaxNumItersIC(farg1, farg2) +swig_result = fresult +end function + +function FIDASetLineSearchOffIC(ida_mem, lsoff) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +integer(C_INT), intent(in) :: lsoff +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = ida_mem +farg2 = lsoff +fresult = swigc_FIDASetLineSearchOffIC(farg1, farg2) +swig_result = fresult +end function + +function FIDASetStepToleranceIC(ida_mem, steptol) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +real(C_DOUBLE), intent(in) :: steptol +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 + +farg1 = ida_mem +farg2 = steptol +fresult = swigc_FIDASetStepToleranceIC(farg1, farg2) +swig_result = fresult +end function + +function FIDASetMaxBacksIC(ida_mem, maxbacks) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +integer(C_INT), intent(in) :: maxbacks +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = ida_mem +farg2 = maxbacks +fresult = swigc_FIDASetMaxBacksIC(farg1, farg2) +swig_result = fresult +end function + +function FIDASetDeltaCjLSetup(ida_max, dcj) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_max +real(C_DOUBLE), intent(in) :: dcj +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 + +farg1 = ida_max +farg2 = dcj +fresult = swigc_FIDASetDeltaCjLSetup(farg1, farg2) +swig_result = fresult +end function + +function FIDASetUserData(ida_mem, user_data) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +type(C_PTR) :: user_data +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = ida_mem +farg2 = user_data +fresult = swigc_FIDASetUserData(farg1, farg2) +swig_result = fresult +end function + +function FIDASetMaxOrd(ida_mem, maxord) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +integer(C_INT), intent(in) :: maxord +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = ida_mem +farg2 = maxord +fresult = swigc_FIDASetMaxOrd(farg1, farg2) +swig_result = fresult +end function + +function FIDASetMaxNumSteps(ida_mem, mxsteps) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +integer(C_LONG), intent(in) :: mxsteps +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_LONG) :: farg2 + +farg1 = ida_mem +farg2 = mxsteps +fresult = swigc_FIDASetMaxNumSteps(farg1, farg2) +swig_result = fresult +end function + +function FIDASetInitStep(ida_mem, hin) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +real(C_DOUBLE), intent(in) :: hin +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 + +farg1 = ida_mem +farg2 = hin +fresult = swigc_FIDASetInitStep(farg1, farg2) +swig_result = fresult +end function + +function FIDASetMaxStep(ida_mem, hmax) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +real(C_DOUBLE), intent(in) :: hmax +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 + +farg1 = ida_mem +farg2 = hmax +fresult = swigc_FIDASetMaxStep(farg1, farg2) +swig_result = fresult +end function + +function FIDASetMinStep(ida_mem, hmin) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +real(C_DOUBLE), intent(in) :: hmin +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 + +farg1 = ida_mem +farg2 = hmin +fresult = swigc_FIDASetMinStep(farg1, farg2) +swig_result = fresult +end function + +function FIDASetStopTime(ida_mem, tstop) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +real(C_DOUBLE), intent(in) :: tstop +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 + +farg1 = ida_mem +farg2 = tstop +fresult = swigc_FIDASetStopTime(farg1, farg2) +swig_result = fresult +end function + +function FIDAClearStopTime(ida_mem) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +integer(C_INT) :: fresult +type(C_PTR) :: farg1 + +farg1 = ida_mem +fresult = swigc_FIDAClearStopTime(farg1) +swig_result = fresult +end function + +function FIDASetMaxErrTestFails(ida_mem, maxnef) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +integer(C_INT), intent(in) :: maxnef +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = ida_mem +farg2 = maxnef +fresult = swigc_FIDASetMaxErrTestFails(farg1, farg2) +swig_result = fresult +end function + +function FIDASetSuppressAlg(ida_mem, suppressalg) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +integer(C_INT), intent(in) :: suppressalg +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = ida_mem +farg2 = suppressalg +fresult = swigc_FIDASetSuppressAlg(farg1, farg2) +swig_result = fresult +end function + +function FIDASetId(ida_mem, id) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +type(N_Vector), target, intent(inout) :: id +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = ida_mem +farg2 = c_loc(id) +fresult = swigc_FIDASetId(farg1, farg2) +swig_result = fresult +end function + +function FIDASetConstraints(ida_mem, constraints) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +type(N_Vector), target, intent(inout) :: constraints +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = ida_mem +farg2 = c_loc(constraints) +fresult = swigc_FIDASetConstraints(farg1, farg2) +swig_result = fresult +end function + +function FIDASetEtaFixedStepBounds(ida_mem, eta_min_fx, eta_max_fx) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +real(C_DOUBLE), intent(in) :: eta_min_fx +real(C_DOUBLE), intent(in) :: eta_max_fx +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 +real(C_DOUBLE) :: farg3 + +farg1 = ida_mem +farg2 = eta_min_fx +farg3 = eta_max_fx +fresult = swigc_FIDASetEtaFixedStepBounds(farg1, farg2, farg3) +swig_result = fresult +end function + +function FIDASetEtaMin(ida_mem, eta_min) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +real(C_DOUBLE), intent(in) :: eta_min +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 + +farg1 = ida_mem +farg2 = eta_min +fresult = swigc_FIDASetEtaMin(farg1, farg2) +swig_result = fresult +end function + +function FIDASetEtaMax(ida_mem, eta_max) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +real(C_DOUBLE), intent(in) :: eta_max +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 + +farg1 = ida_mem +farg2 = eta_max +fresult = swigc_FIDASetEtaMax(farg1, farg2) +swig_result = fresult +end function + +function FIDASetEtaLow(ida_mem, eta_low) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +real(C_DOUBLE), intent(in) :: eta_low +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 + +farg1 = ida_mem +farg2 = eta_low +fresult = swigc_FIDASetEtaLow(farg1, farg2) +swig_result = fresult +end function + +function FIDASetEtaMinErrFail(ida_mem, eta_min_ef) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +real(C_DOUBLE), intent(in) :: eta_min_ef +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 + +farg1 = ida_mem +farg2 = eta_min_ef +fresult = swigc_FIDASetEtaMinErrFail(farg1, farg2) +swig_result = fresult +end function + +function FIDASetEtaConvFail(ida_mem, eta_cf) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +real(C_DOUBLE), intent(in) :: eta_cf +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 + +farg1 = ida_mem +farg2 = eta_cf +fresult = swigc_FIDASetEtaConvFail(farg1, farg2) +swig_result = fresult +end function + +function FIDASetMaxConvFails(ida_mem, maxncf) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +integer(C_INT), intent(in) :: maxncf +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = ida_mem +farg2 = maxncf +fresult = swigc_FIDASetMaxConvFails(farg1, farg2) +swig_result = fresult +end function + +function FIDASetMaxNonlinIters(ida_mem, maxcor) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +integer(C_INT), intent(in) :: maxcor +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = ida_mem +farg2 = maxcor +fresult = swigc_FIDASetMaxNonlinIters(farg1, farg2) +swig_result = fresult +end function + +function FIDASetNlsResFn(ida_mem, res) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +type(C_FUNPTR), intent(in), value :: res +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_FUNPTR) :: farg2 + +farg1 = ida_mem +farg2 = res +fresult = swigc_FIDASetNlsResFn(farg1, farg2) +swig_result = fresult +end function + +function FIDASetNonlinConvCoef(ida_mem, epcon) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +real(C_DOUBLE), intent(in) :: epcon +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 + +farg1 = ida_mem +farg2 = epcon +fresult = swigc_FIDASetNonlinConvCoef(farg1, farg2) +swig_result = fresult +end function + +function FIDASetNonlinearSolver(ida_mem, nls) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +type(SUNNonlinearSolver), target, intent(inout) :: nls +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = ida_mem +farg2 = c_loc(nls) +fresult = swigc_FIDASetNonlinearSolver(farg1, farg2) +swig_result = fresult +end function + +function FIDARootInit(ida_mem, nrtfn, g) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +integer(C_INT), intent(in) :: nrtfn +type(C_FUNPTR), intent(in), value :: g +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 +type(C_FUNPTR) :: farg3 + +farg1 = ida_mem +farg2 = nrtfn +farg3 = g +fresult = swigc_FIDARootInit(farg1, farg2, farg3) +swig_result = fresult +end function + +function FIDASetRootDirection(ida_mem, rootdir) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +integer(C_INT), dimension(*), target, intent(inout) :: rootdir +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = ida_mem +farg2 = c_loc(rootdir(1)) +fresult = swigc_FIDASetRootDirection(farg1, farg2) +swig_result = fresult +end function + +function FIDASetNoInactiveRootWarn(ida_mem) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +integer(C_INT) :: fresult +type(C_PTR) :: farg1 + +farg1 = ida_mem +fresult = swigc_FIDASetNoInactiveRootWarn(farg1) +swig_result = fresult +end function + +function FIDASolve(ida_mem, tout, tret, yret, ypret, itask) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +real(C_DOUBLE), intent(in) :: tout +real(C_DOUBLE), dimension(*), target, intent(inout) :: tret +type(N_Vector), target, intent(inout) :: yret +type(N_Vector), target, intent(inout) :: ypret +integer(C_INT), intent(in) :: itask +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 +type(C_PTR) :: farg3 +type(C_PTR) :: farg4 +type(C_PTR) :: farg5 +integer(C_INT) :: farg6 + +farg1 = ida_mem +farg2 = tout +farg3 = c_loc(tret(1)) +farg4 = c_loc(yret) +farg5 = c_loc(ypret) +farg6 = itask +fresult = swigc_FIDASolve(farg1, farg2, farg3, farg4, farg5, farg6) +swig_result = fresult +end function + +function FIDAComputeY(ida_mem, ycor, y) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +type(N_Vector), target, intent(inout) :: ycor +type(N_Vector), target, intent(inout) :: y +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = ida_mem +farg2 = c_loc(ycor) +farg3 = c_loc(y) +fresult = swigc_FIDAComputeY(farg1, farg2, farg3) +swig_result = fresult +end function + +function FIDAComputeYp(ida_mem, ycor, yp) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +type(N_Vector), target, intent(inout) :: ycor +type(N_Vector), target, intent(inout) :: yp +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = ida_mem +farg2 = c_loc(ycor) +farg3 = c_loc(yp) +fresult = swigc_FIDAComputeYp(farg1, farg2, farg3) +swig_result = fresult +end function + +function FIDAGetDky(ida_mem, t, k, dky) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +real(C_DOUBLE), intent(in) :: t +integer(C_INT), intent(in) :: k +type(N_Vector), target, intent(inout) :: dky +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 +integer(C_INT) :: farg3 +type(C_PTR) :: farg4 + +farg1 = ida_mem +farg2 = t +farg3 = k +farg4 = c_loc(dky) +fresult = swigc_FIDAGetDky(farg1, farg2, farg3, farg4) +swig_result = fresult +end function + +function FIDAGetWorkSpace(ida_mem, lenrw, leniw) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +integer(C_LONG), dimension(*), target, intent(inout) :: lenrw +integer(C_LONG), dimension(*), target, intent(inout) :: leniw +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = ida_mem +farg2 = c_loc(lenrw(1)) +farg3 = c_loc(leniw(1)) +fresult = swigc_FIDAGetWorkSpace(farg1, farg2, farg3) +swig_result = fresult +end function + +function FIDAGetNumSteps(ida_mem, nsteps) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +integer(C_LONG), dimension(*), target, intent(inout) :: nsteps +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = ida_mem +farg2 = c_loc(nsteps(1)) +fresult = swigc_FIDAGetNumSteps(farg1, farg2) +swig_result = fresult +end function + +function FIDAGetNumResEvals(ida_mem, nrevals) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +integer(C_LONG), dimension(*), target, intent(inout) :: nrevals +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = ida_mem +farg2 = c_loc(nrevals(1)) +fresult = swigc_FIDAGetNumResEvals(farg1, farg2) +swig_result = fresult +end function + +function FIDAGetNumLinSolvSetups(ida_mem, nlinsetups) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +integer(C_LONG), dimension(*), target, intent(inout) :: nlinsetups +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = ida_mem +farg2 = c_loc(nlinsetups(1)) +fresult = swigc_FIDAGetNumLinSolvSetups(farg1, farg2) +swig_result = fresult +end function + +function FIDAGetNumErrTestFails(ida_mem, netfails) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +integer(C_LONG), dimension(*), target, intent(inout) :: netfails +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = ida_mem +farg2 = c_loc(netfails(1)) +fresult = swigc_FIDAGetNumErrTestFails(farg1, farg2) +swig_result = fresult +end function + +function FIDAGetNumBacktrackOps(ida_mem, nbacktr) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +integer(C_LONG), dimension(*), target, intent(inout) :: nbacktr +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = ida_mem +farg2 = c_loc(nbacktr(1)) +fresult = swigc_FIDAGetNumBacktrackOps(farg1, farg2) +swig_result = fresult +end function + +function FIDAGetConsistentIC(ida_mem, yy0_mod, yp0_mod) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +type(N_Vector), target, intent(inout) :: yy0_mod +type(N_Vector), target, intent(inout) :: yp0_mod +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = ida_mem +farg2 = c_loc(yy0_mod) +farg3 = c_loc(yp0_mod) +fresult = swigc_FIDAGetConsistentIC(farg1, farg2, farg3) +swig_result = fresult +end function + +function FIDAGetLastOrder(ida_mem, klast) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +integer(C_INT), dimension(*), target, intent(inout) :: klast +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = ida_mem +farg2 = c_loc(klast(1)) +fresult = swigc_FIDAGetLastOrder(farg1, farg2) +swig_result = fresult +end function + +function FIDAGetCurrentOrder(ida_mem, kcur) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +integer(C_INT), dimension(*), target, intent(inout) :: kcur +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = ida_mem +farg2 = c_loc(kcur(1)) +fresult = swigc_FIDAGetCurrentOrder(farg1, farg2) +swig_result = fresult +end function + +function FIDAGetCurrentCj(ida_mem, cj) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +real(C_DOUBLE), dimension(*), target, intent(inout) :: cj +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = ida_mem +farg2 = c_loc(cj(1)) +fresult = swigc_FIDAGetCurrentCj(farg1, farg2) +swig_result = fresult +end function + +function FIDAGetCurrentY(ida_mem, ycur) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +type(C_PTR) :: ycur +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = ida_mem +farg2 = ycur +fresult = swigc_FIDAGetCurrentY(farg1, farg2) +swig_result = fresult +end function + +function FIDAGetCurrentYp(ida_mem, ypcur) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +type(C_PTR) :: ypcur +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = ida_mem +farg2 = ypcur +fresult = swigc_FIDAGetCurrentYp(farg1, farg2) +swig_result = fresult +end function + +function FIDAGetActualInitStep(ida_mem, hinused) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +real(C_DOUBLE), dimension(*), target, intent(inout) :: hinused +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = ida_mem +farg2 = c_loc(hinused(1)) +fresult = swigc_FIDAGetActualInitStep(farg1, farg2) +swig_result = fresult +end function + +function FIDAGetLastStep(ida_mem, hlast) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +real(C_DOUBLE), dimension(*), target, intent(inout) :: hlast +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = ida_mem +farg2 = c_loc(hlast(1)) +fresult = swigc_FIDAGetLastStep(farg1, farg2) +swig_result = fresult +end function + +function FIDAGetCurrentStep(ida_mem, hcur) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +real(C_DOUBLE), dimension(*), target, intent(inout) :: hcur +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = ida_mem +farg2 = c_loc(hcur(1)) +fresult = swigc_FIDAGetCurrentStep(farg1, farg2) +swig_result = fresult +end function + +function FIDAGetCurrentTime(ida_mem, tcur) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +real(C_DOUBLE), dimension(*), target, intent(inout) :: tcur +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = ida_mem +farg2 = c_loc(tcur(1)) +fresult = swigc_FIDAGetCurrentTime(farg1, farg2) +swig_result = fresult +end function + +function FIDAGetTolScaleFactor(ida_mem, tolsfact) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +real(C_DOUBLE), dimension(*), target, intent(inout) :: tolsfact +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = ida_mem +farg2 = c_loc(tolsfact(1)) +fresult = swigc_FIDAGetTolScaleFactor(farg1, farg2) +swig_result = fresult +end function + +function FIDAGetErrWeights(ida_mem, eweight) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +type(N_Vector), target, intent(inout) :: eweight +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = ida_mem +farg2 = c_loc(eweight) +fresult = swigc_FIDAGetErrWeights(farg1, farg2) +swig_result = fresult +end function + +function FIDAGetEstLocalErrors(ida_mem, ele) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +type(N_Vector), target, intent(inout) :: ele +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = ida_mem +farg2 = c_loc(ele) +fresult = swigc_FIDAGetEstLocalErrors(farg1, farg2) +swig_result = fresult +end function + +function FIDAGetNumGEvals(ida_mem, ngevals) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +integer(C_LONG), dimension(*), target, intent(inout) :: ngevals +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = ida_mem +farg2 = c_loc(ngevals(1)) +fresult = swigc_FIDAGetNumGEvals(farg1, farg2) +swig_result = fresult +end function + +function FIDAGetRootInfo(ida_mem, rootsfound) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +integer(C_INT), dimension(*), target, intent(inout) :: rootsfound +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = ida_mem +farg2 = c_loc(rootsfound(1)) +fresult = swigc_FIDAGetRootInfo(farg1, farg2) +swig_result = fresult +end function + +function FIDAGetIntegratorStats(ida_mem, nsteps, nrevals, nlinsetups, netfails, qlast, qcur, hinused, hlast, hcur, tcur) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +integer(C_LONG), dimension(*), target, intent(inout) :: nsteps +integer(C_LONG), dimension(*), target, intent(inout) :: nrevals +integer(C_LONG), dimension(*), target, intent(inout) :: nlinsetups +integer(C_LONG), dimension(*), target, intent(inout) :: netfails +integer(C_INT), dimension(*), target, intent(inout) :: qlast +integer(C_INT), dimension(*), target, intent(inout) :: qcur +real(C_DOUBLE), dimension(*), target, intent(inout) :: hinused +real(C_DOUBLE), dimension(*), target, intent(inout) :: hlast +real(C_DOUBLE), dimension(*), target, intent(inout) :: hcur +real(C_DOUBLE), dimension(*), target, intent(inout) :: tcur +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 +type(C_PTR) :: farg4 +type(C_PTR) :: farg5 +type(C_PTR) :: farg6 +type(C_PTR) :: farg7 +type(C_PTR) :: farg8 +type(C_PTR) :: farg9 +type(C_PTR) :: farg10 +type(C_PTR) :: farg11 + +farg1 = ida_mem +farg2 = c_loc(nsteps(1)) +farg3 = c_loc(nrevals(1)) +farg4 = c_loc(nlinsetups(1)) +farg5 = c_loc(netfails(1)) +farg6 = c_loc(qlast(1)) +farg7 = c_loc(qcur(1)) +farg8 = c_loc(hinused(1)) +farg9 = c_loc(hlast(1)) +farg10 = c_loc(hcur(1)) +farg11 = c_loc(tcur(1)) +fresult = swigc_FIDAGetIntegratorStats(farg1, farg2, farg3, farg4, farg5, farg6, farg7, farg8, farg9, farg10, farg11) +swig_result = fresult +end function + +function FIDAGetNonlinearSystemData(ida_mem, tcur, yypred, yppred, yyn, ypn, res, cj, user_data) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +real(C_DOUBLE), dimension(*), target, intent(inout) :: tcur +type(C_PTR) :: yypred +type(C_PTR) :: yppred +type(C_PTR) :: yyn +type(C_PTR) :: ypn +type(C_PTR) :: res +real(C_DOUBLE), dimension(*), target, intent(inout) :: cj +type(C_PTR), target, intent(inout) :: user_data +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 +type(C_PTR) :: farg4 +type(C_PTR) :: farg5 +type(C_PTR) :: farg6 +type(C_PTR) :: farg7 +type(C_PTR) :: farg8 +type(C_PTR) :: farg9 + +farg1 = ida_mem +farg2 = c_loc(tcur(1)) +farg3 = yypred +farg4 = yppred +farg5 = yyn +farg6 = ypn +farg7 = res +farg8 = c_loc(cj(1)) +farg9 = c_loc(user_data) +fresult = swigc_FIDAGetNonlinearSystemData(farg1, farg2, farg3, farg4, farg5, farg6, farg7, farg8, farg9) +swig_result = fresult +end function + +function FIDAGetNumNonlinSolvIters(ida_mem, nniters) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +integer(C_LONG), dimension(*), target, intent(inout) :: nniters +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = ida_mem +farg2 = c_loc(nniters(1)) +fresult = swigc_FIDAGetNumNonlinSolvIters(farg1, farg2) +swig_result = fresult +end function + +function FIDAGetNumNonlinSolvConvFails(ida_mem, nnfails) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +integer(C_LONG), dimension(*), target, intent(inout) :: nnfails +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = ida_mem +farg2 = c_loc(nnfails(1)) +fresult = swigc_FIDAGetNumNonlinSolvConvFails(farg1, farg2) +swig_result = fresult +end function + +function FIDAGetNonlinSolvStats(ida_mem, nniters, nnfails) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +integer(C_LONG), dimension(*), target, intent(inout) :: nniters +integer(C_LONG), dimension(*), target, intent(inout) :: nnfails +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = ida_mem +farg2 = c_loc(nniters(1)) +farg3 = c_loc(nnfails(1)) +fresult = swigc_FIDAGetNonlinSolvStats(farg1, farg2, farg3) +swig_result = fresult +end function + +function FIDAGetNumStepSolveFails(ida_mem, nncfails) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +integer(C_LONG), dimension(*), target, intent(inout) :: nncfails +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = ida_mem +farg2 = c_loc(nncfails(1)) +fresult = swigc_FIDAGetNumStepSolveFails(farg1, farg2) +swig_result = fresult +end function + +function FIDAGetUserData(ida_mem, user_data) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +type(C_PTR), target, intent(inout) :: user_data +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = ida_mem +farg2 = c_loc(user_data) +fresult = swigc_FIDAGetUserData(farg1, farg2) +swig_result = fresult +end function + +function FIDAPrintAllStats(ida_mem, outfile, fmt) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +type(C_PTR) :: outfile +integer(SUNOutputFormat), intent(in) :: fmt +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +integer(C_INT) :: farg3 + +farg1 = ida_mem +farg2 = outfile +farg3 = fmt +fresult = swigc_FIDAPrintAllStats(farg1, farg2, farg3) +swig_result = fresult +end function + + +subroutine SWIG_chararray_to_string(wrap, string) + use, intrinsic :: ISO_C_BINDING + type(SwigArrayWrapper), intent(IN) :: wrap + character(kind=C_CHAR, len=:), allocatable, intent(OUT) :: string + character(kind=C_CHAR), dimension(:), pointer :: chars + integer(kind=C_SIZE_T) :: i + call c_f_pointer(wrap%data, chars, [wrap%size]) + allocate(character(kind=C_CHAR, len=wrap%size) :: string) + do i=1, wrap%size + string(i:i) = chars(i) + end do +end subroutine + +function FIDAGetReturnFlagName(flag) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +character(kind=C_CHAR, len=:), allocatable :: swig_result +integer(C_LONG), intent(in) :: flag +type(SwigArrayWrapper) :: fresult +integer(C_LONG) :: farg1 + +farg1 = flag +fresult = swigc_FIDAGetReturnFlagName(farg1) +call SWIG_chararray_to_string(fresult, swig_result) +if (.false.) call SWIG_free(fresult%data) +end function + +subroutine FIDAFree(ida_mem) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), target, intent(inout) :: ida_mem +type(C_PTR) :: farg1 + +farg1 = c_loc(ida_mem) +call swigc_FIDAFree(farg1) +end subroutine + +function FIDASetJacTimesResFn(ida_mem, jtimesresfn) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +type(C_FUNPTR), intent(in), value :: jtimesresfn +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_FUNPTR) :: farg2 + +farg1 = ida_mem +farg2 = jtimesresfn +fresult = swigc_FIDASetJacTimesResFn(farg1, farg2) +swig_result = fresult +end function + +function FIDABBDPrecInit(ida_mem, nlocal, mudq, mldq, mukeep, mlkeep, dq_rel_yy, gres, gcomm) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +integer(C_INT32_T), intent(in) :: nlocal +integer(C_INT32_T), intent(in) :: mudq +integer(C_INT32_T), intent(in) :: mldq +integer(C_INT32_T), intent(in) :: mukeep +integer(C_INT32_T), intent(in) :: mlkeep +real(C_DOUBLE), intent(in) :: dq_rel_yy +type(C_FUNPTR), intent(in), value :: gres +type(C_FUNPTR), intent(in), value :: gcomm +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT32_T) :: farg2 +integer(C_INT32_T) :: farg3 +integer(C_INT32_T) :: farg4 +integer(C_INT32_T) :: farg5 +integer(C_INT32_T) :: farg6 +real(C_DOUBLE) :: farg7 +type(C_FUNPTR) :: farg8 +type(C_FUNPTR) :: farg9 + +farg1 = ida_mem +farg2 = nlocal +farg3 = mudq +farg4 = mldq +farg5 = mukeep +farg6 = mlkeep +farg7 = dq_rel_yy +farg8 = gres +farg9 = gcomm +fresult = swigc_FIDABBDPrecInit(farg1, farg2, farg3, farg4, farg5, farg6, farg7, farg8, farg9) +swig_result = fresult +end function + +function FIDABBDPrecReInit(ida_mem, mudq, mldq, dq_rel_yy) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +integer(C_INT32_T), intent(in) :: mudq +integer(C_INT32_T), intent(in) :: mldq +real(C_DOUBLE), intent(in) :: dq_rel_yy +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT32_T) :: farg2 +integer(C_INT32_T) :: farg3 +real(C_DOUBLE) :: farg4 + +farg1 = ida_mem +farg2 = mudq +farg3 = mldq +farg4 = dq_rel_yy +fresult = swigc_FIDABBDPrecReInit(farg1, farg2, farg3, farg4) +swig_result = fresult +end function + +function FIDABBDPrecGetWorkSpace(ida_mem, lenrwbbdp, leniwbbdp) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +integer(C_LONG), dimension(*), target, intent(inout) :: lenrwbbdp +integer(C_LONG), dimension(*), target, intent(inout) :: leniwbbdp +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = ida_mem +farg2 = c_loc(lenrwbbdp(1)) +farg3 = c_loc(leniwbbdp(1)) +fresult = swigc_FIDABBDPrecGetWorkSpace(farg1, farg2, farg3) +swig_result = fresult +end function + +function FIDABBDPrecGetNumGfnEvals(ida_mem, ngevalsbbdp) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +integer(C_LONG), dimension(*), target, intent(inout) :: ngevalsbbdp +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = ida_mem +farg2 = c_loc(ngevalsbbdp(1)) +fresult = swigc_FIDABBDPrecGetNumGfnEvals(farg1, farg2) +swig_result = fresult +end function + +function FIDASetLinearSolver(ida_mem, ls, a) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +type(SUNLinearSolver), target, intent(inout) :: ls +type(SUNMatrix), target, intent(inout) :: a +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = ida_mem +farg2 = c_loc(ls) +farg3 = c_loc(a) +fresult = swigc_FIDASetLinearSolver(farg1, farg2, farg3) +swig_result = fresult +end function + +function FIDASetJacFn(ida_mem, jac) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +type(C_FUNPTR), intent(in), value :: jac +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_FUNPTR) :: farg2 + +farg1 = ida_mem +farg2 = jac +fresult = swigc_FIDASetJacFn(farg1, farg2) +swig_result = fresult +end function + +function FIDASetPreconditioner(ida_mem, pset, psolve) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +type(C_FUNPTR), intent(in), value :: pset +type(C_FUNPTR), intent(in), value :: psolve +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_FUNPTR) :: farg2 +type(C_FUNPTR) :: farg3 + +farg1 = ida_mem +farg2 = pset +farg3 = psolve +fresult = swigc_FIDASetPreconditioner(farg1, farg2, farg3) +swig_result = fresult +end function + +function FIDASetJacTimes(ida_mem, jtsetup, jtimes) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +type(C_FUNPTR), intent(in), value :: jtsetup +type(C_FUNPTR), intent(in), value :: jtimes +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_FUNPTR) :: farg2 +type(C_FUNPTR) :: farg3 + +farg1 = ida_mem +farg2 = jtsetup +farg3 = jtimes +fresult = swigc_FIDASetJacTimes(farg1, farg2, farg3) +swig_result = fresult +end function + +function FIDASetEpsLin(ida_mem, eplifac) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +real(C_DOUBLE), intent(in) :: eplifac +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 + +farg1 = ida_mem +farg2 = eplifac +fresult = swigc_FIDASetEpsLin(farg1, farg2) +swig_result = fresult +end function + +function FIDASetLSNormFactor(ida_mem, nrmfac) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +real(C_DOUBLE), intent(in) :: nrmfac +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 + +farg1 = ida_mem +farg2 = nrmfac +fresult = swigc_FIDASetLSNormFactor(farg1, farg2) +swig_result = fresult +end function + +function FIDASetLinearSolutionScaling(ida_mem, onoff) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +integer(C_INT), intent(in) :: onoff +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = ida_mem +farg2 = onoff +fresult = swigc_FIDASetLinearSolutionScaling(farg1, farg2) +swig_result = fresult +end function + +function FIDASetIncrementFactor(ida_mem, dqincfac) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +real(C_DOUBLE), intent(in) :: dqincfac +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 + +farg1 = ida_mem +farg2 = dqincfac +fresult = swigc_FIDASetIncrementFactor(farg1, farg2) +swig_result = fresult +end function + +function FIDAGetJac(ida_mem, j) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +type(C_PTR), target, intent(inout) :: j +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = ida_mem +farg2 = c_loc(j) +fresult = swigc_FIDAGetJac(farg1, farg2) +swig_result = fresult +end function + +function FIDAGetJacCj(ida_mem, cj_j) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +real(C_DOUBLE), dimension(*), target, intent(inout) :: cj_j +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = ida_mem +farg2 = c_loc(cj_j(1)) +fresult = swigc_FIDAGetJacCj(farg1, farg2) +swig_result = fresult +end function + +function FIDAGetJacTime(ida_mem, t_j) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +real(C_DOUBLE), dimension(*), target, intent(inout) :: t_j +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = ida_mem +farg2 = c_loc(t_j(1)) +fresult = swigc_FIDAGetJacTime(farg1, farg2) +swig_result = fresult +end function + +function FIDAGetJacNumSteps(ida_mem, nst_j) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +integer(C_LONG), dimension(*), target, intent(inout) :: nst_j +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = ida_mem +farg2 = c_loc(nst_j(1)) +fresult = swigc_FIDAGetJacNumSteps(farg1, farg2) +swig_result = fresult +end function + +function FIDAGetLinWorkSpace(ida_mem, lenrwls, leniwls) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +integer(C_LONG), dimension(*), target, intent(inout) :: lenrwls +integer(C_LONG), dimension(*), target, intent(inout) :: leniwls +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = ida_mem +farg2 = c_loc(lenrwls(1)) +farg3 = c_loc(leniwls(1)) +fresult = swigc_FIDAGetLinWorkSpace(farg1, farg2, farg3) +swig_result = fresult +end function + +function FIDAGetNumJacEvals(ida_mem, njevals) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +integer(C_LONG), dimension(*), target, intent(inout) :: njevals +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = ida_mem +farg2 = c_loc(njevals(1)) +fresult = swigc_FIDAGetNumJacEvals(farg1, farg2) +swig_result = fresult +end function + +function FIDAGetNumPrecEvals(ida_mem, npevals) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +integer(C_LONG), dimension(*), target, intent(inout) :: npevals +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = ida_mem +farg2 = c_loc(npevals(1)) +fresult = swigc_FIDAGetNumPrecEvals(farg1, farg2) +swig_result = fresult +end function + +function FIDAGetNumPrecSolves(ida_mem, npsolves) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +integer(C_LONG), dimension(*), target, intent(inout) :: npsolves +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = ida_mem +farg2 = c_loc(npsolves(1)) +fresult = swigc_FIDAGetNumPrecSolves(farg1, farg2) +swig_result = fresult +end function + +function FIDAGetNumLinIters(ida_mem, nliters) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +integer(C_LONG), dimension(*), target, intent(inout) :: nliters +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = ida_mem +farg2 = c_loc(nliters(1)) +fresult = swigc_FIDAGetNumLinIters(farg1, farg2) +swig_result = fresult +end function + +function FIDAGetNumLinConvFails(ida_mem, nlcfails) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +integer(C_LONG), dimension(*), target, intent(inout) :: nlcfails +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = ida_mem +farg2 = c_loc(nlcfails(1)) +fresult = swigc_FIDAGetNumLinConvFails(farg1, farg2) +swig_result = fresult +end function + +function FIDAGetNumJTSetupEvals(ida_mem, njtsetups) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +integer(C_LONG), dimension(*), target, intent(inout) :: njtsetups +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = ida_mem +farg2 = c_loc(njtsetups(1)) +fresult = swigc_FIDAGetNumJTSetupEvals(farg1, farg2) +swig_result = fresult +end function + +function FIDAGetNumJtimesEvals(ida_mem, njvevals) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +integer(C_LONG), dimension(*), target, intent(inout) :: njvevals +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = ida_mem +farg2 = c_loc(njvevals(1)) +fresult = swigc_FIDAGetNumJtimesEvals(farg1, farg2) +swig_result = fresult +end function + +function FIDAGetNumLinResEvals(ida_mem, nrevalsls) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +integer(C_LONG), dimension(*), target, intent(inout) :: nrevalsls +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = ida_mem +farg2 = c_loc(nrevalsls(1)) +fresult = swigc_FIDAGetNumLinResEvals(farg1, farg2) +swig_result = fresult +end function + +function FIDAGetLastLinFlag(ida_mem, flag) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +integer(C_LONG), dimension(*), target, intent(inout) :: flag +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = ida_mem +farg2 = c_loc(flag(1)) +fresult = swigc_FIDAGetLastLinFlag(farg1, farg2) +swig_result = fresult +end function + +function FIDAGetLinReturnFlagName(flag) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +character(kind=C_CHAR, len=:), allocatable :: swig_result +integer(C_LONG), intent(in) :: flag +type(SwigArrayWrapper) :: fresult +integer(C_LONG) :: farg1 + +farg1 = flag +fresult = swigc_FIDAGetLinReturnFlagName(farg1) +call SWIG_chararray_to_string(fresult, swig_result) +if (.false.) call SWIG_free(fresult%data) +end function + + +end module diff --git a/src/ida/fmod_int64/CMakeLists.txt b/src/ida/fmod_int64/CMakeLists.txt new file mode 100644 index 0000000000..e305f237d0 --- /dev/null +++ b/src/ida/fmod_int64/CMakeLists.txt @@ -0,0 +1,47 @@ +# --------------------------------------------------------------- +# Programmer(s): Cody J. Balos @ LLNL +# --------------------------------------------------------------- +# SUNDIALS Copyright Start +# Copyright (c) 2002-2024, Lawrence Livermore National Security +# and Southern Methodist University. +# All rights reserved. +# +# See the top-level LICENSE and NOTICE files for details. +# +# SPDX-License-Identifier: BSD-3-Clause +# SUNDIALS Copyright End +# --------------------------------------------------------------- +# CMakeLists.txt file for the F2003 IDA object library +# --------------------------------------------------------------- + +set(ida_SOURCES fida_mod.f90 fida_mod.c) + +# Create the library +sundials_add_f2003_library(sundials_fida_mod + SOURCES + ${ida_SOURCES} + LINK_LIBRARIES + PUBLIC sundials_fcore_mod + OBJECT_LIBRARIES + sundials_fnvecserial_mod_obj + sundials_fsunmatrixband_mod_obj + sundials_fsunmatrixdense_mod_obj + sundials_fsunmatrixsparse_mod_obj + sundials_fsunlinsolband_mod_obj + sundials_fsunlinsoldense_mod_obj + sundials_fsunlinsolspbcgs_mod_obj + sundials_fsunlinsolspfgmr_mod_obj + sundials_fsunlinsolspgmr_mod_obj + sundials_fsunlinsolsptfqmr_mod_obj + sundials_fsunlinsolpcg_mod_obj + sundials_fsunnonlinsolnewton_mod_obj + sundials_fsunnonlinsolfixedpoint_mod_obj + OUTPUT_NAME + sundials_fida_mod + VERSION + ${idalib_VERSION} + SOVERSION + ${idalib_SOVERSION} +) + +message(STATUS "Added IDA F2003 interface") diff --git a/src/ida/fmod/fida_mod.c b/src/ida/fmod_int64/fida_mod.c similarity index 100% rename from src/ida/fmod/fida_mod.c rename to src/ida/fmod_int64/fida_mod.c diff --git a/src/ida/fmod/fida_mod.f90 b/src/ida/fmod_int64/fida_mod.f90 similarity index 100% rename from src/ida/fmod/fida_mod.f90 rename to src/ida/fmod_int64/fida_mod.f90 diff --git a/src/idas/CMakeLists.txt b/src/idas/CMakeLists.txt index f54b9fa8da..a5ed8b4739 100644 --- a/src/idas/CMakeLists.txt +++ b/src/idas/CMakeLists.txt @@ -79,5 +79,5 @@ message(STATUS "Added IDAS module") # Add F2003 module if the interface is enabled if(BUILD_FORTRAN_MODULE_INTERFACE) - add_subdirectory(fmod) + add_subdirectory("fmod_int${SUNDIALS_INDEX_SIZE}") endif() diff --git a/src/idas/fmod/CMakeLists.txt b/src/idas/fmod_int32/CMakeLists.txt similarity index 100% rename from src/idas/fmod/CMakeLists.txt rename to src/idas/fmod_int32/CMakeLists.txt diff --git a/src/idas/fmod_int32/fidas_mod.c b/src/idas/fmod_int32/fidas_mod.c new file mode 100644 index 0000000000..4774bf709e --- /dev/null +++ b/src/idas/fmod_int32/fidas_mod.c @@ -0,0 +1,3879 @@ +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.0 + * + * This file is not intended to be easily readable and contains a number of + * coding conventions designed to improve portability and efficiency. Do not make + * changes to this file unless you know what you are doing--modify the SWIG + * interface file instead. + * ----------------------------------------------------------------------------- */ + +/* --------------------------------------------------------------- + * Programmer(s): Auto-generated by swig. + * --------------------------------------------------------------- + * SUNDIALS Copyright Start + * Copyright (c) 2002-2024, Lawrence Livermore National Security + * and Southern Methodist University. + * All rights reserved. + * + * See the top-level LICENSE and NOTICE files for details. + * + * SPDX-License-Identifier: BSD-3-Clause + * SUNDIALS Copyright End + * -------------------------------------------------------------*/ + +/* ----------------------------------------------------------------------------- + * This section contains generic SWIG labels for method/variable + * declarations/attributes, and other compiler dependent labels. + * ----------------------------------------------------------------------------- */ + +/* template workaround for compilers that cannot correctly implement the C++ standard */ +#ifndef SWIGTEMPLATEDISAMBIGUATOR +# if defined(__SUNPRO_CC) && (__SUNPRO_CC <= 0x560) +# define SWIGTEMPLATEDISAMBIGUATOR template +# elif defined(__HP_aCC) +/* Needed even with `aCC -AA' when `aCC -V' reports HP ANSI C++ B3910B A.03.55 */ +/* If we find a maximum version that requires this, the test would be __HP_aCC <= 35500 for A.03.55 */ +# define SWIGTEMPLATEDISAMBIGUATOR template +# else +# define SWIGTEMPLATEDISAMBIGUATOR +# endif +#endif + +/* inline attribute */ +#ifndef SWIGINLINE +# if defined(__cplusplus) || (defined(__GNUC__) && !defined(__STRICT_ANSI__)) +# define SWIGINLINE inline +# else +# define SWIGINLINE +# endif +#endif + +/* attribute recognised by some compilers to avoid 'unused' warnings */ +#ifndef SWIGUNUSED +# if defined(__GNUC__) +# if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)) +# define SWIGUNUSED __attribute__ ((__unused__)) +# else +# define SWIGUNUSED +# endif +# elif defined(__ICC) +# define SWIGUNUSED __attribute__ ((__unused__)) +# else +# define SWIGUNUSED +# endif +#endif + +#ifndef SWIG_MSC_UNSUPPRESS_4505 +# if defined(_MSC_VER) +# pragma warning(disable : 4505) /* unreferenced local function has been removed */ +# endif +#endif + +#ifndef SWIGUNUSEDPARM +# ifdef __cplusplus +# define SWIGUNUSEDPARM(p) +# else +# define SWIGUNUSEDPARM(p) p SWIGUNUSED +# endif +#endif + +/* internal SWIG method */ +#ifndef SWIGINTERN +# define SWIGINTERN static SWIGUNUSED +#endif + +/* internal inline SWIG method */ +#ifndef SWIGINTERNINLINE +# define SWIGINTERNINLINE SWIGINTERN SWIGINLINE +#endif + +/* qualifier for exported *const* global data variables*/ +#ifndef SWIGEXTERN +# ifdef __cplusplus +# define SWIGEXTERN extern +# else +# define SWIGEXTERN +# endif +#endif + +/* exporting methods */ +#if defined(__GNUC__) +# if (__GNUC__ >= 4) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) +# ifndef GCC_HASCLASSVISIBILITY +# define GCC_HASCLASSVISIBILITY +# endif +# endif +#endif + +#ifndef SWIGEXPORT +# if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__) +# if defined(STATIC_LINKED) +# define SWIGEXPORT +# else +# define SWIGEXPORT __declspec(dllexport) +# endif +# else +# if defined(__GNUC__) && defined(GCC_HASCLASSVISIBILITY) +# define SWIGEXPORT __attribute__ ((visibility("default"))) +# else +# define SWIGEXPORT +# endif +# endif +#endif + +/* calling conventions for Windows */ +#ifndef SWIGSTDCALL +# if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__) +# define SWIGSTDCALL __stdcall +# else +# define SWIGSTDCALL +# endif +#endif + +/* Deal with Microsoft's attempt at deprecating C standard runtime functions */ +#if !defined(SWIG_NO_CRT_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_CRT_SECURE_NO_DEPRECATE) +# define _CRT_SECURE_NO_DEPRECATE +#endif + +/* Deal with Microsoft's attempt at deprecating methods in the standard C++ library */ +#if !defined(SWIG_NO_SCL_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_SCL_SECURE_NO_DEPRECATE) +# define _SCL_SECURE_NO_DEPRECATE +#endif + +/* Deal with Apple's deprecated 'AssertMacros.h' from Carbon-framework */ +#if defined(__APPLE__) && !defined(__ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES) +# define __ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES 0 +#endif + +/* Intel's compiler complains if a variable which was never initialised is + * cast to void, which is a common idiom which we use to indicate that we + * are aware a variable isn't used. So we just silence that warning. + * See: https://github.com/swig/swig/issues/192 for more discussion. + */ +#ifdef __INTEL_COMPILER +# pragma warning disable 592 +#endif + +/* Errors in SWIG */ +#define SWIG_UnknownError -1 +#define SWIG_IOError -2 +#define SWIG_RuntimeError -3 +#define SWIG_IndexError -4 +#define SWIG_TypeError -5 +#define SWIG_DivisionByZero -6 +#define SWIG_OverflowError -7 +#define SWIG_SyntaxError -8 +#define SWIG_ValueError -9 +#define SWIG_SystemError -10 +#define SWIG_AttributeError -11 +#define SWIG_MemoryError -12 +#define SWIG_NullReferenceError -13 + + + + +#include +#define SWIG_exception_impl(DECL, CODE, MSG, RETURNNULL) \ + { printf("In " DECL ": " MSG); assert(0); RETURNNULL; } + + +enum { + SWIG_MEM_OWN = 0x01, + SWIG_MEM_RVALUE = 0x02, + SWIG_MEM_CONST = 0x04 +}; + + +#define SWIG_check_mutable(SWIG_CLASS_WRAPPER, TYPENAME, FNAME, FUNCNAME, RETURNNULL) \ + if ((SWIG_CLASS_WRAPPER).cmemflags & SWIG_MEM_CONST) { \ + SWIG_exception_impl(FUNCNAME, SWIG_TypeError, \ + "Cannot pass const " TYPENAME " (class " FNAME ") " \ + "as a mutable reference", \ + RETURNNULL); \ + } + + +#define SWIG_check_nonnull(SWIG_CLASS_WRAPPER, TYPENAME, FNAME, FUNCNAME, RETURNNULL) \ + if (!(SWIG_CLASS_WRAPPER).cptr) { \ + SWIG_exception_impl(FUNCNAME, SWIG_TypeError, \ + "Cannot pass null " TYPENAME " (class " FNAME ") " \ + "as a reference", RETURNNULL); \ + } + + +#define SWIG_check_mutable_nonnull(SWIG_CLASS_WRAPPER, TYPENAME, FNAME, FUNCNAME, RETURNNULL) \ + SWIG_check_nonnull(SWIG_CLASS_WRAPPER, TYPENAME, FNAME, FUNCNAME, RETURNNULL); \ + SWIG_check_mutable(SWIG_CLASS_WRAPPER, TYPENAME, FNAME, FUNCNAME, RETURNNULL); + + +#include +#if defined(_MSC_VER) || defined(__BORLANDC__) || defined(_WATCOM) +# ifndef snprintf +# define snprintf _snprintf +# endif +#endif + + +/* Support for the `contract` feature. + * + * Note that RETURNNULL is first because it's inserted via a 'Replaceall' in + * the fortran.cxx file. + */ +#define SWIG_contract_assert(RETURNNULL, EXPR, MSG) \ + if (!(EXPR)) { SWIG_exception_impl("$decl", SWIG_ValueError, MSG, RETURNNULL); } + + +#define SWIGVERSION 0x040000 +#define SWIG_VERSION SWIGVERSION + + +#define SWIG_as_voidptr(a) (void *)((const void *)(a)) +#define SWIG_as_voidptrptr(a) ((void)SWIG_as_voidptr(*a),(void**)(a)) + + +#include "idas/idas.h" +#include "idas/idas_bbdpre.h" +#include "idas/idas_ls.h" + + +#include +#ifdef _MSC_VER +# ifndef strtoull +# define strtoull _strtoui64 +# endif +# ifndef strtoll +# define strtoll _strtoi64 +# endif +#endif + + +typedef struct { + void* data; + size_t size; +} SwigArrayWrapper; + + +SWIGINTERN SwigArrayWrapper SwigArrayWrapper_uninitialized() { + SwigArrayWrapper result; + result.data = NULL; + result.size = 0; + return result; +} + + +#include + + +typedef struct { + void* cptr; + int cmemflags; +} SwigClassWrapper; + + +SWIGINTERN SwigClassWrapper SwigClassWrapper_uninitialized() { + SwigClassWrapper result; + result.cptr = NULL; + result.cmemflags = 0; + return result; +} + + +SWIGINTERN void SWIG_assign(SwigClassWrapper* self, SwigClassWrapper other) { + if (self->cptr == NULL) { + /* LHS is unassigned */ + if (other.cmemflags & SWIG_MEM_RVALUE) { + /* Capture pointer from RHS, clear 'moving' flag */ + self->cptr = other.cptr; + self->cmemflags = other.cmemflags & (~SWIG_MEM_RVALUE); + } else { + /* Become a reference to the other object */ + self->cptr = other.cptr; + self->cmemflags = other.cmemflags & (~SWIG_MEM_OWN); + } + } else if (other.cptr == NULL) { + /* Replace LHS with a null pointer */ + free(self->cptr); + *self = SwigClassWrapper_uninitialized(); + } else { + if (self->cmemflags & SWIG_MEM_OWN) { + free(self->cptr); + } + self->cptr = other.cptr; + if (other.cmemflags & SWIG_MEM_RVALUE) { + /* Capture RHS */ + self->cmemflags = other.cmemflags & ~SWIG_MEM_RVALUE; + } else { + /* Point to RHS */ + self->cmemflags = other.cmemflags & ~SWIG_MEM_OWN; + } + } +} + +SWIGEXPORT void * _wrap_FIDACreate(void *farg1) { + void * fresult ; + SUNContext arg1 = (SUNContext) 0 ; + void *result = 0 ; + + arg1 = (SUNContext)(farg1); + result = (void *)IDACreate(arg1); + fresult = result; + return fresult; +} + + +SWIGEXPORT int _wrap_FIDAInit(void *farg1, IDAResFn farg2, double const *farg3, N_Vector farg4, N_Vector farg5) { + int fresult ; + void *arg1 = (void *) 0 ; + IDAResFn arg2 = (IDAResFn) 0 ; + sunrealtype arg3 ; + N_Vector arg4 = (N_Vector) 0 ; + N_Vector arg5 = (N_Vector) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (IDAResFn)(farg2); + arg3 = (sunrealtype)(*farg3); + arg4 = (N_Vector)(farg4); + arg5 = (N_Vector)(farg5); + result = (int)IDAInit(arg1,arg2,arg3,arg4,arg5); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDAReInit(void *farg1, double const *farg2, N_Vector farg3, N_Vector farg4) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + N_Vector arg3 = (N_Vector) 0 ; + N_Vector arg4 = (N_Vector) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + arg3 = (N_Vector)(farg3); + arg4 = (N_Vector)(farg4); + result = (int)IDAReInit(arg1,arg2,arg3,arg4); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDASStolerances(void *farg1, double const *farg2, double const *farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + sunrealtype arg3 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + arg3 = (sunrealtype)(*farg3); + result = (int)IDASStolerances(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDASVtolerances(void *farg1, double const *farg2, N_Vector farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + N_Vector arg3 = (N_Vector) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + arg3 = (N_Vector)(farg3); + result = (int)IDASVtolerances(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDAWFtolerances(void *farg1, IDAEwtFn farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + IDAEwtFn arg2 = (IDAEwtFn) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (IDAEwtFn)(farg2); + result = (int)IDAWFtolerances(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDACalcIC(void *farg1, int const *farg2, double const *farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + sunrealtype arg3 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + arg3 = (sunrealtype)(*farg3); + result = (int)IDACalcIC(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDASetNonlinConvCoefIC(void *farg1, double const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + result = (int)IDASetNonlinConvCoefIC(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDASetMaxNumStepsIC(void *farg1, int const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + result = (int)IDASetMaxNumStepsIC(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDASetMaxNumJacsIC(void *farg1, int const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + result = (int)IDASetMaxNumJacsIC(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDASetMaxNumItersIC(void *farg1, int const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + result = (int)IDASetMaxNumItersIC(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDASetLineSearchOffIC(void *farg1, int const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + result = (int)IDASetLineSearchOffIC(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDASetStepToleranceIC(void *farg1, double const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + result = (int)IDASetStepToleranceIC(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDASetMaxBacksIC(void *farg1, int const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + result = (int)IDASetMaxBacksIC(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDASetDeltaCjLSetup(void *farg1, double const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + result = (int)IDASetDeltaCjLSetup(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDASetUserData(void *farg1, void *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + void *arg2 = (void *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (void *)(farg2); + result = (int)IDASetUserData(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDASetMaxOrd(void *farg1, int const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + result = (int)IDASetMaxOrd(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDASetMaxNumSteps(void *farg1, long const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long)(*farg2); + result = (int)IDASetMaxNumSteps(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDASetInitStep(void *farg1, double const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + result = (int)IDASetInitStep(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDASetMaxStep(void *farg1, double const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + result = (int)IDASetMaxStep(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDASetMinStep(void *farg1, double const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + result = (int)IDASetMinStep(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDASetStopTime(void *farg1, double const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + result = (int)IDASetStopTime(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDAClearStopTime(void *farg1) { + int fresult ; + void *arg1 = (void *) 0 ; + int result; + + arg1 = (void *)(farg1); + result = (int)IDAClearStopTime(arg1); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDASetMaxErrTestFails(void *farg1, int const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + result = (int)IDASetMaxErrTestFails(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDASetSuppressAlg(void *farg1, int const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + result = (int)IDASetSuppressAlg(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDASetId(void *farg1, N_Vector farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + N_Vector arg2 = (N_Vector) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (N_Vector)(farg2); + result = (int)IDASetId(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDASetConstraints(void *farg1, N_Vector farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + N_Vector arg2 = (N_Vector) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (N_Vector)(farg2); + result = (int)IDASetConstraints(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDASetEtaFixedStepBounds(void *farg1, double const *farg2, double const *farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + sunrealtype arg3 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + arg3 = (sunrealtype)(*farg3); + result = (int)IDASetEtaFixedStepBounds(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDASetEtaMin(void *farg1, double const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + result = (int)IDASetEtaMin(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDASetEtaMax(void *farg1, double const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + result = (int)IDASetEtaMax(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDASetEtaLow(void *farg1, double const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + result = (int)IDASetEtaLow(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDASetEtaMinErrFail(void *farg1, double const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + result = (int)IDASetEtaMinErrFail(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDASetEtaConvFail(void *farg1, double const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + result = (int)IDASetEtaConvFail(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDASetMaxConvFails(void *farg1, int const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + result = (int)IDASetMaxConvFails(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDASetMaxNonlinIters(void *farg1, int const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + result = (int)IDASetMaxNonlinIters(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDASetNlsResFn(void *farg1, IDAResFn farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + IDAResFn arg2 = (IDAResFn) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (IDAResFn)(farg2); + result = (int)IDASetNlsResFn(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDASetNonlinConvCoef(void *farg1, double const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + result = (int)IDASetNonlinConvCoef(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDASetNonlinearSolver(void *farg1, SUNNonlinearSolver farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + SUNNonlinearSolver arg2 = (SUNNonlinearSolver) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (SUNNonlinearSolver)(farg2); + result = (int)IDASetNonlinearSolver(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDARootInit(void *farg1, int const *farg2, IDARootFn farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + IDARootFn arg3 = (IDARootFn) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + arg3 = (IDARootFn)(farg3); + result = (int)IDARootInit(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDASetRootDirection(void *farg1, int *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + int *arg2 = (int *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int *)(farg2); + result = (int)IDASetRootDirection(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDASetNoInactiveRootWarn(void *farg1) { + int fresult ; + void *arg1 = (void *) 0 ; + int result; + + arg1 = (void *)(farg1); + result = (int)IDASetNoInactiveRootWarn(arg1); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDASolve(void *farg1, double const *farg2, double *farg3, N_Vector farg4, N_Vector farg5, int const *farg6) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + sunrealtype *arg3 = (sunrealtype *) 0 ; + N_Vector arg4 = (N_Vector) 0 ; + N_Vector arg5 = (N_Vector) 0 ; + int arg6 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + arg3 = (sunrealtype *)(farg3); + arg4 = (N_Vector)(farg4); + arg5 = (N_Vector)(farg5); + arg6 = (int)(*farg6); + result = (int)IDASolve(arg1,arg2,arg3,arg4,arg5,arg6); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDAComputeY(void *farg1, N_Vector farg2, N_Vector farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + N_Vector arg2 = (N_Vector) 0 ; + N_Vector arg3 = (N_Vector) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (N_Vector)(farg2); + arg3 = (N_Vector)(farg3); + result = (int)IDAComputeY(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDAComputeYp(void *farg1, N_Vector farg2, N_Vector farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + N_Vector arg2 = (N_Vector) 0 ; + N_Vector arg3 = (N_Vector) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (N_Vector)(farg2); + arg3 = (N_Vector)(farg3); + result = (int)IDAComputeYp(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDAComputeYSens(void *farg1, void *farg2, void *farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + N_Vector *arg2 = (N_Vector *) 0 ; + N_Vector *arg3 = (N_Vector *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (N_Vector *)(farg2); + arg3 = (N_Vector *)(farg3); + result = (int)IDAComputeYSens(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDAComputeYpSens(void *farg1, void *farg2, void *farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + N_Vector *arg2 = (N_Vector *) 0 ; + N_Vector *arg3 = (N_Vector *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (N_Vector *)(farg2); + arg3 = (N_Vector *)(farg3); + result = (int)IDAComputeYpSens(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDAGetDky(void *farg1, double const *farg2, int const *farg3, N_Vector farg4) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + int arg3 ; + N_Vector arg4 = (N_Vector) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + arg3 = (int)(*farg3); + arg4 = (N_Vector)(farg4); + result = (int)IDAGetDky(arg1,arg2,arg3,arg4); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDAGetWorkSpace(void *farg1, long *farg2, long *farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + long *arg3 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + arg3 = (long *)(farg3); + result = (int)IDAGetWorkSpace(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDAGetNumSteps(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)IDAGetNumSteps(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDAGetNumResEvals(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)IDAGetNumResEvals(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDAGetNumLinSolvSetups(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)IDAGetNumLinSolvSetups(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDAGetNumErrTestFails(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)IDAGetNumErrTestFails(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDAGetNumBacktrackOps(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)IDAGetNumBacktrackOps(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDAGetConsistentIC(void *farg1, N_Vector farg2, N_Vector farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + N_Vector arg2 = (N_Vector) 0 ; + N_Vector arg3 = (N_Vector) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (N_Vector)(farg2); + arg3 = (N_Vector)(farg3); + result = (int)IDAGetConsistentIC(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDAGetLastOrder(void *farg1, int *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + int *arg2 = (int *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int *)(farg2); + result = (int)IDAGetLastOrder(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDAGetCurrentOrder(void *farg1, int *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + int *arg2 = (int *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int *)(farg2); + result = (int)IDAGetCurrentOrder(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDAGetCurrentCj(void *farg1, double *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype *arg2 = (sunrealtype *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype *)(farg2); + result = (int)IDAGetCurrentCj(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDAGetCurrentY(void *farg1, void *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + N_Vector *arg2 = (N_Vector *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (N_Vector *)(farg2); + result = (int)IDAGetCurrentY(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDAGetCurrentYSens(void *farg1, void *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + N_Vector **arg2 = (N_Vector **) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (N_Vector **)(farg2); + result = (int)IDAGetCurrentYSens(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDAGetCurrentYp(void *farg1, void *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + N_Vector *arg2 = (N_Vector *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (N_Vector *)(farg2); + result = (int)IDAGetCurrentYp(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDAGetCurrentYpSens(void *farg1, void *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + N_Vector **arg2 = (N_Vector **) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (N_Vector **)(farg2); + result = (int)IDAGetCurrentYpSens(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDAGetActualInitStep(void *farg1, double *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype *arg2 = (sunrealtype *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype *)(farg2); + result = (int)IDAGetActualInitStep(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDAGetLastStep(void *farg1, double *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype *arg2 = (sunrealtype *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype *)(farg2); + result = (int)IDAGetLastStep(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDAGetCurrentStep(void *farg1, double *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype *arg2 = (sunrealtype *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype *)(farg2); + result = (int)IDAGetCurrentStep(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDAGetCurrentTime(void *farg1, double *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype *arg2 = (sunrealtype *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype *)(farg2); + result = (int)IDAGetCurrentTime(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDAGetTolScaleFactor(void *farg1, double *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype *arg2 = (sunrealtype *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype *)(farg2); + result = (int)IDAGetTolScaleFactor(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDAGetErrWeights(void *farg1, N_Vector farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + N_Vector arg2 = (N_Vector) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (N_Vector)(farg2); + result = (int)IDAGetErrWeights(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDAGetEstLocalErrors(void *farg1, N_Vector farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + N_Vector arg2 = (N_Vector) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (N_Vector)(farg2); + result = (int)IDAGetEstLocalErrors(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDAGetNumGEvals(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)IDAGetNumGEvals(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDAGetRootInfo(void *farg1, int *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + int *arg2 = (int *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int *)(farg2); + result = (int)IDAGetRootInfo(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDAGetIntegratorStats(void *farg1, long *farg2, long *farg3, long *farg4, long *farg5, int *farg6, int *farg7, double *farg8, double *farg9, double *farg10, double *farg11) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + long *arg3 = (long *) 0 ; + long *arg4 = (long *) 0 ; + long *arg5 = (long *) 0 ; + int *arg6 = (int *) 0 ; + int *arg7 = (int *) 0 ; + sunrealtype *arg8 = (sunrealtype *) 0 ; + sunrealtype *arg9 = (sunrealtype *) 0 ; + sunrealtype *arg10 = (sunrealtype *) 0 ; + sunrealtype *arg11 = (sunrealtype *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + arg3 = (long *)(farg3); + arg4 = (long *)(farg4); + arg5 = (long *)(farg5); + arg6 = (int *)(farg6); + arg7 = (int *)(farg7); + arg8 = (sunrealtype *)(farg8); + arg9 = (sunrealtype *)(farg9); + arg10 = (sunrealtype *)(farg10); + arg11 = (sunrealtype *)(farg11); + result = (int)IDAGetIntegratorStats(arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9,arg10,arg11); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDAGetNonlinearSystemData(void *farg1, double *farg2, void *farg3, void *farg4, void *farg5, void *farg6, void *farg7, double *farg8, void *farg9) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype *arg2 = (sunrealtype *) 0 ; + N_Vector *arg3 = (N_Vector *) 0 ; + N_Vector *arg4 = (N_Vector *) 0 ; + N_Vector *arg5 = (N_Vector *) 0 ; + N_Vector *arg6 = (N_Vector *) 0 ; + N_Vector *arg7 = (N_Vector *) 0 ; + sunrealtype *arg8 = (sunrealtype *) 0 ; + void **arg9 = (void **) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype *)(farg2); + arg3 = (N_Vector *)(farg3); + arg4 = (N_Vector *)(farg4); + arg5 = (N_Vector *)(farg5); + arg6 = (N_Vector *)(farg6); + arg7 = (N_Vector *)(farg7); + arg8 = (sunrealtype *)(farg8); + arg9 = (void **)(farg9); + result = (int)IDAGetNonlinearSystemData(arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDAGetNonlinearSystemDataSens(void *farg1, double *farg2, void *farg3, void *farg4, void *farg5, void *farg6, double *farg7, void *farg8) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype *arg2 = (sunrealtype *) 0 ; + N_Vector **arg3 = (N_Vector **) 0 ; + N_Vector **arg4 = (N_Vector **) 0 ; + N_Vector **arg5 = (N_Vector **) 0 ; + N_Vector **arg6 = (N_Vector **) 0 ; + sunrealtype *arg7 = (sunrealtype *) 0 ; + void **arg8 = (void **) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype *)(farg2); + arg3 = (N_Vector **)(farg3); + arg4 = (N_Vector **)(farg4); + arg5 = (N_Vector **)(farg5); + arg6 = (N_Vector **)(farg6); + arg7 = (sunrealtype *)(farg7); + arg8 = (void **)(farg8); + result = (int)IDAGetNonlinearSystemDataSens(arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDAGetNumNonlinSolvIters(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)IDAGetNumNonlinSolvIters(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDAGetNumNonlinSolvConvFails(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)IDAGetNumNonlinSolvConvFails(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDAGetNonlinSolvStats(void *farg1, long *farg2, long *farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + long *arg3 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + arg3 = (long *)(farg3); + result = (int)IDAGetNonlinSolvStats(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDAGetNumStepSolveFails(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)IDAGetNumStepSolveFails(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDAGetUserData(void *farg1, void *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + void **arg2 = (void **) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (void **)(farg2); + result = (int)IDAGetUserData(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDAPrintAllStats(void *farg1, void *farg2, int const *farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + FILE *arg2 = (FILE *) 0 ; + SUNOutputFormat arg3 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (FILE *)(farg2); + arg3 = (SUNOutputFormat)(*farg3); + result = (int)IDAPrintAllStats(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT SwigArrayWrapper _wrap_FIDAGetReturnFlagName(long const *farg1) { + SwigArrayWrapper fresult ; + long arg1 ; + char *result = 0 ; + + arg1 = (long)(*farg1); + result = (char *)IDAGetReturnFlagName(arg1); + fresult.size = strlen((const char*)(result)); + fresult.data = (char *)(result); + return fresult; +} + + +SWIGEXPORT void _wrap_FIDAFree(void *farg1) { + void **arg1 = (void **) 0 ; + + arg1 = (void **)(farg1); + IDAFree(arg1); +} + + +SWIGEXPORT int _wrap_FIDASetJacTimesResFn(void *farg1, IDAResFn farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + IDAResFn arg2 = (IDAResFn) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (IDAResFn)(farg2); + result = (int)IDASetJacTimesResFn(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDAQuadInit(void *farg1, IDAQuadRhsFn farg2, N_Vector farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + IDAQuadRhsFn arg2 = (IDAQuadRhsFn) 0 ; + N_Vector arg3 = (N_Vector) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (IDAQuadRhsFn)(farg2); + arg3 = (N_Vector)(farg3); + result = (int)IDAQuadInit(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDAQuadReInit(void *farg1, N_Vector farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + N_Vector arg2 = (N_Vector) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (N_Vector)(farg2); + result = (int)IDAQuadReInit(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDAQuadSStolerances(void *farg1, double const *farg2, double const *farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + sunrealtype arg3 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + arg3 = (sunrealtype)(*farg3); + result = (int)IDAQuadSStolerances(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDAQuadSVtolerances(void *farg1, double const *farg2, N_Vector farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + N_Vector arg3 = (N_Vector) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + arg3 = (N_Vector)(farg3); + result = (int)IDAQuadSVtolerances(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDASetQuadErrCon(void *farg1, int const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + result = (int)IDASetQuadErrCon(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDAGetQuad(void *farg1, double *farg2, N_Vector farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype *arg2 = (sunrealtype *) 0 ; + N_Vector arg3 = (N_Vector) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype *)(farg2); + arg3 = (N_Vector)(farg3); + result = (int)IDAGetQuad(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDAGetQuadDky(void *farg1, double const *farg2, int const *farg3, N_Vector farg4) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + int arg3 ; + N_Vector arg4 = (N_Vector) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + arg3 = (int)(*farg3); + arg4 = (N_Vector)(farg4); + result = (int)IDAGetQuadDky(arg1,arg2,arg3,arg4); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDAGetQuadNumRhsEvals(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)IDAGetQuadNumRhsEvals(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDAGetQuadNumErrTestFails(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)IDAGetQuadNumErrTestFails(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDAGetQuadErrWeights(void *farg1, N_Vector farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + N_Vector arg2 = (N_Vector) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (N_Vector)(farg2); + result = (int)IDAGetQuadErrWeights(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDAGetQuadStats(void *farg1, long *farg2, long *farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + long *arg3 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + arg3 = (long *)(farg3); + result = (int)IDAGetQuadStats(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT void _wrap_FIDAQuadFree(void *farg1) { + void *arg1 = (void *) 0 ; + + arg1 = (void *)(farg1); + IDAQuadFree(arg1); +} + + +SWIGEXPORT int _wrap_FIDASensInit(void *farg1, int const *farg2, int const *farg3, IDASensResFn farg4, void *farg5, void *farg6) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + int arg3 ; + IDASensResFn arg4 = (IDASensResFn) 0 ; + N_Vector *arg5 = (N_Vector *) 0 ; + N_Vector *arg6 = (N_Vector *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + arg3 = (int)(*farg3); + arg4 = (IDASensResFn)(farg4); + arg5 = (N_Vector *)(farg5); + arg6 = (N_Vector *)(farg6); + result = (int)IDASensInit(arg1,arg2,arg3,arg4,arg5,arg6); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDASensReInit(void *farg1, int const *farg2, void *farg3, void *farg4) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + N_Vector *arg3 = (N_Vector *) 0 ; + N_Vector *arg4 = (N_Vector *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + arg3 = (N_Vector *)(farg3); + arg4 = (N_Vector *)(farg4); + result = (int)IDASensReInit(arg1,arg2,arg3,arg4); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDASensSStolerances(void *farg1, double const *farg2, double *farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + sunrealtype *arg3 = (sunrealtype *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + arg3 = (sunrealtype *)(farg3); + result = (int)IDASensSStolerances(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDASensSVtolerances(void *farg1, double const *farg2, void *farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + N_Vector *arg3 = (N_Vector *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + arg3 = (N_Vector *)(farg3); + result = (int)IDASensSVtolerances(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDASensEEtolerances(void *farg1) { + int fresult ; + void *arg1 = (void *) 0 ; + int result; + + arg1 = (void *)(farg1); + result = (int)IDASensEEtolerances(arg1); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDAGetSensConsistentIC(void *farg1, void *farg2, void *farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + N_Vector *arg2 = (N_Vector *) 0 ; + N_Vector *arg3 = (N_Vector *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (N_Vector *)(farg2); + arg3 = (N_Vector *)(farg3); + result = (int)IDAGetSensConsistentIC(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDASetSensDQMethod(void *farg1, int const *farg2, double const *farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + sunrealtype arg3 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + arg3 = (sunrealtype)(*farg3); + result = (int)IDASetSensDQMethod(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDASetSensErrCon(void *farg1, int const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + result = (int)IDASetSensErrCon(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDASetSensMaxNonlinIters(void *farg1, int const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + result = (int)IDASetSensMaxNonlinIters(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDASetSensParams(void *farg1, double *farg2, double *farg3, int *farg4) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype *arg2 = (sunrealtype *) 0 ; + sunrealtype *arg3 = (sunrealtype *) 0 ; + int *arg4 = (int *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype *)(farg2); + arg3 = (sunrealtype *)(farg3); + arg4 = (int *)(farg4); + result = (int)IDASetSensParams(arg1,arg2,arg3,arg4); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDASetNonlinearSolverSensSim(void *farg1, SUNNonlinearSolver farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + SUNNonlinearSolver arg2 = (SUNNonlinearSolver) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (SUNNonlinearSolver)(farg2); + result = (int)IDASetNonlinearSolverSensSim(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDASetNonlinearSolverSensStg(void *farg1, SUNNonlinearSolver farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + SUNNonlinearSolver arg2 = (SUNNonlinearSolver) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (SUNNonlinearSolver)(farg2); + result = (int)IDASetNonlinearSolverSensStg(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDASensToggleOff(void *farg1) { + int fresult ; + void *arg1 = (void *) 0 ; + int result; + + arg1 = (void *)(farg1); + result = (int)IDASensToggleOff(arg1); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDAGetSens(void *farg1, double *farg2, void *farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype *arg2 = (sunrealtype *) 0 ; + N_Vector *arg3 = (N_Vector *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype *)(farg2); + arg3 = (N_Vector *)(farg3); + result = (int)IDAGetSens(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDAGetSens1(void *farg1, double *farg2, int const *farg3, N_Vector farg4) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype *arg2 = (sunrealtype *) 0 ; + int arg3 ; + N_Vector arg4 = (N_Vector) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype *)(farg2); + arg3 = (int)(*farg3); + arg4 = (N_Vector)(farg4); + result = (int)IDAGetSens1(arg1,arg2,arg3,arg4); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDAGetSensDky(void *farg1, double const *farg2, int const *farg3, void *farg4) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + int arg3 ; + N_Vector *arg4 = (N_Vector *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + arg3 = (int)(*farg3); + arg4 = (N_Vector *)(farg4); + result = (int)IDAGetSensDky(arg1,arg2,arg3,arg4); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDAGetSensDky1(void *farg1, double const *farg2, int const *farg3, int const *farg4, N_Vector farg5) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + int arg3 ; + int arg4 ; + N_Vector arg5 = (N_Vector) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + arg3 = (int)(*farg3); + arg4 = (int)(*farg4); + arg5 = (N_Vector)(farg5); + result = (int)IDAGetSensDky1(arg1,arg2,arg3,arg4,arg5); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDAGetSensNumResEvals(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)IDAGetSensNumResEvals(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDAGetNumResEvalsSens(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)IDAGetNumResEvalsSens(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDAGetSensNumErrTestFails(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)IDAGetSensNumErrTestFails(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDAGetSensNumLinSolvSetups(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)IDAGetSensNumLinSolvSetups(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDAGetSensErrWeights(void *farg1, void *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + N_Vector_S arg2 = (N_Vector_S) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (N_Vector_S)(farg2); + result = (int)IDAGetSensErrWeights(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDAGetSensStats(void *farg1, long *farg2, long *farg3, long *farg4, long *farg5) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + long *arg3 = (long *) 0 ; + long *arg4 = (long *) 0 ; + long *arg5 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + arg3 = (long *)(farg3); + arg4 = (long *)(farg4); + arg5 = (long *)(farg5); + result = (int)IDAGetSensStats(arg1,arg2,arg3,arg4,arg5); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDAGetSensNumNonlinSolvIters(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)IDAGetSensNumNonlinSolvIters(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDAGetSensNumNonlinSolvConvFails(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)IDAGetSensNumNonlinSolvConvFails(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDAGetSensNonlinSolvStats(void *farg1, long *farg2, long *farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + long *arg3 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + arg3 = (long *)(farg3); + result = (int)IDAGetSensNonlinSolvStats(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDAGetNumStepSensSolveFails(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)IDAGetNumStepSensSolveFails(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT void _wrap_FIDASensFree(void *farg1) { + void *arg1 = (void *) 0 ; + + arg1 = (void *)(farg1); + IDASensFree(arg1); +} + + +SWIGEXPORT int _wrap_FIDAQuadSensInit(void *farg1, IDAQuadSensRhsFn farg2, void *farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + IDAQuadSensRhsFn arg2 = (IDAQuadSensRhsFn) 0 ; + N_Vector *arg3 = (N_Vector *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (IDAQuadSensRhsFn)(farg2); + arg3 = (N_Vector *)(farg3); + result = (int)IDAQuadSensInit(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDAQuadSensReInit(void *farg1, void *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + N_Vector *arg2 = (N_Vector *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (N_Vector *)(farg2); + result = (int)IDAQuadSensReInit(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDAQuadSensSStolerances(void *farg1, double const *farg2, double *farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + sunrealtype *arg3 = (sunrealtype *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + arg3 = (sunrealtype *)(farg3); + result = (int)IDAQuadSensSStolerances(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDAQuadSensSVtolerances(void *farg1, double const *farg2, void *farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + N_Vector *arg3 = (N_Vector *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + arg3 = (N_Vector *)(farg3); + result = (int)IDAQuadSensSVtolerances(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDAQuadSensEEtolerances(void *farg1) { + int fresult ; + void *arg1 = (void *) 0 ; + int result; + + arg1 = (void *)(farg1); + result = (int)IDAQuadSensEEtolerances(arg1); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDASetQuadSensErrCon(void *farg1, int const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + result = (int)IDASetQuadSensErrCon(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDAGetQuadSens(void *farg1, double *farg2, void *farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype *arg2 = (sunrealtype *) 0 ; + N_Vector *arg3 = (N_Vector *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype *)(farg2); + arg3 = (N_Vector *)(farg3); + result = (int)IDAGetQuadSens(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDAGetQuadSens1(void *farg1, double *farg2, int const *farg3, N_Vector farg4) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype *arg2 = (sunrealtype *) 0 ; + int arg3 ; + N_Vector arg4 = (N_Vector) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype *)(farg2); + arg3 = (int)(*farg3); + arg4 = (N_Vector)(farg4); + result = (int)IDAGetQuadSens1(arg1,arg2,arg3,arg4); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDAGetQuadSensDky(void *farg1, double const *farg2, int const *farg3, void *farg4) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + int arg3 ; + N_Vector *arg4 = (N_Vector *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + arg3 = (int)(*farg3); + arg4 = (N_Vector *)(farg4); + result = (int)IDAGetQuadSensDky(arg1,arg2,arg3,arg4); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDAGetQuadSensDky1(void *farg1, double const *farg2, int const *farg3, int const *farg4, N_Vector farg5) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + int arg3 ; + int arg4 ; + N_Vector arg5 = (N_Vector) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + arg3 = (int)(*farg3); + arg4 = (int)(*farg4); + arg5 = (N_Vector)(farg5); + result = (int)IDAGetQuadSensDky1(arg1,arg2,arg3,arg4,arg5); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDAGetQuadSensNumRhsEvals(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)IDAGetQuadSensNumRhsEvals(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDAGetQuadSensNumErrTestFails(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)IDAGetQuadSensNumErrTestFails(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDAGetQuadSensErrWeights(void *farg1, void *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + N_Vector *arg2 = (N_Vector *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (N_Vector *)(farg2); + result = (int)IDAGetQuadSensErrWeights(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDAGetQuadSensStats(void *farg1, long *farg2, long *farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + long *arg3 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + arg3 = (long *)(farg3); + result = (int)IDAGetQuadSensStats(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT void _wrap_FIDAQuadSensFree(void *farg1) { + void *arg1 = (void *) 0 ; + + arg1 = (void *)(farg1); + IDAQuadSensFree(arg1); +} + + +SWIGEXPORT int _wrap_FIDAAdjInit(void *farg1, long const *farg2, int const *farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + long arg2 ; + int arg3 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long)(*farg2); + arg3 = (int)(*farg3); + result = (int)IDAAdjInit(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDAAdjReInit(void *farg1) { + int fresult ; + void *arg1 = (void *) 0 ; + int result; + + arg1 = (void *)(farg1); + result = (int)IDAAdjReInit(arg1); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT void _wrap_FIDAAdjFree(void *farg1) { + void *arg1 = (void *) 0 ; + + arg1 = (void *)(farg1); + IDAAdjFree(arg1); +} + + +SWIGEXPORT int _wrap_FIDACreateB(void *farg1, int *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + int *arg2 = (int *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int *)(farg2); + result = (int)IDACreateB(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDAInitB(void *farg1, int const *farg2, IDAResFnB farg3, double const *farg4, N_Vector farg5, N_Vector farg6) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + IDAResFnB arg3 = (IDAResFnB) 0 ; + sunrealtype arg4 ; + N_Vector arg5 = (N_Vector) 0 ; + N_Vector arg6 = (N_Vector) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + arg3 = (IDAResFnB)(farg3); + arg4 = (sunrealtype)(*farg4); + arg5 = (N_Vector)(farg5); + arg6 = (N_Vector)(farg6); + result = (int)IDAInitB(arg1,arg2,arg3,arg4,arg5,arg6); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDAInitBS(void *farg1, int const *farg2, IDAResFnBS farg3, double const *farg4, N_Vector farg5, N_Vector farg6) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + IDAResFnBS arg3 = (IDAResFnBS) 0 ; + sunrealtype arg4 ; + N_Vector arg5 = (N_Vector) 0 ; + N_Vector arg6 = (N_Vector) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + arg3 = (IDAResFnBS)(farg3); + arg4 = (sunrealtype)(*farg4); + arg5 = (N_Vector)(farg5); + arg6 = (N_Vector)(farg6); + result = (int)IDAInitBS(arg1,arg2,arg3,arg4,arg5,arg6); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDAReInitB(void *farg1, int const *farg2, double const *farg3, N_Vector farg4, N_Vector farg5) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + sunrealtype arg3 ; + N_Vector arg4 = (N_Vector) 0 ; + N_Vector arg5 = (N_Vector) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + arg3 = (sunrealtype)(*farg3); + arg4 = (N_Vector)(farg4); + arg5 = (N_Vector)(farg5); + result = (int)IDAReInitB(arg1,arg2,arg3,arg4,arg5); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDASStolerancesB(void *farg1, int const *farg2, double const *farg3, double const *farg4) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + sunrealtype arg3 ; + sunrealtype arg4 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + arg3 = (sunrealtype)(*farg3); + arg4 = (sunrealtype)(*farg4); + result = (int)IDASStolerancesB(arg1,arg2,arg3,arg4); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDASVtolerancesB(void *farg1, int const *farg2, double const *farg3, N_Vector farg4) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + sunrealtype arg3 ; + N_Vector arg4 = (N_Vector) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + arg3 = (sunrealtype)(*farg3); + arg4 = (N_Vector)(farg4); + result = (int)IDASVtolerancesB(arg1,arg2,arg3,arg4); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDAQuadInitB(void *farg1, int const *farg2, IDAQuadRhsFnB farg3, N_Vector farg4) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + IDAQuadRhsFnB arg3 = (IDAQuadRhsFnB) 0 ; + N_Vector arg4 = (N_Vector) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + arg3 = (IDAQuadRhsFnB)(farg3); + arg4 = (N_Vector)(farg4); + result = (int)IDAQuadInitB(arg1,arg2,arg3,arg4); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDAQuadInitBS(void *farg1, int const *farg2, IDAQuadRhsFnBS farg3, N_Vector farg4) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + IDAQuadRhsFnBS arg3 = (IDAQuadRhsFnBS) 0 ; + N_Vector arg4 = (N_Vector) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + arg3 = (IDAQuadRhsFnBS)(farg3); + arg4 = (N_Vector)(farg4); + result = (int)IDAQuadInitBS(arg1,arg2,arg3,arg4); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDAQuadReInitB(void *farg1, int const *farg2, N_Vector farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + N_Vector arg3 = (N_Vector) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + arg3 = (N_Vector)(farg3); + result = (int)IDAQuadReInitB(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDAQuadSStolerancesB(void *farg1, int const *farg2, double const *farg3, double const *farg4) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + sunrealtype arg3 ; + sunrealtype arg4 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + arg3 = (sunrealtype)(*farg3); + arg4 = (sunrealtype)(*farg4); + result = (int)IDAQuadSStolerancesB(arg1,arg2,arg3,arg4); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDAQuadSVtolerancesB(void *farg1, int const *farg2, double const *farg3, N_Vector farg4) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + sunrealtype arg3 ; + N_Vector arg4 = (N_Vector) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + arg3 = (sunrealtype)(*farg3); + arg4 = (N_Vector)(farg4); + result = (int)IDAQuadSVtolerancesB(arg1,arg2,arg3,arg4); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDACalcICB(void *farg1, int const *farg2, double const *farg3, N_Vector farg4, N_Vector farg5) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + sunrealtype arg3 ; + N_Vector arg4 = (N_Vector) 0 ; + N_Vector arg5 = (N_Vector) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + arg3 = (sunrealtype)(*farg3); + arg4 = (N_Vector)(farg4); + arg5 = (N_Vector)(farg5); + result = (int)IDACalcICB(arg1,arg2,arg3,arg4,arg5); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDACalcICBS(void *farg1, int const *farg2, double const *farg3, N_Vector farg4, N_Vector farg5, void *farg6, void *farg7) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + sunrealtype arg3 ; + N_Vector arg4 = (N_Vector) 0 ; + N_Vector arg5 = (N_Vector) 0 ; + N_Vector *arg6 = (N_Vector *) 0 ; + N_Vector *arg7 = (N_Vector *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + arg3 = (sunrealtype)(*farg3); + arg4 = (N_Vector)(farg4); + arg5 = (N_Vector)(farg5); + arg6 = (N_Vector *)(farg6); + arg7 = (N_Vector *)(farg7); + result = (int)IDACalcICBS(arg1,arg2,arg3,arg4,arg5,arg6,arg7); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDASolveF(void *farg1, double const *farg2, double *farg3, N_Vector farg4, N_Vector farg5, int const *farg6, int *farg7) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + sunrealtype *arg3 = (sunrealtype *) 0 ; + N_Vector arg4 = (N_Vector) 0 ; + N_Vector arg5 = (N_Vector) 0 ; + int arg6 ; + int *arg7 = (int *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + arg3 = (sunrealtype *)(farg3); + arg4 = (N_Vector)(farg4); + arg5 = (N_Vector)(farg5); + arg6 = (int)(*farg6); + arg7 = (int *)(farg7); + result = (int)IDASolveF(arg1,arg2,arg3,arg4,arg5,arg6,arg7); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDASolveB(void *farg1, double const *farg2, int const *farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + int arg3 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + arg3 = (int)(*farg3); + result = (int)IDASolveB(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDAAdjSetNoSensi(void *farg1) { + int fresult ; + void *arg1 = (void *) 0 ; + int result; + + arg1 = (void *)(farg1); + result = (int)IDAAdjSetNoSensi(arg1); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDASetUserDataB(void *farg1, int const *farg2, void *farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + void *arg3 = (void *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + arg3 = (void *)(farg3); + result = (int)IDASetUserDataB(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDASetMaxOrdB(void *farg1, int const *farg2, int const *farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + int arg3 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + arg3 = (int)(*farg3); + result = (int)IDASetMaxOrdB(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDASetMaxNumStepsB(void *farg1, int const *farg2, long const *farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + long arg3 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + arg3 = (long)(*farg3); + result = (int)IDASetMaxNumStepsB(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDASetInitStepB(void *farg1, int const *farg2, double const *farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + sunrealtype arg3 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + arg3 = (sunrealtype)(*farg3); + result = (int)IDASetInitStepB(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDASetMaxStepB(void *farg1, int const *farg2, double const *farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + sunrealtype arg3 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + arg3 = (sunrealtype)(*farg3); + result = (int)IDASetMaxStepB(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDASetSuppressAlgB(void *farg1, int const *farg2, int const *farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + int arg3 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + arg3 = (int)(*farg3); + result = (int)IDASetSuppressAlgB(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDASetIdB(void *farg1, int const *farg2, N_Vector farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + N_Vector arg3 = (N_Vector) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + arg3 = (N_Vector)(farg3); + result = (int)IDASetIdB(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDASetConstraintsB(void *farg1, int const *farg2, N_Vector farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + N_Vector arg3 = (N_Vector) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + arg3 = (N_Vector)(farg3); + result = (int)IDASetConstraintsB(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDASetQuadErrConB(void *farg1, int const *farg2, int const *farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + int arg3 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + arg3 = (int)(*farg3); + result = (int)IDASetQuadErrConB(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDASetNonlinearSolverB(void *farg1, int const *farg2, SUNNonlinearSolver farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + SUNNonlinearSolver arg3 = (SUNNonlinearSolver) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + arg3 = (SUNNonlinearSolver)(farg3); + result = (int)IDASetNonlinearSolverB(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDAGetB(void *farg1, int const *farg2, double *farg3, N_Vector farg4, N_Vector farg5) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + sunrealtype *arg3 = (sunrealtype *) 0 ; + N_Vector arg4 = (N_Vector) 0 ; + N_Vector arg5 = (N_Vector) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + arg3 = (sunrealtype *)(farg3); + arg4 = (N_Vector)(farg4); + arg5 = (N_Vector)(farg5); + result = (int)IDAGetB(arg1,arg2,arg3,arg4,arg5); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDAGetQuadB(void *farg1, int const *farg2, double *farg3, N_Vector farg4) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + sunrealtype *arg3 = (sunrealtype *) 0 ; + N_Vector arg4 = (N_Vector) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + arg3 = (sunrealtype *)(farg3); + arg4 = (N_Vector)(farg4); + result = (int)IDAGetQuadB(arg1,arg2,arg3,arg4); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT void * _wrap_FIDAGetAdjIDABmem(void *farg1, int const *farg2) { + void * fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + void *result = 0 ; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + result = (void *)IDAGetAdjIDABmem(arg1,arg2); + fresult = result; + return fresult; +} + + +SWIGEXPORT int _wrap_FIDAGetConsistentICB(void *farg1, int const *farg2, N_Vector farg3, N_Vector farg4) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + N_Vector arg3 = (N_Vector) 0 ; + N_Vector arg4 = (N_Vector) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + arg3 = (N_Vector)(farg3); + arg4 = (N_Vector)(farg4); + result = (int)IDAGetConsistentICB(arg1,arg2,arg3,arg4); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDAGetAdjY(void *farg1, double const *farg2, N_Vector farg3, N_Vector farg4) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + N_Vector arg3 = (N_Vector) 0 ; + N_Vector arg4 = (N_Vector) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + arg3 = (N_Vector)(farg3); + arg4 = (N_Vector)(farg4); + result = (int)IDAGetAdjY(arg1,arg2,arg3,arg4); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT void _wrap_IDAadjCheckPointRec_my_addr_set(SwigClassWrapper const *farg1, void *farg2) { + IDAadjCheckPointRec *arg1 = (IDAadjCheckPointRec *) 0 ; + void *arg2 = (void *) 0 ; + + SWIG_check_mutable_nonnull(*farg1, "IDAadjCheckPointRec *", "IDAadjCheckPointRec", "IDAadjCheckPointRec::my_addr", return ); + arg1 = (IDAadjCheckPointRec *)(farg1->cptr); + arg2 = (void *)(farg2); + if (arg1) (arg1)->my_addr = arg2; +} + + +SWIGEXPORT void * _wrap_IDAadjCheckPointRec_my_addr_get(SwigClassWrapper const *farg1) { + void * fresult ; + IDAadjCheckPointRec *arg1 = (IDAadjCheckPointRec *) 0 ; + void *result = 0 ; + + SWIG_check_mutable_nonnull(*farg1, "IDAadjCheckPointRec *", "IDAadjCheckPointRec", "IDAadjCheckPointRec::my_addr", return 0); + arg1 = (IDAadjCheckPointRec *)(farg1->cptr); + result = (void *) ((arg1)->my_addr); + fresult = result; + return fresult; +} + + +SWIGEXPORT void _wrap_IDAadjCheckPointRec_next_addr_set(SwigClassWrapper const *farg1, void *farg2) { + IDAadjCheckPointRec *arg1 = (IDAadjCheckPointRec *) 0 ; + void *arg2 = (void *) 0 ; + + SWIG_check_mutable_nonnull(*farg1, "IDAadjCheckPointRec *", "IDAadjCheckPointRec", "IDAadjCheckPointRec::next_addr", return ); + arg1 = (IDAadjCheckPointRec *)(farg1->cptr); + arg2 = (void *)(farg2); + if (arg1) (arg1)->next_addr = arg2; +} + + +SWIGEXPORT void * _wrap_IDAadjCheckPointRec_next_addr_get(SwigClassWrapper const *farg1) { + void * fresult ; + IDAadjCheckPointRec *arg1 = (IDAadjCheckPointRec *) 0 ; + void *result = 0 ; + + SWIG_check_mutable_nonnull(*farg1, "IDAadjCheckPointRec *", "IDAadjCheckPointRec", "IDAadjCheckPointRec::next_addr", return 0); + arg1 = (IDAadjCheckPointRec *)(farg1->cptr); + result = (void *) ((arg1)->next_addr); + fresult = result; + return fresult; +} + + +SWIGEXPORT void _wrap_IDAadjCheckPointRec_t0_set(SwigClassWrapper const *farg1, double const *farg2) { + IDAadjCheckPointRec *arg1 = (IDAadjCheckPointRec *) 0 ; + sunrealtype arg2 ; + + SWIG_check_mutable_nonnull(*farg1, "IDAadjCheckPointRec *", "IDAadjCheckPointRec", "IDAadjCheckPointRec::t0", return ); + arg1 = (IDAadjCheckPointRec *)(farg1->cptr); + arg2 = (sunrealtype)(*farg2); + if (arg1) (arg1)->t0 = arg2; +} + + +SWIGEXPORT double _wrap_IDAadjCheckPointRec_t0_get(SwigClassWrapper const *farg1) { + double fresult ; + IDAadjCheckPointRec *arg1 = (IDAadjCheckPointRec *) 0 ; + sunrealtype result; + + SWIG_check_mutable_nonnull(*farg1, "IDAadjCheckPointRec *", "IDAadjCheckPointRec", "IDAadjCheckPointRec::t0", return 0); + arg1 = (IDAadjCheckPointRec *)(farg1->cptr); + result = (sunrealtype) ((arg1)->t0); + fresult = (sunrealtype)(result); + return fresult; +} + + +SWIGEXPORT void _wrap_IDAadjCheckPointRec_t1_set(SwigClassWrapper const *farg1, double const *farg2) { + IDAadjCheckPointRec *arg1 = (IDAadjCheckPointRec *) 0 ; + sunrealtype arg2 ; + + SWIG_check_mutable_nonnull(*farg1, "IDAadjCheckPointRec *", "IDAadjCheckPointRec", "IDAadjCheckPointRec::t1", return ); + arg1 = (IDAadjCheckPointRec *)(farg1->cptr); + arg2 = (sunrealtype)(*farg2); + if (arg1) (arg1)->t1 = arg2; +} + + +SWIGEXPORT double _wrap_IDAadjCheckPointRec_t1_get(SwigClassWrapper const *farg1) { + double fresult ; + IDAadjCheckPointRec *arg1 = (IDAadjCheckPointRec *) 0 ; + sunrealtype result; + + SWIG_check_mutable_nonnull(*farg1, "IDAadjCheckPointRec *", "IDAadjCheckPointRec", "IDAadjCheckPointRec::t1", return 0); + arg1 = (IDAadjCheckPointRec *)(farg1->cptr); + result = (sunrealtype) ((arg1)->t1); + fresult = (sunrealtype)(result); + return fresult; +} + + +SWIGEXPORT void _wrap_IDAadjCheckPointRec_nstep_set(SwigClassWrapper const *farg1, long const *farg2) { + IDAadjCheckPointRec *arg1 = (IDAadjCheckPointRec *) 0 ; + long arg2 ; + + SWIG_check_mutable_nonnull(*farg1, "IDAadjCheckPointRec *", "IDAadjCheckPointRec", "IDAadjCheckPointRec::nstep", return ); + arg1 = (IDAadjCheckPointRec *)(farg1->cptr); + arg2 = (long)(*farg2); + if (arg1) (arg1)->nstep = arg2; +} + + +SWIGEXPORT long _wrap_IDAadjCheckPointRec_nstep_get(SwigClassWrapper const *farg1) { + long fresult ; + IDAadjCheckPointRec *arg1 = (IDAadjCheckPointRec *) 0 ; + long result; + + SWIG_check_mutable_nonnull(*farg1, "IDAadjCheckPointRec *", "IDAadjCheckPointRec", "IDAadjCheckPointRec::nstep", return 0); + arg1 = (IDAadjCheckPointRec *)(farg1->cptr); + result = (long) ((arg1)->nstep); + fresult = (long)(result); + return fresult; +} + + +SWIGEXPORT void _wrap_IDAadjCheckPointRec_order_set(SwigClassWrapper const *farg1, int const *farg2) { + IDAadjCheckPointRec *arg1 = (IDAadjCheckPointRec *) 0 ; + int arg2 ; + + SWIG_check_mutable_nonnull(*farg1, "IDAadjCheckPointRec *", "IDAadjCheckPointRec", "IDAadjCheckPointRec::order", return ); + arg1 = (IDAadjCheckPointRec *)(farg1->cptr); + arg2 = (int)(*farg2); + if (arg1) (arg1)->order = arg2; +} + + +SWIGEXPORT int _wrap_IDAadjCheckPointRec_order_get(SwigClassWrapper const *farg1) { + int fresult ; + IDAadjCheckPointRec *arg1 = (IDAadjCheckPointRec *) 0 ; + int result; + + SWIG_check_mutable_nonnull(*farg1, "IDAadjCheckPointRec *", "IDAadjCheckPointRec", "IDAadjCheckPointRec::order", return 0); + arg1 = (IDAadjCheckPointRec *)(farg1->cptr); + result = (int) ((arg1)->order); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT void _wrap_IDAadjCheckPointRec_step_set(SwigClassWrapper const *farg1, double const *farg2) { + IDAadjCheckPointRec *arg1 = (IDAadjCheckPointRec *) 0 ; + sunrealtype arg2 ; + + SWIG_check_mutable_nonnull(*farg1, "IDAadjCheckPointRec *", "IDAadjCheckPointRec", "IDAadjCheckPointRec::step", return ); + arg1 = (IDAadjCheckPointRec *)(farg1->cptr); + arg2 = (sunrealtype)(*farg2); + if (arg1) (arg1)->step = arg2; +} + + +SWIGEXPORT double _wrap_IDAadjCheckPointRec_step_get(SwigClassWrapper const *farg1) { + double fresult ; + IDAadjCheckPointRec *arg1 = (IDAadjCheckPointRec *) 0 ; + sunrealtype result; + + SWIG_check_mutable_nonnull(*farg1, "IDAadjCheckPointRec *", "IDAadjCheckPointRec", "IDAadjCheckPointRec::step", return 0); + arg1 = (IDAadjCheckPointRec *)(farg1->cptr); + result = (sunrealtype) ((arg1)->step); + fresult = (sunrealtype)(result); + return fresult; +} + + +SWIGEXPORT SwigClassWrapper _wrap_new_IDAadjCheckPointRec() { + SwigClassWrapper fresult ; + IDAadjCheckPointRec *result = 0 ; + + result = (IDAadjCheckPointRec *)calloc(1, sizeof(IDAadjCheckPointRec)); + fresult.cptr = result; + fresult.cmemflags = SWIG_MEM_RVALUE | (1 ? SWIG_MEM_OWN : 0); + return fresult; +} + + +SWIGEXPORT void _wrap_delete_IDAadjCheckPointRec(SwigClassWrapper *farg1) { + IDAadjCheckPointRec *arg1 = (IDAadjCheckPointRec *) 0 ; + + SWIG_check_mutable(*farg1, "IDAadjCheckPointRec *", "IDAadjCheckPointRec", "IDAadjCheckPointRec::~IDAadjCheckPointRec()", return ); + arg1 = (IDAadjCheckPointRec *)(farg1->cptr); + free((char *) arg1); +} + + +SWIGEXPORT void _wrap_IDAadjCheckPointRec_op_assign__(SwigClassWrapper *farg1, SwigClassWrapper const *farg2) { + IDAadjCheckPointRec *arg1 = (IDAadjCheckPointRec *) 0 ; + IDAadjCheckPointRec *arg2 = 0 ; + + (void)sizeof(arg1); + (void)sizeof(arg2); + SWIG_assign(farg1, *farg2); + +} + + +SWIGEXPORT int _wrap_FIDAGetAdjCheckPointsInfo(void *farg1, SwigClassWrapper const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + IDAadjCheckPointRec *arg2 = (IDAadjCheckPointRec *) 0 ; + int result; + + arg1 = (void *)(farg1); + SWIG_check_mutable(*farg2, "IDAadjCheckPointRec *", "IDAadjCheckPointRec", "IDAGetAdjCheckPointsInfo(void *,IDAadjCheckPointRec *)", return 0); + arg2 = (IDAadjCheckPointRec *)(farg2->cptr); + result = (int)IDAGetAdjCheckPointsInfo(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDASetJacTimesResFnB(void *farg1, int const *farg2, IDAResFn farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + IDAResFn arg3 = (IDAResFn) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + arg3 = (IDAResFn)(farg3); + result = (int)IDASetJacTimesResFnB(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDAGetAdjDataPointHermite(void *farg1, int const *farg2, double *farg3, N_Vector farg4, N_Vector farg5) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + sunrealtype *arg3 = (sunrealtype *) 0 ; + N_Vector arg4 = (N_Vector) 0 ; + N_Vector arg5 = (N_Vector) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + arg3 = (sunrealtype *)(farg3); + arg4 = (N_Vector)(farg4); + arg5 = (N_Vector)(farg5); + result = (int)IDAGetAdjDataPointHermite(arg1,arg2,arg3,arg4,arg5); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDAGetAdjDataPointPolynomial(void *farg1, int const *farg2, double *farg3, int *farg4, N_Vector farg5) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + sunrealtype *arg3 = (sunrealtype *) 0 ; + int *arg4 = (int *) 0 ; + N_Vector arg5 = (N_Vector) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + arg3 = (sunrealtype *)(farg3); + arg4 = (int *)(farg4); + arg5 = (N_Vector)(farg5); + result = (int)IDAGetAdjDataPointPolynomial(arg1,arg2,arg3,arg4,arg5); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDAGetAdjCurrentCheckPoint(void *farg1, void *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + void **arg2 = (void **) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (void **)(farg2); + result = (int)IDAGetAdjCurrentCheckPoint(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDABBDPrecInit(void *farg1, int32_t const *farg2, int32_t const *farg3, int32_t const *farg4, int32_t const *farg5, int32_t const *farg6, double const *farg7, IDABBDLocalFn farg8, IDABBDCommFn farg9) { + int fresult ; + void *arg1 = (void *) 0 ; + sunindextype arg2 ; + sunindextype arg3 ; + sunindextype arg4 ; + sunindextype arg5 ; + sunindextype arg6 ; + sunrealtype arg7 ; + IDABBDLocalFn arg8 = (IDABBDLocalFn) 0 ; + IDABBDCommFn arg9 = (IDABBDCommFn) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunindextype)(*farg2); + arg3 = (sunindextype)(*farg3); + arg4 = (sunindextype)(*farg4); + arg5 = (sunindextype)(*farg5); + arg6 = (sunindextype)(*farg6); + arg7 = (sunrealtype)(*farg7); + arg8 = (IDABBDLocalFn)(farg8); + arg9 = (IDABBDCommFn)(farg9); + result = (int)IDABBDPrecInit(arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDABBDPrecReInit(void *farg1, int32_t const *farg2, int32_t const *farg3, double const *farg4) { + int fresult ; + void *arg1 = (void *) 0 ; + sunindextype arg2 ; + sunindextype arg3 ; + sunrealtype arg4 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunindextype)(*farg2); + arg3 = (sunindextype)(*farg3); + arg4 = (sunrealtype)(*farg4); + result = (int)IDABBDPrecReInit(arg1,arg2,arg3,arg4); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDABBDPrecGetWorkSpace(void *farg1, long *farg2, long *farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + long *arg3 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + arg3 = (long *)(farg3); + result = (int)IDABBDPrecGetWorkSpace(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDABBDPrecGetNumGfnEvals(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)IDABBDPrecGetNumGfnEvals(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDABBDPrecInitB(void *farg1, int const *farg2, int32_t const *farg3, int32_t const *farg4, int32_t const *farg5, int32_t const *farg6, int32_t const *farg7, double const *farg8, IDABBDLocalFnB farg9, IDABBDCommFnB farg10) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + sunindextype arg3 ; + sunindextype arg4 ; + sunindextype arg5 ; + sunindextype arg6 ; + sunindextype arg7 ; + sunrealtype arg8 ; + IDABBDLocalFnB arg9 = (IDABBDLocalFnB) 0 ; + IDABBDCommFnB arg10 = (IDABBDCommFnB) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + arg3 = (sunindextype)(*farg3); + arg4 = (sunindextype)(*farg4); + arg5 = (sunindextype)(*farg5); + arg6 = (sunindextype)(*farg6); + arg7 = (sunindextype)(*farg7); + arg8 = (sunrealtype)(*farg8); + arg9 = (IDABBDLocalFnB)(farg9); + arg10 = (IDABBDCommFnB)(farg10); + result = (int)IDABBDPrecInitB(arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9,arg10); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDABBDPrecReInitB(void *farg1, int const *farg2, int32_t const *farg3, int32_t const *farg4, double const *farg5) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + sunindextype arg3 ; + sunindextype arg4 ; + sunrealtype arg5 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + arg3 = (sunindextype)(*farg3); + arg4 = (sunindextype)(*farg4); + arg5 = (sunrealtype)(*farg5); + result = (int)IDABBDPrecReInitB(arg1,arg2,arg3,arg4,arg5); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDASetLinearSolver(void *farg1, SUNLinearSolver farg2, SUNMatrix farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + SUNLinearSolver arg2 = (SUNLinearSolver) 0 ; + SUNMatrix arg3 = (SUNMatrix) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (SUNLinearSolver)(farg2); + arg3 = (SUNMatrix)(farg3); + result = (int)IDASetLinearSolver(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDASetJacFn(void *farg1, IDALsJacFn farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + IDALsJacFn arg2 = (IDALsJacFn) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (IDALsJacFn)(farg2); + result = (int)IDASetJacFn(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDASetPreconditioner(void *farg1, IDALsPrecSetupFn farg2, IDALsPrecSolveFn farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + IDALsPrecSetupFn arg2 = (IDALsPrecSetupFn) 0 ; + IDALsPrecSolveFn arg3 = (IDALsPrecSolveFn) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (IDALsPrecSetupFn)(farg2); + arg3 = (IDALsPrecSolveFn)(farg3); + result = (int)IDASetPreconditioner(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDASetJacTimes(void *farg1, IDALsJacTimesSetupFn farg2, IDALsJacTimesVecFn farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + IDALsJacTimesSetupFn arg2 = (IDALsJacTimesSetupFn) 0 ; + IDALsJacTimesVecFn arg3 = (IDALsJacTimesVecFn) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (IDALsJacTimesSetupFn)(farg2); + arg3 = (IDALsJacTimesVecFn)(farg3); + result = (int)IDASetJacTimes(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDASetEpsLin(void *farg1, double const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + result = (int)IDASetEpsLin(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDASetLSNormFactor(void *farg1, double const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + result = (int)IDASetLSNormFactor(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDASetLinearSolutionScaling(void *farg1, int const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + result = (int)IDASetLinearSolutionScaling(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDASetIncrementFactor(void *farg1, double const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + result = (int)IDASetIncrementFactor(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDAGetJac(void *farg1, void *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + SUNMatrix *arg2 = (SUNMatrix *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (SUNMatrix *)(farg2); + result = (int)IDAGetJac(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDAGetJacCj(void *farg1, double *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype *arg2 = (sunrealtype *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype *)(farg2); + result = (int)IDAGetJacCj(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDAGetJacTime(void *farg1, double *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype *arg2 = (sunrealtype *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype *)(farg2); + result = (int)IDAGetJacTime(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDAGetJacNumSteps(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)IDAGetJacNumSteps(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDAGetLinWorkSpace(void *farg1, long *farg2, long *farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + long *arg3 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + arg3 = (long *)(farg3); + result = (int)IDAGetLinWorkSpace(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDAGetNumJacEvals(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)IDAGetNumJacEvals(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDAGetNumPrecEvals(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)IDAGetNumPrecEvals(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDAGetNumPrecSolves(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)IDAGetNumPrecSolves(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDAGetNumLinIters(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)IDAGetNumLinIters(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDAGetNumLinConvFails(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)IDAGetNumLinConvFails(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDAGetNumJTSetupEvals(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)IDAGetNumJTSetupEvals(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDAGetNumJtimesEvals(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)IDAGetNumJtimesEvals(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDAGetNumLinResEvals(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)IDAGetNumLinResEvals(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDAGetLastLinFlag(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)IDAGetLastLinFlag(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT SwigArrayWrapper _wrap_FIDAGetLinReturnFlagName(long const *farg1) { + SwigArrayWrapper fresult ; + long arg1 ; + char *result = 0 ; + + arg1 = (long)(*farg1); + result = (char *)IDAGetLinReturnFlagName(arg1); + fresult.size = strlen((const char*)(result)); + fresult.data = (char *)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDASetLinearSolverB(void *farg1, int const *farg2, SUNLinearSolver farg3, SUNMatrix farg4) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + SUNLinearSolver arg3 = (SUNLinearSolver) 0 ; + SUNMatrix arg4 = (SUNMatrix) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + arg3 = (SUNLinearSolver)(farg3); + arg4 = (SUNMatrix)(farg4); + result = (int)IDASetLinearSolverB(arg1,arg2,arg3,arg4); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDASetJacFnB(void *farg1, int const *farg2, IDALsJacFnB farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + IDALsJacFnB arg3 = (IDALsJacFnB) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + arg3 = (IDALsJacFnB)(farg3); + result = (int)IDASetJacFnB(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDASetJacFnBS(void *farg1, int const *farg2, IDALsJacFnBS farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + IDALsJacFnBS arg3 = (IDALsJacFnBS) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + arg3 = (IDALsJacFnBS)(farg3); + result = (int)IDASetJacFnBS(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDASetEpsLinB(void *farg1, int const *farg2, double const *farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + sunrealtype arg3 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + arg3 = (sunrealtype)(*farg3); + result = (int)IDASetEpsLinB(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDASetLSNormFactorB(void *farg1, int const *farg2, double const *farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + sunrealtype arg3 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + arg3 = (sunrealtype)(*farg3); + result = (int)IDASetLSNormFactorB(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDASetLinearSolutionScalingB(void *farg1, int const *farg2, int const *farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + int arg3 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + arg3 = (int)(*farg3); + result = (int)IDASetLinearSolutionScalingB(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDASetIncrementFactorB(void *farg1, int const *farg2, double const *farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + sunrealtype arg3 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + arg3 = (sunrealtype)(*farg3); + result = (int)IDASetIncrementFactorB(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDASetPreconditionerB(void *farg1, int const *farg2, IDALsPrecSetupFnB farg3, IDALsPrecSolveFnB farg4) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + IDALsPrecSetupFnB arg3 = (IDALsPrecSetupFnB) 0 ; + IDALsPrecSolveFnB arg4 = (IDALsPrecSolveFnB) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + arg3 = (IDALsPrecSetupFnB)(farg3); + arg4 = (IDALsPrecSolveFnB)(farg4); + result = (int)IDASetPreconditionerB(arg1,arg2,arg3,arg4); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDASetPreconditionerBS(void *farg1, int const *farg2, IDALsPrecSetupFnBS farg3, IDALsPrecSolveFnBS farg4) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + IDALsPrecSetupFnBS arg3 = (IDALsPrecSetupFnBS) 0 ; + IDALsPrecSolveFnBS arg4 = (IDALsPrecSolveFnBS) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + arg3 = (IDALsPrecSetupFnBS)(farg3); + arg4 = (IDALsPrecSolveFnBS)(farg4); + result = (int)IDASetPreconditionerBS(arg1,arg2,arg3,arg4); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDASetJacTimesB(void *farg1, int const *farg2, IDALsJacTimesSetupFnB farg3, IDALsJacTimesVecFnB farg4) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + IDALsJacTimesSetupFnB arg3 = (IDALsJacTimesSetupFnB) 0 ; + IDALsJacTimesVecFnB arg4 = (IDALsJacTimesVecFnB) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + arg3 = (IDALsJacTimesSetupFnB)(farg3); + arg4 = (IDALsJacTimesVecFnB)(farg4); + result = (int)IDASetJacTimesB(arg1,arg2,arg3,arg4); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FIDASetJacTimesBS(void *farg1, int const *farg2, IDALsJacTimesSetupFnBS farg3, IDALsJacTimesVecFnBS farg4) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + IDALsJacTimesSetupFnBS arg3 = (IDALsJacTimesSetupFnBS) 0 ; + IDALsJacTimesVecFnBS arg4 = (IDALsJacTimesVecFnBS) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + arg3 = (IDALsJacTimesSetupFnBS)(farg3); + arg4 = (IDALsJacTimesVecFnBS)(farg4); + result = (int)IDASetJacTimesBS(arg1,arg2,arg3,arg4); + fresult = (int)(result); + return fresult; +} + + + diff --git a/src/idas/fmod_int32/fidas_mod.f90 b/src/idas/fmod_int32/fidas_mod.f90 new file mode 100644 index 0000000000..3b5dcfe964 --- /dev/null +++ b/src/idas/fmod_int32/fidas_mod.f90 @@ -0,0 +1,6831 @@ +! This file was automatically generated by SWIG (http://www.swig.org). +! Version 4.0.0 +! +! Do not make changes to this file unless you know what you are doing--modify +! the SWIG interface file instead. + +! --------------------------------------------------------------- +! Programmer(s): Auto-generated by swig. +! --------------------------------------------------------------- +! SUNDIALS Copyright Start +! Copyright (c) 2002-2024, Lawrence Livermore National Security +! and Southern Methodist University. +! All rights reserved. +! +! See the top-level LICENSE and NOTICE files for details. +! +! SPDX-License-Identifier: BSD-3-Clause +! SUNDIALS Copyright End +! --------------------------------------------------------------- + +module fidas_mod + use, intrinsic :: ISO_C_BINDING + use fsundials_core_mod + implicit none + private + + ! DECLARATION CONSTRUCTS + integer(C_INT), parameter, public :: IDA_NORMAL = 1_C_INT + integer(C_INT), parameter, public :: IDA_ONE_STEP = 2_C_INT + integer(C_INT), parameter, public :: IDA_YA_YDP_INIT = 1_C_INT + integer(C_INT), parameter, public :: IDA_Y_INIT = 2_C_INT + integer(C_INT), parameter, public :: IDA_SIMULTANEOUS = 1_C_INT + integer(C_INT), parameter, public :: IDA_STAGGERED = 2_C_INT + integer(C_INT), parameter, public :: IDA_CENTERED = 1_C_INT + integer(C_INT), parameter, public :: IDA_FORWARD = 2_C_INT + integer(C_INT), parameter, public :: IDA_HERMITE = 1_C_INT + integer(C_INT), parameter, public :: IDA_POLYNOMIAL = 2_C_INT + integer(C_INT), parameter, public :: IDA_SUCCESS = 0_C_INT + integer(C_INT), parameter, public :: IDA_TSTOP_RETURN = 1_C_INT + integer(C_INT), parameter, public :: IDA_ROOT_RETURN = 2_C_INT + integer(C_INT), parameter, public :: IDA_WARNING = 99_C_INT + integer(C_INT), parameter, public :: IDA_TOO_MUCH_WORK = -1_C_INT + integer(C_INT), parameter, public :: IDA_TOO_MUCH_ACC = -2_C_INT + integer(C_INT), parameter, public :: IDA_ERR_FAIL = -3_C_INT + integer(C_INT), parameter, public :: IDA_CONV_FAIL = -4_C_INT + integer(C_INT), parameter, public :: IDA_LINIT_FAIL = -5_C_INT + integer(C_INT), parameter, public :: IDA_LSETUP_FAIL = -6_C_INT + integer(C_INT), parameter, public :: IDA_LSOLVE_FAIL = -7_C_INT + integer(C_INT), parameter, public :: IDA_RES_FAIL = -8_C_INT + integer(C_INT), parameter, public :: IDA_REP_RES_ERR = -9_C_INT + integer(C_INT), parameter, public :: IDA_RTFUNC_FAIL = -10_C_INT + integer(C_INT), parameter, public :: IDA_CONSTR_FAIL = -11_C_INT + integer(C_INT), parameter, public :: IDA_FIRST_RES_FAIL = -12_C_INT + integer(C_INT), parameter, public :: IDA_LINESEARCH_FAIL = -13_C_INT + integer(C_INT), parameter, public :: IDA_NO_RECOVERY = -14_C_INT + integer(C_INT), parameter, public :: IDA_NLS_INIT_FAIL = -15_C_INT + integer(C_INT), parameter, public :: IDA_NLS_SETUP_FAIL = -16_C_INT + integer(C_INT), parameter, public :: IDA_NLS_FAIL = -17_C_INT + integer(C_INT), parameter, public :: IDA_MEM_NULL = -20_C_INT + integer(C_INT), parameter, public :: IDA_MEM_FAIL = -21_C_INT + integer(C_INT), parameter, public :: IDA_ILL_INPUT = -22_C_INT + integer(C_INT), parameter, public :: IDA_NO_MALLOC = -23_C_INT + integer(C_INT), parameter, public :: IDA_BAD_EWT = -24_C_INT + integer(C_INT), parameter, public :: IDA_BAD_K = -25_C_INT + integer(C_INT), parameter, public :: IDA_BAD_T = -26_C_INT + integer(C_INT), parameter, public :: IDA_BAD_DKY = -27_C_INT + integer(C_INT), parameter, public :: IDA_VECTOROP_ERR = -28_C_INT + integer(C_INT), parameter, public :: IDA_CONTEXT_ERR = -29_C_INT + integer(C_INT), parameter, public :: IDA_NO_QUAD = -30_C_INT + integer(C_INT), parameter, public :: IDA_QRHS_FAIL = -31_C_INT + integer(C_INT), parameter, public :: IDA_FIRST_QRHS_ERR = -32_C_INT + integer(C_INT), parameter, public :: IDA_REP_QRHS_ERR = -33_C_INT + integer(C_INT), parameter, public :: IDA_NO_SENS = -40_C_INT + integer(C_INT), parameter, public :: IDA_SRES_FAIL = -41_C_INT + integer(C_INT), parameter, public :: IDA_REP_SRES_ERR = -42_C_INT + integer(C_INT), parameter, public :: IDA_BAD_IS = -43_C_INT + integer(C_INT), parameter, public :: IDA_NO_QUADSENS = -50_C_INT + integer(C_INT), parameter, public :: IDA_QSRHS_FAIL = -51_C_INT + integer(C_INT), parameter, public :: IDA_FIRST_QSRHS_ERR = -52_C_INT + integer(C_INT), parameter, public :: IDA_REP_QSRHS_ERR = -53_C_INT + integer(C_INT), parameter, public :: IDA_UNRECOGNIZED_ERROR = -99_C_INT + integer(C_INT), parameter, public :: IDA_NO_ADJ = -101_C_INT + integer(C_INT), parameter, public :: IDA_NO_FWD = -102_C_INT + integer(C_INT), parameter, public :: IDA_NO_BCK = -103_C_INT + integer(C_INT), parameter, public :: IDA_BAD_TB0 = -104_C_INT + integer(C_INT), parameter, public :: IDA_REIFWD_FAIL = -105_C_INT + integer(C_INT), parameter, public :: IDA_FWD_FAIL = -106_C_INT + integer(C_INT), parameter, public :: IDA_GETY_BADT = -107_C_INT + public :: FIDACreate + public :: FIDAInit + public :: FIDAReInit + public :: FIDASStolerances + public :: FIDASVtolerances + public :: FIDAWFtolerances + public :: FIDACalcIC + public :: FIDASetNonlinConvCoefIC + public :: FIDASetMaxNumStepsIC + public :: FIDASetMaxNumJacsIC + public :: FIDASetMaxNumItersIC + public :: FIDASetLineSearchOffIC + public :: FIDASetStepToleranceIC + public :: FIDASetMaxBacksIC + public :: FIDASetDeltaCjLSetup + public :: FIDASetUserData + public :: FIDASetMaxOrd + public :: FIDASetMaxNumSteps + public :: FIDASetInitStep + public :: FIDASetMaxStep + public :: FIDASetMinStep + public :: FIDASetStopTime + public :: FIDAClearStopTime + public :: FIDASetMaxErrTestFails + public :: FIDASetSuppressAlg + public :: FIDASetId + public :: FIDASetConstraints + public :: FIDASetEtaFixedStepBounds + public :: FIDASetEtaMin + public :: FIDASetEtaMax + public :: FIDASetEtaLow + public :: FIDASetEtaMinErrFail + public :: FIDASetEtaConvFail + public :: FIDASetMaxConvFails + public :: FIDASetMaxNonlinIters + public :: FIDASetNlsResFn + public :: FIDASetNonlinConvCoef + public :: FIDASetNonlinearSolver + public :: FIDARootInit + public :: FIDASetRootDirection + public :: FIDASetNoInactiveRootWarn + public :: FIDASolve + public :: FIDAComputeY + public :: FIDAComputeYp + public :: FIDAComputeYSens + public :: FIDAComputeYpSens + public :: FIDAGetDky + public :: FIDAGetWorkSpace + public :: FIDAGetNumSteps + public :: FIDAGetNumResEvals + public :: FIDAGetNumLinSolvSetups + public :: FIDAGetNumErrTestFails + public :: FIDAGetNumBacktrackOps + public :: FIDAGetConsistentIC + public :: FIDAGetLastOrder + public :: FIDAGetCurrentOrder + public :: FIDAGetCurrentCj + public :: FIDAGetCurrentY + public :: FIDAGetCurrentYSens + public :: FIDAGetCurrentYp + public :: FIDAGetCurrentYpSens + public :: FIDAGetActualInitStep + public :: FIDAGetLastStep + public :: FIDAGetCurrentStep + public :: FIDAGetCurrentTime + public :: FIDAGetTolScaleFactor + public :: FIDAGetErrWeights + public :: FIDAGetEstLocalErrors + public :: FIDAGetNumGEvals + public :: FIDAGetRootInfo + public :: FIDAGetIntegratorStats + public :: FIDAGetNonlinearSystemData + public :: FIDAGetNonlinearSystemDataSens + public :: FIDAGetNumNonlinSolvIters + public :: FIDAGetNumNonlinSolvConvFails + public :: FIDAGetNonlinSolvStats + public :: FIDAGetNumStepSolveFails + public :: FIDAGetUserData + public :: FIDAPrintAllStats + type, bind(C) :: SwigArrayWrapper + type(C_PTR), public :: data = C_NULL_PTR + integer(C_SIZE_T), public :: size = 0 + end type + public :: FIDAGetReturnFlagName + public :: FIDAFree + public :: FIDASetJacTimesResFn + public :: FIDAQuadInit + public :: FIDAQuadReInit + public :: FIDAQuadSStolerances + public :: FIDAQuadSVtolerances + public :: FIDASetQuadErrCon + public :: FIDAGetQuad + public :: FIDAGetQuadDky + public :: FIDAGetQuadNumRhsEvals + public :: FIDAGetQuadNumErrTestFails + public :: FIDAGetQuadErrWeights + public :: FIDAGetQuadStats + public :: FIDAQuadFree + public :: FIDASensInit + public :: FIDASensReInit + public :: FIDASensSStolerances + public :: FIDASensSVtolerances + public :: FIDASensEEtolerances + public :: FIDAGetSensConsistentIC + public :: FIDASetSensDQMethod + public :: FIDASetSensErrCon + public :: FIDASetSensMaxNonlinIters + public :: FIDASetSensParams + public :: FIDASetNonlinearSolverSensSim + public :: FIDASetNonlinearSolverSensStg + public :: FIDASensToggleOff + public :: FIDAGetSens + public :: FIDAGetSens1 + public :: FIDAGetSensDky + public :: FIDAGetSensDky1 + public :: FIDAGetSensNumResEvals + public :: FIDAGetNumResEvalsSens + public :: FIDAGetSensNumErrTestFails + public :: FIDAGetSensNumLinSolvSetups + public :: FIDAGetSensErrWeights + public :: FIDAGetSensStats + public :: FIDAGetSensNumNonlinSolvIters + public :: FIDAGetSensNumNonlinSolvConvFails + public :: FIDAGetSensNonlinSolvStats + public :: FIDAGetNumStepSensSolveFails + public :: FIDASensFree + public :: FIDAQuadSensInit + public :: FIDAQuadSensReInit + public :: FIDAQuadSensSStolerances + public :: FIDAQuadSensSVtolerances + public :: FIDAQuadSensEEtolerances + public :: FIDASetQuadSensErrCon + public :: FIDAGetQuadSens + public :: FIDAGetQuadSens1 + public :: FIDAGetQuadSensDky + public :: FIDAGetQuadSensDky1 + public :: FIDAGetQuadSensNumRhsEvals + public :: FIDAGetQuadSensNumErrTestFails + public :: FIDAGetQuadSensErrWeights + public :: FIDAGetQuadSensStats + public :: FIDAQuadSensFree + public :: FIDAAdjInit + public :: FIDAAdjReInit + public :: FIDAAdjFree + public :: FIDACreateB + public :: FIDAInitB + public :: FIDAInitBS + public :: FIDAReInitB + public :: FIDASStolerancesB + public :: FIDASVtolerancesB + public :: FIDAQuadInitB + public :: FIDAQuadInitBS + public :: FIDAQuadReInitB + public :: FIDAQuadSStolerancesB + public :: FIDAQuadSVtolerancesB + public :: FIDACalcICB + public :: FIDACalcICBS + public :: FIDASolveF + public :: FIDASolveB + public :: FIDAAdjSetNoSensi + public :: FIDASetUserDataB + public :: FIDASetMaxOrdB + public :: FIDASetMaxNumStepsB + public :: FIDASetInitStepB + public :: FIDASetMaxStepB + public :: FIDASetSuppressAlgB + public :: FIDASetIdB + public :: FIDASetConstraintsB + public :: FIDASetQuadErrConB + public :: FIDASetNonlinearSolverB + public :: FIDAGetB + public :: FIDAGetQuadB + public :: FIDAGetAdjIDABmem + public :: FIDAGetConsistentICB + public :: FIDAGetAdjY + + integer, parameter :: swig_cmem_own_bit = 0 + integer, parameter :: swig_cmem_rvalue_bit = 1 + integer, parameter :: swig_cmem_const_bit = 2 + type, bind(C) :: SwigClassWrapper + type(C_PTR), public :: cptr = C_NULL_PTR + integer(C_INT), public :: cmemflags = 0 + end type + ! struct IDAadjCheckPointRec + type, public :: IDAadjCheckPointRec + type(SwigClassWrapper), public :: swigdata + contains + procedure :: set_my_addr => swigf_IDAadjCheckPointRec_my_addr_set + procedure :: get_my_addr => swigf_IDAadjCheckPointRec_my_addr_get + procedure :: set_next_addr => swigf_IDAadjCheckPointRec_next_addr_set + procedure :: get_next_addr => swigf_IDAadjCheckPointRec_next_addr_get + procedure :: set_t0 => swigf_IDAadjCheckPointRec_t0_set + procedure :: get_t0 => swigf_IDAadjCheckPointRec_t0_get + procedure :: set_t1 => swigf_IDAadjCheckPointRec_t1_set + procedure :: get_t1 => swigf_IDAadjCheckPointRec_t1_get + procedure :: set_nstep => swigf_IDAadjCheckPointRec_nstep_set + procedure :: get_nstep => swigf_IDAadjCheckPointRec_nstep_get + procedure :: set_order => swigf_IDAadjCheckPointRec_order_set + procedure :: get_order => swigf_IDAadjCheckPointRec_order_get + procedure :: set_step => swigf_IDAadjCheckPointRec_step_set + procedure :: get_step => swigf_IDAadjCheckPointRec_step_get + procedure :: release => swigf_release_IDAadjCheckPointRec + procedure, private :: swigf_IDAadjCheckPointRec_op_assign__ + generic :: assignment(=) => swigf_IDAadjCheckPointRec_op_assign__ + end type IDAadjCheckPointRec + interface IDAadjCheckPointRec + module procedure swigf_create_IDAadjCheckPointRec + end interface + public :: FIDAGetAdjCheckPointsInfo + public :: FIDASetJacTimesResFnB + public :: FIDAGetAdjDataPointHermite + public :: FIDAGetAdjDataPointPolynomial + public :: FIDAGetAdjCurrentCheckPoint + public :: FIDABBDPrecInit + public :: FIDABBDPrecReInit + public :: FIDABBDPrecGetWorkSpace + public :: FIDABBDPrecGetNumGfnEvals + public :: FIDABBDPrecInitB + public :: FIDABBDPrecReInitB + integer(C_INT), parameter, public :: IDALS_SUCCESS = 0_C_INT + integer(C_INT), parameter, public :: IDALS_MEM_NULL = -1_C_INT + integer(C_INT), parameter, public :: IDALS_LMEM_NULL = -2_C_INT + integer(C_INT), parameter, public :: IDALS_ILL_INPUT = -3_C_INT + integer(C_INT), parameter, public :: IDALS_MEM_FAIL = -4_C_INT + integer(C_INT), parameter, public :: IDALS_PMEM_NULL = -5_C_INT + integer(C_INT), parameter, public :: IDALS_JACFUNC_UNRECVR = -6_C_INT + integer(C_INT), parameter, public :: IDALS_JACFUNC_RECVR = -7_C_INT + integer(C_INT), parameter, public :: IDALS_SUNMAT_FAIL = -8_C_INT + integer(C_INT), parameter, public :: IDALS_SUNLS_FAIL = -9_C_INT + integer(C_INT), parameter, public :: IDALS_NO_ADJ = -101_C_INT + integer(C_INT), parameter, public :: IDALS_LMEMB_NULL = -102_C_INT + public :: FIDASetLinearSolver + public :: FIDASetJacFn + public :: FIDASetPreconditioner + public :: FIDASetJacTimes + public :: FIDASetEpsLin + public :: FIDASetLSNormFactor + public :: FIDASetLinearSolutionScaling + public :: FIDASetIncrementFactor + public :: FIDAGetJac + public :: FIDAGetJacCj + public :: FIDAGetJacTime + public :: FIDAGetJacNumSteps + public :: FIDAGetLinWorkSpace + public :: FIDAGetNumJacEvals + public :: FIDAGetNumPrecEvals + public :: FIDAGetNumPrecSolves + public :: FIDAGetNumLinIters + public :: FIDAGetNumLinConvFails + public :: FIDAGetNumJTSetupEvals + public :: FIDAGetNumJtimesEvals + public :: FIDAGetNumLinResEvals + public :: FIDAGetLastLinFlag + public :: FIDAGetLinReturnFlagName + public :: FIDASetLinearSolverB + public :: FIDASetJacFnB + public :: FIDASetJacFnBS + public :: FIDASetEpsLinB + public :: FIDASetLSNormFactorB + public :: FIDASetLinearSolutionScalingB + public :: FIDASetIncrementFactorB + public :: FIDASetPreconditionerB + public :: FIDASetPreconditionerBS + public :: FIDASetJacTimesB + public :: FIDASetJacTimesBS + +! WRAPPER DECLARATIONS +interface +function swigc_FIDACreate(farg1) & +bind(C, name="_wrap_FIDACreate") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR) :: fresult +end function + +function swigc_FIDAInit(farg1, farg2, farg3, farg4, farg5) & +bind(C, name="_wrap_FIDAInit") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_FUNPTR), value :: farg2 +real(C_DOUBLE), intent(in) :: farg3 +type(C_PTR), value :: farg4 +type(C_PTR), value :: farg5 +integer(C_INT) :: fresult +end function + +function swigc_FIDAReInit(farg1, farg2, farg3, farg4) & +bind(C, name="_wrap_FIDAReInit") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +type(C_PTR), value :: farg3 +type(C_PTR), value :: farg4 +integer(C_INT) :: fresult +end function + +function swigc_FIDASStolerances(farg1, farg2, farg3) & +bind(C, name="_wrap_FIDASStolerances") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +real(C_DOUBLE), intent(in) :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FIDASVtolerances(farg1, farg2, farg3) & +bind(C, name="_wrap_FIDASVtolerances") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FIDAWFtolerances(farg1, farg2) & +bind(C, name="_wrap_FIDAWFtolerances") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_FUNPTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FIDACalcIC(farg1, farg2, farg3) & +bind(C, name="_wrap_FIDACalcIC") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +real(C_DOUBLE), intent(in) :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FIDASetNonlinConvCoefIC(farg1, farg2) & +bind(C, name="_wrap_FIDASetNonlinConvCoefIC") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FIDASetMaxNumStepsIC(farg1, farg2) & +bind(C, name="_wrap_FIDASetMaxNumStepsIC") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FIDASetMaxNumJacsIC(farg1, farg2) & +bind(C, name="_wrap_FIDASetMaxNumJacsIC") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FIDASetMaxNumItersIC(farg1, farg2) & +bind(C, name="_wrap_FIDASetMaxNumItersIC") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FIDASetLineSearchOffIC(farg1, farg2) & +bind(C, name="_wrap_FIDASetLineSearchOffIC") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FIDASetStepToleranceIC(farg1, farg2) & +bind(C, name="_wrap_FIDASetStepToleranceIC") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FIDASetMaxBacksIC(farg1, farg2) & +bind(C, name="_wrap_FIDASetMaxBacksIC") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FIDASetDeltaCjLSetup(farg1, farg2) & +bind(C, name="_wrap_FIDASetDeltaCjLSetup") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FIDASetUserData(farg1, farg2) & +bind(C, name="_wrap_FIDASetUserData") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FIDASetMaxOrd(farg1, farg2) & +bind(C, name="_wrap_FIDASetMaxOrd") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FIDASetMaxNumSteps(farg1, farg2) & +bind(C, name="_wrap_FIDASetMaxNumSteps") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_LONG), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FIDASetInitStep(farg1, farg2) & +bind(C, name="_wrap_FIDASetInitStep") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FIDASetMaxStep(farg1, farg2) & +bind(C, name="_wrap_FIDASetMaxStep") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FIDASetMinStep(farg1, farg2) & +bind(C, name="_wrap_FIDASetMinStep") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FIDASetStopTime(farg1, farg2) & +bind(C, name="_wrap_FIDASetStopTime") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FIDAClearStopTime(farg1) & +bind(C, name="_wrap_FIDAClearStopTime") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT) :: fresult +end function + +function swigc_FIDASetMaxErrTestFails(farg1, farg2) & +bind(C, name="_wrap_FIDASetMaxErrTestFails") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FIDASetSuppressAlg(farg1, farg2) & +bind(C, name="_wrap_FIDASetSuppressAlg") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FIDASetId(farg1, farg2) & +bind(C, name="_wrap_FIDASetId") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FIDASetConstraints(farg1, farg2) & +bind(C, name="_wrap_FIDASetConstraints") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FIDASetEtaFixedStepBounds(farg1, farg2, farg3) & +bind(C, name="_wrap_FIDASetEtaFixedStepBounds") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +real(C_DOUBLE), intent(in) :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FIDASetEtaMin(farg1, farg2) & +bind(C, name="_wrap_FIDASetEtaMin") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FIDASetEtaMax(farg1, farg2) & +bind(C, name="_wrap_FIDASetEtaMax") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FIDASetEtaLow(farg1, farg2) & +bind(C, name="_wrap_FIDASetEtaLow") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FIDASetEtaMinErrFail(farg1, farg2) & +bind(C, name="_wrap_FIDASetEtaMinErrFail") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FIDASetEtaConvFail(farg1, farg2) & +bind(C, name="_wrap_FIDASetEtaConvFail") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FIDASetMaxConvFails(farg1, farg2) & +bind(C, name="_wrap_FIDASetMaxConvFails") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FIDASetMaxNonlinIters(farg1, farg2) & +bind(C, name="_wrap_FIDASetMaxNonlinIters") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FIDASetNlsResFn(farg1, farg2) & +bind(C, name="_wrap_FIDASetNlsResFn") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_FUNPTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FIDASetNonlinConvCoef(farg1, farg2) & +bind(C, name="_wrap_FIDASetNonlinConvCoef") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FIDASetNonlinearSolver(farg1, farg2) & +bind(C, name="_wrap_FIDASetNonlinearSolver") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FIDARootInit(farg1, farg2, farg3) & +bind(C, name="_wrap_FIDARootInit") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +type(C_FUNPTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FIDASetRootDirection(farg1, farg2) & +bind(C, name="_wrap_FIDASetRootDirection") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FIDASetNoInactiveRootWarn(farg1) & +bind(C, name="_wrap_FIDASetNoInactiveRootWarn") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT) :: fresult +end function + +function swigc_FIDASolve(farg1, farg2, farg3, farg4, farg5, farg6) & +bind(C, name="_wrap_FIDASolve") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +type(C_PTR), value :: farg3 +type(C_PTR), value :: farg4 +type(C_PTR), value :: farg5 +integer(C_INT), intent(in) :: farg6 +integer(C_INT) :: fresult +end function + +function swigc_FIDAComputeY(farg1, farg2, farg3) & +bind(C, name="_wrap_FIDAComputeY") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FIDAComputeYp(farg1, farg2, farg3) & +bind(C, name="_wrap_FIDAComputeYp") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FIDAComputeYSens(farg1, farg2, farg3) & +bind(C, name="_wrap_FIDAComputeYSens") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FIDAComputeYpSens(farg1, farg2, farg3) & +bind(C, name="_wrap_FIDAComputeYpSens") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FIDAGetDky(farg1, farg2, farg3, farg4) & +bind(C, name="_wrap_FIDAGetDky") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT), intent(in) :: farg3 +type(C_PTR), value :: farg4 +integer(C_INT) :: fresult +end function + +function swigc_FIDAGetWorkSpace(farg1, farg2, farg3) & +bind(C, name="_wrap_FIDAGetWorkSpace") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FIDAGetNumSteps(farg1, farg2) & +bind(C, name="_wrap_FIDAGetNumSteps") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FIDAGetNumResEvals(farg1, farg2) & +bind(C, name="_wrap_FIDAGetNumResEvals") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FIDAGetNumLinSolvSetups(farg1, farg2) & +bind(C, name="_wrap_FIDAGetNumLinSolvSetups") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FIDAGetNumErrTestFails(farg1, farg2) & +bind(C, name="_wrap_FIDAGetNumErrTestFails") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FIDAGetNumBacktrackOps(farg1, farg2) & +bind(C, name="_wrap_FIDAGetNumBacktrackOps") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FIDAGetConsistentIC(farg1, farg2, farg3) & +bind(C, name="_wrap_FIDAGetConsistentIC") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FIDAGetLastOrder(farg1, farg2) & +bind(C, name="_wrap_FIDAGetLastOrder") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FIDAGetCurrentOrder(farg1, farg2) & +bind(C, name="_wrap_FIDAGetCurrentOrder") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FIDAGetCurrentCj(farg1, farg2) & +bind(C, name="_wrap_FIDAGetCurrentCj") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FIDAGetCurrentY(farg1, farg2) & +bind(C, name="_wrap_FIDAGetCurrentY") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FIDAGetCurrentYSens(farg1, farg2) & +bind(C, name="_wrap_FIDAGetCurrentYSens") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FIDAGetCurrentYp(farg1, farg2) & +bind(C, name="_wrap_FIDAGetCurrentYp") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FIDAGetCurrentYpSens(farg1, farg2) & +bind(C, name="_wrap_FIDAGetCurrentYpSens") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FIDAGetActualInitStep(farg1, farg2) & +bind(C, name="_wrap_FIDAGetActualInitStep") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FIDAGetLastStep(farg1, farg2) & +bind(C, name="_wrap_FIDAGetLastStep") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FIDAGetCurrentStep(farg1, farg2) & +bind(C, name="_wrap_FIDAGetCurrentStep") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FIDAGetCurrentTime(farg1, farg2) & +bind(C, name="_wrap_FIDAGetCurrentTime") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FIDAGetTolScaleFactor(farg1, farg2) & +bind(C, name="_wrap_FIDAGetTolScaleFactor") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FIDAGetErrWeights(farg1, farg2) & +bind(C, name="_wrap_FIDAGetErrWeights") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FIDAGetEstLocalErrors(farg1, farg2) & +bind(C, name="_wrap_FIDAGetEstLocalErrors") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FIDAGetNumGEvals(farg1, farg2) & +bind(C, name="_wrap_FIDAGetNumGEvals") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FIDAGetRootInfo(farg1, farg2) & +bind(C, name="_wrap_FIDAGetRootInfo") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FIDAGetIntegratorStats(farg1, farg2, farg3, farg4, farg5, farg6, farg7, farg8, farg9, farg10, farg11) & +bind(C, name="_wrap_FIDAGetIntegratorStats") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +type(C_PTR), value :: farg4 +type(C_PTR), value :: farg5 +type(C_PTR), value :: farg6 +type(C_PTR), value :: farg7 +type(C_PTR), value :: farg8 +type(C_PTR), value :: farg9 +type(C_PTR), value :: farg10 +type(C_PTR), value :: farg11 +integer(C_INT) :: fresult +end function + +function swigc_FIDAGetNonlinearSystemData(farg1, farg2, farg3, farg4, farg5, farg6, farg7, farg8, farg9) & +bind(C, name="_wrap_FIDAGetNonlinearSystemData") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +type(C_PTR), value :: farg4 +type(C_PTR), value :: farg5 +type(C_PTR), value :: farg6 +type(C_PTR), value :: farg7 +type(C_PTR), value :: farg8 +type(C_PTR), value :: farg9 +integer(C_INT) :: fresult +end function + +function swigc_FIDAGetNonlinearSystemDataSens(farg1, farg2, farg3, farg4, farg5, farg6, farg7, farg8) & +bind(C, name="_wrap_FIDAGetNonlinearSystemDataSens") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +type(C_PTR), value :: farg4 +type(C_PTR), value :: farg5 +type(C_PTR), value :: farg6 +type(C_PTR), value :: farg7 +type(C_PTR), value :: farg8 +integer(C_INT) :: fresult +end function + +function swigc_FIDAGetNumNonlinSolvIters(farg1, farg2) & +bind(C, name="_wrap_FIDAGetNumNonlinSolvIters") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FIDAGetNumNonlinSolvConvFails(farg1, farg2) & +bind(C, name="_wrap_FIDAGetNumNonlinSolvConvFails") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FIDAGetNonlinSolvStats(farg1, farg2, farg3) & +bind(C, name="_wrap_FIDAGetNonlinSolvStats") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FIDAGetNumStepSolveFails(farg1, farg2) & +bind(C, name="_wrap_FIDAGetNumStepSolveFails") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FIDAGetUserData(farg1, farg2) & +bind(C, name="_wrap_FIDAGetUserData") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FIDAPrintAllStats(farg1, farg2, farg3) & +bind(C, name="_wrap_FIDAPrintAllStats") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT), intent(in) :: farg3 +integer(C_INT) :: fresult +end function + + subroutine SWIG_free(cptr) & + bind(C, name="free") + use, intrinsic :: ISO_C_BINDING + type(C_PTR), value :: cptr +end subroutine +function swigc_FIDAGetReturnFlagName(farg1) & +bind(C, name="_wrap_FIDAGetReturnFlagName") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +import :: swigarraywrapper +integer(C_LONG), intent(in) :: farg1 +type(SwigArrayWrapper) :: fresult +end function + +subroutine swigc_FIDAFree(farg1) & +bind(C, name="_wrap_FIDAFree") +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +end subroutine + +function swigc_FIDASetJacTimesResFn(farg1, farg2) & +bind(C, name="_wrap_FIDASetJacTimesResFn") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_FUNPTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FIDAQuadInit(farg1, farg2, farg3) & +bind(C, name="_wrap_FIDAQuadInit") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_FUNPTR), value :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FIDAQuadReInit(farg1, farg2) & +bind(C, name="_wrap_FIDAQuadReInit") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FIDAQuadSStolerances(farg1, farg2, farg3) & +bind(C, name="_wrap_FIDAQuadSStolerances") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +real(C_DOUBLE), intent(in) :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FIDAQuadSVtolerances(farg1, farg2, farg3) & +bind(C, name="_wrap_FIDAQuadSVtolerances") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FIDASetQuadErrCon(farg1, farg2) & +bind(C, name="_wrap_FIDASetQuadErrCon") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FIDAGetQuad(farg1, farg2, farg3) & +bind(C, name="_wrap_FIDAGetQuad") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FIDAGetQuadDky(farg1, farg2, farg3, farg4) & +bind(C, name="_wrap_FIDAGetQuadDky") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT), intent(in) :: farg3 +type(C_PTR), value :: farg4 +integer(C_INT) :: fresult +end function + +function swigc_FIDAGetQuadNumRhsEvals(farg1, farg2) & +bind(C, name="_wrap_FIDAGetQuadNumRhsEvals") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FIDAGetQuadNumErrTestFails(farg1, farg2) & +bind(C, name="_wrap_FIDAGetQuadNumErrTestFails") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FIDAGetQuadErrWeights(farg1, farg2) & +bind(C, name="_wrap_FIDAGetQuadErrWeights") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FIDAGetQuadStats(farg1, farg2, farg3) & +bind(C, name="_wrap_FIDAGetQuadStats") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +subroutine swigc_FIDAQuadFree(farg1) & +bind(C, name="_wrap_FIDAQuadFree") +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +end subroutine + +function swigc_FIDASensInit(farg1, farg2, farg3, farg4, farg5, farg6) & +bind(C, name="_wrap_FIDASensInit") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT), intent(in) :: farg3 +type(C_FUNPTR), value :: farg4 +type(C_PTR), value :: farg5 +type(C_PTR), value :: farg6 +integer(C_INT) :: fresult +end function + +function swigc_FIDASensReInit(farg1, farg2, farg3, farg4) & +bind(C, name="_wrap_FIDASensReInit") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +type(C_PTR), value :: farg3 +type(C_PTR), value :: farg4 +integer(C_INT) :: fresult +end function + +function swigc_FIDASensSStolerances(farg1, farg2, farg3) & +bind(C, name="_wrap_FIDASensSStolerances") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FIDASensSVtolerances(farg1, farg2, farg3) & +bind(C, name="_wrap_FIDASensSVtolerances") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FIDASensEEtolerances(farg1) & +bind(C, name="_wrap_FIDASensEEtolerances") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT) :: fresult +end function + +function swigc_FIDAGetSensConsistentIC(farg1, farg2, farg3) & +bind(C, name="_wrap_FIDAGetSensConsistentIC") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FIDASetSensDQMethod(farg1, farg2, farg3) & +bind(C, name="_wrap_FIDASetSensDQMethod") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +real(C_DOUBLE), intent(in) :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FIDASetSensErrCon(farg1, farg2) & +bind(C, name="_wrap_FIDASetSensErrCon") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FIDASetSensMaxNonlinIters(farg1, farg2) & +bind(C, name="_wrap_FIDASetSensMaxNonlinIters") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FIDASetSensParams(farg1, farg2, farg3, farg4) & +bind(C, name="_wrap_FIDASetSensParams") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +type(C_PTR), value :: farg4 +integer(C_INT) :: fresult +end function + +function swigc_FIDASetNonlinearSolverSensSim(farg1, farg2) & +bind(C, name="_wrap_FIDASetNonlinearSolverSensSim") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FIDASetNonlinearSolverSensStg(farg1, farg2) & +bind(C, name="_wrap_FIDASetNonlinearSolverSensStg") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FIDASensToggleOff(farg1) & +bind(C, name="_wrap_FIDASensToggleOff") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT) :: fresult +end function + +function swigc_FIDAGetSens(farg1, farg2, farg3) & +bind(C, name="_wrap_FIDAGetSens") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FIDAGetSens1(farg1, farg2, farg3, farg4) & +bind(C, name="_wrap_FIDAGetSens1") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT), intent(in) :: farg3 +type(C_PTR), value :: farg4 +integer(C_INT) :: fresult +end function + +function swigc_FIDAGetSensDky(farg1, farg2, farg3, farg4) & +bind(C, name="_wrap_FIDAGetSensDky") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT), intent(in) :: farg3 +type(C_PTR), value :: farg4 +integer(C_INT) :: fresult +end function + +function swigc_FIDAGetSensDky1(farg1, farg2, farg3, farg4, farg5) & +bind(C, name="_wrap_FIDAGetSensDky1") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT), intent(in) :: farg3 +integer(C_INT), intent(in) :: farg4 +type(C_PTR), value :: farg5 +integer(C_INT) :: fresult +end function + +function swigc_FIDAGetSensNumResEvals(farg1, farg2) & +bind(C, name="_wrap_FIDAGetSensNumResEvals") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FIDAGetNumResEvalsSens(farg1, farg2) & +bind(C, name="_wrap_FIDAGetNumResEvalsSens") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FIDAGetSensNumErrTestFails(farg1, farg2) & +bind(C, name="_wrap_FIDAGetSensNumErrTestFails") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FIDAGetSensNumLinSolvSetups(farg1, farg2) & +bind(C, name="_wrap_FIDAGetSensNumLinSolvSetups") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FIDAGetSensErrWeights(farg1, farg2) & +bind(C, name="_wrap_FIDAGetSensErrWeights") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FIDAGetSensStats(farg1, farg2, farg3, farg4, farg5) & +bind(C, name="_wrap_FIDAGetSensStats") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +type(C_PTR), value :: farg4 +type(C_PTR), value :: farg5 +integer(C_INT) :: fresult +end function + +function swigc_FIDAGetSensNumNonlinSolvIters(farg1, farg2) & +bind(C, name="_wrap_FIDAGetSensNumNonlinSolvIters") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FIDAGetSensNumNonlinSolvConvFails(farg1, farg2) & +bind(C, name="_wrap_FIDAGetSensNumNonlinSolvConvFails") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FIDAGetSensNonlinSolvStats(farg1, farg2, farg3) & +bind(C, name="_wrap_FIDAGetSensNonlinSolvStats") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FIDAGetNumStepSensSolveFails(farg1, farg2) & +bind(C, name="_wrap_FIDAGetNumStepSensSolveFails") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +subroutine swigc_FIDASensFree(farg1) & +bind(C, name="_wrap_FIDASensFree") +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +end subroutine + +function swigc_FIDAQuadSensInit(farg1, farg2, farg3) & +bind(C, name="_wrap_FIDAQuadSensInit") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_FUNPTR), value :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FIDAQuadSensReInit(farg1, farg2) & +bind(C, name="_wrap_FIDAQuadSensReInit") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FIDAQuadSensSStolerances(farg1, farg2, farg3) & +bind(C, name="_wrap_FIDAQuadSensSStolerances") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FIDAQuadSensSVtolerances(farg1, farg2, farg3) & +bind(C, name="_wrap_FIDAQuadSensSVtolerances") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FIDAQuadSensEEtolerances(farg1) & +bind(C, name="_wrap_FIDAQuadSensEEtolerances") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT) :: fresult +end function + +function swigc_FIDASetQuadSensErrCon(farg1, farg2) & +bind(C, name="_wrap_FIDASetQuadSensErrCon") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FIDAGetQuadSens(farg1, farg2, farg3) & +bind(C, name="_wrap_FIDAGetQuadSens") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FIDAGetQuadSens1(farg1, farg2, farg3, farg4) & +bind(C, name="_wrap_FIDAGetQuadSens1") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT), intent(in) :: farg3 +type(C_PTR), value :: farg4 +integer(C_INT) :: fresult +end function + +function swigc_FIDAGetQuadSensDky(farg1, farg2, farg3, farg4) & +bind(C, name="_wrap_FIDAGetQuadSensDky") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT), intent(in) :: farg3 +type(C_PTR), value :: farg4 +integer(C_INT) :: fresult +end function + +function swigc_FIDAGetQuadSensDky1(farg1, farg2, farg3, farg4, farg5) & +bind(C, name="_wrap_FIDAGetQuadSensDky1") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT), intent(in) :: farg3 +integer(C_INT), intent(in) :: farg4 +type(C_PTR), value :: farg5 +integer(C_INT) :: fresult +end function + +function swigc_FIDAGetQuadSensNumRhsEvals(farg1, farg2) & +bind(C, name="_wrap_FIDAGetQuadSensNumRhsEvals") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FIDAGetQuadSensNumErrTestFails(farg1, farg2) & +bind(C, name="_wrap_FIDAGetQuadSensNumErrTestFails") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FIDAGetQuadSensErrWeights(farg1, farg2) & +bind(C, name="_wrap_FIDAGetQuadSensErrWeights") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FIDAGetQuadSensStats(farg1, farg2, farg3) & +bind(C, name="_wrap_FIDAGetQuadSensStats") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +subroutine swigc_FIDAQuadSensFree(farg1) & +bind(C, name="_wrap_FIDAQuadSensFree") +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +end subroutine + +function swigc_FIDAAdjInit(farg1, farg2, farg3) & +bind(C, name="_wrap_FIDAAdjInit") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_LONG), intent(in) :: farg2 +integer(C_INT), intent(in) :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FIDAAdjReInit(farg1) & +bind(C, name="_wrap_FIDAAdjReInit") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT) :: fresult +end function + +subroutine swigc_FIDAAdjFree(farg1) & +bind(C, name="_wrap_FIDAAdjFree") +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +end subroutine + +function swigc_FIDACreateB(farg1, farg2) & +bind(C, name="_wrap_FIDACreateB") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FIDAInitB(farg1, farg2, farg3, farg4, farg5, farg6) & +bind(C, name="_wrap_FIDAInitB") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +type(C_FUNPTR), value :: farg3 +real(C_DOUBLE), intent(in) :: farg4 +type(C_PTR), value :: farg5 +type(C_PTR), value :: farg6 +integer(C_INT) :: fresult +end function + +function swigc_FIDAInitBS(farg1, farg2, farg3, farg4, farg5, farg6) & +bind(C, name="_wrap_FIDAInitBS") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +type(C_FUNPTR), value :: farg3 +real(C_DOUBLE), intent(in) :: farg4 +type(C_PTR), value :: farg5 +type(C_PTR), value :: farg6 +integer(C_INT) :: fresult +end function + +function swigc_FIDAReInitB(farg1, farg2, farg3, farg4, farg5) & +bind(C, name="_wrap_FIDAReInitB") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +real(C_DOUBLE), intent(in) :: farg3 +type(C_PTR), value :: farg4 +type(C_PTR), value :: farg5 +integer(C_INT) :: fresult +end function + +function swigc_FIDASStolerancesB(farg1, farg2, farg3, farg4) & +bind(C, name="_wrap_FIDASStolerancesB") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +real(C_DOUBLE), intent(in) :: farg3 +real(C_DOUBLE), intent(in) :: farg4 +integer(C_INT) :: fresult +end function + +function swigc_FIDASVtolerancesB(farg1, farg2, farg3, farg4) & +bind(C, name="_wrap_FIDASVtolerancesB") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +real(C_DOUBLE), intent(in) :: farg3 +type(C_PTR), value :: farg4 +integer(C_INT) :: fresult +end function + +function swigc_FIDAQuadInitB(farg1, farg2, farg3, farg4) & +bind(C, name="_wrap_FIDAQuadInitB") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +type(C_FUNPTR), value :: farg3 +type(C_PTR), value :: farg4 +integer(C_INT) :: fresult +end function + +function swigc_FIDAQuadInitBS(farg1, farg2, farg3, farg4) & +bind(C, name="_wrap_FIDAQuadInitBS") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +type(C_FUNPTR), value :: farg3 +type(C_PTR), value :: farg4 +integer(C_INT) :: fresult +end function + +function swigc_FIDAQuadReInitB(farg1, farg2, farg3) & +bind(C, name="_wrap_FIDAQuadReInitB") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FIDAQuadSStolerancesB(farg1, farg2, farg3, farg4) & +bind(C, name="_wrap_FIDAQuadSStolerancesB") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +real(C_DOUBLE), intent(in) :: farg3 +real(C_DOUBLE), intent(in) :: farg4 +integer(C_INT) :: fresult +end function + +function swigc_FIDAQuadSVtolerancesB(farg1, farg2, farg3, farg4) & +bind(C, name="_wrap_FIDAQuadSVtolerancesB") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +real(C_DOUBLE), intent(in) :: farg3 +type(C_PTR), value :: farg4 +integer(C_INT) :: fresult +end function + +function swigc_FIDACalcICB(farg1, farg2, farg3, farg4, farg5) & +bind(C, name="_wrap_FIDACalcICB") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +real(C_DOUBLE), intent(in) :: farg3 +type(C_PTR), value :: farg4 +type(C_PTR), value :: farg5 +integer(C_INT) :: fresult +end function + +function swigc_FIDACalcICBS(farg1, farg2, farg3, farg4, farg5, farg6, farg7) & +bind(C, name="_wrap_FIDACalcICBS") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +real(C_DOUBLE), intent(in) :: farg3 +type(C_PTR), value :: farg4 +type(C_PTR), value :: farg5 +type(C_PTR), value :: farg6 +type(C_PTR), value :: farg7 +integer(C_INT) :: fresult +end function + +function swigc_FIDASolveF(farg1, farg2, farg3, farg4, farg5, farg6, farg7) & +bind(C, name="_wrap_FIDASolveF") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +type(C_PTR), value :: farg3 +type(C_PTR), value :: farg4 +type(C_PTR), value :: farg5 +integer(C_INT), intent(in) :: farg6 +type(C_PTR), value :: farg7 +integer(C_INT) :: fresult +end function + +function swigc_FIDASolveB(farg1, farg2, farg3) & +bind(C, name="_wrap_FIDASolveB") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT), intent(in) :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FIDAAdjSetNoSensi(farg1) & +bind(C, name="_wrap_FIDAAdjSetNoSensi") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT) :: fresult +end function + +function swigc_FIDASetUserDataB(farg1, farg2, farg3) & +bind(C, name="_wrap_FIDASetUserDataB") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FIDASetMaxOrdB(farg1, farg2, farg3) & +bind(C, name="_wrap_FIDASetMaxOrdB") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT), intent(in) :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FIDASetMaxNumStepsB(farg1, farg2, farg3) & +bind(C, name="_wrap_FIDASetMaxNumStepsB") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_LONG), intent(in) :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FIDASetInitStepB(farg1, farg2, farg3) & +bind(C, name="_wrap_FIDASetInitStepB") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +real(C_DOUBLE), intent(in) :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FIDASetMaxStepB(farg1, farg2, farg3) & +bind(C, name="_wrap_FIDASetMaxStepB") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +real(C_DOUBLE), intent(in) :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FIDASetSuppressAlgB(farg1, farg2, farg3) & +bind(C, name="_wrap_FIDASetSuppressAlgB") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT), intent(in) :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FIDASetIdB(farg1, farg2, farg3) & +bind(C, name="_wrap_FIDASetIdB") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FIDASetConstraintsB(farg1, farg2, farg3) & +bind(C, name="_wrap_FIDASetConstraintsB") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FIDASetQuadErrConB(farg1, farg2, farg3) & +bind(C, name="_wrap_FIDASetQuadErrConB") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT), intent(in) :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FIDASetNonlinearSolverB(farg1, farg2, farg3) & +bind(C, name="_wrap_FIDASetNonlinearSolverB") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FIDAGetB(farg1, farg2, farg3, farg4, farg5) & +bind(C, name="_wrap_FIDAGetB") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +type(C_PTR), value :: farg3 +type(C_PTR), value :: farg4 +type(C_PTR), value :: farg5 +integer(C_INT) :: fresult +end function + +function swigc_FIDAGetQuadB(farg1, farg2, farg3, farg4) & +bind(C, name="_wrap_FIDAGetQuadB") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +type(C_PTR), value :: farg3 +type(C_PTR), value :: farg4 +integer(C_INT) :: fresult +end function + +function swigc_FIDAGetAdjIDABmem(farg1, farg2) & +bind(C, name="_wrap_FIDAGetAdjIDABmem") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +type(C_PTR) :: fresult +end function + +function swigc_FIDAGetConsistentICB(farg1, farg2, farg3, farg4) & +bind(C, name="_wrap_FIDAGetConsistentICB") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +type(C_PTR), value :: farg3 +type(C_PTR), value :: farg4 +integer(C_INT) :: fresult +end function + +function swigc_FIDAGetAdjY(farg1, farg2, farg3, farg4) & +bind(C, name="_wrap_FIDAGetAdjY") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +type(C_PTR), value :: farg3 +type(C_PTR), value :: farg4 +integer(C_INT) :: fresult +end function + +subroutine swigc_IDAadjCheckPointRec_my_addr_set(farg1, farg2) & +bind(C, name="_wrap_IDAadjCheckPointRec_my_addr_set") +use, intrinsic :: ISO_C_BINDING +import :: swigclasswrapper +type(SwigClassWrapper) :: farg1 +type(C_PTR), value :: farg2 +end subroutine + +function swigc_IDAadjCheckPointRec_my_addr_get(farg1) & +bind(C, name="_wrap_IDAadjCheckPointRec_my_addr_get") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +import :: swigclasswrapper +type(SwigClassWrapper) :: farg1 +type(C_PTR) :: fresult +end function + +subroutine swigc_IDAadjCheckPointRec_next_addr_set(farg1, farg2) & +bind(C, name="_wrap_IDAadjCheckPointRec_next_addr_set") +use, intrinsic :: ISO_C_BINDING +import :: swigclasswrapper +type(SwigClassWrapper) :: farg1 +type(C_PTR), value :: farg2 +end subroutine + +function swigc_IDAadjCheckPointRec_next_addr_get(farg1) & +bind(C, name="_wrap_IDAadjCheckPointRec_next_addr_get") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +import :: swigclasswrapper +type(SwigClassWrapper) :: farg1 +type(C_PTR) :: fresult +end function + +subroutine swigc_IDAadjCheckPointRec_t0_set(farg1, farg2) & +bind(C, name="_wrap_IDAadjCheckPointRec_t0_set") +use, intrinsic :: ISO_C_BINDING +import :: swigclasswrapper +type(SwigClassWrapper) :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +end subroutine + +function swigc_IDAadjCheckPointRec_t0_get(farg1) & +bind(C, name="_wrap_IDAadjCheckPointRec_t0_get") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +import :: swigclasswrapper +type(SwigClassWrapper) :: farg1 +real(C_DOUBLE) :: fresult +end function + +subroutine swigc_IDAadjCheckPointRec_t1_set(farg1, farg2) & +bind(C, name="_wrap_IDAadjCheckPointRec_t1_set") +use, intrinsic :: ISO_C_BINDING +import :: swigclasswrapper +type(SwigClassWrapper) :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +end subroutine + +function swigc_IDAadjCheckPointRec_t1_get(farg1) & +bind(C, name="_wrap_IDAadjCheckPointRec_t1_get") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +import :: swigclasswrapper +type(SwigClassWrapper) :: farg1 +real(C_DOUBLE) :: fresult +end function + +subroutine swigc_IDAadjCheckPointRec_nstep_set(farg1, farg2) & +bind(C, name="_wrap_IDAadjCheckPointRec_nstep_set") +use, intrinsic :: ISO_C_BINDING +import :: swigclasswrapper +type(SwigClassWrapper) :: farg1 +integer(C_LONG), intent(in) :: farg2 +end subroutine + +function swigc_IDAadjCheckPointRec_nstep_get(farg1) & +bind(C, name="_wrap_IDAadjCheckPointRec_nstep_get") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +import :: swigclasswrapper +type(SwigClassWrapper) :: farg1 +integer(C_LONG) :: fresult +end function + +subroutine swigc_IDAadjCheckPointRec_order_set(farg1, farg2) & +bind(C, name="_wrap_IDAadjCheckPointRec_order_set") +use, intrinsic :: ISO_C_BINDING +import :: swigclasswrapper +type(SwigClassWrapper) :: farg1 +integer(C_INT), intent(in) :: farg2 +end subroutine + +function swigc_IDAadjCheckPointRec_order_get(farg1) & +bind(C, name="_wrap_IDAadjCheckPointRec_order_get") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +import :: swigclasswrapper +type(SwigClassWrapper) :: farg1 +integer(C_INT) :: fresult +end function + +subroutine swigc_IDAadjCheckPointRec_step_set(farg1, farg2) & +bind(C, name="_wrap_IDAadjCheckPointRec_step_set") +use, intrinsic :: ISO_C_BINDING +import :: swigclasswrapper +type(SwigClassWrapper) :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +end subroutine + +function swigc_IDAadjCheckPointRec_step_get(farg1) & +bind(C, name="_wrap_IDAadjCheckPointRec_step_get") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +import :: swigclasswrapper +type(SwigClassWrapper) :: farg1 +real(C_DOUBLE) :: fresult +end function + +function swigc_new_IDAadjCheckPointRec() & +bind(C, name="_wrap_new_IDAadjCheckPointRec") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +import :: swigclasswrapper +type(SwigClassWrapper) :: fresult +end function + +subroutine swigc_delete_IDAadjCheckPointRec(farg1) & +bind(C, name="_wrap_delete_IDAadjCheckPointRec") +use, intrinsic :: ISO_C_BINDING +import :: swigclasswrapper +type(SwigClassWrapper), intent(inout) :: farg1 +end subroutine + +subroutine swigc_IDAadjCheckPointRec_op_assign__(farg1, farg2) & +bind(C, name="_wrap_IDAadjCheckPointRec_op_assign__") +use, intrinsic :: ISO_C_BINDING +import :: swigclasswrapper +type(SwigClassWrapper), intent(inout) :: farg1 +type(SwigClassWrapper) :: farg2 +end subroutine + +function swigc_FIDAGetAdjCheckPointsInfo(farg1, farg2) & +bind(C, name="_wrap_FIDAGetAdjCheckPointsInfo") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +import :: swigclasswrapper +type(C_PTR), value :: farg1 +type(SwigClassWrapper) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FIDASetJacTimesResFnB(farg1, farg2, farg3) & +bind(C, name="_wrap_FIDASetJacTimesResFnB") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +type(C_FUNPTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FIDAGetAdjDataPointHermite(farg1, farg2, farg3, farg4, farg5) & +bind(C, name="_wrap_FIDAGetAdjDataPointHermite") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +type(C_PTR), value :: farg3 +type(C_PTR), value :: farg4 +type(C_PTR), value :: farg5 +integer(C_INT) :: fresult +end function + +function swigc_FIDAGetAdjDataPointPolynomial(farg1, farg2, farg3, farg4, farg5) & +bind(C, name="_wrap_FIDAGetAdjDataPointPolynomial") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +type(C_PTR), value :: farg3 +type(C_PTR), value :: farg4 +type(C_PTR), value :: farg5 +integer(C_INT) :: fresult +end function + +function swigc_FIDAGetAdjCurrentCheckPoint(farg1, farg2) & +bind(C, name="_wrap_FIDAGetAdjCurrentCheckPoint") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FIDABBDPrecInit(farg1, farg2, farg3, farg4, farg5, farg6, farg7, farg8, farg9) & +bind(C, name="_wrap_FIDABBDPrecInit") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT32_T), intent(in) :: farg2 +integer(C_INT32_T), intent(in) :: farg3 +integer(C_INT32_T), intent(in) :: farg4 +integer(C_INT32_T), intent(in) :: farg5 +integer(C_INT32_T), intent(in) :: farg6 +real(C_DOUBLE), intent(in) :: farg7 +type(C_FUNPTR), value :: farg8 +type(C_FUNPTR), value :: farg9 +integer(C_INT) :: fresult +end function + +function swigc_FIDABBDPrecReInit(farg1, farg2, farg3, farg4) & +bind(C, name="_wrap_FIDABBDPrecReInit") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT32_T), intent(in) :: farg2 +integer(C_INT32_T), intent(in) :: farg3 +real(C_DOUBLE), intent(in) :: farg4 +integer(C_INT) :: fresult +end function + +function swigc_FIDABBDPrecGetWorkSpace(farg1, farg2, farg3) & +bind(C, name="_wrap_FIDABBDPrecGetWorkSpace") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FIDABBDPrecGetNumGfnEvals(farg1, farg2) & +bind(C, name="_wrap_FIDABBDPrecGetNumGfnEvals") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FIDABBDPrecInitB(farg1, farg2, farg3, farg4, farg5, farg6, farg7, farg8, farg9, farg10) & +bind(C, name="_wrap_FIDABBDPrecInitB") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT32_T), intent(in) :: farg3 +integer(C_INT32_T), intent(in) :: farg4 +integer(C_INT32_T), intent(in) :: farg5 +integer(C_INT32_T), intent(in) :: farg6 +integer(C_INT32_T), intent(in) :: farg7 +real(C_DOUBLE), intent(in) :: farg8 +type(C_FUNPTR), value :: farg9 +type(C_FUNPTR), value :: farg10 +integer(C_INT) :: fresult +end function + +function swigc_FIDABBDPrecReInitB(farg1, farg2, farg3, farg4, farg5) & +bind(C, name="_wrap_FIDABBDPrecReInitB") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT32_T), intent(in) :: farg3 +integer(C_INT32_T), intent(in) :: farg4 +real(C_DOUBLE), intent(in) :: farg5 +integer(C_INT) :: fresult +end function + +function swigc_FIDASetLinearSolver(farg1, farg2, farg3) & +bind(C, name="_wrap_FIDASetLinearSolver") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FIDASetJacFn(farg1, farg2) & +bind(C, name="_wrap_FIDASetJacFn") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_FUNPTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FIDASetPreconditioner(farg1, farg2, farg3) & +bind(C, name="_wrap_FIDASetPreconditioner") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_FUNPTR), value :: farg2 +type(C_FUNPTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FIDASetJacTimes(farg1, farg2, farg3) & +bind(C, name="_wrap_FIDASetJacTimes") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_FUNPTR), value :: farg2 +type(C_FUNPTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FIDASetEpsLin(farg1, farg2) & +bind(C, name="_wrap_FIDASetEpsLin") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FIDASetLSNormFactor(farg1, farg2) & +bind(C, name="_wrap_FIDASetLSNormFactor") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FIDASetLinearSolutionScaling(farg1, farg2) & +bind(C, name="_wrap_FIDASetLinearSolutionScaling") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FIDASetIncrementFactor(farg1, farg2) & +bind(C, name="_wrap_FIDASetIncrementFactor") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FIDAGetJac(farg1, farg2) & +bind(C, name="_wrap_FIDAGetJac") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FIDAGetJacCj(farg1, farg2) & +bind(C, name="_wrap_FIDAGetJacCj") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FIDAGetJacTime(farg1, farg2) & +bind(C, name="_wrap_FIDAGetJacTime") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FIDAGetJacNumSteps(farg1, farg2) & +bind(C, name="_wrap_FIDAGetJacNumSteps") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FIDAGetLinWorkSpace(farg1, farg2, farg3) & +bind(C, name="_wrap_FIDAGetLinWorkSpace") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FIDAGetNumJacEvals(farg1, farg2) & +bind(C, name="_wrap_FIDAGetNumJacEvals") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FIDAGetNumPrecEvals(farg1, farg2) & +bind(C, name="_wrap_FIDAGetNumPrecEvals") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FIDAGetNumPrecSolves(farg1, farg2) & +bind(C, name="_wrap_FIDAGetNumPrecSolves") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FIDAGetNumLinIters(farg1, farg2) & +bind(C, name="_wrap_FIDAGetNumLinIters") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FIDAGetNumLinConvFails(farg1, farg2) & +bind(C, name="_wrap_FIDAGetNumLinConvFails") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FIDAGetNumJTSetupEvals(farg1, farg2) & +bind(C, name="_wrap_FIDAGetNumJTSetupEvals") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FIDAGetNumJtimesEvals(farg1, farg2) & +bind(C, name="_wrap_FIDAGetNumJtimesEvals") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FIDAGetNumLinResEvals(farg1, farg2) & +bind(C, name="_wrap_FIDAGetNumLinResEvals") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FIDAGetLastLinFlag(farg1, farg2) & +bind(C, name="_wrap_FIDAGetLastLinFlag") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FIDAGetLinReturnFlagName(farg1) & +bind(C, name="_wrap_FIDAGetLinReturnFlagName") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +import :: swigarraywrapper +integer(C_LONG), intent(in) :: farg1 +type(SwigArrayWrapper) :: fresult +end function + +function swigc_FIDASetLinearSolverB(farg1, farg2, farg3, farg4) & +bind(C, name="_wrap_FIDASetLinearSolverB") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +type(C_PTR), value :: farg3 +type(C_PTR), value :: farg4 +integer(C_INT) :: fresult +end function + +function swigc_FIDASetJacFnB(farg1, farg2, farg3) & +bind(C, name="_wrap_FIDASetJacFnB") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +type(C_FUNPTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FIDASetJacFnBS(farg1, farg2, farg3) & +bind(C, name="_wrap_FIDASetJacFnBS") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +type(C_FUNPTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FIDASetEpsLinB(farg1, farg2, farg3) & +bind(C, name="_wrap_FIDASetEpsLinB") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +real(C_DOUBLE), intent(in) :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FIDASetLSNormFactorB(farg1, farg2, farg3) & +bind(C, name="_wrap_FIDASetLSNormFactorB") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +real(C_DOUBLE), intent(in) :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FIDASetLinearSolutionScalingB(farg1, farg2, farg3) & +bind(C, name="_wrap_FIDASetLinearSolutionScalingB") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT), intent(in) :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FIDASetIncrementFactorB(farg1, farg2, farg3) & +bind(C, name="_wrap_FIDASetIncrementFactorB") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +real(C_DOUBLE), intent(in) :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FIDASetPreconditionerB(farg1, farg2, farg3, farg4) & +bind(C, name="_wrap_FIDASetPreconditionerB") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +type(C_FUNPTR), value :: farg3 +type(C_FUNPTR), value :: farg4 +integer(C_INT) :: fresult +end function + +function swigc_FIDASetPreconditionerBS(farg1, farg2, farg3, farg4) & +bind(C, name="_wrap_FIDASetPreconditionerBS") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +type(C_FUNPTR), value :: farg3 +type(C_FUNPTR), value :: farg4 +integer(C_INT) :: fresult +end function + +function swigc_FIDASetJacTimesB(farg1, farg2, farg3, farg4) & +bind(C, name="_wrap_FIDASetJacTimesB") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +type(C_FUNPTR), value :: farg3 +type(C_FUNPTR), value :: farg4 +integer(C_INT) :: fresult +end function + +function swigc_FIDASetJacTimesBS(farg1, farg2, farg3, farg4) & +bind(C, name="_wrap_FIDASetJacTimesBS") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +type(C_FUNPTR), value :: farg3 +type(C_FUNPTR), value :: farg4 +integer(C_INT) :: fresult +end function + +end interface + + +contains + ! MODULE SUBPROGRAMS +function FIDACreate(sunctx) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +type(C_PTR) :: swig_result +type(C_PTR) :: sunctx +type(C_PTR) :: fresult +type(C_PTR) :: farg1 + +farg1 = sunctx +fresult = swigc_FIDACreate(farg1) +swig_result = fresult +end function + +function FIDAInit(ida_mem, res, t0, yy0, yp0) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +type(C_FUNPTR), intent(in), value :: res +real(C_DOUBLE), intent(in) :: t0 +type(N_Vector), target, intent(inout) :: yy0 +type(N_Vector), target, intent(inout) :: yp0 +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_FUNPTR) :: farg2 +real(C_DOUBLE) :: farg3 +type(C_PTR) :: farg4 +type(C_PTR) :: farg5 + +farg1 = ida_mem +farg2 = res +farg3 = t0 +farg4 = c_loc(yy0) +farg5 = c_loc(yp0) +fresult = swigc_FIDAInit(farg1, farg2, farg3, farg4, farg5) +swig_result = fresult +end function + +function FIDAReInit(ida_mem, t0, yy0, yp0) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +real(C_DOUBLE), intent(in) :: t0 +type(N_Vector), target, intent(inout) :: yy0 +type(N_Vector), target, intent(inout) :: yp0 +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 +type(C_PTR) :: farg3 +type(C_PTR) :: farg4 + +farg1 = ida_mem +farg2 = t0 +farg3 = c_loc(yy0) +farg4 = c_loc(yp0) +fresult = swigc_FIDAReInit(farg1, farg2, farg3, farg4) +swig_result = fresult +end function + +function FIDASStolerances(ida_mem, reltol, abstol) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +real(C_DOUBLE), intent(in) :: reltol +real(C_DOUBLE), intent(in) :: abstol +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 +real(C_DOUBLE) :: farg3 + +farg1 = ida_mem +farg2 = reltol +farg3 = abstol +fresult = swigc_FIDASStolerances(farg1, farg2, farg3) +swig_result = fresult +end function + +function FIDASVtolerances(ida_mem, reltol, abstol) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +real(C_DOUBLE), intent(in) :: reltol +type(N_Vector), target, intent(inout) :: abstol +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 +type(C_PTR) :: farg3 + +farg1 = ida_mem +farg2 = reltol +farg3 = c_loc(abstol) +fresult = swigc_FIDASVtolerances(farg1, farg2, farg3) +swig_result = fresult +end function + +function FIDAWFtolerances(ida_mem, efun) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +type(C_FUNPTR), intent(in), value :: efun +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_FUNPTR) :: farg2 + +farg1 = ida_mem +farg2 = efun +fresult = swigc_FIDAWFtolerances(farg1, farg2) +swig_result = fresult +end function + +function FIDACalcIC(ida_mem, icopt, tout1) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +integer(C_INT), intent(in) :: icopt +real(C_DOUBLE), intent(in) :: tout1 +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 +real(C_DOUBLE) :: farg3 + +farg1 = ida_mem +farg2 = icopt +farg3 = tout1 +fresult = swigc_FIDACalcIC(farg1, farg2, farg3) +swig_result = fresult +end function + +function FIDASetNonlinConvCoefIC(ida_mem, epiccon) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +real(C_DOUBLE), intent(in) :: epiccon +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 + +farg1 = ida_mem +farg2 = epiccon +fresult = swigc_FIDASetNonlinConvCoefIC(farg1, farg2) +swig_result = fresult +end function + +function FIDASetMaxNumStepsIC(ida_mem, maxnh) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +integer(C_INT), intent(in) :: maxnh +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = ida_mem +farg2 = maxnh +fresult = swigc_FIDASetMaxNumStepsIC(farg1, farg2) +swig_result = fresult +end function + +function FIDASetMaxNumJacsIC(ida_mem, maxnj) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +integer(C_INT), intent(in) :: maxnj +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = ida_mem +farg2 = maxnj +fresult = swigc_FIDASetMaxNumJacsIC(farg1, farg2) +swig_result = fresult +end function + +function FIDASetMaxNumItersIC(ida_mem, maxnit) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +integer(C_INT), intent(in) :: maxnit +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = ida_mem +farg2 = maxnit +fresult = swigc_FIDASetMaxNumItersIC(farg1, farg2) +swig_result = fresult +end function + +function FIDASetLineSearchOffIC(ida_mem, lsoff) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +integer(C_INT), intent(in) :: lsoff +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = ida_mem +farg2 = lsoff +fresult = swigc_FIDASetLineSearchOffIC(farg1, farg2) +swig_result = fresult +end function + +function FIDASetStepToleranceIC(ida_mem, steptol) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +real(C_DOUBLE), intent(in) :: steptol +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 + +farg1 = ida_mem +farg2 = steptol +fresult = swigc_FIDASetStepToleranceIC(farg1, farg2) +swig_result = fresult +end function + +function FIDASetMaxBacksIC(ida_mem, maxbacks) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +integer(C_INT), intent(in) :: maxbacks +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = ida_mem +farg2 = maxbacks +fresult = swigc_FIDASetMaxBacksIC(farg1, farg2) +swig_result = fresult +end function + +function FIDASetDeltaCjLSetup(ida_max, dcj) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_max +real(C_DOUBLE), intent(in) :: dcj +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 + +farg1 = ida_max +farg2 = dcj +fresult = swigc_FIDASetDeltaCjLSetup(farg1, farg2) +swig_result = fresult +end function + +function FIDASetUserData(ida_mem, user_data) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +type(C_PTR) :: user_data +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = ida_mem +farg2 = user_data +fresult = swigc_FIDASetUserData(farg1, farg2) +swig_result = fresult +end function + +function FIDASetMaxOrd(ida_mem, maxord) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +integer(C_INT), intent(in) :: maxord +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = ida_mem +farg2 = maxord +fresult = swigc_FIDASetMaxOrd(farg1, farg2) +swig_result = fresult +end function + +function FIDASetMaxNumSteps(ida_mem, mxsteps) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +integer(C_LONG), intent(in) :: mxsteps +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_LONG) :: farg2 + +farg1 = ida_mem +farg2 = mxsteps +fresult = swigc_FIDASetMaxNumSteps(farg1, farg2) +swig_result = fresult +end function + +function FIDASetInitStep(ida_mem, hin) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +real(C_DOUBLE), intent(in) :: hin +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 + +farg1 = ida_mem +farg2 = hin +fresult = swigc_FIDASetInitStep(farg1, farg2) +swig_result = fresult +end function + +function FIDASetMaxStep(ida_mem, hmax) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +real(C_DOUBLE), intent(in) :: hmax +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 + +farg1 = ida_mem +farg2 = hmax +fresult = swigc_FIDASetMaxStep(farg1, farg2) +swig_result = fresult +end function + +function FIDASetMinStep(ida_mem, hmin) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +real(C_DOUBLE), intent(in) :: hmin +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 + +farg1 = ida_mem +farg2 = hmin +fresult = swigc_FIDASetMinStep(farg1, farg2) +swig_result = fresult +end function + +function FIDASetStopTime(ida_mem, tstop) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +real(C_DOUBLE), intent(in) :: tstop +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 + +farg1 = ida_mem +farg2 = tstop +fresult = swigc_FIDASetStopTime(farg1, farg2) +swig_result = fresult +end function + +function FIDAClearStopTime(ida_mem) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +integer(C_INT) :: fresult +type(C_PTR) :: farg1 + +farg1 = ida_mem +fresult = swigc_FIDAClearStopTime(farg1) +swig_result = fresult +end function + +function FIDASetMaxErrTestFails(ida_mem, maxnef) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +integer(C_INT), intent(in) :: maxnef +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = ida_mem +farg2 = maxnef +fresult = swigc_FIDASetMaxErrTestFails(farg1, farg2) +swig_result = fresult +end function + +function FIDASetSuppressAlg(ida_mem, suppressalg) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +integer(C_INT), intent(in) :: suppressalg +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = ida_mem +farg2 = suppressalg +fresult = swigc_FIDASetSuppressAlg(farg1, farg2) +swig_result = fresult +end function + +function FIDASetId(ida_mem, id) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +type(N_Vector), target, intent(inout) :: id +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = ida_mem +farg2 = c_loc(id) +fresult = swigc_FIDASetId(farg1, farg2) +swig_result = fresult +end function + +function FIDASetConstraints(ida_mem, constraints) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +type(N_Vector), target, intent(inout) :: constraints +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = ida_mem +farg2 = c_loc(constraints) +fresult = swigc_FIDASetConstraints(farg1, farg2) +swig_result = fresult +end function + +function FIDASetEtaFixedStepBounds(ida_mem, eta_min_fx, eta_max_fx) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +real(C_DOUBLE), intent(in) :: eta_min_fx +real(C_DOUBLE), intent(in) :: eta_max_fx +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 +real(C_DOUBLE) :: farg3 + +farg1 = ida_mem +farg2 = eta_min_fx +farg3 = eta_max_fx +fresult = swigc_FIDASetEtaFixedStepBounds(farg1, farg2, farg3) +swig_result = fresult +end function + +function FIDASetEtaMin(ida_mem, eta_min) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +real(C_DOUBLE), intent(in) :: eta_min +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 + +farg1 = ida_mem +farg2 = eta_min +fresult = swigc_FIDASetEtaMin(farg1, farg2) +swig_result = fresult +end function + +function FIDASetEtaMax(ida_mem, eta_max) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +real(C_DOUBLE), intent(in) :: eta_max +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 + +farg1 = ida_mem +farg2 = eta_max +fresult = swigc_FIDASetEtaMax(farg1, farg2) +swig_result = fresult +end function + +function FIDASetEtaLow(ida_mem, eta_low) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +real(C_DOUBLE), intent(in) :: eta_low +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 + +farg1 = ida_mem +farg2 = eta_low +fresult = swigc_FIDASetEtaLow(farg1, farg2) +swig_result = fresult +end function + +function FIDASetEtaMinErrFail(ida_mem, eta_min_ef) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +real(C_DOUBLE), intent(in) :: eta_min_ef +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 + +farg1 = ida_mem +farg2 = eta_min_ef +fresult = swigc_FIDASetEtaMinErrFail(farg1, farg2) +swig_result = fresult +end function + +function FIDASetEtaConvFail(ida_mem, eta_cf) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +real(C_DOUBLE), intent(in) :: eta_cf +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 + +farg1 = ida_mem +farg2 = eta_cf +fresult = swigc_FIDASetEtaConvFail(farg1, farg2) +swig_result = fresult +end function + +function FIDASetMaxConvFails(ida_mem, maxncf) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +integer(C_INT), intent(in) :: maxncf +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = ida_mem +farg2 = maxncf +fresult = swigc_FIDASetMaxConvFails(farg1, farg2) +swig_result = fresult +end function + +function FIDASetMaxNonlinIters(ida_mem, maxcor) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +integer(C_INT), intent(in) :: maxcor +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = ida_mem +farg2 = maxcor +fresult = swigc_FIDASetMaxNonlinIters(farg1, farg2) +swig_result = fresult +end function + +function FIDASetNlsResFn(ida_mem, res) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +type(C_FUNPTR), intent(in), value :: res +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_FUNPTR) :: farg2 + +farg1 = ida_mem +farg2 = res +fresult = swigc_FIDASetNlsResFn(farg1, farg2) +swig_result = fresult +end function + +function FIDASetNonlinConvCoef(ida_mem, epcon) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +real(C_DOUBLE), intent(in) :: epcon +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 + +farg1 = ida_mem +farg2 = epcon +fresult = swigc_FIDASetNonlinConvCoef(farg1, farg2) +swig_result = fresult +end function + +function FIDASetNonlinearSolver(ida_mem, nls) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +type(SUNNonlinearSolver), target, intent(inout) :: nls +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = ida_mem +farg2 = c_loc(nls) +fresult = swigc_FIDASetNonlinearSolver(farg1, farg2) +swig_result = fresult +end function + +function FIDARootInit(ida_mem, nrtfn, g) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +integer(C_INT), intent(in) :: nrtfn +type(C_FUNPTR), intent(in), value :: g +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 +type(C_FUNPTR) :: farg3 + +farg1 = ida_mem +farg2 = nrtfn +farg3 = g +fresult = swigc_FIDARootInit(farg1, farg2, farg3) +swig_result = fresult +end function + +function FIDASetRootDirection(ida_mem, rootdir) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +integer(C_INT), dimension(*), target, intent(inout) :: rootdir +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = ida_mem +farg2 = c_loc(rootdir(1)) +fresult = swigc_FIDASetRootDirection(farg1, farg2) +swig_result = fresult +end function + +function FIDASetNoInactiveRootWarn(ida_mem) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +integer(C_INT) :: fresult +type(C_PTR) :: farg1 + +farg1 = ida_mem +fresult = swigc_FIDASetNoInactiveRootWarn(farg1) +swig_result = fresult +end function + +function FIDASolve(ida_mem, tout, tret, yret, ypret, itask) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +real(C_DOUBLE), intent(in) :: tout +real(C_DOUBLE), dimension(*), target, intent(inout) :: tret +type(N_Vector), target, intent(inout) :: yret +type(N_Vector), target, intent(inout) :: ypret +integer(C_INT), intent(in) :: itask +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 +type(C_PTR) :: farg3 +type(C_PTR) :: farg4 +type(C_PTR) :: farg5 +integer(C_INT) :: farg6 + +farg1 = ida_mem +farg2 = tout +farg3 = c_loc(tret(1)) +farg4 = c_loc(yret) +farg5 = c_loc(ypret) +farg6 = itask +fresult = swigc_FIDASolve(farg1, farg2, farg3, farg4, farg5, farg6) +swig_result = fresult +end function + +function FIDAComputeY(ida_mem, ycor, y) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +type(N_Vector), target, intent(inout) :: ycor +type(N_Vector), target, intent(inout) :: y +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = ida_mem +farg2 = c_loc(ycor) +farg3 = c_loc(y) +fresult = swigc_FIDAComputeY(farg1, farg2, farg3) +swig_result = fresult +end function + +function FIDAComputeYp(ida_mem, ycor, yp) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +type(N_Vector), target, intent(inout) :: ycor +type(N_Vector), target, intent(inout) :: yp +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = ida_mem +farg2 = c_loc(ycor) +farg3 = c_loc(yp) +fresult = swigc_FIDAComputeYp(farg1, farg2, farg3) +swig_result = fresult +end function + +function FIDAComputeYSens(ida_mem, ycor, yys) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +type(C_PTR) :: ycor +type(C_PTR) :: yys +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = ida_mem +farg2 = ycor +farg3 = yys +fresult = swigc_FIDAComputeYSens(farg1, farg2, farg3) +swig_result = fresult +end function + +function FIDAComputeYpSens(ida_mem, ycor, yps) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +type(C_PTR) :: ycor +type(C_PTR) :: yps +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = ida_mem +farg2 = ycor +farg3 = yps +fresult = swigc_FIDAComputeYpSens(farg1, farg2, farg3) +swig_result = fresult +end function + +function FIDAGetDky(ida_mem, t, k, dky) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +real(C_DOUBLE), intent(in) :: t +integer(C_INT), intent(in) :: k +type(N_Vector), target, intent(inout) :: dky +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 +integer(C_INT) :: farg3 +type(C_PTR) :: farg4 + +farg1 = ida_mem +farg2 = t +farg3 = k +farg4 = c_loc(dky) +fresult = swigc_FIDAGetDky(farg1, farg2, farg3, farg4) +swig_result = fresult +end function + +function FIDAGetWorkSpace(ida_mem, lenrw, leniw) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +integer(C_LONG), dimension(*), target, intent(inout) :: lenrw +integer(C_LONG), dimension(*), target, intent(inout) :: leniw +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = ida_mem +farg2 = c_loc(lenrw(1)) +farg3 = c_loc(leniw(1)) +fresult = swigc_FIDAGetWorkSpace(farg1, farg2, farg3) +swig_result = fresult +end function + +function FIDAGetNumSteps(ida_mem, nsteps) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +integer(C_LONG), dimension(*), target, intent(inout) :: nsteps +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = ida_mem +farg2 = c_loc(nsteps(1)) +fresult = swigc_FIDAGetNumSteps(farg1, farg2) +swig_result = fresult +end function + +function FIDAGetNumResEvals(ida_mem, nrevals) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +integer(C_LONG), dimension(*), target, intent(inout) :: nrevals +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = ida_mem +farg2 = c_loc(nrevals(1)) +fresult = swigc_FIDAGetNumResEvals(farg1, farg2) +swig_result = fresult +end function + +function FIDAGetNumLinSolvSetups(ida_mem, nlinsetups) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +integer(C_LONG), dimension(*), target, intent(inout) :: nlinsetups +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = ida_mem +farg2 = c_loc(nlinsetups(1)) +fresult = swigc_FIDAGetNumLinSolvSetups(farg1, farg2) +swig_result = fresult +end function + +function FIDAGetNumErrTestFails(ida_mem, netfails) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +integer(C_LONG), dimension(*), target, intent(inout) :: netfails +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = ida_mem +farg2 = c_loc(netfails(1)) +fresult = swigc_FIDAGetNumErrTestFails(farg1, farg2) +swig_result = fresult +end function + +function FIDAGetNumBacktrackOps(ida_mem, nbacktr) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +integer(C_LONG), dimension(*), target, intent(inout) :: nbacktr +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = ida_mem +farg2 = c_loc(nbacktr(1)) +fresult = swigc_FIDAGetNumBacktrackOps(farg1, farg2) +swig_result = fresult +end function + +function FIDAGetConsistentIC(ida_mem, yy0_mod, yp0_mod) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +type(N_Vector), target, intent(inout) :: yy0_mod +type(N_Vector), target, intent(inout) :: yp0_mod +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = ida_mem +farg2 = c_loc(yy0_mod) +farg3 = c_loc(yp0_mod) +fresult = swigc_FIDAGetConsistentIC(farg1, farg2, farg3) +swig_result = fresult +end function + +function FIDAGetLastOrder(ida_mem, klast) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +integer(C_INT), dimension(*), target, intent(inout) :: klast +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = ida_mem +farg2 = c_loc(klast(1)) +fresult = swigc_FIDAGetLastOrder(farg1, farg2) +swig_result = fresult +end function + +function FIDAGetCurrentOrder(ida_mem, kcur) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +integer(C_INT), dimension(*), target, intent(inout) :: kcur +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = ida_mem +farg2 = c_loc(kcur(1)) +fresult = swigc_FIDAGetCurrentOrder(farg1, farg2) +swig_result = fresult +end function + +function FIDAGetCurrentCj(ida_mem, cj) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +real(C_DOUBLE), dimension(*), target, intent(inout) :: cj +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = ida_mem +farg2 = c_loc(cj(1)) +fresult = swigc_FIDAGetCurrentCj(farg1, farg2) +swig_result = fresult +end function + +function FIDAGetCurrentY(ida_mem, ycur) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +type(C_PTR) :: ycur +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = ida_mem +farg2 = ycur +fresult = swigc_FIDAGetCurrentY(farg1, farg2) +swig_result = fresult +end function + +function FIDAGetCurrentYSens(ida_mem, ys) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +type(C_PTR), target, intent(inout) :: ys +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = ida_mem +farg2 = c_loc(ys) +fresult = swigc_FIDAGetCurrentYSens(farg1, farg2) +swig_result = fresult +end function + +function FIDAGetCurrentYp(ida_mem, ypcur) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +type(C_PTR) :: ypcur +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = ida_mem +farg2 = ypcur +fresult = swigc_FIDAGetCurrentYp(farg1, farg2) +swig_result = fresult +end function + +function FIDAGetCurrentYpSens(ida_mem, yps) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +type(C_PTR), target, intent(inout) :: yps +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = ida_mem +farg2 = c_loc(yps) +fresult = swigc_FIDAGetCurrentYpSens(farg1, farg2) +swig_result = fresult +end function + +function FIDAGetActualInitStep(ida_mem, hinused) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +real(C_DOUBLE), dimension(*), target, intent(inout) :: hinused +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = ida_mem +farg2 = c_loc(hinused(1)) +fresult = swigc_FIDAGetActualInitStep(farg1, farg2) +swig_result = fresult +end function + +function FIDAGetLastStep(ida_mem, hlast) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +real(C_DOUBLE), dimension(*), target, intent(inout) :: hlast +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = ida_mem +farg2 = c_loc(hlast(1)) +fresult = swigc_FIDAGetLastStep(farg1, farg2) +swig_result = fresult +end function + +function FIDAGetCurrentStep(ida_mem, hcur) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +real(C_DOUBLE), dimension(*), target, intent(inout) :: hcur +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = ida_mem +farg2 = c_loc(hcur(1)) +fresult = swigc_FIDAGetCurrentStep(farg1, farg2) +swig_result = fresult +end function + +function FIDAGetCurrentTime(ida_mem, tcur) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +real(C_DOUBLE), dimension(*), target, intent(inout) :: tcur +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = ida_mem +farg2 = c_loc(tcur(1)) +fresult = swigc_FIDAGetCurrentTime(farg1, farg2) +swig_result = fresult +end function + +function FIDAGetTolScaleFactor(ida_mem, tolsfact) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +real(C_DOUBLE), dimension(*), target, intent(inout) :: tolsfact +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = ida_mem +farg2 = c_loc(tolsfact(1)) +fresult = swigc_FIDAGetTolScaleFactor(farg1, farg2) +swig_result = fresult +end function + +function FIDAGetErrWeights(ida_mem, eweight) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +type(N_Vector), target, intent(inout) :: eweight +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = ida_mem +farg2 = c_loc(eweight) +fresult = swigc_FIDAGetErrWeights(farg1, farg2) +swig_result = fresult +end function + +function FIDAGetEstLocalErrors(ida_mem, ele) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +type(N_Vector), target, intent(inout) :: ele +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = ida_mem +farg2 = c_loc(ele) +fresult = swigc_FIDAGetEstLocalErrors(farg1, farg2) +swig_result = fresult +end function + +function FIDAGetNumGEvals(ida_mem, ngevals) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +integer(C_LONG), dimension(*), target, intent(inout) :: ngevals +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = ida_mem +farg2 = c_loc(ngevals(1)) +fresult = swigc_FIDAGetNumGEvals(farg1, farg2) +swig_result = fresult +end function + +function FIDAGetRootInfo(ida_mem, rootsfound) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +integer(C_INT), dimension(*), target, intent(inout) :: rootsfound +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = ida_mem +farg2 = c_loc(rootsfound(1)) +fresult = swigc_FIDAGetRootInfo(farg1, farg2) +swig_result = fresult +end function + +function FIDAGetIntegratorStats(ida_mem, nsteps, nrevals, nlinsetups, netfails, qlast, qcur, hinused, hlast, hcur, tcur) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +integer(C_LONG), dimension(*), target, intent(inout) :: nsteps +integer(C_LONG), dimension(*), target, intent(inout) :: nrevals +integer(C_LONG), dimension(*), target, intent(inout) :: nlinsetups +integer(C_LONG), dimension(*), target, intent(inout) :: netfails +integer(C_INT), dimension(*), target, intent(inout) :: qlast +integer(C_INT), dimension(*), target, intent(inout) :: qcur +real(C_DOUBLE), dimension(*), target, intent(inout) :: hinused +real(C_DOUBLE), dimension(*), target, intent(inout) :: hlast +real(C_DOUBLE), dimension(*), target, intent(inout) :: hcur +real(C_DOUBLE), dimension(*), target, intent(inout) :: tcur +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 +type(C_PTR) :: farg4 +type(C_PTR) :: farg5 +type(C_PTR) :: farg6 +type(C_PTR) :: farg7 +type(C_PTR) :: farg8 +type(C_PTR) :: farg9 +type(C_PTR) :: farg10 +type(C_PTR) :: farg11 + +farg1 = ida_mem +farg2 = c_loc(nsteps(1)) +farg3 = c_loc(nrevals(1)) +farg4 = c_loc(nlinsetups(1)) +farg5 = c_loc(netfails(1)) +farg6 = c_loc(qlast(1)) +farg7 = c_loc(qcur(1)) +farg8 = c_loc(hinused(1)) +farg9 = c_loc(hlast(1)) +farg10 = c_loc(hcur(1)) +farg11 = c_loc(tcur(1)) +fresult = swigc_FIDAGetIntegratorStats(farg1, farg2, farg3, farg4, farg5, farg6, farg7, farg8, farg9, farg10, farg11) +swig_result = fresult +end function + +function FIDAGetNonlinearSystemData(ida_mem, tcur, yypred, yppred, yyn, ypn, res, cj, user_data) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +real(C_DOUBLE), dimension(*), target, intent(inout) :: tcur +type(C_PTR) :: yypred +type(C_PTR) :: yppred +type(C_PTR) :: yyn +type(C_PTR) :: ypn +type(C_PTR) :: res +real(C_DOUBLE), dimension(*), target, intent(inout) :: cj +type(C_PTR), target, intent(inout) :: user_data +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 +type(C_PTR) :: farg4 +type(C_PTR) :: farg5 +type(C_PTR) :: farg6 +type(C_PTR) :: farg7 +type(C_PTR) :: farg8 +type(C_PTR) :: farg9 + +farg1 = ida_mem +farg2 = c_loc(tcur(1)) +farg3 = yypred +farg4 = yppred +farg5 = yyn +farg6 = ypn +farg7 = res +farg8 = c_loc(cj(1)) +farg9 = c_loc(user_data) +fresult = swigc_FIDAGetNonlinearSystemData(farg1, farg2, farg3, farg4, farg5, farg6, farg7, farg8, farg9) +swig_result = fresult +end function + +function FIDAGetNonlinearSystemDataSens(ida_mem, tcur, yyspred, ypspred, yysn, ypsn, cj, user_data) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +real(C_DOUBLE), dimension(*), target, intent(inout) :: tcur +type(C_PTR), target, intent(inout) :: yyspred +type(C_PTR), target, intent(inout) :: ypspred +type(C_PTR), target, intent(inout) :: yysn +type(C_PTR), target, intent(inout) :: ypsn +real(C_DOUBLE), dimension(*), target, intent(inout) :: cj +type(C_PTR), target, intent(inout) :: user_data +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 +type(C_PTR) :: farg4 +type(C_PTR) :: farg5 +type(C_PTR) :: farg6 +type(C_PTR) :: farg7 +type(C_PTR) :: farg8 + +farg1 = ida_mem +farg2 = c_loc(tcur(1)) +farg3 = c_loc(yyspred) +farg4 = c_loc(ypspred) +farg5 = c_loc(yysn) +farg6 = c_loc(ypsn) +farg7 = c_loc(cj(1)) +farg8 = c_loc(user_data) +fresult = swigc_FIDAGetNonlinearSystemDataSens(farg1, farg2, farg3, farg4, farg5, farg6, farg7, farg8) +swig_result = fresult +end function + +function FIDAGetNumNonlinSolvIters(ida_mem, nniters) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +integer(C_LONG), dimension(*), target, intent(inout) :: nniters +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = ida_mem +farg2 = c_loc(nniters(1)) +fresult = swigc_FIDAGetNumNonlinSolvIters(farg1, farg2) +swig_result = fresult +end function + +function FIDAGetNumNonlinSolvConvFails(ida_mem, nnfails) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +integer(C_LONG), dimension(*), target, intent(inout) :: nnfails +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = ida_mem +farg2 = c_loc(nnfails(1)) +fresult = swigc_FIDAGetNumNonlinSolvConvFails(farg1, farg2) +swig_result = fresult +end function + +function FIDAGetNonlinSolvStats(ida_mem, nniters, nnfails) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +integer(C_LONG), dimension(*), target, intent(inout) :: nniters +integer(C_LONG), dimension(*), target, intent(inout) :: nnfails +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = ida_mem +farg2 = c_loc(nniters(1)) +farg3 = c_loc(nnfails(1)) +fresult = swigc_FIDAGetNonlinSolvStats(farg1, farg2, farg3) +swig_result = fresult +end function + +function FIDAGetNumStepSolveFails(ida_mem, nncfails) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +integer(C_LONG), dimension(*), target, intent(inout) :: nncfails +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = ida_mem +farg2 = c_loc(nncfails(1)) +fresult = swigc_FIDAGetNumStepSolveFails(farg1, farg2) +swig_result = fresult +end function + +function FIDAGetUserData(ida_mem, user_data) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +type(C_PTR), target, intent(inout) :: user_data +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = ida_mem +farg2 = c_loc(user_data) +fresult = swigc_FIDAGetUserData(farg1, farg2) +swig_result = fresult +end function + +function FIDAPrintAllStats(ida_mem, outfile, fmt) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +type(C_PTR) :: outfile +integer(SUNOutputFormat), intent(in) :: fmt +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +integer(C_INT) :: farg3 + +farg1 = ida_mem +farg2 = outfile +farg3 = fmt +fresult = swigc_FIDAPrintAllStats(farg1, farg2, farg3) +swig_result = fresult +end function + + +subroutine SWIG_chararray_to_string(wrap, string) + use, intrinsic :: ISO_C_BINDING + type(SwigArrayWrapper), intent(IN) :: wrap + character(kind=C_CHAR, len=:), allocatable, intent(OUT) :: string + character(kind=C_CHAR), dimension(:), pointer :: chars + integer(kind=C_SIZE_T) :: i + call c_f_pointer(wrap%data, chars, [wrap%size]) + allocate(character(kind=C_CHAR, len=wrap%size) :: string) + do i=1, wrap%size + string(i:i) = chars(i) + end do +end subroutine + +function FIDAGetReturnFlagName(flag) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +character(kind=C_CHAR, len=:), allocatable :: swig_result +integer(C_LONG), intent(in) :: flag +type(SwigArrayWrapper) :: fresult +integer(C_LONG) :: farg1 + +farg1 = flag +fresult = swigc_FIDAGetReturnFlagName(farg1) +call SWIG_chararray_to_string(fresult, swig_result) +if (.false.) call SWIG_free(fresult%data) +end function + +subroutine FIDAFree(ida_mem) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), target, intent(inout) :: ida_mem +type(C_PTR) :: farg1 + +farg1 = c_loc(ida_mem) +call swigc_FIDAFree(farg1) +end subroutine + +function FIDASetJacTimesResFn(ida_mem, jtimesresfn) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +type(C_FUNPTR), intent(in), value :: jtimesresfn +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_FUNPTR) :: farg2 + +farg1 = ida_mem +farg2 = jtimesresfn +fresult = swigc_FIDASetJacTimesResFn(farg1, farg2) +swig_result = fresult +end function + +function FIDAQuadInit(ida_mem, rhsq, yq0) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +type(C_FUNPTR), intent(in), value :: rhsq +type(N_Vector), target, intent(inout) :: yq0 +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_FUNPTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = ida_mem +farg2 = rhsq +farg3 = c_loc(yq0) +fresult = swigc_FIDAQuadInit(farg1, farg2, farg3) +swig_result = fresult +end function + +function FIDAQuadReInit(ida_mem, yq0) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +type(N_Vector), target, intent(inout) :: yq0 +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = ida_mem +farg2 = c_loc(yq0) +fresult = swigc_FIDAQuadReInit(farg1, farg2) +swig_result = fresult +end function + +function FIDAQuadSStolerances(ida_mem, reltolq, abstolq) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +real(C_DOUBLE), intent(in) :: reltolq +real(C_DOUBLE), intent(in) :: abstolq +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 +real(C_DOUBLE) :: farg3 + +farg1 = ida_mem +farg2 = reltolq +farg3 = abstolq +fresult = swigc_FIDAQuadSStolerances(farg1, farg2, farg3) +swig_result = fresult +end function + +function FIDAQuadSVtolerances(ida_mem, reltolq, abstolq) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +real(C_DOUBLE), intent(in) :: reltolq +type(N_Vector), target, intent(inout) :: abstolq +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 +type(C_PTR) :: farg3 + +farg1 = ida_mem +farg2 = reltolq +farg3 = c_loc(abstolq) +fresult = swigc_FIDAQuadSVtolerances(farg1, farg2, farg3) +swig_result = fresult +end function + +function FIDASetQuadErrCon(ida_mem, errconq) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +integer(C_INT), intent(in) :: errconq +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = ida_mem +farg2 = errconq +fresult = swigc_FIDASetQuadErrCon(farg1, farg2) +swig_result = fresult +end function + +function FIDAGetQuad(ida_mem, t, yqout) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +real(C_DOUBLE), dimension(*), target, intent(inout) :: t +type(N_Vector), target, intent(inout) :: yqout +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = ida_mem +farg2 = c_loc(t(1)) +farg3 = c_loc(yqout) +fresult = swigc_FIDAGetQuad(farg1, farg2, farg3) +swig_result = fresult +end function + +function FIDAGetQuadDky(ida_mem, t, k, dky) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +real(C_DOUBLE), intent(in) :: t +integer(C_INT), intent(in) :: k +type(N_Vector), target, intent(inout) :: dky +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 +integer(C_INT) :: farg3 +type(C_PTR) :: farg4 + +farg1 = ida_mem +farg2 = t +farg3 = k +farg4 = c_loc(dky) +fresult = swigc_FIDAGetQuadDky(farg1, farg2, farg3, farg4) +swig_result = fresult +end function + +function FIDAGetQuadNumRhsEvals(ida_mem, nrhsqevals) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +integer(C_LONG), dimension(*), target, intent(inout) :: nrhsqevals +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = ida_mem +farg2 = c_loc(nrhsqevals(1)) +fresult = swigc_FIDAGetQuadNumRhsEvals(farg1, farg2) +swig_result = fresult +end function + +function FIDAGetQuadNumErrTestFails(ida_mem, nqetfails) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +integer(C_LONG), dimension(*), target, intent(inout) :: nqetfails +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = ida_mem +farg2 = c_loc(nqetfails(1)) +fresult = swigc_FIDAGetQuadNumErrTestFails(farg1, farg2) +swig_result = fresult +end function + +function FIDAGetQuadErrWeights(ida_mem, eqweight) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +type(N_Vector), target, intent(inout) :: eqweight +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = ida_mem +farg2 = c_loc(eqweight) +fresult = swigc_FIDAGetQuadErrWeights(farg1, farg2) +swig_result = fresult +end function + +function FIDAGetQuadStats(ida_mem, nrhsqevals, nqetfails) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +integer(C_LONG), dimension(*), target, intent(inout) :: nrhsqevals +integer(C_LONG), dimension(*), target, intent(inout) :: nqetfails +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = ida_mem +farg2 = c_loc(nrhsqevals(1)) +farg3 = c_loc(nqetfails(1)) +fresult = swigc_FIDAGetQuadStats(farg1, farg2, farg3) +swig_result = fresult +end function + +subroutine FIDAQuadFree(ida_mem) +use, intrinsic :: ISO_C_BINDING +type(C_PTR) :: ida_mem +type(C_PTR) :: farg1 + +farg1 = ida_mem +call swigc_FIDAQuadFree(farg1) +end subroutine + +function FIDASensInit(ida_mem, ns, ism, ress, ys0, yps0) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +integer(C_INT), intent(in) :: ns +integer(C_INT), intent(in) :: ism +type(C_FUNPTR), intent(in), value :: ress +type(C_PTR) :: ys0 +type(C_PTR) :: yps0 +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 +integer(C_INT) :: farg3 +type(C_FUNPTR) :: farg4 +type(C_PTR) :: farg5 +type(C_PTR) :: farg6 + +farg1 = ida_mem +farg2 = ns +farg3 = ism +farg4 = ress +farg5 = ys0 +farg6 = yps0 +fresult = swigc_FIDASensInit(farg1, farg2, farg3, farg4, farg5, farg6) +swig_result = fresult +end function + +function FIDASensReInit(ida_mem, ism, ys0, yps0) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +integer(C_INT), intent(in) :: ism +type(C_PTR) :: ys0 +type(C_PTR) :: yps0 +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 +type(C_PTR) :: farg3 +type(C_PTR) :: farg4 + +farg1 = ida_mem +farg2 = ism +farg3 = ys0 +farg4 = yps0 +fresult = swigc_FIDASensReInit(farg1, farg2, farg3, farg4) +swig_result = fresult +end function + +function FIDASensSStolerances(ida_mem, reltols, abstols) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +real(C_DOUBLE), intent(in) :: reltols +real(C_DOUBLE), dimension(*), target, intent(inout) :: abstols +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 +type(C_PTR) :: farg3 + +farg1 = ida_mem +farg2 = reltols +farg3 = c_loc(abstols(1)) +fresult = swigc_FIDASensSStolerances(farg1, farg2, farg3) +swig_result = fresult +end function + +function FIDASensSVtolerances(ida_mem, reltols, abstols) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +real(C_DOUBLE), intent(in) :: reltols +type(C_PTR) :: abstols +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 +type(C_PTR) :: farg3 + +farg1 = ida_mem +farg2 = reltols +farg3 = abstols +fresult = swigc_FIDASensSVtolerances(farg1, farg2, farg3) +swig_result = fresult +end function + +function FIDASensEEtolerances(ida_mem) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +integer(C_INT) :: fresult +type(C_PTR) :: farg1 + +farg1 = ida_mem +fresult = swigc_FIDASensEEtolerances(farg1) +swig_result = fresult +end function + +function FIDAGetSensConsistentIC(ida_mem, yys0, yps0) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +type(C_PTR) :: yys0 +type(C_PTR) :: yps0 +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = ida_mem +farg2 = yys0 +farg3 = yps0 +fresult = swigc_FIDAGetSensConsistentIC(farg1, farg2, farg3) +swig_result = fresult +end function + +function FIDASetSensDQMethod(ida_mem, dqtype, dqrhomax) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +integer(C_INT), intent(in) :: dqtype +real(C_DOUBLE), intent(in) :: dqrhomax +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 +real(C_DOUBLE) :: farg3 + +farg1 = ida_mem +farg2 = dqtype +farg3 = dqrhomax +fresult = swigc_FIDASetSensDQMethod(farg1, farg2, farg3) +swig_result = fresult +end function + +function FIDASetSensErrCon(ida_mem, errcons) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +integer(C_INT), intent(in) :: errcons +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = ida_mem +farg2 = errcons +fresult = swigc_FIDASetSensErrCon(farg1, farg2) +swig_result = fresult +end function + +function FIDASetSensMaxNonlinIters(ida_mem, maxcors) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +integer(C_INT), intent(in) :: maxcors +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = ida_mem +farg2 = maxcors +fresult = swigc_FIDASetSensMaxNonlinIters(farg1, farg2) +swig_result = fresult +end function + +function FIDASetSensParams(ida_mem, p, pbar, plist) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +real(C_DOUBLE), dimension(*), target, intent(inout) :: p +real(C_DOUBLE), dimension(*), target, intent(inout) :: pbar +integer(C_INT), dimension(*), target, intent(inout) :: plist +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 +type(C_PTR) :: farg4 + +farg1 = ida_mem +farg2 = c_loc(p(1)) +farg3 = c_loc(pbar(1)) +farg4 = c_loc(plist(1)) +fresult = swigc_FIDASetSensParams(farg1, farg2, farg3, farg4) +swig_result = fresult +end function + +function FIDASetNonlinearSolverSensSim(ida_mem, nls) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +type(SUNNonlinearSolver), target, intent(inout) :: nls +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = ida_mem +farg2 = c_loc(nls) +fresult = swigc_FIDASetNonlinearSolverSensSim(farg1, farg2) +swig_result = fresult +end function + +function FIDASetNonlinearSolverSensStg(ida_mem, nls) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +type(SUNNonlinearSolver), target, intent(inout) :: nls +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = ida_mem +farg2 = c_loc(nls) +fresult = swigc_FIDASetNonlinearSolverSensStg(farg1, farg2) +swig_result = fresult +end function + +function FIDASensToggleOff(ida_mem) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +integer(C_INT) :: fresult +type(C_PTR) :: farg1 + +farg1 = ida_mem +fresult = swigc_FIDASensToggleOff(farg1) +swig_result = fresult +end function + +function FIDAGetSens(ida_mem, tret, yysout) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +real(C_DOUBLE), dimension(*), target, intent(inout) :: tret +type(C_PTR) :: yysout +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = ida_mem +farg2 = c_loc(tret(1)) +farg3 = yysout +fresult = swigc_FIDAGetSens(farg1, farg2, farg3) +swig_result = fresult +end function + +function FIDAGetSens1(ida_mem, tret, is, yysret) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +real(C_DOUBLE), dimension(*), target, intent(inout) :: tret +integer(C_INT), intent(in) :: is +type(N_Vector), target, intent(inout) :: yysret +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +integer(C_INT) :: farg3 +type(C_PTR) :: farg4 + +farg1 = ida_mem +farg2 = c_loc(tret(1)) +farg3 = is +farg4 = c_loc(yysret) +fresult = swigc_FIDAGetSens1(farg1, farg2, farg3, farg4) +swig_result = fresult +end function + +function FIDAGetSensDky(ida_mem, t, k, dkys) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +real(C_DOUBLE), intent(in) :: t +integer(C_INT), intent(in) :: k +type(C_PTR) :: dkys +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 +integer(C_INT) :: farg3 +type(C_PTR) :: farg4 + +farg1 = ida_mem +farg2 = t +farg3 = k +farg4 = dkys +fresult = swigc_FIDAGetSensDky(farg1, farg2, farg3, farg4) +swig_result = fresult +end function + +function FIDAGetSensDky1(ida_mem, t, k, is, dkys) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +real(C_DOUBLE), intent(in) :: t +integer(C_INT), intent(in) :: k +integer(C_INT), intent(in) :: is +type(N_Vector), target, intent(inout) :: dkys +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 +integer(C_INT) :: farg3 +integer(C_INT) :: farg4 +type(C_PTR) :: farg5 + +farg1 = ida_mem +farg2 = t +farg3 = k +farg4 = is +farg5 = c_loc(dkys) +fresult = swigc_FIDAGetSensDky1(farg1, farg2, farg3, farg4, farg5) +swig_result = fresult +end function + +function FIDAGetSensNumResEvals(ida_mem, nressevals) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +integer(C_LONG), dimension(*), target, intent(inout) :: nressevals +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = ida_mem +farg2 = c_loc(nressevals(1)) +fresult = swigc_FIDAGetSensNumResEvals(farg1, farg2) +swig_result = fresult +end function + +function FIDAGetNumResEvalsSens(ida_mem, nresevalss) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +integer(C_LONG), dimension(*), target, intent(inout) :: nresevalss +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = ida_mem +farg2 = c_loc(nresevalss(1)) +fresult = swigc_FIDAGetNumResEvalsSens(farg1, farg2) +swig_result = fresult +end function + +function FIDAGetSensNumErrTestFails(ida_mem, nsetfails) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +integer(C_LONG), dimension(*), target, intent(inout) :: nsetfails +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = ida_mem +farg2 = c_loc(nsetfails(1)) +fresult = swigc_FIDAGetSensNumErrTestFails(farg1, farg2) +swig_result = fresult +end function + +function FIDAGetSensNumLinSolvSetups(ida_mem, nlinsetupss) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +integer(C_LONG), dimension(*), target, intent(inout) :: nlinsetupss +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = ida_mem +farg2 = c_loc(nlinsetupss(1)) +fresult = swigc_FIDAGetSensNumLinSolvSetups(farg1, farg2) +swig_result = fresult +end function + +function FIDAGetSensErrWeights(ida_mem, esweight) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +type(C_PTR) :: esweight +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = ida_mem +farg2 = esweight +fresult = swigc_FIDAGetSensErrWeights(farg1, farg2) +swig_result = fresult +end function + +function FIDAGetSensStats(ida_mem, nressevals, nresevalss, nsetfails, nlinsetupss) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +integer(C_LONG), dimension(*), target, intent(inout) :: nressevals +integer(C_LONG), dimension(*), target, intent(inout) :: nresevalss +integer(C_LONG), dimension(*), target, intent(inout) :: nsetfails +integer(C_LONG), dimension(*), target, intent(inout) :: nlinsetupss +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 +type(C_PTR) :: farg4 +type(C_PTR) :: farg5 + +farg1 = ida_mem +farg2 = c_loc(nressevals(1)) +farg3 = c_loc(nresevalss(1)) +farg4 = c_loc(nsetfails(1)) +farg5 = c_loc(nlinsetupss(1)) +fresult = swigc_FIDAGetSensStats(farg1, farg2, farg3, farg4, farg5) +swig_result = fresult +end function + +function FIDAGetSensNumNonlinSolvIters(ida_mem, nsniters) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +integer(C_LONG), dimension(*), target, intent(inout) :: nsniters +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = ida_mem +farg2 = c_loc(nsniters(1)) +fresult = swigc_FIDAGetSensNumNonlinSolvIters(farg1, farg2) +swig_result = fresult +end function + +function FIDAGetSensNumNonlinSolvConvFails(ida_mem, nsnfails) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +integer(C_LONG), dimension(*), target, intent(inout) :: nsnfails +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = ida_mem +farg2 = c_loc(nsnfails(1)) +fresult = swigc_FIDAGetSensNumNonlinSolvConvFails(farg1, farg2) +swig_result = fresult +end function + +function FIDAGetSensNonlinSolvStats(ida_mem, nsniters, nsnfails) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +integer(C_LONG), dimension(*), target, intent(inout) :: nsniters +integer(C_LONG), dimension(*), target, intent(inout) :: nsnfails +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = ida_mem +farg2 = c_loc(nsniters(1)) +farg3 = c_loc(nsnfails(1)) +fresult = swigc_FIDAGetSensNonlinSolvStats(farg1, farg2, farg3) +swig_result = fresult +end function + +function FIDAGetNumStepSensSolveFails(ida_mem, nsncfails) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +integer(C_LONG), dimension(*), target, intent(inout) :: nsncfails +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = ida_mem +farg2 = c_loc(nsncfails(1)) +fresult = swigc_FIDAGetNumStepSensSolveFails(farg1, farg2) +swig_result = fresult +end function + +subroutine FIDASensFree(ida_mem) +use, intrinsic :: ISO_C_BINDING +type(C_PTR) :: ida_mem +type(C_PTR) :: farg1 + +farg1 = ida_mem +call swigc_FIDASensFree(farg1) +end subroutine + +function FIDAQuadSensInit(ida_mem, resqs, yqs0) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +type(C_FUNPTR), intent(in), value :: resqs +type(C_PTR) :: yqs0 +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_FUNPTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = ida_mem +farg2 = resqs +farg3 = yqs0 +fresult = swigc_FIDAQuadSensInit(farg1, farg2, farg3) +swig_result = fresult +end function + +function FIDAQuadSensReInit(ida_mem, yqs0) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +type(C_PTR) :: yqs0 +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = ida_mem +farg2 = yqs0 +fresult = swigc_FIDAQuadSensReInit(farg1, farg2) +swig_result = fresult +end function + +function FIDAQuadSensSStolerances(ida_mem, reltolqs, abstolqs) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +real(C_DOUBLE), intent(in) :: reltolqs +real(C_DOUBLE), dimension(*), target, intent(inout) :: abstolqs +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 +type(C_PTR) :: farg3 + +farg1 = ida_mem +farg2 = reltolqs +farg3 = c_loc(abstolqs(1)) +fresult = swigc_FIDAQuadSensSStolerances(farg1, farg2, farg3) +swig_result = fresult +end function + +function FIDAQuadSensSVtolerances(ida_mem, reltolqs, abstolqs) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +real(C_DOUBLE), intent(in) :: reltolqs +type(C_PTR) :: abstolqs +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 +type(C_PTR) :: farg3 + +farg1 = ida_mem +farg2 = reltolqs +farg3 = abstolqs +fresult = swigc_FIDAQuadSensSVtolerances(farg1, farg2, farg3) +swig_result = fresult +end function + +function FIDAQuadSensEEtolerances(ida_mem) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +integer(C_INT) :: fresult +type(C_PTR) :: farg1 + +farg1 = ida_mem +fresult = swigc_FIDAQuadSensEEtolerances(farg1) +swig_result = fresult +end function + +function FIDASetQuadSensErrCon(ida_mem, errconqs) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +integer(C_INT), intent(in) :: errconqs +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = ida_mem +farg2 = errconqs +fresult = swigc_FIDASetQuadSensErrCon(farg1, farg2) +swig_result = fresult +end function + +function FIDAGetQuadSens(ida_mem, tret, yyqsout) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +real(C_DOUBLE), dimension(*), target, intent(inout) :: tret +type(C_PTR) :: yyqsout +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = ida_mem +farg2 = c_loc(tret(1)) +farg3 = yyqsout +fresult = swigc_FIDAGetQuadSens(farg1, farg2, farg3) +swig_result = fresult +end function + +function FIDAGetQuadSens1(ida_mem, tret, is, yyqsret) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +real(C_DOUBLE), dimension(*), target, intent(inout) :: tret +integer(C_INT), intent(in) :: is +type(N_Vector), target, intent(inout) :: yyqsret +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +integer(C_INT) :: farg3 +type(C_PTR) :: farg4 + +farg1 = ida_mem +farg2 = c_loc(tret(1)) +farg3 = is +farg4 = c_loc(yyqsret) +fresult = swigc_FIDAGetQuadSens1(farg1, farg2, farg3, farg4) +swig_result = fresult +end function + +function FIDAGetQuadSensDky(ida_mem, t, k, dkyqs) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +real(C_DOUBLE), intent(in) :: t +integer(C_INT), intent(in) :: k +type(C_PTR) :: dkyqs +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 +integer(C_INT) :: farg3 +type(C_PTR) :: farg4 + +farg1 = ida_mem +farg2 = t +farg3 = k +farg4 = dkyqs +fresult = swigc_FIDAGetQuadSensDky(farg1, farg2, farg3, farg4) +swig_result = fresult +end function + +function FIDAGetQuadSensDky1(ida_mem, t, k, is, dkyqs) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +real(C_DOUBLE), intent(in) :: t +integer(C_INT), intent(in) :: k +integer(C_INT), intent(in) :: is +type(N_Vector), target, intent(inout) :: dkyqs +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 +integer(C_INT) :: farg3 +integer(C_INT) :: farg4 +type(C_PTR) :: farg5 + +farg1 = ida_mem +farg2 = t +farg3 = k +farg4 = is +farg5 = c_loc(dkyqs) +fresult = swigc_FIDAGetQuadSensDky1(farg1, farg2, farg3, farg4, farg5) +swig_result = fresult +end function + +function FIDAGetQuadSensNumRhsEvals(ida_mem, nrhsqsevals) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +integer(C_LONG), dimension(*), target, intent(inout) :: nrhsqsevals +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = ida_mem +farg2 = c_loc(nrhsqsevals(1)) +fresult = swigc_FIDAGetQuadSensNumRhsEvals(farg1, farg2) +swig_result = fresult +end function + +function FIDAGetQuadSensNumErrTestFails(ida_mem, nqsetfails) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +integer(C_LONG), dimension(*), target, intent(inout) :: nqsetfails +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = ida_mem +farg2 = c_loc(nqsetfails(1)) +fresult = swigc_FIDAGetQuadSensNumErrTestFails(farg1, farg2) +swig_result = fresult +end function + +function FIDAGetQuadSensErrWeights(ida_mem, eqsweight) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +type(C_PTR) :: eqsweight +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = ida_mem +farg2 = eqsweight +fresult = swigc_FIDAGetQuadSensErrWeights(farg1, farg2) +swig_result = fresult +end function + +function FIDAGetQuadSensStats(ida_mem, nrhsqsevals, nqsetfails) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +integer(C_LONG), dimension(*), target, intent(inout) :: nrhsqsevals +integer(C_LONG), dimension(*), target, intent(inout) :: nqsetfails +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = ida_mem +farg2 = c_loc(nrhsqsevals(1)) +farg3 = c_loc(nqsetfails(1)) +fresult = swigc_FIDAGetQuadSensStats(farg1, farg2, farg3) +swig_result = fresult +end function + +subroutine FIDAQuadSensFree(ida_mem) +use, intrinsic :: ISO_C_BINDING +type(C_PTR) :: ida_mem +type(C_PTR) :: farg1 + +farg1 = ida_mem +call swigc_FIDAQuadSensFree(farg1) +end subroutine + +function FIDAAdjInit(ida_mem, steps, interp) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +integer(C_LONG), intent(in) :: steps +integer(C_INT), intent(in) :: interp +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_LONG) :: farg2 +integer(C_INT) :: farg3 + +farg1 = ida_mem +farg2 = steps +farg3 = interp +fresult = swigc_FIDAAdjInit(farg1, farg2, farg3) +swig_result = fresult +end function + +function FIDAAdjReInit(ida_mem) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +integer(C_INT) :: fresult +type(C_PTR) :: farg1 + +farg1 = ida_mem +fresult = swigc_FIDAAdjReInit(farg1) +swig_result = fresult +end function + +subroutine FIDAAdjFree(ida_mem) +use, intrinsic :: ISO_C_BINDING +type(C_PTR) :: ida_mem +type(C_PTR) :: farg1 + +farg1 = ida_mem +call swigc_FIDAAdjFree(farg1) +end subroutine + +function FIDACreateB(ida_mem, which) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +integer(C_INT), dimension(*), target, intent(inout) :: which +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = ida_mem +farg2 = c_loc(which(1)) +fresult = swigc_FIDACreateB(farg1, farg2) +swig_result = fresult +end function + +function FIDAInitB(ida_mem, which, resb, tb0, yyb0, ypb0) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +integer(C_INT), intent(in) :: which +type(C_FUNPTR), intent(in), value :: resb +real(C_DOUBLE), intent(in) :: tb0 +type(N_Vector), target, intent(inout) :: yyb0 +type(N_Vector), target, intent(inout) :: ypb0 +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 +type(C_FUNPTR) :: farg3 +real(C_DOUBLE) :: farg4 +type(C_PTR) :: farg5 +type(C_PTR) :: farg6 + +farg1 = ida_mem +farg2 = which +farg3 = resb +farg4 = tb0 +farg5 = c_loc(yyb0) +farg6 = c_loc(ypb0) +fresult = swigc_FIDAInitB(farg1, farg2, farg3, farg4, farg5, farg6) +swig_result = fresult +end function + +function FIDAInitBS(ida_mem, which, ress, tb0, yyb0, ypb0) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +integer(C_INT), intent(in) :: which +type(C_FUNPTR), intent(in), value :: ress +real(C_DOUBLE), intent(in) :: tb0 +type(N_Vector), target, intent(inout) :: yyb0 +type(N_Vector), target, intent(inout) :: ypb0 +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 +type(C_FUNPTR) :: farg3 +real(C_DOUBLE) :: farg4 +type(C_PTR) :: farg5 +type(C_PTR) :: farg6 + +farg1 = ida_mem +farg2 = which +farg3 = ress +farg4 = tb0 +farg5 = c_loc(yyb0) +farg6 = c_loc(ypb0) +fresult = swigc_FIDAInitBS(farg1, farg2, farg3, farg4, farg5, farg6) +swig_result = fresult +end function + +function FIDAReInitB(ida_mem, which, tb0, yyb0, ypb0) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +integer(C_INT), intent(in) :: which +real(C_DOUBLE), intent(in) :: tb0 +type(N_Vector), target, intent(inout) :: yyb0 +type(N_Vector), target, intent(inout) :: ypb0 +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 +real(C_DOUBLE) :: farg3 +type(C_PTR) :: farg4 +type(C_PTR) :: farg5 + +farg1 = ida_mem +farg2 = which +farg3 = tb0 +farg4 = c_loc(yyb0) +farg5 = c_loc(ypb0) +fresult = swigc_FIDAReInitB(farg1, farg2, farg3, farg4, farg5) +swig_result = fresult +end function + +function FIDASStolerancesB(ida_mem, which, reltolb, abstolb) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +integer(C_INT), intent(in) :: which +real(C_DOUBLE), intent(in) :: reltolb +real(C_DOUBLE), intent(in) :: abstolb +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 +real(C_DOUBLE) :: farg3 +real(C_DOUBLE) :: farg4 + +farg1 = ida_mem +farg2 = which +farg3 = reltolb +farg4 = abstolb +fresult = swigc_FIDASStolerancesB(farg1, farg2, farg3, farg4) +swig_result = fresult +end function + +function FIDASVtolerancesB(ida_mem, which, reltolb, abstolb) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +integer(C_INT), intent(in) :: which +real(C_DOUBLE), intent(in) :: reltolb +type(N_Vector), target, intent(inout) :: abstolb +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 +real(C_DOUBLE) :: farg3 +type(C_PTR) :: farg4 + +farg1 = ida_mem +farg2 = which +farg3 = reltolb +farg4 = c_loc(abstolb) +fresult = swigc_FIDASVtolerancesB(farg1, farg2, farg3, farg4) +swig_result = fresult +end function + +function FIDAQuadInitB(ida_mem, which, rhsqb, yqb0) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +integer(C_INT), intent(in) :: which +type(C_FUNPTR), intent(in), value :: rhsqb +type(N_Vector), target, intent(inout) :: yqb0 +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 +type(C_FUNPTR) :: farg3 +type(C_PTR) :: farg4 + +farg1 = ida_mem +farg2 = which +farg3 = rhsqb +farg4 = c_loc(yqb0) +fresult = swigc_FIDAQuadInitB(farg1, farg2, farg3, farg4) +swig_result = fresult +end function + +function FIDAQuadInitBS(ida_mem, which, rhsqs, yqb0) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +integer(C_INT), intent(in) :: which +type(C_FUNPTR), intent(in), value :: rhsqs +type(N_Vector), target, intent(inout) :: yqb0 +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 +type(C_FUNPTR) :: farg3 +type(C_PTR) :: farg4 + +farg1 = ida_mem +farg2 = which +farg3 = rhsqs +farg4 = c_loc(yqb0) +fresult = swigc_FIDAQuadInitBS(farg1, farg2, farg3, farg4) +swig_result = fresult +end function + +function FIDAQuadReInitB(ida_mem, which, yqb0) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +integer(C_INT), intent(in) :: which +type(N_Vector), target, intent(inout) :: yqb0 +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 +type(C_PTR) :: farg3 + +farg1 = ida_mem +farg2 = which +farg3 = c_loc(yqb0) +fresult = swigc_FIDAQuadReInitB(farg1, farg2, farg3) +swig_result = fresult +end function + +function FIDAQuadSStolerancesB(ida_mem, which, reltolqb, abstolqb) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +integer(C_INT), intent(in) :: which +real(C_DOUBLE), intent(in) :: reltolqb +real(C_DOUBLE), intent(in) :: abstolqb +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 +real(C_DOUBLE) :: farg3 +real(C_DOUBLE) :: farg4 + +farg1 = ida_mem +farg2 = which +farg3 = reltolqb +farg4 = abstolqb +fresult = swigc_FIDAQuadSStolerancesB(farg1, farg2, farg3, farg4) +swig_result = fresult +end function + +function FIDAQuadSVtolerancesB(ida_mem, which, reltolqb, abstolqb) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +integer(C_INT), intent(in) :: which +real(C_DOUBLE), intent(in) :: reltolqb +type(N_Vector), target, intent(inout) :: abstolqb +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 +real(C_DOUBLE) :: farg3 +type(C_PTR) :: farg4 + +farg1 = ida_mem +farg2 = which +farg3 = reltolqb +farg4 = c_loc(abstolqb) +fresult = swigc_FIDAQuadSVtolerancesB(farg1, farg2, farg3, farg4) +swig_result = fresult +end function + +function FIDACalcICB(ida_mem, which, tout1, yy0, yp0) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +integer(C_INT), intent(in) :: which +real(C_DOUBLE), intent(in) :: tout1 +type(N_Vector), target, intent(inout) :: yy0 +type(N_Vector), target, intent(inout) :: yp0 +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 +real(C_DOUBLE) :: farg3 +type(C_PTR) :: farg4 +type(C_PTR) :: farg5 + +farg1 = ida_mem +farg2 = which +farg3 = tout1 +farg4 = c_loc(yy0) +farg5 = c_loc(yp0) +fresult = swigc_FIDACalcICB(farg1, farg2, farg3, farg4, farg5) +swig_result = fresult +end function + +function FIDACalcICBS(ida_mem, which, tout1, yy0, yp0, yys0, yps0) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +integer(C_INT), intent(in) :: which +real(C_DOUBLE), intent(in) :: tout1 +type(N_Vector), target, intent(inout) :: yy0 +type(N_Vector), target, intent(inout) :: yp0 +type(C_PTR) :: yys0 +type(C_PTR) :: yps0 +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 +real(C_DOUBLE) :: farg3 +type(C_PTR) :: farg4 +type(C_PTR) :: farg5 +type(C_PTR) :: farg6 +type(C_PTR) :: farg7 + +farg1 = ida_mem +farg2 = which +farg3 = tout1 +farg4 = c_loc(yy0) +farg5 = c_loc(yp0) +farg6 = yys0 +farg7 = yps0 +fresult = swigc_FIDACalcICBS(farg1, farg2, farg3, farg4, farg5, farg6, farg7) +swig_result = fresult +end function + +function FIDASolveF(ida_mem, tout, tret, yret, ypret, itask, ncheckptr) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +real(C_DOUBLE), intent(in) :: tout +real(C_DOUBLE), dimension(*), target, intent(inout) :: tret +type(N_Vector), target, intent(inout) :: yret +type(N_Vector), target, intent(inout) :: ypret +integer(C_INT), intent(in) :: itask +integer(C_INT), dimension(*), target, intent(inout) :: ncheckptr +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 +type(C_PTR) :: farg3 +type(C_PTR) :: farg4 +type(C_PTR) :: farg5 +integer(C_INT) :: farg6 +type(C_PTR) :: farg7 + +farg1 = ida_mem +farg2 = tout +farg3 = c_loc(tret(1)) +farg4 = c_loc(yret) +farg5 = c_loc(ypret) +farg6 = itask +farg7 = c_loc(ncheckptr(1)) +fresult = swigc_FIDASolveF(farg1, farg2, farg3, farg4, farg5, farg6, farg7) +swig_result = fresult +end function + +function FIDASolveB(ida_mem, tbout, itaskb) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +real(C_DOUBLE), intent(in) :: tbout +integer(C_INT), intent(in) :: itaskb +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 +integer(C_INT) :: farg3 + +farg1 = ida_mem +farg2 = tbout +farg3 = itaskb +fresult = swigc_FIDASolveB(farg1, farg2, farg3) +swig_result = fresult +end function + +function FIDAAdjSetNoSensi(ida_mem) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +integer(C_INT) :: fresult +type(C_PTR) :: farg1 + +farg1 = ida_mem +fresult = swigc_FIDAAdjSetNoSensi(farg1) +swig_result = fresult +end function + +function FIDASetUserDataB(ida_mem, which, user_datab) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +integer(C_INT), intent(in) :: which +type(C_PTR) :: user_datab +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 +type(C_PTR) :: farg3 + +farg1 = ida_mem +farg2 = which +farg3 = user_datab +fresult = swigc_FIDASetUserDataB(farg1, farg2, farg3) +swig_result = fresult +end function + +function FIDASetMaxOrdB(ida_mem, which, maxordb) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +integer(C_INT), intent(in) :: which +integer(C_INT), intent(in) :: maxordb +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 +integer(C_INT) :: farg3 + +farg1 = ida_mem +farg2 = which +farg3 = maxordb +fresult = swigc_FIDASetMaxOrdB(farg1, farg2, farg3) +swig_result = fresult +end function + +function FIDASetMaxNumStepsB(ida_mem, which, mxstepsb) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +integer(C_INT), intent(in) :: which +integer(C_LONG), intent(in) :: mxstepsb +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 +integer(C_LONG) :: farg3 + +farg1 = ida_mem +farg2 = which +farg3 = mxstepsb +fresult = swigc_FIDASetMaxNumStepsB(farg1, farg2, farg3) +swig_result = fresult +end function + +function FIDASetInitStepB(ida_mem, which, hinb) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +integer(C_INT), intent(in) :: which +real(C_DOUBLE), intent(in) :: hinb +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 +real(C_DOUBLE) :: farg3 + +farg1 = ida_mem +farg2 = which +farg3 = hinb +fresult = swigc_FIDASetInitStepB(farg1, farg2, farg3) +swig_result = fresult +end function + +function FIDASetMaxStepB(ida_mem, which, hmaxb) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +integer(C_INT), intent(in) :: which +real(C_DOUBLE), intent(in) :: hmaxb +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 +real(C_DOUBLE) :: farg3 + +farg1 = ida_mem +farg2 = which +farg3 = hmaxb +fresult = swigc_FIDASetMaxStepB(farg1, farg2, farg3) +swig_result = fresult +end function + +function FIDASetSuppressAlgB(ida_mem, which, suppressalgb) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +integer(C_INT), intent(in) :: which +integer(C_INT), intent(in) :: suppressalgb +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 +integer(C_INT) :: farg3 + +farg1 = ida_mem +farg2 = which +farg3 = suppressalgb +fresult = swigc_FIDASetSuppressAlgB(farg1, farg2, farg3) +swig_result = fresult +end function + +function FIDASetIdB(ida_mem, which, idb) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +integer(C_INT), intent(in) :: which +type(N_Vector), target, intent(inout) :: idb +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 +type(C_PTR) :: farg3 + +farg1 = ida_mem +farg2 = which +farg3 = c_loc(idb) +fresult = swigc_FIDASetIdB(farg1, farg2, farg3) +swig_result = fresult +end function + +function FIDASetConstraintsB(ida_mem, which, constraintsb) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +integer(C_INT), intent(in) :: which +type(N_Vector), target, intent(inout) :: constraintsb +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 +type(C_PTR) :: farg3 + +farg1 = ida_mem +farg2 = which +farg3 = c_loc(constraintsb) +fresult = swigc_FIDASetConstraintsB(farg1, farg2, farg3) +swig_result = fresult +end function + +function FIDASetQuadErrConB(ida_mem, which, errconqb) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +integer(C_INT), intent(in) :: which +integer(C_INT), intent(in) :: errconqb +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 +integer(C_INT) :: farg3 + +farg1 = ida_mem +farg2 = which +farg3 = errconqb +fresult = swigc_FIDASetQuadErrConB(farg1, farg2, farg3) +swig_result = fresult +end function + +function FIDASetNonlinearSolverB(ida_mem, which, nls) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +integer(C_INT), intent(in) :: which +type(SUNNonlinearSolver), target, intent(inout) :: nls +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 +type(C_PTR) :: farg3 + +farg1 = ida_mem +farg2 = which +farg3 = c_loc(nls) +fresult = swigc_FIDASetNonlinearSolverB(farg1, farg2, farg3) +swig_result = fresult +end function + +function FIDAGetB(ida_mem, which, tret, yy, yp) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +integer(C_INT), intent(in) :: which +real(C_DOUBLE), dimension(*), target, intent(inout) :: tret +type(N_Vector), target, intent(inout) :: yy +type(N_Vector), target, intent(inout) :: yp +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 +type(C_PTR) :: farg3 +type(C_PTR) :: farg4 +type(C_PTR) :: farg5 + +farg1 = ida_mem +farg2 = which +farg3 = c_loc(tret(1)) +farg4 = c_loc(yy) +farg5 = c_loc(yp) +fresult = swigc_FIDAGetB(farg1, farg2, farg3, farg4, farg5) +swig_result = fresult +end function + +function FIDAGetQuadB(ida_mem, which, tret, qb) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +integer(C_INT), intent(in) :: which +real(C_DOUBLE), dimension(*), target, intent(inout) :: tret +type(N_Vector), target, intent(inout) :: qb +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 +type(C_PTR) :: farg3 +type(C_PTR) :: farg4 + +farg1 = ida_mem +farg2 = which +farg3 = c_loc(tret(1)) +farg4 = c_loc(qb) +fresult = swigc_FIDAGetQuadB(farg1, farg2, farg3, farg4) +swig_result = fresult +end function + +function FIDAGetAdjIDABmem(ida_mem, which) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +type(C_PTR) :: swig_result +type(C_PTR) :: ida_mem +integer(C_INT), intent(in) :: which +type(C_PTR) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = ida_mem +farg2 = which +fresult = swigc_FIDAGetAdjIDABmem(farg1, farg2) +swig_result = fresult +end function + +function FIDAGetConsistentICB(ida_mem, which, yyb0, ypb0) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +integer(C_INT), intent(in) :: which +type(N_Vector), target, intent(inout) :: yyb0 +type(N_Vector), target, intent(inout) :: ypb0 +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 +type(C_PTR) :: farg3 +type(C_PTR) :: farg4 + +farg1 = ida_mem +farg2 = which +farg3 = c_loc(yyb0) +farg4 = c_loc(ypb0) +fresult = swigc_FIDAGetConsistentICB(farg1, farg2, farg3, farg4) +swig_result = fresult +end function + +function FIDAGetAdjY(ida_mem, t, yy, yp) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +real(C_DOUBLE), intent(in) :: t +type(N_Vector), target, intent(inout) :: yy +type(N_Vector), target, intent(inout) :: yp +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 +type(C_PTR) :: farg3 +type(C_PTR) :: farg4 + +farg1 = ida_mem +farg2 = t +farg3 = c_loc(yy) +farg4 = c_loc(yp) +fresult = swigc_FIDAGetAdjY(farg1, farg2, farg3, farg4) +swig_result = fresult +end function + +subroutine swigf_IDAadjCheckPointRec_my_addr_set(self, my_addr) +use, intrinsic :: ISO_C_BINDING +class(IDAadjCheckPointRec), intent(in) :: self +type(C_PTR) :: my_addr +type(SwigClassWrapper) :: farg1 +type(C_PTR) :: farg2 + +farg1 = self%swigdata +farg2 = my_addr +call swigc_IDAadjCheckPointRec_my_addr_set(farg1, farg2) +end subroutine + +function swigf_IDAadjCheckPointRec_my_addr_get(self) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +type(C_PTR) :: swig_result +class(IDAadjCheckPointRec), intent(in) :: self +type(C_PTR) :: fresult +type(SwigClassWrapper) :: farg1 + +farg1 = self%swigdata +fresult = swigc_IDAadjCheckPointRec_my_addr_get(farg1) +swig_result = fresult +end function + +subroutine swigf_IDAadjCheckPointRec_next_addr_set(self, next_addr) +use, intrinsic :: ISO_C_BINDING +class(IDAadjCheckPointRec), intent(in) :: self +type(C_PTR) :: next_addr +type(SwigClassWrapper) :: farg1 +type(C_PTR) :: farg2 + +farg1 = self%swigdata +farg2 = next_addr +call swigc_IDAadjCheckPointRec_next_addr_set(farg1, farg2) +end subroutine + +function swigf_IDAadjCheckPointRec_next_addr_get(self) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +type(C_PTR) :: swig_result +class(IDAadjCheckPointRec), intent(in) :: self +type(C_PTR) :: fresult +type(SwigClassWrapper) :: farg1 + +farg1 = self%swigdata +fresult = swigc_IDAadjCheckPointRec_next_addr_get(farg1) +swig_result = fresult +end function + +subroutine swigf_IDAadjCheckPointRec_t0_set(self, t0) +use, intrinsic :: ISO_C_BINDING +class(IDAadjCheckPointRec), intent(in) :: self +real(C_DOUBLE), intent(in) :: t0 +type(SwigClassWrapper) :: farg1 +real(C_DOUBLE) :: farg2 + +farg1 = self%swigdata +farg2 = t0 +call swigc_IDAadjCheckPointRec_t0_set(farg1, farg2) +end subroutine + +function swigf_IDAadjCheckPointRec_t0_get(self) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE) :: swig_result +class(IDAadjCheckPointRec), intent(in) :: self +real(C_DOUBLE) :: fresult +type(SwigClassWrapper) :: farg1 + +farg1 = self%swigdata +fresult = swigc_IDAadjCheckPointRec_t0_get(farg1) +swig_result = fresult +end function + +subroutine swigf_IDAadjCheckPointRec_t1_set(self, t1) +use, intrinsic :: ISO_C_BINDING +class(IDAadjCheckPointRec), intent(in) :: self +real(C_DOUBLE), intent(in) :: t1 +type(SwigClassWrapper) :: farg1 +real(C_DOUBLE) :: farg2 + +farg1 = self%swigdata +farg2 = t1 +call swigc_IDAadjCheckPointRec_t1_set(farg1, farg2) +end subroutine + +function swigf_IDAadjCheckPointRec_t1_get(self) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE) :: swig_result +class(IDAadjCheckPointRec), intent(in) :: self +real(C_DOUBLE) :: fresult +type(SwigClassWrapper) :: farg1 + +farg1 = self%swigdata +fresult = swigc_IDAadjCheckPointRec_t1_get(farg1) +swig_result = fresult +end function + +subroutine swigf_IDAadjCheckPointRec_nstep_set(self, nstep) +use, intrinsic :: ISO_C_BINDING +class(IDAadjCheckPointRec), intent(in) :: self +integer(C_LONG), intent(in) :: nstep +type(SwigClassWrapper) :: farg1 +integer(C_LONG) :: farg2 + +farg1 = self%swigdata +farg2 = nstep +call swigc_IDAadjCheckPointRec_nstep_set(farg1, farg2) +end subroutine + +function swigf_IDAadjCheckPointRec_nstep_get(self) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_LONG) :: swig_result +class(IDAadjCheckPointRec), intent(in) :: self +integer(C_LONG) :: fresult +type(SwigClassWrapper) :: farg1 + +farg1 = self%swigdata +fresult = swigc_IDAadjCheckPointRec_nstep_get(farg1) +swig_result = fresult +end function + +subroutine swigf_IDAadjCheckPointRec_order_set(self, order) +use, intrinsic :: ISO_C_BINDING +class(IDAadjCheckPointRec), intent(in) :: self +integer(C_INT), intent(in) :: order +type(SwigClassWrapper) :: farg1 +integer(C_INT) :: farg2 + +farg1 = self%swigdata +farg2 = order +call swigc_IDAadjCheckPointRec_order_set(farg1, farg2) +end subroutine + +function swigf_IDAadjCheckPointRec_order_get(self) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +class(IDAadjCheckPointRec), intent(in) :: self +integer(C_INT) :: fresult +type(SwigClassWrapper) :: farg1 + +farg1 = self%swigdata +fresult = swigc_IDAadjCheckPointRec_order_get(farg1) +swig_result = fresult +end function + +subroutine swigf_IDAadjCheckPointRec_step_set(self, step) +use, intrinsic :: ISO_C_BINDING +class(IDAadjCheckPointRec), intent(in) :: self +real(C_DOUBLE), intent(in) :: step +type(SwigClassWrapper) :: farg1 +real(C_DOUBLE) :: farg2 + +farg1 = self%swigdata +farg2 = step +call swigc_IDAadjCheckPointRec_step_set(farg1, farg2) +end subroutine + +function swigf_IDAadjCheckPointRec_step_get(self) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE) :: swig_result +class(IDAadjCheckPointRec), intent(in) :: self +real(C_DOUBLE) :: fresult +type(SwigClassWrapper) :: farg1 + +farg1 = self%swigdata +fresult = swigc_IDAadjCheckPointRec_step_get(farg1) +swig_result = fresult +end function + +function swigf_create_IDAadjCheckPointRec() & +result(self) +use, intrinsic :: ISO_C_BINDING +type(IDAadjCheckPointRec) :: self +type(SwigClassWrapper) :: fresult + +fresult = swigc_new_IDAadjCheckPointRec() +self%swigdata = fresult +end function + +subroutine swigf_release_IDAadjCheckPointRec(self) +use, intrinsic :: ISO_C_BINDING +class(IDAadjCheckPointRec), intent(inout) :: self +type(SwigClassWrapper) :: farg1 + +farg1 = self%swigdata +if (btest(farg1%cmemflags, swig_cmem_own_bit)) then +call swigc_delete_IDAadjCheckPointRec(farg1) +endif +farg1%cptr = C_NULL_PTR +farg1%cmemflags = 0 +self%swigdata = farg1 +end subroutine + +subroutine swigf_IDAadjCheckPointRec_op_assign__(self, other) +use, intrinsic :: ISO_C_BINDING +class(IDAadjCheckPointRec), intent(inout) :: self +type(IDAadjCheckPointRec), intent(in) :: other +type(SwigClassWrapper) :: farg1 +type(SwigClassWrapper) :: farg2 + +farg1 = self%swigdata +farg2 = other%swigdata +call swigc_IDAadjCheckPointRec_op_assign__(farg1, farg2) +self%swigdata = farg1 +end subroutine + +function FIDAGetAdjCheckPointsInfo(ida_mem, ckpnt) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +class(IDAadjCheckPointRec), intent(in) :: ckpnt +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(SwigClassWrapper) :: farg2 + +farg1 = ida_mem +farg2 = ckpnt%swigdata +fresult = swigc_FIDAGetAdjCheckPointsInfo(farg1, farg2) +swig_result = fresult +end function + +function FIDASetJacTimesResFnB(ida_mem, which, jtimesresfn) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +integer(C_INT), intent(in) :: which +type(C_FUNPTR), intent(in), value :: jtimesresfn +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 +type(C_FUNPTR) :: farg3 + +farg1 = ida_mem +farg2 = which +farg3 = jtimesresfn +fresult = swigc_FIDASetJacTimesResFnB(farg1, farg2, farg3) +swig_result = fresult +end function + +function FIDAGetAdjDataPointHermite(ida_mem, which, t, yy, yd) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +integer(C_INT), intent(in) :: which +real(C_DOUBLE), dimension(*), target, intent(inout) :: t +type(N_Vector), target, intent(inout) :: yy +type(N_Vector), target, intent(inout) :: yd +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 +type(C_PTR) :: farg3 +type(C_PTR) :: farg4 +type(C_PTR) :: farg5 + +farg1 = ida_mem +farg2 = which +farg3 = c_loc(t(1)) +farg4 = c_loc(yy) +farg5 = c_loc(yd) +fresult = swigc_FIDAGetAdjDataPointHermite(farg1, farg2, farg3, farg4, farg5) +swig_result = fresult +end function + +function FIDAGetAdjDataPointPolynomial(ida_mem, which, t, order, y) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +integer(C_INT), intent(in) :: which +real(C_DOUBLE), dimension(*), target, intent(inout) :: t +integer(C_INT), dimension(*), target, intent(inout) :: order +type(N_Vector), target, intent(inout) :: y +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 +type(C_PTR) :: farg3 +type(C_PTR) :: farg4 +type(C_PTR) :: farg5 + +farg1 = ida_mem +farg2 = which +farg3 = c_loc(t(1)) +farg4 = c_loc(order(1)) +farg5 = c_loc(y) +fresult = swigc_FIDAGetAdjDataPointPolynomial(farg1, farg2, farg3, farg4, farg5) +swig_result = fresult +end function + +function FIDAGetAdjCurrentCheckPoint(ida_mem, addr) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +type(C_PTR), target, intent(inout) :: addr +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = ida_mem +farg2 = c_loc(addr) +fresult = swigc_FIDAGetAdjCurrentCheckPoint(farg1, farg2) +swig_result = fresult +end function + +function FIDABBDPrecInit(ida_mem, nlocal, mudq, mldq, mukeep, mlkeep, dq_rel_yy, gres, gcomm) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +integer(C_INT32_T), intent(in) :: nlocal +integer(C_INT32_T), intent(in) :: mudq +integer(C_INT32_T), intent(in) :: mldq +integer(C_INT32_T), intent(in) :: mukeep +integer(C_INT32_T), intent(in) :: mlkeep +real(C_DOUBLE), intent(in) :: dq_rel_yy +type(C_FUNPTR), intent(in), value :: gres +type(C_FUNPTR), intent(in), value :: gcomm +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT32_T) :: farg2 +integer(C_INT32_T) :: farg3 +integer(C_INT32_T) :: farg4 +integer(C_INT32_T) :: farg5 +integer(C_INT32_T) :: farg6 +real(C_DOUBLE) :: farg7 +type(C_FUNPTR) :: farg8 +type(C_FUNPTR) :: farg9 + +farg1 = ida_mem +farg2 = nlocal +farg3 = mudq +farg4 = mldq +farg5 = mukeep +farg6 = mlkeep +farg7 = dq_rel_yy +farg8 = gres +farg9 = gcomm +fresult = swigc_FIDABBDPrecInit(farg1, farg2, farg3, farg4, farg5, farg6, farg7, farg8, farg9) +swig_result = fresult +end function + +function FIDABBDPrecReInit(ida_mem, mudq, mldq, dq_rel_yy) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +integer(C_INT32_T), intent(in) :: mudq +integer(C_INT32_T), intent(in) :: mldq +real(C_DOUBLE), intent(in) :: dq_rel_yy +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT32_T) :: farg2 +integer(C_INT32_T) :: farg3 +real(C_DOUBLE) :: farg4 + +farg1 = ida_mem +farg2 = mudq +farg3 = mldq +farg4 = dq_rel_yy +fresult = swigc_FIDABBDPrecReInit(farg1, farg2, farg3, farg4) +swig_result = fresult +end function + +function FIDABBDPrecGetWorkSpace(ida_mem, lenrwbbdp, leniwbbdp) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +integer(C_LONG), dimension(*), target, intent(inout) :: lenrwbbdp +integer(C_LONG), dimension(*), target, intent(inout) :: leniwbbdp +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = ida_mem +farg2 = c_loc(lenrwbbdp(1)) +farg3 = c_loc(leniwbbdp(1)) +fresult = swigc_FIDABBDPrecGetWorkSpace(farg1, farg2, farg3) +swig_result = fresult +end function + +function FIDABBDPrecGetNumGfnEvals(ida_mem, ngevalsbbdp) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +integer(C_LONG), dimension(*), target, intent(inout) :: ngevalsbbdp +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = ida_mem +farg2 = c_loc(ngevalsbbdp(1)) +fresult = swigc_FIDABBDPrecGetNumGfnEvals(farg1, farg2) +swig_result = fresult +end function + +function FIDABBDPrecInitB(ida_mem, which, nlocalb, mudqb, mldqb, mukeepb, mlkeepb, dq_rel_yyb, gresb, gcommb) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +integer(C_INT), intent(in) :: which +integer(C_INT32_T), intent(in) :: nlocalb +integer(C_INT32_T), intent(in) :: mudqb +integer(C_INT32_T), intent(in) :: mldqb +integer(C_INT32_T), intent(in) :: mukeepb +integer(C_INT32_T), intent(in) :: mlkeepb +real(C_DOUBLE), intent(in) :: dq_rel_yyb +type(C_FUNPTR), intent(in), value :: gresb +type(C_FUNPTR), intent(in), value :: gcommb +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 +integer(C_INT32_T) :: farg3 +integer(C_INT32_T) :: farg4 +integer(C_INT32_T) :: farg5 +integer(C_INT32_T) :: farg6 +integer(C_INT32_T) :: farg7 +real(C_DOUBLE) :: farg8 +type(C_FUNPTR) :: farg9 +type(C_FUNPTR) :: farg10 + +farg1 = ida_mem +farg2 = which +farg3 = nlocalb +farg4 = mudqb +farg5 = mldqb +farg6 = mukeepb +farg7 = mlkeepb +farg8 = dq_rel_yyb +farg9 = gresb +farg10 = gcommb +fresult = swigc_FIDABBDPrecInitB(farg1, farg2, farg3, farg4, farg5, farg6, farg7, farg8, farg9, farg10) +swig_result = fresult +end function + +function FIDABBDPrecReInitB(ida_mem, which, mudqb, mldqb, dq_rel_yyb) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +integer(C_INT), intent(in) :: which +integer(C_INT32_T), intent(in) :: mudqb +integer(C_INT32_T), intent(in) :: mldqb +real(C_DOUBLE), intent(in) :: dq_rel_yyb +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 +integer(C_INT32_T) :: farg3 +integer(C_INT32_T) :: farg4 +real(C_DOUBLE) :: farg5 + +farg1 = ida_mem +farg2 = which +farg3 = mudqb +farg4 = mldqb +farg5 = dq_rel_yyb +fresult = swigc_FIDABBDPrecReInitB(farg1, farg2, farg3, farg4, farg5) +swig_result = fresult +end function + +function FIDASetLinearSolver(ida_mem, ls, a) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +type(SUNLinearSolver), target, intent(inout) :: ls +type(SUNMatrix), target, intent(inout) :: a +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = ida_mem +farg2 = c_loc(ls) +farg3 = c_loc(a) +fresult = swigc_FIDASetLinearSolver(farg1, farg2, farg3) +swig_result = fresult +end function + +function FIDASetJacFn(ida_mem, jac) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +type(C_FUNPTR), intent(in), value :: jac +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_FUNPTR) :: farg2 + +farg1 = ida_mem +farg2 = jac +fresult = swigc_FIDASetJacFn(farg1, farg2) +swig_result = fresult +end function + +function FIDASetPreconditioner(ida_mem, pset, psolve) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +type(C_FUNPTR), intent(in), value :: pset +type(C_FUNPTR), intent(in), value :: psolve +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_FUNPTR) :: farg2 +type(C_FUNPTR) :: farg3 + +farg1 = ida_mem +farg2 = pset +farg3 = psolve +fresult = swigc_FIDASetPreconditioner(farg1, farg2, farg3) +swig_result = fresult +end function + +function FIDASetJacTimes(ida_mem, jtsetup, jtimes) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +type(C_FUNPTR), intent(in), value :: jtsetup +type(C_FUNPTR), intent(in), value :: jtimes +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_FUNPTR) :: farg2 +type(C_FUNPTR) :: farg3 + +farg1 = ida_mem +farg2 = jtsetup +farg3 = jtimes +fresult = swigc_FIDASetJacTimes(farg1, farg2, farg3) +swig_result = fresult +end function + +function FIDASetEpsLin(ida_mem, eplifac) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +real(C_DOUBLE), intent(in) :: eplifac +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 + +farg1 = ida_mem +farg2 = eplifac +fresult = swigc_FIDASetEpsLin(farg1, farg2) +swig_result = fresult +end function + +function FIDASetLSNormFactor(ida_mem, nrmfac) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +real(C_DOUBLE), intent(in) :: nrmfac +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 + +farg1 = ida_mem +farg2 = nrmfac +fresult = swigc_FIDASetLSNormFactor(farg1, farg2) +swig_result = fresult +end function + +function FIDASetLinearSolutionScaling(ida_mem, onoff) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +integer(C_INT), intent(in) :: onoff +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = ida_mem +farg2 = onoff +fresult = swigc_FIDASetLinearSolutionScaling(farg1, farg2) +swig_result = fresult +end function + +function FIDASetIncrementFactor(ida_mem, dqincfac) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +real(C_DOUBLE), intent(in) :: dqincfac +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 + +farg1 = ida_mem +farg2 = dqincfac +fresult = swigc_FIDASetIncrementFactor(farg1, farg2) +swig_result = fresult +end function + +function FIDAGetJac(ida_mem, j) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +type(C_PTR), target, intent(inout) :: j +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = ida_mem +farg2 = c_loc(j) +fresult = swigc_FIDAGetJac(farg1, farg2) +swig_result = fresult +end function + +function FIDAGetJacCj(ida_mem, cj_j) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +real(C_DOUBLE), dimension(*), target, intent(inout) :: cj_j +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = ida_mem +farg2 = c_loc(cj_j(1)) +fresult = swigc_FIDAGetJacCj(farg1, farg2) +swig_result = fresult +end function + +function FIDAGetJacTime(ida_mem, t_j) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +real(C_DOUBLE), dimension(*), target, intent(inout) :: t_j +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = ida_mem +farg2 = c_loc(t_j(1)) +fresult = swigc_FIDAGetJacTime(farg1, farg2) +swig_result = fresult +end function + +function FIDAGetJacNumSteps(ida_mem, nst_j) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +integer(C_LONG), dimension(*), target, intent(inout) :: nst_j +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = ida_mem +farg2 = c_loc(nst_j(1)) +fresult = swigc_FIDAGetJacNumSteps(farg1, farg2) +swig_result = fresult +end function + +function FIDAGetLinWorkSpace(ida_mem, lenrwls, leniwls) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +integer(C_LONG), dimension(*), target, intent(inout) :: lenrwls +integer(C_LONG), dimension(*), target, intent(inout) :: leniwls +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = ida_mem +farg2 = c_loc(lenrwls(1)) +farg3 = c_loc(leniwls(1)) +fresult = swigc_FIDAGetLinWorkSpace(farg1, farg2, farg3) +swig_result = fresult +end function + +function FIDAGetNumJacEvals(ida_mem, njevals) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +integer(C_LONG), dimension(*), target, intent(inout) :: njevals +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = ida_mem +farg2 = c_loc(njevals(1)) +fresult = swigc_FIDAGetNumJacEvals(farg1, farg2) +swig_result = fresult +end function + +function FIDAGetNumPrecEvals(ida_mem, npevals) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +integer(C_LONG), dimension(*), target, intent(inout) :: npevals +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = ida_mem +farg2 = c_loc(npevals(1)) +fresult = swigc_FIDAGetNumPrecEvals(farg1, farg2) +swig_result = fresult +end function + +function FIDAGetNumPrecSolves(ida_mem, npsolves) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +integer(C_LONG), dimension(*), target, intent(inout) :: npsolves +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = ida_mem +farg2 = c_loc(npsolves(1)) +fresult = swigc_FIDAGetNumPrecSolves(farg1, farg2) +swig_result = fresult +end function + +function FIDAGetNumLinIters(ida_mem, nliters) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +integer(C_LONG), dimension(*), target, intent(inout) :: nliters +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = ida_mem +farg2 = c_loc(nliters(1)) +fresult = swigc_FIDAGetNumLinIters(farg1, farg2) +swig_result = fresult +end function + +function FIDAGetNumLinConvFails(ida_mem, nlcfails) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +integer(C_LONG), dimension(*), target, intent(inout) :: nlcfails +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = ida_mem +farg2 = c_loc(nlcfails(1)) +fresult = swigc_FIDAGetNumLinConvFails(farg1, farg2) +swig_result = fresult +end function + +function FIDAGetNumJTSetupEvals(ida_mem, njtsetups) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +integer(C_LONG), dimension(*), target, intent(inout) :: njtsetups +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = ida_mem +farg2 = c_loc(njtsetups(1)) +fresult = swigc_FIDAGetNumJTSetupEvals(farg1, farg2) +swig_result = fresult +end function + +function FIDAGetNumJtimesEvals(ida_mem, njvevals) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +integer(C_LONG), dimension(*), target, intent(inout) :: njvevals +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = ida_mem +farg2 = c_loc(njvevals(1)) +fresult = swigc_FIDAGetNumJtimesEvals(farg1, farg2) +swig_result = fresult +end function + +function FIDAGetNumLinResEvals(ida_mem, nrevalsls) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +integer(C_LONG), dimension(*), target, intent(inout) :: nrevalsls +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = ida_mem +farg2 = c_loc(nrevalsls(1)) +fresult = swigc_FIDAGetNumLinResEvals(farg1, farg2) +swig_result = fresult +end function + +function FIDAGetLastLinFlag(ida_mem, flag) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +integer(C_LONG), dimension(*), target, intent(inout) :: flag +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = ida_mem +farg2 = c_loc(flag(1)) +fresult = swigc_FIDAGetLastLinFlag(farg1, farg2) +swig_result = fresult +end function + +function FIDAGetLinReturnFlagName(flag) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +character(kind=C_CHAR, len=:), allocatable :: swig_result +integer(C_LONG), intent(in) :: flag +type(SwigArrayWrapper) :: fresult +integer(C_LONG) :: farg1 + +farg1 = flag +fresult = swigc_FIDAGetLinReturnFlagName(farg1) +call SWIG_chararray_to_string(fresult, swig_result) +if (.false.) call SWIG_free(fresult%data) +end function + +function FIDASetLinearSolverB(ida_mem, which, ls, a) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +integer(C_INT), intent(in) :: which +type(SUNLinearSolver), target, intent(inout) :: ls +type(SUNMatrix), target, intent(inout) :: a +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 +type(C_PTR) :: farg3 +type(C_PTR) :: farg4 + +farg1 = ida_mem +farg2 = which +farg3 = c_loc(ls) +farg4 = c_loc(a) +fresult = swigc_FIDASetLinearSolverB(farg1, farg2, farg3, farg4) +swig_result = fresult +end function + +function FIDASetJacFnB(ida_mem, which, jacb) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +integer(C_INT), intent(in) :: which +type(C_FUNPTR), intent(in), value :: jacb +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 +type(C_FUNPTR) :: farg3 + +farg1 = ida_mem +farg2 = which +farg3 = jacb +fresult = swigc_FIDASetJacFnB(farg1, farg2, farg3) +swig_result = fresult +end function + +function FIDASetJacFnBS(ida_mem, which, jacbs) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +integer(C_INT), intent(in) :: which +type(C_FUNPTR), intent(in), value :: jacbs +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 +type(C_FUNPTR) :: farg3 + +farg1 = ida_mem +farg2 = which +farg3 = jacbs +fresult = swigc_FIDASetJacFnBS(farg1, farg2, farg3) +swig_result = fresult +end function + +function FIDASetEpsLinB(ida_mem, which, eplifacb) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +integer(C_INT), intent(in) :: which +real(C_DOUBLE), intent(in) :: eplifacb +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 +real(C_DOUBLE) :: farg3 + +farg1 = ida_mem +farg2 = which +farg3 = eplifacb +fresult = swigc_FIDASetEpsLinB(farg1, farg2, farg3) +swig_result = fresult +end function + +function FIDASetLSNormFactorB(ida_mem, which, nrmfacb) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +integer(C_INT), intent(in) :: which +real(C_DOUBLE), intent(in) :: nrmfacb +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 +real(C_DOUBLE) :: farg3 + +farg1 = ida_mem +farg2 = which +farg3 = nrmfacb +fresult = swigc_FIDASetLSNormFactorB(farg1, farg2, farg3) +swig_result = fresult +end function + +function FIDASetLinearSolutionScalingB(ida_mem, which, onoffb) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +integer(C_INT), intent(in) :: which +integer(C_INT), intent(in) :: onoffb +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 +integer(C_INT) :: farg3 + +farg1 = ida_mem +farg2 = which +farg3 = onoffb +fresult = swigc_FIDASetLinearSolutionScalingB(farg1, farg2, farg3) +swig_result = fresult +end function + +function FIDASetIncrementFactorB(ida_mem, which, dqincfacb) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +integer(C_INT), intent(in) :: which +real(C_DOUBLE), intent(in) :: dqincfacb +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 +real(C_DOUBLE) :: farg3 + +farg1 = ida_mem +farg2 = which +farg3 = dqincfacb +fresult = swigc_FIDASetIncrementFactorB(farg1, farg2, farg3) +swig_result = fresult +end function + +function FIDASetPreconditionerB(ida_mem, which, psetb, psolveb) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +integer(C_INT), intent(in) :: which +type(C_FUNPTR), intent(in), value :: psetb +type(C_FUNPTR), intent(in), value :: psolveb +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 +type(C_FUNPTR) :: farg3 +type(C_FUNPTR) :: farg4 + +farg1 = ida_mem +farg2 = which +farg3 = psetb +farg4 = psolveb +fresult = swigc_FIDASetPreconditionerB(farg1, farg2, farg3, farg4) +swig_result = fresult +end function + +function FIDASetPreconditionerBS(ida_mem, which, psetbs, psolvebs) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +integer(C_INT), intent(in) :: which +type(C_FUNPTR), intent(in), value :: psetbs +type(C_FUNPTR), intent(in), value :: psolvebs +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 +type(C_FUNPTR) :: farg3 +type(C_FUNPTR) :: farg4 + +farg1 = ida_mem +farg2 = which +farg3 = psetbs +farg4 = psolvebs +fresult = swigc_FIDASetPreconditionerBS(farg1, farg2, farg3, farg4) +swig_result = fresult +end function + +function FIDASetJacTimesB(ida_mem, which, jtsetupb, jtimesb) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +integer(C_INT), intent(in) :: which +type(C_FUNPTR), intent(in), value :: jtsetupb +type(C_FUNPTR), intent(in), value :: jtimesb +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 +type(C_FUNPTR) :: farg3 +type(C_FUNPTR) :: farg4 + +farg1 = ida_mem +farg2 = which +farg3 = jtsetupb +farg4 = jtimesb +fresult = swigc_FIDASetJacTimesB(farg1, farg2, farg3, farg4) +swig_result = fresult +end function + +function FIDASetJacTimesBS(ida_mem, which, jtsetupbs, jtimesbs) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: ida_mem +integer(C_INT), intent(in) :: which +type(C_FUNPTR), intent(in), value :: jtsetupbs +type(C_FUNPTR), intent(in), value :: jtimesbs +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 +type(C_FUNPTR) :: farg3 +type(C_FUNPTR) :: farg4 + +farg1 = ida_mem +farg2 = which +farg3 = jtsetupbs +farg4 = jtimesbs +fresult = swigc_FIDASetJacTimesBS(farg1, farg2, farg3, farg4) +swig_result = fresult +end function + + +end module diff --git a/src/idas/fmod_int64/CMakeLists.txt b/src/idas/fmod_int64/CMakeLists.txt new file mode 100644 index 0000000000..a6abe6516b --- /dev/null +++ b/src/idas/fmod_int64/CMakeLists.txt @@ -0,0 +1,45 @@ +# --------------------------------------------------------------- +# Programmer: Cody J. Balos @ LLNL +# --------------------------------------------------------------- +# SUNDIALS Copyright Start +# Copyright (c) 2002-2024, Lawrence Livermore National Security +# and Southern Methodist University. +# All rights reserved. +# +# See the top-level LICENSE and NOTICE files for details. +# +# SPDX-License-Identifier: BSD-3-Clause +# SUNDIALS Copyright End +# --------------------------------------------------------------- +# CMakeLists.txt file for the F2003 IDAS object library + +set(idas_SOURCES fidas_mod.f90 fidas_mod.c) + +# Create the library +sundials_add_f2003_library(sundials_fidas_mod + SOURCES + ${idas_SOURCES} + LINK_LIBRARIES + PUBLIC sundials_fcore_mod + OBJECT_LIBRARIES + sundials_fnvecserial_mod_obj + sundials_fsunmatrixband_mod_obj + sundials_fsunmatrixdense_mod_obj + sundials_fsunmatrixsparse_mod_obj + sundials_fsunlinsolband_mod_obj + sundials_fsunlinsoldense_mod_obj + sundials_fsunlinsolspbcgs_mod_obj + sundials_fsunlinsolspfgmr_mod_obj + sundials_fsunlinsolspgmr_mod_obj + sundials_fsunlinsolsptfqmr_mod_obj + sundials_fsunlinsolpcg_mod_obj + sundials_fsunnonlinsolnewton_mod_obj + sundials_fsunnonlinsolfixedpoint_mod_obj + OUTPUT_NAME + sundials_fidas_mod + VERSION + ${idaslib_VERSION} + SOVERSION + ${idaslib_SOVERSION} +) +message(STATUS "Added IDAS F2003 interface") diff --git a/src/idas/fmod/fidas_mod.c b/src/idas/fmod_int64/fidas_mod.c similarity index 100% rename from src/idas/fmod/fidas_mod.c rename to src/idas/fmod_int64/fidas_mod.c diff --git a/src/idas/fmod/fidas_mod.f90 b/src/idas/fmod_int64/fidas_mod.f90 similarity index 100% rename from src/idas/fmod/fidas_mod.f90 rename to src/idas/fmod_int64/fidas_mod.f90 diff --git a/src/kinsol/CMakeLists.txt b/src/kinsol/CMakeLists.txt index e1353618ee..7306c3f449 100644 --- a/src/kinsol/CMakeLists.txt +++ b/src/kinsol/CMakeLists.txt @@ -71,5 +71,5 @@ message(STATUS "Added KINSOL module") # Add F2003 module if the interface is enabled if(BUILD_FORTRAN_MODULE_INTERFACE) - add_subdirectory(fmod) + add_subdirectory("fmod_int${SUNDIALS_INDEX_SIZE}") endif() diff --git a/src/kinsol/fmod/CMakeLists.txt b/src/kinsol/fmod_int32/CMakeLists.txt similarity index 100% rename from src/kinsol/fmod/CMakeLists.txt rename to src/kinsol/fmod_int32/CMakeLists.txt diff --git a/src/kinsol/fmod_int32/fkinsol_mod.c b/src/kinsol/fmod_int32/fkinsol_mod.c new file mode 100644 index 0000000000..c8c99a75a1 --- /dev/null +++ b/src/kinsol/fmod_int32/fkinsol_mod.c @@ -0,0 +1,1092 @@ +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.0 + * + * This file is not intended to be easily readable and contains a number of + * coding conventions designed to improve portability and efficiency. Do not make + * changes to this file unless you know what you are doing--modify the SWIG + * interface file instead. + * ----------------------------------------------------------------------------- */ + +/* --------------------------------------------------------------- + * Programmer(s): Auto-generated by swig. + * --------------------------------------------------------------- + * SUNDIALS Copyright Start + * Copyright (c) 2002-2024, Lawrence Livermore National Security + * and Southern Methodist University. + * All rights reserved. + * + * See the top-level LICENSE and NOTICE files for details. + * + * SPDX-License-Identifier: BSD-3-Clause + * SUNDIALS Copyright End + * -------------------------------------------------------------*/ + +/* ----------------------------------------------------------------------------- + * This section contains generic SWIG labels for method/variable + * declarations/attributes, and other compiler dependent labels. + * ----------------------------------------------------------------------------- */ + +/* template workaround for compilers that cannot correctly implement the C++ standard */ +#ifndef SWIGTEMPLATEDISAMBIGUATOR +# if defined(__SUNPRO_CC) && (__SUNPRO_CC <= 0x560) +# define SWIGTEMPLATEDISAMBIGUATOR template +# elif defined(__HP_aCC) +/* Needed even with `aCC -AA' when `aCC -V' reports HP ANSI C++ B3910B A.03.55 */ +/* If we find a maximum version that requires this, the test would be __HP_aCC <= 35500 for A.03.55 */ +# define SWIGTEMPLATEDISAMBIGUATOR template +# else +# define SWIGTEMPLATEDISAMBIGUATOR +# endif +#endif + +/* inline attribute */ +#ifndef SWIGINLINE +# if defined(__cplusplus) || (defined(__GNUC__) && !defined(__STRICT_ANSI__)) +# define SWIGINLINE inline +# else +# define SWIGINLINE +# endif +#endif + +/* attribute recognised by some compilers to avoid 'unused' warnings */ +#ifndef SWIGUNUSED +# if defined(__GNUC__) +# if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)) +# define SWIGUNUSED __attribute__ ((__unused__)) +# else +# define SWIGUNUSED +# endif +# elif defined(__ICC) +# define SWIGUNUSED __attribute__ ((__unused__)) +# else +# define SWIGUNUSED +# endif +#endif + +#ifndef SWIG_MSC_UNSUPPRESS_4505 +# if defined(_MSC_VER) +# pragma warning(disable : 4505) /* unreferenced local function has been removed */ +# endif +#endif + +#ifndef SWIGUNUSEDPARM +# ifdef __cplusplus +# define SWIGUNUSEDPARM(p) +# else +# define SWIGUNUSEDPARM(p) p SWIGUNUSED +# endif +#endif + +/* internal SWIG method */ +#ifndef SWIGINTERN +# define SWIGINTERN static SWIGUNUSED +#endif + +/* internal inline SWIG method */ +#ifndef SWIGINTERNINLINE +# define SWIGINTERNINLINE SWIGINTERN SWIGINLINE +#endif + +/* qualifier for exported *const* global data variables*/ +#ifndef SWIGEXTERN +# ifdef __cplusplus +# define SWIGEXTERN extern +# else +# define SWIGEXTERN +# endif +#endif + +/* exporting methods */ +#if defined(__GNUC__) +# if (__GNUC__ >= 4) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) +# ifndef GCC_HASCLASSVISIBILITY +# define GCC_HASCLASSVISIBILITY +# endif +# endif +#endif + +#ifndef SWIGEXPORT +# if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__) +# if defined(STATIC_LINKED) +# define SWIGEXPORT +# else +# define SWIGEXPORT __declspec(dllexport) +# endif +# else +# if defined(__GNUC__) && defined(GCC_HASCLASSVISIBILITY) +# define SWIGEXPORT __attribute__ ((visibility("default"))) +# else +# define SWIGEXPORT +# endif +# endif +#endif + +/* calling conventions for Windows */ +#ifndef SWIGSTDCALL +# if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__) +# define SWIGSTDCALL __stdcall +# else +# define SWIGSTDCALL +# endif +#endif + +/* Deal with Microsoft's attempt at deprecating C standard runtime functions */ +#if !defined(SWIG_NO_CRT_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_CRT_SECURE_NO_DEPRECATE) +# define _CRT_SECURE_NO_DEPRECATE +#endif + +/* Deal with Microsoft's attempt at deprecating methods in the standard C++ library */ +#if !defined(SWIG_NO_SCL_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_SCL_SECURE_NO_DEPRECATE) +# define _SCL_SECURE_NO_DEPRECATE +#endif + +/* Deal with Apple's deprecated 'AssertMacros.h' from Carbon-framework */ +#if defined(__APPLE__) && !defined(__ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES) +# define __ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES 0 +#endif + +/* Intel's compiler complains if a variable which was never initialised is + * cast to void, which is a common idiom which we use to indicate that we + * are aware a variable isn't used. So we just silence that warning. + * See: https://github.com/swig/swig/issues/192 for more discussion. + */ +#ifdef __INTEL_COMPILER +# pragma warning disable 592 +#endif + +/* Errors in SWIG */ +#define SWIG_UnknownError -1 +#define SWIG_IOError -2 +#define SWIG_RuntimeError -3 +#define SWIG_IndexError -4 +#define SWIG_TypeError -5 +#define SWIG_DivisionByZero -6 +#define SWIG_OverflowError -7 +#define SWIG_SyntaxError -8 +#define SWIG_ValueError -9 +#define SWIG_SystemError -10 +#define SWIG_AttributeError -11 +#define SWIG_MemoryError -12 +#define SWIG_NullReferenceError -13 + + + + +#include +#define SWIG_exception_impl(DECL, CODE, MSG, RETURNNULL) \ + { printf("In " DECL ": " MSG); assert(0); RETURNNULL; } + + +#include +#if defined(_MSC_VER) || defined(__BORLANDC__) || defined(_WATCOM) +# ifndef snprintf +# define snprintf _snprintf +# endif +#endif + + +/* Support for the `contract` feature. + * + * Note that RETURNNULL is first because it's inserted via a 'Replaceall' in + * the fortran.cxx file. + */ +#define SWIG_contract_assert(RETURNNULL, EXPR, MSG) \ + if (!(EXPR)) { SWIG_exception_impl("$decl", SWIG_ValueError, MSG, RETURNNULL); } + + +#define SWIGVERSION 0x040000 +#define SWIG_VERSION SWIGVERSION + + +#define SWIG_as_voidptr(a) (void *)((const void *)(a)) +#define SWIG_as_voidptrptr(a) ((void)SWIG_as_voidptr(*a),(void**)(a)) + + +#include "kinsol/kinsol.h" +#include "kinsol/kinsol_bbdpre.h" +#include "kinsol/kinsol_ls.h" + + +#include +#ifdef _MSC_VER +# ifndef strtoull +# define strtoull _strtoui64 +# endif +# ifndef strtoll +# define strtoll _strtoi64 +# endif +#endif + + +typedef struct { + void* data; + size_t size; +} SwigArrayWrapper; + + +SWIGINTERN SwigArrayWrapper SwigArrayWrapper_uninitialized() { + SwigArrayWrapper result; + result.data = NULL; + result.size = 0; + return result; +} + + +#include + +SWIGEXPORT void * _wrap_FKINCreate(void *farg1) { + void * fresult ; + SUNContext arg1 = (SUNContext) 0 ; + void *result = 0 ; + + arg1 = (SUNContext)(farg1); + result = (void *)KINCreate(arg1); + fresult = result; + return fresult; +} + + +SWIGEXPORT int _wrap_FKINInit(void *farg1, KINSysFn farg2, N_Vector farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + KINSysFn arg2 = (KINSysFn) 0 ; + N_Vector arg3 = (N_Vector) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (KINSysFn)(farg2); + arg3 = (N_Vector)(farg3); + result = (int)KINInit(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FKINSol(void *farg1, N_Vector farg2, int const *farg3, N_Vector farg4, N_Vector farg5) { + int fresult ; + void *arg1 = (void *) 0 ; + N_Vector arg2 = (N_Vector) 0 ; + int arg3 ; + N_Vector arg4 = (N_Vector) 0 ; + N_Vector arg5 = (N_Vector) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (N_Vector)(farg2); + arg3 = (int)(*farg3); + arg4 = (N_Vector)(farg4); + arg5 = (N_Vector)(farg5); + result = (int)KINSol(arg1,arg2,arg3,arg4,arg5); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FKINSetUserData(void *farg1, void *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + void *arg2 = (void *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (void *)(farg2); + result = (int)KINSetUserData(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FKINSetDamping(void *farg1, double const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + result = (int)KINSetDamping(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FKINSetMAA(void *farg1, long const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long)(*farg2); + result = (int)KINSetMAA(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FKINSetOrthAA(void *farg1, int const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + result = (int)KINSetOrthAA(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FKINSetDelayAA(void *farg1, long const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long)(*farg2); + result = (int)KINSetDelayAA(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FKINSetDampingAA(void *farg1, double const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + result = (int)KINSetDampingAA(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FKINSetReturnNewest(void *farg1, int const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + result = (int)KINSetReturnNewest(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FKINSetNumMaxIters(void *farg1, long const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long)(*farg2); + result = (int)KINSetNumMaxIters(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FKINSetNoInitSetup(void *farg1, int const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + result = (int)KINSetNoInitSetup(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FKINSetNoResMon(void *farg1, int const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + result = (int)KINSetNoResMon(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FKINSetMaxSetupCalls(void *farg1, long const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long)(*farg2); + result = (int)KINSetMaxSetupCalls(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FKINSetMaxSubSetupCalls(void *farg1, long const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long)(*farg2); + result = (int)KINSetMaxSubSetupCalls(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FKINSetEtaForm(void *farg1, int const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + result = (int)KINSetEtaForm(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FKINSetEtaConstValue(void *farg1, double const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + result = (int)KINSetEtaConstValue(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FKINSetEtaParams(void *farg1, double const *farg2, double const *farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + sunrealtype arg3 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + arg3 = (sunrealtype)(*farg3); + result = (int)KINSetEtaParams(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FKINSetResMonParams(void *farg1, double const *farg2, double const *farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + sunrealtype arg3 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + arg3 = (sunrealtype)(*farg3); + result = (int)KINSetResMonParams(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FKINSetResMonConstValue(void *farg1, double const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + result = (int)KINSetResMonConstValue(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FKINSetNoMinEps(void *farg1, int const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + result = (int)KINSetNoMinEps(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FKINSetMaxNewtonStep(void *farg1, double const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + result = (int)KINSetMaxNewtonStep(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FKINSetMaxBetaFails(void *farg1, long const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long)(*farg2); + result = (int)KINSetMaxBetaFails(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FKINSetRelErrFunc(void *farg1, double const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + result = (int)KINSetRelErrFunc(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FKINSetFuncNormTol(void *farg1, double const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + result = (int)KINSetFuncNormTol(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FKINSetScaledStepTol(void *farg1, double const *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype arg2 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype)(*farg2); + result = (int)KINSetScaledStepTol(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FKINSetConstraints(void *farg1, N_Vector farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + N_Vector arg2 = (N_Vector) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (N_Vector)(farg2); + result = (int)KINSetConstraints(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FKINSetSysFunc(void *farg1, KINSysFn farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + KINSysFn arg2 = (KINSysFn) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (KINSysFn)(farg2); + result = (int)KINSetSysFunc(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FKINGetWorkSpace(void *farg1, long *farg2, long *farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + long *arg3 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + arg3 = (long *)(farg3); + result = (int)KINGetWorkSpace(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FKINGetNumNonlinSolvIters(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)KINGetNumNonlinSolvIters(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FKINGetNumFuncEvals(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)KINGetNumFuncEvals(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FKINGetNumBetaCondFails(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)KINGetNumBetaCondFails(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FKINGetNumBacktrackOps(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)KINGetNumBacktrackOps(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FKINGetFuncNorm(void *farg1, double *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype *arg2 = (sunrealtype *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype *)(farg2); + result = (int)KINGetFuncNorm(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FKINGetStepLength(void *farg1, double *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype *arg2 = (sunrealtype *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunrealtype *)(farg2); + result = (int)KINGetStepLength(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FKINGetUserData(void *farg1, void *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + void **arg2 = (void **) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (void **)(farg2); + result = (int)KINGetUserData(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FKINPrintAllStats(void *farg1, void *farg2, int const *farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + FILE *arg2 = (FILE *) 0 ; + SUNOutputFormat arg3 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (FILE *)(farg2); + arg3 = (SUNOutputFormat)(*farg3); + result = (int)KINPrintAllStats(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT SwigArrayWrapper _wrap_FKINGetReturnFlagName(long const *farg1) { + SwigArrayWrapper fresult ; + long arg1 ; + char *result = 0 ; + + arg1 = (long)(*farg1); + result = (char *)KINGetReturnFlagName(arg1); + fresult.size = strlen((const char*)(result)); + fresult.data = (char *)(result); + return fresult; +} + + +SWIGEXPORT void _wrap_FKINFree(void *farg1) { + void **arg1 = (void **) 0 ; + + arg1 = (void **)(farg1); + KINFree(arg1); +} + + +SWIGEXPORT int _wrap_FKINSetJacTimesVecSysFn(void *farg1, KINSysFn farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + KINSysFn arg2 = (KINSysFn) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (KINSysFn)(farg2); + result = (int)KINSetJacTimesVecSysFn(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FKINBBDPrecInit(void *farg1, int32_t const *farg2, int32_t const *farg3, int32_t const *farg4, int32_t const *farg5, int32_t const *farg6, double const *farg7, KINBBDLocalFn farg8, KINBBDCommFn farg9) { + int fresult ; + void *arg1 = (void *) 0 ; + sunindextype arg2 ; + sunindextype arg3 ; + sunindextype arg4 ; + sunindextype arg5 ; + sunindextype arg6 ; + sunrealtype arg7 ; + KINBBDLocalFn arg8 = (KINBBDLocalFn) 0 ; + KINBBDCommFn arg9 = (KINBBDCommFn) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (sunindextype)(*farg2); + arg3 = (sunindextype)(*farg3); + arg4 = (sunindextype)(*farg4); + arg5 = (sunindextype)(*farg5); + arg6 = (sunindextype)(*farg6); + arg7 = (sunrealtype)(*farg7); + arg8 = (KINBBDLocalFn)(farg8); + arg9 = (KINBBDCommFn)(farg9); + result = (int)KINBBDPrecInit(arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FKINBBDPrecGetWorkSpace(void *farg1, long *farg2, long *farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + long *arg3 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + arg3 = (long *)(farg3); + result = (int)KINBBDPrecGetWorkSpace(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FKINBBDPrecGetNumGfnEvals(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)KINBBDPrecGetNumGfnEvals(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FKINSetLinearSolver(void *farg1, SUNLinearSolver farg2, SUNMatrix farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + SUNLinearSolver arg2 = (SUNLinearSolver) 0 ; + SUNMatrix arg3 = (SUNMatrix) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (SUNLinearSolver)(farg2); + arg3 = (SUNMatrix)(farg3); + result = (int)KINSetLinearSolver(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FKINSetJacFn(void *farg1, KINLsJacFn farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + KINLsJacFn arg2 = (KINLsJacFn) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (KINLsJacFn)(farg2); + result = (int)KINSetJacFn(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FKINSetPreconditioner(void *farg1, KINLsPrecSetupFn farg2, KINLsPrecSolveFn farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + KINLsPrecSetupFn arg2 = (KINLsPrecSetupFn) 0 ; + KINLsPrecSolveFn arg3 = (KINLsPrecSolveFn) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (KINLsPrecSetupFn)(farg2); + arg3 = (KINLsPrecSolveFn)(farg3); + result = (int)KINSetPreconditioner(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FKINSetJacTimesVecFn(void *farg1, KINLsJacTimesVecFn farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + KINLsJacTimesVecFn arg2 = (KINLsJacTimesVecFn) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (KINLsJacTimesVecFn)(farg2); + result = (int)KINSetJacTimesVecFn(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FKINGetJac(void *farg1, void *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + SUNMatrix *arg2 = (SUNMatrix *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (SUNMatrix *)(farg2); + result = (int)KINGetJac(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FKINGetJacNumIters(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)KINGetJacNumIters(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FKINGetLinWorkSpace(void *farg1, long *farg2, long *farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + long *arg3 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + arg3 = (long *)(farg3); + result = (int)KINGetLinWorkSpace(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FKINGetNumJacEvals(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)KINGetNumJacEvals(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FKINGetNumLinFuncEvals(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)KINGetNumLinFuncEvals(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FKINGetNumPrecEvals(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)KINGetNumPrecEvals(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FKINGetNumPrecSolves(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)KINGetNumPrecSolves(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FKINGetNumLinIters(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)KINGetNumLinIters(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FKINGetNumLinConvFails(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)KINGetNumLinConvFails(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FKINGetNumJtimesEvals(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)KINGetNumJtimesEvals(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FKINGetLastLinFlag(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)KINGetLastLinFlag(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT SwigArrayWrapper _wrap_FKINGetLinReturnFlagName(long const *farg1) { + SwigArrayWrapper fresult ; + long arg1 ; + char *result = 0 ; + + arg1 = (long)(*farg1); + result = (char *)KINGetLinReturnFlagName(arg1); + fresult.size = strlen((const char*)(result)); + fresult.data = (char *)(result); + return fresult; +} + + + diff --git a/src/kinsol/fmod_int32/fkinsol_mod.f90 b/src/kinsol/fmod_int32/fkinsol_mod.f90 new file mode 100644 index 0000000000..45e03047a6 --- /dev/null +++ b/src/kinsol/fmod_int32/fkinsol_mod.f90 @@ -0,0 +1,1696 @@ +! This file was automatically generated by SWIG (http://www.swig.org). +! Version 4.0.0 +! +! Do not make changes to this file unless you know what you are doing--modify +! the SWIG interface file instead. + +! --------------------------------------------------------------- +! Programmer(s): Auto-generated by swig. +! --------------------------------------------------------------- +! SUNDIALS Copyright Start +! Copyright (c) 2002-2024, Lawrence Livermore National Security +! and Southern Methodist University. +! All rights reserved. +! +! See the top-level LICENSE and NOTICE files for details. +! +! SPDX-License-Identifier: BSD-3-Clause +! SUNDIALS Copyright End +! --------------------------------------------------------------- + +module fkinsol_mod + use, intrinsic :: ISO_C_BINDING + use fsundials_core_mod + implicit none + private + + ! DECLARATION CONSTRUCTS + integer(C_INT), parameter, public :: KIN_SUCCESS = 0_C_INT + integer(C_INT), parameter, public :: KIN_INITIAL_GUESS_OK = 1_C_INT + integer(C_INT), parameter, public :: KIN_STEP_LT_STPTOL = 2_C_INT + integer(C_INT), parameter, public :: KIN_WARNING = 99_C_INT + integer(C_INT), parameter, public :: KIN_MEM_NULL = -1_C_INT + integer(C_INT), parameter, public :: KIN_ILL_INPUT = -2_C_INT + integer(C_INT), parameter, public :: KIN_NO_MALLOC = -3_C_INT + integer(C_INT), parameter, public :: KIN_MEM_FAIL = -4_C_INT + integer(C_INT), parameter, public :: KIN_LINESEARCH_NONCONV = -5_C_INT + integer(C_INT), parameter, public :: KIN_MAXITER_REACHED = -6_C_INT + integer(C_INT), parameter, public :: KIN_MXNEWT_5X_EXCEEDED = -7_C_INT + integer(C_INT), parameter, public :: KIN_LINESEARCH_BCFAIL = -8_C_INT + integer(C_INT), parameter, public :: KIN_LINSOLV_NO_RECOVERY = -9_C_INT + integer(C_INT), parameter, public :: KIN_LINIT_FAIL = -10_C_INT + integer(C_INT), parameter, public :: KIN_LSETUP_FAIL = -11_C_INT + integer(C_INT), parameter, public :: KIN_LSOLVE_FAIL = -12_C_INT + integer(C_INT), parameter, public :: KIN_SYSFUNC_FAIL = -13_C_INT + integer(C_INT), parameter, public :: KIN_FIRST_SYSFUNC_ERR = -14_C_INT + integer(C_INT), parameter, public :: KIN_REPTD_SYSFUNC_ERR = -15_C_INT + integer(C_INT), parameter, public :: KIN_VECTOROP_ERR = -16_C_INT + integer(C_INT), parameter, public :: KIN_CONTEXT_ERR = -17_C_INT + integer(C_INT), parameter, public :: KIN_ORTH_MGS = 0_C_INT + integer(C_INT), parameter, public :: KIN_ORTH_ICWY = 1_C_INT + integer(C_INT), parameter, public :: KIN_ORTH_CGS2 = 2_C_INT + integer(C_INT), parameter, public :: KIN_ORTH_DCGS2 = 3_C_INT + integer(C_INT), parameter, public :: KIN_ETACHOICE1 = 1_C_INT + integer(C_INT), parameter, public :: KIN_ETACHOICE2 = 2_C_INT + integer(C_INT), parameter, public :: KIN_ETACONSTANT = 3_C_INT + integer(C_INT), parameter, public :: KIN_NONE = 0_C_INT + integer(C_INT), parameter, public :: KIN_LINESEARCH = 1_C_INT + integer(C_INT), parameter, public :: KIN_PICARD = 2_C_INT + integer(C_INT), parameter, public :: KIN_FP = 3_C_INT + public :: FKINCreate + public :: FKINInit + public :: FKINSol + public :: FKINSetUserData + public :: FKINSetDamping + public :: FKINSetMAA + public :: FKINSetOrthAA + public :: FKINSetDelayAA + public :: FKINSetDampingAA + public :: FKINSetReturnNewest + public :: FKINSetNumMaxIters + public :: FKINSetNoInitSetup + public :: FKINSetNoResMon + public :: FKINSetMaxSetupCalls + public :: FKINSetMaxSubSetupCalls + public :: FKINSetEtaForm + public :: FKINSetEtaConstValue + public :: FKINSetEtaParams + public :: FKINSetResMonParams + public :: FKINSetResMonConstValue + public :: FKINSetNoMinEps + public :: FKINSetMaxNewtonStep + public :: FKINSetMaxBetaFails + public :: FKINSetRelErrFunc + public :: FKINSetFuncNormTol + public :: FKINSetScaledStepTol + public :: FKINSetConstraints + public :: FKINSetSysFunc + public :: FKINGetWorkSpace + public :: FKINGetNumNonlinSolvIters + public :: FKINGetNumFuncEvals + public :: FKINGetNumBetaCondFails + public :: FKINGetNumBacktrackOps + public :: FKINGetFuncNorm + public :: FKINGetStepLength + public :: FKINGetUserData + public :: FKINPrintAllStats + type, bind(C) :: SwigArrayWrapper + type(C_PTR), public :: data = C_NULL_PTR + integer(C_SIZE_T), public :: size = 0 + end type + public :: FKINGetReturnFlagName + public :: FKINFree + public :: FKINSetJacTimesVecSysFn + integer(C_INT), parameter, public :: KINBBDPRE_SUCCESS = 0_C_INT + integer(C_INT), parameter, public :: KINBBDPRE_PDATA_NULL = -11_C_INT + integer(C_INT), parameter, public :: KINBBDPRE_FUNC_UNRECVR = -12_C_INT + public :: FKINBBDPrecInit + public :: FKINBBDPrecGetWorkSpace + public :: FKINBBDPrecGetNumGfnEvals + integer(C_INT), parameter, public :: KINLS_SUCCESS = 0_C_INT + integer(C_INT), parameter, public :: KINLS_MEM_NULL = -1_C_INT + integer(C_INT), parameter, public :: KINLS_LMEM_NULL = -2_C_INT + integer(C_INT), parameter, public :: KINLS_ILL_INPUT = -3_C_INT + integer(C_INT), parameter, public :: KINLS_MEM_FAIL = -4_C_INT + integer(C_INT), parameter, public :: KINLS_PMEM_NULL = -5_C_INT + integer(C_INT), parameter, public :: KINLS_JACFUNC_ERR = -6_C_INT + integer(C_INT), parameter, public :: KINLS_SUNMAT_FAIL = -7_C_INT + integer(C_INT), parameter, public :: KINLS_SUNLS_FAIL = -8_C_INT + public :: FKINSetLinearSolver + public :: FKINSetJacFn + public :: FKINSetPreconditioner + public :: FKINSetJacTimesVecFn + public :: FKINGetJac + public :: FKINGetJacNumIters + public :: FKINGetLinWorkSpace + public :: FKINGetNumJacEvals + public :: FKINGetNumLinFuncEvals + public :: FKINGetNumPrecEvals + public :: FKINGetNumPrecSolves + public :: FKINGetNumLinIters + public :: FKINGetNumLinConvFails + public :: FKINGetNumJtimesEvals + public :: FKINGetLastLinFlag + public :: FKINGetLinReturnFlagName + +! WRAPPER DECLARATIONS +interface +function swigc_FKINCreate(farg1) & +bind(C, name="_wrap_FKINCreate") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR) :: fresult +end function + +function swigc_FKINInit(farg1, farg2, farg3) & +bind(C, name="_wrap_FKINInit") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_FUNPTR), value :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FKINSol(farg1, farg2, farg3, farg4, farg5) & +bind(C, name="_wrap_FKINSol") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT), intent(in) :: farg3 +type(C_PTR), value :: farg4 +type(C_PTR), value :: farg5 +integer(C_INT) :: fresult +end function + +function swigc_FKINSetUserData(farg1, farg2) & +bind(C, name="_wrap_FKINSetUserData") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FKINSetDamping(farg1, farg2) & +bind(C, name="_wrap_FKINSetDamping") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FKINSetMAA(farg1, farg2) & +bind(C, name="_wrap_FKINSetMAA") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_LONG), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FKINSetOrthAA(farg1, farg2) & +bind(C, name="_wrap_FKINSetOrthAA") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FKINSetDelayAA(farg1, farg2) & +bind(C, name="_wrap_FKINSetDelayAA") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_LONG), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FKINSetDampingAA(farg1, farg2) & +bind(C, name="_wrap_FKINSetDampingAA") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FKINSetReturnNewest(farg1, farg2) & +bind(C, name="_wrap_FKINSetReturnNewest") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FKINSetNumMaxIters(farg1, farg2) & +bind(C, name="_wrap_FKINSetNumMaxIters") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_LONG), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FKINSetNoInitSetup(farg1, farg2) & +bind(C, name="_wrap_FKINSetNoInitSetup") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FKINSetNoResMon(farg1, farg2) & +bind(C, name="_wrap_FKINSetNoResMon") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FKINSetMaxSetupCalls(farg1, farg2) & +bind(C, name="_wrap_FKINSetMaxSetupCalls") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_LONG), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FKINSetMaxSubSetupCalls(farg1, farg2) & +bind(C, name="_wrap_FKINSetMaxSubSetupCalls") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_LONG), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FKINSetEtaForm(farg1, farg2) & +bind(C, name="_wrap_FKINSetEtaForm") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FKINSetEtaConstValue(farg1, farg2) & +bind(C, name="_wrap_FKINSetEtaConstValue") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FKINSetEtaParams(farg1, farg2, farg3) & +bind(C, name="_wrap_FKINSetEtaParams") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +real(C_DOUBLE), intent(in) :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FKINSetResMonParams(farg1, farg2, farg3) & +bind(C, name="_wrap_FKINSetResMonParams") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +real(C_DOUBLE), intent(in) :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FKINSetResMonConstValue(farg1, farg2) & +bind(C, name="_wrap_FKINSetResMonConstValue") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FKINSetNoMinEps(farg1, farg2) & +bind(C, name="_wrap_FKINSetNoMinEps") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FKINSetMaxNewtonStep(farg1, farg2) & +bind(C, name="_wrap_FKINSetMaxNewtonStep") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FKINSetMaxBetaFails(farg1, farg2) & +bind(C, name="_wrap_FKINSetMaxBetaFails") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_LONG), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FKINSetRelErrFunc(farg1, farg2) & +bind(C, name="_wrap_FKINSetRelErrFunc") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FKINSetFuncNormTol(farg1, farg2) & +bind(C, name="_wrap_FKINSetFuncNormTol") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FKINSetScaledStepTol(farg1, farg2) & +bind(C, name="_wrap_FKINSetScaledStepTol") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FKINSetConstraints(farg1, farg2) & +bind(C, name="_wrap_FKINSetConstraints") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FKINSetSysFunc(farg1, farg2) & +bind(C, name="_wrap_FKINSetSysFunc") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_FUNPTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FKINGetWorkSpace(farg1, farg2, farg3) & +bind(C, name="_wrap_FKINGetWorkSpace") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FKINGetNumNonlinSolvIters(farg1, farg2) & +bind(C, name="_wrap_FKINGetNumNonlinSolvIters") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FKINGetNumFuncEvals(farg1, farg2) & +bind(C, name="_wrap_FKINGetNumFuncEvals") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FKINGetNumBetaCondFails(farg1, farg2) & +bind(C, name="_wrap_FKINGetNumBetaCondFails") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FKINGetNumBacktrackOps(farg1, farg2) & +bind(C, name="_wrap_FKINGetNumBacktrackOps") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FKINGetFuncNorm(farg1, farg2) & +bind(C, name="_wrap_FKINGetFuncNorm") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FKINGetStepLength(farg1, farg2) & +bind(C, name="_wrap_FKINGetStepLength") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FKINGetUserData(farg1, farg2) & +bind(C, name="_wrap_FKINGetUserData") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FKINPrintAllStats(farg1, farg2, farg3) & +bind(C, name="_wrap_FKINPrintAllStats") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT), intent(in) :: farg3 +integer(C_INT) :: fresult +end function + + subroutine SWIG_free(cptr) & + bind(C, name="free") + use, intrinsic :: ISO_C_BINDING + type(C_PTR), value :: cptr +end subroutine +function swigc_FKINGetReturnFlagName(farg1) & +bind(C, name="_wrap_FKINGetReturnFlagName") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +import :: swigarraywrapper +integer(C_LONG), intent(in) :: farg1 +type(SwigArrayWrapper) :: fresult +end function + +subroutine swigc_FKINFree(farg1) & +bind(C, name="_wrap_FKINFree") +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +end subroutine + +function swigc_FKINSetJacTimesVecSysFn(farg1, farg2) & +bind(C, name="_wrap_FKINSetJacTimesVecSysFn") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_FUNPTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FKINBBDPrecInit(farg1, farg2, farg3, farg4, farg5, farg6, farg7, farg8, farg9) & +bind(C, name="_wrap_FKINBBDPrecInit") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT32_T), intent(in) :: farg2 +integer(C_INT32_T), intent(in) :: farg3 +integer(C_INT32_T), intent(in) :: farg4 +integer(C_INT32_T), intent(in) :: farg5 +integer(C_INT32_T), intent(in) :: farg6 +real(C_DOUBLE), intent(in) :: farg7 +type(C_FUNPTR), value :: farg8 +type(C_FUNPTR), value :: farg9 +integer(C_INT) :: fresult +end function + +function swigc_FKINBBDPrecGetWorkSpace(farg1, farg2, farg3) & +bind(C, name="_wrap_FKINBBDPrecGetWorkSpace") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FKINBBDPrecGetNumGfnEvals(farg1, farg2) & +bind(C, name="_wrap_FKINBBDPrecGetNumGfnEvals") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FKINSetLinearSolver(farg1, farg2, farg3) & +bind(C, name="_wrap_FKINSetLinearSolver") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FKINSetJacFn(farg1, farg2) & +bind(C, name="_wrap_FKINSetJacFn") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_FUNPTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FKINSetPreconditioner(farg1, farg2, farg3) & +bind(C, name="_wrap_FKINSetPreconditioner") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_FUNPTR), value :: farg2 +type(C_FUNPTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FKINSetJacTimesVecFn(farg1, farg2) & +bind(C, name="_wrap_FKINSetJacTimesVecFn") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_FUNPTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FKINGetJac(farg1, farg2) & +bind(C, name="_wrap_FKINGetJac") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FKINGetJacNumIters(farg1, farg2) & +bind(C, name="_wrap_FKINGetJacNumIters") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FKINGetLinWorkSpace(farg1, farg2, farg3) & +bind(C, name="_wrap_FKINGetLinWorkSpace") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FKINGetNumJacEvals(farg1, farg2) & +bind(C, name="_wrap_FKINGetNumJacEvals") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FKINGetNumLinFuncEvals(farg1, farg2) & +bind(C, name="_wrap_FKINGetNumLinFuncEvals") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FKINGetNumPrecEvals(farg1, farg2) & +bind(C, name="_wrap_FKINGetNumPrecEvals") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FKINGetNumPrecSolves(farg1, farg2) & +bind(C, name="_wrap_FKINGetNumPrecSolves") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FKINGetNumLinIters(farg1, farg2) & +bind(C, name="_wrap_FKINGetNumLinIters") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FKINGetNumLinConvFails(farg1, farg2) & +bind(C, name="_wrap_FKINGetNumLinConvFails") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FKINGetNumJtimesEvals(farg1, farg2) & +bind(C, name="_wrap_FKINGetNumJtimesEvals") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FKINGetLastLinFlag(farg1, farg2) & +bind(C, name="_wrap_FKINGetLastLinFlag") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FKINGetLinReturnFlagName(farg1) & +bind(C, name="_wrap_FKINGetLinReturnFlagName") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +import :: swigarraywrapper +integer(C_LONG), intent(in) :: farg1 +type(SwigArrayWrapper) :: fresult +end function + +end interface + + +contains + ! MODULE SUBPROGRAMS +function FKINCreate(sunctx) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +type(C_PTR) :: swig_result +type(C_PTR) :: sunctx +type(C_PTR) :: fresult +type(C_PTR) :: farg1 + +farg1 = sunctx +fresult = swigc_FKINCreate(farg1) +swig_result = fresult +end function + +function FKINInit(kinmem, func, tmpl) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: kinmem +type(C_FUNPTR), intent(in), value :: func +type(N_Vector), target, intent(inout) :: tmpl +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_FUNPTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = kinmem +farg2 = func +farg3 = c_loc(tmpl) +fresult = swigc_FKINInit(farg1, farg2, farg3) +swig_result = fresult +end function + +function FKINSol(kinmem, uu, strategy, u_scale, f_scale) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: kinmem +type(N_Vector), target, intent(inout) :: uu +integer(C_INT), intent(in) :: strategy +type(N_Vector), target, intent(inout) :: u_scale +type(N_Vector), target, intent(inout) :: f_scale +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +integer(C_INT) :: farg3 +type(C_PTR) :: farg4 +type(C_PTR) :: farg5 + +farg1 = kinmem +farg2 = c_loc(uu) +farg3 = strategy +farg4 = c_loc(u_scale) +farg5 = c_loc(f_scale) +fresult = swigc_FKINSol(farg1, farg2, farg3, farg4, farg5) +swig_result = fresult +end function + +function FKINSetUserData(kinmem, user_data) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: kinmem +type(C_PTR) :: user_data +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = kinmem +farg2 = user_data +fresult = swigc_FKINSetUserData(farg1, farg2) +swig_result = fresult +end function + +function FKINSetDamping(kinmem, beta) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: kinmem +real(C_DOUBLE), intent(in) :: beta +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 + +farg1 = kinmem +farg2 = beta +fresult = swigc_FKINSetDamping(farg1, farg2) +swig_result = fresult +end function + +function FKINSetMAA(kinmem, maa) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: kinmem +integer(C_LONG), intent(in) :: maa +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_LONG) :: farg2 + +farg1 = kinmem +farg2 = maa +fresult = swigc_FKINSetMAA(farg1, farg2) +swig_result = fresult +end function + +function FKINSetOrthAA(kinmem, orthaa) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: kinmem +integer(C_INT), intent(in) :: orthaa +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = kinmem +farg2 = orthaa +fresult = swigc_FKINSetOrthAA(farg1, farg2) +swig_result = fresult +end function + +function FKINSetDelayAA(kinmem, delay) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: kinmem +integer(C_LONG), intent(in) :: delay +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_LONG) :: farg2 + +farg1 = kinmem +farg2 = delay +fresult = swigc_FKINSetDelayAA(farg1, farg2) +swig_result = fresult +end function + +function FKINSetDampingAA(kinmem, beta) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: kinmem +real(C_DOUBLE), intent(in) :: beta +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 + +farg1 = kinmem +farg2 = beta +fresult = swigc_FKINSetDampingAA(farg1, farg2) +swig_result = fresult +end function + +function FKINSetReturnNewest(kinmem, ret_newest) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: kinmem +integer(C_INT), intent(in) :: ret_newest +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = kinmem +farg2 = ret_newest +fresult = swigc_FKINSetReturnNewest(farg1, farg2) +swig_result = fresult +end function + +function FKINSetNumMaxIters(kinmem, mxiter) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: kinmem +integer(C_LONG), intent(in) :: mxiter +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_LONG) :: farg2 + +farg1 = kinmem +farg2 = mxiter +fresult = swigc_FKINSetNumMaxIters(farg1, farg2) +swig_result = fresult +end function + +function FKINSetNoInitSetup(kinmem, noinitsetup) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: kinmem +integer(C_INT), intent(in) :: noinitsetup +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = kinmem +farg2 = noinitsetup +fresult = swigc_FKINSetNoInitSetup(farg1, farg2) +swig_result = fresult +end function + +function FKINSetNoResMon(kinmem, nonniresmon) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: kinmem +integer(C_INT), intent(in) :: nonniresmon +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = kinmem +farg2 = nonniresmon +fresult = swigc_FKINSetNoResMon(farg1, farg2) +swig_result = fresult +end function + +function FKINSetMaxSetupCalls(kinmem, msbset) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: kinmem +integer(C_LONG), intent(in) :: msbset +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_LONG) :: farg2 + +farg1 = kinmem +farg2 = msbset +fresult = swigc_FKINSetMaxSetupCalls(farg1, farg2) +swig_result = fresult +end function + +function FKINSetMaxSubSetupCalls(kinmem, msbsetsub) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: kinmem +integer(C_LONG), intent(in) :: msbsetsub +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_LONG) :: farg2 + +farg1 = kinmem +farg2 = msbsetsub +fresult = swigc_FKINSetMaxSubSetupCalls(farg1, farg2) +swig_result = fresult +end function + +function FKINSetEtaForm(kinmem, etachoice) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: kinmem +integer(C_INT), intent(in) :: etachoice +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = kinmem +farg2 = etachoice +fresult = swigc_FKINSetEtaForm(farg1, farg2) +swig_result = fresult +end function + +function FKINSetEtaConstValue(kinmem, eta) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: kinmem +real(C_DOUBLE), intent(in) :: eta +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 + +farg1 = kinmem +farg2 = eta +fresult = swigc_FKINSetEtaConstValue(farg1, farg2) +swig_result = fresult +end function + +function FKINSetEtaParams(kinmem, egamma, ealpha) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: kinmem +real(C_DOUBLE), intent(in) :: egamma +real(C_DOUBLE), intent(in) :: ealpha +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 +real(C_DOUBLE) :: farg3 + +farg1 = kinmem +farg2 = egamma +farg3 = ealpha +fresult = swigc_FKINSetEtaParams(farg1, farg2, farg3) +swig_result = fresult +end function + +function FKINSetResMonParams(kinmem, omegamin, omegamax) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: kinmem +real(C_DOUBLE), intent(in) :: omegamin +real(C_DOUBLE), intent(in) :: omegamax +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 +real(C_DOUBLE) :: farg3 + +farg1 = kinmem +farg2 = omegamin +farg3 = omegamax +fresult = swigc_FKINSetResMonParams(farg1, farg2, farg3) +swig_result = fresult +end function + +function FKINSetResMonConstValue(kinmem, omegaconst) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: kinmem +real(C_DOUBLE), intent(in) :: omegaconst +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 + +farg1 = kinmem +farg2 = omegaconst +fresult = swigc_FKINSetResMonConstValue(farg1, farg2) +swig_result = fresult +end function + +function FKINSetNoMinEps(kinmem, nomineps) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: kinmem +integer(C_INT), intent(in) :: nomineps +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = kinmem +farg2 = nomineps +fresult = swigc_FKINSetNoMinEps(farg1, farg2) +swig_result = fresult +end function + +function FKINSetMaxNewtonStep(kinmem, mxnewtstep) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: kinmem +real(C_DOUBLE), intent(in) :: mxnewtstep +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 + +farg1 = kinmem +farg2 = mxnewtstep +fresult = swigc_FKINSetMaxNewtonStep(farg1, farg2) +swig_result = fresult +end function + +function FKINSetMaxBetaFails(kinmem, mxnbcf) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: kinmem +integer(C_LONG), intent(in) :: mxnbcf +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_LONG) :: farg2 + +farg1 = kinmem +farg2 = mxnbcf +fresult = swigc_FKINSetMaxBetaFails(farg1, farg2) +swig_result = fresult +end function + +function FKINSetRelErrFunc(kinmem, relfunc) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: kinmem +real(C_DOUBLE), intent(in) :: relfunc +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 + +farg1 = kinmem +farg2 = relfunc +fresult = swigc_FKINSetRelErrFunc(farg1, farg2) +swig_result = fresult +end function + +function FKINSetFuncNormTol(kinmem, fnormtol) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: kinmem +real(C_DOUBLE), intent(in) :: fnormtol +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 + +farg1 = kinmem +farg2 = fnormtol +fresult = swigc_FKINSetFuncNormTol(farg1, farg2) +swig_result = fresult +end function + +function FKINSetScaledStepTol(kinmem, scsteptol) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: kinmem +real(C_DOUBLE), intent(in) :: scsteptol +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 + +farg1 = kinmem +farg2 = scsteptol +fresult = swigc_FKINSetScaledStepTol(farg1, farg2) +swig_result = fresult +end function + +function FKINSetConstraints(kinmem, constraints) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: kinmem +type(N_Vector), target, intent(inout) :: constraints +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = kinmem +farg2 = c_loc(constraints) +fresult = swigc_FKINSetConstraints(farg1, farg2) +swig_result = fresult +end function + +function FKINSetSysFunc(kinmem, func) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: kinmem +type(C_FUNPTR), intent(in), value :: func +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_FUNPTR) :: farg2 + +farg1 = kinmem +farg2 = func +fresult = swigc_FKINSetSysFunc(farg1, farg2) +swig_result = fresult +end function + +function FKINGetWorkSpace(kinmem, lenrw, leniw) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: kinmem +integer(C_LONG), dimension(*), target, intent(inout) :: lenrw +integer(C_LONG), dimension(*), target, intent(inout) :: leniw +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = kinmem +farg2 = c_loc(lenrw(1)) +farg3 = c_loc(leniw(1)) +fresult = swigc_FKINGetWorkSpace(farg1, farg2, farg3) +swig_result = fresult +end function + +function FKINGetNumNonlinSolvIters(kinmem, nniters) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: kinmem +integer(C_LONG), dimension(*), target, intent(inout) :: nniters +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = kinmem +farg2 = c_loc(nniters(1)) +fresult = swigc_FKINGetNumNonlinSolvIters(farg1, farg2) +swig_result = fresult +end function + +function FKINGetNumFuncEvals(kinmem, nfevals) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: kinmem +integer(C_LONG), dimension(*), target, intent(inout) :: nfevals +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = kinmem +farg2 = c_loc(nfevals(1)) +fresult = swigc_FKINGetNumFuncEvals(farg1, farg2) +swig_result = fresult +end function + +function FKINGetNumBetaCondFails(kinmem, nbcfails) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: kinmem +integer(C_LONG), dimension(*), target, intent(inout) :: nbcfails +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = kinmem +farg2 = c_loc(nbcfails(1)) +fresult = swigc_FKINGetNumBetaCondFails(farg1, farg2) +swig_result = fresult +end function + +function FKINGetNumBacktrackOps(kinmem, nbacktr) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: kinmem +integer(C_LONG), dimension(*), target, intent(inout) :: nbacktr +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = kinmem +farg2 = c_loc(nbacktr(1)) +fresult = swigc_FKINGetNumBacktrackOps(farg1, farg2) +swig_result = fresult +end function + +function FKINGetFuncNorm(kinmem, fnorm) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: kinmem +real(C_DOUBLE), dimension(*), target, intent(inout) :: fnorm +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = kinmem +farg2 = c_loc(fnorm(1)) +fresult = swigc_FKINGetFuncNorm(farg1, farg2) +swig_result = fresult +end function + +function FKINGetStepLength(kinmem, steplength) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: kinmem +real(C_DOUBLE), dimension(*), target, intent(inout) :: steplength +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = kinmem +farg2 = c_loc(steplength(1)) +fresult = swigc_FKINGetStepLength(farg1, farg2) +swig_result = fresult +end function + +function FKINGetUserData(kinmem, user_data) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: kinmem +type(C_PTR), target, intent(inout) :: user_data +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = kinmem +farg2 = c_loc(user_data) +fresult = swigc_FKINGetUserData(farg1, farg2) +swig_result = fresult +end function + +function FKINPrintAllStats(kinmem, outfile, fmt) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: kinmem +type(C_PTR) :: outfile +integer(SUNOutputFormat), intent(in) :: fmt +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +integer(C_INT) :: farg3 + +farg1 = kinmem +farg2 = outfile +farg3 = fmt +fresult = swigc_FKINPrintAllStats(farg1, farg2, farg3) +swig_result = fresult +end function + + +subroutine SWIG_chararray_to_string(wrap, string) + use, intrinsic :: ISO_C_BINDING + type(SwigArrayWrapper), intent(IN) :: wrap + character(kind=C_CHAR, len=:), allocatable, intent(OUT) :: string + character(kind=C_CHAR), dimension(:), pointer :: chars + integer(kind=C_SIZE_T) :: i + call c_f_pointer(wrap%data, chars, [wrap%size]) + allocate(character(kind=C_CHAR, len=wrap%size) :: string) + do i=1, wrap%size + string(i:i) = chars(i) + end do +end subroutine + +function FKINGetReturnFlagName(flag) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +character(kind=C_CHAR, len=:), allocatable :: swig_result +integer(C_LONG), intent(in) :: flag +type(SwigArrayWrapper) :: fresult +integer(C_LONG) :: farg1 + +farg1 = flag +fresult = swigc_FKINGetReturnFlagName(farg1) +call SWIG_chararray_to_string(fresult, swig_result) +if (.false.) call SWIG_free(fresult%data) +end function + +subroutine FKINFree(kinmem) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), target, intent(inout) :: kinmem +type(C_PTR) :: farg1 + +farg1 = c_loc(kinmem) +call swigc_FKINFree(farg1) +end subroutine + +function FKINSetJacTimesVecSysFn(kinmem, jtimessysfn) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: kinmem +type(C_FUNPTR), intent(in), value :: jtimessysfn +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_FUNPTR) :: farg2 + +farg1 = kinmem +farg2 = jtimessysfn +fresult = swigc_FKINSetJacTimesVecSysFn(farg1, farg2) +swig_result = fresult +end function + +function FKINBBDPrecInit(kinmem, nlocal, mudq, mldq, mukeep, mlkeep, dq_rel_uu, gloc, gcomm) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: kinmem +integer(C_INT32_T), intent(in) :: nlocal +integer(C_INT32_T), intent(in) :: mudq +integer(C_INT32_T), intent(in) :: mldq +integer(C_INT32_T), intent(in) :: mukeep +integer(C_INT32_T), intent(in) :: mlkeep +real(C_DOUBLE), intent(in) :: dq_rel_uu +type(C_FUNPTR), intent(in), value :: gloc +type(C_FUNPTR), intent(in), value :: gcomm +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT32_T) :: farg2 +integer(C_INT32_T) :: farg3 +integer(C_INT32_T) :: farg4 +integer(C_INT32_T) :: farg5 +integer(C_INT32_T) :: farg6 +real(C_DOUBLE) :: farg7 +type(C_FUNPTR) :: farg8 +type(C_FUNPTR) :: farg9 + +farg1 = kinmem +farg2 = nlocal +farg3 = mudq +farg4 = mldq +farg5 = mukeep +farg6 = mlkeep +farg7 = dq_rel_uu +farg8 = gloc +farg9 = gcomm +fresult = swigc_FKINBBDPrecInit(farg1, farg2, farg3, farg4, farg5, farg6, farg7, farg8, farg9) +swig_result = fresult +end function + +function FKINBBDPrecGetWorkSpace(kinmem, lenrwbbdp, leniwbbdp) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: kinmem +integer(C_LONG), dimension(*), target, intent(inout) :: lenrwbbdp +integer(C_LONG), dimension(*), target, intent(inout) :: leniwbbdp +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = kinmem +farg2 = c_loc(lenrwbbdp(1)) +farg3 = c_loc(leniwbbdp(1)) +fresult = swigc_FKINBBDPrecGetWorkSpace(farg1, farg2, farg3) +swig_result = fresult +end function + +function FKINBBDPrecGetNumGfnEvals(kinmem, ngevalsbbdp) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: kinmem +integer(C_LONG), dimension(*), target, intent(inout) :: ngevalsbbdp +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = kinmem +farg2 = c_loc(ngevalsbbdp(1)) +fresult = swigc_FKINBBDPrecGetNumGfnEvals(farg1, farg2) +swig_result = fresult +end function + +function FKINSetLinearSolver(kinmem, ls, a) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: kinmem +type(SUNLinearSolver), target, intent(inout) :: ls +type(SUNMatrix), target, intent(inout) :: a +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = kinmem +farg2 = c_loc(ls) +farg3 = c_loc(a) +fresult = swigc_FKINSetLinearSolver(farg1, farg2, farg3) +swig_result = fresult +end function + +function FKINSetJacFn(kinmem, jac) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: kinmem +type(C_FUNPTR), intent(in), value :: jac +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_FUNPTR) :: farg2 + +farg1 = kinmem +farg2 = jac +fresult = swigc_FKINSetJacFn(farg1, farg2) +swig_result = fresult +end function + +function FKINSetPreconditioner(kinmem, psetup, psolve) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: kinmem +type(C_FUNPTR), intent(in), value :: psetup +type(C_FUNPTR), intent(in), value :: psolve +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_FUNPTR) :: farg2 +type(C_FUNPTR) :: farg3 + +farg1 = kinmem +farg2 = psetup +farg3 = psolve +fresult = swigc_FKINSetPreconditioner(farg1, farg2, farg3) +swig_result = fresult +end function + +function FKINSetJacTimesVecFn(kinmem, jtv) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: kinmem +type(C_FUNPTR), intent(in), value :: jtv +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_FUNPTR) :: farg2 + +farg1 = kinmem +farg2 = jtv +fresult = swigc_FKINSetJacTimesVecFn(farg1, farg2) +swig_result = fresult +end function + +function FKINGetJac(kinmem, j) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: kinmem +type(C_PTR), target, intent(inout) :: j +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = kinmem +farg2 = c_loc(j) +fresult = swigc_FKINGetJac(farg1, farg2) +swig_result = fresult +end function + +function FKINGetJacNumIters(kinmem, nni_j) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: kinmem +integer(C_LONG), dimension(*), target, intent(inout) :: nni_j +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = kinmem +farg2 = c_loc(nni_j(1)) +fresult = swigc_FKINGetJacNumIters(farg1, farg2) +swig_result = fresult +end function + +function FKINGetLinWorkSpace(kinmem, lenrwls, leniwls) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: kinmem +integer(C_LONG), dimension(*), target, intent(inout) :: lenrwls +integer(C_LONG), dimension(*), target, intent(inout) :: leniwls +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = kinmem +farg2 = c_loc(lenrwls(1)) +farg3 = c_loc(leniwls(1)) +fresult = swigc_FKINGetLinWorkSpace(farg1, farg2, farg3) +swig_result = fresult +end function + +function FKINGetNumJacEvals(kinmem, njevals) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: kinmem +integer(C_LONG), dimension(*), target, intent(inout) :: njevals +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = kinmem +farg2 = c_loc(njevals(1)) +fresult = swigc_FKINGetNumJacEvals(farg1, farg2) +swig_result = fresult +end function + +function FKINGetNumLinFuncEvals(kinmem, nfevals) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: kinmem +integer(C_LONG), dimension(*), target, intent(inout) :: nfevals +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = kinmem +farg2 = c_loc(nfevals(1)) +fresult = swigc_FKINGetNumLinFuncEvals(farg1, farg2) +swig_result = fresult +end function + +function FKINGetNumPrecEvals(kinmem, npevals) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: kinmem +integer(C_LONG), dimension(*), target, intent(inout) :: npevals +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = kinmem +farg2 = c_loc(npevals(1)) +fresult = swigc_FKINGetNumPrecEvals(farg1, farg2) +swig_result = fresult +end function + +function FKINGetNumPrecSolves(kinmem, npsolves) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: kinmem +integer(C_LONG), dimension(*), target, intent(inout) :: npsolves +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = kinmem +farg2 = c_loc(npsolves(1)) +fresult = swigc_FKINGetNumPrecSolves(farg1, farg2) +swig_result = fresult +end function + +function FKINGetNumLinIters(kinmem, nliters) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: kinmem +integer(C_LONG), dimension(*), target, intent(inout) :: nliters +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = kinmem +farg2 = c_loc(nliters(1)) +fresult = swigc_FKINGetNumLinIters(farg1, farg2) +swig_result = fresult +end function + +function FKINGetNumLinConvFails(kinmem, nlcfails) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: kinmem +integer(C_LONG), dimension(*), target, intent(inout) :: nlcfails +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = kinmem +farg2 = c_loc(nlcfails(1)) +fresult = swigc_FKINGetNumLinConvFails(farg1, farg2) +swig_result = fresult +end function + +function FKINGetNumJtimesEvals(kinmem, njvevals) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: kinmem +integer(C_LONG), dimension(*), target, intent(inout) :: njvevals +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = kinmem +farg2 = c_loc(njvevals(1)) +fresult = swigc_FKINGetNumJtimesEvals(farg1, farg2) +swig_result = fresult +end function + +function FKINGetLastLinFlag(kinmem, flag) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: kinmem +integer(C_LONG), dimension(*), target, intent(inout) :: flag +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = kinmem +farg2 = c_loc(flag(1)) +fresult = swigc_FKINGetLastLinFlag(farg1, farg2) +swig_result = fresult +end function + +function FKINGetLinReturnFlagName(flag) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +character(kind=C_CHAR, len=:), allocatable :: swig_result +integer(C_LONG), intent(in) :: flag +type(SwigArrayWrapper) :: fresult +integer(C_LONG) :: farg1 + +farg1 = flag +fresult = swigc_FKINGetLinReturnFlagName(farg1) +call SWIG_chararray_to_string(fresult, swig_result) +if (.false.) call SWIG_free(fresult%data) +end function + + +end module diff --git a/src/kinsol/fmod_int64/CMakeLists.txt b/src/kinsol/fmod_int64/CMakeLists.txt new file mode 100644 index 0000000000..a154a8b865 --- /dev/null +++ b/src/kinsol/fmod_int64/CMakeLists.txt @@ -0,0 +1,45 @@ +# --------------------------------------------------------------- +# Programmer(s): Cody J. Balos @ LLNL +# --------------------------------------------------------------- +# SUNDIALS Copyright Start +# Copyright (c) 2002-2024, Lawrence Livermore National Security +# and Southern Methodist University. +# All rights reserved. +# +# See the top-level LICENSE and NOTICE files for details. +# +# SPDX-License-Identifier: BSD-3-Clause +# SUNDIALS Copyright End +# --------------------------------------------------------------- +# CMakeLists.txt file for the F2003 KINSOL object library +# --------------------------------------------------------------- + +set(kinsol_SOURCES fkinsol_mod.f90 fkinsol_mod.c) + +# Create the library +sundials_add_f2003_library(sundials_fkinsol_mod + SOURCES + ${kinsol_SOURCES} + LINK_LIBRARIES + PUBLIC sundials_fcore_mod + OBJECT_LIBRARIES + sundials_fnvecserial_mod_obj + sundials_fsunmatrixband_mod_obj + sundials_fsunmatrixdense_mod_obj + sundials_fsunmatrixsparse_mod_obj + sundials_fsunlinsolband_mod_obj + sundials_fsunlinsoldense_mod_obj + sundials_fsunlinsolspbcgs_mod_obj + sundials_fsunlinsolspfgmr_mod_obj + sundials_fsunlinsolspgmr_mod_obj + sundials_fsunlinsolsptfqmr_mod_obj + sundials_fsunlinsolpcg_mod_obj + OUTPUT_NAME + sundials_fkinsol_mod + VERSION + ${kinsollib_VERSION} + SOVERSION + ${kinsollib_SOVERSION} +) + +message(STATUS "Added KINSOL F2003 interface") diff --git a/src/kinsol/fmod/fkinsol_mod.c b/src/kinsol/fmod_int64/fkinsol_mod.c similarity index 100% rename from src/kinsol/fmod/fkinsol_mod.c rename to src/kinsol/fmod_int64/fkinsol_mod.c diff --git a/src/kinsol/fmod/fkinsol_mod.f90 b/src/kinsol/fmod_int64/fkinsol_mod.f90 similarity index 100% rename from src/kinsol/fmod/fkinsol_mod.f90 rename to src/kinsol/fmod_int64/fkinsol_mod.f90 diff --git a/src/nvector/manyvector/CMakeLists.txt b/src/nvector/manyvector/CMakeLists.txt index 00ee0d4372..4080f60ffc 100644 --- a/src/nvector/manyvector/CMakeLists.txt +++ b/src/nvector/manyvector/CMakeLists.txt @@ -76,5 +76,5 @@ endif() # Add F2003 module if the interface is enabled if(BUILD_FORTRAN_MODULE_INTERFACE) - add_subdirectory(fmod) + add_subdirectory("fmod_int${SUNDIALS_INDEX_SIZE}") endif() diff --git a/src/nvector/manyvector/fmod/CMakeLists.txt b/src/nvector/manyvector/fmod_int32/CMakeLists.txt similarity index 100% rename from src/nvector/manyvector/fmod/CMakeLists.txt rename to src/nvector/manyvector/fmod_int32/CMakeLists.txt diff --git a/src/nvector/manyvector/fmod_int32/fnvector_manyvector_mod.c b/src/nvector/manyvector/fmod_int32/fnvector_manyvector_mod.c new file mode 100644 index 0000000000..39cc98fdf7 --- /dev/null +++ b/src/nvector/manyvector/fmod_int32/fnvector_manyvector_mod.c @@ -0,0 +1,1007 @@ +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.0 + * + * This file is not intended to be easily readable and contains a number of + * coding conventions designed to improve portability and efficiency. Do not make + * changes to this file unless you know what you are doing--modify the SWIG + * interface file instead. + * ----------------------------------------------------------------------------- */ + +/* --------------------------------------------------------------- + * Programmer(s): Auto-generated by swig. + * --------------------------------------------------------------- + * SUNDIALS Copyright Start + * Copyright (c) 2002-2024, Lawrence Livermore National Security + * and Southern Methodist University. + * All rights reserved. + * + * See the top-level LICENSE and NOTICE files for details. + * + * SPDX-License-Identifier: BSD-3-Clause + * SUNDIALS Copyright End + * -------------------------------------------------------------*/ + +/* ----------------------------------------------------------------------------- + * This section contains generic SWIG labels for method/variable + * declarations/attributes, and other compiler dependent labels. + * ----------------------------------------------------------------------------- */ + +/* template workaround for compilers that cannot correctly implement the C++ standard */ +#ifndef SWIGTEMPLATEDISAMBIGUATOR +# if defined(__SUNPRO_CC) && (__SUNPRO_CC <= 0x560) +# define SWIGTEMPLATEDISAMBIGUATOR template +# elif defined(__HP_aCC) +/* Needed even with `aCC -AA' when `aCC -V' reports HP ANSI C++ B3910B A.03.55 */ +/* If we find a maximum version that requires this, the test would be __HP_aCC <= 35500 for A.03.55 */ +# define SWIGTEMPLATEDISAMBIGUATOR template +# else +# define SWIGTEMPLATEDISAMBIGUATOR +# endif +#endif + +/* inline attribute */ +#ifndef SWIGINLINE +# if defined(__cplusplus) || (defined(__GNUC__) && !defined(__STRICT_ANSI__)) +# define SWIGINLINE inline +# else +# define SWIGINLINE +# endif +#endif + +/* attribute recognised by some compilers to avoid 'unused' warnings */ +#ifndef SWIGUNUSED +# if defined(__GNUC__) +# if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)) +# define SWIGUNUSED __attribute__ ((__unused__)) +# else +# define SWIGUNUSED +# endif +# elif defined(__ICC) +# define SWIGUNUSED __attribute__ ((__unused__)) +# else +# define SWIGUNUSED +# endif +#endif + +#ifndef SWIG_MSC_UNSUPPRESS_4505 +# if defined(_MSC_VER) +# pragma warning(disable : 4505) /* unreferenced local function has been removed */ +# endif +#endif + +#ifndef SWIGUNUSEDPARM +# ifdef __cplusplus +# define SWIGUNUSEDPARM(p) +# else +# define SWIGUNUSEDPARM(p) p SWIGUNUSED +# endif +#endif + +/* internal SWIG method */ +#ifndef SWIGINTERN +# define SWIGINTERN static SWIGUNUSED +#endif + +/* internal inline SWIG method */ +#ifndef SWIGINTERNINLINE +# define SWIGINTERNINLINE SWIGINTERN SWIGINLINE +#endif + +/* qualifier for exported *const* global data variables*/ +#ifndef SWIGEXTERN +# ifdef __cplusplus +# define SWIGEXTERN extern +# else +# define SWIGEXTERN +# endif +#endif + +/* exporting methods */ +#if defined(__GNUC__) +# if (__GNUC__ >= 4) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) +# ifndef GCC_HASCLASSVISIBILITY +# define GCC_HASCLASSVISIBILITY +# endif +# endif +#endif + +#ifndef SWIGEXPORT +# if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__) +# if defined(STATIC_LINKED) +# define SWIGEXPORT +# else +# define SWIGEXPORT __declspec(dllexport) +# endif +# else +# if defined(__GNUC__) && defined(GCC_HASCLASSVISIBILITY) +# define SWIGEXPORT __attribute__ ((visibility("default"))) +# else +# define SWIGEXPORT +# endif +# endif +#endif + +/* calling conventions for Windows */ +#ifndef SWIGSTDCALL +# if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__) +# define SWIGSTDCALL __stdcall +# else +# define SWIGSTDCALL +# endif +#endif + +/* Deal with Microsoft's attempt at deprecating C standard runtime functions */ +#if !defined(SWIG_NO_CRT_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_CRT_SECURE_NO_DEPRECATE) +# define _CRT_SECURE_NO_DEPRECATE +#endif + +/* Deal with Microsoft's attempt at deprecating methods in the standard C++ library */ +#if !defined(SWIG_NO_SCL_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_SCL_SECURE_NO_DEPRECATE) +# define _SCL_SECURE_NO_DEPRECATE +#endif + +/* Deal with Apple's deprecated 'AssertMacros.h' from Carbon-framework */ +#if defined(__APPLE__) && !defined(__ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES) +# define __ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES 0 +#endif + +/* Intel's compiler complains if a variable which was never initialised is + * cast to void, which is a common idiom which we use to indicate that we + * are aware a variable isn't used. So we just silence that warning. + * See: https://github.com/swig/swig/issues/192 for more discussion. + */ +#ifdef __INTEL_COMPILER +# pragma warning disable 592 +#endif + +/* Errors in SWIG */ +#define SWIG_UnknownError -1 +#define SWIG_IOError -2 +#define SWIG_RuntimeError -3 +#define SWIG_IndexError -4 +#define SWIG_TypeError -5 +#define SWIG_DivisionByZero -6 +#define SWIG_OverflowError -7 +#define SWIG_SyntaxError -8 +#define SWIG_ValueError -9 +#define SWIG_SystemError -10 +#define SWIG_AttributeError -11 +#define SWIG_MemoryError -12 +#define SWIG_NullReferenceError -13 + + + + +#include +#define SWIG_exception_impl(DECL, CODE, MSG, RETURNNULL) \ + { printf("In " DECL ": " MSG); assert(0); RETURNNULL; } + + +#include +#if defined(_MSC_VER) || defined(__BORLANDC__) || defined(_WATCOM) +# ifndef snprintf +# define snprintf _snprintf +# endif +#endif + + +/* Support for the `contract` feature. + * + * Note that RETURNNULL is first because it's inserted via a 'Replaceall' in + * the fortran.cxx file. + */ +#define SWIG_contract_assert(RETURNNULL, EXPR, MSG) \ + if (!(EXPR)) { SWIG_exception_impl("$decl", SWIG_ValueError, MSG, RETURNNULL); } + + +#define SWIGVERSION 0x040000 +#define SWIG_VERSION SWIGVERSION + + +#define SWIG_as_voidptr(a) (void *)((const void *)(a)) +#define SWIG_as_voidptrptr(a) ((void)SWIG_as_voidptr(*a),(void**)(a)) + + +#include "sundials/sundials_nvector.h" + + +#include "nvector/nvector_manyvector.h" + +SWIGEXPORT N_Vector _wrap_FN_VNew_ManyVector(int32_t const *farg1, void *farg2, void *farg3) { + N_Vector fresult ; + sunindextype arg1 ; + N_Vector *arg2 = (N_Vector *) 0 ; + SUNContext arg3 = (SUNContext) 0 ; + N_Vector result; + + arg1 = (sunindextype)(*farg1); + arg2 = (N_Vector *)(farg2); + arg3 = (SUNContext)(farg3); + result = (N_Vector)N_VNew_ManyVector(arg1,arg2,arg3); + fresult = result; + return fresult; +} + + +SWIGEXPORT N_Vector _wrap_FN_VGetSubvector_ManyVector(N_Vector farg1, int32_t const *farg2) { + N_Vector fresult ; + N_Vector arg1 = (N_Vector) 0 ; + sunindextype arg2 ; + N_Vector result; + + arg1 = (N_Vector)(farg1); + arg2 = (sunindextype)(*farg2); + result = (N_Vector)N_VGetSubvector_ManyVector(arg1,arg2); + fresult = result; + return fresult; +} + + +SWIGEXPORT int _wrap_FN_VSetSubvectorArrayPointer_ManyVector(double *farg1, N_Vector farg2, int32_t const *farg3) { + int fresult ; + sunrealtype *arg1 = (sunrealtype *) 0 ; + N_Vector arg2 = (N_Vector) 0 ; + sunindextype arg3 ; + SUNErrCode result; + + arg1 = (sunrealtype *)(farg1); + arg2 = (N_Vector)(farg2); + arg3 = (sunindextype)(*farg3); + result = (SUNErrCode)N_VSetSubvectorArrayPointer_ManyVector(arg1,arg2,arg3); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int32_t _wrap_FN_VGetNumSubvectors_ManyVector(N_Vector farg1) { + int32_t fresult ; + N_Vector arg1 = (N_Vector) 0 ; + sunindextype result; + + arg1 = (N_Vector)(farg1); + result = N_VGetNumSubvectors_ManyVector(arg1); + fresult = (sunindextype)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FN_VGetVectorID_ManyVector(N_Vector farg1) { + int fresult ; + N_Vector arg1 = (N_Vector) 0 ; + N_Vector_ID result; + + arg1 = (N_Vector)(farg1); + result = (N_Vector_ID)N_VGetVectorID_ManyVector(arg1); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT void _wrap_FN_VPrint_ManyVector(N_Vector farg1) { + N_Vector arg1 = (N_Vector) 0 ; + + arg1 = (N_Vector)(farg1); + N_VPrint_ManyVector(arg1); +} + + +SWIGEXPORT void _wrap_FN_VPrintFile_ManyVector(N_Vector farg1, void *farg2) { + N_Vector arg1 = (N_Vector) 0 ; + FILE *arg2 = (FILE *) 0 ; + + arg1 = (N_Vector)(farg1); + arg2 = (FILE *)(farg2); + N_VPrintFile_ManyVector(arg1,arg2); +} + + +SWIGEXPORT N_Vector _wrap_FN_VCloneEmpty_ManyVector(N_Vector farg1) { + N_Vector fresult ; + N_Vector arg1 = (N_Vector) 0 ; + N_Vector result; + + arg1 = (N_Vector)(farg1); + result = (N_Vector)N_VCloneEmpty_ManyVector(arg1); + fresult = result; + return fresult; +} + + +SWIGEXPORT N_Vector _wrap_FN_VClone_ManyVector(N_Vector farg1) { + N_Vector fresult ; + N_Vector arg1 = (N_Vector) 0 ; + N_Vector result; + + arg1 = (N_Vector)(farg1); + result = (N_Vector)N_VClone_ManyVector(arg1); + fresult = result; + return fresult; +} + + +SWIGEXPORT void _wrap_FN_VDestroy_ManyVector(N_Vector farg1) { + N_Vector arg1 = (N_Vector) 0 ; + + arg1 = (N_Vector)(farg1); + N_VDestroy_ManyVector(arg1); +} + + +SWIGEXPORT void _wrap_FN_VSpace_ManyVector(N_Vector farg1, int32_t *farg2, int32_t *farg3) { + N_Vector arg1 = (N_Vector) 0 ; + sunindextype *arg2 = (sunindextype *) 0 ; + sunindextype *arg3 = (sunindextype *) 0 ; + + arg1 = (N_Vector)(farg1); + arg2 = (sunindextype *)(farg2); + arg3 = (sunindextype *)(farg3); + N_VSpace_ManyVector(arg1,arg2,arg3); +} + + +SWIGEXPORT int32_t _wrap_FN_VGetLength_ManyVector(N_Vector farg1) { + int32_t fresult ; + N_Vector arg1 = (N_Vector) 0 ; + sunindextype result; + + arg1 = (N_Vector)(farg1); + result = N_VGetLength_ManyVector(arg1); + fresult = (sunindextype)(result); + return fresult; +} + + +SWIGEXPORT int32_t _wrap_FN_VGetSubvectorLocalLength_ManyVector(N_Vector farg1, int32_t const *farg2) { + int32_t fresult ; + N_Vector arg1 = (N_Vector) 0 ; + sunindextype arg2 ; + sunindextype result; + + arg1 = (N_Vector)(farg1); + arg2 = (sunindextype)(*farg2); + result = N_VGetSubvectorLocalLength_ManyVector(arg1,arg2); + fresult = (sunindextype)(result); + return fresult; +} + + +SWIGEXPORT void _wrap_FN_VLinearSum_ManyVector(double const *farg1, N_Vector farg2, double const *farg3, N_Vector farg4, N_Vector farg5) { + sunrealtype arg1 ; + N_Vector arg2 = (N_Vector) 0 ; + sunrealtype arg3 ; + N_Vector arg4 = (N_Vector) 0 ; + N_Vector arg5 = (N_Vector) 0 ; + + arg1 = (sunrealtype)(*farg1); + arg2 = (N_Vector)(farg2); + arg3 = (sunrealtype)(*farg3); + arg4 = (N_Vector)(farg4); + arg5 = (N_Vector)(farg5); + N_VLinearSum_ManyVector(arg1,arg2,arg3,arg4,arg5); +} + + +SWIGEXPORT void _wrap_FN_VConst_ManyVector(double const *farg1, N_Vector farg2) { + sunrealtype arg1 ; + N_Vector arg2 = (N_Vector) 0 ; + + arg1 = (sunrealtype)(*farg1); + arg2 = (N_Vector)(farg2); + N_VConst_ManyVector(arg1,arg2); +} + + +SWIGEXPORT void _wrap_FN_VProd_ManyVector(N_Vector farg1, N_Vector farg2, N_Vector farg3) { + N_Vector arg1 = (N_Vector) 0 ; + N_Vector arg2 = (N_Vector) 0 ; + N_Vector arg3 = (N_Vector) 0 ; + + arg1 = (N_Vector)(farg1); + arg2 = (N_Vector)(farg2); + arg3 = (N_Vector)(farg3); + N_VProd_ManyVector(arg1,arg2,arg3); +} + + +SWIGEXPORT void _wrap_FN_VDiv_ManyVector(N_Vector farg1, N_Vector farg2, N_Vector farg3) { + N_Vector arg1 = (N_Vector) 0 ; + N_Vector arg2 = (N_Vector) 0 ; + N_Vector arg3 = (N_Vector) 0 ; + + arg1 = (N_Vector)(farg1); + arg2 = (N_Vector)(farg2); + arg3 = (N_Vector)(farg3); + N_VDiv_ManyVector(arg1,arg2,arg3); +} + + +SWIGEXPORT void _wrap_FN_VScale_ManyVector(double const *farg1, N_Vector farg2, N_Vector farg3) { + sunrealtype arg1 ; + N_Vector arg2 = (N_Vector) 0 ; + N_Vector arg3 = (N_Vector) 0 ; + + arg1 = (sunrealtype)(*farg1); + arg2 = (N_Vector)(farg2); + arg3 = (N_Vector)(farg3); + N_VScale_ManyVector(arg1,arg2,arg3); +} + + +SWIGEXPORT void _wrap_FN_VAbs_ManyVector(N_Vector farg1, N_Vector farg2) { + N_Vector arg1 = (N_Vector) 0 ; + N_Vector arg2 = (N_Vector) 0 ; + + arg1 = (N_Vector)(farg1); + arg2 = (N_Vector)(farg2); + N_VAbs_ManyVector(arg1,arg2); +} + + +SWIGEXPORT void _wrap_FN_VInv_ManyVector(N_Vector farg1, N_Vector farg2) { + N_Vector arg1 = (N_Vector) 0 ; + N_Vector arg2 = (N_Vector) 0 ; + + arg1 = (N_Vector)(farg1); + arg2 = (N_Vector)(farg2); + N_VInv_ManyVector(arg1,arg2); +} + + +SWIGEXPORT void _wrap_FN_VAddConst_ManyVector(N_Vector farg1, double const *farg2, N_Vector farg3) { + N_Vector arg1 = (N_Vector) 0 ; + sunrealtype arg2 ; + N_Vector arg3 = (N_Vector) 0 ; + + arg1 = (N_Vector)(farg1); + arg2 = (sunrealtype)(*farg2); + arg3 = (N_Vector)(farg3); + N_VAddConst_ManyVector(arg1,arg2,arg3); +} + + +SWIGEXPORT double _wrap_FN_VWrmsNorm_ManyVector(N_Vector farg1, N_Vector farg2) { + double fresult ; + N_Vector arg1 = (N_Vector) 0 ; + N_Vector arg2 = (N_Vector) 0 ; + sunrealtype result; + + arg1 = (N_Vector)(farg1); + arg2 = (N_Vector)(farg2); + result = (sunrealtype)N_VWrmsNorm_ManyVector(arg1,arg2); + fresult = (sunrealtype)(result); + return fresult; +} + + +SWIGEXPORT double _wrap_FN_VWrmsNormMask_ManyVector(N_Vector farg1, N_Vector farg2, N_Vector farg3) { + double fresult ; + N_Vector arg1 = (N_Vector) 0 ; + N_Vector arg2 = (N_Vector) 0 ; + N_Vector arg3 = (N_Vector) 0 ; + sunrealtype result; + + arg1 = (N_Vector)(farg1); + arg2 = (N_Vector)(farg2); + arg3 = (N_Vector)(farg3); + result = (sunrealtype)N_VWrmsNormMask_ManyVector(arg1,arg2,arg3); + fresult = (sunrealtype)(result); + return fresult; +} + + +SWIGEXPORT double _wrap_FN_VWL2Norm_ManyVector(N_Vector farg1, N_Vector farg2) { + double fresult ; + N_Vector arg1 = (N_Vector) 0 ; + N_Vector arg2 = (N_Vector) 0 ; + sunrealtype result; + + arg1 = (N_Vector)(farg1); + arg2 = (N_Vector)(farg2); + result = (sunrealtype)N_VWL2Norm_ManyVector(arg1,arg2); + fresult = (sunrealtype)(result); + return fresult; +} + + +SWIGEXPORT void _wrap_FN_VCompare_ManyVector(double const *farg1, N_Vector farg2, N_Vector farg3) { + sunrealtype arg1 ; + N_Vector arg2 = (N_Vector) 0 ; + N_Vector arg3 = (N_Vector) 0 ; + + arg1 = (sunrealtype)(*farg1); + arg2 = (N_Vector)(farg2); + arg3 = (N_Vector)(farg3); + N_VCompare_ManyVector(arg1,arg2,arg3); +} + + +SWIGEXPORT int _wrap_FN_VLinearCombination_ManyVector(int const *farg1, double *farg2, void *farg3, N_Vector farg4) { + int fresult ; + int arg1 ; + sunrealtype *arg2 = (sunrealtype *) 0 ; + N_Vector *arg3 = (N_Vector *) 0 ; + N_Vector arg4 = (N_Vector) 0 ; + SUNErrCode result; + + arg1 = (int)(*farg1); + arg2 = (sunrealtype *)(farg2); + arg3 = (N_Vector *)(farg3); + arg4 = (N_Vector)(farg4); + result = (SUNErrCode)N_VLinearCombination_ManyVector(arg1,arg2,arg3,arg4); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FN_VScaleAddMulti_ManyVector(int const *farg1, double *farg2, N_Vector farg3, void *farg4, void *farg5) { + int fresult ; + int arg1 ; + sunrealtype *arg2 = (sunrealtype *) 0 ; + N_Vector arg3 = (N_Vector) 0 ; + N_Vector *arg4 = (N_Vector *) 0 ; + N_Vector *arg5 = (N_Vector *) 0 ; + SUNErrCode result; + + arg1 = (int)(*farg1); + arg2 = (sunrealtype *)(farg2); + arg3 = (N_Vector)(farg3); + arg4 = (N_Vector *)(farg4); + arg5 = (N_Vector *)(farg5); + result = (SUNErrCode)N_VScaleAddMulti_ManyVector(arg1,arg2,arg3,arg4,arg5); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FN_VDotProdMulti_ManyVector(int const *farg1, N_Vector farg2, void *farg3, double *farg4) { + int fresult ; + int arg1 ; + N_Vector arg2 = (N_Vector) 0 ; + N_Vector *arg3 = (N_Vector *) 0 ; + sunrealtype *arg4 = (sunrealtype *) 0 ; + SUNErrCode result; + + arg1 = (int)(*farg1); + arg2 = (N_Vector)(farg2); + arg3 = (N_Vector *)(farg3); + arg4 = (sunrealtype *)(farg4); + result = (SUNErrCode)N_VDotProdMulti_ManyVector(arg1,arg2,arg3,arg4); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FN_VLinearSumVectorArray_ManyVector(int const *farg1, double const *farg2, void *farg3, double const *farg4, void *farg5, void *farg6) { + int fresult ; + int arg1 ; + sunrealtype arg2 ; + N_Vector *arg3 = (N_Vector *) 0 ; + sunrealtype arg4 ; + N_Vector *arg5 = (N_Vector *) 0 ; + N_Vector *arg6 = (N_Vector *) 0 ; + SUNErrCode result; + + arg1 = (int)(*farg1); + arg2 = (sunrealtype)(*farg2); + arg3 = (N_Vector *)(farg3); + arg4 = (sunrealtype)(*farg4); + arg5 = (N_Vector *)(farg5); + arg6 = (N_Vector *)(farg6); + result = (SUNErrCode)N_VLinearSumVectorArray_ManyVector(arg1,arg2,arg3,arg4,arg5,arg6); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FN_VScaleVectorArray_ManyVector(int const *farg1, double *farg2, void *farg3, void *farg4) { + int fresult ; + int arg1 ; + sunrealtype *arg2 = (sunrealtype *) 0 ; + N_Vector *arg3 = (N_Vector *) 0 ; + N_Vector *arg4 = (N_Vector *) 0 ; + SUNErrCode result; + + arg1 = (int)(*farg1); + arg2 = (sunrealtype *)(farg2); + arg3 = (N_Vector *)(farg3); + arg4 = (N_Vector *)(farg4); + result = (SUNErrCode)N_VScaleVectorArray_ManyVector(arg1,arg2,arg3,arg4); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FN_VConstVectorArray_ManyVector(int const *farg1, double const *farg2, void *farg3) { + int fresult ; + int arg1 ; + sunrealtype arg2 ; + N_Vector *arg3 = (N_Vector *) 0 ; + SUNErrCode result; + + arg1 = (int)(*farg1); + arg2 = (sunrealtype)(*farg2); + arg3 = (N_Vector *)(farg3); + result = (SUNErrCode)N_VConstVectorArray_ManyVector(arg1,arg2,arg3); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FN_VWrmsNormVectorArray_ManyVector(int const *farg1, void *farg2, void *farg3, double *farg4) { + int fresult ; + int arg1 ; + N_Vector *arg2 = (N_Vector *) 0 ; + N_Vector *arg3 = (N_Vector *) 0 ; + sunrealtype *arg4 = (sunrealtype *) 0 ; + SUNErrCode result; + + arg1 = (int)(*farg1); + arg2 = (N_Vector *)(farg2); + arg3 = (N_Vector *)(farg3); + arg4 = (sunrealtype *)(farg4); + result = (SUNErrCode)N_VWrmsNormVectorArray_ManyVector(arg1,arg2,arg3,arg4); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FN_VWrmsNormMaskVectorArray_ManyVector(int const *farg1, void *farg2, void *farg3, N_Vector farg4, double *farg5) { + int fresult ; + int arg1 ; + N_Vector *arg2 = (N_Vector *) 0 ; + N_Vector *arg3 = (N_Vector *) 0 ; + N_Vector arg4 = (N_Vector) 0 ; + sunrealtype *arg5 = (sunrealtype *) 0 ; + SUNErrCode result; + + arg1 = (int)(*farg1); + arg2 = (N_Vector *)(farg2); + arg3 = (N_Vector *)(farg3); + arg4 = (N_Vector)(farg4); + arg5 = (sunrealtype *)(farg5); + result = (SUNErrCode)N_VWrmsNormMaskVectorArray_ManyVector(arg1,arg2,arg3,arg4,arg5); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT double _wrap_FN_VDotProdLocal_ManyVector(N_Vector farg1, N_Vector farg2) { + double fresult ; + N_Vector arg1 = (N_Vector) 0 ; + N_Vector arg2 = (N_Vector) 0 ; + sunrealtype result; + + arg1 = (N_Vector)(farg1); + arg2 = (N_Vector)(farg2); + result = (sunrealtype)N_VDotProdLocal_ManyVector(arg1,arg2); + fresult = (sunrealtype)(result); + return fresult; +} + + +SWIGEXPORT double _wrap_FN_VMaxNormLocal_ManyVector(N_Vector farg1) { + double fresult ; + N_Vector arg1 = (N_Vector) 0 ; + sunrealtype result; + + arg1 = (N_Vector)(farg1); + result = (sunrealtype)N_VMaxNormLocal_ManyVector(arg1); + fresult = (sunrealtype)(result); + return fresult; +} + + +SWIGEXPORT double _wrap_FN_VMinLocal_ManyVector(N_Vector farg1) { + double fresult ; + N_Vector arg1 = (N_Vector) 0 ; + sunrealtype result; + + arg1 = (N_Vector)(farg1); + result = (sunrealtype)N_VMinLocal_ManyVector(arg1); + fresult = (sunrealtype)(result); + return fresult; +} + + +SWIGEXPORT double _wrap_FN_VL1NormLocal_ManyVector(N_Vector farg1) { + double fresult ; + N_Vector arg1 = (N_Vector) 0 ; + sunrealtype result; + + arg1 = (N_Vector)(farg1); + result = (sunrealtype)N_VL1NormLocal_ManyVector(arg1); + fresult = (sunrealtype)(result); + return fresult; +} + + +SWIGEXPORT double _wrap_FN_VWSqrSumLocal_ManyVector(N_Vector farg1, N_Vector farg2) { + double fresult ; + N_Vector arg1 = (N_Vector) 0 ; + N_Vector arg2 = (N_Vector) 0 ; + sunrealtype result; + + arg1 = (N_Vector)(farg1); + arg2 = (N_Vector)(farg2); + result = (sunrealtype)N_VWSqrSumLocal_ManyVector(arg1,arg2); + fresult = (sunrealtype)(result); + return fresult; +} + + +SWIGEXPORT double _wrap_FN_VWSqrSumMaskLocal_ManyVector(N_Vector farg1, N_Vector farg2, N_Vector farg3) { + double fresult ; + N_Vector arg1 = (N_Vector) 0 ; + N_Vector arg2 = (N_Vector) 0 ; + N_Vector arg3 = (N_Vector) 0 ; + sunrealtype result; + + arg1 = (N_Vector)(farg1); + arg2 = (N_Vector)(farg2); + arg3 = (N_Vector)(farg3); + result = (sunrealtype)N_VWSqrSumMaskLocal_ManyVector(arg1,arg2,arg3); + fresult = (sunrealtype)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FN_VInvTestLocal_ManyVector(N_Vector farg1, N_Vector farg2) { + int fresult ; + N_Vector arg1 = (N_Vector) 0 ; + N_Vector arg2 = (N_Vector) 0 ; + int result; + + arg1 = (N_Vector)(farg1); + arg2 = (N_Vector)(farg2); + result = (int)N_VInvTestLocal_ManyVector(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FN_VConstrMaskLocal_ManyVector(N_Vector farg1, N_Vector farg2, N_Vector farg3) { + int fresult ; + N_Vector arg1 = (N_Vector) 0 ; + N_Vector arg2 = (N_Vector) 0 ; + N_Vector arg3 = (N_Vector) 0 ; + int result; + + arg1 = (N_Vector)(farg1); + arg2 = (N_Vector)(farg2); + arg3 = (N_Vector)(farg3); + result = (int)N_VConstrMaskLocal_ManyVector(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT double _wrap_FN_VMinQuotientLocal_ManyVector(N_Vector farg1, N_Vector farg2) { + double fresult ; + N_Vector arg1 = (N_Vector) 0 ; + N_Vector arg2 = (N_Vector) 0 ; + sunrealtype result; + + arg1 = (N_Vector)(farg1); + arg2 = (N_Vector)(farg2); + result = (sunrealtype)N_VMinQuotientLocal_ManyVector(arg1,arg2); + fresult = (sunrealtype)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FN_VDotProdMultiLocal_ManyVector(int const *farg1, N_Vector farg2, void *farg3, double *farg4) { + int fresult ; + int arg1 ; + N_Vector arg2 = (N_Vector) 0 ; + N_Vector *arg3 = (N_Vector *) 0 ; + sunrealtype *arg4 = (sunrealtype *) 0 ; + SUNErrCode result; + + arg1 = (int)(*farg1); + arg2 = (N_Vector)(farg2); + arg3 = (N_Vector *)(farg3); + arg4 = (sunrealtype *)(farg4); + result = (SUNErrCode)N_VDotProdMultiLocal_ManyVector(arg1,arg2,arg3,arg4); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FN_VBufSize_ManyVector(N_Vector farg1, int32_t *farg2) { + int fresult ; + N_Vector arg1 = (N_Vector) 0 ; + sunindextype *arg2 = (sunindextype *) 0 ; + SUNErrCode result; + + arg1 = (N_Vector)(farg1); + arg2 = (sunindextype *)(farg2); + result = (SUNErrCode)N_VBufSize_ManyVector(arg1,arg2); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FN_VBufPack_ManyVector(N_Vector farg1, void *farg2) { + int fresult ; + N_Vector arg1 = (N_Vector) 0 ; + void *arg2 = (void *) 0 ; + SUNErrCode result; + + arg1 = (N_Vector)(farg1); + arg2 = (void *)(farg2); + result = (SUNErrCode)N_VBufPack_ManyVector(arg1,arg2); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FN_VBufUnpack_ManyVector(N_Vector farg1, void *farg2) { + int fresult ; + N_Vector arg1 = (N_Vector) 0 ; + void *arg2 = (void *) 0 ; + SUNErrCode result; + + arg1 = (N_Vector)(farg1); + arg2 = (void *)(farg2); + result = (SUNErrCode)N_VBufUnpack_ManyVector(arg1,arg2); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FN_VEnableFusedOps_ManyVector(N_Vector farg1, int const *farg2) { + int fresult ; + N_Vector arg1 = (N_Vector) 0 ; + int arg2 ; + SUNErrCode result; + + arg1 = (N_Vector)(farg1); + arg2 = (int)(*farg2); + result = (SUNErrCode)N_VEnableFusedOps_ManyVector(arg1,arg2); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FN_VEnableLinearCombination_ManyVector(N_Vector farg1, int const *farg2) { + int fresult ; + N_Vector arg1 = (N_Vector) 0 ; + int arg2 ; + SUNErrCode result; + + arg1 = (N_Vector)(farg1); + arg2 = (int)(*farg2); + result = (SUNErrCode)N_VEnableLinearCombination_ManyVector(arg1,arg2); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FN_VEnableScaleAddMulti_ManyVector(N_Vector farg1, int const *farg2) { + int fresult ; + N_Vector arg1 = (N_Vector) 0 ; + int arg2 ; + SUNErrCode result; + + arg1 = (N_Vector)(farg1); + arg2 = (int)(*farg2); + result = (SUNErrCode)N_VEnableScaleAddMulti_ManyVector(arg1,arg2); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FN_VEnableDotProdMulti_ManyVector(N_Vector farg1, int const *farg2) { + int fresult ; + N_Vector arg1 = (N_Vector) 0 ; + int arg2 ; + SUNErrCode result; + + arg1 = (N_Vector)(farg1); + arg2 = (int)(*farg2); + result = (SUNErrCode)N_VEnableDotProdMulti_ManyVector(arg1,arg2); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FN_VEnableLinearSumVectorArray_ManyVector(N_Vector farg1, int const *farg2) { + int fresult ; + N_Vector arg1 = (N_Vector) 0 ; + int arg2 ; + SUNErrCode result; + + arg1 = (N_Vector)(farg1); + arg2 = (int)(*farg2); + result = (SUNErrCode)N_VEnableLinearSumVectorArray_ManyVector(arg1,arg2); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FN_VEnableScaleVectorArray_ManyVector(N_Vector farg1, int const *farg2) { + int fresult ; + N_Vector arg1 = (N_Vector) 0 ; + int arg2 ; + SUNErrCode result; + + arg1 = (N_Vector)(farg1); + arg2 = (int)(*farg2); + result = (SUNErrCode)N_VEnableScaleVectorArray_ManyVector(arg1,arg2); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FN_VEnableConstVectorArray_ManyVector(N_Vector farg1, int const *farg2) { + int fresult ; + N_Vector arg1 = (N_Vector) 0 ; + int arg2 ; + SUNErrCode result; + + arg1 = (N_Vector)(farg1); + arg2 = (int)(*farg2); + result = (SUNErrCode)N_VEnableConstVectorArray_ManyVector(arg1,arg2); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FN_VEnableWrmsNormVectorArray_ManyVector(N_Vector farg1, int const *farg2) { + int fresult ; + N_Vector arg1 = (N_Vector) 0 ; + int arg2 ; + SUNErrCode result; + + arg1 = (N_Vector)(farg1); + arg2 = (int)(*farg2); + result = (SUNErrCode)N_VEnableWrmsNormVectorArray_ManyVector(arg1,arg2); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FN_VEnableWrmsNormMaskVectorArray_ManyVector(N_Vector farg1, int const *farg2) { + int fresult ; + N_Vector arg1 = (N_Vector) 0 ; + int arg2 ; + SUNErrCode result; + + arg1 = (N_Vector)(farg1); + arg2 = (int)(*farg2); + result = (SUNErrCode)N_VEnableWrmsNormMaskVectorArray_ManyVector(arg1,arg2); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FN_VEnableDotProdMultiLocal_ManyVector(N_Vector farg1, int const *farg2) { + int fresult ; + N_Vector arg1 = (N_Vector) 0 ; + int arg2 ; + SUNErrCode result; + + arg1 = (N_Vector)(farg1); + arg2 = (int)(*farg2); + result = (SUNErrCode)N_VEnableDotProdMultiLocal_ManyVector(arg1,arg2); + fresult = (SUNErrCode)(result); + return fresult; +} + + + +SWIGEXPORT double * _wrap_FN_VGetSubvectorArrayPointer_ManyVector(N_Vector farg1, int64_t const *farg2) { + double * fresult ; + N_Vector arg1 = (N_Vector) 0 ; + sunindextype arg2 ; + sunrealtype *result = 0 ; + + arg1 = (N_Vector)(farg1); + arg2 = (sunindextype)(*farg2); + result = (sunrealtype *)N_VGetSubvectorArrayPointer_ManyVector(arg1,arg2); + fresult = result; + return fresult; +} + + diff --git a/src/nvector/manyvector/fmod_int32/fnvector_manyvector_mod.f90 b/src/nvector/manyvector/fmod_int32/fnvector_manyvector_mod.f90 new file mode 100644 index 0000000000..a9e0c7ea09 --- /dev/null +++ b/src/nvector/manyvector/fmod_int32/fnvector_manyvector_mod.f90 @@ -0,0 +1,1557 @@ +! This file was automatically generated by SWIG (http://www.swig.org). +! Version 4.0.0 +! +! Do not make changes to this file unless you know what you are doing--modify +! the SWIG interface file instead. + +! --------------------------------------------------------------- +! Programmer(s): Auto-generated by swig. +! --------------------------------------------------------------- +! SUNDIALS Copyright Start +! Copyright (c) 2002-2024, Lawrence Livermore National Security +! and Southern Methodist University. +! All rights reserved. +! +! See the top-level LICENSE and NOTICE files for details. +! +! SPDX-License-Identifier: BSD-3-Clause +! SUNDIALS Copyright End +! --------------------------------------------------------------- + +module fnvector_manyvector_mod + use, intrinsic :: ISO_C_BINDING + use fsundials_core_mod + implicit none + private + + ! DECLARATION CONSTRUCTS + public :: FN_VNew_ManyVector + public :: FN_VGetSubvector_ManyVector + public :: FN_VSetSubvectorArrayPointer_ManyVector + public :: FN_VGetNumSubvectors_ManyVector + public :: FN_VGetVectorID_ManyVector + public :: FN_VPrint_ManyVector + public :: FN_VPrintFile_ManyVector + public :: FN_VCloneEmpty_ManyVector + public :: FN_VClone_ManyVector + public :: FN_VDestroy_ManyVector + public :: FN_VSpace_ManyVector + public :: FN_VGetLength_ManyVector + public :: FN_VGetSubvectorLocalLength_ManyVector + public :: FN_VLinearSum_ManyVector + public :: FN_VConst_ManyVector + public :: FN_VProd_ManyVector + public :: FN_VDiv_ManyVector + public :: FN_VScale_ManyVector + public :: FN_VAbs_ManyVector + public :: FN_VInv_ManyVector + public :: FN_VAddConst_ManyVector + public :: FN_VWrmsNorm_ManyVector + public :: FN_VWrmsNormMask_ManyVector + public :: FN_VWL2Norm_ManyVector + public :: FN_VCompare_ManyVector + public :: FN_VLinearCombination_ManyVector + public :: FN_VScaleAddMulti_ManyVector + public :: FN_VDotProdMulti_ManyVector + public :: FN_VLinearSumVectorArray_ManyVector + public :: FN_VScaleVectorArray_ManyVector + public :: FN_VConstVectorArray_ManyVector + public :: FN_VWrmsNormVectorArray_ManyVector + public :: FN_VWrmsNormMaskVectorArray_ManyVector + public :: FN_VDotProdLocal_ManyVector + public :: FN_VMaxNormLocal_ManyVector + public :: FN_VMinLocal_ManyVector + public :: FN_VL1NormLocal_ManyVector + public :: FN_VWSqrSumLocal_ManyVector + public :: FN_VWSqrSumMaskLocal_ManyVector + public :: FN_VInvTestLocal_ManyVector + public :: FN_VConstrMaskLocal_ManyVector + public :: FN_VMinQuotientLocal_ManyVector + public :: FN_VDotProdMultiLocal_ManyVector + public :: FN_VBufSize_ManyVector + public :: FN_VBufPack_ManyVector + public :: FN_VBufUnpack_ManyVector + public :: FN_VEnableFusedOps_ManyVector + public :: FN_VEnableLinearCombination_ManyVector + public :: FN_VEnableScaleAddMulti_ManyVector + public :: FN_VEnableDotProdMulti_ManyVector + public :: FN_VEnableLinearSumVectorArray_ManyVector + public :: FN_VEnableScaleVectorArray_ManyVector + public :: FN_VEnableConstVectorArray_ManyVector + public :: FN_VEnableWrmsNormVectorArray_ManyVector + public :: FN_VEnableWrmsNormMaskVectorArray_ManyVector + public :: FN_VEnableDotProdMultiLocal_ManyVector + + public :: FN_VGetSubvectorArrayPointer_ManyVector + + +! WRAPPER DECLARATIONS +interface +function swigc_FN_VNew_ManyVector(farg1, farg2, farg3) & +bind(C, name="_wrap_FN_VNew_ManyVector") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +integer(C_INT32_T), intent(in) :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +type(C_PTR) :: fresult +end function + +function swigc_FN_VGetSubvector_ManyVector(farg1, farg2) & +bind(C, name="_wrap_FN_VGetSubvector_ManyVector") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT32_T), intent(in) :: farg2 +type(C_PTR) :: fresult +end function + +function swigc_FN_VSetSubvectorArrayPointer_ManyVector(farg1, farg2, farg3) & +bind(C, name="_wrap_FN_VSetSubvectorArrayPointer_ManyVector") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT32_T), intent(in) :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FN_VGetNumSubvectors_ManyVector(farg1) & +bind(C, name="_wrap_FN_VGetNumSubvectors_ManyVector") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT32_T) :: fresult +end function + +function swigc_FN_VGetVectorID_ManyVector(farg1) & +bind(C, name="_wrap_FN_VGetVectorID_ManyVector") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT) :: fresult +end function + +subroutine swigc_FN_VPrint_ManyVector(farg1) & +bind(C, name="_wrap_FN_VPrint_ManyVector") +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +end subroutine + +subroutine swigc_FN_VPrintFile_ManyVector(farg1, farg2) & +bind(C, name="_wrap_FN_VPrintFile_ManyVector") +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +end subroutine + +function swigc_FN_VCloneEmpty_ManyVector(farg1) & +bind(C, name="_wrap_FN_VCloneEmpty_ManyVector") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR) :: fresult +end function + +function swigc_FN_VClone_ManyVector(farg1) & +bind(C, name="_wrap_FN_VClone_ManyVector") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR) :: fresult +end function + +subroutine swigc_FN_VDestroy_ManyVector(farg1) & +bind(C, name="_wrap_FN_VDestroy_ManyVector") +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +end subroutine + +subroutine swigc_FN_VSpace_ManyVector(farg1, farg2, farg3) & +bind(C, name="_wrap_FN_VSpace_ManyVector") +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +end subroutine + +function swigc_FN_VGetLength_ManyVector(farg1) & +bind(C, name="_wrap_FN_VGetLength_ManyVector") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT32_T) :: fresult +end function + +function swigc_FN_VGetSubvectorLocalLength_ManyVector(farg1, farg2) & +bind(C, name="_wrap_FN_VGetSubvectorLocalLength_ManyVector") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT32_T), intent(in) :: farg2 +integer(C_INT32_T) :: fresult +end function + +subroutine swigc_FN_VLinearSum_ManyVector(farg1, farg2, farg3, farg4, farg5) & +bind(C, name="_wrap_FN_VLinearSum_ManyVector") +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE), intent(in) :: farg1 +type(C_PTR), value :: farg2 +real(C_DOUBLE), intent(in) :: farg3 +type(C_PTR), value :: farg4 +type(C_PTR), value :: farg5 +end subroutine + +subroutine swigc_FN_VConst_ManyVector(farg1, farg2) & +bind(C, name="_wrap_FN_VConst_ManyVector") +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE), intent(in) :: farg1 +type(C_PTR), value :: farg2 +end subroutine + +subroutine swigc_FN_VProd_ManyVector(farg1, farg2, farg3) & +bind(C, name="_wrap_FN_VProd_ManyVector") +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +end subroutine + +subroutine swigc_FN_VDiv_ManyVector(farg1, farg2, farg3) & +bind(C, name="_wrap_FN_VDiv_ManyVector") +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +end subroutine + +subroutine swigc_FN_VScale_ManyVector(farg1, farg2, farg3) & +bind(C, name="_wrap_FN_VScale_ManyVector") +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE), intent(in) :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +end subroutine + +subroutine swigc_FN_VAbs_ManyVector(farg1, farg2) & +bind(C, name="_wrap_FN_VAbs_ManyVector") +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +end subroutine + +subroutine swigc_FN_VInv_ManyVector(farg1, farg2) & +bind(C, name="_wrap_FN_VInv_ManyVector") +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +end subroutine + +subroutine swigc_FN_VAddConst_ManyVector(farg1, farg2, farg3) & +bind(C, name="_wrap_FN_VAddConst_ManyVector") +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +type(C_PTR), value :: farg3 +end subroutine + +function swigc_FN_VWrmsNorm_ManyVector(farg1, farg2) & +bind(C, name="_wrap_FN_VWrmsNorm_ManyVector") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +real(C_DOUBLE) :: fresult +end function + +function swigc_FN_VWrmsNormMask_ManyVector(farg1, farg2, farg3) & +bind(C, name="_wrap_FN_VWrmsNormMask_ManyVector") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +real(C_DOUBLE) :: fresult +end function + +function swigc_FN_VWL2Norm_ManyVector(farg1, farg2) & +bind(C, name="_wrap_FN_VWL2Norm_ManyVector") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +real(C_DOUBLE) :: fresult +end function + +subroutine swigc_FN_VCompare_ManyVector(farg1, farg2, farg3) & +bind(C, name="_wrap_FN_VCompare_ManyVector") +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE), intent(in) :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +end subroutine + +function swigc_FN_VLinearCombination_ManyVector(farg1, farg2, farg3, farg4) & +bind(C, name="_wrap_FN_VLinearCombination_ManyVector") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +integer(C_INT), intent(in) :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +type(C_PTR), value :: farg4 +integer(C_INT) :: fresult +end function + +function swigc_FN_VScaleAddMulti_ManyVector(farg1, farg2, farg3, farg4, farg5) & +bind(C, name="_wrap_FN_VScaleAddMulti_ManyVector") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +integer(C_INT), intent(in) :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +type(C_PTR), value :: farg4 +type(C_PTR), value :: farg5 +integer(C_INT) :: fresult +end function + +function swigc_FN_VDotProdMulti_ManyVector(farg1, farg2, farg3, farg4) & +bind(C, name="_wrap_FN_VDotProdMulti_ManyVector") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +integer(C_INT), intent(in) :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +type(C_PTR), value :: farg4 +integer(C_INT) :: fresult +end function + +function swigc_FN_VLinearSumVectorArray_ManyVector(farg1, farg2, farg3, farg4, farg5, farg6) & +bind(C, name="_wrap_FN_VLinearSumVectorArray_ManyVector") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +integer(C_INT), intent(in) :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +type(C_PTR), value :: farg3 +real(C_DOUBLE), intent(in) :: farg4 +type(C_PTR), value :: farg5 +type(C_PTR), value :: farg6 +integer(C_INT) :: fresult +end function + +function swigc_FN_VScaleVectorArray_ManyVector(farg1, farg2, farg3, farg4) & +bind(C, name="_wrap_FN_VScaleVectorArray_ManyVector") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +integer(C_INT), intent(in) :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +type(C_PTR), value :: farg4 +integer(C_INT) :: fresult +end function + +function swigc_FN_VConstVectorArray_ManyVector(farg1, farg2, farg3) & +bind(C, name="_wrap_FN_VConstVectorArray_ManyVector") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +integer(C_INT), intent(in) :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FN_VWrmsNormVectorArray_ManyVector(farg1, farg2, farg3, farg4) & +bind(C, name="_wrap_FN_VWrmsNormVectorArray_ManyVector") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +integer(C_INT), intent(in) :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +type(C_PTR), value :: farg4 +integer(C_INT) :: fresult +end function + +function swigc_FN_VWrmsNormMaskVectorArray_ManyVector(farg1, farg2, farg3, farg4, farg5) & +bind(C, name="_wrap_FN_VWrmsNormMaskVectorArray_ManyVector") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +integer(C_INT), intent(in) :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +type(C_PTR), value :: farg4 +type(C_PTR), value :: farg5 +integer(C_INT) :: fresult +end function + +function swigc_FN_VDotProdLocal_ManyVector(farg1, farg2) & +bind(C, name="_wrap_FN_VDotProdLocal_ManyVector") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +real(C_DOUBLE) :: fresult +end function + +function swigc_FN_VMaxNormLocal_ManyVector(farg1) & +bind(C, name="_wrap_FN_VMaxNormLocal_ManyVector") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE) :: fresult +end function + +function swigc_FN_VMinLocal_ManyVector(farg1) & +bind(C, name="_wrap_FN_VMinLocal_ManyVector") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE) :: fresult +end function + +function swigc_FN_VL1NormLocal_ManyVector(farg1) & +bind(C, name="_wrap_FN_VL1NormLocal_ManyVector") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE) :: fresult +end function + +function swigc_FN_VWSqrSumLocal_ManyVector(farg1, farg2) & +bind(C, name="_wrap_FN_VWSqrSumLocal_ManyVector") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +real(C_DOUBLE) :: fresult +end function + +function swigc_FN_VWSqrSumMaskLocal_ManyVector(farg1, farg2, farg3) & +bind(C, name="_wrap_FN_VWSqrSumMaskLocal_ManyVector") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +real(C_DOUBLE) :: fresult +end function + +function swigc_FN_VInvTestLocal_ManyVector(farg1, farg2) & +bind(C, name="_wrap_FN_VInvTestLocal_ManyVector") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FN_VConstrMaskLocal_ManyVector(farg1, farg2, farg3) & +bind(C, name="_wrap_FN_VConstrMaskLocal_ManyVector") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FN_VMinQuotientLocal_ManyVector(farg1, farg2) & +bind(C, name="_wrap_FN_VMinQuotientLocal_ManyVector") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +real(C_DOUBLE) :: fresult +end function + +function swigc_FN_VDotProdMultiLocal_ManyVector(farg1, farg2, farg3, farg4) & +bind(C, name="_wrap_FN_VDotProdMultiLocal_ManyVector") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +integer(C_INT), intent(in) :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +type(C_PTR), value :: farg4 +integer(C_INT) :: fresult +end function + +function swigc_FN_VBufSize_ManyVector(farg1, farg2) & +bind(C, name="_wrap_FN_VBufSize_ManyVector") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FN_VBufPack_ManyVector(farg1, farg2) & +bind(C, name="_wrap_FN_VBufPack_ManyVector") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FN_VBufUnpack_ManyVector(farg1, farg2) & +bind(C, name="_wrap_FN_VBufUnpack_ManyVector") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FN_VEnableFusedOps_ManyVector(farg1, farg2) & +bind(C, name="_wrap_FN_VEnableFusedOps_ManyVector") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FN_VEnableLinearCombination_ManyVector(farg1, farg2) & +bind(C, name="_wrap_FN_VEnableLinearCombination_ManyVector") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FN_VEnableScaleAddMulti_ManyVector(farg1, farg2) & +bind(C, name="_wrap_FN_VEnableScaleAddMulti_ManyVector") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FN_VEnableDotProdMulti_ManyVector(farg1, farg2) & +bind(C, name="_wrap_FN_VEnableDotProdMulti_ManyVector") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FN_VEnableLinearSumVectorArray_ManyVector(farg1, farg2) & +bind(C, name="_wrap_FN_VEnableLinearSumVectorArray_ManyVector") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FN_VEnableScaleVectorArray_ManyVector(farg1, farg2) & +bind(C, name="_wrap_FN_VEnableScaleVectorArray_ManyVector") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FN_VEnableConstVectorArray_ManyVector(farg1, farg2) & +bind(C, name="_wrap_FN_VEnableConstVectorArray_ManyVector") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FN_VEnableWrmsNormVectorArray_ManyVector(farg1, farg2) & +bind(C, name="_wrap_FN_VEnableWrmsNormVectorArray_ManyVector") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FN_VEnableWrmsNormMaskVectorArray_ManyVector(farg1, farg2) & +bind(C, name="_wrap_FN_VEnableWrmsNormMaskVectorArray_ManyVector") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FN_VEnableDotProdMultiLocal_ManyVector(farg1, farg2) & +bind(C, name="_wrap_FN_VEnableDotProdMultiLocal_ManyVector") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + + +function swigc_FN_VGetSubvectorArrayPointer_ManyVector(farg1, farg2) & +bind(C, name="_wrap_FN_VGetSubvectorArrayPointer_ManyVector") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +#ifdef SUNDIALS_INT32_T +integer(C_INT32_T), intent(in) :: farg2 +#else +integer(C_INT64_T), intent(in) :: farg2 +#endif +type(C_PTR) :: fresult +end function + +end interface + + +contains + ! MODULE SUBPROGRAMS +function FN_VNew_ManyVector(num_subvectors, vec_array, sunctx) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +type(N_Vector), pointer :: swig_result +integer(C_INT32_T), intent(in) :: num_subvectors +type(C_PTR) :: vec_array +type(C_PTR) :: sunctx +type(C_PTR) :: fresult +integer(C_INT32_T) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = num_subvectors +farg2 = vec_array +farg3 = sunctx +fresult = swigc_FN_VNew_ManyVector(farg1, farg2, farg3) +call c_f_pointer(fresult, swig_result) +end function + +function FN_VGetSubvector_ManyVector(v, vec_num) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +type(N_Vector), pointer :: swig_result +type(N_Vector), target, intent(inout) :: v +integer(C_INT32_T), intent(in) :: vec_num +type(C_PTR) :: fresult +type(C_PTR) :: farg1 +integer(C_INT32_T) :: farg2 + +farg1 = c_loc(v) +farg2 = vec_num +fresult = swigc_FN_VGetSubvector_ManyVector(farg1, farg2) +call c_f_pointer(fresult, swig_result) +end function + +function FN_VSetSubvectorArrayPointer_ManyVector(v_data, v, vec_num) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +real(C_DOUBLE), dimension(*), target, intent(inout) :: v_data +type(N_Vector), target, intent(inout) :: v +integer(C_INT32_T), intent(in) :: vec_num +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +integer(C_INT32_T) :: farg3 + +farg1 = c_loc(v_data(1)) +farg2 = c_loc(v) +farg3 = vec_num +fresult = swigc_FN_VSetSubvectorArrayPointer_ManyVector(farg1, farg2, farg3) +swig_result = fresult +end function + +function FN_VGetNumSubvectors_ManyVector(v) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT32_T) :: swig_result +type(N_Vector), target, intent(inout) :: v +integer(C_INT32_T) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(v) +fresult = swigc_FN_VGetNumSubvectors_ManyVector(farg1) +swig_result = fresult +end function + +function FN_VGetVectorID_ManyVector(v) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(N_Vector_ID) :: swig_result +type(N_Vector), target, intent(inout) :: v +integer(C_INT) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(v) +fresult = swigc_FN_VGetVectorID_ManyVector(farg1) +swig_result = fresult +end function + +subroutine FN_VPrint_ManyVector(v) +use, intrinsic :: ISO_C_BINDING +type(N_Vector), target, intent(inout) :: v +type(C_PTR) :: farg1 + +farg1 = c_loc(v) +call swigc_FN_VPrint_ManyVector(farg1) +end subroutine + +subroutine FN_VPrintFile_ManyVector(v, outfile) +use, intrinsic :: ISO_C_BINDING +type(N_Vector), target, intent(inout) :: v +type(C_PTR) :: outfile +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = c_loc(v) +farg2 = outfile +call swigc_FN_VPrintFile_ManyVector(farg1, farg2) +end subroutine + +function FN_VCloneEmpty_ManyVector(w) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +type(N_Vector), pointer :: swig_result +type(N_Vector), target, intent(inout) :: w +type(C_PTR) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(w) +fresult = swigc_FN_VCloneEmpty_ManyVector(farg1) +call c_f_pointer(fresult, swig_result) +end function + +function FN_VClone_ManyVector(w) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +type(N_Vector), pointer :: swig_result +type(N_Vector), target, intent(inout) :: w +type(C_PTR) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(w) +fresult = swigc_FN_VClone_ManyVector(farg1) +call c_f_pointer(fresult, swig_result) +end function + +subroutine FN_VDestroy_ManyVector(v) +use, intrinsic :: ISO_C_BINDING +type(N_Vector), target, intent(inout) :: v +type(C_PTR) :: farg1 + +farg1 = c_loc(v) +call swigc_FN_VDestroy_ManyVector(farg1) +end subroutine + +subroutine FN_VSpace_ManyVector(v, lrw, liw) +use, intrinsic :: ISO_C_BINDING +type(N_Vector), target, intent(inout) :: v +integer(C_INT32_T), dimension(*), target, intent(inout) :: lrw +integer(C_INT32_T), dimension(*), target, intent(inout) :: liw +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = c_loc(v) +farg2 = c_loc(lrw(1)) +farg3 = c_loc(liw(1)) +call swigc_FN_VSpace_ManyVector(farg1, farg2, farg3) +end subroutine + +function FN_VGetLength_ManyVector(v) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT32_T) :: swig_result +type(N_Vector), target, intent(inout) :: v +integer(C_INT32_T) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(v) +fresult = swigc_FN_VGetLength_ManyVector(farg1) +swig_result = fresult +end function + +function FN_VGetSubvectorLocalLength_ManyVector(v, vec_num) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT32_T) :: swig_result +type(N_Vector), target, intent(inout) :: v +integer(C_INT32_T), intent(in) :: vec_num +integer(C_INT32_T) :: fresult +type(C_PTR) :: farg1 +integer(C_INT32_T) :: farg2 + +farg1 = c_loc(v) +farg2 = vec_num +fresult = swigc_FN_VGetSubvectorLocalLength_ManyVector(farg1, farg2) +swig_result = fresult +end function + +subroutine FN_VLinearSum_ManyVector(a, x, b, y, z) +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE), intent(in) :: a +type(N_Vector), target, intent(inout) :: x +real(C_DOUBLE), intent(in) :: b +type(N_Vector), target, intent(inout) :: y +type(N_Vector), target, intent(inout) :: z +real(C_DOUBLE) :: farg1 +type(C_PTR) :: farg2 +real(C_DOUBLE) :: farg3 +type(C_PTR) :: farg4 +type(C_PTR) :: farg5 + +farg1 = a +farg2 = c_loc(x) +farg3 = b +farg4 = c_loc(y) +farg5 = c_loc(z) +call swigc_FN_VLinearSum_ManyVector(farg1, farg2, farg3, farg4, farg5) +end subroutine + +subroutine FN_VConst_ManyVector(c, z) +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE), intent(in) :: c +type(N_Vector), target, intent(inout) :: z +real(C_DOUBLE) :: farg1 +type(C_PTR) :: farg2 + +farg1 = c +farg2 = c_loc(z) +call swigc_FN_VConst_ManyVector(farg1, farg2) +end subroutine + +subroutine FN_VProd_ManyVector(x, y, z) +use, intrinsic :: ISO_C_BINDING +type(N_Vector), target, intent(inout) :: x +type(N_Vector), target, intent(inout) :: y +type(N_Vector), target, intent(inout) :: z +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = c_loc(x) +farg2 = c_loc(y) +farg3 = c_loc(z) +call swigc_FN_VProd_ManyVector(farg1, farg2, farg3) +end subroutine + +subroutine FN_VDiv_ManyVector(x, y, z) +use, intrinsic :: ISO_C_BINDING +type(N_Vector), target, intent(inout) :: x +type(N_Vector), target, intent(inout) :: y +type(N_Vector), target, intent(inout) :: z +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = c_loc(x) +farg2 = c_loc(y) +farg3 = c_loc(z) +call swigc_FN_VDiv_ManyVector(farg1, farg2, farg3) +end subroutine + +subroutine FN_VScale_ManyVector(c, x, z) +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE), intent(in) :: c +type(N_Vector), target, intent(inout) :: x +type(N_Vector), target, intent(inout) :: z +real(C_DOUBLE) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = c +farg2 = c_loc(x) +farg3 = c_loc(z) +call swigc_FN_VScale_ManyVector(farg1, farg2, farg3) +end subroutine + +subroutine FN_VAbs_ManyVector(x, z) +use, intrinsic :: ISO_C_BINDING +type(N_Vector), target, intent(inout) :: x +type(N_Vector), target, intent(inout) :: z +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = c_loc(x) +farg2 = c_loc(z) +call swigc_FN_VAbs_ManyVector(farg1, farg2) +end subroutine + +subroutine FN_VInv_ManyVector(x, z) +use, intrinsic :: ISO_C_BINDING +type(N_Vector), target, intent(inout) :: x +type(N_Vector), target, intent(inout) :: z +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = c_loc(x) +farg2 = c_loc(z) +call swigc_FN_VInv_ManyVector(farg1, farg2) +end subroutine + +subroutine FN_VAddConst_ManyVector(x, b, z) +use, intrinsic :: ISO_C_BINDING +type(N_Vector), target, intent(inout) :: x +real(C_DOUBLE), intent(in) :: b +type(N_Vector), target, intent(inout) :: z +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 +type(C_PTR) :: farg3 + +farg1 = c_loc(x) +farg2 = b +farg3 = c_loc(z) +call swigc_FN_VAddConst_ManyVector(farg1, farg2, farg3) +end subroutine + +function FN_VWrmsNorm_ManyVector(x, w) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE) :: swig_result +type(N_Vector), target, intent(inout) :: x +type(N_Vector), target, intent(inout) :: w +real(C_DOUBLE) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = c_loc(x) +farg2 = c_loc(w) +fresult = swigc_FN_VWrmsNorm_ManyVector(farg1, farg2) +swig_result = fresult +end function + +function FN_VWrmsNormMask_ManyVector(x, w, id) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE) :: swig_result +type(N_Vector), target, intent(inout) :: x +type(N_Vector), target, intent(inout) :: w +type(N_Vector), target, intent(inout) :: id +real(C_DOUBLE) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = c_loc(x) +farg2 = c_loc(w) +farg3 = c_loc(id) +fresult = swigc_FN_VWrmsNormMask_ManyVector(farg1, farg2, farg3) +swig_result = fresult +end function + +function FN_VWL2Norm_ManyVector(x, w) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE) :: swig_result +type(N_Vector), target, intent(inout) :: x +type(N_Vector), target, intent(inout) :: w +real(C_DOUBLE) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = c_loc(x) +farg2 = c_loc(w) +fresult = swigc_FN_VWL2Norm_ManyVector(farg1, farg2) +swig_result = fresult +end function + +subroutine FN_VCompare_ManyVector(c, x, z) +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE), intent(in) :: c +type(N_Vector), target, intent(inout) :: x +type(N_Vector), target, intent(inout) :: z +real(C_DOUBLE) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = c +farg2 = c_loc(x) +farg3 = c_loc(z) +call swigc_FN_VCompare_ManyVector(farg1, farg2, farg3) +end subroutine + +function FN_VLinearCombination_ManyVector(nvec, c, v, z) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +integer(C_INT), intent(in) :: nvec +real(C_DOUBLE), dimension(*), target, intent(inout) :: c +type(C_PTR) :: v +type(N_Vector), target, intent(inout) :: z +integer(C_INT) :: fresult +integer(C_INT) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 +type(C_PTR) :: farg4 + +farg1 = nvec +farg2 = c_loc(c(1)) +farg3 = v +farg4 = c_loc(z) +fresult = swigc_FN_VLinearCombination_ManyVector(farg1, farg2, farg3, farg4) +swig_result = fresult +end function + +function FN_VScaleAddMulti_ManyVector(nvec, a, x, y, z) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +integer(C_INT), intent(in) :: nvec +real(C_DOUBLE), dimension(*), target, intent(inout) :: a +type(N_Vector), target, intent(inout) :: x +type(C_PTR) :: y +type(C_PTR) :: z +integer(C_INT) :: fresult +integer(C_INT) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 +type(C_PTR) :: farg4 +type(C_PTR) :: farg5 + +farg1 = nvec +farg2 = c_loc(a(1)) +farg3 = c_loc(x) +farg4 = y +farg5 = z +fresult = swigc_FN_VScaleAddMulti_ManyVector(farg1, farg2, farg3, farg4, farg5) +swig_result = fresult +end function + +function FN_VDotProdMulti_ManyVector(nvec, x, y, dotprods) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +integer(C_INT), intent(in) :: nvec +type(N_Vector), target, intent(inout) :: x +type(C_PTR) :: y +real(C_DOUBLE), dimension(*), target, intent(inout) :: dotprods +integer(C_INT) :: fresult +integer(C_INT) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 +type(C_PTR) :: farg4 + +farg1 = nvec +farg2 = c_loc(x) +farg3 = y +farg4 = c_loc(dotprods(1)) +fresult = swigc_FN_VDotProdMulti_ManyVector(farg1, farg2, farg3, farg4) +swig_result = fresult +end function + +function FN_VLinearSumVectorArray_ManyVector(nvec, a, x, b, y, z) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +integer(C_INT), intent(in) :: nvec +real(C_DOUBLE), intent(in) :: a +type(C_PTR) :: x +real(C_DOUBLE), intent(in) :: b +type(C_PTR) :: y +type(C_PTR) :: z +integer(C_INT) :: fresult +integer(C_INT) :: farg1 +real(C_DOUBLE) :: farg2 +type(C_PTR) :: farg3 +real(C_DOUBLE) :: farg4 +type(C_PTR) :: farg5 +type(C_PTR) :: farg6 + +farg1 = nvec +farg2 = a +farg3 = x +farg4 = b +farg5 = y +farg6 = z +fresult = swigc_FN_VLinearSumVectorArray_ManyVector(farg1, farg2, farg3, farg4, farg5, farg6) +swig_result = fresult +end function + +function FN_VScaleVectorArray_ManyVector(nvec, c, x, z) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +integer(C_INT), intent(in) :: nvec +real(C_DOUBLE), dimension(*), target, intent(inout) :: c +type(C_PTR) :: x +type(C_PTR) :: z +integer(C_INT) :: fresult +integer(C_INT) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 +type(C_PTR) :: farg4 + +farg1 = nvec +farg2 = c_loc(c(1)) +farg3 = x +farg4 = z +fresult = swigc_FN_VScaleVectorArray_ManyVector(farg1, farg2, farg3, farg4) +swig_result = fresult +end function + +function FN_VConstVectorArray_ManyVector(nvecs, c, z) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +integer(C_INT), intent(in) :: nvecs +real(C_DOUBLE), intent(in) :: c +type(C_PTR) :: z +integer(C_INT) :: fresult +integer(C_INT) :: farg1 +real(C_DOUBLE) :: farg2 +type(C_PTR) :: farg3 + +farg1 = nvecs +farg2 = c +farg3 = z +fresult = swigc_FN_VConstVectorArray_ManyVector(farg1, farg2, farg3) +swig_result = fresult +end function + +function FN_VWrmsNormVectorArray_ManyVector(nvecs, x, w, nrm) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +integer(C_INT), intent(in) :: nvecs +type(C_PTR) :: x +type(C_PTR) :: w +real(C_DOUBLE), dimension(*), target, intent(inout) :: nrm +integer(C_INT) :: fresult +integer(C_INT) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 +type(C_PTR) :: farg4 + +farg1 = nvecs +farg2 = x +farg3 = w +farg4 = c_loc(nrm(1)) +fresult = swigc_FN_VWrmsNormVectorArray_ManyVector(farg1, farg2, farg3, farg4) +swig_result = fresult +end function + +function FN_VWrmsNormMaskVectorArray_ManyVector(nvec, x, w, id, nrm) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +integer(C_INT), intent(in) :: nvec +type(C_PTR) :: x +type(C_PTR) :: w +type(N_Vector), target, intent(inout) :: id +real(C_DOUBLE), dimension(*), target, intent(inout) :: nrm +integer(C_INT) :: fresult +integer(C_INT) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 +type(C_PTR) :: farg4 +type(C_PTR) :: farg5 + +farg1 = nvec +farg2 = x +farg3 = w +farg4 = c_loc(id) +farg5 = c_loc(nrm(1)) +fresult = swigc_FN_VWrmsNormMaskVectorArray_ManyVector(farg1, farg2, farg3, farg4, farg5) +swig_result = fresult +end function + +function FN_VDotProdLocal_ManyVector(x, y) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE) :: swig_result +type(N_Vector), target, intent(inout) :: x +type(N_Vector), target, intent(inout) :: y +real(C_DOUBLE) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = c_loc(x) +farg2 = c_loc(y) +fresult = swigc_FN_VDotProdLocal_ManyVector(farg1, farg2) +swig_result = fresult +end function + +function FN_VMaxNormLocal_ManyVector(x) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE) :: swig_result +type(N_Vector), target, intent(inout) :: x +real(C_DOUBLE) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(x) +fresult = swigc_FN_VMaxNormLocal_ManyVector(farg1) +swig_result = fresult +end function + +function FN_VMinLocal_ManyVector(x) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE) :: swig_result +type(N_Vector), target, intent(inout) :: x +real(C_DOUBLE) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(x) +fresult = swigc_FN_VMinLocal_ManyVector(farg1) +swig_result = fresult +end function + +function FN_VL1NormLocal_ManyVector(x) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE) :: swig_result +type(N_Vector), target, intent(inout) :: x +real(C_DOUBLE) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(x) +fresult = swigc_FN_VL1NormLocal_ManyVector(farg1) +swig_result = fresult +end function + +function FN_VWSqrSumLocal_ManyVector(x, w) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE) :: swig_result +type(N_Vector), target, intent(inout) :: x +type(N_Vector), target, intent(inout) :: w +real(C_DOUBLE) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = c_loc(x) +farg2 = c_loc(w) +fresult = swigc_FN_VWSqrSumLocal_ManyVector(farg1, farg2) +swig_result = fresult +end function + +function FN_VWSqrSumMaskLocal_ManyVector(x, w, id) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE) :: swig_result +type(N_Vector), target, intent(inout) :: x +type(N_Vector), target, intent(inout) :: w +type(N_Vector), target, intent(inout) :: id +real(C_DOUBLE) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = c_loc(x) +farg2 = c_loc(w) +farg3 = c_loc(id) +fresult = swigc_FN_VWSqrSumMaskLocal_ManyVector(farg1, farg2, farg3) +swig_result = fresult +end function + +function FN_VInvTestLocal_ManyVector(x, z) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(N_Vector), target, intent(inout) :: x +type(N_Vector), target, intent(inout) :: z +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = c_loc(x) +farg2 = c_loc(z) +fresult = swigc_FN_VInvTestLocal_ManyVector(farg1, farg2) +swig_result = fresult +end function + +function FN_VConstrMaskLocal_ManyVector(c, x, m) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(N_Vector), target, intent(inout) :: c +type(N_Vector), target, intent(inout) :: x +type(N_Vector), target, intent(inout) :: m +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = c_loc(c) +farg2 = c_loc(x) +farg3 = c_loc(m) +fresult = swigc_FN_VConstrMaskLocal_ManyVector(farg1, farg2, farg3) +swig_result = fresult +end function + +function FN_VMinQuotientLocal_ManyVector(num, denom) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE) :: swig_result +type(N_Vector), target, intent(inout) :: num +type(N_Vector), target, intent(inout) :: denom +real(C_DOUBLE) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = c_loc(num) +farg2 = c_loc(denom) +fresult = swigc_FN_VMinQuotientLocal_ManyVector(farg1, farg2) +swig_result = fresult +end function + +function FN_VDotProdMultiLocal_ManyVector(nvec, x, y, dotprods) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +integer(C_INT), intent(in) :: nvec +type(N_Vector), target, intent(inout) :: x +type(C_PTR) :: y +real(C_DOUBLE), dimension(*), target, intent(inout) :: dotprods +integer(C_INT) :: fresult +integer(C_INT) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 +type(C_PTR) :: farg4 + +farg1 = nvec +farg2 = c_loc(x) +farg3 = y +farg4 = c_loc(dotprods(1)) +fresult = swigc_FN_VDotProdMultiLocal_ManyVector(farg1, farg2, farg3, farg4) +swig_result = fresult +end function + +function FN_VBufSize_ManyVector(x, size) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(N_Vector), target, intent(inout) :: x +integer(C_INT32_T), dimension(*), target, intent(inout) :: size +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = c_loc(x) +farg2 = c_loc(size(1)) +fresult = swigc_FN_VBufSize_ManyVector(farg1, farg2) +swig_result = fresult +end function + +function FN_VBufPack_ManyVector(x, buf) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(N_Vector), target, intent(inout) :: x +type(C_PTR) :: buf +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = c_loc(x) +farg2 = buf +fresult = swigc_FN_VBufPack_ManyVector(farg1, farg2) +swig_result = fresult +end function + +function FN_VBufUnpack_ManyVector(x, buf) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(N_Vector), target, intent(inout) :: x +type(C_PTR) :: buf +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = c_loc(x) +farg2 = buf +fresult = swigc_FN_VBufUnpack_ManyVector(farg1, farg2) +swig_result = fresult +end function + +function FN_VEnableFusedOps_ManyVector(v, tf) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(N_Vector), target, intent(inout) :: v +integer(C_INT), intent(in) :: tf +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = c_loc(v) +farg2 = tf +fresult = swigc_FN_VEnableFusedOps_ManyVector(farg1, farg2) +swig_result = fresult +end function + +function FN_VEnableLinearCombination_ManyVector(v, tf) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(N_Vector), target, intent(inout) :: v +integer(C_INT), intent(in) :: tf +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = c_loc(v) +farg2 = tf +fresult = swigc_FN_VEnableLinearCombination_ManyVector(farg1, farg2) +swig_result = fresult +end function + +function FN_VEnableScaleAddMulti_ManyVector(v, tf) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(N_Vector), target, intent(inout) :: v +integer(C_INT), intent(in) :: tf +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = c_loc(v) +farg2 = tf +fresult = swigc_FN_VEnableScaleAddMulti_ManyVector(farg1, farg2) +swig_result = fresult +end function + +function FN_VEnableDotProdMulti_ManyVector(v, tf) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(N_Vector), target, intent(inout) :: v +integer(C_INT), intent(in) :: tf +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = c_loc(v) +farg2 = tf +fresult = swigc_FN_VEnableDotProdMulti_ManyVector(farg1, farg2) +swig_result = fresult +end function + +function FN_VEnableLinearSumVectorArray_ManyVector(v, tf) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(N_Vector), target, intent(inout) :: v +integer(C_INT), intent(in) :: tf +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = c_loc(v) +farg2 = tf +fresult = swigc_FN_VEnableLinearSumVectorArray_ManyVector(farg1, farg2) +swig_result = fresult +end function + +function FN_VEnableScaleVectorArray_ManyVector(v, tf) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(N_Vector), target, intent(inout) :: v +integer(C_INT), intent(in) :: tf +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = c_loc(v) +farg2 = tf +fresult = swigc_FN_VEnableScaleVectorArray_ManyVector(farg1, farg2) +swig_result = fresult +end function + +function FN_VEnableConstVectorArray_ManyVector(v, tf) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(N_Vector), target, intent(inout) :: v +integer(C_INT), intent(in) :: tf +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = c_loc(v) +farg2 = tf +fresult = swigc_FN_VEnableConstVectorArray_ManyVector(farg1, farg2) +swig_result = fresult +end function + +function FN_VEnableWrmsNormVectorArray_ManyVector(v, tf) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(N_Vector), target, intent(inout) :: v +integer(C_INT), intent(in) :: tf +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = c_loc(v) +farg2 = tf +fresult = swigc_FN_VEnableWrmsNormVectorArray_ManyVector(farg1, farg2) +swig_result = fresult +end function + +function FN_VEnableWrmsNormMaskVectorArray_ManyVector(v, tf) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(N_Vector), target, intent(inout) :: v +integer(C_INT), intent(in) :: tf +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = c_loc(v) +farg2 = tf +fresult = swigc_FN_VEnableWrmsNormMaskVectorArray_ManyVector(farg1, farg2) +swig_result = fresult +end function + +function FN_VEnableDotProdMultiLocal_ManyVector(v, tf) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(N_Vector), target, intent(inout) :: v +integer(C_INT), intent(in) :: tf +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = c_loc(v) +farg2 = tf +fresult = swigc_FN_VEnableDotProdMultiLocal_ManyVector(farg1, farg2) +swig_result = fresult +end function + + +function FN_VGetSubvectorArrayPointer_ManyVector(v, vec_num) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE), dimension(:), pointer :: swig_result +type(N_Vector), target, intent(inout) :: v +#ifdef SUNDIALS_INT32_T +integer(C_INT32_T), intent(in) :: vec_num +#else +integer(C_INT64_T), intent(in) :: vec_num +#endif +type(C_PTR) :: fresult +type(C_PTR) :: farg1 +#ifdef SUNDIALS_INT32_T +integer(C_INT32_T) :: farg2 +#else +integer(C_INT64_T) :: farg2 +#endif + +farg1 = c_loc(v) +farg2 = vec_num +fresult = swigc_FN_VGetSubvectorArrayPointer_ManyVector(farg1, farg2) +call c_f_pointer(fresult, swig_result, [FN_VGetSubvectorLocalLength_ManyVector(v, vec_num)]) +end function + + +end module diff --git a/src/nvector/manyvector/fmod_int32/fnvector_mpimanyvector_mod.c b/src/nvector/manyvector/fmod_int32/fnvector_mpimanyvector_mod.c new file mode 100644 index 0000000000..b567955a3d --- /dev/null +++ b/src/nvector/manyvector/fmod_int32/fnvector_mpimanyvector_mod.c @@ -0,0 +1,1167 @@ +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.0 + * + * This file is not intended to be easily readable and contains a number of + * coding conventions designed to improve portability and efficiency. Do not make + * changes to this file unless you know what you are doing--modify the SWIG + * interface file instead. + * ----------------------------------------------------------------------------- */ + +/* --------------------------------------------------------------- + * Programmer(s): Auto-generated by swig. + * --------------------------------------------------------------- + * SUNDIALS Copyright Start + * Copyright (c) 2002-2024, Lawrence Livermore National Security + * and Southern Methodist University. + * All rights reserved. + * + * See the top-level LICENSE and NOTICE files for details. + * + * SPDX-License-Identifier: BSD-3-Clause + * SUNDIALS Copyright End + * -------------------------------------------------------------*/ + +/* ----------------------------------------------------------------------------- + * This section contains generic SWIG labels for method/variable + * declarations/attributes, and other compiler dependent labels. + * ----------------------------------------------------------------------------- */ + +/* template workaround for compilers that cannot correctly implement the C++ standard */ +#ifndef SWIGTEMPLATEDISAMBIGUATOR +# if defined(__SUNPRO_CC) && (__SUNPRO_CC <= 0x560) +# define SWIGTEMPLATEDISAMBIGUATOR template +# elif defined(__HP_aCC) +/* Needed even with `aCC -AA' when `aCC -V' reports HP ANSI C++ B3910B A.03.55 */ +/* If we find a maximum version that requires this, the test would be __HP_aCC <= 35500 for A.03.55 */ +# define SWIGTEMPLATEDISAMBIGUATOR template +# else +# define SWIGTEMPLATEDISAMBIGUATOR +# endif +#endif + +/* inline attribute */ +#ifndef SWIGINLINE +# if defined(__cplusplus) || (defined(__GNUC__) && !defined(__STRICT_ANSI__)) +# define SWIGINLINE inline +# else +# define SWIGINLINE +# endif +#endif + +/* attribute recognised by some compilers to avoid 'unused' warnings */ +#ifndef SWIGUNUSED +# if defined(__GNUC__) +# if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)) +# define SWIGUNUSED __attribute__ ((__unused__)) +# else +# define SWIGUNUSED +# endif +# elif defined(__ICC) +# define SWIGUNUSED __attribute__ ((__unused__)) +# else +# define SWIGUNUSED +# endif +#endif + +#ifndef SWIG_MSC_UNSUPPRESS_4505 +# if defined(_MSC_VER) +# pragma warning(disable : 4505) /* unreferenced local function has been removed */ +# endif +#endif + +#ifndef SWIGUNUSEDPARM +# ifdef __cplusplus +# define SWIGUNUSEDPARM(p) +# else +# define SWIGUNUSEDPARM(p) p SWIGUNUSED +# endif +#endif + +/* internal SWIG method */ +#ifndef SWIGINTERN +# define SWIGINTERN static SWIGUNUSED +#endif + +/* internal inline SWIG method */ +#ifndef SWIGINTERNINLINE +# define SWIGINTERNINLINE SWIGINTERN SWIGINLINE +#endif + +/* qualifier for exported *const* global data variables*/ +#ifndef SWIGEXTERN +# ifdef __cplusplus +# define SWIGEXTERN extern +# else +# define SWIGEXTERN +# endif +#endif + +/* exporting methods */ +#if defined(__GNUC__) +# if (__GNUC__ >= 4) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) +# ifndef GCC_HASCLASSVISIBILITY +# define GCC_HASCLASSVISIBILITY +# endif +# endif +#endif + +#ifndef SWIGEXPORT +# if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__) +# if defined(STATIC_LINKED) +# define SWIGEXPORT +# else +# define SWIGEXPORT __declspec(dllexport) +# endif +# else +# if defined(__GNUC__) && defined(GCC_HASCLASSVISIBILITY) +# define SWIGEXPORT __attribute__ ((visibility("default"))) +# else +# define SWIGEXPORT +# endif +# endif +#endif + +/* calling conventions for Windows */ +#ifndef SWIGSTDCALL +# if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__) +# define SWIGSTDCALL __stdcall +# else +# define SWIGSTDCALL +# endif +#endif + +/* Deal with Microsoft's attempt at deprecating C standard runtime functions */ +#if !defined(SWIG_NO_CRT_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_CRT_SECURE_NO_DEPRECATE) +# define _CRT_SECURE_NO_DEPRECATE +#endif + +/* Deal with Microsoft's attempt at deprecating methods in the standard C++ library */ +#if !defined(SWIG_NO_SCL_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_SCL_SECURE_NO_DEPRECATE) +# define _SCL_SECURE_NO_DEPRECATE +#endif + +/* Deal with Apple's deprecated 'AssertMacros.h' from Carbon-framework */ +#if defined(__APPLE__) && !defined(__ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES) +# define __ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES 0 +#endif + +/* Intel's compiler complains if a variable which was never initialised is + * cast to void, which is a common idiom which we use to indicate that we + * are aware a variable isn't used. So we just silence that warning. + * See: https://github.com/swig/swig/issues/192 for more discussion. + */ +#ifdef __INTEL_COMPILER +# pragma warning disable 592 +#endif + +/* Errors in SWIG */ +#define SWIG_UnknownError -1 +#define SWIG_IOError -2 +#define SWIG_RuntimeError -3 +#define SWIG_IndexError -4 +#define SWIG_TypeError -5 +#define SWIG_DivisionByZero -6 +#define SWIG_OverflowError -7 +#define SWIG_SyntaxError -8 +#define SWIG_ValueError -9 +#define SWIG_SystemError -10 +#define SWIG_AttributeError -11 +#define SWIG_MemoryError -12 +#define SWIG_NullReferenceError -13 + + + + +#include +#define SWIG_exception_impl(DECL, CODE, MSG, RETURNNULL) \ + { printf("In " DECL ": " MSG); assert(0); RETURNNULL; } + + +#include +#if defined(_MSC_VER) || defined(__BORLANDC__) || defined(_WATCOM) +# ifndef snprintf +# define snprintf _snprintf +# endif +#endif + + +/* Support for the `contract` feature. + * + * Note that RETURNNULL is first because it's inserted via a 'Replaceall' in + * the fortran.cxx file. + */ +#define SWIG_contract_assert(RETURNNULL, EXPR, MSG) \ + if (!(EXPR)) { SWIG_exception_impl("$decl", SWIG_ValueError, MSG, RETURNNULL); } + + +#define SWIGVERSION 0x040000 +#define SWIG_VERSION SWIGVERSION + + +#define SWIG_as_voidptr(a) (void *)((const void *)(a)) +#define SWIG_as_voidptrptr(a) ((void)SWIG_as_voidptr(*a),(void**)(a)) + + +#include "sundials/sundials_nvector.h" + + +#include "nvector/nvector_mpimanyvector.h" + +SWIGEXPORT N_Vector _wrap_FN_VMake_MPIManyVector(int const *farg1, int32_t const *farg2, void *farg3, void *farg4) { + N_Vector fresult ; + MPI_Comm arg1 ; + sunindextype arg2 ; + N_Vector *arg3 = (N_Vector *) 0 ; + SUNContext arg4 = (SUNContext) 0 ; + N_Vector result; + +#if SUNDIALS_MPI_ENABLED + int flag = 0; + MPI_Initialized(&flag); + if(flag) { + arg1 = MPI_Comm_f2c((MPI_Fint)(*farg1)); + } else { + arg1 = SUN_COMM_NULL; + } +#else + arg1 = *farg1; +#endif + arg2 = (sunindextype)(*farg2); + arg3 = (N_Vector *)(farg3); + arg4 = (SUNContext)(farg4); + result = (N_Vector)N_VMake_MPIManyVector(arg1,arg2,arg3,arg4); + fresult = result; + return fresult; +} + + +SWIGEXPORT N_Vector _wrap_FN_VNew_MPIManyVector(int32_t const *farg1, void *farg2, void *farg3) { + N_Vector fresult ; + sunindextype arg1 ; + N_Vector *arg2 = (N_Vector *) 0 ; + SUNContext arg3 = (SUNContext) 0 ; + N_Vector result; + + arg1 = (sunindextype)(*farg1); + arg2 = (N_Vector *)(farg2); + arg3 = (SUNContext)(farg3); + result = (N_Vector)N_VNew_MPIManyVector(arg1,arg2,arg3); + fresult = result; + return fresult; +} + + +SWIGEXPORT N_Vector _wrap_FN_VGetSubvector_MPIManyVector(N_Vector farg1, int32_t const *farg2) { + N_Vector fresult ; + N_Vector arg1 = (N_Vector) 0 ; + sunindextype arg2 ; + N_Vector result; + + arg1 = (N_Vector)(farg1); + arg2 = (sunindextype)(*farg2); + result = (N_Vector)N_VGetSubvector_MPIManyVector(arg1,arg2); + fresult = result; + return fresult; +} + + +SWIGEXPORT int _wrap_FN_VSetSubvectorArrayPointer_MPIManyVector(double *farg1, N_Vector farg2, int32_t const *farg3) { + int fresult ; + sunrealtype *arg1 = (sunrealtype *) 0 ; + N_Vector arg2 = (N_Vector) 0 ; + sunindextype arg3 ; + SUNErrCode result; + + arg1 = (sunrealtype *)(farg1); + arg2 = (N_Vector)(farg2); + arg3 = (sunindextype)(*farg3); + result = (SUNErrCode)N_VSetSubvectorArrayPointer_MPIManyVector(arg1,arg2,arg3); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int32_t _wrap_FN_VGetNumSubvectors_MPIManyVector(N_Vector farg1) { + int32_t fresult ; + N_Vector arg1 = (N_Vector) 0 ; + sunindextype result; + + arg1 = (N_Vector)(farg1); + result = N_VGetNumSubvectors_MPIManyVector(arg1); + fresult = (sunindextype)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FN_VGetVectorID_MPIManyVector(N_Vector farg1) { + int fresult ; + N_Vector arg1 = (N_Vector) 0 ; + N_Vector_ID result; + + arg1 = (N_Vector)(farg1); + result = (N_Vector_ID)N_VGetVectorID_MPIManyVector(arg1); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT void _wrap_FN_VPrint_MPIManyVector(N_Vector farg1) { + N_Vector arg1 = (N_Vector) 0 ; + + arg1 = (N_Vector)(farg1); + N_VPrint_MPIManyVector(arg1); +} + + +SWIGEXPORT void _wrap_FN_VPrintFile_MPIManyVector(N_Vector farg1, void *farg2) { + N_Vector arg1 = (N_Vector) 0 ; + FILE *arg2 = (FILE *) 0 ; + + arg1 = (N_Vector)(farg1); + arg2 = (FILE *)(farg2); + N_VPrintFile_MPIManyVector(arg1,arg2); +} + + +SWIGEXPORT N_Vector _wrap_FN_VCloneEmpty_MPIManyVector(N_Vector farg1) { + N_Vector fresult ; + N_Vector arg1 = (N_Vector) 0 ; + N_Vector result; + + arg1 = (N_Vector)(farg1); + result = (N_Vector)N_VCloneEmpty_MPIManyVector(arg1); + fresult = result; + return fresult; +} + + +SWIGEXPORT N_Vector _wrap_FN_VClone_MPIManyVector(N_Vector farg1) { + N_Vector fresult ; + N_Vector arg1 = (N_Vector) 0 ; + N_Vector result; + + arg1 = (N_Vector)(farg1); + result = (N_Vector)N_VClone_MPIManyVector(arg1); + fresult = result; + return fresult; +} + + +SWIGEXPORT void _wrap_FN_VDestroy_MPIManyVector(N_Vector farg1) { + N_Vector arg1 = (N_Vector) 0 ; + + arg1 = (N_Vector)(farg1); + N_VDestroy_MPIManyVector(arg1); +} + + +SWIGEXPORT void _wrap_FN_VSpace_MPIManyVector(N_Vector farg1, int32_t *farg2, int32_t *farg3) { + N_Vector arg1 = (N_Vector) 0 ; + sunindextype *arg2 = (sunindextype *) 0 ; + sunindextype *arg3 = (sunindextype *) 0 ; + + arg1 = (N_Vector)(farg1); + arg2 = (sunindextype *)(farg2); + arg3 = (sunindextype *)(farg3); + N_VSpace_MPIManyVector(arg1,arg2,arg3); +} + + +SWIGEXPORT int _wrap_FN_VGetCommunicator_MPIManyVector(N_Vector farg1) { + int fresult ; + N_Vector arg1 = (N_Vector) 0 ; + MPI_Comm result; + + arg1 = (N_Vector)(farg1); + result = N_VGetCommunicator_MPIManyVector(arg1); +#if SUNDIALS_MPI_ENABLED + int flag = 0; + MPI_Initialized(&flag); + if(flag) { + fresult = (int)(MPI_Comm_c2f(result)); + } else { + fresult = 0; + } +#else + fresult = result; +#endif + return fresult; +} + + +SWIGEXPORT int32_t _wrap_FN_VGetLength_MPIManyVector(N_Vector farg1) { + int32_t fresult ; + N_Vector arg1 = (N_Vector) 0 ; + sunindextype result; + + arg1 = (N_Vector)(farg1); + result = N_VGetLength_MPIManyVector(arg1); + fresult = (sunindextype)(result); + return fresult; +} + + +SWIGEXPORT int32_t _wrap_FN_VGetSubvectorLocalLength_MPIManyVector(N_Vector farg1, int32_t const *farg2) { + int32_t fresult ; + N_Vector arg1 = (N_Vector) 0 ; + sunindextype arg2 ; + sunindextype result; + + arg1 = (N_Vector)(farg1); + arg2 = (sunindextype)(*farg2); + result = N_VGetSubvectorLocalLength_MPIManyVector(arg1,arg2); + fresult = (sunindextype)(result); + return fresult; +} + + +SWIGEXPORT void _wrap_FN_VLinearSum_MPIManyVector(double const *farg1, N_Vector farg2, double const *farg3, N_Vector farg4, N_Vector farg5) { + sunrealtype arg1 ; + N_Vector arg2 = (N_Vector) 0 ; + sunrealtype arg3 ; + N_Vector arg4 = (N_Vector) 0 ; + N_Vector arg5 = (N_Vector) 0 ; + + arg1 = (sunrealtype)(*farg1); + arg2 = (N_Vector)(farg2); + arg3 = (sunrealtype)(*farg3); + arg4 = (N_Vector)(farg4); + arg5 = (N_Vector)(farg5); + N_VLinearSum_MPIManyVector(arg1,arg2,arg3,arg4,arg5); +} + + +SWIGEXPORT void _wrap_FN_VConst_MPIManyVector(double const *farg1, N_Vector farg2) { + sunrealtype arg1 ; + N_Vector arg2 = (N_Vector) 0 ; + + arg1 = (sunrealtype)(*farg1); + arg2 = (N_Vector)(farg2); + N_VConst_MPIManyVector(arg1,arg2); +} + + +SWIGEXPORT void _wrap_FN_VProd_MPIManyVector(N_Vector farg1, N_Vector farg2, N_Vector farg3) { + N_Vector arg1 = (N_Vector) 0 ; + N_Vector arg2 = (N_Vector) 0 ; + N_Vector arg3 = (N_Vector) 0 ; + + arg1 = (N_Vector)(farg1); + arg2 = (N_Vector)(farg2); + arg3 = (N_Vector)(farg3); + N_VProd_MPIManyVector(arg1,arg2,arg3); +} + + +SWIGEXPORT void _wrap_FN_VDiv_MPIManyVector(N_Vector farg1, N_Vector farg2, N_Vector farg3) { + N_Vector arg1 = (N_Vector) 0 ; + N_Vector arg2 = (N_Vector) 0 ; + N_Vector arg3 = (N_Vector) 0 ; + + arg1 = (N_Vector)(farg1); + arg2 = (N_Vector)(farg2); + arg3 = (N_Vector)(farg3); + N_VDiv_MPIManyVector(arg1,arg2,arg3); +} + + +SWIGEXPORT void _wrap_FN_VScale_MPIManyVector(double const *farg1, N_Vector farg2, N_Vector farg3) { + sunrealtype arg1 ; + N_Vector arg2 = (N_Vector) 0 ; + N_Vector arg3 = (N_Vector) 0 ; + + arg1 = (sunrealtype)(*farg1); + arg2 = (N_Vector)(farg2); + arg3 = (N_Vector)(farg3); + N_VScale_MPIManyVector(arg1,arg2,arg3); +} + + +SWIGEXPORT void _wrap_FN_VAbs_MPIManyVector(N_Vector farg1, N_Vector farg2) { + N_Vector arg1 = (N_Vector) 0 ; + N_Vector arg2 = (N_Vector) 0 ; + + arg1 = (N_Vector)(farg1); + arg2 = (N_Vector)(farg2); + N_VAbs_MPIManyVector(arg1,arg2); +} + + +SWIGEXPORT void _wrap_FN_VInv_MPIManyVector(N_Vector farg1, N_Vector farg2) { + N_Vector arg1 = (N_Vector) 0 ; + N_Vector arg2 = (N_Vector) 0 ; + + arg1 = (N_Vector)(farg1); + arg2 = (N_Vector)(farg2); + N_VInv_MPIManyVector(arg1,arg2); +} + + +SWIGEXPORT void _wrap_FN_VAddConst_MPIManyVector(N_Vector farg1, double const *farg2, N_Vector farg3) { + N_Vector arg1 = (N_Vector) 0 ; + sunrealtype arg2 ; + N_Vector arg3 = (N_Vector) 0 ; + + arg1 = (N_Vector)(farg1); + arg2 = (sunrealtype)(*farg2); + arg3 = (N_Vector)(farg3); + N_VAddConst_MPIManyVector(arg1,arg2,arg3); +} + + +SWIGEXPORT double _wrap_FN_VDotProd_MPIManyVector(N_Vector farg1, N_Vector farg2) { + double fresult ; + N_Vector arg1 = (N_Vector) 0 ; + N_Vector arg2 = (N_Vector) 0 ; + sunrealtype result; + + arg1 = (N_Vector)(farg1); + arg2 = (N_Vector)(farg2); + result = (sunrealtype)N_VDotProd_MPIManyVector(arg1,arg2); + fresult = (sunrealtype)(result); + return fresult; +} + + +SWIGEXPORT double _wrap_FN_VMaxNorm_MPIManyVector(N_Vector farg1) { + double fresult ; + N_Vector arg1 = (N_Vector) 0 ; + sunrealtype result; + + arg1 = (N_Vector)(farg1); + result = (sunrealtype)N_VMaxNorm_MPIManyVector(arg1); + fresult = (sunrealtype)(result); + return fresult; +} + + +SWIGEXPORT double _wrap_FN_VWrmsNorm_MPIManyVector(N_Vector farg1, N_Vector farg2) { + double fresult ; + N_Vector arg1 = (N_Vector) 0 ; + N_Vector arg2 = (N_Vector) 0 ; + sunrealtype result; + + arg1 = (N_Vector)(farg1); + arg2 = (N_Vector)(farg2); + result = (sunrealtype)N_VWrmsNorm_MPIManyVector(arg1,arg2); + fresult = (sunrealtype)(result); + return fresult; +} + + +SWIGEXPORT double _wrap_FN_VWrmsNormMask_MPIManyVector(N_Vector farg1, N_Vector farg2, N_Vector farg3) { + double fresult ; + N_Vector arg1 = (N_Vector) 0 ; + N_Vector arg2 = (N_Vector) 0 ; + N_Vector arg3 = (N_Vector) 0 ; + sunrealtype result; + + arg1 = (N_Vector)(farg1); + arg2 = (N_Vector)(farg2); + arg3 = (N_Vector)(farg3); + result = (sunrealtype)N_VWrmsNormMask_MPIManyVector(arg1,arg2,arg3); + fresult = (sunrealtype)(result); + return fresult; +} + + +SWIGEXPORT double _wrap_FN_VMin_MPIManyVector(N_Vector farg1) { + double fresult ; + N_Vector arg1 = (N_Vector) 0 ; + sunrealtype result; + + arg1 = (N_Vector)(farg1); + result = (sunrealtype)N_VMin_MPIManyVector(arg1); + fresult = (sunrealtype)(result); + return fresult; +} + + +SWIGEXPORT double _wrap_FN_VWL2Norm_MPIManyVector(N_Vector farg1, N_Vector farg2) { + double fresult ; + N_Vector arg1 = (N_Vector) 0 ; + N_Vector arg2 = (N_Vector) 0 ; + sunrealtype result; + + arg1 = (N_Vector)(farg1); + arg2 = (N_Vector)(farg2); + result = (sunrealtype)N_VWL2Norm_MPIManyVector(arg1,arg2); + fresult = (sunrealtype)(result); + return fresult; +} + + +SWIGEXPORT double _wrap_FN_VL1Norm_MPIManyVector(N_Vector farg1) { + double fresult ; + N_Vector arg1 = (N_Vector) 0 ; + sunrealtype result; + + arg1 = (N_Vector)(farg1); + result = (sunrealtype)N_VL1Norm_MPIManyVector(arg1); + fresult = (sunrealtype)(result); + return fresult; +} + + +SWIGEXPORT void _wrap_FN_VCompare_MPIManyVector(double const *farg1, N_Vector farg2, N_Vector farg3) { + sunrealtype arg1 ; + N_Vector arg2 = (N_Vector) 0 ; + N_Vector arg3 = (N_Vector) 0 ; + + arg1 = (sunrealtype)(*farg1); + arg2 = (N_Vector)(farg2); + arg3 = (N_Vector)(farg3); + N_VCompare_MPIManyVector(arg1,arg2,arg3); +} + + +SWIGEXPORT int _wrap_FN_VInvTest_MPIManyVector(N_Vector farg1, N_Vector farg2) { + int fresult ; + N_Vector arg1 = (N_Vector) 0 ; + N_Vector arg2 = (N_Vector) 0 ; + int result; + + arg1 = (N_Vector)(farg1); + arg2 = (N_Vector)(farg2); + result = (int)N_VInvTest_MPIManyVector(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FN_VConstrMask_MPIManyVector(N_Vector farg1, N_Vector farg2, N_Vector farg3) { + int fresult ; + N_Vector arg1 = (N_Vector) 0 ; + N_Vector arg2 = (N_Vector) 0 ; + N_Vector arg3 = (N_Vector) 0 ; + int result; + + arg1 = (N_Vector)(farg1); + arg2 = (N_Vector)(farg2); + arg3 = (N_Vector)(farg3); + result = (int)N_VConstrMask_MPIManyVector(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT double _wrap_FN_VMinQuotient_MPIManyVector(N_Vector farg1, N_Vector farg2) { + double fresult ; + N_Vector arg1 = (N_Vector) 0 ; + N_Vector arg2 = (N_Vector) 0 ; + sunrealtype result; + + arg1 = (N_Vector)(farg1); + arg2 = (N_Vector)(farg2); + result = (sunrealtype)N_VMinQuotient_MPIManyVector(arg1,arg2); + fresult = (sunrealtype)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FN_VLinearCombination_MPIManyVector(int const *farg1, double *farg2, void *farg3, N_Vector farg4) { + int fresult ; + int arg1 ; + sunrealtype *arg2 = (sunrealtype *) 0 ; + N_Vector *arg3 = (N_Vector *) 0 ; + N_Vector arg4 = (N_Vector) 0 ; + SUNErrCode result; + + arg1 = (int)(*farg1); + arg2 = (sunrealtype *)(farg2); + arg3 = (N_Vector *)(farg3); + arg4 = (N_Vector)(farg4); + result = (SUNErrCode)N_VLinearCombination_MPIManyVector(arg1,arg2,arg3,arg4); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FN_VScaleAddMulti_MPIManyVector(int const *farg1, double *farg2, N_Vector farg3, void *farg4, void *farg5) { + int fresult ; + int arg1 ; + sunrealtype *arg2 = (sunrealtype *) 0 ; + N_Vector arg3 = (N_Vector) 0 ; + N_Vector *arg4 = (N_Vector *) 0 ; + N_Vector *arg5 = (N_Vector *) 0 ; + SUNErrCode result; + + arg1 = (int)(*farg1); + arg2 = (sunrealtype *)(farg2); + arg3 = (N_Vector)(farg3); + arg4 = (N_Vector *)(farg4); + arg5 = (N_Vector *)(farg5); + result = (SUNErrCode)N_VScaleAddMulti_MPIManyVector(arg1,arg2,arg3,arg4,arg5); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FN_VDotProdMulti_MPIManyVector(int const *farg1, N_Vector farg2, void *farg3, double *farg4) { + int fresult ; + int arg1 ; + N_Vector arg2 = (N_Vector) 0 ; + N_Vector *arg3 = (N_Vector *) 0 ; + sunrealtype *arg4 = (sunrealtype *) 0 ; + SUNErrCode result; + + arg1 = (int)(*farg1); + arg2 = (N_Vector)(farg2); + arg3 = (N_Vector *)(farg3); + arg4 = (sunrealtype *)(farg4); + result = (SUNErrCode)N_VDotProdMulti_MPIManyVector(arg1,arg2,arg3,arg4); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FN_VDotProdMultiLocal_MPIManyVector(int const *farg1, N_Vector farg2, void *farg3, double *farg4) { + int fresult ; + int arg1 ; + N_Vector arg2 = (N_Vector) 0 ; + N_Vector *arg3 = (N_Vector *) 0 ; + sunrealtype *arg4 = (sunrealtype *) 0 ; + SUNErrCode result; + + arg1 = (int)(*farg1); + arg2 = (N_Vector)(farg2); + arg3 = (N_Vector *)(farg3); + arg4 = (sunrealtype *)(farg4); + result = (SUNErrCode)N_VDotProdMultiLocal_MPIManyVector(arg1,arg2,arg3,arg4); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FN_VDotProdMultiAllReduce_MPIManyVector(int const *farg1, N_Vector farg2, double *farg3) { + int fresult ; + int arg1 ; + N_Vector arg2 = (N_Vector) 0 ; + sunrealtype *arg3 = (sunrealtype *) 0 ; + SUNErrCode result; + + arg1 = (int)(*farg1); + arg2 = (N_Vector)(farg2); + arg3 = (sunrealtype *)(farg3); + result = (SUNErrCode)N_VDotProdMultiAllReduce_MPIManyVector(arg1,arg2,arg3); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FN_VLinearSumVectorArray_MPIManyVector(int const *farg1, double const *farg2, void *farg3, double const *farg4, void *farg5, void *farg6) { + int fresult ; + int arg1 ; + sunrealtype arg2 ; + N_Vector *arg3 = (N_Vector *) 0 ; + sunrealtype arg4 ; + N_Vector *arg5 = (N_Vector *) 0 ; + N_Vector *arg6 = (N_Vector *) 0 ; + SUNErrCode result; + + arg1 = (int)(*farg1); + arg2 = (sunrealtype)(*farg2); + arg3 = (N_Vector *)(farg3); + arg4 = (sunrealtype)(*farg4); + arg5 = (N_Vector *)(farg5); + arg6 = (N_Vector *)(farg6); + result = (SUNErrCode)N_VLinearSumVectorArray_MPIManyVector(arg1,arg2,arg3,arg4,arg5,arg6); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FN_VScaleVectorArray_MPIManyVector(int const *farg1, double *farg2, void *farg3, void *farg4) { + int fresult ; + int arg1 ; + sunrealtype *arg2 = (sunrealtype *) 0 ; + N_Vector *arg3 = (N_Vector *) 0 ; + N_Vector *arg4 = (N_Vector *) 0 ; + SUNErrCode result; + + arg1 = (int)(*farg1); + arg2 = (sunrealtype *)(farg2); + arg3 = (N_Vector *)(farg3); + arg4 = (N_Vector *)(farg4); + result = (SUNErrCode)N_VScaleVectorArray_MPIManyVector(arg1,arg2,arg3,arg4); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FN_VConstVectorArray_MPIManyVector(int const *farg1, double const *farg2, void *farg3) { + int fresult ; + int arg1 ; + sunrealtype arg2 ; + N_Vector *arg3 = (N_Vector *) 0 ; + SUNErrCode result; + + arg1 = (int)(*farg1); + arg2 = (sunrealtype)(*farg2); + arg3 = (N_Vector *)(farg3); + result = (SUNErrCode)N_VConstVectorArray_MPIManyVector(arg1,arg2,arg3); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FN_VWrmsNormVectorArray_MPIManyVector(int const *farg1, void *farg2, void *farg3, double *farg4) { + int fresult ; + int arg1 ; + N_Vector *arg2 = (N_Vector *) 0 ; + N_Vector *arg3 = (N_Vector *) 0 ; + sunrealtype *arg4 = (sunrealtype *) 0 ; + SUNErrCode result; + + arg1 = (int)(*farg1); + arg2 = (N_Vector *)(farg2); + arg3 = (N_Vector *)(farg3); + arg4 = (sunrealtype *)(farg4); + result = (SUNErrCode)N_VWrmsNormVectorArray_MPIManyVector(arg1,arg2,arg3,arg4); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FN_VWrmsNormMaskVectorArray_MPIManyVector(int const *farg1, void *farg2, void *farg3, N_Vector farg4, double *farg5) { + int fresult ; + int arg1 ; + N_Vector *arg2 = (N_Vector *) 0 ; + N_Vector *arg3 = (N_Vector *) 0 ; + N_Vector arg4 = (N_Vector) 0 ; + sunrealtype *arg5 = (sunrealtype *) 0 ; + SUNErrCode result; + + arg1 = (int)(*farg1); + arg2 = (N_Vector *)(farg2); + arg3 = (N_Vector *)(farg3); + arg4 = (N_Vector)(farg4); + arg5 = (sunrealtype *)(farg5); + result = (SUNErrCode)N_VWrmsNormMaskVectorArray_MPIManyVector(arg1,arg2,arg3,arg4,arg5); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT double _wrap_FN_VDotProdLocal_MPIManyVector(N_Vector farg1, N_Vector farg2) { + double fresult ; + N_Vector arg1 = (N_Vector) 0 ; + N_Vector arg2 = (N_Vector) 0 ; + sunrealtype result; + + arg1 = (N_Vector)(farg1); + arg2 = (N_Vector)(farg2); + result = (sunrealtype)N_VDotProdLocal_MPIManyVector(arg1,arg2); + fresult = (sunrealtype)(result); + return fresult; +} + + +SWIGEXPORT double _wrap_FN_VMaxNormLocal_MPIManyVector(N_Vector farg1) { + double fresult ; + N_Vector arg1 = (N_Vector) 0 ; + sunrealtype result; + + arg1 = (N_Vector)(farg1); + result = (sunrealtype)N_VMaxNormLocal_MPIManyVector(arg1); + fresult = (sunrealtype)(result); + return fresult; +} + + +SWIGEXPORT double _wrap_FN_VMinLocal_MPIManyVector(N_Vector farg1) { + double fresult ; + N_Vector arg1 = (N_Vector) 0 ; + sunrealtype result; + + arg1 = (N_Vector)(farg1); + result = (sunrealtype)N_VMinLocal_MPIManyVector(arg1); + fresult = (sunrealtype)(result); + return fresult; +} + + +SWIGEXPORT double _wrap_FN_VL1NormLocal_MPIManyVector(N_Vector farg1) { + double fresult ; + N_Vector arg1 = (N_Vector) 0 ; + sunrealtype result; + + arg1 = (N_Vector)(farg1); + result = (sunrealtype)N_VL1NormLocal_MPIManyVector(arg1); + fresult = (sunrealtype)(result); + return fresult; +} + + +SWIGEXPORT double _wrap_FN_VWSqrSumLocal_MPIManyVector(N_Vector farg1, N_Vector farg2) { + double fresult ; + N_Vector arg1 = (N_Vector) 0 ; + N_Vector arg2 = (N_Vector) 0 ; + sunrealtype result; + + arg1 = (N_Vector)(farg1); + arg2 = (N_Vector)(farg2); + result = (sunrealtype)N_VWSqrSumLocal_MPIManyVector(arg1,arg2); + fresult = (sunrealtype)(result); + return fresult; +} + + +SWIGEXPORT double _wrap_FN_VWSqrSumMaskLocal_MPIManyVector(N_Vector farg1, N_Vector farg2, N_Vector farg3) { + double fresult ; + N_Vector arg1 = (N_Vector) 0 ; + N_Vector arg2 = (N_Vector) 0 ; + N_Vector arg3 = (N_Vector) 0 ; + sunrealtype result; + + arg1 = (N_Vector)(farg1); + arg2 = (N_Vector)(farg2); + arg3 = (N_Vector)(farg3); + result = (sunrealtype)N_VWSqrSumMaskLocal_MPIManyVector(arg1,arg2,arg3); + fresult = (sunrealtype)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FN_VInvTestLocal_MPIManyVector(N_Vector farg1, N_Vector farg2) { + int fresult ; + N_Vector arg1 = (N_Vector) 0 ; + N_Vector arg2 = (N_Vector) 0 ; + int result; + + arg1 = (N_Vector)(farg1); + arg2 = (N_Vector)(farg2); + result = (int)N_VInvTestLocal_MPIManyVector(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FN_VConstrMaskLocal_MPIManyVector(N_Vector farg1, N_Vector farg2, N_Vector farg3) { + int fresult ; + N_Vector arg1 = (N_Vector) 0 ; + N_Vector arg2 = (N_Vector) 0 ; + N_Vector arg3 = (N_Vector) 0 ; + int result; + + arg1 = (N_Vector)(farg1); + arg2 = (N_Vector)(farg2); + arg3 = (N_Vector)(farg3); + result = (int)N_VConstrMaskLocal_MPIManyVector(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT double _wrap_FN_VMinQuotientLocal_MPIManyVector(N_Vector farg1, N_Vector farg2) { + double fresult ; + N_Vector arg1 = (N_Vector) 0 ; + N_Vector arg2 = (N_Vector) 0 ; + sunrealtype result; + + arg1 = (N_Vector)(farg1); + arg2 = (N_Vector)(farg2); + result = (sunrealtype)N_VMinQuotientLocal_MPIManyVector(arg1,arg2); + fresult = (sunrealtype)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FN_VBufSize_MPIManyVector(N_Vector farg1, int32_t *farg2) { + int fresult ; + N_Vector arg1 = (N_Vector) 0 ; + sunindextype *arg2 = (sunindextype *) 0 ; + SUNErrCode result; + + arg1 = (N_Vector)(farg1); + arg2 = (sunindextype *)(farg2); + result = (SUNErrCode)N_VBufSize_MPIManyVector(arg1,arg2); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FN_VBufPack_MPIManyVector(N_Vector farg1, void *farg2) { + int fresult ; + N_Vector arg1 = (N_Vector) 0 ; + void *arg2 = (void *) 0 ; + SUNErrCode result; + + arg1 = (N_Vector)(farg1); + arg2 = (void *)(farg2); + result = (SUNErrCode)N_VBufPack_MPIManyVector(arg1,arg2); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FN_VBufUnpack_MPIManyVector(N_Vector farg1, void *farg2) { + int fresult ; + N_Vector arg1 = (N_Vector) 0 ; + void *arg2 = (void *) 0 ; + SUNErrCode result; + + arg1 = (N_Vector)(farg1); + arg2 = (void *)(farg2); + result = (SUNErrCode)N_VBufUnpack_MPIManyVector(arg1,arg2); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FN_VEnableFusedOps_MPIManyVector(N_Vector farg1, int const *farg2) { + int fresult ; + N_Vector arg1 = (N_Vector) 0 ; + int arg2 ; + SUNErrCode result; + + arg1 = (N_Vector)(farg1); + arg2 = (int)(*farg2); + result = (SUNErrCode)N_VEnableFusedOps_MPIManyVector(arg1,arg2); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FN_VEnableLinearCombination_MPIManyVector(N_Vector farg1, int const *farg2) { + int fresult ; + N_Vector arg1 = (N_Vector) 0 ; + int arg2 ; + SUNErrCode result; + + arg1 = (N_Vector)(farg1); + arg2 = (int)(*farg2); + result = (SUNErrCode)N_VEnableLinearCombination_MPIManyVector(arg1,arg2); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FN_VEnableScaleAddMulti_MPIManyVector(N_Vector farg1, int const *farg2) { + int fresult ; + N_Vector arg1 = (N_Vector) 0 ; + int arg2 ; + SUNErrCode result; + + arg1 = (N_Vector)(farg1); + arg2 = (int)(*farg2); + result = (SUNErrCode)N_VEnableScaleAddMulti_MPIManyVector(arg1,arg2); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FN_VEnableDotProdMulti_MPIManyVector(N_Vector farg1, int const *farg2) { + int fresult ; + N_Vector arg1 = (N_Vector) 0 ; + int arg2 ; + SUNErrCode result; + + arg1 = (N_Vector)(farg1); + arg2 = (int)(*farg2); + result = (SUNErrCode)N_VEnableDotProdMulti_MPIManyVector(arg1,arg2); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FN_VEnableLinearSumVectorArray_MPIManyVector(N_Vector farg1, int const *farg2) { + int fresult ; + N_Vector arg1 = (N_Vector) 0 ; + int arg2 ; + SUNErrCode result; + + arg1 = (N_Vector)(farg1); + arg2 = (int)(*farg2); + result = (SUNErrCode)N_VEnableLinearSumVectorArray_MPIManyVector(arg1,arg2); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FN_VEnableScaleVectorArray_MPIManyVector(N_Vector farg1, int const *farg2) { + int fresult ; + N_Vector arg1 = (N_Vector) 0 ; + int arg2 ; + SUNErrCode result; + + arg1 = (N_Vector)(farg1); + arg2 = (int)(*farg2); + result = (SUNErrCode)N_VEnableScaleVectorArray_MPIManyVector(arg1,arg2); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FN_VEnableConstVectorArray_MPIManyVector(N_Vector farg1, int const *farg2) { + int fresult ; + N_Vector arg1 = (N_Vector) 0 ; + int arg2 ; + SUNErrCode result; + + arg1 = (N_Vector)(farg1); + arg2 = (int)(*farg2); + result = (SUNErrCode)N_VEnableConstVectorArray_MPIManyVector(arg1,arg2); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FN_VEnableWrmsNormVectorArray_MPIManyVector(N_Vector farg1, int const *farg2) { + int fresult ; + N_Vector arg1 = (N_Vector) 0 ; + int arg2 ; + SUNErrCode result; + + arg1 = (N_Vector)(farg1); + arg2 = (int)(*farg2); + result = (SUNErrCode)N_VEnableWrmsNormVectorArray_MPIManyVector(arg1,arg2); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FN_VEnableWrmsNormMaskVectorArray_MPIManyVector(N_Vector farg1, int const *farg2) { + int fresult ; + N_Vector arg1 = (N_Vector) 0 ; + int arg2 ; + SUNErrCode result; + + arg1 = (N_Vector)(farg1); + arg2 = (int)(*farg2); + result = (SUNErrCode)N_VEnableWrmsNormMaskVectorArray_MPIManyVector(arg1,arg2); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FN_VEnableDotProdMultiLocal_MPIManyVector(N_Vector farg1, int const *farg2) { + int fresult ; + N_Vector arg1 = (N_Vector) 0 ; + int arg2 ; + SUNErrCode result; + + arg1 = (N_Vector)(farg1); + arg2 = (int)(*farg2); + result = (SUNErrCode)N_VEnableDotProdMultiLocal_MPIManyVector(arg1,arg2); + fresult = (SUNErrCode)(result); + return fresult; +} + + + +SWIGEXPORT double * _wrap_FN_VGetSubvectorArrayPointer_MPIManyVector(N_Vector farg1, int64_t const *farg2) { + double * fresult ; + N_Vector arg1 = (N_Vector) 0 ; + sunindextype arg2 ; + sunrealtype *result = 0 ; + + arg1 = (N_Vector)(farg1); + arg2 = (sunindextype)(*farg2); + result = (sunrealtype *)N_VGetSubvectorArrayPointer_MPIManyVector(arg1,arg2); + fresult = result; + return fresult; +} + + diff --git a/src/nvector/manyvector/fmod_int32/fnvector_mpimanyvector_mod.f90 b/src/nvector/manyvector/fmod_int32/fnvector_mpimanyvector_mod.f90 new file mode 100644 index 0000000000..2226643c27 --- /dev/null +++ b/src/nvector/manyvector/fmod_int32/fnvector_mpimanyvector_mod.f90 @@ -0,0 +1,1817 @@ +! This file was automatically generated by SWIG (http://www.swig.org). +! Version 4.0.0 +! +! Do not make changes to this file unless you know what you are doing--modify +! the SWIG interface file instead. + +! --------------------------------------------------------------- +! Programmer(s): Auto-generated by swig. +! --------------------------------------------------------------- +! SUNDIALS Copyright Start +! Copyright (c) 2002-2024, Lawrence Livermore National Security +! and Southern Methodist University. +! All rights reserved. +! +! See the top-level LICENSE and NOTICE files for details. +! +! SPDX-License-Identifier: BSD-3-Clause +! SUNDIALS Copyright End +! --------------------------------------------------------------- + +module fnvector_mpimanyvector_mod + use, intrinsic :: ISO_C_BINDING + use fsundials_core_mod + implicit none + private + + ! DECLARATION CONSTRUCTS + public :: FN_VMake_MPIManyVector + public :: FN_VNew_MPIManyVector + public :: FN_VGetSubvector_MPIManyVector + public :: FN_VSetSubvectorArrayPointer_MPIManyVector + public :: FN_VGetNumSubvectors_MPIManyVector + public :: FN_VGetVectorID_MPIManyVector + public :: FN_VPrint_MPIManyVector + public :: FN_VPrintFile_MPIManyVector + public :: FN_VCloneEmpty_MPIManyVector + public :: FN_VClone_MPIManyVector + public :: FN_VDestroy_MPIManyVector + public :: FN_VSpace_MPIManyVector + public :: FN_VGetCommunicator_MPIManyVector + public :: FN_VGetLength_MPIManyVector + public :: FN_VGetSubvectorLocalLength_MPIManyVector + public :: FN_VLinearSum_MPIManyVector + public :: FN_VConst_MPIManyVector + public :: FN_VProd_MPIManyVector + public :: FN_VDiv_MPIManyVector + public :: FN_VScale_MPIManyVector + public :: FN_VAbs_MPIManyVector + public :: FN_VInv_MPIManyVector + public :: FN_VAddConst_MPIManyVector + public :: FN_VDotProd_MPIManyVector + public :: FN_VMaxNorm_MPIManyVector + public :: FN_VWrmsNorm_MPIManyVector + public :: FN_VWrmsNormMask_MPIManyVector + public :: FN_VMin_MPIManyVector + public :: FN_VWL2Norm_MPIManyVector + public :: FN_VL1Norm_MPIManyVector + public :: FN_VCompare_MPIManyVector + public :: FN_VInvTest_MPIManyVector + public :: FN_VConstrMask_MPIManyVector + public :: FN_VMinQuotient_MPIManyVector + public :: FN_VLinearCombination_MPIManyVector + public :: FN_VScaleAddMulti_MPIManyVector + public :: FN_VDotProdMulti_MPIManyVector + public :: FN_VDotProdMultiLocal_MPIManyVector + public :: FN_VDotProdMultiAllReduce_MPIManyVector + public :: FN_VLinearSumVectorArray_MPIManyVector + public :: FN_VScaleVectorArray_MPIManyVector + public :: FN_VConstVectorArray_MPIManyVector + public :: FN_VWrmsNormVectorArray_MPIManyVector + public :: FN_VWrmsNormMaskVectorArray_MPIManyVector + public :: FN_VDotProdLocal_MPIManyVector + public :: FN_VMaxNormLocal_MPIManyVector + public :: FN_VMinLocal_MPIManyVector + public :: FN_VL1NormLocal_MPIManyVector + public :: FN_VWSqrSumLocal_MPIManyVector + public :: FN_VWSqrSumMaskLocal_MPIManyVector + public :: FN_VInvTestLocal_MPIManyVector + public :: FN_VConstrMaskLocal_MPIManyVector + public :: FN_VMinQuotientLocal_MPIManyVector + public :: FN_VBufSize_MPIManyVector + public :: FN_VBufPack_MPIManyVector + public :: FN_VBufUnpack_MPIManyVector + public :: FN_VEnableFusedOps_MPIManyVector + public :: FN_VEnableLinearCombination_MPIManyVector + public :: FN_VEnableScaleAddMulti_MPIManyVector + public :: FN_VEnableDotProdMulti_MPIManyVector + public :: FN_VEnableLinearSumVectorArray_MPIManyVector + public :: FN_VEnableScaleVectorArray_MPIManyVector + public :: FN_VEnableConstVectorArray_MPIManyVector + public :: FN_VEnableWrmsNormVectorArray_MPIManyVector + public :: FN_VEnableWrmsNormMaskVectorArray_MPIManyVector + public :: FN_VEnableDotProdMultiLocal_MPIManyVector + + public :: FN_VGetSubvectorArrayPointer_MPIManyVector + + +! WRAPPER DECLARATIONS +interface +function swigc_FN_VMake_MPIManyVector(farg1, farg2, farg3, farg4) & +bind(C, name="_wrap_FN_VMake_MPIManyVector") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +integer(C_INT), intent(in) :: farg1 +integer(C_INT32_T), intent(in) :: farg2 +type(C_PTR), value :: farg3 +type(C_PTR), value :: farg4 +type(C_PTR) :: fresult +end function + +function swigc_FN_VNew_MPIManyVector(farg1, farg2, farg3) & +bind(C, name="_wrap_FN_VNew_MPIManyVector") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +integer(C_INT32_T), intent(in) :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +type(C_PTR) :: fresult +end function + +function swigc_FN_VGetSubvector_MPIManyVector(farg1, farg2) & +bind(C, name="_wrap_FN_VGetSubvector_MPIManyVector") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT32_T), intent(in) :: farg2 +type(C_PTR) :: fresult +end function + +function swigc_FN_VSetSubvectorArrayPointer_MPIManyVector(farg1, farg2, farg3) & +bind(C, name="_wrap_FN_VSetSubvectorArrayPointer_MPIManyVector") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT32_T), intent(in) :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FN_VGetNumSubvectors_MPIManyVector(farg1) & +bind(C, name="_wrap_FN_VGetNumSubvectors_MPIManyVector") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT32_T) :: fresult +end function + +function swigc_FN_VGetVectorID_MPIManyVector(farg1) & +bind(C, name="_wrap_FN_VGetVectorID_MPIManyVector") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT) :: fresult +end function + +subroutine swigc_FN_VPrint_MPIManyVector(farg1) & +bind(C, name="_wrap_FN_VPrint_MPIManyVector") +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +end subroutine + +subroutine swigc_FN_VPrintFile_MPIManyVector(farg1, farg2) & +bind(C, name="_wrap_FN_VPrintFile_MPIManyVector") +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +end subroutine + +function swigc_FN_VCloneEmpty_MPIManyVector(farg1) & +bind(C, name="_wrap_FN_VCloneEmpty_MPIManyVector") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR) :: fresult +end function + +function swigc_FN_VClone_MPIManyVector(farg1) & +bind(C, name="_wrap_FN_VClone_MPIManyVector") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR) :: fresult +end function + +subroutine swigc_FN_VDestroy_MPIManyVector(farg1) & +bind(C, name="_wrap_FN_VDestroy_MPIManyVector") +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +end subroutine + +subroutine swigc_FN_VSpace_MPIManyVector(farg1, farg2, farg3) & +bind(C, name="_wrap_FN_VSpace_MPIManyVector") +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +end subroutine + +function swigc_FN_VGetCommunicator_MPIManyVector(farg1) & +bind(C, name="_wrap_FN_VGetCommunicator_MPIManyVector") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT) :: fresult +end function + +function swigc_FN_VGetLength_MPIManyVector(farg1) & +bind(C, name="_wrap_FN_VGetLength_MPIManyVector") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT32_T) :: fresult +end function + +function swigc_FN_VGetSubvectorLocalLength_MPIManyVector(farg1, farg2) & +bind(C, name="_wrap_FN_VGetSubvectorLocalLength_MPIManyVector") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT32_T), intent(in) :: farg2 +integer(C_INT32_T) :: fresult +end function + +subroutine swigc_FN_VLinearSum_MPIManyVector(farg1, farg2, farg3, farg4, farg5) & +bind(C, name="_wrap_FN_VLinearSum_MPIManyVector") +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE), intent(in) :: farg1 +type(C_PTR), value :: farg2 +real(C_DOUBLE), intent(in) :: farg3 +type(C_PTR), value :: farg4 +type(C_PTR), value :: farg5 +end subroutine + +subroutine swigc_FN_VConst_MPIManyVector(farg1, farg2) & +bind(C, name="_wrap_FN_VConst_MPIManyVector") +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE), intent(in) :: farg1 +type(C_PTR), value :: farg2 +end subroutine + +subroutine swigc_FN_VProd_MPIManyVector(farg1, farg2, farg3) & +bind(C, name="_wrap_FN_VProd_MPIManyVector") +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +end subroutine + +subroutine swigc_FN_VDiv_MPIManyVector(farg1, farg2, farg3) & +bind(C, name="_wrap_FN_VDiv_MPIManyVector") +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +end subroutine + +subroutine swigc_FN_VScale_MPIManyVector(farg1, farg2, farg3) & +bind(C, name="_wrap_FN_VScale_MPIManyVector") +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE), intent(in) :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +end subroutine + +subroutine swigc_FN_VAbs_MPIManyVector(farg1, farg2) & +bind(C, name="_wrap_FN_VAbs_MPIManyVector") +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +end subroutine + +subroutine swigc_FN_VInv_MPIManyVector(farg1, farg2) & +bind(C, name="_wrap_FN_VInv_MPIManyVector") +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +end subroutine + +subroutine swigc_FN_VAddConst_MPIManyVector(farg1, farg2, farg3) & +bind(C, name="_wrap_FN_VAddConst_MPIManyVector") +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +type(C_PTR), value :: farg3 +end subroutine + +function swigc_FN_VDotProd_MPIManyVector(farg1, farg2) & +bind(C, name="_wrap_FN_VDotProd_MPIManyVector") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +real(C_DOUBLE) :: fresult +end function + +function swigc_FN_VMaxNorm_MPIManyVector(farg1) & +bind(C, name="_wrap_FN_VMaxNorm_MPIManyVector") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE) :: fresult +end function + +function swigc_FN_VWrmsNorm_MPIManyVector(farg1, farg2) & +bind(C, name="_wrap_FN_VWrmsNorm_MPIManyVector") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +real(C_DOUBLE) :: fresult +end function + +function swigc_FN_VWrmsNormMask_MPIManyVector(farg1, farg2, farg3) & +bind(C, name="_wrap_FN_VWrmsNormMask_MPIManyVector") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +real(C_DOUBLE) :: fresult +end function + +function swigc_FN_VMin_MPIManyVector(farg1) & +bind(C, name="_wrap_FN_VMin_MPIManyVector") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE) :: fresult +end function + +function swigc_FN_VWL2Norm_MPIManyVector(farg1, farg2) & +bind(C, name="_wrap_FN_VWL2Norm_MPIManyVector") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +real(C_DOUBLE) :: fresult +end function + +function swigc_FN_VL1Norm_MPIManyVector(farg1) & +bind(C, name="_wrap_FN_VL1Norm_MPIManyVector") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE) :: fresult +end function + +subroutine swigc_FN_VCompare_MPIManyVector(farg1, farg2, farg3) & +bind(C, name="_wrap_FN_VCompare_MPIManyVector") +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE), intent(in) :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +end subroutine + +function swigc_FN_VInvTest_MPIManyVector(farg1, farg2) & +bind(C, name="_wrap_FN_VInvTest_MPIManyVector") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FN_VConstrMask_MPIManyVector(farg1, farg2, farg3) & +bind(C, name="_wrap_FN_VConstrMask_MPIManyVector") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FN_VMinQuotient_MPIManyVector(farg1, farg2) & +bind(C, name="_wrap_FN_VMinQuotient_MPIManyVector") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +real(C_DOUBLE) :: fresult +end function + +function swigc_FN_VLinearCombination_MPIManyVector(farg1, farg2, farg3, farg4) & +bind(C, name="_wrap_FN_VLinearCombination_MPIManyVector") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +integer(C_INT), intent(in) :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +type(C_PTR), value :: farg4 +integer(C_INT) :: fresult +end function + +function swigc_FN_VScaleAddMulti_MPIManyVector(farg1, farg2, farg3, farg4, farg5) & +bind(C, name="_wrap_FN_VScaleAddMulti_MPIManyVector") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +integer(C_INT), intent(in) :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +type(C_PTR), value :: farg4 +type(C_PTR), value :: farg5 +integer(C_INT) :: fresult +end function + +function swigc_FN_VDotProdMulti_MPIManyVector(farg1, farg2, farg3, farg4) & +bind(C, name="_wrap_FN_VDotProdMulti_MPIManyVector") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +integer(C_INT), intent(in) :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +type(C_PTR), value :: farg4 +integer(C_INT) :: fresult +end function + +function swigc_FN_VDotProdMultiLocal_MPIManyVector(farg1, farg2, farg3, farg4) & +bind(C, name="_wrap_FN_VDotProdMultiLocal_MPIManyVector") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +integer(C_INT), intent(in) :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +type(C_PTR), value :: farg4 +integer(C_INT) :: fresult +end function + +function swigc_FN_VDotProdMultiAllReduce_MPIManyVector(farg1, farg2, farg3) & +bind(C, name="_wrap_FN_VDotProdMultiAllReduce_MPIManyVector") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +integer(C_INT), intent(in) :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FN_VLinearSumVectorArray_MPIManyVector(farg1, farg2, farg3, farg4, farg5, farg6) & +bind(C, name="_wrap_FN_VLinearSumVectorArray_MPIManyVector") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +integer(C_INT), intent(in) :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +type(C_PTR), value :: farg3 +real(C_DOUBLE), intent(in) :: farg4 +type(C_PTR), value :: farg5 +type(C_PTR), value :: farg6 +integer(C_INT) :: fresult +end function + +function swigc_FN_VScaleVectorArray_MPIManyVector(farg1, farg2, farg3, farg4) & +bind(C, name="_wrap_FN_VScaleVectorArray_MPIManyVector") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +integer(C_INT), intent(in) :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +type(C_PTR), value :: farg4 +integer(C_INT) :: fresult +end function + +function swigc_FN_VConstVectorArray_MPIManyVector(farg1, farg2, farg3) & +bind(C, name="_wrap_FN_VConstVectorArray_MPIManyVector") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +integer(C_INT), intent(in) :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FN_VWrmsNormVectorArray_MPIManyVector(farg1, farg2, farg3, farg4) & +bind(C, name="_wrap_FN_VWrmsNormVectorArray_MPIManyVector") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +integer(C_INT), intent(in) :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +type(C_PTR), value :: farg4 +integer(C_INT) :: fresult +end function + +function swigc_FN_VWrmsNormMaskVectorArray_MPIManyVector(farg1, farg2, farg3, farg4, farg5) & +bind(C, name="_wrap_FN_VWrmsNormMaskVectorArray_MPIManyVector") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +integer(C_INT), intent(in) :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +type(C_PTR), value :: farg4 +type(C_PTR), value :: farg5 +integer(C_INT) :: fresult +end function + +function swigc_FN_VDotProdLocal_MPIManyVector(farg1, farg2) & +bind(C, name="_wrap_FN_VDotProdLocal_MPIManyVector") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +real(C_DOUBLE) :: fresult +end function + +function swigc_FN_VMaxNormLocal_MPIManyVector(farg1) & +bind(C, name="_wrap_FN_VMaxNormLocal_MPIManyVector") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE) :: fresult +end function + +function swigc_FN_VMinLocal_MPIManyVector(farg1) & +bind(C, name="_wrap_FN_VMinLocal_MPIManyVector") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE) :: fresult +end function + +function swigc_FN_VL1NormLocal_MPIManyVector(farg1) & +bind(C, name="_wrap_FN_VL1NormLocal_MPIManyVector") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE) :: fresult +end function + +function swigc_FN_VWSqrSumLocal_MPIManyVector(farg1, farg2) & +bind(C, name="_wrap_FN_VWSqrSumLocal_MPIManyVector") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +real(C_DOUBLE) :: fresult +end function + +function swigc_FN_VWSqrSumMaskLocal_MPIManyVector(farg1, farg2, farg3) & +bind(C, name="_wrap_FN_VWSqrSumMaskLocal_MPIManyVector") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +real(C_DOUBLE) :: fresult +end function + +function swigc_FN_VInvTestLocal_MPIManyVector(farg1, farg2) & +bind(C, name="_wrap_FN_VInvTestLocal_MPIManyVector") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FN_VConstrMaskLocal_MPIManyVector(farg1, farg2, farg3) & +bind(C, name="_wrap_FN_VConstrMaskLocal_MPIManyVector") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FN_VMinQuotientLocal_MPIManyVector(farg1, farg2) & +bind(C, name="_wrap_FN_VMinQuotientLocal_MPIManyVector") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +real(C_DOUBLE) :: fresult +end function + +function swigc_FN_VBufSize_MPIManyVector(farg1, farg2) & +bind(C, name="_wrap_FN_VBufSize_MPIManyVector") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FN_VBufPack_MPIManyVector(farg1, farg2) & +bind(C, name="_wrap_FN_VBufPack_MPIManyVector") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FN_VBufUnpack_MPIManyVector(farg1, farg2) & +bind(C, name="_wrap_FN_VBufUnpack_MPIManyVector") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FN_VEnableFusedOps_MPIManyVector(farg1, farg2) & +bind(C, name="_wrap_FN_VEnableFusedOps_MPIManyVector") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FN_VEnableLinearCombination_MPIManyVector(farg1, farg2) & +bind(C, name="_wrap_FN_VEnableLinearCombination_MPIManyVector") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FN_VEnableScaleAddMulti_MPIManyVector(farg1, farg2) & +bind(C, name="_wrap_FN_VEnableScaleAddMulti_MPIManyVector") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FN_VEnableDotProdMulti_MPIManyVector(farg1, farg2) & +bind(C, name="_wrap_FN_VEnableDotProdMulti_MPIManyVector") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FN_VEnableLinearSumVectorArray_MPIManyVector(farg1, farg2) & +bind(C, name="_wrap_FN_VEnableLinearSumVectorArray_MPIManyVector") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FN_VEnableScaleVectorArray_MPIManyVector(farg1, farg2) & +bind(C, name="_wrap_FN_VEnableScaleVectorArray_MPIManyVector") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FN_VEnableConstVectorArray_MPIManyVector(farg1, farg2) & +bind(C, name="_wrap_FN_VEnableConstVectorArray_MPIManyVector") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FN_VEnableWrmsNormVectorArray_MPIManyVector(farg1, farg2) & +bind(C, name="_wrap_FN_VEnableWrmsNormVectorArray_MPIManyVector") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FN_VEnableWrmsNormMaskVectorArray_MPIManyVector(farg1, farg2) & +bind(C, name="_wrap_FN_VEnableWrmsNormMaskVectorArray_MPIManyVector") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FN_VEnableDotProdMultiLocal_MPIManyVector(farg1, farg2) & +bind(C, name="_wrap_FN_VEnableDotProdMultiLocal_MPIManyVector") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + + +function swigc_FN_VGetSubvectorArrayPointer_MPIManyVector(farg1, farg2) & +bind(C, name="_wrap_FN_VGetSubvectorArrayPointer_MPIManyVector") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +#ifdef SUNDIALS_INT32_T +integer(C_INT32_T), intent(in) :: farg2 +#else +integer(C_INT64_T), intent(in) :: farg2 +#endif +type(C_PTR) :: fresult +end function + +end interface + + +contains + ! MODULE SUBPROGRAMS +function FN_VMake_MPIManyVector(comm, num_subvectors, vec_array, sunctx) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +type(N_Vector), pointer :: swig_result +integer :: comm +integer(C_INT32_T), intent(in) :: num_subvectors +type(C_PTR) :: vec_array +type(C_PTR) :: sunctx +type(C_PTR) :: fresult +integer(C_INT) :: farg1 +integer(C_INT32_T) :: farg2 +type(C_PTR) :: farg3 +type(C_PTR) :: farg4 + +farg1 = int(comm, C_INT) +farg2 = num_subvectors +farg3 = vec_array +farg4 = sunctx +fresult = swigc_FN_VMake_MPIManyVector(farg1, farg2, farg3, farg4) +call c_f_pointer(fresult, swig_result) +end function + +function FN_VNew_MPIManyVector(num_subvectors, vec_array, sunctx) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +type(N_Vector), pointer :: swig_result +integer(C_INT32_T), intent(in) :: num_subvectors +type(C_PTR) :: vec_array +type(C_PTR) :: sunctx +type(C_PTR) :: fresult +integer(C_INT32_T) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = num_subvectors +farg2 = vec_array +farg3 = sunctx +fresult = swigc_FN_VNew_MPIManyVector(farg1, farg2, farg3) +call c_f_pointer(fresult, swig_result) +end function + +function FN_VGetSubvector_MPIManyVector(v, vec_num) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +type(N_Vector), pointer :: swig_result +type(N_Vector), target, intent(inout) :: v +integer(C_INT32_T), intent(in) :: vec_num +type(C_PTR) :: fresult +type(C_PTR) :: farg1 +integer(C_INT32_T) :: farg2 + +farg1 = c_loc(v) +farg2 = vec_num +fresult = swigc_FN_VGetSubvector_MPIManyVector(farg1, farg2) +call c_f_pointer(fresult, swig_result) +end function + +function FN_VSetSubvectorArrayPointer_MPIManyVector(v_data, v, vec_num) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +real(C_DOUBLE), dimension(*), target, intent(inout) :: v_data +type(N_Vector), target, intent(inout) :: v +integer(C_INT32_T), intent(in) :: vec_num +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +integer(C_INT32_T) :: farg3 + +farg1 = c_loc(v_data(1)) +farg2 = c_loc(v) +farg3 = vec_num +fresult = swigc_FN_VSetSubvectorArrayPointer_MPIManyVector(farg1, farg2, farg3) +swig_result = fresult +end function + +function FN_VGetNumSubvectors_MPIManyVector(v) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT32_T) :: swig_result +type(N_Vector), target, intent(inout) :: v +integer(C_INT32_T) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(v) +fresult = swigc_FN_VGetNumSubvectors_MPIManyVector(farg1) +swig_result = fresult +end function + +function FN_VGetVectorID_MPIManyVector(v) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(N_Vector_ID) :: swig_result +type(N_Vector), target, intent(inout) :: v +integer(C_INT) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(v) +fresult = swigc_FN_VGetVectorID_MPIManyVector(farg1) +swig_result = fresult +end function + +subroutine FN_VPrint_MPIManyVector(v) +use, intrinsic :: ISO_C_BINDING +type(N_Vector), target, intent(inout) :: v +type(C_PTR) :: farg1 + +farg1 = c_loc(v) +call swigc_FN_VPrint_MPIManyVector(farg1) +end subroutine + +subroutine FN_VPrintFile_MPIManyVector(v, outfile) +use, intrinsic :: ISO_C_BINDING +type(N_Vector), target, intent(inout) :: v +type(C_PTR) :: outfile +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = c_loc(v) +farg2 = outfile +call swigc_FN_VPrintFile_MPIManyVector(farg1, farg2) +end subroutine + +function FN_VCloneEmpty_MPIManyVector(w) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +type(N_Vector), pointer :: swig_result +type(N_Vector), target, intent(inout) :: w +type(C_PTR) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(w) +fresult = swigc_FN_VCloneEmpty_MPIManyVector(farg1) +call c_f_pointer(fresult, swig_result) +end function + +function FN_VClone_MPIManyVector(w) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +type(N_Vector), pointer :: swig_result +type(N_Vector), target, intent(inout) :: w +type(C_PTR) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(w) +fresult = swigc_FN_VClone_MPIManyVector(farg1) +call c_f_pointer(fresult, swig_result) +end function + +subroutine FN_VDestroy_MPIManyVector(v) +use, intrinsic :: ISO_C_BINDING +type(N_Vector), target, intent(inout) :: v +type(C_PTR) :: farg1 + +farg1 = c_loc(v) +call swigc_FN_VDestroy_MPIManyVector(farg1) +end subroutine + +subroutine FN_VSpace_MPIManyVector(v, lrw, liw) +use, intrinsic :: ISO_C_BINDING +type(N_Vector), target, intent(inout) :: v +integer(C_INT32_T), dimension(*), target, intent(inout) :: lrw +integer(C_INT32_T), dimension(*), target, intent(inout) :: liw +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = c_loc(v) +farg2 = c_loc(lrw(1)) +farg3 = c_loc(liw(1)) +call swigc_FN_VSpace_MPIManyVector(farg1, farg2, farg3) +end subroutine + +function FN_VGetCommunicator_MPIManyVector(v) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer :: swig_result +type(N_Vector), target, intent(inout) :: v +integer(C_INT) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(v) +fresult = swigc_FN_VGetCommunicator_MPIManyVector(farg1) +swig_result = int(fresult) +end function + +function FN_VGetLength_MPIManyVector(v) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT32_T) :: swig_result +type(N_Vector), target, intent(inout) :: v +integer(C_INT32_T) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(v) +fresult = swigc_FN_VGetLength_MPIManyVector(farg1) +swig_result = fresult +end function + +function FN_VGetSubvectorLocalLength_MPIManyVector(v, vec_num) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT32_T) :: swig_result +type(N_Vector), target, intent(inout) :: v +integer(C_INT32_T), intent(in) :: vec_num +integer(C_INT32_T) :: fresult +type(C_PTR) :: farg1 +integer(C_INT32_T) :: farg2 + +farg1 = c_loc(v) +farg2 = vec_num +fresult = swigc_FN_VGetSubvectorLocalLength_MPIManyVector(farg1, farg2) +swig_result = fresult +end function + +subroutine FN_VLinearSum_MPIManyVector(a, x, b, y, z) +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE), intent(in) :: a +type(N_Vector), target, intent(inout) :: x +real(C_DOUBLE), intent(in) :: b +type(N_Vector), target, intent(inout) :: y +type(N_Vector), target, intent(inout) :: z +real(C_DOUBLE) :: farg1 +type(C_PTR) :: farg2 +real(C_DOUBLE) :: farg3 +type(C_PTR) :: farg4 +type(C_PTR) :: farg5 + +farg1 = a +farg2 = c_loc(x) +farg3 = b +farg4 = c_loc(y) +farg5 = c_loc(z) +call swigc_FN_VLinearSum_MPIManyVector(farg1, farg2, farg3, farg4, farg5) +end subroutine + +subroutine FN_VConst_MPIManyVector(c, z) +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE), intent(in) :: c +type(N_Vector), target, intent(inout) :: z +real(C_DOUBLE) :: farg1 +type(C_PTR) :: farg2 + +farg1 = c +farg2 = c_loc(z) +call swigc_FN_VConst_MPIManyVector(farg1, farg2) +end subroutine + +subroutine FN_VProd_MPIManyVector(x, y, z) +use, intrinsic :: ISO_C_BINDING +type(N_Vector), target, intent(inout) :: x +type(N_Vector), target, intent(inout) :: y +type(N_Vector), target, intent(inout) :: z +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = c_loc(x) +farg2 = c_loc(y) +farg3 = c_loc(z) +call swigc_FN_VProd_MPIManyVector(farg1, farg2, farg3) +end subroutine + +subroutine FN_VDiv_MPIManyVector(x, y, z) +use, intrinsic :: ISO_C_BINDING +type(N_Vector), target, intent(inout) :: x +type(N_Vector), target, intent(inout) :: y +type(N_Vector), target, intent(inout) :: z +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = c_loc(x) +farg2 = c_loc(y) +farg3 = c_loc(z) +call swigc_FN_VDiv_MPIManyVector(farg1, farg2, farg3) +end subroutine + +subroutine FN_VScale_MPIManyVector(c, x, z) +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE), intent(in) :: c +type(N_Vector), target, intent(inout) :: x +type(N_Vector), target, intent(inout) :: z +real(C_DOUBLE) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = c +farg2 = c_loc(x) +farg3 = c_loc(z) +call swigc_FN_VScale_MPIManyVector(farg1, farg2, farg3) +end subroutine + +subroutine FN_VAbs_MPIManyVector(x, z) +use, intrinsic :: ISO_C_BINDING +type(N_Vector), target, intent(inout) :: x +type(N_Vector), target, intent(inout) :: z +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = c_loc(x) +farg2 = c_loc(z) +call swigc_FN_VAbs_MPIManyVector(farg1, farg2) +end subroutine + +subroutine FN_VInv_MPIManyVector(x, z) +use, intrinsic :: ISO_C_BINDING +type(N_Vector), target, intent(inout) :: x +type(N_Vector), target, intent(inout) :: z +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = c_loc(x) +farg2 = c_loc(z) +call swigc_FN_VInv_MPIManyVector(farg1, farg2) +end subroutine + +subroutine FN_VAddConst_MPIManyVector(x, b, z) +use, intrinsic :: ISO_C_BINDING +type(N_Vector), target, intent(inout) :: x +real(C_DOUBLE), intent(in) :: b +type(N_Vector), target, intent(inout) :: z +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 +type(C_PTR) :: farg3 + +farg1 = c_loc(x) +farg2 = b +farg3 = c_loc(z) +call swigc_FN_VAddConst_MPIManyVector(farg1, farg2, farg3) +end subroutine + +function FN_VDotProd_MPIManyVector(x, y) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE) :: swig_result +type(N_Vector), target, intent(inout) :: x +type(N_Vector), target, intent(inout) :: y +real(C_DOUBLE) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = c_loc(x) +farg2 = c_loc(y) +fresult = swigc_FN_VDotProd_MPIManyVector(farg1, farg2) +swig_result = fresult +end function + +function FN_VMaxNorm_MPIManyVector(x) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE) :: swig_result +type(N_Vector), target, intent(inout) :: x +real(C_DOUBLE) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(x) +fresult = swigc_FN_VMaxNorm_MPIManyVector(farg1) +swig_result = fresult +end function + +function FN_VWrmsNorm_MPIManyVector(x, w) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE) :: swig_result +type(N_Vector), target, intent(inout) :: x +type(N_Vector), target, intent(inout) :: w +real(C_DOUBLE) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = c_loc(x) +farg2 = c_loc(w) +fresult = swigc_FN_VWrmsNorm_MPIManyVector(farg1, farg2) +swig_result = fresult +end function + +function FN_VWrmsNormMask_MPIManyVector(x, w, id) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE) :: swig_result +type(N_Vector), target, intent(inout) :: x +type(N_Vector), target, intent(inout) :: w +type(N_Vector), target, intent(inout) :: id +real(C_DOUBLE) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = c_loc(x) +farg2 = c_loc(w) +farg3 = c_loc(id) +fresult = swigc_FN_VWrmsNormMask_MPIManyVector(farg1, farg2, farg3) +swig_result = fresult +end function + +function FN_VMin_MPIManyVector(x) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE) :: swig_result +type(N_Vector), target, intent(inout) :: x +real(C_DOUBLE) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(x) +fresult = swigc_FN_VMin_MPIManyVector(farg1) +swig_result = fresult +end function + +function FN_VWL2Norm_MPIManyVector(x, w) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE) :: swig_result +type(N_Vector), target, intent(inout) :: x +type(N_Vector), target, intent(inout) :: w +real(C_DOUBLE) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = c_loc(x) +farg2 = c_loc(w) +fresult = swigc_FN_VWL2Norm_MPIManyVector(farg1, farg2) +swig_result = fresult +end function + +function FN_VL1Norm_MPIManyVector(x) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE) :: swig_result +type(N_Vector), target, intent(inout) :: x +real(C_DOUBLE) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(x) +fresult = swigc_FN_VL1Norm_MPIManyVector(farg1) +swig_result = fresult +end function + +subroutine FN_VCompare_MPIManyVector(c, x, z) +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE), intent(in) :: c +type(N_Vector), target, intent(inout) :: x +type(N_Vector), target, intent(inout) :: z +real(C_DOUBLE) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = c +farg2 = c_loc(x) +farg3 = c_loc(z) +call swigc_FN_VCompare_MPIManyVector(farg1, farg2, farg3) +end subroutine + +function FN_VInvTest_MPIManyVector(x, z) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(N_Vector), target, intent(inout) :: x +type(N_Vector), target, intent(inout) :: z +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = c_loc(x) +farg2 = c_loc(z) +fresult = swigc_FN_VInvTest_MPIManyVector(farg1, farg2) +swig_result = fresult +end function + +function FN_VConstrMask_MPIManyVector(c, x, m) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(N_Vector), target, intent(inout) :: c +type(N_Vector), target, intent(inout) :: x +type(N_Vector), target, intent(inout) :: m +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = c_loc(c) +farg2 = c_loc(x) +farg3 = c_loc(m) +fresult = swigc_FN_VConstrMask_MPIManyVector(farg1, farg2, farg3) +swig_result = fresult +end function + +function FN_VMinQuotient_MPIManyVector(num, denom) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE) :: swig_result +type(N_Vector), target, intent(inout) :: num +type(N_Vector), target, intent(inout) :: denom +real(C_DOUBLE) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = c_loc(num) +farg2 = c_loc(denom) +fresult = swigc_FN_VMinQuotient_MPIManyVector(farg1, farg2) +swig_result = fresult +end function + +function FN_VLinearCombination_MPIManyVector(nvec, c, v, z) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +integer(C_INT), intent(in) :: nvec +real(C_DOUBLE), dimension(*), target, intent(inout) :: c +type(C_PTR) :: v +type(N_Vector), target, intent(inout) :: z +integer(C_INT) :: fresult +integer(C_INT) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 +type(C_PTR) :: farg4 + +farg1 = nvec +farg2 = c_loc(c(1)) +farg3 = v +farg4 = c_loc(z) +fresult = swigc_FN_VLinearCombination_MPIManyVector(farg1, farg2, farg3, farg4) +swig_result = fresult +end function + +function FN_VScaleAddMulti_MPIManyVector(nvec, a, x, y, z) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +integer(C_INT), intent(in) :: nvec +real(C_DOUBLE), dimension(*), target, intent(inout) :: a +type(N_Vector), target, intent(inout) :: x +type(C_PTR) :: y +type(C_PTR) :: z +integer(C_INT) :: fresult +integer(C_INT) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 +type(C_PTR) :: farg4 +type(C_PTR) :: farg5 + +farg1 = nvec +farg2 = c_loc(a(1)) +farg3 = c_loc(x) +farg4 = y +farg5 = z +fresult = swigc_FN_VScaleAddMulti_MPIManyVector(farg1, farg2, farg3, farg4, farg5) +swig_result = fresult +end function + +function FN_VDotProdMulti_MPIManyVector(nvec, x, y, dotprods) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +integer(C_INT), intent(in) :: nvec +type(N_Vector), target, intent(inout) :: x +type(C_PTR) :: y +real(C_DOUBLE), dimension(*), target, intent(inout) :: dotprods +integer(C_INT) :: fresult +integer(C_INT) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 +type(C_PTR) :: farg4 + +farg1 = nvec +farg2 = c_loc(x) +farg3 = y +farg4 = c_loc(dotprods(1)) +fresult = swigc_FN_VDotProdMulti_MPIManyVector(farg1, farg2, farg3, farg4) +swig_result = fresult +end function + +function FN_VDotProdMultiLocal_MPIManyVector(nvec, x, y, dotprods) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +integer(C_INT), intent(in) :: nvec +type(N_Vector), target, intent(inout) :: x +type(C_PTR) :: y +real(C_DOUBLE), dimension(*), target, intent(inout) :: dotprods +integer(C_INT) :: fresult +integer(C_INT) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 +type(C_PTR) :: farg4 + +farg1 = nvec +farg2 = c_loc(x) +farg3 = y +farg4 = c_loc(dotprods(1)) +fresult = swigc_FN_VDotProdMultiLocal_MPIManyVector(farg1, farg2, farg3, farg4) +swig_result = fresult +end function + +function FN_VDotProdMultiAllReduce_MPIManyVector(nvec_total, x, sum) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +integer(C_INT), intent(in) :: nvec_total +type(N_Vector), target, intent(inout) :: x +real(C_DOUBLE), dimension(*), target, intent(inout) :: sum +integer(C_INT) :: fresult +integer(C_INT) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = nvec_total +farg2 = c_loc(x) +farg3 = c_loc(sum(1)) +fresult = swigc_FN_VDotProdMultiAllReduce_MPIManyVector(farg1, farg2, farg3) +swig_result = fresult +end function + +function FN_VLinearSumVectorArray_MPIManyVector(nvec, a, x, b, y, z) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +integer(C_INT), intent(in) :: nvec +real(C_DOUBLE), intent(in) :: a +type(C_PTR) :: x +real(C_DOUBLE), intent(in) :: b +type(C_PTR) :: y +type(C_PTR) :: z +integer(C_INT) :: fresult +integer(C_INT) :: farg1 +real(C_DOUBLE) :: farg2 +type(C_PTR) :: farg3 +real(C_DOUBLE) :: farg4 +type(C_PTR) :: farg5 +type(C_PTR) :: farg6 + +farg1 = nvec +farg2 = a +farg3 = x +farg4 = b +farg5 = y +farg6 = z +fresult = swigc_FN_VLinearSumVectorArray_MPIManyVector(farg1, farg2, farg3, farg4, farg5, farg6) +swig_result = fresult +end function + +function FN_VScaleVectorArray_MPIManyVector(nvec, c, x, z) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +integer(C_INT), intent(in) :: nvec +real(C_DOUBLE), dimension(*), target, intent(inout) :: c +type(C_PTR) :: x +type(C_PTR) :: z +integer(C_INT) :: fresult +integer(C_INT) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 +type(C_PTR) :: farg4 + +farg1 = nvec +farg2 = c_loc(c(1)) +farg3 = x +farg4 = z +fresult = swigc_FN_VScaleVectorArray_MPIManyVector(farg1, farg2, farg3, farg4) +swig_result = fresult +end function + +function FN_VConstVectorArray_MPIManyVector(nvecs, c, z) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +integer(C_INT), intent(in) :: nvecs +real(C_DOUBLE), intent(in) :: c +type(C_PTR) :: z +integer(C_INT) :: fresult +integer(C_INT) :: farg1 +real(C_DOUBLE) :: farg2 +type(C_PTR) :: farg3 + +farg1 = nvecs +farg2 = c +farg3 = z +fresult = swigc_FN_VConstVectorArray_MPIManyVector(farg1, farg2, farg3) +swig_result = fresult +end function + +function FN_VWrmsNormVectorArray_MPIManyVector(nvecs, x, w, nrm) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +integer(C_INT), intent(in) :: nvecs +type(C_PTR) :: x +type(C_PTR) :: w +real(C_DOUBLE), dimension(*), target, intent(inout) :: nrm +integer(C_INT) :: fresult +integer(C_INT) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 +type(C_PTR) :: farg4 + +farg1 = nvecs +farg2 = x +farg3 = w +farg4 = c_loc(nrm(1)) +fresult = swigc_FN_VWrmsNormVectorArray_MPIManyVector(farg1, farg2, farg3, farg4) +swig_result = fresult +end function + +function FN_VWrmsNormMaskVectorArray_MPIManyVector(nvec, x, w, id, nrm) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +integer(C_INT), intent(in) :: nvec +type(C_PTR) :: x +type(C_PTR) :: w +type(N_Vector), target, intent(inout) :: id +real(C_DOUBLE), dimension(*), target, intent(inout) :: nrm +integer(C_INT) :: fresult +integer(C_INT) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 +type(C_PTR) :: farg4 +type(C_PTR) :: farg5 + +farg1 = nvec +farg2 = x +farg3 = w +farg4 = c_loc(id) +farg5 = c_loc(nrm(1)) +fresult = swigc_FN_VWrmsNormMaskVectorArray_MPIManyVector(farg1, farg2, farg3, farg4, farg5) +swig_result = fresult +end function + +function FN_VDotProdLocal_MPIManyVector(x, y) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE) :: swig_result +type(N_Vector), target, intent(inout) :: x +type(N_Vector), target, intent(inout) :: y +real(C_DOUBLE) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = c_loc(x) +farg2 = c_loc(y) +fresult = swigc_FN_VDotProdLocal_MPIManyVector(farg1, farg2) +swig_result = fresult +end function + +function FN_VMaxNormLocal_MPIManyVector(x) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE) :: swig_result +type(N_Vector), target, intent(inout) :: x +real(C_DOUBLE) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(x) +fresult = swigc_FN_VMaxNormLocal_MPIManyVector(farg1) +swig_result = fresult +end function + +function FN_VMinLocal_MPIManyVector(x) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE) :: swig_result +type(N_Vector), target, intent(inout) :: x +real(C_DOUBLE) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(x) +fresult = swigc_FN_VMinLocal_MPIManyVector(farg1) +swig_result = fresult +end function + +function FN_VL1NormLocal_MPIManyVector(x) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE) :: swig_result +type(N_Vector), target, intent(inout) :: x +real(C_DOUBLE) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(x) +fresult = swigc_FN_VL1NormLocal_MPIManyVector(farg1) +swig_result = fresult +end function + +function FN_VWSqrSumLocal_MPIManyVector(x, w) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE) :: swig_result +type(N_Vector), target, intent(inout) :: x +type(N_Vector), target, intent(inout) :: w +real(C_DOUBLE) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = c_loc(x) +farg2 = c_loc(w) +fresult = swigc_FN_VWSqrSumLocal_MPIManyVector(farg1, farg2) +swig_result = fresult +end function + +function FN_VWSqrSumMaskLocal_MPIManyVector(x, w, id) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE) :: swig_result +type(N_Vector), target, intent(inout) :: x +type(N_Vector), target, intent(inout) :: w +type(N_Vector), target, intent(inout) :: id +real(C_DOUBLE) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = c_loc(x) +farg2 = c_loc(w) +farg3 = c_loc(id) +fresult = swigc_FN_VWSqrSumMaskLocal_MPIManyVector(farg1, farg2, farg3) +swig_result = fresult +end function + +function FN_VInvTestLocal_MPIManyVector(x, z) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(N_Vector), target, intent(inout) :: x +type(N_Vector), target, intent(inout) :: z +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = c_loc(x) +farg2 = c_loc(z) +fresult = swigc_FN_VInvTestLocal_MPIManyVector(farg1, farg2) +swig_result = fresult +end function + +function FN_VConstrMaskLocal_MPIManyVector(c, x, m) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(N_Vector), target, intent(inout) :: c +type(N_Vector), target, intent(inout) :: x +type(N_Vector), target, intent(inout) :: m +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = c_loc(c) +farg2 = c_loc(x) +farg3 = c_loc(m) +fresult = swigc_FN_VConstrMaskLocal_MPIManyVector(farg1, farg2, farg3) +swig_result = fresult +end function + +function FN_VMinQuotientLocal_MPIManyVector(num, denom) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE) :: swig_result +type(N_Vector), target, intent(inout) :: num +type(N_Vector), target, intent(inout) :: denom +real(C_DOUBLE) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = c_loc(num) +farg2 = c_loc(denom) +fresult = swigc_FN_VMinQuotientLocal_MPIManyVector(farg1, farg2) +swig_result = fresult +end function + +function FN_VBufSize_MPIManyVector(x, size) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(N_Vector), target, intent(inout) :: x +integer(C_INT32_T), dimension(*), target, intent(inout) :: size +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = c_loc(x) +farg2 = c_loc(size(1)) +fresult = swigc_FN_VBufSize_MPIManyVector(farg1, farg2) +swig_result = fresult +end function + +function FN_VBufPack_MPIManyVector(x, buf) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(N_Vector), target, intent(inout) :: x +type(C_PTR) :: buf +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = c_loc(x) +farg2 = buf +fresult = swigc_FN_VBufPack_MPIManyVector(farg1, farg2) +swig_result = fresult +end function + +function FN_VBufUnpack_MPIManyVector(x, buf) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(N_Vector), target, intent(inout) :: x +type(C_PTR) :: buf +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = c_loc(x) +farg2 = buf +fresult = swigc_FN_VBufUnpack_MPIManyVector(farg1, farg2) +swig_result = fresult +end function + +function FN_VEnableFusedOps_MPIManyVector(v, tf) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(N_Vector), target, intent(inout) :: v +integer(C_INT), intent(in) :: tf +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = c_loc(v) +farg2 = tf +fresult = swigc_FN_VEnableFusedOps_MPIManyVector(farg1, farg2) +swig_result = fresult +end function + +function FN_VEnableLinearCombination_MPIManyVector(v, tf) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(N_Vector), target, intent(inout) :: v +integer(C_INT), intent(in) :: tf +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = c_loc(v) +farg2 = tf +fresult = swigc_FN_VEnableLinearCombination_MPIManyVector(farg1, farg2) +swig_result = fresult +end function + +function FN_VEnableScaleAddMulti_MPIManyVector(v, tf) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(N_Vector), target, intent(inout) :: v +integer(C_INT), intent(in) :: tf +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = c_loc(v) +farg2 = tf +fresult = swigc_FN_VEnableScaleAddMulti_MPIManyVector(farg1, farg2) +swig_result = fresult +end function + +function FN_VEnableDotProdMulti_MPIManyVector(v, tf) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(N_Vector), target, intent(inout) :: v +integer(C_INT), intent(in) :: tf +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = c_loc(v) +farg2 = tf +fresult = swigc_FN_VEnableDotProdMulti_MPIManyVector(farg1, farg2) +swig_result = fresult +end function + +function FN_VEnableLinearSumVectorArray_MPIManyVector(v, tf) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(N_Vector), target, intent(inout) :: v +integer(C_INT), intent(in) :: tf +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = c_loc(v) +farg2 = tf +fresult = swigc_FN_VEnableLinearSumVectorArray_MPIManyVector(farg1, farg2) +swig_result = fresult +end function + +function FN_VEnableScaleVectorArray_MPIManyVector(v, tf) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(N_Vector), target, intent(inout) :: v +integer(C_INT), intent(in) :: tf +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = c_loc(v) +farg2 = tf +fresult = swigc_FN_VEnableScaleVectorArray_MPIManyVector(farg1, farg2) +swig_result = fresult +end function + +function FN_VEnableConstVectorArray_MPIManyVector(v, tf) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(N_Vector), target, intent(inout) :: v +integer(C_INT), intent(in) :: tf +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = c_loc(v) +farg2 = tf +fresult = swigc_FN_VEnableConstVectorArray_MPIManyVector(farg1, farg2) +swig_result = fresult +end function + +function FN_VEnableWrmsNormVectorArray_MPIManyVector(v, tf) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(N_Vector), target, intent(inout) :: v +integer(C_INT), intent(in) :: tf +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = c_loc(v) +farg2 = tf +fresult = swigc_FN_VEnableWrmsNormVectorArray_MPIManyVector(farg1, farg2) +swig_result = fresult +end function + +function FN_VEnableWrmsNormMaskVectorArray_MPIManyVector(v, tf) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(N_Vector), target, intent(inout) :: v +integer(C_INT), intent(in) :: tf +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = c_loc(v) +farg2 = tf +fresult = swigc_FN_VEnableWrmsNormMaskVectorArray_MPIManyVector(farg1, farg2) +swig_result = fresult +end function + +function FN_VEnableDotProdMultiLocal_MPIManyVector(v, tf) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(N_Vector), target, intent(inout) :: v +integer(C_INT), intent(in) :: tf +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = c_loc(v) +farg2 = tf +fresult = swigc_FN_VEnableDotProdMultiLocal_MPIManyVector(farg1, farg2) +swig_result = fresult +end function + + +function FN_VGetSubvectorArrayPointer_MPIManyVector(v, vec_num) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE), dimension(:), pointer :: swig_result +type(N_Vector), target, intent(inout) :: v +#ifdef SUNDIALS_INT32_T +integer(C_INT32_T), intent(in) :: vec_num +#else +integer(C_INT64_T), intent(in) :: vec_num +#endif +type(C_PTR) :: fresult +type(C_PTR) :: farg1 +#ifdef SUNDIALS_INT32_T +integer(C_INT32_T) :: farg2 +#else +integer(C_INT64_T) :: farg2 +#endif + +farg1 = c_loc(v) +farg2 = vec_num +fresult = swigc_FN_VGetSubvectorArrayPointer_MPIManyVector(farg1, farg2) +call c_f_pointer(fresult, swig_result, [FN_VGetSubvectorLocalLength_MPIManyVector(v, vec_num)]) +end function + + +end module diff --git a/src/nvector/manyvector/fmod_int64/CMakeLists.txt b/src/nvector/manyvector/fmod_int64/CMakeLists.txt new file mode 100644 index 0000000000..8033da01f7 --- /dev/null +++ b/src/nvector/manyvector/fmod_int64/CMakeLists.txt @@ -0,0 +1,61 @@ +# --------------------------------------------------------------- +# Programmer(s): Cody J. Balos @ LLNL +# --------------------------------------------------------------- +# SUNDIALS Copyright Start +# Copyright (c) 2002-2024, Lawrence Livermore National Security +# and Southern Methodist University. +# All rights reserved. +# +# See the top-level LICENSE and NOTICE files for details. +# +# SPDX-License-Identifier: BSD-3-Clause +# SUNDIALS Copyright End +# --------------------------------------------------------------- +# CMakeLists.txt file for the F2003 manyvector NVECTOR object library +# --------------------------------------------------------------- + +if(BUILD_NVECTOR_MANYVECTOR) + sundials_add_f2003_library(sundials_fnvecmanyvector_mod + SOURCES + fnvector_manyvector_mod.f90 fnvector_manyvector_mod.c + LINK_LIBRARIES + PUBLIC sundials_fcore_mod + OUTPUT_NAME + sundials_fnvecmanyvector_mod + VERSION + ${nveclib_VERSION} + SOVERSION + ${nveclib_SOVERSION} + ) + message(STATUS "Added NVECTOR_MANYVECTOR F2003 Interface") +endif() + +if(BUILD_NVECTOR_MPIMANYVECTOR) + + if(MPI_C_COMPILER) + # use MPI wrapper as the compiler + set(CMAKE_C_COMPILER ${MPI_C_COMPILER}) + elseif() + # add MPI_INCLUDE_PATH to include directories + include_directories(${MPI_INCLUDE_PATH}) + endif() + if(MPI_Fortran_COMPILER) + # use MPI wrapper as the compiler + set(CMAKE_Fortran_COMPILER ${MPI_Fortran_COMPILER}) + endif() + + sundials_add_f2003_library(sundials_fnvecmpimanyvector_mod + SOURCES + fnvector_mpimanyvector_mod.f90 fnvector_mpimanyvector_mod.c + LINK_LIBRARIES + PUBLIC sundials_fcore_mod + OUTPUT_NAME + sundials_fnvecmpimanyvector_mod + VERSION + ${nveclib_VERSION} + SOVERSION + ${nveclib_SOVERSION} + ) + + message(STATUS "Added NVECTOR_MPIMANYVECTOR F2003 Interface") +endif() diff --git a/src/nvector/manyvector/fmod/fnvector_manyvector_mod.c b/src/nvector/manyvector/fmod_int64/fnvector_manyvector_mod.c similarity index 100% rename from src/nvector/manyvector/fmod/fnvector_manyvector_mod.c rename to src/nvector/manyvector/fmod_int64/fnvector_manyvector_mod.c diff --git a/src/nvector/manyvector/fmod/fnvector_manyvector_mod.f90 b/src/nvector/manyvector/fmod_int64/fnvector_manyvector_mod.f90 similarity index 99% rename from src/nvector/manyvector/fmod/fnvector_manyvector_mod.f90 rename to src/nvector/manyvector/fmod_int64/fnvector_manyvector_mod.f90 index 1c747bb028..88587dc2f3 100644 --- a/src/nvector/manyvector/fmod/fnvector_manyvector_mod.f90 +++ b/src/nvector/manyvector/fmod_int64/fnvector_manyvector_mod.f90 @@ -596,7 +596,11 @@ function swigc_FN_VGetSubvectorArrayPointer_ManyVector(farg1, farg2) & result(fresult) use, intrinsic :: ISO_C_BINDING type(C_PTR), value :: farg1 +#ifdef SUNDIALS_INT32_T +integer(C_INT32_T), intent(in) :: farg2 +#else integer(C_INT64_T), intent(in) :: farg2 +#endif type(C_PTR) :: fresult end function @@ -1530,10 +1534,18 @@ function FN_VGetSubvectorArrayPointer_ManyVector(v, vec_num) & use, intrinsic :: ISO_C_BINDING real(C_DOUBLE), dimension(:), pointer :: swig_result type(N_Vector), target, intent(inout) :: v +#ifdef SUNDIALS_INT32_T +integer(C_INT32_T), intent(in) :: vec_num +#else integer(C_INT64_T), intent(in) :: vec_num +#endif type(C_PTR) :: fresult type(C_PTR) :: farg1 +#ifdef SUNDIALS_INT32_T +integer(C_INT32_T) :: farg2 +#else integer(C_INT64_T) :: farg2 +#endif farg1 = c_loc(v) farg2 = vec_num diff --git a/src/nvector/manyvector/fmod/fnvector_mpimanyvector_mod.c b/src/nvector/manyvector/fmod_int64/fnvector_mpimanyvector_mod.c similarity index 100% rename from src/nvector/manyvector/fmod/fnvector_mpimanyvector_mod.c rename to src/nvector/manyvector/fmod_int64/fnvector_mpimanyvector_mod.c diff --git a/src/nvector/manyvector/fmod/fnvector_mpimanyvector_mod.f90 b/src/nvector/manyvector/fmod_int64/fnvector_mpimanyvector_mod.f90 similarity index 99% rename from src/nvector/manyvector/fmod/fnvector_mpimanyvector_mod.f90 rename to src/nvector/manyvector/fmod_int64/fnvector_mpimanyvector_mod.f90 index d214fc462b..39d48fa9be 100644 --- a/src/nvector/manyvector/fmod/fnvector_mpimanyvector_mod.f90 +++ b/src/nvector/manyvector/fmod_int64/fnvector_mpimanyvector_mod.f90 @@ -696,7 +696,11 @@ function swigc_FN_VGetSubvectorArrayPointer_MPIManyVector(farg1, farg2) & result(fresult) use, intrinsic :: ISO_C_BINDING type(C_PTR), value :: farg1 +#ifdef SUNDIALS_INT32_T +integer(C_INT32_T), intent(in) :: farg2 +#else integer(C_INT64_T), intent(in) :: farg2 +#endif type(C_PTR) :: fresult end function @@ -1790,10 +1794,18 @@ function FN_VGetSubvectorArrayPointer_MPIManyVector(v, vec_num) & use, intrinsic :: ISO_C_BINDING real(C_DOUBLE), dimension(:), pointer :: swig_result type(N_Vector), target, intent(inout) :: v +#ifdef SUNDIALS_INT32_T +integer(C_INT32_T), intent(in) :: vec_num +#else integer(C_INT64_T), intent(in) :: vec_num +#endif type(C_PTR) :: fresult type(C_PTR) :: farg1 +#ifdef SUNDIALS_INT32_T +integer(C_INT32_T) :: farg2 +#else integer(C_INT64_T) :: farg2 +#endif farg1 = c_loc(v) farg2 = vec_num diff --git a/src/nvector/mpiplusx/CMakeLists.txt b/src/nvector/mpiplusx/CMakeLists.txt index c97db8224a..1be179696d 100644 --- a/src/nvector/mpiplusx/CMakeLists.txt +++ b/src/nvector/mpiplusx/CMakeLists.txt @@ -48,5 +48,5 @@ message(STATUS "Added NVECTOR_MPIPLUSX module") # Add F2003 module if the interface is enabled if(BUILD_FORTRAN_MODULE_INTERFACE) - add_subdirectory(fmod) + add_subdirectory("fmod_int${SUNDIALS_INDEX_SIZE}") endif() diff --git a/src/nvector/mpiplusx/fmod/CMakeLists.txt b/src/nvector/mpiplusx/fmod_int32/CMakeLists.txt similarity index 100% rename from src/nvector/mpiplusx/fmod/CMakeLists.txt rename to src/nvector/mpiplusx/fmod_int32/CMakeLists.txt diff --git a/src/nvector/mpiplusx/fmod_int32/fnvector_mpiplusx_mod.c b/src/nvector/mpiplusx/fmod_int32/fnvector_mpiplusx_mod.c new file mode 100644 index 0000000000..5d6aeb893d --- /dev/null +++ b/src/nvector/mpiplusx/fmod_int32/fnvector_mpiplusx_mod.c @@ -0,0 +1,327 @@ +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.0 + * + * This file is not intended to be easily readable and contains a number of + * coding conventions designed to improve portability and efficiency. Do not make + * changes to this file unless you know what you are doing--modify the SWIG + * interface file instead. + * ----------------------------------------------------------------------------- */ + +/* --------------------------------------------------------------- + * Programmer(s): Auto-generated by swig. + * --------------------------------------------------------------- + * SUNDIALS Copyright Start + * Copyright (c) 2002-2024, Lawrence Livermore National Security + * and Southern Methodist University. + * All rights reserved. + * + * See the top-level LICENSE and NOTICE files for details. + * + * SPDX-License-Identifier: BSD-3-Clause + * SUNDIALS Copyright End + * -------------------------------------------------------------*/ + +/* ----------------------------------------------------------------------------- + * This section contains generic SWIG labels for method/variable + * declarations/attributes, and other compiler dependent labels. + * ----------------------------------------------------------------------------- */ + +/* template workaround for compilers that cannot correctly implement the C++ standard */ +#ifndef SWIGTEMPLATEDISAMBIGUATOR +# if defined(__SUNPRO_CC) && (__SUNPRO_CC <= 0x560) +# define SWIGTEMPLATEDISAMBIGUATOR template +# elif defined(__HP_aCC) +/* Needed even with `aCC -AA' when `aCC -V' reports HP ANSI C++ B3910B A.03.55 */ +/* If we find a maximum version that requires this, the test would be __HP_aCC <= 35500 for A.03.55 */ +# define SWIGTEMPLATEDISAMBIGUATOR template +# else +# define SWIGTEMPLATEDISAMBIGUATOR +# endif +#endif + +/* inline attribute */ +#ifndef SWIGINLINE +# if defined(__cplusplus) || (defined(__GNUC__) && !defined(__STRICT_ANSI__)) +# define SWIGINLINE inline +# else +# define SWIGINLINE +# endif +#endif + +/* attribute recognised by some compilers to avoid 'unused' warnings */ +#ifndef SWIGUNUSED +# if defined(__GNUC__) +# if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)) +# define SWIGUNUSED __attribute__ ((__unused__)) +# else +# define SWIGUNUSED +# endif +# elif defined(__ICC) +# define SWIGUNUSED __attribute__ ((__unused__)) +# else +# define SWIGUNUSED +# endif +#endif + +#ifndef SWIG_MSC_UNSUPPRESS_4505 +# if defined(_MSC_VER) +# pragma warning(disable : 4505) /* unreferenced local function has been removed */ +# endif +#endif + +#ifndef SWIGUNUSEDPARM +# ifdef __cplusplus +# define SWIGUNUSEDPARM(p) +# else +# define SWIGUNUSEDPARM(p) p SWIGUNUSED +# endif +#endif + +/* internal SWIG method */ +#ifndef SWIGINTERN +# define SWIGINTERN static SWIGUNUSED +#endif + +/* internal inline SWIG method */ +#ifndef SWIGINTERNINLINE +# define SWIGINTERNINLINE SWIGINTERN SWIGINLINE +#endif + +/* qualifier for exported *const* global data variables*/ +#ifndef SWIGEXTERN +# ifdef __cplusplus +# define SWIGEXTERN extern +# else +# define SWIGEXTERN +# endif +#endif + +/* exporting methods */ +#if defined(__GNUC__) +# if (__GNUC__ >= 4) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) +# ifndef GCC_HASCLASSVISIBILITY +# define GCC_HASCLASSVISIBILITY +# endif +# endif +#endif + +#ifndef SWIGEXPORT +# if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__) +# if defined(STATIC_LINKED) +# define SWIGEXPORT +# else +# define SWIGEXPORT __declspec(dllexport) +# endif +# else +# if defined(__GNUC__) && defined(GCC_HASCLASSVISIBILITY) +# define SWIGEXPORT __attribute__ ((visibility("default"))) +# else +# define SWIGEXPORT +# endif +# endif +#endif + +/* calling conventions for Windows */ +#ifndef SWIGSTDCALL +# if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__) +# define SWIGSTDCALL __stdcall +# else +# define SWIGSTDCALL +# endif +#endif + +/* Deal with Microsoft's attempt at deprecating C standard runtime functions */ +#if !defined(SWIG_NO_CRT_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_CRT_SECURE_NO_DEPRECATE) +# define _CRT_SECURE_NO_DEPRECATE +#endif + +/* Deal with Microsoft's attempt at deprecating methods in the standard C++ library */ +#if !defined(SWIG_NO_SCL_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_SCL_SECURE_NO_DEPRECATE) +# define _SCL_SECURE_NO_DEPRECATE +#endif + +/* Deal with Apple's deprecated 'AssertMacros.h' from Carbon-framework */ +#if defined(__APPLE__) && !defined(__ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES) +# define __ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES 0 +#endif + +/* Intel's compiler complains if a variable which was never initialised is + * cast to void, which is a common idiom which we use to indicate that we + * are aware a variable isn't used. So we just silence that warning. + * See: https://github.com/swig/swig/issues/192 for more discussion. + */ +#ifdef __INTEL_COMPILER +# pragma warning disable 592 +#endif + +/* Errors in SWIG */ +#define SWIG_UnknownError -1 +#define SWIG_IOError -2 +#define SWIG_RuntimeError -3 +#define SWIG_IndexError -4 +#define SWIG_TypeError -5 +#define SWIG_DivisionByZero -6 +#define SWIG_OverflowError -7 +#define SWIG_SyntaxError -8 +#define SWIG_ValueError -9 +#define SWIG_SystemError -10 +#define SWIG_AttributeError -11 +#define SWIG_MemoryError -12 +#define SWIG_NullReferenceError -13 + + + + +#include +#define SWIG_exception_impl(DECL, CODE, MSG, RETURNNULL) \ + { printf("In " DECL ": " MSG); assert(0); RETURNNULL; } + + +#include +#if defined(_MSC_VER) || defined(__BORLANDC__) || defined(_WATCOM) +# ifndef snprintf +# define snprintf _snprintf +# endif +#endif + + +/* Support for the `contract` feature. + * + * Note that RETURNNULL is first because it's inserted via a 'Replaceall' in + * the fortran.cxx file. + */ +#define SWIG_contract_assert(RETURNNULL, EXPR, MSG) \ + if (!(EXPR)) { SWIG_exception_impl("$decl", SWIG_ValueError, MSG, RETURNNULL); } + + +#define SWIGVERSION 0x040000 +#define SWIG_VERSION SWIGVERSION + + +#define SWIG_as_voidptr(a) (void *)((const void *)(a)) +#define SWIG_as_voidptrptr(a) ((void)SWIG_as_voidptr(*a),(void**)(a)) + + +#include "sundials/sundials_nvector.h" + + +#include "nvector/nvector_mpiplusx.h" + +SWIGEXPORT N_Vector _wrap_FN_VMake_MPIPlusX(int const *farg1, N_Vector farg2, void *farg3) { + N_Vector fresult ; + MPI_Comm arg1 ; + N_Vector arg2 = (N_Vector) 0 ; + SUNContext arg3 = (SUNContext) 0 ; + N_Vector result; + +#if SUNDIALS_MPI_ENABLED + int flag = 0; + MPI_Initialized(&flag); + if(flag) { + arg1 = MPI_Comm_f2c((MPI_Fint)(*farg1)); + } else { + arg1 = SUN_COMM_NULL; + } +#else + arg1 = *farg1; +#endif + arg2 = (N_Vector)(farg2); + arg3 = (SUNContext)(farg3); + result = (N_Vector)N_VMake_MPIPlusX(arg1,arg2,arg3); + fresult = result; + return fresult; +} + + +SWIGEXPORT int _wrap_FN_VGetVectorID_MPIPlusX(N_Vector farg1) { + int fresult ; + N_Vector arg1 = (N_Vector) 0 ; + N_Vector_ID result; + + arg1 = (N_Vector)(farg1); + result = (N_Vector_ID)N_VGetVectorID_MPIPlusX(arg1); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT void _wrap_FN_VSetArrayPointer_MPIPlusX(double *farg1, N_Vector farg2) { + sunrealtype *arg1 = (sunrealtype *) 0 ; + N_Vector arg2 = (N_Vector) 0 ; + + arg1 = (sunrealtype *)(farg1); + arg2 = (N_Vector)(farg2); + N_VSetArrayPointer_MPIPlusX(arg1,arg2); +} + + +SWIGEXPORT N_Vector _wrap_FN_VGetLocalVector_MPIPlusX(N_Vector farg1) { + N_Vector fresult ; + N_Vector arg1 = (N_Vector) 0 ; + N_Vector result; + + arg1 = (N_Vector)(farg1); + result = (N_Vector)N_VGetLocalVector_MPIPlusX(arg1); + fresult = result; + return fresult; +} + + +SWIGEXPORT int32_t _wrap_FN_VGetLocalLength_MPIPlusX(N_Vector farg1) { + int32_t fresult ; + N_Vector arg1 = (N_Vector) 0 ; + sunindextype result; + + arg1 = (N_Vector)(farg1); + result = N_VGetLocalLength_MPIPlusX(arg1); + fresult = (sunindextype)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FN_VEnableFusedOps_MPIPlusX(N_Vector farg1, int const *farg2) { + int fresult ; + N_Vector arg1 = (N_Vector) 0 ; + int arg2 ; + SUNErrCode result; + + arg1 = (N_Vector)(farg1); + arg2 = (int)(*farg2); + result = (SUNErrCode)N_VEnableFusedOps_MPIPlusX(arg1,arg2); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT void _wrap_FN_VPrint_MPIPlusX(N_Vector farg1) { + N_Vector arg1 = (N_Vector) 0 ; + + arg1 = (N_Vector)(farg1); + N_VPrint_MPIPlusX(arg1); +} + + +SWIGEXPORT void _wrap_FN_VPrintFile_MPIPlusX(N_Vector farg1, void *farg2) { + N_Vector arg1 = (N_Vector) 0 ; + FILE *arg2 = (FILE *) 0 ; + + arg1 = (N_Vector)(farg1); + arg2 = (FILE *)(farg2); + N_VPrintFile_MPIPlusX(arg1,arg2); +} + + + +SWIGEXPORT double * _wrap_FN_VGetArrayPointer_MPIPlusX(N_Vector farg1) { + double * fresult ; + N_Vector arg1 = (N_Vector) 0 ; + sunrealtype *result = 0 ; + + arg1 = (N_Vector)(farg1); + result = (sunrealtype *)N_VGetArrayPointer_MPIPlusX(arg1); + fresult = result; + return fresult; +} + + diff --git a/src/nvector/mpiplusx/fmod_int32/fnvector_mpiplusx_mod.f90 b/src/nvector/mpiplusx/fmod_int32/fnvector_mpiplusx_mod.f90 new file mode 100644 index 0000000000..1b29334b59 --- /dev/null +++ b/src/nvector/mpiplusx/fmod_int32/fnvector_mpiplusx_mod.f90 @@ -0,0 +1,241 @@ +! This file was automatically generated by SWIG (http://www.swig.org). +! Version 4.0.0 +! +! Do not make changes to this file unless you know what you are doing--modify +! the SWIG interface file instead. + +! --------------------------------------------------------------- +! Programmer(s): Auto-generated by swig. +! --------------------------------------------------------------- +! SUNDIALS Copyright Start +! Copyright (c) 2002-2024, Lawrence Livermore National Security +! and Southern Methodist University. +! All rights reserved. +! +! See the top-level LICENSE and NOTICE files for details. +! +! SPDX-License-Identifier: BSD-3-Clause +! SUNDIALS Copyright End +! --------------------------------------------------------------- + +module fnvector_mpiplusx_mod + use, intrinsic :: ISO_C_BINDING + use fsundials_core_mod + implicit none + private + + ! DECLARATION CONSTRUCTS + public :: FN_VMake_MPIPlusX + public :: FN_VGetVectorID_MPIPlusX + public :: FN_VSetArrayPointer_MPIPlusX + public :: FN_VGetLocalVector_MPIPlusX + public :: FN_VGetLocalLength_MPIPlusX + public :: FN_VEnableFusedOps_MPIPlusX + public :: FN_VPrint_MPIPlusX + public :: FN_VPrintFile_MPIPlusX + + public :: FN_VGetArrayPointer_MPIPlusX + + +! WRAPPER DECLARATIONS +interface +function swigc_FN_VMake_MPIPlusX(farg1, farg2, farg3) & +bind(C, name="_wrap_FN_VMake_MPIPlusX") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +integer(C_INT), intent(in) :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +type(C_PTR) :: fresult +end function + +function swigc_FN_VGetVectorID_MPIPlusX(farg1) & +bind(C, name="_wrap_FN_VGetVectorID_MPIPlusX") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT) :: fresult +end function + +subroutine swigc_FN_VSetArrayPointer_MPIPlusX(farg1, farg2) & +bind(C, name="_wrap_FN_VSetArrayPointer_MPIPlusX") +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +end subroutine + +function swigc_FN_VGetLocalVector_MPIPlusX(farg1) & +bind(C, name="_wrap_FN_VGetLocalVector_MPIPlusX") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR) :: fresult +end function + +function swigc_FN_VGetLocalLength_MPIPlusX(farg1) & +bind(C, name="_wrap_FN_VGetLocalLength_MPIPlusX") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT32_T) :: fresult +end function + +function swigc_FN_VEnableFusedOps_MPIPlusX(farg1, farg2) & +bind(C, name="_wrap_FN_VEnableFusedOps_MPIPlusX") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +subroutine swigc_FN_VPrint_MPIPlusX(farg1) & +bind(C, name="_wrap_FN_VPrint_MPIPlusX") +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +end subroutine + +subroutine swigc_FN_VPrintFile_MPIPlusX(farg1, farg2) & +bind(C, name="_wrap_FN_VPrintFile_MPIPlusX") +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +end subroutine + + +function swigc_FN_VGetArrayPointer_MPIPlusX(farg1) & +bind(C, name="_wrap_FN_VGetArrayPointer_MPIPlusX") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR) :: fresult +end function + +end interface + + +contains + ! MODULE SUBPROGRAMS +function FN_VMake_MPIPlusX(comm, x, sunctx) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +type(N_Vector), pointer :: swig_result +integer :: comm +type(N_Vector), target, intent(inout) :: x +type(C_PTR) :: sunctx +type(C_PTR) :: fresult +integer(C_INT) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = int(comm, C_INT) +farg2 = c_loc(x) +farg3 = sunctx +fresult = swigc_FN_VMake_MPIPlusX(farg1, farg2, farg3) +call c_f_pointer(fresult, swig_result) +end function + +function FN_VGetVectorID_MPIPlusX(v) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(N_Vector_ID) :: swig_result +type(N_Vector), target, intent(inout) :: v +integer(C_INT) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(v) +fresult = swigc_FN_VGetVectorID_MPIPlusX(farg1) +swig_result = fresult +end function + +subroutine FN_VSetArrayPointer_MPIPlusX(vdata, v) +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE), dimension(*), target, intent(inout) :: vdata +type(N_Vector), target, intent(inout) :: v +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = c_loc(vdata(1)) +farg2 = c_loc(v) +call swigc_FN_VSetArrayPointer_MPIPlusX(farg1, farg2) +end subroutine + +function FN_VGetLocalVector_MPIPlusX(v) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +type(N_Vector), pointer :: swig_result +type(N_Vector), target, intent(inout) :: v +type(C_PTR) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(v) +fresult = swigc_FN_VGetLocalVector_MPIPlusX(farg1) +call c_f_pointer(fresult, swig_result) +end function + +function FN_VGetLocalLength_MPIPlusX(v) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT32_T) :: swig_result +type(N_Vector), target, intent(inout) :: v +integer(C_INT32_T) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(v) +fresult = swigc_FN_VGetLocalLength_MPIPlusX(farg1) +swig_result = fresult +end function + +function FN_VEnableFusedOps_MPIPlusX(v, tf) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(N_Vector), target, intent(inout) :: v +integer(C_INT), intent(in) :: tf +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = c_loc(v) +farg2 = tf +fresult = swigc_FN_VEnableFusedOps_MPIPlusX(farg1, farg2) +swig_result = fresult +end function + +subroutine FN_VPrint_MPIPlusX(x) +use, intrinsic :: ISO_C_BINDING +type(N_Vector), target, intent(inout) :: x +type(C_PTR) :: farg1 + +farg1 = c_loc(x) +call swigc_FN_VPrint_MPIPlusX(farg1) +end subroutine + +subroutine FN_VPrintFile_MPIPlusX(x, outfile) +use, intrinsic :: ISO_C_BINDING +type(N_Vector), target, intent(inout) :: x +type(C_PTR) :: outfile +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = c_loc(x) +farg2 = outfile +call swigc_FN_VPrintFile_MPIPlusX(farg1, farg2) +end subroutine + + +function FN_VGetArrayPointer_MPIPlusX(v) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE), dimension(:), pointer :: swig_result +type(N_Vector), target, intent(inout) :: v +type(C_PTR) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(v) +fresult = swigc_FN_VGetArrayPointer_MPIPlusX(farg1) +call c_f_pointer(fresult, swig_result, [FN_VGetLocalLength_MPIPlusX(v)]) +end function + + +end module diff --git a/src/nvector/mpiplusx/fmod_int64/CMakeLists.txt b/src/nvector/mpiplusx/fmod_int64/CMakeLists.txt new file mode 100644 index 0000000000..d068b3609f --- /dev/null +++ b/src/nvector/mpiplusx/fmod_int64/CMakeLists.txt @@ -0,0 +1,43 @@ +# --------------------------------------------------------------- +# Programmer(s): Cody J. Balos @ LLNL +# --------------------------------------------------------------- +# SUNDIALS Copyright Start +# Copyright (c) 2002-2024, Lawrence Livermore National Security +# and Southern Methodist University. +# All rights reserved. +# +# See the top-level LICENSE and NOTICE files for details. +# +# SPDX-License-Identifier: BSD-3-Clause +# SUNDIALS Copyright End +# --------------------------------------------------------------- +# CMakeLists.txt file for the F2003 MPIPlusX NVECTOR object library +# --------------------------------------------------------------- + +if(MPI_C_COMPILER) + # use MPI wrapper as the compiler + set(CMAKE_C_COMPILER ${MPI_C_COMPILER}) +elseif() + # add MPI_INCLUDE_PATH to include directories + include_directories(${MPI_INCLUDE_PATH}) +endif() +if(MPI_Fortran_COMPILER) + # use MPI wrapper as the compiler + set(CMAKE_Fortran_COMPILER ${MPI_Fortran_COMPILER}) +endif() + +sundials_add_f2003_library(sundials_fnvecmpiplusx_mod + SOURCES + fnvector_mpiplusx_mod.f90 fnvector_mpiplusx_mod.c + LINK_LIBRARIES + PUBLIC sundials_fcore_mod + OBJECT_LIBRARIES + OUTPUT_NAME + sundials_fnvecmpiplusx_mod + VERSION + ${nveclib_VERSION} + SOVERSION + ${nveclib_SOVERSION} +) + +message(STATUS "Added NVECTOR_MPIPLUSX F2003 interface") diff --git a/src/nvector/mpiplusx/fmod/fnvector_mpiplusx_mod.c b/src/nvector/mpiplusx/fmod_int64/fnvector_mpiplusx_mod.c similarity index 100% rename from src/nvector/mpiplusx/fmod/fnvector_mpiplusx_mod.c rename to src/nvector/mpiplusx/fmod_int64/fnvector_mpiplusx_mod.c diff --git a/src/nvector/mpiplusx/fmod/fnvector_mpiplusx_mod.f90 b/src/nvector/mpiplusx/fmod_int64/fnvector_mpiplusx_mod.f90 similarity index 100% rename from src/nvector/mpiplusx/fmod/fnvector_mpiplusx_mod.f90 rename to src/nvector/mpiplusx/fmod_int64/fnvector_mpiplusx_mod.f90 diff --git a/src/nvector/openmp/CMakeLists.txt b/src/nvector/openmp/CMakeLists.txt index ab938e6694..9cbc2f35fe 100644 --- a/src/nvector/openmp/CMakeLists.txt +++ b/src/nvector/openmp/CMakeLists.txt @@ -41,5 +41,5 @@ message(STATUS "Added NVECTOR_OPENMP module") # Add F2003 module if the interface is enabled if(BUILD_FORTRAN_MODULE_INTERFACE) - add_subdirectory(fmod) + add_subdirectory("fmod_int${SUNDIALS_INDEX_SIZE}") endif() diff --git a/src/nvector/openmp/fmod/CMakeLists.txt b/src/nvector/openmp/fmod_int32/CMakeLists.txt similarity index 100% rename from src/nvector/openmp/fmod/CMakeLists.txt rename to src/nvector/openmp/fmod_int32/CMakeLists.txt diff --git a/src/nvector/openmp/fmod_int32/fnvector_openmp_mod.c b/src/nvector/openmp/fmod_int32/fnvector_openmp_mod.c new file mode 100644 index 0000000000..ddf0295838 --- /dev/null +++ b/src/nvector/openmp/fmod_int32/fnvector_openmp_mod.c @@ -0,0 +1,961 @@ +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.0 + * + * This file is not intended to be easily readable and contains a number of + * coding conventions designed to improve portability and efficiency. Do not make + * changes to this file unless you know what you are doing--modify the SWIG + * interface file instead. + * ----------------------------------------------------------------------------- */ + +/* --------------------------------------------------------------- + * Programmer(s): Auto-generated by swig. + * --------------------------------------------------------------- + * SUNDIALS Copyright Start + * Copyright (c) 2002-2024, Lawrence Livermore National Security + * and Southern Methodist University. + * All rights reserved. + * + * See the top-level LICENSE and NOTICE files for details. + * + * SPDX-License-Identifier: BSD-3-Clause + * SUNDIALS Copyright End + * -------------------------------------------------------------*/ + +/* ----------------------------------------------------------------------------- + * This section contains generic SWIG labels for method/variable + * declarations/attributes, and other compiler dependent labels. + * ----------------------------------------------------------------------------- */ + +/* template workaround for compilers that cannot correctly implement the C++ standard */ +#ifndef SWIGTEMPLATEDISAMBIGUATOR +# if defined(__SUNPRO_CC) && (__SUNPRO_CC <= 0x560) +# define SWIGTEMPLATEDISAMBIGUATOR template +# elif defined(__HP_aCC) +/* Needed even with `aCC -AA' when `aCC -V' reports HP ANSI C++ B3910B A.03.55 */ +/* If we find a maximum version that requires this, the test would be __HP_aCC <= 35500 for A.03.55 */ +# define SWIGTEMPLATEDISAMBIGUATOR template +# else +# define SWIGTEMPLATEDISAMBIGUATOR +# endif +#endif + +/* inline attribute */ +#ifndef SWIGINLINE +# if defined(__cplusplus) || (defined(__GNUC__) && !defined(__STRICT_ANSI__)) +# define SWIGINLINE inline +# else +# define SWIGINLINE +# endif +#endif + +/* attribute recognised by some compilers to avoid 'unused' warnings */ +#ifndef SWIGUNUSED +# if defined(__GNUC__) +# if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)) +# define SWIGUNUSED __attribute__ ((__unused__)) +# else +# define SWIGUNUSED +# endif +# elif defined(__ICC) +# define SWIGUNUSED __attribute__ ((__unused__)) +# else +# define SWIGUNUSED +# endif +#endif + +#ifndef SWIG_MSC_UNSUPPRESS_4505 +# if defined(_MSC_VER) +# pragma warning(disable : 4505) /* unreferenced local function has been removed */ +# endif +#endif + +#ifndef SWIGUNUSEDPARM +# ifdef __cplusplus +# define SWIGUNUSEDPARM(p) +# else +# define SWIGUNUSEDPARM(p) p SWIGUNUSED +# endif +#endif + +/* internal SWIG method */ +#ifndef SWIGINTERN +# define SWIGINTERN static SWIGUNUSED +#endif + +/* internal inline SWIG method */ +#ifndef SWIGINTERNINLINE +# define SWIGINTERNINLINE SWIGINTERN SWIGINLINE +#endif + +/* qualifier for exported *const* global data variables*/ +#ifndef SWIGEXTERN +# ifdef __cplusplus +# define SWIGEXTERN extern +# else +# define SWIGEXTERN +# endif +#endif + +/* exporting methods */ +#if defined(__GNUC__) +# if (__GNUC__ >= 4) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) +# ifndef GCC_HASCLASSVISIBILITY +# define GCC_HASCLASSVISIBILITY +# endif +# endif +#endif + +#ifndef SWIGEXPORT +# if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__) +# if defined(STATIC_LINKED) +# define SWIGEXPORT +# else +# define SWIGEXPORT __declspec(dllexport) +# endif +# else +# if defined(__GNUC__) && defined(GCC_HASCLASSVISIBILITY) +# define SWIGEXPORT __attribute__ ((visibility("default"))) +# else +# define SWIGEXPORT +# endif +# endif +#endif + +/* calling conventions for Windows */ +#ifndef SWIGSTDCALL +# if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__) +# define SWIGSTDCALL __stdcall +# else +# define SWIGSTDCALL +# endif +#endif + +/* Deal with Microsoft's attempt at deprecating C standard runtime functions */ +#if !defined(SWIG_NO_CRT_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_CRT_SECURE_NO_DEPRECATE) +# define _CRT_SECURE_NO_DEPRECATE +#endif + +/* Deal with Microsoft's attempt at deprecating methods in the standard C++ library */ +#if !defined(SWIG_NO_SCL_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_SCL_SECURE_NO_DEPRECATE) +# define _SCL_SECURE_NO_DEPRECATE +#endif + +/* Deal with Apple's deprecated 'AssertMacros.h' from Carbon-framework */ +#if defined(__APPLE__) && !defined(__ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES) +# define __ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES 0 +#endif + +/* Intel's compiler complains if a variable which was never initialised is + * cast to void, which is a common idiom which we use to indicate that we + * are aware a variable isn't used. So we just silence that warning. + * See: https://github.com/swig/swig/issues/192 for more discussion. + */ +#ifdef __INTEL_COMPILER +# pragma warning disable 592 +#endif + +/* Errors in SWIG */ +#define SWIG_UnknownError -1 +#define SWIG_IOError -2 +#define SWIG_RuntimeError -3 +#define SWIG_IndexError -4 +#define SWIG_TypeError -5 +#define SWIG_DivisionByZero -6 +#define SWIG_OverflowError -7 +#define SWIG_SyntaxError -8 +#define SWIG_ValueError -9 +#define SWIG_SystemError -10 +#define SWIG_AttributeError -11 +#define SWIG_MemoryError -12 +#define SWIG_NullReferenceError -13 + + + + +#include +#define SWIG_exception_impl(DECL, CODE, MSG, RETURNNULL) \ + { printf("In " DECL ": " MSG); assert(0); RETURNNULL; } + + +#include +#if defined(_MSC_VER) || defined(__BORLANDC__) || defined(_WATCOM) +# ifndef snprintf +# define snprintf _snprintf +# endif +#endif + + +/* Support for the `contract` feature. + * + * Note that RETURNNULL is first because it's inserted via a 'Replaceall' in + * the fortran.cxx file. + */ +#define SWIG_contract_assert(RETURNNULL, EXPR, MSG) \ + if (!(EXPR)) { SWIG_exception_impl("$decl", SWIG_ValueError, MSG, RETURNNULL); } + + +#define SWIGVERSION 0x040000 +#define SWIG_VERSION SWIGVERSION + + +#define SWIG_as_voidptr(a) (void *)((const void *)(a)) +#define SWIG_as_voidptrptr(a) ((void)SWIG_as_voidptr(*a),(void**)(a)) + + +#include "sundials/sundials_nvector.h" + + +#include "nvector/nvector_openmp.h" + +SWIGEXPORT N_Vector _wrap_FN_VNew_OpenMP(int32_t const *farg1, int const *farg2, void *farg3) { + N_Vector fresult ; + sunindextype arg1 ; + int arg2 ; + SUNContext arg3 = (SUNContext) 0 ; + N_Vector result; + + arg1 = (sunindextype)(*farg1); + arg2 = (int)(*farg2); + arg3 = (SUNContext)(farg3); + result = (N_Vector)N_VNew_OpenMP(arg1,arg2,arg3); + fresult = result; + return fresult; +} + + +SWIGEXPORT N_Vector _wrap_FN_VNewEmpty_OpenMP(int32_t const *farg1, int const *farg2, void *farg3) { + N_Vector fresult ; + sunindextype arg1 ; + int arg2 ; + SUNContext arg3 = (SUNContext) 0 ; + N_Vector result; + + arg1 = (sunindextype)(*farg1); + arg2 = (int)(*farg2); + arg3 = (SUNContext)(farg3); + result = (N_Vector)N_VNewEmpty_OpenMP(arg1,arg2,arg3); + fresult = result; + return fresult; +} + + +SWIGEXPORT N_Vector _wrap_FN_VMake_OpenMP(int32_t const *farg1, double *farg2, int const *farg3, void *farg4) { + N_Vector fresult ; + sunindextype arg1 ; + sunrealtype *arg2 = (sunrealtype *) 0 ; + int arg3 ; + SUNContext arg4 = (SUNContext) 0 ; + N_Vector result; + + arg1 = (sunindextype)(*farg1); + arg2 = (sunrealtype *)(farg2); + arg3 = (int)(*farg3); + arg4 = (SUNContext)(farg4); + result = (N_Vector)N_VMake_OpenMP(arg1,arg2,arg3,arg4); + fresult = result; + return fresult; +} + + +SWIGEXPORT int32_t _wrap_FN_VGetLength_OpenMP(N_Vector farg1) { + int32_t fresult ; + N_Vector arg1 = (N_Vector) 0 ; + sunindextype result; + + arg1 = (N_Vector)(farg1); + result = N_VGetLength_OpenMP(arg1); + fresult = (sunindextype)(result); + return fresult; +} + + +SWIGEXPORT void _wrap_FN_VPrint_OpenMP(N_Vector farg1) { + N_Vector arg1 = (N_Vector) 0 ; + + arg1 = (N_Vector)(farg1); + N_VPrint_OpenMP(arg1); +} + + +SWIGEXPORT void _wrap_FN_VPrintFile_OpenMP(N_Vector farg1, void *farg2) { + N_Vector arg1 = (N_Vector) 0 ; + FILE *arg2 = (FILE *) 0 ; + + arg1 = (N_Vector)(farg1); + arg2 = (FILE *)(farg2); + N_VPrintFile_OpenMP(arg1,arg2); +} + + +SWIGEXPORT int _wrap_FN_VGetVectorID_OpenMP(N_Vector farg1) { + int fresult ; + N_Vector arg1 = (N_Vector) 0 ; + N_Vector_ID result; + + arg1 = (N_Vector)(farg1); + result = (N_Vector_ID)N_VGetVectorID_OpenMP(arg1); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT N_Vector _wrap_FN_VCloneEmpty_OpenMP(N_Vector farg1) { + N_Vector fresult ; + N_Vector arg1 = (N_Vector) 0 ; + N_Vector result; + + arg1 = (N_Vector)(farg1); + result = (N_Vector)N_VCloneEmpty_OpenMP(arg1); + fresult = result; + return fresult; +} + + +SWIGEXPORT N_Vector _wrap_FN_VClone_OpenMP(N_Vector farg1) { + N_Vector fresult ; + N_Vector arg1 = (N_Vector) 0 ; + N_Vector result; + + arg1 = (N_Vector)(farg1); + result = (N_Vector)N_VClone_OpenMP(arg1); + fresult = result; + return fresult; +} + + +SWIGEXPORT void _wrap_FN_VDestroy_OpenMP(N_Vector farg1) { + N_Vector arg1 = (N_Vector) 0 ; + + arg1 = (N_Vector)(farg1); + N_VDestroy_OpenMP(arg1); +} + + +SWIGEXPORT void _wrap_FN_VSpace_OpenMP(N_Vector farg1, int32_t *farg2, int32_t *farg3) { + N_Vector arg1 = (N_Vector) 0 ; + sunindextype *arg2 = (sunindextype *) 0 ; + sunindextype *arg3 = (sunindextype *) 0 ; + + arg1 = (N_Vector)(farg1); + arg2 = (sunindextype *)(farg2); + arg3 = (sunindextype *)(farg3); + N_VSpace_OpenMP(arg1,arg2,arg3); +} + + +SWIGEXPORT void _wrap_FN_VSetArrayPointer_OpenMP(double *farg1, N_Vector farg2) { + sunrealtype *arg1 = (sunrealtype *) 0 ; + N_Vector arg2 = (N_Vector) 0 ; + + arg1 = (sunrealtype *)(farg1); + arg2 = (N_Vector)(farg2); + N_VSetArrayPointer_OpenMP(arg1,arg2); +} + + +SWIGEXPORT void _wrap_FN_VLinearSum_OpenMP(double const *farg1, N_Vector farg2, double const *farg3, N_Vector farg4, N_Vector farg5) { + sunrealtype arg1 ; + N_Vector arg2 = (N_Vector) 0 ; + sunrealtype arg3 ; + N_Vector arg4 = (N_Vector) 0 ; + N_Vector arg5 = (N_Vector) 0 ; + + arg1 = (sunrealtype)(*farg1); + arg2 = (N_Vector)(farg2); + arg3 = (sunrealtype)(*farg3); + arg4 = (N_Vector)(farg4); + arg5 = (N_Vector)(farg5); + N_VLinearSum_OpenMP(arg1,arg2,arg3,arg4,arg5); +} + + +SWIGEXPORT void _wrap_FN_VConst_OpenMP(double const *farg1, N_Vector farg2) { + sunrealtype arg1 ; + N_Vector arg2 = (N_Vector) 0 ; + + arg1 = (sunrealtype)(*farg1); + arg2 = (N_Vector)(farg2); + N_VConst_OpenMP(arg1,arg2); +} + + +SWIGEXPORT void _wrap_FN_VProd_OpenMP(N_Vector farg1, N_Vector farg2, N_Vector farg3) { + N_Vector arg1 = (N_Vector) 0 ; + N_Vector arg2 = (N_Vector) 0 ; + N_Vector arg3 = (N_Vector) 0 ; + + arg1 = (N_Vector)(farg1); + arg2 = (N_Vector)(farg2); + arg3 = (N_Vector)(farg3); + N_VProd_OpenMP(arg1,arg2,arg3); +} + + +SWIGEXPORT void _wrap_FN_VDiv_OpenMP(N_Vector farg1, N_Vector farg2, N_Vector farg3) { + N_Vector arg1 = (N_Vector) 0 ; + N_Vector arg2 = (N_Vector) 0 ; + N_Vector arg3 = (N_Vector) 0 ; + + arg1 = (N_Vector)(farg1); + arg2 = (N_Vector)(farg2); + arg3 = (N_Vector)(farg3); + N_VDiv_OpenMP(arg1,arg2,arg3); +} + + +SWIGEXPORT void _wrap_FN_VScale_OpenMP(double const *farg1, N_Vector farg2, N_Vector farg3) { + sunrealtype arg1 ; + N_Vector arg2 = (N_Vector) 0 ; + N_Vector arg3 = (N_Vector) 0 ; + + arg1 = (sunrealtype)(*farg1); + arg2 = (N_Vector)(farg2); + arg3 = (N_Vector)(farg3); + N_VScale_OpenMP(arg1,arg2,arg3); +} + + +SWIGEXPORT void _wrap_FN_VAbs_OpenMP(N_Vector farg1, N_Vector farg2) { + N_Vector arg1 = (N_Vector) 0 ; + N_Vector arg2 = (N_Vector) 0 ; + + arg1 = (N_Vector)(farg1); + arg2 = (N_Vector)(farg2); + N_VAbs_OpenMP(arg1,arg2); +} + + +SWIGEXPORT void _wrap_FN_VInv_OpenMP(N_Vector farg1, N_Vector farg2) { + N_Vector arg1 = (N_Vector) 0 ; + N_Vector arg2 = (N_Vector) 0 ; + + arg1 = (N_Vector)(farg1); + arg2 = (N_Vector)(farg2); + N_VInv_OpenMP(arg1,arg2); +} + + +SWIGEXPORT void _wrap_FN_VAddConst_OpenMP(N_Vector farg1, double const *farg2, N_Vector farg3) { + N_Vector arg1 = (N_Vector) 0 ; + sunrealtype arg2 ; + N_Vector arg3 = (N_Vector) 0 ; + + arg1 = (N_Vector)(farg1); + arg2 = (sunrealtype)(*farg2); + arg3 = (N_Vector)(farg3); + N_VAddConst_OpenMP(arg1,arg2,arg3); +} + + +SWIGEXPORT double _wrap_FN_VDotProd_OpenMP(N_Vector farg1, N_Vector farg2) { + double fresult ; + N_Vector arg1 = (N_Vector) 0 ; + N_Vector arg2 = (N_Vector) 0 ; + sunrealtype result; + + arg1 = (N_Vector)(farg1); + arg2 = (N_Vector)(farg2); + result = (sunrealtype)N_VDotProd_OpenMP(arg1,arg2); + fresult = (sunrealtype)(result); + return fresult; +} + + +SWIGEXPORT double _wrap_FN_VMaxNorm_OpenMP(N_Vector farg1) { + double fresult ; + N_Vector arg1 = (N_Vector) 0 ; + sunrealtype result; + + arg1 = (N_Vector)(farg1); + result = (sunrealtype)N_VMaxNorm_OpenMP(arg1); + fresult = (sunrealtype)(result); + return fresult; +} + + +SWIGEXPORT double _wrap_FN_VWrmsNorm_OpenMP(N_Vector farg1, N_Vector farg2) { + double fresult ; + N_Vector arg1 = (N_Vector) 0 ; + N_Vector arg2 = (N_Vector) 0 ; + sunrealtype result; + + arg1 = (N_Vector)(farg1); + arg2 = (N_Vector)(farg2); + result = (sunrealtype)N_VWrmsNorm_OpenMP(arg1,arg2); + fresult = (sunrealtype)(result); + return fresult; +} + + +SWIGEXPORT double _wrap_FN_VWrmsNormMask_OpenMP(N_Vector farg1, N_Vector farg2, N_Vector farg3) { + double fresult ; + N_Vector arg1 = (N_Vector) 0 ; + N_Vector arg2 = (N_Vector) 0 ; + N_Vector arg3 = (N_Vector) 0 ; + sunrealtype result; + + arg1 = (N_Vector)(farg1); + arg2 = (N_Vector)(farg2); + arg3 = (N_Vector)(farg3); + result = (sunrealtype)N_VWrmsNormMask_OpenMP(arg1,arg2,arg3); + fresult = (sunrealtype)(result); + return fresult; +} + + +SWIGEXPORT double _wrap_FN_VMin_OpenMP(N_Vector farg1) { + double fresult ; + N_Vector arg1 = (N_Vector) 0 ; + sunrealtype result; + + arg1 = (N_Vector)(farg1); + result = (sunrealtype)N_VMin_OpenMP(arg1); + fresult = (sunrealtype)(result); + return fresult; +} + + +SWIGEXPORT double _wrap_FN_VWL2Norm_OpenMP(N_Vector farg1, N_Vector farg2) { + double fresult ; + N_Vector arg1 = (N_Vector) 0 ; + N_Vector arg2 = (N_Vector) 0 ; + sunrealtype result; + + arg1 = (N_Vector)(farg1); + arg2 = (N_Vector)(farg2); + result = (sunrealtype)N_VWL2Norm_OpenMP(arg1,arg2); + fresult = (sunrealtype)(result); + return fresult; +} + + +SWIGEXPORT double _wrap_FN_VL1Norm_OpenMP(N_Vector farg1) { + double fresult ; + N_Vector arg1 = (N_Vector) 0 ; + sunrealtype result; + + arg1 = (N_Vector)(farg1); + result = (sunrealtype)N_VL1Norm_OpenMP(arg1); + fresult = (sunrealtype)(result); + return fresult; +} + + +SWIGEXPORT void _wrap_FN_VCompare_OpenMP(double const *farg1, N_Vector farg2, N_Vector farg3) { + sunrealtype arg1 ; + N_Vector arg2 = (N_Vector) 0 ; + N_Vector arg3 = (N_Vector) 0 ; + + arg1 = (sunrealtype)(*farg1); + arg2 = (N_Vector)(farg2); + arg3 = (N_Vector)(farg3); + N_VCompare_OpenMP(arg1,arg2,arg3); +} + + +SWIGEXPORT int _wrap_FN_VInvTest_OpenMP(N_Vector farg1, N_Vector farg2) { + int fresult ; + N_Vector arg1 = (N_Vector) 0 ; + N_Vector arg2 = (N_Vector) 0 ; + int result; + + arg1 = (N_Vector)(farg1); + arg2 = (N_Vector)(farg2); + result = (int)N_VInvTest_OpenMP(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FN_VConstrMask_OpenMP(N_Vector farg1, N_Vector farg2, N_Vector farg3) { + int fresult ; + N_Vector arg1 = (N_Vector) 0 ; + N_Vector arg2 = (N_Vector) 0 ; + N_Vector arg3 = (N_Vector) 0 ; + int result; + + arg1 = (N_Vector)(farg1); + arg2 = (N_Vector)(farg2); + arg3 = (N_Vector)(farg3); + result = (int)N_VConstrMask_OpenMP(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT double _wrap_FN_VMinQuotient_OpenMP(N_Vector farg1, N_Vector farg2) { + double fresult ; + N_Vector arg1 = (N_Vector) 0 ; + N_Vector arg2 = (N_Vector) 0 ; + sunrealtype result; + + arg1 = (N_Vector)(farg1); + arg2 = (N_Vector)(farg2); + result = (sunrealtype)N_VMinQuotient_OpenMP(arg1,arg2); + fresult = (sunrealtype)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FN_VLinearCombination_OpenMP(int const *farg1, double *farg2, void *farg3, N_Vector farg4) { + int fresult ; + int arg1 ; + sunrealtype *arg2 = (sunrealtype *) 0 ; + N_Vector *arg3 = (N_Vector *) 0 ; + N_Vector arg4 = (N_Vector) 0 ; + SUNErrCode result; + + arg1 = (int)(*farg1); + arg2 = (sunrealtype *)(farg2); + arg3 = (N_Vector *)(farg3); + arg4 = (N_Vector)(farg4); + result = (SUNErrCode)N_VLinearCombination_OpenMP(arg1,arg2,arg3,arg4); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FN_VScaleAddMulti_OpenMP(int const *farg1, double *farg2, N_Vector farg3, void *farg4, void *farg5) { + int fresult ; + int arg1 ; + sunrealtype *arg2 = (sunrealtype *) 0 ; + N_Vector arg3 = (N_Vector) 0 ; + N_Vector *arg4 = (N_Vector *) 0 ; + N_Vector *arg5 = (N_Vector *) 0 ; + SUNErrCode result; + + arg1 = (int)(*farg1); + arg2 = (sunrealtype *)(farg2); + arg3 = (N_Vector)(farg3); + arg4 = (N_Vector *)(farg4); + arg5 = (N_Vector *)(farg5); + result = (SUNErrCode)N_VScaleAddMulti_OpenMP(arg1,arg2,arg3,arg4,arg5); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FN_VDotProdMulti_OpenMP(int const *farg1, N_Vector farg2, void *farg3, double *farg4) { + int fresult ; + int arg1 ; + N_Vector arg2 = (N_Vector) 0 ; + N_Vector *arg3 = (N_Vector *) 0 ; + sunrealtype *arg4 = (sunrealtype *) 0 ; + SUNErrCode result; + + arg1 = (int)(*farg1); + arg2 = (N_Vector)(farg2); + arg3 = (N_Vector *)(farg3); + arg4 = (sunrealtype *)(farg4); + result = (SUNErrCode)N_VDotProdMulti_OpenMP(arg1,arg2,arg3,arg4); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FN_VLinearSumVectorArray_OpenMP(int const *farg1, double const *farg2, void *farg3, double const *farg4, void *farg5, void *farg6) { + int fresult ; + int arg1 ; + sunrealtype arg2 ; + N_Vector *arg3 = (N_Vector *) 0 ; + sunrealtype arg4 ; + N_Vector *arg5 = (N_Vector *) 0 ; + N_Vector *arg6 = (N_Vector *) 0 ; + SUNErrCode result; + + arg1 = (int)(*farg1); + arg2 = (sunrealtype)(*farg2); + arg3 = (N_Vector *)(farg3); + arg4 = (sunrealtype)(*farg4); + arg5 = (N_Vector *)(farg5); + arg6 = (N_Vector *)(farg6); + result = (SUNErrCode)N_VLinearSumVectorArray_OpenMP(arg1,arg2,arg3,arg4,arg5,arg6); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FN_VScaleVectorArray_OpenMP(int const *farg1, double *farg2, void *farg3, void *farg4) { + int fresult ; + int arg1 ; + sunrealtype *arg2 = (sunrealtype *) 0 ; + N_Vector *arg3 = (N_Vector *) 0 ; + N_Vector *arg4 = (N_Vector *) 0 ; + SUNErrCode result; + + arg1 = (int)(*farg1); + arg2 = (sunrealtype *)(farg2); + arg3 = (N_Vector *)(farg3); + arg4 = (N_Vector *)(farg4); + result = (SUNErrCode)N_VScaleVectorArray_OpenMP(arg1,arg2,arg3,arg4); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FN_VConstVectorArray_OpenMP(int const *farg1, double const *farg2, void *farg3) { + int fresult ; + int arg1 ; + sunrealtype arg2 ; + N_Vector *arg3 = (N_Vector *) 0 ; + SUNErrCode result; + + arg1 = (int)(*farg1); + arg2 = (sunrealtype)(*farg2); + arg3 = (N_Vector *)(farg3); + result = (SUNErrCode)N_VConstVectorArray_OpenMP(arg1,arg2,arg3); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FN_VWrmsNormVectorArray_OpenMP(int const *farg1, void *farg2, void *farg3, double *farg4) { + int fresult ; + int arg1 ; + N_Vector *arg2 = (N_Vector *) 0 ; + N_Vector *arg3 = (N_Vector *) 0 ; + sunrealtype *arg4 = (sunrealtype *) 0 ; + SUNErrCode result; + + arg1 = (int)(*farg1); + arg2 = (N_Vector *)(farg2); + arg3 = (N_Vector *)(farg3); + arg4 = (sunrealtype *)(farg4); + result = (SUNErrCode)N_VWrmsNormVectorArray_OpenMP(arg1,arg2,arg3,arg4); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FN_VWrmsNormMaskVectorArray_OpenMP(int const *farg1, void *farg2, void *farg3, N_Vector farg4, double *farg5) { + int fresult ; + int arg1 ; + N_Vector *arg2 = (N_Vector *) 0 ; + N_Vector *arg3 = (N_Vector *) 0 ; + N_Vector arg4 = (N_Vector) 0 ; + sunrealtype *arg5 = (sunrealtype *) 0 ; + SUNErrCode result; + + arg1 = (int)(*farg1); + arg2 = (N_Vector *)(farg2); + arg3 = (N_Vector *)(farg3); + arg4 = (N_Vector)(farg4); + arg5 = (sunrealtype *)(farg5); + result = (SUNErrCode)N_VWrmsNormMaskVectorArray_OpenMP(arg1,arg2,arg3,arg4,arg5); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT double _wrap_FN_VWSqrSumLocal_OpenMP(N_Vector farg1, N_Vector farg2) { + double fresult ; + N_Vector arg1 = (N_Vector) 0 ; + N_Vector arg2 = (N_Vector) 0 ; + sunrealtype result; + + arg1 = (N_Vector)(farg1); + arg2 = (N_Vector)(farg2); + result = (sunrealtype)N_VWSqrSumLocal_OpenMP(arg1,arg2); + fresult = (sunrealtype)(result); + return fresult; +} + + +SWIGEXPORT double _wrap_FN_VWSqrSumMaskLocal_OpenMP(N_Vector farg1, N_Vector farg2, N_Vector farg3) { + double fresult ; + N_Vector arg1 = (N_Vector) 0 ; + N_Vector arg2 = (N_Vector) 0 ; + N_Vector arg3 = (N_Vector) 0 ; + sunrealtype result; + + arg1 = (N_Vector)(farg1); + arg2 = (N_Vector)(farg2); + arg3 = (N_Vector)(farg3); + result = (sunrealtype)N_VWSqrSumMaskLocal_OpenMP(arg1,arg2,arg3); + fresult = (sunrealtype)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FN_VBufSize_OpenMP(N_Vector farg1, int32_t *farg2) { + int fresult ; + N_Vector arg1 = (N_Vector) 0 ; + sunindextype *arg2 = (sunindextype *) 0 ; + SUNErrCode result; + + arg1 = (N_Vector)(farg1); + arg2 = (sunindextype *)(farg2); + result = (SUNErrCode)N_VBufSize_OpenMP(arg1,arg2); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FN_VBufPack_OpenMP(N_Vector farg1, void *farg2) { + int fresult ; + N_Vector arg1 = (N_Vector) 0 ; + void *arg2 = (void *) 0 ; + SUNErrCode result; + + arg1 = (N_Vector)(farg1); + arg2 = (void *)(farg2); + result = (SUNErrCode)N_VBufPack_OpenMP(arg1,arg2); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FN_VBufUnpack_OpenMP(N_Vector farg1, void *farg2) { + int fresult ; + N_Vector arg1 = (N_Vector) 0 ; + void *arg2 = (void *) 0 ; + SUNErrCode result; + + arg1 = (N_Vector)(farg1); + arg2 = (void *)(farg2); + result = (SUNErrCode)N_VBufUnpack_OpenMP(arg1,arg2); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FN_VEnableFusedOps_OpenMP(N_Vector farg1, int const *farg2) { + int fresult ; + N_Vector arg1 = (N_Vector) 0 ; + int arg2 ; + SUNErrCode result; + + arg1 = (N_Vector)(farg1); + arg2 = (int)(*farg2); + result = (SUNErrCode)N_VEnableFusedOps_OpenMP(arg1,arg2); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FN_VEnableLinearCombination_OpenMP(N_Vector farg1, int const *farg2) { + int fresult ; + N_Vector arg1 = (N_Vector) 0 ; + int arg2 ; + SUNErrCode result; + + arg1 = (N_Vector)(farg1); + arg2 = (int)(*farg2); + result = (SUNErrCode)N_VEnableLinearCombination_OpenMP(arg1,arg2); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FN_VEnableScaleAddMulti_OpenMP(N_Vector farg1, int const *farg2) { + int fresult ; + N_Vector arg1 = (N_Vector) 0 ; + int arg2 ; + SUNErrCode result; + + arg1 = (N_Vector)(farg1); + arg2 = (int)(*farg2); + result = (SUNErrCode)N_VEnableScaleAddMulti_OpenMP(arg1,arg2); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FN_VEnableDotProdMulti_OpenMP(N_Vector farg1, int const *farg2) { + int fresult ; + N_Vector arg1 = (N_Vector) 0 ; + int arg2 ; + SUNErrCode result; + + arg1 = (N_Vector)(farg1); + arg2 = (int)(*farg2); + result = (SUNErrCode)N_VEnableDotProdMulti_OpenMP(arg1,arg2); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FN_VEnableLinearSumVectorArray_OpenMP(N_Vector farg1, int const *farg2) { + int fresult ; + N_Vector arg1 = (N_Vector) 0 ; + int arg2 ; + SUNErrCode result; + + arg1 = (N_Vector)(farg1); + arg2 = (int)(*farg2); + result = (SUNErrCode)N_VEnableLinearSumVectorArray_OpenMP(arg1,arg2); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FN_VEnableScaleVectorArray_OpenMP(N_Vector farg1, int const *farg2) { + int fresult ; + N_Vector arg1 = (N_Vector) 0 ; + int arg2 ; + SUNErrCode result; + + arg1 = (N_Vector)(farg1); + arg2 = (int)(*farg2); + result = (SUNErrCode)N_VEnableScaleVectorArray_OpenMP(arg1,arg2); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FN_VEnableConstVectorArray_OpenMP(N_Vector farg1, int const *farg2) { + int fresult ; + N_Vector arg1 = (N_Vector) 0 ; + int arg2 ; + SUNErrCode result; + + arg1 = (N_Vector)(farg1); + arg2 = (int)(*farg2); + result = (SUNErrCode)N_VEnableConstVectorArray_OpenMP(arg1,arg2); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FN_VEnableWrmsNormVectorArray_OpenMP(N_Vector farg1, int const *farg2) { + int fresult ; + N_Vector arg1 = (N_Vector) 0 ; + int arg2 ; + SUNErrCode result; + + arg1 = (N_Vector)(farg1); + arg2 = (int)(*farg2); + result = (SUNErrCode)N_VEnableWrmsNormVectorArray_OpenMP(arg1,arg2); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FN_VEnableWrmsNormMaskVectorArray_OpenMP(N_Vector farg1, int const *farg2) { + int fresult ; + N_Vector arg1 = (N_Vector) 0 ; + int arg2 ; + SUNErrCode result; + + arg1 = (N_Vector)(farg1); + arg2 = (int)(*farg2); + result = (SUNErrCode)N_VEnableWrmsNormMaskVectorArray_OpenMP(arg1,arg2); + fresult = (SUNErrCode)(result); + return fresult; +} + + + +SWIGEXPORT double * _wrap_FN_VGetArrayPointer_OpenMP(N_Vector farg1) { + double * fresult ; + N_Vector arg1 = (N_Vector) 0 ; + sunrealtype *result = 0 ; + + arg1 = (N_Vector)(farg1); + result = (sunrealtype *)N_VGetArrayPointer_OpenMP(arg1); + fresult = result; + return fresult; +} + + diff --git a/src/nvector/openmp/fmod_int32/fnvector_openmp_mod.f90 b/src/nvector/openmp/fmod_int32/fnvector_openmp_mod.f90 new file mode 100644 index 0000000000..e5f7cdc3f2 --- /dev/null +++ b/src/nvector/openmp/fmod_int32/fnvector_openmp_mod.f90 @@ -0,0 +1,1461 @@ +! This file was automatically generated by SWIG (http://www.swig.org). +! Version 4.0.0 +! +! Do not make changes to this file unless you know what you are doing--modify +! the SWIG interface file instead. + +! --------------------------------------------------------------- +! Programmer(s): Auto-generated by swig. +! --------------------------------------------------------------- +! SUNDIALS Copyright Start +! Copyright (c) 2002-2024, Lawrence Livermore National Security +! and Southern Methodist University. +! All rights reserved. +! +! See the top-level LICENSE and NOTICE files for details. +! +! SPDX-License-Identifier: BSD-3-Clause +! SUNDIALS Copyright End +! --------------------------------------------------------------- + +module fnvector_openmp_mod + use, intrinsic :: ISO_C_BINDING + use fsundials_core_mod + implicit none + private + + ! DECLARATION CONSTRUCTS + public :: FN_VNew_OpenMP + public :: FN_VNewEmpty_OpenMP + public :: FN_VMake_OpenMP + public :: FN_VGetLength_OpenMP + public :: FN_VPrint_OpenMP + public :: FN_VPrintFile_OpenMP + public :: FN_VGetVectorID_OpenMP + public :: FN_VCloneEmpty_OpenMP + public :: FN_VClone_OpenMP + public :: FN_VDestroy_OpenMP + public :: FN_VSpace_OpenMP + public :: FN_VSetArrayPointer_OpenMP + public :: FN_VLinearSum_OpenMP + public :: FN_VConst_OpenMP + public :: FN_VProd_OpenMP + public :: FN_VDiv_OpenMP + public :: FN_VScale_OpenMP + public :: FN_VAbs_OpenMP + public :: FN_VInv_OpenMP + public :: FN_VAddConst_OpenMP + public :: FN_VDotProd_OpenMP + public :: FN_VMaxNorm_OpenMP + public :: FN_VWrmsNorm_OpenMP + public :: FN_VWrmsNormMask_OpenMP + public :: FN_VMin_OpenMP + public :: FN_VWL2Norm_OpenMP + public :: FN_VL1Norm_OpenMP + public :: FN_VCompare_OpenMP + public :: FN_VInvTest_OpenMP + public :: FN_VConstrMask_OpenMP + public :: FN_VMinQuotient_OpenMP + public :: FN_VLinearCombination_OpenMP + public :: FN_VScaleAddMulti_OpenMP + public :: FN_VDotProdMulti_OpenMP + public :: FN_VLinearSumVectorArray_OpenMP + public :: FN_VScaleVectorArray_OpenMP + public :: FN_VConstVectorArray_OpenMP + public :: FN_VWrmsNormVectorArray_OpenMP + public :: FN_VWrmsNormMaskVectorArray_OpenMP + public :: FN_VWSqrSumLocal_OpenMP + public :: FN_VWSqrSumMaskLocal_OpenMP + public :: FN_VBufSize_OpenMP + public :: FN_VBufPack_OpenMP + public :: FN_VBufUnpack_OpenMP + public :: FN_VEnableFusedOps_OpenMP + public :: FN_VEnableLinearCombination_OpenMP + public :: FN_VEnableScaleAddMulti_OpenMP + public :: FN_VEnableDotProdMulti_OpenMP + public :: FN_VEnableLinearSumVectorArray_OpenMP + public :: FN_VEnableScaleVectorArray_OpenMP + public :: FN_VEnableConstVectorArray_OpenMP + public :: FN_VEnableWrmsNormVectorArray_OpenMP + public :: FN_VEnableWrmsNormMaskVectorArray_OpenMP + + public :: FN_VGetArrayPointer_OpenMP + + +! WRAPPER DECLARATIONS +interface +function swigc_FN_VNew_OpenMP(farg1, farg2, farg3) & +bind(C, name="_wrap_FN_VNew_OpenMP") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +integer(C_INT32_T), intent(in) :: farg1 +integer(C_INT), intent(in) :: farg2 +type(C_PTR), value :: farg3 +type(C_PTR) :: fresult +end function + +function swigc_FN_VNewEmpty_OpenMP(farg1, farg2, farg3) & +bind(C, name="_wrap_FN_VNewEmpty_OpenMP") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +integer(C_INT32_T), intent(in) :: farg1 +integer(C_INT), intent(in) :: farg2 +type(C_PTR), value :: farg3 +type(C_PTR) :: fresult +end function + +function swigc_FN_VMake_OpenMP(farg1, farg2, farg3, farg4) & +bind(C, name="_wrap_FN_VMake_OpenMP") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +integer(C_INT32_T), intent(in) :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT), intent(in) :: farg3 +type(C_PTR), value :: farg4 +type(C_PTR) :: fresult +end function + +function swigc_FN_VGetLength_OpenMP(farg1) & +bind(C, name="_wrap_FN_VGetLength_OpenMP") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT32_T) :: fresult +end function + +subroutine swigc_FN_VPrint_OpenMP(farg1) & +bind(C, name="_wrap_FN_VPrint_OpenMP") +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +end subroutine + +subroutine swigc_FN_VPrintFile_OpenMP(farg1, farg2) & +bind(C, name="_wrap_FN_VPrintFile_OpenMP") +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +end subroutine + +function swigc_FN_VGetVectorID_OpenMP(farg1) & +bind(C, name="_wrap_FN_VGetVectorID_OpenMP") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT) :: fresult +end function + +function swigc_FN_VCloneEmpty_OpenMP(farg1) & +bind(C, name="_wrap_FN_VCloneEmpty_OpenMP") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR) :: fresult +end function + +function swigc_FN_VClone_OpenMP(farg1) & +bind(C, name="_wrap_FN_VClone_OpenMP") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR) :: fresult +end function + +subroutine swigc_FN_VDestroy_OpenMP(farg1) & +bind(C, name="_wrap_FN_VDestroy_OpenMP") +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +end subroutine + +subroutine swigc_FN_VSpace_OpenMP(farg1, farg2, farg3) & +bind(C, name="_wrap_FN_VSpace_OpenMP") +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +end subroutine + +subroutine swigc_FN_VSetArrayPointer_OpenMP(farg1, farg2) & +bind(C, name="_wrap_FN_VSetArrayPointer_OpenMP") +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +end subroutine + +subroutine swigc_FN_VLinearSum_OpenMP(farg1, farg2, farg3, farg4, farg5) & +bind(C, name="_wrap_FN_VLinearSum_OpenMP") +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE), intent(in) :: farg1 +type(C_PTR), value :: farg2 +real(C_DOUBLE), intent(in) :: farg3 +type(C_PTR), value :: farg4 +type(C_PTR), value :: farg5 +end subroutine + +subroutine swigc_FN_VConst_OpenMP(farg1, farg2) & +bind(C, name="_wrap_FN_VConst_OpenMP") +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE), intent(in) :: farg1 +type(C_PTR), value :: farg2 +end subroutine + +subroutine swigc_FN_VProd_OpenMP(farg1, farg2, farg3) & +bind(C, name="_wrap_FN_VProd_OpenMP") +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +end subroutine + +subroutine swigc_FN_VDiv_OpenMP(farg1, farg2, farg3) & +bind(C, name="_wrap_FN_VDiv_OpenMP") +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +end subroutine + +subroutine swigc_FN_VScale_OpenMP(farg1, farg2, farg3) & +bind(C, name="_wrap_FN_VScale_OpenMP") +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE), intent(in) :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +end subroutine + +subroutine swigc_FN_VAbs_OpenMP(farg1, farg2) & +bind(C, name="_wrap_FN_VAbs_OpenMP") +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +end subroutine + +subroutine swigc_FN_VInv_OpenMP(farg1, farg2) & +bind(C, name="_wrap_FN_VInv_OpenMP") +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +end subroutine + +subroutine swigc_FN_VAddConst_OpenMP(farg1, farg2, farg3) & +bind(C, name="_wrap_FN_VAddConst_OpenMP") +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +type(C_PTR), value :: farg3 +end subroutine + +function swigc_FN_VDotProd_OpenMP(farg1, farg2) & +bind(C, name="_wrap_FN_VDotProd_OpenMP") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +real(C_DOUBLE) :: fresult +end function + +function swigc_FN_VMaxNorm_OpenMP(farg1) & +bind(C, name="_wrap_FN_VMaxNorm_OpenMP") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE) :: fresult +end function + +function swigc_FN_VWrmsNorm_OpenMP(farg1, farg2) & +bind(C, name="_wrap_FN_VWrmsNorm_OpenMP") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +real(C_DOUBLE) :: fresult +end function + +function swigc_FN_VWrmsNormMask_OpenMP(farg1, farg2, farg3) & +bind(C, name="_wrap_FN_VWrmsNormMask_OpenMP") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +real(C_DOUBLE) :: fresult +end function + +function swigc_FN_VMin_OpenMP(farg1) & +bind(C, name="_wrap_FN_VMin_OpenMP") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE) :: fresult +end function + +function swigc_FN_VWL2Norm_OpenMP(farg1, farg2) & +bind(C, name="_wrap_FN_VWL2Norm_OpenMP") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +real(C_DOUBLE) :: fresult +end function + +function swigc_FN_VL1Norm_OpenMP(farg1) & +bind(C, name="_wrap_FN_VL1Norm_OpenMP") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE) :: fresult +end function + +subroutine swigc_FN_VCompare_OpenMP(farg1, farg2, farg3) & +bind(C, name="_wrap_FN_VCompare_OpenMP") +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE), intent(in) :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +end subroutine + +function swigc_FN_VInvTest_OpenMP(farg1, farg2) & +bind(C, name="_wrap_FN_VInvTest_OpenMP") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FN_VConstrMask_OpenMP(farg1, farg2, farg3) & +bind(C, name="_wrap_FN_VConstrMask_OpenMP") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FN_VMinQuotient_OpenMP(farg1, farg2) & +bind(C, name="_wrap_FN_VMinQuotient_OpenMP") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +real(C_DOUBLE) :: fresult +end function + +function swigc_FN_VLinearCombination_OpenMP(farg1, farg2, farg3, farg4) & +bind(C, name="_wrap_FN_VLinearCombination_OpenMP") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +integer(C_INT), intent(in) :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +type(C_PTR), value :: farg4 +integer(C_INT) :: fresult +end function + +function swigc_FN_VScaleAddMulti_OpenMP(farg1, farg2, farg3, farg4, farg5) & +bind(C, name="_wrap_FN_VScaleAddMulti_OpenMP") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +integer(C_INT), intent(in) :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +type(C_PTR), value :: farg4 +type(C_PTR), value :: farg5 +integer(C_INT) :: fresult +end function + +function swigc_FN_VDotProdMulti_OpenMP(farg1, farg2, farg3, farg4) & +bind(C, name="_wrap_FN_VDotProdMulti_OpenMP") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +integer(C_INT), intent(in) :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +type(C_PTR), value :: farg4 +integer(C_INT) :: fresult +end function + +function swigc_FN_VLinearSumVectorArray_OpenMP(farg1, farg2, farg3, farg4, farg5, farg6) & +bind(C, name="_wrap_FN_VLinearSumVectorArray_OpenMP") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +integer(C_INT), intent(in) :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +type(C_PTR), value :: farg3 +real(C_DOUBLE), intent(in) :: farg4 +type(C_PTR), value :: farg5 +type(C_PTR), value :: farg6 +integer(C_INT) :: fresult +end function + +function swigc_FN_VScaleVectorArray_OpenMP(farg1, farg2, farg3, farg4) & +bind(C, name="_wrap_FN_VScaleVectorArray_OpenMP") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +integer(C_INT), intent(in) :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +type(C_PTR), value :: farg4 +integer(C_INT) :: fresult +end function + +function swigc_FN_VConstVectorArray_OpenMP(farg1, farg2, farg3) & +bind(C, name="_wrap_FN_VConstVectorArray_OpenMP") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +integer(C_INT), intent(in) :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FN_VWrmsNormVectorArray_OpenMP(farg1, farg2, farg3, farg4) & +bind(C, name="_wrap_FN_VWrmsNormVectorArray_OpenMP") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +integer(C_INT), intent(in) :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +type(C_PTR), value :: farg4 +integer(C_INT) :: fresult +end function + +function swigc_FN_VWrmsNormMaskVectorArray_OpenMP(farg1, farg2, farg3, farg4, farg5) & +bind(C, name="_wrap_FN_VWrmsNormMaskVectorArray_OpenMP") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +integer(C_INT), intent(in) :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +type(C_PTR), value :: farg4 +type(C_PTR), value :: farg5 +integer(C_INT) :: fresult +end function + +function swigc_FN_VWSqrSumLocal_OpenMP(farg1, farg2) & +bind(C, name="_wrap_FN_VWSqrSumLocal_OpenMP") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +real(C_DOUBLE) :: fresult +end function + +function swigc_FN_VWSqrSumMaskLocal_OpenMP(farg1, farg2, farg3) & +bind(C, name="_wrap_FN_VWSqrSumMaskLocal_OpenMP") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +real(C_DOUBLE) :: fresult +end function + +function swigc_FN_VBufSize_OpenMP(farg1, farg2) & +bind(C, name="_wrap_FN_VBufSize_OpenMP") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FN_VBufPack_OpenMP(farg1, farg2) & +bind(C, name="_wrap_FN_VBufPack_OpenMP") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FN_VBufUnpack_OpenMP(farg1, farg2) & +bind(C, name="_wrap_FN_VBufUnpack_OpenMP") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FN_VEnableFusedOps_OpenMP(farg1, farg2) & +bind(C, name="_wrap_FN_VEnableFusedOps_OpenMP") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FN_VEnableLinearCombination_OpenMP(farg1, farg2) & +bind(C, name="_wrap_FN_VEnableLinearCombination_OpenMP") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FN_VEnableScaleAddMulti_OpenMP(farg1, farg2) & +bind(C, name="_wrap_FN_VEnableScaleAddMulti_OpenMP") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FN_VEnableDotProdMulti_OpenMP(farg1, farg2) & +bind(C, name="_wrap_FN_VEnableDotProdMulti_OpenMP") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FN_VEnableLinearSumVectorArray_OpenMP(farg1, farg2) & +bind(C, name="_wrap_FN_VEnableLinearSumVectorArray_OpenMP") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FN_VEnableScaleVectorArray_OpenMP(farg1, farg2) & +bind(C, name="_wrap_FN_VEnableScaleVectorArray_OpenMP") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FN_VEnableConstVectorArray_OpenMP(farg1, farg2) & +bind(C, name="_wrap_FN_VEnableConstVectorArray_OpenMP") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FN_VEnableWrmsNormVectorArray_OpenMP(farg1, farg2) & +bind(C, name="_wrap_FN_VEnableWrmsNormVectorArray_OpenMP") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FN_VEnableWrmsNormMaskVectorArray_OpenMP(farg1, farg2) & +bind(C, name="_wrap_FN_VEnableWrmsNormMaskVectorArray_OpenMP") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + + +function swigc_FN_VGetArrayPointer_OpenMP(farg1) & +bind(C, name="_wrap_FN_VGetArrayPointer_OpenMP") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR) :: fresult +end function + +end interface + + +contains + ! MODULE SUBPROGRAMS +function FN_VNew_OpenMP(vec_length, num_threads, sunctx) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +type(N_Vector), pointer :: swig_result +integer(C_INT32_T), intent(in) :: vec_length +integer(C_INT), intent(in) :: num_threads +type(C_PTR) :: sunctx +type(C_PTR) :: fresult +integer(C_INT32_T) :: farg1 +integer(C_INT) :: farg2 +type(C_PTR) :: farg3 + +farg1 = vec_length +farg2 = num_threads +farg3 = sunctx +fresult = swigc_FN_VNew_OpenMP(farg1, farg2, farg3) +call c_f_pointer(fresult, swig_result) +end function + +function FN_VNewEmpty_OpenMP(vec_length, num_threads, sunctx) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +type(N_Vector), pointer :: swig_result +integer(C_INT32_T), intent(in) :: vec_length +integer(C_INT), intent(in) :: num_threads +type(C_PTR) :: sunctx +type(C_PTR) :: fresult +integer(C_INT32_T) :: farg1 +integer(C_INT) :: farg2 +type(C_PTR) :: farg3 + +farg1 = vec_length +farg2 = num_threads +farg3 = sunctx +fresult = swigc_FN_VNewEmpty_OpenMP(farg1, farg2, farg3) +call c_f_pointer(fresult, swig_result) +end function + +function FN_VMake_OpenMP(vec_length, v_data, num_threads, sunctx) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +type(N_Vector), pointer :: swig_result +integer(C_INT32_T), intent(in) :: vec_length +real(C_DOUBLE), dimension(*), target, intent(inout) :: v_data +integer(C_INT), intent(in) :: num_threads +type(C_PTR) :: sunctx +type(C_PTR) :: fresult +integer(C_INT32_T) :: farg1 +type(C_PTR) :: farg2 +integer(C_INT) :: farg3 +type(C_PTR) :: farg4 + +farg1 = vec_length +farg2 = c_loc(v_data(1)) +farg3 = num_threads +farg4 = sunctx +fresult = swigc_FN_VMake_OpenMP(farg1, farg2, farg3, farg4) +call c_f_pointer(fresult, swig_result) +end function + +function FN_VGetLength_OpenMP(v) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT32_T) :: swig_result +type(N_Vector), target, intent(inout) :: v +integer(C_INT32_T) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(v) +fresult = swigc_FN_VGetLength_OpenMP(farg1) +swig_result = fresult +end function + +subroutine FN_VPrint_OpenMP(v) +use, intrinsic :: ISO_C_BINDING +type(N_Vector), target, intent(inout) :: v +type(C_PTR) :: farg1 + +farg1 = c_loc(v) +call swigc_FN_VPrint_OpenMP(farg1) +end subroutine + +subroutine FN_VPrintFile_OpenMP(v, outfile) +use, intrinsic :: ISO_C_BINDING +type(N_Vector), target, intent(inout) :: v +type(C_PTR) :: outfile +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = c_loc(v) +farg2 = outfile +call swigc_FN_VPrintFile_OpenMP(farg1, farg2) +end subroutine + +function FN_VGetVectorID_OpenMP(v) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(N_Vector_ID) :: swig_result +type(N_Vector), target, intent(inout) :: v +integer(C_INT) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(v) +fresult = swigc_FN_VGetVectorID_OpenMP(farg1) +swig_result = fresult +end function + +function FN_VCloneEmpty_OpenMP(w) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +type(N_Vector), pointer :: swig_result +type(N_Vector), target, intent(inout) :: w +type(C_PTR) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(w) +fresult = swigc_FN_VCloneEmpty_OpenMP(farg1) +call c_f_pointer(fresult, swig_result) +end function + +function FN_VClone_OpenMP(w) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +type(N_Vector), pointer :: swig_result +type(N_Vector), target, intent(inout) :: w +type(C_PTR) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(w) +fresult = swigc_FN_VClone_OpenMP(farg1) +call c_f_pointer(fresult, swig_result) +end function + +subroutine FN_VDestroy_OpenMP(v) +use, intrinsic :: ISO_C_BINDING +type(N_Vector), target, intent(inout) :: v +type(C_PTR) :: farg1 + +farg1 = c_loc(v) +call swigc_FN_VDestroy_OpenMP(farg1) +end subroutine + +subroutine FN_VSpace_OpenMP(v, lrw, liw) +use, intrinsic :: ISO_C_BINDING +type(N_Vector), target, intent(inout) :: v +integer(C_INT32_T), dimension(*), target, intent(inout) :: lrw +integer(C_INT32_T), dimension(*), target, intent(inout) :: liw +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = c_loc(v) +farg2 = c_loc(lrw(1)) +farg3 = c_loc(liw(1)) +call swigc_FN_VSpace_OpenMP(farg1, farg2, farg3) +end subroutine + +subroutine FN_VSetArrayPointer_OpenMP(v_data, v) +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE), dimension(*), target, intent(inout) :: v_data +type(N_Vector), target, intent(inout) :: v +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = c_loc(v_data(1)) +farg2 = c_loc(v) +call swigc_FN_VSetArrayPointer_OpenMP(farg1, farg2) +end subroutine + +subroutine FN_VLinearSum_OpenMP(a, x, b, y, z) +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE), intent(in) :: a +type(N_Vector), target, intent(inout) :: x +real(C_DOUBLE), intent(in) :: b +type(N_Vector), target, intent(inout) :: y +type(N_Vector), target, intent(inout) :: z +real(C_DOUBLE) :: farg1 +type(C_PTR) :: farg2 +real(C_DOUBLE) :: farg3 +type(C_PTR) :: farg4 +type(C_PTR) :: farg5 + +farg1 = a +farg2 = c_loc(x) +farg3 = b +farg4 = c_loc(y) +farg5 = c_loc(z) +call swigc_FN_VLinearSum_OpenMP(farg1, farg2, farg3, farg4, farg5) +end subroutine + +subroutine FN_VConst_OpenMP(c, z) +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE), intent(in) :: c +type(N_Vector), target, intent(inout) :: z +real(C_DOUBLE) :: farg1 +type(C_PTR) :: farg2 + +farg1 = c +farg2 = c_loc(z) +call swigc_FN_VConst_OpenMP(farg1, farg2) +end subroutine + +subroutine FN_VProd_OpenMP(x, y, z) +use, intrinsic :: ISO_C_BINDING +type(N_Vector), target, intent(inout) :: x +type(N_Vector), target, intent(inout) :: y +type(N_Vector), target, intent(inout) :: z +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = c_loc(x) +farg2 = c_loc(y) +farg3 = c_loc(z) +call swigc_FN_VProd_OpenMP(farg1, farg2, farg3) +end subroutine + +subroutine FN_VDiv_OpenMP(x, y, z) +use, intrinsic :: ISO_C_BINDING +type(N_Vector), target, intent(inout) :: x +type(N_Vector), target, intent(inout) :: y +type(N_Vector), target, intent(inout) :: z +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = c_loc(x) +farg2 = c_loc(y) +farg3 = c_loc(z) +call swigc_FN_VDiv_OpenMP(farg1, farg2, farg3) +end subroutine + +subroutine FN_VScale_OpenMP(c, x, z) +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE), intent(in) :: c +type(N_Vector), target, intent(inout) :: x +type(N_Vector), target, intent(inout) :: z +real(C_DOUBLE) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = c +farg2 = c_loc(x) +farg3 = c_loc(z) +call swigc_FN_VScale_OpenMP(farg1, farg2, farg3) +end subroutine + +subroutine FN_VAbs_OpenMP(x, z) +use, intrinsic :: ISO_C_BINDING +type(N_Vector), target, intent(inout) :: x +type(N_Vector), target, intent(inout) :: z +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = c_loc(x) +farg2 = c_loc(z) +call swigc_FN_VAbs_OpenMP(farg1, farg2) +end subroutine + +subroutine FN_VInv_OpenMP(x, z) +use, intrinsic :: ISO_C_BINDING +type(N_Vector), target, intent(inout) :: x +type(N_Vector), target, intent(inout) :: z +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = c_loc(x) +farg2 = c_loc(z) +call swigc_FN_VInv_OpenMP(farg1, farg2) +end subroutine + +subroutine FN_VAddConst_OpenMP(x, b, z) +use, intrinsic :: ISO_C_BINDING +type(N_Vector), target, intent(inout) :: x +real(C_DOUBLE), intent(in) :: b +type(N_Vector), target, intent(inout) :: z +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 +type(C_PTR) :: farg3 + +farg1 = c_loc(x) +farg2 = b +farg3 = c_loc(z) +call swigc_FN_VAddConst_OpenMP(farg1, farg2, farg3) +end subroutine + +function FN_VDotProd_OpenMP(x, y) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE) :: swig_result +type(N_Vector), target, intent(inout) :: x +type(N_Vector), target, intent(inout) :: y +real(C_DOUBLE) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = c_loc(x) +farg2 = c_loc(y) +fresult = swigc_FN_VDotProd_OpenMP(farg1, farg2) +swig_result = fresult +end function + +function FN_VMaxNorm_OpenMP(x) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE) :: swig_result +type(N_Vector), target, intent(inout) :: x +real(C_DOUBLE) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(x) +fresult = swigc_FN_VMaxNorm_OpenMP(farg1) +swig_result = fresult +end function + +function FN_VWrmsNorm_OpenMP(x, w) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE) :: swig_result +type(N_Vector), target, intent(inout) :: x +type(N_Vector), target, intent(inout) :: w +real(C_DOUBLE) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = c_loc(x) +farg2 = c_loc(w) +fresult = swigc_FN_VWrmsNorm_OpenMP(farg1, farg2) +swig_result = fresult +end function + +function FN_VWrmsNormMask_OpenMP(x, w, id) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE) :: swig_result +type(N_Vector), target, intent(inout) :: x +type(N_Vector), target, intent(inout) :: w +type(N_Vector), target, intent(inout) :: id +real(C_DOUBLE) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = c_loc(x) +farg2 = c_loc(w) +farg3 = c_loc(id) +fresult = swigc_FN_VWrmsNormMask_OpenMP(farg1, farg2, farg3) +swig_result = fresult +end function + +function FN_VMin_OpenMP(x) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE) :: swig_result +type(N_Vector), target, intent(inout) :: x +real(C_DOUBLE) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(x) +fresult = swigc_FN_VMin_OpenMP(farg1) +swig_result = fresult +end function + +function FN_VWL2Norm_OpenMP(x, w) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE) :: swig_result +type(N_Vector), target, intent(inout) :: x +type(N_Vector), target, intent(inout) :: w +real(C_DOUBLE) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = c_loc(x) +farg2 = c_loc(w) +fresult = swigc_FN_VWL2Norm_OpenMP(farg1, farg2) +swig_result = fresult +end function + +function FN_VL1Norm_OpenMP(x) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE) :: swig_result +type(N_Vector), target, intent(inout) :: x +real(C_DOUBLE) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(x) +fresult = swigc_FN_VL1Norm_OpenMP(farg1) +swig_result = fresult +end function + +subroutine FN_VCompare_OpenMP(c, x, z) +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE), intent(in) :: c +type(N_Vector), target, intent(inout) :: x +type(N_Vector), target, intent(inout) :: z +real(C_DOUBLE) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = c +farg2 = c_loc(x) +farg3 = c_loc(z) +call swigc_FN_VCompare_OpenMP(farg1, farg2, farg3) +end subroutine + +function FN_VInvTest_OpenMP(x, z) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(N_Vector), target, intent(inout) :: x +type(N_Vector), target, intent(inout) :: z +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = c_loc(x) +farg2 = c_loc(z) +fresult = swigc_FN_VInvTest_OpenMP(farg1, farg2) +swig_result = fresult +end function + +function FN_VConstrMask_OpenMP(c, x, m) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(N_Vector), target, intent(inout) :: c +type(N_Vector), target, intent(inout) :: x +type(N_Vector), target, intent(inout) :: m +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = c_loc(c) +farg2 = c_loc(x) +farg3 = c_loc(m) +fresult = swigc_FN_VConstrMask_OpenMP(farg1, farg2, farg3) +swig_result = fresult +end function + +function FN_VMinQuotient_OpenMP(num, denom) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE) :: swig_result +type(N_Vector), target, intent(inout) :: num +type(N_Vector), target, intent(inout) :: denom +real(C_DOUBLE) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = c_loc(num) +farg2 = c_loc(denom) +fresult = swigc_FN_VMinQuotient_OpenMP(farg1, farg2) +swig_result = fresult +end function + +function FN_VLinearCombination_OpenMP(nvec, c, v, z) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +integer(C_INT), intent(in) :: nvec +real(C_DOUBLE), dimension(*), target, intent(inout) :: c +type(C_PTR) :: v +type(N_Vector), target, intent(inout) :: z +integer(C_INT) :: fresult +integer(C_INT) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 +type(C_PTR) :: farg4 + +farg1 = nvec +farg2 = c_loc(c(1)) +farg3 = v +farg4 = c_loc(z) +fresult = swigc_FN_VLinearCombination_OpenMP(farg1, farg2, farg3, farg4) +swig_result = fresult +end function + +function FN_VScaleAddMulti_OpenMP(nvec, a, x, y, z) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +integer(C_INT), intent(in) :: nvec +real(C_DOUBLE), dimension(*), target, intent(inout) :: a +type(N_Vector), target, intent(inout) :: x +type(C_PTR) :: y +type(C_PTR) :: z +integer(C_INT) :: fresult +integer(C_INT) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 +type(C_PTR) :: farg4 +type(C_PTR) :: farg5 + +farg1 = nvec +farg2 = c_loc(a(1)) +farg3 = c_loc(x) +farg4 = y +farg5 = z +fresult = swigc_FN_VScaleAddMulti_OpenMP(farg1, farg2, farg3, farg4, farg5) +swig_result = fresult +end function + +function FN_VDotProdMulti_OpenMP(nvec, x, y, dotprods) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +integer(C_INT), intent(in) :: nvec +type(N_Vector), target, intent(inout) :: x +type(C_PTR) :: y +real(C_DOUBLE), dimension(*), target, intent(inout) :: dotprods +integer(C_INT) :: fresult +integer(C_INT) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 +type(C_PTR) :: farg4 + +farg1 = nvec +farg2 = c_loc(x) +farg3 = y +farg4 = c_loc(dotprods(1)) +fresult = swigc_FN_VDotProdMulti_OpenMP(farg1, farg2, farg3, farg4) +swig_result = fresult +end function + +function FN_VLinearSumVectorArray_OpenMP(nvec, a, x, b, y, z) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +integer(C_INT), intent(in) :: nvec +real(C_DOUBLE), intent(in) :: a +type(C_PTR) :: x +real(C_DOUBLE), intent(in) :: b +type(C_PTR) :: y +type(C_PTR) :: z +integer(C_INT) :: fresult +integer(C_INT) :: farg1 +real(C_DOUBLE) :: farg2 +type(C_PTR) :: farg3 +real(C_DOUBLE) :: farg4 +type(C_PTR) :: farg5 +type(C_PTR) :: farg6 + +farg1 = nvec +farg2 = a +farg3 = x +farg4 = b +farg5 = y +farg6 = z +fresult = swigc_FN_VLinearSumVectorArray_OpenMP(farg1, farg2, farg3, farg4, farg5, farg6) +swig_result = fresult +end function + +function FN_VScaleVectorArray_OpenMP(nvec, c, x, z) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +integer(C_INT), intent(in) :: nvec +real(C_DOUBLE), dimension(*), target, intent(inout) :: c +type(C_PTR) :: x +type(C_PTR) :: z +integer(C_INT) :: fresult +integer(C_INT) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 +type(C_PTR) :: farg4 + +farg1 = nvec +farg2 = c_loc(c(1)) +farg3 = x +farg4 = z +fresult = swigc_FN_VScaleVectorArray_OpenMP(farg1, farg2, farg3, farg4) +swig_result = fresult +end function + +function FN_VConstVectorArray_OpenMP(nvecs, c, z) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +integer(C_INT), intent(in) :: nvecs +real(C_DOUBLE), intent(in) :: c +type(C_PTR) :: z +integer(C_INT) :: fresult +integer(C_INT) :: farg1 +real(C_DOUBLE) :: farg2 +type(C_PTR) :: farg3 + +farg1 = nvecs +farg2 = c +farg3 = z +fresult = swigc_FN_VConstVectorArray_OpenMP(farg1, farg2, farg3) +swig_result = fresult +end function + +function FN_VWrmsNormVectorArray_OpenMP(nvecs, x, w, nrm) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +integer(C_INT), intent(in) :: nvecs +type(C_PTR) :: x +type(C_PTR) :: w +real(C_DOUBLE), dimension(*), target, intent(inout) :: nrm +integer(C_INT) :: fresult +integer(C_INT) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 +type(C_PTR) :: farg4 + +farg1 = nvecs +farg2 = x +farg3 = w +farg4 = c_loc(nrm(1)) +fresult = swigc_FN_VWrmsNormVectorArray_OpenMP(farg1, farg2, farg3, farg4) +swig_result = fresult +end function + +function FN_VWrmsNormMaskVectorArray_OpenMP(nvecs, x, w, id, nrm) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +integer(C_INT), intent(in) :: nvecs +type(C_PTR) :: x +type(C_PTR) :: w +type(N_Vector), target, intent(inout) :: id +real(C_DOUBLE), dimension(*), target, intent(inout) :: nrm +integer(C_INT) :: fresult +integer(C_INT) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 +type(C_PTR) :: farg4 +type(C_PTR) :: farg5 + +farg1 = nvecs +farg2 = x +farg3 = w +farg4 = c_loc(id) +farg5 = c_loc(nrm(1)) +fresult = swigc_FN_VWrmsNormMaskVectorArray_OpenMP(farg1, farg2, farg3, farg4, farg5) +swig_result = fresult +end function + +function FN_VWSqrSumLocal_OpenMP(x, w) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE) :: swig_result +type(N_Vector), target, intent(inout) :: x +type(N_Vector), target, intent(inout) :: w +real(C_DOUBLE) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = c_loc(x) +farg2 = c_loc(w) +fresult = swigc_FN_VWSqrSumLocal_OpenMP(farg1, farg2) +swig_result = fresult +end function + +function FN_VWSqrSumMaskLocal_OpenMP(x, w, id) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE) :: swig_result +type(N_Vector), target, intent(inout) :: x +type(N_Vector), target, intent(inout) :: w +type(N_Vector), target, intent(inout) :: id +real(C_DOUBLE) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = c_loc(x) +farg2 = c_loc(w) +farg3 = c_loc(id) +fresult = swigc_FN_VWSqrSumMaskLocal_OpenMP(farg1, farg2, farg3) +swig_result = fresult +end function + +function FN_VBufSize_OpenMP(x, size) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(N_Vector), target, intent(inout) :: x +integer(C_INT32_T), dimension(*), target, intent(inout) :: size +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = c_loc(x) +farg2 = c_loc(size(1)) +fresult = swigc_FN_VBufSize_OpenMP(farg1, farg2) +swig_result = fresult +end function + +function FN_VBufPack_OpenMP(x, buf) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(N_Vector), target, intent(inout) :: x +type(C_PTR) :: buf +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = c_loc(x) +farg2 = buf +fresult = swigc_FN_VBufPack_OpenMP(farg1, farg2) +swig_result = fresult +end function + +function FN_VBufUnpack_OpenMP(x, buf) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(N_Vector), target, intent(inout) :: x +type(C_PTR) :: buf +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = c_loc(x) +farg2 = buf +fresult = swigc_FN_VBufUnpack_OpenMP(farg1, farg2) +swig_result = fresult +end function + +function FN_VEnableFusedOps_OpenMP(v, tf) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(N_Vector), target, intent(inout) :: v +integer(C_INT), intent(in) :: tf +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = c_loc(v) +farg2 = tf +fresult = swigc_FN_VEnableFusedOps_OpenMP(farg1, farg2) +swig_result = fresult +end function + +function FN_VEnableLinearCombination_OpenMP(v, tf) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(N_Vector), target, intent(inout) :: v +integer(C_INT), intent(in) :: tf +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = c_loc(v) +farg2 = tf +fresult = swigc_FN_VEnableLinearCombination_OpenMP(farg1, farg2) +swig_result = fresult +end function + +function FN_VEnableScaleAddMulti_OpenMP(v, tf) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(N_Vector), target, intent(inout) :: v +integer(C_INT), intent(in) :: tf +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = c_loc(v) +farg2 = tf +fresult = swigc_FN_VEnableScaleAddMulti_OpenMP(farg1, farg2) +swig_result = fresult +end function + +function FN_VEnableDotProdMulti_OpenMP(v, tf) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(N_Vector), target, intent(inout) :: v +integer(C_INT), intent(in) :: tf +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = c_loc(v) +farg2 = tf +fresult = swigc_FN_VEnableDotProdMulti_OpenMP(farg1, farg2) +swig_result = fresult +end function + +function FN_VEnableLinearSumVectorArray_OpenMP(v, tf) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(N_Vector), target, intent(inout) :: v +integer(C_INT), intent(in) :: tf +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = c_loc(v) +farg2 = tf +fresult = swigc_FN_VEnableLinearSumVectorArray_OpenMP(farg1, farg2) +swig_result = fresult +end function + +function FN_VEnableScaleVectorArray_OpenMP(v, tf) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(N_Vector), target, intent(inout) :: v +integer(C_INT), intent(in) :: tf +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = c_loc(v) +farg2 = tf +fresult = swigc_FN_VEnableScaleVectorArray_OpenMP(farg1, farg2) +swig_result = fresult +end function + +function FN_VEnableConstVectorArray_OpenMP(v, tf) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(N_Vector), target, intent(inout) :: v +integer(C_INT), intent(in) :: tf +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = c_loc(v) +farg2 = tf +fresult = swigc_FN_VEnableConstVectorArray_OpenMP(farg1, farg2) +swig_result = fresult +end function + +function FN_VEnableWrmsNormVectorArray_OpenMP(v, tf) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(N_Vector), target, intent(inout) :: v +integer(C_INT), intent(in) :: tf +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = c_loc(v) +farg2 = tf +fresult = swigc_FN_VEnableWrmsNormVectorArray_OpenMP(farg1, farg2) +swig_result = fresult +end function + +function FN_VEnableWrmsNormMaskVectorArray_OpenMP(v, tf) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(N_Vector), target, intent(inout) :: v +integer(C_INT), intent(in) :: tf +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = c_loc(v) +farg2 = tf +fresult = swigc_FN_VEnableWrmsNormMaskVectorArray_OpenMP(farg1, farg2) +swig_result = fresult +end function + + +function FN_VGetArrayPointer_OpenMP(v) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE), dimension(:), pointer :: swig_result +type(N_Vector), target, intent(inout) :: v +type(C_PTR) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(v) +fresult = swigc_FN_VGetArrayPointer_OpenMP(farg1) +call c_f_pointer(fresult, swig_result, [FN_VGetLength_OpenMP(v)]) +end function + + +end module diff --git a/src/nvector/openmp/fmod_int64/CMakeLists.txt b/src/nvector/openmp/fmod_int64/CMakeLists.txt new file mode 100644 index 0000000000..31f4363b84 --- /dev/null +++ b/src/nvector/openmp/fmod_int64/CMakeLists.txt @@ -0,0 +1,31 @@ +# --------------------------------------------------------------- +# Programmer(s): Cody J. Balos @ LLNL +# --------------------------------------------------------------- +# SUNDIALS Copyright Start +# Copyright (c) 2002-2024, Lawrence Livermore National Security +# and Southern Methodist University. +# All rights reserved. +# +# See the top-level LICENSE and NOTICE files for details. +# +# SPDX-License-Identifier: BSD-3-Clause +# SUNDIALS Copyright End +# --------------------------------------------------------------- +# CMakeLists.txt file for the F2003 openmp NVECTOR object library +# --------------------------------------------------------------- + +sundials_add_f2003_library(sundials_fnvecopenmp_mod + SOURCES + fnvector_openmp_mod.f90 fnvector_openmp_mod.c + LINK_LIBRARIES + PUBLIC sundials_fcore_mod + OBJECT_LIBRARIES + OUTPUT_NAME + sundials_fnvecopenmp_mod + VERSION + ${nveclib_VERSION} + SOVERSION + ${nveclib_SOVERSION} +) + +message(STATUS "Added NVECTOR_OPENMP F2003 interface") diff --git a/src/nvector/openmp/fmod/fnvector_openmp_mod.c b/src/nvector/openmp/fmod_int64/fnvector_openmp_mod.c similarity index 100% rename from src/nvector/openmp/fmod/fnvector_openmp_mod.c rename to src/nvector/openmp/fmod_int64/fnvector_openmp_mod.c diff --git a/src/nvector/openmp/fmod/fnvector_openmp_mod.f90 b/src/nvector/openmp/fmod_int64/fnvector_openmp_mod.f90 similarity index 100% rename from src/nvector/openmp/fmod/fnvector_openmp_mod.f90 rename to src/nvector/openmp/fmod_int64/fnvector_openmp_mod.f90 diff --git a/src/nvector/parallel/CMakeLists.txt b/src/nvector/parallel/CMakeLists.txt index 55cce2df2d..55effd6b9a 100644 --- a/src/nvector/parallel/CMakeLists.txt +++ b/src/nvector/parallel/CMakeLists.txt @@ -47,5 +47,5 @@ message(STATUS "Added NVECTOR_PARALLEL module") # Add F2003 module if the interface is enabled if(BUILD_FORTRAN_MODULE_INTERFACE) - add_subdirectory(fmod) + add_subdirectory("fmod_int${SUNDIALS_INDEX_SIZE}") endif() diff --git a/src/nvector/parallel/fmod/CMakeLists.txt b/src/nvector/parallel/fmod_int32/CMakeLists.txt similarity index 100% rename from src/nvector/parallel/fmod/CMakeLists.txt rename to src/nvector/parallel/fmod_int32/CMakeLists.txt diff --git a/src/nvector/parallel/fmod_int32/fnvector_parallel_mod.c b/src/nvector/parallel/fmod_int32/fnvector_parallel_mod.c new file mode 100644 index 0000000000..cdbd1f87c3 --- /dev/null +++ b/src/nvector/parallel/fmod_int32/fnvector_parallel_mod.c @@ -0,0 +1,1173 @@ +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.0 + * + * This file is not intended to be easily readable and contains a number of + * coding conventions designed to improve portability and efficiency. Do not make + * changes to this file unless you know what you are doing--modify the SWIG + * interface file instead. + * ----------------------------------------------------------------------------- */ + +/* --------------------------------------------------------------- + * Programmer(s): Auto-generated by swig. + * --------------------------------------------------------------- + * SUNDIALS Copyright Start + * Copyright (c) 2002-2024, Lawrence Livermore National Security + * and Southern Methodist University. + * All rights reserved. + * + * See the top-level LICENSE and NOTICE files for details. + * + * SPDX-License-Identifier: BSD-3-Clause + * SUNDIALS Copyright End + * -------------------------------------------------------------*/ + +/* ----------------------------------------------------------------------------- + * This section contains generic SWIG labels for method/variable + * declarations/attributes, and other compiler dependent labels. + * ----------------------------------------------------------------------------- */ + +/* template workaround for compilers that cannot correctly implement the C++ standard */ +#ifndef SWIGTEMPLATEDISAMBIGUATOR +# if defined(__SUNPRO_CC) && (__SUNPRO_CC <= 0x560) +# define SWIGTEMPLATEDISAMBIGUATOR template +# elif defined(__HP_aCC) +/* Needed even with `aCC -AA' when `aCC -V' reports HP ANSI C++ B3910B A.03.55 */ +/* If we find a maximum version that requires this, the test would be __HP_aCC <= 35500 for A.03.55 */ +# define SWIGTEMPLATEDISAMBIGUATOR template +# else +# define SWIGTEMPLATEDISAMBIGUATOR +# endif +#endif + +/* inline attribute */ +#ifndef SWIGINLINE +# if defined(__cplusplus) || (defined(__GNUC__) && !defined(__STRICT_ANSI__)) +# define SWIGINLINE inline +# else +# define SWIGINLINE +# endif +#endif + +/* attribute recognised by some compilers to avoid 'unused' warnings */ +#ifndef SWIGUNUSED +# if defined(__GNUC__) +# if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)) +# define SWIGUNUSED __attribute__ ((__unused__)) +# else +# define SWIGUNUSED +# endif +# elif defined(__ICC) +# define SWIGUNUSED __attribute__ ((__unused__)) +# else +# define SWIGUNUSED +# endif +#endif + +#ifndef SWIG_MSC_UNSUPPRESS_4505 +# if defined(_MSC_VER) +# pragma warning(disable : 4505) /* unreferenced local function has been removed */ +# endif +#endif + +#ifndef SWIGUNUSEDPARM +# ifdef __cplusplus +# define SWIGUNUSEDPARM(p) +# else +# define SWIGUNUSEDPARM(p) p SWIGUNUSED +# endif +#endif + +/* internal SWIG method */ +#ifndef SWIGINTERN +# define SWIGINTERN static SWIGUNUSED +#endif + +/* internal inline SWIG method */ +#ifndef SWIGINTERNINLINE +# define SWIGINTERNINLINE SWIGINTERN SWIGINLINE +#endif + +/* qualifier for exported *const* global data variables*/ +#ifndef SWIGEXTERN +# ifdef __cplusplus +# define SWIGEXTERN extern +# else +# define SWIGEXTERN +# endif +#endif + +/* exporting methods */ +#if defined(__GNUC__) +# if (__GNUC__ >= 4) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) +# ifndef GCC_HASCLASSVISIBILITY +# define GCC_HASCLASSVISIBILITY +# endif +# endif +#endif + +#ifndef SWIGEXPORT +# if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__) +# if defined(STATIC_LINKED) +# define SWIGEXPORT +# else +# define SWIGEXPORT __declspec(dllexport) +# endif +# else +# if defined(__GNUC__) && defined(GCC_HASCLASSVISIBILITY) +# define SWIGEXPORT __attribute__ ((visibility("default"))) +# else +# define SWIGEXPORT +# endif +# endif +#endif + +/* calling conventions for Windows */ +#ifndef SWIGSTDCALL +# if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__) +# define SWIGSTDCALL __stdcall +# else +# define SWIGSTDCALL +# endif +#endif + +/* Deal with Microsoft's attempt at deprecating C standard runtime functions */ +#if !defined(SWIG_NO_CRT_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_CRT_SECURE_NO_DEPRECATE) +# define _CRT_SECURE_NO_DEPRECATE +#endif + +/* Deal with Microsoft's attempt at deprecating methods in the standard C++ library */ +#if !defined(SWIG_NO_SCL_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_SCL_SECURE_NO_DEPRECATE) +# define _SCL_SECURE_NO_DEPRECATE +#endif + +/* Deal with Apple's deprecated 'AssertMacros.h' from Carbon-framework */ +#if defined(__APPLE__) && !defined(__ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES) +# define __ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES 0 +#endif + +/* Intel's compiler complains if a variable which was never initialised is + * cast to void, which is a common idiom which we use to indicate that we + * are aware a variable isn't used. So we just silence that warning. + * See: https://github.com/swig/swig/issues/192 for more discussion. + */ +#ifdef __INTEL_COMPILER +# pragma warning disable 592 +#endif + +/* Errors in SWIG */ +#define SWIG_UnknownError -1 +#define SWIG_IOError -2 +#define SWIG_RuntimeError -3 +#define SWIG_IndexError -4 +#define SWIG_TypeError -5 +#define SWIG_DivisionByZero -6 +#define SWIG_OverflowError -7 +#define SWIG_SyntaxError -8 +#define SWIG_ValueError -9 +#define SWIG_SystemError -10 +#define SWIG_AttributeError -11 +#define SWIG_MemoryError -12 +#define SWIG_NullReferenceError -13 + + + + +#include +#define SWIG_exception_impl(DECL, CODE, MSG, RETURNNULL) \ + { printf("In " DECL ": " MSG); assert(0); RETURNNULL; } + + +#include +#if defined(_MSC_VER) || defined(__BORLANDC__) || defined(_WATCOM) +# ifndef snprintf +# define snprintf _snprintf +# endif +#endif + + +/* Support for the `contract` feature. + * + * Note that RETURNNULL is first because it's inserted via a 'Replaceall' in + * the fortran.cxx file. + */ +#define SWIG_contract_assert(RETURNNULL, EXPR, MSG) \ + if (!(EXPR)) { SWIG_exception_impl("$decl", SWIG_ValueError, MSG, RETURNNULL); } + + +#define SWIGVERSION 0x040000 +#define SWIG_VERSION SWIGVERSION + + +#define SWIG_as_voidptr(a) (void *)((const void *)(a)) +#define SWIG_as_voidptrptr(a) ((void)SWIG_as_voidptr(*a),(void**)(a)) + + +#include "sundials/sundials_nvector.h" + + +#include "nvector/nvector_parallel.h" + +SWIGEXPORT N_Vector _wrap_FN_VNew_Parallel(int const *farg1, int32_t const *farg2, int32_t const *farg3, void *farg4) { + N_Vector fresult ; + MPI_Comm arg1 ; + sunindextype arg2 ; + sunindextype arg3 ; + SUNContext arg4 = (SUNContext) 0 ; + N_Vector result; + +#if SUNDIALS_MPI_ENABLED + int flag = 0; + MPI_Initialized(&flag); + if(flag) { + arg1 = MPI_Comm_f2c((MPI_Fint)(*farg1)); + } else { + arg1 = SUN_COMM_NULL; + } +#else + arg1 = *farg1; +#endif + arg2 = (sunindextype)(*farg2); + arg3 = (sunindextype)(*farg3); + arg4 = (SUNContext)(farg4); + result = (N_Vector)N_VNew_Parallel(arg1,arg2,arg3,arg4); + fresult = result; + return fresult; +} + + +SWIGEXPORT N_Vector _wrap_FN_VNewEmpty_Parallel(int const *farg1, int32_t const *farg2, int32_t const *farg3, void *farg4) { + N_Vector fresult ; + MPI_Comm arg1 ; + sunindextype arg2 ; + sunindextype arg3 ; + SUNContext arg4 = (SUNContext) 0 ; + N_Vector result; + +#if SUNDIALS_MPI_ENABLED + int flag = 0; + MPI_Initialized(&flag); + if(flag) { + arg1 = MPI_Comm_f2c((MPI_Fint)(*farg1)); + } else { + arg1 = SUN_COMM_NULL; + } +#else + arg1 = *farg1; +#endif + arg2 = (sunindextype)(*farg2); + arg3 = (sunindextype)(*farg3); + arg4 = (SUNContext)(farg4); + result = (N_Vector)N_VNewEmpty_Parallel(arg1,arg2,arg3,arg4); + fresult = result; + return fresult; +} + + +SWIGEXPORT N_Vector _wrap_FN_VMake_Parallel(int const *farg1, int32_t const *farg2, int32_t const *farg3, double *farg4, void *farg5) { + N_Vector fresult ; + MPI_Comm arg1 ; + sunindextype arg2 ; + sunindextype arg3 ; + sunrealtype *arg4 = (sunrealtype *) 0 ; + SUNContext arg5 = (SUNContext) 0 ; + N_Vector result; + +#if SUNDIALS_MPI_ENABLED + int flag = 0; + MPI_Initialized(&flag); + if(flag) { + arg1 = MPI_Comm_f2c((MPI_Fint)(*farg1)); + } else { + arg1 = SUN_COMM_NULL; + } +#else + arg1 = *farg1; +#endif + arg2 = (sunindextype)(*farg2); + arg3 = (sunindextype)(*farg3); + arg4 = (sunrealtype *)(farg4); + arg5 = (SUNContext)(farg5); + result = (N_Vector)N_VMake_Parallel(arg1,arg2,arg3,arg4,arg5); + fresult = result; + return fresult; +} + + +SWIGEXPORT int32_t _wrap_FN_VGetLength_Parallel(N_Vector farg1) { + int32_t fresult ; + N_Vector arg1 = (N_Vector) 0 ; + sunindextype result; + + arg1 = (N_Vector)(farg1); + result = N_VGetLength_Parallel(arg1); + fresult = (sunindextype)(result); + return fresult; +} + + +SWIGEXPORT int32_t _wrap_FN_VGetLocalLength_Parallel(N_Vector farg1) { + int32_t fresult ; + N_Vector arg1 = (N_Vector) 0 ; + sunindextype result; + + arg1 = (N_Vector)(farg1); + result = N_VGetLocalLength_Parallel(arg1); + fresult = (sunindextype)(result); + return fresult; +} + + +SWIGEXPORT void _wrap_FN_VPrint_Parallel(N_Vector farg1) { + N_Vector arg1 = (N_Vector) 0 ; + + arg1 = (N_Vector)(farg1); + N_VPrint_Parallel(arg1); +} + + +SWIGEXPORT void _wrap_FN_VPrintFile_Parallel(N_Vector farg1, void *farg2) { + N_Vector arg1 = (N_Vector) 0 ; + FILE *arg2 = (FILE *) 0 ; + + arg1 = (N_Vector)(farg1); + arg2 = (FILE *)(farg2); + N_VPrintFile_Parallel(arg1,arg2); +} + + +SWIGEXPORT int _wrap_FN_VGetVectorID_Parallel(N_Vector farg1) { + int fresult ; + N_Vector arg1 = (N_Vector) 0 ; + N_Vector_ID result; + + arg1 = (N_Vector)(farg1); + result = (N_Vector_ID)N_VGetVectorID_Parallel(arg1); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT N_Vector _wrap_FN_VCloneEmpty_Parallel(N_Vector farg1) { + N_Vector fresult ; + N_Vector arg1 = (N_Vector) 0 ; + N_Vector result; + + arg1 = (N_Vector)(farg1); + result = (N_Vector)N_VCloneEmpty_Parallel(arg1); + fresult = result; + return fresult; +} + + +SWIGEXPORT N_Vector _wrap_FN_VClone_Parallel(N_Vector farg1) { + N_Vector fresult ; + N_Vector arg1 = (N_Vector) 0 ; + N_Vector result; + + arg1 = (N_Vector)(farg1); + result = (N_Vector)N_VClone_Parallel(arg1); + fresult = result; + return fresult; +} + + +SWIGEXPORT void _wrap_FN_VDestroy_Parallel(N_Vector farg1) { + N_Vector arg1 = (N_Vector) 0 ; + + arg1 = (N_Vector)(farg1); + N_VDestroy_Parallel(arg1); +} + + +SWIGEXPORT void _wrap_FN_VSpace_Parallel(N_Vector farg1, int32_t *farg2, int32_t *farg3) { + N_Vector arg1 = (N_Vector) 0 ; + sunindextype *arg2 = (sunindextype *) 0 ; + sunindextype *arg3 = (sunindextype *) 0 ; + + arg1 = (N_Vector)(farg1); + arg2 = (sunindextype *)(farg2); + arg3 = (sunindextype *)(farg3); + N_VSpace_Parallel(arg1,arg2,arg3); +} + + +SWIGEXPORT void _wrap_FN_VSetArrayPointer_Parallel(double *farg1, N_Vector farg2) { + sunrealtype *arg1 = (sunrealtype *) 0 ; + N_Vector arg2 = (N_Vector) 0 ; + + arg1 = (sunrealtype *)(farg1); + arg2 = (N_Vector)(farg2); + N_VSetArrayPointer_Parallel(arg1,arg2); +} + + +SWIGEXPORT int _wrap_FN_VGetCommunicator_Parallel(N_Vector farg1) { + int fresult ; + N_Vector arg1 = (N_Vector) 0 ; + MPI_Comm result; + + arg1 = (N_Vector)(farg1); + result = N_VGetCommunicator_Parallel(arg1); +#if SUNDIALS_MPI_ENABLED + int flag = 0; + MPI_Initialized(&flag); + if(flag) { + fresult = (int)(MPI_Comm_c2f(result)); + } else { + fresult = 0; + } +#else + fresult = result; +#endif + return fresult; +} + + +SWIGEXPORT void _wrap_FN_VLinearSum_Parallel(double const *farg1, N_Vector farg2, double const *farg3, N_Vector farg4, N_Vector farg5) { + sunrealtype arg1 ; + N_Vector arg2 = (N_Vector) 0 ; + sunrealtype arg3 ; + N_Vector arg4 = (N_Vector) 0 ; + N_Vector arg5 = (N_Vector) 0 ; + + arg1 = (sunrealtype)(*farg1); + arg2 = (N_Vector)(farg2); + arg3 = (sunrealtype)(*farg3); + arg4 = (N_Vector)(farg4); + arg5 = (N_Vector)(farg5); + N_VLinearSum_Parallel(arg1,arg2,arg3,arg4,arg5); +} + + +SWIGEXPORT void _wrap_FN_VConst_Parallel(double const *farg1, N_Vector farg2) { + sunrealtype arg1 ; + N_Vector arg2 = (N_Vector) 0 ; + + arg1 = (sunrealtype)(*farg1); + arg2 = (N_Vector)(farg2); + N_VConst_Parallel(arg1,arg2); +} + + +SWIGEXPORT void _wrap_FN_VProd_Parallel(N_Vector farg1, N_Vector farg2, N_Vector farg3) { + N_Vector arg1 = (N_Vector) 0 ; + N_Vector arg2 = (N_Vector) 0 ; + N_Vector arg3 = (N_Vector) 0 ; + + arg1 = (N_Vector)(farg1); + arg2 = (N_Vector)(farg2); + arg3 = (N_Vector)(farg3); + N_VProd_Parallel(arg1,arg2,arg3); +} + + +SWIGEXPORT void _wrap_FN_VDiv_Parallel(N_Vector farg1, N_Vector farg2, N_Vector farg3) { + N_Vector arg1 = (N_Vector) 0 ; + N_Vector arg2 = (N_Vector) 0 ; + N_Vector arg3 = (N_Vector) 0 ; + + arg1 = (N_Vector)(farg1); + arg2 = (N_Vector)(farg2); + arg3 = (N_Vector)(farg3); + N_VDiv_Parallel(arg1,arg2,arg3); +} + + +SWIGEXPORT void _wrap_FN_VScale_Parallel(double const *farg1, N_Vector farg2, N_Vector farg3) { + sunrealtype arg1 ; + N_Vector arg2 = (N_Vector) 0 ; + N_Vector arg3 = (N_Vector) 0 ; + + arg1 = (sunrealtype)(*farg1); + arg2 = (N_Vector)(farg2); + arg3 = (N_Vector)(farg3); + N_VScale_Parallel(arg1,arg2,arg3); +} + + +SWIGEXPORT void _wrap_FN_VAbs_Parallel(N_Vector farg1, N_Vector farg2) { + N_Vector arg1 = (N_Vector) 0 ; + N_Vector arg2 = (N_Vector) 0 ; + + arg1 = (N_Vector)(farg1); + arg2 = (N_Vector)(farg2); + N_VAbs_Parallel(arg1,arg2); +} + + +SWIGEXPORT void _wrap_FN_VInv_Parallel(N_Vector farg1, N_Vector farg2) { + N_Vector arg1 = (N_Vector) 0 ; + N_Vector arg2 = (N_Vector) 0 ; + + arg1 = (N_Vector)(farg1); + arg2 = (N_Vector)(farg2); + N_VInv_Parallel(arg1,arg2); +} + + +SWIGEXPORT void _wrap_FN_VAddConst_Parallel(N_Vector farg1, double const *farg2, N_Vector farg3) { + N_Vector arg1 = (N_Vector) 0 ; + sunrealtype arg2 ; + N_Vector arg3 = (N_Vector) 0 ; + + arg1 = (N_Vector)(farg1); + arg2 = (sunrealtype)(*farg2); + arg3 = (N_Vector)(farg3); + N_VAddConst_Parallel(arg1,arg2,arg3); +} + + +SWIGEXPORT double _wrap_FN_VDotProd_Parallel(N_Vector farg1, N_Vector farg2) { + double fresult ; + N_Vector arg1 = (N_Vector) 0 ; + N_Vector arg2 = (N_Vector) 0 ; + sunrealtype result; + + arg1 = (N_Vector)(farg1); + arg2 = (N_Vector)(farg2); + result = (sunrealtype)N_VDotProd_Parallel(arg1,arg2); + fresult = (sunrealtype)(result); + return fresult; +} + + +SWIGEXPORT double _wrap_FN_VMaxNorm_Parallel(N_Vector farg1) { + double fresult ; + N_Vector arg1 = (N_Vector) 0 ; + sunrealtype result; + + arg1 = (N_Vector)(farg1); + result = (sunrealtype)N_VMaxNorm_Parallel(arg1); + fresult = (sunrealtype)(result); + return fresult; +} + + +SWIGEXPORT double _wrap_FN_VWrmsNorm_Parallel(N_Vector farg1, N_Vector farg2) { + double fresult ; + N_Vector arg1 = (N_Vector) 0 ; + N_Vector arg2 = (N_Vector) 0 ; + sunrealtype result; + + arg1 = (N_Vector)(farg1); + arg2 = (N_Vector)(farg2); + result = (sunrealtype)N_VWrmsNorm_Parallel(arg1,arg2); + fresult = (sunrealtype)(result); + return fresult; +} + + +SWIGEXPORT double _wrap_FN_VWrmsNormMask_Parallel(N_Vector farg1, N_Vector farg2, N_Vector farg3) { + double fresult ; + N_Vector arg1 = (N_Vector) 0 ; + N_Vector arg2 = (N_Vector) 0 ; + N_Vector arg3 = (N_Vector) 0 ; + sunrealtype result; + + arg1 = (N_Vector)(farg1); + arg2 = (N_Vector)(farg2); + arg3 = (N_Vector)(farg3); + result = (sunrealtype)N_VWrmsNormMask_Parallel(arg1,arg2,arg3); + fresult = (sunrealtype)(result); + return fresult; +} + + +SWIGEXPORT double _wrap_FN_VMin_Parallel(N_Vector farg1) { + double fresult ; + N_Vector arg1 = (N_Vector) 0 ; + sunrealtype result; + + arg1 = (N_Vector)(farg1); + result = (sunrealtype)N_VMin_Parallel(arg1); + fresult = (sunrealtype)(result); + return fresult; +} + + +SWIGEXPORT double _wrap_FN_VWL2Norm_Parallel(N_Vector farg1, N_Vector farg2) { + double fresult ; + N_Vector arg1 = (N_Vector) 0 ; + N_Vector arg2 = (N_Vector) 0 ; + sunrealtype result; + + arg1 = (N_Vector)(farg1); + arg2 = (N_Vector)(farg2); + result = (sunrealtype)N_VWL2Norm_Parallel(arg1,arg2); + fresult = (sunrealtype)(result); + return fresult; +} + + +SWIGEXPORT double _wrap_FN_VL1Norm_Parallel(N_Vector farg1) { + double fresult ; + N_Vector arg1 = (N_Vector) 0 ; + sunrealtype result; + + arg1 = (N_Vector)(farg1); + result = (sunrealtype)N_VL1Norm_Parallel(arg1); + fresult = (sunrealtype)(result); + return fresult; +} + + +SWIGEXPORT void _wrap_FN_VCompare_Parallel(double const *farg1, N_Vector farg2, N_Vector farg3) { + sunrealtype arg1 ; + N_Vector arg2 = (N_Vector) 0 ; + N_Vector arg3 = (N_Vector) 0 ; + + arg1 = (sunrealtype)(*farg1); + arg2 = (N_Vector)(farg2); + arg3 = (N_Vector)(farg3); + N_VCompare_Parallel(arg1,arg2,arg3); +} + + +SWIGEXPORT int _wrap_FN_VInvTest_Parallel(N_Vector farg1, N_Vector farg2) { + int fresult ; + N_Vector arg1 = (N_Vector) 0 ; + N_Vector arg2 = (N_Vector) 0 ; + int result; + + arg1 = (N_Vector)(farg1); + arg2 = (N_Vector)(farg2); + result = (int)N_VInvTest_Parallel(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FN_VConstrMask_Parallel(N_Vector farg1, N_Vector farg2, N_Vector farg3) { + int fresult ; + N_Vector arg1 = (N_Vector) 0 ; + N_Vector arg2 = (N_Vector) 0 ; + N_Vector arg3 = (N_Vector) 0 ; + int result; + + arg1 = (N_Vector)(farg1); + arg2 = (N_Vector)(farg2); + arg3 = (N_Vector)(farg3); + result = (int)N_VConstrMask_Parallel(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT double _wrap_FN_VMinQuotient_Parallel(N_Vector farg1, N_Vector farg2) { + double fresult ; + N_Vector arg1 = (N_Vector) 0 ; + N_Vector arg2 = (N_Vector) 0 ; + sunrealtype result; + + arg1 = (N_Vector)(farg1); + arg2 = (N_Vector)(farg2); + result = (sunrealtype)N_VMinQuotient_Parallel(arg1,arg2); + fresult = (sunrealtype)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FN_VLinearCombination_Parallel(int const *farg1, double *farg2, void *farg3, N_Vector farg4) { + int fresult ; + int arg1 ; + sunrealtype *arg2 = (sunrealtype *) 0 ; + N_Vector *arg3 = (N_Vector *) 0 ; + N_Vector arg4 = (N_Vector) 0 ; + SUNErrCode result; + + arg1 = (int)(*farg1); + arg2 = (sunrealtype *)(farg2); + arg3 = (N_Vector *)(farg3); + arg4 = (N_Vector)(farg4); + result = (SUNErrCode)N_VLinearCombination_Parallel(arg1,arg2,arg3,arg4); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FN_VScaleAddMulti_Parallel(int const *farg1, double *farg2, N_Vector farg3, void *farg4, void *farg5) { + int fresult ; + int arg1 ; + sunrealtype *arg2 = (sunrealtype *) 0 ; + N_Vector arg3 = (N_Vector) 0 ; + N_Vector *arg4 = (N_Vector *) 0 ; + N_Vector *arg5 = (N_Vector *) 0 ; + SUNErrCode result; + + arg1 = (int)(*farg1); + arg2 = (sunrealtype *)(farg2); + arg3 = (N_Vector)(farg3); + arg4 = (N_Vector *)(farg4); + arg5 = (N_Vector *)(farg5); + result = (SUNErrCode)N_VScaleAddMulti_Parallel(arg1,arg2,arg3,arg4,arg5); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FN_VDotProdMulti_Parallel(int const *farg1, N_Vector farg2, void *farg3, double *farg4) { + int fresult ; + int arg1 ; + N_Vector arg2 = (N_Vector) 0 ; + N_Vector *arg3 = (N_Vector *) 0 ; + sunrealtype *arg4 = (sunrealtype *) 0 ; + SUNErrCode result; + + arg1 = (int)(*farg1); + arg2 = (N_Vector)(farg2); + arg3 = (N_Vector *)(farg3); + arg4 = (sunrealtype *)(farg4); + result = (SUNErrCode)N_VDotProdMulti_Parallel(arg1,arg2,arg3,arg4); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FN_VLinearSumVectorArray_Parallel(int const *farg1, double const *farg2, void *farg3, double const *farg4, void *farg5, void *farg6) { + int fresult ; + int arg1 ; + sunrealtype arg2 ; + N_Vector *arg3 = (N_Vector *) 0 ; + sunrealtype arg4 ; + N_Vector *arg5 = (N_Vector *) 0 ; + N_Vector *arg6 = (N_Vector *) 0 ; + SUNErrCode result; + + arg1 = (int)(*farg1); + arg2 = (sunrealtype)(*farg2); + arg3 = (N_Vector *)(farg3); + arg4 = (sunrealtype)(*farg4); + arg5 = (N_Vector *)(farg5); + arg6 = (N_Vector *)(farg6); + result = (SUNErrCode)N_VLinearSumVectorArray_Parallel(arg1,arg2,arg3,arg4,arg5,arg6); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FN_VScaleVectorArray_Parallel(int const *farg1, double *farg2, void *farg3, void *farg4) { + int fresult ; + int arg1 ; + sunrealtype *arg2 = (sunrealtype *) 0 ; + N_Vector *arg3 = (N_Vector *) 0 ; + N_Vector *arg4 = (N_Vector *) 0 ; + SUNErrCode result; + + arg1 = (int)(*farg1); + arg2 = (sunrealtype *)(farg2); + arg3 = (N_Vector *)(farg3); + arg4 = (N_Vector *)(farg4); + result = (SUNErrCode)N_VScaleVectorArray_Parallel(arg1,arg2,arg3,arg4); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FN_VConstVectorArray_Parallel(int const *farg1, double const *farg2, void *farg3) { + int fresult ; + int arg1 ; + sunrealtype arg2 ; + N_Vector *arg3 = (N_Vector *) 0 ; + SUNErrCode result; + + arg1 = (int)(*farg1); + arg2 = (sunrealtype)(*farg2); + arg3 = (N_Vector *)(farg3); + result = (SUNErrCode)N_VConstVectorArray_Parallel(arg1,arg2,arg3); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FN_VWrmsNormVectorArray_Parallel(int const *farg1, void *farg2, void *farg3, double *farg4) { + int fresult ; + int arg1 ; + N_Vector *arg2 = (N_Vector *) 0 ; + N_Vector *arg3 = (N_Vector *) 0 ; + sunrealtype *arg4 = (sunrealtype *) 0 ; + SUNErrCode result; + + arg1 = (int)(*farg1); + arg2 = (N_Vector *)(farg2); + arg3 = (N_Vector *)(farg3); + arg4 = (sunrealtype *)(farg4); + result = (SUNErrCode)N_VWrmsNormVectorArray_Parallel(arg1,arg2,arg3,arg4); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FN_VWrmsNormMaskVectorArray_Parallel(int const *farg1, void *farg2, void *farg3, N_Vector farg4, double *farg5) { + int fresult ; + int arg1 ; + N_Vector *arg2 = (N_Vector *) 0 ; + N_Vector *arg3 = (N_Vector *) 0 ; + N_Vector arg4 = (N_Vector) 0 ; + sunrealtype *arg5 = (sunrealtype *) 0 ; + SUNErrCode result; + + arg1 = (int)(*farg1); + arg2 = (N_Vector *)(farg2); + arg3 = (N_Vector *)(farg3); + arg4 = (N_Vector)(farg4); + arg5 = (sunrealtype *)(farg5); + result = (SUNErrCode)N_VWrmsNormMaskVectorArray_Parallel(arg1,arg2,arg3,arg4,arg5); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT double _wrap_FN_VDotProdLocal_Parallel(N_Vector farg1, N_Vector farg2) { + double fresult ; + N_Vector arg1 = (N_Vector) 0 ; + N_Vector arg2 = (N_Vector) 0 ; + sunrealtype result; + + arg1 = (N_Vector)(farg1); + arg2 = (N_Vector)(farg2); + result = (sunrealtype)N_VDotProdLocal_Parallel(arg1,arg2); + fresult = (sunrealtype)(result); + return fresult; +} + + +SWIGEXPORT double _wrap_FN_VMaxNormLocal_Parallel(N_Vector farg1) { + double fresult ; + N_Vector arg1 = (N_Vector) 0 ; + sunrealtype result; + + arg1 = (N_Vector)(farg1); + result = (sunrealtype)N_VMaxNormLocal_Parallel(arg1); + fresult = (sunrealtype)(result); + return fresult; +} + + +SWIGEXPORT double _wrap_FN_VMinLocal_Parallel(N_Vector farg1) { + double fresult ; + N_Vector arg1 = (N_Vector) 0 ; + sunrealtype result; + + arg1 = (N_Vector)(farg1); + result = (sunrealtype)N_VMinLocal_Parallel(arg1); + fresult = (sunrealtype)(result); + return fresult; +} + + +SWIGEXPORT double _wrap_FN_VL1NormLocal_Parallel(N_Vector farg1) { + double fresult ; + N_Vector arg1 = (N_Vector) 0 ; + sunrealtype result; + + arg1 = (N_Vector)(farg1); + result = (sunrealtype)N_VL1NormLocal_Parallel(arg1); + fresult = (sunrealtype)(result); + return fresult; +} + + +SWIGEXPORT double _wrap_FN_VWSqrSumLocal_Parallel(N_Vector farg1, N_Vector farg2) { + double fresult ; + N_Vector arg1 = (N_Vector) 0 ; + N_Vector arg2 = (N_Vector) 0 ; + sunrealtype result; + + arg1 = (N_Vector)(farg1); + arg2 = (N_Vector)(farg2); + result = (sunrealtype)N_VWSqrSumLocal_Parallel(arg1,arg2); + fresult = (sunrealtype)(result); + return fresult; +} + + +SWIGEXPORT double _wrap_FN_VWSqrSumMaskLocal_Parallel(N_Vector farg1, N_Vector farg2, N_Vector farg3) { + double fresult ; + N_Vector arg1 = (N_Vector) 0 ; + N_Vector arg2 = (N_Vector) 0 ; + N_Vector arg3 = (N_Vector) 0 ; + sunrealtype result; + + arg1 = (N_Vector)(farg1); + arg2 = (N_Vector)(farg2); + arg3 = (N_Vector)(farg3); + result = (sunrealtype)N_VWSqrSumMaskLocal_Parallel(arg1,arg2,arg3); + fresult = (sunrealtype)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FN_VInvTestLocal_Parallel(N_Vector farg1, N_Vector farg2) { + int fresult ; + N_Vector arg1 = (N_Vector) 0 ; + N_Vector arg2 = (N_Vector) 0 ; + int result; + + arg1 = (N_Vector)(farg1); + arg2 = (N_Vector)(farg2); + result = (int)N_VInvTestLocal_Parallel(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FN_VConstrMaskLocal_Parallel(N_Vector farg1, N_Vector farg2, N_Vector farg3) { + int fresult ; + N_Vector arg1 = (N_Vector) 0 ; + N_Vector arg2 = (N_Vector) 0 ; + N_Vector arg3 = (N_Vector) 0 ; + int result; + + arg1 = (N_Vector)(farg1); + arg2 = (N_Vector)(farg2); + arg3 = (N_Vector)(farg3); + result = (int)N_VConstrMaskLocal_Parallel(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT double _wrap_FN_VMinQuotientLocal_Parallel(N_Vector farg1, N_Vector farg2) { + double fresult ; + N_Vector arg1 = (N_Vector) 0 ; + N_Vector arg2 = (N_Vector) 0 ; + sunrealtype result; + + arg1 = (N_Vector)(farg1); + arg2 = (N_Vector)(farg2); + result = (sunrealtype)N_VMinQuotientLocal_Parallel(arg1,arg2); + fresult = (sunrealtype)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FN_VDotProdMultiLocal_Parallel(int const *farg1, N_Vector farg2, void *farg3, double *farg4) { + int fresult ; + int arg1 ; + N_Vector arg2 = (N_Vector) 0 ; + N_Vector *arg3 = (N_Vector *) 0 ; + sunrealtype *arg4 = (sunrealtype *) 0 ; + SUNErrCode result; + + arg1 = (int)(*farg1); + arg2 = (N_Vector)(farg2); + arg3 = (N_Vector *)(farg3); + arg4 = (sunrealtype *)(farg4); + result = (SUNErrCode)N_VDotProdMultiLocal_Parallel(arg1,arg2,arg3,arg4); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FN_VDotProdMultiAllReduce_Parallel(int const *farg1, N_Vector farg2, double *farg3) { + int fresult ; + int arg1 ; + N_Vector arg2 = (N_Vector) 0 ; + sunrealtype *arg3 = (sunrealtype *) 0 ; + SUNErrCode result; + + arg1 = (int)(*farg1); + arg2 = (N_Vector)(farg2); + arg3 = (sunrealtype *)(farg3); + result = (SUNErrCode)N_VDotProdMultiAllReduce_Parallel(arg1,arg2,arg3); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FN_VBufSize_Parallel(N_Vector farg1, int32_t *farg2) { + int fresult ; + N_Vector arg1 = (N_Vector) 0 ; + sunindextype *arg2 = (sunindextype *) 0 ; + SUNErrCode result; + + arg1 = (N_Vector)(farg1); + arg2 = (sunindextype *)(farg2); + result = (SUNErrCode)N_VBufSize_Parallel(arg1,arg2); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FN_VBufPack_Parallel(N_Vector farg1, void *farg2) { + int fresult ; + N_Vector arg1 = (N_Vector) 0 ; + void *arg2 = (void *) 0 ; + SUNErrCode result; + + arg1 = (N_Vector)(farg1); + arg2 = (void *)(farg2); + result = (SUNErrCode)N_VBufPack_Parallel(arg1,arg2); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FN_VBufUnpack_Parallel(N_Vector farg1, void *farg2) { + int fresult ; + N_Vector arg1 = (N_Vector) 0 ; + void *arg2 = (void *) 0 ; + SUNErrCode result; + + arg1 = (N_Vector)(farg1); + arg2 = (void *)(farg2); + result = (SUNErrCode)N_VBufUnpack_Parallel(arg1,arg2); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FN_VEnableFusedOps_Parallel(N_Vector farg1, int const *farg2) { + int fresult ; + N_Vector arg1 = (N_Vector) 0 ; + int arg2 ; + SUNErrCode result; + + arg1 = (N_Vector)(farg1); + arg2 = (int)(*farg2); + result = (SUNErrCode)N_VEnableFusedOps_Parallel(arg1,arg2); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FN_VEnableLinearCombination_Parallel(N_Vector farg1, int const *farg2) { + int fresult ; + N_Vector arg1 = (N_Vector) 0 ; + int arg2 ; + SUNErrCode result; + + arg1 = (N_Vector)(farg1); + arg2 = (int)(*farg2); + result = (SUNErrCode)N_VEnableLinearCombination_Parallel(arg1,arg2); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FN_VEnableScaleAddMulti_Parallel(N_Vector farg1, int const *farg2) { + int fresult ; + N_Vector arg1 = (N_Vector) 0 ; + int arg2 ; + SUNErrCode result; + + arg1 = (N_Vector)(farg1); + arg2 = (int)(*farg2); + result = (SUNErrCode)N_VEnableScaleAddMulti_Parallel(arg1,arg2); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FN_VEnableDotProdMulti_Parallel(N_Vector farg1, int const *farg2) { + int fresult ; + N_Vector arg1 = (N_Vector) 0 ; + int arg2 ; + SUNErrCode result; + + arg1 = (N_Vector)(farg1); + arg2 = (int)(*farg2); + result = (SUNErrCode)N_VEnableDotProdMulti_Parallel(arg1,arg2); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FN_VEnableLinearSumVectorArray_Parallel(N_Vector farg1, int const *farg2) { + int fresult ; + N_Vector arg1 = (N_Vector) 0 ; + int arg2 ; + SUNErrCode result; + + arg1 = (N_Vector)(farg1); + arg2 = (int)(*farg2); + result = (SUNErrCode)N_VEnableLinearSumVectorArray_Parallel(arg1,arg2); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FN_VEnableScaleVectorArray_Parallel(N_Vector farg1, int const *farg2) { + int fresult ; + N_Vector arg1 = (N_Vector) 0 ; + int arg2 ; + SUNErrCode result; + + arg1 = (N_Vector)(farg1); + arg2 = (int)(*farg2); + result = (SUNErrCode)N_VEnableScaleVectorArray_Parallel(arg1,arg2); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FN_VEnableConstVectorArray_Parallel(N_Vector farg1, int const *farg2) { + int fresult ; + N_Vector arg1 = (N_Vector) 0 ; + int arg2 ; + SUNErrCode result; + + arg1 = (N_Vector)(farg1); + arg2 = (int)(*farg2); + result = (SUNErrCode)N_VEnableConstVectorArray_Parallel(arg1,arg2); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FN_VEnableWrmsNormVectorArray_Parallel(N_Vector farg1, int const *farg2) { + int fresult ; + N_Vector arg1 = (N_Vector) 0 ; + int arg2 ; + SUNErrCode result; + + arg1 = (N_Vector)(farg1); + arg2 = (int)(*farg2); + result = (SUNErrCode)N_VEnableWrmsNormVectorArray_Parallel(arg1,arg2); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FN_VEnableWrmsNormMaskVectorArray_Parallel(N_Vector farg1, int const *farg2) { + int fresult ; + N_Vector arg1 = (N_Vector) 0 ; + int arg2 ; + SUNErrCode result; + + arg1 = (N_Vector)(farg1); + arg2 = (int)(*farg2); + result = (SUNErrCode)N_VEnableWrmsNormMaskVectorArray_Parallel(arg1,arg2); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FN_VEnableDotProdMultiLocal_Parallel(N_Vector farg1, int const *farg2) { + int fresult ; + N_Vector arg1 = (N_Vector) 0 ; + int arg2 ; + SUNErrCode result; + + arg1 = (N_Vector)(farg1); + arg2 = (int)(*farg2); + result = (SUNErrCode)N_VEnableDotProdMultiLocal_Parallel(arg1,arg2); + fresult = (SUNErrCode)(result); + return fresult; +} + + + +SWIGEXPORT double * _wrap_FN_VGetArrayPointer_Parallel(N_Vector farg1) { + double * fresult ; + N_Vector arg1 = (N_Vector) 0 ; + sunrealtype *result = 0 ; + + arg1 = (N_Vector)(farg1); + result = (sunrealtype *)N_VGetArrayPointer_Parallel(arg1); + fresult = result; + return fresult; +} + + diff --git a/src/nvector/parallel/fmod_int32/fnvector_parallel_mod.f90 b/src/nvector/parallel/fmod_int32/fnvector_parallel_mod.f90 new file mode 100644 index 0000000000..571b01856b --- /dev/null +++ b/src/nvector/parallel/fmod_int32/fnvector_parallel_mod.f90 @@ -0,0 +1,1781 @@ +! This file was automatically generated by SWIG (http://www.swig.org). +! Version 4.0.0 +! +! Do not make changes to this file unless you know what you are doing--modify +! the SWIG interface file instead. + +! --------------------------------------------------------------- +! Programmer(s): Auto-generated by swig. +! --------------------------------------------------------------- +! SUNDIALS Copyright Start +! Copyright (c) 2002-2024, Lawrence Livermore National Security +! and Southern Methodist University. +! All rights reserved. +! +! See the top-level LICENSE and NOTICE files for details. +! +! SPDX-License-Identifier: BSD-3-Clause +! SUNDIALS Copyright End +! --------------------------------------------------------------- + +module fnvector_parallel_mod + use, intrinsic :: ISO_C_BINDING + use fsundials_core_mod + implicit none + private + + ! DECLARATION CONSTRUCTS + public :: FN_VNew_Parallel + public :: FN_VNewEmpty_Parallel + public :: FN_VMake_Parallel + public :: FN_VGetLength_Parallel + public :: FN_VGetLocalLength_Parallel + public :: FN_VPrint_Parallel + public :: FN_VPrintFile_Parallel + public :: FN_VGetVectorID_Parallel + public :: FN_VCloneEmpty_Parallel + public :: FN_VClone_Parallel + public :: FN_VDestroy_Parallel + public :: FN_VSpace_Parallel + public :: FN_VSetArrayPointer_Parallel + public :: FN_VGetCommunicator_Parallel + public :: FN_VLinearSum_Parallel + public :: FN_VConst_Parallel + public :: FN_VProd_Parallel + public :: FN_VDiv_Parallel + public :: FN_VScale_Parallel + public :: FN_VAbs_Parallel + public :: FN_VInv_Parallel + public :: FN_VAddConst_Parallel + public :: FN_VDotProd_Parallel + public :: FN_VMaxNorm_Parallel + public :: FN_VWrmsNorm_Parallel + public :: FN_VWrmsNormMask_Parallel + public :: FN_VMin_Parallel + public :: FN_VWL2Norm_Parallel + public :: FN_VL1Norm_Parallel + public :: FN_VCompare_Parallel + public :: FN_VInvTest_Parallel + public :: FN_VConstrMask_Parallel + public :: FN_VMinQuotient_Parallel + public :: FN_VLinearCombination_Parallel + public :: FN_VScaleAddMulti_Parallel + public :: FN_VDotProdMulti_Parallel + public :: FN_VLinearSumVectorArray_Parallel + public :: FN_VScaleVectorArray_Parallel + public :: FN_VConstVectorArray_Parallel + public :: FN_VWrmsNormVectorArray_Parallel + public :: FN_VWrmsNormMaskVectorArray_Parallel + public :: FN_VDotProdLocal_Parallel + public :: FN_VMaxNormLocal_Parallel + public :: FN_VMinLocal_Parallel + public :: FN_VL1NormLocal_Parallel + public :: FN_VWSqrSumLocal_Parallel + public :: FN_VWSqrSumMaskLocal_Parallel + public :: FN_VInvTestLocal_Parallel + public :: FN_VConstrMaskLocal_Parallel + public :: FN_VMinQuotientLocal_Parallel + public :: FN_VDotProdMultiLocal_Parallel + public :: FN_VDotProdMultiAllReduce_Parallel + public :: FN_VBufSize_Parallel + public :: FN_VBufPack_Parallel + public :: FN_VBufUnpack_Parallel + public :: FN_VEnableFusedOps_Parallel + public :: FN_VEnableLinearCombination_Parallel + public :: FN_VEnableScaleAddMulti_Parallel + public :: FN_VEnableDotProdMulti_Parallel + public :: FN_VEnableLinearSumVectorArray_Parallel + public :: FN_VEnableScaleVectorArray_Parallel + public :: FN_VEnableConstVectorArray_Parallel + public :: FN_VEnableWrmsNormVectorArray_Parallel + public :: FN_VEnableWrmsNormMaskVectorArray_Parallel + public :: FN_VEnableDotProdMultiLocal_Parallel + + public :: FN_VGetArrayPointer_Parallel + + +! WRAPPER DECLARATIONS +interface +function swigc_FN_VNew_Parallel(farg1, farg2, farg3, farg4) & +bind(C, name="_wrap_FN_VNew_Parallel") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +integer(C_INT), intent(in) :: farg1 +integer(C_INT32_T), intent(in) :: farg2 +integer(C_INT32_T), intent(in) :: farg3 +type(C_PTR), value :: farg4 +type(C_PTR) :: fresult +end function + +function swigc_FN_VNewEmpty_Parallel(farg1, farg2, farg3, farg4) & +bind(C, name="_wrap_FN_VNewEmpty_Parallel") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +integer(C_INT), intent(in) :: farg1 +integer(C_INT32_T), intent(in) :: farg2 +integer(C_INT32_T), intent(in) :: farg3 +type(C_PTR), value :: farg4 +type(C_PTR) :: fresult +end function + +function swigc_FN_VMake_Parallel(farg1, farg2, farg3, farg4, farg5) & +bind(C, name="_wrap_FN_VMake_Parallel") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +integer(C_INT), intent(in) :: farg1 +integer(C_INT32_T), intent(in) :: farg2 +integer(C_INT32_T), intent(in) :: farg3 +type(C_PTR), value :: farg4 +type(C_PTR), value :: farg5 +type(C_PTR) :: fresult +end function + +function swigc_FN_VGetLength_Parallel(farg1) & +bind(C, name="_wrap_FN_VGetLength_Parallel") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT32_T) :: fresult +end function + +function swigc_FN_VGetLocalLength_Parallel(farg1) & +bind(C, name="_wrap_FN_VGetLocalLength_Parallel") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT32_T) :: fresult +end function + +subroutine swigc_FN_VPrint_Parallel(farg1) & +bind(C, name="_wrap_FN_VPrint_Parallel") +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +end subroutine + +subroutine swigc_FN_VPrintFile_Parallel(farg1, farg2) & +bind(C, name="_wrap_FN_VPrintFile_Parallel") +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +end subroutine + +function swigc_FN_VGetVectorID_Parallel(farg1) & +bind(C, name="_wrap_FN_VGetVectorID_Parallel") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT) :: fresult +end function + +function swigc_FN_VCloneEmpty_Parallel(farg1) & +bind(C, name="_wrap_FN_VCloneEmpty_Parallel") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR) :: fresult +end function + +function swigc_FN_VClone_Parallel(farg1) & +bind(C, name="_wrap_FN_VClone_Parallel") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR) :: fresult +end function + +subroutine swigc_FN_VDestroy_Parallel(farg1) & +bind(C, name="_wrap_FN_VDestroy_Parallel") +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +end subroutine + +subroutine swigc_FN_VSpace_Parallel(farg1, farg2, farg3) & +bind(C, name="_wrap_FN_VSpace_Parallel") +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +end subroutine + +subroutine swigc_FN_VSetArrayPointer_Parallel(farg1, farg2) & +bind(C, name="_wrap_FN_VSetArrayPointer_Parallel") +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +end subroutine + +function swigc_FN_VGetCommunicator_Parallel(farg1) & +bind(C, name="_wrap_FN_VGetCommunicator_Parallel") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT) :: fresult +end function + +subroutine swigc_FN_VLinearSum_Parallel(farg1, farg2, farg3, farg4, farg5) & +bind(C, name="_wrap_FN_VLinearSum_Parallel") +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE), intent(in) :: farg1 +type(C_PTR), value :: farg2 +real(C_DOUBLE), intent(in) :: farg3 +type(C_PTR), value :: farg4 +type(C_PTR), value :: farg5 +end subroutine + +subroutine swigc_FN_VConst_Parallel(farg1, farg2) & +bind(C, name="_wrap_FN_VConst_Parallel") +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE), intent(in) :: farg1 +type(C_PTR), value :: farg2 +end subroutine + +subroutine swigc_FN_VProd_Parallel(farg1, farg2, farg3) & +bind(C, name="_wrap_FN_VProd_Parallel") +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +end subroutine + +subroutine swigc_FN_VDiv_Parallel(farg1, farg2, farg3) & +bind(C, name="_wrap_FN_VDiv_Parallel") +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +end subroutine + +subroutine swigc_FN_VScale_Parallel(farg1, farg2, farg3) & +bind(C, name="_wrap_FN_VScale_Parallel") +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE), intent(in) :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +end subroutine + +subroutine swigc_FN_VAbs_Parallel(farg1, farg2) & +bind(C, name="_wrap_FN_VAbs_Parallel") +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +end subroutine + +subroutine swigc_FN_VInv_Parallel(farg1, farg2) & +bind(C, name="_wrap_FN_VInv_Parallel") +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +end subroutine + +subroutine swigc_FN_VAddConst_Parallel(farg1, farg2, farg3) & +bind(C, name="_wrap_FN_VAddConst_Parallel") +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +type(C_PTR), value :: farg3 +end subroutine + +function swigc_FN_VDotProd_Parallel(farg1, farg2) & +bind(C, name="_wrap_FN_VDotProd_Parallel") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +real(C_DOUBLE) :: fresult +end function + +function swigc_FN_VMaxNorm_Parallel(farg1) & +bind(C, name="_wrap_FN_VMaxNorm_Parallel") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE) :: fresult +end function + +function swigc_FN_VWrmsNorm_Parallel(farg1, farg2) & +bind(C, name="_wrap_FN_VWrmsNorm_Parallel") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +real(C_DOUBLE) :: fresult +end function + +function swigc_FN_VWrmsNormMask_Parallel(farg1, farg2, farg3) & +bind(C, name="_wrap_FN_VWrmsNormMask_Parallel") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +real(C_DOUBLE) :: fresult +end function + +function swigc_FN_VMin_Parallel(farg1) & +bind(C, name="_wrap_FN_VMin_Parallel") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE) :: fresult +end function + +function swigc_FN_VWL2Norm_Parallel(farg1, farg2) & +bind(C, name="_wrap_FN_VWL2Norm_Parallel") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +real(C_DOUBLE) :: fresult +end function + +function swigc_FN_VL1Norm_Parallel(farg1) & +bind(C, name="_wrap_FN_VL1Norm_Parallel") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE) :: fresult +end function + +subroutine swigc_FN_VCompare_Parallel(farg1, farg2, farg3) & +bind(C, name="_wrap_FN_VCompare_Parallel") +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE), intent(in) :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +end subroutine + +function swigc_FN_VInvTest_Parallel(farg1, farg2) & +bind(C, name="_wrap_FN_VInvTest_Parallel") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FN_VConstrMask_Parallel(farg1, farg2, farg3) & +bind(C, name="_wrap_FN_VConstrMask_Parallel") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FN_VMinQuotient_Parallel(farg1, farg2) & +bind(C, name="_wrap_FN_VMinQuotient_Parallel") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +real(C_DOUBLE) :: fresult +end function + +function swigc_FN_VLinearCombination_Parallel(farg1, farg2, farg3, farg4) & +bind(C, name="_wrap_FN_VLinearCombination_Parallel") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +integer(C_INT), intent(in) :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +type(C_PTR), value :: farg4 +integer(C_INT) :: fresult +end function + +function swigc_FN_VScaleAddMulti_Parallel(farg1, farg2, farg3, farg4, farg5) & +bind(C, name="_wrap_FN_VScaleAddMulti_Parallel") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +integer(C_INT), intent(in) :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +type(C_PTR), value :: farg4 +type(C_PTR), value :: farg5 +integer(C_INT) :: fresult +end function + +function swigc_FN_VDotProdMulti_Parallel(farg1, farg2, farg3, farg4) & +bind(C, name="_wrap_FN_VDotProdMulti_Parallel") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +integer(C_INT), intent(in) :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +type(C_PTR), value :: farg4 +integer(C_INT) :: fresult +end function + +function swigc_FN_VLinearSumVectorArray_Parallel(farg1, farg2, farg3, farg4, farg5, farg6) & +bind(C, name="_wrap_FN_VLinearSumVectorArray_Parallel") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +integer(C_INT), intent(in) :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +type(C_PTR), value :: farg3 +real(C_DOUBLE), intent(in) :: farg4 +type(C_PTR), value :: farg5 +type(C_PTR), value :: farg6 +integer(C_INT) :: fresult +end function + +function swigc_FN_VScaleVectorArray_Parallel(farg1, farg2, farg3, farg4) & +bind(C, name="_wrap_FN_VScaleVectorArray_Parallel") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +integer(C_INT), intent(in) :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +type(C_PTR), value :: farg4 +integer(C_INT) :: fresult +end function + +function swigc_FN_VConstVectorArray_Parallel(farg1, farg2, farg3) & +bind(C, name="_wrap_FN_VConstVectorArray_Parallel") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +integer(C_INT), intent(in) :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FN_VWrmsNormVectorArray_Parallel(farg1, farg2, farg3, farg4) & +bind(C, name="_wrap_FN_VWrmsNormVectorArray_Parallel") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +integer(C_INT), intent(in) :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +type(C_PTR), value :: farg4 +integer(C_INT) :: fresult +end function + +function swigc_FN_VWrmsNormMaskVectorArray_Parallel(farg1, farg2, farg3, farg4, farg5) & +bind(C, name="_wrap_FN_VWrmsNormMaskVectorArray_Parallel") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +integer(C_INT), intent(in) :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +type(C_PTR), value :: farg4 +type(C_PTR), value :: farg5 +integer(C_INT) :: fresult +end function + +function swigc_FN_VDotProdLocal_Parallel(farg1, farg2) & +bind(C, name="_wrap_FN_VDotProdLocal_Parallel") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +real(C_DOUBLE) :: fresult +end function + +function swigc_FN_VMaxNormLocal_Parallel(farg1) & +bind(C, name="_wrap_FN_VMaxNormLocal_Parallel") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE) :: fresult +end function + +function swigc_FN_VMinLocal_Parallel(farg1) & +bind(C, name="_wrap_FN_VMinLocal_Parallel") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE) :: fresult +end function + +function swigc_FN_VL1NormLocal_Parallel(farg1) & +bind(C, name="_wrap_FN_VL1NormLocal_Parallel") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE) :: fresult +end function + +function swigc_FN_VWSqrSumLocal_Parallel(farg1, farg2) & +bind(C, name="_wrap_FN_VWSqrSumLocal_Parallel") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +real(C_DOUBLE) :: fresult +end function + +function swigc_FN_VWSqrSumMaskLocal_Parallel(farg1, farg2, farg3) & +bind(C, name="_wrap_FN_VWSqrSumMaskLocal_Parallel") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +real(C_DOUBLE) :: fresult +end function + +function swigc_FN_VInvTestLocal_Parallel(farg1, farg2) & +bind(C, name="_wrap_FN_VInvTestLocal_Parallel") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FN_VConstrMaskLocal_Parallel(farg1, farg2, farg3) & +bind(C, name="_wrap_FN_VConstrMaskLocal_Parallel") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FN_VMinQuotientLocal_Parallel(farg1, farg2) & +bind(C, name="_wrap_FN_VMinQuotientLocal_Parallel") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +real(C_DOUBLE) :: fresult +end function + +function swigc_FN_VDotProdMultiLocal_Parallel(farg1, farg2, farg3, farg4) & +bind(C, name="_wrap_FN_VDotProdMultiLocal_Parallel") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +integer(C_INT), intent(in) :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +type(C_PTR), value :: farg4 +integer(C_INT) :: fresult +end function + +function swigc_FN_VDotProdMultiAllReduce_Parallel(farg1, farg2, farg3) & +bind(C, name="_wrap_FN_VDotProdMultiAllReduce_Parallel") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +integer(C_INT), intent(in) :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FN_VBufSize_Parallel(farg1, farg2) & +bind(C, name="_wrap_FN_VBufSize_Parallel") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FN_VBufPack_Parallel(farg1, farg2) & +bind(C, name="_wrap_FN_VBufPack_Parallel") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FN_VBufUnpack_Parallel(farg1, farg2) & +bind(C, name="_wrap_FN_VBufUnpack_Parallel") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FN_VEnableFusedOps_Parallel(farg1, farg2) & +bind(C, name="_wrap_FN_VEnableFusedOps_Parallel") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FN_VEnableLinearCombination_Parallel(farg1, farg2) & +bind(C, name="_wrap_FN_VEnableLinearCombination_Parallel") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FN_VEnableScaleAddMulti_Parallel(farg1, farg2) & +bind(C, name="_wrap_FN_VEnableScaleAddMulti_Parallel") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FN_VEnableDotProdMulti_Parallel(farg1, farg2) & +bind(C, name="_wrap_FN_VEnableDotProdMulti_Parallel") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FN_VEnableLinearSumVectorArray_Parallel(farg1, farg2) & +bind(C, name="_wrap_FN_VEnableLinearSumVectorArray_Parallel") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FN_VEnableScaleVectorArray_Parallel(farg1, farg2) & +bind(C, name="_wrap_FN_VEnableScaleVectorArray_Parallel") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FN_VEnableConstVectorArray_Parallel(farg1, farg2) & +bind(C, name="_wrap_FN_VEnableConstVectorArray_Parallel") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FN_VEnableWrmsNormVectorArray_Parallel(farg1, farg2) & +bind(C, name="_wrap_FN_VEnableWrmsNormVectorArray_Parallel") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FN_VEnableWrmsNormMaskVectorArray_Parallel(farg1, farg2) & +bind(C, name="_wrap_FN_VEnableWrmsNormMaskVectorArray_Parallel") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FN_VEnableDotProdMultiLocal_Parallel(farg1, farg2) & +bind(C, name="_wrap_FN_VEnableDotProdMultiLocal_Parallel") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + + +function swigc_FN_VGetArrayPointer_Parallel(farg1) & +bind(C, name="_wrap_FN_VGetArrayPointer_Parallel") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR) :: fresult +end function + +end interface + + +contains + ! MODULE SUBPROGRAMS +function FN_VNew_Parallel(comm, local_length, global_length, sunctx) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +type(N_Vector), pointer :: swig_result +integer :: comm +integer(C_INT32_T), intent(in) :: local_length +integer(C_INT32_T), intent(in) :: global_length +type(C_PTR) :: sunctx +type(C_PTR) :: fresult +integer(C_INT) :: farg1 +integer(C_INT32_T) :: farg2 +integer(C_INT32_T) :: farg3 +type(C_PTR) :: farg4 + +farg1 = int(comm, C_INT) +farg2 = local_length +farg3 = global_length +farg4 = sunctx +fresult = swigc_FN_VNew_Parallel(farg1, farg2, farg3, farg4) +call c_f_pointer(fresult, swig_result) +end function + +function FN_VNewEmpty_Parallel(comm, local_length, global_length, sunctx) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +type(N_Vector), pointer :: swig_result +integer :: comm +integer(C_INT32_T), intent(in) :: local_length +integer(C_INT32_T), intent(in) :: global_length +type(C_PTR) :: sunctx +type(C_PTR) :: fresult +integer(C_INT) :: farg1 +integer(C_INT32_T) :: farg2 +integer(C_INT32_T) :: farg3 +type(C_PTR) :: farg4 + +farg1 = int(comm, C_INT) +farg2 = local_length +farg3 = global_length +farg4 = sunctx +fresult = swigc_FN_VNewEmpty_Parallel(farg1, farg2, farg3, farg4) +call c_f_pointer(fresult, swig_result) +end function + +function FN_VMake_Parallel(comm, local_length, global_length, v_data, sunctx) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +type(N_Vector), pointer :: swig_result +integer :: comm +integer(C_INT32_T), intent(in) :: local_length +integer(C_INT32_T), intent(in) :: global_length +real(C_DOUBLE), dimension(*), target, intent(inout) :: v_data +type(C_PTR) :: sunctx +type(C_PTR) :: fresult +integer(C_INT) :: farg1 +integer(C_INT32_T) :: farg2 +integer(C_INT32_T) :: farg3 +type(C_PTR) :: farg4 +type(C_PTR) :: farg5 + +farg1 = int(comm, C_INT) +farg2 = local_length +farg3 = global_length +farg4 = c_loc(v_data(1)) +farg5 = sunctx +fresult = swigc_FN_VMake_Parallel(farg1, farg2, farg3, farg4, farg5) +call c_f_pointer(fresult, swig_result) +end function + +function FN_VGetLength_Parallel(v) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT32_T) :: swig_result +type(N_Vector), target, intent(inout) :: v +integer(C_INT32_T) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(v) +fresult = swigc_FN_VGetLength_Parallel(farg1) +swig_result = fresult +end function + +function FN_VGetLocalLength_Parallel(v) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT32_T) :: swig_result +type(N_Vector), target, intent(inout) :: v +integer(C_INT32_T) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(v) +fresult = swigc_FN_VGetLocalLength_Parallel(farg1) +swig_result = fresult +end function + +subroutine FN_VPrint_Parallel(v) +use, intrinsic :: ISO_C_BINDING +type(N_Vector), target, intent(inout) :: v +type(C_PTR) :: farg1 + +farg1 = c_loc(v) +call swigc_FN_VPrint_Parallel(farg1) +end subroutine + +subroutine FN_VPrintFile_Parallel(v, outfile) +use, intrinsic :: ISO_C_BINDING +type(N_Vector), target, intent(inout) :: v +type(C_PTR) :: outfile +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = c_loc(v) +farg2 = outfile +call swigc_FN_VPrintFile_Parallel(farg1, farg2) +end subroutine + +function FN_VGetVectorID_Parallel(v) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(N_Vector_ID) :: swig_result +type(N_Vector), target, intent(inout) :: v +integer(C_INT) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(v) +fresult = swigc_FN_VGetVectorID_Parallel(farg1) +swig_result = fresult +end function + +function FN_VCloneEmpty_Parallel(w) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +type(N_Vector), pointer :: swig_result +type(N_Vector), target, intent(inout) :: w +type(C_PTR) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(w) +fresult = swigc_FN_VCloneEmpty_Parallel(farg1) +call c_f_pointer(fresult, swig_result) +end function + +function FN_VClone_Parallel(w) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +type(N_Vector), pointer :: swig_result +type(N_Vector), target, intent(inout) :: w +type(C_PTR) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(w) +fresult = swigc_FN_VClone_Parallel(farg1) +call c_f_pointer(fresult, swig_result) +end function + +subroutine FN_VDestroy_Parallel(v) +use, intrinsic :: ISO_C_BINDING +type(N_Vector), target, intent(inout) :: v +type(C_PTR) :: farg1 + +farg1 = c_loc(v) +call swigc_FN_VDestroy_Parallel(farg1) +end subroutine + +subroutine FN_VSpace_Parallel(v, lrw, liw) +use, intrinsic :: ISO_C_BINDING +type(N_Vector), target, intent(inout) :: v +integer(C_INT32_T), dimension(*), target, intent(inout) :: lrw +integer(C_INT32_T), dimension(*), target, intent(inout) :: liw +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = c_loc(v) +farg2 = c_loc(lrw(1)) +farg3 = c_loc(liw(1)) +call swigc_FN_VSpace_Parallel(farg1, farg2, farg3) +end subroutine + +subroutine FN_VSetArrayPointer_Parallel(v_data, v) +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE), dimension(*), target, intent(inout) :: v_data +type(N_Vector), target, intent(inout) :: v +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = c_loc(v_data(1)) +farg2 = c_loc(v) +call swigc_FN_VSetArrayPointer_Parallel(farg1, farg2) +end subroutine + +function FN_VGetCommunicator_Parallel(v) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer :: swig_result +type(N_Vector), target, intent(inout) :: v +integer(C_INT) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(v) +fresult = swigc_FN_VGetCommunicator_Parallel(farg1) +swig_result = int(fresult) +end function + +subroutine FN_VLinearSum_Parallel(a, x, b, y, z) +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE), intent(in) :: a +type(N_Vector), target, intent(inout) :: x +real(C_DOUBLE), intent(in) :: b +type(N_Vector), target, intent(inout) :: y +type(N_Vector), target, intent(inout) :: z +real(C_DOUBLE) :: farg1 +type(C_PTR) :: farg2 +real(C_DOUBLE) :: farg3 +type(C_PTR) :: farg4 +type(C_PTR) :: farg5 + +farg1 = a +farg2 = c_loc(x) +farg3 = b +farg4 = c_loc(y) +farg5 = c_loc(z) +call swigc_FN_VLinearSum_Parallel(farg1, farg2, farg3, farg4, farg5) +end subroutine + +subroutine FN_VConst_Parallel(c, z) +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE), intent(in) :: c +type(N_Vector), target, intent(inout) :: z +real(C_DOUBLE) :: farg1 +type(C_PTR) :: farg2 + +farg1 = c +farg2 = c_loc(z) +call swigc_FN_VConst_Parallel(farg1, farg2) +end subroutine + +subroutine FN_VProd_Parallel(x, y, z) +use, intrinsic :: ISO_C_BINDING +type(N_Vector), target, intent(inout) :: x +type(N_Vector), target, intent(inout) :: y +type(N_Vector), target, intent(inout) :: z +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = c_loc(x) +farg2 = c_loc(y) +farg3 = c_loc(z) +call swigc_FN_VProd_Parallel(farg1, farg2, farg3) +end subroutine + +subroutine FN_VDiv_Parallel(x, y, z) +use, intrinsic :: ISO_C_BINDING +type(N_Vector), target, intent(inout) :: x +type(N_Vector), target, intent(inout) :: y +type(N_Vector), target, intent(inout) :: z +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = c_loc(x) +farg2 = c_loc(y) +farg3 = c_loc(z) +call swigc_FN_VDiv_Parallel(farg1, farg2, farg3) +end subroutine + +subroutine FN_VScale_Parallel(c, x, z) +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE), intent(in) :: c +type(N_Vector), target, intent(inout) :: x +type(N_Vector), target, intent(inout) :: z +real(C_DOUBLE) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = c +farg2 = c_loc(x) +farg3 = c_loc(z) +call swigc_FN_VScale_Parallel(farg1, farg2, farg3) +end subroutine + +subroutine FN_VAbs_Parallel(x, z) +use, intrinsic :: ISO_C_BINDING +type(N_Vector), target, intent(inout) :: x +type(N_Vector), target, intent(inout) :: z +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = c_loc(x) +farg2 = c_loc(z) +call swigc_FN_VAbs_Parallel(farg1, farg2) +end subroutine + +subroutine FN_VInv_Parallel(x, z) +use, intrinsic :: ISO_C_BINDING +type(N_Vector), target, intent(inout) :: x +type(N_Vector), target, intent(inout) :: z +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = c_loc(x) +farg2 = c_loc(z) +call swigc_FN_VInv_Parallel(farg1, farg2) +end subroutine + +subroutine FN_VAddConst_Parallel(x, b, z) +use, intrinsic :: ISO_C_BINDING +type(N_Vector), target, intent(inout) :: x +real(C_DOUBLE), intent(in) :: b +type(N_Vector), target, intent(inout) :: z +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 +type(C_PTR) :: farg3 + +farg1 = c_loc(x) +farg2 = b +farg3 = c_loc(z) +call swigc_FN_VAddConst_Parallel(farg1, farg2, farg3) +end subroutine + +function FN_VDotProd_Parallel(x, y) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE) :: swig_result +type(N_Vector), target, intent(inout) :: x +type(N_Vector), target, intent(inout) :: y +real(C_DOUBLE) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = c_loc(x) +farg2 = c_loc(y) +fresult = swigc_FN_VDotProd_Parallel(farg1, farg2) +swig_result = fresult +end function + +function FN_VMaxNorm_Parallel(x) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE) :: swig_result +type(N_Vector), target, intent(inout) :: x +real(C_DOUBLE) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(x) +fresult = swigc_FN_VMaxNorm_Parallel(farg1) +swig_result = fresult +end function + +function FN_VWrmsNorm_Parallel(x, w) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE) :: swig_result +type(N_Vector), target, intent(inout) :: x +type(N_Vector), target, intent(inout) :: w +real(C_DOUBLE) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = c_loc(x) +farg2 = c_loc(w) +fresult = swigc_FN_VWrmsNorm_Parallel(farg1, farg2) +swig_result = fresult +end function + +function FN_VWrmsNormMask_Parallel(x, w, id) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE) :: swig_result +type(N_Vector), target, intent(inout) :: x +type(N_Vector), target, intent(inout) :: w +type(N_Vector), target, intent(inout) :: id +real(C_DOUBLE) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = c_loc(x) +farg2 = c_loc(w) +farg3 = c_loc(id) +fresult = swigc_FN_VWrmsNormMask_Parallel(farg1, farg2, farg3) +swig_result = fresult +end function + +function FN_VMin_Parallel(x) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE) :: swig_result +type(N_Vector), target, intent(inout) :: x +real(C_DOUBLE) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(x) +fresult = swigc_FN_VMin_Parallel(farg1) +swig_result = fresult +end function + +function FN_VWL2Norm_Parallel(x, w) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE) :: swig_result +type(N_Vector), target, intent(inout) :: x +type(N_Vector), target, intent(inout) :: w +real(C_DOUBLE) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = c_loc(x) +farg2 = c_loc(w) +fresult = swigc_FN_VWL2Norm_Parallel(farg1, farg2) +swig_result = fresult +end function + +function FN_VL1Norm_Parallel(x) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE) :: swig_result +type(N_Vector), target, intent(inout) :: x +real(C_DOUBLE) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(x) +fresult = swigc_FN_VL1Norm_Parallel(farg1) +swig_result = fresult +end function + +subroutine FN_VCompare_Parallel(c, x, z) +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE), intent(in) :: c +type(N_Vector), target, intent(inout) :: x +type(N_Vector), target, intent(inout) :: z +real(C_DOUBLE) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = c +farg2 = c_loc(x) +farg3 = c_loc(z) +call swigc_FN_VCompare_Parallel(farg1, farg2, farg3) +end subroutine + +function FN_VInvTest_Parallel(x, z) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(N_Vector), target, intent(inout) :: x +type(N_Vector), target, intent(inout) :: z +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = c_loc(x) +farg2 = c_loc(z) +fresult = swigc_FN_VInvTest_Parallel(farg1, farg2) +swig_result = fresult +end function + +function FN_VConstrMask_Parallel(c, x, m) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(N_Vector), target, intent(inout) :: c +type(N_Vector), target, intent(inout) :: x +type(N_Vector), target, intent(inout) :: m +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = c_loc(c) +farg2 = c_loc(x) +farg3 = c_loc(m) +fresult = swigc_FN_VConstrMask_Parallel(farg1, farg2, farg3) +swig_result = fresult +end function + +function FN_VMinQuotient_Parallel(num, denom) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE) :: swig_result +type(N_Vector), target, intent(inout) :: num +type(N_Vector), target, intent(inout) :: denom +real(C_DOUBLE) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = c_loc(num) +farg2 = c_loc(denom) +fresult = swigc_FN_VMinQuotient_Parallel(farg1, farg2) +swig_result = fresult +end function + +function FN_VLinearCombination_Parallel(nvec, c, v, z) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +integer(C_INT), intent(in) :: nvec +real(C_DOUBLE), dimension(*), target, intent(inout) :: c +type(C_PTR) :: v +type(N_Vector), target, intent(inout) :: z +integer(C_INT) :: fresult +integer(C_INT) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 +type(C_PTR) :: farg4 + +farg1 = nvec +farg2 = c_loc(c(1)) +farg3 = v +farg4 = c_loc(z) +fresult = swigc_FN_VLinearCombination_Parallel(farg1, farg2, farg3, farg4) +swig_result = fresult +end function + +function FN_VScaleAddMulti_Parallel(nvec, a, x, y, z) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +integer(C_INT), intent(in) :: nvec +real(C_DOUBLE), dimension(*), target, intent(inout) :: a +type(N_Vector), target, intent(inout) :: x +type(C_PTR) :: y +type(C_PTR) :: z +integer(C_INT) :: fresult +integer(C_INT) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 +type(C_PTR) :: farg4 +type(C_PTR) :: farg5 + +farg1 = nvec +farg2 = c_loc(a(1)) +farg3 = c_loc(x) +farg4 = y +farg5 = z +fresult = swigc_FN_VScaleAddMulti_Parallel(farg1, farg2, farg3, farg4, farg5) +swig_result = fresult +end function + +function FN_VDotProdMulti_Parallel(nvec, x, y, dotprods) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +integer(C_INT), intent(in) :: nvec +type(N_Vector), target, intent(inout) :: x +type(C_PTR) :: y +real(C_DOUBLE), dimension(*), target, intent(inout) :: dotprods +integer(C_INT) :: fresult +integer(C_INT) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 +type(C_PTR) :: farg4 + +farg1 = nvec +farg2 = c_loc(x) +farg3 = y +farg4 = c_loc(dotprods(1)) +fresult = swigc_FN_VDotProdMulti_Parallel(farg1, farg2, farg3, farg4) +swig_result = fresult +end function + +function FN_VLinearSumVectorArray_Parallel(nvec, a, x, b, y, z) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +integer(C_INT), intent(in) :: nvec +real(C_DOUBLE), intent(in) :: a +type(C_PTR) :: x +real(C_DOUBLE), intent(in) :: b +type(C_PTR) :: y +type(C_PTR) :: z +integer(C_INT) :: fresult +integer(C_INT) :: farg1 +real(C_DOUBLE) :: farg2 +type(C_PTR) :: farg3 +real(C_DOUBLE) :: farg4 +type(C_PTR) :: farg5 +type(C_PTR) :: farg6 + +farg1 = nvec +farg2 = a +farg3 = x +farg4 = b +farg5 = y +farg6 = z +fresult = swigc_FN_VLinearSumVectorArray_Parallel(farg1, farg2, farg3, farg4, farg5, farg6) +swig_result = fresult +end function + +function FN_VScaleVectorArray_Parallel(nvec, c, x, z) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +integer(C_INT), intent(in) :: nvec +real(C_DOUBLE), dimension(*), target, intent(inout) :: c +type(C_PTR) :: x +type(C_PTR) :: z +integer(C_INT) :: fresult +integer(C_INT) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 +type(C_PTR) :: farg4 + +farg1 = nvec +farg2 = c_loc(c(1)) +farg3 = x +farg4 = z +fresult = swigc_FN_VScaleVectorArray_Parallel(farg1, farg2, farg3, farg4) +swig_result = fresult +end function + +function FN_VConstVectorArray_Parallel(nvecs, c, z) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +integer(C_INT), intent(in) :: nvecs +real(C_DOUBLE), intent(in) :: c +type(C_PTR) :: z +integer(C_INT) :: fresult +integer(C_INT) :: farg1 +real(C_DOUBLE) :: farg2 +type(C_PTR) :: farg3 + +farg1 = nvecs +farg2 = c +farg3 = z +fresult = swigc_FN_VConstVectorArray_Parallel(farg1, farg2, farg3) +swig_result = fresult +end function + +function FN_VWrmsNormVectorArray_Parallel(nvecs, x, w, nrm) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +integer(C_INT), intent(in) :: nvecs +type(C_PTR) :: x +type(C_PTR) :: w +real(C_DOUBLE), dimension(*), target, intent(inout) :: nrm +integer(C_INT) :: fresult +integer(C_INT) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 +type(C_PTR) :: farg4 + +farg1 = nvecs +farg2 = x +farg3 = w +farg4 = c_loc(nrm(1)) +fresult = swigc_FN_VWrmsNormVectorArray_Parallel(farg1, farg2, farg3, farg4) +swig_result = fresult +end function + +function FN_VWrmsNormMaskVectorArray_Parallel(nvec, x, w, id, nrm) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +integer(C_INT), intent(in) :: nvec +type(C_PTR) :: x +type(C_PTR) :: w +type(N_Vector), target, intent(inout) :: id +real(C_DOUBLE), dimension(*), target, intent(inout) :: nrm +integer(C_INT) :: fresult +integer(C_INT) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 +type(C_PTR) :: farg4 +type(C_PTR) :: farg5 + +farg1 = nvec +farg2 = x +farg3 = w +farg4 = c_loc(id) +farg5 = c_loc(nrm(1)) +fresult = swigc_FN_VWrmsNormMaskVectorArray_Parallel(farg1, farg2, farg3, farg4, farg5) +swig_result = fresult +end function + +function FN_VDotProdLocal_Parallel(x, y) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE) :: swig_result +type(N_Vector), target, intent(inout) :: x +type(N_Vector), target, intent(inout) :: y +real(C_DOUBLE) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = c_loc(x) +farg2 = c_loc(y) +fresult = swigc_FN_VDotProdLocal_Parallel(farg1, farg2) +swig_result = fresult +end function + +function FN_VMaxNormLocal_Parallel(x) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE) :: swig_result +type(N_Vector), target, intent(inout) :: x +real(C_DOUBLE) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(x) +fresult = swigc_FN_VMaxNormLocal_Parallel(farg1) +swig_result = fresult +end function + +function FN_VMinLocal_Parallel(x) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE) :: swig_result +type(N_Vector), target, intent(inout) :: x +real(C_DOUBLE) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(x) +fresult = swigc_FN_VMinLocal_Parallel(farg1) +swig_result = fresult +end function + +function FN_VL1NormLocal_Parallel(x) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE) :: swig_result +type(N_Vector), target, intent(inout) :: x +real(C_DOUBLE) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(x) +fresult = swigc_FN_VL1NormLocal_Parallel(farg1) +swig_result = fresult +end function + +function FN_VWSqrSumLocal_Parallel(x, w) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE) :: swig_result +type(N_Vector), target, intent(inout) :: x +type(N_Vector), target, intent(inout) :: w +real(C_DOUBLE) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = c_loc(x) +farg2 = c_loc(w) +fresult = swigc_FN_VWSqrSumLocal_Parallel(farg1, farg2) +swig_result = fresult +end function + +function FN_VWSqrSumMaskLocal_Parallel(x, w, id) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE) :: swig_result +type(N_Vector), target, intent(inout) :: x +type(N_Vector), target, intent(inout) :: w +type(N_Vector), target, intent(inout) :: id +real(C_DOUBLE) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = c_loc(x) +farg2 = c_loc(w) +farg3 = c_loc(id) +fresult = swigc_FN_VWSqrSumMaskLocal_Parallel(farg1, farg2, farg3) +swig_result = fresult +end function + +function FN_VInvTestLocal_Parallel(x, z) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(N_Vector), target, intent(inout) :: x +type(N_Vector), target, intent(inout) :: z +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = c_loc(x) +farg2 = c_loc(z) +fresult = swigc_FN_VInvTestLocal_Parallel(farg1, farg2) +swig_result = fresult +end function + +function FN_VConstrMaskLocal_Parallel(c, x, m) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(N_Vector), target, intent(inout) :: c +type(N_Vector), target, intent(inout) :: x +type(N_Vector), target, intent(inout) :: m +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = c_loc(c) +farg2 = c_loc(x) +farg3 = c_loc(m) +fresult = swigc_FN_VConstrMaskLocal_Parallel(farg1, farg2, farg3) +swig_result = fresult +end function + +function FN_VMinQuotientLocal_Parallel(num, denom) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE) :: swig_result +type(N_Vector), target, intent(inout) :: num +type(N_Vector), target, intent(inout) :: denom +real(C_DOUBLE) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = c_loc(num) +farg2 = c_loc(denom) +fresult = swigc_FN_VMinQuotientLocal_Parallel(farg1, farg2) +swig_result = fresult +end function + +function FN_VDotProdMultiLocal_Parallel(nvec, x, y, dotprods) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +integer(C_INT), intent(in) :: nvec +type(N_Vector), target, intent(inout) :: x +type(C_PTR) :: y +real(C_DOUBLE), dimension(*), target, intent(inout) :: dotprods +integer(C_INT) :: fresult +integer(C_INT) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 +type(C_PTR) :: farg4 + +farg1 = nvec +farg2 = c_loc(x) +farg3 = y +farg4 = c_loc(dotprods(1)) +fresult = swigc_FN_VDotProdMultiLocal_Parallel(farg1, farg2, farg3, farg4) +swig_result = fresult +end function + +function FN_VDotProdMultiAllReduce_Parallel(nvec_total, x, dotprods) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +integer(C_INT), intent(in) :: nvec_total +type(N_Vector), target, intent(inout) :: x +real(C_DOUBLE), dimension(*), target, intent(inout) :: dotprods +integer(C_INT) :: fresult +integer(C_INT) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = nvec_total +farg2 = c_loc(x) +farg3 = c_loc(dotprods(1)) +fresult = swigc_FN_VDotProdMultiAllReduce_Parallel(farg1, farg2, farg3) +swig_result = fresult +end function + +function FN_VBufSize_Parallel(x, size) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(N_Vector), target, intent(inout) :: x +integer(C_INT32_T), dimension(*), target, intent(inout) :: size +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = c_loc(x) +farg2 = c_loc(size(1)) +fresult = swigc_FN_VBufSize_Parallel(farg1, farg2) +swig_result = fresult +end function + +function FN_VBufPack_Parallel(x, buf) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(N_Vector), target, intent(inout) :: x +type(C_PTR) :: buf +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = c_loc(x) +farg2 = buf +fresult = swigc_FN_VBufPack_Parallel(farg1, farg2) +swig_result = fresult +end function + +function FN_VBufUnpack_Parallel(x, buf) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(N_Vector), target, intent(inout) :: x +type(C_PTR) :: buf +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = c_loc(x) +farg2 = buf +fresult = swigc_FN_VBufUnpack_Parallel(farg1, farg2) +swig_result = fresult +end function + +function FN_VEnableFusedOps_Parallel(v, tf) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(N_Vector), target, intent(inout) :: v +integer(C_INT), intent(in) :: tf +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = c_loc(v) +farg2 = tf +fresult = swigc_FN_VEnableFusedOps_Parallel(farg1, farg2) +swig_result = fresult +end function + +function FN_VEnableLinearCombination_Parallel(v, tf) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(N_Vector), target, intent(inout) :: v +integer(C_INT), intent(in) :: tf +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = c_loc(v) +farg2 = tf +fresult = swigc_FN_VEnableLinearCombination_Parallel(farg1, farg2) +swig_result = fresult +end function + +function FN_VEnableScaleAddMulti_Parallel(v, tf) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(N_Vector), target, intent(inout) :: v +integer(C_INT), intent(in) :: tf +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = c_loc(v) +farg2 = tf +fresult = swigc_FN_VEnableScaleAddMulti_Parallel(farg1, farg2) +swig_result = fresult +end function + +function FN_VEnableDotProdMulti_Parallel(v, tf) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(N_Vector), target, intent(inout) :: v +integer(C_INT), intent(in) :: tf +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = c_loc(v) +farg2 = tf +fresult = swigc_FN_VEnableDotProdMulti_Parallel(farg1, farg2) +swig_result = fresult +end function + +function FN_VEnableLinearSumVectorArray_Parallel(v, tf) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(N_Vector), target, intent(inout) :: v +integer(C_INT), intent(in) :: tf +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = c_loc(v) +farg2 = tf +fresult = swigc_FN_VEnableLinearSumVectorArray_Parallel(farg1, farg2) +swig_result = fresult +end function + +function FN_VEnableScaleVectorArray_Parallel(v, tf) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(N_Vector), target, intent(inout) :: v +integer(C_INT), intent(in) :: tf +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = c_loc(v) +farg2 = tf +fresult = swigc_FN_VEnableScaleVectorArray_Parallel(farg1, farg2) +swig_result = fresult +end function + +function FN_VEnableConstVectorArray_Parallel(v, tf) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(N_Vector), target, intent(inout) :: v +integer(C_INT), intent(in) :: tf +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = c_loc(v) +farg2 = tf +fresult = swigc_FN_VEnableConstVectorArray_Parallel(farg1, farg2) +swig_result = fresult +end function + +function FN_VEnableWrmsNormVectorArray_Parallel(v, tf) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(N_Vector), target, intent(inout) :: v +integer(C_INT), intent(in) :: tf +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = c_loc(v) +farg2 = tf +fresult = swigc_FN_VEnableWrmsNormVectorArray_Parallel(farg1, farg2) +swig_result = fresult +end function + +function FN_VEnableWrmsNormMaskVectorArray_Parallel(v, tf) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(N_Vector), target, intent(inout) :: v +integer(C_INT), intent(in) :: tf +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = c_loc(v) +farg2 = tf +fresult = swigc_FN_VEnableWrmsNormMaskVectorArray_Parallel(farg1, farg2) +swig_result = fresult +end function + +function FN_VEnableDotProdMultiLocal_Parallel(v, tf) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(N_Vector), target, intent(inout) :: v +integer(C_INT), intent(in) :: tf +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = c_loc(v) +farg2 = tf +fresult = swigc_FN_VEnableDotProdMultiLocal_Parallel(farg1, farg2) +swig_result = fresult +end function + + +function FN_VGetArrayPointer_Parallel(v) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE), dimension(:), pointer :: swig_result +type(N_Vector), target, intent(inout) :: v +type(C_PTR) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(v) +fresult = swigc_FN_VGetArrayPointer_Parallel(farg1) +call c_f_pointer(fresult, swig_result, [FN_VGetLocalLength_Parallel(v)]) +end function + + +end module diff --git a/src/nvector/parallel/fmod_int64/CMakeLists.txt b/src/nvector/parallel/fmod_int64/CMakeLists.txt new file mode 100644 index 0000000000..3b4031b8c9 --- /dev/null +++ b/src/nvector/parallel/fmod_int64/CMakeLists.txt @@ -0,0 +1,49 @@ +# --------------------------------------------------------------- +# Programmer(s): Cody J. Balos @ LLNL +# --------------------------------------------------------------- +# SUNDIALS Copyright Start +# Copyright (c) 2002-2024, Lawrence Livermore National Security +# and Southern Methodist University. +# All rights reserved. +# +# See the top-level LICENSE and NOTICE files for details. +# +# SPDX-License-Identifier: BSD-3-Clause +# SUNDIALS Copyright End +# --------------------------------------------------------------- +# CMakeLists.txt file for the F2003 parallel NVECTOR object library +# --------------------------------------------------------------- + +set(nvecparallel_SOURCES fnvector_parallel_mod.f90 fnvector_parallel_mod.c) + +if(MPI_C_COMPILER) + # use MPI wrapper as the compiler + set(CMAKE_C_COMPILER ${MPI_C_COMPILER}) +else() + # add MPI_INCLUDE_PATH to include directories + include_directories(${MPI_INCLUDE_PATH}) +endif() + +if(MPI_Fortran_COMPILER) + # use MPI wrapper as the compiler + set(CMAKE_Fortran_COMPILER ${MPI_Fortran_COMPILER}) +else() + # add MPI_INCLUDE_PATH to include directories + include_directories(${MPI_INCLUDE_PATH}) +endif() + +sundials_add_f2003_library(sundials_fnvecparallel_mod + SOURCES + fnvector_parallel_mod.f90 fnvector_parallel_mod.c + LINK_LIBRARIES + PUBLIC sundials_fcore_mod + OBJECT_LIBRARIES + OUTPUT_NAME + sundials_fnvecparallel_mod + VERSION + ${nveclib_VERSION} + SOVERSION + ${nveclib_SOVERSION} +) + +message(STATUS "Added NVECTOR_PARALLEL F2003 interface") diff --git a/src/nvector/parallel/fmod/fnvector_parallel_mod.c b/src/nvector/parallel/fmod_int64/fnvector_parallel_mod.c similarity index 100% rename from src/nvector/parallel/fmod/fnvector_parallel_mod.c rename to src/nvector/parallel/fmod_int64/fnvector_parallel_mod.c diff --git a/src/nvector/parallel/fmod/fnvector_parallel_mod.f90 b/src/nvector/parallel/fmod_int64/fnvector_parallel_mod.f90 similarity index 100% rename from src/nvector/parallel/fmod/fnvector_parallel_mod.f90 rename to src/nvector/parallel/fmod_int64/fnvector_parallel_mod.f90 diff --git a/src/nvector/pthreads/CMakeLists.txt b/src/nvector/pthreads/CMakeLists.txt index bb4e3c361b..2aafa31e4a 100644 --- a/src/nvector/pthreads/CMakeLists.txt +++ b/src/nvector/pthreads/CMakeLists.txt @@ -41,5 +41,5 @@ message(STATUS "Added NVECTOR_PTHREADS module") # Add F2003 module if the interface is enabled if(BUILD_FORTRAN_MODULE_INTERFACE) - add_subdirectory(fmod) + add_subdirectory("fmod_int${SUNDIALS_INDEX_SIZE}") endif() diff --git a/src/nvector/pthreads/fmod/CMakeLists.txt b/src/nvector/pthreads/fmod_int32/CMakeLists.txt similarity index 100% rename from src/nvector/pthreads/fmod/CMakeLists.txt rename to src/nvector/pthreads/fmod_int32/CMakeLists.txt diff --git a/src/nvector/pthreads/fmod_int32/fnvector_pthreads_mod.c b/src/nvector/pthreads/fmod_int32/fnvector_pthreads_mod.c new file mode 100644 index 0000000000..77ac40a163 --- /dev/null +++ b/src/nvector/pthreads/fmod_int32/fnvector_pthreads_mod.c @@ -0,0 +1,961 @@ +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.0 + * + * This file is not intended to be easily readable and contains a number of + * coding conventions designed to improve portability and efficiency. Do not make + * changes to this file unless you know what you are doing--modify the SWIG + * interface file instead. + * ----------------------------------------------------------------------------- */ + +/* --------------------------------------------------------------- + * Programmer(s): Auto-generated by swig. + * --------------------------------------------------------------- + * SUNDIALS Copyright Start + * Copyright (c) 2002-2024, Lawrence Livermore National Security + * and Southern Methodist University. + * All rights reserved. + * + * See the top-level LICENSE and NOTICE files for details. + * + * SPDX-License-Identifier: BSD-3-Clause + * SUNDIALS Copyright End + * -------------------------------------------------------------*/ + +/* ----------------------------------------------------------------------------- + * This section contains generic SWIG labels for method/variable + * declarations/attributes, and other compiler dependent labels. + * ----------------------------------------------------------------------------- */ + +/* template workaround for compilers that cannot correctly implement the C++ standard */ +#ifndef SWIGTEMPLATEDISAMBIGUATOR +# if defined(__SUNPRO_CC) && (__SUNPRO_CC <= 0x560) +# define SWIGTEMPLATEDISAMBIGUATOR template +# elif defined(__HP_aCC) +/* Needed even with `aCC -AA' when `aCC -V' reports HP ANSI C++ B3910B A.03.55 */ +/* If we find a maximum version that requires this, the test would be __HP_aCC <= 35500 for A.03.55 */ +# define SWIGTEMPLATEDISAMBIGUATOR template +# else +# define SWIGTEMPLATEDISAMBIGUATOR +# endif +#endif + +/* inline attribute */ +#ifndef SWIGINLINE +# if defined(__cplusplus) || (defined(__GNUC__) && !defined(__STRICT_ANSI__)) +# define SWIGINLINE inline +# else +# define SWIGINLINE +# endif +#endif + +/* attribute recognised by some compilers to avoid 'unused' warnings */ +#ifndef SWIGUNUSED +# if defined(__GNUC__) +# if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)) +# define SWIGUNUSED __attribute__ ((__unused__)) +# else +# define SWIGUNUSED +# endif +# elif defined(__ICC) +# define SWIGUNUSED __attribute__ ((__unused__)) +# else +# define SWIGUNUSED +# endif +#endif + +#ifndef SWIG_MSC_UNSUPPRESS_4505 +# if defined(_MSC_VER) +# pragma warning(disable : 4505) /* unreferenced local function has been removed */ +# endif +#endif + +#ifndef SWIGUNUSEDPARM +# ifdef __cplusplus +# define SWIGUNUSEDPARM(p) +# else +# define SWIGUNUSEDPARM(p) p SWIGUNUSED +# endif +#endif + +/* internal SWIG method */ +#ifndef SWIGINTERN +# define SWIGINTERN static SWIGUNUSED +#endif + +/* internal inline SWIG method */ +#ifndef SWIGINTERNINLINE +# define SWIGINTERNINLINE SWIGINTERN SWIGINLINE +#endif + +/* qualifier for exported *const* global data variables*/ +#ifndef SWIGEXTERN +# ifdef __cplusplus +# define SWIGEXTERN extern +# else +# define SWIGEXTERN +# endif +#endif + +/* exporting methods */ +#if defined(__GNUC__) +# if (__GNUC__ >= 4) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) +# ifndef GCC_HASCLASSVISIBILITY +# define GCC_HASCLASSVISIBILITY +# endif +# endif +#endif + +#ifndef SWIGEXPORT +# if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__) +# if defined(STATIC_LINKED) +# define SWIGEXPORT +# else +# define SWIGEXPORT __declspec(dllexport) +# endif +# else +# if defined(__GNUC__) && defined(GCC_HASCLASSVISIBILITY) +# define SWIGEXPORT __attribute__ ((visibility("default"))) +# else +# define SWIGEXPORT +# endif +# endif +#endif + +/* calling conventions for Windows */ +#ifndef SWIGSTDCALL +# if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__) +# define SWIGSTDCALL __stdcall +# else +# define SWIGSTDCALL +# endif +#endif + +/* Deal with Microsoft's attempt at deprecating C standard runtime functions */ +#if !defined(SWIG_NO_CRT_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_CRT_SECURE_NO_DEPRECATE) +# define _CRT_SECURE_NO_DEPRECATE +#endif + +/* Deal with Microsoft's attempt at deprecating methods in the standard C++ library */ +#if !defined(SWIG_NO_SCL_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_SCL_SECURE_NO_DEPRECATE) +# define _SCL_SECURE_NO_DEPRECATE +#endif + +/* Deal with Apple's deprecated 'AssertMacros.h' from Carbon-framework */ +#if defined(__APPLE__) && !defined(__ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES) +# define __ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES 0 +#endif + +/* Intel's compiler complains if a variable which was never initialised is + * cast to void, which is a common idiom which we use to indicate that we + * are aware a variable isn't used. So we just silence that warning. + * See: https://github.com/swig/swig/issues/192 for more discussion. + */ +#ifdef __INTEL_COMPILER +# pragma warning disable 592 +#endif + +/* Errors in SWIG */ +#define SWIG_UnknownError -1 +#define SWIG_IOError -2 +#define SWIG_RuntimeError -3 +#define SWIG_IndexError -4 +#define SWIG_TypeError -5 +#define SWIG_DivisionByZero -6 +#define SWIG_OverflowError -7 +#define SWIG_SyntaxError -8 +#define SWIG_ValueError -9 +#define SWIG_SystemError -10 +#define SWIG_AttributeError -11 +#define SWIG_MemoryError -12 +#define SWIG_NullReferenceError -13 + + + + +#include +#define SWIG_exception_impl(DECL, CODE, MSG, RETURNNULL) \ + { printf("In " DECL ": " MSG); assert(0); RETURNNULL; } + + +#include +#if defined(_MSC_VER) || defined(__BORLANDC__) || defined(_WATCOM) +# ifndef snprintf +# define snprintf _snprintf +# endif +#endif + + +/* Support for the `contract` feature. + * + * Note that RETURNNULL is first because it's inserted via a 'Replaceall' in + * the fortran.cxx file. + */ +#define SWIG_contract_assert(RETURNNULL, EXPR, MSG) \ + if (!(EXPR)) { SWIG_exception_impl("$decl", SWIG_ValueError, MSG, RETURNNULL); } + + +#define SWIGVERSION 0x040000 +#define SWIG_VERSION SWIGVERSION + + +#define SWIG_as_voidptr(a) (void *)((const void *)(a)) +#define SWIG_as_voidptrptr(a) ((void)SWIG_as_voidptr(*a),(void**)(a)) + + +#include "sundials/sundials_nvector.h" + + +#include "nvector/nvector_pthreads.h" + +SWIGEXPORT N_Vector _wrap_FN_VNew_Pthreads(int32_t const *farg1, int const *farg2, void *farg3) { + N_Vector fresult ; + sunindextype arg1 ; + int arg2 ; + SUNContext arg3 = (SUNContext) 0 ; + N_Vector result; + + arg1 = (sunindextype)(*farg1); + arg2 = (int)(*farg2); + arg3 = (SUNContext)(farg3); + result = (N_Vector)N_VNew_Pthreads(arg1,arg2,arg3); + fresult = result; + return fresult; +} + + +SWIGEXPORT N_Vector _wrap_FN_VNewEmpty_Pthreads(int32_t const *farg1, int const *farg2, void *farg3) { + N_Vector fresult ; + sunindextype arg1 ; + int arg2 ; + SUNContext arg3 = (SUNContext) 0 ; + N_Vector result; + + arg1 = (sunindextype)(*farg1); + arg2 = (int)(*farg2); + arg3 = (SUNContext)(farg3); + result = (N_Vector)N_VNewEmpty_Pthreads(arg1,arg2,arg3); + fresult = result; + return fresult; +} + + +SWIGEXPORT N_Vector _wrap_FN_VMake_Pthreads(int32_t const *farg1, int const *farg2, double *farg3, void *farg4) { + N_Vector fresult ; + sunindextype arg1 ; + int arg2 ; + sunrealtype *arg3 = (sunrealtype *) 0 ; + SUNContext arg4 = (SUNContext) 0 ; + N_Vector result; + + arg1 = (sunindextype)(*farg1); + arg2 = (int)(*farg2); + arg3 = (sunrealtype *)(farg3); + arg4 = (SUNContext)(farg4); + result = (N_Vector)N_VMake_Pthreads(arg1,arg2,arg3,arg4); + fresult = result; + return fresult; +} + + +SWIGEXPORT int32_t _wrap_FN_VGetLength_Pthreads(N_Vector farg1) { + int32_t fresult ; + N_Vector arg1 = (N_Vector) 0 ; + sunindextype result; + + arg1 = (N_Vector)(farg1); + result = N_VGetLength_Pthreads(arg1); + fresult = (sunindextype)(result); + return fresult; +} + + +SWIGEXPORT void _wrap_FN_VPrint_Pthreads(N_Vector farg1) { + N_Vector arg1 = (N_Vector) 0 ; + + arg1 = (N_Vector)(farg1); + N_VPrint_Pthreads(arg1); +} + + +SWIGEXPORT void _wrap_FN_VPrintFile_Pthreads(N_Vector farg1, void *farg2) { + N_Vector arg1 = (N_Vector) 0 ; + FILE *arg2 = (FILE *) 0 ; + + arg1 = (N_Vector)(farg1); + arg2 = (FILE *)(farg2); + N_VPrintFile_Pthreads(arg1,arg2); +} + + +SWIGEXPORT int _wrap_FN_VGetVectorID_Pthreads(N_Vector farg1) { + int fresult ; + N_Vector arg1 = (N_Vector) 0 ; + N_Vector_ID result; + + arg1 = (N_Vector)(farg1); + result = (N_Vector_ID)N_VGetVectorID_Pthreads(arg1); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT N_Vector _wrap_FN_VCloneEmpty_Pthreads(N_Vector farg1) { + N_Vector fresult ; + N_Vector arg1 = (N_Vector) 0 ; + N_Vector result; + + arg1 = (N_Vector)(farg1); + result = (N_Vector)N_VCloneEmpty_Pthreads(arg1); + fresult = result; + return fresult; +} + + +SWIGEXPORT N_Vector _wrap_FN_VClone_Pthreads(N_Vector farg1) { + N_Vector fresult ; + N_Vector arg1 = (N_Vector) 0 ; + N_Vector result; + + arg1 = (N_Vector)(farg1); + result = (N_Vector)N_VClone_Pthreads(arg1); + fresult = result; + return fresult; +} + + +SWIGEXPORT void _wrap_FN_VDestroy_Pthreads(N_Vector farg1) { + N_Vector arg1 = (N_Vector) 0 ; + + arg1 = (N_Vector)(farg1); + N_VDestroy_Pthreads(arg1); +} + + +SWIGEXPORT void _wrap_FN_VSpace_Pthreads(N_Vector farg1, int32_t *farg2, int32_t *farg3) { + N_Vector arg1 = (N_Vector) 0 ; + sunindextype *arg2 = (sunindextype *) 0 ; + sunindextype *arg3 = (sunindextype *) 0 ; + + arg1 = (N_Vector)(farg1); + arg2 = (sunindextype *)(farg2); + arg3 = (sunindextype *)(farg3); + N_VSpace_Pthreads(arg1,arg2,arg3); +} + + +SWIGEXPORT void _wrap_FN_VSetArrayPointer_Pthreads(double *farg1, N_Vector farg2) { + sunrealtype *arg1 = (sunrealtype *) 0 ; + N_Vector arg2 = (N_Vector) 0 ; + + arg1 = (sunrealtype *)(farg1); + arg2 = (N_Vector)(farg2); + N_VSetArrayPointer_Pthreads(arg1,arg2); +} + + +SWIGEXPORT void _wrap_FN_VLinearSum_Pthreads(double const *farg1, N_Vector farg2, double const *farg3, N_Vector farg4, N_Vector farg5) { + sunrealtype arg1 ; + N_Vector arg2 = (N_Vector) 0 ; + sunrealtype arg3 ; + N_Vector arg4 = (N_Vector) 0 ; + N_Vector arg5 = (N_Vector) 0 ; + + arg1 = (sunrealtype)(*farg1); + arg2 = (N_Vector)(farg2); + arg3 = (sunrealtype)(*farg3); + arg4 = (N_Vector)(farg4); + arg5 = (N_Vector)(farg5); + N_VLinearSum_Pthreads(arg1,arg2,arg3,arg4,arg5); +} + + +SWIGEXPORT void _wrap_FN_VConst_Pthreads(double const *farg1, N_Vector farg2) { + sunrealtype arg1 ; + N_Vector arg2 = (N_Vector) 0 ; + + arg1 = (sunrealtype)(*farg1); + arg2 = (N_Vector)(farg2); + N_VConst_Pthreads(arg1,arg2); +} + + +SWIGEXPORT void _wrap_FN_VProd_Pthreads(N_Vector farg1, N_Vector farg2, N_Vector farg3) { + N_Vector arg1 = (N_Vector) 0 ; + N_Vector arg2 = (N_Vector) 0 ; + N_Vector arg3 = (N_Vector) 0 ; + + arg1 = (N_Vector)(farg1); + arg2 = (N_Vector)(farg2); + arg3 = (N_Vector)(farg3); + N_VProd_Pthreads(arg1,arg2,arg3); +} + + +SWIGEXPORT void _wrap_FN_VDiv_Pthreads(N_Vector farg1, N_Vector farg2, N_Vector farg3) { + N_Vector arg1 = (N_Vector) 0 ; + N_Vector arg2 = (N_Vector) 0 ; + N_Vector arg3 = (N_Vector) 0 ; + + arg1 = (N_Vector)(farg1); + arg2 = (N_Vector)(farg2); + arg3 = (N_Vector)(farg3); + N_VDiv_Pthreads(arg1,arg2,arg3); +} + + +SWIGEXPORT void _wrap_FN_VScale_Pthreads(double const *farg1, N_Vector farg2, N_Vector farg3) { + sunrealtype arg1 ; + N_Vector arg2 = (N_Vector) 0 ; + N_Vector arg3 = (N_Vector) 0 ; + + arg1 = (sunrealtype)(*farg1); + arg2 = (N_Vector)(farg2); + arg3 = (N_Vector)(farg3); + N_VScale_Pthreads(arg1,arg2,arg3); +} + + +SWIGEXPORT void _wrap_FN_VAbs_Pthreads(N_Vector farg1, N_Vector farg2) { + N_Vector arg1 = (N_Vector) 0 ; + N_Vector arg2 = (N_Vector) 0 ; + + arg1 = (N_Vector)(farg1); + arg2 = (N_Vector)(farg2); + N_VAbs_Pthreads(arg1,arg2); +} + + +SWIGEXPORT void _wrap_FN_VInv_Pthreads(N_Vector farg1, N_Vector farg2) { + N_Vector arg1 = (N_Vector) 0 ; + N_Vector arg2 = (N_Vector) 0 ; + + arg1 = (N_Vector)(farg1); + arg2 = (N_Vector)(farg2); + N_VInv_Pthreads(arg1,arg2); +} + + +SWIGEXPORT void _wrap_FN_VAddConst_Pthreads(N_Vector farg1, double const *farg2, N_Vector farg3) { + N_Vector arg1 = (N_Vector) 0 ; + sunrealtype arg2 ; + N_Vector arg3 = (N_Vector) 0 ; + + arg1 = (N_Vector)(farg1); + arg2 = (sunrealtype)(*farg2); + arg3 = (N_Vector)(farg3); + N_VAddConst_Pthreads(arg1,arg2,arg3); +} + + +SWIGEXPORT double _wrap_FN_VDotProd_Pthreads(N_Vector farg1, N_Vector farg2) { + double fresult ; + N_Vector arg1 = (N_Vector) 0 ; + N_Vector arg2 = (N_Vector) 0 ; + sunrealtype result; + + arg1 = (N_Vector)(farg1); + arg2 = (N_Vector)(farg2); + result = (sunrealtype)N_VDotProd_Pthreads(arg1,arg2); + fresult = (sunrealtype)(result); + return fresult; +} + + +SWIGEXPORT double _wrap_FN_VMaxNorm_Pthreads(N_Vector farg1) { + double fresult ; + N_Vector arg1 = (N_Vector) 0 ; + sunrealtype result; + + arg1 = (N_Vector)(farg1); + result = (sunrealtype)N_VMaxNorm_Pthreads(arg1); + fresult = (sunrealtype)(result); + return fresult; +} + + +SWIGEXPORT double _wrap_FN_VWrmsNorm_Pthreads(N_Vector farg1, N_Vector farg2) { + double fresult ; + N_Vector arg1 = (N_Vector) 0 ; + N_Vector arg2 = (N_Vector) 0 ; + sunrealtype result; + + arg1 = (N_Vector)(farg1); + arg2 = (N_Vector)(farg2); + result = (sunrealtype)N_VWrmsNorm_Pthreads(arg1,arg2); + fresult = (sunrealtype)(result); + return fresult; +} + + +SWIGEXPORT double _wrap_FN_VWrmsNormMask_Pthreads(N_Vector farg1, N_Vector farg2, N_Vector farg3) { + double fresult ; + N_Vector arg1 = (N_Vector) 0 ; + N_Vector arg2 = (N_Vector) 0 ; + N_Vector arg3 = (N_Vector) 0 ; + sunrealtype result; + + arg1 = (N_Vector)(farg1); + arg2 = (N_Vector)(farg2); + arg3 = (N_Vector)(farg3); + result = (sunrealtype)N_VWrmsNormMask_Pthreads(arg1,arg2,arg3); + fresult = (sunrealtype)(result); + return fresult; +} + + +SWIGEXPORT double _wrap_FN_VMin_Pthreads(N_Vector farg1) { + double fresult ; + N_Vector arg1 = (N_Vector) 0 ; + sunrealtype result; + + arg1 = (N_Vector)(farg1); + result = (sunrealtype)N_VMin_Pthreads(arg1); + fresult = (sunrealtype)(result); + return fresult; +} + + +SWIGEXPORT double _wrap_FN_VWL2Norm_Pthreads(N_Vector farg1, N_Vector farg2) { + double fresult ; + N_Vector arg1 = (N_Vector) 0 ; + N_Vector arg2 = (N_Vector) 0 ; + sunrealtype result; + + arg1 = (N_Vector)(farg1); + arg2 = (N_Vector)(farg2); + result = (sunrealtype)N_VWL2Norm_Pthreads(arg1,arg2); + fresult = (sunrealtype)(result); + return fresult; +} + + +SWIGEXPORT double _wrap_FN_VL1Norm_Pthreads(N_Vector farg1) { + double fresult ; + N_Vector arg1 = (N_Vector) 0 ; + sunrealtype result; + + arg1 = (N_Vector)(farg1); + result = (sunrealtype)N_VL1Norm_Pthreads(arg1); + fresult = (sunrealtype)(result); + return fresult; +} + + +SWIGEXPORT void _wrap_FN_VCompare_Pthreads(double const *farg1, N_Vector farg2, N_Vector farg3) { + sunrealtype arg1 ; + N_Vector arg2 = (N_Vector) 0 ; + N_Vector arg3 = (N_Vector) 0 ; + + arg1 = (sunrealtype)(*farg1); + arg2 = (N_Vector)(farg2); + arg3 = (N_Vector)(farg3); + N_VCompare_Pthreads(arg1,arg2,arg3); +} + + +SWIGEXPORT int _wrap_FN_VInvTest_Pthreads(N_Vector farg1, N_Vector farg2) { + int fresult ; + N_Vector arg1 = (N_Vector) 0 ; + N_Vector arg2 = (N_Vector) 0 ; + int result; + + arg1 = (N_Vector)(farg1); + arg2 = (N_Vector)(farg2); + result = (int)N_VInvTest_Pthreads(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FN_VConstrMask_Pthreads(N_Vector farg1, N_Vector farg2, N_Vector farg3) { + int fresult ; + N_Vector arg1 = (N_Vector) 0 ; + N_Vector arg2 = (N_Vector) 0 ; + N_Vector arg3 = (N_Vector) 0 ; + int result; + + arg1 = (N_Vector)(farg1); + arg2 = (N_Vector)(farg2); + arg3 = (N_Vector)(farg3); + result = (int)N_VConstrMask_Pthreads(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT double _wrap_FN_VMinQuotient_Pthreads(N_Vector farg1, N_Vector farg2) { + double fresult ; + N_Vector arg1 = (N_Vector) 0 ; + N_Vector arg2 = (N_Vector) 0 ; + sunrealtype result; + + arg1 = (N_Vector)(farg1); + arg2 = (N_Vector)(farg2); + result = (sunrealtype)N_VMinQuotient_Pthreads(arg1,arg2); + fresult = (sunrealtype)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FN_VLinearCombination_Pthreads(int const *farg1, double *farg2, void *farg3, N_Vector farg4) { + int fresult ; + int arg1 ; + sunrealtype *arg2 = (sunrealtype *) 0 ; + N_Vector *arg3 = (N_Vector *) 0 ; + N_Vector arg4 = (N_Vector) 0 ; + SUNErrCode result; + + arg1 = (int)(*farg1); + arg2 = (sunrealtype *)(farg2); + arg3 = (N_Vector *)(farg3); + arg4 = (N_Vector)(farg4); + result = (SUNErrCode)N_VLinearCombination_Pthreads(arg1,arg2,arg3,arg4); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FN_VScaleAddMulti_Pthreads(int const *farg1, double *farg2, N_Vector farg3, void *farg4, void *farg5) { + int fresult ; + int arg1 ; + sunrealtype *arg2 = (sunrealtype *) 0 ; + N_Vector arg3 = (N_Vector) 0 ; + N_Vector *arg4 = (N_Vector *) 0 ; + N_Vector *arg5 = (N_Vector *) 0 ; + SUNErrCode result; + + arg1 = (int)(*farg1); + arg2 = (sunrealtype *)(farg2); + arg3 = (N_Vector)(farg3); + arg4 = (N_Vector *)(farg4); + arg5 = (N_Vector *)(farg5); + result = (SUNErrCode)N_VScaleAddMulti_Pthreads(arg1,arg2,arg3,arg4,arg5); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FN_VDotProdMulti_Pthreads(int const *farg1, N_Vector farg2, void *farg3, double *farg4) { + int fresult ; + int arg1 ; + N_Vector arg2 = (N_Vector) 0 ; + N_Vector *arg3 = (N_Vector *) 0 ; + sunrealtype *arg4 = (sunrealtype *) 0 ; + SUNErrCode result; + + arg1 = (int)(*farg1); + arg2 = (N_Vector)(farg2); + arg3 = (N_Vector *)(farg3); + arg4 = (sunrealtype *)(farg4); + result = (SUNErrCode)N_VDotProdMulti_Pthreads(arg1,arg2,arg3,arg4); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FN_VLinearSumVectorArray_Pthreads(int const *farg1, double const *farg2, void *farg3, double const *farg4, void *farg5, void *farg6) { + int fresult ; + int arg1 ; + sunrealtype arg2 ; + N_Vector *arg3 = (N_Vector *) 0 ; + sunrealtype arg4 ; + N_Vector *arg5 = (N_Vector *) 0 ; + N_Vector *arg6 = (N_Vector *) 0 ; + SUNErrCode result; + + arg1 = (int)(*farg1); + arg2 = (sunrealtype)(*farg2); + arg3 = (N_Vector *)(farg3); + arg4 = (sunrealtype)(*farg4); + arg5 = (N_Vector *)(farg5); + arg6 = (N_Vector *)(farg6); + result = (SUNErrCode)N_VLinearSumVectorArray_Pthreads(arg1,arg2,arg3,arg4,arg5,arg6); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FN_VScaleVectorArray_Pthreads(int const *farg1, double *farg2, void *farg3, void *farg4) { + int fresult ; + int arg1 ; + sunrealtype *arg2 = (sunrealtype *) 0 ; + N_Vector *arg3 = (N_Vector *) 0 ; + N_Vector *arg4 = (N_Vector *) 0 ; + SUNErrCode result; + + arg1 = (int)(*farg1); + arg2 = (sunrealtype *)(farg2); + arg3 = (N_Vector *)(farg3); + arg4 = (N_Vector *)(farg4); + result = (SUNErrCode)N_VScaleVectorArray_Pthreads(arg1,arg2,arg3,arg4); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FN_VConstVectorArray_Pthreads(int const *farg1, double const *farg2, void *farg3) { + int fresult ; + int arg1 ; + sunrealtype arg2 ; + N_Vector *arg3 = (N_Vector *) 0 ; + SUNErrCode result; + + arg1 = (int)(*farg1); + arg2 = (sunrealtype)(*farg2); + arg3 = (N_Vector *)(farg3); + result = (SUNErrCode)N_VConstVectorArray_Pthreads(arg1,arg2,arg3); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FN_VWrmsNormVectorArray_Pthreads(int const *farg1, void *farg2, void *farg3, double *farg4) { + int fresult ; + int arg1 ; + N_Vector *arg2 = (N_Vector *) 0 ; + N_Vector *arg3 = (N_Vector *) 0 ; + sunrealtype *arg4 = (sunrealtype *) 0 ; + SUNErrCode result; + + arg1 = (int)(*farg1); + arg2 = (N_Vector *)(farg2); + arg3 = (N_Vector *)(farg3); + arg4 = (sunrealtype *)(farg4); + result = (SUNErrCode)N_VWrmsNormVectorArray_Pthreads(arg1,arg2,arg3,arg4); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FN_VWrmsNormMaskVectorArray_Pthreads(int const *farg1, void *farg2, void *farg3, N_Vector farg4, double *farg5) { + int fresult ; + int arg1 ; + N_Vector *arg2 = (N_Vector *) 0 ; + N_Vector *arg3 = (N_Vector *) 0 ; + N_Vector arg4 = (N_Vector) 0 ; + sunrealtype *arg5 = (sunrealtype *) 0 ; + SUNErrCode result; + + arg1 = (int)(*farg1); + arg2 = (N_Vector *)(farg2); + arg3 = (N_Vector *)(farg3); + arg4 = (N_Vector)(farg4); + arg5 = (sunrealtype *)(farg5); + result = (SUNErrCode)N_VWrmsNormMaskVectorArray_Pthreads(arg1,arg2,arg3,arg4,arg5); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT double _wrap_FN_VWSqrSumLocal_Pthreads(N_Vector farg1, N_Vector farg2) { + double fresult ; + N_Vector arg1 = (N_Vector) 0 ; + N_Vector arg2 = (N_Vector) 0 ; + sunrealtype result; + + arg1 = (N_Vector)(farg1); + arg2 = (N_Vector)(farg2); + result = (sunrealtype)N_VWSqrSumLocal_Pthreads(arg1,arg2); + fresult = (sunrealtype)(result); + return fresult; +} + + +SWIGEXPORT double _wrap_FN_VWSqrSumMaskLocal_Pthreads(N_Vector farg1, N_Vector farg2, N_Vector farg3) { + double fresult ; + N_Vector arg1 = (N_Vector) 0 ; + N_Vector arg2 = (N_Vector) 0 ; + N_Vector arg3 = (N_Vector) 0 ; + sunrealtype result; + + arg1 = (N_Vector)(farg1); + arg2 = (N_Vector)(farg2); + arg3 = (N_Vector)(farg3); + result = (sunrealtype)N_VWSqrSumMaskLocal_Pthreads(arg1,arg2,arg3); + fresult = (sunrealtype)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FN_VBufSize_Pthreads(N_Vector farg1, int32_t *farg2) { + int fresult ; + N_Vector arg1 = (N_Vector) 0 ; + sunindextype *arg2 = (sunindextype *) 0 ; + SUNErrCode result; + + arg1 = (N_Vector)(farg1); + arg2 = (sunindextype *)(farg2); + result = (SUNErrCode)N_VBufSize_Pthreads(arg1,arg2); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FN_VBufPack_Pthreads(N_Vector farg1, void *farg2) { + int fresult ; + N_Vector arg1 = (N_Vector) 0 ; + void *arg2 = (void *) 0 ; + SUNErrCode result; + + arg1 = (N_Vector)(farg1); + arg2 = (void *)(farg2); + result = (SUNErrCode)N_VBufPack_Pthreads(arg1,arg2); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FN_VBufUnpack_Pthreads(N_Vector farg1, void *farg2) { + int fresult ; + N_Vector arg1 = (N_Vector) 0 ; + void *arg2 = (void *) 0 ; + SUNErrCode result; + + arg1 = (N_Vector)(farg1); + arg2 = (void *)(farg2); + result = (SUNErrCode)N_VBufUnpack_Pthreads(arg1,arg2); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FN_VEnableFusedOps_Pthreads(N_Vector farg1, int const *farg2) { + int fresult ; + N_Vector arg1 = (N_Vector) 0 ; + int arg2 ; + SUNErrCode result; + + arg1 = (N_Vector)(farg1); + arg2 = (int)(*farg2); + result = (SUNErrCode)N_VEnableFusedOps_Pthreads(arg1,arg2); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FN_VEnableLinearCombination_Pthreads(N_Vector farg1, int const *farg2) { + int fresult ; + N_Vector arg1 = (N_Vector) 0 ; + int arg2 ; + SUNErrCode result; + + arg1 = (N_Vector)(farg1); + arg2 = (int)(*farg2); + result = (SUNErrCode)N_VEnableLinearCombination_Pthreads(arg1,arg2); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FN_VEnableScaleAddMulti_Pthreads(N_Vector farg1, int const *farg2) { + int fresult ; + N_Vector arg1 = (N_Vector) 0 ; + int arg2 ; + SUNErrCode result; + + arg1 = (N_Vector)(farg1); + arg2 = (int)(*farg2); + result = (SUNErrCode)N_VEnableScaleAddMulti_Pthreads(arg1,arg2); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FN_VEnableDotProdMulti_Pthreads(N_Vector farg1, int const *farg2) { + int fresult ; + N_Vector arg1 = (N_Vector) 0 ; + int arg2 ; + SUNErrCode result; + + arg1 = (N_Vector)(farg1); + arg2 = (int)(*farg2); + result = (SUNErrCode)N_VEnableDotProdMulti_Pthreads(arg1,arg2); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FN_VEnableLinearSumVectorArray_Pthreads(N_Vector farg1, int const *farg2) { + int fresult ; + N_Vector arg1 = (N_Vector) 0 ; + int arg2 ; + SUNErrCode result; + + arg1 = (N_Vector)(farg1); + arg2 = (int)(*farg2); + result = (SUNErrCode)N_VEnableLinearSumVectorArray_Pthreads(arg1,arg2); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FN_VEnableScaleVectorArray_Pthreads(N_Vector farg1, int const *farg2) { + int fresult ; + N_Vector arg1 = (N_Vector) 0 ; + int arg2 ; + SUNErrCode result; + + arg1 = (N_Vector)(farg1); + arg2 = (int)(*farg2); + result = (SUNErrCode)N_VEnableScaleVectorArray_Pthreads(arg1,arg2); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FN_VEnableConstVectorArray_Pthreads(N_Vector farg1, int const *farg2) { + int fresult ; + N_Vector arg1 = (N_Vector) 0 ; + int arg2 ; + SUNErrCode result; + + arg1 = (N_Vector)(farg1); + arg2 = (int)(*farg2); + result = (SUNErrCode)N_VEnableConstVectorArray_Pthreads(arg1,arg2); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FN_VEnableWrmsNormVectorArray_Pthreads(N_Vector farg1, int const *farg2) { + int fresult ; + N_Vector arg1 = (N_Vector) 0 ; + int arg2 ; + SUNErrCode result; + + arg1 = (N_Vector)(farg1); + arg2 = (int)(*farg2); + result = (SUNErrCode)N_VEnableWrmsNormVectorArray_Pthreads(arg1,arg2); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FN_VEnableWrmsNormMaskVectorArray_Pthreads(N_Vector farg1, int const *farg2) { + int fresult ; + N_Vector arg1 = (N_Vector) 0 ; + int arg2 ; + SUNErrCode result; + + arg1 = (N_Vector)(farg1); + arg2 = (int)(*farg2); + result = (SUNErrCode)N_VEnableWrmsNormMaskVectorArray_Pthreads(arg1,arg2); + fresult = (SUNErrCode)(result); + return fresult; +} + + + +SWIGEXPORT double * _wrap_FN_VGetArrayPointer_Pthreads(N_Vector farg1) { + double * fresult ; + N_Vector arg1 = (N_Vector) 0 ; + sunrealtype *result = 0 ; + + arg1 = (N_Vector)(farg1); + result = (sunrealtype *)N_VGetArrayPointer_Pthreads(arg1); + fresult = result; + return fresult; +} + + diff --git a/src/nvector/pthreads/fmod_int32/fnvector_pthreads_mod.f90 b/src/nvector/pthreads/fmod_int32/fnvector_pthreads_mod.f90 new file mode 100644 index 0000000000..fb2af230a5 --- /dev/null +++ b/src/nvector/pthreads/fmod_int32/fnvector_pthreads_mod.f90 @@ -0,0 +1,1461 @@ +! This file was automatically generated by SWIG (http://www.swig.org). +! Version 4.0.0 +! +! Do not make changes to this file unless you know what you are doing--modify +! the SWIG interface file instead. + +! --------------------------------------------------------------- +! Programmer(s): Auto-generated by swig. +! --------------------------------------------------------------- +! SUNDIALS Copyright Start +! Copyright (c) 2002-2024, Lawrence Livermore National Security +! and Southern Methodist University. +! All rights reserved. +! +! See the top-level LICENSE and NOTICE files for details. +! +! SPDX-License-Identifier: BSD-3-Clause +! SUNDIALS Copyright End +! --------------------------------------------------------------- + +module fnvector_pthreads_mod + use, intrinsic :: ISO_C_BINDING + use fsundials_core_mod + implicit none + private + + ! DECLARATION CONSTRUCTS + public :: FN_VNew_Pthreads + public :: FN_VNewEmpty_Pthreads + public :: FN_VMake_Pthreads + public :: FN_VGetLength_Pthreads + public :: FN_VPrint_Pthreads + public :: FN_VPrintFile_Pthreads + public :: FN_VGetVectorID_Pthreads + public :: FN_VCloneEmpty_Pthreads + public :: FN_VClone_Pthreads + public :: FN_VDestroy_Pthreads + public :: FN_VSpace_Pthreads + public :: FN_VSetArrayPointer_Pthreads + public :: FN_VLinearSum_Pthreads + public :: FN_VConst_Pthreads + public :: FN_VProd_Pthreads + public :: FN_VDiv_Pthreads + public :: FN_VScale_Pthreads + public :: FN_VAbs_Pthreads + public :: FN_VInv_Pthreads + public :: FN_VAddConst_Pthreads + public :: FN_VDotProd_Pthreads + public :: FN_VMaxNorm_Pthreads + public :: FN_VWrmsNorm_Pthreads + public :: FN_VWrmsNormMask_Pthreads + public :: FN_VMin_Pthreads + public :: FN_VWL2Norm_Pthreads + public :: FN_VL1Norm_Pthreads + public :: FN_VCompare_Pthreads + public :: FN_VInvTest_Pthreads + public :: FN_VConstrMask_Pthreads + public :: FN_VMinQuotient_Pthreads + public :: FN_VLinearCombination_Pthreads + public :: FN_VScaleAddMulti_Pthreads + public :: FN_VDotProdMulti_Pthreads + public :: FN_VLinearSumVectorArray_Pthreads + public :: FN_VScaleVectorArray_Pthreads + public :: FN_VConstVectorArray_Pthreads + public :: FN_VWrmsNormVectorArray_Pthreads + public :: FN_VWrmsNormMaskVectorArray_Pthreads + public :: FN_VWSqrSumLocal_Pthreads + public :: FN_VWSqrSumMaskLocal_Pthreads + public :: FN_VBufSize_Pthreads + public :: FN_VBufPack_Pthreads + public :: FN_VBufUnpack_Pthreads + public :: FN_VEnableFusedOps_Pthreads + public :: FN_VEnableLinearCombination_Pthreads + public :: FN_VEnableScaleAddMulti_Pthreads + public :: FN_VEnableDotProdMulti_Pthreads + public :: FN_VEnableLinearSumVectorArray_Pthreads + public :: FN_VEnableScaleVectorArray_Pthreads + public :: FN_VEnableConstVectorArray_Pthreads + public :: FN_VEnableWrmsNormVectorArray_Pthreads + public :: FN_VEnableWrmsNormMaskVectorArray_Pthreads + + public :: FN_VGetArrayPointer_Pthreads + + +! WRAPPER DECLARATIONS +interface +function swigc_FN_VNew_Pthreads(farg1, farg2, farg3) & +bind(C, name="_wrap_FN_VNew_Pthreads") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +integer(C_INT32_T), intent(in) :: farg1 +integer(C_INT), intent(in) :: farg2 +type(C_PTR), value :: farg3 +type(C_PTR) :: fresult +end function + +function swigc_FN_VNewEmpty_Pthreads(farg1, farg2, farg3) & +bind(C, name="_wrap_FN_VNewEmpty_Pthreads") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +integer(C_INT32_T), intent(in) :: farg1 +integer(C_INT), intent(in) :: farg2 +type(C_PTR), value :: farg3 +type(C_PTR) :: fresult +end function + +function swigc_FN_VMake_Pthreads(farg1, farg2, farg3, farg4) & +bind(C, name="_wrap_FN_VMake_Pthreads") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +integer(C_INT32_T), intent(in) :: farg1 +integer(C_INT), intent(in) :: farg2 +type(C_PTR), value :: farg3 +type(C_PTR), value :: farg4 +type(C_PTR) :: fresult +end function + +function swigc_FN_VGetLength_Pthreads(farg1) & +bind(C, name="_wrap_FN_VGetLength_Pthreads") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT32_T) :: fresult +end function + +subroutine swigc_FN_VPrint_Pthreads(farg1) & +bind(C, name="_wrap_FN_VPrint_Pthreads") +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +end subroutine + +subroutine swigc_FN_VPrintFile_Pthreads(farg1, farg2) & +bind(C, name="_wrap_FN_VPrintFile_Pthreads") +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +end subroutine + +function swigc_FN_VGetVectorID_Pthreads(farg1) & +bind(C, name="_wrap_FN_VGetVectorID_Pthreads") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT) :: fresult +end function + +function swigc_FN_VCloneEmpty_Pthreads(farg1) & +bind(C, name="_wrap_FN_VCloneEmpty_Pthreads") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR) :: fresult +end function + +function swigc_FN_VClone_Pthreads(farg1) & +bind(C, name="_wrap_FN_VClone_Pthreads") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR) :: fresult +end function + +subroutine swigc_FN_VDestroy_Pthreads(farg1) & +bind(C, name="_wrap_FN_VDestroy_Pthreads") +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +end subroutine + +subroutine swigc_FN_VSpace_Pthreads(farg1, farg2, farg3) & +bind(C, name="_wrap_FN_VSpace_Pthreads") +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +end subroutine + +subroutine swigc_FN_VSetArrayPointer_Pthreads(farg1, farg2) & +bind(C, name="_wrap_FN_VSetArrayPointer_Pthreads") +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +end subroutine + +subroutine swigc_FN_VLinearSum_Pthreads(farg1, farg2, farg3, farg4, farg5) & +bind(C, name="_wrap_FN_VLinearSum_Pthreads") +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE), intent(in) :: farg1 +type(C_PTR), value :: farg2 +real(C_DOUBLE), intent(in) :: farg3 +type(C_PTR), value :: farg4 +type(C_PTR), value :: farg5 +end subroutine + +subroutine swigc_FN_VConst_Pthreads(farg1, farg2) & +bind(C, name="_wrap_FN_VConst_Pthreads") +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE), intent(in) :: farg1 +type(C_PTR), value :: farg2 +end subroutine + +subroutine swigc_FN_VProd_Pthreads(farg1, farg2, farg3) & +bind(C, name="_wrap_FN_VProd_Pthreads") +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +end subroutine + +subroutine swigc_FN_VDiv_Pthreads(farg1, farg2, farg3) & +bind(C, name="_wrap_FN_VDiv_Pthreads") +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +end subroutine + +subroutine swigc_FN_VScale_Pthreads(farg1, farg2, farg3) & +bind(C, name="_wrap_FN_VScale_Pthreads") +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE), intent(in) :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +end subroutine + +subroutine swigc_FN_VAbs_Pthreads(farg1, farg2) & +bind(C, name="_wrap_FN_VAbs_Pthreads") +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +end subroutine + +subroutine swigc_FN_VInv_Pthreads(farg1, farg2) & +bind(C, name="_wrap_FN_VInv_Pthreads") +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +end subroutine + +subroutine swigc_FN_VAddConst_Pthreads(farg1, farg2, farg3) & +bind(C, name="_wrap_FN_VAddConst_Pthreads") +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +type(C_PTR), value :: farg3 +end subroutine + +function swigc_FN_VDotProd_Pthreads(farg1, farg2) & +bind(C, name="_wrap_FN_VDotProd_Pthreads") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +real(C_DOUBLE) :: fresult +end function + +function swigc_FN_VMaxNorm_Pthreads(farg1) & +bind(C, name="_wrap_FN_VMaxNorm_Pthreads") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE) :: fresult +end function + +function swigc_FN_VWrmsNorm_Pthreads(farg1, farg2) & +bind(C, name="_wrap_FN_VWrmsNorm_Pthreads") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +real(C_DOUBLE) :: fresult +end function + +function swigc_FN_VWrmsNormMask_Pthreads(farg1, farg2, farg3) & +bind(C, name="_wrap_FN_VWrmsNormMask_Pthreads") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +real(C_DOUBLE) :: fresult +end function + +function swigc_FN_VMin_Pthreads(farg1) & +bind(C, name="_wrap_FN_VMin_Pthreads") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE) :: fresult +end function + +function swigc_FN_VWL2Norm_Pthreads(farg1, farg2) & +bind(C, name="_wrap_FN_VWL2Norm_Pthreads") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +real(C_DOUBLE) :: fresult +end function + +function swigc_FN_VL1Norm_Pthreads(farg1) & +bind(C, name="_wrap_FN_VL1Norm_Pthreads") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE) :: fresult +end function + +subroutine swigc_FN_VCompare_Pthreads(farg1, farg2, farg3) & +bind(C, name="_wrap_FN_VCompare_Pthreads") +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE), intent(in) :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +end subroutine + +function swigc_FN_VInvTest_Pthreads(farg1, farg2) & +bind(C, name="_wrap_FN_VInvTest_Pthreads") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FN_VConstrMask_Pthreads(farg1, farg2, farg3) & +bind(C, name="_wrap_FN_VConstrMask_Pthreads") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FN_VMinQuotient_Pthreads(farg1, farg2) & +bind(C, name="_wrap_FN_VMinQuotient_Pthreads") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +real(C_DOUBLE) :: fresult +end function + +function swigc_FN_VLinearCombination_Pthreads(farg1, farg2, farg3, farg4) & +bind(C, name="_wrap_FN_VLinearCombination_Pthreads") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +integer(C_INT), intent(in) :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +type(C_PTR), value :: farg4 +integer(C_INT) :: fresult +end function + +function swigc_FN_VScaleAddMulti_Pthreads(farg1, farg2, farg3, farg4, farg5) & +bind(C, name="_wrap_FN_VScaleAddMulti_Pthreads") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +integer(C_INT), intent(in) :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +type(C_PTR), value :: farg4 +type(C_PTR), value :: farg5 +integer(C_INT) :: fresult +end function + +function swigc_FN_VDotProdMulti_Pthreads(farg1, farg2, farg3, farg4) & +bind(C, name="_wrap_FN_VDotProdMulti_Pthreads") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +integer(C_INT), intent(in) :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +type(C_PTR), value :: farg4 +integer(C_INT) :: fresult +end function + +function swigc_FN_VLinearSumVectorArray_Pthreads(farg1, farg2, farg3, farg4, farg5, farg6) & +bind(C, name="_wrap_FN_VLinearSumVectorArray_Pthreads") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +integer(C_INT), intent(in) :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +type(C_PTR), value :: farg3 +real(C_DOUBLE), intent(in) :: farg4 +type(C_PTR), value :: farg5 +type(C_PTR), value :: farg6 +integer(C_INT) :: fresult +end function + +function swigc_FN_VScaleVectorArray_Pthreads(farg1, farg2, farg3, farg4) & +bind(C, name="_wrap_FN_VScaleVectorArray_Pthreads") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +integer(C_INT), intent(in) :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +type(C_PTR), value :: farg4 +integer(C_INT) :: fresult +end function + +function swigc_FN_VConstVectorArray_Pthreads(farg1, farg2, farg3) & +bind(C, name="_wrap_FN_VConstVectorArray_Pthreads") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +integer(C_INT), intent(in) :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FN_VWrmsNormVectorArray_Pthreads(farg1, farg2, farg3, farg4) & +bind(C, name="_wrap_FN_VWrmsNormVectorArray_Pthreads") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +integer(C_INT), intent(in) :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +type(C_PTR), value :: farg4 +integer(C_INT) :: fresult +end function + +function swigc_FN_VWrmsNormMaskVectorArray_Pthreads(farg1, farg2, farg3, farg4, farg5) & +bind(C, name="_wrap_FN_VWrmsNormMaskVectorArray_Pthreads") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +integer(C_INT), intent(in) :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +type(C_PTR), value :: farg4 +type(C_PTR), value :: farg5 +integer(C_INT) :: fresult +end function + +function swigc_FN_VWSqrSumLocal_Pthreads(farg1, farg2) & +bind(C, name="_wrap_FN_VWSqrSumLocal_Pthreads") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +real(C_DOUBLE) :: fresult +end function + +function swigc_FN_VWSqrSumMaskLocal_Pthreads(farg1, farg2, farg3) & +bind(C, name="_wrap_FN_VWSqrSumMaskLocal_Pthreads") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +real(C_DOUBLE) :: fresult +end function + +function swigc_FN_VBufSize_Pthreads(farg1, farg2) & +bind(C, name="_wrap_FN_VBufSize_Pthreads") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FN_VBufPack_Pthreads(farg1, farg2) & +bind(C, name="_wrap_FN_VBufPack_Pthreads") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FN_VBufUnpack_Pthreads(farg1, farg2) & +bind(C, name="_wrap_FN_VBufUnpack_Pthreads") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FN_VEnableFusedOps_Pthreads(farg1, farg2) & +bind(C, name="_wrap_FN_VEnableFusedOps_Pthreads") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FN_VEnableLinearCombination_Pthreads(farg1, farg2) & +bind(C, name="_wrap_FN_VEnableLinearCombination_Pthreads") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FN_VEnableScaleAddMulti_Pthreads(farg1, farg2) & +bind(C, name="_wrap_FN_VEnableScaleAddMulti_Pthreads") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FN_VEnableDotProdMulti_Pthreads(farg1, farg2) & +bind(C, name="_wrap_FN_VEnableDotProdMulti_Pthreads") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FN_VEnableLinearSumVectorArray_Pthreads(farg1, farg2) & +bind(C, name="_wrap_FN_VEnableLinearSumVectorArray_Pthreads") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FN_VEnableScaleVectorArray_Pthreads(farg1, farg2) & +bind(C, name="_wrap_FN_VEnableScaleVectorArray_Pthreads") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FN_VEnableConstVectorArray_Pthreads(farg1, farg2) & +bind(C, name="_wrap_FN_VEnableConstVectorArray_Pthreads") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FN_VEnableWrmsNormVectorArray_Pthreads(farg1, farg2) & +bind(C, name="_wrap_FN_VEnableWrmsNormVectorArray_Pthreads") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FN_VEnableWrmsNormMaskVectorArray_Pthreads(farg1, farg2) & +bind(C, name="_wrap_FN_VEnableWrmsNormMaskVectorArray_Pthreads") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + + +function swigc_FN_VGetArrayPointer_Pthreads(farg1) & +bind(C, name="_wrap_FN_VGetArrayPointer_Pthreads") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR) :: fresult +end function + +end interface + + +contains + ! MODULE SUBPROGRAMS +function FN_VNew_Pthreads(vec_length, n_threads, sunctx) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +type(N_Vector), pointer :: swig_result +integer(C_INT32_T), intent(in) :: vec_length +integer(C_INT), intent(in) :: n_threads +type(C_PTR) :: sunctx +type(C_PTR) :: fresult +integer(C_INT32_T) :: farg1 +integer(C_INT) :: farg2 +type(C_PTR) :: farg3 + +farg1 = vec_length +farg2 = n_threads +farg3 = sunctx +fresult = swigc_FN_VNew_Pthreads(farg1, farg2, farg3) +call c_f_pointer(fresult, swig_result) +end function + +function FN_VNewEmpty_Pthreads(vec_length, n_threads, sunctx) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +type(N_Vector), pointer :: swig_result +integer(C_INT32_T), intent(in) :: vec_length +integer(C_INT), intent(in) :: n_threads +type(C_PTR) :: sunctx +type(C_PTR) :: fresult +integer(C_INT32_T) :: farg1 +integer(C_INT) :: farg2 +type(C_PTR) :: farg3 + +farg1 = vec_length +farg2 = n_threads +farg3 = sunctx +fresult = swigc_FN_VNewEmpty_Pthreads(farg1, farg2, farg3) +call c_f_pointer(fresult, swig_result) +end function + +function FN_VMake_Pthreads(vec_length, n_threads, v_data, sunctx) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +type(N_Vector), pointer :: swig_result +integer(C_INT32_T), intent(in) :: vec_length +integer(C_INT), intent(in) :: n_threads +real(C_DOUBLE), dimension(*), target, intent(inout) :: v_data +type(C_PTR) :: sunctx +type(C_PTR) :: fresult +integer(C_INT32_T) :: farg1 +integer(C_INT) :: farg2 +type(C_PTR) :: farg3 +type(C_PTR) :: farg4 + +farg1 = vec_length +farg2 = n_threads +farg3 = c_loc(v_data(1)) +farg4 = sunctx +fresult = swigc_FN_VMake_Pthreads(farg1, farg2, farg3, farg4) +call c_f_pointer(fresult, swig_result) +end function + +function FN_VGetLength_Pthreads(v) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT32_T) :: swig_result +type(N_Vector), target, intent(inout) :: v +integer(C_INT32_T) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(v) +fresult = swigc_FN_VGetLength_Pthreads(farg1) +swig_result = fresult +end function + +subroutine FN_VPrint_Pthreads(v) +use, intrinsic :: ISO_C_BINDING +type(N_Vector), target, intent(inout) :: v +type(C_PTR) :: farg1 + +farg1 = c_loc(v) +call swigc_FN_VPrint_Pthreads(farg1) +end subroutine + +subroutine FN_VPrintFile_Pthreads(v, outfile) +use, intrinsic :: ISO_C_BINDING +type(N_Vector), target, intent(inout) :: v +type(C_PTR) :: outfile +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = c_loc(v) +farg2 = outfile +call swigc_FN_VPrintFile_Pthreads(farg1, farg2) +end subroutine + +function FN_VGetVectorID_Pthreads(v) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(N_Vector_ID) :: swig_result +type(N_Vector), target, intent(inout) :: v +integer(C_INT) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(v) +fresult = swigc_FN_VGetVectorID_Pthreads(farg1) +swig_result = fresult +end function + +function FN_VCloneEmpty_Pthreads(w) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +type(N_Vector), pointer :: swig_result +type(N_Vector), target, intent(inout) :: w +type(C_PTR) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(w) +fresult = swigc_FN_VCloneEmpty_Pthreads(farg1) +call c_f_pointer(fresult, swig_result) +end function + +function FN_VClone_Pthreads(w) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +type(N_Vector), pointer :: swig_result +type(N_Vector), target, intent(inout) :: w +type(C_PTR) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(w) +fresult = swigc_FN_VClone_Pthreads(farg1) +call c_f_pointer(fresult, swig_result) +end function + +subroutine FN_VDestroy_Pthreads(v) +use, intrinsic :: ISO_C_BINDING +type(N_Vector), target, intent(inout) :: v +type(C_PTR) :: farg1 + +farg1 = c_loc(v) +call swigc_FN_VDestroy_Pthreads(farg1) +end subroutine + +subroutine FN_VSpace_Pthreads(v, lrw, liw) +use, intrinsic :: ISO_C_BINDING +type(N_Vector), target, intent(inout) :: v +integer(C_INT32_T), dimension(*), target, intent(inout) :: lrw +integer(C_INT32_T), dimension(*), target, intent(inout) :: liw +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = c_loc(v) +farg2 = c_loc(lrw(1)) +farg3 = c_loc(liw(1)) +call swigc_FN_VSpace_Pthreads(farg1, farg2, farg3) +end subroutine + +subroutine FN_VSetArrayPointer_Pthreads(v_data, v) +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE), dimension(*), target, intent(inout) :: v_data +type(N_Vector), target, intent(inout) :: v +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = c_loc(v_data(1)) +farg2 = c_loc(v) +call swigc_FN_VSetArrayPointer_Pthreads(farg1, farg2) +end subroutine + +subroutine FN_VLinearSum_Pthreads(a, x, b, y, z) +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE), intent(in) :: a +type(N_Vector), target, intent(inout) :: x +real(C_DOUBLE), intent(in) :: b +type(N_Vector), target, intent(inout) :: y +type(N_Vector), target, intent(inout) :: z +real(C_DOUBLE) :: farg1 +type(C_PTR) :: farg2 +real(C_DOUBLE) :: farg3 +type(C_PTR) :: farg4 +type(C_PTR) :: farg5 + +farg1 = a +farg2 = c_loc(x) +farg3 = b +farg4 = c_loc(y) +farg5 = c_loc(z) +call swigc_FN_VLinearSum_Pthreads(farg1, farg2, farg3, farg4, farg5) +end subroutine + +subroutine FN_VConst_Pthreads(c, z) +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE), intent(in) :: c +type(N_Vector), target, intent(inout) :: z +real(C_DOUBLE) :: farg1 +type(C_PTR) :: farg2 + +farg1 = c +farg2 = c_loc(z) +call swigc_FN_VConst_Pthreads(farg1, farg2) +end subroutine + +subroutine FN_VProd_Pthreads(x, y, z) +use, intrinsic :: ISO_C_BINDING +type(N_Vector), target, intent(inout) :: x +type(N_Vector), target, intent(inout) :: y +type(N_Vector), target, intent(inout) :: z +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = c_loc(x) +farg2 = c_loc(y) +farg3 = c_loc(z) +call swigc_FN_VProd_Pthreads(farg1, farg2, farg3) +end subroutine + +subroutine FN_VDiv_Pthreads(x, y, z) +use, intrinsic :: ISO_C_BINDING +type(N_Vector), target, intent(inout) :: x +type(N_Vector), target, intent(inout) :: y +type(N_Vector), target, intent(inout) :: z +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = c_loc(x) +farg2 = c_loc(y) +farg3 = c_loc(z) +call swigc_FN_VDiv_Pthreads(farg1, farg2, farg3) +end subroutine + +subroutine FN_VScale_Pthreads(c, x, z) +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE), intent(in) :: c +type(N_Vector), target, intent(inout) :: x +type(N_Vector), target, intent(inout) :: z +real(C_DOUBLE) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = c +farg2 = c_loc(x) +farg3 = c_loc(z) +call swigc_FN_VScale_Pthreads(farg1, farg2, farg3) +end subroutine + +subroutine FN_VAbs_Pthreads(x, z) +use, intrinsic :: ISO_C_BINDING +type(N_Vector), target, intent(inout) :: x +type(N_Vector), target, intent(inout) :: z +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = c_loc(x) +farg2 = c_loc(z) +call swigc_FN_VAbs_Pthreads(farg1, farg2) +end subroutine + +subroutine FN_VInv_Pthreads(x, z) +use, intrinsic :: ISO_C_BINDING +type(N_Vector), target, intent(inout) :: x +type(N_Vector), target, intent(inout) :: z +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = c_loc(x) +farg2 = c_loc(z) +call swigc_FN_VInv_Pthreads(farg1, farg2) +end subroutine + +subroutine FN_VAddConst_Pthreads(x, b, z) +use, intrinsic :: ISO_C_BINDING +type(N_Vector), target, intent(inout) :: x +real(C_DOUBLE), intent(in) :: b +type(N_Vector), target, intent(inout) :: z +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 +type(C_PTR) :: farg3 + +farg1 = c_loc(x) +farg2 = b +farg3 = c_loc(z) +call swigc_FN_VAddConst_Pthreads(farg1, farg2, farg3) +end subroutine + +function FN_VDotProd_Pthreads(x, y) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE) :: swig_result +type(N_Vector), target, intent(inout) :: x +type(N_Vector), target, intent(inout) :: y +real(C_DOUBLE) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = c_loc(x) +farg2 = c_loc(y) +fresult = swigc_FN_VDotProd_Pthreads(farg1, farg2) +swig_result = fresult +end function + +function FN_VMaxNorm_Pthreads(x) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE) :: swig_result +type(N_Vector), target, intent(inout) :: x +real(C_DOUBLE) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(x) +fresult = swigc_FN_VMaxNorm_Pthreads(farg1) +swig_result = fresult +end function + +function FN_VWrmsNorm_Pthreads(x, w) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE) :: swig_result +type(N_Vector), target, intent(inout) :: x +type(N_Vector), target, intent(inout) :: w +real(C_DOUBLE) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = c_loc(x) +farg2 = c_loc(w) +fresult = swigc_FN_VWrmsNorm_Pthreads(farg1, farg2) +swig_result = fresult +end function + +function FN_VWrmsNormMask_Pthreads(x, w, id) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE) :: swig_result +type(N_Vector), target, intent(inout) :: x +type(N_Vector), target, intent(inout) :: w +type(N_Vector), target, intent(inout) :: id +real(C_DOUBLE) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = c_loc(x) +farg2 = c_loc(w) +farg3 = c_loc(id) +fresult = swigc_FN_VWrmsNormMask_Pthreads(farg1, farg2, farg3) +swig_result = fresult +end function + +function FN_VMin_Pthreads(x) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE) :: swig_result +type(N_Vector), target, intent(inout) :: x +real(C_DOUBLE) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(x) +fresult = swigc_FN_VMin_Pthreads(farg1) +swig_result = fresult +end function + +function FN_VWL2Norm_Pthreads(x, w) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE) :: swig_result +type(N_Vector), target, intent(inout) :: x +type(N_Vector), target, intent(inout) :: w +real(C_DOUBLE) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = c_loc(x) +farg2 = c_loc(w) +fresult = swigc_FN_VWL2Norm_Pthreads(farg1, farg2) +swig_result = fresult +end function + +function FN_VL1Norm_Pthreads(x) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE) :: swig_result +type(N_Vector), target, intent(inout) :: x +real(C_DOUBLE) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(x) +fresult = swigc_FN_VL1Norm_Pthreads(farg1) +swig_result = fresult +end function + +subroutine FN_VCompare_Pthreads(c, x, z) +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE), intent(in) :: c +type(N_Vector), target, intent(inout) :: x +type(N_Vector), target, intent(inout) :: z +real(C_DOUBLE) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = c +farg2 = c_loc(x) +farg3 = c_loc(z) +call swigc_FN_VCompare_Pthreads(farg1, farg2, farg3) +end subroutine + +function FN_VInvTest_Pthreads(x, z) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(N_Vector), target, intent(inout) :: x +type(N_Vector), target, intent(inout) :: z +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = c_loc(x) +farg2 = c_loc(z) +fresult = swigc_FN_VInvTest_Pthreads(farg1, farg2) +swig_result = fresult +end function + +function FN_VConstrMask_Pthreads(c, x, m) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(N_Vector), target, intent(inout) :: c +type(N_Vector), target, intent(inout) :: x +type(N_Vector), target, intent(inout) :: m +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = c_loc(c) +farg2 = c_loc(x) +farg3 = c_loc(m) +fresult = swigc_FN_VConstrMask_Pthreads(farg1, farg2, farg3) +swig_result = fresult +end function + +function FN_VMinQuotient_Pthreads(num, denom) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE) :: swig_result +type(N_Vector), target, intent(inout) :: num +type(N_Vector), target, intent(inout) :: denom +real(C_DOUBLE) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = c_loc(num) +farg2 = c_loc(denom) +fresult = swigc_FN_VMinQuotient_Pthreads(farg1, farg2) +swig_result = fresult +end function + +function FN_VLinearCombination_Pthreads(nvec, c, x, z) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +integer(C_INT), intent(in) :: nvec +real(C_DOUBLE), dimension(*), target, intent(inout) :: c +type(C_PTR) :: x +type(N_Vector), target, intent(inout) :: z +integer(C_INT) :: fresult +integer(C_INT) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 +type(C_PTR) :: farg4 + +farg1 = nvec +farg2 = c_loc(c(1)) +farg3 = x +farg4 = c_loc(z) +fresult = swigc_FN_VLinearCombination_Pthreads(farg1, farg2, farg3, farg4) +swig_result = fresult +end function + +function FN_VScaleAddMulti_Pthreads(nvec, a, x, y, z) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +integer(C_INT), intent(in) :: nvec +real(C_DOUBLE), dimension(*), target, intent(inout) :: a +type(N_Vector), target, intent(inout) :: x +type(C_PTR) :: y +type(C_PTR) :: z +integer(C_INT) :: fresult +integer(C_INT) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 +type(C_PTR) :: farg4 +type(C_PTR) :: farg5 + +farg1 = nvec +farg2 = c_loc(a(1)) +farg3 = c_loc(x) +farg4 = y +farg5 = z +fresult = swigc_FN_VScaleAddMulti_Pthreads(farg1, farg2, farg3, farg4, farg5) +swig_result = fresult +end function + +function FN_VDotProdMulti_Pthreads(nvec, x, y, dotprods) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +integer(C_INT), intent(in) :: nvec +type(N_Vector), target, intent(inout) :: x +type(C_PTR) :: y +real(C_DOUBLE), dimension(*), target, intent(inout) :: dotprods +integer(C_INT) :: fresult +integer(C_INT) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 +type(C_PTR) :: farg4 + +farg1 = nvec +farg2 = c_loc(x) +farg3 = y +farg4 = c_loc(dotprods(1)) +fresult = swigc_FN_VDotProdMulti_Pthreads(farg1, farg2, farg3, farg4) +swig_result = fresult +end function + +function FN_VLinearSumVectorArray_Pthreads(nvec, a, x, b, y, z) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +integer(C_INT), intent(in) :: nvec +real(C_DOUBLE), intent(in) :: a +type(C_PTR) :: x +real(C_DOUBLE), intent(in) :: b +type(C_PTR) :: y +type(C_PTR) :: z +integer(C_INT) :: fresult +integer(C_INT) :: farg1 +real(C_DOUBLE) :: farg2 +type(C_PTR) :: farg3 +real(C_DOUBLE) :: farg4 +type(C_PTR) :: farg5 +type(C_PTR) :: farg6 + +farg1 = nvec +farg2 = a +farg3 = x +farg4 = b +farg5 = y +farg6 = z +fresult = swigc_FN_VLinearSumVectorArray_Pthreads(farg1, farg2, farg3, farg4, farg5, farg6) +swig_result = fresult +end function + +function FN_VScaleVectorArray_Pthreads(nvec, c, x, z) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +integer(C_INT), intent(in) :: nvec +real(C_DOUBLE), dimension(*), target, intent(inout) :: c +type(C_PTR) :: x +type(C_PTR) :: z +integer(C_INT) :: fresult +integer(C_INT) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 +type(C_PTR) :: farg4 + +farg1 = nvec +farg2 = c_loc(c(1)) +farg3 = x +farg4 = z +fresult = swigc_FN_VScaleVectorArray_Pthreads(farg1, farg2, farg3, farg4) +swig_result = fresult +end function + +function FN_VConstVectorArray_Pthreads(nvec, c, z) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +integer(C_INT), intent(in) :: nvec +real(C_DOUBLE), intent(in) :: c +type(C_PTR) :: z +integer(C_INT) :: fresult +integer(C_INT) :: farg1 +real(C_DOUBLE) :: farg2 +type(C_PTR) :: farg3 + +farg1 = nvec +farg2 = c +farg3 = z +fresult = swigc_FN_VConstVectorArray_Pthreads(farg1, farg2, farg3) +swig_result = fresult +end function + +function FN_VWrmsNormVectorArray_Pthreads(nvec, x, w, nrm) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +integer(C_INT), intent(in) :: nvec +type(C_PTR) :: x +type(C_PTR) :: w +real(C_DOUBLE), dimension(*), target, intent(inout) :: nrm +integer(C_INT) :: fresult +integer(C_INT) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 +type(C_PTR) :: farg4 + +farg1 = nvec +farg2 = x +farg3 = w +farg4 = c_loc(nrm(1)) +fresult = swigc_FN_VWrmsNormVectorArray_Pthreads(farg1, farg2, farg3, farg4) +swig_result = fresult +end function + +function FN_VWrmsNormMaskVectorArray_Pthreads(nvec, x, w, id, nrm) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +integer(C_INT), intent(in) :: nvec +type(C_PTR) :: x +type(C_PTR) :: w +type(N_Vector), target, intent(inout) :: id +real(C_DOUBLE), dimension(*), target, intent(inout) :: nrm +integer(C_INT) :: fresult +integer(C_INT) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 +type(C_PTR) :: farg4 +type(C_PTR) :: farg5 + +farg1 = nvec +farg2 = x +farg3 = w +farg4 = c_loc(id) +farg5 = c_loc(nrm(1)) +fresult = swigc_FN_VWrmsNormMaskVectorArray_Pthreads(farg1, farg2, farg3, farg4, farg5) +swig_result = fresult +end function + +function FN_VWSqrSumLocal_Pthreads(x, w) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE) :: swig_result +type(N_Vector), target, intent(inout) :: x +type(N_Vector), target, intent(inout) :: w +real(C_DOUBLE) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = c_loc(x) +farg2 = c_loc(w) +fresult = swigc_FN_VWSqrSumLocal_Pthreads(farg1, farg2) +swig_result = fresult +end function + +function FN_VWSqrSumMaskLocal_Pthreads(x, w, id) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE) :: swig_result +type(N_Vector), target, intent(inout) :: x +type(N_Vector), target, intent(inout) :: w +type(N_Vector), target, intent(inout) :: id +real(C_DOUBLE) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = c_loc(x) +farg2 = c_loc(w) +farg3 = c_loc(id) +fresult = swigc_FN_VWSqrSumMaskLocal_Pthreads(farg1, farg2, farg3) +swig_result = fresult +end function + +function FN_VBufSize_Pthreads(x, size) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(N_Vector), target, intent(inout) :: x +integer(C_INT32_T), dimension(*), target, intent(inout) :: size +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = c_loc(x) +farg2 = c_loc(size(1)) +fresult = swigc_FN_VBufSize_Pthreads(farg1, farg2) +swig_result = fresult +end function + +function FN_VBufPack_Pthreads(x, buf) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(N_Vector), target, intent(inout) :: x +type(C_PTR) :: buf +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = c_loc(x) +farg2 = buf +fresult = swigc_FN_VBufPack_Pthreads(farg1, farg2) +swig_result = fresult +end function + +function FN_VBufUnpack_Pthreads(x, buf) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(N_Vector), target, intent(inout) :: x +type(C_PTR) :: buf +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = c_loc(x) +farg2 = buf +fresult = swigc_FN_VBufUnpack_Pthreads(farg1, farg2) +swig_result = fresult +end function + +function FN_VEnableFusedOps_Pthreads(v, tf) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(N_Vector), target, intent(inout) :: v +integer(C_INT), intent(in) :: tf +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = c_loc(v) +farg2 = tf +fresult = swigc_FN_VEnableFusedOps_Pthreads(farg1, farg2) +swig_result = fresult +end function + +function FN_VEnableLinearCombination_Pthreads(v, tf) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(N_Vector), target, intent(inout) :: v +integer(C_INT), intent(in) :: tf +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = c_loc(v) +farg2 = tf +fresult = swigc_FN_VEnableLinearCombination_Pthreads(farg1, farg2) +swig_result = fresult +end function + +function FN_VEnableScaleAddMulti_Pthreads(v, tf) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(N_Vector), target, intent(inout) :: v +integer(C_INT), intent(in) :: tf +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = c_loc(v) +farg2 = tf +fresult = swigc_FN_VEnableScaleAddMulti_Pthreads(farg1, farg2) +swig_result = fresult +end function + +function FN_VEnableDotProdMulti_Pthreads(v, tf) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(N_Vector), target, intent(inout) :: v +integer(C_INT), intent(in) :: tf +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = c_loc(v) +farg2 = tf +fresult = swigc_FN_VEnableDotProdMulti_Pthreads(farg1, farg2) +swig_result = fresult +end function + +function FN_VEnableLinearSumVectorArray_Pthreads(v, tf) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(N_Vector), target, intent(inout) :: v +integer(C_INT), intent(in) :: tf +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = c_loc(v) +farg2 = tf +fresult = swigc_FN_VEnableLinearSumVectorArray_Pthreads(farg1, farg2) +swig_result = fresult +end function + +function FN_VEnableScaleVectorArray_Pthreads(v, tf) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(N_Vector), target, intent(inout) :: v +integer(C_INT), intent(in) :: tf +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = c_loc(v) +farg2 = tf +fresult = swigc_FN_VEnableScaleVectorArray_Pthreads(farg1, farg2) +swig_result = fresult +end function + +function FN_VEnableConstVectorArray_Pthreads(v, tf) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(N_Vector), target, intent(inout) :: v +integer(C_INT), intent(in) :: tf +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = c_loc(v) +farg2 = tf +fresult = swigc_FN_VEnableConstVectorArray_Pthreads(farg1, farg2) +swig_result = fresult +end function + +function FN_VEnableWrmsNormVectorArray_Pthreads(v, tf) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(N_Vector), target, intent(inout) :: v +integer(C_INT), intent(in) :: tf +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = c_loc(v) +farg2 = tf +fresult = swigc_FN_VEnableWrmsNormVectorArray_Pthreads(farg1, farg2) +swig_result = fresult +end function + +function FN_VEnableWrmsNormMaskVectorArray_Pthreads(v, tf) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(N_Vector), target, intent(inout) :: v +integer(C_INT), intent(in) :: tf +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = c_loc(v) +farg2 = tf +fresult = swigc_FN_VEnableWrmsNormMaskVectorArray_Pthreads(farg1, farg2) +swig_result = fresult +end function + + +function FN_VGetArrayPointer_Pthreads(v) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE), dimension(:), pointer :: swig_result +type(N_Vector), target, intent(inout) :: v +type(C_PTR) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(v) +fresult = swigc_FN_VGetArrayPointer_Pthreads(farg1) +call c_f_pointer(fresult, swig_result, [FN_VGetLength_Pthreads(v)]) +end function + + +end module diff --git a/src/nvector/pthreads/fmod_int64/CMakeLists.txt b/src/nvector/pthreads/fmod_int64/CMakeLists.txt new file mode 100644 index 0000000000..e43ebc9c08 --- /dev/null +++ b/src/nvector/pthreads/fmod_int64/CMakeLists.txt @@ -0,0 +1,33 @@ +# --------------------------------------------------------------- +# Programmer(s): Cody J. Balos @ LLNL +# --------------------------------------------------------------- +# SUNDIALS Copyright Start +# Copyright (c) 2002-2024, Lawrence Livermore National Security +# and Southern Methodist University. +# All rights reserved. +# +# See the top-level LICENSE and NOTICE files for details. +# +# SPDX-License-Identifier: BSD-3-Clause +# SUNDIALS Copyright End +# --------------------------------------------------------------- +# CMakeLists.txt file for the F2003 Pthreads NVECTOR object library +# --------------------------------------------------------------- + +set(nvecpthreads_SOURCES fnvector_pthreads_mod.f90 fnvector_pthreads_mod.c) + +sundials_add_f2003_library(sundials_fnvecpthreads_mod + SOURCES + fnvector_pthreads_mod.f90 fnvector_pthreads_mod.c + LINK_LIBRARIES + PUBLIC sundials_fcore_mod + OBJECT_LIBRARIES + OUTPUT_NAME + sundials_fnvecpthreads_mod + VERSION + ${nveclib_VERSION} + SOVERSION + ${nveclib_SOVERSION} +) + +message(STATUS "Added NVECTOR_PTHREADS F2003 interface") diff --git a/src/nvector/pthreads/fmod/fnvector_pthreads_mod.c b/src/nvector/pthreads/fmod_int64/fnvector_pthreads_mod.c similarity index 100% rename from src/nvector/pthreads/fmod/fnvector_pthreads_mod.c rename to src/nvector/pthreads/fmod_int64/fnvector_pthreads_mod.c diff --git a/src/nvector/pthreads/fmod/fnvector_pthreads_mod.f90 b/src/nvector/pthreads/fmod_int64/fnvector_pthreads_mod.f90 similarity index 100% rename from src/nvector/pthreads/fmod/fnvector_pthreads_mod.f90 rename to src/nvector/pthreads/fmod_int64/fnvector_pthreads_mod.f90 diff --git a/src/nvector/serial/CMakeLists.txt b/src/nvector/serial/CMakeLists.txt index efcfb15818..c8e867daa8 100644 --- a/src/nvector/serial/CMakeLists.txt +++ b/src/nvector/serial/CMakeLists.txt @@ -39,5 +39,5 @@ message(STATUS "Added NVECTOR_SERIAL module") # Add F2003 module if the interface is enabled if(BUILD_FORTRAN_MODULE_INTERFACE) - add_subdirectory(fmod) + add_subdirectory("fmod_int${SUNDIALS_INDEX_SIZE}") endif() diff --git a/src/nvector/serial/fmod/CMakeLists.txt b/src/nvector/serial/fmod_int32/CMakeLists.txt similarity index 100% rename from src/nvector/serial/fmod/CMakeLists.txt rename to src/nvector/serial/fmod_int32/CMakeLists.txt diff --git a/src/nvector/serial/fmod_int32/fnvector_serial_mod.c b/src/nvector/serial/fmod_int32/fnvector_serial_mod.c new file mode 100644 index 0000000000..14ddfe38a0 --- /dev/null +++ b/src/nvector/serial/fmod_int32/fnvector_serial_mod.c @@ -0,0 +1,955 @@ +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.0 + * + * This file is not intended to be easily readable and contains a number of + * coding conventions designed to improve portability and efficiency. Do not make + * changes to this file unless you know what you are doing--modify the SWIG + * interface file instead. + * ----------------------------------------------------------------------------- */ + +/* --------------------------------------------------------------- + * Programmer(s): Auto-generated by swig. + * --------------------------------------------------------------- + * SUNDIALS Copyright Start + * Copyright (c) 2002-2024, Lawrence Livermore National Security + * and Southern Methodist University. + * All rights reserved. + * + * See the top-level LICENSE and NOTICE files for details. + * + * SPDX-License-Identifier: BSD-3-Clause + * SUNDIALS Copyright End + * -------------------------------------------------------------*/ + +/* ----------------------------------------------------------------------------- + * This section contains generic SWIG labels for method/variable + * declarations/attributes, and other compiler dependent labels. + * ----------------------------------------------------------------------------- */ + +/* template workaround for compilers that cannot correctly implement the C++ standard */ +#ifndef SWIGTEMPLATEDISAMBIGUATOR +# if defined(__SUNPRO_CC) && (__SUNPRO_CC <= 0x560) +# define SWIGTEMPLATEDISAMBIGUATOR template +# elif defined(__HP_aCC) +/* Needed even with `aCC -AA' when `aCC -V' reports HP ANSI C++ B3910B A.03.55 */ +/* If we find a maximum version that requires this, the test would be __HP_aCC <= 35500 for A.03.55 */ +# define SWIGTEMPLATEDISAMBIGUATOR template +# else +# define SWIGTEMPLATEDISAMBIGUATOR +# endif +#endif + +/* inline attribute */ +#ifndef SWIGINLINE +# if defined(__cplusplus) || (defined(__GNUC__) && !defined(__STRICT_ANSI__)) +# define SWIGINLINE inline +# else +# define SWIGINLINE +# endif +#endif + +/* attribute recognised by some compilers to avoid 'unused' warnings */ +#ifndef SWIGUNUSED +# if defined(__GNUC__) +# if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)) +# define SWIGUNUSED __attribute__ ((__unused__)) +# else +# define SWIGUNUSED +# endif +# elif defined(__ICC) +# define SWIGUNUSED __attribute__ ((__unused__)) +# else +# define SWIGUNUSED +# endif +#endif + +#ifndef SWIG_MSC_UNSUPPRESS_4505 +# if defined(_MSC_VER) +# pragma warning(disable : 4505) /* unreferenced local function has been removed */ +# endif +#endif + +#ifndef SWIGUNUSEDPARM +# ifdef __cplusplus +# define SWIGUNUSEDPARM(p) +# else +# define SWIGUNUSEDPARM(p) p SWIGUNUSED +# endif +#endif + +/* internal SWIG method */ +#ifndef SWIGINTERN +# define SWIGINTERN static SWIGUNUSED +#endif + +/* internal inline SWIG method */ +#ifndef SWIGINTERNINLINE +# define SWIGINTERNINLINE SWIGINTERN SWIGINLINE +#endif + +/* qualifier for exported *const* global data variables*/ +#ifndef SWIGEXTERN +# ifdef __cplusplus +# define SWIGEXTERN extern +# else +# define SWIGEXTERN +# endif +#endif + +/* exporting methods */ +#if defined(__GNUC__) +# if (__GNUC__ >= 4) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) +# ifndef GCC_HASCLASSVISIBILITY +# define GCC_HASCLASSVISIBILITY +# endif +# endif +#endif + +#ifndef SWIGEXPORT +# if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__) +# if defined(STATIC_LINKED) +# define SWIGEXPORT +# else +# define SWIGEXPORT __declspec(dllexport) +# endif +# else +# if defined(__GNUC__) && defined(GCC_HASCLASSVISIBILITY) +# define SWIGEXPORT __attribute__ ((visibility("default"))) +# else +# define SWIGEXPORT +# endif +# endif +#endif + +/* calling conventions for Windows */ +#ifndef SWIGSTDCALL +# if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__) +# define SWIGSTDCALL __stdcall +# else +# define SWIGSTDCALL +# endif +#endif + +/* Deal with Microsoft's attempt at deprecating C standard runtime functions */ +#if !defined(SWIG_NO_CRT_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_CRT_SECURE_NO_DEPRECATE) +# define _CRT_SECURE_NO_DEPRECATE +#endif + +/* Deal with Microsoft's attempt at deprecating methods in the standard C++ library */ +#if !defined(SWIG_NO_SCL_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_SCL_SECURE_NO_DEPRECATE) +# define _SCL_SECURE_NO_DEPRECATE +#endif + +/* Deal with Apple's deprecated 'AssertMacros.h' from Carbon-framework */ +#if defined(__APPLE__) && !defined(__ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES) +# define __ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES 0 +#endif + +/* Intel's compiler complains if a variable which was never initialised is + * cast to void, which is a common idiom which we use to indicate that we + * are aware a variable isn't used. So we just silence that warning. + * See: https://github.com/swig/swig/issues/192 for more discussion. + */ +#ifdef __INTEL_COMPILER +# pragma warning disable 592 +#endif + +/* Errors in SWIG */ +#define SWIG_UnknownError -1 +#define SWIG_IOError -2 +#define SWIG_RuntimeError -3 +#define SWIG_IndexError -4 +#define SWIG_TypeError -5 +#define SWIG_DivisionByZero -6 +#define SWIG_OverflowError -7 +#define SWIG_SyntaxError -8 +#define SWIG_ValueError -9 +#define SWIG_SystemError -10 +#define SWIG_AttributeError -11 +#define SWIG_MemoryError -12 +#define SWIG_NullReferenceError -13 + + + + +#include +#define SWIG_exception_impl(DECL, CODE, MSG, RETURNNULL) \ + { printf("In " DECL ": " MSG); assert(0); RETURNNULL; } + + +#include +#if defined(_MSC_VER) || defined(__BORLANDC__) || defined(_WATCOM) +# ifndef snprintf +# define snprintf _snprintf +# endif +#endif + + +/* Support for the `contract` feature. + * + * Note that RETURNNULL is first because it's inserted via a 'Replaceall' in + * the fortran.cxx file. + */ +#define SWIG_contract_assert(RETURNNULL, EXPR, MSG) \ + if (!(EXPR)) { SWIG_exception_impl("$decl", SWIG_ValueError, MSG, RETURNNULL); } + + +#define SWIGVERSION 0x040000 +#define SWIG_VERSION SWIGVERSION + + +#define SWIG_as_voidptr(a) (void *)((const void *)(a)) +#define SWIG_as_voidptrptr(a) ((void)SWIG_as_voidptr(*a),(void**)(a)) + + +#include "sundials/sundials_nvector.h" + + +#include "nvector/nvector_serial.h" + +SWIGEXPORT N_Vector _wrap_FN_VNewEmpty_Serial(int32_t const *farg1, void *farg2) { + N_Vector fresult ; + sunindextype arg1 ; + SUNContext arg2 = (SUNContext) 0 ; + N_Vector result; + + arg1 = (sunindextype)(*farg1); + arg2 = (SUNContext)(farg2); + result = (N_Vector)N_VNewEmpty_Serial(arg1,arg2); + fresult = result; + return fresult; +} + + +SWIGEXPORT N_Vector _wrap_FN_VNew_Serial(int32_t const *farg1, void *farg2) { + N_Vector fresult ; + sunindextype arg1 ; + SUNContext arg2 = (SUNContext) 0 ; + N_Vector result; + + arg1 = (sunindextype)(*farg1); + arg2 = (SUNContext)(farg2); + result = (N_Vector)N_VNew_Serial(arg1,arg2); + fresult = result; + return fresult; +} + + +SWIGEXPORT N_Vector _wrap_FN_VMake_Serial(int32_t const *farg1, double *farg2, void *farg3) { + N_Vector fresult ; + sunindextype arg1 ; + sunrealtype *arg2 = (sunrealtype *) 0 ; + SUNContext arg3 = (SUNContext) 0 ; + N_Vector result; + + arg1 = (sunindextype)(*farg1); + arg2 = (sunrealtype *)(farg2); + arg3 = (SUNContext)(farg3); + result = (N_Vector)N_VMake_Serial(arg1,arg2,arg3); + fresult = result; + return fresult; +} + + +SWIGEXPORT int32_t _wrap_FN_VGetLength_Serial(N_Vector farg1) { + int32_t fresult ; + N_Vector arg1 = (N_Vector) 0 ; + sunindextype result; + + arg1 = (N_Vector)(farg1); + result = N_VGetLength_Serial(arg1); + fresult = (sunindextype)(result); + return fresult; +} + + +SWIGEXPORT void _wrap_FN_VPrint_Serial(N_Vector farg1) { + N_Vector arg1 = (N_Vector) 0 ; + + arg1 = (N_Vector)(farg1); + N_VPrint_Serial(arg1); +} + + +SWIGEXPORT void _wrap_FN_VPrintFile_Serial(N_Vector farg1, void *farg2) { + N_Vector arg1 = (N_Vector) 0 ; + FILE *arg2 = (FILE *) 0 ; + + arg1 = (N_Vector)(farg1); + arg2 = (FILE *)(farg2); + N_VPrintFile_Serial(arg1,arg2); +} + + +SWIGEXPORT int _wrap_FN_VGetVectorID_Serial(N_Vector farg1) { + int fresult ; + N_Vector arg1 = (N_Vector) 0 ; + N_Vector_ID result; + + arg1 = (N_Vector)(farg1); + result = (N_Vector_ID)N_VGetVectorID_Serial(arg1); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT N_Vector _wrap_FN_VCloneEmpty_Serial(N_Vector farg1) { + N_Vector fresult ; + N_Vector arg1 = (N_Vector) 0 ; + N_Vector result; + + arg1 = (N_Vector)(farg1); + result = (N_Vector)N_VCloneEmpty_Serial(arg1); + fresult = result; + return fresult; +} + + +SWIGEXPORT N_Vector _wrap_FN_VClone_Serial(N_Vector farg1) { + N_Vector fresult ; + N_Vector arg1 = (N_Vector) 0 ; + N_Vector result; + + arg1 = (N_Vector)(farg1); + result = (N_Vector)N_VClone_Serial(arg1); + fresult = result; + return fresult; +} + + +SWIGEXPORT void _wrap_FN_VDestroy_Serial(N_Vector farg1) { + N_Vector arg1 = (N_Vector) 0 ; + + arg1 = (N_Vector)(farg1); + N_VDestroy_Serial(arg1); +} + + +SWIGEXPORT void _wrap_FN_VSpace_Serial(N_Vector farg1, int32_t *farg2, int32_t *farg3) { + N_Vector arg1 = (N_Vector) 0 ; + sunindextype *arg2 = (sunindextype *) 0 ; + sunindextype *arg3 = (sunindextype *) 0 ; + + arg1 = (N_Vector)(farg1); + arg2 = (sunindextype *)(farg2); + arg3 = (sunindextype *)(farg3); + N_VSpace_Serial(arg1,arg2,arg3); +} + + +SWIGEXPORT void _wrap_FN_VSetArrayPointer_Serial(double *farg1, N_Vector farg2) { + sunrealtype *arg1 = (sunrealtype *) 0 ; + N_Vector arg2 = (N_Vector) 0 ; + + arg1 = (sunrealtype *)(farg1); + arg2 = (N_Vector)(farg2); + N_VSetArrayPointer_Serial(arg1,arg2); +} + + +SWIGEXPORT void _wrap_FN_VLinearSum_Serial(double const *farg1, N_Vector farg2, double const *farg3, N_Vector farg4, N_Vector farg5) { + sunrealtype arg1 ; + N_Vector arg2 = (N_Vector) 0 ; + sunrealtype arg3 ; + N_Vector arg4 = (N_Vector) 0 ; + N_Vector arg5 = (N_Vector) 0 ; + + arg1 = (sunrealtype)(*farg1); + arg2 = (N_Vector)(farg2); + arg3 = (sunrealtype)(*farg3); + arg4 = (N_Vector)(farg4); + arg5 = (N_Vector)(farg5); + N_VLinearSum_Serial(arg1,arg2,arg3,arg4,arg5); +} + + +SWIGEXPORT void _wrap_FN_VConst_Serial(double const *farg1, N_Vector farg2) { + sunrealtype arg1 ; + N_Vector arg2 = (N_Vector) 0 ; + + arg1 = (sunrealtype)(*farg1); + arg2 = (N_Vector)(farg2); + N_VConst_Serial(arg1,arg2); +} + + +SWIGEXPORT void _wrap_FN_VProd_Serial(N_Vector farg1, N_Vector farg2, N_Vector farg3) { + N_Vector arg1 = (N_Vector) 0 ; + N_Vector arg2 = (N_Vector) 0 ; + N_Vector arg3 = (N_Vector) 0 ; + + arg1 = (N_Vector)(farg1); + arg2 = (N_Vector)(farg2); + arg3 = (N_Vector)(farg3); + N_VProd_Serial(arg1,arg2,arg3); +} + + +SWIGEXPORT void _wrap_FN_VDiv_Serial(N_Vector farg1, N_Vector farg2, N_Vector farg3) { + N_Vector arg1 = (N_Vector) 0 ; + N_Vector arg2 = (N_Vector) 0 ; + N_Vector arg3 = (N_Vector) 0 ; + + arg1 = (N_Vector)(farg1); + arg2 = (N_Vector)(farg2); + arg3 = (N_Vector)(farg3); + N_VDiv_Serial(arg1,arg2,arg3); +} + + +SWIGEXPORT void _wrap_FN_VScale_Serial(double const *farg1, N_Vector farg2, N_Vector farg3) { + sunrealtype arg1 ; + N_Vector arg2 = (N_Vector) 0 ; + N_Vector arg3 = (N_Vector) 0 ; + + arg1 = (sunrealtype)(*farg1); + arg2 = (N_Vector)(farg2); + arg3 = (N_Vector)(farg3); + N_VScale_Serial(arg1,arg2,arg3); +} + + +SWIGEXPORT void _wrap_FN_VAbs_Serial(N_Vector farg1, N_Vector farg2) { + N_Vector arg1 = (N_Vector) 0 ; + N_Vector arg2 = (N_Vector) 0 ; + + arg1 = (N_Vector)(farg1); + arg2 = (N_Vector)(farg2); + N_VAbs_Serial(arg1,arg2); +} + + +SWIGEXPORT void _wrap_FN_VInv_Serial(N_Vector farg1, N_Vector farg2) { + N_Vector arg1 = (N_Vector) 0 ; + N_Vector arg2 = (N_Vector) 0 ; + + arg1 = (N_Vector)(farg1); + arg2 = (N_Vector)(farg2); + N_VInv_Serial(arg1,arg2); +} + + +SWIGEXPORT void _wrap_FN_VAddConst_Serial(N_Vector farg1, double const *farg2, N_Vector farg3) { + N_Vector arg1 = (N_Vector) 0 ; + sunrealtype arg2 ; + N_Vector arg3 = (N_Vector) 0 ; + + arg1 = (N_Vector)(farg1); + arg2 = (sunrealtype)(*farg2); + arg3 = (N_Vector)(farg3); + N_VAddConst_Serial(arg1,arg2,arg3); +} + + +SWIGEXPORT double _wrap_FN_VDotProd_Serial(N_Vector farg1, N_Vector farg2) { + double fresult ; + N_Vector arg1 = (N_Vector) 0 ; + N_Vector arg2 = (N_Vector) 0 ; + sunrealtype result; + + arg1 = (N_Vector)(farg1); + arg2 = (N_Vector)(farg2); + result = (sunrealtype)N_VDotProd_Serial(arg1,arg2); + fresult = (sunrealtype)(result); + return fresult; +} + + +SWIGEXPORT double _wrap_FN_VMaxNorm_Serial(N_Vector farg1) { + double fresult ; + N_Vector arg1 = (N_Vector) 0 ; + sunrealtype result; + + arg1 = (N_Vector)(farg1); + result = (sunrealtype)N_VMaxNorm_Serial(arg1); + fresult = (sunrealtype)(result); + return fresult; +} + + +SWIGEXPORT double _wrap_FN_VWrmsNorm_Serial(N_Vector farg1, N_Vector farg2) { + double fresult ; + N_Vector arg1 = (N_Vector) 0 ; + N_Vector arg2 = (N_Vector) 0 ; + sunrealtype result; + + arg1 = (N_Vector)(farg1); + arg2 = (N_Vector)(farg2); + result = (sunrealtype)N_VWrmsNorm_Serial(arg1,arg2); + fresult = (sunrealtype)(result); + return fresult; +} + + +SWIGEXPORT double _wrap_FN_VWrmsNormMask_Serial(N_Vector farg1, N_Vector farg2, N_Vector farg3) { + double fresult ; + N_Vector arg1 = (N_Vector) 0 ; + N_Vector arg2 = (N_Vector) 0 ; + N_Vector arg3 = (N_Vector) 0 ; + sunrealtype result; + + arg1 = (N_Vector)(farg1); + arg2 = (N_Vector)(farg2); + arg3 = (N_Vector)(farg3); + result = (sunrealtype)N_VWrmsNormMask_Serial(arg1,arg2,arg3); + fresult = (sunrealtype)(result); + return fresult; +} + + +SWIGEXPORT double _wrap_FN_VMin_Serial(N_Vector farg1) { + double fresult ; + N_Vector arg1 = (N_Vector) 0 ; + sunrealtype result; + + arg1 = (N_Vector)(farg1); + result = (sunrealtype)N_VMin_Serial(arg1); + fresult = (sunrealtype)(result); + return fresult; +} + + +SWIGEXPORT double _wrap_FN_VWL2Norm_Serial(N_Vector farg1, N_Vector farg2) { + double fresult ; + N_Vector arg1 = (N_Vector) 0 ; + N_Vector arg2 = (N_Vector) 0 ; + sunrealtype result; + + arg1 = (N_Vector)(farg1); + arg2 = (N_Vector)(farg2); + result = (sunrealtype)N_VWL2Norm_Serial(arg1,arg2); + fresult = (sunrealtype)(result); + return fresult; +} + + +SWIGEXPORT double _wrap_FN_VL1Norm_Serial(N_Vector farg1) { + double fresult ; + N_Vector arg1 = (N_Vector) 0 ; + sunrealtype result; + + arg1 = (N_Vector)(farg1); + result = (sunrealtype)N_VL1Norm_Serial(arg1); + fresult = (sunrealtype)(result); + return fresult; +} + + +SWIGEXPORT void _wrap_FN_VCompare_Serial(double const *farg1, N_Vector farg2, N_Vector farg3) { + sunrealtype arg1 ; + N_Vector arg2 = (N_Vector) 0 ; + N_Vector arg3 = (N_Vector) 0 ; + + arg1 = (sunrealtype)(*farg1); + arg2 = (N_Vector)(farg2); + arg3 = (N_Vector)(farg3); + N_VCompare_Serial(arg1,arg2,arg3); +} + + +SWIGEXPORT int _wrap_FN_VInvTest_Serial(N_Vector farg1, N_Vector farg2) { + int fresult ; + N_Vector arg1 = (N_Vector) 0 ; + N_Vector arg2 = (N_Vector) 0 ; + int result; + + arg1 = (N_Vector)(farg1); + arg2 = (N_Vector)(farg2); + result = (int)N_VInvTest_Serial(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FN_VConstrMask_Serial(N_Vector farg1, N_Vector farg2, N_Vector farg3) { + int fresult ; + N_Vector arg1 = (N_Vector) 0 ; + N_Vector arg2 = (N_Vector) 0 ; + N_Vector arg3 = (N_Vector) 0 ; + int result; + + arg1 = (N_Vector)(farg1); + arg2 = (N_Vector)(farg2); + arg3 = (N_Vector)(farg3); + result = (int)N_VConstrMask_Serial(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT double _wrap_FN_VMinQuotient_Serial(N_Vector farg1, N_Vector farg2) { + double fresult ; + N_Vector arg1 = (N_Vector) 0 ; + N_Vector arg2 = (N_Vector) 0 ; + sunrealtype result; + + arg1 = (N_Vector)(farg1); + arg2 = (N_Vector)(farg2); + result = (sunrealtype)N_VMinQuotient_Serial(arg1,arg2); + fresult = (sunrealtype)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FN_VLinearCombination_Serial(int const *farg1, double *farg2, void *farg3, N_Vector farg4) { + int fresult ; + int arg1 ; + sunrealtype *arg2 = (sunrealtype *) 0 ; + N_Vector *arg3 = (N_Vector *) 0 ; + N_Vector arg4 = (N_Vector) 0 ; + SUNErrCode result; + + arg1 = (int)(*farg1); + arg2 = (sunrealtype *)(farg2); + arg3 = (N_Vector *)(farg3); + arg4 = (N_Vector)(farg4); + result = (SUNErrCode)N_VLinearCombination_Serial(arg1,arg2,arg3,arg4); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FN_VScaleAddMulti_Serial(int const *farg1, double *farg2, N_Vector farg3, void *farg4, void *farg5) { + int fresult ; + int arg1 ; + sunrealtype *arg2 = (sunrealtype *) 0 ; + N_Vector arg3 = (N_Vector) 0 ; + N_Vector *arg4 = (N_Vector *) 0 ; + N_Vector *arg5 = (N_Vector *) 0 ; + SUNErrCode result; + + arg1 = (int)(*farg1); + arg2 = (sunrealtype *)(farg2); + arg3 = (N_Vector)(farg3); + arg4 = (N_Vector *)(farg4); + arg5 = (N_Vector *)(farg5); + result = (SUNErrCode)N_VScaleAddMulti_Serial(arg1,arg2,arg3,arg4,arg5); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FN_VDotProdMulti_Serial(int const *farg1, N_Vector farg2, void *farg3, double *farg4) { + int fresult ; + int arg1 ; + N_Vector arg2 = (N_Vector) 0 ; + N_Vector *arg3 = (N_Vector *) 0 ; + sunrealtype *arg4 = (sunrealtype *) 0 ; + SUNErrCode result; + + arg1 = (int)(*farg1); + arg2 = (N_Vector)(farg2); + arg3 = (N_Vector *)(farg3); + arg4 = (sunrealtype *)(farg4); + result = (SUNErrCode)N_VDotProdMulti_Serial(arg1,arg2,arg3,arg4); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FN_VLinearSumVectorArray_Serial(int const *farg1, double const *farg2, void *farg3, double const *farg4, void *farg5, void *farg6) { + int fresult ; + int arg1 ; + sunrealtype arg2 ; + N_Vector *arg3 = (N_Vector *) 0 ; + sunrealtype arg4 ; + N_Vector *arg5 = (N_Vector *) 0 ; + N_Vector *arg6 = (N_Vector *) 0 ; + SUNErrCode result; + + arg1 = (int)(*farg1); + arg2 = (sunrealtype)(*farg2); + arg3 = (N_Vector *)(farg3); + arg4 = (sunrealtype)(*farg4); + arg5 = (N_Vector *)(farg5); + arg6 = (N_Vector *)(farg6); + result = (SUNErrCode)N_VLinearSumVectorArray_Serial(arg1,arg2,arg3,arg4,arg5,arg6); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FN_VScaleVectorArray_Serial(int const *farg1, double *farg2, void *farg3, void *farg4) { + int fresult ; + int arg1 ; + sunrealtype *arg2 = (sunrealtype *) 0 ; + N_Vector *arg3 = (N_Vector *) 0 ; + N_Vector *arg4 = (N_Vector *) 0 ; + SUNErrCode result; + + arg1 = (int)(*farg1); + arg2 = (sunrealtype *)(farg2); + arg3 = (N_Vector *)(farg3); + arg4 = (N_Vector *)(farg4); + result = (SUNErrCode)N_VScaleVectorArray_Serial(arg1,arg2,arg3,arg4); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FN_VConstVectorArray_Serial(int const *farg1, double const *farg2, void *farg3) { + int fresult ; + int arg1 ; + sunrealtype arg2 ; + N_Vector *arg3 = (N_Vector *) 0 ; + SUNErrCode result; + + arg1 = (int)(*farg1); + arg2 = (sunrealtype)(*farg2); + arg3 = (N_Vector *)(farg3); + result = (SUNErrCode)N_VConstVectorArray_Serial(arg1,arg2,arg3); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FN_VWrmsNormVectorArray_Serial(int const *farg1, void *farg2, void *farg3, double *farg4) { + int fresult ; + int arg1 ; + N_Vector *arg2 = (N_Vector *) 0 ; + N_Vector *arg3 = (N_Vector *) 0 ; + sunrealtype *arg4 = (sunrealtype *) 0 ; + SUNErrCode result; + + arg1 = (int)(*farg1); + arg2 = (N_Vector *)(farg2); + arg3 = (N_Vector *)(farg3); + arg4 = (sunrealtype *)(farg4); + result = (SUNErrCode)N_VWrmsNormVectorArray_Serial(arg1,arg2,arg3,arg4); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FN_VWrmsNormMaskVectorArray_Serial(int const *farg1, void *farg2, void *farg3, N_Vector farg4, double *farg5) { + int fresult ; + int arg1 ; + N_Vector *arg2 = (N_Vector *) 0 ; + N_Vector *arg3 = (N_Vector *) 0 ; + N_Vector arg4 = (N_Vector) 0 ; + sunrealtype *arg5 = (sunrealtype *) 0 ; + SUNErrCode result; + + arg1 = (int)(*farg1); + arg2 = (N_Vector *)(farg2); + arg3 = (N_Vector *)(farg3); + arg4 = (N_Vector)(farg4); + arg5 = (sunrealtype *)(farg5); + result = (SUNErrCode)N_VWrmsNormMaskVectorArray_Serial(arg1,arg2,arg3,arg4,arg5); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT double _wrap_FN_VWSqrSumLocal_Serial(N_Vector farg1, N_Vector farg2) { + double fresult ; + N_Vector arg1 = (N_Vector) 0 ; + N_Vector arg2 = (N_Vector) 0 ; + sunrealtype result; + + arg1 = (N_Vector)(farg1); + arg2 = (N_Vector)(farg2); + result = (sunrealtype)N_VWSqrSumLocal_Serial(arg1,arg2); + fresult = (sunrealtype)(result); + return fresult; +} + + +SWIGEXPORT double _wrap_FN_VWSqrSumMaskLocal_Serial(N_Vector farg1, N_Vector farg2, N_Vector farg3) { + double fresult ; + N_Vector arg1 = (N_Vector) 0 ; + N_Vector arg2 = (N_Vector) 0 ; + N_Vector arg3 = (N_Vector) 0 ; + sunrealtype result; + + arg1 = (N_Vector)(farg1); + arg2 = (N_Vector)(farg2); + arg3 = (N_Vector)(farg3); + result = (sunrealtype)N_VWSqrSumMaskLocal_Serial(arg1,arg2,arg3); + fresult = (sunrealtype)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FN_VBufSize_Serial(N_Vector farg1, int32_t *farg2) { + int fresult ; + N_Vector arg1 = (N_Vector) 0 ; + sunindextype *arg2 = (sunindextype *) 0 ; + SUNErrCode result; + + arg1 = (N_Vector)(farg1); + arg2 = (sunindextype *)(farg2); + result = (SUNErrCode)N_VBufSize_Serial(arg1,arg2); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FN_VBufPack_Serial(N_Vector farg1, void *farg2) { + int fresult ; + N_Vector arg1 = (N_Vector) 0 ; + void *arg2 = (void *) 0 ; + SUNErrCode result; + + arg1 = (N_Vector)(farg1); + arg2 = (void *)(farg2); + result = (SUNErrCode)N_VBufPack_Serial(arg1,arg2); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FN_VBufUnpack_Serial(N_Vector farg1, void *farg2) { + int fresult ; + N_Vector arg1 = (N_Vector) 0 ; + void *arg2 = (void *) 0 ; + SUNErrCode result; + + arg1 = (N_Vector)(farg1); + arg2 = (void *)(farg2); + result = (SUNErrCode)N_VBufUnpack_Serial(arg1,arg2); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FN_VEnableFusedOps_Serial(N_Vector farg1, int const *farg2) { + int fresult ; + N_Vector arg1 = (N_Vector) 0 ; + int arg2 ; + SUNErrCode result; + + arg1 = (N_Vector)(farg1); + arg2 = (int)(*farg2); + result = (SUNErrCode)N_VEnableFusedOps_Serial(arg1,arg2); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FN_VEnableLinearCombination_Serial(N_Vector farg1, int const *farg2) { + int fresult ; + N_Vector arg1 = (N_Vector) 0 ; + int arg2 ; + SUNErrCode result; + + arg1 = (N_Vector)(farg1); + arg2 = (int)(*farg2); + result = (SUNErrCode)N_VEnableLinearCombination_Serial(arg1,arg2); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FN_VEnableScaleAddMulti_Serial(N_Vector farg1, int const *farg2) { + int fresult ; + N_Vector arg1 = (N_Vector) 0 ; + int arg2 ; + SUNErrCode result; + + arg1 = (N_Vector)(farg1); + arg2 = (int)(*farg2); + result = (SUNErrCode)N_VEnableScaleAddMulti_Serial(arg1,arg2); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FN_VEnableDotProdMulti_Serial(N_Vector farg1, int const *farg2) { + int fresult ; + N_Vector arg1 = (N_Vector) 0 ; + int arg2 ; + SUNErrCode result; + + arg1 = (N_Vector)(farg1); + arg2 = (int)(*farg2); + result = (SUNErrCode)N_VEnableDotProdMulti_Serial(arg1,arg2); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FN_VEnableLinearSumVectorArray_Serial(N_Vector farg1, int const *farg2) { + int fresult ; + N_Vector arg1 = (N_Vector) 0 ; + int arg2 ; + SUNErrCode result; + + arg1 = (N_Vector)(farg1); + arg2 = (int)(*farg2); + result = (SUNErrCode)N_VEnableLinearSumVectorArray_Serial(arg1,arg2); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FN_VEnableScaleVectorArray_Serial(N_Vector farg1, int const *farg2) { + int fresult ; + N_Vector arg1 = (N_Vector) 0 ; + int arg2 ; + SUNErrCode result; + + arg1 = (N_Vector)(farg1); + arg2 = (int)(*farg2); + result = (SUNErrCode)N_VEnableScaleVectorArray_Serial(arg1,arg2); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FN_VEnableConstVectorArray_Serial(N_Vector farg1, int const *farg2) { + int fresult ; + N_Vector arg1 = (N_Vector) 0 ; + int arg2 ; + SUNErrCode result; + + arg1 = (N_Vector)(farg1); + arg2 = (int)(*farg2); + result = (SUNErrCode)N_VEnableConstVectorArray_Serial(arg1,arg2); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FN_VEnableWrmsNormVectorArray_Serial(N_Vector farg1, int const *farg2) { + int fresult ; + N_Vector arg1 = (N_Vector) 0 ; + int arg2 ; + SUNErrCode result; + + arg1 = (N_Vector)(farg1); + arg2 = (int)(*farg2); + result = (SUNErrCode)N_VEnableWrmsNormVectorArray_Serial(arg1,arg2); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FN_VEnableWrmsNormMaskVectorArray_Serial(N_Vector farg1, int const *farg2) { + int fresult ; + N_Vector arg1 = (N_Vector) 0 ; + int arg2 ; + SUNErrCode result; + + arg1 = (N_Vector)(farg1); + arg2 = (int)(*farg2); + result = (SUNErrCode)N_VEnableWrmsNormMaskVectorArray_Serial(arg1,arg2); + fresult = (SUNErrCode)(result); + return fresult; +} + + + +SWIGEXPORT double * _wrap_FN_VGetArrayPointer_Serial(N_Vector farg1) { + double * fresult ; + N_Vector arg1 = (N_Vector) 0 ; + sunrealtype *result = 0 ; + + arg1 = (N_Vector)(farg1); + result = (sunrealtype *)N_VGetArrayPointer_Serial(arg1); + fresult = result; + return fresult; +} + + diff --git a/src/nvector/serial/fmod_int32/fnvector_serial_mod.f90 b/src/nvector/serial/fmod_int32/fnvector_serial_mod.f90 new file mode 100644 index 0000000000..ac6df66be2 --- /dev/null +++ b/src/nvector/serial/fmod_int32/fnvector_serial_mod.f90 @@ -0,0 +1,1449 @@ +! This file was automatically generated by SWIG (http://www.swig.org). +! Version 4.0.0 +! +! Do not make changes to this file unless you know what you are doing--modify +! the SWIG interface file instead. + +! --------------------------------------------------------------- +! Programmer(s): Auto-generated by swig. +! --------------------------------------------------------------- +! SUNDIALS Copyright Start +! Copyright (c) 2002-2024, Lawrence Livermore National Security +! and Southern Methodist University. +! All rights reserved. +! +! See the top-level LICENSE and NOTICE files for details. +! +! SPDX-License-Identifier: BSD-3-Clause +! SUNDIALS Copyright End +! --------------------------------------------------------------- + +module fnvector_serial_mod + use, intrinsic :: ISO_C_BINDING + use fsundials_core_mod + implicit none + private + + ! DECLARATION CONSTRUCTS + public :: FN_VNewEmpty_Serial + public :: FN_VNew_Serial + public :: FN_VMake_Serial + public :: FN_VGetLength_Serial + public :: FN_VPrint_Serial + public :: FN_VPrintFile_Serial + public :: FN_VGetVectorID_Serial + public :: FN_VCloneEmpty_Serial + public :: FN_VClone_Serial + public :: FN_VDestroy_Serial + public :: FN_VSpace_Serial + public :: FN_VSetArrayPointer_Serial + public :: FN_VLinearSum_Serial + public :: FN_VConst_Serial + public :: FN_VProd_Serial + public :: FN_VDiv_Serial + public :: FN_VScale_Serial + public :: FN_VAbs_Serial + public :: FN_VInv_Serial + public :: FN_VAddConst_Serial + public :: FN_VDotProd_Serial + public :: FN_VMaxNorm_Serial + public :: FN_VWrmsNorm_Serial + public :: FN_VWrmsNormMask_Serial + public :: FN_VMin_Serial + public :: FN_VWL2Norm_Serial + public :: FN_VL1Norm_Serial + public :: FN_VCompare_Serial + public :: FN_VInvTest_Serial + public :: FN_VConstrMask_Serial + public :: FN_VMinQuotient_Serial + public :: FN_VLinearCombination_Serial + public :: FN_VScaleAddMulti_Serial + public :: FN_VDotProdMulti_Serial + public :: FN_VLinearSumVectorArray_Serial + public :: FN_VScaleVectorArray_Serial + public :: FN_VConstVectorArray_Serial + public :: FN_VWrmsNormVectorArray_Serial + public :: FN_VWrmsNormMaskVectorArray_Serial + public :: FN_VWSqrSumLocal_Serial + public :: FN_VWSqrSumMaskLocal_Serial + public :: FN_VBufSize_Serial + public :: FN_VBufPack_Serial + public :: FN_VBufUnpack_Serial + public :: FN_VEnableFusedOps_Serial + public :: FN_VEnableLinearCombination_Serial + public :: FN_VEnableScaleAddMulti_Serial + public :: FN_VEnableDotProdMulti_Serial + public :: FN_VEnableLinearSumVectorArray_Serial + public :: FN_VEnableScaleVectorArray_Serial + public :: FN_VEnableConstVectorArray_Serial + public :: FN_VEnableWrmsNormVectorArray_Serial + public :: FN_VEnableWrmsNormMaskVectorArray_Serial + + public :: FN_VGetArrayPointer_Serial + + +! WRAPPER DECLARATIONS +interface +function swigc_FN_VNewEmpty_Serial(farg1, farg2) & +bind(C, name="_wrap_FN_VNewEmpty_Serial") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +integer(C_INT32_T), intent(in) :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR) :: fresult +end function + +function swigc_FN_VNew_Serial(farg1, farg2) & +bind(C, name="_wrap_FN_VNew_Serial") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +integer(C_INT32_T), intent(in) :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR) :: fresult +end function + +function swigc_FN_VMake_Serial(farg1, farg2, farg3) & +bind(C, name="_wrap_FN_VMake_Serial") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +integer(C_INT32_T), intent(in) :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +type(C_PTR) :: fresult +end function + +function swigc_FN_VGetLength_Serial(farg1) & +bind(C, name="_wrap_FN_VGetLength_Serial") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT32_T) :: fresult +end function + +subroutine swigc_FN_VPrint_Serial(farg1) & +bind(C, name="_wrap_FN_VPrint_Serial") +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +end subroutine + +subroutine swigc_FN_VPrintFile_Serial(farg1, farg2) & +bind(C, name="_wrap_FN_VPrintFile_Serial") +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +end subroutine + +function swigc_FN_VGetVectorID_Serial(farg1) & +bind(C, name="_wrap_FN_VGetVectorID_Serial") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT) :: fresult +end function + +function swigc_FN_VCloneEmpty_Serial(farg1) & +bind(C, name="_wrap_FN_VCloneEmpty_Serial") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR) :: fresult +end function + +function swigc_FN_VClone_Serial(farg1) & +bind(C, name="_wrap_FN_VClone_Serial") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR) :: fresult +end function + +subroutine swigc_FN_VDestroy_Serial(farg1) & +bind(C, name="_wrap_FN_VDestroy_Serial") +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +end subroutine + +subroutine swigc_FN_VSpace_Serial(farg1, farg2, farg3) & +bind(C, name="_wrap_FN_VSpace_Serial") +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +end subroutine + +subroutine swigc_FN_VSetArrayPointer_Serial(farg1, farg2) & +bind(C, name="_wrap_FN_VSetArrayPointer_Serial") +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +end subroutine + +subroutine swigc_FN_VLinearSum_Serial(farg1, farg2, farg3, farg4, farg5) & +bind(C, name="_wrap_FN_VLinearSum_Serial") +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE), intent(in) :: farg1 +type(C_PTR), value :: farg2 +real(C_DOUBLE), intent(in) :: farg3 +type(C_PTR), value :: farg4 +type(C_PTR), value :: farg5 +end subroutine + +subroutine swigc_FN_VConst_Serial(farg1, farg2) & +bind(C, name="_wrap_FN_VConst_Serial") +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE), intent(in) :: farg1 +type(C_PTR), value :: farg2 +end subroutine + +subroutine swigc_FN_VProd_Serial(farg1, farg2, farg3) & +bind(C, name="_wrap_FN_VProd_Serial") +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +end subroutine + +subroutine swigc_FN_VDiv_Serial(farg1, farg2, farg3) & +bind(C, name="_wrap_FN_VDiv_Serial") +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +end subroutine + +subroutine swigc_FN_VScale_Serial(farg1, farg2, farg3) & +bind(C, name="_wrap_FN_VScale_Serial") +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE), intent(in) :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +end subroutine + +subroutine swigc_FN_VAbs_Serial(farg1, farg2) & +bind(C, name="_wrap_FN_VAbs_Serial") +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +end subroutine + +subroutine swigc_FN_VInv_Serial(farg1, farg2) & +bind(C, name="_wrap_FN_VInv_Serial") +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +end subroutine + +subroutine swigc_FN_VAddConst_Serial(farg1, farg2, farg3) & +bind(C, name="_wrap_FN_VAddConst_Serial") +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +type(C_PTR), value :: farg3 +end subroutine + +function swigc_FN_VDotProd_Serial(farg1, farg2) & +bind(C, name="_wrap_FN_VDotProd_Serial") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +real(C_DOUBLE) :: fresult +end function + +function swigc_FN_VMaxNorm_Serial(farg1) & +bind(C, name="_wrap_FN_VMaxNorm_Serial") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE) :: fresult +end function + +function swigc_FN_VWrmsNorm_Serial(farg1, farg2) & +bind(C, name="_wrap_FN_VWrmsNorm_Serial") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +real(C_DOUBLE) :: fresult +end function + +function swigc_FN_VWrmsNormMask_Serial(farg1, farg2, farg3) & +bind(C, name="_wrap_FN_VWrmsNormMask_Serial") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +real(C_DOUBLE) :: fresult +end function + +function swigc_FN_VMin_Serial(farg1) & +bind(C, name="_wrap_FN_VMin_Serial") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE) :: fresult +end function + +function swigc_FN_VWL2Norm_Serial(farg1, farg2) & +bind(C, name="_wrap_FN_VWL2Norm_Serial") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +real(C_DOUBLE) :: fresult +end function + +function swigc_FN_VL1Norm_Serial(farg1) & +bind(C, name="_wrap_FN_VL1Norm_Serial") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE) :: fresult +end function + +subroutine swigc_FN_VCompare_Serial(farg1, farg2, farg3) & +bind(C, name="_wrap_FN_VCompare_Serial") +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE), intent(in) :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +end subroutine + +function swigc_FN_VInvTest_Serial(farg1, farg2) & +bind(C, name="_wrap_FN_VInvTest_Serial") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FN_VConstrMask_Serial(farg1, farg2, farg3) & +bind(C, name="_wrap_FN_VConstrMask_Serial") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FN_VMinQuotient_Serial(farg1, farg2) & +bind(C, name="_wrap_FN_VMinQuotient_Serial") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +real(C_DOUBLE) :: fresult +end function + +function swigc_FN_VLinearCombination_Serial(farg1, farg2, farg3, farg4) & +bind(C, name="_wrap_FN_VLinearCombination_Serial") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +integer(C_INT), intent(in) :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +type(C_PTR), value :: farg4 +integer(C_INT) :: fresult +end function + +function swigc_FN_VScaleAddMulti_Serial(farg1, farg2, farg3, farg4, farg5) & +bind(C, name="_wrap_FN_VScaleAddMulti_Serial") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +integer(C_INT), intent(in) :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +type(C_PTR), value :: farg4 +type(C_PTR), value :: farg5 +integer(C_INT) :: fresult +end function + +function swigc_FN_VDotProdMulti_Serial(farg1, farg2, farg3, farg4) & +bind(C, name="_wrap_FN_VDotProdMulti_Serial") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +integer(C_INT), intent(in) :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +type(C_PTR), value :: farg4 +integer(C_INT) :: fresult +end function + +function swigc_FN_VLinearSumVectorArray_Serial(farg1, farg2, farg3, farg4, farg5, farg6) & +bind(C, name="_wrap_FN_VLinearSumVectorArray_Serial") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +integer(C_INT), intent(in) :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +type(C_PTR), value :: farg3 +real(C_DOUBLE), intent(in) :: farg4 +type(C_PTR), value :: farg5 +type(C_PTR), value :: farg6 +integer(C_INT) :: fresult +end function + +function swigc_FN_VScaleVectorArray_Serial(farg1, farg2, farg3, farg4) & +bind(C, name="_wrap_FN_VScaleVectorArray_Serial") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +integer(C_INT), intent(in) :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +type(C_PTR), value :: farg4 +integer(C_INT) :: fresult +end function + +function swigc_FN_VConstVectorArray_Serial(farg1, farg2, farg3) & +bind(C, name="_wrap_FN_VConstVectorArray_Serial") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +integer(C_INT), intent(in) :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FN_VWrmsNormVectorArray_Serial(farg1, farg2, farg3, farg4) & +bind(C, name="_wrap_FN_VWrmsNormVectorArray_Serial") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +integer(C_INT), intent(in) :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +type(C_PTR), value :: farg4 +integer(C_INT) :: fresult +end function + +function swigc_FN_VWrmsNormMaskVectorArray_Serial(farg1, farg2, farg3, farg4, farg5) & +bind(C, name="_wrap_FN_VWrmsNormMaskVectorArray_Serial") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +integer(C_INT), intent(in) :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +type(C_PTR), value :: farg4 +type(C_PTR), value :: farg5 +integer(C_INT) :: fresult +end function + +function swigc_FN_VWSqrSumLocal_Serial(farg1, farg2) & +bind(C, name="_wrap_FN_VWSqrSumLocal_Serial") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +real(C_DOUBLE) :: fresult +end function + +function swigc_FN_VWSqrSumMaskLocal_Serial(farg1, farg2, farg3) & +bind(C, name="_wrap_FN_VWSqrSumMaskLocal_Serial") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +real(C_DOUBLE) :: fresult +end function + +function swigc_FN_VBufSize_Serial(farg1, farg2) & +bind(C, name="_wrap_FN_VBufSize_Serial") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FN_VBufPack_Serial(farg1, farg2) & +bind(C, name="_wrap_FN_VBufPack_Serial") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FN_VBufUnpack_Serial(farg1, farg2) & +bind(C, name="_wrap_FN_VBufUnpack_Serial") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FN_VEnableFusedOps_Serial(farg1, farg2) & +bind(C, name="_wrap_FN_VEnableFusedOps_Serial") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FN_VEnableLinearCombination_Serial(farg1, farg2) & +bind(C, name="_wrap_FN_VEnableLinearCombination_Serial") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FN_VEnableScaleAddMulti_Serial(farg1, farg2) & +bind(C, name="_wrap_FN_VEnableScaleAddMulti_Serial") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FN_VEnableDotProdMulti_Serial(farg1, farg2) & +bind(C, name="_wrap_FN_VEnableDotProdMulti_Serial") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FN_VEnableLinearSumVectorArray_Serial(farg1, farg2) & +bind(C, name="_wrap_FN_VEnableLinearSumVectorArray_Serial") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FN_VEnableScaleVectorArray_Serial(farg1, farg2) & +bind(C, name="_wrap_FN_VEnableScaleVectorArray_Serial") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FN_VEnableConstVectorArray_Serial(farg1, farg2) & +bind(C, name="_wrap_FN_VEnableConstVectorArray_Serial") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FN_VEnableWrmsNormVectorArray_Serial(farg1, farg2) & +bind(C, name="_wrap_FN_VEnableWrmsNormVectorArray_Serial") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FN_VEnableWrmsNormMaskVectorArray_Serial(farg1, farg2) & +bind(C, name="_wrap_FN_VEnableWrmsNormMaskVectorArray_Serial") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + + +function swigc_FN_VGetArrayPointer_Serial(farg1) & +bind(C, name="_wrap_FN_VGetArrayPointer_Serial") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR) :: fresult +end function + +end interface + + +contains + ! MODULE SUBPROGRAMS +function FN_VNewEmpty_Serial(vec_length, sunctx) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +type(N_Vector), pointer :: swig_result +integer(C_INT32_T), intent(in) :: vec_length +type(C_PTR) :: sunctx +type(C_PTR) :: fresult +integer(C_INT32_T) :: farg1 +type(C_PTR) :: farg2 + +farg1 = vec_length +farg2 = sunctx +fresult = swigc_FN_VNewEmpty_Serial(farg1, farg2) +call c_f_pointer(fresult, swig_result) +end function + +function FN_VNew_Serial(vec_length, sunctx) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +type(N_Vector), pointer :: swig_result +integer(C_INT32_T), intent(in) :: vec_length +type(C_PTR) :: sunctx +type(C_PTR) :: fresult +integer(C_INT32_T) :: farg1 +type(C_PTR) :: farg2 + +farg1 = vec_length +farg2 = sunctx +fresult = swigc_FN_VNew_Serial(farg1, farg2) +call c_f_pointer(fresult, swig_result) +end function + +function FN_VMake_Serial(vec_length, v_data, sunctx) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +type(N_Vector), pointer :: swig_result +integer(C_INT32_T), intent(in) :: vec_length +real(C_DOUBLE), dimension(*), target, intent(inout) :: v_data +type(C_PTR) :: sunctx +type(C_PTR) :: fresult +integer(C_INT32_T) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = vec_length +farg2 = c_loc(v_data(1)) +farg3 = sunctx +fresult = swigc_FN_VMake_Serial(farg1, farg2, farg3) +call c_f_pointer(fresult, swig_result) +end function + +function FN_VGetLength_Serial(v) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT32_T) :: swig_result +type(N_Vector), target, intent(inout) :: v +integer(C_INT32_T) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(v) +fresult = swigc_FN_VGetLength_Serial(farg1) +swig_result = fresult +end function + +subroutine FN_VPrint_Serial(v) +use, intrinsic :: ISO_C_BINDING +type(N_Vector), target, intent(inout) :: v +type(C_PTR) :: farg1 + +farg1 = c_loc(v) +call swigc_FN_VPrint_Serial(farg1) +end subroutine + +subroutine FN_VPrintFile_Serial(v, outfile) +use, intrinsic :: ISO_C_BINDING +type(N_Vector), target, intent(inout) :: v +type(C_PTR) :: outfile +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = c_loc(v) +farg2 = outfile +call swigc_FN_VPrintFile_Serial(farg1, farg2) +end subroutine + +function FN_VGetVectorID_Serial(v) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(N_Vector_ID) :: swig_result +type(N_Vector), target, intent(inout) :: v +integer(C_INT) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(v) +fresult = swigc_FN_VGetVectorID_Serial(farg1) +swig_result = fresult +end function + +function FN_VCloneEmpty_Serial(w) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +type(N_Vector), pointer :: swig_result +type(N_Vector), target, intent(inout) :: w +type(C_PTR) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(w) +fresult = swigc_FN_VCloneEmpty_Serial(farg1) +call c_f_pointer(fresult, swig_result) +end function + +function FN_VClone_Serial(w) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +type(N_Vector), pointer :: swig_result +type(N_Vector), target, intent(inout) :: w +type(C_PTR) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(w) +fresult = swigc_FN_VClone_Serial(farg1) +call c_f_pointer(fresult, swig_result) +end function + +subroutine FN_VDestroy_Serial(v) +use, intrinsic :: ISO_C_BINDING +type(N_Vector), target, intent(inout) :: v +type(C_PTR) :: farg1 + +farg1 = c_loc(v) +call swigc_FN_VDestroy_Serial(farg1) +end subroutine + +subroutine FN_VSpace_Serial(v, lrw, liw) +use, intrinsic :: ISO_C_BINDING +type(N_Vector), target, intent(inout) :: v +integer(C_INT32_T), dimension(*), target, intent(inout) :: lrw +integer(C_INT32_T), dimension(*), target, intent(inout) :: liw +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = c_loc(v) +farg2 = c_loc(lrw(1)) +farg3 = c_loc(liw(1)) +call swigc_FN_VSpace_Serial(farg1, farg2, farg3) +end subroutine + +subroutine FN_VSetArrayPointer_Serial(v_data, v) +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE), dimension(*), target, intent(inout) :: v_data +type(N_Vector), target, intent(inout) :: v +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = c_loc(v_data(1)) +farg2 = c_loc(v) +call swigc_FN_VSetArrayPointer_Serial(farg1, farg2) +end subroutine + +subroutine FN_VLinearSum_Serial(a, x, b, y, z) +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE), intent(in) :: a +type(N_Vector), target, intent(inout) :: x +real(C_DOUBLE), intent(in) :: b +type(N_Vector), target, intent(inout) :: y +type(N_Vector), target, intent(inout) :: z +real(C_DOUBLE) :: farg1 +type(C_PTR) :: farg2 +real(C_DOUBLE) :: farg3 +type(C_PTR) :: farg4 +type(C_PTR) :: farg5 + +farg1 = a +farg2 = c_loc(x) +farg3 = b +farg4 = c_loc(y) +farg5 = c_loc(z) +call swigc_FN_VLinearSum_Serial(farg1, farg2, farg3, farg4, farg5) +end subroutine + +subroutine FN_VConst_Serial(c, z) +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE), intent(in) :: c +type(N_Vector), target, intent(inout) :: z +real(C_DOUBLE) :: farg1 +type(C_PTR) :: farg2 + +farg1 = c +farg2 = c_loc(z) +call swigc_FN_VConst_Serial(farg1, farg2) +end subroutine + +subroutine FN_VProd_Serial(x, y, z) +use, intrinsic :: ISO_C_BINDING +type(N_Vector), target, intent(inout) :: x +type(N_Vector), target, intent(inout) :: y +type(N_Vector), target, intent(inout) :: z +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = c_loc(x) +farg2 = c_loc(y) +farg3 = c_loc(z) +call swigc_FN_VProd_Serial(farg1, farg2, farg3) +end subroutine + +subroutine FN_VDiv_Serial(x, y, z) +use, intrinsic :: ISO_C_BINDING +type(N_Vector), target, intent(inout) :: x +type(N_Vector), target, intent(inout) :: y +type(N_Vector), target, intent(inout) :: z +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = c_loc(x) +farg2 = c_loc(y) +farg3 = c_loc(z) +call swigc_FN_VDiv_Serial(farg1, farg2, farg3) +end subroutine + +subroutine FN_VScale_Serial(c, x, z) +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE), intent(in) :: c +type(N_Vector), target, intent(inout) :: x +type(N_Vector), target, intent(inout) :: z +real(C_DOUBLE) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = c +farg2 = c_loc(x) +farg3 = c_loc(z) +call swigc_FN_VScale_Serial(farg1, farg2, farg3) +end subroutine + +subroutine FN_VAbs_Serial(x, z) +use, intrinsic :: ISO_C_BINDING +type(N_Vector), target, intent(inout) :: x +type(N_Vector), target, intent(inout) :: z +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = c_loc(x) +farg2 = c_loc(z) +call swigc_FN_VAbs_Serial(farg1, farg2) +end subroutine + +subroutine FN_VInv_Serial(x, z) +use, intrinsic :: ISO_C_BINDING +type(N_Vector), target, intent(inout) :: x +type(N_Vector), target, intent(inout) :: z +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = c_loc(x) +farg2 = c_loc(z) +call swigc_FN_VInv_Serial(farg1, farg2) +end subroutine + +subroutine FN_VAddConst_Serial(x, b, z) +use, intrinsic :: ISO_C_BINDING +type(N_Vector), target, intent(inout) :: x +real(C_DOUBLE), intent(in) :: b +type(N_Vector), target, intent(inout) :: z +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 +type(C_PTR) :: farg3 + +farg1 = c_loc(x) +farg2 = b +farg3 = c_loc(z) +call swigc_FN_VAddConst_Serial(farg1, farg2, farg3) +end subroutine + +function FN_VDotProd_Serial(x, y) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE) :: swig_result +type(N_Vector), target, intent(inout) :: x +type(N_Vector), target, intent(inout) :: y +real(C_DOUBLE) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = c_loc(x) +farg2 = c_loc(y) +fresult = swigc_FN_VDotProd_Serial(farg1, farg2) +swig_result = fresult +end function + +function FN_VMaxNorm_Serial(x) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE) :: swig_result +type(N_Vector), target, intent(inout) :: x +real(C_DOUBLE) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(x) +fresult = swigc_FN_VMaxNorm_Serial(farg1) +swig_result = fresult +end function + +function FN_VWrmsNorm_Serial(x, w) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE) :: swig_result +type(N_Vector), target, intent(inout) :: x +type(N_Vector), target, intent(inout) :: w +real(C_DOUBLE) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = c_loc(x) +farg2 = c_loc(w) +fresult = swigc_FN_VWrmsNorm_Serial(farg1, farg2) +swig_result = fresult +end function + +function FN_VWrmsNormMask_Serial(x, w, id) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE) :: swig_result +type(N_Vector), target, intent(inout) :: x +type(N_Vector), target, intent(inout) :: w +type(N_Vector), target, intent(inout) :: id +real(C_DOUBLE) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = c_loc(x) +farg2 = c_loc(w) +farg3 = c_loc(id) +fresult = swigc_FN_VWrmsNormMask_Serial(farg1, farg2, farg3) +swig_result = fresult +end function + +function FN_VMin_Serial(x) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE) :: swig_result +type(N_Vector), target, intent(inout) :: x +real(C_DOUBLE) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(x) +fresult = swigc_FN_VMin_Serial(farg1) +swig_result = fresult +end function + +function FN_VWL2Norm_Serial(x, w) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE) :: swig_result +type(N_Vector), target, intent(inout) :: x +type(N_Vector), target, intent(inout) :: w +real(C_DOUBLE) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = c_loc(x) +farg2 = c_loc(w) +fresult = swigc_FN_VWL2Norm_Serial(farg1, farg2) +swig_result = fresult +end function + +function FN_VL1Norm_Serial(x) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE) :: swig_result +type(N_Vector), target, intent(inout) :: x +real(C_DOUBLE) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(x) +fresult = swigc_FN_VL1Norm_Serial(farg1) +swig_result = fresult +end function + +subroutine FN_VCompare_Serial(c, x, z) +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE), intent(in) :: c +type(N_Vector), target, intent(inout) :: x +type(N_Vector), target, intent(inout) :: z +real(C_DOUBLE) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = c +farg2 = c_loc(x) +farg3 = c_loc(z) +call swigc_FN_VCompare_Serial(farg1, farg2, farg3) +end subroutine + +function FN_VInvTest_Serial(x, z) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(N_Vector), target, intent(inout) :: x +type(N_Vector), target, intent(inout) :: z +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = c_loc(x) +farg2 = c_loc(z) +fresult = swigc_FN_VInvTest_Serial(farg1, farg2) +swig_result = fresult +end function + +function FN_VConstrMask_Serial(c, x, m) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(N_Vector), target, intent(inout) :: c +type(N_Vector), target, intent(inout) :: x +type(N_Vector), target, intent(inout) :: m +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = c_loc(c) +farg2 = c_loc(x) +farg3 = c_loc(m) +fresult = swigc_FN_VConstrMask_Serial(farg1, farg2, farg3) +swig_result = fresult +end function + +function FN_VMinQuotient_Serial(num, denom) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE) :: swig_result +type(N_Vector), target, intent(inout) :: num +type(N_Vector), target, intent(inout) :: denom +real(C_DOUBLE) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = c_loc(num) +farg2 = c_loc(denom) +fresult = swigc_FN_VMinQuotient_Serial(farg1, farg2) +swig_result = fresult +end function + +function FN_VLinearCombination_Serial(nvec, c, v, z) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +integer(C_INT), intent(in) :: nvec +real(C_DOUBLE), dimension(*), target, intent(inout) :: c +type(C_PTR) :: v +type(N_Vector), target, intent(inout) :: z +integer(C_INT) :: fresult +integer(C_INT) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 +type(C_PTR) :: farg4 + +farg1 = nvec +farg2 = c_loc(c(1)) +farg3 = v +farg4 = c_loc(z) +fresult = swigc_FN_VLinearCombination_Serial(farg1, farg2, farg3, farg4) +swig_result = fresult +end function + +function FN_VScaleAddMulti_Serial(nvec, a, x, y, z) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +integer(C_INT), intent(in) :: nvec +real(C_DOUBLE), dimension(*), target, intent(inout) :: a +type(N_Vector), target, intent(inout) :: x +type(C_PTR) :: y +type(C_PTR) :: z +integer(C_INT) :: fresult +integer(C_INT) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 +type(C_PTR) :: farg4 +type(C_PTR) :: farg5 + +farg1 = nvec +farg2 = c_loc(a(1)) +farg3 = c_loc(x) +farg4 = y +farg5 = z +fresult = swigc_FN_VScaleAddMulti_Serial(farg1, farg2, farg3, farg4, farg5) +swig_result = fresult +end function + +function FN_VDotProdMulti_Serial(nvec, x, y, dotprods) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +integer(C_INT), intent(in) :: nvec +type(N_Vector), target, intent(inout) :: x +type(C_PTR) :: y +real(C_DOUBLE), dimension(*), target, intent(inout) :: dotprods +integer(C_INT) :: fresult +integer(C_INT) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 +type(C_PTR) :: farg4 + +farg1 = nvec +farg2 = c_loc(x) +farg3 = y +farg4 = c_loc(dotprods(1)) +fresult = swigc_FN_VDotProdMulti_Serial(farg1, farg2, farg3, farg4) +swig_result = fresult +end function + +function FN_VLinearSumVectorArray_Serial(nvec, a, x, b, y, z) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +integer(C_INT), intent(in) :: nvec +real(C_DOUBLE), intent(in) :: a +type(C_PTR) :: x +real(C_DOUBLE), intent(in) :: b +type(C_PTR) :: y +type(C_PTR) :: z +integer(C_INT) :: fresult +integer(C_INT) :: farg1 +real(C_DOUBLE) :: farg2 +type(C_PTR) :: farg3 +real(C_DOUBLE) :: farg4 +type(C_PTR) :: farg5 +type(C_PTR) :: farg6 + +farg1 = nvec +farg2 = a +farg3 = x +farg4 = b +farg5 = y +farg6 = z +fresult = swigc_FN_VLinearSumVectorArray_Serial(farg1, farg2, farg3, farg4, farg5, farg6) +swig_result = fresult +end function + +function FN_VScaleVectorArray_Serial(nvec, c, x, z) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +integer(C_INT), intent(in) :: nvec +real(C_DOUBLE), dimension(*), target, intent(inout) :: c +type(C_PTR) :: x +type(C_PTR) :: z +integer(C_INT) :: fresult +integer(C_INT) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 +type(C_PTR) :: farg4 + +farg1 = nvec +farg2 = c_loc(c(1)) +farg3 = x +farg4 = z +fresult = swigc_FN_VScaleVectorArray_Serial(farg1, farg2, farg3, farg4) +swig_result = fresult +end function + +function FN_VConstVectorArray_Serial(nvecs, c, z) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +integer(C_INT), intent(in) :: nvecs +real(C_DOUBLE), intent(in) :: c +type(C_PTR) :: z +integer(C_INT) :: fresult +integer(C_INT) :: farg1 +real(C_DOUBLE) :: farg2 +type(C_PTR) :: farg3 + +farg1 = nvecs +farg2 = c +farg3 = z +fresult = swigc_FN_VConstVectorArray_Serial(farg1, farg2, farg3) +swig_result = fresult +end function + +function FN_VWrmsNormVectorArray_Serial(nvecs, x, w, nrm) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +integer(C_INT), intent(in) :: nvecs +type(C_PTR) :: x +type(C_PTR) :: w +real(C_DOUBLE), dimension(*), target, intent(inout) :: nrm +integer(C_INT) :: fresult +integer(C_INT) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 +type(C_PTR) :: farg4 + +farg1 = nvecs +farg2 = x +farg3 = w +farg4 = c_loc(nrm(1)) +fresult = swigc_FN_VWrmsNormVectorArray_Serial(farg1, farg2, farg3, farg4) +swig_result = fresult +end function + +function FN_VWrmsNormMaskVectorArray_Serial(nvecs, x, w, id, nrm) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +integer(C_INT), intent(in) :: nvecs +type(C_PTR) :: x +type(C_PTR) :: w +type(N_Vector), target, intent(inout) :: id +real(C_DOUBLE), dimension(*), target, intent(inout) :: nrm +integer(C_INT) :: fresult +integer(C_INT) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 +type(C_PTR) :: farg4 +type(C_PTR) :: farg5 + +farg1 = nvecs +farg2 = x +farg3 = w +farg4 = c_loc(id) +farg5 = c_loc(nrm(1)) +fresult = swigc_FN_VWrmsNormMaskVectorArray_Serial(farg1, farg2, farg3, farg4, farg5) +swig_result = fresult +end function + +function FN_VWSqrSumLocal_Serial(x, w) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE) :: swig_result +type(N_Vector), target, intent(inout) :: x +type(N_Vector), target, intent(inout) :: w +real(C_DOUBLE) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = c_loc(x) +farg2 = c_loc(w) +fresult = swigc_FN_VWSqrSumLocal_Serial(farg1, farg2) +swig_result = fresult +end function + +function FN_VWSqrSumMaskLocal_Serial(x, w, id) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE) :: swig_result +type(N_Vector), target, intent(inout) :: x +type(N_Vector), target, intent(inout) :: w +type(N_Vector), target, intent(inout) :: id +real(C_DOUBLE) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = c_loc(x) +farg2 = c_loc(w) +farg3 = c_loc(id) +fresult = swigc_FN_VWSqrSumMaskLocal_Serial(farg1, farg2, farg3) +swig_result = fresult +end function + +function FN_VBufSize_Serial(x, size) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(N_Vector), target, intent(inout) :: x +integer(C_INT32_T), dimension(*), target, intent(inout) :: size +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = c_loc(x) +farg2 = c_loc(size(1)) +fresult = swigc_FN_VBufSize_Serial(farg1, farg2) +swig_result = fresult +end function + +function FN_VBufPack_Serial(x, buf) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(N_Vector), target, intent(inout) :: x +type(C_PTR) :: buf +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = c_loc(x) +farg2 = buf +fresult = swigc_FN_VBufPack_Serial(farg1, farg2) +swig_result = fresult +end function + +function FN_VBufUnpack_Serial(x, buf) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(N_Vector), target, intent(inout) :: x +type(C_PTR) :: buf +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = c_loc(x) +farg2 = buf +fresult = swigc_FN_VBufUnpack_Serial(farg1, farg2) +swig_result = fresult +end function + +function FN_VEnableFusedOps_Serial(v, tf) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(N_Vector), target, intent(inout) :: v +integer(C_INT), intent(in) :: tf +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = c_loc(v) +farg2 = tf +fresult = swigc_FN_VEnableFusedOps_Serial(farg1, farg2) +swig_result = fresult +end function + +function FN_VEnableLinearCombination_Serial(v, tf) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(N_Vector), target, intent(inout) :: v +integer(C_INT), intent(in) :: tf +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = c_loc(v) +farg2 = tf +fresult = swigc_FN_VEnableLinearCombination_Serial(farg1, farg2) +swig_result = fresult +end function + +function FN_VEnableScaleAddMulti_Serial(v, tf) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(N_Vector), target, intent(inout) :: v +integer(C_INT), intent(in) :: tf +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = c_loc(v) +farg2 = tf +fresult = swigc_FN_VEnableScaleAddMulti_Serial(farg1, farg2) +swig_result = fresult +end function + +function FN_VEnableDotProdMulti_Serial(v, tf) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(N_Vector), target, intent(inout) :: v +integer(C_INT), intent(in) :: tf +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = c_loc(v) +farg2 = tf +fresult = swigc_FN_VEnableDotProdMulti_Serial(farg1, farg2) +swig_result = fresult +end function + +function FN_VEnableLinearSumVectorArray_Serial(v, tf) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(N_Vector), target, intent(inout) :: v +integer(C_INT), intent(in) :: tf +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = c_loc(v) +farg2 = tf +fresult = swigc_FN_VEnableLinearSumVectorArray_Serial(farg1, farg2) +swig_result = fresult +end function + +function FN_VEnableScaleVectorArray_Serial(v, tf) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(N_Vector), target, intent(inout) :: v +integer(C_INT), intent(in) :: tf +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = c_loc(v) +farg2 = tf +fresult = swigc_FN_VEnableScaleVectorArray_Serial(farg1, farg2) +swig_result = fresult +end function + +function FN_VEnableConstVectorArray_Serial(v, tf) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(N_Vector), target, intent(inout) :: v +integer(C_INT), intent(in) :: tf +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = c_loc(v) +farg2 = tf +fresult = swigc_FN_VEnableConstVectorArray_Serial(farg1, farg2) +swig_result = fresult +end function + +function FN_VEnableWrmsNormVectorArray_Serial(v, tf) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(N_Vector), target, intent(inout) :: v +integer(C_INT), intent(in) :: tf +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = c_loc(v) +farg2 = tf +fresult = swigc_FN_VEnableWrmsNormVectorArray_Serial(farg1, farg2) +swig_result = fresult +end function + +function FN_VEnableWrmsNormMaskVectorArray_Serial(v, tf) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(N_Vector), target, intent(inout) :: v +integer(C_INT), intent(in) :: tf +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = c_loc(v) +farg2 = tf +fresult = swigc_FN_VEnableWrmsNormMaskVectorArray_Serial(farg1, farg2) +swig_result = fresult +end function + + +function FN_VGetArrayPointer_Serial(v) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE), dimension(:), pointer :: swig_result +type(N_Vector), target, intent(inout) :: v +type(C_PTR) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(v) +fresult = swigc_FN_VGetArrayPointer_Serial(farg1) +call c_f_pointer(fresult, swig_result, [FN_VGetLength_Serial(v)]) +end function + + +end module diff --git a/src/nvector/serial/fmod_int64/CMakeLists.txt b/src/nvector/serial/fmod_int64/CMakeLists.txt new file mode 100644 index 0000000000..293239b9fb --- /dev/null +++ b/src/nvector/serial/fmod_int64/CMakeLists.txt @@ -0,0 +1,31 @@ +# --------------------------------------------------------------- +# Programmer(s): Cody J. Balos @ LLNL +# --------------------------------------------------------------- +# SUNDIALS Copyright Start +# Copyright (c) 2002-2024, Lawrence Livermore National Security +# and Southern Methodist University. +# All rights reserved. +# +# See the top-level LICENSE and NOTICE files for details. +# +# SPDX-License-Identifier: BSD-3-Clause +# SUNDIALS Copyright End +# --------------------------------------------------------------- +# CMakeLists.txt file for the F2003 serial NVECTOR object library +# --------------------------------------------------------------- + +sundials_add_f2003_library(sundials_fnvecserial_mod + SOURCES + fnvector_serial_mod.f90 fnvector_serial_mod.c + LINK_LIBRARIES + PUBLIC sundials_fcore_mod + OBJECT_LIBRARIES + OUTPUT_NAME + sundials_fnvecserial_mod + VERSION + ${nveclib_VERSION} + SOVERSION + ${nveclib_SOVERSION} +) + +message(STATUS "Added NVECTOR_SERIAL F2003 interface") diff --git a/src/nvector/serial/fmod/fnvector_serial_mod.c b/src/nvector/serial/fmod_int64/fnvector_serial_mod.c similarity index 100% rename from src/nvector/serial/fmod/fnvector_serial_mod.c rename to src/nvector/serial/fmod_int64/fnvector_serial_mod.c diff --git a/src/nvector/serial/fmod/fnvector_serial_mod.f90 b/src/nvector/serial/fmod_int64/fnvector_serial_mod.f90 similarity index 100% rename from src/nvector/serial/fmod/fnvector_serial_mod.f90 rename to src/nvector/serial/fmod_int64/fnvector_serial_mod.f90 diff --git a/src/nvector/sycl/nvector_sycl.cpp b/src/nvector/sycl/nvector_sycl.cpp index 2f5b6a0a61..ce2106e210 100644 --- a/src/nvector/sycl/nvector_sycl.cpp +++ b/src/nvector/sycl/nvector_sycl.cpp @@ -870,7 +870,7 @@ void N_VDestroy_Sycl(N_Vector v) return; } -void N_VSpace_Sycl(N_Vector X, sunindextype* lrw, sunindextype* liw) +void N_VSpace_Sycl(N_Vector X, long int* lrw, long int* liw) { *lrw = NVEC_SYCL_CONTENT(X)->length; *liw = 2; diff --git a/src/sunadaptcontroller/imexgus/CMakeLists.txt b/src/sunadaptcontroller/imexgus/CMakeLists.txt index 9ca6b96a15..8bbef68cdf 100644 --- a/src/sunadaptcontroller/imexgus/CMakeLists.txt +++ b/src/sunadaptcontroller/imexgus/CMakeLists.txt @@ -27,5 +27,5 @@ sundials_add_library(sundials_sunadaptcontrollerimexgus # Add F2003 module if the interface is enabled if(BUILD_FORTRAN_MODULE_INTERFACE) - add_subdirectory(fmod) + add_subdirectory("fmod_int${SUNDIALS_INDEX_SIZE}") endif() diff --git a/src/sunadaptcontroller/imexgus/fmod/CMakeLists.txt b/src/sunadaptcontroller/imexgus/fmod_int32/CMakeLists.txt similarity index 100% rename from src/sunadaptcontroller/imexgus/fmod/CMakeLists.txt rename to src/sunadaptcontroller/imexgus/fmod_int32/CMakeLists.txt diff --git a/src/sunadaptcontroller/imexgus/fmod/fsunadaptcontroller_imexgus_mod.c b/src/sunadaptcontroller/imexgus/fmod_int32/fsunadaptcontroller_imexgus_mod.c similarity index 100% rename from src/sunadaptcontroller/imexgus/fmod/fsunadaptcontroller_imexgus_mod.c rename to src/sunadaptcontroller/imexgus/fmod_int32/fsunadaptcontroller_imexgus_mod.c diff --git a/src/sunadaptcontroller/imexgus/fmod/fsunadaptcontroller_imexgus_mod.f90 b/src/sunadaptcontroller/imexgus/fmod_int32/fsunadaptcontroller_imexgus_mod.f90 similarity index 100% rename from src/sunadaptcontroller/imexgus/fmod/fsunadaptcontroller_imexgus_mod.f90 rename to src/sunadaptcontroller/imexgus/fmod_int32/fsunadaptcontroller_imexgus_mod.f90 diff --git a/src/sunadaptcontroller/imexgus/fmod_int64/CMakeLists.txt b/src/sunadaptcontroller/imexgus/fmod_int64/CMakeLists.txt new file mode 100644 index 0000000000..0c9fd4f2c2 --- /dev/null +++ b/src/sunadaptcontroller/imexgus/fmod_int64/CMakeLists.txt @@ -0,0 +1,26 @@ +# --------------------------------------------------------------- +# Programmer(s): Daniel R. Reynolds @ SMU +# --------------------------------------------------------------- +# SUNDIALS Copyright Start +# Copyright (c) 2002-2024, Lawrence Livermore National Security +# and Southern Methodist University. +# All rights reserved. +# +# See the top-level LICENSE and NOTICE files for details. +# +# SPDX-License-Identifier: BSD-3-Clause +# SUNDIALS Copyright End +# --------------------------------------------------------------- + +sundials_add_f2003_library(sundials_fsunadaptcontrollerimexgus_mod + SOURCES + fsunadaptcontroller_imexgus_mod.f90 fsunadaptcontroller_imexgus_mod.c + LINK_LIBRARIES + PUBLIC sundials_fcore_mod + OBJECT_LIBRARIES + OUTPUT_NAME + sundials_fsunadaptcontrollerimexgus_mod + OBJECT_LIB_ONLY +) + +message(STATUS "Added SUNAdaptController_ImExGus F2003 interface") diff --git a/src/sunadaptcontroller/imexgus/fmod_int64/fsunadaptcontroller_imexgus_mod.c b/src/sunadaptcontroller/imexgus/fmod_int64/fsunadaptcontroller_imexgus_mod.c new file mode 100644 index 0000000000..1351217e15 --- /dev/null +++ b/src/sunadaptcontroller/imexgus/fmod_int64/fsunadaptcontroller_imexgus_mod.c @@ -0,0 +1,359 @@ +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.0 + * + * This file is not intended to be easily readable and contains a number of + * coding conventions designed to improve portability and efficiency. Do not make + * changes to this file unless you know what you are doing--modify the SWIG + * interface file instead. + * ----------------------------------------------------------------------------- */ + +/* --------------------------------------------------------------- + * Programmer(s): Auto-generated by swig. + * --------------------------------------------------------------- + * SUNDIALS Copyright Start + * Copyright (c) 2002-2024, Lawrence Livermore National Security + * and Southern Methodist University. + * All rights reserved. + * + * See the top-level LICENSE and NOTICE files for details. + * + * SPDX-License-Identifier: BSD-3-Clause + * SUNDIALS Copyright End + * -------------------------------------------------------------*/ + +/* ----------------------------------------------------------------------------- + * This section contains generic SWIG labels for method/variable + * declarations/attributes, and other compiler dependent labels. + * ----------------------------------------------------------------------------- */ + +/* template workaround for compilers that cannot correctly implement the C++ standard */ +#ifndef SWIGTEMPLATEDISAMBIGUATOR +# if defined(__SUNPRO_CC) && (__SUNPRO_CC <= 0x560) +# define SWIGTEMPLATEDISAMBIGUATOR template +# elif defined(__HP_aCC) +/* Needed even with `aCC -AA' when `aCC -V' reports HP ANSI C++ B3910B A.03.55 */ +/* If we find a maximum version that requires this, the test would be __HP_aCC <= 35500 for A.03.55 */ +# define SWIGTEMPLATEDISAMBIGUATOR template +# else +# define SWIGTEMPLATEDISAMBIGUATOR +# endif +#endif + +/* inline attribute */ +#ifndef SWIGINLINE +# if defined(__cplusplus) || (defined(__GNUC__) && !defined(__STRICT_ANSI__)) +# define SWIGINLINE inline +# else +# define SWIGINLINE +# endif +#endif + +/* attribute recognised by some compilers to avoid 'unused' warnings */ +#ifndef SWIGUNUSED +# if defined(__GNUC__) +# if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)) +# define SWIGUNUSED __attribute__ ((__unused__)) +# else +# define SWIGUNUSED +# endif +# elif defined(__ICC) +# define SWIGUNUSED __attribute__ ((__unused__)) +# else +# define SWIGUNUSED +# endif +#endif + +#ifndef SWIG_MSC_UNSUPPRESS_4505 +# if defined(_MSC_VER) +# pragma warning(disable : 4505) /* unreferenced local function has been removed */ +# endif +#endif + +#ifndef SWIGUNUSEDPARM +# ifdef __cplusplus +# define SWIGUNUSEDPARM(p) +# else +# define SWIGUNUSEDPARM(p) p SWIGUNUSED +# endif +#endif + +/* internal SWIG method */ +#ifndef SWIGINTERN +# define SWIGINTERN static SWIGUNUSED +#endif + +/* internal inline SWIG method */ +#ifndef SWIGINTERNINLINE +# define SWIGINTERNINLINE SWIGINTERN SWIGINLINE +#endif + +/* qualifier for exported *const* global data variables*/ +#ifndef SWIGEXTERN +# ifdef __cplusplus +# define SWIGEXTERN extern +# else +# define SWIGEXTERN +# endif +#endif + +/* exporting methods */ +#if defined(__GNUC__) +# if (__GNUC__ >= 4) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) +# ifndef GCC_HASCLASSVISIBILITY +# define GCC_HASCLASSVISIBILITY +# endif +# endif +#endif + +#ifndef SWIGEXPORT +# if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__) +# if defined(STATIC_LINKED) +# define SWIGEXPORT +# else +# define SWIGEXPORT __declspec(dllexport) +# endif +# else +# if defined(__GNUC__) && defined(GCC_HASCLASSVISIBILITY) +# define SWIGEXPORT __attribute__ ((visibility("default"))) +# else +# define SWIGEXPORT +# endif +# endif +#endif + +/* calling conventions for Windows */ +#ifndef SWIGSTDCALL +# if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__) +# define SWIGSTDCALL __stdcall +# else +# define SWIGSTDCALL +# endif +#endif + +/* Deal with Microsoft's attempt at deprecating C standard runtime functions */ +#if !defined(SWIG_NO_CRT_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_CRT_SECURE_NO_DEPRECATE) +# define _CRT_SECURE_NO_DEPRECATE +#endif + +/* Deal with Microsoft's attempt at deprecating methods in the standard C++ library */ +#if !defined(SWIG_NO_SCL_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_SCL_SECURE_NO_DEPRECATE) +# define _SCL_SECURE_NO_DEPRECATE +#endif + +/* Deal with Apple's deprecated 'AssertMacros.h' from Carbon-framework */ +#if defined(__APPLE__) && !defined(__ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES) +# define __ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES 0 +#endif + +/* Intel's compiler complains if a variable which was never initialised is + * cast to void, which is a common idiom which we use to indicate that we + * are aware a variable isn't used. So we just silence that warning. + * See: https://github.com/swig/swig/issues/192 for more discussion. + */ +#ifdef __INTEL_COMPILER +# pragma warning disable 592 +#endif + +/* Errors in SWIG */ +#define SWIG_UnknownError -1 +#define SWIG_IOError -2 +#define SWIG_RuntimeError -3 +#define SWIG_IndexError -4 +#define SWIG_TypeError -5 +#define SWIG_DivisionByZero -6 +#define SWIG_OverflowError -7 +#define SWIG_SyntaxError -8 +#define SWIG_ValueError -9 +#define SWIG_SystemError -10 +#define SWIG_AttributeError -11 +#define SWIG_MemoryError -12 +#define SWIG_NullReferenceError -13 + + + + +#include +#define SWIG_exception_impl(DECL, CODE, MSG, RETURNNULL) \ + { printf("In " DECL ": " MSG); assert(0); RETURNNULL; } + + +#include +#if defined(_MSC_VER) || defined(__BORLANDC__) || defined(_WATCOM) +# ifndef snprintf +# define snprintf _snprintf +# endif +#endif + + +/* Support for the `contract` feature. + * + * Note that RETURNNULL is first because it's inserted via a 'Replaceall' in + * the fortran.cxx file. + */ +#define SWIG_contract_assert(RETURNNULL, EXPR, MSG) \ + if (!(EXPR)) { SWIG_exception_impl("$decl", SWIG_ValueError, MSG, RETURNNULL); } + + +#define SWIGVERSION 0x040000 +#define SWIG_VERSION SWIGVERSION + + +#define SWIG_as_voidptr(a) (void *)((const void *)(a)) +#define SWIG_as_voidptrptr(a) ((void)SWIG_as_voidptr(*a),(void**)(a)) + + +#include "sundials/sundials_adaptcontroller.h" + + +#include "sunadaptcontroller/sunadaptcontroller_imexgus.h" + +SWIGEXPORT SUNAdaptController _wrap_FSUNAdaptController_ImExGus(void *farg1) { + SUNAdaptController fresult ; + SUNContext arg1 = (SUNContext) 0 ; + SUNAdaptController result; + + arg1 = (SUNContext)(farg1); + result = (SUNAdaptController)SUNAdaptController_ImExGus(arg1); + fresult = result; + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNAdaptController_SetParams_ImExGus(SUNAdaptController farg1, double const *farg2, double const *farg3, double const *farg4, double const *farg5) { + int fresult ; + SUNAdaptController arg1 = (SUNAdaptController) 0 ; + sunrealtype arg2 ; + sunrealtype arg3 ; + sunrealtype arg4 ; + sunrealtype arg5 ; + SUNErrCode result; + + arg1 = (SUNAdaptController)(farg1); + arg2 = (sunrealtype)(*farg2); + arg3 = (sunrealtype)(*farg3); + arg4 = (sunrealtype)(*farg4); + arg5 = (sunrealtype)(*farg5); + result = (SUNErrCode)SUNAdaptController_SetParams_ImExGus(arg1,arg2,arg3,arg4,arg5); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNAdaptController_GetType_ImExGus(SUNAdaptController farg1) { + int fresult ; + SUNAdaptController arg1 = (SUNAdaptController) 0 ; + SUNAdaptController_Type result; + + arg1 = (SUNAdaptController)(farg1); + result = (SUNAdaptController_Type)SUNAdaptController_GetType_ImExGus(arg1); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNAdaptController_EstimateStep_ImExGus(SUNAdaptController farg1, double const *farg2, int const *farg3, double const *farg4, double *farg5) { + int fresult ; + SUNAdaptController arg1 = (SUNAdaptController) 0 ; + sunrealtype arg2 ; + int arg3 ; + sunrealtype arg4 ; + sunrealtype *arg5 = (sunrealtype *) 0 ; + SUNErrCode result; + + arg1 = (SUNAdaptController)(farg1); + arg2 = (sunrealtype)(*farg2); + arg3 = (int)(*farg3); + arg4 = (sunrealtype)(*farg4); + arg5 = (sunrealtype *)(farg5); + result = (SUNErrCode)SUNAdaptController_EstimateStep_ImExGus(arg1,arg2,arg3,arg4,arg5); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNAdaptController_Reset_ImExGus(SUNAdaptController farg1) { + int fresult ; + SUNAdaptController arg1 = (SUNAdaptController) 0 ; + SUNErrCode result; + + arg1 = (SUNAdaptController)(farg1); + result = (SUNErrCode)SUNAdaptController_Reset_ImExGus(arg1); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNAdaptController_SetDefaults_ImExGus(SUNAdaptController farg1) { + int fresult ; + SUNAdaptController arg1 = (SUNAdaptController) 0 ; + SUNErrCode result; + + arg1 = (SUNAdaptController)(farg1); + result = (SUNErrCode)SUNAdaptController_SetDefaults_ImExGus(arg1); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNAdaptController_Write_ImExGus(SUNAdaptController farg1, void *farg2) { + int fresult ; + SUNAdaptController arg1 = (SUNAdaptController) 0 ; + FILE *arg2 = (FILE *) 0 ; + SUNErrCode result; + + arg1 = (SUNAdaptController)(farg1); + arg2 = (FILE *)(farg2); + result = (SUNErrCode)SUNAdaptController_Write_ImExGus(arg1,arg2); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNAdaptController_SetErrorBias_ImExGus(SUNAdaptController farg1, double const *farg2) { + int fresult ; + SUNAdaptController arg1 = (SUNAdaptController) 0 ; + sunrealtype arg2 ; + SUNErrCode result; + + arg1 = (SUNAdaptController)(farg1); + arg2 = (sunrealtype)(*farg2); + result = (SUNErrCode)SUNAdaptController_SetErrorBias_ImExGus(arg1,arg2); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNAdaptController_UpdateH_ImExGus(SUNAdaptController farg1, double const *farg2, double const *farg3) { + int fresult ; + SUNAdaptController arg1 = (SUNAdaptController) 0 ; + sunrealtype arg2 ; + sunrealtype arg3 ; + SUNErrCode result; + + arg1 = (SUNAdaptController)(farg1); + arg2 = (sunrealtype)(*farg2); + arg3 = (sunrealtype)(*farg3); + result = (SUNErrCode)SUNAdaptController_UpdateH_ImExGus(arg1,arg2,arg3); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNAdaptController_Space_ImExGus(SUNAdaptController farg1, long *farg2, long *farg3) { + int fresult ; + SUNAdaptController arg1 = (SUNAdaptController) 0 ; + long *arg2 = (long *) 0 ; + long *arg3 = (long *) 0 ; + SUNErrCode result; + + arg1 = (SUNAdaptController)(farg1); + arg2 = (long *)(farg2); + arg3 = (long *)(farg3); + result = (SUNErrCode)SUNAdaptController_Space_ImExGus(arg1,arg2,arg3); + fresult = (SUNErrCode)(result); + return fresult; +} + + + diff --git a/src/sunadaptcontroller/imexgus/fmod_int64/fsunadaptcontroller_imexgus_mod.f90 b/src/sunadaptcontroller/imexgus/fmod_int64/fsunadaptcontroller_imexgus_mod.f90 new file mode 100644 index 0000000000..29c98ad378 --- /dev/null +++ b/src/sunadaptcontroller/imexgus/fmod_int64/fsunadaptcontroller_imexgus_mod.f90 @@ -0,0 +1,313 @@ +! This file was automatically generated by SWIG (http://www.swig.org). +! Version 4.0.0 +! +! Do not make changes to this file unless you know what you are doing--modify +! the SWIG interface file instead. + +! --------------------------------------------------------------- +! Programmer(s): Auto-generated by swig. +! --------------------------------------------------------------- +! SUNDIALS Copyright Start +! Copyright (c) 2002-2024, Lawrence Livermore National Security +! and Southern Methodist University. +! All rights reserved. +! +! See the top-level LICENSE and NOTICE files for details. +! +! SPDX-License-Identifier: BSD-3-Clause +! SUNDIALS Copyright End +! --------------------------------------------------------------- + +module fsunadaptcontroller_imexgus_mod + use, intrinsic :: ISO_C_BINDING + use fsundials_core_mod + implicit none + private + + ! DECLARATION CONSTRUCTS + public :: FSUNAdaptController_ImExGus + public :: FSUNAdaptController_SetParams_ImExGus + public :: FSUNAdaptController_GetType_ImExGus + public :: FSUNAdaptController_EstimateStep_ImExGus + public :: FSUNAdaptController_Reset_ImExGus + public :: FSUNAdaptController_SetDefaults_ImExGus + public :: FSUNAdaptController_Write_ImExGus + public :: FSUNAdaptController_SetErrorBias_ImExGus + public :: FSUNAdaptController_UpdateH_ImExGus + public :: FSUNAdaptController_Space_ImExGus + +! WRAPPER DECLARATIONS +interface +function swigc_FSUNAdaptController_ImExGus(farg1) & +bind(C, name="_wrap_FSUNAdaptController_ImExGus") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR) :: fresult +end function + +function swigc_FSUNAdaptController_SetParams_ImExGus(farg1, farg2, farg3, farg4, farg5) & +bind(C, name="_wrap_FSUNAdaptController_SetParams_ImExGus") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +real(C_DOUBLE), intent(in) :: farg3 +real(C_DOUBLE), intent(in) :: farg4 +real(C_DOUBLE), intent(in) :: farg5 +integer(C_INT) :: fresult +end function + +function swigc_FSUNAdaptController_GetType_ImExGus(farg1) & +bind(C, name="_wrap_FSUNAdaptController_GetType_ImExGus") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT) :: fresult +end function + +function swigc_FSUNAdaptController_EstimateStep_ImExGus(farg1, farg2, farg3, farg4, farg5) & +bind(C, name="_wrap_FSUNAdaptController_EstimateStep_ImExGus") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT), intent(in) :: farg3 +real(C_DOUBLE), intent(in) :: farg4 +type(C_PTR), value :: farg5 +integer(C_INT) :: fresult +end function + +function swigc_FSUNAdaptController_Reset_ImExGus(farg1) & +bind(C, name="_wrap_FSUNAdaptController_Reset_ImExGus") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT) :: fresult +end function + +function swigc_FSUNAdaptController_SetDefaults_ImExGus(farg1) & +bind(C, name="_wrap_FSUNAdaptController_SetDefaults_ImExGus") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT) :: fresult +end function + +function swigc_FSUNAdaptController_Write_ImExGus(farg1, farg2) & +bind(C, name="_wrap_FSUNAdaptController_Write_ImExGus") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FSUNAdaptController_SetErrorBias_ImExGus(farg1, farg2) & +bind(C, name="_wrap_FSUNAdaptController_SetErrorBias_ImExGus") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FSUNAdaptController_UpdateH_ImExGus(farg1, farg2, farg3) & +bind(C, name="_wrap_FSUNAdaptController_UpdateH_ImExGus") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +real(C_DOUBLE), intent(in) :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FSUNAdaptController_Space_ImExGus(farg1, farg2, farg3) & +bind(C, name="_wrap_FSUNAdaptController_Space_ImExGus") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +end interface + + +contains + ! MODULE SUBPROGRAMS +function FSUNAdaptController_ImExGus(sunctx) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +type(SUNAdaptController), pointer :: swig_result +type(C_PTR) :: sunctx +type(C_PTR) :: fresult +type(C_PTR) :: farg1 + +farg1 = sunctx +fresult = swigc_FSUNAdaptController_ImExGus(farg1) +call c_f_pointer(fresult, swig_result) +end function + +function FSUNAdaptController_SetParams_ImExGus(c, k1e, k2e, k1i, k2i) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNAdaptController), target, intent(inout) :: c +real(C_DOUBLE), intent(in) :: k1e +real(C_DOUBLE), intent(in) :: k2e +real(C_DOUBLE), intent(in) :: k1i +real(C_DOUBLE), intent(in) :: k2i +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 +real(C_DOUBLE) :: farg3 +real(C_DOUBLE) :: farg4 +real(C_DOUBLE) :: farg5 + +farg1 = c_loc(c) +farg2 = k1e +farg3 = k2e +farg4 = k1i +farg5 = k2i +fresult = swigc_FSUNAdaptController_SetParams_ImExGus(farg1, farg2, farg3, farg4, farg5) +swig_result = fresult +end function + +function FSUNAdaptController_GetType_ImExGus(c) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(SUNAdaptController_Type) :: swig_result +type(SUNAdaptController), target, intent(inout) :: c +integer(C_INT) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(c) +fresult = swigc_FSUNAdaptController_GetType_ImExGus(farg1) +swig_result = fresult +end function + +function FSUNAdaptController_EstimateStep_ImExGus(c, h, p, dsm, hnew) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNAdaptController), target, intent(inout) :: c +real(C_DOUBLE), intent(in) :: h +integer(C_INT), intent(in) :: p +real(C_DOUBLE), intent(in) :: dsm +real(C_DOUBLE), dimension(*), target, intent(inout) :: hnew +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 +integer(C_INT) :: farg3 +real(C_DOUBLE) :: farg4 +type(C_PTR) :: farg5 + +farg1 = c_loc(c) +farg2 = h +farg3 = p +farg4 = dsm +farg5 = c_loc(hnew(1)) +fresult = swigc_FSUNAdaptController_EstimateStep_ImExGus(farg1, farg2, farg3, farg4, farg5) +swig_result = fresult +end function + +function FSUNAdaptController_Reset_ImExGus(c) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNAdaptController), target, intent(inout) :: c +integer(C_INT) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(c) +fresult = swigc_FSUNAdaptController_Reset_ImExGus(farg1) +swig_result = fresult +end function + +function FSUNAdaptController_SetDefaults_ImExGus(c) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNAdaptController), target, intent(inout) :: c +integer(C_INT) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(c) +fresult = swigc_FSUNAdaptController_SetDefaults_ImExGus(farg1) +swig_result = fresult +end function + +function FSUNAdaptController_Write_ImExGus(c, fptr) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNAdaptController), target, intent(inout) :: c +type(C_PTR) :: fptr +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = c_loc(c) +farg2 = fptr +fresult = swigc_FSUNAdaptController_Write_ImExGus(farg1, farg2) +swig_result = fresult +end function + +function FSUNAdaptController_SetErrorBias_ImExGus(c, bias) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNAdaptController), target, intent(inout) :: c +real(C_DOUBLE), intent(in) :: bias +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 + +farg1 = c_loc(c) +farg2 = bias +fresult = swigc_FSUNAdaptController_SetErrorBias_ImExGus(farg1, farg2) +swig_result = fresult +end function + +function FSUNAdaptController_UpdateH_ImExGus(c, h, dsm) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNAdaptController), target, intent(inout) :: c +real(C_DOUBLE), intent(in) :: h +real(C_DOUBLE), intent(in) :: dsm +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 +real(C_DOUBLE) :: farg3 + +farg1 = c_loc(c) +farg2 = h +farg3 = dsm +fresult = swigc_FSUNAdaptController_UpdateH_ImExGus(farg1, farg2, farg3) +swig_result = fresult +end function + +function FSUNAdaptController_Space_ImExGus(c, lenrw, leniw) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNAdaptController), target, intent(inout) :: c +integer(C_LONG), dimension(*), target, intent(inout) :: lenrw +integer(C_LONG), dimension(*), target, intent(inout) :: leniw +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = c_loc(c) +farg2 = c_loc(lenrw(1)) +farg3 = c_loc(leniw(1)) +fresult = swigc_FSUNAdaptController_Space_ImExGus(farg1, farg2, farg3) +swig_result = fresult +end function + + +end module diff --git a/src/sunadaptcontroller/soderlind/CMakeLists.txt b/src/sunadaptcontroller/soderlind/CMakeLists.txt index 0b8c4c8cf4..50cf7330bc 100644 --- a/src/sunadaptcontroller/soderlind/CMakeLists.txt +++ b/src/sunadaptcontroller/soderlind/CMakeLists.txt @@ -27,5 +27,5 @@ sundials_add_library(sundials_sunadaptcontrollersoderlind # Add F2003 module if the interface is enabled if(BUILD_FORTRAN_MODULE_INTERFACE) - add_subdirectory(fmod) + add_subdirectory("fmod_int${SUNDIALS_INDEX_SIZE}") endif() diff --git a/src/sunadaptcontroller/soderlind/fmod/CMakeLists.txt b/src/sunadaptcontroller/soderlind/fmod_int32/CMakeLists.txt similarity index 100% rename from src/sunadaptcontroller/soderlind/fmod/CMakeLists.txt rename to src/sunadaptcontroller/soderlind/fmod_int32/CMakeLists.txt diff --git a/src/sunadaptcontroller/soderlind/fmod/fsunadaptcontroller_soderlind_mod.c b/src/sunadaptcontroller/soderlind/fmod_int32/fsunadaptcontroller_soderlind_mod.c similarity index 100% rename from src/sunadaptcontroller/soderlind/fmod/fsunadaptcontroller_soderlind_mod.c rename to src/sunadaptcontroller/soderlind/fmod_int32/fsunadaptcontroller_soderlind_mod.c diff --git a/src/sunadaptcontroller/soderlind/fmod/fsunadaptcontroller_soderlind_mod.f90 b/src/sunadaptcontroller/soderlind/fmod_int32/fsunadaptcontroller_soderlind_mod.f90 similarity index 100% rename from src/sunadaptcontroller/soderlind/fmod/fsunadaptcontroller_soderlind_mod.f90 rename to src/sunadaptcontroller/soderlind/fmod_int32/fsunadaptcontroller_soderlind_mod.f90 diff --git a/src/sunadaptcontroller/soderlind/fmod_int64/CMakeLists.txt b/src/sunadaptcontroller/soderlind/fmod_int64/CMakeLists.txt new file mode 100644 index 0000000000..44aa8a4922 --- /dev/null +++ b/src/sunadaptcontroller/soderlind/fmod_int64/CMakeLists.txt @@ -0,0 +1,26 @@ +# --------------------------------------------------------------- +# Programmer(s): Daniel R. Reynolds @ SMU +# --------------------------------------------------------------- +# SUNDIALS Copyright Start +# Copyright (c) 2002-2024, Lawrence Livermore National Security +# and Southern Methodist University. +# All rights reserved. +# +# See the top-level LICENSE and NOTICE files for details. +# +# SPDX-License-Identifier: BSD-3-Clause +# SUNDIALS Copyright End +# --------------------------------------------------------------- + +sundials_add_f2003_library(sundials_fsunadaptcontrollersoderlind_mod + SOURCES + fsunadaptcontroller_soderlind_mod.f90 fsunadaptcontroller_soderlind_mod.c + LINK_LIBRARIES + PUBLIC sundials_fcore_mod + OBJECT_LIBRARIES + OUTPUT_NAME + sundials_fsunadaptcontrollersoderlind_mod + OBJECT_LIB_ONLY +) + +message(STATUS "Added SUNAdaptController_Soderlind F2003 interface") diff --git a/src/sunadaptcontroller/soderlind/fmod_int64/fsunadaptcontroller_soderlind_mod.c b/src/sunadaptcontroller/soderlind/fmod_int64/fsunadaptcontroller_soderlind_mod.c new file mode 100644 index 0000000000..f3da8c259b --- /dev/null +++ b/src/sunadaptcontroller/soderlind/fmod_int64/fsunadaptcontroller_soderlind_mod.c @@ -0,0 +1,501 @@ +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.0 + * + * This file is not intended to be easily readable and contains a number of + * coding conventions designed to improve portability and efficiency. Do not make + * changes to this file unless you know what you are doing--modify the SWIG + * interface file instead. + * ----------------------------------------------------------------------------- */ + +/* --------------------------------------------------------------- + * Programmer(s): Auto-generated by swig. + * --------------------------------------------------------------- + * SUNDIALS Copyright Start + * Copyright (c) 2002-2024, Lawrence Livermore National Security + * and Southern Methodist University. + * All rights reserved. + * + * See the top-level LICENSE and NOTICE files for details. + * + * SPDX-License-Identifier: BSD-3-Clause + * SUNDIALS Copyright End + * -------------------------------------------------------------*/ + +/* ----------------------------------------------------------------------------- + * This section contains generic SWIG labels for method/variable + * declarations/attributes, and other compiler dependent labels. + * ----------------------------------------------------------------------------- */ + +/* template workaround for compilers that cannot correctly implement the C++ standard */ +#ifndef SWIGTEMPLATEDISAMBIGUATOR +# if defined(__SUNPRO_CC) && (__SUNPRO_CC <= 0x560) +# define SWIGTEMPLATEDISAMBIGUATOR template +# elif defined(__HP_aCC) +/* Needed even with `aCC -AA' when `aCC -V' reports HP ANSI C++ B3910B A.03.55 */ +/* If we find a maximum version that requires this, the test would be __HP_aCC <= 35500 for A.03.55 */ +# define SWIGTEMPLATEDISAMBIGUATOR template +# else +# define SWIGTEMPLATEDISAMBIGUATOR +# endif +#endif + +/* inline attribute */ +#ifndef SWIGINLINE +# if defined(__cplusplus) || (defined(__GNUC__) && !defined(__STRICT_ANSI__)) +# define SWIGINLINE inline +# else +# define SWIGINLINE +# endif +#endif + +/* attribute recognised by some compilers to avoid 'unused' warnings */ +#ifndef SWIGUNUSED +# if defined(__GNUC__) +# if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)) +# define SWIGUNUSED __attribute__ ((__unused__)) +# else +# define SWIGUNUSED +# endif +# elif defined(__ICC) +# define SWIGUNUSED __attribute__ ((__unused__)) +# else +# define SWIGUNUSED +# endif +#endif + +#ifndef SWIG_MSC_UNSUPPRESS_4505 +# if defined(_MSC_VER) +# pragma warning(disable : 4505) /* unreferenced local function has been removed */ +# endif +#endif + +#ifndef SWIGUNUSEDPARM +# ifdef __cplusplus +# define SWIGUNUSEDPARM(p) +# else +# define SWIGUNUSEDPARM(p) p SWIGUNUSED +# endif +#endif + +/* internal SWIG method */ +#ifndef SWIGINTERN +# define SWIGINTERN static SWIGUNUSED +#endif + +/* internal inline SWIG method */ +#ifndef SWIGINTERNINLINE +# define SWIGINTERNINLINE SWIGINTERN SWIGINLINE +#endif + +/* qualifier for exported *const* global data variables*/ +#ifndef SWIGEXTERN +# ifdef __cplusplus +# define SWIGEXTERN extern +# else +# define SWIGEXTERN +# endif +#endif + +/* exporting methods */ +#if defined(__GNUC__) +# if (__GNUC__ >= 4) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) +# ifndef GCC_HASCLASSVISIBILITY +# define GCC_HASCLASSVISIBILITY +# endif +# endif +#endif + +#ifndef SWIGEXPORT +# if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__) +# if defined(STATIC_LINKED) +# define SWIGEXPORT +# else +# define SWIGEXPORT __declspec(dllexport) +# endif +# else +# if defined(__GNUC__) && defined(GCC_HASCLASSVISIBILITY) +# define SWIGEXPORT __attribute__ ((visibility("default"))) +# else +# define SWIGEXPORT +# endif +# endif +#endif + +/* calling conventions for Windows */ +#ifndef SWIGSTDCALL +# if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__) +# define SWIGSTDCALL __stdcall +# else +# define SWIGSTDCALL +# endif +#endif + +/* Deal with Microsoft's attempt at deprecating C standard runtime functions */ +#if !defined(SWIG_NO_CRT_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_CRT_SECURE_NO_DEPRECATE) +# define _CRT_SECURE_NO_DEPRECATE +#endif + +/* Deal with Microsoft's attempt at deprecating methods in the standard C++ library */ +#if !defined(SWIG_NO_SCL_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_SCL_SECURE_NO_DEPRECATE) +# define _SCL_SECURE_NO_DEPRECATE +#endif + +/* Deal with Apple's deprecated 'AssertMacros.h' from Carbon-framework */ +#if defined(__APPLE__) && !defined(__ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES) +# define __ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES 0 +#endif + +/* Intel's compiler complains if a variable which was never initialised is + * cast to void, which is a common idiom which we use to indicate that we + * are aware a variable isn't used. So we just silence that warning. + * See: https://github.com/swig/swig/issues/192 for more discussion. + */ +#ifdef __INTEL_COMPILER +# pragma warning disable 592 +#endif + +/* Errors in SWIG */ +#define SWIG_UnknownError -1 +#define SWIG_IOError -2 +#define SWIG_RuntimeError -3 +#define SWIG_IndexError -4 +#define SWIG_TypeError -5 +#define SWIG_DivisionByZero -6 +#define SWIG_OverflowError -7 +#define SWIG_SyntaxError -8 +#define SWIG_ValueError -9 +#define SWIG_SystemError -10 +#define SWIG_AttributeError -11 +#define SWIG_MemoryError -12 +#define SWIG_NullReferenceError -13 + + + + +#include +#define SWIG_exception_impl(DECL, CODE, MSG, RETURNNULL) \ + { printf("In " DECL ": " MSG); assert(0); RETURNNULL; } + + +#include +#if defined(_MSC_VER) || defined(__BORLANDC__) || defined(_WATCOM) +# ifndef snprintf +# define snprintf _snprintf +# endif +#endif + + +/* Support for the `contract` feature. + * + * Note that RETURNNULL is first because it's inserted via a 'Replaceall' in + * the fortran.cxx file. + */ +#define SWIG_contract_assert(RETURNNULL, EXPR, MSG) \ + if (!(EXPR)) { SWIG_exception_impl("$decl", SWIG_ValueError, MSG, RETURNNULL); } + + +#define SWIGVERSION 0x040000 +#define SWIG_VERSION SWIGVERSION + + +#define SWIG_as_voidptr(a) (void *)((const void *)(a)) +#define SWIG_as_voidptrptr(a) ((void)SWIG_as_voidptr(*a),(void**)(a)) + + +#include "sundials/sundials_adaptcontroller.h" + + +#include "sunadaptcontroller/sunadaptcontroller_soderlind.h" + +SWIGEXPORT SUNAdaptController _wrap_FSUNAdaptController_Soderlind(void *farg1) { + SUNAdaptController fresult ; + SUNContext arg1 = (SUNContext) 0 ; + SUNAdaptController result; + + arg1 = (SUNContext)(farg1); + result = (SUNAdaptController)SUNAdaptController_Soderlind(arg1); + fresult = result; + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNAdaptController_SetParams_Soderlind(SUNAdaptController farg1, double const *farg2, double const *farg3, double const *farg4, double const *farg5, double const *farg6) { + int fresult ; + SUNAdaptController arg1 = (SUNAdaptController) 0 ; + sunrealtype arg2 ; + sunrealtype arg3 ; + sunrealtype arg4 ; + sunrealtype arg5 ; + sunrealtype arg6 ; + SUNErrCode result; + + arg1 = (SUNAdaptController)(farg1); + arg2 = (sunrealtype)(*farg2); + arg3 = (sunrealtype)(*farg3); + arg4 = (sunrealtype)(*farg4); + arg5 = (sunrealtype)(*farg5); + arg6 = (sunrealtype)(*farg6); + result = (SUNErrCode)SUNAdaptController_SetParams_Soderlind(arg1,arg2,arg3,arg4,arg5,arg6); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNAdaptController_GetType_Soderlind(SUNAdaptController farg1) { + int fresult ; + SUNAdaptController arg1 = (SUNAdaptController) 0 ; + SUNAdaptController_Type result; + + arg1 = (SUNAdaptController)(farg1); + result = (SUNAdaptController_Type)SUNAdaptController_GetType_Soderlind(arg1); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNAdaptController_EstimateStep_Soderlind(SUNAdaptController farg1, double const *farg2, int const *farg3, double const *farg4, double *farg5) { + int fresult ; + SUNAdaptController arg1 = (SUNAdaptController) 0 ; + sunrealtype arg2 ; + int arg3 ; + sunrealtype arg4 ; + sunrealtype *arg5 = (sunrealtype *) 0 ; + SUNErrCode result; + + arg1 = (SUNAdaptController)(farg1); + arg2 = (sunrealtype)(*farg2); + arg3 = (int)(*farg3); + arg4 = (sunrealtype)(*farg4); + arg5 = (sunrealtype *)(farg5); + result = (SUNErrCode)SUNAdaptController_EstimateStep_Soderlind(arg1,arg2,arg3,arg4,arg5); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNAdaptController_Reset_Soderlind(SUNAdaptController farg1) { + int fresult ; + SUNAdaptController arg1 = (SUNAdaptController) 0 ; + SUNErrCode result; + + arg1 = (SUNAdaptController)(farg1); + result = (SUNErrCode)SUNAdaptController_Reset_Soderlind(arg1); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNAdaptController_SetDefaults_Soderlind(SUNAdaptController farg1) { + int fresult ; + SUNAdaptController arg1 = (SUNAdaptController) 0 ; + SUNErrCode result; + + arg1 = (SUNAdaptController)(farg1); + result = (SUNErrCode)SUNAdaptController_SetDefaults_Soderlind(arg1); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNAdaptController_Write_Soderlind(SUNAdaptController farg1, void *farg2) { + int fresult ; + SUNAdaptController arg1 = (SUNAdaptController) 0 ; + FILE *arg2 = (FILE *) 0 ; + SUNErrCode result; + + arg1 = (SUNAdaptController)(farg1); + arg2 = (FILE *)(farg2); + result = (SUNErrCode)SUNAdaptController_Write_Soderlind(arg1,arg2); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNAdaptController_SetErrorBias_Soderlind(SUNAdaptController farg1, double const *farg2) { + int fresult ; + SUNAdaptController arg1 = (SUNAdaptController) 0 ; + sunrealtype arg2 ; + SUNErrCode result; + + arg1 = (SUNAdaptController)(farg1); + arg2 = (sunrealtype)(*farg2); + result = (SUNErrCode)SUNAdaptController_SetErrorBias_Soderlind(arg1,arg2); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNAdaptController_UpdateH_Soderlind(SUNAdaptController farg1, double const *farg2, double const *farg3) { + int fresult ; + SUNAdaptController arg1 = (SUNAdaptController) 0 ; + sunrealtype arg2 ; + sunrealtype arg3 ; + SUNErrCode result; + + arg1 = (SUNAdaptController)(farg1); + arg2 = (sunrealtype)(*farg2); + arg3 = (sunrealtype)(*farg3); + result = (SUNErrCode)SUNAdaptController_UpdateH_Soderlind(arg1,arg2,arg3); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNAdaptController_Space_Soderlind(SUNAdaptController farg1, long *farg2, long *farg3) { + int fresult ; + SUNAdaptController arg1 = (SUNAdaptController) 0 ; + long *arg2 = (long *) 0 ; + long *arg3 = (long *) 0 ; + SUNErrCode result; + + arg1 = (SUNAdaptController)(farg1); + arg2 = (long *)(farg2); + arg3 = (long *)(farg3); + result = (SUNErrCode)SUNAdaptController_Space_Soderlind(arg1,arg2,arg3); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT SUNAdaptController _wrap_FSUNAdaptController_PID(void *farg1) { + SUNAdaptController fresult ; + SUNContext arg1 = (SUNContext) 0 ; + SUNAdaptController result; + + arg1 = (SUNContext)(farg1); + result = (SUNAdaptController)SUNAdaptController_PID(arg1); + fresult = result; + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNAdaptController_SetParams_PID(SUNAdaptController farg1, double const *farg2, double const *farg3, double const *farg4) { + int fresult ; + SUNAdaptController arg1 = (SUNAdaptController) 0 ; + sunrealtype arg2 ; + sunrealtype arg3 ; + sunrealtype arg4 ; + SUNErrCode result; + + arg1 = (SUNAdaptController)(farg1); + arg2 = (sunrealtype)(*farg2); + arg3 = (sunrealtype)(*farg3); + arg4 = (sunrealtype)(*farg4); + result = (SUNErrCode)SUNAdaptController_SetParams_PID(arg1,arg2,arg3,arg4); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT SUNAdaptController _wrap_FSUNAdaptController_PI(void *farg1) { + SUNAdaptController fresult ; + SUNContext arg1 = (SUNContext) 0 ; + SUNAdaptController result; + + arg1 = (SUNContext)(farg1); + result = (SUNAdaptController)SUNAdaptController_PI(arg1); + fresult = result; + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNAdaptController_SetParams_PI(SUNAdaptController farg1, double const *farg2, double const *farg3) { + int fresult ; + SUNAdaptController arg1 = (SUNAdaptController) 0 ; + sunrealtype arg2 ; + sunrealtype arg3 ; + SUNErrCode result; + + arg1 = (SUNAdaptController)(farg1); + arg2 = (sunrealtype)(*farg2); + arg3 = (sunrealtype)(*farg3); + result = (SUNErrCode)SUNAdaptController_SetParams_PI(arg1,arg2,arg3); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT SUNAdaptController _wrap_FSUNAdaptController_I(void *farg1) { + SUNAdaptController fresult ; + SUNContext arg1 = (SUNContext) 0 ; + SUNAdaptController result; + + arg1 = (SUNContext)(farg1); + result = (SUNAdaptController)SUNAdaptController_I(arg1); + fresult = result; + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNAdaptController_SetParams_I(SUNAdaptController farg1, double const *farg2) { + int fresult ; + SUNAdaptController arg1 = (SUNAdaptController) 0 ; + sunrealtype arg2 ; + SUNErrCode result; + + arg1 = (SUNAdaptController)(farg1); + arg2 = (sunrealtype)(*farg2); + result = (SUNErrCode)SUNAdaptController_SetParams_I(arg1,arg2); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT SUNAdaptController _wrap_FSUNAdaptController_ExpGus(void *farg1) { + SUNAdaptController fresult ; + SUNContext arg1 = (SUNContext) 0 ; + SUNAdaptController result; + + arg1 = (SUNContext)(farg1); + result = (SUNAdaptController)SUNAdaptController_ExpGus(arg1); + fresult = result; + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNAdaptController_SetParams_ExpGus(SUNAdaptController farg1, double const *farg2, double const *farg3) { + int fresult ; + SUNAdaptController arg1 = (SUNAdaptController) 0 ; + sunrealtype arg2 ; + sunrealtype arg3 ; + SUNErrCode result; + + arg1 = (SUNAdaptController)(farg1); + arg2 = (sunrealtype)(*farg2); + arg3 = (sunrealtype)(*farg3); + result = (SUNErrCode)SUNAdaptController_SetParams_ExpGus(arg1,arg2,arg3); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT SUNAdaptController _wrap_FSUNAdaptController_ImpGus(void *farg1) { + SUNAdaptController fresult ; + SUNContext arg1 = (SUNContext) 0 ; + SUNAdaptController result; + + arg1 = (SUNContext)(farg1); + result = (SUNAdaptController)SUNAdaptController_ImpGus(arg1); + fresult = result; + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNAdaptController_SetParams_ImpGus(SUNAdaptController farg1, double const *farg2, double const *farg3) { + int fresult ; + SUNAdaptController arg1 = (SUNAdaptController) 0 ; + sunrealtype arg2 ; + sunrealtype arg3 ; + SUNErrCode result; + + arg1 = (SUNAdaptController)(farg1); + arg2 = (sunrealtype)(*farg2); + arg3 = (sunrealtype)(*farg3); + result = (SUNErrCode)SUNAdaptController_SetParams_ImpGus(arg1,arg2,arg3); + fresult = (SUNErrCode)(result); + return fresult; +} + + + diff --git a/src/sunadaptcontroller/soderlind/fmod_int64/fsunadaptcontroller_soderlind_mod.f90 b/src/sunadaptcontroller/soderlind/fmod_int64/fsunadaptcontroller_soderlind_mod.f90 new file mode 100644 index 0000000000..cd6bc5262a --- /dev/null +++ b/src/sunadaptcontroller/soderlind/fmod_int64/fsunadaptcontroller_soderlind_mod.f90 @@ -0,0 +1,577 @@ +! This file was automatically generated by SWIG (http://www.swig.org). +! Version 4.0.0 +! +! Do not make changes to this file unless you know what you are doing--modify +! the SWIG interface file instead. + +! --------------------------------------------------------------- +! Programmer(s): Auto-generated by swig. +! --------------------------------------------------------------- +! SUNDIALS Copyright Start +! Copyright (c) 2002-2024, Lawrence Livermore National Security +! and Southern Methodist University. +! All rights reserved. +! +! See the top-level LICENSE and NOTICE files for details. +! +! SPDX-License-Identifier: BSD-3-Clause +! SUNDIALS Copyright End +! --------------------------------------------------------------- + +module fsunadaptcontroller_soderlind_mod + use, intrinsic :: ISO_C_BINDING + use fsundials_core_mod + implicit none + private + + ! DECLARATION CONSTRUCTS + public :: FSUNAdaptController_Soderlind + public :: FSUNAdaptController_SetParams_Soderlind + public :: FSUNAdaptController_GetType_Soderlind + public :: FSUNAdaptController_EstimateStep_Soderlind + public :: FSUNAdaptController_Reset_Soderlind + public :: FSUNAdaptController_SetDefaults_Soderlind + public :: FSUNAdaptController_Write_Soderlind + public :: FSUNAdaptController_SetErrorBias_Soderlind + public :: FSUNAdaptController_UpdateH_Soderlind + public :: FSUNAdaptController_Space_Soderlind + public :: FSUNAdaptController_PID + public :: FSUNAdaptController_SetParams_PID + public :: FSUNAdaptController_PI + public :: FSUNAdaptController_SetParams_PI + public :: FSUNAdaptController_I + public :: FSUNAdaptController_SetParams_I + public :: FSUNAdaptController_ExpGus + public :: FSUNAdaptController_SetParams_ExpGus + public :: FSUNAdaptController_ImpGus + public :: FSUNAdaptController_SetParams_ImpGus + +! WRAPPER DECLARATIONS +interface +function swigc_FSUNAdaptController_Soderlind(farg1) & +bind(C, name="_wrap_FSUNAdaptController_Soderlind") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR) :: fresult +end function + +function swigc_FSUNAdaptController_SetParams_Soderlind(farg1, farg2, farg3, farg4, farg5, farg6) & +bind(C, name="_wrap_FSUNAdaptController_SetParams_Soderlind") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +real(C_DOUBLE), intent(in) :: farg3 +real(C_DOUBLE), intent(in) :: farg4 +real(C_DOUBLE), intent(in) :: farg5 +real(C_DOUBLE), intent(in) :: farg6 +integer(C_INT) :: fresult +end function + +function swigc_FSUNAdaptController_GetType_Soderlind(farg1) & +bind(C, name="_wrap_FSUNAdaptController_GetType_Soderlind") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT) :: fresult +end function + +function swigc_FSUNAdaptController_EstimateStep_Soderlind(farg1, farg2, farg3, farg4, farg5) & +bind(C, name="_wrap_FSUNAdaptController_EstimateStep_Soderlind") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT), intent(in) :: farg3 +real(C_DOUBLE), intent(in) :: farg4 +type(C_PTR), value :: farg5 +integer(C_INT) :: fresult +end function + +function swigc_FSUNAdaptController_Reset_Soderlind(farg1) & +bind(C, name="_wrap_FSUNAdaptController_Reset_Soderlind") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT) :: fresult +end function + +function swigc_FSUNAdaptController_SetDefaults_Soderlind(farg1) & +bind(C, name="_wrap_FSUNAdaptController_SetDefaults_Soderlind") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT) :: fresult +end function + +function swigc_FSUNAdaptController_Write_Soderlind(farg1, farg2) & +bind(C, name="_wrap_FSUNAdaptController_Write_Soderlind") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FSUNAdaptController_SetErrorBias_Soderlind(farg1, farg2) & +bind(C, name="_wrap_FSUNAdaptController_SetErrorBias_Soderlind") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FSUNAdaptController_UpdateH_Soderlind(farg1, farg2, farg3) & +bind(C, name="_wrap_FSUNAdaptController_UpdateH_Soderlind") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +real(C_DOUBLE), intent(in) :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FSUNAdaptController_Space_Soderlind(farg1, farg2, farg3) & +bind(C, name="_wrap_FSUNAdaptController_Space_Soderlind") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FSUNAdaptController_PID(farg1) & +bind(C, name="_wrap_FSUNAdaptController_PID") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR) :: fresult +end function + +function swigc_FSUNAdaptController_SetParams_PID(farg1, farg2, farg3, farg4) & +bind(C, name="_wrap_FSUNAdaptController_SetParams_PID") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +real(C_DOUBLE), intent(in) :: farg3 +real(C_DOUBLE), intent(in) :: farg4 +integer(C_INT) :: fresult +end function + +function swigc_FSUNAdaptController_PI(farg1) & +bind(C, name="_wrap_FSUNAdaptController_PI") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR) :: fresult +end function + +function swigc_FSUNAdaptController_SetParams_PI(farg1, farg2, farg3) & +bind(C, name="_wrap_FSUNAdaptController_SetParams_PI") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +real(C_DOUBLE), intent(in) :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FSUNAdaptController_I(farg1) & +bind(C, name="_wrap_FSUNAdaptController_I") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR) :: fresult +end function + +function swigc_FSUNAdaptController_SetParams_I(farg1, farg2) & +bind(C, name="_wrap_FSUNAdaptController_SetParams_I") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FSUNAdaptController_ExpGus(farg1) & +bind(C, name="_wrap_FSUNAdaptController_ExpGus") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR) :: fresult +end function + +function swigc_FSUNAdaptController_SetParams_ExpGus(farg1, farg2, farg3) & +bind(C, name="_wrap_FSUNAdaptController_SetParams_ExpGus") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +real(C_DOUBLE), intent(in) :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FSUNAdaptController_ImpGus(farg1) & +bind(C, name="_wrap_FSUNAdaptController_ImpGus") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR) :: fresult +end function + +function swigc_FSUNAdaptController_SetParams_ImpGus(farg1, farg2, farg3) & +bind(C, name="_wrap_FSUNAdaptController_SetParams_ImpGus") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +real(C_DOUBLE), intent(in) :: farg3 +integer(C_INT) :: fresult +end function + +end interface + + +contains + ! MODULE SUBPROGRAMS +function FSUNAdaptController_Soderlind(sunctx) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +type(SUNAdaptController), pointer :: swig_result +type(C_PTR) :: sunctx +type(C_PTR) :: fresult +type(C_PTR) :: farg1 + +farg1 = sunctx +fresult = swigc_FSUNAdaptController_Soderlind(farg1) +call c_f_pointer(fresult, swig_result) +end function + +function FSUNAdaptController_SetParams_Soderlind(c, k1, k2, k3, k4, k5) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNAdaptController), target, intent(inout) :: c +real(C_DOUBLE), intent(in) :: k1 +real(C_DOUBLE), intent(in) :: k2 +real(C_DOUBLE), intent(in) :: k3 +real(C_DOUBLE), intent(in) :: k4 +real(C_DOUBLE), intent(in) :: k5 +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 +real(C_DOUBLE) :: farg3 +real(C_DOUBLE) :: farg4 +real(C_DOUBLE) :: farg5 +real(C_DOUBLE) :: farg6 + +farg1 = c_loc(c) +farg2 = k1 +farg3 = k2 +farg4 = k3 +farg5 = k4 +farg6 = k5 +fresult = swigc_FSUNAdaptController_SetParams_Soderlind(farg1, farg2, farg3, farg4, farg5, farg6) +swig_result = fresult +end function + +function FSUNAdaptController_GetType_Soderlind(c) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(SUNAdaptController_Type) :: swig_result +type(SUNAdaptController), target, intent(inout) :: c +integer(C_INT) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(c) +fresult = swigc_FSUNAdaptController_GetType_Soderlind(farg1) +swig_result = fresult +end function + +function FSUNAdaptController_EstimateStep_Soderlind(c, h, p, dsm, hnew) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNAdaptController), target, intent(inout) :: c +real(C_DOUBLE), intent(in) :: h +integer(C_INT), intent(in) :: p +real(C_DOUBLE), intent(in) :: dsm +real(C_DOUBLE), dimension(*), target, intent(inout) :: hnew +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 +integer(C_INT) :: farg3 +real(C_DOUBLE) :: farg4 +type(C_PTR) :: farg5 + +farg1 = c_loc(c) +farg2 = h +farg3 = p +farg4 = dsm +farg5 = c_loc(hnew(1)) +fresult = swigc_FSUNAdaptController_EstimateStep_Soderlind(farg1, farg2, farg3, farg4, farg5) +swig_result = fresult +end function + +function FSUNAdaptController_Reset_Soderlind(c) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNAdaptController), target, intent(inout) :: c +integer(C_INT) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(c) +fresult = swigc_FSUNAdaptController_Reset_Soderlind(farg1) +swig_result = fresult +end function + +function FSUNAdaptController_SetDefaults_Soderlind(c) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNAdaptController), target, intent(inout) :: c +integer(C_INT) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(c) +fresult = swigc_FSUNAdaptController_SetDefaults_Soderlind(farg1) +swig_result = fresult +end function + +function FSUNAdaptController_Write_Soderlind(c, fptr) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNAdaptController), target, intent(inout) :: c +type(C_PTR) :: fptr +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = c_loc(c) +farg2 = fptr +fresult = swigc_FSUNAdaptController_Write_Soderlind(farg1, farg2) +swig_result = fresult +end function + +function FSUNAdaptController_SetErrorBias_Soderlind(c, bias) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNAdaptController), target, intent(inout) :: c +real(C_DOUBLE), intent(in) :: bias +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 + +farg1 = c_loc(c) +farg2 = bias +fresult = swigc_FSUNAdaptController_SetErrorBias_Soderlind(farg1, farg2) +swig_result = fresult +end function + +function FSUNAdaptController_UpdateH_Soderlind(c, h, dsm) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNAdaptController), target, intent(inout) :: c +real(C_DOUBLE), intent(in) :: h +real(C_DOUBLE), intent(in) :: dsm +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 +real(C_DOUBLE) :: farg3 + +farg1 = c_loc(c) +farg2 = h +farg3 = dsm +fresult = swigc_FSUNAdaptController_UpdateH_Soderlind(farg1, farg2, farg3) +swig_result = fresult +end function + +function FSUNAdaptController_Space_Soderlind(c, lenrw, leniw) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNAdaptController), target, intent(inout) :: c +integer(C_LONG), dimension(*), target, intent(inout) :: lenrw +integer(C_LONG), dimension(*), target, intent(inout) :: leniw +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = c_loc(c) +farg2 = c_loc(lenrw(1)) +farg3 = c_loc(leniw(1)) +fresult = swigc_FSUNAdaptController_Space_Soderlind(farg1, farg2, farg3) +swig_result = fresult +end function + +function FSUNAdaptController_PID(sunctx) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +type(SUNAdaptController), pointer :: swig_result +type(C_PTR) :: sunctx +type(C_PTR) :: fresult +type(C_PTR) :: farg1 + +farg1 = sunctx +fresult = swigc_FSUNAdaptController_PID(farg1) +call c_f_pointer(fresult, swig_result) +end function + +function FSUNAdaptController_SetParams_PID(c, k1, k2, k3) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNAdaptController), target, intent(inout) :: c +real(C_DOUBLE), intent(in) :: k1 +real(C_DOUBLE), intent(in) :: k2 +real(C_DOUBLE), intent(in) :: k3 +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 +real(C_DOUBLE) :: farg3 +real(C_DOUBLE) :: farg4 + +farg1 = c_loc(c) +farg2 = k1 +farg3 = k2 +farg4 = k3 +fresult = swigc_FSUNAdaptController_SetParams_PID(farg1, farg2, farg3, farg4) +swig_result = fresult +end function + +function FSUNAdaptController_PI(sunctx) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +type(SUNAdaptController), pointer :: swig_result +type(C_PTR) :: sunctx +type(C_PTR) :: fresult +type(C_PTR) :: farg1 + +farg1 = sunctx +fresult = swigc_FSUNAdaptController_PI(farg1) +call c_f_pointer(fresult, swig_result) +end function + +function FSUNAdaptController_SetParams_PI(c, k1, k2) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNAdaptController), target, intent(inout) :: c +real(C_DOUBLE), intent(in) :: k1 +real(C_DOUBLE), intent(in) :: k2 +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 +real(C_DOUBLE) :: farg3 + +farg1 = c_loc(c) +farg2 = k1 +farg3 = k2 +fresult = swigc_FSUNAdaptController_SetParams_PI(farg1, farg2, farg3) +swig_result = fresult +end function + +function FSUNAdaptController_I(sunctx) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +type(SUNAdaptController), pointer :: swig_result +type(C_PTR) :: sunctx +type(C_PTR) :: fresult +type(C_PTR) :: farg1 + +farg1 = sunctx +fresult = swigc_FSUNAdaptController_I(farg1) +call c_f_pointer(fresult, swig_result) +end function + +function FSUNAdaptController_SetParams_I(c, k1) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNAdaptController), target, intent(inout) :: c +real(C_DOUBLE), intent(in) :: k1 +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 + +farg1 = c_loc(c) +farg2 = k1 +fresult = swigc_FSUNAdaptController_SetParams_I(farg1, farg2) +swig_result = fresult +end function + +function FSUNAdaptController_ExpGus(sunctx) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +type(SUNAdaptController), pointer :: swig_result +type(C_PTR) :: sunctx +type(C_PTR) :: fresult +type(C_PTR) :: farg1 + +farg1 = sunctx +fresult = swigc_FSUNAdaptController_ExpGus(farg1) +call c_f_pointer(fresult, swig_result) +end function + +function FSUNAdaptController_SetParams_ExpGus(c, k1, k2) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNAdaptController), target, intent(inout) :: c +real(C_DOUBLE), intent(in) :: k1 +real(C_DOUBLE), intent(in) :: k2 +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 +real(C_DOUBLE) :: farg3 + +farg1 = c_loc(c) +farg2 = k1 +farg3 = k2 +fresult = swigc_FSUNAdaptController_SetParams_ExpGus(farg1, farg2, farg3) +swig_result = fresult +end function + +function FSUNAdaptController_ImpGus(sunctx) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +type(SUNAdaptController), pointer :: swig_result +type(C_PTR) :: sunctx +type(C_PTR) :: fresult +type(C_PTR) :: farg1 + +farg1 = sunctx +fresult = swigc_FSUNAdaptController_ImpGus(farg1) +call c_f_pointer(fresult, swig_result) +end function + +function FSUNAdaptController_SetParams_ImpGus(c, k1, k2) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNAdaptController), target, intent(inout) :: c +real(C_DOUBLE), intent(in) :: k1 +real(C_DOUBLE), intent(in) :: k2 +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 +real(C_DOUBLE) :: farg3 + +farg1 = c_loc(c) +farg2 = k1 +farg3 = k2 +fresult = swigc_FSUNAdaptController_SetParams_ImpGus(farg1, farg2, farg3) +swig_result = fresult +end function + + +end module diff --git a/src/sundials/CMakeLists.txt b/src/sundials/CMakeLists.txt index 8c91a3fd6d..bde159761c 100644 --- a/src/sundials/CMakeLists.txt +++ b/src/sundials/CMakeLists.txt @@ -169,5 +169,5 @@ generate_export_header( # Add F2003 module if the interface is enabled if(BUILD_FORTRAN_MODULE_INTERFACE) - add_subdirectory(fmod) + add_subdirectory("fmod_int${SUNDIALS_INDEX_SIZE}") endif() diff --git a/src/sundials/fmod/CMakeLists.txt b/src/sundials/fmod_int32/CMakeLists.txt similarity index 100% rename from src/sundials/fmod/CMakeLists.txt rename to src/sundials/fmod_int32/CMakeLists.txt diff --git a/src/sundials/fmod_int32/fsundials_core_mod.c b/src/sundials/fmod_int32/fsundials_core_mod.c new file mode 100644 index 0000000000..ad1f31a295 --- /dev/null +++ b/src/sundials/fmod_int32/fsundials_core_mod.c @@ -0,0 +1,2651 @@ +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.0 + * + * This file is not intended to be easily readable and contains a number of + * coding conventions designed to improve portability and efficiency. Do not make + * changes to this file unless you know what you are doing--modify the SWIG + * interface file instead. + * ----------------------------------------------------------------------------- */ + +/* --------------------------------------------------------------- + * Programmer(s): Auto-generated by swig. + * --------------------------------------------------------------- + * SUNDIALS Copyright Start + * Copyright (c) 2002-2024, Lawrence Livermore National Security + * and Southern Methodist University. + * All rights reserved. + * + * See the top-level LICENSE and NOTICE files for details. + * + * SPDX-License-Identifier: BSD-3-Clause + * SUNDIALS Copyright End + * -------------------------------------------------------------*/ + + +/* --------------------------------------------------------------- + * Programmer(s): Auto-generated by swig. + * --------------------------------------------------------------- + * SUNDIALS Copyright Start + * Copyright (c) 2002-2024, Lawrence Livermore National Security + * and Southern Methodist University. + * All rights reserved. + * + * See the top-level LICENSE and NOTICE files for details. + * + * SPDX-License-Identifier: BSD-3-Clause + * SUNDIALS Copyright End + * -------------------------------------------------------------*/ + +/* ----------------------------------------------------------------------------- + * This section contains generic SWIG labels for method/variable + * declarations/attributes, and other compiler dependent labels. + * ----------------------------------------------------------------------------- */ + +/* template workaround for compilers that cannot correctly implement the C++ standard */ +#ifndef SWIGTEMPLATEDISAMBIGUATOR +# if defined(__SUNPRO_CC) && (__SUNPRO_CC <= 0x560) +# define SWIGTEMPLATEDISAMBIGUATOR template +# elif defined(__HP_aCC) +/* Needed even with `aCC -AA' when `aCC -V' reports HP ANSI C++ B3910B A.03.55 */ +/* If we find a maximum version that requires this, the test would be __HP_aCC <= 35500 for A.03.55 */ +# define SWIGTEMPLATEDISAMBIGUATOR template +# else +# define SWIGTEMPLATEDISAMBIGUATOR +# endif +#endif + +/* inline attribute */ +#ifndef SWIGINLINE +# if defined(__cplusplus) || (defined(__GNUC__) && !defined(__STRICT_ANSI__)) +# define SWIGINLINE inline +# else +# define SWIGINLINE +# endif +#endif + +/* attribute recognised by some compilers to avoid 'unused' warnings */ +#ifndef SWIGUNUSED +# if defined(__GNUC__) +# if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)) +# define SWIGUNUSED __attribute__ ((__unused__)) +# else +# define SWIGUNUSED +# endif +# elif defined(__ICC) +# define SWIGUNUSED __attribute__ ((__unused__)) +# else +# define SWIGUNUSED +# endif +#endif + +#ifndef SWIG_MSC_UNSUPPRESS_4505 +# if defined(_MSC_VER) +# pragma warning(disable : 4505) /* unreferenced local function has been removed */ +# endif +#endif + +#ifndef SWIGUNUSEDPARM +# ifdef __cplusplus +# define SWIGUNUSEDPARM(p) +# else +# define SWIGUNUSEDPARM(p) p SWIGUNUSED +# endif +#endif + +/* internal SWIG method */ +#ifndef SWIGINTERN +# define SWIGINTERN static SWIGUNUSED +#endif + +/* internal inline SWIG method */ +#ifndef SWIGINTERNINLINE +# define SWIGINTERNINLINE SWIGINTERN SWIGINLINE +#endif + +/* qualifier for exported *const* global data variables*/ +#ifndef SWIGEXTERN +# ifdef __cplusplus +# define SWIGEXTERN extern +# else +# define SWIGEXTERN +# endif +#endif + +/* exporting methods */ +#if defined(__GNUC__) +# if (__GNUC__ >= 4) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) +# ifndef GCC_HASCLASSVISIBILITY +# define GCC_HASCLASSVISIBILITY +# endif +# endif +#endif + +#ifndef SWIGEXPORT +# if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__) +# if defined(STATIC_LINKED) +# define SWIGEXPORT +# else +# define SWIGEXPORT __declspec(dllexport) +# endif +# else +# if defined(__GNUC__) && defined(GCC_HASCLASSVISIBILITY) +# define SWIGEXPORT __attribute__ ((visibility("default"))) +# else +# define SWIGEXPORT +# endif +# endif +#endif + +/* calling conventions for Windows */ +#ifndef SWIGSTDCALL +# if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__) +# define SWIGSTDCALL __stdcall +# else +# define SWIGSTDCALL +# endif +#endif + +/* Deal with Microsoft's attempt at deprecating C standard runtime functions */ +#if !defined(SWIG_NO_CRT_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_CRT_SECURE_NO_DEPRECATE) +# define _CRT_SECURE_NO_DEPRECATE +#endif + +/* Deal with Microsoft's attempt at deprecating methods in the standard C++ library */ +#if !defined(SWIG_NO_SCL_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_SCL_SECURE_NO_DEPRECATE) +# define _SCL_SECURE_NO_DEPRECATE +#endif + +/* Deal with Apple's deprecated 'AssertMacros.h' from Carbon-framework */ +#if defined(__APPLE__) && !defined(__ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES) +# define __ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES 0 +#endif + +/* Intel's compiler complains if a variable which was never initialised is + * cast to void, which is a common idiom which we use to indicate that we + * are aware a variable isn't used. So we just silence that warning. + * See: https://github.com/swig/swig/issues/192 for more discussion. + */ +#ifdef __INTEL_COMPILER +# pragma warning disable 592 +#endif + +/* Errors in SWIG */ +#define SWIG_UnknownError -1 +#define SWIG_IOError -2 +#define SWIG_RuntimeError -3 +#define SWIG_IndexError -4 +#define SWIG_TypeError -5 +#define SWIG_DivisionByZero -6 +#define SWIG_OverflowError -7 +#define SWIG_SyntaxError -8 +#define SWIG_ValueError -9 +#define SWIG_SystemError -10 +#define SWIG_AttributeError -11 +#define SWIG_MemoryError -12 +#define SWIG_NullReferenceError -13 + + + + +#include +#define SWIG_exception_impl(DECL, CODE, MSG, RETURNNULL) \ + { printf("In " DECL ": " MSG); assert(0); RETURNNULL; } + + +#include +#if defined(_MSC_VER) || defined(__BORLANDC__) || defined(_WATCOM) +# ifndef snprintf +# define snprintf _snprintf +# endif +#endif + + +/* Support for the `contract` feature. + * + * Note that RETURNNULL is first because it's inserted via a 'Replaceall' in + * the fortran.cxx file. + */ +#define SWIG_contract_assert(RETURNNULL, EXPR, MSG) \ + if (!(EXPR)) { SWIG_exception_impl("$decl", SWIG_ValueError, MSG, RETURNNULL); } + + +#define SWIGVERSION 0x040000 +#define SWIG_VERSION SWIGVERSION + + +#define SWIG_as_voidptr(a) (void *)((const void *)(a)) +#define SWIG_as_voidptrptr(a) ((void)SWIG_as_voidptr(*a),(void**)(a)) + + +#include + + +#include "sundials/sundials_types.h" + +#ifndef SUNDIALS_DOUBLE_PRECISION +#error "The Fortran bindings are only targeted at double-precision" +#endif + + +#include "sundials/sundials_context.h" +#include "sundials/sundials_errors.h" +#include "sundials/sundials_profiler.h" + + +#include +#ifdef _MSC_VER +# ifndef strtoull +# define strtoull _strtoui64 +# endif +# ifndef strtoll +# define strtoll _strtoi64 +# endif +#endif + + +typedef struct { + void* data; + size_t size; +} SwigArrayWrapper; + + +SWIGINTERN SwigArrayWrapper SwigArrayWrapper_uninitialized() { + SwigArrayWrapper result; + result.data = NULL; + result.size = 0; + return result; +} + + +#include + + +#include "sundials/sundials_profiler.h" +#if SUNDIALS_MPI_ENABLED +#include +#endif + + +#include "sundials/sundials_logger.h" +#if SUNDIALS_MPI_ENABLED +#include +#endif + + +#include "sundials/sundials_futils.h" + + +#include "sundials/sundials_nvector.h" + + +#include "sundials/sundials_matrix.h" + + +#include "sundials/sundials_iterative.h" +#include "sundials/sundials_linearsolver.h" + + +#include "sundials/sundials_nonlinearsolver.h" + + +#include "sundials/sundials_adaptcontroller.h" + + +SWIGEXPORT SWIGEXTERN int const _wrap_SUN_COMM_NULL = (int)(0); + +SWIGEXPORT SWIGEXTERN int const _wrap_SUNFALSE = (int)(0); + +SWIGEXPORT SWIGEXTERN int const _wrap_SUNTRUE = (int)(1); + +SWIGEXPORT void _wrap_FSUNLogErrHandlerFn(int const *farg1, SwigArrayWrapper *farg2, SwigArrayWrapper *farg3, SwigArrayWrapper *farg4, int const *farg5, void *farg6, void *farg7) { + int arg1 ; + char *arg2 = (char *) 0 ; + char *arg3 = (char *) 0 ; + char *arg4 = (char *) 0 ; + SUNErrCode arg5 ; + void *arg6 = (void *) 0 ; + SUNContext arg7 = (SUNContext) 0 ; + + arg1 = (int)(*farg1); + arg2 = (char *)(farg2->data); + arg3 = (char *)(farg3->data); + arg4 = (char *)(farg4->data); + arg5 = (SUNErrCode)(*farg5); + arg6 = (void *)(farg6); + arg7 = (SUNContext)(farg7); + SUNLogErrHandlerFn(arg1,(char const *)arg2,(char const *)arg3,(char const *)arg4,arg5,arg6,arg7); +} + + +SWIGEXPORT void _wrap_FSUNAbortErrHandlerFn(int const *farg1, SwigArrayWrapper *farg2, SwigArrayWrapper *farg3, SwigArrayWrapper *farg4, int const *farg5, void *farg6, void *farg7) { + int arg1 ; + char *arg2 = (char *) 0 ; + char *arg3 = (char *) 0 ; + char *arg4 = (char *) 0 ; + SUNErrCode arg5 ; + void *arg6 = (void *) 0 ; + SUNContext arg7 = (SUNContext) 0 ; + + arg1 = (int)(*farg1); + arg2 = (char *)(farg2->data); + arg3 = (char *)(farg3->data); + arg4 = (char *)(farg4->data); + arg5 = (SUNErrCode)(*farg5); + arg6 = (void *)(farg6); + arg7 = (SUNContext)(farg7); + SUNAbortErrHandlerFn(arg1,(char const *)arg2,(char const *)arg3,(char const *)arg4,arg5,arg6,arg7); +} + + +SWIGEXPORT SwigArrayWrapper _wrap_FSUNGetErrMsg(int const *farg1) { + SwigArrayWrapper fresult ; + SUNErrCode arg1 ; + char *result = 0 ; + + arg1 = (SUNErrCode)(*farg1); + result = (char *)SUNGetErrMsg(arg1); + fresult.size = strlen((const char*)(result)); + fresult.data = (char *)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNContext_Create(int const *farg1, void *farg2) { + int fresult ; + SUNComm arg1 ; + SUNContext *arg2 = (SUNContext *) 0 ; + SUNErrCode result; + +#if SUNDIALS_MPI_ENABLED + int flag = 0; + MPI_Initialized(&flag); + if(flag) { + arg1 = MPI_Comm_f2c((MPI_Fint)(*farg1)); + } else { + arg1 = SUN_COMM_NULL; + } +#else + arg1 = *farg1; +#endif + arg2 = (SUNContext *)(farg2); + result = (SUNErrCode)SUNContext_Create(arg1,arg2); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNContext_GetLastError(void *farg1) { + int fresult ; + SUNContext arg1 = (SUNContext) 0 ; + SUNErrCode result; + + arg1 = (SUNContext)(farg1); + result = (SUNErrCode)SUNContext_GetLastError(arg1); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNContext_PeekLastError(void *farg1) { + int fresult ; + SUNContext arg1 = (SUNContext) 0 ; + SUNErrCode result; + + arg1 = (SUNContext)(farg1); + result = (SUNErrCode)SUNContext_PeekLastError(arg1); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNContext_PushErrHandler(void *farg1, SUNErrHandlerFn farg2, void *farg3) { + int fresult ; + SUNContext arg1 = (SUNContext) 0 ; + SUNErrHandlerFn arg2 = (SUNErrHandlerFn) 0 ; + void *arg3 = (void *) 0 ; + SUNErrCode result; + + arg1 = (SUNContext)(farg1); + arg2 = (SUNErrHandlerFn)(farg2); + arg3 = (void *)(farg3); + result = (SUNErrCode)SUNContext_PushErrHandler(arg1,arg2,arg3); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNContext_PopErrHandler(void *farg1) { + int fresult ; + SUNContext arg1 = (SUNContext) 0 ; + SUNErrCode result; + + arg1 = (SUNContext)(farg1); + result = (SUNErrCode)SUNContext_PopErrHandler(arg1); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNContext_ClearErrHandlers(void *farg1) { + int fresult ; + SUNContext arg1 = (SUNContext) 0 ; + SUNErrCode result; + + arg1 = (SUNContext)(farg1); + result = (SUNErrCode)SUNContext_ClearErrHandlers(arg1); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNContext_GetProfiler(void *farg1, void *farg2) { + int fresult ; + SUNContext arg1 = (SUNContext) 0 ; + SUNProfiler *arg2 = (SUNProfiler *) 0 ; + SUNErrCode result; + + arg1 = (SUNContext)(farg1); + arg2 = (SUNProfiler *)(farg2); + result = (SUNErrCode)SUNContext_GetProfiler(arg1,arg2); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNContext_SetProfiler(void *farg1, void *farg2) { + int fresult ; + SUNContext arg1 = (SUNContext) 0 ; + SUNProfiler arg2 = (SUNProfiler) 0 ; + SUNErrCode result; + + arg1 = (SUNContext)(farg1); + arg2 = (SUNProfiler)(farg2); + result = (SUNErrCode)SUNContext_SetProfiler(arg1,arg2); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNContext_GetLogger(void *farg1, void *farg2) { + int fresult ; + SUNContext arg1 = (SUNContext) 0 ; + SUNLogger *arg2 = (SUNLogger *) 0 ; + SUNErrCode result; + + arg1 = (SUNContext)(farg1); + arg2 = (SUNLogger *)(farg2); + result = (SUNErrCode)SUNContext_GetLogger(arg1,arg2); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNContext_SetLogger(void *farg1, void *farg2) { + int fresult ; + SUNContext arg1 = (SUNContext) 0 ; + SUNLogger arg2 = (SUNLogger) 0 ; + SUNErrCode result; + + arg1 = (SUNContext)(farg1); + arg2 = (SUNLogger)(farg2); + result = (SUNErrCode)SUNContext_SetLogger(arg1,arg2); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNContext_Free(void *farg1) { + int fresult ; + SUNContext *arg1 = (SUNContext *) 0 ; + SUNErrCode result; + + arg1 = (SUNContext *)(farg1); + result = (SUNErrCode)SUNContext_Free(arg1); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNProfiler_Create(int const *farg1, SwigArrayWrapper *farg2, void *farg3) { + int fresult ; + SUNComm arg1 ; + char *arg2 = (char *) 0 ; + SUNProfiler *arg3 = (SUNProfiler *) 0 ; + SUNErrCode result; + +#if SUNDIALS_MPI_ENABLED + int flag = 0; + MPI_Initialized(&flag); + if(flag) { + arg1 = MPI_Comm_f2c((MPI_Fint)(*farg1)); + } else { + arg1 = SUN_COMM_NULL; + } +#else + arg1 = *farg1; +#endif + arg2 = (char *)(farg2->data); + arg3 = (SUNProfiler *)(farg3); + result = (SUNErrCode)SUNProfiler_Create(arg1,(char const *)arg2,arg3); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNProfiler_Free(void *farg1) { + int fresult ; + SUNProfiler *arg1 = (SUNProfiler *) 0 ; + SUNErrCode result; + + arg1 = (SUNProfiler *)(farg1); + result = (SUNErrCode)SUNProfiler_Free(arg1); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNProfiler_Begin(void *farg1, SwigArrayWrapper *farg2) { + int fresult ; + SUNProfiler arg1 = (SUNProfiler) 0 ; + char *arg2 = (char *) 0 ; + SUNErrCode result; + + arg1 = (SUNProfiler)(farg1); + arg2 = (char *)(farg2->data); + result = (SUNErrCode)SUNProfiler_Begin(arg1,(char const *)arg2); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNProfiler_End(void *farg1, SwigArrayWrapper *farg2) { + int fresult ; + SUNProfiler arg1 = (SUNProfiler) 0 ; + char *arg2 = (char *) 0 ; + SUNErrCode result; + + arg1 = (SUNProfiler)(farg1); + arg2 = (char *)(farg2->data); + result = (SUNErrCode)SUNProfiler_End(arg1,(char const *)arg2); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNProfiler_GetTimerResolution(void *farg1, double *farg2) { + int fresult ; + SUNProfiler arg1 = (SUNProfiler) 0 ; + double *arg2 = (double *) 0 ; + SUNErrCode result; + + arg1 = (SUNProfiler)(farg1); + arg2 = (double *)(farg2); + result = (SUNErrCode)SUNProfiler_GetTimerResolution(arg1,arg2); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNProfiler_GetElapsedTime(void *farg1, SwigArrayWrapper *farg2, double *farg3) { + int fresult ; + SUNProfiler arg1 = (SUNProfiler) 0 ; + char *arg2 = (char *) 0 ; + double *arg3 = (double *) 0 ; + SUNErrCode result; + + arg1 = (SUNProfiler)(farg1); + arg2 = (char *)(farg2->data); + arg3 = (double *)(farg3); + result = (SUNErrCode)SUNProfiler_GetElapsedTime(arg1,(char const *)arg2,arg3); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNProfiler_Print(void *farg1, void *farg2) { + int fresult ; + SUNProfiler arg1 = (SUNProfiler) 0 ; + FILE *arg2 = (FILE *) 0 ; + SUNErrCode result; + + arg1 = (SUNProfiler)(farg1); + arg2 = (FILE *)(farg2); + result = (SUNErrCode)SUNProfiler_Print(arg1,arg2); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNProfiler_Reset(void *farg1) { + int fresult ; + SUNProfiler arg1 = (SUNProfiler) 0 ; + SUNErrCode result; + + arg1 = (SUNProfiler)(farg1); + result = (SUNErrCode)SUNProfiler_Reset(arg1); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNLogger_Create(int const *farg1, int const *farg2, void *farg3) { + int fresult ; + SUNComm arg1 ; + int arg2 ; + SUNLogger *arg3 = (SUNLogger *) 0 ; + SUNErrCode result; + +#if SUNDIALS_MPI_ENABLED + int flag = 0; + MPI_Initialized(&flag); + if(flag) { + arg1 = MPI_Comm_f2c((MPI_Fint)(*farg1)); + } else { + arg1 = SUN_COMM_NULL; + } +#else + arg1 = *farg1; +#endif + arg2 = (int)(*farg2); + arg3 = (SUNLogger *)(farg3); + result = (SUNErrCode)SUNLogger_Create(arg1,arg2,arg3); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNLogger_CreateFromEnv(int const *farg1, void *farg2) { + int fresult ; + SUNComm arg1 ; + SUNLogger *arg2 = (SUNLogger *) 0 ; + SUNErrCode result; + +#if SUNDIALS_MPI_ENABLED + int flag = 0; + MPI_Initialized(&flag); + if(flag) { + arg1 = MPI_Comm_f2c((MPI_Fint)(*farg1)); + } else { + arg1 = SUN_COMM_NULL; + } +#else + arg1 = *farg1; +#endif + arg2 = (SUNLogger *)(farg2); + result = (SUNErrCode)SUNLogger_CreateFromEnv(arg1,arg2); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNLogger_SetErrorFilename(void *farg1, SwigArrayWrapper *farg2) { + int fresult ; + SUNLogger arg1 = (SUNLogger) 0 ; + char *arg2 = (char *) 0 ; + SUNErrCode result; + + arg1 = (SUNLogger)(farg1); + arg2 = (char *)(farg2->data); + result = (SUNErrCode)SUNLogger_SetErrorFilename(arg1,(char const *)arg2); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNLogger_SetWarningFilename(void *farg1, SwigArrayWrapper *farg2) { + int fresult ; + SUNLogger arg1 = (SUNLogger) 0 ; + char *arg2 = (char *) 0 ; + SUNErrCode result; + + arg1 = (SUNLogger)(farg1); + arg2 = (char *)(farg2->data); + result = (SUNErrCode)SUNLogger_SetWarningFilename(arg1,(char const *)arg2); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNLogger_SetDebugFilename(void *farg1, SwigArrayWrapper *farg2) { + int fresult ; + SUNLogger arg1 = (SUNLogger) 0 ; + char *arg2 = (char *) 0 ; + SUNErrCode result; + + arg1 = (SUNLogger)(farg1); + arg2 = (char *)(farg2->data); + result = (SUNErrCode)SUNLogger_SetDebugFilename(arg1,(char const *)arg2); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNLogger_SetInfoFilename(void *farg1, SwigArrayWrapper *farg2) { + int fresult ; + SUNLogger arg1 = (SUNLogger) 0 ; + char *arg2 = (char *) 0 ; + SUNErrCode result; + + arg1 = (SUNLogger)(farg1); + arg2 = (char *)(farg2->data); + result = (SUNErrCode)SUNLogger_SetInfoFilename(arg1,(char const *)arg2); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNLogger_QueueMsg(void *farg1, int const *farg2, SwigArrayWrapper *farg3, SwigArrayWrapper *farg4, SwigArrayWrapper *farg5) { + int fresult ; + SUNLogger arg1 = (SUNLogger) 0 ; + SUNLogLevel arg2 ; + char *arg3 = (char *) 0 ; + char *arg4 = (char *) 0 ; + char *arg5 = (char *) 0 ; + void *arg6 = 0 ; + SUNErrCode result; + + arg1 = (SUNLogger)(farg1); + arg2 = (SUNLogLevel)(*farg2); + arg3 = (char *)(farg3->data); + arg4 = (char *)(farg4->data); + arg5 = (char *)(farg5->data); + result = (SUNErrCode)SUNLogger_QueueMsg(arg1,arg2,(char const *)arg3,(char const *)arg4,(char const *)arg5,arg6); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNLogger_Flush(void *farg1, int const *farg2) { + int fresult ; + SUNLogger arg1 = (SUNLogger) 0 ; + SUNLogLevel arg2 ; + SUNErrCode result; + + arg1 = (SUNLogger)(farg1); + arg2 = (SUNLogLevel)(*farg2); + result = (SUNErrCode)SUNLogger_Flush(arg1,arg2); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNLogger_GetOutputRank(void *farg1, int *farg2) { + int fresult ; + SUNLogger arg1 = (SUNLogger) 0 ; + int *arg2 = (int *) 0 ; + SUNErrCode result; + + arg1 = (SUNLogger)(farg1); + arg2 = (int *)(farg2); + result = (SUNErrCode)SUNLogger_GetOutputRank(arg1,arg2); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNLogger_Destroy(void *farg1) { + int fresult ; + SUNLogger *arg1 = (SUNLogger *) 0 ; + SUNErrCode result; + + arg1 = (SUNLogger *)(farg1); + result = (SUNErrCode)SUNLogger_Destroy(arg1); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNDIALSFileOpen(SwigArrayWrapper *farg1, SwigArrayWrapper *farg2, void *farg3) { + int fresult ; + char *arg1 = (char *) 0 ; + char *arg2 = (char *) 0 ; + FILE **arg3 = (FILE **) 0 ; + SUNErrCode result; + + arg1 = (char *)(farg1->data); + arg2 = (char *)(farg2->data); + arg3 = (FILE **)(farg3); + result = (SUNErrCode)SUNDIALSFileOpen((char const *)arg1,(char const *)arg2,arg3); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNDIALSFileClose(void *farg1) { + int fresult ; + FILE **arg1 = (FILE **) 0 ; + SUNErrCode result; + + arg1 = (FILE **)(farg1); + result = (SUNErrCode)SUNDIALSFileClose(arg1); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT N_Vector _wrap_FN_VNewEmpty(void *farg1) { + N_Vector fresult ; + SUNContext arg1 = (SUNContext) 0 ; + N_Vector result; + + arg1 = (SUNContext)(farg1); + result = (N_Vector)N_VNewEmpty(arg1); + fresult = result; + return fresult; +} + + +SWIGEXPORT void _wrap_FN_VFreeEmpty(N_Vector farg1) { + N_Vector arg1 = (N_Vector) 0 ; + + arg1 = (N_Vector)(farg1); + N_VFreeEmpty(arg1); +} + + +SWIGEXPORT int _wrap_FN_VCopyOps(N_Vector farg1, N_Vector farg2) { + int fresult ; + N_Vector arg1 = (N_Vector) 0 ; + N_Vector arg2 = (N_Vector) 0 ; + SUNErrCode result; + + arg1 = (N_Vector)(farg1); + arg2 = (N_Vector)(farg2); + result = (SUNErrCode)N_VCopyOps(arg1,arg2); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FN_VGetVectorID(N_Vector farg1) { + int fresult ; + N_Vector arg1 = (N_Vector) 0 ; + N_Vector_ID result; + + arg1 = (N_Vector)(farg1); + result = (N_Vector_ID)N_VGetVectorID(arg1); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT N_Vector _wrap_FN_VClone(N_Vector farg1) { + N_Vector fresult ; + N_Vector arg1 = (N_Vector) 0 ; + N_Vector result; + + arg1 = (N_Vector)(farg1); + result = (N_Vector)N_VClone(arg1); + fresult = result; + return fresult; +} + + +SWIGEXPORT N_Vector _wrap_FN_VCloneEmpty(N_Vector farg1) { + N_Vector fresult ; + N_Vector arg1 = (N_Vector) 0 ; + N_Vector result; + + arg1 = (N_Vector)(farg1); + result = (N_Vector)N_VCloneEmpty(arg1); + fresult = result; + return fresult; +} + + +SWIGEXPORT void _wrap_FN_VDestroy(N_Vector farg1) { + N_Vector arg1 = (N_Vector) 0 ; + + arg1 = (N_Vector)(farg1); + N_VDestroy(arg1); +} + + +SWIGEXPORT void _wrap_FN_VSpace(N_Vector farg1, int32_t *farg2, int32_t *farg3) { + N_Vector arg1 = (N_Vector) 0 ; + sunindextype *arg2 = (sunindextype *) 0 ; + sunindextype *arg3 = (sunindextype *) 0 ; + + arg1 = (N_Vector)(farg1); + arg2 = (sunindextype *)(farg2); + arg3 = (sunindextype *)(farg3); + N_VSpace(arg1,arg2,arg3); +} + + +SWIGEXPORT void _wrap_FN_VSetArrayPointer(double *farg1, N_Vector farg2) { + sunrealtype *arg1 = (sunrealtype *) 0 ; + N_Vector arg2 = (N_Vector) 0 ; + + arg1 = (sunrealtype *)(farg1); + arg2 = (N_Vector)(farg2); + N_VSetArrayPointer(arg1,arg2); +} + + +SWIGEXPORT int _wrap_FN_VGetCommunicator(N_Vector farg1) { + int fresult ; + N_Vector arg1 = (N_Vector) 0 ; + SUNComm result; + + arg1 = (N_Vector)(farg1); + result = (SUNComm)N_VGetCommunicator(arg1); +#if SUNDIALS_MPI_ENABLED + int flag = 0; + MPI_Initialized(&flag); + if(flag) { + fresult = (int)(MPI_Comm_c2f(result)); + } else { + fresult = 0; + } +#else + fresult = result; +#endif + return fresult; +} + + +SWIGEXPORT int32_t _wrap_FN_VGetLength(N_Vector farg1) { + int32_t fresult ; + N_Vector arg1 = (N_Vector) 0 ; + sunindextype result; + + arg1 = (N_Vector)(farg1); + result = N_VGetLength(arg1); + fresult = (sunindextype)(result); + return fresult; +} + + +SWIGEXPORT int32_t _wrap_FN_VGetLocalLength(N_Vector farg1) { + int32_t fresult ; + N_Vector arg1 = (N_Vector) 0 ; + sunindextype result; + + arg1 = (N_Vector)(farg1); + result = N_VGetLocalLength(arg1); + fresult = (sunindextype)(result); + return fresult; +} + + +SWIGEXPORT void _wrap_FN_VLinearSum(double const *farg1, N_Vector farg2, double const *farg3, N_Vector farg4, N_Vector farg5) { + sunrealtype arg1 ; + N_Vector arg2 = (N_Vector) 0 ; + sunrealtype arg3 ; + N_Vector arg4 = (N_Vector) 0 ; + N_Vector arg5 = (N_Vector) 0 ; + + arg1 = (sunrealtype)(*farg1); + arg2 = (N_Vector)(farg2); + arg3 = (sunrealtype)(*farg3); + arg4 = (N_Vector)(farg4); + arg5 = (N_Vector)(farg5); + N_VLinearSum(arg1,arg2,arg3,arg4,arg5); +} + + +SWIGEXPORT void _wrap_FN_VConst(double const *farg1, N_Vector farg2) { + sunrealtype arg1 ; + N_Vector arg2 = (N_Vector) 0 ; + + arg1 = (sunrealtype)(*farg1); + arg2 = (N_Vector)(farg2); + N_VConst(arg1,arg2); +} + + +SWIGEXPORT void _wrap_FN_VProd(N_Vector farg1, N_Vector farg2, N_Vector farg3) { + N_Vector arg1 = (N_Vector) 0 ; + N_Vector arg2 = (N_Vector) 0 ; + N_Vector arg3 = (N_Vector) 0 ; + + arg1 = (N_Vector)(farg1); + arg2 = (N_Vector)(farg2); + arg3 = (N_Vector)(farg3); + N_VProd(arg1,arg2,arg3); +} + + +SWIGEXPORT void _wrap_FN_VDiv(N_Vector farg1, N_Vector farg2, N_Vector farg3) { + N_Vector arg1 = (N_Vector) 0 ; + N_Vector arg2 = (N_Vector) 0 ; + N_Vector arg3 = (N_Vector) 0 ; + + arg1 = (N_Vector)(farg1); + arg2 = (N_Vector)(farg2); + arg3 = (N_Vector)(farg3); + N_VDiv(arg1,arg2,arg3); +} + + +SWIGEXPORT void _wrap_FN_VScale(double const *farg1, N_Vector farg2, N_Vector farg3) { + sunrealtype arg1 ; + N_Vector arg2 = (N_Vector) 0 ; + N_Vector arg3 = (N_Vector) 0 ; + + arg1 = (sunrealtype)(*farg1); + arg2 = (N_Vector)(farg2); + arg3 = (N_Vector)(farg3); + N_VScale(arg1,arg2,arg3); +} + + +SWIGEXPORT void _wrap_FN_VAbs(N_Vector farg1, N_Vector farg2) { + N_Vector arg1 = (N_Vector) 0 ; + N_Vector arg2 = (N_Vector) 0 ; + + arg1 = (N_Vector)(farg1); + arg2 = (N_Vector)(farg2); + N_VAbs(arg1,arg2); +} + + +SWIGEXPORT void _wrap_FN_VInv(N_Vector farg1, N_Vector farg2) { + N_Vector arg1 = (N_Vector) 0 ; + N_Vector arg2 = (N_Vector) 0 ; + + arg1 = (N_Vector)(farg1); + arg2 = (N_Vector)(farg2); + N_VInv(arg1,arg2); +} + + +SWIGEXPORT void _wrap_FN_VAddConst(N_Vector farg1, double const *farg2, N_Vector farg3) { + N_Vector arg1 = (N_Vector) 0 ; + sunrealtype arg2 ; + N_Vector arg3 = (N_Vector) 0 ; + + arg1 = (N_Vector)(farg1); + arg2 = (sunrealtype)(*farg2); + arg3 = (N_Vector)(farg3); + N_VAddConst(arg1,arg2,arg3); +} + + +SWIGEXPORT double _wrap_FN_VDotProd(N_Vector farg1, N_Vector farg2) { + double fresult ; + N_Vector arg1 = (N_Vector) 0 ; + N_Vector arg2 = (N_Vector) 0 ; + sunrealtype result; + + arg1 = (N_Vector)(farg1); + arg2 = (N_Vector)(farg2); + result = (sunrealtype)N_VDotProd(arg1,arg2); + fresult = (sunrealtype)(result); + return fresult; +} + + +SWIGEXPORT double _wrap_FN_VMaxNorm(N_Vector farg1) { + double fresult ; + N_Vector arg1 = (N_Vector) 0 ; + sunrealtype result; + + arg1 = (N_Vector)(farg1); + result = (sunrealtype)N_VMaxNorm(arg1); + fresult = (sunrealtype)(result); + return fresult; +} + + +SWIGEXPORT double _wrap_FN_VWrmsNorm(N_Vector farg1, N_Vector farg2) { + double fresult ; + N_Vector arg1 = (N_Vector) 0 ; + N_Vector arg2 = (N_Vector) 0 ; + sunrealtype result; + + arg1 = (N_Vector)(farg1); + arg2 = (N_Vector)(farg2); + result = (sunrealtype)N_VWrmsNorm(arg1,arg2); + fresult = (sunrealtype)(result); + return fresult; +} + + +SWIGEXPORT double _wrap_FN_VWrmsNormMask(N_Vector farg1, N_Vector farg2, N_Vector farg3) { + double fresult ; + N_Vector arg1 = (N_Vector) 0 ; + N_Vector arg2 = (N_Vector) 0 ; + N_Vector arg3 = (N_Vector) 0 ; + sunrealtype result; + + arg1 = (N_Vector)(farg1); + arg2 = (N_Vector)(farg2); + arg3 = (N_Vector)(farg3); + result = (sunrealtype)N_VWrmsNormMask(arg1,arg2,arg3); + fresult = (sunrealtype)(result); + return fresult; +} + + +SWIGEXPORT double _wrap_FN_VMin(N_Vector farg1) { + double fresult ; + N_Vector arg1 = (N_Vector) 0 ; + sunrealtype result; + + arg1 = (N_Vector)(farg1); + result = (sunrealtype)N_VMin(arg1); + fresult = (sunrealtype)(result); + return fresult; +} + + +SWIGEXPORT double _wrap_FN_VWL2Norm(N_Vector farg1, N_Vector farg2) { + double fresult ; + N_Vector arg1 = (N_Vector) 0 ; + N_Vector arg2 = (N_Vector) 0 ; + sunrealtype result; + + arg1 = (N_Vector)(farg1); + arg2 = (N_Vector)(farg2); + result = (sunrealtype)N_VWL2Norm(arg1,arg2); + fresult = (sunrealtype)(result); + return fresult; +} + + +SWIGEXPORT double _wrap_FN_VL1Norm(N_Vector farg1) { + double fresult ; + N_Vector arg1 = (N_Vector) 0 ; + sunrealtype result; + + arg1 = (N_Vector)(farg1); + result = (sunrealtype)N_VL1Norm(arg1); + fresult = (sunrealtype)(result); + return fresult; +} + + +SWIGEXPORT void _wrap_FN_VCompare(double const *farg1, N_Vector farg2, N_Vector farg3) { + sunrealtype arg1 ; + N_Vector arg2 = (N_Vector) 0 ; + N_Vector arg3 = (N_Vector) 0 ; + + arg1 = (sunrealtype)(*farg1); + arg2 = (N_Vector)(farg2); + arg3 = (N_Vector)(farg3); + N_VCompare(arg1,arg2,arg3); +} + + +SWIGEXPORT int _wrap_FN_VInvTest(N_Vector farg1, N_Vector farg2) { + int fresult ; + N_Vector arg1 = (N_Vector) 0 ; + N_Vector arg2 = (N_Vector) 0 ; + int result; + + arg1 = (N_Vector)(farg1); + arg2 = (N_Vector)(farg2); + result = (int)N_VInvTest(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FN_VConstrMask(N_Vector farg1, N_Vector farg2, N_Vector farg3) { + int fresult ; + N_Vector arg1 = (N_Vector) 0 ; + N_Vector arg2 = (N_Vector) 0 ; + N_Vector arg3 = (N_Vector) 0 ; + int result; + + arg1 = (N_Vector)(farg1); + arg2 = (N_Vector)(farg2); + arg3 = (N_Vector)(farg3); + result = (int)N_VConstrMask(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT double _wrap_FN_VMinQuotient(N_Vector farg1, N_Vector farg2) { + double fresult ; + N_Vector arg1 = (N_Vector) 0 ; + N_Vector arg2 = (N_Vector) 0 ; + sunrealtype result; + + arg1 = (N_Vector)(farg1); + arg2 = (N_Vector)(farg2); + result = (sunrealtype)N_VMinQuotient(arg1,arg2); + fresult = (sunrealtype)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FN_VLinearCombination(int const *farg1, double *farg2, void *farg3, N_Vector farg4) { + int fresult ; + int arg1 ; + sunrealtype *arg2 = (sunrealtype *) 0 ; + N_Vector *arg3 = (N_Vector *) 0 ; + N_Vector arg4 = (N_Vector) 0 ; + SUNErrCode result; + + arg1 = (int)(*farg1); + arg2 = (sunrealtype *)(farg2); + arg3 = (N_Vector *)(farg3); + arg4 = (N_Vector)(farg4); + result = (SUNErrCode)N_VLinearCombination(arg1,arg2,arg3,arg4); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FN_VScaleAddMulti(int const *farg1, double *farg2, N_Vector farg3, void *farg4, void *farg5) { + int fresult ; + int arg1 ; + sunrealtype *arg2 = (sunrealtype *) 0 ; + N_Vector arg3 = (N_Vector) 0 ; + N_Vector *arg4 = (N_Vector *) 0 ; + N_Vector *arg5 = (N_Vector *) 0 ; + SUNErrCode result; + + arg1 = (int)(*farg1); + arg2 = (sunrealtype *)(farg2); + arg3 = (N_Vector)(farg3); + arg4 = (N_Vector *)(farg4); + arg5 = (N_Vector *)(farg5); + result = (SUNErrCode)N_VScaleAddMulti(arg1,arg2,arg3,arg4,arg5); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FN_VDotProdMulti(int const *farg1, N_Vector farg2, void *farg3, double *farg4) { + int fresult ; + int arg1 ; + N_Vector arg2 = (N_Vector) 0 ; + N_Vector *arg3 = (N_Vector *) 0 ; + sunrealtype *arg4 = (sunrealtype *) 0 ; + SUNErrCode result; + + arg1 = (int)(*farg1); + arg2 = (N_Vector)(farg2); + arg3 = (N_Vector *)(farg3); + arg4 = (sunrealtype *)(farg4); + result = (SUNErrCode)N_VDotProdMulti(arg1,arg2,arg3,arg4); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FN_VLinearSumVectorArray(int const *farg1, double const *farg2, void *farg3, double const *farg4, void *farg5, void *farg6) { + int fresult ; + int arg1 ; + sunrealtype arg2 ; + N_Vector *arg3 = (N_Vector *) 0 ; + sunrealtype arg4 ; + N_Vector *arg5 = (N_Vector *) 0 ; + N_Vector *arg6 = (N_Vector *) 0 ; + SUNErrCode result; + + arg1 = (int)(*farg1); + arg2 = (sunrealtype)(*farg2); + arg3 = (N_Vector *)(farg3); + arg4 = (sunrealtype)(*farg4); + arg5 = (N_Vector *)(farg5); + arg6 = (N_Vector *)(farg6); + result = (SUNErrCode)N_VLinearSumVectorArray(arg1,arg2,arg3,arg4,arg5,arg6); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FN_VScaleVectorArray(int const *farg1, double *farg2, void *farg3, void *farg4) { + int fresult ; + int arg1 ; + sunrealtype *arg2 = (sunrealtype *) 0 ; + N_Vector *arg3 = (N_Vector *) 0 ; + N_Vector *arg4 = (N_Vector *) 0 ; + SUNErrCode result; + + arg1 = (int)(*farg1); + arg2 = (sunrealtype *)(farg2); + arg3 = (N_Vector *)(farg3); + arg4 = (N_Vector *)(farg4); + result = (SUNErrCode)N_VScaleVectorArray(arg1,arg2,arg3,arg4); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FN_VConstVectorArray(int const *farg1, double const *farg2, void *farg3) { + int fresult ; + int arg1 ; + sunrealtype arg2 ; + N_Vector *arg3 = (N_Vector *) 0 ; + SUNErrCode result; + + arg1 = (int)(*farg1); + arg2 = (sunrealtype)(*farg2); + arg3 = (N_Vector *)(farg3); + result = (SUNErrCode)N_VConstVectorArray(arg1,arg2,arg3); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FN_VWrmsNormVectorArray(int const *farg1, void *farg2, void *farg3, double *farg4) { + int fresult ; + int arg1 ; + N_Vector *arg2 = (N_Vector *) 0 ; + N_Vector *arg3 = (N_Vector *) 0 ; + sunrealtype *arg4 = (sunrealtype *) 0 ; + SUNErrCode result; + + arg1 = (int)(*farg1); + arg2 = (N_Vector *)(farg2); + arg3 = (N_Vector *)(farg3); + arg4 = (sunrealtype *)(farg4); + result = (SUNErrCode)N_VWrmsNormVectorArray(arg1,arg2,arg3,arg4); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FN_VWrmsNormMaskVectorArray(int const *farg1, void *farg2, void *farg3, N_Vector farg4, double *farg5) { + int fresult ; + int arg1 ; + N_Vector *arg2 = (N_Vector *) 0 ; + N_Vector *arg3 = (N_Vector *) 0 ; + N_Vector arg4 = (N_Vector) 0 ; + sunrealtype *arg5 = (sunrealtype *) 0 ; + SUNErrCode result; + + arg1 = (int)(*farg1); + arg2 = (N_Vector *)(farg2); + arg3 = (N_Vector *)(farg3); + arg4 = (N_Vector)(farg4); + arg5 = (sunrealtype *)(farg5); + result = (SUNErrCode)N_VWrmsNormMaskVectorArray(arg1,arg2,arg3,arg4,arg5); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT double _wrap_FN_VDotProdLocal(N_Vector farg1, N_Vector farg2) { + double fresult ; + N_Vector arg1 = (N_Vector) 0 ; + N_Vector arg2 = (N_Vector) 0 ; + sunrealtype result; + + arg1 = (N_Vector)(farg1); + arg2 = (N_Vector)(farg2); + result = (sunrealtype)N_VDotProdLocal(arg1,arg2); + fresult = (sunrealtype)(result); + return fresult; +} + + +SWIGEXPORT double _wrap_FN_VMaxNormLocal(N_Vector farg1) { + double fresult ; + N_Vector arg1 = (N_Vector) 0 ; + sunrealtype result; + + arg1 = (N_Vector)(farg1); + result = (sunrealtype)N_VMaxNormLocal(arg1); + fresult = (sunrealtype)(result); + return fresult; +} + + +SWIGEXPORT double _wrap_FN_VMinLocal(N_Vector farg1) { + double fresult ; + N_Vector arg1 = (N_Vector) 0 ; + sunrealtype result; + + arg1 = (N_Vector)(farg1); + result = (sunrealtype)N_VMinLocal(arg1); + fresult = (sunrealtype)(result); + return fresult; +} + + +SWIGEXPORT double _wrap_FN_VL1NormLocal(N_Vector farg1) { + double fresult ; + N_Vector arg1 = (N_Vector) 0 ; + sunrealtype result; + + arg1 = (N_Vector)(farg1); + result = (sunrealtype)N_VL1NormLocal(arg1); + fresult = (sunrealtype)(result); + return fresult; +} + + +SWIGEXPORT double _wrap_FN_VWSqrSumLocal(N_Vector farg1, N_Vector farg2) { + double fresult ; + N_Vector arg1 = (N_Vector) 0 ; + N_Vector arg2 = (N_Vector) 0 ; + sunrealtype result; + + arg1 = (N_Vector)(farg1); + arg2 = (N_Vector)(farg2); + result = (sunrealtype)N_VWSqrSumLocal(arg1,arg2); + fresult = (sunrealtype)(result); + return fresult; +} + + +SWIGEXPORT double _wrap_FN_VWSqrSumMaskLocal(N_Vector farg1, N_Vector farg2, N_Vector farg3) { + double fresult ; + N_Vector arg1 = (N_Vector) 0 ; + N_Vector arg2 = (N_Vector) 0 ; + N_Vector arg3 = (N_Vector) 0 ; + sunrealtype result; + + arg1 = (N_Vector)(farg1); + arg2 = (N_Vector)(farg2); + arg3 = (N_Vector)(farg3); + result = (sunrealtype)N_VWSqrSumMaskLocal(arg1,arg2,arg3); + fresult = (sunrealtype)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FN_VInvTestLocal(N_Vector farg1, N_Vector farg2) { + int fresult ; + N_Vector arg1 = (N_Vector) 0 ; + N_Vector arg2 = (N_Vector) 0 ; + int result; + + arg1 = (N_Vector)(farg1); + arg2 = (N_Vector)(farg2); + result = (int)N_VInvTestLocal(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FN_VConstrMaskLocal(N_Vector farg1, N_Vector farg2, N_Vector farg3) { + int fresult ; + N_Vector arg1 = (N_Vector) 0 ; + N_Vector arg2 = (N_Vector) 0 ; + N_Vector arg3 = (N_Vector) 0 ; + int result; + + arg1 = (N_Vector)(farg1); + arg2 = (N_Vector)(farg2); + arg3 = (N_Vector)(farg3); + result = (int)N_VConstrMaskLocal(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT double _wrap_FN_VMinQuotientLocal(N_Vector farg1, N_Vector farg2) { + double fresult ; + N_Vector arg1 = (N_Vector) 0 ; + N_Vector arg2 = (N_Vector) 0 ; + sunrealtype result; + + arg1 = (N_Vector)(farg1); + arg2 = (N_Vector)(farg2); + result = (sunrealtype)N_VMinQuotientLocal(arg1,arg2); + fresult = (sunrealtype)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FN_VDotProdMultiLocal(int const *farg1, N_Vector farg2, void *farg3, double *farg4) { + int fresult ; + int arg1 ; + N_Vector arg2 = (N_Vector) 0 ; + N_Vector *arg3 = (N_Vector *) 0 ; + sunrealtype *arg4 = (sunrealtype *) 0 ; + SUNErrCode result; + + arg1 = (int)(*farg1); + arg2 = (N_Vector)(farg2); + arg3 = (N_Vector *)(farg3); + arg4 = (sunrealtype *)(farg4); + result = (SUNErrCode)N_VDotProdMultiLocal(arg1,arg2,arg3,arg4); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FN_VDotProdMultiAllReduce(int const *farg1, N_Vector farg2, double *farg3) { + int fresult ; + int arg1 ; + N_Vector arg2 = (N_Vector) 0 ; + sunrealtype *arg3 = (sunrealtype *) 0 ; + SUNErrCode result; + + arg1 = (int)(*farg1); + arg2 = (N_Vector)(farg2); + arg3 = (sunrealtype *)(farg3); + result = (SUNErrCode)N_VDotProdMultiAllReduce(arg1,arg2,arg3); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FN_VBufSize(N_Vector farg1, int32_t *farg2) { + int fresult ; + N_Vector arg1 = (N_Vector) 0 ; + sunindextype *arg2 = (sunindextype *) 0 ; + SUNErrCode result; + + arg1 = (N_Vector)(farg1); + arg2 = (sunindextype *)(farg2); + result = (SUNErrCode)N_VBufSize(arg1,arg2); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FN_VBufPack(N_Vector farg1, void *farg2) { + int fresult ; + N_Vector arg1 = (N_Vector) 0 ; + void *arg2 = (void *) 0 ; + SUNErrCode result; + + arg1 = (N_Vector)(farg1); + arg2 = (void *)(farg2); + result = (SUNErrCode)N_VBufPack(arg1,arg2); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FN_VBufUnpack(N_Vector farg1, void *farg2) { + int fresult ; + N_Vector arg1 = (N_Vector) 0 ; + void *arg2 = (void *) 0 ; + SUNErrCode result; + + arg1 = (N_Vector)(farg1); + arg2 = (void *)(farg2); + result = (SUNErrCode)N_VBufUnpack(arg1,arg2); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT void * _wrap_FN_VNewVectorArray(int const *farg1, void *farg2) { + void * fresult ; + int arg1 ; + SUNContext arg2 = (SUNContext) 0 ; + N_Vector *result = 0 ; + + arg1 = (int)(*farg1); + arg2 = (SUNContext)(farg2); + result = (N_Vector *)N_VNewVectorArray(arg1,arg2); + fresult = result; + return fresult; +} + + +SWIGEXPORT void * _wrap_FN_VCloneEmptyVectorArray(int const *farg1, N_Vector farg2) { + void * fresult ; + int arg1 ; + N_Vector arg2 = (N_Vector) 0 ; + N_Vector *result = 0 ; + + arg1 = (int)(*farg1); + arg2 = (N_Vector)(farg2); + result = (N_Vector *)N_VCloneEmptyVectorArray(arg1,arg2); + fresult = result; + return fresult; +} + + +SWIGEXPORT void * _wrap_FN_VCloneVectorArray(int const *farg1, N_Vector farg2) { + void * fresult ; + int arg1 ; + N_Vector arg2 = (N_Vector) 0 ; + N_Vector *result = 0 ; + + arg1 = (int)(*farg1); + arg2 = (N_Vector)(farg2); + result = (N_Vector *)N_VCloneVectorArray(arg1,arg2); + fresult = result; + return fresult; +} + + +SWIGEXPORT void _wrap_FN_VDestroyVectorArray(void *farg1, int const *farg2) { + N_Vector *arg1 = (N_Vector *) 0 ; + int arg2 ; + + arg1 = (N_Vector *)(farg1); + arg2 = (int)(*farg2); + N_VDestroyVectorArray(arg1,arg2); +} + + +SWIGEXPORT N_Vector _wrap_FN_VGetVecAtIndexVectorArray(void *farg1, int const *farg2) { + N_Vector fresult ; + N_Vector *arg1 = (N_Vector *) 0 ; + int arg2 ; + N_Vector result; + + arg1 = (N_Vector *)(farg1); + arg2 = (int)(*farg2); + result = (N_Vector)N_VGetVecAtIndexVectorArray(arg1,arg2); + fresult = result; + return fresult; +} + + +SWIGEXPORT void _wrap_FN_VSetVecAtIndexVectorArray(void *farg1, int const *farg2, N_Vector farg3) { + N_Vector *arg1 = (N_Vector *) 0 ; + int arg2 ; + N_Vector arg3 = (N_Vector) 0 ; + + arg1 = (N_Vector *)(farg1); + arg2 = (int)(*farg2); + arg3 = (N_Vector)(farg3); + N_VSetVecAtIndexVectorArray(arg1,arg2,arg3); +} + + +SWIGEXPORT void _wrap_FN_VPrint(N_Vector farg1) { + N_Vector arg1 = (N_Vector) 0 ; + + arg1 = (N_Vector)(farg1); + N_VPrint(arg1); +} + + +SWIGEXPORT void _wrap_FN_VPrintFile(N_Vector farg1, void *farg2) { + N_Vector arg1 = (N_Vector) 0 ; + FILE *arg2 = (FILE *) 0 ; + + arg1 = (N_Vector)(farg1); + arg2 = (FILE *)(farg2); + N_VPrintFile(arg1,arg2); +} + + + +SWIGEXPORT double * _wrap_FN_VGetArrayPointer(N_Vector farg1) { + double * fresult ; + N_Vector arg1 = (N_Vector) 0 ; + sunrealtype *result = 0 ; + arg1 = (N_Vector)(farg1); + result = (sunrealtype *)N_VGetArrayPointer(arg1); + fresult = result; + return fresult; +} + + +SWIGEXPORT double * _wrap_FN_VGetDeviceArrayPointer(N_Vector farg1) { + double * fresult ; + N_Vector arg1 = (N_Vector) 0 ; + sunrealtype *result = 0 ; + arg1 = (N_Vector)(farg1); + result = (sunrealtype *)N_VGetDeviceArrayPointer(arg1); + fresult = result; + return fresult; +} + +SWIGEXPORT SUNMatrix _wrap_FSUNMatNewEmpty(void *farg1) { + SUNMatrix fresult ; + SUNContext arg1 = (SUNContext) 0 ; + SUNMatrix result; + + arg1 = (SUNContext)(farg1); + result = (SUNMatrix)SUNMatNewEmpty(arg1); + fresult = result; + return fresult; +} + + +SWIGEXPORT void _wrap_FSUNMatFreeEmpty(SUNMatrix farg1) { + SUNMatrix arg1 = (SUNMatrix) 0 ; + + arg1 = (SUNMatrix)(farg1); + SUNMatFreeEmpty(arg1); +} + + +SWIGEXPORT int _wrap_FSUNMatCopyOps(SUNMatrix farg1, SUNMatrix farg2) { + int fresult ; + SUNMatrix arg1 = (SUNMatrix) 0 ; + SUNMatrix arg2 = (SUNMatrix) 0 ; + SUNErrCode result; + + arg1 = (SUNMatrix)(farg1); + arg2 = (SUNMatrix)(farg2); + result = (SUNErrCode)SUNMatCopyOps(arg1,arg2); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNMatGetID(SUNMatrix farg1) { + int fresult ; + SUNMatrix arg1 = (SUNMatrix) 0 ; + SUNMatrix_ID result; + + arg1 = (SUNMatrix)(farg1); + result = (SUNMatrix_ID)SUNMatGetID(arg1); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT SUNMatrix _wrap_FSUNMatClone(SUNMatrix farg1) { + SUNMatrix fresult ; + SUNMatrix arg1 = (SUNMatrix) 0 ; + SUNMatrix result; + + arg1 = (SUNMatrix)(farg1); + result = (SUNMatrix)SUNMatClone(arg1); + fresult = result; + return fresult; +} + + +SWIGEXPORT void _wrap_FSUNMatDestroy(SUNMatrix farg1) { + SUNMatrix arg1 = (SUNMatrix) 0 ; + + arg1 = (SUNMatrix)(farg1); + SUNMatDestroy(arg1); +} + + +SWIGEXPORT int _wrap_FSUNMatZero(SUNMatrix farg1) { + int fresult ; + SUNMatrix arg1 = (SUNMatrix) 0 ; + SUNErrCode result; + + arg1 = (SUNMatrix)(farg1); + result = (SUNErrCode)SUNMatZero(arg1); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNMatCopy(SUNMatrix farg1, SUNMatrix farg2) { + int fresult ; + SUNMatrix arg1 = (SUNMatrix) 0 ; + SUNMatrix arg2 = (SUNMatrix) 0 ; + SUNErrCode result; + + arg1 = (SUNMatrix)(farg1); + arg2 = (SUNMatrix)(farg2); + result = (SUNErrCode)SUNMatCopy(arg1,arg2); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNMatScaleAdd(double const *farg1, SUNMatrix farg2, SUNMatrix farg3) { + int fresult ; + sunrealtype arg1 ; + SUNMatrix arg2 = (SUNMatrix) 0 ; + SUNMatrix arg3 = (SUNMatrix) 0 ; + SUNErrCode result; + + arg1 = (sunrealtype)(*farg1); + arg2 = (SUNMatrix)(farg2); + arg3 = (SUNMatrix)(farg3); + result = (SUNErrCode)SUNMatScaleAdd(arg1,arg2,arg3); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNMatScaleAddI(double const *farg1, SUNMatrix farg2) { + int fresult ; + sunrealtype arg1 ; + SUNMatrix arg2 = (SUNMatrix) 0 ; + SUNErrCode result; + + arg1 = (sunrealtype)(*farg1); + arg2 = (SUNMatrix)(farg2); + result = (SUNErrCode)SUNMatScaleAddI(arg1,arg2); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNMatMatvecSetup(SUNMatrix farg1) { + int fresult ; + SUNMatrix arg1 = (SUNMatrix) 0 ; + SUNErrCode result; + + arg1 = (SUNMatrix)(farg1); + result = (SUNErrCode)SUNMatMatvecSetup(arg1); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNMatMatvec(SUNMatrix farg1, N_Vector farg2, N_Vector farg3) { + int fresult ; + SUNMatrix arg1 = (SUNMatrix) 0 ; + N_Vector arg2 = (N_Vector) 0 ; + N_Vector arg3 = (N_Vector) 0 ; + SUNErrCode result; + + arg1 = (SUNMatrix)(farg1); + arg2 = (N_Vector)(farg2); + arg3 = (N_Vector)(farg3); + result = (SUNErrCode)SUNMatMatvec(arg1,arg2,arg3); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNMatSpace(SUNMatrix farg1, long *farg2, long *farg3) { + int fresult ; + SUNMatrix arg1 = (SUNMatrix) 0 ; + long *arg2 = (long *) 0 ; + long *arg3 = (long *) 0 ; + SUNErrCode result; + + arg1 = (SUNMatrix)(farg1); + arg2 = (long *)(farg2); + arg3 = (long *)(farg3); + result = (SUNErrCode)SUNMatSpace(arg1,arg2,arg3); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNModifiedGS(void *farg1, void *farg2, int const *farg3, int const *farg4, double *farg5) { + int fresult ; + N_Vector *arg1 = (N_Vector *) 0 ; + sunrealtype **arg2 = (sunrealtype **) 0 ; + int arg3 ; + int arg4 ; + sunrealtype *arg5 = (sunrealtype *) 0 ; + SUNErrCode result; + + arg1 = (N_Vector *)(farg1); + arg2 = (sunrealtype **)(farg2); + arg3 = (int)(*farg3); + arg4 = (int)(*farg4); + arg5 = (sunrealtype *)(farg5); + result = (SUNErrCode)SUNModifiedGS(arg1,arg2,arg3,arg4,arg5); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNClassicalGS(void *farg1, void *farg2, int const *farg3, int const *farg4, double *farg5, double *farg6, void *farg7) { + int fresult ; + N_Vector *arg1 = (N_Vector *) 0 ; + sunrealtype **arg2 = (sunrealtype **) 0 ; + int arg3 ; + int arg4 ; + sunrealtype *arg5 = (sunrealtype *) 0 ; + sunrealtype *arg6 = (sunrealtype *) 0 ; + N_Vector *arg7 = (N_Vector *) 0 ; + SUNErrCode result; + + arg1 = (N_Vector *)(farg1); + arg2 = (sunrealtype **)(farg2); + arg3 = (int)(*farg3); + arg4 = (int)(*farg4); + arg5 = (sunrealtype *)(farg5); + arg6 = (sunrealtype *)(farg6); + arg7 = (N_Vector *)(farg7); + result = (SUNErrCode)SUNClassicalGS(arg1,arg2,arg3,arg4,arg5,arg6,arg7); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNQRfact(int const *farg1, void *farg2, double *farg3, int const *farg4) { + int fresult ; + int arg1 ; + sunrealtype **arg2 = (sunrealtype **) 0 ; + sunrealtype *arg3 = (sunrealtype *) 0 ; + int arg4 ; + int result; + + arg1 = (int)(*farg1); + arg2 = (sunrealtype **)(farg2); + arg3 = (sunrealtype *)(farg3); + arg4 = (int)(*farg4); + result = (int)SUNQRfact(arg1,arg2,arg3,arg4); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNQRsol(int const *farg1, void *farg2, double *farg3, double *farg4) { + int fresult ; + int arg1 ; + sunrealtype **arg2 = (sunrealtype **) 0 ; + sunrealtype *arg3 = (sunrealtype *) 0 ; + sunrealtype *arg4 = (sunrealtype *) 0 ; + int result; + + arg1 = (int)(*farg1); + arg2 = (sunrealtype **)(farg2); + arg3 = (sunrealtype *)(farg3); + arg4 = (sunrealtype *)(farg4); + result = (int)SUNQRsol(arg1,arg2,arg3,arg4); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNQRAdd_MGS(void *farg1, double *farg2, N_Vector farg3, int const *farg4, int const *farg5, void *farg6) { + int fresult ; + N_Vector *arg1 = (N_Vector *) 0 ; + sunrealtype *arg2 = (sunrealtype *) 0 ; + N_Vector arg3 = (N_Vector) 0 ; + int arg4 ; + int arg5 ; + void *arg6 = (void *) 0 ; + SUNErrCode result; + + arg1 = (N_Vector *)(farg1); + arg2 = (sunrealtype *)(farg2); + arg3 = (N_Vector)(farg3); + arg4 = (int)(*farg4); + arg5 = (int)(*farg5); + arg6 = (void *)(farg6); + result = (SUNErrCode)SUNQRAdd_MGS(arg1,arg2,arg3,arg4,arg5,arg6); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNQRAdd_ICWY(void *farg1, double *farg2, N_Vector farg3, int const *farg4, int const *farg5, void *farg6) { + int fresult ; + N_Vector *arg1 = (N_Vector *) 0 ; + sunrealtype *arg2 = (sunrealtype *) 0 ; + N_Vector arg3 = (N_Vector) 0 ; + int arg4 ; + int arg5 ; + void *arg6 = (void *) 0 ; + SUNErrCode result; + + arg1 = (N_Vector *)(farg1); + arg2 = (sunrealtype *)(farg2); + arg3 = (N_Vector)(farg3); + arg4 = (int)(*farg4); + arg5 = (int)(*farg5); + arg6 = (void *)(farg6); + result = (SUNErrCode)SUNQRAdd_ICWY(arg1,arg2,arg3,arg4,arg5,arg6); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNQRAdd_ICWY_SB(void *farg1, double *farg2, N_Vector farg3, int const *farg4, int const *farg5, void *farg6) { + int fresult ; + N_Vector *arg1 = (N_Vector *) 0 ; + sunrealtype *arg2 = (sunrealtype *) 0 ; + N_Vector arg3 = (N_Vector) 0 ; + int arg4 ; + int arg5 ; + void *arg6 = (void *) 0 ; + SUNErrCode result; + + arg1 = (N_Vector *)(farg1); + arg2 = (sunrealtype *)(farg2); + arg3 = (N_Vector)(farg3); + arg4 = (int)(*farg4); + arg5 = (int)(*farg5); + arg6 = (void *)(farg6); + result = (SUNErrCode)SUNQRAdd_ICWY_SB(arg1,arg2,arg3,arg4,arg5,arg6); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNQRAdd_CGS2(void *farg1, double *farg2, N_Vector farg3, int const *farg4, int const *farg5, void *farg6) { + int fresult ; + N_Vector *arg1 = (N_Vector *) 0 ; + sunrealtype *arg2 = (sunrealtype *) 0 ; + N_Vector arg3 = (N_Vector) 0 ; + int arg4 ; + int arg5 ; + void *arg6 = (void *) 0 ; + SUNErrCode result; + + arg1 = (N_Vector *)(farg1); + arg2 = (sunrealtype *)(farg2); + arg3 = (N_Vector)(farg3); + arg4 = (int)(*farg4); + arg5 = (int)(*farg5); + arg6 = (void *)(farg6); + result = (SUNErrCode)SUNQRAdd_CGS2(arg1,arg2,arg3,arg4,arg5,arg6); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNQRAdd_DCGS2(void *farg1, double *farg2, N_Vector farg3, int const *farg4, int const *farg5, void *farg6) { + int fresult ; + N_Vector *arg1 = (N_Vector *) 0 ; + sunrealtype *arg2 = (sunrealtype *) 0 ; + N_Vector arg3 = (N_Vector) 0 ; + int arg4 ; + int arg5 ; + void *arg6 = (void *) 0 ; + SUNErrCode result; + + arg1 = (N_Vector *)(farg1); + arg2 = (sunrealtype *)(farg2); + arg3 = (N_Vector)(farg3); + arg4 = (int)(*farg4); + arg5 = (int)(*farg5); + arg6 = (void *)(farg6); + result = (SUNErrCode)SUNQRAdd_DCGS2(arg1,arg2,arg3,arg4,arg5,arg6); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNQRAdd_DCGS2_SB(void *farg1, double *farg2, N_Vector farg3, int const *farg4, int const *farg5, void *farg6) { + int fresult ; + N_Vector *arg1 = (N_Vector *) 0 ; + sunrealtype *arg2 = (sunrealtype *) 0 ; + N_Vector arg3 = (N_Vector) 0 ; + int arg4 ; + int arg5 ; + void *arg6 = (void *) 0 ; + SUNErrCode result; + + arg1 = (N_Vector *)(farg1); + arg2 = (sunrealtype *)(farg2); + arg3 = (N_Vector)(farg3); + arg4 = (int)(*farg4); + arg5 = (int)(*farg5); + arg6 = (void *)(farg6); + result = (SUNErrCode)SUNQRAdd_DCGS2_SB(arg1,arg2,arg3,arg4,arg5,arg6); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT SUNLinearSolver _wrap_FSUNLinSolNewEmpty(void *farg1) { + SUNLinearSolver fresult ; + SUNContext arg1 = (SUNContext) 0 ; + SUNLinearSolver result; + + arg1 = (SUNContext)(farg1); + result = (SUNLinearSolver)SUNLinSolNewEmpty(arg1); + fresult = result; + return fresult; +} + + +SWIGEXPORT void _wrap_FSUNLinSolFreeEmpty(SUNLinearSolver farg1) { + SUNLinearSolver arg1 = (SUNLinearSolver) 0 ; + + arg1 = (SUNLinearSolver)(farg1); + SUNLinSolFreeEmpty(arg1); +} + + +SWIGEXPORT int _wrap_FSUNLinSolGetType(SUNLinearSolver farg1) { + int fresult ; + SUNLinearSolver arg1 = (SUNLinearSolver) 0 ; + SUNLinearSolver_Type result; + + arg1 = (SUNLinearSolver)(farg1); + result = (SUNLinearSolver_Type)SUNLinSolGetType(arg1); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNLinSolGetID(SUNLinearSolver farg1) { + int fresult ; + SUNLinearSolver arg1 = (SUNLinearSolver) 0 ; + SUNLinearSolver_ID result; + + arg1 = (SUNLinearSolver)(farg1); + result = (SUNLinearSolver_ID)SUNLinSolGetID(arg1); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNLinSolSetATimes(SUNLinearSolver farg1, void *farg2, SUNATimesFn farg3) { + int fresult ; + SUNLinearSolver arg1 = (SUNLinearSolver) 0 ; + void *arg2 = (void *) 0 ; + SUNATimesFn arg3 = (SUNATimesFn) 0 ; + SUNErrCode result; + + arg1 = (SUNLinearSolver)(farg1); + arg2 = (void *)(farg2); + arg3 = (SUNATimesFn)(farg3); + result = (SUNErrCode)SUNLinSolSetATimes(arg1,arg2,arg3); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNLinSolSetPreconditioner(SUNLinearSolver farg1, void *farg2, SUNPSetupFn farg3, SUNPSolveFn farg4) { + int fresult ; + SUNLinearSolver arg1 = (SUNLinearSolver) 0 ; + void *arg2 = (void *) 0 ; + SUNPSetupFn arg3 = (SUNPSetupFn) 0 ; + SUNPSolveFn arg4 = (SUNPSolveFn) 0 ; + SUNErrCode result; + + arg1 = (SUNLinearSolver)(farg1); + arg2 = (void *)(farg2); + arg3 = (SUNPSetupFn)(farg3); + arg4 = (SUNPSolveFn)(farg4); + result = (SUNErrCode)SUNLinSolSetPreconditioner(arg1,arg2,arg3,arg4); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNLinSolSetScalingVectors(SUNLinearSolver farg1, N_Vector farg2, N_Vector farg3) { + int fresult ; + SUNLinearSolver arg1 = (SUNLinearSolver) 0 ; + N_Vector arg2 = (N_Vector) 0 ; + N_Vector arg3 = (N_Vector) 0 ; + SUNErrCode result; + + arg1 = (SUNLinearSolver)(farg1); + arg2 = (N_Vector)(farg2); + arg3 = (N_Vector)(farg3); + result = (SUNErrCode)SUNLinSolSetScalingVectors(arg1,arg2,arg3); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNLinSolSetZeroGuess(SUNLinearSolver farg1, int const *farg2) { + int fresult ; + SUNLinearSolver arg1 = (SUNLinearSolver) 0 ; + int arg2 ; + SUNErrCode result; + + arg1 = (SUNLinearSolver)(farg1); + arg2 = (int)(*farg2); + result = (SUNErrCode)SUNLinSolSetZeroGuess(arg1,arg2); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNLinSolInitialize(SUNLinearSolver farg1) { + int fresult ; + SUNLinearSolver arg1 = (SUNLinearSolver) 0 ; + SUNErrCode result; + + arg1 = (SUNLinearSolver)(farg1); + result = (SUNErrCode)SUNLinSolInitialize(arg1); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNLinSolSetup(SUNLinearSolver farg1, SUNMatrix farg2) { + int fresult ; + SUNLinearSolver arg1 = (SUNLinearSolver) 0 ; + SUNMatrix arg2 = (SUNMatrix) 0 ; + int result; + + arg1 = (SUNLinearSolver)(farg1); + arg2 = (SUNMatrix)(farg2); + result = (int)SUNLinSolSetup(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNLinSolSolve(SUNLinearSolver farg1, SUNMatrix farg2, N_Vector farg3, N_Vector farg4, double const *farg5) { + int fresult ; + SUNLinearSolver arg1 = (SUNLinearSolver) 0 ; + SUNMatrix arg2 = (SUNMatrix) 0 ; + N_Vector arg3 = (N_Vector) 0 ; + N_Vector arg4 = (N_Vector) 0 ; + sunrealtype arg5 ; + int result; + + arg1 = (SUNLinearSolver)(farg1); + arg2 = (SUNMatrix)(farg2); + arg3 = (N_Vector)(farg3); + arg4 = (N_Vector)(farg4); + arg5 = (sunrealtype)(*farg5); + result = (int)SUNLinSolSolve(arg1,arg2,arg3,arg4,arg5); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNLinSolNumIters(SUNLinearSolver farg1) { + int fresult ; + SUNLinearSolver arg1 = (SUNLinearSolver) 0 ; + int result; + + arg1 = (SUNLinearSolver)(farg1); + result = (int)SUNLinSolNumIters(arg1); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT double _wrap_FSUNLinSolResNorm(SUNLinearSolver farg1) { + double fresult ; + SUNLinearSolver arg1 = (SUNLinearSolver) 0 ; + sunrealtype result; + + arg1 = (SUNLinearSolver)(farg1); + result = (sunrealtype)SUNLinSolResNorm(arg1); + fresult = (sunrealtype)(result); + return fresult; +} + + +SWIGEXPORT N_Vector _wrap_FSUNLinSolResid(SUNLinearSolver farg1) { + N_Vector fresult ; + SUNLinearSolver arg1 = (SUNLinearSolver) 0 ; + N_Vector result; + + arg1 = (SUNLinearSolver)(farg1); + result = (N_Vector)SUNLinSolResid(arg1); + fresult = result; + return fresult; +} + + +SWIGEXPORT int32_t _wrap_FSUNLinSolLastFlag(SUNLinearSolver farg1) { + int32_t fresult ; + SUNLinearSolver arg1 = (SUNLinearSolver) 0 ; + sunindextype result; + + arg1 = (SUNLinearSolver)(farg1); + result = SUNLinSolLastFlag(arg1); + fresult = (sunindextype)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNLinSolSpace(SUNLinearSolver farg1, long *farg2, long *farg3) { + int fresult ; + SUNLinearSolver arg1 = (SUNLinearSolver) 0 ; + long *arg2 = (long *) 0 ; + long *arg3 = (long *) 0 ; + SUNErrCode result; + + arg1 = (SUNLinearSolver)(farg1); + arg2 = (long *)(farg2); + arg3 = (long *)(farg3); + result = (SUNErrCode)SUNLinSolSpace(arg1,arg2,arg3); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNLinSolFree(SUNLinearSolver farg1) { + int fresult ; + SUNLinearSolver arg1 = (SUNLinearSolver) 0 ; + SUNErrCode result; + + arg1 = (SUNLinearSolver)(farg1); + result = (SUNErrCode)SUNLinSolFree(arg1); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT SUNNonlinearSolver _wrap_FSUNNonlinSolNewEmpty(void *farg1) { + SUNNonlinearSolver fresult ; + SUNContext arg1 = (SUNContext) 0 ; + SUNNonlinearSolver result; + + arg1 = (SUNContext)(farg1); + result = (SUNNonlinearSolver)SUNNonlinSolNewEmpty(arg1); + fresult = result; + return fresult; +} + + +SWIGEXPORT void _wrap_FSUNNonlinSolFreeEmpty(SUNNonlinearSolver farg1) { + SUNNonlinearSolver arg1 = (SUNNonlinearSolver) 0 ; + + arg1 = (SUNNonlinearSolver)(farg1); + SUNNonlinSolFreeEmpty(arg1); +} + + +SWIGEXPORT int _wrap_FSUNNonlinSolGetType(SUNNonlinearSolver farg1) { + int fresult ; + SUNNonlinearSolver arg1 = (SUNNonlinearSolver) 0 ; + SUNNonlinearSolver_Type result; + + arg1 = (SUNNonlinearSolver)(farg1); + result = (SUNNonlinearSolver_Type)SUNNonlinSolGetType(arg1); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNNonlinSolInitialize(SUNNonlinearSolver farg1) { + int fresult ; + SUNNonlinearSolver arg1 = (SUNNonlinearSolver) 0 ; + SUNErrCode result; + + arg1 = (SUNNonlinearSolver)(farg1); + result = (SUNErrCode)SUNNonlinSolInitialize(arg1); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNNonlinSolSetup(SUNNonlinearSolver farg1, N_Vector farg2, void *farg3) { + int fresult ; + SUNNonlinearSolver arg1 = (SUNNonlinearSolver) 0 ; + N_Vector arg2 = (N_Vector) 0 ; + void *arg3 = (void *) 0 ; + int result; + + arg1 = (SUNNonlinearSolver)(farg1); + arg2 = (N_Vector)(farg2); + arg3 = (void *)(farg3); + result = (int)SUNNonlinSolSetup(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNNonlinSolSolve(SUNNonlinearSolver farg1, N_Vector farg2, N_Vector farg3, N_Vector farg4, double const *farg5, int const *farg6, void *farg7) { + int fresult ; + SUNNonlinearSolver arg1 = (SUNNonlinearSolver) 0 ; + N_Vector arg2 = (N_Vector) 0 ; + N_Vector arg3 = (N_Vector) 0 ; + N_Vector arg4 = (N_Vector) 0 ; + sunrealtype arg5 ; + int arg6 ; + void *arg7 = (void *) 0 ; + int result; + + arg1 = (SUNNonlinearSolver)(farg1); + arg2 = (N_Vector)(farg2); + arg3 = (N_Vector)(farg3); + arg4 = (N_Vector)(farg4); + arg5 = (sunrealtype)(*farg5); + arg6 = (int)(*farg6); + arg7 = (void *)(farg7); + result = (int)SUNNonlinSolSolve(arg1,arg2,arg3,arg4,arg5,arg6,arg7); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNNonlinSolFree(SUNNonlinearSolver farg1) { + int fresult ; + SUNNonlinearSolver arg1 = (SUNNonlinearSolver) 0 ; + SUNErrCode result; + + arg1 = (SUNNonlinearSolver)(farg1); + result = (SUNErrCode)SUNNonlinSolFree(arg1); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNNonlinSolSetSysFn(SUNNonlinearSolver farg1, SUNNonlinSolSysFn farg2) { + int fresult ; + SUNNonlinearSolver arg1 = (SUNNonlinearSolver) 0 ; + SUNNonlinSolSysFn arg2 = (SUNNonlinSolSysFn) 0 ; + SUNErrCode result; + + arg1 = (SUNNonlinearSolver)(farg1); + arg2 = (SUNNonlinSolSysFn)(farg2); + result = (SUNErrCode)SUNNonlinSolSetSysFn(arg1,arg2); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNNonlinSolSetLSetupFn(SUNNonlinearSolver farg1, SUNNonlinSolLSetupFn farg2) { + int fresult ; + SUNNonlinearSolver arg1 = (SUNNonlinearSolver) 0 ; + SUNNonlinSolLSetupFn arg2 = (SUNNonlinSolLSetupFn) 0 ; + SUNErrCode result; + + arg1 = (SUNNonlinearSolver)(farg1); + arg2 = (SUNNonlinSolLSetupFn)(farg2); + result = (SUNErrCode)SUNNonlinSolSetLSetupFn(arg1,arg2); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNNonlinSolSetLSolveFn(SUNNonlinearSolver farg1, SUNNonlinSolLSolveFn farg2) { + int fresult ; + SUNNonlinearSolver arg1 = (SUNNonlinearSolver) 0 ; + SUNNonlinSolLSolveFn arg2 = (SUNNonlinSolLSolveFn) 0 ; + SUNErrCode result; + + arg1 = (SUNNonlinearSolver)(farg1); + arg2 = (SUNNonlinSolLSolveFn)(farg2); + result = (SUNErrCode)SUNNonlinSolSetLSolveFn(arg1,arg2); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNNonlinSolSetConvTestFn(SUNNonlinearSolver farg1, SUNNonlinSolConvTestFn farg2, void *farg3) { + int fresult ; + SUNNonlinearSolver arg1 = (SUNNonlinearSolver) 0 ; + SUNNonlinSolConvTestFn arg2 = (SUNNonlinSolConvTestFn) 0 ; + void *arg3 = (void *) 0 ; + SUNErrCode result; + + arg1 = (SUNNonlinearSolver)(farg1); + arg2 = (SUNNonlinSolConvTestFn)(farg2); + arg3 = (void *)(farg3); + result = (SUNErrCode)SUNNonlinSolSetConvTestFn(arg1,arg2,arg3); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNNonlinSolSetMaxIters(SUNNonlinearSolver farg1, int const *farg2) { + int fresult ; + SUNNonlinearSolver arg1 = (SUNNonlinearSolver) 0 ; + int arg2 ; + SUNErrCode result; + + arg1 = (SUNNonlinearSolver)(farg1); + arg2 = (int)(*farg2); + result = (SUNErrCode)SUNNonlinSolSetMaxIters(arg1,arg2); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNNonlinSolGetNumIters(SUNNonlinearSolver farg1, long *farg2) { + int fresult ; + SUNNonlinearSolver arg1 = (SUNNonlinearSolver) 0 ; + long *arg2 = (long *) 0 ; + SUNErrCode result; + + arg1 = (SUNNonlinearSolver)(farg1); + arg2 = (long *)(farg2); + result = (SUNErrCode)SUNNonlinSolGetNumIters(arg1,arg2); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNNonlinSolGetCurIter(SUNNonlinearSolver farg1, int *farg2) { + int fresult ; + SUNNonlinearSolver arg1 = (SUNNonlinearSolver) 0 ; + int *arg2 = (int *) 0 ; + SUNErrCode result; + + arg1 = (SUNNonlinearSolver)(farg1); + arg2 = (int *)(farg2); + result = (SUNErrCode)SUNNonlinSolGetCurIter(arg1,arg2); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNNonlinSolGetNumConvFails(SUNNonlinearSolver farg1, long *farg2) { + int fresult ; + SUNNonlinearSolver arg1 = (SUNNonlinearSolver) 0 ; + long *arg2 = (long *) 0 ; + SUNErrCode result; + + arg1 = (SUNNonlinearSolver)(farg1); + arg2 = (long *)(farg2); + result = (SUNErrCode)SUNNonlinSolGetNumConvFails(arg1,arg2); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT SUNAdaptController _wrap_FSUNAdaptController_NewEmpty(void *farg1) { + SUNAdaptController fresult ; + SUNContext arg1 = (SUNContext) 0 ; + SUNAdaptController result; + + arg1 = (SUNContext)(farg1); + result = (SUNAdaptController)SUNAdaptController_NewEmpty(arg1); + fresult = result; + return fresult; +} + + +SWIGEXPORT void _wrap_FSUNAdaptController_DestroyEmpty(SUNAdaptController farg1) { + SUNAdaptController arg1 = (SUNAdaptController) 0 ; + + arg1 = (SUNAdaptController)(farg1); + SUNAdaptController_DestroyEmpty(arg1); +} + + +SWIGEXPORT int _wrap_FSUNAdaptController_GetType(SUNAdaptController farg1) { + int fresult ; + SUNAdaptController arg1 = (SUNAdaptController) 0 ; + SUNAdaptController_Type result; + + arg1 = (SUNAdaptController)(farg1); + result = (SUNAdaptController_Type)SUNAdaptController_GetType(arg1); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNAdaptController_Destroy(SUNAdaptController farg1) { + int fresult ; + SUNAdaptController arg1 = (SUNAdaptController) 0 ; + SUNErrCode result; + + arg1 = (SUNAdaptController)(farg1); + result = (SUNErrCode)SUNAdaptController_Destroy(arg1); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNAdaptController_EstimateStep(SUNAdaptController farg1, double const *farg2, int const *farg3, double const *farg4, double *farg5) { + int fresult ; + SUNAdaptController arg1 = (SUNAdaptController) 0 ; + sunrealtype arg2 ; + int arg3 ; + sunrealtype arg4 ; + sunrealtype *arg5 = (sunrealtype *) 0 ; + SUNErrCode result; + + arg1 = (SUNAdaptController)(farg1); + arg2 = (sunrealtype)(*farg2); + arg3 = (int)(*farg3); + arg4 = (sunrealtype)(*farg4); + arg5 = (sunrealtype *)(farg5); + result = (SUNErrCode)SUNAdaptController_EstimateStep(arg1,arg2,arg3,arg4,arg5); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNAdaptController_Reset(SUNAdaptController farg1) { + int fresult ; + SUNAdaptController arg1 = (SUNAdaptController) 0 ; + SUNErrCode result; + + arg1 = (SUNAdaptController)(farg1); + result = (SUNErrCode)SUNAdaptController_Reset(arg1); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNAdaptController_SetDefaults(SUNAdaptController farg1) { + int fresult ; + SUNAdaptController arg1 = (SUNAdaptController) 0 ; + SUNErrCode result; + + arg1 = (SUNAdaptController)(farg1); + result = (SUNErrCode)SUNAdaptController_SetDefaults(arg1); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNAdaptController_Write(SUNAdaptController farg1, void *farg2) { + int fresult ; + SUNAdaptController arg1 = (SUNAdaptController) 0 ; + FILE *arg2 = (FILE *) 0 ; + SUNErrCode result; + + arg1 = (SUNAdaptController)(farg1); + arg2 = (FILE *)(farg2); + result = (SUNErrCode)SUNAdaptController_Write(arg1,arg2); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNAdaptController_SetErrorBias(SUNAdaptController farg1, double const *farg2) { + int fresult ; + SUNAdaptController arg1 = (SUNAdaptController) 0 ; + sunrealtype arg2 ; + SUNErrCode result; + + arg1 = (SUNAdaptController)(farg1); + arg2 = (sunrealtype)(*farg2); + result = (SUNErrCode)SUNAdaptController_SetErrorBias(arg1,arg2); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNAdaptController_UpdateH(SUNAdaptController farg1, double const *farg2, double const *farg3) { + int fresult ; + SUNAdaptController arg1 = (SUNAdaptController) 0 ; + sunrealtype arg2 ; + sunrealtype arg3 ; + SUNErrCode result; + + arg1 = (SUNAdaptController)(farg1); + arg2 = (sunrealtype)(*farg2); + arg3 = (sunrealtype)(*farg3); + result = (SUNErrCode)SUNAdaptController_UpdateH(arg1,arg2,arg3); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNAdaptController_Space(SUNAdaptController farg1, long *farg2, long *farg3) { + int fresult ; + SUNAdaptController arg1 = (SUNAdaptController) 0 ; + long *arg2 = (long *) 0 ; + long *arg3 = (long *) 0 ; + SUNErrCode result; + + arg1 = (SUNAdaptController)(farg1); + arg2 = (long *)(farg2); + arg3 = (long *)(farg3); + result = (SUNErrCode)SUNAdaptController_Space(arg1,arg2,arg3); + fresult = (SUNErrCode)(result); + return fresult; +} + + + diff --git a/src/sundials/fmod_int32/fsundials_core_mod.f90 b/src/sundials/fmod_int32/fsundials_core_mod.f90 new file mode 100644 index 0000000000..f47a3141f2 --- /dev/null +++ b/src/sundials/fmod_int32/fsundials_core_mod.f90 @@ -0,0 +1,4789 @@ +! This file was automatically generated by SWIG (http://www.swig.org). +! Version 4.0.0 +! +! Do not make changes to this file unless you know what you are doing--modify +! the SWIG interface file instead. + +! --------------------------------------------------------------- +! Programmer(s): Auto-generated by swig. +! --------------------------------------------------------------- +! SUNDIALS Copyright Start +! Copyright (c) 2002-2024, Lawrence Livermore National Security +! and Southern Methodist University. +! All rights reserved. +! +! See the top-level LICENSE and NOTICE files for details. +! +! SPDX-License-Identifier: BSD-3-Clause +! SUNDIALS Copyright End +! --------------------------------------------------------------- + + +! --------------------------------------------------------------- +! Programmer(s): Auto-generated by swig. +! --------------------------------------------------------------- +! SUNDIALS Copyright Start +! Copyright (c) 2002-2024, Lawrence Livermore National Security +! and Southern Methodist University. +! All rights reserved. +! +! See the top-level LICENSE and NOTICE files for details. +! +! SPDX-License-Identifier: BSD-3-Clause +! SUNDIALS Copyright End +! --------------------------------------------------------------- + +module fsundials_core_mod + use, intrinsic :: ISO_C_BINDING + implicit none + private + + ! DECLARATION CONSTRUCTS + +#if SUNDIALS_MPI_ENABLED + include "mpif.h" + integer(C_INT), protected, public :: SUN_COMM_NULL = MPI_COMM_NULL +#else + integer(C_INT), protected, public, & + bind(C, name="_wrap_SUN_COMM_NULL") :: SUN_COMM_NULL +#endif + + integer(C_INT), protected, public, & + bind(C, name="_wrap_SUNFALSE") :: SUNFALSE + integer(C_INT), protected, public, & + bind(C, name="_wrap_SUNTRUE") :: SUNTRUE + ! typedef enum SUNOutputFormat + enum, bind(c) + enumerator :: SUN_OUTPUTFORMAT_TABLE + enumerator :: SUN_OUTPUTFORMAT_CSV + end enum + integer, parameter, public :: SUNOutputFormat = kind(SUN_OUTPUTFORMAT_TABLE) + public :: SUN_OUTPUTFORMAT_TABLE, SUN_OUTPUTFORMAT_CSV + enum, bind(c) + enumerator :: SUN_ERR_MINIMUM = -10000 + enumerator :: SUN_ERR_ARG_CORRUPT + enumerator :: SUN_ERR_ARG_INCOMPATIBLE + enumerator :: SUN_ERR_ARG_OUTOFRANGE + enumerator :: SUN_ERR_ARG_WRONGTYPE + enumerator :: SUN_ERR_ARG_DIMSMISMATCH + enumerator :: SUN_ERR_GENERIC + enumerator :: SUN_ERR_CORRUPT + enumerator :: SUN_ERR_OUTOFRANGE + enumerator :: SUN_ERR_FILE_OPEN + enumerator :: SUN_ERR_OP_FAIL + enumerator :: SUN_ERR_MEM_FAIL + enumerator :: SUN_ERR_MALLOC_FAIL + enumerator :: SUN_ERR_EXT_FAIL + enumerator :: SUN_ERR_DESTROY_FAIL + enumerator :: SUN_ERR_NOT_IMPLEMENTED + enumerator :: SUN_ERR_USER_FCN_FAIL + enumerator :: SUN_ERR_PROFILER_MAPFULL + enumerator :: SUN_ERR_PROFILER_MAPGET + enumerator :: SUN_ERR_PROFILER_MAPINSERT + enumerator :: SUN_ERR_PROFILER_MAPKEYNOTFOUND + enumerator :: SUN_ERR_PROFILER_MAPSORT + enumerator :: SUN_ERR_SUNCTX_CORRUPT + enumerator :: SUN_ERR_MPI_FAIL + enumerator :: SUN_ERR_UNREACHABLE + enumerator :: SUN_ERR_UNKNOWN + enumerator :: SUN_ERR_MAXIMUM = -1000 + enumerator :: SUN_SUCCESS = 0 + end enum + public :: SUN_ERR_MINIMUM, SUN_ERR_ARG_CORRUPT, SUN_ERR_ARG_INCOMPATIBLE, SUN_ERR_ARG_OUTOFRANGE, SUN_ERR_ARG_WRONGTYPE, & + SUN_ERR_ARG_DIMSMISMATCH, SUN_ERR_GENERIC, SUN_ERR_CORRUPT, SUN_ERR_OUTOFRANGE, SUN_ERR_FILE_OPEN, SUN_ERR_OP_FAIL, & + SUN_ERR_MEM_FAIL, SUN_ERR_MALLOC_FAIL, SUN_ERR_EXT_FAIL, SUN_ERR_DESTROY_FAIL, SUN_ERR_NOT_IMPLEMENTED, & + SUN_ERR_USER_FCN_FAIL, SUN_ERR_PROFILER_MAPFULL, SUN_ERR_PROFILER_MAPGET, SUN_ERR_PROFILER_MAPINSERT, & + SUN_ERR_PROFILER_MAPKEYNOTFOUND, SUN_ERR_PROFILER_MAPSORT, SUN_ERR_SUNCTX_CORRUPT, SUN_ERR_MPI_FAIL, SUN_ERR_UNREACHABLE, & + SUN_ERR_UNKNOWN, SUN_ERR_MAXIMUM, SUN_SUCCESS + type, bind(C) :: SwigArrayWrapper + type(C_PTR), public :: data = C_NULL_PTR + integer(C_SIZE_T), public :: size = 0 + end type + public :: FSUNLogErrHandlerFn + public :: FSUNAbortErrHandlerFn + public :: FSUNGetErrMsg + public :: FSUNContext_Create + public :: FSUNContext_GetLastError + public :: FSUNContext_PeekLastError + public :: FSUNContext_PushErrHandler + public :: FSUNContext_PopErrHandler + public :: FSUNContext_ClearErrHandlers + public :: FSUNContext_GetProfiler + public :: FSUNContext_SetProfiler + public :: FSUNContext_GetLogger + public :: FSUNContext_SetLogger + public :: FSUNContext_Free + public :: FSUNProfiler_Create + public :: FSUNProfiler_Free + public :: FSUNProfiler_Begin + public :: FSUNProfiler_End + public :: FSUNProfiler_GetTimerResolution + public :: FSUNProfiler_GetElapsedTime + public :: FSUNProfiler_Print + public :: FSUNProfiler_Reset + ! typedef enum SUNLogLevel + enum, bind(c) + enumerator :: SUN_LOGLEVEL_ALL = -1 + enumerator :: SUN_LOGLEVEL_NONE = 0 + enumerator :: SUN_LOGLEVEL_ERROR = 1 + enumerator :: SUN_LOGLEVEL_WARNING = 2 + enumerator :: SUN_LOGLEVEL_INFO = 3 + enumerator :: SUN_LOGLEVEL_DEBUG = 4 + end enum + integer, parameter, public :: SUNLogLevel = kind(SUN_LOGLEVEL_ALL) + public :: SUN_LOGLEVEL_ALL, SUN_LOGLEVEL_NONE, SUN_LOGLEVEL_ERROR, SUN_LOGLEVEL_WARNING, SUN_LOGLEVEL_INFO, & + SUN_LOGLEVEL_DEBUG + public :: FSUNLogger_Create + public :: FSUNLogger_CreateFromEnv + public :: FSUNLogger_SetErrorFilename + public :: FSUNLogger_SetWarningFilename + public :: FSUNLogger_SetDebugFilename + public :: FSUNLogger_SetInfoFilename + public :: FSUNLogger_QueueMsg + public :: FSUNLogger_Flush + public :: FSUNLogger_GetOutputRank + public :: FSUNLogger_Destroy + public :: FSUNDIALSFileOpen + public :: FSUNDIALSFileClose + ! typedef enum N_Vector_ID + enum, bind(c) + enumerator :: SUNDIALS_NVEC_SERIAL + enumerator :: SUNDIALS_NVEC_PARALLEL + enumerator :: SUNDIALS_NVEC_OPENMP + enumerator :: SUNDIALS_NVEC_PTHREADS + enumerator :: SUNDIALS_NVEC_PARHYP + enumerator :: SUNDIALS_NVEC_PETSC + enumerator :: SUNDIALS_NVEC_CUDA + enumerator :: SUNDIALS_NVEC_HIP + enumerator :: SUNDIALS_NVEC_SYCL + enumerator :: SUNDIALS_NVEC_RAJA + enumerator :: SUNDIALS_NVEC_KOKKOS + enumerator :: SUNDIALS_NVEC_OPENMPDEV + enumerator :: SUNDIALS_NVEC_TRILINOS + enumerator :: SUNDIALS_NVEC_MANYVECTOR + enumerator :: SUNDIALS_NVEC_MPIMANYVECTOR + enumerator :: SUNDIALS_NVEC_MPIPLUSX + enumerator :: SUNDIALS_NVEC_CUSTOM + end enum + integer, parameter, public :: N_Vector_ID = kind(SUNDIALS_NVEC_SERIAL) + public :: SUNDIALS_NVEC_SERIAL, SUNDIALS_NVEC_PARALLEL, SUNDIALS_NVEC_OPENMP, SUNDIALS_NVEC_PTHREADS, SUNDIALS_NVEC_PARHYP, & + SUNDIALS_NVEC_PETSC, SUNDIALS_NVEC_CUDA, SUNDIALS_NVEC_HIP, SUNDIALS_NVEC_SYCL, SUNDIALS_NVEC_RAJA, SUNDIALS_NVEC_KOKKOS, & + SUNDIALS_NVEC_OPENMPDEV, SUNDIALS_NVEC_TRILINOS, SUNDIALS_NVEC_MANYVECTOR, SUNDIALS_NVEC_MPIMANYVECTOR, & + SUNDIALS_NVEC_MPIPLUSX, SUNDIALS_NVEC_CUSTOM + ! struct struct _generic_N_Vector_Ops + type, bind(C), public :: N_Vector_Ops + type(C_FUNPTR), public :: nvgetvectorid + type(C_FUNPTR), public :: nvclone + type(C_FUNPTR), public :: nvcloneempty + type(C_FUNPTR), public :: nvdestroy + type(C_FUNPTR), public :: nvspace + type(C_FUNPTR), public :: nvgetarraypointer + type(C_FUNPTR), public :: nvgetdevicearraypointer + type(C_FUNPTR), public :: nvsetarraypointer + type(C_FUNPTR), public :: nvgetcommunicator + type(C_FUNPTR), public :: nvgetlength + type(C_FUNPTR), public :: nvgetlocallength + type(C_FUNPTR), public :: nvlinearsum + type(C_FUNPTR), public :: nvconst + type(C_FUNPTR), public :: nvprod + type(C_FUNPTR), public :: nvdiv + type(C_FUNPTR), public :: nvscale + type(C_FUNPTR), public :: nvabs + type(C_FUNPTR), public :: nvinv + type(C_FUNPTR), public :: nvaddconst + type(C_FUNPTR), public :: nvdotprod + type(C_FUNPTR), public :: nvmaxnorm + type(C_FUNPTR), public :: nvwrmsnorm + type(C_FUNPTR), public :: nvwrmsnormmask + type(C_FUNPTR), public :: nvmin + type(C_FUNPTR), public :: nvwl2norm + type(C_FUNPTR), public :: nvl1norm + type(C_FUNPTR), public :: nvcompare + type(C_FUNPTR), public :: nvinvtest + type(C_FUNPTR), public :: nvconstrmask + type(C_FUNPTR), public :: nvminquotient + type(C_FUNPTR), public :: nvlinearcombination + type(C_FUNPTR), public :: nvscaleaddmulti + type(C_FUNPTR), public :: nvdotprodmulti + type(C_FUNPTR), public :: nvlinearsumvectorarray + type(C_FUNPTR), public :: nvscalevectorarray + type(C_FUNPTR), public :: nvconstvectorarray + type(C_FUNPTR), public :: nvwrmsnormvectorarray + type(C_FUNPTR), public :: nvwrmsnormmaskvectorarray + type(C_FUNPTR), public :: nvscaleaddmultivectorarray + type(C_FUNPTR), public :: nvlinearcombinationvectorarray + type(C_FUNPTR), public :: nvdotprodlocal + type(C_FUNPTR), public :: nvmaxnormlocal + type(C_FUNPTR), public :: nvminlocal + type(C_FUNPTR), public :: nvl1normlocal + type(C_FUNPTR), public :: nvinvtestlocal + type(C_FUNPTR), public :: nvconstrmasklocal + type(C_FUNPTR), public :: nvminquotientlocal + type(C_FUNPTR), public :: nvwsqrsumlocal + type(C_FUNPTR), public :: nvwsqrsummasklocal + type(C_FUNPTR), public :: nvdotprodmultilocal + type(C_FUNPTR), public :: nvdotprodmultiallreduce + type(C_FUNPTR), public :: nvbufsize + type(C_FUNPTR), public :: nvbufpack + type(C_FUNPTR), public :: nvbufunpack + type(C_FUNPTR), public :: nvprint + type(C_FUNPTR), public :: nvprintfile + end type N_Vector_Ops + ! struct struct _generic_N_Vector + type, bind(C), public :: N_Vector + type(C_PTR), public :: content + type(C_PTR), public :: ops + type(C_PTR), public :: sunctx + end type N_Vector + public :: FN_VNewEmpty + public :: FN_VFreeEmpty + public :: FN_VCopyOps + public :: FN_VGetVectorID + public :: FN_VClone + public :: FN_VCloneEmpty + public :: FN_VDestroy + public :: FN_VSpace + public :: FN_VSetArrayPointer + public :: FN_VGetCommunicator + public :: FN_VGetLength + public :: FN_VGetLocalLength + public :: FN_VLinearSum + public :: FN_VConst + public :: FN_VProd + public :: FN_VDiv + public :: FN_VScale + public :: FN_VAbs + public :: FN_VInv + public :: FN_VAddConst + public :: FN_VDotProd + public :: FN_VMaxNorm + public :: FN_VWrmsNorm + public :: FN_VWrmsNormMask + public :: FN_VMin + public :: FN_VWL2Norm + public :: FN_VL1Norm + public :: FN_VCompare + public :: FN_VInvTest + public :: FN_VConstrMask + public :: FN_VMinQuotient + public :: FN_VLinearCombination + public :: FN_VScaleAddMulti + public :: FN_VDotProdMulti + public :: FN_VLinearSumVectorArray + public :: FN_VScaleVectorArray + public :: FN_VConstVectorArray + public :: FN_VWrmsNormVectorArray + public :: FN_VWrmsNormMaskVectorArray + public :: FN_VDotProdLocal + public :: FN_VMaxNormLocal + public :: FN_VMinLocal + public :: FN_VL1NormLocal + public :: FN_VWSqrSumLocal + public :: FN_VWSqrSumMaskLocal + public :: FN_VInvTestLocal + public :: FN_VConstrMaskLocal + public :: FN_VMinQuotientLocal + public :: FN_VDotProdMultiLocal + public :: FN_VDotProdMultiAllReduce + public :: FN_VBufSize + public :: FN_VBufPack + public :: FN_VBufUnpack + public :: FN_VNewVectorArray + public :: FN_VCloneEmptyVectorArray + public :: FN_VCloneVectorArray + public :: FN_VDestroyVectorArray + public :: FN_VGetVecAtIndexVectorArray + public :: FN_VSetVecAtIndexVectorArray + public :: FN_VPrint + public :: FN_VPrintFile + + public :: FN_VGetArrayPointer + public :: FN_VGetDeviceArrayPointer + + ! typedef enum SUNMatrix_ID + enum, bind(c) + enumerator :: SUNMATRIX_DENSE + enumerator :: SUNMATRIX_MAGMADENSE + enumerator :: SUNMATRIX_ONEMKLDENSE + enumerator :: SUNMATRIX_BAND + enumerator :: SUNMATRIX_SPARSE + enumerator :: SUNMATRIX_SLUNRLOC + enumerator :: SUNMATRIX_CUSPARSE + enumerator :: SUNMATRIX_GINKGO + enumerator :: SUNMATRIX_KOKKOSDENSE + enumerator :: SUNMATRIX_CUSTOM + end enum + integer, parameter, public :: SUNMatrix_ID = kind(SUNMATRIX_DENSE) + public :: SUNMATRIX_DENSE, SUNMATRIX_MAGMADENSE, SUNMATRIX_ONEMKLDENSE, SUNMATRIX_BAND, SUNMATRIX_SPARSE, SUNMATRIX_SLUNRLOC, & + SUNMATRIX_CUSPARSE, SUNMATRIX_GINKGO, SUNMATRIX_KOKKOSDENSE, SUNMATRIX_CUSTOM + ! struct struct _generic_SUNMatrix_Ops + type, bind(C), public :: SUNMatrix_Ops + type(C_FUNPTR), public :: getid + type(C_FUNPTR), public :: clone + type(C_FUNPTR), public :: destroy + type(C_FUNPTR), public :: zero + type(C_FUNPTR), public :: copy + type(C_FUNPTR), public :: scaleadd + type(C_FUNPTR), public :: scaleaddi + type(C_FUNPTR), public :: matvecsetup + type(C_FUNPTR), public :: matvec + type(C_FUNPTR), public :: space + end type SUNMatrix_Ops + ! struct struct _generic_SUNMatrix + type, bind(C), public :: SUNMatrix + type(C_PTR), public :: content + type(C_PTR), public :: ops + type(C_PTR), public :: sunctx + end type SUNMatrix + public :: FSUNMatNewEmpty + public :: FSUNMatFreeEmpty + public :: FSUNMatCopyOps + public :: FSUNMatGetID + public :: FSUNMatClone + public :: FSUNMatDestroy + public :: FSUNMatZero + public :: FSUNMatCopy + public :: FSUNMatScaleAdd + public :: FSUNMatScaleAddI + public :: FSUNMatMatvecSetup + public :: FSUNMatMatvec + public :: FSUNMatSpace + enum, bind(c) + enumerator :: SUN_PREC_NONE + enumerator :: SUN_PREC_LEFT + enumerator :: SUN_PREC_RIGHT + enumerator :: SUN_PREC_BOTH + end enum + public :: SUN_PREC_NONE, SUN_PREC_LEFT, SUN_PREC_RIGHT, SUN_PREC_BOTH + enum, bind(c) + enumerator :: SUN_MODIFIED_GS = 1 + enumerator :: SUN_CLASSICAL_GS = 2 + end enum + public :: SUN_MODIFIED_GS, SUN_CLASSICAL_GS + public :: FSUNModifiedGS + public :: FSUNClassicalGS + public :: FSUNQRfact + public :: FSUNQRsol + public :: FSUNQRAdd_MGS + public :: FSUNQRAdd_ICWY + public :: FSUNQRAdd_ICWY_SB + public :: FSUNQRAdd_CGS2 + public :: FSUNQRAdd_DCGS2 + public :: FSUNQRAdd_DCGS2_SB + ! typedef enum SUNLinearSolver_Type + enum, bind(c) + enumerator :: SUNLINEARSOLVER_DIRECT + enumerator :: SUNLINEARSOLVER_ITERATIVE + enumerator :: SUNLINEARSOLVER_MATRIX_ITERATIVE + enumerator :: SUNLINEARSOLVER_MATRIX_EMBEDDED + end enum + integer, parameter, public :: SUNLinearSolver_Type = kind(SUNLINEARSOLVER_DIRECT) + public :: SUNLINEARSOLVER_DIRECT, SUNLINEARSOLVER_ITERATIVE, SUNLINEARSOLVER_MATRIX_ITERATIVE, & + SUNLINEARSOLVER_MATRIX_EMBEDDED + ! typedef enum SUNLinearSolver_ID + enum, bind(c) + enumerator :: SUNLINEARSOLVER_BAND + enumerator :: SUNLINEARSOLVER_DENSE + enumerator :: SUNLINEARSOLVER_KLU + enumerator :: SUNLINEARSOLVER_LAPACKBAND + enumerator :: SUNLINEARSOLVER_LAPACKDENSE + enumerator :: SUNLINEARSOLVER_PCG + enumerator :: SUNLINEARSOLVER_SPBCGS + enumerator :: SUNLINEARSOLVER_SPFGMR + enumerator :: SUNLINEARSOLVER_SPGMR + enumerator :: SUNLINEARSOLVER_SPTFQMR + enumerator :: SUNLINEARSOLVER_SUPERLUDIST + enumerator :: SUNLINEARSOLVER_SUPERLUMT + enumerator :: SUNLINEARSOLVER_CUSOLVERSP_BATCHQR + enumerator :: SUNLINEARSOLVER_MAGMADENSE + enumerator :: SUNLINEARSOLVER_ONEMKLDENSE + enumerator :: SUNLINEARSOLVER_GINKGO + enumerator :: SUNLINEARSOLVER_KOKKOSDENSE + enumerator :: SUNLINEARSOLVER_CUSTOM + end enum + integer, parameter, public :: SUNLinearSolver_ID = kind(SUNLINEARSOLVER_BAND) + public :: SUNLINEARSOLVER_BAND, SUNLINEARSOLVER_DENSE, SUNLINEARSOLVER_KLU, SUNLINEARSOLVER_LAPACKBAND, & + SUNLINEARSOLVER_LAPACKDENSE, SUNLINEARSOLVER_PCG, SUNLINEARSOLVER_SPBCGS, SUNLINEARSOLVER_SPFGMR, SUNLINEARSOLVER_SPGMR, & + SUNLINEARSOLVER_SPTFQMR, SUNLINEARSOLVER_SUPERLUDIST, SUNLINEARSOLVER_SUPERLUMT, SUNLINEARSOLVER_CUSOLVERSP_BATCHQR, & + SUNLINEARSOLVER_MAGMADENSE, SUNLINEARSOLVER_ONEMKLDENSE, SUNLINEARSOLVER_GINKGO, SUNLINEARSOLVER_KOKKOSDENSE, & + SUNLINEARSOLVER_CUSTOM + ! struct struct _generic_SUNLinearSolver_Ops + type, bind(C), public :: SUNLinearSolver_Ops + type(C_FUNPTR), public :: gettype + type(C_FUNPTR), public :: getid + type(C_FUNPTR), public :: setatimes + type(C_FUNPTR), public :: setpreconditioner + type(C_FUNPTR), public :: setscalingvectors + type(C_FUNPTR), public :: setzeroguess + type(C_FUNPTR), public :: initialize + type(C_FUNPTR), public :: setup + type(C_FUNPTR), public :: solve + type(C_FUNPTR), public :: numiters + type(C_FUNPTR), public :: resnorm + type(C_FUNPTR), public :: lastflag + type(C_FUNPTR), public :: space + type(C_FUNPTR), public :: resid + type(C_FUNPTR), public :: free + end type SUNLinearSolver_Ops + ! struct struct _generic_SUNLinearSolver + type, bind(C), public :: SUNLinearSolver + type(C_PTR), public :: content + type(C_PTR), public :: ops + type(C_PTR), public :: sunctx + end type SUNLinearSolver + public :: FSUNLinSolNewEmpty + public :: FSUNLinSolFreeEmpty + public :: FSUNLinSolGetType + public :: FSUNLinSolGetID + public :: FSUNLinSolSetATimes + public :: FSUNLinSolSetPreconditioner + public :: FSUNLinSolSetScalingVectors + public :: FSUNLinSolSetZeroGuess + public :: FSUNLinSolInitialize + public :: FSUNLinSolSetup + public :: FSUNLinSolSolve + public :: FSUNLinSolNumIters + public :: FSUNLinSolResNorm + public :: FSUNLinSolResid + public :: FSUNLinSolLastFlag + public :: FSUNLinSolSpace + public :: FSUNLinSolFree + integer(C_INT), parameter, public :: SUNLS_ATIMES_NULL = -804_C_INT + integer(C_INT), parameter, public :: SUNLS_ATIMES_FAIL_UNREC = -805_C_INT + integer(C_INT), parameter, public :: SUNLS_PSET_FAIL_UNREC = -806_C_INT + integer(C_INT), parameter, public :: SUNLS_PSOLVE_NULL = -807_C_INT + integer(C_INT), parameter, public :: SUNLS_PSOLVE_FAIL_UNREC = -808_C_INT + integer(C_INT), parameter, public :: SUNLS_GS_FAIL = -810_C_INT + integer(C_INT), parameter, public :: SUNLS_QRSOL_FAIL = -811_C_INT + integer(C_INT), parameter, public :: SUNLS_RECOV_FAILURE = 800_C_INT + integer(C_INT), parameter, public :: SUNLS_RES_REDUCED = 801_C_INT + integer(C_INT), parameter, public :: SUNLS_CONV_FAIL = 802_C_INT + integer(C_INT), parameter, public :: SUNLS_ATIMES_FAIL_REC = 803_C_INT + integer(C_INT), parameter, public :: SUNLS_PSET_FAIL_REC = 804_C_INT + integer(C_INT), parameter, public :: SUNLS_PSOLVE_FAIL_REC = 805_C_INT + integer(C_INT), parameter, public :: SUNLS_PACKAGE_FAIL_REC = 806_C_INT + integer(C_INT), parameter, public :: SUNLS_QRFACT_FAIL = 807_C_INT + integer(C_INT), parameter, public :: SUNLS_LUFACT_FAIL = 808_C_INT + ! typedef enum SUNNonlinearSolver_Type + enum, bind(c) + enumerator :: SUNNONLINEARSOLVER_ROOTFIND + enumerator :: SUNNONLINEARSOLVER_FIXEDPOINT + end enum + integer, parameter, public :: SUNNonlinearSolver_Type = kind(SUNNONLINEARSOLVER_ROOTFIND) + public :: SUNNONLINEARSOLVER_ROOTFIND, SUNNONLINEARSOLVER_FIXEDPOINT + ! struct struct _generic_SUNNonlinearSolver_Ops + type, bind(C), public :: SUNNonlinearSolver_Ops + type(C_FUNPTR), public :: gettype + type(C_FUNPTR), public :: initialize + type(C_FUNPTR), public :: setup + type(C_FUNPTR), public :: solve + type(C_FUNPTR), public :: free + type(C_FUNPTR), public :: setsysfn + type(C_FUNPTR), public :: setlsetupfn + type(C_FUNPTR), public :: setlsolvefn + type(C_FUNPTR), public :: setctestfn + type(C_FUNPTR), public :: setmaxiters + type(C_FUNPTR), public :: getnumiters + type(C_FUNPTR), public :: getcuriter + type(C_FUNPTR), public :: getnumconvfails + end type SUNNonlinearSolver_Ops + ! struct struct _generic_SUNNonlinearSolver + type, bind(C), public :: SUNNonlinearSolver + type(C_PTR), public :: content + type(C_PTR), public :: ops + type(C_PTR), public :: sunctx + end type SUNNonlinearSolver + public :: FSUNNonlinSolNewEmpty + public :: FSUNNonlinSolFreeEmpty + public :: FSUNNonlinSolGetType + public :: FSUNNonlinSolInitialize + public :: FSUNNonlinSolSetup + public :: FSUNNonlinSolSolve + public :: FSUNNonlinSolFree + public :: FSUNNonlinSolSetSysFn + public :: FSUNNonlinSolSetLSetupFn + public :: FSUNNonlinSolSetLSolveFn + public :: FSUNNonlinSolSetConvTestFn + public :: FSUNNonlinSolSetMaxIters + public :: FSUNNonlinSolGetNumIters + public :: FSUNNonlinSolGetCurIter + public :: FSUNNonlinSolGetNumConvFails + integer(C_INT), parameter, public :: SUN_NLS_CONTINUE = +901_C_INT + integer(C_INT), parameter, public :: SUN_NLS_CONV_RECVR = +902_C_INT + ! typedef enum SUNAdaptController_Type + enum, bind(c) + enumerator :: SUN_ADAPTCONTROLLER_NONE + enumerator :: SUN_ADAPTCONTROLLER_H + end enum + integer, parameter, public :: SUNAdaptController_Type = kind(SUN_ADAPTCONTROLLER_NONE) + public :: SUN_ADAPTCONTROLLER_NONE, SUN_ADAPTCONTROLLER_H + ! struct struct _generic_SUNAdaptController_Ops + type, bind(C), public :: SUNAdaptController_Ops + type(C_FUNPTR), public :: gettype + type(C_FUNPTR), public :: estimatestep + type(C_FUNPTR), public :: destroy + type(C_FUNPTR), public :: reset + type(C_FUNPTR), public :: setdefaults + type(C_FUNPTR), public :: write + type(C_FUNPTR), public :: seterrorbias + type(C_FUNPTR), public :: updateh + type(C_FUNPTR), public :: space + end type SUNAdaptController_Ops + ! struct struct _generic_SUNAdaptController + type, bind(C), public :: SUNAdaptController + type(C_PTR), public :: content + type(C_PTR), public :: ops + type(C_PTR), public :: sunctx + end type SUNAdaptController + public :: FSUNAdaptController_NewEmpty + public :: FSUNAdaptController_DestroyEmpty + public :: FSUNAdaptController_GetType + public :: FSUNAdaptController_Destroy + public :: FSUNAdaptController_EstimateStep + public :: FSUNAdaptController_Reset + public :: FSUNAdaptController_SetDefaults + public :: FSUNAdaptController_Write + public :: FSUNAdaptController_SetErrorBias + public :: FSUNAdaptController_UpdateH + public :: FSUNAdaptController_Space + +! WRAPPER DECLARATIONS +interface +subroutine swigc_FSUNLogErrHandlerFn(farg1, farg2, farg3, farg4, farg5, farg6, farg7) & +bind(C, name="_wrap_FSUNLogErrHandlerFn") +use, intrinsic :: ISO_C_BINDING +import :: swigarraywrapper +integer(C_INT), intent(in) :: farg1 +type(SwigArrayWrapper) :: farg2 +type(SwigArrayWrapper) :: farg3 +type(SwigArrayWrapper) :: farg4 +integer(C_INT), intent(in) :: farg5 +type(C_PTR), value :: farg6 +type(C_PTR), value :: farg7 +end subroutine + +subroutine swigc_FSUNAbortErrHandlerFn(farg1, farg2, farg3, farg4, farg5, farg6, farg7) & +bind(C, name="_wrap_FSUNAbortErrHandlerFn") +use, intrinsic :: ISO_C_BINDING +import :: swigarraywrapper +integer(C_INT), intent(in) :: farg1 +type(SwigArrayWrapper) :: farg2 +type(SwigArrayWrapper) :: farg3 +type(SwigArrayWrapper) :: farg4 +integer(C_INT), intent(in) :: farg5 +type(C_PTR), value :: farg6 +type(C_PTR), value :: farg7 +end subroutine + + subroutine SWIG_free(cptr) & + bind(C, name="free") + use, intrinsic :: ISO_C_BINDING + type(C_PTR), value :: cptr +end subroutine +function swigc_FSUNGetErrMsg(farg1) & +bind(C, name="_wrap_FSUNGetErrMsg") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +import :: swigarraywrapper +integer(C_INT), intent(in) :: farg1 +type(SwigArrayWrapper) :: fresult +end function + +function swigc_FSUNContext_Create(farg1, farg2) & +bind(C, name="_wrap_FSUNContext_Create") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +integer(C_INT), intent(in) :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FSUNContext_GetLastError(farg1) & +bind(C, name="_wrap_FSUNContext_GetLastError") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT) :: fresult +end function + +function swigc_FSUNContext_PeekLastError(farg1) & +bind(C, name="_wrap_FSUNContext_PeekLastError") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT) :: fresult +end function + +function swigc_FSUNContext_PushErrHandler(farg1, farg2, farg3) & +bind(C, name="_wrap_FSUNContext_PushErrHandler") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_FUNPTR), value :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FSUNContext_PopErrHandler(farg1) & +bind(C, name="_wrap_FSUNContext_PopErrHandler") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT) :: fresult +end function + +function swigc_FSUNContext_ClearErrHandlers(farg1) & +bind(C, name="_wrap_FSUNContext_ClearErrHandlers") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT) :: fresult +end function + +function swigc_FSUNContext_GetProfiler(farg1, farg2) & +bind(C, name="_wrap_FSUNContext_GetProfiler") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FSUNContext_SetProfiler(farg1, farg2) & +bind(C, name="_wrap_FSUNContext_SetProfiler") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FSUNContext_GetLogger(farg1, farg2) & +bind(C, name="_wrap_FSUNContext_GetLogger") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FSUNContext_SetLogger(farg1, farg2) & +bind(C, name="_wrap_FSUNContext_SetLogger") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FSUNContext_Free(farg1) & +bind(C, name="_wrap_FSUNContext_Free") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT) :: fresult +end function + +function swigc_FSUNProfiler_Create(farg1, farg2, farg3) & +bind(C, name="_wrap_FSUNProfiler_Create") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +import :: swigarraywrapper +integer(C_INT), intent(in) :: farg1 +type(SwigArrayWrapper) :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FSUNProfiler_Free(farg1) & +bind(C, name="_wrap_FSUNProfiler_Free") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT) :: fresult +end function + +function swigc_FSUNProfiler_Begin(farg1, farg2) & +bind(C, name="_wrap_FSUNProfiler_Begin") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +import :: swigarraywrapper +type(C_PTR), value :: farg1 +type(SwigArrayWrapper) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FSUNProfiler_End(farg1, farg2) & +bind(C, name="_wrap_FSUNProfiler_End") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +import :: swigarraywrapper +type(C_PTR), value :: farg1 +type(SwigArrayWrapper) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FSUNProfiler_GetTimerResolution(farg1, farg2) & +bind(C, name="_wrap_FSUNProfiler_GetTimerResolution") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FSUNProfiler_GetElapsedTime(farg1, farg2, farg3) & +bind(C, name="_wrap_FSUNProfiler_GetElapsedTime") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +import :: swigarraywrapper +type(C_PTR), value :: farg1 +type(SwigArrayWrapper) :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FSUNProfiler_Print(farg1, farg2) & +bind(C, name="_wrap_FSUNProfiler_Print") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FSUNProfiler_Reset(farg1) & +bind(C, name="_wrap_FSUNProfiler_Reset") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT) :: fresult +end function + +function swigc_FSUNLogger_Create(farg1, farg2, farg3) & +bind(C, name="_wrap_FSUNLogger_Create") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +integer(C_INT), intent(in) :: farg1 +integer(C_INT), intent(in) :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FSUNLogger_CreateFromEnv(farg1, farg2) & +bind(C, name="_wrap_FSUNLogger_CreateFromEnv") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +integer(C_INT), intent(in) :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FSUNLogger_SetErrorFilename(farg1, farg2) & +bind(C, name="_wrap_FSUNLogger_SetErrorFilename") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +import :: swigarraywrapper +type(C_PTR), value :: farg1 +type(SwigArrayWrapper) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FSUNLogger_SetWarningFilename(farg1, farg2) & +bind(C, name="_wrap_FSUNLogger_SetWarningFilename") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +import :: swigarraywrapper +type(C_PTR), value :: farg1 +type(SwigArrayWrapper) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FSUNLogger_SetDebugFilename(farg1, farg2) & +bind(C, name="_wrap_FSUNLogger_SetDebugFilename") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +import :: swigarraywrapper +type(C_PTR), value :: farg1 +type(SwigArrayWrapper) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FSUNLogger_SetInfoFilename(farg1, farg2) & +bind(C, name="_wrap_FSUNLogger_SetInfoFilename") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +import :: swigarraywrapper +type(C_PTR), value :: farg1 +type(SwigArrayWrapper) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FSUNLogger_QueueMsg(farg1, farg2, farg3, farg4, farg5) & +bind(C, name="_wrap_FSUNLogger_QueueMsg") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +import :: swigarraywrapper +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +type(SwigArrayWrapper) :: farg3 +type(SwigArrayWrapper) :: farg4 +type(SwigArrayWrapper) :: farg5 +integer(C_INT) :: fresult +end function + +function swigc_FSUNLogger_Flush(farg1, farg2) & +bind(C, name="_wrap_FSUNLogger_Flush") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FSUNLogger_GetOutputRank(farg1, farg2) & +bind(C, name="_wrap_FSUNLogger_GetOutputRank") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FSUNLogger_Destroy(farg1) & +bind(C, name="_wrap_FSUNLogger_Destroy") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT) :: fresult +end function + +function swigc_FSUNDIALSFileOpen(farg1, farg2, farg3) & +bind(C, name="_wrap_FSUNDIALSFileOpen") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +import :: swigarraywrapper +type(SwigArrayWrapper) :: farg1 +type(SwigArrayWrapper) :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FSUNDIALSFileClose(farg1) & +bind(C, name="_wrap_FSUNDIALSFileClose") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT) :: fresult +end function + +function swigc_FN_VNewEmpty(farg1) & +bind(C, name="_wrap_FN_VNewEmpty") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR) :: fresult +end function + +subroutine swigc_FN_VFreeEmpty(farg1) & +bind(C, name="_wrap_FN_VFreeEmpty") +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +end subroutine + +function swigc_FN_VCopyOps(farg1, farg2) & +bind(C, name="_wrap_FN_VCopyOps") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FN_VGetVectorID(farg1) & +bind(C, name="_wrap_FN_VGetVectorID") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT) :: fresult +end function + +function swigc_FN_VClone(farg1) & +bind(C, name="_wrap_FN_VClone") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR) :: fresult +end function + +function swigc_FN_VCloneEmpty(farg1) & +bind(C, name="_wrap_FN_VCloneEmpty") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR) :: fresult +end function + +subroutine swigc_FN_VDestroy(farg1) & +bind(C, name="_wrap_FN_VDestroy") +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +end subroutine + +subroutine swigc_FN_VSpace(farg1, farg2, farg3) & +bind(C, name="_wrap_FN_VSpace") +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +end subroutine + +subroutine swigc_FN_VSetArrayPointer(farg1, farg2) & +bind(C, name="_wrap_FN_VSetArrayPointer") +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +end subroutine + +function swigc_FN_VGetCommunicator(farg1) & +bind(C, name="_wrap_FN_VGetCommunicator") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT) :: fresult +end function + +function swigc_FN_VGetLength(farg1) & +bind(C, name="_wrap_FN_VGetLength") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT32_T) :: fresult +end function + +function swigc_FN_VGetLocalLength(farg1) & +bind(C, name="_wrap_FN_VGetLocalLength") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT32_T) :: fresult +end function + +subroutine swigc_FN_VLinearSum(farg1, farg2, farg3, farg4, farg5) & +bind(C, name="_wrap_FN_VLinearSum") +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE), intent(in) :: farg1 +type(C_PTR), value :: farg2 +real(C_DOUBLE), intent(in) :: farg3 +type(C_PTR), value :: farg4 +type(C_PTR), value :: farg5 +end subroutine + +subroutine swigc_FN_VConst(farg1, farg2) & +bind(C, name="_wrap_FN_VConst") +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE), intent(in) :: farg1 +type(C_PTR), value :: farg2 +end subroutine + +subroutine swigc_FN_VProd(farg1, farg2, farg3) & +bind(C, name="_wrap_FN_VProd") +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +end subroutine + +subroutine swigc_FN_VDiv(farg1, farg2, farg3) & +bind(C, name="_wrap_FN_VDiv") +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +end subroutine + +subroutine swigc_FN_VScale(farg1, farg2, farg3) & +bind(C, name="_wrap_FN_VScale") +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE), intent(in) :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +end subroutine + +subroutine swigc_FN_VAbs(farg1, farg2) & +bind(C, name="_wrap_FN_VAbs") +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +end subroutine + +subroutine swigc_FN_VInv(farg1, farg2) & +bind(C, name="_wrap_FN_VInv") +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +end subroutine + +subroutine swigc_FN_VAddConst(farg1, farg2, farg3) & +bind(C, name="_wrap_FN_VAddConst") +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +type(C_PTR), value :: farg3 +end subroutine + +function swigc_FN_VDotProd(farg1, farg2) & +bind(C, name="_wrap_FN_VDotProd") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +real(C_DOUBLE) :: fresult +end function + +function swigc_FN_VMaxNorm(farg1) & +bind(C, name="_wrap_FN_VMaxNorm") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE) :: fresult +end function + +function swigc_FN_VWrmsNorm(farg1, farg2) & +bind(C, name="_wrap_FN_VWrmsNorm") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +real(C_DOUBLE) :: fresult +end function + +function swigc_FN_VWrmsNormMask(farg1, farg2, farg3) & +bind(C, name="_wrap_FN_VWrmsNormMask") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +real(C_DOUBLE) :: fresult +end function + +function swigc_FN_VMin(farg1) & +bind(C, name="_wrap_FN_VMin") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE) :: fresult +end function + +function swigc_FN_VWL2Norm(farg1, farg2) & +bind(C, name="_wrap_FN_VWL2Norm") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +real(C_DOUBLE) :: fresult +end function + +function swigc_FN_VL1Norm(farg1) & +bind(C, name="_wrap_FN_VL1Norm") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE) :: fresult +end function + +subroutine swigc_FN_VCompare(farg1, farg2, farg3) & +bind(C, name="_wrap_FN_VCompare") +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE), intent(in) :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +end subroutine + +function swigc_FN_VInvTest(farg1, farg2) & +bind(C, name="_wrap_FN_VInvTest") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FN_VConstrMask(farg1, farg2, farg3) & +bind(C, name="_wrap_FN_VConstrMask") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FN_VMinQuotient(farg1, farg2) & +bind(C, name="_wrap_FN_VMinQuotient") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +real(C_DOUBLE) :: fresult +end function + +function swigc_FN_VLinearCombination(farg1, farg2, farg3, farg4) & +bind(C, name="_wrap_FN_VLinearCombination") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +integer(C_INT), intent(in) :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +type(C_PTR), value :: farg4 +integer(C_INT) :: fresult +end function + +function swigc_FN_VScaleAddMulti(farg1, farg2, farg3, farg4, farg5) & +bind(C, name="_wrap_FN_VScaleAddMulti") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +integer(C_INT), intent(in) :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +type(C_PTR), value :: farg4 +type(C_PTR), value :: farg5 +integer(C_INT) :: fresult +end function + +function swigc_FN_VDotProdMulti(farg1, farg2, farg3, farg4) & +bind(C, name="_wrap_FN_VDotProdMulti") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +integer(C_INT), intent(in) :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +type(C_PTR), value :: farg4 +integer(C_INT) :: fresult +end function + +function swigc_FN_VLinearSumVectorArray(farg1, farg2, farg3, farg4, farg5, farg6) & +bind(C, name="_wrap_FN_VLinearSumVectorArray") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +integer(C_INT), intent(in) :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +type(C_PTR), value :: farg3 +real(C_DOUBLE), intent(in) :: farg4 +type(C_PTR), value :: farg5 +type(C_PTR), value :: farg6 +integer(C_INT) :: fresult +end function + +function swigc_FN_VScaleVectorArray(farg1, farg2, farg3, farg4) & +bind(C, name="_wrap_FN_VScaleVectorArray") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +integer(C_INT), intent(in) :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +type(C_PTR), value :: farg4 +integer(C_INT) :: fresult +end function + +function swigc_FN_VConstVectorArray(farg1, farg2, farg3) & +bind(C, name="_wrap_FN_VConstVectorArray") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +integer(C_INT), intent(in) :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FN_VWrmsNormVectorArray(farg1, farg2, farg3, farg4) & +bind(C, name="_wrap_FN_VWrmsNormVectorArray") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +integer(C_INT), intent(in) :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +type(C_PTR), value :: farg4 +integer(C_INT) :: fresult +end function + +function swigc_FN_VWrmsNormMaskVectorArray(farg1, farg2, farg3, farg4, farg5) & +bind(C, name="_wrap_FN_VWrmsNormMaskVectorArray") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +integer(C_INT), intent(in) :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +type(C_PTR), value :: farg4 +type(C_PTR), value :: farg5 +integer(C_INT) :: fresult +end function + +function swigc_FN_VDotProdLocal(farg1, farg2) & +bind(C, name="_wrap_FN_VDotProdLocal") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +real(C_DOUBLE) :: fresult +end function + +function swigc_FN_VMaxNormLocal(farg1) & +bind(C, name="_wrap_FN_VMaxNormLocal") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE) :: fresult +end function + +function swigc_FN_VMinLocal(farg1) & +bind(C, name="_wrap_FN_VMinLocal") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE) :: fresult +end function + +function swigc_FN_VL1NormLocal(farg1) & +bind(C, name="_wrap_FN_VL1NormLocal") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE) :: fresult +end function + +function swigc_FN_VWSqrSumLocal(farg1, farg2) & +bind(C, name="_wrap_FN_VWSqrSumLocal") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +real(C_DOUBLE) :: fresult +end function + +function swigc_FN_VWSqrSumMaskLocal(farg1, farg2, farg3) & +bind(C, name="_wrap_FN_VWSqrSumMaskLocal") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +real(C_DOUBLE) :: fresult +end function + +function swigc_FN_VInvTestLocal(farg1, farg2) & +bind(C, name="_wrap_FN_VInvTestLocal") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FN_VConstrMaskLocal(farg1, farg2, farg3) & +bind(C, name="_wrap_FN_VConstrMaskLocal") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FN_VMinQuotientLocal(farg1, farg2) & +bind(C, name="_wrap_FN_VMinQuotientLocal") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +real(C_DOUBLE) :: fresult +end function + +function swigc_FN_VDotProdMultiLocal(farg1, farg2, farg3, farg4) & +bind(C, name="_wrap_FN_VDotProdMultiLocal") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +integer(C_INT), intent(in) :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +type(C_PTR), value :: farg4 +integer(C_INT) :: fresult +end function + +function swigc_FN_VDotProdMultiAllReduce(farg1, farg2, farg3) & +bind(C, name="_wrap_FN_VDotProdMultiAllReduce") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +integer(C_INT), intent(in) :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FN_VBufSize(farg1, farg2) & +bind(C, name="_wrap_FN_VBufSize") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FN_VBufPack(farg1, farg2) & +bind(C, name="_wrap_FN_VBufPack") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FN_VBufUnpack(farg1, farg2) & +bind(C, name="_wrap_FN_VBufUnpack") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FN_VNewVectorArray(farg1, farg2) & +bind(C, name="_wrap_FN_VNewVectorArray") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +integer(C_INT), intent(in) :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR) :: fresult +end function + +function swigc_FN_VCloneEmptyVectorArray(farg1, farg2) & +bind(C, name="_wrap_FN_VCloneEmptyVectorArray") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +integer(C_INT), intent(in) :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR) :: fresult +end function + +function swigc_FN_VCloneVectorArray(farg1, farg2) & +bind(C, name="_wrap_FN_VCloneVectorArray") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +integer(C_INT), intent(in) :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR) :: fresult +end function + +subroutine swigc_FN_VDestroyVectorArray(farg1, farg2) & +bind(C, name="_wrap_FN_VDestroyVectorArray") +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +end subroutine + +function swigc_FN_VGetVecAtIndexVectorArray(farg1, farg2) & +bind(C, name="_wrap_FN_VGetVecAtIndexVectorArray") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +type(C_PTR) :: fresult +end function + +subroutine swigc_FN_VSetVecAtIndexVectorArray(farg1, farg2, farg3) & +bind(C, name="_wrap_FN_VSetVecAtIndexVectorArray") +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +type(C_PTR), value :: farg3 +end subroutine + +subroutine swigc_FN_VPrint(farg1) & +bind(C, name="_wrap_FN_VPrint") +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +end subroutine + +subroutine swigc_FN_VPrintFile(farg1, farg2) & +bind(C, name="_wrap_FN_VPrintFile") +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +end subroutine + + +function swigc_FN_VGetArrayPointer(farg1) & +bind(C, name="_wrap_FN_VGetArrayPointer") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR) :: fresult +end function + +function swigc_FN_VGetDeviceArrayPointer(farg1) & +bind(C, name="_wrap_FN_VGetDeviceArrayPointer") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR) :: fresult +end function + +function swigc_FSUNMatNewEmpty(farg1) & +bind(C, name="_wrap_FSUNMatNewEmpty") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR) :: fresult +end function + +subroutine swigc_FSUNMatFreeEmpty(farg1) & +bind(C, name="_wrap_FSUNMatFreeEmpty") +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +end subroutine + +function swigc_FSUNMatCopyOps(farg1, farg2) & +bind(C, name="_wrap_FSUNMatCopyOps") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FSUNMatGetID(farg1) & +bind(C, name="_wrap_FSUNMatGetID") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT) :: fresult +end function + +function swigc_FSUNMatClone(farg1) & +bind(C, name="_wrap_FSUNMatClone") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR) :: fresult +end function + +subroutine swigc_FSUNMatDestroy(farg1) & +bind(C, name="_wrap_FSUNMatDestroy") +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +end subroutine + +function swigc_FSUNMatZero(farg1) & +bind(C, name="_wrap_FSUNMatZero") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT) :: fresult +end function + +function swigc_FSUNMatCopy(farg1, farg2) & +bind(C, name="_wrap_FSUNMatCopy") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FSUNMatScaleAdd(farg1, farg2, farg3) & +bind(C, name="_wrap_FSUNMatScaleAdd") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE), intent(in) :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FSUNMatScaleAddI(farg1, farg2) & +bind(C, name="_wrap_FSUNMatScaleAddI") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE), intent(in) :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FSUNMatMatvecSetup(farg1) & +bind(C, name="_wrap_FSUNMatMatvecSetup") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT) :: fresult +end function + +function swigc_FSUNMatMatvec(farg1, farg2, farg3) & +bind(C, name="_wrap_FSUNMatMatvec") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FSUNMatSpace(farg1, farg2, farg3) & +bind(C, name="_wrap_FSUNMatSpace") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FSUNModifiedGS(farg1, farg2, farg3, farg4, farg5) & +bind(C, name="_wrap_FSUNModifiedGS") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT), intent(in) :: farg3 +integer(C_INT), intent(in) :: farg4 +type(C_PTR), value :: farg5 +integer(C_INT) :: fresult +end function + +function swigc_FSUNClassicalGS(farg1, farg2, farg3, farg4, farg5, farg6, farg7) & +bind(C, name="_wrap_FSUNClassicalGS") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT), intent(in) :: farg3 +integer(C_INT), intent(in) :: farg4 +type(C_PTR), value :: farg5 +type(C_PTR), value :: farg6 +type(C_PTR), value :: farg7 +integer(C_INT) :: fresult +end function + +function swigc_FSUNQRfact(farg1, farg2, farg3, farg4) & +bind(C, name="_wrap_FSUNQRfact") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +integer(C_INT), intent(in) :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT), intent(in) :: farg4 +integer(C_INT) :: fresult +end function + +function swigc_FSUNQRsol(farg1, farg2, farg3, farg4) & +bind(C, name="_wrap_FSUNQRsol") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +integer(C_INT), intent(in) :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +type(C_PTR), value :: farg4 +integer(C_INT) :: fresult +end function + +function swigc_FSUNQRAdd_MGS(farg1, farg2, farg3, farg4, farg5, farg6) & +bind(C, name="_wrap_FSUNQRAdd_MGS") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT), intent(in) :: farg4 +integer(C_INT), intent(in) :: farg5 +type(C_PTR), value :: farg6 +integer(C_INT) :: fresult +end function + +function swigc_FSUNQRAdd_ICWY(farg1, farg2, farg3, farg4, farg5, farg6) & +bind(C, name="_wrap_FSUNQRAdd_ICWY") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT), intent(in) :: farg4 +integer(C_INT), intent(in) :: farg5 +type(C_PTR), value :: farg6 +integer(C_INT) :: fresult +end function + +function swigc_FSUNQRAdd_ICWY_SB(farg1, farg2, farg3, farg4, farg5, farg6) & +bind(C, name="_wrap_FSUNQRAdd_ICWY_SB") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT), intent(in) :: farg4 +integer(C_INT), intent(in) :: farg5 +type(C_PTR), value :: farg6 +integer(C_INT) :: fresult +end function + +function swigc_FSUNQRAdd_CGS2(farg1, farg2, farg3, farg4, farg5, farg6) & +bind(C, name="_wrap_FSUNQRAdd_CGS2") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT), intent(in) :: farg4 +integer(C_INT), intent(in) :: farg5 +type(C_PTR), value :: farg6 +integer(C_INT) :: fresult +end function + +function swigc_FSUNQRAdd_DCGS2(farg1, farg2, farg3, farg4, farg5, farg6) & +bind(C, name="_wrap_FSUNQRAdd_DCGS2") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT), intent(in) :: farg4 +integer(C_INT), intent(in) :: farg5 +type(C_PTR), value :: farg6 +integer(C_INT) :: fresult +end function + +function swigc_FSUNQRAdd_DCGS2_SB(farg1, farg2, farg3, farg4, farg5, farg6) & +bind(C, name="_wrap_FSUNQRAdd_DCGS2_SB") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT), intent(in) :: farg4 +integer(C_INT), intent(in) :: farg5 +type(C_PTR), value :: farg6 +integer(C_INT) :: fresult +end function + +function swigc_FSUNLinSolNewEmpty(farg1) & +bind(C, name="_wrap_FSUNLinSolNewEmpty") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR) :: fresult +end function + +subroutine swigc_FSUNLinSolFreeEmpty(farg1) & +bind(C, name="_wrap_FSUNLinSolFreeEmpty") +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +end subroutine + +function swigc_FSUNLinSolGetType(farg1) & +bind(C, name="_wrap_FSUNLinSolGetType") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT) :: fresult +end function + +function swigc_FSUNLinSolGetID(farg1) & +bind(C, name="_wrap_FSUNLinSolGetID") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT) :: fresult +end function + +function swigc_FSUNLinSolSetATimes(farg1, farg2, farg3) & +bind(C, name="_wrap_FSUNLinSolSetATimes") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_FUNPTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FSUNLinSolSetPreconditioner(farg1, farg2, farg3, farg4) & +bind(C, name="_wrap_FSUNLinSolSetPreconditioner") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_FUNPTR), value :: farg3 +type(C_FUNPTR), value :: farg4 +integer(C_INT) :: fresult +end function + +function swigc_FSUNLinSolSetScalingVectors(farg1, farg2, farg3) & +bind(C, name="_wrap_FSUNLinSolSetScalingVectors") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FSUNLinSolSetZeroGuess(farg1, farg2) & +bind(C, name="_wrap_FSUNLinSolSetZeroGuess") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FSUNLinSolInitialize(farg1) & +bind(C, name="_wrap_FSUNLinSolInitialize") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT) :: fresult +end function + +function swigc_FSUNLinSolSetup(farg1, farg2) & +bind(C, name="_wrap_FSUNLinSolSetup") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FSUNLinSolSolve(farg1, farg2, farg3, farg4, farg5) & +bind(C, name="_wrap_FSUNLinSolSolve") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +type(C_PTR), value :: farg4 +real(C_DOUBLE), intent(in) :: farg5 +integer(C_INT) :: fresult +end function + +function swigc_FSUNLinSolNumIters(farg1) & +bind(C, name="_wrap_FSUNLinSolNumIters") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT) :: fresult +end function + +function swigc_FSUNLinSolResNorm(farg1) & +bind(C, name="_wrap_FSUNLinSolResNorm") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE) :: fresult +end function + +function swigc_FSUNLinSolResid(farg1) & +bind(C, name="_wrap_FSUNLinSolResid") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR) :: fresult +end function + +function swigc_FSUNLinSolLastFlag(farg1) & +bind(C, name="_wrap_FSUNLinSolLastFlag") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT32_T) :: fresult +end function + +function swigc_FSUNLinSolSpace(farg1, farg2, farg3) & +bind(C, name="_wrap_FSUNLinSolSpace") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FSUNLinSolFree(farg1) & +bind(C, name="_wrap_FSUNLinSolFree") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT) :: fresult +end function + +function swigc_FSUNNonlinSolNewEmpty(farg1) & +bind(C, name="_wrap_FSUNNonlinSolNewEmpty") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR) :: fresult +end function + +subroutine swigc_FSUNNonlinSolFreeEmpty(farg1) & +bind(C, name="_wrap_FSUNNonlinSolFreeEmpty") +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +end subroutine + +function swigc_FSUNNonlinSolGetType(farg1) & +bind(C, name="_wrap_FSUNNonlinSolGetType") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT) :: fresult +end function + +function swigc_FSUNNonlinSolInitialize(farg1) & +bind(C, name="_wrap_FSUNNonlinSolInitialize") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT) :: fresult +end function + +function swigc_FSUNNonlinSolSetup(farg1, farg2, farg3) & +bind(C, name="_wrap_FSUNNonlinSolSetup") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FSUNNonlinSolSolve(farg1, farg2, farg3, farg4, farg5, farg6, farg7) & +bind(C, name="_wrap_FSUNNonlinSolSolve") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +type(C_PTR), value :: farg4 +real(C_DOUBLE), intent(in) :: farg5 +integer(C_INT), intent(in) :: farg6 +type(C_PTR), value :: farg7 +integer(C_INT) :: fresult +end function + +function swigc_FSUNNonlinSolFree(farg1) & +bind(C, name="_wrap_FSUNNonlinSolFree") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT) :: fresult +end function + +function swigc_FSUNNonlinSolSetSysFn(farg1, farg2) & +bind(C, name="_wrap_FSUNNonlinSolSetSysFn") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_FUNPTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FSUNNonlinSolSetLSetupFn(farg1, farg2) & +bind(C, name="_wrap_FSUNNonlinSolSetLSetupFn") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_FUNPTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FSUNNonlinSolSetLSolveFn(farg1, farg2) & +bind(C, name="_wrap_FSUNNonlinSolSetLSolveFn") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_FUNPTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FSUNNonlinSolSetConvTestFn(farg1, farg2, farg3) & +bind(C, name="_wrap_FSUNNonlinSolSetConvTestFn") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_FUNPTR), value :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FSUNNonlinSolSetMaxIters(farg1, farg2) & +bind(C, name="_wrap_FSUNNonlinSolSetMaxIters") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FSUNNonlinSolGetNumIters(farg1, farg2) & +bind(C, name="_wrap_FSUNNonlinSolGetNumIters") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FSUNNonlinSolGetCurIter(farg1, farg2) & +bind(C, name="_wrap_FSUNNonlinSolGetCurIter") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FSUNNonlinSolGetNumConvFails(farg1, farg2) & +bind(C, name="_wrap_FSUNNonlinSolGetNumConvFails") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FSUNAdaptController_NewEmpty(farg1) & +bind(C, name="_wrap_FSUNAdaptController_NewEmpty") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR) :: fresult +end function + +subroutine swigc_FSUNAdaptController_DestroyEmpty(farg1) & +bind(C, name="_wrap_FSUNAdaptController_DestroyEmpty") +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +end subroutine + +function swigc_FSUNAdaptController_GetType(farg1) & +bind(C, name="_wrap_FSUNAdaptController_GetType") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT) :: fresult +end function + +function swigc_FSUNAdaptController_Destroy(farg1) & +bind(C, name="_wrap_FSUNAdaptController_Destroy") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT) :: fresult +end function + +function swigc_FSUNAdaptController_EstimateStep(farg1, farg2, farg3, farg4, farg5) & +bind(C, name="_wrap_FSUNAdaptController_EstimateStep") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT), intent(in) :: farg3 +real(C_DOUBLE), intent(in) :: farg4 +type(C_PTR), value :: farg5 +integer(C_INT) :: fresult +end function + +function swigc_FSUNAdaptController_Reset(farg1) & +bind(C, name="_wrap_FSUNAdaptController_Reset") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT) :: fresult +end function + +function swigc_FSUNAdaptController_SetDefaults(farg1) & +bind(C, name="_wrap_FSUNAdaptController_SetDefaults") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT) :: fresult +end function + +function swigc_FSUNAdaptController_Write(farg1, farg2) & +bind(C, name="_wrap_FSUNAdaptController_Write") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FSUNAdaptController_SetErrorBias(farg1, farg2) & +bind(C, name="_wrap_FSUNAdaptController_SetErrorBias") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FSUNAdaptController_UpdateH(farg1, farg2, farg3) & +bind(C, name="_wrap_FSUNAdaptController_UpdateH") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +real(C_DOUBLE), intent(in) :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FSUNAdaptController_Space(farg1, farg2, farg3) & +bind(C, name="_wrap_FSUNAdaptController_Space") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +end interface + + +contains + ! MODULE SUBPROGRAMS + +subroutine SWIG_string_to_chararray(string, chars, wrap) + use, intrinsic :: ISO_C_BINDING + character(kind=C_CHAR, len=*), intent(IN) :: string + character(kind=C_CHAR), dimension(:), target, allocatable, intent(OUT) :: chars + type(SwigArrayWrapper), intent(OUT) :: wrap + integer :: i + + allocate(character(kind=C_CHAR) :: chars(len(string) + 1)) + do i=1,len(string) + chars(i) = string(i:i) + end do + i = len(string) + 1 + chars(i) = C_NULL_CHAR ! C string compatibility + wrap%data = c_loc(chars) + wrap%size = len(string) +end subroutine + +subroutine FSUNLogErrHandlerFn(line, func, file, msg, err_code, err_user_data, sunctx) +use, intrinsic :: ISO_C_BINDING +integer(C_INT), intent(in) :: line +character(kind=C_CHAR, len=*), target :: func +character(kind=C_CHAR), dimension(:), allocatable, target :: farg2_chars +character(kind=C_CHAR, len=*), target :: file +character(kind=C_CHAR), dimension(:), allocatable, target :: farg3_chars +character(kind=C_CHAR, len=*), target :: msg +character(kind=C_CHAR), dimension(:), allocatable, target :: farg4_chars +integer(C_INT), intent(in) :: err_code +type(C_PTR) :: err_user_data +type(C_PTR) :: sunctx +integer(C_INT) :: farg1 +type(SwigArrayWrapper) :: farg2 +type(SwigArrayWrapper) :: farg3 +type(SwigArrayWrapper) :: farg4 +integer(C_INT) :: farg5 +type(C_PTR) :: farg6 +type(C_PTR) :: farg7 + +farg1 = line +call SWIG_string_to_chararray(func, farg2_chars, farg2) +call SWIG_string_to_chararray(file, farg3_chars, farg3) +call SWIG_string_to_chararray(msg, farg4_chars, farg4) +farg5 = err_code +farg6 = err_user_data +farg7 = sunctx +call swigc_FSUNLogErrHandlerFn(farg1, farg2, farg3, farg4, farg5, farg6, farg7) +end subroutine + +subroutine FSUNAbortErrHandlerFn(line, func, file, msg, err_code, err_user_data, sunctx) +use, intrinsic :: ISO_C_BINDING +integer(C_INT), intent(in) :: line +character(kind=C_CHAR, len=*), target :: func +character(kind=C_CHAR), dimension(:), allocatable, target :: farg2_chars +character(kind=C_CHAR, len=*), target :: file +character(kind=C_CHAR), dimension(:), allocatable, target :: farg3_chars +character(kind=C_CHAR, len=*), target :: msg +character(kind=C_CHAR), dimension(:), allocatable, target :: farg4_chars +integer(C_INT), intent(in) :: err_code +type(C_PTR) :: err_user_data +type(C_PTR) :: sunctx +integer(C_INT) :: farg1 +type(SwigArrayWrapper) :: farg2 +type(SwigArrayWrapper) :: farg3 +type(SwigArrayWrapper) :: farg4 +integer(C_INT) :: farg5 +type(C_PTR) :: farg6 +type(C_PTR) :: farg7 + +farg1 = line +call SWIG_string_to_chararray(func, farg2_chars, farg2) +call SWIG_string_to_chararray(file, farg3_chars, farg3) +call SWIG_string_to_chararray(msg, farg4_chars, farg4) +farg5 = err_code +farg6 = err_user_data +farg7 = sunctx +call swigc_FSUNAbortErrHandlerFn(farg1, farg2, farg3, farg4, farg5, farg6, farg7) +end subroutine + + +subroutine SWIG_chararray_to_string(wrap, string) + use, intrinsic :: ISO_C_BINDING + type(SwigArrayWrapper), intent(IN) :: wrap + character(kind=C_CHAR, len=:), allocatable, intent(OUT) :: string + character(kind=C_CHAR), dimension(:), pointer :: chars + integer(kind=C_SIZE_T) :: i + call c_f_pointer(wrap%data, chars, [wrap%size]) + allocate(character(kind=C_CHAR, len=wrap%size) :: string) + do i=1, wrap%size + string(i:i) = chars(i) + end do +end subroutine + +function FSUNGetErrMsg(code) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +character(kind=C_CHAR, len=:), allocatable :: swig_result +integer(C_INT), intent(in) :: code +type(SwigArrayWrapper) :: fresult +integer(C_INT) :: farg1 + +farg1 = code +fresult = swigc_FSUNGetErrMsg(farg1) +call SWIG_chararray_to_string(fresult, swig_result) +if (.false.) call SWIG_free(fresult%data) +end function + +function FSUNContext_Create(comm, sunctx_out) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +integer :: comm +type(C_PTR), target, intent(inout) :: sunctx_out +integer(C_INT) :: fresult +integer(C_INT) :: farg1 +type(C_PTR) :: farg2 + +farg1 = int(comm, C_INT) +farg2 = c_loc(sunctx_out) +fresult = swigc_FSUNContext_Create(farg1, farg2) +swig_result = fresult +end function + +function FSUNContext_GetLastError(sunctx) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: sunctx +integer(C_INT) :: fresult +type(C_PTR) :: farg1 + +farg1 = sunctx +fresult = swigc_FSUNContext_GetLastError(farg1) +swig_result = fresult +end function + +function FSUNContext_PeekLastError(sunctx) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: sunctx +integer(C_INT) :: fresult +type(C_PTR) :: farg1 + +farg1 = sunctx +fresult = swigc_FSUNContext_PeekLastError(farg1) +swig_result = fresult +end function + +function FSUNContext_PushErrHandler(sunctx, err_fn, err_user_data) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: sunctx +type(C_FUNPTR), intent(in), value :: err_fn +type(C_PTR) :: err_user_data +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_FUNPTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = sunctx +farg2 = err_fn +farg3 = err_user_data +fresult = swigc_FSUNContext_PushErrHandler(farg1, farg2, farg3) +swig_result = fresult +end function + +function FSUNContext_PopErrHandler(sunctx) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: sunctx +integer(C_INT) :: fresult +type(C_PTR) :: farg1 + +farg1 = sunctx +fresult = swigc_FSUNContext_PopErrHandler(farg1) +swig_result = fresult +end function + +function FSUNContext_ClearErrHandlers(sunctx) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: sunctx +integer(C_INT) :: fresult +type(C_PTR) :: farg1 + +farg1 = sunctx +fresult = swigc_FSUNContext_ClearErrHandlers(farg1) +swig_result = fresult +end function + +function FSUNContext_GetProfiler(sunctx, profiler) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: sunctx +type(C_PTR), target, intent(inout) :: profiler +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = sunctx +farg2 = c_loc(profiler) +fresult = swigc_FSUNContext_GetProfiler(farg1, farg2) +swig_result = fresult +end function + +function FSUNContext_SetProfiler(sunctx, profiler) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: sunctx +type(C_PTR) :: profiler +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = sunctx +farg2 = profiler +fresult = swigc_FSUNContext_SetProfiler(farg1, farg2) +swig_result = fresult +end function + +function FSUNContext_GetLogger(sunctx, logger) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: sunctx +type(C_PTR), target, intent(inout) :: logger +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = sunctx +farg2 = c_loc(logger) +fresult = swigc_FSUNContext_GetLogger(farg1, farg2) +swig_result = fresult +end function + +function FSUNContext_SetLogger(sunctx, logger) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: sunctx +type(C_PTR) :: logger +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = sunctx +farg2 = logger +fresult = swigc_FSUNContext_SetLogger(farg1, farg2) +swig_result = fresult +end function + +function FSUNContext_Free(ctx) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR), target, intent(inout) :: ctx +integer(C_INT) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(ctx) +fresult = swigc_FSUNContext_Free(farg1) +swig_result = fresult +end function + +function FSUNProfiler_Create(comm, title, p) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +integer :: comm +character(kind=C_CHAR, len=*), target :: title +character(kind=C_CHAR), dimension(:), allocatable, target :: farg2_chars +type(C_PTR), target, intent(inout) :: p +integer(C_INT) :: fresult +integer(C_INT) :: farg1 +type(SwigArrayWrapper) :: farg2 +type(C_PTR) :: farg3 + +farg1 = int(comm, C_INT) +call SWIG_string_to_chararray(title, farg2_chars, farg2) +farg3 = c_loc(p) +fresult = swigc_FSUNProfiler_Create(farg1, farg2, farg3) +swig_result = fresult +end function + +function FSUNProfiler_Free(p) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR), target, intent(inout) :: p +integer(C_INT) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(p) +fresult = swigc_FSUNProfiler_Free(farg1) +swig_result = fresult +end function + +function FSUNProfiler_Begin(p, name) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: p +character(kind=C_CHAR, len=*), target :: name +character(kind=C_CHAR), dimension(:), allocatable, target :: farg2_chars +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(SwigArrayWrapper) :: farg2 + +farg1 = p +call SWIG_string_to_chararray(name, farg2_chars, farg2) +fresult = swigc_FSUNProfiler_Begin(farg1, farg2) +swig_result = fresult +end function + +function FSUNProfiler_End(p, name) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: p +character(kind=C_CHAR, len=*), target :: name +character(kind=C_CHAR), dimension(:), allocatable, target :: farg2_chars +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(SwigArrayWrapper) :: farg2 + +farg1 = p +call SWIG_string_to_chararray(name, farg2_chars, farg2) +fresult = swigc_FSUNProfiler_End(farg1, farg2) +swig_result = fresult +end function + +function FSUNProfiler_GetTimerResolution(p, resolution) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: p +real(C_DOUBLE), target, intent(inout) :: resolution +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = p +farg2 = c_loc(resolution) +fresult = swigc_FSUNProfiler_GetTimerResolution(farg1, farg2) +swig_result = fresult +end function + +function FSUNProfiler_GetElapsedTime(p, name, time) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: p +character(kind=C_CHAR, len=*), target :: name +character(kind=C_CHAR), dimension(:), allocatable, target :: farg2_chars +real(C_DOUBLE), target, intent(inout) :: time +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(SwigArrayWrapper) :: farg2 +type(C_PTR) :: farg3 + +farg1 = p +call SWIG_string_to_chararray(name, farg2_chars, farg2) +farg3 = c_loc(time) +fresult = swigc_FSUNProfiler_GetElapsedTime(farg1, farg2, farg3) +swig_result = fresult +end function + +function FSUNProfiler_Print(p, fp) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: p +type(C_PTR) :: fp +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = p +farg2 = fp +fresult = swigc_FSUNProfiler_Print(farg1, farg2) +swig_result = fresult +end function + +function FSUNProfiler_Reset(p) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: p +integer(C_INT) :: fresult +type(C_PTR) :: farg1 + +farg1 = p +fresult = swigc_FSUNProfiler_Reset(farg1) +swig_result = fresult +end function + +function FSUNLogger_Create(comm, output_rank, logger) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +integer :: comm +integer(C_INT), intent(in) :: output_rank +type(C_PTR), target, intent(inout) :: logger +integer(C_INT) :: fresult +integer(C_INT) :: farg1 +integer(C_INT) :: farg2 +type(C_PTR) :: farg3 + +farg1 = int(comm, C_INT) +farg2 = output_rank +farg3 = c_loc(logger) +fresult = swigc_FSUNLogger_Create(farg1, farg2, farg3) +swig_result = fresult +end function + +function FSUNLogger_CreateFromEnv(comm, logger) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +integer :: comm +type(C_PTR), target, intent(inout) :: logger +integer(C_INT) :: fresult +integer(C_INT) :: farg1 +type(C_PTR) :: farg2 + +farg1 = int(comm, C_INT) +farg2 = c_loc(logger) +fresult = swigc_FSUNLogger_CreateFromEnv(farg1, farg2) +swig_result = fresult +end function + +function FSUNLogger_SetErrorFilename(logger, error_filename) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: logger +character(kind=C_CHAR, len=*), target :: error_filename +character(kind=C_CHAR), dimension(:), allocatable, target :: farg2_chars +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(SwigArrayWrapper) :: farg2 + +farg1 = logger +call SWIG_string_to_chararray(error_filename, farg2_chars, farg2) +fresult = swigc_FSUNLogger_SetErrorFilename(farg1, farg2) +swig_result = fresult +end function + +function FSUNLogger_SetWarningFilename(logger, warning_filename) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: logger +character(kind=C_CHAR, len=*), target :: warning_filename +character(kind=C_CHAR), dimension(:), allocatable, target :: farg2_chars +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(SwigArrayWrapper) :: farg2 + +farg1 = logger +call SWIG_string_to_chararray(warning_filename, farg2_chars, farg2) +fresult = swigc_FSUNLogger_SetWarningFilename(farg1, farg2) +swig_result = fresult +end function + +function FSUNLogger_SetDebugFilename(logger, debug_filename) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: logger +character(kind=C_CHAR, len=*), target :: debug_filename +character(kind=C_CHAR), dimension(:), allocatable, target :: farg2_chars +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(SwigArrayWrapper) :: farg2 + +farg1 = logger +call SWIG_string_to_chararray(debug_filename, farg2_chars, farg2) +fresult = swigc_FSUNLogger_SetDebugFilename(farg1, farg2) +swig_result = fresult +end function + +function FSUNLogger_SetInfoFilename(logger, info_filename) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: logger +character(kind=C_CHAR, len=*), target :: info_filename +character(kind=C_CHAR), dimension(:), allocatable, target :: farg2_chars +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(SwigArrayWrapper) :: farg2 + +farg1 = logger +call SWIG_string_to_chararray(info_filename, farg2_chars, farg2) +fresult = swigc_FSUNLogger_SetInfoFilename(farg1, farg2) +swig_result = fresult +end function + +function FSUNLogger_QueueMsg(logger, lvl, scope, label, msg_txt) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: logger +integer(SUNLogLevel), intent(in) :: lvl +character(kind=C_CHAR, len=*), target :: scope +character(kind=C_CHAR), dimension(:), allocatable, target :: farg3_chars +character(kind=C_CHAR, len=*), target :: label +character(kind=C_CHAR), dimension(:), allocatable, target :: farg4_chars +character(kind=C_CHAR, len=*), target :: msg_txt +character(kind=C_CHAR), dimension(:), allocatable, target :: farg5_chars +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 +type(SwigArrayWrapper) :: farg3 +type(SwigArrayWrapper) :: farg4 +type(SwigArrayWrapper) :: farg5 + +farg1 = logger +farg2 = lvl +call SWIG_string_to_chararray(scope, farg3_chars, farg3) +call SWIG_string_to_chararray(label, farg4_chars, farg4) +call SWIG_string_to_chararray(msg_txt, farg5_chars, farg5) +fresult = swigc_FSUNLogger_QueueMsg(farg1, farg2, farg3, farg4, farg5) +swig_result = fresult +end function + +function FSUNLogger_Flush(logger, lvl) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: logger +integer(SUNLogLevel), intent(in) :: lvl +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = logger +farg2 = lvl +fresult = swigc_FSUNLogger_Flush(farg1, farg2) +swig_result = fresult +end function + +function FSUNLogger_GetOutputRank(logger, output_rank) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: logger +integer(C_INT), dimension(*), target, intent(inout) :: output_rank +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = logger +farg2 = c_loc(output_rank(1)) +fresult = swigc_FSUNLogger_GetOutputRank(farg1, farg2) +swig_result = fresult +end function + +function FSUNLogger_Destroy(logger) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR), target, intent(inout) :: logger +integer(C_INT) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(logger) +fresult = swigc_FSUNLogger_Destroy(farg1) +swig_result = fresult +end function + +function FSUNDIALSFileOpen(filename, modes, fp) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +character(kind=C_CHAR, len=*), target :: filename +character(kind=C_CHAR), dimension(:), allocatable, target :: farg1_chars +character(kind=C_CHAR, len=*), target :: modes +character(kind=C_CHAR), dimension(:), allocatable, target :: farg2_chars +type(C_PTR), target, intent(inout) :: fp +integer(C_INT) :: fresult +type(SwigArrayWrapper) :: farg1 +type(SwigArrayWrapper) :: farg2 +type(C_PTR) :: farg3 + +call SWIG_string_to_chararray(filename, farg1_chars, farg1) +call SWIG_string_to_chararray(modes, farg2_chars, farg2) +farg3 = c_loc(fp) +fresult = swigc_FSUNDIALSFileOpen(farg1, farg2, farg3) +swig_result = fresult +end function + +function FSUNDIALSFileClose(fp) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR), target, intent(inout) :: fp +integer(C_INT) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(fp) +fresult = swigc_FSUNDIALSFileClose(farg1) +swig_result = fresult +end function + +function FN_VNewEmpty(sunctx) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +type(N_Vector), pointer :: swig_result +type(C_PTR) :: sunctx +type(C_PTR) :: fresult +type(C_PTR) :: farg1 + +farg1 = sunctx +fresult = swigc_FN_VNewEmpty(farg1) +call c_f_pointer(fresult, swig_result) +end function + +subroutine FN_VFreeEmpty(v) +use, intrinsic :: ISO_C_BINDING +type(N_Vector), target, intent(inout) :: v +type(C_PTR) :: farg1 + +farg1 = c_loc(v) +call swigc_FN_VFreeEmpty(farg1) +end subroutine + +function FN_VCopyOps(w, v) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(N_Vector), target, intent(inout) :: w +type(N_Vector), target, intent(inout) :: v +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = c_loc(w) +farg2 = c_loc(v) +fresult = swigc_FN_VCopyOps(farg1, farg2) +swig_result = fresult +end function + +function FN_VGetVectorID(w) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(N_Vector_ID) :: swig_result +type(N_Vector), target, intent(inout) :: w +integer(C_INT) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(w) +fresult = swigc_FN_VGetVectorID(farg1) +swig_result = fresult +end function + +function FN_VClone(w) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +type(N_Vector), pointer :: swig_result +type(N_Vector), target, intent(inout) :: w +type(C_PTR) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(w) +fresult = swigc_FN_VClone(farg1) +call c_f_pointer(fresult, swig_result) +end function + +function FN_VCloneEmpty(w) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +type(N_Vector), pointer :: swig_result +type(N_Vector), target, intent(inout) :: w +type(C_PTR) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(w) +fresult = swigc_FN_VCloneEmpty(farg1) +call c_f_pointer(fresult, swig_result) +end function + +subroutine FN_VDestroy(v) +use, intrinsic :: ISO_C_BINDING +type(N_Vector), target, intent(inout) :: v +type(C_PTR) :: farg1 + +farg1 = c_loc(v) +call swigc_FN_VDestroy(farg1) +end subroutine + +subroutine FN_VSpace(v, lrw, liw) +use, intrinsic :: ISO_C_BINDING +type(N_Vector), target, intent(inout) :: v +integer(C_INT32_T), dimension(*), target, intent(inout) :: lrw +integer(C_INT32_T), dimension(*), target, intent(inout) :: liw +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = c_loc(v) +farg2 = c_loc(lrw(1)) +farg3 = c_loc(liw(1)) +call swigc_FN_VSpace(farg1, farg2, farg3) +end subroutine + +subroutine FN_VSetArrayPointer(v_data, v) +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE), dimension(*), target, intent(inout) :: v_data +type(N_Vector), target, intent(inout) :: v +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = c_loc(v_data(1)) +farg2 = c_loc(v) +call swigc_FN_VSetArrayPointer(farg1, farg2) +end subroutine + +function FN_VGetCommunicator(v) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer :: swig_result +type(N_Vector), target, intent(inout) :: v +integer(C_INT) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(v) +fresult = swigc_FN_VGetCommunicator(farg1) +swig_result = int(fresult) +end function + +function FN_VGetLength(v) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT32_T) :: swig_result +type(N_Vector), target, intent(inout) :: v +integer(C_INT32_T) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(v) +fresult = swigc_FN_VGetLength(farg1) +swig_result = fresult +end function + +function FN_VGetLocalLength(v) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT32_T) :: swig_result +type(N_Vector), target, intent(inout) :: v +integer(C_INT32_T) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(v) +fresult = swigc_FN_VGetLocalLength(farg1) +swig_result = fresult +end function + +subroutine FN_VLinearSum(a, x, b, y, z) +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE), intent(in) :: a +type(N_Vector), target, intent(inout) :: x +real(C_DOUBLE), intent(in) :: b +type(N_Vector), target, intent(inout) :: y +type(N_Vector), target, intent(inout) :: z +real(C_DOUBLE) :: farg1 +type(C_PTR) :: farg2 +real(C_DOUBLE) :: farg3 +type(C_PTR) :: farg4 +type(C_PTR) :: farg5 + +farg1 = a +farg2 = c_loc(x) +farg3 = b +farg4 = c_loc(y) +farg5 = c_loc(z) +call swigc_FN_VLinearSum(farg1, farg2, farg3, farg4, farg5) +end subroutine + +subroutine FN_VConst(c, z) +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE), intent(in) :: c +type(N_Vector), target, intent(inout) :: z +real(C_DOUBLE) :: farg1 +type(C_PTR) :: farg2 + +farg1 = c +farg2 = c_loc(z) +call swigc_FN_VConst(farg1, farg2) +end subroutine + +subroutine FN_VProd(x, y, z) +use, intrinsic :: ISO_C_BINDING +type(N_Vector), target, intent(inout) :: x +type(N_Vector), target, intent(inout) :: y +type(N_Vector), target, intent(inout) :: z +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = c_loc(x) +farg2 = c_loc(y) +farg3 = c_loc(z) +call swigc_FN_VProd(farg1, farg2, farg3) +end subroutine + +subroutine FN_VDiv(x, y, z) +use, intrinsic :: ISO_C_BINDING +type(N_Vector), target, intent(inout) :: x +type(N_Vector), target, intent(inout) :: y +type(N_Vector), target, intent(inout) :: z +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = c_loc(x) +farg2 = c_loc(y) +farg3 = c_loc(z) +call swigc_FN_VDiv(farg1, farg2, farg3) +end subroutine + +subroutine FN_VScale(c, x, z) +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE), intent(in) :: c +type(N_Vector), target, intent(inout) :: x +type(N_Vector), target, intent(inout) :: z +real(C_DOUBLE) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = c +farg2 = c_loc(x) +farg3 = c_loc(z) +call swigc_FN_VScale(farg1, farg2, farg3) +end subroutine + +subroutine FN_VAbs(x, z) +use, intrinsic :: ISO_C_BINDING +type(N_Vector), target, intent(inout) :: x +type(N_Vector), target, intent(inout) :: z +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = c_loc(x) +farg2 = c_loc(z) +call swigc_FN_VAbs(farg1, farg2) +end subroutine + +subroutine FN_VInv(x, z) +use, intrinsic :: ISO_C_BINDING +type(N_Vector), target, intent(inout) :: x +type(N_Vector), target, intent(inout) :: z +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = c_loc(x) +farg2 = c_loc(z) +call swigc_FN_VInv(farg1, farg2) +end subroutine + +subroutine FN_VAddConst(x, b, z) +use, intrinsic :: ISO_C_BINDING +type(N_Vector), target, intent(inout) :: x +real(C_DOUBLE), intent(in) :: b +type(N_Vector), target, intent(inout) :: z +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 +type(C_PTR) :: farg3 + +farg1 = c_loc(x) +farg2 = b +farg3 = c_loc(z) +call swigc_FN_VAddConst(farg1, farg2, farg3) +end subroutine + +function FN_VDotProd(x, y) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE) :: swig_result +type(N_Vector), target, intent(inout) :: x +type(N_Vector), target, intent(inout) :: y +real(C_DOUBLE) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = c_loc(x) +farg2 = c_loc(y) +fresult = swigc_FN_VDotProd(farg1, farg2) +swig_result = fresult +end function + +function FN_VMaxNorm(x) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE) :: swig_result +type(N_Vector), target, intent(inout) :: x +real(C_DOUBLE) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(x) +fresult = swigc_FN_VMaxNorm(farg1) +swig_result = fresult +end function + +function FN_VWrmsNorm(x, w) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE) :: swig_result +type(N_Vector), target, intent(inout) :: x +type(N_Vector), target, intent(inout) :: w +real(C_DOUBLE) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = c_loc(x) +farg2 = c_loc(w) +fresult = swigc_FN_VWrmsNorm(farg1, farg2) +swig_result = fresult +end function + +function FN_VWrmsNormMask(x, w, id) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE) :: swig_result +type(N_Vector), target, intent(inout) :: x +type(N_Vector), target, intent(inout) :: w +type(N_Vector), target, intent(inout) :: id +real(C_DOUBLE) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = c_loc(x) +farg2 = c_loc(w) +farg3 = c_loc(id) +fresult = swigc_FN_VWrmsNormMask(farg1, farg2, farg3) +swig_result = fresult +end function + +function FN_VMin(x) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE) :: swig_result +type(N_Vector), target, intent(inout) :: x +real(C_DOUBLE) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(x) +fresult = swigc_FN_VMin(farg1) +swig_result = fresult +end function + +function FN_VWL2Norm(x, w) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE) :: swig_result +type(N_Vector), target, intent(inout) :: x +type(N_Vector), target, intent(inout) :: w +real(C_DOUBLE) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = c_loc(x) +farg2 = c_loc(w) +fresult = swigc_FN_VWL2Norm(farg1, farg2) +swig_result = fresult +end function + +function FN_VL1Norm(x) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE) :: swig_result +type(N_Vector), target, intent(inout) :: x +real(C_DOUBLE) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(x) +fresult = swigc_FN_VL1Norm(farg1) +swig_result = fresult +end function + +subroutine FN_VCompare(c, x, z) +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE), intent(in) :: c +type(N_Vector), target, intent(inout) :: x +type(N_Vector), target, intent(inout) :: z +real(C_DOUBLE) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = c +farg2 = c_loc(x) +farg3 = c_loc(z) +call swigc_FN_VCompare(farg1, farg2, farg3) +end subroutine + +function FN_VInvTest(x, z) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(N_Vector), target, intent(inout) :: x +type(N_Vector), target, intent(inout) :: z +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = c_loc(x) +farg2 = c_loc(z) +fresult = swigc_FN_VInvTest(farg1, farg2) +swig_result = fresult +end function + +function FN_VConstrMask(c, x, m) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(N_Vector), target, intent(inout) :: c +type(N_Vector), target, intent(inout) :: x +type(N_Vector), target, intent(inout) :: m +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = c_loc(c) +farg2 = c_loc(x) +farg3 = c_loc(m) +fresult = swigc_FN_VConstrMask(farg1, farg2, farg3) +swig_result = fresult +end function + +function FN_VMinQuotient(num, denom) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE) :: swig_result +type(N_Vector), target, intent(inout) :: num +type(N_Vector), target, intent(inout) :: denom +real(C_DOUBLE) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = c_loc(num) +farg2 = c_loc(denom) +fresult = swigc_FN_VMinQuotient(farg1, farg2) +swig_result = fresult +end function + +function FN_VLinearCombination(nvec, c, x, z) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +integer(C_INT), intent(in) :: nvec +real(C_DOUBLE), dimension(*), target, intent(inout) :: c +type(C_PTR) :: x +type(N_Vector), target, intent(inout) :: z +integer(C_INT) :: fresult +integer(C_INT) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 +type(C_PTR) :: farg4 + +farg1 = nvec +farg2 = c_loc(c(1)) +farg3 = x +farg4 = c_loc(z) +fresult = swigc_FN_VLinearCombination(farg1, farg2, farg3, farg4) +swig_result = fresult +end function + +function FN_VScaleAddMulti(nvec, a, x, y, z) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +integer(C_INT), intent(in) :: nvec +real(C_DOUBLE), dimension(*), target, intent(inout) :: a +type(N_Vector), target, intent(inout) :: x +type(C_PTR) :: y +type(C_PTR) :: z +integer(C_INT) :: fresult +integer(C_INT) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 +type(C_PTR) :: farg4 +type(C_PTR) :: farg5 + +farg1 = nvec +farg2 = c_loc(a(1)) +farg3 = c_loc(x) +farg4 = y +farg5 = z +fresult = swigc_FN_VScaleAddMulti(farg1, farg2, farg3, farg4, farg5) +swig_result = fresult +end function + +function FN_VDotProdMulti(nvec, x, y, dotprods) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +integer(C_INT), intent(in) :: nvec +type(N_Vector), target, intent(inout) :: x +type(C_PTR) :: y +real(C_DOUBLE), dimension(*), target, intent(inout) :: dotprods +integer(C_INT) :: fresult +integer(C_INT) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 +type(C_PTR) :: farg4 + +farg1 = nvec +farg2 = c_loc(x) +farg3 = y +farg4 = c_loc(dotprods(1)) +fresult = swigc_FN_VDotProdMulti(farg1, farg2, farg3, farg4) +swig_result = fresult +end function + +function FN_VLinearSumVectorArray(nvec, a, x, b, y, z) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +integer(C_INT), intent(in) :: nvec +real(C_DOUBLE), intent(in) :: a +type(C_PTR) :: x +real(C_DOUBLE), intent(in) :: b +type(C_PTR) :: y +type(C_PTR) :: z +integer(C_INT) :: fresult +integer(C_INT) :: farg1 +real(C_DOUBLE) :: farg2 +type(C_PTR) :: farg3 +real(C_DOUBLE) :: farg4 +type(C_PTR) :: farg5 +type(C_PTR) :: farg6 + +farg1 = nvec +farg2 = a +farg3 = x +farg4 = b +farg5 = y +farg6 = z +fresult = swigc_FN_VLinearSumVectorArray(farg1, farg2, farg3, farg4, farg5, farg6) +swig_result = fresult +end function + +function FN_VScaleVectorArray(nvec, c, x, z) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +integer(C_INT), intent(in) :: nvec +real(C_DOUBLE), dimension(*), target, intent(inout) :: c +type(C_PTR) :: x +type(C_PTR) :: z +integer(C_INT) :: fresult +integer(C_INT) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 +type(C_PTR) :: farg4 + +farg1 = nvec +farg2 = c_loc(c(1)) +farg3 = x +farg4 = z +fresult = swigc_FN_VScaleVectorArray(farg1, farg2, farg3, farg4) +swig_result = fresult +end function + +function FN_VConstVectorArray(nvec, c, z) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +integer(C_INT), intent(in) :: nvec +real(C_DOUBLE), intent(in) :: c +type(C_PTR) :: z +integer(C_INT) :: fresult +integer(C_INT) :: farg1 +real(C_DOUBLE) :: farg2 +type(C_PTR) :: farg3 + +farg1 = nvec +farg2 = c +farg3 = z +fresult = swigc_FN_VConstVectorArray(farg1, farg2, farg3) +swig_result = fresult +end function + +function FN_VWrmsNormVectorArray(nvec, x, w, nrm) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +integer(C_INT), intent(in) :: nvec +type(C_PTR) :: x +type(C_PTR) :: w +real(C_DOUBLE), dimension(*), target, intent(inout) :: nrm +integer(C_INT) :: fresult +integer(C_INT) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 +type(C_PTR) :: farg4 + +farg1 = nvec +farg2 = x +farg3 = w +farg4 = c_loc(nrm(1)) +fresult = swigc_FN_VWrmsNormVectorArray(farg1, farg2, farg3, farg4) +swig_result = fresult +end function + +function FN_VWrmsNormMaskVectorArray(nvec, x, w, id, nrm) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +integer(C_INT), intent(in) :: nvec +type(C_PTR) :: x +type(C_PTR) :: w +type(N_Vector), target, intent(inout) :: id +real(C_DOUBLE), dimension(*), target, intent(inout) :: nrm +integer(C_INT) :: fresult +integer(C_INT) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 +type(C_PTR) :: farg4 +type(C_PTR) :: farg5 + +farg1 = nvec +farg2 = x +farg3 = w +farg4 = c_loc(id) +farg5 = c_loc(nrm(1)) +fresult = swigc_FN_VWrmsNormMaskVectorArray(farg1, farg2, farg3, farg4, farg5) +swig_result = fresult +end function + +function FN_VDotProdLocal(x, y) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE) :: swig_result +type(N_Vector), target, intent(inout) :: x +type(N_Vector), target, intent(inout) :: y +real(C_DOUBLE) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = c_loc(x) +farg2 = c_loc(y) +fresult = swigc_FN_VDotProdLocal(farg1, farg2) +swig_result = fresult +end function + +function FN_VMaxNormLocal(x) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE) :: swig_result +type(N_Vector), target, intent(inout) :: x +real(C_DOUBLE) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(x) +fresult = swigc_FN_VMaxNormLocal(farg1) +swig_result = fresult +end function + +function FN_VMinLocal(x) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE) :: swig_result +type(N_Vector), target, intent(inout) :: x +real(C_DOUBLE) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(x) +fresult = swigc_FN_VMinLocal(farg1) +swig_result = fresult +end function + +function FN_VL1NormLocal(x) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE) :: swig_result +type(N_Vector), target, intent(inout) :: x +real(C_DOUBLE) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(x) +fresult = swigc_FN_VL1NormLocal(farg1) +swig_result = fresult +end function + +function FN_VWSqrSumLocal(x, w) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE) :: swig_result +type(N_Vector), target, intent(inout) :: x +type(N_Vector), target, intent(inout) :: w +real(C_DOUBLE) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = c_loc(x) +farg2 = c_loc(w) +fresult = swigc_FN_VWSqrSumLocal(farg1, farg2) +swig_result = fresult +end function + +function FN_VWSqrSumMaskLocal(x, w, id) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE) :: swig_result +type(N_Vector), target, intent(inout) :: x +type(N_Vector), target, intent(inout) :: w +type(N_Vector), target, intent(inout) :: id +real(C_DOUBLE) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = c_loc(x) +farg2 = c_loc(w) +farg3 = c_loc(id) +fresult = swigc_FN_VWSqrSumMaskLocal(farg1, farg2, farg3) +swig_result = fresult +end function + +function FN_VInvTestLocal(x, z) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(N_Vector), target, intent(inout) :: x +type(N_Vector), target, intent(inout) :: z +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = c_loc(x) +farg2 = c_loc(z) +fresult = swigc_FN_VInvTestLocal(farg1, farg2) +swig_result = fresult +end function + +function FN_VConstrMaskLocal(c, x, m) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(N_Vector), target, intent(inout) :: c +type(N_Vector), target, intent(inout) :: x +type(N_Vector), target, intent(inout) :: m +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = c_loc(c) +farg2 = c_loc(x) +farg3 = c_loc(m) +fresult = swigc_FN_VConstrMaskLocal(farg1, farg2, farg3) +swig_result = fresult +end function + +function FN_VMinQuotientLocal(num, denom) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE) :: swig_result +type(N_Vector), target, intent(inout) :: num +type(N_Vector), target, intent(inout) :: denom +real(C_DOUBLE) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = c_loc(num) +farg2 = c_loc(denom) +fresult = swigc_FN_VMinQuotientLocal(farg1, farg2) +swig_result = fresult +end function + +function FN_VDotProdMultiLocal(nvec, x, y, dotprods) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +integer(C_INT), intent(in) :: nvec +type(N_Vector), target, intent(inout) :: x +type(C_PTR) :: y +real(C_DOUBLE), dimension(*), target, intent(inout) :: dotprods +integer(C_INT) :: fresult +integer(C_INT) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 +type(C_PTR) :: farg4 + +farg1 = nvec +farg2 = c_loc(x) +farg3 = y +farg4 = c_loc(dotprods(1)) +fresult = swigc_FN_VDotProdMultiLocal(farg1, farg2, farg3, farg4) +swig_result = fresult +end function + +function FN_VDotProdMultiAllReduce(nvec_total, x, sum) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +integer(C_INT), intent(in) :: nvec_total +type(N_Vector), target, intent(inout) :: x +real(C_DOUBLE), dimension(*), target, intent(inout) :: sum +integer(C_INT) :: fresult +integer(C_INT) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = nvec_total +farg2 = c_loc(x) +farg3 = c_loc(sum(1)) +fresult = swigc_FN_VDotProdMultiAllReduce(farg1, farg2, farg3) +swig_result = fresult +end function + +function FN_VBufSize(x, size) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(N_Vector), target, intent(inout) :: x +integer(C_INT32_T), dimension(*), target, intent(inout) :: size +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = c_loc(x) +farg2 = c_loc(size(1)) +fresult = swigc_FN_VBufSize(farg1, farg2) +swig_result = fresult +end function + +function FN_VBufPack(x, buf) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(N_Vector), target, intent(inout) :: x +type(C_PTR) :: buf +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = c_loc(x) +farg2 = buf +fresult = swigc_FN_VBufPack(farg1, farg2) +swig_result = fresult +end function + +function FN_VBufUnpack(x, buf) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(N_Vector), target, intent(inout) :: x +type(C_PTR) :: buf +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = c_loc(x) +farg2 = buf +fresult = swigc_FN_VBufUnpack(farg1, farg2) +swig_result = fresult +end function + +function FN_VNewVectorArray(count, sunctx) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +type(C_PTR) :: swig_result +integer(C_INT), intent(in) :: count +type(C_PTR) :: sunctx +type(C_PTR) :: fresult +integer(C_INT) :: farg1 +type(C_PTR) :: farg2 + +farg1 = count +farg2 = sunctx +fresult = swigc_FN_VNewVectorArray(farg1, farg2) +swig_result = fresult +end function + +function FN_VCloneEmptyVectorArray(count, w) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +type(C_PTR) :: swig_result +integer(C_INT), intent(in) :: count +type(N_Vector), target, intent(inout) :: w +type(C_PTR) :: fresult +integer(C_INT) :: farg1 +type(C_PTR) :: farg2 + +farg1 = count +farg2 = c_loc(w) +fresult = swigc_FN_VCloneEmptyVectorArray(farg1, farg2) +swig_result = fresult +end function + +function FN_VCloneVectorArray(count, w) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +type(C_PTR) :: swig_result +integer(C_INT), intent(in) :: count +type(N_Vector), target, intent(inout) :: w +type(C_PTR) :: fresult +integer(C_INT) :: farg1 +type(C_PTR) :: farg2 + +farg1 = count +farg2 = c_loc(w) +fresult = swigc_FN_VCloneVectorArray(farg1, farg2) +swig_result = fresult +end function + +subroutine FN_VDestroyVectorArray(vs, count) +use, intrinsic :: ISO_C_BINDING +type(C_PTR) :: vs +integer(C_INT), intent(in) :: count +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = vs +farg2 = count +call swigc_FN_VDestroyVectorArray(farg1, farg2) +end subroutine + +function FN_VGetVecAtIndexVectorArray(vs, index) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +type(N_Vector), pointer :: swig_result +type(C_PTR) :: vs +integer(C_INT), intent(in) :: index +type(C_PTR) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = vs +farg2 = index +fresult = swigc_FN_VGetVecAtIndexVectorArray(farg1, farg2) +call c_f_pointer(fresult, swig_result) +end function + +subroutine FN_VSetVecAtIndexVectorArray(vs, index, w) +use, intrinsic :: ISO_C_BINDING +type(C_PTR) :: vs +integer(C_INT), intent(in) :: index +type(N_Vector), target, intent(inout) :: w +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 +type(C_PTR) :: farg3 + +farg1 = vs +farg2 = index +farg3 = c_loc(w) +call swigc_FN_VSetVecAtIndexVectorArray(farg1, farg2, farg3) +end subroutine + +subroutine FN_VPrint(v) +use, intrinsic :: ISO_C_BINDING +type(N_Vector), target, intent(inout) :: v +type(C_PTR) :: farg1 + +farg1 = c_loc(v) +call swigc_FN_VPrint(farg1) +end subroutine + +subroutine FN_VPrintFile(v, outfile) +use, intrinsic :: ISO_C_BINDING +type(N_Vector), target, intent(inout) :: v +type(C_PTR) :: outfile +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = c_loc(v) +farg2 = outfile +call swigc_FN_VPrintFile(farg1, farg2) +end subroutine + + +function FN_VGetArrayPointer(v) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE), dimension(:), pointer :: swig_result +type(N_Vector), target, intent(inout) :: v +type(C_PTR) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(v) +fresult = swigc_FN_VGetArrayPointer(farg1) +call c_f_pointer(fresult, swig_result, [FN_VGetLocalLength(v)]) +end function + +function FN_VGetDeviceArrayPointer(v) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE), dimension(:), pointer :: swig_result +type(N_Vector), target, intent(inout) :: v +type(C_PTR) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(v) +fresult = swigc_FN_VGetDeviceArrayPointer(farg1) +call c_f_pointer(fresult, swig_result, [FN_VGetLocalLength(v)]) +end function + +function FSUNMatNewEmpty(sunctx) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +type(SUNMatrix), pointer :: swig_result +type(C_PTR) :: sunctx +type(C_PTR) :: fresult +type(C_PTR) :: farg1 + +farg1 = sunctx +fresult = swigc_FSUNMatNewEmpty(farg1) +call c_f_pointer(fresult, swig_result) +end function + +subroutine FSUNMatFreeEmpty(a) +use, intrinsic :: ISO_C_BINDING +type(SUNMatrix), target, intent(inout) :: a +type(C_PTR) :: farg1 + +farg1 = c_loc(a) +call swigc_FSUNMatFreeEmpty(farg1) +end subroutine + +function FSUNMatCopyOps(a, b) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNMatrix), target, intent(inout) :: a +type(SUNMatrix), target, intent(inout) :: b +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = c_loc(a) +farg2 = c_loc(b) +fresult = swigc_FSUNMatCopyOps(farg1, farg2) +swig_result = fresult +end function + +function FSUNMatGetID(a) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(SUNMatrix_ID) :: swig_result +type(SUNMatrix), target, intent(inout) :: a +integer(C_INT) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(a) +fresult = swigc_FSUNMatGetID(farg1) +swig_result = fresult +end function + +function FSUNMatClone(a) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +type(SUNMatrix), pointer :: swig_result +type(SUNMatrix), target, intent(inout) :: a +type(C_PTR) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(a) +fresult = swigc_FSUNMatClone(farg1) +call c_f_pointer(fresult, swig_result) +end function + +subroutine FSUNMatDestroy(a) +use, intrinsic :: ISO_C_BINDING +type(SUNMatrix), target, intent(inout) :: a +type(C_PTR) :: farg1 + +farg1 = c_loc(a) +call swigc_FSUNMatDestroy(farg1) +end subroutine + +function FSUNMatZero(a) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNMatrix), target, intent(inout) :: a +integer(C_INT) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(a) +fresult = swigc_FSUNMatZero(farg1) +swig_result = fresult +end function + +function FSUNMatCopy(a, b) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNMatrix), target, intent(inout) :: a +type(SUNMatrix), target, intent(inout) :: b +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = c_loc(a) +farg2 = c_loc(b) +fresult = swigc_FSUNMatCopy(farg1, farg2) +swig_result = fresult +end function + +function FSUNMatScaleAdd(c, a, b) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +real(C_DOUBLE), intent(in) :: c +type(SUNMatrix), target, intent(inout) :: a +type(SUNMatrix), target, intent(inout) :: b +integer(C_INT) :: fresult +real(C_DOUBLE) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = c +farg2 = c_loc(a) +farg3 = c_loc(b) +fresult = swigc_FSUNMatScaleAdd(farg1, farg2, farg3) +swig_result = fresult +end function + +function FSUNMatScaleAddI(c, a) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +real(C_DOUBLE), intent(in) :: c +type(SUNMatrix), target, intent(inout) :: a +integer(C_INT) :: fresult +real(C_DOUBLE) :: farg1 +type(C_PTR) :: farg2 + +farg1 = c +farg2 = c_loc(a) +fresult = swigc_FSUNMatScaleAddI(farg1, farg2) +swig_result = fresult +end function + +function FSUNMatMatvecSetup(a) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNMatrix), target, intent(inout) :: a +integer(C_INT) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(a) +fresult = swigc_FSUNMatMatvecSetup(farg1) +swig_result = fresult +end function + +function FSUNMatMatvec(a, x, y) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNMatrix), target, intent(inout) :: a +type(N_Vector), target, intent(inout) :: x +type(N_Vector), target, intent(inout) :: y +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = c_loc(a) +farg2 = c_loc(x) +farg3 = c_loc(y) +fresult = swigc_FSUNMatMatvec(farg1, farg2, farg3) +swig_result = fresult +end function + +function FSUNMatSpace(a, lenrw, leniw) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNMatrix), target, intent(inout) :: a +integer(C_LONG), dimension(*), target, intent(inout) :: lenrw +integer(C_LONG), dimension(*), target, intent(inout) :: leniw +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = c_loc(a) +farg2 = c_loc(lenrw(1)) +farg3 = c_loc(leniw(1)) +fresult = swigc_FSUNMatSpace(farg1, farg2, farg3) +swig_result = fresult +end function + +function FSUNModifiedGS(v, h, k, p, new_vk_norm) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: v +type(C_PTR), target, intent(inout) :: h +integer(C_INT), intent(in) :: k +integer(C_INT), intent(in) :: p +real(C_DOUBLE), dimension(*), target, intent(inout) :: new_vk_norm +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +integer(C_INT) :: farg3 +integer(C_INT) :: farg4 +type(C_PTR) :: farg5 + +farg1 = v +farg2 = c_loc(h) +farg3 = k +farg4 = p +farg5 = c_loc(new_vk_norm(1)) +fresult = swigc_FSUNModifiedGS(farg1, farg2, farg3, farg4, farg5) +swig_result = fresult +end function + +function FSUNClassicalGS(v, h, k, p, new_vk_norm, stemp, vtemp) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: v +type(C_PTR), target, intent(inout) :: h +integer(C_INT), intent(in) :: k +integer(C_INT), intent(in) :: p +real(C_DOUBLE), dimension(*), target, intent(inout) :: new_vk_norm +real(C_DOUBLE), dimension(*), target, intent(inout) :: stemp +type(C_PTR) :: vtemp +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +integer(C_INT) :: farg3 +integer(C_INT) :: farg4 +type(C_PTR) :: farg5 +type(C_PTR) :: farg6 +type(C_PTR) :: farg7 + +farg1 = v +farg2 = c_loc(h) +farg3 = k +farg4 = p +farg5 = c_loc(new_vk_norm(1)) +farg6 = c_loc(stemp(1)) +farg7 = vtemp +fresult = swigc_FSUNClassicalGS(farg1, farg2, farg3, farg4, farg5, farg6, farg7) +swig_result = fresult +end function + +function FSUNQRfact(n, h, q, job) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +integer(C_INT), intent(in) :: n +type(C_PTR), target, intent(inout) :: h +real(C_DOUBLE), dimension(*), target, intent(inout) :: q +integer(C_INT), intent(in) :: job +integer(C_INT) :: fresult +integer(C_INT) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 +integer(C_INT) :: farg4 + +farg1 = n +farg2 = c_loc(h) +farg3 = c_loc(q(1)) +farg4 = job +fresult = swigc_FSUNQRfact(farg1, farg2, farg3, farg4) +swig_result = fresult +end function + +function FSUNQRsol(n, h, q, b) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +integer(C_INT), intent(in) :: n +type(C_PTR), target, intent(inout) :: h +real(C_DOUBLE), dimension(*), target, intent(inout) :: q +real(C_DOUBLE), dimension(*), target, intent(inout) :: b +integer(C_INT) :: fresult +integer(C_INT) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 +type(C_PTR) :: farg4 + +farg1 = n +farg2 = c_loc(h) +farg3 = c_loc(q(1)) +farg4 = c_loc(b(1)) +fresult = swigc_FSUNQRsol(farg1, farg2, farg3, farg4) +swig_result = fresult +end function + +function FSUNQRAdd_MGS(q, r, df, m, mmax, qrdata) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: q +real(C_DOUBLE), dimension(*), target, intent(inout) :: r +type(N_Vector), target, intent(inout) :: df +integer(C_INT), intent(in) :: m +integer(C_INT), intent(in) :: mmax +type(C_PTR) :: qrdata +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 +integer(C_INT) :: farg4 +integer(C_INT) :: farg5 +type(C_PTR) :: farg6 + +farg1 = q +farg2 = c_loc(r(1)) +farg3 = c_loc(df) +farg4 = m +farg5 = mmax +farg6 = qrdata +fresult = swigc_FSUNQRAdd_MGS(farg1, farg2, farg3, farg4, farg5, farg6) +swig_result = fresult +end function + +function FSUNQRAdd_ICWY(q, r, df, m, mmax, qrdata) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: q +real(C_DOUBLE), dimension(*), target, intent(inout) :: r +type(N_Vector), target, intent(inout) :: df +integer(C_INT), intent(in) :: m +integer(C_INT), intent(in) :: mmax +type(C_PTR) :: qrdata +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 +integer(C_INT) :: farg4 +integer(C_INT) :: farg5 +type(C_PTR) :: farg6 + +farg1 = q +farg2 = c_loc(r(1)) +farg3 = c_loc(df) +farg4 = m +farg5 = mmax +farg6 = qrdata +fresult = swigc_FSUNQRAdd_ICWY(farg1, farg2, farg3, farg4, farg5, farg6) +swig_result = fresult +end function + +function FSUNQRAdd_ICWY_SB(q, r, df, m, mmax, qrdata) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: q +real(C_DOUBLE), dimension(*), target, intent(inout) :: r +type(N_Vector), target, intent(inout) :: df +integer(C_INT), intent(in) :: m +integer(C_INT), intent(in) :: mmax +type(C_PTR) :: qrdata +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 +integer(C_INT) :: farg4 +integer(C_INT) :: farg5 +type(C_PTR) :: farg6 + +farg1 = q +farg2 = c_loc(r(1)) +farg3 = c_loc(df) +farg4 = m +farg5 = mmax +farg6 = qrdata +fresult = swigc_FSUNQRAdd_ICWY_SB(farg1, farg2, farg3, farg4, farg5, farg6) +swig_result = fresult +end function + +function FSUNQRAdd_CGS2(q, r, df, m, mmax, qrdata) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: q +real(C_DOUBLE), dimension(*), target, intent(inout) :: r +type(N_Vector), target, intent(inout) :: df +integer(C_INT), intent(in) :: m +integer(C_INT), intent(in) :: mmax +type(C_PTR) :: qrdata +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 +integer(C_INT) :: farg4 +integer(C_INT) :: farg5 +type(C_PTR) :: farg6 + +farg1 = q +farg2 = c_loc(r(1)) +farg3 = c_loc(df) +farg4 = m +farg5 = mmax +farg6 = qrdata +fresult = swigc_FSUNQRAdd_CGS2(farg1, farg2, farg3, farg4, farg5, farg6) +swig_result = fresult +end function + +function FSUNQRAdd_DCGS2(q, r, df, m, mmax, qrdata) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: q +real(C_DOUBLE), dimension(*), target, intent(inout) :: r +type(N_Vector), target, intent(inout) :: df +integer(C_INT), intent(in) :: m +integer(C_INT), intent(in) :: mmax +type(C_PTR) :: qrdata +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 +integer(C_INT) :: farg4 +integer(C_INT) :: farg5 +type(C_PTR) :: farg6 + +farg1 = q +farg2 = c_loc(r(1)) +farg3 = c_loc(df) +farg4 = m +farg5 = mmax +farg6 = qrdata +fresult = swigc_FSUNQRAdd_DCGS2(farg1, farg2, farg3, farg4, farg5, farg6) +swig_result = fresult +end function + +function FSUNQRAdd_DCGS2_SB(q, r, df, m, mmax, qrdata) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: q +real(C_DOUBLE), dimension(*), target, intent(inout) :: r +type(N_Vector), target, intent(inout) :: df +integer(C_INT), intent(in) :: m +integer(C_INT), intent(in) :: mmax +type(C_PTR) :: qrdata +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 +integer(C_INT) :: farg4 +integer(C_INT) :: farg5 +type(C_PTR) :: farg6 + +farg1 = q +farg2 = c_loc(r(1)) +farg3 = c_loc(df) +farg4 = m +farg5 = mmax +farg6 = qrdata +fresult = swigc_FSUNQRAdd_DCGS2_SB(farg1, farg2, farg3, farg4, farg5, farg6) +swig_result = fresult +end function + +function FSUNLinSolNewEmpty(sunctx) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +type(SUNLinearSolver), pointer :: swig_result +type(C_PTR) :: sunctx +type(C_PTR) :: fresult +type(C_PTR) :: farg1 + +farg1 = sunctx +fresult = swigc_FSUNLinSolNewEmpty(farg1) +call c_f_pointer(fresult, swig_result) +end function + +subroutine FSUNLinSolFreeEmpty(s) +use, intrinsic :: ISO_C_BINDING +type(SUNLinearSolver), target, intent(inout) :: s +type(C_PTR) :: farg1 + +farg1 = c_loc(s) +call swigc_FSUNLinSolFreeEmpty(farg1) +end subroutine + +function FSUNLinSolGetType(s) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(SUNLinearSolver_Type) :: swig_result +type(SUNLinearSolver), target, intent(inout) :: s +integer(C_INT) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(s) +fresult = swigc_FSUNLinSolGetType(farg1) +swig_result = fresult +end function + +function FSUNLinSolGetID(s) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(SUNLinearSolver_ID) :: swig_result +type(SUNLinearSolver), target, intent(inout) :: s +integer(C_INT) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(s) +fresult = swigc_FSUNLinSolGetID(farg1) +swig_result = fresult +end function + +function FSUNLinSolSetATimes(s, a_data, atimes) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNLinearSolver), target, intent(inout) :: s +type(C_PTR) :: a_data +type(C_FUNPTR), intent(in), value :: atimes +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_FUNPTR) :: farg3 + +farg1 = c_loc(s) +farg2 = a_data +farg3 = atimes +fresult = swigc_FSUNLinSolSetATimes(farg1, farg2, farg3) +swig_result = fresult +end function + +function FSUNLinSolSetPreconditioner(s, p_data, pset, psol) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNLinearSolver), target, intent(inout) :: s +type(C_PTR) :: p_data +type(C_FUNPTR), intent(in), value :: pset +type(C_FUNPTR), intent(in), value :: psol +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_FUNPTR) :: farg3 +type(C_FUNPTR) :: farg4 + +farg1 = c_loc(s) +farg2 = p_data +farg3 = pset +farg4 = psol +fresult = swigc_FSUNLinSolSetPreconditioner(farg1, farg2, farg3, farg4) +swig_result = fresult +end function + +function FSUNLinSolSetScalingVectors(s, s1, s2) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNLinearSolver), target, intent(inout) :: s +type(N_Vector), target, intent(inout) :: s1 +type(N_Vector), target, intent(inout) :: s2 +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = c_loc(s) +farg2 = c_loc(s1) +farg3 = c_loc(s2) +fresult = swigc_FSUNLinSolSetScalingVectors(farg1, farg2, farg3) +swig_result = fresult +end function + +function FSUNLinSolSetZeroGuess(s, onoff) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNLinearSolver), target, intent(inout) :: s +integer(C_INT), intent(in) :: onoff +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = c_loc(s) +farg2 = onoff +fresult = swigc_FSUNLinSolSetZeroGuess(farg1, farg2) +swig_result = fresult +end function + +function FSUNLinSolInitialize(s) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNLinearSolver), target, intent(inout) :: s +integer(C_INT) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(s) +fresult = swigc_FSUNLinSolInitialize(farg1) +swig_result = fresult +end function + +function FSUNLinSolSetup(s, a) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNLinearSolver), target, intent(inout) :: s +type(SUNMatrix), target, intent(inout) :: a +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = c_loc(s) +farg2 = c_loc(a) +fresult = swigc_FSUNLinSolSetup(farg1, farg2) +swig_result = fresult +end function + +function FSUNLinSolSolve(s, a, x, b, tol) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNLinearSolver), target, intent(inout) :: s +type(SUNMatrix), target, intent(inout) :: a +type(N_Vector), target, intent(inout) :: x +type(N_Vector), target, intent(inout) :: b +real(C_DOUBLE), intent(in) :: tol +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 +type(C_PTR) :: farg4 +real(C_DOUBLE) :: farg5 + +farg1 = c_loc(s) +farg2 = c_loc(a) +farg3 = c_loc(x) +farg4 = c_loc(b) +farg5 = tol +fresult = swigc_FSUNLinSolSolve(farg1, farg2, farg3, farg4, farg5) +swig_result = fresult +end function + +function FSUNLinSolNumIters(s) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNLinearSolver), target, intent(inout) :: s +integer(C_INT) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(s) +fresult = swigc_FSUNLinSolNumIters(farg1) +swig_result = fresult +end function + +function FSUNLinSolResNorm(s) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE) :: swig_result +type(SUNLinearSolver), target, intent(inout) :: s +real(C_DOUBLE) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(s) +fresult = swigc_FSUNLinSolResNorm(farg1) +swig_result = fresult +end function + +function FSUNLinSolResid(s) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +type(N_Vector), pointer :: swig_result +type(SUNLinearSolver), target, intent(inout) :: s +type(C_PTR) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(s) +fresult = swigc_FSUNLinSolResid(farg1) +call c_f_pointer(fresult, swig_result) +end function + +function FSUNLinSolLastFlag(s) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT32_T) :: swig_result +type(SUNLinearSolver), target, intent(inout) :: s +integer(C_INT32_T) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(s) +fresult = swigc_FSUNLinSolLastFlag(farg1) +swig_result = fresult +end function + +function FSUNLinSolSpace(s, lenrwls, leniwls) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNLinearSolver), target, intent(inout) :: s +integer(C_LONG), dimension(*), target, intent(inout) :: lenrwls +integer(C_LONG), dimension(*), target, intent(inout) :: leniwls +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = c_loc(s) +farg2 = c_loc(lenrwls(1)) +farg3 = c_loc(leniwls(1)) +fresult = swigc_FSUNLinSolSpace(farg1, farg2, farg3) +swig_result = fresult +end function + +function FSUNLinSolFree(s) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNLinearSolver), target, intent(inout) :: s +integer(C_INT) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(s) +fresult = swigc_FSUNLinSolFree(farg1) +swig_result = fresult +end function + +function FSUNNonlinSolNewEmpty(sunctx) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +type(SUNNonlinearSolver), pointer :: swig_result +type(C_PTR) :: sunctx +type(C_PTR) :: fresult +type(C_PTR) :: farg1 + +farg1 = sunctx +fresult = swigc_FSUNNonlinSolNewEmpty(farg1) +call c_f_pointer(fresult, swig_result) +end function + +subroutine FSUNNonlinSolFreeEmpty(nls) +use, intrinsic :: ISO_C_BINDING +type(SUNNonlinearSolver), target, intent(inout) :: nls +type(C_PTR) :: farg1 + +farg1 = c_loc(nls) +call swigc_FSUNNonlinSolFreeEmpty(farg1) +end subroutine + +function FSUNNonlinSolGetType(nls) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(SUNNonlinearSolver_Type) :: swig_result +type(SUNNonlinearSolver), target, intent(inout) :: nls +integer(C_INT) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(nls) +fresult = swigc_FSUNNonlinSolGetType(farg1) +swig_result = fresult +end function + +function FSUNNonlinSolInitialize(nls) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNNonlinearSolver), target, intent(inout) :: nls +integer(C_INT) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(nls) +fresult = swigc_FSUNNonlinSolInitialize(farg1) +swig_result = fresult +end function + +function FSUNNonlinSolSetup(nls, y, mem) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNNonlinearSolver), target, intent(inout) :: nls +type(N_Vector), target, intent(inout) :: y +type(C_PTR) :: mem +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = c_loc(nls) +farg2 = c_loc(y) +farg3 = mem +fresult = swigc_FSUNNonlinSolSetup(farg1, farg2, farg3) +swig_result = fresult +end function + +function FSUNNonlinSolSolve(nls, y0, y, w, tol, calllsetup, mem) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNNonlinearSolver), target, intent(inout) :: nls +type(N_Vector), target, intent(inout) :: y0 +type(N_Vector), target, intent(inout) :: y +type(N_Vector), target, intent(inout) :: w +real(C_DOUBLE), intent(in) :: tol +integer(C_INT), intent(in) :: calllsetup +type(C_PTR) :: mem +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 +type(C_PTR) :: farg4 +real(C_DOUBLE) :: farg5 +integer(C_INT) :: farg6 +type(C_PTR) :: farg7 + +farg1 = c_loc(nls) +farg2 = c_loc(y0) +farg3 = c_loc(y) +farg4 = c_loc(w) +farg5 = tol +farg6 = calllsetup +farg7 = mem +fresult = swigc_FSUNNonlinSolSolve(farg1, farg2, farg3, farg4, farg5, farg6, farg7) +swig_result = fresult +end function + +function FSUNNonlinSolFree(nls) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNNonlinearSolver), target, intent(inout) :: nls +integer(C_INT) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(nls) +fresult = swigc_FSUNNonlinSolFree(farg1) +swig_result = fresult +end function + +function FSUNNonlinSolSetSysFn(nls, sysfn) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNNonlinearSolver), target, intent(inout) :: nls +type(C_FUNPTR), intent(in), value :: sysfn +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_FUNPTR) :: farg2 + +farg1 = c_loc(nls) +farg2 = sysfn +fresult = swigc_FSUNNonlinSolSetSysFn(farg1, farg2) +swig_result = fresult +end function + +function FSUNNonlinSolSetLSetupFn(nls, setupfn) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNNonlinearSolver), target, intent(inout) :: nls +type(C_FUNPTR), intent(in), value :: setupfn +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_FUNPTR) :: farg2 + +farg1 = c_loc(nls) +farg2 = setupfn +fresult = swigc_FSUNNonlinSolSetLSetupFn(farg1, farg2) +swig_result = fresult +end function + +function FSUNNonlinSolSetLSolveFn(nls, solvefn) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNNonlinearSolver), target, intent(inout) :: nls +type(C_FUNPTR), intent(in), value :: solvefn +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_FUNPTR) :: farg2 + +farg1 = c_loc(nls) +farg2 = solvefn +fresult = swigc_FSUNNonlinSolSetLSolveFn(farg1, farg2) +swig_result = fresult +end function + +function FSUNNonlinSolSetConvTestFn(nls, ctestfn, ctest_data) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNNonlinearSolver), target, intent(inout) :: nls +type(C_FUNPTR), intent(in), value :: ctestfn +type(C_PTR) :: ctest_data +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_FUNPTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = c_loc(nls) +farg2 = ctestfn +farg3 = ctest_data +fresult = swigc_FSUNNonlinSolSetConvTestFn(farg1, farg2, farg3) +swig_result = fresult +end function + +function FSUNNonlinSolSetMaxIters(nls, maxiters) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNNonlinearSolver), target, intent(inout) :: nls +integer(C_INT), intent(in) :: maxiters +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = c_loc(nls) +farg2 = maxiters +fresult = swigc_FSUNNonlinSolSetMaxIters(farg1, farg2) +swig_result = fresult +end function + +function FSUNNonlinSolGetNumIters(nls, niters) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNNonlinearSolver), target, intent(inout) :: nls +integer(C_LONG), dimension(*), target, intent(inout) :: niters +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = c_loc(nls) +farg2 = c_loc(niters(1)) +fresult = swigc_FSUNNonlinSolGetNumIters(farg1, farg2) +swig_result = fresult +end function + +function FSUNNonlinSolGetCurIter(nls, iter) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNNonlinearSolver), target, intent(inout) :: nls +integer(C_INT), dimension(*), target, intent(inout) :: iter +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = c_loc(nls) +farg2 = c_loc(iter(1)) +fresult = swigc_FSUNNonlinSolGetCurIter(farg1, farg2) +swig_result = fresult +end function + +function FSUNNonlinSolGetNumConvFails(nls, nconvfails) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNNonlinearSolver), target, intent(inout) :: nls +integer(C_LONG), dimension(*), target, intent(inout) :: nconvfails +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = c_loc(nls) +farg2 = c_loc(nconvfails(1)) +fresult = swigc_FSUNNonlinSolGetNumConvFails(farg1, farg2) +swig_result = fresult +end function + +function FSUNAdaptController_NewEmpty(sunctx) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +type(SUNAdaptController), pointer :: swig_result +type(C_PTR) :: sunctx +type(C_PTR) :: fresult +type(C_PTR) :: farg1 + +farg1 = sunctx +fresult = swigc_FSUNAdaptController_NewEmpty(farg1) +call c_f_pointer(fresult, swig_result) +end function + +subroutine FSUNAdaptController_DestroyEmpty(c) +use, intrinsic :: ISO_C_BINDING +type(SUNAdaptController), target, intent(inout) :: c +type(C_PTR) :: farg1 + +farg1 = c_loc(c) +call swigc_FSUNAdaptController_DestroyEmpty(farg1) +end subroutine + +function FSUNAdaptController_GetType(c) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(SUNAdaptController_Type) :: swig_result +type(SUNAdaptController), target, intent(inout) :: c +integer(C_INT) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(c) +fresult = swigc_FSUNAdaptController_GetType(farg1) +swig_result = fresult +end function + +function FSUNAdaptController_Destroy(c) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNAdaptController), target, intent(inout) :: c +integer(C_INT) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(c) +fresult = swigc_FSUNAdaptController_Destroy(farg1) +swig_result = fresult +end function + +function FSUNAdaptController_EstimateStep(c, h, p, dsm, hnew) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNAdaptController), target, intent(inout) :: c +real(C_DOUBLE), intent(in) :: h +integer(C_INT), intent(in) :: p +real(C_DOUBLE), intent(in) :: dsm +real(C_DOUBLE), dimension(*), target, intent(inout) :: hnew +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 +integer(C_INT) :: farg3 +real(C_DOUBLE) :: farg4 +type(C_PTR) :: farg5 + +farg1 = c_loc(c) +farg2 = h +farg3 = p +farg4 = dsm +farg5 = c_loc(hnew(1)) +fresult = swigc_FSUNAdaptController_EstimateStep(farg1, farg2, farg3, farg4, farg5) +swig_result = fresult +end function + +function FSUNAdaptController_Reset(c) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNAdaptController), target, intent(inout) :: c +integer(C_INT) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(c) +fresult = swigc_FSUNAdaptController_Reset(farg1) +swig_result = fresult +end function + +function FSUNAdaptController_SetDefaults(c) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNAdaptController), target, intent(inout) :: c +integer(C_INT) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(c) +fresult = swigc_FSUNAdaptController_SetDefaults(farg1) +swig_result = fresult +end function + +function FSUNAdaptController_Write(c, fptr) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNAdaptController), target, intent(inout) :: c +type(C_PTR) :: fptr +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = c_loc(c) +farg2 = fptr +fresult = swigc_FSUNAdaptController_Write(farg1, farg2) +swig_result = fresult +end function + +function FSUNAdaptController_SetErrorBias(c, bias) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNAdaptController), target, intent(inout) :: c +real(C_DOUBLE), intent(in) :: bias +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 + +farg1 = c_loc(c) +farg2 = bias +fresult = swigc_FSUNAdaptController_SetErrorBias(farg1, farg2) +swig_result = fresult +end function + +function FSUNAdaptController_UpdateH(c, h, dsm) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNAdaptController), target, intent(inout) :: c +real(C_DOUBLE), intent(in) :: h +real(C_DOUBLE), intent(in) :: dsm +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 +real(C_DOUBLE) :: farg3 + +farg1 = c_loc(c) +farg2 = h +farg3 = dsm +fresult = swigc_FSUNAdaptController_UpdateH(farg1, farg2, farg3) +swig_result = fresult +end function + +function FSUNAdaptController_Space(c, lenrw, leniw) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNAdaptController), target, intent(inout) :: c +integer(C_LONG), dimension(*), target, intent(inout) :: lenrw +integer(C_LONG), dimension(*), target, intent(inout) :: leniw +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = c_loc(c) +farg2 = c_loc(lenrw(1)) +farg3 = c_loc(leniw(1)) +fresult = swigc_FSUNAdaptController_Space(farg1, farg2, farg3) +swig_result = fresult +end function + + +end module diff --git a/src/sundials/fmod_int64/CMakeLists.txt b/src/sundials/fmod_int64/CMakeLists.txt new file mode 100644 index 0000000000..74fe6c96ee --- /dev/null +++ b/src/sundials/fmod_int64/CMakeLists.txt @@ -0,0 +1,27 @@ +# --------------------------------------------------------------- +# Programmer(s): Cody J. Balos @ LLNL +# --------------------------------------------------------------- +# SUNDIALS Copyright Start +# Copyright (c) 2002-2024, Lawrence Livermore National Security +# and Southern Methodist University. +# All rights reserved. +# +# See the top-level LICENSE and NOTICE files for details. +# +# SPDX-License-Identifier: BSD-3-Clause +# SUNDIALS Copyright End +# --------------------------------------------------------------- +# CMakeLists.txt file for the F2003 SUNDIALS object library +# --------------------------------------------------------------- + +set(sundials_SOURCES + fsundials_core_mod.c + fsundials_core_mod.f90 + ) + +sundials_add_f2003_library(sundials_fcore_mod + SOURCES + ${sundials_SOURCES} + LINK_LIBRARIES + PUBLIC sundials_core +) diff --git a/src/sundials/fmod/fsundials_core_mod.c b/src/sundials/fmod_int64/fsundials_core_mod.c similarity index 99% rename from src/sundials/fmod/fsundials_core_mod.c rename to src/sundials/fmod_int64/fsundials_core_mod.c index c369799cce..9fa73f722b 100644 --- a/src/sundials/fmod/fsundials_core_mod.c +++ b/src/sundials/fmod_int64/fsundials_core_mod.c @@ -227,10 +227,6 @@ #error "The Fortran bindings are only targeted at double-precision" #endif -#ifndef SUNDIALS_INT64_T -#error "The Fortran bindings are only targeted at 64-bit indices" -#endif - #include "sundials/sundials_context.h" #include "sundials/sundials_errors.h" diff --git a/src/sundials/fmod/fsundials_core_mod.f90 b/src/sundials/fmod_int64/fsundials_core_mod.f90 similarity index 100% rename from src/sundials/fmod/fsundials_core_mod.f90 rename to src/sundials/fmod_int64/fsundials_core_mod.f90 diff --git a/src/sunlinsol/band/CMakeLists.txt b/src/sunlinsol/band/CMakeLists.txt index 6eb7fb51f2..0b2035e0ef 100644 --- a/src/sunlinsol/band/CMakeLists.txt +++ b/src/sunlinsol/band/CMakeLists.txt @@ -42,5 +42,5 @@ message(STATUS "Added SUNLINSOL_BAND module") # Add F2003 module if the interface is enabled if(BUILD_FORTRAN_MODULE_INTERFACE) - add_subdirectory(fmod) + add_subdirectory("fmod_int${SUNDIALS_INDEX_SIZE}") endif() diff --git a/src/sunlinsol/band/fmod/CMakeLists.txt b/src/sunlinsol/band/fmod_int32/CMakeLists.txt similarity index 100% rename from src/sunlinsol/band/fmod/CMakeLists.txt rename to src/sunlinsol/band/fmod_int32/CMakeLists.txt diff --git a/src/sunlinsol/band/fmod_int32/fsunlinsol_band_mod.c b/src/sunlinsol/band/fmod_int32/fsunlinsol_band_mod.c new file mode 100644 index 0000000000..0b46475231 --- /dev/null +++ b/src/sunlinsol/band/fmod_int32/fsunlinsol_band_mod.c @@ -0,0 +1,337 @@ +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.0 + * + * This file is not intended to be easily readable and contains a number of + * coding conventions designed to improve portability and efficiency. Do not make + * changes to this file unless you know what you are doing--modify the SWIG + * interface file instead. + * ----------------------------------------------------------------------------- */ + +/* --------------------------------------------------------------- + * Programmer(s): Auto-generated by swig. + * --------------------------------------------------------------- + * SUNDIALS Copyright Start + * Copyright (c) 2002-2024, Lawrence Livermore National Security + * and Southern Methodist University. + * All rights reserved. + * + * See the top-level LICENSE and NOTICE files for details. + * + * SPDX-License-Identifier: BSD-3-Clause + * SUNDIALS Copyright End + * -------------------------------------------------------------*/ + +/* ----------------------------------------------------------------------------- + * This section contains generic SWIG labels for method/variable + * declarations/attributes, and other compiler dependent labels. + * ----------------------------------------------------------------------------- */ + +/* template workaround for compilers that cannot correctly implement the C++ standard */ +#ifndef SWIGTEMPLATEDISAMBIGUATOR +# if defined(__SUNPRO_CC) && (__SUNPRO_CC <= 0x560) +# define SWIGTEMPLATEDISAMBIGUATOR template +# elif defined(__HP_aCC) +/* Needed even with `aCC -AA' when `aCC -V' reports HP ANSI C++ B3910B A.03.55 */ +/* If we find a maximum version that requires this, the test would be __HP_aCC <= 35500 for A.03.55 */ +# define SWIGTEMPLATEDISAMBIGUATOR template +# else +# define SWIGTEMPLATEDISAMBIGUATOR +# endif +#endif + +/* inline attribute */ +#ifndef SWIGINLINE +# if defined(__cplusplus) || (defined(__GNUC__) && !defined(__STRICT_ANSI__)) +# define SWIGINLINE inline +# else +# define SWIGINLINE +# endif +#endif + +/* attribute recognised by some compilers to avoid 'unused' warnings */ +#ifndef SWIGUNUSED +# if defined(__GNUC__) +# if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)) +# define SWIGUNUSED __attribute__ ((__unused__)) +# else +# define SWIGUNUSED +# endif +# elif defined(__ICC) +# define SWIGUNUSED __attribute__ ((__unused__)) +# else +# define SWIGUNUSED +# endif +#endif + +#ifndef SWIG_MSC_UNSUPPRESS_4505 +# if defined(_MSC_VER) +# pragma warning(disable : 4505) /* unreferenced local function has been removed */ +# endif +#endif + +#ifndef SWIGUNUSEDPARM +# ifdef __cplusplus +# define SWIGUNUSEDPARM(p) +# else +# define SWIGUNUSEDPARM(p) p SWIGUNUSED +# endif +#endif + +/* internal SWIG method */ +#ifndef SWIGINTERN +# define SWIGINTERN static SWIGUNUSED +#endif + +/* internal inline SWIG method */ +#ifndef SWIGINTERNINLINE +# define SWIGINTERNINLINE SWIGINTERN SWIGINLINE +#endif + +/* qualifier for exported *const* global data variables*/ +#ifndef SWIGEXTERN +# ifdef __cplusplus +# define SWIGEXTERN extern +# else +# define SWIGEXTERN +# endif +#endif + +/* exporting methods */ +#if defined(__GNUC__) +# if (__GNUC__ >= 4) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) +# ifndef GCC_HASCLASSVISIBILITY +# define GCC_HASCLASSVISIBILITY +# endif +# endif +#endif + +#ifndef SWIGEXPORT +# if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__) +# if defined(STATIC_LINKED) +# define SWIGEXPORT +# else +# define SWIGEXPORT __declspec(dllexport) +# endif +# else +# if defined(__GNUC__) && defined(GCC_HASCLASSVISIBILITY) +# define SWIGEXPORT __attribute__ ((visibility("default"))) +# else +# define SWIGEXPORT +# endif +# endif +#endif + +/* calling conventions for Windows */ +#ifndef SWIGSTDCALL +# if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__) +# define SWIGSTDCALL __stdcall +# else +# define SWIGSTDCALL +# endif +#endif + +/* Deal with Microsoft's attempt at deprecating C standard runtime functions */ +#if !defined(SWIG_NO_CRT_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_CRT_SECURE_NO_DEPRECATE) +# define _CRT_SECURE_NO_DEPRECATE +#endif + +/* Deal with Microsoft's attempt at deprecating methods in the standard C++ library */ +#if !defined(SWIG_NO_SCL_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_SCL_SECURE_NO_DEPRECATE) +# define _SCL_SECURE_NO_DEPRECATE +#endif + +/* Deal with Apple's deprecated 'AssertMacros.h' from Carbon-framework */ +#if defined(__APPLE__) && !defined(__ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES) +# define __ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES 0 +#endif + +/* Intel's compiler complains if a variable which was never initialised is + * cast to void, which is a common idiom which we use to indicate that we + * are aware a variable isn't used. So we just silence that warning. + * See: https://github.com/swig/swig/issues/192 for more discussion. + */ +#ifdef __INTEL_COMPILER +# pragma warning disable 592 +#endif + +/* Errors in SWIG */ +#define SWIG_UnknownError -1 +#define SWIG_IOError -2 +#define SWIG_RuntimeError -3 +#define SWIG_IndexError -4 +#define SWIG_TypeError -5 +#define SWIG_DivisionByZero -6 +#define SWIG_OverflowError -7 +#define SWIG_SyntaxError -8 +#define SWIG_ValueError -9 +#define SWIG_SystemError -10 +#define SWIG_AttributeError -11 +#define SWIG_MemoryError -12 +#define SWIG_NullReferenceError -13 + + + + +#include +#define SWIG_exception_impl(DECL, CODE, MSG, RETURNNULL) \ + { printf("In " DECL ": " MSG); assert(0); RETURNNULL; } + + +#include +#if defined(_MSC_VER) || defined(__BORLANDC__) || defined(_WATCOM) +# ifndef snprintf +# define snprintf _snprintf +# endif +#endif + + +/* Support for the `contract` feature. + * + * Note that RETURNNULL is first because it's inserted via a 'Replaceall' in + * the fortran.cxx file. + */ +#define SWIG_contract_assert(RETURNNULL, EXPR, MSG) \ + if (!(EXPR)) { SWIG_exception_impl("$decl", SWIG_ValueError, MSG, RETURNNULL); } + + +#define SWIGVERSION 0x040000 +#define SWIG_VERSION SWIGVERSION + + +#define SWIG_as_voidptr(a) (void *)((const void *)(a)) +#define SWIG_as_voidptrptr(a) ((void)SWIG_as_voidptr(*a),(void**)(a)) + + +#include "sundials/sundials_linearsolver.h" + + +#include "sunlinsol/sunlinsol_band.h" + +SWIGEXPORT SUNLinearSolver _wrap_FSUNLinSol_Band(N_Vector farg1, SUNMatrix farg2, void *farg3) { + SUNLinearSolver fresult ; + N_Vector arg1 = (N_Vector) 0 ; + SUNMatrix arg2 = (SUNMatrix) 0 ; + SUNContext arg3 = (SUNContext) 0 ; + SUNLinearSolver result; + + arg1 = (N_Vector)(farg1); + arg2 = (SUNMatrix)(farg2); + arg3 = (SUNContext)(farg3); + result = (SUNLinearSolver)SUNLinSol_Band(arg1,arg2,arg3); + fresult = result; + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNLinSolGetType_Band(SUNLinearSolver farg1) { + int fresult ; + SUNLinearSolver arg1 = (SUNLinearSolver) 0 ; + SUNLinearSolver_Type result; + + arg1 = (SUNLinearSolver)(farg1); + result = (SUNLinearSolver_Type)SUNLinSolGetType_Band(arg1); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNLinSolGetID_Band(SUNLinearSolver farg1) { + int fresult ; + SUNLinearSolver arg1 = (SUNLinearSolver) 0 ; + SUNLinearSolver_ID result; + + arg1 = (SUNLinearSolver)(farg1); + result = (SUNLinearSolver_ID)SUNLinSolGetID_Band(arg1); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNLinSolInitialize_Band(SUNLinearSolver farg1) { + int fresult ; + SUNLinearSolver arg1 = (SUNLinearSolver) 0 ; + SUNErrCode result; + + arg1 = (SUNLinearSolver)(farg1); + result = (SUNErrCode)SUNLinSolInitialize_Band(arg1); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNLinSolSetup_Band(SUNLinearSolver farg1, SUNMatrix farg2) { + int fresult ; + SUNLinearSolver arg1 = (SUNLinearSolver) 0 ; + SUNMatrix arg2 = (SUNMatrix) 0 ; + int result; + + arg1 = (SUNLinearSolver)(farg1); + arg2 = (SUNMatrix)(farg2); + result = (int)SUNLinSolSetup_Band(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNLinSolSolve_Band(SUNLinearSolver farg1, SUNMatrix farg2, N_Vector farg3, N_Vector farg4, double const *farg5) { + int fresult ; + SUNLinearSolver arg1 = (SUNLinearSolver) 0 ; + SUNMatrix arg2 = (SUNMatrix) 0 ; + N_Vector arg3 = (N_Vector) 0 ; + N_Vector arg4 = (N_Vector) 0 ; + sunrealtype arg5 ; + int result; + + arg1 = (SUNLinearSolver)(farg1); + arg2 = (SUNMatrix)(farg2); + arg3 = (N_Vector)(farg3); + arg4 = (N_Vector)(farg4); + arg5 = (sunrealtype)(*farg5); + result = (int)SUNLinSolSolve_Band(arg1,arg2,arg3,arg4,arg5); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int32_t _wrap_FSUNLinSolLastFlag_Band(SUNLinearSolver farg1) { + int32_t fresult ; + SUNLinearSolver arg1 = (SUNLinearSolver) 0 ; + sunindextype result; + + arg1 = (SUNLinearSolver)(farg1); + result = SUNLinSolLastFlag_Band(arg1); + fresult = (sunindextype)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNLinSolSpace_Band(SUNLinearSolver farg1, long *farg2, long *farg3) { + int fresult ; + SUNLinearSolver arg1 = (SUNLinearSolver) 0 ; + long *arg2 = (long *) 0 ; + long *arg3 = (long *) 0 ; + SUNErrCode result; + + arg1 = (SUNLinearSolver)(farg1); + arg2 = (long *)(farg2); + arg3 = (long *)(farg3); + result = (SUNErrCode)SUNLinSolSpace_Band(arg1,arg2,arg3); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNLinSolFree_Band(SUNLinearSolver farg1) { + int fresult ; + SUNLinearSolver arg1 = (SUNLinearSolver) 0 ; + SUNErrCode result; + + arg1 = (SUNLinearSolver)(farg1); + result = (SUNErrCode)SUNLinSolFree_Band(arg1); + fresult = (SUNErrCode)(result); + return fresult; +} + + + diff --git a/src/sunlinsol/band/fmod_int32/fsunlinsol_band_mod.f90 b/src/sunlinsol/band/fmod_int32/fsunlinsol_band_mod.f90 new file mode 100644 index 0000000000..782fdffb60 --- /dev/null +++ b/src/sunlinsol/band/fmod_int32/fsunlinsol_band_mod.f90 @@ -0,0 +1,271 @@ +! This file was automatically generated by SWIG (http://www.swig.org). +! Version 4.0.0 +! +! Do not make changes to this file unless you know what you are doing--modify +! the SWIG interface file instead. + +! --------------------------------------------------------------- +! Programmer(s): Auto-generated by swig. +! --------------------------------------------------------------- +! SUNDIALS Copyright Start +! Copyright (c) 2002-2024, Lawrence Livermore National Security +! and Southern Methodist University. +! All rights reserved. +! +! See the top-level LICENSE and NOTICE files for details. +! +! SPDX-License-Identifier: BSD-3-Clause +! SUNDIALS Copyright End +! --------------------------------------------------------------- + +module fsunlinsol_band_mod + use, intrinsic :: ISO_C_BINDING + use fsundials_core_mod + implicit none + private + + ! DECLARATION CONSTRUCTS + public :: FSUNLinSol_Band + public :: FSUNLinSolGetType_Band + public :: FSUNLinSolGetID_Band + public :: FSUNLinSolInitialize_Band + public :: FSUNLinSolSetup_Band + public :: FSUNLinSolSolve_Band + public :: FSUNLinSolLastFlag_Band + public :: FSUNLinSolSpace_Band + public :: FSUNLinSolFree_Band + +! WRAPPER DECLARATIONS +interface +function swigc_FSUNLinSol_Band(farg1, farg2, farg3) & +bind(C, name="_wrap_FSUNLinSol_Band") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +type(C_PTR) :: fresult +end function + +function swigc_FSUNLinSolGetType_Band(farg1) & +bind(C, name="_wrap_FSUNLinSolGetType_Band") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT) :: fresult +end function + +function swigc_FSUNLinSolGetID_Band(farg1) & +bind(C, name="_wrap_FSUNLinSolGetID_Band") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT) :: fresult +end function + +function swigc_FSUNLinSolInitialize_Band(farg1) & +bind(C, name="_wrap_FSUNLinSolInitialize_Band") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT) :: fresult +end function + +function swigc_FSUNLinSolSetup_Band(farg1, farg2) & +bind(C, name="_wrap_FSUNLinSolSetup_Band") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FSUNLinSolSolve_Band(farg1, farg2, farg3, farg4, farg5) & +bind(C, name="_wrap_FSUNLinSolSolve_Band") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +type(C_PTR), value :: farg4 +real(C_DOUBLE), intent(in) :: farg5 +integer(C_INT) :: fresult +end function + +function swigc_FSUNLinSolLastFlag_Band(farg1) & +bind(C, name="_wrap_FSUNLinSolLastFlag_Band") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT32_T) :: fresult +end function + +function swigc_FSUNLinSolSpace_Band(farg1, farg2, farg3) & +bind(C, name="_wrap_FSUNLinSolSpace_Band") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FSUNLinSolFree_Band(farg1) & +bind(C, name="_wrap_FSUNLinSolFree_Band") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT) :: fresult +end function + +end interface + + +contains + ! MODULE SUBPROGRAMS +function FSUNLinSol_Band(y, a, sunctx) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +type(SUNLinearSolver), pointer :: swig_result +type(N_Vector), target, intent(inout) :: y +type(SUNMatrix), target, intent(inout) :: a +type(C_PTR) :: sunctx +type(C_PTR) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = c_loc(y) +farg2 = c_loc(a) +farg3 = sunctx +fresult = swigc_FSUNLinSol_Band(farg1, farg2, farg3) +call c_f_pointer(fresult, swig_result) +end function + +function FSUNLinSolGetType_Band(s) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(SUNLinearSolver_Type) :: swig_result +type(SUNLinearSolver), target, intent(inout) :: s +integer(C_INT) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(s) +fresult = swigc_FSUNLinSolGetType_Band(farg1) +swig_result = fresult +end function + +function FSUNLinSolGetID_Band(s) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(SUNLinearSolver_ID) :: swig_result +type(SUNLinearSolver), target, intent(inout) :: s +integer(C_INT) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(s) +fresult = swigc_FSUNLinSolGetID_Band(farg1) +swig_result = fresult +end function + +function FSUNLinSolInitialize_Band(s) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNLinearSolver), target, intent(inout) :: s +integer(C_INT) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(s) +fresult = swigc_FSUNLinSolInitialize_Band(farg1) +swig_result = fresult +end function + +function FSUNLinSolSetup_Band(s, a) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNLinearSolver), target, intent(inout) :: s +type(SUNMatrix), target, intent(inout) :: a +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = c_loc(s) +farg2 = c_loc(a) +fresult = swigc_FSUNLinSolSetup_Band(farg1, farg2) +swig_result = fresult +end function + +function FSUNLinSolSolve_Band(s, a, x, b, tol) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNLinearSolver), target, intent(inout) :: s +type(SUNMatrix), target, intent(inout) :: a +type(N_Vector), target, intent(inout) :: x +type(N_Vector), target, intent(inout) :: b +real(C_DOUBLE), intent(in) :: tol +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 +type(C_PTR) :: farg4 +real(C_DOUBLE) :: farg5 + +farg1 = c_loc(s) +farg2 = c_loc(a) +farg3 = c_loc(x) +farg4 = c_loc(b) +farg5 = tol +fresult = swigc_FSUNLinSolSolve_Band(farg1, farg2, farg3, farg4, farg5) +swig_result = fresult +end function + +function FSUNLinSolLastFlag_Band(s) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT32_T) :: swig_result +type(SUNLinearSolver), target, intent(inout) :: s +integer(C_INT32_T) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(s) +fresult = swigc_FSUNLinSolLastFlag_Band(farg1) +swig_result = fresult +end function + +function FSUNLinSolSpace_Band(s, lenrwls, leniwls) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNLinearSolver), target, intent(inout) :: s +integer(C_LONG), dimension(*), target, intent(inout) :: lenrwls +integer(C_LONG), dimension(*), target, intent(inout) :: leniwls +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = c_loc(s) +farg2 = c_loc(lenrwls(1)) +farg3 = c_loc(leniwls(1)) +fresult = swigc_FSUNLinSolSpace_Band(farg1, farg2, farg3) +swig_result = fresult +end function + +function FSUNLinSolFree_Band(s) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNLinearSolver), target, intent(inout) :: s +integer(C_INT) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(s) +fresult = swigc_FSUNLinSolFree_Band(farg1) +swig_result = fresult +end function + + +end module diff --git a/src/sunlinsol/band/fmod_int64/CMakeLists.txt b/src/sunlinsol/band/fmod_int64/CMakeLists.txt new file mode 100644 index 0000000000..250f17c914 --- /dev/null +++ b/src/sunlinsol/band/fmod_int64/CMakeLists.txt @@ -0,0 +1,33 @@ +# ---------------------------------------------------------------------- +# Programmer(s): Cody J. Balos @ LLNL +# ---------------------------------------------------------------------- +# SUNDIALS Copyright Start +# Copyright (c) 2002-2024, Lawrence Livermore National Security +# and Southern Methodist University. +# All rights reserved. +# +# See the top-level LICENSE and NOTICE files for details. +# +# SPDX-License-Identifier: BSD-3-Clause +# SUNDIALS Copyright End +# ---------------------------------------------------------------------- +# CMakeLists.txt file for the F2003 band SUNLinearSolver object library +# ---------------------------------------------------------------------- + +sundials_add_f2003_library(sundials_fsunlinsolband_mod + SOURCES + fsunlinsol_band_mod.f90 fsunlinsol_band_mod.c + LINK_LIBRARIES + PUBLIC sundials_fcore_mod + OBJECT_LIBRARIES + LINK_LIBRARIES + PUBLIC sundials_fsunmatrixband_mod + OUTPUT_NAME + sundials_fsunlinsolband_mod + VERSION + ${sunlinsollib_VERSION} + SOVERSION + ${sunlinsollib_SOVERSION} +) + +message(STATUS "Added SUNLINSOL_BAND F2003 interface") diff --git a/src/sunlinsol/band/fmod/fsunlinsol_band_mod.c b/src/sunlinsol/band/fmod_int64/fsunlinsol_band_mod.c similarity index 100% rename from src/sunlinsol/band/fmod/fsunlinsol_band_mod.c rename to src/sunlinsol/band/fmod_int64/fsunlinsol_band_mod.c diff --git a/src/sunlinsol/band/fmod/fsunlinsol_band_mod.f90 b/src/sunlinsol/band/fmod_int64/fsunlinsol_band_mod.f90 similarity index 100% rename from src/sunlinsol/band/fmod/fsunlinsol_band_mod.f90 rename to src/sunlinsol/band/fmod_int64/fsunlinsol_band_mod.f90 diff --git a/src/sunlinsol/dense/CMakeLists.txt b/src/sunlinsol/dense/CMakeLists.txt index 8edb6de95d..1661deca42 100644 --- a/src/sunlinsol/dense/CMakeLists.txt +++ b/src/sunlinsol/dense/CMakeLists.txt @@ -42,5 +42,5 @@ message(STATUS "Added SUNLINSOL_DENSE module") # Add F90 module if F2003 interface is enabled if(BUILD_FORTRAN_MODULE_INTERFACE) - add_subdirectory(fmod) + add_subdirectory("fmod_int${SUNDIALS_INDEX_SIZE}") endif() diff --git a/src/sunlinsol/dense/fmod/CMakeLists.txt b/src/sunlinsol/dense/fmod_int32/CMakeLists.txt similarity index 100% rename from src/sunlinsol/dense/fmod/CMakeLists.txt rename to src/sunlinsol/dense/fmod_int32/CMakeLists.txt diff --git a/src/sunlinsol/dense/fmod_int32/fsunlinsol_dense_mod.c b/src/sunlinsol/dense/fmod_int32/fsunlinsol_dense_mod.c new file mode 100644 index 0000000000..417d14d673 --- /dev/null +++ b/src/sunlinsol/dense/fmod_int32/fsunlinsol_dense_mod.c @@ -0,0 +1,337 @@ +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.0 + * + * This file is not intended to be easily readable and contains a number of + * coding conventions designed to improve portability and efficiency. Do not make + * changes to this file unless you know what you are doing--modify the SWIG + * interface file instead. + * ----------------------------------------------------------------------------- */ + +/* --------------------------------------------------------------- + * Programmer(s): Auto-generated by swig. + * --------------------------------------------------------------- + * SUNDIALS Copyright Start + * Copyright (c) 2002-2024, Lawrence Livermore National Security + * and Southern Methodist University. + * All rights reserved. + * + * See the top-level LICENSE and NOTICE files for details. + * + * SPDX-License-Identifier: BSD-3-Clause + * SUNDIALS Copyright End + * -------------------------------------------------------------*/ + +/* ----------------------------------------------------------------------------- + * This section contains generic SWIG labels for method/variable + * declarations/attributes, and other compiler dependent labels. + * ----------------------------------------------------------------------------- */ + +/* template workaround for compilers that cannot correctly implement the C++ standard */ +#ifndef SWIGTEMPLATEDISAMBIGUATOR +# if defined(__SUNPRO_CC) && (__SUNPRO_CC <= 0x560) +# define SWIGTEMPLATEDISAMBIGUATOR template +# elif defined(__HP_aCC) +/* Needed even with `aCC -AA' when `aCC -V' reports HP ANSI C++ B3910B A.03.55 */ +/* If we find a maximum version that requires this, the test would be __HP_aCC <= 35500 for A.03.55 */ +# define SWIGTEMPLATEDISAMBIGUATOR template +# else +# define SWIGTEMPLATEDISAMBIGUATOR +# endif +#endif + +/* inline attribute */ +#ifndef SWIGINLINE +# if defined(__cplusplus) || (defined(__GNUC__) && !defined(__STRICT_ANSI__)) +# define SWIGINLINE inline +# else +# define SWIGINLINE +# endif +#endif + +/* attribute recognised by some compilers to avoid 'unused' warnings */ +#ifndef SWIGUNUSED +# if defined(__GNUC__) +# if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)) +# define SWIGUNUSED __attribute__ ((__unused__)) +# else +# define SWIGUNUSED +# endif +# elif defined(__ICC) +# define SWIGUNUSED __attribute__ ((__unused__)) +# else +# define SWIGUNUSED +# endif +#endif + +#ifndef SWIG_MSC_UNSUPPRESS_4505 +# if defined(_MSC_VER) +# pragma warning(disable : 4505) /* unreferenced local function has been removed */ +# endif +#endif + +#ifndef SWIGUNUSEDPARM +# ifdef __cplusplus +# define SWIGUNUSEDPARM(p) +# else +# define SWIGUNUSEDPARM(p) p SWIGUNUSED +# endif +#endif + +/* internal SWIG method */ +#ifndef SWIGINTERN +# define SWIGINTERN static SWIGUNUSED +#endif + +/* internal inline SWIG method */ +#ifndef SWIGINTERNINLINE +# define SWIGINTERNINLINE SWIGINTERN SWIGINLINE +#endif + +/* qualifier for exported *const* global data variables*/ +#ifndef SWIGEXTERN +# ifdef __cplusplus +# define SWIGEXTERN extern +# else +# define SWIGEXTERN +# endif +#endif + +/* exporting methods */ +#if defined(__GNUC__) +# if (__GNUC__ >= 4) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) +# ifndef GCC_HASCLASSVISIBILITY +# define GCC_HASCLASSVISIBILITY +# endif +# endif +#endif + +#ifndef SWIGEXPORT +# if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__) +# if defined(STATIC_LINKED) +# define SWIGEXPORT +# else +# define SWIGEXPORT __declspec(dllexport) +# endif +# else +# if defined(__GNUC__) && defined(GCC_HASCLASSVISIBILITY) +# define SWIGEXPORT __attribute__ ((visibility("default"))) +# else +# define SWIGEXPORT +# endif +# endif +#endif + +/* calling conventions for Windows */ +#ifndef SWIGSTDCALL +# if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__) +# define SWIGSTDCALL __stdcall +# else +# define SWIGSTDCALL +# endif +#endif + +/* Deal with Microsoft's attempt at deprecating C standard runtime functions */ +#if !defined(SWIG_NO_CRT_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_CRT_SECURE_NO_DEPRECATE) +# define _CRT_SECURE_NO_DEPRECATE +#endif + +/* Deal with Microsoft's attempt at deprecating methods in the standard C++ library */ +#if !defined(SWIG_NO_SCL_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_SCL_SECURE_NO_DEPRECATE) +# define _SCL_SECURE_NO_DEPRECATE +#endif + +/* Deal with Apple's deprecated 'AssertMacros.h' from Carbon-framework */ +#if defined(__APPLE__) && !defined(__ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES) +# define __ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES 0 +#endif + +/* Intel's compiler complains if a variable which was never initialised is + * cast to void, which is a common idiom which we use to indicate that we + * are aware a variable isn't used. So we just silence that warning. + * See: https://github.com/swig/swig/issues/192 for more discussion. + */ +#ifdef __INTEL_COMPILER +# pragma warning disable 592 +#endif + +/* Errors in SWIG */ +#define SWIG_UnknownError -1 +#define SWIG_IOError -2 +#define SWIG_RuntimeError -3 +#define SWIG_IndexError -4 +#define SWIG_TypeError -5 +#define SWIG_DivisionByZero -6 +#define SWIG_OverflowError -7 +#define SWIG_SyntaxError -8 +#define SWIG_ValueError -9 +#define SWIG_SystemError -10 +#define SWIG_AttributeError -11 +#define SWIG_MemoryError -12 +#define SWIG_NullReferenceError -13 + + + + +#include +#define SWIG_exception_impl(DECL, CODE, MSG, RETURNNULL) \ + { printf("In " DECL ": " MSG); assert(0); RETURNNULL; } + + +#include +#if defined(_MSC_VER) || defined(__BORLANDC__) || defined(_WATCOM) +# ifndef snprintf +# define snprintf _snprintf +# endif +#endif + + +/* Support for the `contract` feature. + * + * Note that RETURNNULL is first because it's inserted via a 'Replaceall' in + * the fortran.cxx file. + */ +#define SWIG_contract_assert(RETURNNULL, EXPR, MSG) \ + if (!(EXPR)) { SWIG_exception_impl("$decl", SWIG_ValueError, MSG, RETURNNULL); } + + +#define SWIGVERSION 0x040000 +#define SWIG_VERSION SWIGVERSION + + +#define SWIG_as_voidptr(a) (void *)((const void *)(a)) +#define SWIG_as_voidptrptr(a) ((void)SWIG_as_voidptr(*a),(void**)(a)) + + +#include "sundials/sundials_linearsolver.h" + + +#include "sunlinsol/sunlinsol_dense.h" + +SWIGEXPORT SUNLinearSolver _wrap_FSUNLinSol_Dense(N_Vector farg1, SUNMatrix farg2, void *farg3) { + SUNLinearSolver fresult ; + N_Vector arg1 = (N_Vector) 0 ; + SUNMatrix arg2 = (SUNMatrix) 0 ; + SUNContext arg3 = (SUNContext) 0 ; + SUNLinearSolver result; + + arg1 = (N_Vector)(farg1); + arg2 = (SUNMatrix)(farg2); + arg3 = (SUNContext)(farg3); + result = (SUNLinearSolver)SUNLinSol_Dense(arg1,arg2,arg3); + fresult = result; + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNLinSolGetType_Dense(SUNLinearSolver farg1) { + int fresult ; + SUNLinearSolver arg1 = (SUNLinearSolver) 0 ; + SUNLinearSolver_Type result; + + arg1 = (SUNLinearSolver)(farg1); + result = (SUNLinearSolver_Type)SUNLinSolGetType_Dense(arg1); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNLinSolGetID_Dense(SUNLinearSolver farg1) { + int fresult ; + SUNLinearSolver arg1 = (SUNLinearSolver) 0 ; + SUNLinearSolver_ID result; + + arg1 = (SUNLinearSolver)(farg1); + result = (SUNLinearSolver_ID)SUNLinSolGetID_Dense(arg1); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNLinSolInitialize_Dense(SUNLinearSolver farg1) { + int fresult ; + SUNLinearSolver arg1 = (SUNLinearSolver) 0 ; + SUNErrCode result; + + arg1 = (SUNLinearSolver)(farg1); + result = (SUNErrCode)SUNLinSolInitialize_Dense(arg1); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNLinSolSetup_Dense(SUNLinearSolver farg1, SUNMatrix farg2) { + int fresult ; + SUNLinearSolver arg1 = (SUNLinearSolver) 0 ; + SUNMatrix arg2 = (SUNMatrix) 0 ; + int result; + + arg1 = (SUNLinearSolver)(farg1); + arg2 = (SUNMatrix)(farg2); + result = (int)SUNLinSolSetup_Dense(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNLinSolSolve_Dense(SUNLinearSolver farg1, SUNMatrix farg2, N_Vector farg3, N_Vector farg4, double const *farg5) { + int fresult ; + SUNLinearSolver arg1 = (SUNLinearSolver) 0 ; + SUNMatrix arg2 = (SUNMatrix) 0 ; + N_Vector arg3 = (N_Vector) 0 ; + N_Vector arg4 = (N_Vector) 0 ; + sunrealtype arg5 ; + int result; + + arg1 = (SUNLinearSolver)(farg1); + arg2 = (SUNMatrix)(farg2); + arg3 = (N_Vector)(farg3); + arg4 = (N_Vector)(farg4); + arg5 = (sunrealtype)(*farg5); + result = (int)SUNLinSolSolve_Dense(arg1,arg2,arg3,arg4,arg5); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int32_t _wrap_FSUNLinSolLastFlag_Dense(SUNLinearSolver farg1) { + int32_t fresult ; + SUNLinearSolver arg1 = (SUNLinearSolver) 0 ; + sunindextype result; + + arg1 = (SUNLinearSolver)(farg1); + result = SUNLinSolLastFlag_Dense(arg1); + fresult = (sunindextype)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNLinSolSpace_Dense(SUNLinearSolver farg1, long *farg2, long *farg3) { + int fresult ; + SUNLinearSolver arg1 = (SUNLinearSolver) 0 ; + long *arg2 = (long *) 0 ; + long *arg3 = (long *) 0 ; + SUNErrCode result; + + arg1 = (SUNLinearSolver)(farg1); + arg2 = (long *)(farg2); + arg3 = (long *)(farg3); + result = (SUNErrCode)SUNLinSolSpace_Dense(arg1,arg2,arg3); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNLinSolFree_Dense(SUNLinearSolver farg1) { + int fresult ; + SUNLinearSolver arg1 = (SUNLinearSolver) 0 ; + SUNErrCode result; + + arg1 = (SUNLinearSolver)(farg1); + result = (SUNErrCode)SUNLinSolFree_Dense(arg1); + fresult = (SUNErrCode)(result); + return fresult; +} + + + diff --git a/src/sunlinsol/dense/fmod_int32/fsunlinsol_dense_mod.f90 b/src/sunlinsol/dense/fmod_int32/fsunlinsol_dense_mod.f90 new file mode 100644 index 0000000000..6ec001b1ed --- /dev/null +++ b/src/sunlinsol/dense/fmod_int32/fsunlinsol_dense_mod.f90 @@ -0,0 +1,271 @@ +! This file was automatically generated by SWIG (http://www.swig.org). +! Version 4.0.0 +! +! Do not make changes to this file unless you know what you are doing--modify +! the SWIG interface file instead. + +! --------------------------------------------------------------- +! Programmer(s): Auto-generated by swig. +! --------------------------------------------------------------- +! SUNDIALS Copyright Start +! Copyright (c) 2002-2024, Lawrence Livermore National Security +! and Southern Methodist University. +! All rights reserved. +! +! See the top-level LICENSE and NOTICE files for details. +! +! SPDX-License-Identifier: BSD-3-Clause +! SUNDIALS Copyright End +! --------------------------------------------------------------- + +module fsunlinsol_dense_mod + use, intrinsic :: ISO_C_BINDING + use fsundials_core_mod + implicit none + private + + ! DECLARATION CONSTRUCTS + public :: FSUNLinSol_Dense + public :: FSUNLinSolGetType_Dense + public :: FSUNLinSolGetID_Dense + public :: FSUNLinSolInitialize_Dense + public :: FSUNLinSolSetup_Dense + public :: FSUNLinSolSolve_Dense + public :: FSUNLinSolLastFlag_Dense + public :: FSUNLinSolSpace_Dense + public :: FSUNLinSolFree_Dense + +! WRAPPER DECLARATIONS +interface +function swigc_FSUNLinSol_Dense(farg1, farg2, farg3) & +bind(C, name="_wrap_FSUNLinSol_Dense") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +type(C_PTR) :: fresult +end function + +function swigc_FSUNLinSolGetType_Dense(farg1) & +bind(C, name="_wrap_FSUNLinSolGetType_Dense") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT) :: fresult +end function + +function swigc_FSUNLinSolGetID_Dense(farg1) & +bind(C, name="_wrap_FSUNLinSolGetID_Dense") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT) :: fresult +end function + +function swigc_FSUNLinSolInitialize_Dense(farg1) & +bind(C, name="_wrap_FSUNLinSolInitialize_Dense") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT) :: fresult +end function + +function swigc_FSUNLinSolSetup_Dense(farg1, farg2) & +bind(C, name="_wrap_FSUNLinSolSetup_Dense") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FSUNLinSolSolve_Dense(farg1, farg2, farg3, farg4, farg5) & +bind(C, name="_wrap_FSUNLinSolSolve_Dense") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +type(C_PTR), value :: farg4 +real(C_DOUBLE), intent(in) :: farg5 +integer(C_INT) :: fresult +end function + +function swigc_FSUNLinSolLastFlag_Dense(farg1) & +bind(C, name="_wrap_FSUNLinSolLastFlag_Dense") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT32_T) :: fresult +end function + +function swigc_FSUNLinSolSpace_Dense(farg1, farg2, farg3) & +bind(C, name="_wrap_FSUNLinSolSpace_Dense") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FSUNLinSolFree_Dense(farg1) & +bind(C, name="_wrap_FSUNLinSolFree_Dense") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT) :: fresult +end function + +end interface + + +contains + ! MODULE SUBPROGRAMS +function FSUNLinSol_Dense(y, a, sunctx) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +type(SUNLinearSolver), pointer :: swig_result +type(N_Vector), target, intent(inout) :: y +type(SUNMatrix), target, intent(inout) :: a +type(C_PTR) :: sunctx +type(C_PTR) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = c_loc(y) +farg2 = c_loc(a) +farg3 = sunctx +fresult = swigc_FSUNLinSol_Dense(farg1, farg2, farg3) +call c_f_pointer(fresult, swig_result) +end function + +function FSUNLinSolGetType_Dense(s) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(SUNLinearSolver_Type) :: swig_result +type(SUNLinearSolver), target, intent(inout) :: s +integer(C_INT) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(s) +fresult = swigc_FSUNLinSolGetType_Dense(farg1) +swig_result = fresult +end function + +function FSUNLinSolGetID_Dense(s) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(SUNLinearSolver_ID) :: swig_result +type(SUNLinearSolver), target, intent(inout) :: s +integer(C_INT) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(s) +fresult = swigc_FSUNLinSolGetID_Dense(farg1) +swig_result = fresult +end function + +function FSUNLinSolInitialize_Dense(s) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNLinearSolver), target, intent(inout) :: s +integer(C_INT) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(s) +fresult = swigc_FSUNLinSolInitialize_Dense(farg1) +swig_result = fresult +end function + +function FSUNLinSolSetup_Dense(s, a) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNLinearSolver), target, intent(inout) :: s +type(SUNMatrix), target, intent(inout) :: a +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = c_loc(s) +farg2 = c_loc(a) +fresult = swigc_FSUNLinSolSetup_Dense(farg1, farg2) +swig_result = fresult +end function + +function FSUNLinSolSolve_Dense(s, a, x, b, tol) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNLinearSolver), target, intent(inout) :: s +type(SUNMatrix), target, intent(inout) :: a +type(N_Vector), target, intent(inout) :: x +type(N_Vector), target, intent(inout) :: b +real(C_DOUBLE), intent(in) :: tol +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 +type(C_PTR) :: farg4 +real(C_DOUBLE) :: farg5 + +farg1 = c_loc(s) +farg2 = c_loc(a) +farg3 = c_loc(x) +farg4 = c_loc(b) +farg5 = tol +fresult = swigc_FSUNLinSolSolve_Dense(farg1, farg2, farg3, farg4, farg5) +swig_result = fresult +end function + +function FSUNLinSolLastFlag_Dense(s) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT32_T) :: swig_result +type(SUNLinearSolver), target, intent(inout) :: s +integer(C_INT32_T) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(s) +fresult = swigc_FSUNLinSolLastFlag_Dense(farg1) +swig_result = fresult +end function + +function FSUNLinSolSpace_Dense(s, lenrwls, leniwls) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNLinearSolver), target, intent(inout) :: s +integer(C_LONG), dimension(*), target, intent(inout) :: lenrwls +integer(C_LONG), dimension(*), target, intent(inout) :: leniwls +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = c_loc(s) +farg2 = c_loc(lenrwls(1)) +farg3 = c_loc(leniwls(1)) +fresult = swigc_FSUNLinSolSpace_Dense(farg1, farg2, farg3) +swig_result = fresult +end function + +function FSUNLinSolFree_Dense(s) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNLinearSolver), target, intent(inout) :: s +integer(C_INT) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(s) +fresult = swigc_FSUNLinSolFree_Dense(farg1) +swig_result = fresult +end function + + +end module diff --git a/src/sunlinsol/dense/fmod_int64/CMakeLists.txt b/src/sunlinsol/dense/fmod_int64/CMakeLists.txt new file mode 100644 index 0000000000..61bdf87108 --- /dev/null +++ b/src/sunlinsol/dense/fmod_int64/CMakeLists.txt @@ -0,0 +1,32 @@ +# ---------------------------------------------------------------------- +# Programmer(s): Cody J. Balos @ LLNL +# ---------------------------------------------------------------------- +# SUNDIALS Copyright Start +# Copyright (c) 2002-2024, Lawrence Livermore National Security +# and Southern Methodist University. +# All rights reserved. +# +# See the top-level LICENSE and NOTICE files for details. +# +# SPDX-License-Identifier: BSD-3-Clause +# SUNDIALS Copyright End +# ---------------------------------------------------------------------- +# CMakeLists.txt file for the F2003 dense SUNLinearSolver object library +# ---------------------------------------------------------------------- + +sundials_add_f2003_library(sundials_fsunlinsoldense_mod + SOURCES + fsunlinsol_dense_mod.f90 fsunlinsol_dense_mod.c + LINK_LIBRARIES + PUBLIC sundials_fcore_mod + OBJECT_LIBRARIES + LINK_LIBRARIES + PUBLIC sundials_fsunmatrixdense_mod + OUTPUT_NAME + sundials_fsunlinsoldense_mod + VERSION + ${sunlinsollib_VERSION} + SOVERSION + ${sunlinsollib_SOVERSION} +) +message(STATUS "Added SUNLINSOL_DENSE F2003 interface") diff --git a/src/sunlinsol/dense/fmod/fsunlinsol_dense_mod.c b/src/sunlinsol/dense/fmod_int64/fsunlinsol_dense_mod.c similarity index 100% rename from src/sunlinsol/dense/fmod/fsunlinsol_dense_mod.c rename to src/sunlinsol/dense/fmod_int64/fsunlinsol_dense_mod.c diff --git a/src/sunlinsol/dense/fmod/fsunlinsol_dense_mod.f90 b/src/sunlinsol/dense/fmod_int64/fsunlinsol_dense_mod.f90 similarity index 100% rename from src/sunlinsol/dense/fmod/fsunlinsol_dense_mod.f90 rename to src/sunlinsol/dense/fmod_int64/fsunlinsol_dense_mod.f90 diff --git a/src/sunlinsol/klu/CMakeLists.txt b/src/sunlinsol/klu/CMakeLists.txt index 5be94d2e36..c78a547deb 100644 --- a/src/sunlinsol/klu/CMakeLists.txt +++ b/src/sunlinsol/klu/CMakeLists.txt @@ -41,5 +41,5 @@ message(STATUS "Added SUNLINSOL_KLU module") # Add F90 module if F2003 interface is enabled if(BUILD_FORTRAN_MODULE_INTERFACE) - add_subdirectory(fmod) + add_subdirectory("fmod_int${SUNDIALS_INDEX_SIZE}") endif() diff --git a/src/sunlinsol/klu/fmod/CMakeLists.txt b/src/sunlinsol/klu/fmod_int32/CMakeLists.txt similarity index 100% rename from src/sunlinsol/klu/fmod/CMakeLists.txt rename to src/sunlinsol/klu/fmod_int32/CMakeLists.txt diff --git a/src/sunlinsol/klu/fmod_int32/fsunlinsol_klu_mod.c b/src/sunlinsol/klu/fmod_int32/fsunlinsol_klu_mod.c new file mode 100644 index 0000000000..0d9434fe92 --- /dev/null +++ b/src/sunlinsol/klu/fmod_int32/fsunlinsol_klu_mod.c @@ -0,0 +1,429 @@ +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.0 + * + * This file is not intended to be easily readable and contains a number of + * coding conventions designed to improve portability and efficiency. Do not make + * changes to this file unless you know what you are doing--modify the SWIG + * interface file instead. + * ----------------------------------------------------------------------------- */ + +/* --------------------------------------------------------------- + * Programmer(s): Auto-generated by swig. + * --------------------------------------------------------------- + * SUNDIALS Copyright Start + * Copyright (c) 2002-2024, Lawrence Livermore National Security + * and Southern Methodist University. + * All rights reserved. + * + * See the top-level LICENSE and NOTICE files for details. + * + * SPDX-License-Identifier: BSD-3-Clause + * SUNDIALS Copyright End + * -------------------------------------------------------------*/ + +/* ----------------------------------------------------------------------------- + * This section contains generic SWIG labels for method/variable + * declarations/attributes, and other compiler dependent labels. + * ----------------------------------------------------------------------------- */ + +/* template workaround for compilers that cannot correctly implement the C++ standard */ +#ifndef SWIGTEMPLATEDISAMBIGUATOR +# if defined(__SUNPRO_CC) && (__SUNPRO_CC <= 0x560) +# define SWIGTEMPLATEDISAMBIGUATOR template +# elif defined(__HP_aCC) +/* Needed even with `aCC -AA' when `aCC -V' reports HP ANSI C++ B3910B A.03.55 */ +/* If we find a maximum version that requires this, the test would be __HP_aCC <= 35500 for A.03.55 */ +# define SWIGTEMPLATEDISAMBIGUATOR template +# else +# define SWIGTEMPLATEDISAMBIGUATOR +# endif +#endif + +/* inline attribute */ +#ifndef SWIGINLINE +# if defined(__cplusplus) || (defined(__GNUC__) && !defined(__STRICT_ANSI__)) +# define SWIGINLINE inline +# else +# define SWIGINLINE +# endif +#endif + +/* attribute recognised by some compilers to avoid 'unused' warnings */ +#ifndef SWIGUNUSED +# if defined(__GNUC__) +# if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)) +# define SWIGUNUSED __attribute__ ((__unused__)) +# else +# define SWIGUNUSED +# endif +# elif defined(__ICC) +# define SWIGUNUSED __attribute__ ((__unused__)) +# else +# define SWIGUNUSED +# endif +#endif + +#ifndef SWIG_MSC_UNSUPPRESS_4505 +# if defined(_MSC_VER) +# pragma warning(disable : 4505) /* unreferenced local function has been removed */ +# endif +#endif + +#ifndef SWIGUNUSEDPARM +# ifdef __cplusplus +# define SWIGUNUSEDPARM(p) +# else +# define SWIGUNUSEDPARM(p) p SWIGUNUSED +# endif +#endif + +/* internal SWIG method */ +#ifndef SWIGINTERN +# define SWIGINTERN static SWIGUNUSED +#endif + +/* internal inline SWIG method */ +#ifndef SWIGINTERNINLINE +# define SWIGINTERNINLINE SWIGINTERN SWIGINLINE +#endif + +/* qualifier for exported *const* global data variables*/ +#ifndef SWIGEXTERN +# ifdef __cplusplus +# define SWIGEXTERN extern +# else +# define SWIGEXTERN +# endif +#endif + +/* exporting methods */ +#if defined(__GNUC__) +# if (__GNUC__ >= 4) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) +# ifndef GCC_HASCLASSVISIBILITY +# define GCC_HASCLASSVISIBILITY +# endif +# endif +#endif + +#ifndef SWIGEXPORT +# if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__) +# if defined(STATIC_LINKED) +# define SWIGEXPORT +# else +# define SWIGEXPORT __declspec(dllexport) +# endif +# else +# if defined(__GNUC__) && defined(GCC_HASCLASSVISIBILITY) +# define SWIGEXPORT __attribute__ ((visibility("default"))) +# else +# define SWIGEXPORT +# endif +# endif +#endif + +/* calling conventions for Windows */ +#ifndef SWIGSTDCALL +# if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__) +# define SWIGSTDCALL __stdcall +# else +# define SWIGSTDCALL +# endif +#endif + +/* Deal with Microsoft's attempt at deprecating C standard runtime functions */ +#if !defined(SWIG_NO_CRT_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_CRT_SECURE_NO_DEPRECATE) +# define _CRT_SECURE_NO_DEPRECATE +#endif + +/* Deal with Microsoft's attempt at deprecating methods in the standard C++ library */ +#if !defined(SWIG_NO_SCL_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_SCL_SECURE_NO_DEPRECATE) +# define _SCL_SECURE_NO_DEPRECATE +#endif + +/* Deal with Apple's deprecated 'AssertMacros.h' from Carbon-framework */ +#if defined(__APPLE__) && !defined(__ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES) +# define __ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES 0 +#endif + +/* Intel's compiler complains if a variable which was never initialised is + * cast to void, which is a common idiom which we use to indicate that we + * are aware a variable isn't used. So we just silence that warning. + * See: https://github.com/swig/swig/issues/192 for more discussion. + */ +#ifdef __INTEL_COMPILER +# pragma warning disable 592 +#endif + +/* Errors in SWIG */ +#define SWIG_UnknownError -1 +#define SWIG_IOError -2 +#define SWIG_RuntimeError -3 +#define SWIG_IndexError -4 +#define SWIG_TypeError -5 +#define SWIG_DivisionByZero -6 +#define SWIG_OverflowError -7 +#define SWIG_SyntaxError -8 +#define SWIG_ValueError -9 +#define SWIG_SystemError -10 +#define SWIG_AttributeError -11 +#define SWIG_MemoryError -12 +#define SWIG_NullReferenceError -13 + + + + +#include +#define SWIG_exception_impl(DECL, CODE, MSG, RETURNNULL) \ + { printf("In " DECL ": " MSG); assert(0); RETURNNULL; } + + +enum { + SWIG_MEM_OWN = 0x01, + SWIG_MEM_RVALUE = 0x02, + SWIG_MEM_CONST = 0x04 +}; + + +#include +#if defined(_MSC_VER) || defined(__BORLANDC__) || defined(_WATCOM) +# ifndef snprintf +# define snprintf _snprintf +# endif +#endif + + +/* Support for the `contract` feature. + * + * Note that RETURNNULL is first because it's inserted via a 'Replaceall' in + * the fortran.cxx file. + */ +#define SWIG_contract_assert(RETURNNULL, EXPR, MSG) \ + if (!(EXPR)) { SWIG_exception_impl("$decl", SWIG_ValueError, MSG, RETURNNULL); } + + +#define SWIGVERSION 0x040000 +#define SWIG_VERSION SWIGVERSION + + +#define SWIG_as_voidptr(a) (void *)((const void *)(a)) +#define SWIG_as_voidptrptr(a) ((void)SWIG_as_voidptr(*a),(void**)(a)) + + +#include "sundials/sundials_linearsolver.h" + + +#include "sunlinsol/sunlinsol_klu.h" + + +typedef struct { + void* cptr; + int cmemflags; +} SwigClassWrapper; + + +SWIGINTERN SwigClassWrapper SwigClassWrapper_uninitialized() { + SwigClassWrapper result; + result.cptr = NULL; + result.cmemflags = 0; + return result; +} + +SWIGEXPORT SUNLinearSolver _wrap_FSUNLinSol_KLU(N_Vector farg1, SUNMatrix farg2, void *farg3) { + SUNLinearSolver fresult ; + N_Vector arg1 = (N_Vector) 0 ; + SUNMatrix arg2 = (SUNMatrix) 0 ; + SUNContext arg3 = (SUNContext) 0 ; + SUNLinearSolver result; + + arg1 = (N_Vector)(farg1); + arg2 = (SUNMatrix)(farg2); + arg3 = (SUNContext)(farg3); + result = (SUNLinearSolver)SUNLinSol_KLU(arg1,arg2,arg3); + fresult = result; + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNLinSol_KLUReInit(SUNLinearSolver farg1, SUNMatrix farg2, int32_t const *farg3, int const *farg4) { + int fresult ; + SUNLinearSolver arg1 = (SUNLinearSolver) 0 ; + SUNMatrix arg2 = (SUNMatrix) 0 ; + sunindextype arg3 ; + int arg4 ; + int result; + + arg1 = (SUNLinearSolver)(farg1); + arg2 = (SUNMatrix)(farg2); + arg3 = (sunindextype)(*farg3); + arg4 = (int)(*farg4); + result = (int)SUNLinSol_KLUReInit(arg1,arg2,arg3,arg4); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNLinSol_KLUSetOrdering(SUNLinearSolver farg1, int const *farg2) { + int fresult ; + SUNLinearSolver arg1 = (SUNLinearSolver) 0 ; + int arg2 ; + int result; + + arg1 = (SUNLinearSolver)(farg1); + arg2 = (int)(*farg2); + result = (int)SUNLinSol_KLUSetOrdering(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT SwigClassWrapper _wrap_FSUNLinSol_KLUGetSymbolic(SUNLinearSolver farg1) { + SwigClassWrapper fresult ; + SUNLinearSolver arg1 = (SUNLinearSolver) 0 ; + klu_symbolic *result = 0 ; + + arg1 = (SUNLinearSolver)(farg1); + result = (klu_symbolic *)SUNLinSol_KLUGetSymbolic(arg1); + fresult.cptr = result; + fresult.cmemflags = SWIG_MEM_RVALUE | (0 ? SWIG_MEM_OWN : 0); + return fresult; +} + + +SWIGEXPORT SwigClassWrapper _wrap_FSUNLinSol_KLUGetNumeric(SUNLinearSolver farg1) { + SwigClassWrapper fresult ; + SUNLinearSolver arg1 = (SUNLinearSolver) 0 ; + klu_numeric *result = 0 ; + + arg1 = (SUNLinearSolver)(farg1); + result = (klu_numeric *)SUNLinSol_KLUGetNumeric(arg1); + fresult.cptr = result; + fresult.cmemflags = SWIG_MEM_RVALUE | (0 ? SWIG_MEM_OWN : 0); + return fresult; +} + + +SWIGEXPORT SwigClassWrapper _wrap_FSUNLinSol_KLUGetCommon(SUNLinearSolver farg1) { + SwigClassWrapper fresult ; + SUNLinearSolver arg1 = (SUNLinearSolver) 0 ; + klu_common *result = 0 ; + + arg1 = (SUNLinearSolver)(farg1); + result = (klu_common *)SUNLinSol_KLUGetCommon(arg1); + fresult.cptr = result; + fresult.cmemflags = SWIG_MEM_RVALUE | (0 ? SWIG_MEM_OWN : 0); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNLinSolGetType_KLU(SUNLinearSolver farg1) { + int fresult ; + SUNLinearSolver arg1 = (SUNLinearSolver) 0 ; + SUNLinearSolver_Type result; + + arg1 = (SUNLinearSolver)(farg1); + result = (SUNLinearSolver_Type)SUNLinSolGetType_KLU(arg1); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNLinSolGetID_KLU(SUNLinearSolver farg1) { + int fresult ; + SUNLinearSolver arg1 = (SUNLinearSolver) 0 ; + SUNLinearSolver_ID result; + + arg1 = (SUNLinearSolver)(farg1); + result = (SUNLinearSolver_ID)SUNLinSolGetID_KLU(arg1); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNLinSolInitialize_KLU(SUNLinearSolver farg1) { + int fresult ; + SUNLinearSolver arg1 = (SUNLinearSolver) 0 ; + SUNErrCode result; + + arg1 = (SUNLinearSolver)(farg1); + result = (SUNErrCode)SUNLinSolInitialize_KLU(arg1); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNLinSolSetup_KLU(SUNLinearSolver farg1, SUNMatrix farg2) { + int fresult ; + SUNLinearSolver arg1 = (SUNLinearSolver) 0 ; + SUNMatrix arg2 = (SUNMatrix) 0 ; + int result; + + arg1 = (SUNLinearSolver)(farg1); + arg2 = (SUNMatrix)(farg2); + result = (int)SUNLinSolSetup_KLU(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNLinSolSolve_KLU(SUNLinearSolver farg1, SUNMatrix farg2, N_Vector farg3, N_Vector farg4, double const *farg5) { + int fresult ; + SUNLinearSolver arg1 = (SUNLinearSolver) 0 ; + SUNMatrix arg2 = (SUNMatrix) 0 ; + N_Vector arg3 = (N_Vector) 0 ; + N_Vector arg4 = (N_Vector) 0 ; + sunrealtype arg5 ; + int result; + + arg1 = (SUNLinearSolver)(farg1); + arg2 = (SUNMatrix)(farg2); + arg3 = (N_Vector)(farg3); + arg4 = (N_Vector)(farg4); + arg5 = (sunrealtype)(*farg5); + result = (int)SUNLinSolSolve_KLU(arg1,arg2,arg3,arg4,arg5); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int32_t _wrap_FSUNLinSolLastFlag_KLU(SUNLinearSolver farg1) { + int32_t fresult ; + SUNLinearSolver arg1 = (SUNLinearSolver) 0 ; + sunindextype result; + + arg1 = (SUNLinearSolver)(farg1); + result = SUNLinSolLastFlag_KLU(arg1); + fresult = (sunindextype)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNLinSolSpace_KLU(SUNLinearSolver farg1, long *farg2, long *farg3) { + int fresult ; + SUNLinearSolver arg1 = (SUNLinearSolver) 0 ; + long *arg2 = (long *) 0 ; + long *arg3 = (long *) 0 ; + SUNErrCode result; + + arg1 = (SUNLinearSolver)(farg1); + arg2 = (long *)(farg2); + arg3 = (long *)(farg3); + result = (SUNErrCode)SUNLinSolSpace_KLU(arg1,arg2,arg3); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNLinSolFree_KLU(SUNLinearSolver farg1) { + int fresult ; + SUNLinearSolver arg1 = (SUNLinearSolver) 0 ; + SUNErrCode result; + + arg1 = (SUNLinearSolver)(farg1); + result = (SUNErrCode)SUNLinSolFree_KLU(arg1); + fresult = (SUNErrCode)(result); + return fresult; +} + + + diff --git a/src/sunlinsol/klu/fmod_int32/fsunlinsol_klu_mod.f90 b/src/sunlinsol/klu/fmod_int32/fsunlinsol_klu_mod.f90 new file mode 100644 index 0000000000..fa942b3a09 --- /dev/null +++ b/src/sunlinsol/klu/fmod_int32/fsunlinsol_klu_mod.f90 @@ -0,0 +1,420 @@ +! This file was automatically generated by SWIG (http://www.swig.org). +! Version 4.0.0 +! +! Do not make changes to this file unless you know what you are doing--modify +! the SWIG interface file instead. + +! --------------------------------------------------------------- +! Programmer(s): Auto-generated by swig. +! --------------------------------------------------------------- +! SUNDIALS Copyright Start +! Copyright (c) 2002-2024, Lawrence Livermore National Security +! and Southern Methodist University. +! All rights reserved. +! +! See the top-level LICENSE and NOTICE files for details. +! +! SPDX-License-Identifier: BSD-3-Clause +! SUNDIALS Copyright End +! --------------------------------------------------------------- + +module fsunlinsol_klu_mod + use, intrinsic :: ISO_C_BINDING + use fsundials_core_mod + implicit none + private + + ! DECLARATION CONSTRUCTS + integer(C_INT), parameter, public :: SUNKLU_ORDERING_DEFAULT = 1_C_INT + integer(C_INT), parameter, public :: SUNKLU_REINIT_FULL = 1_C_INT + integer(C_INT), parameter, public :: SUNKLU_REINIT_PARTIAL = 2_C_INT + public :: FSUNLinSol_KLU + public :: FSUNLinSol_KLUReInit + public :: FSUNLinSol_KLUSetOrdering + + integer, parameter :: swig_cmem_own_bit = 0 + integer, parameter :: swig_cmem_rvalue_bit = 1 + integer, parameter :: swig_cmem_const_bit = 2 + type, bind(C) :: SwigClassWrapper + type(C_PTR), public :: cptr = C_NULL_PTR + integer(C_INT), public :: cmemflags = 0 + end type + type, public :: SWIGTYPE_p_klu_symbolic + type(SwigClassWrapper), public :: swigdata + end type + public :: FSUNLinSol_KLUGetSymbolic + type, public :: SWIGTYPE_p_klu_numeric + type(SwigClassWrapper), public :: swigdata + end type + public :: FSUNLinSol_KLUGetNumeric + type, public :: SWIGTYPE_p_klu_common + type(SwigClassWrapper), public :: swigdata + end type + public :: FSUNLinSol_KLUGetCommon + public :: FSUNLinSolGetType_KLU + public :: FSUNLinSolGetID_KLU + public :: FSUNLinSolInitialize_KLU + public :: FSUNLinSolSetup_KLU + public :: FSUNLinSolSolve_KLU + public :: FSUNLinSolLastFlag_KLU + public :: FSUNLinSolSpace_KLU + public :: FSUNLinSolFree_KLU + +! WRAPPER DECLARATIONS +interface +function swigc_FSUNLinSol_KLU(farg1, farg2, farg3) & +bind(C, name="_wrap_FSUNLinSol_KLU") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +type(C_PTR) :: fresult +end function + +function swigc_FSUNLinSol_KLUReInit(farg1, farg2, farg3, farg4) & +bind(C, name="_wrap_FSUNLinSol_KLUReInit") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT32_T), intent(in) :: farg3 +integer(C_INT), intent(in) :: farg4 +integer(C_INT) :: fresult +end function + +function swigc_FSUNLinSol_KLUSetOrdering(farg1, farg2) & +bind(C, name="_wrap_FSUNLinSol_KLUSetOrdering") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FSUNLinSol_KLUGetSymbolic(farg1) & +bind(C, name="_wrap_FSUNLinSol_KLUGetSymbolic") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +import :: swigclasswrapper +type(C_PTR), value :: farg1 +type(SwigClassWrapper) :: fresult +end function + +function swigc_FSUNLinSol_KLUGetNumeric(farg1) & +bind(C, name="_wrap_FSUNLinSol_KLUGetNumeric") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +import :: swigclasswrapper +type(C_PTR), value :: farg1 +type(SwigClassWrapper) :: fresult +end function + +function swigc_FSUNLinSol_KLUGetCommon(farg1) & +bind(C, name="_wrap_FSUNLinSol_KLUGetCommon") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +import :: swigclasswrapper +type(C_PTR), value :: farg1 +type(SwigClassWrapper) :: fresult +end function + +function swigc_FSUNLinSolGetType_KLU(farg1) & +bind(C, name="_wrap_FSUNLinSolGetType_KLU") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT) :: fresult +end function + +function swigc_FSUNLinSolGetID_KLU(farg1) & +bind(C, name="_wrap_FSUNLinSolGetID_KLU") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT) :: fresult +end function + +function swigc_FSUNLinSolInitialize_KLU(farg1) & +bind(C, name="_wrap_FSUNLinSolInitialize_KLU") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT) :: fresult +end function + +function swigc_FSUNLinSolSetup_KLU(farg1, farg2) & +bind(C, name="_wrap_FSUNLinSolSetup_KLU") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FSUNLinSolSolve_KLU(farg1, farg2, farg3, farg4, farg5) & +bind(C, name="_wrap_FSUNLinSolSolve_KLU") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +type(C_PTR), value :: farg4 +real(C_DOUBLE), intent(in) :: farg5 +integer(C_INT) :: fresult +end function + +function swigc_FSUNLinSolLastFlag_KLU(farg1) & +bind(C, name="_wrap_FSUNLinSolLastFlag_KLU") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT32_T) :: fresult +end function + +function swigc_FSUNLinSolSpace_KLU(farg1, farg2, farg3) & +bind(C, name="_wrap_FSUNLinSolSpace_KLU") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FSUNLinSolFree_KLU(farg1) & +bind(C, name="_wrap_FSUNLinSolFree_KLU") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT) :: fresult +end function + +end interface + + +contains + ! MODULE SUBPROGRAMS +function FSUNLinSol_KLU(y, a, sunctx) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +type(SUNLinearSolver), pointer :: swig_result +type(N_Vector), target, intent(inout) :: y +type(SUNMatrix), target, intent(inout) :: a +type(C_PTR) :: sunctx +type(C_PTR) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = c_loc(y) +farg2 = c_loc(a) +farg3 = sunctx +fresult = swigc_FSUNLinSol_KLU(farg1, farg2, farg3) +call c_f_pointer(fresult, swig_result) +end function + +function FSUNLinSol_KLUReInit(s, a, nnz, reinit_type) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNLinearSolver), target, intent(inout) :: s +type(SUNMatrix), target, intent(inout) :: a +integer(C_INT32_T), intent(in) :: nnz +integer(C_INT), intent(in) :: reinit_type +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +integer(C_INT32_T) :: farg3 +integer(C_INT) :: farg4 + +farg1 = c_loc(s) +farg2 = c_loc(a) +farg3 = nnz +farg4 = reinit_type +fresult = swigc_FSUNLinSol_KLUReInit(farg1, farg2, farg3, farg4) +swig_result = fresult +end function + +function FSUNLinSol_KLUSetOrdering(s, ordering_choice) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNLinearSolver), target, intent(inout) :: s +integer(C_INT), intent(in) :: ordering_choice +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = c_loc(s) +farg2 = ordering_choice +fresult = swigc_FSUNLinSol_KLUSetOrdering(farg1, farg2) +swig_result = fresult +end function + +function FSUNLinSol_KLUGetSymbolic(s) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +type(SWIGTYPE_p_klu_symbolic) :: swig_result +type(SUNLinearSolver), target, intent(inout) :: s +type(SwigClassWrapper) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(s) +fresult = swigc_FSUNLinSol_KLUGetSymbolic(farg1) +swig_result%swigdata = fresult +end function + +function FSUNLinSol_KLUGetNumeric(s) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +type(SWIGTYPE_p_klu_numeric) :: swig_result +type(SUNLinearSolver), target, intent(inout) :: s +type(SwigClassWrapper) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(s) +fresult = swigc_FSUNLinSol_KLUGetNumeric(farg1) +swig_result%swigdata = fresult +end function + +function FSUNLinSol_KLUGetCommon(s) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +type(SWIGTYPE_p_klu_common) :: swig_result +type(SUNLinearSolver), target, intent(inout) :: s +type(SwigClassWrapper) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(s) +fresult = swigc_FSUNLinSol_KLUGetCommon(farg1) +swig_result%swigdata = fresult +end function + +function FSUNLinSolGetType_KLU(s) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(SUNLinearSolver_Type) :: swig_result +type(SUNLinearSolver), target, intent(inout) :: s +integer(C_INT) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(s) +fresult = swigc_FSUNLinSolGetType_KLU(farg1) +swig_result = fresult +end function + +function FSUNLinSolGetID_KLU(s) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(SUNLinearSolver_ID) :: swig_result +type(SUNLinearSolver), target, intent(inout) :: s +integer(C_INT) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(s) +fresult = swigc_FSUNLinSolGetID_KLU(farg1) +swig_result = fresult +end function + +function FSUNLinSolInitialize_KLU(s) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNLinearSolver), target, intent(inout) :: s +integer(C_INT) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(s) +fresult = swigc_FSUNLinSolInitialize_KLU(farg1) +swig_result = fresult +end function + +function FSUNLinSolSetup_KLU(s, a) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNLinearSolver), target, intent(inout) :: s +type(SUNMatrix), target, intent(inout) :: a +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = c_loc(s) +farg2 = c_loc(a) +fresult = swigc_FSUNLinSolSetup_KLU(farg1, farg2) +swig_result = fresult +end function + +function FSUNLinSolSolve_KLU(s, a, x, b, tol) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNLinearSolver), target, intent(inout) :: s +type(SUNMatrix), target, intent(inout) :: a +type(N_Vector), target, intent(inout) :: x +type(N_Vector), target, intent(inout) :: b +real(C_DOUBLE), intent(in) :: tol +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 +type(C_PTR) :: farg4 +real(C_DOUBLE) :: farg5 + +farg1 = c_loc(s) +farg2 = c_loc(a) +farg3 = c_loc(x) +farg4 = c_loc(b) +farg5 = tol +fresult = swigc_FSUNLinSolSolve_KLU(farg1, farg2, farg3, farg4, farg5) +swig_result = fresult +end function + +function FSUNLinSolLastFlag_KLU(s) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT32_T) :: swig_result +type(SUNLinearSolver), target, intent(inout) :: s +integer(C_INT32_T) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(s) +fresult = swigc_FSUNLinSolLastFlag_KLU(farg1) +swig_result = fresult +end function + +function FSUNLinSolSpace_KLU(s, lenrwls, leniwls) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNLinearSolver), target, intent(inout) :: s +integer(C_LONG), dimension(*), target, intent(inout) :: lenrwls +integer(C_LONG), dimension(*), target, intent(inout) :: leniwls +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = c_loc(s) +farg2 = c_loc(lenrwls(1)) +farg3 = c_loc(leniwls(1)) +fresult = swigc_FSUNLinSolSpace_KLU(farg1, farg2, farg3) +swig_result = fresult +end function + +function FSUNLinSolFree_KLU(s) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNLinearSolver), target, intent(inout) :: s +integer(C_INT) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(s) +fresult = swigc_FSUNLinSolFree_KLU(farg1) +swig_result = fresult +end function + + +end module diff --git a/src/sunlinsol/klu/fmod_int64/CMakeLists.txt b/src/sunlinsol/klu/fmod_int64/CMakeLists.txt new file mode 100644 index 0000000000..4a0323d921 --- /dev/null +++ b/src/sunlinsol/klu/fmod_int64/CMakeLists.txt @@ -0,0 +1,33 @@ +# --------------------------------------------------------------- +# Programmer(s): Cody J. Balos @ LLNL +# --------------------------------------------------------------- +# SUNDIALS Copyright Start +# Copyright (c) 2002-2024, Lawrence Livermore National Security +# and Southern Methodist University. +# All rights reserved. +# +# See the top-level LICENSE and NOTICE files for details. +# +# SPDX-License-Identifier: BSD-3-Clause +# SUNDIALS Copyright End +# --------------------------------------------------------------- +# CMakeLists.txt file for the F2003 KLU SUNLinearSolver object library +# --------------------------------------------------------------- + +sundials_add_f2003_library(sundials_fsunlinsolklu_mod + SOURCES + fsunlinsol_klu_mod.f90 fsunlinsol_klu_mod.c + LINK_LIBRARIES + PUBLIC sundials_fcore_mod + OBJECT_LIBRARIES + LINK_LIBRARIES + PUBLIC sundials_fsunmatrixsparse_mod + OUTPUT_NAME + sundials_fsunlinsolklu_mod + VERSION + ${sunlinsollib_VERSION} + SOVERSION + ${sunlinsollib_SOVERSION} +) + +message(STATUS "Added SUNLINSOL_KLU F2003 interface") diff --git a/src/sunlinsol/klu/fmod/fsunlinsol_klu_mod.c b/src/sunlinsol/klu/fmod_int64/fsunlinsol_klu_mod.c similarity index 100% rename from src/sunlinsol/klu/fmod/fsunlinsol_klu_mod.c rename to src/sunlinsol/klu/fmod_int64/fsunlinsol_klu_mod.c diff --git a/src/sunlinsol/klu/fmod/fsunlinsol_klu_mod.f90 b/src/sunlinsol/klu/fmod_int64/fsunlinsol_klu_mod.f90 similarity index 100% rename from src/sunlinsol/klu/fmod/fsunlinsol_klu_mod.f90 rename to src/sunlinsol/klu/fmod_int64/fsunlinsol_klu_mod.f90 diff --git a/src/sunlinsol/lapackdense/CMakeLists.txt b/src/sunlinsol/lapackdense/CMakeLists.txt index 7e0eb9239c..41ab2a5fa7 100644 --- a/src/sunlinsol/lapackdense/CMakeLists.txt +++ b/src/sunlinsol/lapackdense/CMakeLists.txt @@ -41,5 +41,5 @@ message(STATUS "Added SUNLINSOL_LAPACKDENSE module") # Add module if F2003 interface is enabled if(BUILD_FORTRAN_MODULE_INTERFACE) - add_subdirectory(fmod) + add_subdirectory("fmod_int${SUNDIALS_INDEX_SIZE}") endif() diff --git a/src/sunlinsol/lapackdense/fmod/CMakeLists.txt b/src/sunlinsol/lapackdense/fmod_int32/CMakeLists.txt similarity index 100% rename from src/sunlinsol/lapackdense/fmod/CMakeLists.txt rename to src/sunlinsol/lapackdense/fmod_int32/CMakeLists.txt diff --git a/src/sunlinsol/lapackdense/fmod_int32/fsunlinsol_lapackdense_mod.c b/src/sunlinsol/lapackdense/fmod_int32/fsunlinsol_lapackdense_mod.c new file mode 100644 index 0000000000..00f91c82e9 --- /dev/null +++ b/src/sunlinsol/lapackdense/fmod_int32/fsunlinsol_lapackdense_mod.c @@ -0,0 +1,337 @@ +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.0 + * + * This file is not intended to be easily readable and contains a number of + * coding conventions designed to improve portability and efficiency. Do not make + * changes to this file unless you know what you are doing--modify the SWIG + * interface file instead. + * ----------------------------------------------------------------------------- */ + +/* --------------------------------------------------------------- + * Programmer(s): Auto-generated by swig. + * --------------------------------------------------------------- + * SUNDIALS Copyright Start + * Copyright (c) 2002-2024, Lawrence Livermore National Security + * and Southern Methodist University. + * All rights reserved. + * + * See the top-level LICENSE and NOTICE files for details. + * + * SPDX-License-Identifier: BSD-3-Clause + * SUNDIALS Copyright End + * -------------------------------------------------------------*/ + +/* ----------------------------------------------------------------------------- + * This section contains generic SWIG labels for method/variable + * declarations/attributes, and other compiler dependent labels. + * ----------------------------------------------------------------------------- */ + +/* template workaround for compilers that cannot correctly implement the C++ standard */ +#ifndef SWIGTEMPLATEDISAMBIGUATOR +# if defined(__SUNPRO_CC) && (__SUNPRO_CC <= 0x560) +# define SWIGTEMPLATEDISAMBIGUATOR template +# elif defined(__HP_aCC) +/* Needed even with `aCC -AA' when `aCC -V' reports HP ANSI C++ B3910B A.03.55 */ +/* If we find a maximum version that requires this, the test would be __HP_aCC <= 35500 for A.03.55 */ +# define SWIGTEMPLATEDISAMBIGUATOR template +# else +# define SWIGTEMPLATEDISAMBIGUATOR +# endif +#endif + +/* inline attribute */ +#ifndef SWIGINLINE +# if defined(__cplusplus) || (defined(__GNUC__) && !defined(__STRICT_ANSI__)) +# define SWIGINLINE inline +# else +# define SWIGINLINE +# endif +#endif + +/* attribute recognised by some compilers to avoid 'unused' warnings */ +#ifndef SWIGUNUSED +# if defined(__GNUC__) +# if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)) +# define SWIGUNUSED __attribute__ ((__unused__)) +# else +# define SWIGUNUSED +# endif +# elif defined(__ICC) +# define SWIGUNUSED __attribute__ ((__unused__)) +# else +# define SWIGUNUSED +# endif +#endif + +#ifndef SWIG_MSC_UNSUPPRESS_4505 +# if defined(_MSC_VER) +# pragma warning(disable : 4505) /* unreferenced local function has been removed */ +# endif +#endif + +#ifndef SWIGUNUSEDPARM +# ifdef __cplusplus +# define SWIGUNUSEDPARM(p) +# else +# define SWIGUNUSEDPARM(p) p SWIGUNUSED +# endif +#endif + +/* internal SWIG method */ +#ifndef SWIGINTERN +# define SWIGINTERN static SWIGUNUSED +#endif + +/* internal inline SWIG method */ +#ifndef SWIGINTERNINLINE +# define SWIGINTERNINLINE SWIGINTERN SWIGINLINE +#endif + +/* qualifier for exported *const* global data variables*/ +#ifndef SWIGEXTERN +# ifdef __cplusplus +# define SWIGEXTERN extern +# else +# define SWIGEXTERN +# endif +#endif + +/* exporting methods */ +#if defined(__GNUC__) +# if (__GNUC__ >= 4) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) +# ifndef GCC_HASCLASSVISIBILITY +# define GCC_HASCLASSVISIBILITY +# endif +# endif +#endif + +#ifndef SWIGEXPORT +# if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__) +# if defined(STATIC_LINKED) +# define SWIGEXPORT +# else +# define SWIGEXPORT __declspec(dllexport) +# endif +# else +# if defined(__GNUC__) && defined(GCC_HASCLASSVISIBILITY) +# define SWIGEXPORT __attribute__ ((visibility("default"))) +# else +# define SWIGEXPORT +# endif +# endif +#endif + +/* calling conventions for Windows */ +#ifndef SWIGSTDCALL +# if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__) +# define SWIGSTDCALL __stdcall +# else +# define SWIGSTDCALL +# endif +#endif + +/* Deal with Microsoft's attempt at deprecating C standard runtime functions */ +#if !defined(SWIG_NO_CRT_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_CRT_SECURE_NO_DEPRECATE) +# define _CRT_SECURE_NO_DEPRECATE +#endif + +/* Deal with Microsoft's attempt at deprecating methods in the standard C++ library */ +#if !defined(SWIG_NO_SCL_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_SCL_SECURE_NO_DEPRECATE) +# define _SCL_SECURE_NO_DEPRECATE +#endif + +/* Deal with Apple's deprecated 'AssertMacros.h' from Carbon-framework */ +#if defined(__APPLE__) && !defined(__ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES) +# define __ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES 0 +#endif + +/* Intel's compiler complains if a variable which was never initialised is + * cast to void, which is a common idiom which we use to indicate that we + * are aware a variable isn't used. So we just silence that warning. + * See: https://github.com/swig/swig/issues/192 for more discussion. + */ +#ifdef __INTEL_COMPILER +# pragma warning disable 592 +#endif + +/* Errors in SWIG */ +#define SWIG_UnknownError -1 +#define SWIG_IOError -2 +#define SWIG_RuntimeError -3 +#define SWIG_IndexError -4 +#define SWIG_TypeError -5 +#define SWIG_DivisionByZero -6 +#define SWIG_OverflowError -7 +#define SWIG_SyntaxError -8 +#define SWIG_ValueError -9 +#define SWIG_SystemError -10 +#define SWIG_AttributeError -11 +#define SWIG_MemoryError -12 +#define SWIG_NullReferenceError -13 + + + + +#include +#define SWIG_exception_impl(DECL, CODE, MSG, RETURNNULL) \ + { printf("In " DECL ": " MSG); assert(0); RETURNNULL; } + + +#include +#if defined(_MSC_VER) || defined(__BORLANDC__) || defined(_WATCOM) +# ifndef snprintf +# define snprintf _snprintf +# endif +#endif + + +/* Support for the `contract` feature. + * + * Note that RETURNNULL is first because it's inserted via a 'Replaceall' in + * the fortran.cxx file. + */ +#define SWIG_contract_assert(RETURNNULL, EXPR, MSG) \ + if (!(EXPR)) { SWIG_exception_impl("$decl", SWIG_ValueError, MSG, RETURNNULL); } + + +#define SWIGVERSION 0x040000 +#define SWIG_VERSION SWIGVERSION + + +#define SWIG_as_voidptr(a) (void *)((const void *)(a)) +#define SWIG_as_voidptrptr(a) ((void)SWIG_as_voidptr(*a),(void**)(a)) + + +#include "sundials/sundials_linearsolver.h" + + +#include "sunlinsol/sunlinsol_lapackdense.h" + +SWIGEXPORT SUNLinearSolver _wrap_FSUNLinSol_LapackDense(N_Vector farg1, SUNMatrix farg2, void *farg3) { + SUNLinearSolver fresult ; + N_Vector arg1 = (N_Vector) 0 ; + SUNMatrix arg2 = (SUNMatrix) 0 ; + SUNContext arg3 = (SUNContext) 0 ; + SUNLinearSolver result; + + arg1 = (N_Vector)(farg1); + arg2 = (SUNMatrix)(farg2); + arg3 = (SUNContext)(farg3); + result = (SUNLinearSolver)SUNLinSol_LapackDense(arg1,arg2,arg3); + fresult = result; + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNLinSolGetType_LapackDense(SUNLinearSolver farg1) { + int fresult ; + SUNLinearSolver arg1 = (SUNLinearSolver) 0 ; + SUNLinearSolver_Type result; + + arg1 = (SUNLinearSolver)(farg1); + result = (SUNLinearSolver_Type)SUNLinSolGetType_LapackDense(arg1); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNLinSolGetID_LapackDense(SUNLinearSolver farg1) { + int fresult ; + SUNLinearSolver arg1 = (SUNLinearSolver) 0 ; + SUNLinearSolver_ID result; + + arg1 = (SUNLinearSolver)(farg1); + result = (SUNLinearSolver_ID)SUNLinSolGetID_LapackDense(arg1); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNLinSolInitialize_LapackDense(SUNLinearSolver farg1) { + int fresult ; + SUNLinearSolver arg1 = (SUNLinearSolver) 0 ; + SUNErrCode result; + + arg1 = (SUNLinearSolver)(farg1); + result = (SUNErrCode)SUNLinSolInitialize_LapackDense(arg1); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNLinSolSetup_LapackDense(SUNLinearSolver farg1, SUNMatrix farg2) { + int fresult ; + SUNLinearSolver arg1 = (SUNLinearSolver) 0 ; + SUNMatrix arg2 = (SUNMatrix) 0 ; + int result; + + arg1 = (SUNLinearSolver)(farg1); + arg2 = (SUNMatrix)(farg2); + result = (int)SUNLinSolSetup_LapackDense(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNLinSolSolve_LapackDense(SUNLinearSolver farg1, SUNMatrix farg2, N_Vector farg3, N_Vector farg4, double const *farg5) { + int fresult ; + SUNLinearSolver arg1 = (SUNLinearSolver) 0 ; + SUNMatrix arg2 = (SUNMatrix) 0 ; + N_Vector arg3 = (N_Vector) 0 ; + N_Vector arg4 = (N_Vector) 0 ; + sunrealtype arg5 ; + int result; + + arg1 = (SUNLinearSolver)(farg1); + arg2 = (SUNMatrix)(farg2); + arg3 = (N_Vector)(farg3); + arg4 = (N_Vector)(farg4); + arg5 = (sunrealtype)(*farg5); + result = (int)SUNLinSolSolve_LapackDense(arg1,arg2,arg3,arg4,arg5); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int32_t _wrap_FSUNLinSolLastFlag_LapackDense(SUNLinearSolver farg1) { + int32_t fresult ; + SUNLinearSolver arg1 = (SUNLinearSolver) 0 ; + sunindextype result; + + arg1 = (SUNLinearSolver)(farg1); + result = SUNLinSolLastFlag_LapackDense(arg1); + fresult = (sunindextype)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNLinSolSpace_LapackDense(SUNLinearSolver farg1, long *farg2, long *farg3) { + int fresult ; + SUNLinearSolver arg1 = (SUNLinearSolver) 0 ; + long *arg2 = (long *) 0 ; + long *arg3 = (long *) 0 ; + SUNErrCode result; + + arg1 = (SUNLinearSolver)(farg1); + arg2 = (long *)(farg2); + arg3 = (long *)(farg3); + result = (SUNErrCode)SUNLinSolSpace_LapackDense(arg1,arg2,arg3); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNLinSolFree_LapackDense(SUNLinearSolver farg1) { + int fresult ; + SUNLinearSolver arg1 = (SUNLinearSolver) 0 ; + SUNErrCode result; + + arg1 = (SUNLinearSolver)(farg1); + result = (SUNErrCode)SUNLinSolFree_LapackDense(arg1); + fresult = (SUNErrCode)(result); + return fresult; +} + + + diff --git a/src/sunlinsol/lapackdense/fmod_int32/fsunlinsol_lapackdense_mod.f90 b/src/sunlinsol/lapackdense/fmod_int32/fsunlinsol_lapackdense_mod.f90 new file mode 100644 index 0000000000..7d555e8985 --- /dev/null +++ b/src/sunlinsol/lapackdense/fmod_int32/fsunlinsol_lapackdense_mod.f90 @@ -0,0 +1,271 @@ +! This file was automatically generated by SWIG (http://www.swig.org). +! Version 4.0.0 +! +! Do not make changes to this file unless you know what you are doing--modify +! the SWIG interface file instead. + +! --------------------------------------------------------------- +! Programmer(s): Auto-generated by swig. +! --------------------------------------------------------------- +! SUNDIALS Copyright Start +! Copyright (c) 2002-2024, Lawrence Livermore National Security +! and Southern Methodist University. +! All rights reserved. +! +! See the top-level LICENSE and NOTICE files for details. +! +! SPDX-License-Identifier: BSD-3-Clause +! SUNDIALS Copyright End +! --------------------------------------------------------------- + +module fsunlinsol_lapackdense_mod + use, intrinsic :: ISO_C_BINDING + use fsundials_core_mod + implicit none + private + + ! DECLARATION CONSTRUCTS + public :: FSUNLinSol_LapackDense + public :: FSUNLinSolGetType_LapackDense + public :: FSUNLinSolGetID_LapackDense + public :: FSUNLinSolInitialize_LapackDense + public :: FSUNLinSolSetup_LapackDense + public :: FSUNLinSolSolve_LapackDense + public :: FSUNLinSolLastFlag_LapackDense + public :: FSUNLinSolSpace_LapackDense + public :: FSUNLinSolFree_LapackDense + +! WRAPPER DECLARATIONS +interface +function swigc_FSUNLinSol_LapackDense(farg1, farg2, farg3) & +bind(C, name="_wrap_FSUNLinSol_LapackDense") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +type(C_PTR) :: fresult +end function + +function swigc_FSUNLinSolGetType_LapackDense(farg1) & +bind(C, name="_wrap_FSUNLinSolGetType_LapackDense") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT) :: fresult +end function + +function swigc_FSUNLinSolGetID_LapackDense(farg1) & +bind(C, name="_wrap_FSUNLinSolGetID_LapackDense") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT) :: fresult +end function + +function swigc_FSUNLinSolInitialize_LapackDense(farg1) & +bind(C, name="_wrap_FSUNLinSolInitialize_LapackDense") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT) :: fresult +end function + +function swigc_FSUNLinSolSetup_LapackDense(farg1, farg2) & +bind(C, name="_wrap_FSUNLinSolSetup_LapackDense") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FSUNLinSolSolve_LapackDense(farg1, farg2, farg3, farg4, farg5) & +bind(C, name="_wrap_FSUNLinSolSolve_LapackDense") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +type(C_PTR), value :: farg4 +real(C_DOUBLE), intent(in) :: farg5 +integer(C_INT) :: fresult +end function + +function swigc_FSUNLinSolLastFlag_LapackDense(farg1) & +bind(C, name="_wrap_FSUNLinSolLastFlag_LapackDense") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT32_T) :: fresult +end function + +function swigc_FSUNLinSolSpace_LapackDense(farg1, farg2, farg3) & +bind(C, name="_wrap_FSUNLinSolSpace_LapackDense") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FSUNLinSolFree_LapackDense(farg1) & +bind(C, name="_wrap_FSUNLinSolFree_LapackDense") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT) :: fresult +end function + +end interface + + +contains + ! MODULE SUBPROGRAMS +function FSUNLinSol_LapackDense(y, a, sunctx) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +type(SUNLinearSolver), pointer :: swig_result +type(N_Vector), target, intent(inout) :: y +type(SUNMatrix), target, intent(inout) :: a +type(C_PTR) :: sunctx +type(C_PTR) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = c_loc(y) +farg2 = c_loc(a) +farg3 = sunctx +fresult = swigc_FSUNLinSol_LapackDense(farg1, farg2, farg3) +call c_f_pointer(fresult, swig_result) +end function + +function FSUNLinSolGetType_LapackDense(s) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(SUNLinearSolver_Type) :: swig_result +type(SUNLinearSolver), target, intent(inout) :: s +integer(C_INT) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(s) +fresult = swigc_FSUNLinSolGetType_LapackDense(farg1) +swig_result = fresult +end function + +function FSUNLinSolGetID_LapackDense(s) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(SUNLinearSolver_ID) :: swig_result +type(SUNLinearSolver), target, intent(inout) :: s +integer(C_INT) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(s) +fresult = swigc_FSUNLinSolGetID_LapackDense(farg1) +swig_result = fresult +end function + +function FSUNLinSolInitialize_LapackDense(s) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNLinearSolver), target, intent(inout) :: s +integer(C_INT) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(s) +fresult = swigc_FSUNLinSolInitialize_LapackDense(farg1) +swig_result = fresult +end function + +function FSUNLinSolSetup_LapackDense(s, a) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNLinearSolver), target, intent(inout) :: s +type(SUNMatrix), target, intent(inout) :: a +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = c_loc(s) +farg2 = c_loc(a) +fresult = swigc_FSUNLinSolSetup_LapackDense(farg1, farg2) +swig_result = fresult +end function + +function FSUNLinSolSolve_LapackDense(s, a, x, b, tol) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNLinearSolver), target, intent(inout) :: s +type(SUNMatrix), target, intent(inout) :: a +type(N_Vector), target, intent(inout) :: x +type(N_Vector), target, intent(inout) :: b +real(C_DOUBLE), intent(in) :: tol +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 +type(C_PTR) :: farg4 +real(C_DOUBLE) :: farg5 + +farg1 = c_loc(s) +farg2 = c_loc(a) +farg3 = c_loc(x) +farg4 = c_loc(b) +farg5 = tol +fresult = swigc_FSUNLinSolSolve_LapackDense(farg1, farg2, farg3, farg4, farg5) +swig_result = fresult +end function + +function FSUNLinSolLastFlag_LapackDense(s) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT32_T) :: swig_result +type(SUNLinearSolver), target, intent(inout) :: s +integer(C_INT32_T) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(s) +fresult = swigc_FSUNLinSolLastFlag_LapackDense(farg1) +swig_result = fresult +end function + +function FSUNLinSolSpace_LapackDense(s, lenrwls, leniwls) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNLinearSolver), target, intent(inout) :: s +integer(C_LONG), dimension(*), target, intent(inout) :: lenrwls +integer(C_LONG), dimension(*), target, intent(inout) :: leniwls +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = c_loc(s) +farg2 = c_loc(lenrwls(1)) +farg3 = c_loc(leniwls(1)) +fresult = swigc_FSUNLinSolSpace_LapackDense(farg1, farg2, farg3) +swig_result = fresult +end function + +function FSUNLinSolFree_LapackDense(s) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNLinearSolver), target, intent(inout) :: s +integer(C_INT) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(s) +fresult = swigc_FSUNLinSolFree_LapackDense(farg1) +swig_result = fresult +end function + + +end module diff --git a/src/sunlinsol/lapackdense/fmod_int64/CMakeLists.txt b/src/sunlinsol/lapackdense/fmod_int64/CMakeLists.txt new file mode 100644 index 0000000000..12bcb2fae2 --- /dev/null +++ b/src/sunlinsol/lapackdense/fmod_int64/CMakeLists.txt @@ -0,0 +1,33 @@ +# ---------------------------------------------------------------------- +# Programmer(s): Cody J. Balos @ LLNL +# ---------------------------------------------------------------------- +# SUNDIALS Copyright Start +# Copyright (c) 2002-2024, Lawrence Livermore National Security +# and Southern Methodist University. +# All rights reserved. +# +# See the top-level LICENSE and NOTICE files for details. +# +# SPDX-License-Identifier: BSD-3-Clause +# SUNDIALS Copyright End +# ---------------------------------------------------------------------- +# CMakeLists.txt file for the F2003 LAPACK dense SUNLinearSolver +# object library +# ---------------------------------------------------------------------- + +sundials_add_f2003_library(sundials_fsunlinsollapackdense_mod + SOURCES + fsunlinsol_lapackdense_mod.f90 fsunlinsol_lapackdense_mod.c + LINK_LIBRARIES + PUBLIC sundials_fcore_mod + OBJECT_LIBRARIES + LINK_LIBRARIES + PUBLIC sundials_fsunmatrixdense_mod + OUTPUT_NAME + sundials_fsunlinsollapackdense_mod + VERSION + ${sunlinsollib_VERSION} + SOVERSION + ${sunlinsollib_SOVERSION} +) +message(STATUS "Added SUNLINSOL_LAPACKDENSE F2003 interface") diff --git a/src/sunlinsol/lapackdense/fmod/fsunlinsol_lapackdense_mod.c b/src/sunlinsol/lapackdense/fmod_int64/fsunlinsol_lapackdense_mod.c similarity index 100% rename from src/sunlinsol/lapackdense/fmod/fsunlinsol_lapackdense_mod.c rename to src/sunlinsol/lapackdense/fmod_int64/fsunlinsol_lapackdense_mod.c diff --git a/src/sunlinsol/lapackdense/fmod/fsunlinsol_lapackdense_mod.f90 b/src/sunlinsol/lapackdense/fmod_int64/fsunlinsol_lapackdense_mod.f90 similarity index 100% rename from src/sunlinsol/lapackdense/fmod/fsunlinsol_lapackdense_mod.f90 rename to src/sunlinsol/lapackdense/fmod_int64/fsunlinsol_lapackdense_mod.f90 diff --git a/src/sunlinsol/pcg/CMakeLists.txt b/src/sunlinsol/pcg/CMakeLists.txt index ea21ecee47..e8e37003f2 100644 --- a/src/sunlinsol/pcg/CMakeLists.txt +++ b/src/sunlinsol/pcg/CMakeLists.txt @@ -40,5 +40,5 @@ message(STATUS "Added SUNLINSOL_PCG module") # Add F90 module if F2003 interface is enabled if(BUILD_FORTRAN_MODULE_INTERFACE) - add_subdirectory(fmod) + add_subdirectory("fmod_int${SUNDIALS_INDEX_SIZE}") endif() diff --git a/src/sunlinsol/pcg/fmod/CMakeLists.txt b/src/sunlinsol/pcg/fmod_int32/CMakeLists.txt similarity index 100% rename from src/sunlinsol/pcg/fmod/CMakeLists.txt rename to src/sunlinsol/pcg/fmod_int32/CMakeLists.txt diff --git a/src/sunlinsol/pcg/fmod_int32/fsunlinsol_pcg_mod.c b/src/sunlinsol/pcg/fmod_int32/fsunlinsol_pcg_mod.c new file mode 100644 index 0000000000..7653513146 --- /dev/null +++ b/src/sunlinsol/pcg/fmod_int32/fsunlinsol_pcg_mod.c @@ -0,0 +1,467 @@ +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.0 + * + * This file is not intended to be easily readable and contains a number of + * coding conventions designed to improve portability and efficiency. Do not make + * changes to this file unless you know what you are doing--modify the SWIG + * interface file instead. + * ----------------------------------------------------------------------------- */ + +/* --------------------------------------------------------------- + * Programmer(s): Auto-generated by swig. + * --------------------------------------------------------------- + * SUNDIALS Copyright Start + * Copyright (c) 2002-2024, Lawrence Livermore National Security + * and Southern Methodist University. + * All rights reserved. + * + * See the top-level LICENSE and NOTICE files for details. + * + * SPDX-License-Identifier: BSD-3-Clause + * SUNDIALS Copyright End + * -------------------------------------------------------------*/ + +/* ----------------------------------------------------------------------------- + * This section contains generic SWIG labels for method/variable + * declarations/attributes, and other compiler dependent labels. + * ----------------------------------------------------------------------------- */ + +/* template workaround for compilers that cannot correctly implement the C++ standard */ +#ifndef SWIGTEMPLATEDISAMBIGUATOR +# if defined(__SUNPRO_CC) && (__SUNPRO_CC <= 0x560) +# define SWIGTEMPLATEDISAMBIGUATOR template +# elif defined(__HP_aCC) +/* Needed even with `aCC -AA' when `aCC -V' reports HP ANSI C++ B3910B A.03.55 */ +/* If we find a maximum version that requires this, the test would be __HP_aCC <= 35500 for A.03.55 */ +# define SWIGTEMPLATEDISAMBIGUATOR template +# else +# define SWIGTEMPLATEDISAMBIGUATOR +# endif +#endif + +/* inline attribute */ +#ifndef SWIGINLINE +# if defined(__cplusplus) || (defined(__GNUC__) && !defined(__STRICT_ANSI__)) +# define SWIGINLINE inline +# else +# define SWIGINLINE +# endif +#endif + +/* attribute recognised by some compilers to avoid 'unused' warnings */ +#ifndef SWIGUNUSED +# if defined(__GNUC__) +# if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)) +# define SWIGUNUSED __attribute__ ((__unused__)) +# else +# define SWIGUNUSED +# endif +# elif defined(__ICC) +# define SWIGUNUSED __attribute__ ((__unused__)) +# else +# define SWIGUNUSED +# endif +#endif + +#ifndef SWIG_MSC_UNSUPPRESS_4505 +# if defined(_MSC_VER) +# pragma warning(disable : 4505) /* unreferenced local function has been removed */ +# endif +#endif + +#ifndef SWIGUNUSEDPARM +# ifdef __cplusplus +# define SWIGUNUSEDPARM(p) +# else +# define SWIGUNUSEDPARM(p) p SWIGUNUSED +# endif +#endif + +/* internal SWIG method */ +#ifndef SWIGINTERN +# define SWIGINTERN static SWIGUNUSED +#endif + +/* internal inline SWIG method */ +#ifndef SWIGINTERNINLINE +# define SWIGINTERNINLINE SWIGINTERN SWIGINLINE +#endif + +/* qualifier for exported *const* global data variables*/ +#ifndef SWIGEXTERN +# ifdef __cplusplus +# define SWIGEXTERN extern +# else +# define SWIGEXTERN +# endif +#endif + +/* exporting methods */ +#if defined(__GNUC__) +# if (__GNUC__ >= 4) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) +# ifndef GCC_HASCLASSVISIBILITY +# define GCC_HASCLASSVISIBILITY +# endif +# endif +#endif + +#ifndef SWIGEXPORT +# if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__) +# if defined(STATIC_LINKED) +# define SWIGEXPORT +# else +# define SWIGEXPORT __declspec(dllexport) +# endif +# else +# if defined(__GNUC__) && defined(GCC_HASCLASSVISIBILITY) +# define SWIGEXPORT __attribute__ ((visibility("default"))) +# else +# define SWIGEXPORT +# endif +# endif +#endif + +/* calling conventions for Windows */ +#ifndef SWIGSTDCALL +# if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__) +# define SWIGSTDCALL __stdcall +# else +# define SWIGSTDCALL +# endif +#endif + +/* Deal with Microsoft's attempt at deprecating C standard runtime functions */ +#if !defined(SWIG_NO_CRT_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_CRT_SECURE_NO_DEPRECATE) +# define _CRT_SECURE_NO_DEPRECATE +#endif + +/* Deal with Microsoft's attempt at deprecating methods in the standard C++ library */ +#if !defined(SWIG_NO_SCL_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_SCL_SECURE_NO_DEPRECATE) +# define _SCL_SECURE_NO_DEPRECATE +#endif + +/* Deal with Apple's deprecated 'AssertMacros.h' from Carbon-framework */ +#if defined(__APPLE__) && !defined(__ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES) +# define __ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES 0 +#endif + +/* Intel's compiler complains if a variable which was never initialised is + * cast to void, which is a common idiom which we use to indicate that we + * are aware a variable isn't used. So we just silence that warning. + * See: https://github.com/swig/swig/issues/192 for more discussion. + */ +#ifdef __INTEL_COMPILER +# pragma warning disable 592 +#endif + +/* Errors in SWIG */ +#define SWIG_UnknownError -1 +#define SWIG_IOError -2 +#define SWIG_RuntimeError -3 +#define SWIG_IndexError -4 +#define SWIG_TypeError -5 +#define SWIG_DivisionByZero -6 +#define SWIG_OverflowError -7 +#define SWIG_SyntaxError -8 +#define SWIG_ValueError -9 +#define SWIG_SystemError -10 +#define SWIG_AttributeError -11 +#define SWIG_MemoryError -12 +#define SWIG_NullReferenceError -13 + + + + +#include +#define SWIG_exception_impl(DECL, CODE, MSG, RETURNNULL) \ + { printf("In " DECL ": " MSG); assert(0); RETURNNULL; } + + +#include +#if defined(_MSC_VER) || defined(__BORLANDC__) || defined(_WATCOM) +# ifndef snprintf +# define snprintf _snprintf +# endif +#endif + + +/* Support for the `contract` feature. + * + * Note that RETURNNULL is first because it's inserted via a 'Replaceall' in + * the fortran.cxx file. + */ +#define SWIG_contract_assert(RETURNNULL, EXPR, MSG) \ + if (!(EXPR)) { SWIG_exception_impl("$decl", SWIG_ValueError, MSG, RETURNNULL); } + + +#define SWIGVERSION 0x040000 +#define SWIG_VERSION SWIGVERSION + + +#define SWIG_as_voidptr(a) (void *)((const void *)(a)) +#define SWIG_as_voidptrptr(a) ((void)SWIG_as_voidptr(*a),(void**)(a)) + + +#include "sundials/sundials_linearsolver.h" + + +#include "sunlinsol/sunlinsol_pcg.h" + +SWIGEXPORT SUNLinearSolver _wrap_FSUNLinSol_PCG(N_Vector farg1, int const *farg2, int const *farg3, void *farg4) { + SUNLinearSolver fresult ; + N_Vector arg1 = (N_Vector) 0 ; + int arg2 ; + int arg3 ; + SUNContext arg4 = (SUNContext) 0 ; + SUNLinearSolver result; + + arg1 = (N_Vector)(farg1); + arg2 = (int)(*farg2); + arg3 = (int)(*farg3); + arg4 = (SUNContext)(farg4); + result = (SUNLinearSolver)SUNLinSol_PCG(arg1,arg2,arg3,arg4); + fresult = result; + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNLinSol_PCGSetPrecType(SUNLinearSolver farg1, int const *farg2) { + int fresult ; + SUNLinearSolver arg1 = (SUNLinearSolver) 0 ; + int arg2 ; + SUNErrCode result; + + arg1 = (SUNLinearSolver)(farg1); + arg2 = (int)(*farg2); + result = (SUNErrCode)SUNLinSol_PCGSetPrecType(arg1,arg2); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNLinSol_PCGSetMaxl(SUNLinearSolver farg1, int const *farg2) { + int fresult ; + SUNLinearSolver arg1 = (SUNLinearSolver) 0 ; + int arg2 ; + SUNErrCode result; + + arg1 = (SUNLinearSolver)(farg1); + arg2 = (int)(*farg2); + result = (SUNErrCode)SUNLinSol_PCGSetMaxl(arg1,arg2); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNLinSolGetType_PCG(SUNLinearSolver farg1) { + int fresult ; + SUNLinearSolver arg1 = (SUNLinearSolver) 0 ; + SUNLinearSolver_Type result; + + arg1 = (SUNLinearSolver)(farg1); + result = (SUNLinearSolver_Type)SUNLinSolGetType_PCG(arg1); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNLinSolGetID_PCG(SUNLinearSolver farg1) { + int fresult ; + SUNLinearSolver arg1 = (SUNLinearSolver) 0 ; + SUNLinearSolver_ID result; + + arg1 = (SUNLinearSolver)(farg1); + result = (SUNLinearSolver_ID)SUNLinSolGetID_PCG(arg1); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNLinSolInitialize_PCG(SUNLinearSolver farg1) { + int fresult ; + SUNLinearSolver arg1 = (SUNLinearSolver) 0 ; + SUNErrCode result; + + arg1 = (SUNLinearSolver)(farg1); + result = (SUNErrCode)SUNLinSolInitialize_PCG(arg1); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNLinSolSetATimes_PCG(SUNLinearSolver farg1, void *farg2, SUNATimesFn farg3) { + int fresult ; + SUNLinearSolver arg1 = (SUNLinearSolver) 0 ; + void *arg2 = (void *) 0 ; + SUNATimesFn arg3 = (SUNATimesFn) 0 ; + SUNErrCode result; + + arg1 = (SUNLinearSolver)(farg1); + arg2 = (void *)(farg2); + arg3 = (SUNATimesFn)(farg3); + result = (SUNErrCode)SUNLinSolSetATimes_PCG(arg1,arg2,arg3); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNLinSolSetPreconditioner_PCG(SUNLinearSolver farg1, void *farg2, SUNPSetupFn farg3, SUNPSolveFn farg4) { + int fresult ; + SUNLinearSolver arg1 = (SUNLinearSolver) 0 ; + void *arg2 = (void *) 0 ; + SUNPSetupFn arg3 = (SUNPSetupFn) 0 ; + SUNPSolveFn arg4 = (SUNPSolveFn) 0 ; + SUNErrCode result; + + arg1 = (SUNLinearSolver)(farg1); + arg2 = (void *)(farg2); + arg3 = (SUNPSetupFn)(farg3); + arg4 = (SUNPSolveFn)(farg4); + result = (SUNErrCode)SUNLinSolSetPreconditioner_PCG(arg1,arg2,arg3,arg4); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNLinSolSetScalingVectors_PCG(SUNLinearSolver farg1, N_Vector farg2, N_Vector farg3) { + int fresult ; + SUNLinearSolver arg1 = (SUNLinearSolver) 0 ; + N_Vector arg2 = (N_Vector) 0 ; + N_Vector arg3 = (N_Vector) 0 ; + SUNErrCode result; + + arg1 = (SUNLinearSolver)(farg1); + arg2 = (N_Vector)(farg2); + arg3 = (N_Vector)(farg3); + result = (SUNErrCode)SUNLinSolSetScalingVectors_PCG(arg1,arg2,arg3); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNLinSolSetZeroGuess_PCG(SUNLinearSolver farg1, int const *farg2) { + int fresult ; + SUNLinearSolver arg1 = (SUNLinearSolver) 0 ; + int arg2 ; + SUNErrCode result; + + arg1 = (SUNLinearSolver)(farg1); + arg2 = (int)(*farg2); + result = (SUNErrCode)SUNLinSolSetZeroGuess_PCG(arg1,arg2); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNLinSolSetup_PCG(SUNLinearSolver farg1, SUNMatrix farg2) { + int fresult ; + SUNLinearSolver arg1 = (SUNLinearSolver) 0 ; + SUNMatrix arg2 = (SUNMatrix) 0 ; + int result; + + arg1 = (SUNLinearSolver)(farg1); + arg2 = (SUNMatrix)(farg2); + result = (int)SUNLinSolSetup_PCG(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNLinSolSolve_PCG(SUNLinearSolver farg1, SUNMatrix farg2, N_Vector farg3, N_Vector farg4, double const *farg5) { + int fresult ; + SUNLinearSolver arg1 = (SUNLinearSolver) 0 ; + SUNMatrix arg2 = (SUNMatrix) 0 ; + N_Vector arg3 = (N_Vector) 0 ; + N_Vector arg4 = (N_Vector) 0 ; + sunrealtype arg5 ; + int result; + + arg1 = (SUNLinearSolver)(farg1); + arg2 = (SUNMatrix)(farg2); + arg3 = (N_Vector)(farg3); + arg4 = (N_Vector)(farg4); + arg5 = (sunrealtype)(*farg5); + result = (int)SUNLinSolSolve_PCG(arg1,arg2,arg3,arg4,arg5); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNLinSolNumIters_PCG(SUNLinearSolver farg1) { + int fresult ; + SUNLinearSolver arg1 = (SUNLinearSolver) 0 ; + int result; + + arg1 = (SUNLinearSolver)(farg1); + result = (int)SUNLinSolNumIters_PCG(arg1); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT double _wrap_FSUNLinSolResNorm_PCG(SUNLinearSolver farg1) { + double fresult ; + SUNLinearSolver arg1 = (SUNLinearSolver) 0 ; + sunrealtype result; + + arg1 = (SUNLinearSolver)(farg1); + result = (sunrealtype)SUNLinSolResNorm_PCG(arg1); + fresult = (sunrealtype)(result); + return fresult; +} + + +SWIGEXPORT N_Vector _wrap_FSUNLinSolResid_PCG(SUNLinearSolver farg1) { + N_Vector fresult ; + SUNLinearSolver arg1 = (SUNLinearSolver) 0 ; + N_Vector result; + + arg1 = (SUNLinearSolver)(farg1); + result = (N_Vector)SUNLinSolResid_PCG(arg1); + fresult = result; + return fresult; +} + + +SWIGEXPORT int32_t _wrap_FSUNLinSolLastFlag_PCG(SUNLinearSolver farg1) { + int32_t fresult ; + SUNLinearSolver arg1 = (SUNLinearSolver) 0 ; + sunindextype result; + + arg1 = (SUNLinearSolver)(farg1); + result = SUNLinSolLastFlag_PCG(arg1); + fresult = (sunindextype)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNLinSolSpace_PCG(SUNLinearSolver farg1, long *farg2, long *farg3) { + int fresult ; + SUNLinearSolver arg1 = (SUNLinearSolver) 0 ; + long *arg2 = (long *) 0 ; + long *arg3 = (long *) 0 ; + SUNErrCode result; + + arg1 = (SUNLinearSolver)(farg1); + arg2 = (long *)(farg2); + arg3 = (long *)(farg3); + result = (SUNErrCode)SUNLinSolSpace_PCG(arg1,arg2,arg3); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNLinSolFree_PCG(SUNLinearSolver farg1) { + int fresult ; + SUNLinearSolver arg1 = (SUNLinearSolver) 0 ; + SUNErrCode result; + + arg1 = (SUNLinearSolver)(farg1); + result = (SUNErrCode)SUNLinSolFree_PCG(arg1); + fresult = (SUNErrCode)(result); + return fresult; +} + + + diff --git a/src/sunlinsol/pcg/fmod_int32/fsunlinsol_pcg_mod.f90 b/src/sunlinsol/pcg/fmod_int32/fsunlinsol_pcg_mod.f90 new file mode 100644 index 0000000000..e22ce1124b --- /dev/null +++ b/src/sunlinsol/pcg/fmod_int32/fsunlinsol_pcg_mod.f90 @@ -0,0 +1,514 @@ +! This file was automatically generated by SWIG (http://www.swig.org). +! Version 4.0.0 +! +! Do not make changes to this file unless you know what you are doing--modify +! the SWIG interface file instead. + +! --------------------------------------------------------------- +! Programmer(s): Auto-generated by swig. +! --------------------------------------------------------------- +! SUNDIALS Copyright Start +! Copyright (c) 2002-2024, Lawrence Livermore National Security +! and Southern Methodist University. +! All rights reserved. +! +! See the top-level LICENSE and NOTICE files for details. +! +! SPDX-License-Identifier: BSD-3-Clause +! SUNDIALS Copyright End +! --------------------------------------------------------------- + +module fsunlinsol_pcg_mod + use, intrinsic :: ISO_C_BINDING + use fsundials_core_mod + implicit none + private + + ! DECLARATION CONSTRUCTS + integer(C_INT), parameter, public :: SUNPCG_MAXL_DEFAULT = 5_C_INT + public :: FSUNLinSol_PCG + public :: FSUNLinSol_PCGSetPrecType + public :: FSUNLinSol_PCGSetMaxl + public :: FSUNLinSolGetType_PCG + public :: FSUNLinSolGetID_PCG + public :: FSUNLinSolInitialize_PCG + public :: FSUNLinSolSetATimes_PCG + public :: FSUNLinSolSetPreconditioner_PCG + public :: FSUNLinSolSetScalingVectors_PCG + public :: FSUNLinSolSetZeroGuess_PCG + public :: FSUNLinSolSetup_PCG + public :: FSUNLinSolSolve_PCG + public :: FSUNLinSolNumIters_PCG + public :: FSUNLinSolResNorm_PCG + public :: FSUNLinSolResid_PCG + public :: FSUNLinSolLastFlag_PCG + public :: FSUNLinSolSpace_PCG + public :: FSUNLinSolFree_PCG + +! WRAPPER DECLARATIONS +interface +function swigc_FSUNLinSol_PCG(farg1, farg2, farg3, farg4) & +bind(C, name="_wrap_FSUNLinSol_PCG") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT), intent(in) :: farg3 +type(C_PTR), value :: farg4 +type(C_PTR) :: fresult +end function + +function swigc_FSUNLinSol_PCGSetPrecType(farg1, farg2) & +bind(C, name="_wrap_FSUNLinSol_PCGSetPrecType") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FSUNLinSol_PCGSetMaxl(farg1, farg2) & +bind(C, name="_wrap_FSUNLinSol_PCGSetMaxl") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FSUNLinSolGetType_PCG(farg1) & +bind(C, name="_wrap_FSUNLinSolGetType_PCG") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT) :: fresult +end function + +function swigc_FSUNLinSolGetID_PCG(farg1) & +bind(C, name="_wrap_FSUNLinSolGetID_PCG") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT) :: fresult +end function + +function swigc_FSUNLinSolInitialize_PCG(farg1) & +bind(C, name="_wrap_FSUNLinSolInitialize_PCG") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT) :: fresult +end function + +function swigc_FSUNLinSolSetATimes_PCG(farg1, farg2, farg3) & +bind(C, name="_wrap_FSUNLinSolSetATimes_PCG") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_FUNPTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FSUNLinSolSetPreconditioner_PCG(farg1, farg2, farg3, farg4) & +bind(C, name="_wrap_FSUNLinSolSetPreconditioner_PCG") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_FUNPTR), value :: farg3 +type(C_FUNPTR), value :: farg4 +integer(C_INT) :: fresult +end function + +function swigc_FSUNLinSolSetScalingVectors_PCG(farg1, farg2, farg3) & +bind(C, name="_wrap_FSUNLinSolSetScalingVectors_PCG") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FSUNLinSolSetZeroGuess_PCG(farg1, farg2) & +bind(C, name="_wrap_FSUNLinSolSetZeroGuess_PCG") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FSUNLinSolSetup_PCG(farg1, farg2) & +bind(C, name="_wrap_FSUNLinSolSetup_PCG") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FSUNLinSolSolve_PCG(farg1, farg2, farg3, farg4, farg5) & +bind(C, name="_wrap_FSUNLinSolSolve_PCG") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +type(C_PTR), value :: farg4 +real(C_DOUBLE), intent(in) :: farg5 +integer(C_INT) :: fresult +end function + +function swigc_FSUNLinSolNumIters_PCG(farg1) & +bind(C, name="_wrap_FSUNLinSolNumIters_PCG") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT) :: fresult +end function + +function swigc_FSUNLinSolResNorm_PCG(farg1) & +bind(C, name="_wrap_FSUNLinSolResNorm_PCG") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE) :: fresult +end function + +function swigc_FSUNLinSolResid_PCG(farg1) & +bind(C, name="_wrap_FSUNLinSolResid_PCG") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR) :: fresult +end function + +function swigc_FSUNLinSolLastFlag_PCG(farg1) & +bind(C, name="_wrap_FSUNLinSolLastFlag_PCG") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT32_T) :: fresult +end function + +function swigc_FSUNLinSolSpace_PCG(farg1, farg2, farg3) & +bind(C, name="_wrap_FSUNLinSolSpace_PCG") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FSUNLinSolFree_PCG(farg1) & +bind(C, name="_wrap_FSUNLinSolFree_PCG") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT) :: fresult +end function + +end interface + + +contains + ! MODULE SUBPROGRAMS +function FSUNLinSol_PCG(y, pretype, maxl, sunctx) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +type(SUNLinearSolver), pointer :: swig_result +type(N_Vector), target, intent(inout) :: y +integer(C_INT), intent(in) :: pretype +integer(C_INT), intent(in) :: maxl +type(C_PTR) :: sunctx +type(C_PTR) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 +integer(C_INT) :: farg3 +type(C_PTR) :: farg4 + +farg1 = c_loc(y) +farg2 = pretype +farg3 = maxl +farg4 = sunctx +fresult = swigc_FSUNLinSol_PCG(farg1, farg2, farg3, farg4) +call c_f_pointer(fresult, swig_result) +end function + +function FSUNLinSol_PCGSetPrecType(s, pretype) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNLinearSolver), target, intent(inout) :: s +integer(C_INT), intent(in) :: pretype +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = c_loc(s) +farg2 = pretype +fresult = swigc_FSUNLinSol_PCGSetPrecType(farg1, farg2) +swig_result = fresult +end function + +function FSUNLinSol_PCGSetMaxl(s, maxl) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNLinearSolver), target, intent(inout) :: s +integer(C_INT), intent(in) :: maxl +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = c_loc(s) +farg2 = maxl +fresult = swigc_FSUNLinSol_PCGSetMaxl(farg1, farg2) +swig_result = fresult +end function + +function FSUNLinSolGetType_PCG(s) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(SUNLinearSolver_Type) :: swig_result +type(SUNLinearSolver), target, intent(inout) :: s +integer(C_INT) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(s) +fresult = swigc_FSUNLinSolGetType_PCG(farg1) +swig_result = fresult +end function + +function FSUNLinSolGetID_PCG(s) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(SUNLinearSolver_ID) :: swig_result +type(SUNLinearSolver), target, intent(inout) :: s +integer(C_INT) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(s) +fresult = swigc_FSUNLinSolGetID_PCG(farg1) +swig_result = fresult +end function + +function FSUNLinSolInitialize_PCG(s) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNLinearSolver), target, intent(inout) :: s +integer(C_INT) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(s) +fresult = swigc_FSUNLinSolInitialize_PCG(farg1) +swig_result = fresult +end function + +function FSUNLinSolSetATimes_PCG(s, a_data, atimes) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNLinearSolver), target, intent(inout) :: s +type(C_PTR) :: a_data +type(C_FUNPTR), intent(in), value :: atimes +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_FUNPTR) :: farg3 + +farg1 = c_loc(s) +farg2 = a_data +farg3 = atimes +fresult = swigc_FSUNLinSolSetATimes_PCG(farg1, farg2, farg3) +swig_result = fresult +end function + +function FSUNLinSolSetPreconditioner_PCG(s, p_data, pset, psol) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNLinearSolver), target, intent(inout) :: s +type(C_PTR) :: p_data +type(C_FUNPTR), intent(in), value :: pset +type(C_FUNPTR), intent(in), value :: psol +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_FUNPTR) :: farg3 +type(C_FUNPTR) :: farg4 + +farg1 = c_loc(s) +farg2 = p_data +farg3 = pset +farg4 = psol +fresult = swigc_FSUNLinSolSetPreconditioner_PCG(farg1, farg2, farg3, farg4) +swig_result = fresult +end function + +function FSUNLinSolSetScalingVectors_PCG(s, s1, nul) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNLinearSolver), target, intent(inout) :: s +type(N_Vector), target, intent(inout) :: s1 +type(N_Vector), target, intent(inout) :: nul +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = c_loc(s) +farg2 = c_loc(s1) +farg3 = c_loc(nul) +fresult = swigc_FSUNLinSolSetScalingVectors_PCG(farg1, farg2, farg3) +swig_result = fresult +end function + +function FSUNLinSolSetZeroGuess_PCG(s, onoff) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNLinearSolver), target, intent(inout) :: s +integer(C_INT), intent(in) :: onoff +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = c_loc(s) +farg2 = onoff +fresult = swigc_FSUNLinSolSetZeroGuess_PCG(farg1, farg2) +swig_result = fresult +end function + +function FSUNLinSolSetup_PCG(s, nul) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNLinearSolver), target, intent(inout) :: s +type(SUNMatrix), target, intent(inout) :: nul +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = c_loc(s) +farg2 = c_loc(nul) +fresult = swigc_FSUNLinSolSetup_PCG(farg1, farg2) +swig_result = fresult +end function + +function FSUNLinSolSolve_PCG(s, nul, x, b, tol) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNLinearSolver), target, intent(inout) :: s +type(SUNMatrix), target, intent(inout) :: nul +type(N_Vector), target, intent(inout) :: x +type(N_Vector), target, intent(inout) :: b +real(C_DOUBLE), intent(in) :: tol +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 +type(C_PTR) :: farg4 +real(C_DOUBLE) :: farg5 + +farg1 = c_loc(s) +farg2 = c_loc(nul) +farg3 = c_loc(x) +farg4 = c_loc(b) +farg5 = tol +fresult = swigc_FSUNLinSolSolve_PCG(farg1, farg2, farg3, farg4, farg5) +swig_result = fresult +end function + +function FSUNLinSolNumIters_PCG(s) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNLinearSolver), target, intent(inout) :: s +integer(C_INT) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(s) +fresult = swigc_FSUNLinSolNumIters_PCG(farg1) +swig_result = fresult +end function + +function FSUNLinSolResNorm_PCG(s) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE) :: swig_result +type(SUNLinearSolver), target, intent(inout) :: s +real(C_DOUBLE) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(s) +fresult = swigc_FSUNLinSolResNorm_PCG(farg1) +swig_result = fresult +end function + +function FSUNLinSolResid_PCG(s) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +type(N_Vector), pointer :: swig_result +type(SUNLinearSolver), target, intent(inout) :: s +type(C_PTR) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(s) +fresult = swigc_FSUNLinSolResid_PCG(farg1) +call c_f_pointer(fresult, swig_result) +end function + +function FSUNLinSolLastFlag_PCG(s) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT32_T) :: swig_result +type(SUNLinearSolver), target, intent(inout) :: s +integer(C_INT32_T) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(s) +fresult = swigc_FSUNLinSolLastFlag_PCG(farg1) +swig_result = fresult +end function + +function FSUNLinSolSpace_PCG(s, lenrwls, leniwls) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNLinearSolver), target, intent(inout) :: s +integer(C_LONG), dimension(*), target, intent(inout) :: lenrwls +integer(C_LONG), dimension(*), target, intent(inout) :: leniwls +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = c_loc(s) +farg2 = c_loc(lenrwls(1)) +farg3 = c_loc(leniwls(1)) +fresult = swigc_FSUNLinSolSpace_PCG(farg1, farg2, farg3) +swig_result = fresult +end function + +function FSUNLinSolFree_PCG(s) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNLinearSolver), target, intent(inout) :: s +integer(C_INT) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(s) +fresult = swigc_FSUNLinSolFree_PCG(farg1) +swig_result = fresult +end function + + +end module diff --git a/src/sunlinsol/pcg/fmod_int64/CMakeLists.txt b/src/sunlinsol/pcg/fmod_int64/CMakeLists.txt new file mode 100644 index 0000000000..535741e7d6 --- /dev/null +++ b/src/sunlinsol/pcg/fmod_int64/CMakeLists.txt @@ -0,0 +1,31 @@ +# --------------------------------------------------------------- +# Programmer(s): Cody J. Balos @ LLNL +# --------------------------------------------------------------- +# SUNDIALS Copyright Start +# Copyright (c) 2002-2024, Lawrence Livermore National Security +# and Southern Methodist University. +# All rights reserved. +# +# See the top-level LICENSE and NOTICE files for details. +# +# SPDX-License-Identifier: BSD-3-Clause +# SUNDIALS Copyright End +# --------------------------------------------------------------- +# CMakeLists.txt file for the F2003 PCG SUNLinearSolver object library +# --------------------------------------------------------------- + +sundials_add_f2003_library(sundials_fsunlinsolpcg_mod + SOURCES + fsunlinsol_pcg_mod.f90 fsunlinsol_pcg_mod.c + LINK_LIBRARIES + PUBLIC sundials_fcore_mod + OBJECT_LIBRARIES + OUTPUT_NAME + sundials_fsunlinsolpcg_mod + VERSION + ${sunlinsollib_VERSION} + SOVERSION + ${sunlinsollib_SOVERSION} +) + +message(STATUS "Added SUNLINSOL_PCG F2003 interface") diff --git a/src/sunlinsol/pcg/fmod/fsunlinsol_pcg_mod.c b/src/sunlinsol/pcg/fmod_int64/fsunlinsol_pcg_mod.c similarity index 100% rename from src/sunlinsol/pcg/fmod/fsunlinsol_pcg_mod.c rename to src/sunlinsol/pcg/fmod_int64/fsunlinsol_pcg_mod.c diff --git a/src/sunlinsol/pcg/fmod/fsunlinsol_pcg_mod.f90 b/src/sunlinsol/pcg/fmod_int64/fsunlinsol_pcg_mod.f90 similarity index 100% rename from src/sunlinsol/pcg/fmod/fsunlinsol_pcg_mod.f90 rename to src/sunlinsol/pcg/fmod_int64/fsunlinsol_pcg_mod.f90 diff --git a/src/sunlinsol/spbcgs/CMakeLists.txt b/src/sunlinsol/spbcgs/CMakeLists.txt index 6fc0243c0f..331c788606 100644 --- a/src/sunlinsol/spbcgs/CMakeLists.txt +++ b/src/sunlinsol/spbcgs/CMakeLists.txt @@ -40,5 +40,5 @@ message(STATUS "Added SUNLINSOL_SPBCGS module") # Add F90 module if F2003 interface is enabled if(BUILD_FORTRAN_MODULE_INTERFACE) - add_subdirectory(fmod) + add_subdirectory("fmod_int${SUNDIALS_INDEX_SIZE}") endif() diff --git a/src/sunlinsol/spbcgs/fmod/CMakeLists.txt b/src/sunlinsol/spbcgs/fmod_int32/CMakeLists.txt similarity index 100% rename from src/sunlinsol/spbcgs/fmod/CMakeLists.txt rename to src/sunlinsol/spbcgs/fmod_int32/CMakeLists.txt diff --git a/src/sunlinsol/spbcgs/fmod_int32/fsunlinsol_spbcgs_mod.c b/src/sunlinsol/spbcgs/fmod_int32/fsunlinsol_spbcgs_mod.c new file mode 100644 index 0000000000..1ffbd482cc --- /dev/null +++ b/src/sunlinsol/spbcgs/fmod_int32/fsunlinsol_spbcgs_mod.c @@ -0,0 +1,467 @@ +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.0 + * + * This file is not intended to be easily readable and contains a number of + * coding conventions designed to improve portability and efficiency. Do not make + * changes to this file unless you know what you are doing--modify the SWIG + * interface file instead. + * ----------------------------------------------------------------------------- */ + +/* --------------------------------------------------------------- + * Programmer(s): Auto-generated by swig. + * --------------------------------------------------------------- + * SUNDIALS Copyright Start + * Copyright (c) 2002-2024, Lawrence Livermore National Security + * and Southern Methodist University. + * All rights reserved. + * + * See the top-level LICENSE and NOTICE files for details. + * + * SPDX-License-Identifier: BSD-3-Clause + * SUNDIALS Copyright End + * -------------------------------------------------------------*/ + +/* ----------------------------------------------------------------------------- + * This section contains generic SWIG labels for method/variable + * declarations/attributes, and other compiler dependent labels. + * ----------------------------------------------------------------------------- */ + +/* template workaround for compilers that cannot correctly implement the C++ standard */ +#ifndef SWIGTEMPLATEDISAMBIGUATOR +# if defined(__SUNPRO_CC) && (__SUNPRO_CC <= 0x560) +# define SWIGTEMPLATEDISAMBIGUATOR template +# elif defined(__HP_aCC) +/* Needed even with `aCC -AA' when `aCC -V' reports HP ANSI C++ B3910B A.03.55 */ +/* If we find a maximum version that requires this, the test would be __HP_aCC <= 35500 for A.03.55 */ +# define SWIGTEMPLATEDISAMBIGUATOR template +# else +# define SWIGTEMPLATEDISAMBIGUATOR +# endif +#endif + +/* inline attribute */ +#ifndef SWIGINLINE +# if defined(__cplusplus) || (defined(__GNUC__) && !defined(__STRICT_ANSI__)) +# define SWIGINLINE inline +# else +# define SWIGINLINE +# endif +#endif + +/* attribute recognised by some compilers to avoid 'unused' warnings */ +#ifndef SWIGUNUSED +# if defined(__GNUC__) +# if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)) +# define SWIGUNUSED __attribute__ ((__unused__)) +# else +# define SWIGUNUSED +# endif +# elif defined(__ICC) +# define SWIGUNUSED __attribute__ ((__unused__)) +# else +# define SWIGUNUSED +# endif +#endif + +#ifndef SWIG_MSC_UNSUPPRESS_4505 +# if defined(_MSC_VER) +# pragma warning(disable : 4505) /* unreferenced local function has been removed */ +# endif +#endif + +#ifndef SWIGUNUSEDPARM +# ifdef __cplusplus +# define SWIGUNUSEDPARM(p) +# else +# define SWIGUNUSEDPARM(p) p SWIGUNUSED +# endif +#endif + +/* internal SWIG method */ +#ifndef SWIGINTERN +# define SWIGINTERN static SWIGUNUSED +#endif + +/* internal inline SWIG method */ +#ifndef SWIGINTERNINLINE +# define SWIGINTERNINLINE SWIGINTERN SWIGINLINE +#endif + +/* qualifier for exported *const* global data variables*/ +#ifndef SWIGEXTERN +# ifdef __cplusplus +# define SWIGEXTERN extern +# else +# define SWIGEXTERN +# endif +#endif + +/* exporting methods */ +#if defined(__GNUC__) +# if (__GNUC__ >= 4) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) +# ifndef GCC_HASCLASSVISIBILITY +# define GCC_HASCLASSVISIBILITY +# endif +# endif +#endif + +#ifndef SWIGEXPORT +# if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__) +# if defined(STATIC_LINKED) +# define SWIGEXPORT +# else +# define SWIGEXPORT __declspec(dllexport) +# endif +# else +# if defined(__GNUC__) && defined(GCC_HASCLASSVISIBILITY) +# define SWIGEXPORT __attribute__ ((visibility("default"))) +# else +# define SWIGEXPORT +# endif +# endif +#endif + +/* calling conventions for Windows */ +#ifndef SWIGSTDCALL +# if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__) +# define SWIGSTDCALL __stdcall +# else +# define SWIGSTDCALL +# endif +#endif + +/* Deal with Microsoft's attempt at deprecating C standard runtime functions */ +#if !defined(SWIG_NO_CRT_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_CRT_SECURE_NO_DEPRECATE) +# define _CRT_SECURE_NO_DEPRECATE +#endif + +/* Deal with Microsoft's attempt at deprecating methods in the standard C++ library */ +#if !defined(SWIG_NO_SCL_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_SCL_SECURE_NO_DEPRECATE) +# define _SCL_SECURE_NO_DEPRECATE +#endif + +/* Deal with Apple's deprecated 'AssertMacros.h' from Carbon-framework */ +#if defined(__APPLE__) && !defined(__ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES) +# define __ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES 0 +#endif + +/* Intel's compiler complains if a variable which was never initialised is + * cast to void, which is a common idiom which we use to indicate that we + * are aware a variable isn't used. So we just silence that warning. + * See: https://github.com/swig/swig/issues/192 for more discussion. + */ +#ifdef __INTEL_COMPILER +# pragma warning disable 592 +#endif + +/* Errors in SWIG */ +#define SWIG_UnknownError -1 +#define SWIG_IOError -2 +#define SWIG_RuntimeError -3 +#define SWIG_IndexError -4 +#define SWIG_TypeError -5 +#define SWIG_DivisionByZero -6 +#define SWIG_OverflowError -7 +#define SWIG_SyntaxError -8 +#define SWIG_ValueError -9 +#define SWIG_SystemError -10 +#define SWIG_AttributeError -11 +#define SWIG_MemoryError -12 +#define SWIG_NullReferenceError -13 + + + + +#include +#define SWIG_exception_impl(DECL, CODE, MSG, RETURNNULL) \ + { printf("In " DECL ": " MSG); assert(0); RETURNNULL; } + + +#include +#if defined(_MSC_VER) || defined(__BORLANDC__) || defined(_WATCOM) +# ifndef snprintf +# define snprintf _snprintf +# endif +#endif + + +/* Support for the `contract` feature. + * + * Note that RETURNNULL is first because it's inserted via a 'Replaceall' in + * the fortran.cxx file. + */ +#define SWIG_contract_assert(RETURNNULL, EXPR, MSG) \ + if (!(EXPR)) { SWIG_exception_impl("$decl", SWIG_ValueError, MSG, RETURNNULL); } + + +#define SWIGVERSION 0x040000 +#define SWIG_VERSION SWIGVERSION + + +#define SWIG_as_voidptr(a) (void *)((const void *)(a)) +#define SWIG_as_voidptrptr(a) ((void)SWIG_as_voidptr(*a),(void**)(a)) + + +#include "sundials/sundials_linearsolver.h" + + +#include "sunlinsol/sunlinsol_spbcgs.h" + +SWIGEXPORT SUNLinearSolver _wrap_FSUNLinSol_SPBCGS(N_Vector farg1, int const *farg2, int const *farg3, void *farg4) { + SUNLinearSolver fresult ; + N_Vector arg1 = (N_Vector) 0 ; + int arg2 ; + int arg3 ; + SUNContext arg4 = (SUNContext) 0 ; + SUNLinearSolver result; + + arg1 = (N_Vector)(farg1); + arg2 = (int)(*farg2); + arg3 = (int)(*farg3); + arg4 = (SUNContext)(farg4); + result = (SUNLinearSolver)SUNLinSol_SPBCGS(arg1,arg2,arg3,arg4); + fresult = result; + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNLinSol_SPBCGSSetPrecType(SUNLinearSolver farg1, int const *farg2) { + int fresult ; + SUNLinearSolver arg1 = (SUNLinearSolver) 0 ; + int arg2 ; + SUNErrCode result; + + arg1 = (SUNLinearSolver)(farg1); + arg2 = (int)(*farg2); + result = (SUNErrCode)SUNLinSol_SPBCGSSetPrecType(arg1,arg2); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNLinSol_SPBCGSSetMaxl(SUNLinearSolver farg1, int const *farg2) { + int fresult ; + SUNLinearSolver arg1 = (SUNLinearSolver) 0 ; + int arg2 ; + SUNErrCode result; + + arg1 = (SUNLinearSolver)(farg1); + arg2 = (int)(*farg2); + result = (SUNErrCode)SUNLinSol_SPBCGSSetMaxl(arg1,arg2); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNLinSolGetType_SPBCGS(SUNLinearSolver farg1) { + int fresult ; + SUNLinearSolver arg1 = (SUNLinearSolver) 0 ; + SUNLinearSolver_Type result; + + arg1 = (SUNLinearSolver)(farg1); + result = (SUNLinearSolver_Type)SUNLinSolGetType_SPBCGS(arg1); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNLinSolGetID_SPBCGS(SUNLinearSolver farg1) { + int fresult ; + SUNLinearSolver arg1 = (SUNLinearSolver) 0 ; + SUNLinearSolver_ID result; + + arg1 = (SUNLinearSolver)(farg1); + result = (SUNLinearSolver_ID)SUNLinSolGetID_SPBCGS(arg1); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNLinSolInitialize_SPBCGS(SUNLinearSolver farg1) { + int fresult ; + SUNLinearSolver arg1 = (SUNLinearSolver) 0 ; + SUNErrCode result; + + arg1 = (SUNLinearSolver)(farg1); + result = (SUNErrCode)SUNLinSolInitialize_SPBCGS(arg1); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNLinSolSetATimes_SPBCGS(SUNLinearSolver farg1, void *farg2, SUNATimesFn farg3) { + int fresult ; + SUNLinearSolver arg1 = (SUNLinearSolver) 0 ; + void *arg2 = (void *) 0 ; + SUNATimesFn arg3 = (SUNATimesFn) 0 ; + SUNErrCode result; + + arg1 = (SUNLinearSolver)(farg1); + arg2 = (void *)(farg2); + arg3 = (SUNATimesFn)(farg3); + result = (SUNErrCode)SUNLinSolSetATimes_SPBCGS(arg1,arg2,arg3); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNLinSolSetPreconditioner_SPBCGS(SUNLinearSolver farg1, void *farg2, SUNPSetupFn farg3, SUNPSolveFn farg4) { + int fresult ; + SUNLinearSolver arg1 = (SUNLinearSolver) 0 ; + void *arg2 = (void *) 0 ; + SUNPSetupFn arg3 = (SUNPSetupFn) 0 ; + SUNPSolveFn arg4 = (SUNPSolveFn) 0 ; + SUNErrCode result; + + arg1 = (SUNLinearSolver)(farg1); + arg2 = (void *)(farg2); + arg3 = (SUNPSetupFn)(farg3); + arg4 = (SUNPSolveFn)(farg4); + result = (SUNErrCode)SUNLinSolSetPreconditioner_SPBCGS(arg1,arg2,arg3,arg4); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNLinSolSetScalingVectors_SPBCGS(SUNLinearSolver farg1, N_Vector farg2, N_Vector farg3) { + int fresult ; + SUNLinearSolver arg1 = (SUNLinearSolver) 0 ; + N_Vector arg2 = (N_Vector) 0 ; + N_Vector arg3 = (N_Vector) 0 ; + SUNErrCode result; + + arg1 = (SUNLinearSolver)(farg1); + arg2 = (N_Vector)(farg2); + arg3 = (N_Vector)(farg3); + result = (SUNErrCode)SUNLinSolSetScalingVectors_SPBCGS(arg1,arg2,arg3); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNLinSolSetZeroGuess_SPBCGS(SUNLinearSolver farg1, int const *farg2) { + int fresult ; + SUNLinearSolver arg1 = (SUNLinearSolver) 0 ; + int arg2 ; + SUNErrCode result; + + arg1 = (SUNLinearSolver)(farg1); + arg2 = (int)(*farg2); + result = (SUNErrCode)SUNLinSolSetZeroGuess_SPBCGS(arg1,arg2); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNLinSolSetup_SPBCGS(SUNLinearSolver farg1, SUNMatrix farg2) { + int fresult ; + SUNLinearSolver arg1 = (SUNLinearSolver) 0 ; + SUNMatrix arg2 = (SUNMatrix) 0 ; + int result; + + arg1 = (SUNLinearSolver)(farg1); + arg2 = (SUNMatrix)(farg2); + result = (int)SUNLinSolSetup_SPBCGS(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNLinSolSolve_SPBCGS(SUNLinearSolver farg1, SUNMatrix farg2, N_Vector farg3, N_Vector farg4, double const *farg5) { + int fresult ; + SUNLinearSolver arg1 = (SUNLinearSolver) 0 ; + SUNMatrix arg2 = (SUNMatrix) 0 ; + N_Vector arg3 = (N_Vector) 0 ; + N_Vector arg4 = (N_Vector) 0 ; + sunrealtype arg5 ; + int result; + + arg1 = (SUNLinearSolver)(farg1); + arg2 = (SUNMatrix)(farg2); + arg3 = (N_Vector)(farg3); + arg4 = (N_Vector)(farg4); + arg5 = (sunrealtype)(*farg5); + result = (int)SUNLinSolSolve_SPBCGS(arg1,arg2,arg3,arg4,arg5); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNLinSolNumIters_SPBCGS(SUNLinearSolver farg1) { + int fresult ; + SUNLinearSolver arg1 = (SUNLinearSolver) 0 ; + int result; + + arg1 = (SUNLinearSolver)(farg1); + result = (int)SUNLinSolNumIters_SPBCGS(arg1); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT double _wrap_FSUNLinSolResNorm_SPBCGS(SUNLinearSolver farg1) { + double fresult ; + SUNLinearSolver arg1 = (SUNLinearSolver) 0 ; + sunrealtype result; + + arg1 = (SUNLinearSolver)(farg1); + result = (sunrealtype)SUNLinSolResNorm_SPBCGS(arg1); + fresult = (sunrealtype)(result); + return fresult; +} + + +SWIGEXPORT N_Vector _wrap_FSUNLinSolResid_SPBCGS(SUNLinearSolver farg1) { + N_Vector fresult ; + SUNLinearSolver arg1 = (SUNLinearSolver) 0 ; + N_Vector result; + + arg1 = (SUNLinearSolver)(farg1); + result = (N_Vector)SUNLinSolResid_SPBCGS(arg1); + fresult = result; + return fresult; +} + + +SWIGEXPORT int32_t _wrap_FSUNLinSolLastFlag_SPBCGS(SUNLinearSolver farg1) { + int32_t fresult ; + SUNLinearSolver arg1 = (SUNLinearSolver) 0 ; + sunindextype result; + + arg1 = (SUNLinearSolver)(farg1); + result = SUNLinSolLastFlag_SPBCGS(arg1); + fresult = (sunindextype)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNLinSolSpace_SPBCGS(SUNLinearSolver farg1, long *farg2, long *farg3) { + int fresult ; + SUNLinearSolver arg1 = (SUNLinearSolver) 0 ; + long *arg2 = (long *) 0 ; + long *arg3 = (long *) 0 ; + SUNErrCode result; + + arg1 = (SUNLinearSolver)(farg1); + arg2 = (long *)(farg2); + arg3 = (long *)(farg3); + result = (SUNErrCode)SUNLinSolSpace_SPBCGS(arg1,arg2,arg3); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNLinSolFree_SPBCGS(SUNLinearSolver farg1) { + int fresult ; + SUNLinearSolver arg1 = (SUNLinearSolver) 0 ; + SUNErrCode result; + + arg1 = (SUNLinearSolver)(farg1); + result = (SUNErrCode)SUNLinSolFree_SPBCGS(arg1); + fresult = (SUNErrCode)(result); + return fresult; +} + + + diff --git a/src/sunlinsol/spbcgs/fmod_int32/fsunlinsol_spbcgs_mod.f90 b/src/sunlinsol/spbcgs/fmod_int32/fsunlinsol_spbcgs_mod.f90 new file mode 100644 index 0000000000..3c84f21c55 --- /dev/null +++ b/src/sunlinsol/spbcgs/fmod_int32/fsunlinsol_spbcgs_mod.f90 @@ -0,0 +1,514 @@ +! This file was automatically generated by SWIG (http://www.swig.org). +! Version 4.0.0 +! +! Do not make changes to this file unless you know what you are doing--modify +! the SWIG interface file instead. + +! --------------------------------------------------------------- +! Programmer(s): Auto-generated by swig. +! --------------------------------------------------------------- +! SUNDIALS Copyright Start +! Copyright (c) 2002-2024, Lawrence Livermore National Security +! and Southern Methodist University. +! All rights reserved. +! +! See the top-level LICENSE and NOTICE files for details. +! +! SPDX-License-Identifier: BSD-3-Clause +! SUNDIALS Copyright End +! --------------------------------------------------------------- + +module fsunlinsol_spbcgs_mod + use, intrinsic :: ISO_C_BINDING + use fsundials_core_mod + implicit none + private + + ! DECLARATION CONSTRUCTS + integer(C_INT), parameter, public :: SUNSPBCGS_MAXL_DEFAULT = 5_C_INT + public :: FSUNLinSol_SPBCGS + public :: FSUNLinSol_SPBCGSSetPrecType + public :: FSUNLinSol_SPBCGSSetMaxl + public :: FSUNLinSolGetType_SPBCGS + public :: FSUNLinSolGetID_SPBCGS + public :: FSUNLinSolInitialize_SPBCGS + public :: FSUNLinSolSetATimes_SPBCGS + public :: FSUNLinSolSetPreconditioner_SPBCGS + public :: FSUNLinSolSetScalingVectors_SPBCGS + public :: FSUNLinSolSetZeroGuess_SPBCGS + public :: FSUNLinSolSetup_SPBCGS + public :: FSUNLinSolSolve_SPBCGS + public :: FSUNLinSolNumIters_SPBCGS + public :: FSUNLinSolResNorm_SPBCGS + public :: FSUNLinSolResid_SPBCGS + public :: FSUNLinSolLastFlag_SPBCGS + public :: FSUNLinSolSpace_SPBCGS + public :: FSUNLinSolFree_SPBCGS + +! WRAPPER DECLARATIONS +interface +function swigc_FSUNLinSol_SPBCGS(farg1, farg2, farg3, farg4) & +bind(C, name="_wrap_FSUNLinSol_SPBCGS") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT), intent(in) :: farg3 +type(C_PTR), value :: farg4 +type(C_PTR) :: fresult +end function + +function swigc_FSUNLinSol_SPBCGSSetPrecType(farg1, farg2) & +bind(C, name="_wrap_FSUNLinSol_SPBCGSSetPrecType") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FSUNLinSol_SPBCGSSetMaxl(farg1, farg2) & +bind(C, name="_wrap_FSUNLinSol_SPBCGSSetMaxl") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FSUNLinSolGetType_SPBCGS(farg1) & +bind(C, name="_wrap_FSUNLinSolGetType_SPBCGS") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT) :: fresult +end function + +function swigc_FSUNLinSolGetID_SPBCGS(farg1) & +bind(C, name="_wrap_FSUNLinSolGetID_SPBCGS") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT) :: fresult +end function + +function swigc_FSUNLinSolInitialize_SPBCGS(farg1) & +bind(C, name="_wrap_FSUNLinSolInitialize_SPBCGS") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT) :: fresult +end function + +function swigc_FSUNLinSolSetATimes_SPBCGS(farg1, farg2, farg3) & +bind(C, name="_wrap_FSUNLinSolSetATimes_SPBCGS") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_FUNPTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FSUNLinSolSetPreconditioner_SPBCGS(farg1, farg2, farg3, farg4) & +bind(C, name="_wrap_FSUNLinSolSetPreconditioner_SPBCGS") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_FUNPTR), value :: farg3 +type(C_FUNPTR), value :: farg4 +integer(C_INT) :: fresult +end function + +function swigc_FSUNLinSolSetScalingVectors_SPBCGS(farg1, farg2, farg3) & +bind(C, name="_wrap_FSUNLinSolSetScalingVectors_SPBCGS") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FSUNLinSolSetZeroGuess_SPBCGS(farg1, farg2) & +bind(C, name="_wrap_FSUNLinSolSetZeroGuess_SPBCGS") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FSUNLinSolSetup_SPBCGS(farg1, farg2) & +bind(C, name="_wrap_FSUNLinSolSetup_SPBCGS") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FSUNLinSolSolve_SPBCGS(farg1, farg2, farg3, farg4, farg5) & +bind(C, name="_wrap_FSUNLinSolSolve_SPBCGS") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +type(C_PTR), value :: farg4 +real(C_DOUBLE), intent(in) :: farg5 +integer(C_INT) :: fresult +end function + +function swigc_FSUNLinSolNumIters_SPBCGS(farg1) & +bind(C, name="_wrap_FSUNLinSolNumIters_SPBCGS") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT) :: fresult +end function + +function swigc_FSUNLinSolResNorm_SPBCGS(farg1) & +bind(C, name="_wrap_FSUNLinSolResNorm_SPBCGS") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE) :: fresult +end function + +function swigc_FSUNLinSolResid_SPBCGS(farg1) & +bind(C, name="_wrap_FSUNLinSolResid_SPBCGS") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR) :: fresult +end function + +function swigc_FSUNLinSolLastFlag_SPBCGS(farg1) & +bind(C, name="_wrap_FSUNLinSolLastFlag_SPBCGS") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT32_T) :: fresult +end function + +function swigc_FSUNLinSolSpace_SPBCGS(farg1, farg2, farg3) & +bind(C, name="_wrap_FSUNLinSolSpace_SPBCGS") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FSUNLinSolFree_SPBCGS(farg1) & +bind(C, name="_wrap_FSUNLinSolFree_SPBCGS") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT) :: fresult +end function + +end interface + + +contains + ! MODULE SUBPROGRAMS +function FSUNLinSol_SPBCGS(y, pretype, maxl, sunctx) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +type(SUNLinearSolver), pointer :: swig_result +type(N_Vector), target, intent(inout) :: y +integer(C_INT), intent(in) :: pretype +integer(C_INT), intent(in) :: maxl +type(C_PTR) :: sunctx +type(C_PTR) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 +integer(C_INT) :: farg3 +type(C_PTR) :: farg4 + +farg1 = c_loc(y) +farg2 = pretype +farg3 = maxl +farg4 = sunctx +fresult = swigc_FSUNLinSol_SPBCGS(farg1, farg2, farg3, farg4) +call c_f_pointer(fresult, swig_result) +end function + +function FSUNLinSol_SPBCGSSetPrecType(s, pretype) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNLinearSolver), target, intent(inout) :: s +integer(C_INT), intent(in) :: pretype +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = c_loc(s) +farg2 = pretype +fresult = swigc_FSUNLinSol_SPBCGSSetPrecType(farg1, farg2) +swig_result = fresult +end function + +function FSUNLinSol_SPBCGSSetMaxl(s, maxl) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNLinearSolver), target, intent(inout) :: s +integer(C_INT), intent(in) :: maxl +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = c_loc(s) +farg2 = maxl +fresult = swigc_FSUNLinSol_SPBCGSSetMaxl(farg1, farg2) +swig_result = fresult +end function + +function FSUNLinSolGetType_SPBCGS(s) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(SUNLinearSolver_Type) :: swig_result +type(SUNLinearSolver), target, intent(inout) :: s +integer(C_INT) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(s) +fresult = swigc_FSUNLinSolGetType_SPBCGS(farg1) +swig_result = fresult +end function + +function FSUNLinSolGetID_SPBCGS(s) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(SUNLinearSolver_ID) :: swig_result +type(SUNLinearSolver), target, intent(inout) :: s +integer(C_INT) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(s) +fresult = swigc_FSUNLinSolGetID_SPBCGS(farg1) +swig_result = fresult +end function + +function FSUNLinSolInitialize_SPBCGS(s) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNLinearSolver), target, intent(inout) :: s +integer(C_INT) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(s) +fresult = swigc_FSUNLinSolInitialize_SPBCGS(farg1) +swig_result = fresult +end function + +function FSUNLinSolSetATimes_SPBCGS(s, a_data, atimes) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNLinearSolver), target, intent(inout) :: s +type(C_PTR) :: a_data +type(C_FUNPTR), intent(in), value :: atimes +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_FUNPTR) :: farg3 + +farg1 = c_loc(s) +farg2 = a_data +farg3 = atimes +fresult = swigc_FSUNLinSolSetATimes_SPBCGS(farg1, farg2, farg3) +swig_result = fresult +end function + +function FSUNLinSolSetPreconditioner_SPBCGS(s, p_data, pset, psol) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNLinearSolver), target, intent(inout) :: s +type(C_PTR) :: p_data +type(C_FUNPTR), intent(in), value :: pset +type(C_FUNPTR), intent(in), value :: psol +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_FUNPTR) :: farg3 +type(C_FUNPTR) :: farg4 + +farg1 = c_loc(s) +farg2 = p_data +farg3 = pset +farg4 = psol +fresult = swigc_FSUNLinSolSetPreconditioner_SPBCGS(farg1, farg2, farg3, farg4) +swig_result = fresult +end function + +function FSUNLinSolSetScalingVectors_SPBCGS(s, s1, s2) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNLinearSolver), target, intent(inout) :: s +type(N_Vector), target, intent(inout) :: s1 +type(N_Vector), target, intent(inout) :: s2 +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = c_loc(s) +farg2 = c_loc(s1) +farg3 = c_loc(s2) +fresult = swigc_FSUNLinSolSetScalingVectors_SPBCGS(farg1, farg2, farg3) +swig_result = fresult +end function + +function FSUNLinSolSetZeroGuess_SPBCGS(s, onoff) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNLinearSolver), target, intent(inout) :: s +integer(C_INT), intent(in) :: onoff +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = c_loc(s) +farg2 = onoff +fresult = swigc_FSUNLinSolSetZeroGuess_SPBCGS(farg1, farg2) +swig_result = fresult +end function + +function FSUNLinSolSetup_SPBCGS(s, a) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNLinearSolver), target, intent(inout) :: s +type(SUNMatrix), target, intent(inout) :: a +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = c_loc(s) +farg2 = c_loc(a) +fresult = swigc_FSUNLinSolSetup_SPBCGS(farg1, farg2) +swig_result = fresult +end function + +function FSUNLinSolSolve_SPBCGS(s, a, x, b, tol) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNLinearSolver), target, intent(inout) :: s +type(SUNMatrix), target, intent(inout) :: a +type(N_Vector), target, intent(inout) :: x +type(N_Vector), target, intent(inout) :: b +real(C_DOUBLE), intent(in) :: tol +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 +type(C_PTR) :: farg4 +real(C_DOUBLE) :: farg5 + +farg1 = c_loc(s) +farg2 = c_loc(a) +farg3 = c_loc(x) +farg4 = c_loc(b) +farg5 = tol +fresult = swigc_FSUNLinSolSolve_SPBCGS(farg1, farg2, farg3, farg4, farg5) +swig_result = fresult +end function + +function FSUNLinSolNumIters_SPBCGS(s) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNLinearSolver), target, intent(inout) :: s +integer(C_INT) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(s) +fresult = swigc_FSUNLinSolNumIters_SPBCGS(farg1) +swig_result = fresult +end function + +function FSUNLinSolResNorm_SPBCGS(s) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE) :: swig_result +type(SUNLinearSolver), target, intent(inout) :: s +real(C_DOUBLE) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(s) +fresult = swigc_FSUNLinSolResNorm_SPBCGS(farg1) +swig_result = fresult +end function + +function FSUNLinSolResid_SPBCGS(s) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +type(N_Vector), pointer :: swig_result +type(SUNLinearSolver), target, intent(inout) :: s +type(C_PTR) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(s) +fresult = swigc_FSUNLinSolResid_SPBCGS(farg1) +call c_f_pointer(fresult, swig_result) +end function + +function FSUNLinSolLastFlag_SPBCGS(s) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT32_T) :: swig_result +type(SUNLinearSolver), target, intent(inout) :: s +integer(C_INT32_T) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(s) +fresult = swigc_FSUNLinSolLastFlag_SPBCGS(farg1) +swig_result = fresult +end function + +function FSUNLinSolSpace_SPBCGS(s, lenrwls, leniwls) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNLinearSolver), target, intent(inout) :: s +integer(C_LONG), dimension(*), target, intent(inout) :: lenrwls +integer(C_LONG), dimension(*), target, intent(inout) :: leniwls +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = c_loc(s) +farg2 = c_loc(lenrwls(1)) +farg3 = c_loc(leniwls(1)) +fresult = swigc_FSUNLinSolSpace_SPBCGS(farg1, farg2, farg3) +swig_result = fresult +end function + +function FSUNLinSolFree_SPBCGS(s) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNLinearSolver), target, intent(inout) :: s +integer(C_INT) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(s) +fresult = swigc_FSUNLinSolFree_SPBCGS(farg1) +swig_result = fresult +end function + + +end module diff --git a/src/sunlinsol/spbcgs/fmod_int64/CMakeLists.txt b/src/sunlinsol/spbcgs/fmod_int64/CMakeLists.txt new file mode 100644 index 0000000000..d1b588396f --- /dev/null +++ b/src/sunlinsol/spbcgs/fmod_int64/CMakeLists.txt @@ -0,0 +1,31 @@ +# --------------------------------------------------------------- +# Programmer(s): Cody J. Balos @ LLNL +# --------------------------------------------------------------- +# SUNDIALS Copyright Start +# Copyright (c) 2002-2024, Lawrence Livermore National Security +# and Southern Methodist University. +# All rights reserved. +# +# See the top-level LICENSE and NOTICE files for details. +# +# SPDX-License-Identifier: BSD-3-Clause +# SUNDIALS Copyright End +# --------------------------------------------------------------- +# CMakeLists.txt file for the F2003 SPBCGS SUNLinearSolver object library +# --------------------------------------------------------------- + +sundials_add_f2003_library(sundials_fsunlinsolspbcgs_mod + SOURCES + fsunlinsol_spbcgs_mod.f90 fsunlinsol_spbcgs_mod.c + LINK_LIBRARIES + PUBLIC sundials_fcore_mod + OBJECT_LIBRARIES + OUTPUT_NAME + sundials_fsunlinsolspbcgs_mod + VERSION + ${sunlinsollib_VERSION} + SOVERSION + ${sunlinsollib_SOVERSION} +) + +message(STATUS "Added SUNLINSOL_SPBCGS F2003 interface") diff --git a/src/sunlinsol/spbcgs/fmod/fsunlinsol_spbcgs_mod.c b/src/sunlinsol/spbcgs/fmod_int64/fsunlinsol_spbcgs_mod.c similarity index 100% rename from src/sunlinsol/spbcgs/fmod/fsunlinsol_spbcgs_mod.c rename to src/sunlinsol/spbcgs/fmod_int64/fsunlinsol_spbcgs_mod.c diff --git a/src/sunlinsol/spbcgs/fmod/fsunlinsol_spbcgs_mod.f90 b/src/sunlinsol/spbcgs/fmod_int64/fsunlinsol_spbcgs_mod.f90 similarity index 100% rename from src/sunlinsol/spbcgs/fmod/fsunlinsol_spbcgs_mod.f90 rename to src/sunlinsol/spbcgs/fmod_int64/fsunlinsol_spbcgs_mod.f90 diff --git a/src/sunlinsol/spfgmr/CMakeLists.txt b/src/sunlinsol/spfgmr/CMakeLists.txt index 455415b224..38b9d784e9 100644 --- a/src/sunlinsol/spfgmr/CMakeLists.txt +++ b/src/sunlinsol/spfgmr/CMakeLists.txt @@ -39,5 +39,5 @@ message(STATUS "Added SUNLINSOL_SPFGMR module") # Add F90 module if F2003 interface is enabled if(BUILD_FORTRAN_MODULE_INTERFACE) - add_subdirectory(fmod) + add_subdirectory("fmod_int${SUNDIALS_INDEX_SIZE}") endif() diff --git a/src/sunlinsol/spfgmr/fmod/CMakeLists.txt b/src/sunlinsol/spfgmr/fmod_int32/CMakeLists.txt similarity index 100% rename from src/sunlinsol/spfgmr/fmod/CMakeLists.txt rename to src/sunlinsol/spfgmr/fmod_int32/CMakeLists.txt diff --git a/src/sunlinsol/spfgmr/fmod_int32/fsunlinsol_spfgmr_mod.c b/src/sunlinsol/spfgmr/fmod_int32/fsunlinsol_spfgmr_mod.c new file mode 100644 index 0000000000..a83cedc83c --- /dev/null +++ b/src/sunlinsol/spfgmr/fmod_int32/fsunlinsol_spfgmr_mod.c @@ -0,0 +1,481 @@ +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.0 + * + * This file is not intended to be easily readable and contains a number of + * coding conventions designed to improve portability and efficiency. Do not make + * changes to this file unless you know what you are doing--modify the SWIG + * interface file instead. + * ----------------------------------------------------------------------------- */ + +/* --------------------------------------------------------------- + * Programmer(s): Auto-generated by swig. + * --------------------------------------------------------------- + * SUNDIALS Copyright Start + * Copyright (c) 2002-2024, Lawrence Livermore National Security + * and Southern Methodist University. + * All rights reserved. + * + * See the top-level LICENSE and NOTICE files for details. + * + * SPDX-License-Identifier: BSD-3-Clause + * SUNDIALS Copyright End + * -------------------------------------------------------------*/ + +/* ----------------------------------------------------------------------------- + * This section contains generic SWIG labels for method/variable + * declarations/attributes, and other compiler dependent labels. + * ----------------------------------------------------------------------------- */ + +/* template workaround for compilers that cannot correctly implement the C++ standard */ +#ifndef SWIGTEMPLATEDISAMBIGUATOR +# if defined(__SUNPRO_CC) && (__SUNPRO_CC <= 0x560) +# define SWIGTEMPLATEDISAMBIGUATOR template +# elif defined(__HP_aCC) +/* Needed even with `aCC -AA' when `aCC -V' reports HP ANSI C++ B3910B A.03.55 */ +/* If we find a maximum version that requires this, the test would be __HP_aCC <= 35500 for A.03.55 */ +# define SWIGTEMPLATEDISAMBIGUATOR template +# else +# define SWIGTEMPLATEDISAMBIGUATOR +# endif +#endif + +/* inline attribute */ +#ifndef SWIGINLINE +# if defined(__cplusplus) || (defined(__GNUC__) && !defined(__STRICT_ANSI__)) +# define SWIGINLINE inline +# else +# define SWIGINLINE +# endif +#endif + +/* attribute recognised by some compilers to avoid 'unused' warnings */ +#ifndef SWIGUNUSED +# if defined(__GNUC__) +# if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)) +# define SWIGUNUSED __attribute__ ((__unused__)) +# else +# define SWIGUNUSED +# endif +# elif defined(__ICC) +# define SWIGUNUSED __attribute__ ((__unused__)) +# else +# define SWIGUNUSED +# endif +#endif + +#ifndef SWIG_MSC_UNSUPPRESS_4505 +# if defined(_MSC_VER) +# pragma warning(disable : 4505) /* unreferenced local function has been removed */ +# endif +#endif + +#ifndef SWIGUNUSEDPARM +# ifdef __cplusplus +# define SWIGUNUSEDPARM(p) +# else +# define SWIGUNUSEDPARM(p) p SWIGUNUSED +# endif +#endif + +/* internal SWIG method */ +#ifndef SWIGINTERN +# define SWIGINTERN static SWIGUNUSED +#endif + +/* internal inline SWIG method */ +#ifndef SWIGINTERNINLINE +# define SWIGINTERNINLINE SWIGINTERN SWIGINLINE +#endif + +/* qualifier for exported *const* global data variables*/ +#ifndef SWIGEXTERN +# ifdef __cplusplus +# define SWIGEXTERN extern +# else +# define SWIGEXTERN +# endif +#endif + +/* exporting methods */ +#if defined(__GNUC__) +# if (__GNUC__ >= 4) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) +# ifndef GCC_HASCLASSVISIBILITY +# define GCC_HASCLASSVISIBILITY +# endif +# endif +#endif + +#ifndef SWIGEXPORT +# if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__) +# if defined(STATIC_LINKED) +# define SWIGEXPORT +# else +# define SWIGEXPORT __declspec(dllexport) +# endif +# else +# if defined(__GNUC__) && defined(GCC_HASCLASSVISIBILITY) +# define SWIGEXPORT __attribute__ ((visibility("default"))) +# else +# define SWIGEXPORT +# endif +# endif +#endif + +/* calling conventions for Windows */ +#ifndef SWIGSTDCALL +# if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__) +# define SWIGSTDCALL __stdcall +# else +# define SWIGSTDCALL +# endif +#endif + +/* Deal with Microsoft's attempt at deprecating C standard runtime functions */ +#if !defined(SWIG_NO_CRT_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_CRT_SECURE_NO_DEPRECATE) +# define _CRT_SECURE_NO_DEPRECATE +#endif + +/* Deal with Microsoft's attempt at deprecating methods in the standard C++ library */ +#if !defined(SWIG_NO_SCL_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_SCL_SECURE_NO_DEPRECATE) +# define _SCL_SECURE_NO_DEPRECATE +#endif + +/* Deal with Apple's deprecated 'AssertMacros.h' from Carbon-framework */ +#if defined(__APPLE__) && !defined(__ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES) +# define __ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES 0 +#endif + +/* Intel's compiler complains if a variable which was never initialised is + * cast to void, which is a common idiom which we use to indicate that we + * are aware a variable isn't used. So we just silence that warning. + * See: https://github.com/swig/swig/issues/192 for more discussion. + */ +#ifdef __INTEL_COMPILER +# pragma warning disable 592 +#endif + +/* Errors in SWIG */ +#define SWIG_UnknownError -1 +#define SWIG_IOError -2 +#define SWIG_RuntimeError -3 +#define SWIG_IndexError -4 +#define SWIG_TypeError -5 +#define SWIG_DivisionByZero -6 +#define SWIG_OverflowError -7 +#define SWIG_SyntaxError -8 +#define SWIG_ValueError -9 +#define SWIG_SystemError -10 +#define SWIG_AttributeError -11 +#define SWIG_MemoryError -12 +#define SWIG_NullReferenceError -13 + + + + +#include +#define SWIG_exception_impl(DECL, CODE, MSG, RETURNNULL) \ + { printf("In " DECL ": " MSG); assert(0); RETURNNULL; } + + +#include +#if defined(_MSC_VER) || defined(__BORLANDC__) || defined(_WATCOM) +# ifndef snprintf +# define snprintf _snprintf +# endif +#endif + + +/* Support for the `contract` feature. + * + * Note that RETURNNULL is first because it's inserted via a 'Replaceall' in + * the fortran.cxx file. + */ +#define SWIG_contract_assert(RETURNNULL, EXPR, MSG) \ + if (!(EXPR)) { SWIG_exception_impl("$decl", SWIG_ValueError, MSG, RETURNNULL); } + + +#define SWIGVERSION 0x040000 +#define SWIG_VERSION SWIGVERSION + + +#define SWIG_as_voidptr(a) (void *)((const void *)(a)) +#define SWIG_as_voidptrptr(a) ((void)SWIG_as_voidptr(*a),(void**)(a)) + + +#include "sundials/sundials_linearsolver.h" + + +#include "sunlinsol/sunlinsol_spfgmr.h" + +SWIGEXPORT SUNLinearSolver _wrap_FSUNLinSol_SPFGMR(N_Vector farg1, int const *farg2, int const *farg3, void *farg4) { + SUNLinearSolver fresult ; + N_Vector arg1 = (N_Vector) 0 ; + int arg2 ; + int arg3 ; + SUNContext arg4 = (SUNContext) 0 ; + SUNLinearSolver result; + + arg1 = (N_Vector)(farg1); + arg2 = (int)(*farg2); + arg3 = (int)(*farg3); + arg4 = (SUNContext)(farg4); + result = (SUNLinearSolver)SUNLinSol_SPFGMR(arg1,arg2,arg3,arg4); + fresult = result; + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNLinSol_SPFGMRSetPrecType(SUNLinearSolver farg1, int const *farg2) { + int fresult ; + SUNLinearSolver arg1 = (SUNLinearSolver) 0 ; + int arg2 ; + SUNErrCode result; + + arg1 = (SUNLinearSolver)(farg1); + arg2 = (int)(*farg2); + result = (SUNErrCode)SUNLinSol_SPFGMRSetPrecType(arg1,arg2); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNLinSol_SPFGMRSetGSType(SUNLinearSolver farg1, int const *farg2) { + int fresult ; + SUNLinearSolver arg1 = (SUNLinearSolver) 0 ; + int arg2 ; + SUNErrCode result; + + arg1 = (SUNLinearSolver)(farg1); + arg2 = (int)(*farg2); + result = (SUNErrCode)SUNLinSol_SPFGMRSetGSType(arg1,arg2); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNLinSol_SPFGMRSetMaxRestarts(SUNLinearSolver farg1, int const *farg2) { + int fresult ; + SUNLinearSolver arg1 = (SUNLinearSolver) 0 ; + int arg2 ; + SUNErrCode result; + + arg1 = (SUNLinearSolver)(farg1); + arg2 = (int)(*farg2); + result = (SUNErrCode)SUNLinSol_SPFGMRSetMaxRestarts(arg1,arg2); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNLinSolGetType_SPFGMR(SUNLinearSolver farg1) { + int fresult ; + SUNLinearSolver arg1 = (SUNLinearSolver) 0 ; + SUNLinearSolver_Type result; + + arg1 = (SUNLinearSolver)(farg1); + result = (SUNLinearSolver_Type)SUNLinSolGetType_SPFGMR(arg1); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNLinSolGetID_SPFGMR(SUNLinearSolver farg1) { + int fresult ; + SUNLinearSolver arg1 = (SUNLinearSolver) 0 ; + SUNLinearSolver_ID result; + + arg1 = (SUNLinearSolver)(farg1); + result = (SUNLinearSolver_ID)SUNLinSolGetID_SPFGMR(arg1); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNLinSolInitialize_SPFGMR(SUNLinearSolver farg1) { + int fresult ; + SUNLinearSolver arg1 = (SUNLinearSolver) 0 ; + SUNErrCode result; + + arg1 = (SUNLinearSolver)(farg1); + result = (SUNErrCode)SUNLinSolInitialize_SPFGMR(arg1); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNLinSolSetATimes_SPFGMR(SUNLinearSolver farg1, void *farg2, SUNATimesFn farg3) { + int fresult ; + SUNLinearSolver arg1 = (SUNLinearSolver) 0 ; + void *arg2 = (void *) 0 ; + SUNATimesFn arg3 = (SUNATimesFn) 0 ; + SUNErrCode result; + + arg1 = (SUNLinearSolver)(farg1); + arg2 = (void *)(farg2); + arg3 = (SUNATimesFn)(farg3); + result = (SUNErrCode)SUNLinSolSetATimes_SPFGMR(arg1,arg2,arg3); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNLinSolSetPreconditioner_SPFGMR(SUNLinearSolver farg1, void *farg2, SUNPSetupFn farg3, SUNPSolveFn farg4) { + int fresult ; + SUNLinearSolver arg1 = (SUNLinearSolver) 0 ; + void *arg2 = (void *) 0 ; + SUNPSetupFn arg3 = (SUNPSetupFn) 0 ; + SUNPSolveFn arg4 = (SUNPSolveFn) 0 ; + SUNErrCode result; + + arg1 = (SUNLinearSolver)(farg1); + arg2 = (void *)(farg2); + arg3 = (SUNPSetupFn)(farg3); + arg4 = (SUNPSolveFn)(farg4); + result = (SUNErrCode)SUNLinSolSetPreconditioner_SPFGMR(arg1,arg2,arg3,arg4); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNLinSolSetScalingVectors_SPFGMR(SUNLinearSolver farg1, N_Vector farg2, N_Vector farg3) { + int fresult ; + SUNLinearSolver arg1 = (SUNLinearSolver) 0 ; + N_Vector arg2 = (N_Vector) 0 ; + N_Vector arg3 = (N_Vector) 0 ; + SUNErrCode result; + + arg1 = (SUNLinearSolver)(farg1); + arg2 = (N_Vector)(farg2); + arg3 = (N_Vector)(farg3); + result = (SUNErrCode)SUNLinSolSetScalingVectors_SPFGMR(arg1,arg2,arg3); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNLinSolSetZeroGuess_SPFGMR(SUNLinearSolver farg1, int const *farg2) { + int fresult ; + SUNLinearSolver arg1 = (SUNLinearSolver) 0 ; + int arg2 ; + SUNErrCode result; + + arg1 = (SUNLinearSolver)(farg1); + arg2 = (int)(*farg2); + result = (SUNErrCode)SUNLinSolSetZeroGuess_SPFGMR(arg1,arg2); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNLinSolSetup_SPFGMR(SUNLinearSolver farg1, SUNMatrix farg2) { + int fresult ; + SUNLinearSolver arg1 = (SUNLinearSolver) 0 ; + SUNMatrix arg2 = (SUNMatrix) 0 ; + int result; + + arg1 = (SUNLinearSolver)(farg1); + arg2 = (SUNMatrix)(farg2); + result = (int)SUNLinSolSetup_SPFGMR(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNLinSolSolve_SPFGMR(SUNLinearSolver farg1, SUNMatrix farg2, N_Vector farg3, N_Vector farg4, double const *farg5) { + int fresult ; + SUNLinearSolver arg1 = (SUNLinearSolver) 0 ; + SUNMatrix arg2 = (SUNMatrix) 0 ; + N_Vector arg3 = (N_Vector) 0 ; + N_Vector arg4 = (N_Vector) 0 ; + sunrealtype arg5 ; + int result; + + arg1 = (SUNLinearSolver)(farg1); + arg2 = (SUNMatrix)(farg2); + arg3 = (N_Vector)(farg3); + arg4 = (N_Vector)(farg4); + arg5 = (sunrealtype)(*farg5); + result = (int)SUNLinSolSolve_SPFGMR(arg1,arg2,arg3,arg4,arg5); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNLinSolNumIters_SPFGMR(SUNLinearSolver farg1) { + int fresult ; + SUNLinearSolver arg1 = (SUNLinearSolver) 0 ; + int result; + + arg1 = (SUNLinearSolver)(farg1); + result = (int)SUNLinSolNumIters_SPFGMR(arg1); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT double _wrap_FSUNLinSolResNorm_SPFGMR(SUNLinearSolver farg1) { + double fresult ; + SUNLinearSolver arg1 = (SUNLinearSolver) 0 ; + sunrealtype result; + + arg1 = (SUNLinearSolver)(farg1); + result = (sunrealtype)SUNLinSolResNorm_SPFGMR(arg1); + fresult = (sunrealtype)(result); + return fresult; +} + + +SWIGEXPORT N_Vector _wrap_FSUNLinSolResid_SPFGMR(SUNLinearSolver farg1) { + N_Vector fresult ; + SUNLinearSolver arg1 = (SUNLinearSolver) 0 ; + N_Vector result; + + arg1 = (SUNLinearSolver)(farg1); + result = (N_Vector)SUNLinSolResid_SPFGMR(arg1); + fresult = result; + return fresult; +} + + +SWIGEXPORT int32_t _wrap_FSUNLinSolLastFlag_SPFGMR(SUNLinearSolver farg1) { + int32_t fresult ; + SUNLinearSolver arg1 = (SUNLinearSolver) 0 ; + sunindextype result; + + arg1 = (SUNLinearSolver)(farg1); + result = SUNLinSolLastFlag_SPFGMR(arg1); + fresult = (sunindextype)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNLinSolSpace_SPFGMR(SUNLinearSolver farg1, long *farg2, long *farg3) { + int fresult ; + SUNLinearSolver arg1 = (SUNLinearSolver) 0 ; + long *arg2 = (long *) 0 ; + long *arg3 = (long *) 0 ; + SUNErrCode result; + + arg1 = (SUNLinearSolver)(farg1); + arg2 = (long *)(farg2); + arg3 = (long *)(farg3); + result = (SUNErrCode)SUNLinSolSpace_SPFGMR(arg1,arg2,arg3); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNLinSolFree_SPFGMR(SUNLinearSolver farg1) { + int fresult ; + SUNLinearSolver arg1 = (SUNLinearSolver) 0 ; + SUNErrCode result; + + arg1 = (SUNLinearSolver)(farg1); + result = (SUNErrCode)SUNLinSolFree_SPFGMR(arg1); + fresult = (SUNErrCode)(result); + return fresult; +} + + + diff --git a/src/sunlinsol/spfgmr/fmod_int32/fsunlinsol_spfgmr_mod.f90 b/src/sunlinsol/spfgmr/fmod_int32/fsunlinsol_spfgmr_mod.f90 new file mode 100644 index 0000000000..d7167721e2 --- /dev/null +++ b/src/sunlinsol/spfgmr/fmod_int32/fsunlinsol_spfgmr_mod.f90 @@ -0,0 +1,541 @@ +! This file was automatically generated by SWIG (http://www.swig.org). +! Version 4.0.0 +! +! Do not make changes to this file unless you know what you are doing--modify +! the SWIG interface file instead. + +! --------------------------------------------------------------- +! Programmer(s): Auto-generated by swig. +! --------------------------------------------------------------- +! SUNDIALS Copyright Start +! Copyright (c) 2002-2024, Lawrence Livermore National Security +! and Southern Methodist University. +! All rights reserved. +! +! See the top-level LICENSE and NOTICE files for details. +! +! SPDX-License-Identifier: BSD-3-Clause +! SUNDIALS Copyright End +! --------------------------------------------------------------- + +module fsunlinsol_spfgmr_mod + use, intrinsic :: ISO_C_BINDING + use fsundials_core_mod + implicit none + private + + ! DECLARATION CONSTRUCTS + integer(C_INT), parameter, public :: SUNSPFGMR_MAXL_DEFAULT = 5_C_INT + integer(C_INT), parameter, public :: SUNSPFGMR_MAXRS_DEFAULT = 0_C_INT + public :: FSUNLinSol_SPFGMR + public :: FSUNLinSol_SPFGMRSetPrecType + public :: FSUNLinSol_SPFGMRSetGSType + public :: FSUNLinSol_SPFGMRSetMaxRestarts + public :: FSUNLinSolGetType_SPFGMR + public :: FSUNLinSolGetID_SPFGMR + public :: FSUNLinSolInitialize_SPFGMR + public :: FSUNLinSolSetATimes_SPFGMR + public :: FSUNLinSolSetPreconditioner_SPFGMR + public :: FSUNLinSolSetScalingVectors_SPFGMR + public :: FSUNLinSolSetZeroGuess_SPFGMR + public :: FSUNLinSolSetup_SPFGMR + public :: FSUNLinSolSolve_SPFGMR + public :: FSUNLinSolNumIters_SPFGMR + public :: FSUNLinSolResNorm_SPFGMR + public :: FSUNLinSolResid_SPFGMR + public :: FSUNLinSolLastFlag_SPFGMR + public :: FSUNLinSolSpace_SPFGMR + public :: FSUNLinSolFree_SPFGMR + +! WRAPPER DECLARATIONS +interface +function swigc_FSUNLinSol_SPFGMR(farg1, farg2, farg3, farg4) & +bind(C, name="_wrap_FSUNLinSol_SPFGMR") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT), intent(in) :: farg3 +type(C_PTR), value :: farg4 +type(C_PTR) :: fresult +end function + +function swigc_FSUNLinSol_SPFGMRSetPrecType(farg1, farg2) & +bind(C, name="_wrap_FSUNLinSol_SPFGMRSetPrecType") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FSUNLinSol_SPFGMRSetGSType(farg1, farg2) & +bind(C, name="_wrap_FSUNLinSol_SPFGMRSetGSType") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FSUNLinSol_SPFGMRSetMaxRestarts(farg1, farg2) & +bind(C, name="_wrap_FSUNLinSol_SPFGMRSetMaxRestarts") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FSUNLinSolGetType_SPFGMR(farg1) & +bind(C, name="_wrap_FSUNLinSolGetType_SPFGMR") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT) :: fresult +end function + +function swigc_FSUNLinSolGetID_SPFGMR(farg1) & +bind(C, name="_wrap_FSUNLinSolGetID_SPFGMR") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT) :: fresult +end function + +function swigc_FSUNLinSolInitialize_SPFGMR(farg1) & +bind(C, name="_wrap_FSUNLinSolInitialize_SPFGMR") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT) :: fresult +end function + +function swigc_FSUNLinSolSetATimes_SPFGMR(farg1, farg2, farg3) & +bind(C, name="_wrap_FSUNLinSolSetATimes_SPFGMR") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_FUNPTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FSUNLinSolSetPreconditioner_SPFGMR(farg1, farg2, farg3, farg4) & +bind(C, name="_wrap_FSUNLinSolSetPreconditioner_SPFGMR") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_FUNPTR), value :: farg3 +type(C_FUNPTR), value :: farg4 +integer(C_INT) :: fresult +end function + +function swigc_FSUNLinSolSetScalingVectors_SPFGMR(farg1, farg2, farg3) & +bind(C, name="_wrap_FSUNLinSolSetScalingVectors_SPFGMR") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FSUNLinSolSetZeroGuess_SPFGMR(farg1, farg2) & +bind(C, name="_wrap_FSUNLinSolSetZeroGuess_SPFGMR") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FSUNLinSolSetup_SPFGMR(farg1, farg2) & +bind(C, name="_wrap_FSUNLinSolSetup_SPFGMR") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FSUNLinSolSolve_SPFGMR(farg1, farg2, farg3, farg4, farg5) & +bind(C, name="_wrap_FSUNLinSolSolve_SPFGMR") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +type(C_PTR), value :: farg4 +real(C_DOUBLE), intent(in) :: farg5 +integer(C_INT) :: fresult +end function + +function swigc_FSUNLinSolNumIters_SPFGMR(farg1) & +bind(C, name="_wrap_FSUNLinSolNumIters_SPFGMR") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT) :: fresult +end function + +function swigc_FSUNLinSolResNorm_SPFGMR(farg1) & +bind(C, name="_wrap_FSUNLinSolResNorm_SPFGMR") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE) :: fresult +end function + +function swigc_FSUNLinSolResid_SPFGMR(farg1) & +bind(C, name="_wrap_FSUNLinSolResid_SPFGMR") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR) :: fresult +end function + +function swigc_FSUNLinSolLastFlag_SPFGMR(farg1) & +bind(C, name="_wrap_FSUNLinSolLastFlag_SPFGMR") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT32_T) :: fresult +end function + +function swigc_FSUNLinSolSpace_SPFGMR(farg1, farg2, farg3) & +bind(C, name="_wrap_FSUNLinSolSpace_SPFGMR") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FSUNLinSolFree_SPFGMR(farg1) & +bind(C, name="_wrap_FSUNLinSolFree_SPFGMR") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT) :: fresult +end function + +end interface + + +contains + ! MODULE SUBPROGRAMS +function FSUNLinSol_SPFGMR(y, pretype, maxl, sunctx) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +type(SUNLinearSolver), pointer :: swig_result +type(N_Vector), target, intent(inout) :: y +integer(C_INT), intent(in) :: pretype +integer(C_INT), intent(in) :: maxl +type(C_PTR) :: sunctx +type(C_PTR) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 +integer(C_INT) :: farg3 +type(C_PTR) :: farg4 + +farg1 = c_loc(y) +farg2 = pretype +farg3 = maxl +farg4 = sunctx +fresult = swigc_FSUNLinSol_SPFGMR(farg1, farg2, farg3, farg4) +call c_f_pointer(fresult, swig_result) +end function + +function FSUNLinSol_SPFGMRSetPrecType(s, pretype) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNLinearSolver), target, intent(inout) :: s +integer(C_INT), intent(in) :: pretype +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = c_loc(s) +farg2 = pretype +fresult = swigc_FSUNLinSol_SPFGMRSetPrecType(farg1, farg2) +swig_result = fresult +end function + +function FSUNLinSol_SPFGMRSetGSType(s, gstype) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNLinearSolver), target, intent(inout) :: s +integer(C_INT), intent(in) :: gstype +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = c_loc(s) +farg2 = gstype +fresult = swigc_FSUNLinSol_SPFGMRSetGSType(farg1, farg2) +swig_result = fresult +end function + +function FSUNLinSol_SPFGMRSetMaxRestarts(s, maxrs) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNLinearSolver), target, intent(inout) :: s +integer(C_INT), intent(in) :: maxrs +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = c_loc(s) +farg2 = maxrs +fresult = swigc_FSUNLinSol_SPFGMRSetMaxRestarts(farg1, farg2) +swig_result = fresult +end function + +function FSUNLinSolGetType_SPFGMR(s) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(SUNLinearSolver_Type) :: swig_result +type(SUNLinearSolver), target, intent(inout) :: s +integer(C_INT) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(s) +fresult = swigc_FSUNLinSolGetType_SPFGMR(farg1) +swig_result = fresult +end function + +function FSUNLinSolGetID_SPFGMR(s) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(SUNLinearSolver_ID) :: swig_result +type(SUNLinearSolver), target, intent(inout) :: s +integer(C_INT) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(s) +fresult = swigc_FSUNLinSolGetID_SPFGMR(farg1) +swig_result = fresult +end function + +function FSUNLinSolInitialize_SPFGMR(s) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNLinearSolver), target, intent(inout) :: s +integer(C_INT) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(s) +fresult = swigc_FSUNLinSolInitialize_SPFGMR(farg1) +swig_result = fresult +end function + +function FSUNLinSolSetATimes_SPFGMR(s, a_data, atimes) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNLinearSolver), target, intent(inout) :: s +type(C_PTR) :: a_data +type(C_FUNPTR), intent(in), value :: atimes +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_FUNPTR) :: farg3 + +farg1 = c_loc(s) +farg2 = a_data +farg3 = atimes +fresult = swigc_FSUNLinSolSetATimes_SPFGMR(farg1, farg2, farg3) +swig_result = fresult +end function + +function FSUNLinSolSetPreconditioner_SPFGMR(s, p_data, pset, psol) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNLinearSolver), target, intent(inout) :: s +type(C_PTR) :: p_data +type(C_FUNPTR), intent(in), value :: pset +type(C_FUNPTR), intent(in), value :: psol +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_FUNPTR) :: farg3 +type(C_FUNPTR) :: farg4 + +farg1 = c_loc(s) +farg2 = p_data +farg3 = pset +farg4 = psol +fresult = swigc_FSUNLinSolSetPreconditioner_SPFGMR(farg1, farg2, farg3, farg4) +swig_result = fresult +end function + +function FSUNLinSolSetScalingVectors_SPFGMR(s, s1, s2) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNLinearSolver), target, intent(inout) :: s +type(N_Vector), target, intent(inout) :: s1 +type(N_Vector), target, intent(inout) :: s2 +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = c_loc(s) +farg2 = c_loc(s1) +farg3 = c_loc(s2) +fresult = swigc_FSUNLinSolSetScalingVectors_SPFGMR(farg1, farg2, farg3) +swig_result = fresult +end function + +function FSUNLinSolSetZeroGuess_SPFGMR(s, onoff) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNLinearSolver), target, intent(inout) :: s +integer(C_INT), intent(in) :: onoff +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = c_loc(s) +farg2 = onoff +fresult = swigc_FSUNLinSolSetZeroGuess_SPFGMR(farg1, farg2) +swig_result = fresult +end function + +function FSUNLinSolSetup_SPFGMR(s, a) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNLinearSolver), target, intent(inout) :: s +type(SUNMatrix), target, intent(inout) :: a +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = c_loc(s) +farg2 = c_loc(a) +fresult = swigc_FSUNLinSolSetup_SPFGMR(farg1, farg2) +swig_result = fresult +end function + +function FSUNLinSolSolve_SPFGMR(s, a, x, b, tol) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNLinearSolver), target, intent(inout) :: s +type(SUNMatrix), target, intent(inout) :: a +type(N_Vector), target, intent(inout) :: x +type(N_Vector), target, intent(inout) :: b +real(C_DOUBLE), intent(in) :: tol +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 +type(C_PTR) :: farg4 +real(C_DOUBLE) :: farg5 + +farg1 = c_loc(s) +farg2 = c_loc(a) +farg3 = c_loc(x) +farg4 = c_loc(b) +farg5 = tol +fresult = swigc_FSUNLinSolSolve_SPFGMR(farg1, farg2, farg3, farg4, farg5) +swig_result = fresult +end function + +function FSUNLinSolNumIters_SPFGMR(s) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNLinearSolver), target, intent(inout) :: s +integer(C_INT) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(s) +fresult = swigc_FSUNLinSolNumIters_SPFGMR(farg1) +swig_result = fresult +end function + +function FSUNLinSolResNorm_SPFGMR(s) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE) :: swig_result +type(SUNLinearSolver), target, intent(inout) :: s +real(C_DOUBLE) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(s) +fresult = swigc_FSUNLinSolResNorm_SPFGMR(farg1) +swig_result = fresult +end function + +function FSUNLinSolResid_SPFGMR(s) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +type(N_Vector), pointer :: swig_result +type(SUNLinearSolver), target, intent(inout) :: s +type(C_PTR) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(s) +fresult = swigc_FSUNLinSolResid_SPFGMR(farg1) +call c_f_pointer(fresult, swig_result) +end function + +function FSUNLinSolLastFlag_SPFGMR(s) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT32_T) :: swig_result +type(SUNLinearSolver), target, intent(inout) :: s +integer(C_INT32_T) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(s) +fresult = swigc_FSUNLinSolLastFlag_SPFGMR(farg1) +swig_result = fresult +end function + +function FSUNLinSolSpace_SPFGMR(s, lenrwls, leniwls) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNLinearSolver), target, intent(inout) :: s +integer(C_LONG), dimension(*), target, intent(inout) :: lenrwls +integer(C_LONG), dimension(*), target, intent(inout) :: leniwls +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = c_loc(s) +farg2 = c_loc(lenrwls(1)) +farg3 = c_loc(leniwls(1)) +fresult = swigc_FSUNLinSolSpace_SPFGMR(farg1, farg2, farg3) +swig_result = fresult +end function + +function FSUNLinSolFree_SPFGMR(s) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNLinearSolver), target, intent(inout) :: s +integer(C_INT) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(s) +fresult = swigc_FSUNLinSolFree_SPFGMR(farg1) +swig_result = fresult +end function + + +end module diff --git a/src/sunlinsol/spfgmr/fmod_int64/CMakeLists.txt b/src/sunlinsol/spfgmr/fmod_int64/CMakeLists.txt new file mode 100644 index 0000000000..c2cbd50123 --- /dev/null +++ b/src/sunlinsol/spfgmr/fmod_int64/CMakeLists.txt @@ -0,0 +1,31 @@ +# ------------------------------------------------------------------------ +# Programmer(s): Cody J. Balos @ LLNL +# ------------------------------------------------------------------------ +# SUNDIALS Copyright Start +# Copyright (c) 2002-2024, Lawrence Livermore National Security +# and Southern Methodist University. +# All rights reserved. +# +# See the top-level LICENSE and NOTICE files for details. +# +# SPDX-License-Identifier: BSD-3-Clause +# SUNDIALS Copyright End +# ------------------------------------------------------------------------ +# CMakeLists.txt file for the F2003 SPFGMR SUNLinearSolver object library +# ------------------------------------------------------------------------ + +sundials_add_f2003_library(sundials_fsunlinsolspfgmr_mod + SOURCES + fsunlinsol_spfgmr_mod.f90 fsunlinsol_spfgmr_mod.c + LINK_LIBRARIES + PUBLIC sundials_fcore_mod + OBJECT_LIBRARIES + OUTPUT_NAME + sundials_fsunlinsolspfgmr_mod + VERSION + ${sunlinsollib_VERSION} + SOVERSION + ${sunlinsollib_SOVERSION} +) + +message(STATUS "Added SUNLINSOL_SPFGMR F2003 interface") diff --git a/src/sunlinsol/spfgmr/fmod/fsunlinsol_spfgmr_mod.c b/src/sunlinsol/spfgmr/fmod_int64/fsunlinsol_spfgmr_mod.c similarity index 100% rename from src/sunlinsol/spfgmr/fmod/fsunlinsol_spfgmr_mod.c rename to src/sunlinsol/spfgmr/fmod_int64/fsunlinsol_spfgmr_mod.c diff --git a/src/sunlinsol/spfgmr/fmod/fsunlinsol_spfgmr_mod.f90 b/src/sunlinsol/spfgmr/fmod_int64/fsunlinsol_spfgmr_mod.f90 similarity index 100% rename from src/sunlinsol/spfgmr/fmod/fsunlinsol_spfgmr_mod.f90 rename to src/sunlinsol/spfgmr/fmod_int64/fsunlinsol_spfgmr_mod.f90 diff --git a/src/sunlinsol/spgmr/CMakeLists.txt b/src/sunlinsol/spgmr/CMakeLists.txt index 62c7100e86..712f07731a 100644 --- a/src/sunlinsol/spgmr/CMakeLists.txt +++ b/src/sunlinsol/spgmr/CMakeLists.txt @@ -39,5 +39,5 @@ message(STATUS "Added SUNLINSOL_SPGMR module") # Add F90 module if F2003 interface is enabled if(BUILD_FORTRAN_MODULE_INTERFACE) - add_subdirectory(fmod) + add_subdirectory("fmod_int${SUNDIALS_INDEX_SIZE}") endif() diff --git a/src/sunlinsol/spgmr/fmod/CMakeLists.txt b/src/sunlinsol/spgmr/fmod_int32/CMakeLists.txt similarity index 100% rename from src/sunlinsol/spgmr/fmod/CMakeLists.txt rename to src/sunlinsol/spgmr/fmod_int32/CMakeLists.txt diff --git a/src/sunlinsol/spgmr/fmod_int32/fsunlinsol_spgmr_mod.c b/src/sunlinsol/spgmr/fmod_int32/fsunlinsol_spgmr_mod.c new file mode 100644 index 0000000000..c25c8f07ee --- /dev/null +++ b/src/sunlinsol/spgmr/fmod_int32/fsunlinsol_spgmr_mod.c @@ -0,0 +1,481 @@ +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.0 + * + * This file is not intended to be easily readable and contains a number of + * coding conventions designed to improve portability and efficiency. Do not make + * changes to this file unless you know what you are doing--modify the SWIG + * interface file instead. + * ----------------------------------------------------------------------------- */ + +/* --------------------------------------------------------------- + * Programmer(s): Auto-generated by swig. + * --------------------------------------------------------------- + * SUNDIALS Copyright Start + * Copyright (c) 2002-2024, Lawrence Livermore National Security + * and Southern Methodist University. + * All rights reserved. + * + * See the top-level LICENSE and NOTICE files for details. + * + * SPDX-License-Identifier: BSD-3-Clause + * SUNDIALS Copyright End + * -------------------------------------------------------------*/ + +/* ----------------------------------------------------------------------------- + * This section contains generic SWIG labels for method/variable + * declarations/attributes, and other compiler dependent labels. + * ----------------------------------------------------------------------------- */ + +/* template workaround for compilers that cannot correctly implement the C++ standard */ +#ifndef SWIGTEMPLATEDISAMBIGUATOR +# if defined(__SUNPRO_CC) && (__SUNPRO_CC <= 0x560) +# define SWIGTEMPLATEDISAMBIGUATOR template +# elif defined(__HP_aCC) +/* Needed even with `aCC -AA' when `aCC -V' reports HP ANSI C++ B3910B A.03.55 */ +/* If we find a maximum version that requires this, the test would be __HP_aCC <= 35500 for A.03.55 */ +# define SWIGTEMPLATEDISAMBIGUATOR template +# else +# define SWIGTEMPLATEDISAMBIGUATOR +# endif +#endif + +/* inline attribute */ +#ifndef SWIGINLINE +# if defined(__cplusplus) || (defined(__GNUC__) && !defined(__STRICT_ANSI__)) +# define SWIGINLINE inline +# else +# define SWIGINLINE +# endif +#endif + +/* attribute recognised by some compilers to avoid 'unused' warnings */ +#ifndef SWIGUNUSED +# if defined(__GNUC__) +# if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)) +# define SWIGUNUSED __attribute__ ((__unused__)) +# else +# define SWIGUNUSED +# endif +# elif defined(__ICC) +# define SWIGUNUSED __attribute__ ((__unused__)) +# else +# define SWIGUNUSED +# endif +#endif + +#ifndef SWIG_MSC_UNSUPPRESS_4505 +# if defined(_MSC_VER) +# pragma warning(disable : 4505) /* unreferenced local function has been removed */ +# endif +#endif + +#ifndef SWIGUNUSEDPARM +# ifdef __cplusplus +# define SWIGUNUSEDPARM(p) +# else +# define SWIGUNUSEDPARM(p) p SWIGUNUSED +# endif +#endif + +/* internal SWIG method */ +#ifndef SWIGINTERN +# define SWIGINTERN static SWIGUNUSED +#endif + +/* internal inline SWIG method */ +#ifndef SWIGINTERNINLINE +# define SWIGINTERNINLINE SWIGINTERN SWIGINLINE +#endif + +/* qualifier for exported *const* global data variables*/ +#ifndef SWIGEXTERN +# ifdef __cplusplus +# define SWIGEXTERN extern +# else +# define SWIGEXTERN +# endif +#endif + +/* exporting methods */ +#if defined(__GNUC__) +# if (__GNUC__ >= 4) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) +# ifndef GCC_HASCLASSVISIBILITY +# define GCC_HASCLASSVISIBILITY +# endif +# endif +#endif + +#ifndef SWIGEXPORT +# if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__) +# if defined(STATIC_LINKED) +# define SWIGEXPORT +# else +# define SWIGEXPORT __declspec(dllexport) +# endif +# else +# if defined(__GNUC__) && defined(GCC_HASCLASSVISIBILITY) +# define SWIGEXPORT __attribute__ ((visibility("default"))) +# else +# define SWIGEXPORT +# endif +# endif +#endif + +/* calling conventions for Windows */ +#ifndef SWIGSTDCALL +# if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__) +# define SWIGSTDCALL __stdcall +# else +# define SWIGSTDCALL +# endif +#endif + +/* Deal with Microsoft's attempt at deprecating C standard runtime functions */ +#if !defined(SWIG_NO_CRT_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_CRT_SECURE_NO_DEPRECATE) +# define _CRT_SECURE_NO_DEPRECATE +#endif + +/* Deal with Microsoft's attempt at deprecating methods in the standard C++ library */ +#if !defined(SWIG_NO_SCL_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_SCL_SECURE_NO_DEPRECATE) +# define _SCL_SECURE_NO_DEPRECATE +#endif + +/* Deal with Apple's deprecated 'AssertMacros.h' from Carbon-framework */ +#if defined(__APPLE__) && !defined(__ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES) +# define __ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES 0 +#endif + +/* Intel's compiler complains if a variable which was never initialised is + * cast to void, which is a common idiom which we use to indicate that we + * are aware a variable isn't used. So we just silence that warning. + * See: https://github.com/swig/swig/issues/192 for more discussion. + */ +#ifdef __INTEL_COMPILER +# pragma warning disable 592 +#endif + +/* Errors in SWIG */ +#define SWIG_UnknownError -1 +#define SWIG_IOError -2 +#define SWIG_RuntimeError -3 +#define SWIG_IndexError -4 +#define SWIG_TypeError -5 +#define SWIG_DivisionByZero -6 +#define SWIG_OverflowError -7 +#define SWIG_SyntaxError -8 +#define SWIG_ValueError -9 +#define SWIG_SystemError -10 +#define SWIG_AttributeError -11 +#define SWIG_MemoryError -12 +#define SWIG_NullReferenceError -13 + + + + +#include +#define SWIG_exception_impl(DECL, CODE, MSG, RETURNNULL) \ + { printf("In " DECL ": " MSG); assert(0); RETURNNULL; } + + +#include +#if defined(_MSC_VER) || defined(__BORLANDC__) || defined(_WATCOM) +# ifndef snprintf +# define snprintf _snprintf +# endif +#endif + + +/* Support for the `contract` feature. + * + * Note that RETURNNULL is first because it's inserted via a 'Replaceall' in + * the fortran.cxx file. + */ +#define SWIG_contract_assert(RETURNNULL, EXPR, MSG) \ + if (!(EXPR)) { SWIG_exception_impl("$decl", SWIG_ValueError, MSG, RETURNNULL); } + + +#define SWIGVERSION 0x040000 +#define SWIG_VERSION SWIGVERSION + + +#define SWIG_as_voidptr(a) (void *)((const void *)(a)) +#define SWIG_as_voidptrptr(a) ((void)SWIG_as_voidptr(*a),(void**)(a)) + + +#include "sundials/sundials_linearsolver.h" + + +#include "sunlinsol/sunlinsol_spgmr.h" + +SWIGEXPORT SUNLinearSolver _wrap_FSUNLinSol_SPGMR(N_Vector farg1, int const *farg2, int const *farg3, void *farg4) { + SUNLinearSolver fresult ; + N_Vector arg1 = (N_Vector) 0 ; + int arg2 ; + int arg3 ; + SUNContext arg4 = (SUNContext) 0 ; + SUNLinearSolver result; + + arg1 = (N_Vector)(farg1); + arg2 = (int)(*farg2); + arg3 = (int)(*farg3); + arg4 = (SUNContext)(farg4); + result = (SUNLinearSolver)SUNLinSol_SPGMR(arg1,arg2,arg3,arg4); + fresult = result; + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNLinSol_SPGMRSetPrecType(SUNLinearSolver farg1, int const *farg2) { + int fresult ; + SUNLinearSolver arg1 = (SUNLinearSolver) 0 ; + int arg2 ; + SUNErrCode result; + + arg1 = (SUNLinearSolver)(farg1); + arg2 = (int)(*farg2); + result = (SUNErrCode)SUNLinSol_SPGMRSetPrecType(arg1,arg2); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNLinSol_SPGMRSetGSType(SUNLinearSolver farg1, int const *farg2) { + int fresult ; + SUNLinearSolver arg1 = (SUNLinearSolver) 0 ; + int arg2 ; + SUNErrCode result; + + arg1 = (SUNLinearSolver)(farg1); + arg2 = (int)(*farg2); + result = (SUNErrCode)SUNLinSol_SPGMRSetGSType(arg1,arg2); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNLinSol_SPGMRSetMaxRestarts(SUNLinearSolver farg1, int const *farg2) { + int fresult ; + SUNLinearSolver arg1 = (SUNLinearSolver) 0 ; + int arg2 ; + SUNErrCode result; + + arg1 = (SUNLinearSolver)(farg1); + arg2 = (int)(*farg2); + result = (SUNErrCode)SUNLinSol_SPGMRSetMaxRestarts(arg1,arg2); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNLinSolGetType_SPGMR(SUNLinearSolver farg1) { + int fresult ; + SUNLinearSolver arg1 = (SUNLinearSolver) 0 ; + SUNLinearSolver_Type result; + + arg1 = (SUNLinearSolver)(farg1); + result = (SUNLinearSolver_Type)SUNLinSolGetType_SPGMR(arg1); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNLinSolGetID_SPGMR(SUNLinearSolver farg1) { + int fresult ; + SUNLinearSolver arg1 = (SUNLinearSolver) 0 ; + SUNLinearSolver_ID result; + + arg1 = (SUNLinearSolver)(farg1); + result = (SUNLinearSolver_ID)SUNLinSolGetID_SPGMR(arg1); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNLinSolInitialize_SPGMR(SUNLinearSolver farg1) { + int fresult ; + SUNLinearSolver arg1 = (SUNLinearSolver) 0 ; + SUNErrCode result; + + arg1 = (SUNLinearSolver)(farg1); + result = (SUNErrCode)SUNLinSolInitialize_SPGMR(arg1); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNLinSolSetATimes_SPGMR(SUNLinearSolver farg1, void *farg2, SUNATimesFn farg3) { + int fresult ; + SUNLinearSolver arg1 = (SUNLinearSolver) 0 ; + void *arg2 = (void *) 0 ; + SUNATimesFn arg3 = (SUNATimesFn) 0 ; + SUNErrCode result; + + arg1 = (SUNLinearSolver)(farg1); + arg2 = (void *)(farg2); + arg3 = (SUNATimesFn)(farg3); + result = (SUNErrCode)SUNLinSolSetATimes_SPGMR(arg1,arg2,arg3); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNLinSolSetPreconditioner_SPGMR(SUNLinearSolver farg1, void *farg2, SUNPSetupFn farg3, SUNPSolveFn farg4) { + int fresult ; + SUNLinearSolver arg1 = (SUNLinearSolver) 0 ; + void *arg2 = (void *) 0 ; + SUNPSetupFn arg3 = (SUNPSetupFn) 0 ; + SUNPSolveFn arg4 = (SUNPSolveFn) 0 ; + SUNErrCode result; + + arg1 = (SUNLinearSolver)(farg1); + arg2 = (void *)(farg2); + arg3 = (SUNPSetupFn)(farg3); + arg4 = (SUNPSolveFn)(farg4); + result = (SUNErrCode)SUNLinSolSetPreconditioner_SPGMR(arg1,arg2,arg3,arg4); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNLinSolSetScalingVectors_SPGMR(SUNLinearSolver farg1, N_Vector farg2, N_Vector farg3) { + int fresult ; + SUNLinearSolver arg1 = (SUNLinearSolver) 0 ; + N_Vector arg2 = (N_Vector) 0 ; + N_Vector arg3 = (N_Vector) 0 ; + SUNErrCode result; + + arg1 = (SUNLinearSolver)(farg1); + arg2 = (N_Vector)(farg2); + arg3 = (N_Vector)(farg3); + result = (SUNErrCode)SUNLinSolSetScalingVectors_SPGMR(arg1,arg2,arg3); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNLinSolSetZeroGuess_SPGMR(SUNLinearSolver farg1, int const *farg2) { + int fresult ; + SUNLinearSolver arg1 = (SUNLinearSolver) 0 ; + int arg2 ; + SUNErrCode result; + + arg1 = (SUNLinearSolver)(farg1); + arg2 = (int)(*farg2); + result = (SUNErrCode)SUNLinSolSetZeroGuess_SPGMR(arg1,arg2); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNLinSolSetup_SPGMR(SUNLinearSolver farg1, SUNMatrix farg2) { + int fresult ; + SUNLinearSolver arg1 = (SUNLinearSolver) 0 ; + SUNMatrix arg2 = (SUNMatrix) 0 ; + int result; + + arg1 = (SUNLinearSolver)(farg1); + arg2 = (SUNMatrix)(farg2); + result = (int)SUNLinSolSetup_SPGMR(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNLinSolSolve_SPGMR(SUNLinearSolver farg1, SUNMatrix farg2, N_Vector farg3, N_Vector farg4, double const *farg5) { + int fresult ; + SUNLinearSolver arg1 = (SUNLinearSolver) 0 ; + SUNMatrix arg2 = (SUNMatrix) 0 ; + N_Vector arg3 = (N_Vector) 0 ; + N_Vector arg4 = (N_Vector) 0 ; + sunrealtype arg5 ; + int result; + + arg1 = (SUNLinearSolver)(farg1); + arg2 = (SUNMatrix)(farg2); + arg3 = (N_Vector)(farg3); + arg4 = (N_Vector)(farg4); + arg5 = (sunrealtype)(*farg5); + result = (int)SUNLinSolSolve_SPGMR(arg1,arg2,arg3,arg4,arg5); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNLinSolNumIters_SPGMR(SUNLinearSolver farg1) { + int fresult ; + SUNLinearSolver arg1 = (SUNLinearSolver) 0 ; + int result; + + arg1 = (SUNLinearSolver)(farg1); + result = (int)SUNLinSolNumIters_SPGMR(arg1); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT double _wrap_FSUNLinSolResNorm_SPGMR(SUNLinearSolver farg1) { + double fresult ; + SUNLinearSolver arg1 = (SUNLinearSolver) 0 ; + sunrealtype result; + + arg1 = (SUNLinearSolver)(farg1); + result = (sunrealtype)SUNLinSolResNorm_SPGMR(arg1); + fresult = (sunrealtype)(result); + return fresult; +} + + +SWIGEXPORT N_Vector _wrap_FSUNLinSolResid_SPGMR(SUNLinearSolver farg1) { + N_Vector fresult ; + SUNLinearSolver arg1 = (SUNLinearSolver) 0 ; + N_Vector result; + + arg1 = (SUNLinearSolver)(farg1); + result = (N_Vector)SUNLinSolResid_SPGMR(arg1); + fresult = result; + return fresult; +} + + +SWIGEXPORT int32_t _wrap_FSUNLinSolLastFlag_SPGMR(SUNLinearSolver farg1) { + int32_t fresult ; + SUNLinearSolver arg1 = (SUNLinearSolver) 0 ; + sunindextype result; + + arg1 = (SUNLinearSolver)(farg1); + result = SUNLinSolLastFlag_SPGMR(arg1); + fresult = (sunindextype)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNLinSolSpace_SPGMR(SUNLinearSolver farg1, long *farg2, long *farg3) { + int fresult ; + SUNLinearSolver arg1 = (SUNLinearSolver) 0 ; + long *arg2 = (long *) 0 ; + long *arg3 = (long *) 0 ; + SUNErrCode result; + + arg1 = (SUNLinearSolver)(farg1); + arg2 = (long *)(farg2); + arg3 = (long *)(farg3); + result = (SUNErrCode)SUNLinSolSpace_SPGMR(arg1,arg2,arg3); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNLinSolFree_SPGMR(SUNLinearSolver farg1) { + int fresult ; + SUNLinearSolver arg1 = (SUNLinearSolver) 0 ; + SUNErrCode result; + + arg1 = (SUNLinearSolver)(farg1); + result = (SUNErrCode)SUNLinSolFree_SPGMR(arg1); + fresult = (SUNErrCode)(result); + return fresult; +} + + + diff --git a/src/sunlinsol/spgmr/fmod_int32/fsunlinsol_spgmr_mod.f90 b/src/sunlinsol/spgmr/fmod_int32/fsunlinsol_spgmr_mod.f90 new file mode 100644 index 0000000000..142c9328a7 --- /dev/null +++ b/src/sunlinsol/spgmr/fmod_int32/fsunlinsol_spgmr_mod.f90 @@ -0,0 +1,541 @@ +! This file was automatically generated by SWIG (http://www.swig.org). +! Version 4.0.0 +! +! Do not make changes to this file unless you know what you are doing--modify +! the SWIG interface file instead. + +! --------------------------------------------------------------- +! Programmer(s): Auto-generated by swig. +! --------------------------------------------------------------- +! SUNDIALS Copyright Start +! Copyright (c) 2002-2024, Lawrence Livermore National Security +! and Southern Methodist University. +! All rights reserved. +! +! See the top-level LICENSE and NOTICE files for details. +! +! SPDX-License-Identifier: BSD-3-Clause +! SUNDIALS Copyright End +! --------------------------------------------------------------- + +module fsunlinsol_spgmr_mod + use, intrinsic :: ISO_C_BINDING + use fsundials_core_mod + implicit none + private + + ! DECLARATION CONSTRUCTS + integer(C_INT), parameter, public :: SUNSPGMR_MAXL_DEFAULT = 5_C_INT + integer(C_INT), parameter, public :: SUNSPGMR_MAXRS_DEFAULT = 0_C_INT + public :: FSUNLinSol_SPGMR + public :: FSUNLinSol_SPGMRSetPrecType + public :: FSUNLinSol_SPGMRSetGSType + public :: FSUNLinSol_SPGMRSetMaxRestarts + public :: FSUNLinSolGetType_SPGMR + public :: FSUNLinSolGetID_SPGMR + public :: FSUNLinSolInitialize_SPGMR + public :: FSUNLinSolSetATimes_SPGMR + public :: FSUNLinSolSetPreconditioner_SPGMR + public :: FSUNLinSolSetScalingVectors_SPGMR + public :: FSUNLinSolSetZeroGuess_SPGMR + public :: FSUNLinSolSetup_SPGMR + public :: FSUNLinSolSolve_SPGMR + public :: FSUNLinSolNumIters_SPGMR + public :: FSUNLinSolResNorm_SPGMR + public :: FSUNLinSolResid_SPGMR + public :: FSUNLinSolLastFlag_SPGMR + public :: FSUNLinSolSpace_SPGMR + public :: FSUNLinSolFree_SPGMR + +! WRAPPER DECLARATIONS +interface +function swigc_FSUNLinSol_SPGMR(farg1, farg2, farg3, farg4) & +bind(C, name="_wrap_FSUNLinSol_SPGMR") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT), intent(in) :: farg3 +type(C_PTR), value :: farg4 +type(C_PTR) :: fresult +end function + +function swigc_FSUNLinSol_SPGMRSetPrecType(farg1, farg2) & +bind(C, name="_wrap_FSUNLinSol_SPGMRSetPrecType") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FSUNLinSol_SPGMRSetGSType(farg1, farg2) & +bind(C, name="_wrap_FSUNLinSol_SPGMRSetGSType") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FSUNLinSol_SPGMRSetMaxRestarts(farg1, farg2) & +bind(C, name="_wrap_FSUNLinSol_SPGMRSetMaxRestarts") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FSUNLinSolGetType_SPGMR(farg1) & +bind(C, name="_wrap_FSUNLinSolGetType_SPGMR") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT) :: fresult +end function + +function swigc_FSUNLinSolGetID_SPGMR(farg1) & +bind(C, name="_wrap_FSUNLinSolGetID_SPGMR") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT) :: fresult +end function + +function swigc_FSUNLinSolInitialize_SPGMR(farg1) & +bind(C, name="_wrap_FSUNLinSolInitialize_SPGMR") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT) :: fresult +end function + +function swigc_FSUNLinSolSetATimes_SPGMR(farg1, farg2, farg3) & +bind(C, name="_wrap_FSUNLinSolSetATimes_SPGMR") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_FUNPTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FSUNLinSolSetPreconditioner_SPGMR(farg1, farg2, farg3, farg4) & +bind(C, name="_wrap_FSUNLinSolSetPreconditioner_SPGMR") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_FUNPTR), value :: farg3 +type(C_FUNPTR), value :: farg4 +integer(C_INT) :: fresult +end function + +function swigc_FSUNLinSolSetScalingVectors_SPGMR(farg1, farg2, farg3) & +bind(C, name="_wrap_FSUNLinSolSetScalingVectors_SPGMR") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FSUNLinSolSetZeroGuess_SPGMR(farg1, farg2) & +bind(C, name="_wrap_FSUNLinSolSetZeroGuess_SPGMR") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FSUNLinSolSetup_SPGMR(farg1, farg2) & +bind(C, name="_wrap_FSUNLinSolSetup_SPGMR") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FSUNLinSolSolve_SPGMR(farg1, farg2, farg3, farg4, farg5) & +bind(C, name="_wrap_FSUNLinSolSolve_SPGMR") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +type(C_PTR), value :: farg4 +real(C_DOUBLE), intent(in) :: farg5 +integer(C_INT) :: fresult +end function + +function swigc_FSUNLinSolNumIters_SPGMR(farg1) & +bind(C, name="_wrap_FSUNLinSolNumIters_SPGMR") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT) :: fresult +end function + +function swigc_FSUNLinSolResNorm_SPGMR(farg1) & +bind(C, name="_wrap_FSUNLinSolResNorm_SPGMR") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE) :: fresult +end function + +function swigc_FSUNLinSolResid_SPGMR(farg1) & +bind(C, name="_wrap_FSUNLinSolResid_SPGMR") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR) :: fresult +end function + +function swigc_FSUNLinSolLastFlag_SPGMR(farg1) & +bind(C, name="_wrap_FSUNLinSolLastFlag_SPGMR") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT32_T) :: fresult +end function + +function swigc_FSUNLinSolSpace_SPGMR(farg1, farg2, farg3) & +bind(C, name="_wrap_FSUNLinSolSpace_SPGMR") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FSUNLinSolFree_SPGMR(farg1) & +bind(C, name="_wrap_FSUNLinSolFree_SPGMR") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT) :: fresult +end function + +end interface + + +contains + ! MODULE SUBPROGRAMS +function FSUNLinSol_SPGMR(y, pretype, maxl, sunctx) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +type(SUNLinearSolver), pointer :: swig_result +type(N_Vector), target, intent(inout) :: y +integer(C_INT), intent(in) :: pretype +integer(C_INT), intent(in) :: maxl +type(C_PTR) :: sunctx +type(C_PTR) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 +integer(C_INT) :: farg3 +type(C_PTR) :: farg4 + +farg1 = c_loc(y) +farg2 = pretype +farg3 = maxl +farg4 = sunctx +fresult = swigc_FSUNLinSol_SPGMR(farg1, farg2, farg3, farg4) +call c_f_pointer(fresult, swig_result) +end function + +function FSUNLinSol_SPGMRSetPrecType(s, pretype) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNLinearSolver), target, intent(inout) :: s +integer(C_INT), intent(in) :: pretype +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = c_loc(s) +farg2 = pretype +fresult = swigc_FSUNLinSol_SPGMRSetPrecType(farg1, farg2) +swig_result = fresult +end function + +function FSUNLinSol_SPGMRSetGSType(s, gstype) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNLinearSolver), target, intent(inout) :: s +integer(C_INT), intent(in) :: gstype +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = c_loc(s) +farg2 = gstype +fresult = swigc_FSUNLinSol_SPGMRSetGSType(farg1, farg2) +swig_result = fresult +end function + +function FSUNLinSol_SPGMRSetMaxRestarts(s, maxrs) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNLinearSolver), target, intent(inout) :: s +integer(C_INT), intent(in) :: maxrs +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = c_loc(s) +farg2 = maxrs +fresult = swigc_FSUNLinSol_SPGMRSetMaxRestarts(farg1, farg2) +swig_result = fresult +end function + +function FSUNLinSolGetType_SPGMR(s) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(SUNLinearSolver_Type) :: swig_result +type(SUNLinearSolver), target, intent(inout) :: s +integer(C_INT) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(s) +fresult = swigc_FSUNLinSolGetType_SPGMR(farg1) +swig_result = fresult +end function + +function FSUNLinSolGetID_SPGMR(s) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(SUNLinearSolver_ID) :: swig_result +type(SUNLinearSolver), target, intent(inout) :: s +integer(C_INT) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(s) +fresult = swigc_FSUNLinSolGetID_SPGMR(farg1) +swig_result = fresult +end function + +function FSUNLinSolInitialize_SPGMR(s) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNLinearSolver), target, intent(inout) :: s +integer(C_INT) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(s) +fresult = swigc_FSUNLinSolInitialize_SPGMR(farg1) +swig_result = fresult +end function + +function FSUNLinSolSetATimes_SPGMR(s, a_data, atimes) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNLinearSolver), target, intent(inout) :: s +type(C_PTR) :: a_data +type(C_FUNPTR), intent(in), value :: atimes +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_FUNPTR) :: farg3 + +farg1 = c_loc(s) +farg2 = a_data +farg3 = atimes +fresult = swigc_FSUNLinSolSetATimes_SPGMR(farg1, farg2, farg3) +swig_result = fresult +end function + +function FSUNLinSolSetPreconditioner_SPGMR(s, p_data, pset, psol) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNLinearSolver), target, intent(inout) :: s +type(C_PTR) :: p_data +type(C_FUNPTR), intent(in), value :: pset +type(C_FUNPTR), intent(in), value :: psol +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_FUNPTR) :: farg3 +type(C_FUNPTR) :: farg4 + +farg1 = c_loc(s) +farg2 = p_data +farg3 = pset +farg4 = psol +fresult = swigc_FSUNLinSolSetPreconditioner_SPGMR(farg1, farg2, farg3, farg4) +swig_result = fresult +end function + +function FSUNLinSolSetScalingVectors_SPGMR(s, s1, s2) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNLinearSolver), target, intent(inout) :: s +type(N_Vector), target, intent(inout) :: s1 +type(N_Vector), target, intent(inout) :: s2 +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = c_loc(s) +farg2 = c_loc(s1) +farg3 = c_loc(s2) +fresult = swigc_FSUNLinSolSetScalingVectors_SPGMR(farg1, farg2, farg3) +swig_result = fresult +end function + +function FSUNLinSolSetZeroGuess_SPGMR(s, onff) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNLinearSolver), target, intent(inout) :: s +integer(C_INT), intent(in) :: onff +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = c_loc(s) +farg2 = onff +fresult = swigc_FSUNLinSolSetZeroGuess_SPGMR(farg1, farg2) +swig_result = fresult +end function + +function FSUNLinSolSetup_SPGMR(s, a) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNLinearSolver), target, intent(inout) :: s +type(SUNMatrix), target, intent(inout) :: a +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = c_loc(s) +farg2 = c_loc(a) +fresult = swigc_FSUNLinSolSetup_SPGMR(farg1, farg2) +swig_result = fresult +end function + +function FSUNLinSolSolve_SPGMR(s, a, x, b, tol) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNLinearSolver), target, intent(inout) :: s +type(SUNMatrix), target, intent(inout) :: a +type(N_Vector), target, intent(inout) :: x +type(N_Vector), target, intent(inout) :: b +real(C_DOUBLE), intent(in) :: tol +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 +type(C_PTR) :: farg4 +real(C_DOUBLE) :: farg5 + +farg1 = c_loc(s) +farg2 = c_loc(a) +farg3 = c_loc(x) +farg4 = c_loc(b) +farg5 = tol +fresult = swigc_FSUNLinSolSolve_SPGMR(farg1, farg2, farg3, farg4, farg5) +swig_result = fresult +end function + +function FSUNLinSolNumIters_SPGMR(s) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNLinearSolver), target, intent(inout) :: s +integer(C_INT) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(s) +fresult = swigc_FSUNLinSolNumIters_SPGMR(farg1) +swig_result = fresult +end function + +function FSUNLinSolResNorm_SPGMR(s) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE) :: swig_result +type(SUNLinearSolver), target, intent(inout) :: s +real(C_DOUBLE) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(s) +fresult = swigc_FSUNLinSolResNorm_SPGMR(farg1) +swig_result = fresult +end function + +function FSUNLinSolResid_SPGMR(s) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +type(N_Vector), pointer :: swig_result +type(SUNLinearSolver), target, intent(inout) :: s +type(C_PTR) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(s) +fresult = swigc_FSUNLinSolResid_SPGMR(farg1) +call c_f_pointer(fresult, swig_result) +end function + +function FSUNLinSolLastFlag_SPGMR(s) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT32_T) :: swig_result +type(SUNLinearSolver), target, intent(inout) :: s +integer(C_INT32_T) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(s) +fresult = swigc_FSUNLinSolLastFlag_SPGMR(farg1) +swig_result = fresult +end function + +function FSUNLinSolSpace_SPGMR(s, lenrwls, leniwls) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNLinearSolver), target, intent(inout) :: s +integer(C_LONG), dimension(*), target, intent(inout) :: lenrwls +integer(C_LONG), dimension(*), target, intent(inout) :: leniwls +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = c_loc(s) +farg2 = c_loc(lenrwls(1)) +farg3 = c_loc(leniwls(1)) +fresult = swigc_FSUNLinSolSpace_SPGMR(farg1, farg2, farg3) +swig_result = fresult +end function + +function FSUNLinSolFree_SPGMR(s) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNLinearSolver), target, intent(inout) :: s +integer(C_INT) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(s) +fresult = swigc_FSUNLinSolFree_SPGMR(farg1) +swig_result = fresult +end function + + +end module diff --git a/src/sunlinsol/spgmr/fmod_int64/CMakeLists.txt b/src/sunlinsol/spgmr/fmod_int64/CMakeLists.txt new file mode 100644 index 0000000000..9ea74e0e45 --- /dev/null +++ b/src/sunlinsol/spgmr/fmod_int64/CMakeLists.txt @@ -0,0 +1,31 @@ +# ------------------------------------------------------------------------ +# Programmer(s): Cody J. Balos @ LLNL +# ------------------------------------------------------------------------ +# SUNDIALS Copyright Start +# Copyright (c) 2002-2024, Lawrence Livermore National Security +# and Southern Methodist University. +# All rights reserved. +# +# See the top-level LICENSE and NOTICE files for details. +# +# SPDX-License-Identifier: BSD-3-Clause +# SUNDIALS Copyright End +# ------------------------------------------------------------------------ +# CMakeLists.txt file for the F2003 SPGMR SUNLinearSolver object library +# ------------------------------------------------------------------------ + +sundials_add_f2003_library(sundials_fsunlinsolspgmr_mod + SOURCES + fsunlinsol_spgmr_mod.f90 fsunlinsol_spgmr_mod.c + LINK_LIBRARIES + PUBLIC sundials_fcore_mod + OBJECT_LIBRARIES + OUTPUT_NAME + sundials_fsunlinsolspgmr_mod + VERSION + ${sunlinsollib_VERSION} + SOVERSION + ${sunlinsollib_SOVERSION} +) + +message(STATUS "Added SUNLINSOL_SPGMR F2003 interface") diff --git a/src/sunlinsol/spgmr/fmod/fsunlinsol_spgmr_mod.c b/src/sunlinsol/spgmr/fmod_int64/fsunlinsol_spgmr_mod.c similarity index 100% rename from src/sunlinsol/spgmr/fmod/fsunlinsol_spgmr_mod.c rename to src/sunlinsol/spgmr/fmod_int64/fsunlinsol_spgmr_mod.c diff --git a/src/sunlinsol/spgmr/fmod/fsunlinsol_spgmr_mod.f90 b/src/sunlinsol/spgmr/fmod_int64/fsunlinsol_spgmr_mod.f90 similarity index 100% rename from src/sunlinsol/spgmr/fmod/fsunlinsol_spgmr_mod.f90 rename to src/sunlinsol/spgmr/fmod_int64/fsunlinsol_spgmr_mod.f90 diff --git a/src/sunlinsol/sptfqmr/CMakeLists.txt b/src/sunlinsol/sptfqmr/CMakeLists.txt index d4d069077c..60bb70ef1f 100644 --- a/src/sunlinsol/sptfqmr/CMakeLists.txt +++ b/src/sunlinsol/sptfqmr/CMakeLists.txt @@ -39,5 +39,5 @@ message(STATUS "Added SUNLINSOL_SPTFQMR module") # Add F90 module if F2003 interface is enabled if(BUILD_FORTRAN_MODULE_INTERFACE) - add_subdirectory(fmod) + add_subdirectory("fmod_int${SUNDIALS_INDEX_SIZE}") endif() diff --git a/src/sunlinsol/sptfqmr/fmod/CMakeLists.txt b/src/sunlinsol/sptfqmr/fmod_int32/CMakeLists.txt similarity index 100% rename from src/sunlinsol/sptfqmr/fmod/CMakeLists.txt rename to src/sunlinsol/sptfqmr/fmod_int32/CMakeLists.txt diff --git a/src/sunlinsol/sptfqmr/fmod_int32/fsunlinsol_sptfqmr_mod.c b/src/sunlinsol/sptfqmr/fmod_int32/fsunlinsol_sptfqmr_mod.c new file mode 100644 index 0000000000..eecf61a1ce --- /dev/null +++ b/src/sunlinsol/sptfqmr/fmod_int32/fsunlinsol_sptfqmr_mod.c @@ -0,0 +1,467 @@ +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.0 + * + * This file is not intended to be easily readable and contains a number of + * coding conventions designed to improve portability and efficiency. Do not make + * changes to this file unless you know what you are doing--modify the SWIG + * interface file instead. + * ----------------------------------------------------------------------------- */ + +/* --------------------------------------------------------------- + * Programmer(s): Auto-generated by swig. + * --------------------------------------------------------------- + * SUNDIALS Copyright Start + * Copyright (c) 2002-2024, Lawrence Livermore National Security + * and Southern Methodist University. + * All rights reserved. + * + * See the top-level LICENSE and NOTICE files for details. + * + * SPDX-License-Identifier: BSD-3-Clause + * SUNDIALS Copyright End + * -------------------------------------------------------------*/ + +/* ----------------------------------------------------------------------------- + * This section contains generic SWIG labels for method/variable + * declarations/attributes, and other compiler dependent labels. + * ----------------------------------------------------------------------------- */ + +/* template workaround for compilers that cannot correctly implement the C++ standard */ +#ifndef SWIGTEMPLATEDISAMBIGUATOR +# if defined(__SUNPRO_CC) && (__SUNPRO_CC <= 0x560) +# define SWIGTEMPLATEDISAMBIGUATOR template +# elif defined(__HP_aCC) +/* Needed even with `aCC -AA' when `aCC -V' reports HP ANSI C++ B3910B A.03.55 */ +/* If we find a maximum version that requires this, the test would be __HP_aCC <= 35500 for A.03.55 */ +# define SWIGTEMPLATEDISAMBIGUATOR template +# else +# define SWIGTEMPLATEDISAMBIGUATOR +# endif +#endif + +/* inline attribute */ +#ifndef SWIGINLINE +# if defined(__cplusplus) || (defined(__GNUC__) && !defined(__STRICT_ANSI__)) +# define SWIGINLINE inline +# else +# define SWIGINLINE +# endif +#endif + +/* attribute recognised by some compilers to avoid 'unused' warnings */ +#ifndef SWIGUNUSED +# if defined(__GNUC__) +# if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)) +# define SWIGUNUSED __attribute__ ((__unused__)) +# else +# define SWIGUNUSED +# endif +# elif defined(__ICC) +# define SWIGUNUSED __attribute__ ((__unused__)) +# else +# define SWIGUNUSED +# endif +#endif + +#ifndef SWIG_MSC_UNSUPPRESS_4505 +# if defined(_MSC_VER) +# pragma warning(disable : 4505) /* unreferenced local function has been removed */ +# endif +#endif + +#ifndef SWIGUNUSEDPARM +# ifdef __cplusplus +# define SWIGUNUSEDPARM(p) +# else +# define SWIGUNUSEDPARM(p) p SWIGUNUSED +# endif +#endif + +/* internal SWIG method */ +#ifndef SWIGINTERN +# define SWIGINTERN static SWIGUNUSED +#endif + +/* internal inline SWIG method */ +#ifndef SWIGINTERNINLINE +# define SWIGINTERNINLINE SWIGINTERN SWIGINLINE +#endif + +/* qualifier for exported *const* global data variables*/ +#ifndef SWIGEXTERN +# ifdef __cplusplus +# define SWIGEXTERN extern +# else +# define SWIGEXTERN +# endif +#endif + +/* exporting methods */ +#if defined(__GNUC__) +# if (__GNUC__ >= 4) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) +# ifndef GCC_HASCLASSVISIBILITY +# define GCC_HASCLASSVISIBILITY +# endif +# endif +#endif + +#ifndef SWIGEXPORT +# if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__) +# if defined(STATIC_LINKED) +# define SWIGEXPORT +# else +# define SWIGEXPORT __declspec(dllexport) +# endif +# else +# if defined(__GNUC__) && defined(GCC_HASCLASSVISIBILITY) +# define SWIGEXPORT __attribute__ ((visibility("default"))) +# else +# define SWIGEXPORT +# endif +# endif +#endif + +/* calling conventions for Windows */ +#ifndef SWIGSTDCALL +# if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__) +# define SWIGSTDCALL __stdcall +# else +# define SWIGSTDCALL +# endif +#endif + +/* Deal with Microsoft's attempt at deprecating C standard runtime functions */ +#if !defined(SWIG_NO_CRT_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_CRT_SECURE_NO_DEPRECATE) +# define _CRT_SECURE_NO_DEPRECATE +#endif + +/* Deal with Microsoft's attempt at deprecating methods in the standard C++ library */ +#if !defined(SWIG_NO_SCL_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_SCL_SECURE_NO_DEPRECATE) +# define _SCL_SECURE_NO_DEPRECATE +#endif + +/* Deal with Apple's deprecated 'AssertMacros.h' from Carbon-framework */ +#if defined(__APPLE__) && !defined(__ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES) +# define __ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES 0 +#endif + +/* Intel's compiler complains if a variable which was never initialised is + * cast to void, which is a common idiom which we use to indicate that we + * are aware a variable isn't used. So we just silence that warning. + * See: https://github.com/swig/swig/issues/192 for more discussion. + */ +#ifdef __INTEL_COMPILER +# pragma warning disable 592 +#endif + +/* Errors in SWIG */ +#define SWIG_UnknownError -1 +#define SWIG_IOError -2 +#define SWIG_RuntimeError -3 +#define SWIG_IndexError -4 +#define SWIG_TypeError -5 +#define SWIG_DivisionByZero -6 +#define SWIG_OverflowError -7 +#define SWIG_SyntaxError -8 +#define SWIG_ValueError -9 +#define SWIG_SystemError -10 +#define SWIG_AttributeError -11 +#define SWIG_MemoryError -12 +#define SWIG_NullReferenceError -13 + + + + +#include +#define SWIG_exception_impl(DECL, CODE, MSG, RETURNNULL) \ + { printf("In " DECL ": " MSG); assert(0); RETURNNULL; } + + +#include +#if defined(_MSC_VER) || defined(__BORLANDC__) || defined(_WATCOM) +# ifndef snprintf +# define snprintf _snprintf +# endif +#endif + + +/* Support for the `contract` feature. + * + * Note that RETURNNULL is first because it's inserted via a 'Replaceall' in + * the fortran.cxx file. + */ +#define SWIG_contract_assert(RETURNNULL, EXPR, MSG) \ + if (!(EXPR)) { SWIG_exception_impl("$decl", SWIG_ValueError, MSG, RETURNNULL); } + + +#define SWIGVERSION 0x040000 +#define SWIG_VERSION SWIGVERSION + + +#define SWIG_as_voidptr(a) (void *)((const void *)(a)) +#define SWIG_as_voidptrptr(a) ((void)SWIG_as_voidptr(*a),(void**)(a)) + + +#include "sundials/sundials_linearsolver.h" + + +#include "sunlinsol/sunlinsol_sptfqmr.h" + +SWIGEXPORT SUNLinearSolver _wrap_FSUNLinSol_SPTFQMR(N_Vector farg1, int const *farg2, int const *farg3, void *farg4) { + SUNLinearSolver fresult ; + N_Vector arg1 = (N_Vector) 0 ; + int arg2 ; + int arg3 ; + SUNContext arg4 = (SUNContext) 0 ; + SUNLinearSolver result; + + arg1 = (N_Vector)(farg1); + arg2 = (int)(*farg2); + arg3 = (int)(*farg3); + arg4 = (SUNContext)(farg4); + result = (SUNLinearSolver)SUNLinSol_SPTFQMR(arg1,arg2,arg3,arg4); + fresult = result; + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNLinSol_SPTFQMRSetPrecType(SUNLinearSolver farg1, int const *farg2) { + int fresult ; + SUNLinearSolver arg1 = (SUNLinearSolver) 0 ; + int arg2 ; + SUNErrCode result; + + arg1 = (SUNLinearSolver)(farg1); + arg2 = (int)(*farg2); + result = (SUNErrCode)SUNLinSol_SPTFQMRSetPrecType(arg1,arg2); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNLinSol_SPTFQMRSetMaxl(SUNLinearSolver farg1, int const *farg2) { + int fresult ; + SUNLinearSolver arg1 = (SUNLinearSolver) 0 ; + int arg2 ; + SUNErrCode result; + + arg1 = (SUNLinearSolver)(farg1); + arg2 = (int)(*farg2); + result = (SUNErrCode)SUNLinSol_SPTFQMRSetMaxl(arg1,arg2); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNLinSolGetType_SPTFQMR(SUNLinearSolver farg1) { + int fresult ; + SUNLinearSolver arg1 = (SUNLinearSolver) 0 ; + SUNLinearSolver_Type result; + + arg1 = (SUNLinearSolver)(farg1); + result = (SUNLinearSolver_Type)SUNLinSolGetType_SPTFQMR(arg1); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNLinSolGetID_SPTFQMR(SUNLinearSolver farg1) { + int fresult ; + SUNLinearSolver arg1 = (SUNLinearSolver) 0 ; + SUNLinearSolver_ID result; + + arg1 = (SUNLinearSolver)(farg1); + result = (SUNLinearSolver_ID)SUNLinSolGetID_SPTFQMR(arg1); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNLinSolInitialize_SPTFQMR(SUNLinearSolver farg1) { + int fresult ; + SUNLinearSolver arg1 = (SUNLinearSolver) 0 ; + SUNErrCode result; + + arg1 = (SUNLinearSolver)(farg1); + result = (SUNErrCode)SUNLinSolInitialize_SPTFQMR(arg1); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNLinSolSetATimes_SPTFQMR(SUNLinearSolver farg1, void *farg2, SUNATimesFn farg3) { + int fresult ; + SUNLinearSolver arg1 = (SUNLinearSolver) 0 ; + void *arg2 = (void *) 0 ; + SUNATimesFn arg3 = (SUNATimesFn) 0 ; + SUNErrCode result; + + arg1 = (SUNLinearSolver)(farg1); + arg2 = (void *)(farg2); + arg3 = (SUNATimesFn)(farg3); + result = (SUNErrCode)SUNLinSolSetATimes_SPTFQMR(arg1,arg2,arg3); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNLinSolSetPreconditioner_SPTFQMR(SUNLinearSolver farg1, void *farg2, SUNPSetupFn farg3, SUNPSolveFn farg4) { + int fresult ; + SUNLinearSolver arg1 = (SUNLinearSolver) 0 ; + void *arg2 = (void *) 0 ; + SUNPSetupFn arg3 = (SUNPSetupFn) 0 ; + SUNPSolveFn arg4 = (SUNPSolveFn) 0 ; + SUNErrCode result; + + arg1 = (SUNLinearSolver)(farg1); + arg2 = (void *)(farg2); + arg3 = (SUNPSetupFn)(farg3); + arg4 = (SUNPSolveFn)(farg4); + result = (SUNErrCode)SUNLinSolSetPreconditioner_SPTFQMR(arg1,arg2,arg3,arg4); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNLinSolSetScalingVectors_SPTFQMR(SUNLinearSolver farg1, N_Vector farg2, N_Vector farg3) { + int fresult ; + SUNLinearSolver arg1 = (SUNLinearSolver) 0 ; + N_Vector arg2 = (N_Vector) 0 ; + N_Vector arg3 = (N_Vector) 0 ; + SUNErrCode result; + + arg1 = (SUNLinearSolver)(farg1); + arg2 = (N_Vector)(farg2); + arg3 = (N_Vector)(farg3); + result = (SUNErrCode)SUNLinSolSetScalingVectors_SPTFQMR(arg1,arg2,arg3); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNLinSolSetZeroGuess_SPTFQMR(SUNLinearSolver farg1, int const *farg2) { + int fresult ; + SUNLinearSolver arg1 = (SUNLinearSolver) 0 ; + int arg2 ; + SUNErrCode result; + + arg1 = (SUNLinearSolver)(farg1); + arg2 = (int)(*farg2); + result = (SUNErrCode)SUNLinSolSetZeroGuess_SPTFQMR(arg1,arg2); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNLinSolSetup_SPTFQMR(SUNLinearSolver farg1, SUNMatrix farg2) { + int fresult ; + SUNLinearSolver arg1 = (SUNLinearSolver) 0 ; + SUNMatrix arg2 = (SUNMatrix) 0 ; + int result; + + arg1 = (SUNLinearSolver)(farg1); + arg2 = (SUNMatrix)(farg2); + result = (int)SUNLinSolSetup_SPTFQMR(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNLinSolSolve_SPTFQMR(SUNLinearSolver farg1, SUNMatrix farg2, N_Vector farg3, N_Vector farg4, double const *farg5) { + int fresult ; + SUNLinearSolver arg1 = (SUNLinearSolver) 0 ; + SUNMatrix arg2 = (SUNMatrix) 0 ; + N_Vector arg3 = (N_Vector) 0 ; + N_Vector arg4 = (N_Vector) 0 ; + sunrealtype arg5 ; + int result; + + arg1 = (SUNLinearSolver)(farg1); + arg2 = (SUNMatrix)(farg2); + arg3 = (N_Vector)(farg3); + arg4 = (N_Vector)(farg4); + arg5 = (sunrealtype)(*farg5); + result = (int)SUNLinSolSolve_SPTFQMR(arg1,arg2,arg3,arg4,arg5); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNLinSolNumIters_SPTFQMR(SUNLinearSolver farg1) { + int fresult ; + SUNLinearSolver arg1 = (SUNLinearSolver) 0 ; + int result; + + arg1 = (SUNLinearSolver)(farg1); + result = (int)SUNLinSolNumIters_SPTFQMR(arg1); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT double _wrap_FSUNLinSolResNorm_SPTFQMR(SUNLinearSolver farg1) { + double fresult ; + SUNLinearSolver arg1 = (SUNLinearSolver) 0 ; + sunrealtype result; + + arg1 = (SUNLinearSolver)(farg1); + result = (sunrealtype)SUNLinSolResNorm_SPTFQMR(arg1); + fresult = (sunrealtype)(result); + return fresult; +} + + +SWIGEXPORT N_Vector _wrap_FSUNLinSolResid_SPTFQMR(SUNLinearSolver farg1) { + N_Vector fresult ; + SUNLinearSolver arg1 = (SUNLinearSolver) 0 ; + N_Vector result; + + arg1 = (SUNLinearSolver)(farg1); + result = (N_Vector)SUNLinSolResid_SPTFQMR(arg1); + fresult = result; + return fresult; +} + + +SWIGEXPORT int32_t _wrap_FSUNLinSolLastFlag_SPTFQMR(SUNLinearSolver farg1) { + int32_t fresult ; + SUNLinearSolver arg1 = (SUNLinearSolver) 0 ; + sunindextype result; + + arg1 = (SUNLinearSolver)(farg1); + result = SUNLinSolLastFlag_SPTFQMR(arg1); + fresult = (sunindextype)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNLinSolSpace_SPTFQMR(SUNLinearSolver farg1, long *farg2, long *farg3) { + int fresult ; + SUNLinearSolver arg1 = (SUNLinearSolver) 0 ; + long *arg2 = (long *) 0 ; + long *arg3 = (long *) 0 ; + SUNErrCode result; + + arg1 = (SUNLinearSolver)(farg1); + arg2 = (long *)(farg2); + arg3 = (long *)(farg3); + result = (SUNErrCode)SUNLinSolSpace_SPTFQMR(arg1,arg2,arg3); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNLinSolFree_SPTFQMR(SUNLinearSolver farg1) { + int fresult ; + SUNLinearSolver arg1 = (SUNLinearSolver) 0 ; + SUNErrCode result; + + arg1 = (SUNLinearSolver)(farg1); + result = (SUNErrCode)SUNLinSolFree_SPTFQMR(arg1); + fresult = (SUNErrCode)(result); + return fresult; +} + + + diff --git a/src/sunlinsol/sptfqmr/fmod_int32/fsunlinsol_sptfqmr_mod.f90 b/src/sunlinsol/sptfqmr/fmod_int32/fsunlinsol_sptfqmr_mod.f90 new file mode 100644 index 0000000000..105984e2f7 --- /dev/null +++ b/src/sunlinsol/sptfqmr/fmod_int32/fsunlinsol_sptfqmr_mod.f90 @@ -0,0 +1,514 @@ +! This file was automatically generated by SWIG (http://www.swig.org). +! Version 4.0.0 +! +! Do not make changes to this file unless you know what you are doing--modify +! the SWIG interface file instead. + +! --------------------------------------------------------------- +! Programmer(s): Auto-generated by swig. +! --------------------------------------------------------------- +! SUNDIALS Copyright Start +! Copyright (c) 2002-2024, Lawrence Livermore National Security +! and Southern Methodist University. +! All rights reserved. +! +! See the top-level LICENSE and NOTICE files for details. +! +! SPDX-License-Identifier: BSD-3-Clause +! SUNDIALS Copyright End +! --------------------------------------------------------------- + +module fsunlinsol_sptfqmr_mod + use, intrinsic :: ISO_C_BINDING + use fsundials_core_mod + implicit none + private + + ! DECLARATION CONSTRUCTS + integer(C_INT), parameter, public :: SUNSPTFQMR_MAXL_DEFAULT = 5_C_INT + public :: FSUNLinSol_SPTFQMR + public :: FSUNLinSol_SPTFQMRSetPrecType + public :: FSUNLinSol_SPTFQMRSetMaxl + public :: FSUNLinSolGetType_SPTFQMR + public :: FSUNLinSolGetID_SPTFQMR + public :: FSUNLinSolInitialize_SPTFQMR + public :: FSUNLinSolSetATimes_SPTFQMR + public :: FSUNLinSolSetPreconditioner_SPTFQMR + public :: FSUNLinSolSetScalingVectors_SPTFQMR + public :: FSUNLinSolSetZeroGuess_SPTFQMR + public :: FSUNLinSolSetup_SPTFQMR + public :: FSUNLinSolSolve_SPTFQMR + public :: FSUNLinSolNumIters_SPTFQMR + public :: FSUNLinSolResNorm_SPTFQMR + public :: FSUNLinSolResid_SPTFQMR + public :: FSUNLinSolLastFlag_SPTFQMR + public :: FSUNLinSolSpace_SPTFQMR + public :: FSUNLinSolFree_SPTFQMR + +! WRAPPER DECLARATIONS +interface +function swigc_FSUNLinSol_SPTFQMR(farg1, farg2, farg3, farg4) & +bind(C, name="_wrap_FSUNLinSol_SPTFQMR") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT), intent(in) :: farg3 +type(C_PTR), value :: farg4 +type(C_PTR) :: fresult +end function + +function swigc_FSUNLinSol_SPTFQMRSetPrecType(farg1, farg2) & +bind(C, name="_wrap_FSUNLinSol_SPTFQMRSetPrecType") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FSUNLinSol_SPTFQMRSetMaxl(farg1, farg2) & +bind(C, name="_wrap_FSUNLinSol_SPTFQMRSetMaxl") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FSUNLinSolGetType_SPTFQMR(farg1) & +bind(C, name="_wrap_FSUNLinSolGetType_SPTFQMR") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT) :: fresult +end function + +function swigc_FSUNLinSolGetID_SPTFQMR(farg1) & +bind(C, name="_wrap_FSUNLinSolGetID_SPTFQMR") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT) :: fresult +end function + +function swigc_FSUNLinSolInitialize_SPTFQMR(farg1) & +bind(C, name="_wrap_FSUNLinSolInitialize_SPTFQMR") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT) :: fresult +end function + +function swigc_FSUNLinSolSetATimes_SPTFQMR(farg1, farg2, farg3) & +bind(C, name="_wrap_FSUNLinSolSetATimes_SPTFQMR") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_FUNPTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FSUNLinSolSetPreconditioner_SPTFQMR(farg1, farg2, farg3, farg4) & +bind(C, name="_wrap_FSUNLinSolSetPreconditioner_SPTFQMR") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_FUNPTR), value :: farg3 +type(C_FUNPTR), value :: farg4 +integer(C_INT) :: fresult +end function + +function swigc_FSUNLinSolSetScalingVectors_SPTFQMR(farg1, farg2, farg3) & +bind(C, name="_wrap_FSUNLinSolSetScalingVectors_SPTFQMR") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FSUNLinSolSetZeroGuess_SPTFQMR(farg1, farg2) & +bind(C, name="_wrap_FSUNLinSolSetZeroGuess_SPTFQMR") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FSUNLinSolSetup_SPTFQMR(farg1, farg2) & +bind(C, name="_wrap_FSUNLinSolSetup_SPTFQMR") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FSUNLinSolSolve_SPTFQMR(farg1, farg2, farg3, farg4, farg5) & +bind(C, name="_wrap_FSUNLinSolSolve_SPTFQMR") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +type(C_PTR), value :: farg4 +real(C_DOUBLE), intent(in) :: farg5 +integer(C_INT) :: fresult +end function + +function swigc_FSUNLinSolNumIters_SPTFQMR(farg1) & +bind(C, name="_wrap_FSUNLinSolNumIters_SPTFQMR") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT) :: fresult +end function + +function swigc_FSUNLinSolResNorm_SPTFQMR(farg1) & +bind(C, name="_wrap_FSUNLinSolResNorm_SPTFQMR") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE) :: fresult +end function + +function swigc_FSUNLinSolResid_SPTFQMR(farg1) & +bind(C, name="_wrap_FSUNLinSolResid_SPTFQMR") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR) :: fresult +end function + +function swigc_FSUNLinSolLastFlag_SPTFQMR(farg1) & +bind(C, name="_wrap_FSUNLinSolLastFlag_SPTFQMR") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT32_T) :: fresult +end function + +function swigc_FSUNLinSolSpace_SPTFQMR(farg1, farg2, farg3) & +bind(C, name="_wrap_FSUNLinSolSpace_SPTFQMR") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FSUNLinSolFree_SPTFQMR(farg1) & +bind(C, name="_wrap_FSUNLinSolFree_SPTFQMR") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT) :: fresult +end function + +end interface + + +contains + ! MODULE SUBPROGRAMS +function FSUNLinSol_SPTFQMR(y, pretype, maxl, sunctx) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +type(SUNLinearSolver), pointer :: swig_result +type(N_Vector), target, intent(inout) :: y +integer(C_INT), intent(in) :: pretype +integer(C_INT), intent(in) :: maxl +type(C_PTR) :: sunctx +type(C_PTR) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 +integer(C_INT) :: farg3 +type(C_PTR) :: farg4 + +farg1 = c_loc(y) +farg2 = pretype +farg3 = maxl +farg4 = sunctx +fresult = swigc_FSUNLinSol_SPTFQMR(farg1, farg2, farg3, farg4) +call c_f_pointer(fresult, swig_result) +end function + +function FSUNLinSol_SPTFQMRSetPrecType(s, pretype) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNLinearSolver), target, intent(inout) :: s +integer(C_INT), intent(in) :: pretype +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = c_loc(s) +farg2 = pretype +fresult = swigc_FSUNLinSol_SPTFQMRSetPrecType(farg1, farg2) +swig_result = fresult +end function + +function FSUNLinSol_SPTFQMRSetMaxl(s, maxl) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNLinearSolver), target, intent(inout) :: s +integer(C_INT), intent(in) :: maxl +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = c_loc(s) +farg2 = maxl +fresult = swigc_FSUNLinSol_SPTFQMRSetMaxl(farg1, farg2) +swig_result = fresult +end function + +function FSUNLinSolGetType_SPTFQMR(s) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(SUNLinearSolver_Type) :: swig_result +type(SUNLinearSolver), target, intent(inout) :: s +integer(C_INT) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(s) +fresult = swigc_FSUNLinSolGetType_SPTFQMR(farg1) +swig_result = fresult +end function + +function FSUNLinSolGetID_SPTFQMR(s) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(SUNLinearSolver_ID) :: swig_result +type(SUNLinearSolver), target, intent(inout) :: s +integer(C_INT) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(s) +fresult = swigc_FSUNLinSolGetID_SPTFQMR(farg1) +swig_result = fresult +end function + +function FSUNLinSolInitialize_SPTFQMR(s) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNLinearSolver), target, intent(inout) :: s +integer(C_INT) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(s) +fresult = swigc_FSUNLinSolInitialize_SPTFQMR(farg1) +swig_result = fresult +end function + +function FSUNLinSolSetATimes_SPTFQMR(s, a_data, atimes) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNLinearSolver), target, intent(inout) :: s +type(C_PTR) :: a_data +type(C_FUNPTR), intent(in), value :: atimes +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_FUNPTR) :: farg3 + +farg1 = c_loc(s) +farg2 = a_data +farg3 = atimes +fresult = swigc_FSUNLinSolSetATimes_SPTFQMR(farg1, farg2, farg3) +swig_result = fresult +end function + +function FSUNLinSolSetPreconditioner_SPTFQMR(s, p_data, pset, psol) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNLinearSolver), target, intent(inout) :: s +type(C_PTR) :: p_data +type(C_FUNPTR), intent(in), value :: pset +type(C_FUNPTR), intent(in), value :: psol +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_FUNPTR) :: farg3 +type(C_FUNPTR) :: farg4 + +farg1 = c_loc(s) +farg2 = p_data +farg3 = pset +farg4 = psol +fresult = swigc_FSUNLinSolSetPreconditioner_SPTFQMR(farg1, farg2, farg3, farg4) +swig_result = fresult +end function + +function FSUNLinSolSetScalingVectors_SPTFQMR(s, s1, s2) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNLinearSolver), target, intent(inout) :: s +type(N_Vector), target, intent(inout) :: s1 +type(N_Vector), target, intent(inout) :: s2 +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = c_loc(s) +farg2 = c_loc(s1) +farg3 = c_loc(s2) +fresult = swigc_FSUNLinSolSetScalingVectors_SPTFQMR(farg1, farg2, farg3) +swig_result = fresult +end function + +function FSUNLinSolSetZeroGuess_SPTFQMR(s, onoff) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNLinearSolver), target, intent(inout) :: s +integer(C_INT), intent(in) :: onoff +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = c_loc(s) +farg2 = onoff +fresult = swigc_FSUNLinSolSetZeroGuess_SPTFQMR(farg1, farg2) +swig_result = fresult +end function + +function FSUNLinSolSetup_SPTFQMR(s, a) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNLinearSolver), target, intent(inout) :: s +type(SUNMatrix), target, intent(inout) :: a +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = c_loc(s) +farg2 = c_loc(a) +fresult = swigc_FSUNLinSolSetup_SPTFQMR(farg1, farg2) +swig_result = fresult +end function + +function FSUNLinSolSolve_SPTFQMR(s, a, x, b, tol) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNLinearSolver), target, intent(inout) :: s +type(SUNMatrix), target, intent(inout) :: a +type(N_Vector), target, intent(inout) :: x +type(N_Vector), target, intent(inout) :: b +real(C_DOUBLE), intent(in) :: tol +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 +type(C_PTR) :: farg4 +real(C_DOUBLE) :: farg5 + +farg1 = c_loc(s) +farg2 = c_loc(a) +farg3 = c_loc(x) +farg4 = c_loc(b) +farg5 = tol +fresult = swigc_FSUNLinSolSolve_SPTFQMR(farg1, farg2, farg3, farg4, farg5) +swig_result = fresult +end function + +function FSUNLinSolNumIters_SPTFQMR(s) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNLinearSolver), target, intent(inout) :: s +integer(C_INT) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(s) +fresult = swigc_FSUNLinSolNumIters_SPTFQMR(farg1) +swig_result = fresult +end function + +function FSUNLinSolResNorm_SPTFQMR(s) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE) :: swig_result +type(SUNLinearSolver), target, intent(inout) :: s +real(C_DOUBLE) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(s) +fresult = swigc_FSUNLinSolResNorm_SPTFQMR(farg1) +swig_result = fresult +end function + +function FSUNLinSolResid_SPTFQMR(s) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +type(N_Vector), pointer :: swig_result +type(SUNLinearSolver), target, intent(inout) :: s +type(C_PTR) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(s) +fresult = swigc_FSUNLinSolResid_SPTFQMR(farg1) +call c_f_pointer(fresult, swig_result) +end function + +function FSUNLinSolLastFlag_SPTFQMR(s) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT32_T) :: swig_result +type(SUNLinearSolver), target, intent(inout) :: s +integer(C_INT32_T) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(s) +fresult = swigc_FSUNLinSolLastFlag_SPTFQMR(farg1) +swig_result = fresult +end function + +function FSUNLinSolSpace_SPTFQMR(s, lenrwls, leniwls) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNLinearSolver), target, intent(inout) :: s +integer(C_LONG), dimension(*), target, intent(inout) :: lenrwls +integer(C_LONG), dimension(*), target, intent(inout) :: leniwls +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = c_loc(s) +farg2 = c_loc(lenrwls(1)) +farg3 = c_loc(leniwls(1)) +fresult = swigc_FSUNLinSolSpace_SPTFQMR(farg1, farg2, farg3) +swig_result = fresult +end function + +function FSUNLinSolFree_SPTFQMR(s) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNLinearSolver), target, intent(inout) :: s +integer(C_INT) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(s) +fresult = swigc_FSUNLinSolFree_SPTFQMR(farg1) +swig_result = fresult +end function + + +end module diff --git a/src/sunlinsol/sptfqmr/fmod_int64/CMakeLists.txt b/src/sunlinsol/sptfqmr/fmod_int64/CMakeLists.txt new file mode 100644 index 0000000000..ff3dc41956 --- /dev/null +++ b/src/sunlinsol/sptfqmr/fmod_int64/CMakeLists.txt @@ -0,0 +1,31 @@ +# ------------------------------------------------------------------------ +# Programmer(s): Cody J. Balos @ LLNL +# ------------------------------------------------------------------------ +# SUNDIALS Copyright Start +# Copyright (c) 2002-2024, Lawrence Livermore National Security +# and Southern Methodist University. +# All rights reserved. +# +# See the top-level LICENSE and NOTICE files for details. +# +# SPDX-License-Identifier: BSD-3-Clause +# SUNDIALS Copyright End +# ------------------------------------------------------------------------ +# CMakeLists.txt file for the F2003 SPTFQMR SUNLinearSolver object library +# ------------------------------------------------------------------------ + +sundials_add_f2003_library(sundials_fsunlinsolsptfqmr_mod + SOURCES + fsunlinsol_sptfqmr_mod.f90 fsunlinsol_sptfqmr_mod.c + LINK_LIBRARIES + PUBLIC sundials_fcore_mod + OBJECT_LIBRARIES + OUTPUT_NAME + sundials_fsunlinsolsptfqmr_mod + VERSION + ${sunlinsollib_VERSION} + SOVERSION + ${sunlinsollib_SOVERSION} +) + +message(STATUS "Added SUNLINSOL_SPTFQMR F2003 interface") diff --git a/src/sunlinsol/sptfqmr/fmod/fsunlinsol_sptfqmr_mod.c b/src/sunlinsol/sptfqmr/fmod_int64/fsunlinsol_sptfqmr_mod.c similarity index 100% rename from src/sunlinsol/sptfqmr/fmod/fsunlinsol_sptfqmr_mod.c rename to src/sunlinsol/sptfqmr/fmod_int64/fsunlinsol_sptfqmr_mod.c diff --git a/src/sunlinsol/sptfqmr/fmod/fsunlinsol_sptfqmr_mod.f90 b/src/sunlinsol/sptfqmr/fmod_int64/fsunlinsol_sptfqmr_mod.f90 similarity index 100% rename from src/sunlinsol/sptfqmr/fmod/fsunlinsol_sptfqmr_mod.f90 rename to src/sunlinsol/sptfqmr/fmod_int64/fsunlinsol_sptfqmr_mod.f90 diff --git a/src/sunmatrix/band/CMakeLists.txt b/src/sunmatrix/band/CMakeLists.txt index faafb96173..240fcf7ed4 100644 --- a/src/sunmatrix/band/CMakeLists.txt +++ b/src/sunmatrix/band/CMakeLists.txt @@ -39,5 +39,5 @@ message(STATUS "Added SUNMATRIX_BAND module") # Add F2003 module if the interface is enabled if(BUILD_FORTRAN_MODULE_INTERFACE) - add_subdirectory(fmod) + add_subdirectory("fmod_int${SUNDIALS_INDEX_SIZE}") endif() diff --git a/src/sunmatrix/band/fmod/CMakeLists.txt b/src/sunmatrix/band/fmod_int32/CMakeLists.txt similarity index 100% rename from src/sunmatrix/band/fmod/CMakeLists.txt rename to src/sunmatrix/band/fmod_int32/CMakeLists.txt diff --git a/src/sunmatrix/band/fmod_int32/fsunmatrix_band_mod.c b/src/sunmatrix/band/fmod_int32/fsunmatrix_band_mod.c new file mode 100644 index 0000000000..d506997738 --- /dev/null +++ b/src/sunmatrix/band/fmod_int32/fsunmatrix_band_mod.c @@ -0,0 +1,500 @@ +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.0 + * + * This file is not intended to be easily readable and contains a number of + * coding conventions designed to improve portability and efficiency. Do not make + * changes to this file unless you know what you are doing--modify the SWIG + * interface file instead. + * ----------------------------------------------------------------------------- */ + +/* --------------------------------------------------------------- + * Programmer(s): Auto-generated by swig. + * --------------------------------------------------------------- + * SUNDIALS Copyright Start + * Copyright (c) 2002-2024, Lawrence Livermore National Security + * and Southern Methodist University. + * All rights reserved. + * + * See the top-level LICENSE and NOTICE files for details. + * + * SPDX-License-Identifier: BSD-3-Clause + * SUNDIALS Copyright End + * -------------------------------------------------------------*/ + +/* ----------------------------------------------------------------------------- + * This section contains generic SWIG labels for method/variable + * declarations/attributes, and other compiler dependent labels. + * ----------------------------------------------------------------------------- */ + +/* template workaround for compilers that cannot correctly implement the C++ standard */ +#ifndef SWIGTEMPLATEDISAMBIGUATOR +# if defined(__SUNPRO_CC) && (__SUNPRO_CC <= 0x560) +# define SWIGTEMPLATEDISAMBIGUATOR template +# elif defined(__HP_aCC) +/* Needed even with `aCC -AA' when `aCC -V' reports HP ANSI C++ B3910B A.03.55 */ +/* If we find a maximum version that requires this, the test would be __HP_aCC <= 35500 for A.03.55 */ +# define SWIGTEMPLATEDISAMBIGUATOR template +# else +# define SWIGTEMPLATEDISAMBIGUATOR +# endif +#endif + +/* inline attribute */ +#ifndef SWIGINLINE +# if defined(__cplusplus) || (defined(__GNUC__) && !defined(__STRICT_ANSI__)) +# define SWIGINLINE inline +# else +# define SWIGINLINE +# endif +#endif + +/* attribute recognised by some compilers to avoid 'unused' warnings */ +#ifndef SWIGUNUSED +# if defined(__GNUC__) +# if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)) +# define SWIGUNUSED __attribute__ ((__unused__)) +# else +# define SWIGUNUSED +# endif +# elif defined(__ICC) +# define SWIGUNUSED __attribute__ ((__unused__)) +# else +# define SWIGUNUSED +# endif +#endif + +#ifndef SWIG_MSC_UNSUPPRESS_4505 +# if defined(_MSC_VER) +# pragma warning(disable : 4505) /* unreferenced local function has been removed */ +# endif +#endif + +#ifndef SWIGUNUSEDPARM +# ifdef __cplusplus +# define SWIGUNUSEDPARM(p) +# else +# define SWIGUNUSEDPARM(p) p SWIGUNUSED +# endif +#endif + +/* internal SWIG method */ +#ifndef SWIGINTERN +# define SWIGINTERN static SWIGUNUSED +#endif + +/* internal inline SWIG method */ +#ifndef SWIGINTERNINLINE +# define SWIGINTERNINLINE SWIGINTERN SWIGINLINE +#endif + +/* qualifier for exported *const* global data variables*/ +#ifndef SWIGEXTERN +# ifdef __cplusplus +# define SWIGEXTERN extern +# else +# define SWIGEXTERN +# endif +#endif + +/* exporting methods */ +#if defined(__GNUC__) +# if (__GNUC__ >= 4) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) +# ifndef GCC_HASCLASSVISIBILITY +# define GCC_HASCLASSVISIBILITY +# endif +# endif +#endif + +#ifndef SWIGEXPORT +# if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__) +# if defined(STATIC_LINKED) +# define SWIGEXPORT +# else +# define SWIGEXPORT __declspec(dllexport) +# endif +# else +# if defined(__GNUC__) && defined(GCC_HASCLASSVISIBILITY) +# define SWIGEXPORT __attribute__ ((visibility("default"))) +# else +# define SWIGEXPORT +# endif +# endif +#endif + +/* calling conventions for Windows */ +#ifndef SWIGSTDCALL +# if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__) +# define SWIGSTDCALL __stdcall +# else +# define SWIGSTDCALL +# endif +#endif + +/* Deal with Microsoft's attempt at deprecating C standard runtime functions */ +#if !defined(SWIG_NO_CRT_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_CRT_SECURE_NO_DEPRECATE) +# define _CRT_SECURE_NO_DEPRECATE +#endif + +/* Deal with Microsoft's attempt at deprecating methods in the standard C++ library */ +#if !defined(SWIG_NO_SCL_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_SCL_SECURE_NO_DEPRECATE) +# define _SCL_SECURE_NO_DEPRECATE +#endif + +/* Deal with Apple's deprecated 'AssertMacros.h' from Carbon-framework */ +#if defined(__APPLE__) && !defined(__ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES) +# define __ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES 0 +#endif + +/* Intel's compiler complains if a variable which was never initialised is + * cast to void, which is a common idiom which we use to indicate that we + * are aware a variable isn't used. So we just silence that warning. + * See: https://github.com/swig/swig/issues/192 for more discussion. + */ +#ifdef __INTEL_COMPILER +# pragma warning disable 592 +#endif + +/* Errors in SWIG */ +#define SWIG_UnknownError -1 +#define SWIG_IOError -2 +#define SWIG_RuntimeError -3 +#define SWIG_IndexError -4 +#define SWIG_TypeError -5 +#define SWIG_DivisionByZero -6 +#define SWIG_OverflowError -7 +#define SWIG_SyntaxError -8 +#define SWIG_ValueError -9 +#define SWIG_SystemError -10 +#define SWIG_AttributeError -11 +#define SWIG_MemoryError -12 +#define SWIG_NullReferenceError -13 + + + + +#include +#define SWIG_exception_impl(DECL, CODE, MSG, RETURNNULL) \ + { printf("In " DECL ": " MSG); assert(0); RETURNNULL; } + + +#include +#if defined(_MSC_VER) || defined(__BORLANDC__) || defined(_WATCOM) +# ifndef snprintf +# define snprintf _snprintf +# endif +#endif + + +/* Support for the `contract` feature. + * + * Note that RETURNNULL is first because it's inserted via a 'Replaceall' in + * the fortran.cxx file. + */ +#define SWIG_contract_assert(RETURNNULL, EXPR, MSG) \ + if (!(EXPR)) { SWIG_exception_impl("$decl", SWIG_ValueError, MSG, RETURNNULL); } + + +#define SWIGVERSION 0x040000 +#define SWIG_VERSION SWIGVERSION + + +#define SWIG_as_voidptr(a) (void *)((const void *)(a)) +#define SWIG_as_voidptrptr(a) ((void)SWIG_as_voidptr(*a),(void**)(a)) + + +#include "sundials/sundials_matrix.h" + + +#include "sunmatrix/sunmatrix_band.h" + +SWIGEXPORT SUNMatrix _wrap_FSUNBandMatrix(int32_t const *farg1, int32_t const *farg2, int32_t const *farg3, void *farg4) { + SUNMatrix fresult ; + sunindextype arg1 ; + sunindextype arg2 ; + sunindextype arg3 ; + SUNContext arg4 = (SUNContext) 0 ; + SUNMatrix result; + + arg1 = (sunindextype)(*farg1); + arg2 = (sunindextype)(*farg2); + arg3 = (sunindextype)(*farg3); + arg4 = (SUNContext)(farg4); + result = (SUNMatrix)SUNBandMatrix(arg1,arg2,arg3,arg4); + fresult = result; + return fresult; +} + + +SWIGEXPORT SUNMatrix _wrap_FSUNBandMatrixStorage(int32_t const *farg1, int32_t const *farg2, int32_t const *farg3, int32_t const *farg4, void *farg5) { + SUNMatrix fresult ; + sunindextype arg1 ; + sunindextype arg2 ; + sunindextype arg3 ; + sunindextype arg4 ; + SUNContext arg5 = (SUNContext) 0 ; + SUNMatrix result; + + arg1 = (sunindextype)(*farg1); + arg2 = (sunindextype)(*farg2); + arg3 = (sunindextype)(*farg3); + arg4 = (sunindextype)(*farg4); + arg5 = (SUNContext)(farg5); + result = (SUNMatrix)SUNBandMatrixStorage(arg1,arg2,arg3,arg4,arg5); + fresult = result; + return fresult; +} + + +SWIGEXPORT void _wrap_FSUNBandMatrix_Print(SUNMatrix farg1, void *farg2) { + SUNMatrix arg1 = (SUNMatrix) 0 ; + FILE *arg2 = (FILE *) 0 ; + + arg1 = (SUNMatrix)(farg1); + arg2 = (FILE *)(farg2); + SUNBandMatrix_Print(arg1,arg2); +} + + +SWIGEXPORT int32_t _wrap_FSUNBandMatrix_Rows(SUNMatrix farg1) { + int32_t fresult ; + SUNMatrix arg1 = (SUNMatrix) 0 ; + sunindextype result; + + arg1 = (SUNMatrix)(farg1); + result = SUNBandMatrix_Rows(arg1); + fresult = (sunindextype)(result); + return fresult; +} + + +SWIGEXPORT int32_t _wrap_FSUNBandMatrix_Columns(SUNMatrix farg1) { + int32_t fresult ; + SUNMatrix arg1 = (SUNMatrix) 0 ; + sunindextype result; + + arg1 = (SUNMatrix)(farg1); + result = SUNBandMatrix_Columns(arg1); + fresult = (sunindextype)(result); + return fresult; +} + + +SWIGEXPORT int32_t _wrap_FSUNBandMatrix_LowerBandwidth(SUNMatrix farg1) { + int32_t fresult ; + SUNMatrix arg1 = (SUNMatrix) 0 ; + sunindextype result; + + arg1 = (SUNMatrix)(farg1); + result = SUNBandMatrix_LowerBandwidth(arg1); + fresult = (sunindextype)(result); + return fresult; +} + + +SWIGEXPORT int32_t _wrap_FSUNBandMatrix_UpperBandwidth(SUNMatrix farg1) { + int32_t fresult ; + SUNMatrix arg1 = (SUNMatrix) 0 ; + sunindextype result; + + arg1 = (SUNMatrix)(farg1); + result = SUNBandMatrix_UpperBandwidth(arg1); + fresult = (sunindextype)(result); + return fresult; +} + + +SWIGEXPORT int32_t _wrap_FSUNBandMatrix_StoredUpperBandwidth(SUNMatrix farg1) { + int32_t fresult ; + SUNMatrix arg1 = (SUNMatrix) 0 ; + sunindextype result; + + arg1 = (SUNMatrix)(farg1); + result = SUNBandMatrix_StoredUpperBandwidth(arg1); + fresult = (sunindextype)(result); + return fresult; +} + + +SWIGEXPORT int32_t _wrap_FSUNBandMatrix_LDim(SUNMatrix farg1) { + int32_t fresult ; + SUNMatrix arg1 = (SUNMatrix) 0 ; + sunindextype result; + + arg1 = (SUNMatrix)(farg1); + result = SUNBandMatrix_LDim(arg1); + fresult = (sunindextype)(result); + return fresult; +} + + +SWIGEXPORT int32_t _wrap_FSUNBandMatrix_LData(SUNMatrix farg1) { + int32_t fresult ; + SUNMatrix arg1 = (SUNMatrix) 0 ; + sunindextype result; + + arg1 = (SUNMatrix)(farg1); + result = SUNBandMatrix_LData(arg1); + fresult = (sunindextype)(result); + return fresult; +} + + +SWIGEXPORT void * _wrap_FSUNBandMatrix_Cols(SUNMatrix farg1) { + void * fresult ; + SUNMatrix arg1 = (SUNMatrix) 0 ; + sunrealtype **result = 0 ; + + arg1 = (SUNMatrix)(farg1); + result = (sunrealtype **)SUNBandMatrix_Cols(arg1); + fresult = result; + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNMatGetID_Band(SUNMatrix farg1) { + int fresult ; + SUNMatrix arg1 = (SUNMatrix) 0 ; + SUNMatrix_ID result; + + arg1 = (SUNMatrix)(farg1); + result = (SUNMatrix_ID)SUNMatGetID_Band(arg1); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT SUNMatrix _wrap_FSUNMatClone_Band(SUNMatrix farg1) { + SUNMatrix fresult ; + SUNMatrix arg1 = (SUNMatrix) 0 ; + SUNMatrix result; + + arg1 = (SUNMatrix)(farg1); + result = (SUNMatrix)SUNMatClone_Band(arg1); + fresult = result; + return fresult; +} + + +SWIGEXPORT void _wrap_FSUNMatDestroy_Band(SUNMatrix farg1) { + SUNMatrix arg1 = (SUNMatrix) 0 ; + + arg1 = (SUNMatrix)(farg1); + SUNMatDestroy_Band(arg1); +} + + +SWIGEXPORT int _wrap_FSUNMatZero_Band(SUNMatrix farg1) { + int fresult ; + SUNMatrix arg1 = (SUNMatrix) 0 ; + SUNErrCode result; + + arg1 = (SUNMatrix)(farg1); + result = (SUNErrCode)SUNMatZero_Band(arg1); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNMatCopy_Band(SUNMatrix farg1, SUNMatrix farg2) { + int fresult ; + SUNMatrix arg1 = (SUNMatrix) 0 ; + SUNMatrix arg2 = (SUNMatrix) 0 ; + SUNErrCode result; + + arg1 = (SUNMatrix)(farg1); + arg2 = (SUNMatrix)(farg2); + result = (SUNErrCode)SUNMatCopy_Band(arg1,arg2); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNMatScaleAdd_Band(double const *farg1, SUNMatrix farg2, SUNMatrix farg3) { + int fresult ; + sunrealtype arg1 ; + SUNMatrix arg2 = (SUNMatrix) 0 ; + SUNMatrix arg3 = (SUNMatrix) 0 ; + SUNErrCode result; + + arg1 = (sunrealtype)(*farg1); + arg2 = (SUNMatrix)(farg2); + arg3 = (SUNMatrix)(farg3); + result = (SUNErrCode)SUNMatScaleAdd_Band(arg1,arg2,arg3); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNMatScaleAddI_Band(double const *farg1, SUNMatrix farg2) { + int fresult ; + sunrealtype arg1 ; + SUNMatrix arg2 = (SUNMatrix) 0 ; + SUNErrCode result; + + arg1 = (sunrealtype)(*farg1); + arg2 = (SUNMatrix)(farg2); + result = (SUNErrCode)SUNMatScaleAddI_Band(arg1,arg2); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNMatMatvec_Band(SUNMatrix farg1, N_Vector farg2, N_Vector farg3) { + int fresult ; + SUNMatrix arg1 = (SUNMatrix) 0 ; + N_Vector arg2 = (N_Vector) 0 ; + N_Vector arg3 = (N_Vector) 0 ; + SUNErrCode result; + + arg1 = (SUNMatrix)(farg1); + arg2 = (N_Vector)(farg2); + arg3 = (N_Vector)(farg3); + result = (SUNErrCode)SUNMatMatvec_Band(arg1,arg2,arg3); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNMatSpace_Band(SUNMatrix farg1, long *farg2, long *farg3) { + int fresult ; + SUNMatrix arg1 = (SUNMatrix) 0 ; + long *arg2 = (long *) 0 ; + long *arg3 = (long *) 0 ; + SUNErrCode result; + + arg1 = (SUNMatrix)(farg1); + arg2 = (long *)(farg2); + arg3 = (long *)(farg3); + result = (SUNErrCode)SUNMatSpace_Band(arg1,arg2,arg3); + fresult = (SUNErrCode)(result); + return fresult; +} + + + +SWIGEXPORT double * _wrap_FSUNBandMatrix_Data(SUNMatrix farg1) { + double * fresult ; + SUNMatrix arg1 = (SUNMatrix) 0 ; + sunrealtype *result = 0 ; + + arg1 = (SUNMatrix)(farg1); + result = (sunrealtype *)SUNBandMatrix_Data(arg1); + fresult = result; + return fresult; +} + +SWIGEXPORT double * _wrap_FSUNBandMatrix_Column(SUNMatrix farg1, int64_t const *farg2) { + double * fresult ; + SUNMatrix arg1 = (SUNMatrix) 0 ; + sunindextype arg2 ; + sunrealtype *result = 0 ; + + arg1 = (SUNMatrix)(farg1); + arg2 = (sunindextype)(*farg2); + result = (sunrealtype *)SUNBandMatrix_Column(arg1,arg2); + fresult = result; + return fresult; +} + + diff --git a/src/sunmatrix/band/fmod_int32/fsunmatrix_band_mod.f90 b/src/sunmatrix/band/fmod_int32/fsunmatrix_band_mod.f90 new file mode 100644 index 0000000000..82f10ff03b --- /dev/null +++ b/src/sunmatrix/band/fmod_int32/fsunmatrix_band_mod.f90 @@ -0,0 +1,595 @@ +! This file was automatically generated by SWIG (http://www.swig.org). +! Version 4.0.0 +! +! Do not make changes to this file unless you know what you are doing--modify +! the SWIG interface file instead. + +! --------------------------------------------------------------- +! Programmer(s): Auto-generated by swig. +! --------------------------------------------------------------- +! SUNDIALS Copyright Start +! Copyright (c) 2002-2024, Lawrence Livermore National Security +! and Southern Methodist University. +! All rights reserved. +! +! See the top-level LICENSE and NOTICE files for details. +! +! SPDX-License-Identifier: BSD-3-Clause +! SUNDIALS Copyright End +! --------------------------------------------------------------- + +module fsunmatrix_band_mod + use, intrinsic :: ISO_C_BINDING + use fsundials_core_mod + implicit none + private + + ! DECLARATION CONSTRUCTS + public :: FSUNBandMatrix + public :: FSUNBandMatrixStorage + public :: FSUNBandMatrix_Print + public :: FSUNBandMatrix_Rows + public :: FSUNBandMatrix_Columns + public :: FSUNBandMatrix_LowerBandwidth + public :: FSUNBandMatrix_UpperBandwidth + public :: FSUNBandMatrix_StoredUpperBandwidth + public :: FSUNBandMatrix_LDim + public :: FSUNBandMatrix_LData + public :: FSUNBandMatrix_Cols + public :: FSUNMatGetID_Band + public :: FSUNMatClone_Band + public :: FSUNMatDestroy_Band + public :: FSUNMatZero_Band + public :: FSUNMatCopy_Band + public :: FSUNMatScaleAdd_Band + public :: FSUNMatScaleAddI_Band + public :: FSUNMatMatvec_Band + public :: FSUNMatSpace_Band + + public :: FSUNBandMatrix_Data + public :: FSUNBandMatrix_Column + + +! WRAPPER DECLARATIONS +interface +function swigc_FSUNBandMatrix(farg1, farg2, farg3, farg4) & +bind(C, name="_wrap_FSUNBandMatrix") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +integer(C_INT32_T), intent(in) :: farg1 +integer(C_INT32_T), intent(in) :: farg2 +integer(C_INT32_T), intent(in) :: farg3 +type(C_PTR), value :: farg4 +type(C_PTR) :: fresult +end function + +function swigc_FSUNBandMatrixStorage(farg1, farg2, farg3, farg4, farg5) & +bind(C, name="_wrap_FSUNBandMatrixStorage") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +integer(C_INT32_T), intent(in) :: farg1 +integer(C_INT32_T), intent(in) :: farg2 +integer(C_INT32_T), intent(in) :: farg3 +integer(C_INT32_T), intent(in) :: farg4 +type(C_PTR), value :: farg5 +type(C_PTR) :: fresult +end function + +subroutine swigc_FSUNBandMatrix_Print(farg1, farg2) & +bind(C, name="_wrap_FSUNBandMatrix_Print") +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +end subroutine + +function swigc_FSUNBandMatrix_Rows(farg1) & +bind(C, name="_wrap_FSUNBandMatrix_Rows") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT32_T) :: fresult +end function + +function swigc_FSUNBandMatrix_Columns(farg1) & +bind(C, name="_wrap_FSUNBandMatrix_Columns") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT32_T) :: fresult +end function + +function swigc_FSUNBandMatrix_LowerBandwidth(farg1) & +bind(C, name="_wrap_FSUNBandMatrix_LowerBandwidth") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT32_T) :: fresult +end function + +function swigc_FSUNBandMatrix_UpperBandwidth(farg1) & +bind(C, name="_wrap_FSUNBandMatrix_UpperBandwidth") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT32_T) :: fresult +end function + +function swigc_FSUNBandMatrix_StoredUpperBandwidth(farg1) & +bind(C, name="_wrap_FSUNBandMatrix_StoredUpperBandwidth") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT32_T) :: fresult +end function + +function swigc_FSUNBandMatrix_LDim(farg1) & +bind(C, name="_wrap_FSUNBandMatrix_LDim") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT32_T) :: fresult +end function + +function swigc_FSUNBandMatrix_LData(farg1) & +bind(C, name="_wrap_FSUNBandMatrix_LData") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT32_T) :: fresult +end function + +function swigc_FSUNBandMatrix_Cols(farg1) & +bind(C, name="_wrap_FSUNBandMatrix_Cols") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR) :: fresult +end function + +function swigc_FSUNMatGetID_Band(farg1) & +bind(C, name="_wrap_FSUNMatGetID_Band") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT) :: fresult +end function + +function swigc_FSUNMatClone_Band(farg1) & +bind(C, name="_wrap_FSUNMatClone_Band") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR) :: fresult +end function + +subroutine swigc_FSUNMatDestroy_Band(farg1) & +bind(C, name="_wrap_FSUNMatDestroy_Band") +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +end subroutine + +function swigc_FSUNMatZero_Band(farg1) & +bind(C, name="_wrap_FSUNMatZero_Band") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT) :: fresult +end function + +function swigc_FSUNMatCopy_Band(farg1, farg2) & +bind(C, name="_wrap_FSUNMatCopy_Band") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FSUNMatScaleAdd_Band(farg1, farg2, farg3) & +bind(C, name="_wrap_FSUNMatScaleAdd_Band") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE), intent(in) :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FSUNMatScaleAddI_Band(farg1, farg2) & +bind(C, name="_wrap_FSUNMatScaleAddI_Band") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE), intent(in) :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FSUNMatMatvec_Band(farg1, farg2, farg3) & +bind(C, name="_wrap_FSUNMatMatvec_Band") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FSUNMatSpace_Band(farg1, farg2, farg3) & +bind(C, name="_wrap_FSUNMatSpace_Band") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + + +function swigc_FSUNBandMatrix_Data(farg1) & +bind(C, name="_wrap_FSUNBandMatrix_Data") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR) :: fresult +end function + +function swigc_FSUNBandMatrix_Column(farg1, farg2) & +bind(C, name="_wrap_FSUNBandMatrix_Column") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +#ifdef SUNDIALS_INT32_T +integer(C_INT32_T), intent(in) :: farg2 +#else +integer(C_INT64_T), intent(in) :: farg2 +#endif +type(C_PTR) :: fresult +end function + +end interface + + +contains + ! MODULE SUBPROGRAMS +function FSUNBandMatrix(n, mu, ml, sunctx) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +type(SUNMatrix), pointer :: swig_result +integer(C_INT32_T), intent(in) :: n +integer(C_INT32_T), intent(in) :: mu +integer(C_INT32_T), intent(in) :: ml +type(C_PTR) :: sunctx +type(C_PTR) :: fresult +integer(C_INT32_T) :: farg1 +integer(C_INT32_T) :: farg2 +integer(C_INT32_T) :: farg3 +type(C_PTR) :: farg4 + +farg1 = n +farg2 = mu +farg3 = ml +farg4 = sunctx +fresult = swigc_FSUNBandMatrix(farg1, farg2, farg3, farg4) +call c_f_pointer(fresult, swig_result) +end function + +function FSUNBandMatrixStorage(n, mu, ml, smu, sunctx) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +type(SUNMatrix), pointer :: swig_result +integer(C_INT32_T), intent(in) :: n +integer(C_INT32_T), intent(in) :: mu +integer(C_INT32_T), intent(in) :: ml +integer(C_INT32_T), intent(in) :: smu +type(C_PTR) :: sunctx +type(C_PTR) :: fresult +integer(C_INT32_T) :: farg1 +integer(C_INT32_T) :: farg2 +integer(C_INT32_T) :: farg3 +integer(C_INT32_T) :: farg4 +type(C_PTR) :: farg5 + +farg1 = n +farg2 = mu +farg3 = ml +farg4 = smu +farg5 = sunctx +fresult = swigc_FSUNBandMatrixStorage(farg1, farg2, farg3, farg4, farg5) +call c_f_pointer(fresult, swig_result) +end function + +subroutine FSUNBandMatrix_Print(a, outfile) +use, intrinsic :: ISO_C_BINDING +type(SUNMatrix), target, intent(inout) :: a +type(C_PTR) :: outfile +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = c_loc(a) +farg2 = outfile +call swigc_FSUNBandMatrix_Print(farg1, farg2) +end subroutine + +function FSUNBandMatrix_Rows(a) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT32_T) :: swig_result +type(SUNMatrix), target, intent(inout) :: a +integer(C_INT32_T) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(a) +fresult = swigc_FSUNBandMatrix_Rows(farg1) +swig_result = fresult +end function + +function FSUNBandMatrix_Columns(a) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT32_T) :: swig_result +type(SUNMatrix), target, intent(inout) :: a +integer(C_INT32_T) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(a) +fresult = swigc_FSUNBandMatrix_Columns(farg1) +swig_result = fresult +end function + +function FSUNBandMatrix_LowerBandwidth(a) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT32_T) :: swig_result +type(SUNMatrix), target, intent(inout) :: a +integer(C_INT32_T) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(a) +fresult = swigc_FSUNBandMatrix_LowerBandwidth(farg1) +swig_result = fresult +end function + +function FSUNBandMatrix_UpperBandwidth(a) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT32_T) :: swig_result +type(SUNMatrix), target, intent(inout) :: a +integer(C_INT32_T) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(a) +fresult = swigc_FSUNBandMatrix_UpperBandwidth(farg1) +swig_result = fresult +end function + +function FSUNBandMatrix_StoredUpperBandwidth(a) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT32_T) :: swig_result +type(SUNMatrix), target, intent(inout) :: a +integer(C_INT32_T) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(a) +fresult = swigc_FSUNBandMatrix_StoredUpperBandwidth(farg1) +swig_result = fresult +end function + +function FSUNBandMatrix_LDim(a) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT32_T) :: swig_result +type(SUNMatrix), target, intent(inout) :: a +integer(C_INT32_T) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(a) +fresult = swigc_FSUNBandMatrix_LDim(farg1) +swig_result = fresult +end function + +function FSUNBandMatrix_LData(a) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT32_T) :: swig_result +type(SUNMatrix), target, intent(inout) :: a +integer(C_INT32_T) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(a) +fresult = swigc_FSUNBandMatrix_LData(farg1) +swig_result = fresult +end function + +function FSUNBandMatrix_Cols(a) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), pointer :: swig_result +type(SUNMatrix), target, intent(inout) :: a +type(C_PTR) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(a) +fresult = swigc_FSUNBandMatrix_Cols(farg1) +call c_f_pointer(fresult, swig_result) +end function + +function FSUNMatGetID_Band(a) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(SUNMatrix_ID) :: swig_result +type(SUNMatrix), target, intent(inout) :: a +integer(C_INT) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(a) +fresult = swigc_FSUNMatGetID_Band(farg1) +swig_result = fresult +end function + +function FSUNMatClone_Band(a) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +type(SUNMatrix), pointer :: swig_result +type(SUNMatrix), target, intent(inout) :: a +type(C_PTR) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(a) +fresult = swigc_FSUNMatClone_Band(farg1) +call c_f_pointer(fresult, swig_result) +end function + +subroutine FSUNMatDestroy_Band(a) +use, intrinsic :: ISO_C_BINDING +type(SUNMatrix), target, intent(inout) :: a +type(C_PTR) :: farg1 + +farg1 = c_loc(a) +call swigc_FSUNMatDestroy_Band(farg1) +end subroutine + +function FSUNMatZero_Band(a) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNMatrix), target, intent(inout) :: a +integer(C_INT) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(a) +fresult = swigc_FSUNMatZero_Band(farg1) +swig_result = fresult +end function + +function FSUNMatCopy_Band(a, b) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNMatrix), target, intent(inout) :: a +type(SUNMatrix), target, intent(inout) :: b +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = c_loc(a) +farg2 = c_loc(b) +fresult = swigc_FSUNMatCopy_Band(farg1, farg2) +swig_result = fresult +end function + +function FSUNMatScaleAdd_Band(c, a, b) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +real(C_DOUBLE), intent(in) :: c +type(SUNMatrix), target, intent(inout) :: a +type(SUNMatrix), target, intent(inout) :: b +integer(C_INT) :: fresult +real(C_DOUBLE) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = c +farg2 = c_loc(a) +farg3 = c_loc(b) +fresult = swigc_FSUNMatScaleAdd_Band(farg1, farg2, farg3) +swig_result = fresult +end function + +function FSUNMatScaleAddI_Band(c, a) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +real(C_DOUBLE), intent(in) :: c +type(SUNMatrix), target, intent(inout) :: a +integer(C_INT) :: fresult +real(C_DOUBLE) :: farg1 +type(C_PTR) :: farg2 + +farg1 = c +farg2 = c_loc(a) +fresult = swigc_FSUNMatScaleAddI_Band(farg1, farg2) +swig_result = fresult +end function + +function FSUNMatMatvec_Band(a, x, y) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNMatrix), target, intent(inout) :: a +type(N_Vector), target, intent(inout) :: x +type(N_Vector), target, intent(inout) :: y +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = c_loc(a) +farg2 = c_loc(x) +farg3 = c_loc(y) +fresult = swigc_FSUNMatMatvec_Band(farg1, farg2, farg3) +swig_result = fresult +end function + +function FSUNMatSpace_Band(a, lenrw, leniw) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNMatrix), target, intent(inout) :: a +integer(C_LONG), dimension(*), target, intent(inout) :: lenrw +integer(C_LONG), dimension(*), target, intent(inout) :: leniw +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = c_loc(a) +farg2 = c_loc(lenrw(1)) +farg3 = c_loc(leniw(1)) +fresult = swigc_FSUNMatSpace_Band(farg1, farg2, farg3) +swig_result = fresult +end function + + +function FSUNBandMatrix_Data(a) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE), dimension(:), pointer :: swig_result +type(SUNMatrix), target, intent(inout) :: a +type(C_PTR) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(a) +fresult = swigc_FSUNBandMatrix_Data(farg1) +call c_f_pointer(fresult, swig_result, [FSUNBandMatrix_LData(a)]) +end function + +function FSUNBandMatrix_Column(a, j) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE), dimension(:), pointer :: swig_result +type(SUNMatrix), target, intent(inout) :: a +#ifdef SUNDIALS_INT32_T +integer(C_INT32_T), intent(in) :: j +#else +integer(C_INT64_T), intent(in) :: j +#endif +type(C_PTR) :: fresult +type(C_PTR) :: farg1 +#ifdef SUNDIALS_INT32_T +integer(C_INT32_T) :: farg2 +#else +integer(C_INT64_T) :: farg2 +#endif + +farg1 = c_loc(a) +farg2 = j +fresult = swigc_FSUNBandMatrix_Column(farg1, farg2) +! We set the array shape to [1] because only the diagonal element +! can be accessed through this function from Fortran. +call c_f_pointer(fresult, swig_result, [1]) +end function + + +end module diff --git a/src/sunmatrix/band/fmod_int64/CMakeLists.txt b/src/sunmatrix/band/fmod_int64/CMakeLists.txt new file mode 100644 index 0000000000..465260d783 --- /dev/null +++ b/src/sunmatrix/band/fmod_int64/CMakeLists.txt @@ -0,0 +1,31 @@ +# --------------------------------------------------------------- +# Programmer(s): Cody J. Balos @ LLNL +# --------------------------------------------------------------- +# SUNDIALS Copyright Start +# Copyright (c) 2002-2024, Lawrence Livermore National Security +# and Southern Methodist University. +# All rights reserved. +# +# See the top-level LICENSE and NOTICE files for details. +# +# SPDX-License-Identifier: BSD-3-Clause +# SUNDIALS Copyright End +# --------------------------------------------------------------- +# CMakeLists.txt file for the F2003 band SUNMatrix object library +# --------------------------------------------------------------- + +sundials_add_f2003_library(sundials_fsunmatrixband_mod + SOURCES + fsunmatrix_band_mod.f90 fsunmatrix_band_mod.c + LINK_LIBRARIES + PUBLIC sundials_fcore_mod + OBJECT_LIBRARIES + OUTPUT_NAME + sundials_fsunmatrixband_mod + VERSION + ${sunmatrixlib_VERSION} + SOVERSION + ${sunmatrixlib_SOVERSION} +) + +message(STATUS "Added SUNMATRIX_BAND F2003 interface") diff --git a/src/sunmatrix/band/fmod/fsunmatrix_band_mod.c b/src/sunmatrix/band/fmod_int64/fsunmatrix_band_mod.c similarity index 99% rename from src/sunmatrix/band/fmod/fsunmatrix_band_mod.c rename to src/sunmatrix/band/fmod_int64/fsunmatrix_band_mod.c index dda3324003..0a5bac84c8 100644 --- a/src/sunmatrix/band/fmod/fsunmatrix_band_mod.c +++ b/src/sunmatrix/band/fmod_int64/fsunmatrix_band_mod.c @@ -477,7 +477,7 @@ SWIGEXPORT double * _wrap_FSUNBandMatrix_Data(SUNMatrix farg1) { double * fresult ; SUNMatrix arg1 = (SUNMatrix) 0 ; sunrealtype *result = 0 ; - + arg1 = (SUNMatrix)(farg1); result = (sunrealtype *)SUNBandMatrix_Data(arg1); fresult = result; @@ -489,7 +489,7 @@ SWIGEXPORT double * _wrap_FSUNBandMatrix_Column(SUNMatrix farg1, int64_t const * SUNMatrix arg1 = (SUNMatrix) 0 ; sunindextype arg2 ; sunrealtype *result = 0 ; - + arg1 = (SUNMatrix)(farg1); arg2 = (sunindextype)(*farg2); result = (sunrealtype *)SUNBandMatrix_Column(arg1,arg2); diff --git a/src/sunmatrix/band/fmod/fsunmatrix_band_mod.f90 b/src/sunmatrix/band/fmod_int64/fsunmatrix_band_mod.f90 similarity index 97% rename from src/sunmatrix/band/fmod/fsunmatrix_band_mod.f90 rename to src/sunmatrix/band/fmod_int64/fsunmatrix_band_mod.f90 index 4ebf3a229e..f9b8189f10 100644 --- a/src/sunmatrix/band/fmod/fsunmatrix_band_mod.f90 +++ b/src/sunmatrix/band/fmod_int64/fsunmatrix_band_mod.f90 @@ -238,7 +238,11 @@ function swigc_FSUNBandMatrix_Column(farg1, farg2) & result(fresult) use, intrinsic :: ISO_C_BINDING type(C_PTR), value :: farg1 +#ifdef SUNDIALS_INT32_T +integer(C_INT32_T), intent(in) :: farg2 +#else integer(C_INT64_T), intent(in) :: farg2 +#endif type(C_PTR) :: fresult end function @@ -553,8 +557,8 @@ function FSUNBandMatrix_Data(a) & use, intrinsic :: ISO_C_BINDING real(C_DOUBLE), dimension(:), pointer :: swig_result type(SUNMatrix), target, intent(inout) :: a -type(C_PTR) :: fresult -type(C_PTR) :: farg1 +type(C_PTR) :: fresult +type(C_PTR) :: farg1 farg1 = c_loc(a) fresult = swigc_FSUNBandMatrix_Data(farg1) @@ -566,15 +570,23 @@ function FSUNBandMatrix_Column(a, j) & use, intrinsic :: ISO_C_BINDING real(C_DOUBLE), dimension(:), pointer :: swig_result type(SUNMatrix), target, intent(inout) :: a +#ifdef SUNDIALS_INT32_T +integer(C_INT32_T), intent(in) :: j +#else integer(C_INT64_T), intent(in) :: j -type(C_PTR) :: fresult -type(C_PTR) :: farg1 -integer(C_INT64_T) :: farg2 +#endif +type(C_PTR) :: fresult +type(C_PTR) :: farg1 +#ifdef SUNDIALS_INT32_T +integer(C_INT32_T) :: farg2 +#else +integer(C_INT64_T) :: farg2 +#endif farg1 = c_loc(a) farg2 = j fresult = swigc_FSUNBandMatrix_Column(farg1, farg2) -! We set the array shape to [1] because only the diagonal element +! We set the array shape to [1] because only the diagonal element ! can be accessed through this function from Fortran. call c_f_pointer(fresult, swig_result, [1]) end function diff --git a/src/sunmatrix/dense/CMakeLists.txt b/src/sunmatrix/dense/CMakeLists.txt index 8563a8ced3..e9e1b9ad85 100644 --- a/src/sunmatrix/dense/CMakeLists.txt +++ b/src/sunmatrix/dense/CMakeLists.txt @@ -40,5 +40,5 @@ message(STATUS "Added SUNMATRIX_DENSE module") # Add F2003 module if the interface is enabled if(BUILD_FORTRAN_MODULE_INTERFACE) - add_subdirectory(fmod) + add_subdirectory("fmod_int${SUNDIALS_INDEX_SIZE}") endif() diff --git a/src/sunmatrix/dense/fmod/CMakeLists.txt b/src/sunmatrix/dense/fmod_int32/CMakeLists.txt similarity index 100% rename from src/sunmatrix/dense/fmod/CMakeLists.txt rename to src/sunmatrix/dense/fmod_int32/CMakeLists.txt diff --git a/src/sunmatrix/dense/fmod_int32/fsunmatrix_dense_mod.c b/src/sunmatrix/dense/fmod_int32/fsunmatrix_dense_mod.c new file mode 100644 index 0000000000..7f6d3a1a4d --- /dev/null +++ b/src/sunmatrix/dense/fmod_int32/fsunmatrix_dense_mod.c @@ -0,0 +1,430 @@ +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.0 + * + * This file is not intended to be easily readable and contains a number of + * coding conventions designed to improve portability and efficiency. Do not make + * changes to this file unless you know what you are doing--modify the SWIG + * interface file instead. + * ----------------------------------------------------------------------------- */ + +/* --------------------------------------------------------------- + * Programmer(s): Auto-generated by swig. + * --------------------------------------------------------------- + * SUNDIALS Copyright Start + * Copyright (c) 2002-2024, Lawrence Livermore National Security + * and Southern Methodist University. + * All rights reserved. + * + * See the top-level LICENSE and NOTICE files for details. + * + * SPDX-License-Identifier: BSD-3-Clause + * SUNDIALS Copyright End + * -------------------------------------------------------------*/ + +/* ----------------------------------------------------------------------------- + * This section contains generic SWIG labels for method/variable + * declarations/attributes, and other compiler dependent labels. + * ----------------------------------------------------------------------------- */ + +/* template workaround for compilers that cannot correctly implement the C++ standard */ +#ifndef SWIGTEMPLATEDISAMBIGUATOR +# if defined(__SUNPRO_CC) && (__SUNPRO_CC <= 0x560) +# define SWIGTEMPLATEDISAMBIGUATOR template +# elif defined(__HP_aCC) +/* Needed even with `aCC -AA' when `aCC -V' reports HP ANSI C++ B3910B A.03.55 */ +/* If we find a maximum version that requires this, the test would be __HP_aCC <= 35500 for A.03.55 */ +# define SWIGTEMPLATEDISAMBIGUATOR template +# else +# define SWIGTEMPLATEDISAMBIGUATOR +# endif +#endif + +/* inline attribute */ +#ifndef SWIGINLINE +# if defined(__cplusplus) || (defined(__GNUC__) && !defined(__STRICT_ANSI__)) +# define SWIGINLINE inline +# else +# define SWIGINLINE +# endif +#endif + +/* attribute recognised by some compilers to avoid 'unused' warnings */ +#ifndef SWIGUNUSED +# if defined(__GNUC__) +# if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)) +# define SWIGUNUSED __attribute__ ((__unused__)) +# else +# define SWIGUNUSED +# endif +# elif defined(__ICC) +# define SWIGUNUSED __attribute__ ((__unused__)) +# else +# define SWIGUNUSED +# endif +#endif + +#ifndef SWIG_MSC_UNSUPPRESS_4505 +# if defined(_MSC_VER) +# pragma warning(disable : 4505) /* unreferenced local function has been removed */ +# endif +#endif + +#ifndef SWIGUNUSEDPARM +# ifdef __cplusplus +# define SWIGUNUSEDPARM(p) +# else +# define SWIGUNUSEDPARM(p) p SWIGUNUSED +# endif +#endif + +/* internal SWIG method */ +#ifndef SWIGINTERN +# define SWIGINTERN static SWIGUNUSED +#endif + +/* internal inline SWIG method */ +#ifndef SWIGINTERNINLINE +# define SWIGINTERNINLINE SWIGINTERN SWIGINLINE +#endif + +/* qualifier for exported *const* global data variables*/ +#ifndef SWIGEXTERN +# ifdef __cplusplus +# define SWIGEXTERN extern +# else +# define SWIGEXTERN +# endif +#endif + +/* exporting methods */ +#if defined(__GNUC__) +# if (__GNUC__ >= 4) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) +# ifndef GCC_HASCLASSVISIBILITY +# define GCC_HASCLASSVISIBILITY +# endif +# endif +#endif + +#ifndef SWIGEXPORT +# if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__) +# if defined(STATIC_LINKED) +# define SWIGEXPORT +# else +# define SWIGEXPORT __declspec(dllexport) +# endif +# else +# if defined(__GNUC__) && defined(GCC_HASCLASSVISIBILITY) +# define SWIGEXPORT __attribute__ ((visibility("default"))) +# else +# define SWIGEXPORT +# endif +# endif +#endif + +/* calling conventions for Windows */ +#ifndef SWIGSTDCALL +# if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__) +# define SWIGSTDCALL __stdcall +# else +# define SWIGSTDCALL +# endif +#endif + +/* Deal with Microsoft's attempt at deprecating C standard runtime functions */ +#if !defined(SWIG_NO_CRT_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_CRT_SECURE_NO_DEPRECATE) +# define _CRT_SECURE_NO_DEPRECATE +#endif + +/* Deal with Microsoft's attempt at deprecating methods in the standard C++ library */ +#if !defined(SWIG_NO_SCL_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_SCL_SECURE_NO_DEPRECATE) +# define _SCL_SECURE_NO_DEPRECATE +#endif + +/* Deal with Apple's deprecated 'AssertMacros.h' from Carbon-framework */ +#if defined(__APPLE__) && !defined(__ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES) +# define __ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES 0 +#endif + +/* Intel's compiler complains if a variable which was never initialised is + * cast to void, which is a common idiom which we use to indicate that we + * are aware a variable isn't used. So we just silence that warning. + * See: https://github.com/swig/swig/issues/192 for more discussion. + */ +#ifdef __INTEL_COMPILER +# pragma warning disable 592 +#endif + +/* Errors in SWIG */ +#define SWIG_UnknownError -1 +#define SWIG_IOError -2 +#define SWIG_RuntimeError -3 +#define SWIG_IndexError -4 +#define SWIG_TypeError -5 +#define SWIG_DivisionByZero -6 +#define SWIG_OverflowError -7 +#define SWIG_SyntaxError -8 +#define SWIG_ValueError -9 +#define SWIG_SystemError -10 +#define SWIG_AttributeError -11 +#define SWIG_MemoryError -12 +#define SWIG_NullReferenceError -13 + + + + +#include +#define SWIG_exception_impl(DECL, CODE, MSG, RETURNNULL) \ + { printf("In " DECL ": " MSG); assert(0); RETURNNULL; } + + +#include +#if defined(_MSC_VER) || defined(__BORLANDC__) || defined(_WATCOM) +# ifndef snprintf +# define snprintf _snprintf +# endif +#endif + + +/* Support for the `contract` feature. + * + * Note that RETURNNULL is first because it's inserted via a 'Replaceall' in + * the fortran.cxx file. + */ +#define SWIG_contract_assert(RETURNNULL, EXPR, MSG) \ + if (!(EXPR)) { SWIG_exception_impl("$decl", SWIG_ValueError, MSG, RETURNNULL); } + + +#define SWIGVERSION 0x040000 +#define SWIG_VERSION SWIGVERSION + + +#define SWIG_as_voidptr(a) (void *)((const void *)(a)) +#define SWIG_as_voidptrptr(a) ((void)SWIG_as_voidptr(*a),(void**)(a)) + + +#include "sundials/sundials_matrix.h" + + +#include "sunmatrix/sunmatrix_dense.h" + +SWIGEXPORT SUNMatrix _wrap_FSUNDenseMatrix(int32_t const *farg1, int32_t const *farg2, void *farg3) { + SUNMatrix fresult ; + sunindextype arg1 ; + sunindextype arg2 ; + SUNContext arg3 = (SUNContext) 0 ; + SUNMatrix result; + + arg1 = (sunindextype)(*farg1); + arg2 = (sunindextype)(*farg2); + arg3 = (SUNContext)(farg3); + result = (SUNMatrix)SUNDenseMatrix(arg1,arg2,arg3); + fresult = result; + return fresult; +} + + +SWIGEXPORT void _wrap_FSUNDenseMatrix_Print(SUNMatrix farg1, void *farg2) { + SUNMatrix arg1 = (SUNMatrix) 0 ; + FILE *arg2 = (FILE *) 0 ; + + arg1 = (SUNMatrix)(farg1); + arg2 = (FILE *)(farg2); + SUNDenseMatrix_Print(arg1,arg2); +} + + +SWIGEXPORT int32_t _wrap_FSUNDenseMatrix_Rows(SUNMatrix farg1) { + int32_t fresult ; + SUNMatrix arg1 = (SUNMatrix) 0 ; + sunindextype result; + + arg1 = (SUNMatrix)(farg1); + result = SUNDenseMatrix_Rows(arg1); + fresult = (sunindextype)(result); + return fresult; +} + + +SWIGEXPORT int32_t _wrap_FSUNDenseMatrix_Columns(SUNMatrix farg1) { + int32_t fresult ; + SUNMatrix arg1 = (SUNMatrix) 0 ; + sunindextype result; + + arg1 = (SUNMatrix)(farg1); + result = SUNDenseMatrix_Columns(arg1); + fresult = (sunindextype)(result); + return fresult; +} + + +SWIGEXPORT int32_t _wrap_FSUNDenseMatrix_LData(SUNMatrix farg1) { + int32_t fresult ; + SUNMatrix arg1 = (SUNMatrix) 0 ; + sunindextype result; + + arg1 = (SUNMatrix)(farg1); + result = SUNDenseMatrix_LData(arg1); + fresult = (sunindextype)(result); + return fresult; +} + + +SWIGEXPORT void * _wrap_FSUNDenseMatrix_Cols(SUNMatrix farg1) { + void * fresult ; + SUNMatrix arg1 = (SUNMatrix) 0 ; + sunrealtype **result = 0 ; + + arg1 = (SUNMatrix)(farg1); + result = (sunrealtype **)SUNDenseMatrix_Cols(arg1); + fresult = result; + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNMatGetID_Dense(SUNMatrix farg1) { + int fresult ; + SUNMatrix arg1 = (SUNMatrix) 0 ; + SUNMatrix_ID result; + + arg1 = (SUNMatrix)(farg1); + result = (SUNMatrix_ID)SUNMatGetID_Dense(arg1); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT SUNMatrix _wrap_FSUNMatClone_Dense(SUNMatrix farg1) { + SUNMatrix fresult ; + SUNMatrix arg1 = (SUNMatrix) 0 ; + SUNMatrix result; + + arg1 = (SUNMatrix)(farg1); + result = (SUNMatrix)SUNMatClone_Dense(arg1); + fresult = result; + return fresult; +} + + +SWIGEXPORT void _wrap_FSUNMatDestroy_Dense(SUNMatrix farg1) { + SUNMatrix arg1 = (SUNMatrix) 0 ; + + arg1 = (SUNMatrix)(farg1); + SUNMatDestroy_Dense(arg1); +} + + +SWIGEXPORT int _wrap_FSUNMatZero_Dense(SUNMatrix farg1) { + int fresult ; + SUNMatrix arg1 = (SUNMatrix) 0 ; + SUNErrCode result; + + arg1 = (SUNMatrix)(farg1); + result = (SUNErrCode)SUNMatZero_Dense(arg1); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNMatCopy_Dense(SUNMatrix farg1, SUNMatrix farg2) { + int fresult ; + SUNMatrix arg1 = (SUNMatrix) 0 ; + SUNMatrix arg2 = (SUNMatrix) 0 ; + SUNErrCode result; + + arg1 = (SUNMatrix)(farg1); + arg2 = (SUNMatrix)(farg2); + result = (SUNErrCode)SUNMatCopy_Dense(arg1,arg2); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNMatScaleAdd_Dense(double const *farg1, SUNMatrix farg2, SUNMatrix farg3) { + int fresult ; + sunrealtype arg1 ; + SUNMatrix arg2 = (SUNMatrix) 0 ; + SUNMatrix arg3 = (SUNMatrix) 0 ; + SUNErrCode result; + + arg1 = (sunrealtype)(*farg1); + arg2 = (SUNMatrix)(farg2); + arg3 = (SUNMatrix)(farg3); + result = (SUNErrCode)SUNMatScaleAdd_Dense(arg1,arg2,arg3); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNMatScaleAddI_Dense(double const *farg1, SUNMatrix farg2) { + int fresult ; + sunrealtype arg1 ; + SUNMatrix arg2 = (SUNMatrix) 0 ; + SUNErrCode result; + + arg1 = (sunrealtype)(*farg1); + arg2 = (SUNMatrix)(farg2); + result = (SUNErrCode)SUNMatScaleAddI_Dense(arg1,arg2); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNMatMatvec_Dense(SUNMatrix farg1, N_Vector farg2, N_Vector farg3) { + int fresult ; + SUNMatrix arg1 = (SUNMatrix) 0 ; + N_Vector arg2 = (N_Vector) 0 ; + N_Vector arg3 = (N_Vector) 0 ; + SUNErrCode result; + + arg1 = (SUNMatrix)(farg1); + arg2 = (N_Vector)(farg2); + arg3 = (N_Vector)(farg3); + result = (SUNErrCode)SUNMatMatvec_Dense(arg1,arg2,arg3); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNMatSpace_Dense(SUNMatrix farg1, long *farg2, long *farg3) { + int fresult ; + SUNMatrix arg1 = (SUNMatrix) 0 ; + long *arg2 = (long *) 0 ; + long *arg3 = (long *) 0 ; + SUNErrCode result; + + arg1 = (SUNMatrix)(farg1); + arg2 = (long *)(farg2); + arg3 = (long *)(farg3); + result = (SUNErrCode)SUNMatSpace_Dense(arg1,arg2,arg3); + fresult = (SUNErrCode)(result); + return fresult; +} + + + +SWIGEXPORT double * _wrap_FSUNDenseMatrix_Data(SUNMatrix farg1) { + double * fresult ; + SUNMatrix arg1 = (SUNMatrix) 0 ; + sunrealtype *result = 0 ; + + arg1 = (SUNMatrix)(farg1); + result = (sunrealtype *)SUNDenseMatrix_Data(arg1); + fresult = result; + return fresult; +} + +SWIGEXPORT double * _wrap_FSUNDenseMatrix_Column(SUNMatrix farg1, int64_t const *farg2) { + double * fresult ; + SUNMatrix arg1 = (SUNMatrix) 0 ; + sunindextype arg2 ; + sunrealtype *result = 0 ; + + arg1 = (SUNMatrix)(farg1); + arg2 = (sunindextype)(*farg2); + result = (sunrealtype *)SUNDenseMatrix_Column(arg1,arg2); + fresult = result; + return fresult; +} + + diff --git a/src/sunmatrix/dense/fmod_int32/fsunmatrix_dense_mod.f90 b/src/sunmatrix/dense/fmod_int32/fsunmatrix_dense_mod.f90 new file mode 100644 index 0000000000..23c12b6eba --- /dev/null +++ b/src/sunmatrix/dense/fmod_int32/fsunmatrix_dense_mod.f90 @@ -0,0 +1,463 @@ +! This file was automatically generated by SWIG (http://www.swig.org). +! Version 4.0.0 +! +! Do not make changes to this file unless you know what you are doing--modify +! the SWIG interface file instead. + +! --------------------------------------------------------------- +! Programmer(s): Auto-generated by swig. +! --------------------------------------------------------------- +! SUNDIALS Copyright Start +! Copyright (c) 2002-2024, Lawrence Livermore National Security +! and Southern Methodist University. +! All rights reserved. +! +! See the top-level LICENSE and NOTICE files for details. +! +! SPDX-License-Identifier: BSD-3-Clause +! SUNDIALS Copyright End +! --------------------------------------------------------------- + +module fsunmatrix_dense_mod + use, intrinsic :: ISO_C_BINDING + use fsundials_core_mod + implicit none + private + + ! DECLARATION CONSTRUCTS + public :: FSUNDenseMatrix + public :: FSUNDenseMatrix_Print + public :: FSUNDenseMatrix_Rows + public :: FSUNDenseMatrix_Columns + public :: FSUNDenseMatrix_LData + public :: FSUNDenseMatrix_Cols + public :: FSUNMatGetID_Dense + public :: FSUNMatClone_Dense + public :: FSUNMatDestroy_Dense + public :: FSUNMatZero_Dense + public :: FSUNMatCopy_Dense + public :: FSUNMatScaleAdd_Dense + public :: FSUNMatScaleAddI_Dense + public :: FSUNMatMatvec_Dense + public :: FSUNMatSpace_Dense + + public :: FSUNDenseMatrix_Data + public :: FSUNDenseMatrix_Column + + +! WRAPPER DECLARATIONS +interface +function swigc_FSUNDenseMatrix(farg1, farg2, farg3) & +bind(C, name="_wrap_FSUNDenseMatrix") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +integer(C_INT32_T), intent(in) :: farg1 +integer(C_INT32_T), intent(in) :: farg2 +type(C_PTR), value :: farg3 +type(C_PTR) :: fresult +end function + +subroutine swigc_FSUNDenseMatrix_Print(farg1, farg2) & +bind(C, name="_wrap_FSUNDenseMatrix_Print") +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +end subroutine + +function swigc_FSUNDenseMatrix_Rows(farg1) & +bind(C, name="_wrap_FSUNDenseMatrix_Rows") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT32_T) :: fresult +end function + +function swigc_FSUNDenseMatrix_Columns(farg1) & +bind(C, name="_wrap_FSUNDenseMatrix_Columns") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT32_T) :: fresult +end function + +function swigc_FSUNDenseMatrix_LData(farg1) & +bind(C, name="_wrap_FSUNDenseMatrix_LData") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT32_T) :: fresult +end function + +function swigc_FSUNDenseMatrix_Cols(farg1) & +bind(C, name="_wrap_FSUNDenseMatrix_Cols") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR) :: fresult +end function + +function swigc_FSUNMatGetID_Dense(farg1) & +bind(C, name="_wrap_FSUNMatGetID_Dense") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT) :: fresult +end function + +function swigc_FSUNMatClone_Dense(farg1) & +bind(C, name="_wrap_FSUNMatClone_Dense") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR) :: fresult +end function + +subroutine swigc_FSUNMatDestroy_Dense(farg1) & +bind(C, name="_wrap_FSUNMatDestroy_Dense") +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +end subroutine + +function swigc_FSUNMatZero_Dense(farg1) & +bind(C, name="_wrap_FSUNMatZero_Dense") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT) :: fresult +end function + +function swigc_FSUNMatCopy_Dense(farg1, farg2) & +bind(C, name="_wrap_FSUNMatCopy_Dense") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FSUNMatScaleAdd_Dense(farg1, farg2, farg3) & +bind(C, name="_wrap_FSUNMatScaleAdd_Dense") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE), intent(in) :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FSUNMatScaleAddI_Dense(farg1, farg2) & +bind(C, name="_wrap_FSUNMatScaleAddI_Dense") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE), intent(in) :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FSUNMatMatvec_Dense(farg1, farg2, farg3) & +bind(C, name="_wrap_FSUNMatMatvec_Dense") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FSUNMatSpace_Dense(farg1, farg2, farg3) & +bind(C, name="_wrap_FSUNMatSpace_Dense") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + + +function swigc_FSUNDenseMatrix_Data(farg1) & +bind(C, name="_wrap_FSUNDenseMatrix_Data") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR) :: fresult +end function + +function swigc_FSUNDenseMatrix_Column(farg1, farg2) & +bind(C, name="_wrap_FSUNDenseMatrix_Column") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +#ifdef SUNDIALS_INT32_T +integer(C_INT32_T), intent(in) :: farg2 +#else +integer(C_INT64_T), intent(in) :: farg2 +#endif +type(C_PTR) :: fresult +end function + +end interface + + +contains + ! MODULE SUBPROGRAMS +function FSUNDenseMatrix(m, n, sunctx) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +type(SUNMatrix), pointer :: swig_result +integer(C_INT32_T), intent(in) :: m +integer(C_INT32_T), intent(in) :: n +type(C_PTR) :: sunctx +type(C_PTR) :: fresult +integer(C_INT32_T) :: farg1 +integer(C_INT32_T) :: farg2 +type(C_PTR) :: farg3 + +farg1 = m +farg2 = n +farg3 = sunctx +fresult = swigc_FSUNDenseMatrix(farg1, farg2, farg3) +call c_f_pointer(fresult, swig_result) +end function + +subroutine FSUNDenseMatrix_Print(a, outfile) +use, intrinsic :: ISO_C_BINDING +type(SUNMatrix), target, intent(inout) :: a +type(C_PTR) :: outfile +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = c_loc(a) +farg2 = outfile +call swigc_FSUNDenseMatrix_Print(farg1, farg2) +end subroutine + +function FSUNDenseMatrix_Rows(a) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT32_T) :: swig_result +type(SUNMatrix), target, intent(inout) :: a +integer(C_INT32_T) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(a) +fresult = swigc_FSUNDenseMatrix_Rows(farg1) +swig_result = fresult +end function + +function FSUNDenseMatrix_Columns(a) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT32_T) :: swig_result +type(SUNMatrix), target, intent(inout) :: a +integer(C_INT32_T) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(a) +fresult = swigc_FSUNDenseMatrix_Columns(farg1) +swig_result = fresult +end function + +function FSUNDenseMatrix_LData(a) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT32_T) :: swig_result +type(SUNMatrix), target, intent(inout) :: a +integer(C_INT32_T) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(a) +fresult = swigc_FSUNDenseMatrix_LData(farg1) +swig_result = fresult +end function + +function FSUNDenseMatrix_Cols(a) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), pointer :: swig_result +type(SUNMatrix), target, intent(inout) :: a +type(C_PTR) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(a) +fresult = swigc_FSUNDenseMatrix_Cols(farg1) +call c_f_pointer(fresult, swig_result) +end function + +function FSUNMatGetID_Dense(a) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(SUNMatrix_ID) :: swig_result +type(SUNMatrix), target, intent(inout) :: a +integer(C_INT) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(a) +fresult = swigc_FSUNMatGetID_Dense(farg1) +swig_result = fresult +end function + +function FSUNMatClone_Dense(a) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +type(SUNMatrix), pointer :: swig_result +type(SUNMatrix), target, intent(inout) :: a +type(C_PTR) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(a) +fresult = swigc_FSUNMatClone_Dense(farg1) +call c_f_pointer(fresult, swig_result) +end function + +subroutine FSUNMatDestroy_Dense(a) +use, intrinsic :: ISO_C_BINDING +type(SUNMatrix), target, intent(inout) :: a +type(C_PTR) :: farg1 + +farg1 = c_loc(a) +call swigc_FSUNMatDestroy_Dense(farg1) +end subroutine + +function FSUNMatZero_Dense(a) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNMatrix), target, intent(inout) :: a +integer(C_INT) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(a) +fresult = swigc_FSUNMatZero_Dense(farg1) +swig_result = fresult +end function + +function FSUNMatCopy_Dense(a, b) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNMatrix), target, intent(inout) :: a +type(SUNMatrix), target, intent(inout) :: b +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = c_loc(a) +farg2 = c_loc(b) +fresult = swigc_FSUNMatCopy_Dense(farg1, farg2) +swig_result = fresult +end function + +function FSUNMatScaleAdd_Dense(c, a, b) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +real(C_DOUBLE), intent(in) :: c +type(SUNMatrix), target, intent(inout) :: a +type(SUNMatrix), target, intent(inout) :: b +integer(C_INT) :: fresult +real(C_DOUBLE) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = c +farg2 = c_loc(a) +farg3 = c_loc(b) +fresult = swigc_FSUNMatScaleAdd_Dense(farg1, farg2, farg3) +swig_result = fresult +end function + +function FSUNMatScaleAddI_Dense(c, a) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +real(C_DOUBLE), intent(in) :: c +type(SUNMatrix), target, intent(inout) :: a +integer(C_INT) :: fresult +real(C_DOUBLE) :: farg1 +type(C_PTR) :: farg2 + +farg1 = c +farg2 = c_loc(a) +fresult = swigc_FSUNMatScaleAddI_Dense(farg1, farg2) +swig_result = fresult +end function + +function FSUNMatMatvec_Dense(a, x, y) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNMatrix), target, intent(inout) :: a +type(N_Vector), target, intent(inout) :: x +type(N_Vector), target, intent(inout) :: y +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = c_loc(a) +farg2 = c_loc(x) +farg3 = c_loc(y) +fresult = swigc_FSUNMatMatvec_Dense(farg1, farg2, farg3) +swig_result = fresult +end function + +function FSUNMatSpace_Dense(a, lenrw, leniw) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNMatrix), target, intent(inout) :: a +integer(C_LONG), dimension(*), target, intent(inout) :: lenrw +integer(C_LONG), dimension(*), target, intent(inout) :: leniw +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = c_loc(a) +farg2 = c_loc(lenrw(1)) +farg3 = c_loc(leniw(1)) +fresult = swigc_FSUNMatSpace_Dense(farg1, farg2, farg3) +swig_result = fresult +end function + + +function FSUNDenseMatrix_Data(a) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE), dimension(:), pointer :: swig_result +type(SUNMatrix), target, intent(inout) :: a +type(C_PTR) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(a) +fresult = swigc_FSUNDenseMatrix_Data(farg1) +call c_f_pointer(fresult, swig_result, [FSUNDenseMatrix_LData(a)]) +end function + +function FSUNDenseMatrix_Column(a, j) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE), dimension(:), pointer :: swig_result +type(SUNMatrix), target, intent(inout) :: a +#ifdef SUNDIALS_INT32_T +integer(C_INT32_T), intent(in) :: j +#else +integer(C_INT64_T), intent(in) :: j +#endif +type(C_PTR) :: fresult +type(C_PTR) :: farg1 +#ifdef SUNDIALS_INT32_T +integer(C_INT32_T) :: farg2 +#else +integer(C_INT64_T) :: farg2 +#endif + +farg1 = c_loc(a) +farg2 = j +fresult = swigc_FSUNDenseMatrix_Column(farg1, farg2) +call c_f_pointer(fresult, swig_result, [FSUNDenseMatrix_Rows(a)]) +end function + + +end module diff --git a/src/sunmatrix/dense/fmod_int64/CMakeLists.txt b/src/sunmatrix/dense/fmod_int64/CMakeLists.txt new file mode 100644 index 0000000000..987102b9f6 --- /dev/null +++ b/src/sunmatrix/dense/fmod_int64/CMakeLists.txt @@ -0,0 +1,31 @@ +# --------------------------------------------------------------- +# Programmer(s): Cody J. Balos @ LLNL +# --------------------------------------------------------------- +# SUNDIALS Copyright Start +# Copyright (c) 2002-2024, Lawrence Livermore National Security +# and Southern Methodist University. +# All rights reserved. +# +# See the top-level LICENSE and NOTICE files for details. +# +# SPDX-License-Identifier: BSD-3-Clause +# SUNDIALS Copyright End +# --------------------------------------------------------------- +# CMakeLists.txt file for the F2003 dense SUNMatrix object library +# --------------------------------------------------------------- + +sundials_add_f2003_library(sundials_fsunmatrixdense_mod + SOURCES + fsunmatrix_dense_mod.f90 fsunmatrix_dense_mod.c + LINK_LIBRARIES + PUBLIC sundials_fcore_mod + OBJECT_LIBRARIES + OUTPUT_NAME + sundials_fsunmatrixdense_mod + VERSION + ${sunmatrixlib_VERSION} + SOVERSION + ${sunmatrixlib_SOVERSION} +) + +message(STATUS "Added SUNMATRIX_DENSE F2003 interface") diff --git a/src/sunmatrix/dense/fmod/fsunmatrix_dense_mod.c b/src/sunmatrix/dense/fmod_int64/fsunmatrix_dense_mod.c similarity index 99% rename from src/sunmatrix/dense/fmod/fsunmatrix_dense_mod.c rename to src/sunmatrix/dense/fmod_int64/fsunmatrix_dense_mod.c index 8709e95887..140e8d8d61 100644 --- a/src/sunmatrix/dense/fmod/fsunmatrix_dense_mod.c +++ b/src/sunmatrix/dense/fmod_int64/fsunmatrix_dense_mod.c @@ -407,7 +407,7 @@ SWIGEXPORT double * _wrap_FSUNDenseMatrix_Data(SUNMatrix farg1) { double * fresult ; SUNMatrix arg1 = (SUNMatrix) 0 ; sunrealtype *result = 0 ; - + arg1 = (SUNMatrix)(farg1); result = (sunrealtype *)SUNDenseMatrix_Data(arg1); fresult = result; @@ -419,7 +419,7 @@ SWIGEXPORT double * _wrap_FSUNDenseMatrix_Column(SUNMatrix farg1, int64_t const SUNMatrix arg1 = (SUNMatrix) 0 ; sunindextype arg2 ; sunrealtype *result = 0 ; - + arg1 = (SUNMatrix)(farg1); arg2 = (sunindextype)(*farg2); result = (sunrealtype *)SUNDenseMatrix_Column(arg1,arg2); diff --git a/src/sunmatrix/dense/fmod/fsunmatrix_dense_mod.f90 b/src/sunmatrix/dense/fmod_int64/fsunmatrix_dense_mod.f90 similarity index 97% rename from src/sunmatrix/dense/fmod/fsunmatrix_dense_mod.f90 rename to src/sunmatrix/dense/fmod_int64/fsunmatrix_dense_mod.f90 index 3f1b68e2bd..7bfb049939 100644 --- a/src/sunmatrix/dense/fmod/fsunmatrix_dense_mod.f90 +++ b/src/sunmatrix/dense/fmod_int64/fsunmatrix_dense_mod.f90 @@ -188,7 +188,11 @@ function swigc_FSUNDenseMatrix_Column(farg1, farg2) & result(fresult) use, intrinsic :: ISO_C_BINDING type(C_PTR), value :: farg1 +#ifdef SUNDIALS_INT32_T +integer(C_INT32_T), intent(in) :: farg2 +#else integer(C_INT64_T), intent(in) :: farg2 +#endif type(C_PTR) :: fresult end function @@ -423,8 +427,8 @@ function FSUNDenseMatrix_Data(a) & use, intrinsic :: ISO_C_BINDING real(C_DOUBLE), dimension(:), pointer :: swig_result type(SUNMatrix), target, intent(inout) :: a -type(C_PTR) :: fresult -type(C_PTR) :: farg1 +type(C_PTR) :: fresult +type(C_PTR) :: farg1 farg1 = c_loc(a) fresult = swigc_FSUNDenseMatrix_Data(farg1) @@ -436,10 +440,18 @@ function FSUNDenseMatrix_Column(a, j) & use, intrinsic :: ISO_C_BINDING real(C_DOUBLE), dimension(:), pointer :: swig_result type(SUNMatrix), target, intent(inout) :: a +#ifdef SUNDIALS_INT32_T +integer(C_INT32_T), intent(in) :: j +#else integer(C_INT64_T), intent(in) :: j -type(C_PTR) :: fresult -type(C_PTR) :: farg1 -integer(C_INT64_T) :: farg2 +#endif +type(C_PTR) :: fresult +type(C_PTR) :: farg1 +#ifdef SUNDIALS_INT32_T +integer(C_INT32_T) :: farg2 +#else +integer(C_INT64_T) :: farg2 +#endif farg1 = c_loc(a) farg2 = j diff --git a/src/sunmatrix/sparse/CMakeLists.txt b/src/sunmatrix/sparse/CMakeLists.txt index 120a8cbef3..3ca9363150 100644 --- a/src/sunmatrix/sparse/CMakeLists.txt +++ b/src/sunmatrix/sparse/CMakeLists.txt @@ -40,5 +40,5 @@ message(STATUS "Added SUNMATRIX_SPARSE module") # Add F2003 module if the interface is enabled if(BUILD_FORTRAN_MODULE_INTERFACE) - add_subdirectory(fmod) + add_subdirectory("fmod_int${SUNDIALS_INDEX_SIZE}") endif() diff --git a/src/sunmatrix/sparse/fmod/CMakeLists.txt b/src/sunmatrix/sparse/fmod_int32/CMakeLists.txt similarity index 100% rename from src/sunmatrix/sparse/fmod/CMakeLists.txt rename to src/sunmatrix/sparse/fmod_int32/CMakeLists.txt diff --git a/src/sunmatrix/sparse/fmod_int32/fsunmatrix_sparse_mod.c b/src/sunmatrix/sparse/fmod_int32/fsunmatrix_sparse_mod.c new file mode 100644 index 0000000000..c329b1edde --- /dev/null +++ b/src/sunmatrix/sparse/fmod_int32/fsunmatrix_sparse_mod.c @@ -0,0 +1,565 @@ +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.0 + * + * This file is not intended to be easily readable and contains a number of + * coding conventions designed to improve portability and efficiency. Do not make + * changes to this file unless you know what you are doing--modify the SWIG + * interface file instead. + * ----------------------------------------------------------------------------- */ + +/* --------------------------------------------------------------- + * Programmer(s): Auto-generated by swig. + * --------------------------------------------------------------- + * SUNDIALS Copyright Start + * Copyright (c) 2002-2024, Lawrence Livermore National Security + * and Southern Methodist University. + * All rights reserved. + * + * See the top-level LICENSE and NOTICE files for details. + * + * SPDX-License-Identifier: BSD-3-Clause + * SUNDIALS Copyright End + * -------------------------------------------------------------*/ + +/* ----------------------------------------------------------------------------- + * This section contains generic SWIG labels for method/variable + * declarations/attributes, and other compiler dependent labels. + * ----------------------------------------------------------------------------- */ + +/* template workaround for compilers that cannot correctly implement the C++ standard */ +#ifndef SWIGTEMPLATEDISAMBIGUATOR +# if defined(__SUNPRO_CC) && (__SUNPRO_CC <= 0x560) +# define SWIGTEMPLATEDISAMBIGUATOR template +# elif defined(__HP_aCC) +/* Needed even with `aCC -AA' when `aCC -V' reports HP ANSI C++ B3910B A.03.55 */ +/* If we find a maximum version that requires this, the test would be __HP_aCC <= 35500 for A.03.55 */ +# define SWIGTEMPLATEDISAMBIGUATOR template +# else +# define SWIGTEMPLATEDISAMBIGUATOR +# endif +#endif + +/* inline attribute */ +#ifndef SWIGINLINE +# if defined(__cplusplus) || (defined(__GNUC__) && !defined(__STRICT_ANSI__)) +# define SWIGINLINE inline +# else +# define SWIGINLINE +# endif +#endif + +/* attribute recognised by some compilers to avoid 'unused' warnings */ +#ifndef SWIGUNUSED +# if defined(__GNUC__) +# if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)) +# define SWIGUNUSED __attribute__ ((__unused__)) +# else +# define SWIGUNUSED +# endif +# elif defined(__ICC) +# define SWIGUNUSED __attribute__ ((__unused__)) +# else +# define SWIGUNUSED +# endif +#endif + +#ifndef SWIG_MSC_UNSUPPRESS_4505 +# if defined(_MSC_VER) +# pragma warning(disable : 4505) /* unreferenced local function has been removed */ +# endif +#endif + +#ifndef SWIGUNUSEDPARM +# ifdef __cplusplus +# define SWIGUNUSEDPARM(p) +# else +# define SWIGUNUSEDPARM(p) p SWIGUNUSED +# endif +#endif + +/* internal SWIG method */ +#ifndef SWIGINTERN +# define SWIGINTERN static SWIGUNUSED +#endif + +/* internal inline SWIG method */ +#ifndef SWIGINTERNINLINE +# define SWIGINTERNINLINE SWIGINTERN SWIGINLINE +#endif + +/* qualifier for exported *const* global data variables*/ +#ifndef SWIGEXTERN +# ifdef __cplusplus +# define SWIGEXTERN extern +# else +# define SWIGEXTERN +# endif +#endif + +/* exporting methods */ +#if defined(__GNUC__) +# if (__GNUC__ >= 4) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) +# ifndef GCC_HASCLASSVISIBILITY +# define GCC_HASCLASSVISIBILITY +# endif +# endif +#endif + +#ifndef SWIGEXPORT +# if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__) +# if defined(STATIC_LINKED) +# define SWIGEXPORT +# else +# define SWIGEXPORT __declspec(dllexport) +# endif +# else +# if defined(__GNUC__) && defined(GCC_HASCLASSVISIBILITY) +# define SWIGEXPORT __attribute__ ((visibility("default"))) +# else +# define SWIGEXPORT +# endif +# endif +#endif + +/* calling conventions for Windows */ +#ifndef SWIGSTDCALL +# if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__) +# define SWIGSTDCALL __stdcall +# else +# define SWIGSTDCALL +# endif +#endif + +/* Deal with Microsoft's attempt at deprecating C standard runtime functions */ +#if !defined(SWIG_NO_CRT_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_CRT_SECURE_NO_DEPRECATE) +# define _CRT_SECURE_NO_DEPRECATE +#endif + +/* Deal with Microsoft's attempt at deprecating methods in the standard C++ library */ +#if !defined(SWIG_NO_SCL_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_SCL_SECURE_NO_DEPRECATE) +# define _SCL_SECURE_NO_DEPRECATE +#endif + +/* Deal with Apple's deprecated 'AssertMacros.h' from Carbon-framework */ +#if defined(__APPLE__) && !defined(__ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES) +# define __ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES 0 +#endif + +/* Intel's compiler complains if a variable which was never initialised is + * cast to void, which is a common idiom which we use to indicate that we + * are aware a variable isn't used. So we just silence that warning. + * See: https://github.com/swig/swig/issues/192 for more discussion. + */ +#ifdef __INTEL_COMPILER +# pragma warning disable 592 +#endif + +/* Errors in SWIG */ +#define SWIG_UnknownError -1 +#define SWIG_IOError -2 +#define SWIG_RuntimeError -3 +#define SWIG_IndexError -4 +#define SWIG_TypeError -5 +#define SWIG_DivisionByZero -6 +#define SWIG_OverflowError -7 +#define SWIG_SyntaxError -8 +#define SWIG_ValueError -9 +#define SWIG_SystemError -10 +#define SWIG_AttributeError -11 +#define SWIG_MemoryError -12 +#define SWIG_NullReferenceError -13 + + + + +#include +#define SWIG_exception_impl(DECL, CODE, MSG, RETURNNULL) \ + { printf("In " DECL ": " MSG); assert(0); RETURNNULL; } + + +#include +#if defined(_MSC_VER) || defined(__BORLANDC__) || defined(_WATCOM) +# ifndef snprintf +# define snprintf _snprintf +# endif +#endif + + +/* Support for the `contract` feature. + * + * Note that RETURNNULL is first because it's inserted via a 'Replaceall' in + * the fortran.cxx file. + */ +#define SWIG_contract_assert(RETURNNULL, EXPR, MSG) \ + if (!(EXPR)) { SWIG_exception_impl("$decl", SWIG_ValueError, MSG, RETURNNULL); } + + +#define SWIGVERSION 0x040000 +#define SWIG_VERSION SWIGVERSION + + +#define SWIG_as_voidptr(a) (void *)((const void *)(a)) +#define SWIG_as_voidptrptr(a) ((void)SWIG_as_voidptr(*a),(void**)(a)) + + +#include "sundials/sundials_matrix.h" + + +#include "sunmatrix/sunmatrix_sparse.h" + +SWIGEXPORT SUNMatrix _wrap_FSUNSparseMatrix(int32_t const *farg1, int32_t const *farg2, int32_t const *farg3, int const *farg4, void *farg5) { + SUNMatrix fresult ; + sunindextype arg1 ; + sunindextype arg2 ; + sunindextype arg3 ; + int arg4 ; + SUNContext arg5 = (SUNContext) 0 ; + SUNMatrix result; + + arg1 = (sunindextype)(*farg1); + arg2 = (sunindextype)(*farg2); + arg3 = (sunindextype)(*farg3); + arg4 = (int)(*farg4); + arg5 = (SUNContext)(farg5); + result = (SUNMatrix)SUNSparseMatrix(arg1,arg2,arg3,arg4,arg5); + fresult = result; + return fresult; +} + + +SWIGEXPORT SUNMatrix _wrap_FSUNSparseFromDenseMatrix(SUNMatrix farg1, double const *farg2, int const *farg3) { + SUNMatrix fresult ; + SUNMatrix arg1 = (SUNMatrix) 0 ; + sunrealtype arg2 ; + int arg3 ; + SUNMatrix result; + + arg1 = (SUNMatrix)(farg1); + arg2 = (sunrealtype)(*farg2); + arg3 = (int)(*farg3); + result = (SUNMatrix)SUNSparseFromDenseMatrix(arg1,arg2,arg3); + fresult = result; + return fresult; +} + + +SWIGEXPORT SUNMatrix _wrap_FSUNSparseFromBandMatrix(SUNMatrix farg1, double const *farg2, int const *farg3) { + SUNMatrix fresult ; + SUNMatrix arg1 = (SUNMatrix) 0 ; + sunrealtype arg2 ; + int arg3 ; + SUNMatrix result; + + arg1 = (SUNMatrix)(farg1); + arg2 = (sunrealtype)(*farg2); + arg3 = (int)(*farg3); + result = (SUNMatrix)SUNSparseFromBandMatrix(arg1,arg2,arg3); + fresult = result; + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNSparseMatrix_ToCSR(SUNMatrix farg1, void *farg2) { + int fresult ; + SUNMatrix arg1 = (SUNMatrix) (SUNMatrix)0 ; + SUNMatrix *arg2 = (SUNMatrix *) 0 ; + SUNErrCode result; + + arg1 = (SUNMatrix)(farg1); + arg2 = (SUNMatrix *)(farg2); + result = (SUNErrCode)SUNSparseMatrix_ToCSR(arg1,arg2); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNSparseMatrix_ToCSC(SUNMatrix farg1, void *farg2) { + int fresult ; + SUNMatrix arg1 = (SUNMatrix) (SUNMatrix)0 ; + SUNMatrix *arg2 = (SUNMatrix *) 0 ; + SUNErrCode result; + + arg1 = (SUNMatrix)(farg1); + arg2 = (SUNMatrix *)(farg2); + result = (SUNErrCode)SUNSparseMatrix_ToCSC(arg1,arg2); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNSparseMatrix_Realloc(SUNMatrix farg1) { + int fresult ; + SUNMatrix arg1 = (SUNMatrix) 0 ; + SUNErrCode result; + + arg1 = (SUNMatrix)(farg1); + result = (SUNErrCode)SUNSparseMatrix_Realloc(arg1); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNSparseMatrix_Reallocate(SUNMatrix farg1, int32_t const *farg2) { + int fresult ; + SUNMatrix arg1 = (SUNMatrix) 0 ; + sunindextype arg2 ; + SUNErrCode result; + + arg1 = (SUNMatrix)(farg1); + arg2 = (sunindextype)(*farg2); + result = (SUNErrCode)SUNSparseMatrix_Reallocate(arg1,arg2); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT void _wrap_FSUNSparseMatrix_Print(SUNMatrix farg1, void *farg2) { + SUNMatrix arg1 = (SUNMatrix) 0 ; + FILE *arg2 = (FILE *) 0 ; + + arg1 = (SUNMatrix)(farg1); + arg2 = (FILE *)(farg2); + SUNSparseMatrix_Print(arg1,arg2); +} + + +SWIGEXPORT int32_t _wrap_FSUNSparseMatrix_Rows(SUNMatrix farg1) { + int32_t fresult ; + SUNMatrix arg1 = (SUNMatrix) 0 ; + sunindextype result; + + arg1 = (SUNMatrix)(farg1); + result = SUNSparseMatrix_Rows(arg1); + fresult = (sunindextype)(result); + return fresult; +} + + +SWIGEXPORT int32_t _wrap_FSUNSparseMatrix_Columns(SUNMatrix farg1) { + int32_t fresult ; + SUNMatrix arg1 = (SUNMatrix) 0 ; + sunindextype result; + + arg1 = (SUNMatrix)(farg1); + result = SUNSparseMatrix_Columns(arg1); + fresult = (sunindextype)(result); + return fresult; +} + + +SWIGEXPORT int32_t _wrap_FSUNSparseMatrix_NNZ(SUNMatrix farg1) { + int32_t fresult ; + SUNMatrix arg1 = (SUNMatrix) 0 ; + sunindextype result; + + arg1 = (SUNMatrix)(farg1); + result = SUNSparseMatrix_NNZ(arg1); + fresult = (sunindextype)(result); + return fresult; +} + + +SWIGEXPORT int32_t _wrap_FSUNSparseMatrix_NP(SUNMatrix farg1) { + int32_t fresult ; + SUNMatrix arg1 = (SUNMatrix) 0 ; + sunindextype result; + + arg1 = (SUNMatrix)(farg1); + result = SUNSparseMatrix_NP(arg1); + fresult = (sunindextype)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNSparseMatrix_SparseType(SUNMatrix farg1) { + int fresult ; + SUNMatrix arg1 = (SUNMatrix) 0 ; + int result; + + arg1 = (SUNMatrix)(farg1); + result = (int)SUNSparseMatrix_SparseType(arg1); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNMatGetID_Sparse(SUNMatrix farg1) { + int fresult ; + SUNMatrix arg1 = (SUNMatrix) 0 ; + SUNMatrix_ID result; + + arg1 = (SUNMatrix)(farg1); + result = (SUNMatrix_ID)SUNMatGetID_Sparse(arg1); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT SUNMatrix _wrap_FSUNMatClone_Sparse(SUNMatrix farg1) { + SUNMatrix fresult ; + SUNMatrix arg1 = (SUNMatrix) 0 ; + SUNMatrix result; + + arg1 = (SUNMatrix)(farg1); + result = (SUNMatrix)SUNMatClone_Sparse(arg1); + fresult = result; + return fresult; +} + + +SWIGEXPORT void _wrap_FSUNMatDestroy_Sparse(SUNMatrix farg1) { + SUNMatrix arg1 = (SUNMatrix) 0 ; + + arg1 = (SUNMatrix)(farg1); + SUNMatDestroy_Sparse(arg1); +} + + +SWIGEXPORT int _wrap_FSUNMatZero_Sparse(SUNMatrix farg1) { + int fresult ; + SUNMatrix arg1 = (SUNMatrix) 0 ; + SUNErrCode result; + + arg1 = (SUNMatrix)(farg1); + result = (SUNErrCode)SUNMatZero_Sparse(arg1); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNMatCopy_Sparse(SUNMatrix farg1, SUNMatrix farg2) { + int fresult ; + SUNMatrix arg1 = (SUNMatrix) 0 ; + SUNMatrix arg2 = (SUNMatrix) 0 ; + SUNErrCode result; + + arg1 = (SUNMatrix)(farg1); + arg2 = (SUNMatrix)(farg2); + result = (SUNErrCode)SUNMatCopy_Sparse(arg1,arg2); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNMatScaleAdd_Sparse(double const *farg1, SUNMatrix farg2, SUNMatrix farg3) { + int fresult ; + sunrealtype arg1 ; + SUNMatrix arg2 = (SUNMatrix) 0 ; + SUNMatrix arg3 = (SUNMatrix) 0 ; + SUNErrCode result; + + arg1 = (sunrealtype)(*farg1); + arg2 = (SUNMatrix)(farg2); + arg3 = (SUNMatrix)(farg3); + result = (SUNErrCode)SUNMatScaleAdd_Sparse(arg1,arg2,arg3); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNMatScaleAddI_Sparse(double const *farg1, SUNMatrix farg2) { + int fresult ; + sunrealtype arg1 ; + SUNMatrix arg2 = (SUNMatrix) 0 ; + SUNErrCode result; + + arg1 = (sunrealtype)(*farg1); + arg2 = (SUNMatrix)(farg2); + result = (SUNErrCode)SUNMatScaleAddI_Sparse(arg1,arg2); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNMatMatvec_Sparse(SUNMatrix farg1, N_Vector farg2, N_Vector farg3) { + int fresult ; + SUNMatrix arg1 = (SUNMatrix) 0 ; + N_Vector arg2 = (N_Vector) 0 ; + N_Vector arg3 = (N_Vector) 0 ; + SUNErrCode result; + + arg1 = (SUNMatrix)(farg1); + arg2 = (N_Vector)(farg2); + arg3 = (N_Vector)(farg3); + result = (SUNErrCode)SUNMatMatvec_Sparse(arg1,arg2,arg3); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNMatSpace_Sparse(SUNMatrix farg1, long *farg2, long *farg3) { + int fresult ; + SUNMatrix arg1 = (SUNMatrix) 0 ; + long *arg2 = (long *) 0 ; + long *arg3 = (long *) 0 ; + SUNErrCode result; + + arg1 = (SUNMatrix)(farg1); + arg2 = (long *)(farg2); + arg3 = (long *)(farg3); + result = (SUNErrCode)SUNMatSpace_Sparse(arg1,arg2,arg3); + fresult = (SUNErrCode)(result); + return fresult; +} + + + +SWIGEXPORT double * _wrap_FSUNSparseMatrix_Data(SUNMatrix farg1) { + double * fresult ; + SUNMatrix arg1 = (SUNMatrix) 0 ; + sunrealtype *result = 0 ; + + arg1 = (SUNMatrix)(farg1); + result = (sunrealtype *)SUNSparseMatrix_Data(arg1); + fresult = result; + return fresult; +} + +#if SUNDIALS_INT32_T +SWIGEXPORT int32_t * _wrap_FSUNSparseMatrix_IndexValues(SUNMatrix farg1) { + int32_t * fresult ; + SUNMatrix arg1 = (SUNMatrix) 0 ; + sunindextype *result = 0 ; + + arg1 = (SUNMatrix)(farg1); + result = (sunindextype *)SUNSparseMatrix_IndexValues(arg1); + fresult = result; + return fresult; +} + +SWIGEXPORT int32_t * _wrap_FSUNSparseMatrix_IndexPointers(SUNMatrix farg1) { + int32_t * fresult ; + SUNMatrix arg1 = (SUNMatrix) 0 ; + sunindextype *result = 0 ; + + arg1 = (SUNMatrix)(farg1); + result = (sunindextype *)SUNSparseMatrix_IndexPointers(arg1); + fresult = result; + return fresult; +} +#else +SWIGEXPORT int64_t * _wrap_FSUNSparseMatrix_IndexValues(SUNMatrix farg1) { + int64_t * fresult ; + SUNMatrix arg1 = (SUNMatrix) 0 ; + sunindextype *result = 0 ; + + arg1 = (SUNMatrix)(farg1); + result = (sunindextype *)SUNSparseMatrix_IndexValues(arg1); + fresult = result; + return fresult; +} + +SWIGEXPORT int64_t * _wrap_FSUNSparseMatrix_IndexPointers(SUNMatrix farg1) { + int64_t * fresult ; + SUNMatrix arg1 = (SUNMatrix) 0 ; + sunindextype *result = 0 ; + + arg1 = (SUNMatrix)(farg1); + result = (sunindextype *)SUNSparseMatrix_IndexPointers(arg1); + fresult = result; + return fresult; +} +#endif + + diff --git a/src/sunmatrix/sparse/fmod_int32/fsunmatrix_sparse_mod.f90 b/src/sunmatrix/sparse/fmod_int32/fsunmatrix_sparse_mod.f90 new file mode 100644 index 0000000000..fa9ff1555a --- /dev/null +++ b/src/sunmatrix/sparse/fmod_int32/fsunmatrix_sparse_mod.f90 @@ -0,0 +1,670 @@ +! This file was automatically generated by SWIG (http://www.swig.org). +! Version 4.0.0 +! +! Do not make changes to this file unless you know what you are doing--modify +! the SWIG interface file instead. + +! --------------------------------------------------------------- +! Programmer(s): Auto-generated by swig. +! --------------------------------------------------------------- +! SUNDIALS Copyright Start +! Copyright (c) 2002-2024, Lawrence Livermore National Security +! and Southern Methodist University. +! All rights reserved. +! +! See the top-level LICENSE and NOTICE files for details. +! +! SPDX-License-Identifier: BSD-3-Clause +! SUNDIALS Copyright End +! --------------------------------------------------------------- + +module fsunmatrix_sparse_mod + use, intrinsic :: ISO_C_BINDING + use fsundials_core_mod + implicit none + private + + ! DECLARATION CONSTRUCTS + integer(C_INT), parameter, public :: CSC_MAT = 0_C_INT + integer(C_INT), parameter, public :: CSR_MAT = 1_C_INT + public :: FSUNSparseMatrix + public :: FSUNSparseFromDenseMatrix + public :: FSUNSparseFromBandMatrix + public :: FSUNSparseMatrix_ToCSR + public :: FSUNSparseMatrix_ToCSC + public :: FSUNSparseMatrix_Realloc + public :: FSUNSparseMatrix_Reallocate + public :: FSUNSparseMatrix_Print + public :: FSUNSparseMatrix_Rows + public :: FSUNSparseMatrix_Columns + public :: FSUNSparseMatrix_NNZ + public :: FSUNSparseMatrix_NP + public :: FSUNSparseMatrix_SparseType + public :: FSUNMatGetID_Sparse + public :: FSUNMatClone_Sparse + public :: FSUNMatDestroy_Sparse + public :: FSUNMatZero_Sparse + public :: FSUNMatCopy_Sparse + public :: FSUNMatScaleAdd_Sparse + public :: FSUNMatScaleAddI_Sparse + public :: FSUNMatMatvec_Sparse + public :: FSUNMatSpace_Sparse + + public :: FSUNSparseMatrix_Data + public :: FSUNSparseMatrix_IndexValues + public :: FSUNSparseMatrix_IndexPointers + + +! WRAPPER DECLARATIONS +interface +function swigc_FSUNSparseMatrix(farg1, farg2, farg3, farg4, farg5) & +bind(C, name="_wrap_FSUNSparseMatrix") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +integer(C_INT32_T), intent(in) :: farg1 +integer(C_INT32_T), intent(in) :: farg2 +integer(C_INT32_T), intent(in) :: farg3 +integer(C_INT), intent(in) :: farg4 +type(C_PTR), value :: farg5 +type(C_PTR) :: fresult +end function + +function swigc_FSUNSparseFromDenseMatrix(farg1, farg2, farg3) & +bind(C, name="_wrap_FSUNSparseFromDenseMatrix") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT), intent(in) :: farg3 +type(C_PTR) :: fresult +end function + +function swigc_FSUNSparseFromBandMatrix(farg1, farg2, farg3) & +bind(C, name="_wrap_FSUNSparseFromBandMatrix") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT), intent(in) :: farg3 +type(C_PTR) :: fresult +end function + +function swigc_FSUNSparseMatrix_ToCSR(farg1, farg2) & +bind(C, name="_wrap_FSUNSparseMatrix_ToCSR") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FSUNSparseMatrix_ToCSC(farg1, farg2) & +bind(C, name="_wrap_FSUNSparseMatrix_ToCSC") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FSUNSparseMatrix_Realloc(farg1) & +bind(C, name="_wrap_FSUNSparseMatrix_Realloc") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT) :: fresult +end function + +function swigc_FSUNSparseMatrix_Reallocate(farg1, farg2) & +bind(C, name="_wrap_FSUNSparseMatrix_Reallocate") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT32_T), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +subroutine swigc_FSUNSparseMatrix_Print(farg1, farg2) & +bind(C, name="_wrap_FSUNSparseMatrix_Print") +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +end subroutine + +function swigc_FSUNSparseMatrix_Rows(farg1) & +bind(C, name="_wrap_FSUNSparseMatrix_Rows") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT32_T) :: fresult +end function + +function swigc_FSUNSparseMatrix_Columns(farg1) & +bind(C, name="_wrap_FSUNSparseMatrix_Columns") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT32_T) :: fresult +end function + +function swigc_FSUNSparseMatrix_NNZ(farg1) & +bind(C, name="_wrap_FSUNSparseMatrix_NNZ") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT32_T) :: fresult +end function + +function swigc_FSUNSparseMatrix_NP(farg1) & +bind(C, name="_wrap_FSUNSparseMatrix_NP") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT32_T) :: fresult +end function + +function swigc_FSUNSparseMatrix_SparseType(farg1) & +bind(C, name="_wrap_FSUNSparseMatrix_SparseType") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT) :: fresult +end function + +function swigc_FSUNMatGetID_Sparse(farg1) & +bind(C, name="_wrap_FSUNMatGetID_Sparse") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT) :: fresult +end function + +function swigc_FSUNMatClone_Sparse(farg1) & +bind(C, name="_wrap_FSUNMatClone_Sparse") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR) :: fresult +end function + +subroutine swigc_FSUNMatDestroy_Sparse(farg1) & +bind(C, name="_wrap_FSUNMatDestroy_Sparse") +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +end subroutine + +function swigc_FSUNMatZero_Sparse(farg1) & +bind(C, name="_wrap_FSUNMatZero_Sparse") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT) :: fresult +end function + +function swigc_FSUNMatCopy_Sparse(farg1, farg2) & +bind(C, name="_wrap_FSUNMatCopy_Sparse") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FSUNMatScaleAdd_Sparse(farg1, farg2, farg3) & +bind(C, name="_wrap_FSUNMatScaleAdd_Sparse") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE), intent(in) :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FSUNMatScaleAddI_Sparse(farg1, farg2) & +bind(C, name="_wrap_FSUNMatScaleAddI_Sparse") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE), intent(in) :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FSUNMatMatvec_Sparse(farg1, farg2, farg3) & +bind(C, name="_wrap_FSUNMatMatvec_Sparse") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FSUNMatSpace_Sparse(farg1, farg2, farg3) & +bind(C, name="_wrap_FSUNMatSpace_Sparse") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + + +function swigc_FSUNSparseMatrix_Data(farg1) & +bind(C, name="_wrap_FSUNSparseMatrix_Data") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR) :: fresult +end function + +function swigc_FSUNSparseMatrix_IndexValues(farg1) & +bind(C, name="_wrap_FSUNSparseMatrix_IndexValues") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR) :: fresult +end function + +function swigc_FSUNSparseMatrix_IndexPointers(farg1) & +bind(C, name="_wrap_FSUNSparseMatrix_IndexPointers") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR) :: fresult +end function + +end interface + + +contains + ! MODULE SUBPROGRAMS +function FSUNSparseMatrix(m, n, nnz, sparsetype, sunctx) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +type(SUNMatrix), pointer :: swig_result +integer(C_INT32_T), intent(in) :: m +integer(C_INT32_T), intent(in) :: n +integer(C_INT32_T), intent(in) :: nnz +integer(C_INT), intent(in) :: sparsetype +type(C_PTR) :: sunctx +type(C_PTR) :: fresult +integer(C_INT32_T) :: farg1 +integer(C_INT32_T) :: farg2 +integer(C_INT32_T) :: farg3 +integer(C_INT) :: farg4 +type(C_PTR) :: farg5 + +farg1 = m +farg2 = n +farg3 = nnz +farg4 = sparsetype +farg5 = sunctx +fresult = swigc_FSUNSparseMatrix(farg1, farg2, farg3, farg4, farg5) +call c_f_pointer(fresult, swig_result) +end function + +function FSUNSparseFromDenseMatrix(a, droptol, sparsetype) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +type(SUNMatrix), pointer :: swig_result +type(SUNMatrix), target, intent(inout) :: a +real(C_DOUBLE), intent(in) :: droptol +integer(C_INT), intent(in) :: sparsetype +type(C_PTR) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 +integer(C_INT) :: farg3 + +farg1 = c_loc(a) +farg2 = droptol +farg3 = sparsetype +fresult = swigc_FSUNSparseFromDenseMatrix(farg1, farg2, farg3) +call c_f_pointer(fresult, swig_result) +end function + +function FSUNSparseFromBandMatrix(a, droptol, sparsetype) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +type(SUNMatrix), pointer :: swig_result +type(SUNMatrix), target, intent(inout) :: a +real(C_DOUBLE), intent(in) :: droptol +integer(C_INT), intent(in) :: sparsetype +type(C_PTR) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 +integer(C_INT) :: farg3 + +farg1 = c_loc(a) +farg2 = droptol +farg3 = sparsetype +fresult = swigc_FSUNSparseFromBandMatrix(farg1, farg2, farg3) +call c_f_pointer(fresult, swig_result) +end function + +function FSUNSparseMatrix_ToCSR(a, bout) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNMatrix), target, intent(inout) :: a +type(C_PTR), target, intent(inout) :: bout +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = c_loc(a) +farg2 = c_loc(bout) +fresult = swigc_FSUNSparseMatrix_ToCSR(farg1, farg2) +swig_result = fresult +end function + +function FSUNSparseMatrix_ToCSC(a, bout) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNMatrix), target, intent(inout) :: a +type(C_PTR), target, intent(inout) :: bout +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = c_loc(a) +farg2 = c_loc(bout) +fresult = swigc_FSUNSparseMatrix_ToCSC(farg1, farg2) +swig_result = fresult +end function + +function FSUNSparseMatrix_Realloc(a) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNMatrix), target, intent(inout) :: a +integer(C_INT) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(a) +fresult = swigc_FSUNSparseMatrix_Realloc(farg1) +swig_result = fresult +end function + +function FSUNSparseMatrix_Reallocate(a, nnz) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNMatrix), target, intent(inout) :: a +integer(C_INT32_T), intent(in) :: nnz +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT32_T) :: farg2 + +farg1 = c_loc(a) +farg2 = nnz +fresult = swigc_FSUNSparseMatrix_Reallocate(farg1, farg2) +swig_result = fresult +end function + +subroutine FSUNSparseMatrix_Print(a, outfile) +use, intrinsic :: ISO_C_BINDING +type(SUNMatrix), target, intent(inout) :: a +type(C_PTR) :: outfile +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = c_loc(a) +farg2 = outfile +call swigc_FSUNSparseMatrix_Print(farg1, farg2) +end subroutine + +function FSUNSparseMatrix_Rows(a) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT32_T) :: swig_result +type(SUNMatrix), target, intent(inout) :: a +integer(C_INT32_T) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(a) +fresult = swigc_FSUNSparseMatrix_Rows(farg1) +swig_result = fresult +end function + +function FSUNSparseMatrix_Columns(a) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT32_T) :: swig_result +type(SUNMatrix), target, intent(inout) :: a +integer(C_INT32_T) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(a) +fresult = swigc_FSUNSparseMatrix_Columns(farg1) +swig_result = fresult +end function + +function FSUNSparseMatrix_NNZ(a) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT32_T) :: swig_result +type(SUNMatrix), target, intent(inout) :: a +integer(C_INT32_T) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(a) +fresult = swigc_FSUNSparseMatrix_NNZ(farg1) +swig_result = fresult +end function + +function FSUNSparseMatrix_NP(a) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT32_T) :: swig_result +type(SUNMatrix), target, intent(inout) :: a +integer(C_INT32_T) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(a) +fresult = swigc_FSUNSparseMatrix_NP(farg1) +swig_result = fresult +end function + +function FSUNSparseMatrix_SparseType(a) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNMatrix), target, intent(inout) :: a +integer(C_INT) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(a) +fresult = swigc_FSUNSparseMatrix_SparseType(farg1) +swig_result = fresult +end function + +function FSUNMatGetID_Sparse(a) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(SUNMatrix_ID) :: swig_result +type(SUNMatrix), target, intent(inout) :: a +integer(C_INT) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(a) +fresult = swigc_FSUNMatGetID_Sparse(farg1) +swig_result = fresult +end function + +function FSUNMatClone_Sparse(a) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +type(SUNMatrix), pointer :: swig_result +type(SUNMatrix), target, intent(inout) :: a +type(C_PTR) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(a) +fresult = swigc_FSUNMatClone_Sparse(farg1) +call c_f_pointer(fresult, swig_result) +end function + +subroutine FSUNMatDestroy_Sparse(a) +use, intrinsic :: ISO_C_BINDING +type(SUNMatrix), target, intent(inout) :: a +type(C_PTR) :: farg1 + +farg1 = c_loc(a) +call swigc_FSUNMatDestroy_Sparse(farg1) +end subroutine + +function FSUNMatZero_Sparse(a) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNMatrix), target, intent(inout) :: a +integer(C_INT) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(a) +fresult = swigc_FSUNMatZero_Sparse(farg1) +swig_result = fresult +end function + +function FSUNMatCopy_Sparse(a, b) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNMatrix), target, intent(inout) :: a +type(SUNMatrix), target, intent(inout) :: b +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = c_loc(a) +farg2 = c_loc(b) +fresult = swigc_FSUNMatCopy_Sparse(farg1, farg2) +swig_result = fresult +end function + +function FSUNMatScaleAdd_Sparse(c, a, b) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +real(C_DOUBLE), intent(in) :: c +type(SUNMatrix), target, intent(inout) :: a +type(SUNMatrix), target, intent(inout) :: b +integer(C_INT) :: fresult +real(C_DOUBLE) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = c +farg2 = c_loc(a) +farg3 = c_loc(b) +fresult = swigc_FSUNMatScaleAdd_Sparse(farg1, farg2, farg3) +swig_result = fresult +end function + +function FSUNMatScaleAddI_Sparse(c, a) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +real(C_DOUBLE), intent(in) :: c +type(SUNMatrix), target, intent(inout) :: a +integer(C_INT) :: fresult +real(C_DOUBLE) :: farg1 +type(C_PTR) :: farg2 + +farg1 = c +farg2 = c_loc(a) +fresult = swigc_FSUNMatScaleAddI_Sparse(farg1, farg2) +swig_result = fresult +end function + +function FSUNMatMatvec_Sparse(a, x, y) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNMatrix), target, intent(inout) :: a +type(N_Vector), target, intent(inout) :: x +type(N_Vector), target, intent(inout) :: y +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = c_loc(a) +farg2 = c_loc(x) +farg3 = c_loc(y) +fresult = swigc_FSUNMatMatvec_Sparse(farg1, farg2, farg3) +swig_result = fresult +end function + +function FSUNMatSpace_Sparse(a, lenrw, leniw) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNMatrix), target, intent(inout) :: a +integer(C_LONG), dimension(*), target, intent(inout) :: lenrw +integer(C_LONG), dimension(*), target, intent(inout) :: leniw +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = c_loc(a) +farg2 = c_loc(lenrw(1)) +farg3 = c_loc(leniw(1)) +fresult = swigc_FSUNMatSpace_Sparse(farg1, farg2, farg3) +swig_result = fresult +end function + + + +function FSUNSparseMatrix_Data(a) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +real(C_DOUBLE), dimension(:), pointer :: swig_result +type(SUNMatrix), target, intent(inout) :: a +type(C_PTR) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(a) +fresult = swigc_FSUNSparseMatrix_Data(farg1) +call c_f_pointer(fresult, swig_result, [FSUNSparseMatrix_NNZ(a)]) +end function + +function FSUNSparseMatrix_IndexValues(a) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +#ifdef SUNDIALS_INT32_T +integer(C_INT32_T), dimension(:), pointer :: swig_result +#else +integer(C_INT64_T), dimension(:), pointer :: swig_result +#endif +type(SUNMatrix), target, intent(inout) :: a +type(C_PTR) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(a) +fresult = swigc_FSUNSparseMatrix_IndexValues(farg1) +call c_f_pointer(fresult, swig_result, [FSUNSparseMatrix_NNZ(a)]) +end function + +function FSUNSparseMatrix_IndexPointers(a) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +#ifdef SUNDIALS_INT32_T +integer(C_INT32_T), dimension(:), pointer :: swig_result +#else +integer(C_INT64_T), dimension(:), pointer :: swig_result +#endif +type(SUNMatrix), target, intent(inout) :: a +type(C_PTR) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(a) +fresult = swigc_FSUNSparseMatrix_IndexPointers(farg1) +call c_f_pointer(fresult, swig_result, [FSUNSparseMatrix_NP(a)+1]) +end function + + +end module diff --git a/src/sunmatrix/sparse/fmod_int64/CMakeLists.txt b/src/sunmatrix/sparse/fmod_int64/CMakeLists.txt new file mode 100644 index 0000000000..fb0ed79b4c --- /dev/null +++ b/src/sunmatrix/sparse/fmod_int64/CMakeLists.txt @@ -0,0 +1,31 @@ +# --------------------------------------------------------------- +# Programmer(s): Cody J. Balos @ LLNL +# --------------------------------------------------------------- +# SUNDIALS Copyright Start +# Copyright (c) 2002-2024, Lawrence Livermore National Security +# and Southern Methodist University. +# All rights reserved. +# +# See the top-level LICENSE and NOTICE files for details. +# +# SPDX-License-Identifier: BSD-3-Clause +# SUNDIALS Copyright End +# --------------------------------------------------------------- +# CMakeLists.txt file for the F2003 sparse SUNMatrix object library +# --------------------------------------------------------------- + +sundials_add_f2003_library(sundials_fsunmatrixsparse_mod + SOURCES + fsunmatrix_sparse_mod.f90 fsunmatrix_sparse_mod.c + LINK_LIBRARIES + PUBLIC sundials_fcore_mod + OBJECT_LIBRARIES + OUTPUT_NAME + sundials_fsunmatrixsparse_mod + VERSION + ${sunmatrixlib_VERSION} + SOVERSION + ${sunmatrixlib_SOVERSION} +) + +message(STATUS "Added SUNMATRIX_SPARSE F2003 interface") diff --git a/src/sunmatrix/sparse/fmod/fsunmatrix_sparse_mod.c b/src/sunmatrix/sparse/fmod_int64/fsunmatrix_sparse_mod.c similarity index 95% rename from src/sunmatrix/sparse/fmod/fsunmatrix_sparse_mod.c rename to src/sunmatrix/sparse/fmod_int64/fsunmatrix_sparse_mod.c index b49bdc9945..3f97241d5f 100644 --- a/src/sunmatrix/sparse/fmod/fsunmatrix_sparse_mod.c +++ b/src/sunmatrix/sparse/fmod_int64/fsunmatrix_sparse_mod.c @@ -509,18 +509,41 @@ SWIGEXPORT double * _wrap_FSUNSparseMatrix_Data(SUNMatrix farg1) { double * fresult ; SUNMatrix arg1 = (SUNMatrix) 0 ; sunrealtype *result = 0 ; - + arg1 = (SUNMatrix)(farg1); result = (sunrealtype *)SUNSparseMatrix_Data(arg1); fresult = result; return fresult; } +#if SUNDIALS_INT32_T +SWIGEXPORT int32_t * _wrap_FSUNSparseMatrix_IndexValues(SUNMatrix farg1) { + int32_t * fresult ; + SUNMatrix arg1 = (SUNMatrix) 0 ; + sunindextype *result = 0 ; + + arg1 = (SUNMatrix)(farg1); + result = (sunindextype *)SUNSparseMatrix_IndexValues(arg1); + fresult = result; + return fresult; +} + +SWIGEXPORT int32_t * _wrap_FSUNSparseMatrix_IndexPointers(SUNMatrix farg1) { + int32_t * fresult ; + SUNMatrix arg1 = (SUNMatrix) 0 ; + sunindextype *result = 0 ; + + arg1 = (SUNMatrix)(farg1); + result = (sunindextype *)SUNSparseMatrix_IndexPointers(arg1); + fresult = result; + return fresult; +} +#else SWIGEXPORT int64_t * _wrap_FSUNSparseMatrix_IndexValues(SUNMatrix farg1) { int64_t * fresult ; SUNMatrix arg1 = (SUNMatrix) 0 ; sunindextype *result = 0 ; - + arg1 = (SUNMatrix)(farg1); result = (sunindextype *)SUNSparseMatrix_IndexValues(arg1); fresult = result; @@ -531,11 +554,12 @@ SWIGEXPORT int64_t * _wrap_FSUNSparseMatrix_IndexPointers(SUNMatrix farg1) { int64_t * fresult ; SUNMatrix arg1 = (SUNMatrix) 0 ; sunindextype *result = 0 ; - + arg1 = (SUNMatrix)(farg1); result = (sunindextype *)SUNSparseMatrix_IndexPointers(arg1); fresult = result; return fresult; } +#endif diff --git a/src/sunmatrix/sparse/fmod/fsunmatrix_sparse_mod.f90 b/src/sunmatrix/sparse/fmod_int64/fsunmatrix_sparse_mod.f90 similarity index 98% rename from src/sunmatrix/sparse/fmod/fsunmatrix_sparse_mod.f90 rename to src/sunmatrix/sparse/fmod_int64/fsunmatrix_sparse_mod.f90 index f128403e93..eedd562db3 100644 --- a/src/sunmatrix/sparse/fmod/fsunmatrix_sparse_mod.f90 +++ b/src/sunmatrix/sparse/fmod_int64/fsunmatrix_sparse_mod.f90 @@ -624,8 +624,8 @@ function FSUNSparseMatrix_Data(a) & use, intrinsic :: ISO_C_BINDING real(C_DOUBLE), dimension(:), pointer :: swig_result type(SUNMatrix), target, intent(inout) :: a -type(C_PTR) :: fresult -type(C_PTR) :: farg1 +type(C_PTR) :: fresult +type(C_PTR) :: farg1 farg1 = c_loc(a) fresult = swigc_FSUNSparseMatrix_Data(farg1) @@ -635,10 +635,14 @@ function FSUNSparseMatrix_Data(a) & function FSUNSparseMatrix_IndexValues(a) & result(swig_result) use, intrinsic :: ISO_C_BINDING +#ifdef SUNDIALS_INT32_T +integer(C_INT32_T), dimension(:), pointer :: swig_result +#else integer(C_INT64_T), dimension(:), pointer :: swig_result +#endif type(SUNMatrix), target, intent(inout) :: a -type(C_PTR) :: fresult -type(C_PTR) :: farg1 +type(C_PTR) :: fresult +type(C_PTR) :: farg1 farg1 = c_loc(a) fresult = swigc_FSUNSparseMatrix_IndexValues(farg1) @@ -648,15 +652,19 @@ function FSUNSparseMatrix_IndexValues(a) & function FSUNSparseMatrix_IndexPointers(a) & result(swig_result) use, intrinsic :: ISO_C_BINDING +#ifdef SUNDIALS_INT32_T +integer(C_INT32_T), dimension(:), pointer :: swig_result +#else integer(C_INT64_T), dimension(:), pointer :: swig_result +#endif type(SUNMatrix), target, intent(inout) :: a -type(C_PTR) :: fresult -type(C_PTR) :: farg1 +type(C_PTR) :: fresult +type(C_PTR) :: farg1 farg1 = c_loc(a) fresult = swigc_FSUNSparseMatrix_IndexPointers(farg1) call c_f_pointer(fresult, swig_result, [FSUNSparseMatrix_NP(a)+1]) -end function +end function end module diff --git a/src/sunnonlinsol/fixedpoint/CMakeLists.txt b/src/sunnonlinsol/fixedpoint/CMakeLists.txt index 2fcb289310..257fe8f97b 100644 --- a/src/sunnonlinsol/fixedpoint/CMakeLists.txt +++ b/src/sunnonlinsol/fixedpoint/CMakeLists.txt @@ -39,5 +39,5 @@ message(STATUS "Added SUNNONLINSOL_FIXEDPOINT module") # Add F2003 module if the interface is enabled if(BUILD_FORTRAN_MODULE_INTERFACE) - add_subdirectory(fmod) + add_subdirectory("fmod_int${SUNDIALS_INDEX_SIZE}") endif() diff --git a/src/sunnonlinsol/fixedpoint/fmod/CMakeLists.txt b/src/sunnonlinsol/fixedpoint/fmod_int32/CMakeLists.txt similarity index 100% rename from src/sunnonlinsol/fixedpoint/fmod/CMakeLists.txt rename to src/sunnonlinsol/fixedpoint/fmod_int32/CMakeLists.txt diff --git a/src/sunnonlinsol/fixedpoint/fmod/fsunnonlinsol_fixedpoint_mod.c b/src/sunnonlinsol/fixedpoint/fmod_int32/fsunnonlinsol_fixedpoint_mod.c similarity index 100% rename from src/sunnonlinsol/fixedpoint/fmod/fsunnonlinsol_fixedpoint_mod.c rename to src/sunnonlinsol/fixedpoint/fmod_int32/fsunnonlinsol_fixedpoint_mod.c diff --git a/src/sunnonlinsol/fixedpoint/fmod/fsunnonlinsol_fixedpoint_mod.f90 b/src/sunnonlinsol/fixedpoint/fmod_int32/fsunnonlinsol_fixedpoint_mod.f90 similarity index 100% rename from src/sunnonlinsol/fixedpoint/fmod/fsunnonlinsol_fixedpoint_mod.f90 rename to src/sunnonlinsol/fixedpoint/fmod_int32/fsunnonlinsol_fixedpoint_mod.f90 diff --git a/src/sunnonlinsol/fixedpoint/fmod_int64/CMakeLists.txt b/src/sunnonlinsol/fixedpoint/fmod_int64/CMakeLists.txt new file mode 100644 index 0000000000..bb2f0097b6 --- /dev/null +++ b/src/sunnonlinsol/fixedpoint/fmod_int64/CMakeLists.txt @@ -0,0 +1,32 @@ +# --------------------------------------------------------------- +# Programmer(s): Cody J. Balos @ LLNL +# --------------------------------------------------------------- +# SUNDIALS Copyright Start +# Copyright (c) 2002-2024, Lawrence Livermore National Security +# and Southern Methodist University. +# All rights reserved. +# +# See the top-level LICENSE and NOTICE files for details. +# +# SPDX-License-Identifier: BSD-3-Clause +# SUNDIALS Copyright End +# --------------------------------------------------------------- +# CMakeLists.txt file for the F2003 fixed-point SUNNonlinearSolver +# object library +# --------------------------------------------------------------- + +sundials_add_f2003_library(sundials_fsunnonlinsolfixedpoint_mod + SOURCES + fsunnonlinsol_fixedpoint_mod.f90 fsunnonlinsol_fixedpoint_mod.c + LINK_LIBRARIES + PUBLIC sundials_fcore_mod + OBJECT_LIBRARIES + OUTPUT_NAME + sundials_fsunnonlinsolfixedpoint_mod + VERSION + ${sunnonlinsollib_VERSION} + SOVERSION + ${sunnonlinsollib_SOVERSION} +) + +message(STATUS "Added SUNNONLINSOL_FIXEDPOINT F2003 interface") diff --git a/src/sunnonlinsol/fixedpoint/fmod_int64/fsunnonlinsol_fixedpoint_mod.c b/src/sunnonlinsol/fixedpoint/fmod_int64/fsunnonlinsol_fixedpoint_mod.c new file mode 100644 index 0000000000..3911f51201 --- /dev/null +++ b/src/sunnonlinsol/fixedpoint/fmod_int64/fsunnonlinsol_fixedpoint_mod.c @@ -0,0 +1,419 @@ +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.0 + * + * This file is not intended to be easily readable and contains a number of + * coding conventions designed to improve portability and efficiency. Do not make + * changes to this file unless you know what you are doing--modify the SWIG + * interface file instead. + * ----------------------------------------------------------------------------- */ + +/* --------------------------------------------------------------- + * Programmer(s): Auto-generated by swig. + * --------------------------------------------------------------- + * SUNDIALS Copyright Start + * Copyright (c) 2002-2024, Lawrence Livermore National Security + * and Southern Methodist University. + * All rights reserved. + * + * See the top-level LICENSE and NOTICE files for details. + * + * SPDX-License-Identifier: BSD-3-Clause + * SUNDIALS Copyright End + * -------------------------------------------------------------*/ + +/* ----------------------------------------------------------------------------- + * This section contains generic SWIG labels for method/variable + * declarations/attributes, and other compiler dependent labels. + * ----------------------------------------------------------------------------- */ + +/* template workaround for compilers that cannot correctly implement the C++ standard */ +#ifndef SWIGTEMPLATEDISAMBIGUATOR +# if defined(__SUNPRO_CC) && (__SUNPRO_CC <= 0x560) +# define SWIGTEMPLATEDISAMBIGUATOR template +# elif defined(__HP_aCC) +/* Needed even with `aCC -AA' when `aCC -V' reports HP ANSI C++ B3910B A.03.55 */ +/* If we find a maximum version that requires this, the test would be __HP_aCC <= 35500 for A.03.55 */ +# define SWIGTEMPLATEDISAMBIGUATOR template +# else +# define SWIGTEMPLATEDISAMBIGUATOR +# endif +#endif + +/* inline attribute */ +#ifndef SWIGINLINE +# if defined(__cplusplus) || (defined(__GNUC__) && !defined(__STRICT_ANSI__)) +# define SWIGINLINE inline +# else +# define SWIGINLINE +# endif +#endif + +/* attribute recognised by some compilers to avoid 'unused' warnings */ +#ifndef SWIGUNUSED +# if defined(__GNUC__) +# if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)) +# define SWIGUNUSED __attribute__ ((__unused__)) +# else +# define SWIGUNUSED +# endif +# elif defined(__ICC) +# define SWIGUNUSED __attribute__ ((__unused__)) +# else +# define SWIGUNUSED +# endif +#endif + +#ifndef SWIG_MSC_UNSUPPRESS_4505 +# if defined(_MSC_VER) +# pragma warning(disable : 4505) /* unreferenced local function has been removed */ +# endif +#endif + +#ifndef SWIGUNUSEDPARM +# ifdef __cplusplus +# define SWIGUNUSEDPARM(p) +# else +# define SWIGUNUSEDPARM(p) p SWIGUNUSED +# endif +#endif + +/* internal SWIG method */ +#ifndef SWIGINTERN +# define SWIGINTERN static SWIGUNUSED +#endif + +/* internal inline SWIG method */ +#ifndef SWIGINTERNINLINE +# define SWIGINTERNINLINE SWIGINTERN SWIGINLINE +#endif + +/* qualifier for exported *const* global data variables*/ +#ifndef SWIGEXTERN +# ifdef __cplusplus +# define SWIGEXTERN extern +# else +# define SWIGEXTERN +# endif +#endif + +/* exporting methods */ +#if defined(__GNUC__) +# if (__GNUC__ >= 4) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) +# ifndef GCC_HASCLASSVISIBILITY +# define GCC_HASCLASSVISIBILITY +# endif +# endif +#endif + +#ifndef SWIGEXPORT +# if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__) +# if defined(STATIC_LINKED) +# define SWIGEXPORT +# else +# define SWIGEXPORT __declspec(dllexport) +# endif +# else +# if defined(__GNUC__) && defined(GCC_HASCLASSVISIBILITY) +# define SWIGEXPORT __attribute__ ((visibility("default"))) +# else +# define SWIGEXPORT +# endif +# endif +#endif + +/* calling conventions for Windows */ +#ifndef SWIGSTDCALL +# if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__) +# define SWIGSTDCALL __stdcall +# else +# define SWIGSTDCALL +# endif +#endif + +/* Deal with Microsoft's attempt at deprecating C standard runtime functions */ +#if !defined(SWIG_NO_CRT_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_CRT_SECURE_NO_DEPRECATE) +# define _CRT_SECURE_NO_DEPRECATE +#endif + +/* Deal with Microsoft's attempt at deprecating methods in the standard C++ library */ +#if !defined(SWIG_NO_SCL_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_SCL_SECURE_NO_DEPRECATE) +# define _SCL_SECURE_NO_DEPRECATE +#endif + +/* Deal with Apple's deprecated 'AssertMacros.h' from Carbon-framework */ +#if defined(__APPLE__) && !defined(__ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES) +# define __ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES 0 +#endif + +/* Intel's compiler complains if a variable which was never initialised is + * cast to void, which is a common idiom which we use to indicate that we + * are aware a variable isn't used. So we just silence that warning. + * See: https://github.com/swig/swig/issues/192 for more discussion. + */ +#ifdef __INTEL_COMPILER +# pragma warning disable 592 +#endif + +/* Errors in SWIG */ +#define SWIG_UnknownError -1 +#define SWIG_IOError -2 +#define SWIG_RuntimeError -3 +#define SWIG_IndexError -4 +#define SWIG_TypeError -5 +#define SWIG_DivisionByZero -6 +#define SWIG_OverflowError -7 +#define SWIG_SyntaxError -8 +#define SWIG_ValueError -9 +#define SWIG_SystemError -10 +#define SWIG_AttributeError -11 +#define SWIG_MemoryError -12 +#define SWIG_NullReferenceError -13 + + + + +#include +#define SWIG_exception_impl(DECL, CODE, MSG, RETURNNULL) \ + { printf("In " DECL ": " MSG); assert(0); RETURNNULL; } + + +#include +#if defined(_MSC_VER) || defined(__BORLANDC__) || defined(_WATCOM) +# ifndef snprintf +# define snprintf _snprintf +# endif +#endif + + +/* Support for the `contract` feature. + * + * Note that RETURNNULL is first because it's inserted via a 'Replaceall' in + * the fortran.cxx file. + */ +#define SWIG_contract_assert(RETURNNULL, EXPR, MSG) \ + if (!(EXPR)) { SWIG_exception_impl("$decl", SWIG_ValueError, MSG, RETURNNULL); } + + +#define SWIGVERSION 0x040000 +#define SWIG_VERSION SWIGVERSION + + +#define SWIG_as_voidptr(a) (void *)((const void *)(a)) +#define SWIG_as_voidptrptr(a) ((void)SWIG_as_voidptr(*a),(void**)(a)) + + +#include "sundials/sundials_nonlinearsolver.h" + + +#include "sunnonlinsol/sunnonlinsol_fixedpoint.h" + +SWIGEXPORT SUNNonlinearSolver _wrap_FSUNNonlinSol_FixedPoint(N_Vector farg1, int const *farg2, void *farg3) { + SUNNonlinearSolver fresult ; + N_Vector arg1 = (N_Vector) 0 ; + int arg2 ; + SUNContext arg3 = (SUNContext) 0 ; + SUNNonlinearSolver result; + + arg1 = (N_Vector)(farg1); + arg2 = (int)(*farg2); + arg3 = (SUNContext)(farg3); + result = (SUNNonlinearSolver)SUNNonlinSol_FixedPoint(arg1,arg2,arg3); + fresult = result; + return fresult; +} + + +SWIGEXPORT SUNNonlinearSolver _wrap_FSUNNonlinSol_FixedPointSens(int const *farg1, N_Vector farg2, int const *farg3, void *farg4) { + SUNNonlinearSolver fresult ; + int arg1 ; + N_Vector arg2 = (N_Vector) 0 ; + int arg3 ; + SUNContext arg4 = (SUNContext) 0 ; + SUNNonlinearSolver result; + + arg1 = (int)(*farg1); + arg2 = (N_Vector)(farg2); + arg3 = (int)(*farg3); + arg4 = (SUNContext)(farg4); + result = (SUNNonlinearSolver)SUNNonlinSol_FixedPointSens(arg1,arg2,arg3,arg4); + fresult = result; + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNNonlinSolGetType_FixedPoint(SUNNonlinearSolver farg1) { + int fresult ; + SUNNonlinearSolver arg1 = (SUNNonlinearSolver) 0 ; + SUNNonlinearSolver_Type result; + + arg1 = (SUNNonlinearSolver)(farg1); + result = (SUNNonlinearSolver_Type)SUNNonlinSolGetType_FixedPoint(arg1); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNNonlinSolInitialize_FixedPoint(SUNNonlinearSolver farg1) { + int fresult ; + SUNNonlinearSolver arg1 = (SUNNonlinearSolver) 0 ; + SUNErrCode result; + + arg1 = (SUNNonlinearSolver)(farg1); + result = (SUNErrCode)SUNNonlinSolInitialize_FixedPoint(arg1); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNNonlinSolSolve_FixedPoint(SUNNonlinearSolver farg1, N_Vector farg2, N_Vector farg3, N_Vector farg4, double const *farg5, int const *farg6, void *farg7) { + int fresult ; + SUNNonlinearSolver arg1 = (SUNNonlinearSolver) 0 ; + N_Vector arg2 = (N_Vector) 0 ; + N_Vector arg3 = (N_Vector) 0 ; + N_Vector arg4 = (N_Vector) 0 ; + sunrealtype arg5 ; + int arg6 ; + void *arg7 = (void *) 0 ; + int result; + + arg1 = (SUNNonlinearSolver)(farg1); + arg2 = (N_Vector)(farg2); + arg3 = (N_Vector)(farg3); + arg4 = (N_Vector)(farg4); + arg5 = (sunrealtype)(*farg5); + arg6 = (int)(*farg6); + arg7 = (void *)(farg7); + result = (int)SUNNonlinSolSolve_FixedPoint(arg1,arg2,arg3,arg4,arg5,arg6,arg7); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNNonlinSolFree_FixedPoint(SUNNonlinearSolver farg1) { + int fresult ; + SUNNonlinearSolver arg1 = (SUNNonlinearSolver) 0 ; + SUNErrCode result; + + arg1 = (SUNNonlinearSolver)(farg1); + result = (SUNErrCode)SUNNonlinSolFree_FixedPoint(arg1); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNNonlinSolSetSysFn_FixedPoint(SUNNonlinearSolver farg1, SUNNonlinSolSysFn farg2) { + int fresult ; + SUNNonlinearSolver arg1 = (SUNNonlinearSolver) 0 ; + SUNNonlinSolSysFn arg2 = (SUNNonlinSolSysFn) 0 ; + SUNErrCode result; + + arg1 = (SUNNonlinearSolver)(farg1); + arg2 = (SUNNonlinSolSysFn)(farg2); + result = (SUNErrCode)SUNNonlinSolSetSysFn_FixedPoint(arg1,arg2); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNNonlinSolSetConvTestFn_FixedPoint(SUNNonlinearSolver farg1, SUNNonlinSolConvTestFn farg2, void *farg3) { + int fresult ; + SUNNonlinearSolver arg1 = (SUNNonlinearSolver) 0 ; + SUNNonlinSolConvTestFn arg2 = (SUNNonlinSolConvTestFn) 0 ; + void *arg3 = (void *) 0 ; + SUNErrCode result; + + arg1 = (SUNNonlinearSolver)(farg1); + arg2 = (SUNNonlinSolConvTestFn)(farg2); + arg3 = (void *)(farg3); + result = (SUNErrCode)SUNNonlinSolSetConvTestFn_FixedPoint(arg1,arg2,arg3); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNNonlinSolSetMaxIters_FixedPoint(SUNNonlinearSolver farg1, int const *farg2) { + int fresult ; + SUNNonlinearSolver arg1 = (SUNNonlinearSolver) 0 ; + int arg2 ; + SUNErrCode result; + + arg1 = (SUNNonlinearSolver)(farg1); + arg2 = (int)(*farg2); + result = (SUNErrCode)SUNNonlinSolSetMaxIters_FixedPoint(arg1,arg2); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNNonlinSolSetDamping_FixedPoint(SUNNonlinearSolver farg1, double const *farg2) { + int fresult ; + SUNNonlinearSolver arg1 = (SUNNonlinearSolver) 0 ; + sunrealtype arg2 ; + SUNErrCode result; + + arg1 = (SUNNonlinearSolver)(farg1); + arg2 = (sunrealtype)(*farg2); + result = (SUNErrCode)SUNNonlinSolSetDamping_FixedPoint(arg1,arg2); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNNonlinSolGetNumIters_FixedPoint(SUNNonlinearSolver farg1, long *farg2) { + int fresult ; + SUNNonlinearSolver arg1 = (SUNNonlinearSolver) 0 ; + long *arg2 = (long *) 0 ; + SUNErrCode result; + + arg1 = (SUNNonlinearSolver)(farg1); + arg2 = (long *)(farg2); + result = (SUNErrCode)SUNNonlinSolGetNumIters_FixedPoint(arg1,arg2); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNNonlinSolGetCurIter_FixedPoint(SUNNonlinearSolver farg1, int *farg2) { + int fresult ; + SUNNonlinearSolver arg1 = (SUNNonlinearSolver) 0 ; + int *arg2 = (int *) 0 ; + SUNErrCode result; + + arg1 = (SUNNonlinearSolver)(farg1); + arg2 = (int *)(farg2); + result = (SUNErrCode)SUNNonlinSolGetCurIter_FixedPoint(arg1,arg2); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNNonlinSolGetNumConvFails_FixedPoint(SUNNonlinearSolver farg1, long *farg2) { + int fresult ; + SUNNonlinearSolver arg1 = (SUNNonlinearSolver) 0 ; + long *arg2 = (long *) 0 ; + SUNErrCode result; + + arg1 = (SUNNonlinearSolver)(farg1); + arg2 = (long *)(farg2); + result = (SUNErrCode)SUNNonlinSolGetNumConvFails_FixedPoint(arg1,arg2); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNNonlinSolGetSysFn_FixedPoint(SUNNonlinearSolver farg1, void *farg2) { + int fresult ; + SUNNonlinearSolver arg1 = (SUNNonlinearSolver) 0 ; + SUNNonlinSolSysFn *arg2 = (SUNNonlinSolSysFn *) 0 ; + SUNErrCode result; + + arg1 = (SUNNonlinearSolver)(farg1); + arg2 = (SUNNonlinSolSysFn *)(farg2); + result = (SUNErrCode)SUNNonlinSolGetSysFn_FixedPoint(arg1,arg2); + fresult = (SUNErrCode)(result); + return fresult; +} + + + diff --git a/src/sunnonlinsol/fixedpoint/fmod_int64/fsunnonlinsol_fixedpoint_mod.f90 b/src/sunnonlinsol/fixedpoint/fmod_int64/fsunnonlinsol_fixedpoint_mod.f90 new file mode 100644 index 0000000000..763e069388 --- /dev/null +++ b/src/sunnonlinsol/fixedpoint/fmod_int64/fsunnonlinsol_fixedpoint_mod.f90 @@ -0,0 +1,425 @@ +! This file was automatically generated by SWIG (http://www.swig.org). +! Version 4.0.0 +! +! Do not make changes to this file unless you know what you are doing--modify +! the SWIG interface file instead. + +! --------------------------------------------------------------- +! Programmer(s): Auto-generated by swig. +! --------------------------------------------------------------- +! SUNDIALS Copyright Start +! Copyright (c) 2002-2024, Lawrence Livermore National Security +! and Southern Methodist University. +! All rights reserved. +! +! See the top-level LICENSE and NOTICE files for details. +! +! SPDX-License-Identifier: BSD-3-Clause +! SUNDIALS Copyright End +! --------------------------------------------------------------- + +module fsunnonlinsol_fixedpoint_mod + use, intrinsic :: ISO_C_BINDING + use fsundials_core_mod + implicit none + private + + ! DECLARATION CONSTRUCTS + public :: FSUNNonlinSol_FixedPoint + public :: FSUNNonlinSol_FixedPointSens + public :: FSUNNonlinSolGetType_FixedPoint + public :: FSUNNonlinSolInitialize_FixedPoint + public :: FSUNNonlinSolSolve_FixedPoint + public :: FSUNNonlinSolFree_FixedPoint + public :: FSUNNonlinSolSetSysFn_FixedPoint + public :: FSUNNonlinSolSetConvTestFn_FixedPoint + public :: FSUNNonlinSolSetMaxIters_FixedPoint + public :: FSUNNonlinSolSetDamping_FixedPoint + public :: FSUNNonlinSolGetNumIters_FixedPoint + public :: FSUNNonlinSolGetCurIter_FixedPoint + public :: FSUNNonlinSolGetNumConvFails_FixedPoint + public :: FSUNNonlinSolGetSysFn_FixedPoint + +! WRAPPER DECLARATIONS +interface +function swigc_FSUNNonlinSol_FixedPoint(farg1, farg2, farg3) & +bind(C, name="_wrap_FSUNNonlinSol_FixedPoint") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +type(C_PTR), value :: farg3 +type(C_PTR) :: fresult +end function + +function swigc_FSUNNonlinSol_FixedPointSens(farg1, farg2, farg3, farg4) & +bind(C, name="_wrap_FSUNNonlinSol_FixedPointSens") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +integer(C_INT), intent(in) :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT), intent(in) :: farg3 +type(C_PTR), value :: farg4 +type(C_PTR) :: fresult +end function + +function swigc_FSUNNonlinSolGetType_FixedPoint(farg1) & +bind(C, name="_wrap_FSUNNonlinSolGetType_FixedPoint") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT) :: fresult +end function + +function swigc_FSUNNonlinSolInitialize_FixedPoint(farg1) & +bind(C, name="_wrap_FSUNNonlinSolInitialize_FixedPoint") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT) :: fresult +end function + +function swigc_FSUNNonlinSolSolve_FixedPoint(farg1, farg2, farg3, farg4, farg5, farg6, farg7) & +bind(C, name="_wrap_FSUNNonlinSolSolve_FixedPoint") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +type(C_PTR), value :: farg4 +real(C_DOUBLE), intent(in) :: farg5 +integer(C_INT), intent(in) :: farg6 +type(C_PTR), value :: farg7 +integer(C_INT) :: fresult +end function + +function swigc_FSUNNonlinSolFree_FixedPoint(farg1) & +bind(C, name="_wrap_FSUNNonlinSolFree_FixedPoint") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT) :: fresult +end function + +function swigc_FSUNNonlinSolSetSysFn_FixedPoint(farg1, farg2) & +bind(C, name="_wrap_FSUNNonlinSolSetSysFn_FixedPoint") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_FUNPTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FSUNNonlinSolSetConvTestFn_FixedPoint(farg1, farg2, farg3) & +bind(C, name="_wrap_FSUNNonlinSolSetConvTestFn_FixedPoint") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_FUNPTR), value :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FSUNNonlinSolSetMaxIters_FixedPoint(farg1, farg2) & +bind(C, name="_wrap_FSUNNonlinSolSetMaxIters_FixedPoint") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FSUNNonlinSolSetDamping_FixedPoint(farg1, farg2) & +bind(C, name="_wrap_FSUNNonlinSolSetDamping_FixedPoint") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FSUNNonlinSolGetNumIters_FixedPoint(farg1, farg2) & +bind(C, name="_wrap_FSUNNonlinSolGetNumIters_FixedPoint") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FSUNNonlinSolGetCurIter_FixedPoint(farg1, farg2) & +bind(C, name="_wrap_FSUNNonlinSolGetCurIter_FixedPoint") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FSUNNonlinSolGetNumConvFails_FixedPoint(farg1, farg2) & +bind(C, name="_wrap_FSUNNonlinSolGetNumConvFails_FixedPoint") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FSUNNonlinSolGetSysFn_FixedPoint(farg1, farg2) & +bind(C, name="_wrap_FSUNNonlinSolGetSysFn_FixedPoint") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +end interface + + +contains + ! MODULE SUBPROGRAMS +function FSUNNonlinSol_FixedPoint(y, m, sunctx) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +type(SUNNonlinearSolver), pointer :: swig_result +type(N_Vector), target, intent(inout) :: y +integer(C_INT), intent(in) :: m +type(C_PTR) :: sunctx +type(C_PTR) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 +type(C_PTR) :: farg3 + +farg1 = c_loc(y) +farg2 = m +farg3 = sunctx +fresult = swigc_FSUNNonlinSol_FixedPoint(farg1, farg2, farg3) +call c_f_pointer(fresult, swig_result) +end function + +function FSUNNonlinSol_FixedPointSens(count, y, m, sunctx) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +type(SUNNonlinearSolver), pointer :: swig_result +integer(C_INT), intent(in) :: count +type(N_Vector), target, intent(inout) :: y +integer(C_INT), intent(in) :: m +type(C_PTR) :: sunctx +type(C_PTR) :: fresult +integer(C_INT) :: farg1 +type(C_PTR) :: farg2 +integer(C_INT) :: farg3 +type(C_PTR) :: farg4 + +farg1 = count +farg2 = c_loc(y) +farg3 = m +farg4 = sunctx +fresult = swigc_FSUNNonlinSol_FixedPointSens(farg1, farg2, farg3, farg4) +call c_f_pointer(fresult, swig_result) +end function + +function FSUNNonlinSolGetType_FixedPoint(nls) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(SUNNonlinearSolver_Type) :: swig_result +type(SUNNonlinearSolver), target, intent(inout) :: nls +integer(C_INT) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(nls) +fresult = swigc_FSUNNonlinSolGetType_FixedPoint(farg1) +swig_result = fresult +end function + +function FSUNNonlinSolInitialize_FixedPoint(nls) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNNonlinearSolver), target, intent(inout) :: nls +integer(C_INT) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(nls) +fresult = swigc_FSUNNonlinSolInitialize_FixedPoint(farg1) +swig_result = fresult +end function + +function FSUNNonlinSolSolve_FixedPoint(nls, y0, y, w, tol, callsetup, mem) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNNonlinearSolver), target, intent(inout) :: nls +type(N_Vector), target, intent(inout) :: y0 +type(N_Vector), target, intent(inout) :: y +type(N_Vector), target, intent(inout) :: w +real(C_DOUBLE), intent(in) :: tol +integer(C_INT), intent(in) :: callsetup +type(C_PTR) :: mem +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 +type(C_PTR) :: farg4 +real(C_DOUBLE) :: farg5 +integer(C_INT) :: farg6 +type(C_PTR) :: farg7 + +farg1 = c_loc(nls) +farg2 = c_loc(y0) +farg3 = c_loc(y) +farg4 = c_loc(w) +farg5 = tol +farg6 = callsetup +farg7 = mem +fresult = swigc_FSUNNonlinSolSolve_FixedPoint(farg1, farg2, farg3, farg4, farg5, farg6, farg7) +swig_result = fresult +end function + +function FSUNNonlinSolFree_FixedPoint(nls) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNNonlinearSolver), target, intent(inout) :: nls +integer(C_INT) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(nls) +fresult = swigc_FSUNNonlinSolFree_FixedPoint(farg1) +swig_result = fresult +end function + +function FSUNNonlinSolSetSysFn_FixedPoint(nls, sysfn) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNNonlinearSolver), target, intent(inout) :: nls +type(C_FUNPTR), intent(in), value :: sysfn +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_FUNPTR) :: farg2 + +farg1 = c_loc(nls) +farg2 = sysfn +fresult = swigc_FSUNNonlinSolSetSysFn_FixedPoint(farg1, farg2) +swig_result = fresult +end function + +function FSUNNonlinSolSetConvTestFn_FixedPoint(nls, ctestfn, ctest_data) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNNonlinearSolver), target, intent(inout) :: nls +type(C_FUNPTR), intent(in), value :: ctestfn +type(C_PTR) :: ctest_data +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_FUNPTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = c_loc(nls) +farg2 = ctestfn +farg3 = ctest_data +fresult = swigc_FSUNNonlinSolSetConvTestFn_FixedPoint(farg1, farg2, farg3) +swig_result = fresult +end function + +function FSUNNonlinSolSetMaxIters_FixedPoint(nls, maxiters) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNNonlinearSolver), target, intent(inout) :: nls +integer(C_INT), intent(in) :: maxiters +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = c_loc(nls) +farg2 = maxiters +fresult = swigc_FSUNNonlinSolSetMaxIters_FixedPoint(farg1, farg2) +swig_result = fresult +end function + +function FSUNNonlinSolSetDamping_FixedPoint(nls, beta) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNNonlinearSolver), target, intent(inout) :: nls +real(C_DOUBLE), intent(in) :: beta +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +real(C_DOUBLE) :: farg2 + +farg1 = c_loc(nls) +farg2 = beta +fresult = swigc_FSUNNonlinSolSetDamping_FixedPoint(farg1, farg2) +swig_result = fresult +end function + +function FSUNNonlinSolGetNumIters_FixedPoint(nls, niters) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNNonlinearSolver), target, intent(inout) :: nls +integer(C_LONG), dimension(*), target, intent(inout) :: niters +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = c_loc(nls) +farg2 = c_loc(niters(1)) +fresult = swigc_FSUNNonlinSolGetNumIters_FixedPoint(farg1, farg2) +swig_result = fresult +end function + +function FSUNNonlinSolGetCurIter_FixedPoint(nls, iter) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNNonlinearSolver), target, intent(inout) :: nls +integer(C_INT), dimension(*), target, intent(inout) :: iter +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = c_loc(nls) +farg2 = c_loc(iter(1)) +fresult = swigc_FSUNNonlinSolGetCurIter_FixedPoint(farg1, farg2) +swig_result = fresult +end function + +function FSUNNonlinSolGetNumConvFails_FixedPoint(nls, nconvfails) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNNonlinearSolver), target, intent(inout) :: nls +integer(C_LONG), dimension(*), target, intent(inout) :: nconvfails +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = c_loc(nls) +farg2 = c_loc(nconvfails(1)) +fresult = swigc_FSUNNonlinSolGetNumConvFails_FixedPoint(farg1, farg2) +swig_result = fresult +end function + +function FSUNNonlinSolGetSysFn_FixedPoint(nls, sysfn) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNNonlinearSolver), target, intent(inout) :: nls +type(C_FUNPTR), target, intent(inout) :: sysfn +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = c_loc(nls) +farg2 = c_loc(sysfn) +fresult = swigc_FSUNNonlinSolGetSysFn_FixedPoint(farg1, farg2) +swig_result = fresult +end function + + +end module diff --git a/src/sunnonlinsol/newton/CMakeLists.txt b/src/sunnonlinsol/newton/CMakeLists.txt index 141b978996..718b026d3f 100644 --- a/src/sunnonlinsol/newton/CMakeLists.txt +++ b/src/sunnonlinsol/newton/CMakeLists.txt @@ -39,5 +39,5 @@ message(STATUS "Added SUNNONLINSOL_NEWTON module") # Add F2003 module if interface is enabled if(BUILD_FORTRAN_MODULE_INTERFACE) - add_subdirectory(fmod) + add_subdirectory("fmod_int${SUNDIALS_INDEX_SIZE}") endif() diff --git a/src/sunnonlinsol/newton/fmod/CMakeLists.txt b/src/sunnonlinsol/newton/fmod_int32/CMakeLists.txt similarity index 100% rename from src/sunnonlinsol/newton/fmod/CMakeLists.txt rename to src/sunnonlinsol/newton/fmod_int32/CMakeLists.txt diff --git a/src/sunnonlinsol/newton/fmod/fsunnonlinsol_newton_mod.c b/src/sunnonlinsol/newton/fmod_int32/fsunnonlinsol_newton_mod.c similarity index 100% rename from src/sunnonlinsol/newton/fmod/fsunnonlinsol_newton_mod.c rename to src/sunnonlinsol/newton/fmod_int32/fsunnonlinsol_newton_mod.c diff --git a/src/sunnonlinsol/newton/fmod/fsunnonlinsol_newton_mod.f90 b/src/sunnonlinsol/newton/fmod_int32/fsunnonlinsol_newton_mod.f90 similarity index 100% rename from src/sunnonlinsol/newton/fmod/fsunnonlinsol_newton_mod.f90 rename to src/sunnonlinsol/newton/fmod_int32/fsunnonlinsol_newton_mod.f90 diff --git a/src/sunnonlinsol/newton/fmod_int64/CMakeLists.txt b/src/sunnonlinsol/newton/fmod_int64/CMakeLists.txt new file mode 100644 index 0000000000..46be1ab585 --- /dev/null +++ b/src/sunnonlinsol/newton/fmod_int64/CMakeLists.txt @@ -0,0 +1,32 @@ +# --------------------------------------------------------------- +# Programmer(s): Cody J. Balos @ LLNL +# --------------------------------------------------------------- +# SUNDIALS Copyright Start +# Copyright (c) 2002-2024, Lawrence Livermore National Security +# and Southern Methodist University. +# All rights reserved. +# +# See the top-level LICENSE and NOTICE files for details. +# +# SPDX-License-Identifier: BSD-3-Clause +# SUNDIALS Copyright End +# --------------------------------------------------------------- +# CMakeLists.txt file for the F2003 Newton SUNNonlinearSolver +# object library +# --------------------------------------------------------------- + +sundials_add_f2003_library(sundials_fsunnonlinsolnewton_mod + SOURCES + fsunnonlinsol_newton_mod.f90 fsunnonlinsol_newton_mod.c + LINK_LIBRARIES + PUBLIC sundials_fcore_mod + OBJECT_LIBRARIES + OUTPUT_NAME + sundials_fsunnonlinsolnewton_mod + VERSION + ${sunnonlinsollib_VERSION} + SOVERSION + ${sunnonlinsollib_SOVERSION} +) + +message(STATUS "Added SUNNONLINSOL_NEWTON F2003 interface") diff --git a/src/sunnonlinsol/newton/fmod_int64/fsunnonlinsol_newton_mod.c b/src/sunnonlinsol/newton/fmod_int64/fsunnonlinsol_newton_mod.c new file mode 100644 index 0000000000..a7df613d41 --- /dev/null +++ b/src/sunnonlinsol/newton/fmod_int64/fsunnonlinsol_newton_mod.c @@ -0,0 +1,429 @@ +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.0 + * + * This file is not intended to be easily readable and contains a number of + * coding conventions designed to improve portability and efficiency. Do not make + * changes to this file unless you know what you are doing--modify the SWIG + * interface file instead. + * ----------------------------------------------------------------------------- */ + +/* --------------------------------------------------------------- + * Programmer(s): Auto-generated by swig. + * --------------------------------------------------------------- + * SUNDIALS Copyright Start + * Copyright (c) 2002-2024, Lawrence Livermore National Security + * and Southern Methodist University. + * All rights reserved. + * + * See the top-level LICENSE and NOTICE files for details. + * + * SPDX-License-Identifier: BSD-3-Clause + * SUNDIALS Copyright End + * -------------------------------------------------------------*/ + +/* ----------------------------------------------------------------------------- + * This section contains generic SWIG labels for method/variable + * declarations/attributes, and other compiler dependent labels. + * ----------------------------------------------------------------------------- */ + +/* template workaround for compilers that cannot correctly implement the C++ standard */ +#ifndef SWIGTEMPLATEDISAMBIGUATOR +# if defined(__SUNPRO_CC) && (__SUNPRO_CC <= 0x560) +# define SWIGTEMPLATEDISAMBIGUATOR template +# elif defined(__HP_aCC) +/* Needed even with `aCC -AA' when `aCC -V' reports HP ANSI C++ B3910B A.03.55 */ +/* If we find a maximum version that requires this, the test would be __HP_aCC <= 35500 for A.03.55 */ +# define SWIGTEMPLATEDISAMBIGUATOR template +# else +# define SWIGTEMPLATEDISAMBIGUATOR +# endif +#endif + +/* inline attribute */ +#ifndef SWIGINLINE +# if defined(__cplusplus) || (defined(__GNUC__) && !defined(__STRICT_ANSI__)) +# define SWIGINLINE inline +# else +# define SWIGINLINE +# endif +#endif + +/* attribute recognised by some compilers to avoid 'unused' warnings */ +#ifndef SWIGUNUSED +# if defined(__GNUC__) +# if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)) +# define SWIGUNUSED __attribute__ ((__unused__)) +# else +# define SWIGUNUSED +# endif +# elif defined(__ICC) +# define SWIGUNUSED __attribute__ ((__unused__)) +# else +# define SWIGUNUSED +# endif +#endif + +#ifndef SWIG_MSC_UNSUPPRESS_4505 +# if defined(_MSC_VER) +# pragma warning(disable : 4505) /* unreferenced local function has been removed */ +# endif +#endif + +#ifndef SWIGUNUSEDPARM +# ifdef __cplusplus +# define SWIGUNUSEDPARM(p) +# else +# define SWIGUNUSEDPARM(p) p SWIGUNUSED +# endif +#endif + +/* internal SWIG method */ +#ifndef SWIGINTERN +# define SWIGINTERN static SWIGUNUSED +#endif + +/* internal inline SWIG method */ +#ifndef SWIGINTERNINLINE +# define SWIGINTERNINLINE SWIGINTERN SWIGINLINE +#endif + +/* qualifier for exported *const* global data variables*/ +#ifndef SWIGEXTERN +# ifdef __cplusplus +# define SWIGEXTERN extern +# else +# define SWIGEXTERN +# endif +#endif + +/* exporting methods */ +#if defined(__GNUC__) +# if (__GNUC__ >= 4) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) +# ifndef GCC_HASCLASSVISIBILITY +# define GCC_HASCLASSVISIBILITY +# endif +# endif +#endif + +#ifndef SWIGEXPORT +# if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__) +# if defined(STATIC_LINKED) +# define SWIGEXPORT +# else +# define SWIGEXPORT __declspec(dllexport) +# endif +# else +# if defined(__GNUC__) && defined(GCC_HASCLASSVISIBILITY) +# define SWIGEXPORT __attribute__ ((visibility("default"))) +# else +# define SWIGEXPORT +# endif +# endif +#endif + +/* calling conventions for Windows */ +#ifndef SWIGSTDCALL +# if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__) +# define SWIGSTDCALL __stdcall +# else +# define SWIGSTDCALL +# endif +#endif + +/* Deal with Microsoft's attempt at deprecating C standard runtime functions */ +#if !defined(SWIG_NO_CRT_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_CRT_SECURE_NO_DEPRECATE) +# define _CRT_SECURE_NO_DEPRECATE +#endif + +/* Deal with Microsoft's attempt at deprecating methods in the standard C++ library */ +#if !defined(SWIG_NO_SCL_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_SCL_SECURE_NO_DEPRECATE) +# define _SCL_SECURE_NO_DEPRECATE +#endif + +/* Deal with Apple's deprecated 'AssertMacros.h' from Carbon-framework */ +#if defined(__APPLE__) && !defined(__ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES) +# define __ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES 0 +#endif + +/* Intel's compiler complains if a variable which was never initialised is + * cast to void, which is a common idiom which we use to indicate that we + * are aware a variable isn't used. So we just silence that warning. + * See: https://github.com/swig/swig/issues/192 for more discussion. + */ +#ifdef __INTEL_COMPILER +# pragma warning disable 592 +#endif + +/* Errors in SWIG */ +#define SWIG_UnknownError -1 +#define SWIG_IOError -2 +#define SWIG_RuntimeError -3 +#define SWIG_IndexError -4 +#define SWIG_TypeError -5 +#define SWIG_DivisionByZero -6 +#define SWIG_OverflowError -7 +#define SWIG_SyntaxError -8 +#define SWIG_ValueError -9 +#define SWIG_SystemError -10 +#define SWIG_AttributeError -11 +#define SWIG_MemoryError -12 +#define SWIG_NullReferenceError -13 + + + + +#include +#define SWIG_exception_impl(DECL, CODE, MSG, RETURNNULL) \ + { printf("In " DECL ": " MSG); assert(0); RETURNNULL; } + + +#include +#if defined(_MSC_VER) || defined(__BORLANDC__) || defined(_WATCOM) +# ifndef snprintf +# define snprintf _snprintf +# endif +#endif + + +/* Support for the `contract` feature. + * + * Note that RETURNNULL is first because it's inserted via a 'Replaceall' in + * the fortran.cxx file. + */ +#define SWIG_contract_assert(RETURNNULL, EXPR, MSG) \ + if (!(EXPR)) { SWIG_exception_impl("$decl", SWIG_ValueError, MSG, RETURNNULL); } + + +#define SWIGVERSION 0x040000 +#define SWIG_VERSION SWIGVERSION + + +#define SWIG_as_voidptr(a) (void *)((const void *)(a)) +#define SWIG_as_voidptrptr(a) ((void)SWIG_as_voidptr(*a),(void**)(a)) + + +#include "sundials/sundials_nonlinearsolver.h" + + +#include "sunnonlinsol/sunnonlinsol_newton.h" + +SWIGEXPORT SUNNonlinearSolver _wrap_FSUNNonlinSol_Newton(N_Vector farg1, void *farg2) { + SUNNonlinearSolver fresult ; + N_Vector arg1 = (N_Vector) 0 ; + SUNContext arg2 = (SUNContext) 0 ; + SUNNonlinearSolver result; + + arg1 = (N_Vector)(farg1); + arg2 = (SUNContext)(farg2); + result = (SUNNonlinearSolver)SUNNonlinSol_Newton(arg1,arg2); + fresult = result; + return fresult; +} + + +SWIGEXPORT SUNNonlinearSolver _wrap_FSUNNonlinSol_NewtonSens(int const *farg1, N_Vector farg2, void *farg3) { + SUNNonlinearSolver fresult ; + int arg1 ; + N_Vector arg2 = (N_Vector) 0 ; + SUNContext arg3 = (SUNContext) 0 ; + SUNNonlinearSolver result; + + arg1 = (int)(*farg1); + arg2 = (N_Vector)(farg2); + arg3 = (SUNContext)(farg3); + result = (SUNNonlinearSolver)SUNNonlinSol_NewtonSens(arg1,arg2,arg3); + fresult = result; + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNNonlinSolGetType_Newton(SUNNonlinearSolver farg1) { + int fresult ; + SUNNonlinearSolver arg1 = (SUNNonlinearSolver) 0 ; + SUNNonlinearSolver_Type result; + + arg1 = (SUNNonlinearSolver)(farg1); + result = (SUNNonlinearSolver_Type)SUNNonlinSolGetType_Newton(arg1); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNNonlinSolInitialize_Newton(SUNNonlinearSolver farg1) { + int fresult ; + SUNNonlinearSolver arg1 = (SUNNonlinearSolver) 0 ; + SUNErrCode result; + + arg1 = (SUNNonlinearSolver)(farg1); + result = (SUNErrCode)SUNNonlinSolInitialize_Newton(arg1); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNNonlinSolSolve_Newton(SUNNonlinearSolver farg1, N_Vector farg2, N_Vector farg3, N_Vector farg4, double const *farg5, int const *farg6, void *farg7) { + int fresult ; + SUNNonlinearSolver arg1 = (SUNNonlinearSolver) 0 ; + N_Vector arg2 = (N_Vector) 0 ; + N_Vector arg3 = (N_Vector) 0 ; + N_Vector arg4 = (N_Vector) 0 ; + sunrealtype arg5 ; + int arg6 ; + void *arg7 = (void *) 0 ; + int result; + + arg1 = (SUNNonlinearSolver)(farg1); + arg2 = (N_Vector)(farg2); + arg3 = (N_Vector)(farg3); + arg4 = (N_Vector)(farg4); + arg5 = (sunrealtype)(*farg5); + arg6 = (int)(*farg6); + arg7 = (void *)(farg7); + result = (int)SUNNonlinSolSolve_Newton(arg1,arg2,arg3,arg4,arg5,arg6,arg7); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNNonlinSolFree_Newton(SUNNonlinearSolver farg1) { + int fresult ; + SUNNonlinearSolver arg1 = (SUNNonlinearSolver) 0 ; + SUNErrCode result; + + arg1 = (SUNNonlinearSolver)(farg1); + result = (SUNErrCode)SUNNonlinSolFree_Newton(arg1); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNNonlinSolSetSysFn_Newton(SUNNonlinearSolver farg1, SUNNonlinSolSysFn farg2) { + int fresult ; + SUNNonlinearSolver arg1 = (SUNNonlinearSolver) 0 ; + SUNNonlinSolSysFn arg2 = (SUNNonlinSolSysFn) 0 ; + SUNErrCode result; + + arg1 = (SUNNonlinearSolver)(farg1); + arg2 = (SUNNonlinSolSysFn)(farg2); + result = (SUNErrCode)SUNNonlinSolSetSysFn_Newton(arg1,arg2); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNNonlinSolSetLSetupFn_Newton(SUNNonlinearSolver farg1, SUNNonlinSolLSetupFn farg2) { + int fresult ; + SUNNonlinearSolver arg1 = (SUNNonlinearSolver) 0 ; + SUNNonlinSolLSetupFn arg2 = (SUNNonlinSolLSetupFn) 0 ; + SUNErrCode result; + + arg1 = (SUNNonlinearSolver)(farg1); + arg2 = (SUNNonlinSolLSetupFn)(farg2); + result = (SUNErrCode)SUNNonlinSolSetLSetupFn_Newton(arg1,arg2); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNNonlinSolSetLSolveFn_Newton(SUNNonlinearSolver farg1, SUNNonlinSolLSolveFn farg2) { + int fresult ; + SUNNonlinearSolver arg1 = (SUNNonlinearSolver) 0 ; + SUNNonlinSolLSolveFn arg2 = (SUNNonlinSolLSolveFn) 0 ; + SUNErrCode result; + + arg1 = (SUNNonlinearSolver)(farg1); + arg2 = (SUNNonlinSolLSolveFn)(farg2); + result = (SUNErrCode)SUNNonlinSolSetLSolveFn_Newton(arg1,arg2); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNNonlinSolSetConvTestFn_Newton(SUNNonlinearSolver farg1, SUNNonlinSolConvTestFn farg2, void *farg3) { + int fresult ; + SUNNonlinearSolver arg1 = (SUNNonlinearSolver) 0 ; + SUNNonlinSolConvTestFn arg2 = (SUNNonlinSolConvTestFn) 0 ; + void *arg3 = (void *) 0 ; + SUNErrCode result; + + arg1 = (SUNNonlinearSolver)(farg1); + arg2 = (SUNNonlinSolConvTestFn)(farg2); + arg3 = (void *)(farg3); + result = (SUNErrCode)SUNNonlinSolSetConvTestFn_Newton(arg1,arg2,arg3); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNNonlinSolSetMaxIters_Newton(SUNNonlinearSolver farg1, int const *farg2) { + int fresult ; + SUNNonlinearSolver arg1 = (SUNNonlinearSolver) 0 ; + int arg2 ; + SUNErrCode result; + + arg1 = (SUNNonlinearSolver)(farg1); + arg2 = (int)(*farg2); + result = (SUNErrCode)SUNNonlinSolSetMaxIters_Newton(arg1,arg2); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNNonlinSolGetNumIters_Newton(SUNNonlinearSolver farg1, long *farg2) { + int fresult ; + SUNNonlinearSolver arg1 = (SUNNonlinearSolver) 0 ; + long *arg2 = (long *) 0 ; + SUNErrCode result; + + arg1 = (SUNNonlinearSolver)(farg1); + arg2 = (long *)(farg2); + result = (SUNErrCode)SUNNonlinSolGetNumIters_Newton(arg1,arg2); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNNonlinSolGetCurIter_Newton(SUNNonlinearSolver farg1, int *farg2) { + int fresult ; + SUNNonlinearSolver arg1 = (SUNNonlinearSolver) 0 ; + int *arg2 = (int *) 0 ; + SUNErrCode result; + + arg1 = (SUNNonlinearSolver)(farg1); + arg2 = (int *)(farg2); + result = (SUNErrCode)SUNNonlinSolGetCurIter_Newton(arg1,arg2); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNNonlinSolGetNumConvFails_Newton(SUNNonlinearSolver farg1, long *farg2) { + int fresult ; + SUNNonlinearSolver arg1 = (SUNNonlinearSolver) 0 ; + long *arg2 = (long *) 0 ; + SUNErrCode result; + + arg1 = (SUNNonlinearSolver)(farg1); + arg2 = (long *)(farg2); + result = (SUNErrCode)SUNNonlinSolGetNumConvFails_Newton(arg1,arg2); + fresult = (SUNErrCode)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FSUNNonlinSolGetSysFn_Newton(SUNNonlinearSolver farg1, void *farg2) { + int fresult ; + SUNNonlinearSolver arg1 = (SUNNonlinearSolver) 0 ; + SUNNonlinSolSysFn *arg2 = (SUNNonlinSolSysFn *) 0 ; + SUNErrCode result; + + arg1 = (SUNNonlinearSolver)(farg1); + arg2 = (SUNNonlinSolSysFn *)(farg2); + result = (SUNErrCode)SUNNonlinSolGetSysFn_Newton(arg1,arg2); + fresult = (SUNErrCode)(result); + return fresult; +} + + + diff --git a/src/sunnonlinsol/newton/fmod_int64/fsunnonlinsol_newton_mod.f90 b/src/sunnonlinsol/newton/fmod_int64/fsunnonlinsol_newton_mod.f90 new file mode 100644 index 0000000000..53a4bb2bd3 --- /dev/null +++ b/src/sunnonlinsol/newton/fmod_int64/fsunnonlinsol_newton_mod.f90 @@ -0,0 +1,443 @@ +! This file was automatically generated by SWIG (http://www.swig.org). +! Version 4.0.0 +! +! Do not make changes to this file unless you know what you are doing--modify +! the SWIG interface file instead. + +! --------------------------------------------------------------- +! Programmer(s): Auto-generated by swig. +! --------------------------------------------------------------- +! SUNDIALS Copyright Start +! Copyright (c) 2002-2024, Lawrence Livermore National Security +! and Southern Methodist University. +! All rights reserved. +! +! See the top-level LICENSE and NOTICE files for details. +! +! SPDX-License-Identifier: BSD-3-Clause +! SUNDIALS Copyright End +! --------------------------------------------------------------- + +module fsunnonlinsol_newton_mod + use, intrinsic :: ISO_C_BINDING + use fsundials_core_mod + implicit none + private + + ! DECLARATION CONSTRUCTS + public :: FSUNNonlinSol_Newton + public :: FSUNNonlinSol_NewtonSens + public :: FSUNNonlinSolGetType_Newton + public :: FSUNNonlinSolInitialize_Newton + public :: FSUNNonlinSolSolve_Newton + public :: FSUNNonlinSolFree_Newton + public :: FSUNNonlinSolSetSysFn_Newton + public :: FSUNNonlinSolSetLSetupFn_Newton + public :: FSUNNonlinSolSetLSolveFn_Newton + public :: FSUNNonlinSolSetConvTestFn_Newton + public :: FSUNNonlinSolSetMaxIters_Newton + public :: FSUNNonlinSolGetNumIters_Newton + public :: FSUNNonlinSolGetCurIter_Newton + public :: FSUNNonlinSolGetNumConvFails_Newton + public :: FSUNNonlinSolGetSysFn_Newton + +! WRAPPER DECLARATIONS +interface +function swigc_FSUNNonlinSol_Newton(farg1, farg2) & +bind(C, name="_wrap_FSUNNonlinSol_Newton") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR) :: fresult +end function + +function swigc_FSUNNonlinSol_NewtonSens(farg1, farg2, farg3) & +bind(C, name="_wrap_FSUNNonlinSol_NewtonSens") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +integer(C_INT), intent(in) :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +type(C_PTR) :: fresult +end function + +function swigc_FSUNNonlinSolGetType_Newton(farg1) & +bind(C, name="_wrap_FSUNNonlinSolGetType_Newton") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT) :: fresult +end function + +function swigc_FSUNNonlinSolInitialize_Newton(farg1) & +bind(C, name="_wrap_FSUNNonlinSolInitialize_Newton") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT) :: fresult +end function + +function swigc_FSUNNonlinSolSolve_Newton(farg1, farg2, farg3, farg4, farg5, farg6, farg7) & +bind(C, name="_wrap_FSUNNonlinSolSolve_Newton") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +type(C_PTR), value :: farg4 +real(C_DOUBLE), intent(in) :: farg5 +integer(C_INT), intent(in) :: farg6 +type(C_PTR), value :: farg7 +integer(C_INT) :: fresult +end function + +function swigc_FSUNNonlinSolFree_Newton(farg1) & +bind(C, name="_wrap_FSUNNonlinSolFree_Newton") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT) :: fresult +end function + +function swigc_FSUNNonlinSolSetSysFn_Newton(farg1, farg2) & +bind(C, name="_wrap_FSUNNonlinSolSetSysFn_Newton") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_FUNPTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FSUNNonlinSolSetLSetupFn_Newton(farg1, farg2) & +bind(C, name="_wrap_FSUNNonlinSolSetLSetupFn_Newton") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_FUNPTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FSUNNonlinSolSetLSolveFn_Newton(farg1, farg2) & +bind(C, name="_wrap_FSUNNonlinSolSetLSolveFn_Newton") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_FUNPTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FSUNNonlinSolSetConvTestFn_Newton(farg1, farg2, farg3) & +bind(C, name="_wrap_FSUNNonlinSolSetConvTestFn_Newton") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_FUNPTR), value :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + +function swigc_FSUNNonlinSolSetMaxIters_Newton(farg1, farg2) & +bind(C, name="_wrap_FSUNNonlinSolSetMaxIters_Newton") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FSUNNonlinSolGetNumIters_Newton(farg1, farg2) & +bind(C, name="_wrap_FSUNNonlinSolGetNumIters_Newton") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FSUNNonlinSolGetCurIter_Newton(farg1, farg2) & +bind(C, name="_wrap_FSUNNonlinSolGetCurIter_Newton") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FSUNNonlinSolGetNumConvFails_Newton(farg1, farg2) & +bind(C, name="_wrap_FSUNNonlinSolGetNumConvFails_Newton") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FSUNNonlinSolGetSysFn_Newton(farg1, farg2) & +bind(C, name="_wrap_FSUNNonlinSolGetSysFn_Newton") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + +end interface + + +contains + ! MODULE SUBPROGRAMS +function FSUNNonlinSol_Newton(y, sunctx) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +type(SUNNonlinearSolver), pointer :: swig_result +type(N_Vector), target, intent(inout) :: y +type(C_PTR) :: sunctx +type(C_PTR) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = c_loc(y) +farg2 = sunctx +fresult = swigc_FSUNNonlinSol_Newton(farg1, farg2) +call c_f_pointer(fresult, swig_result) +end function + +function FSUNNonlinSol_NewtonSens(count, y, sunctx) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +type(SUNNonlinearSolver), pointer :: swig_result +integer(C_INT), intent(in) :: count +type(N_Vector), target, intent(inout) :: y +type(C_PTR) :: sunctx +type(C_PTR) :: fresult +integer(C_INT) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = count +farg2 = c_loc(y) +farg3 = sunctx +fresult = swigc_FSUNNonlinSol_NewtonSens(farg1, farg2, farg3) +call c_f_pointer(fresult, swig_result) +end function + +function FSUNNonlinSolGetType_Newton(nls) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(SUNNonlinearSolver_Type) :: swig_result +type(SUNNonlinearSolver), target, intent(inout) :: nls +integer(C_INT) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(nls) +fresult = swigc_FSUNNonlinSolGetType_Newton(farg1) +swig_result = fresult +end function + +function FSUNNonlinSolInitialize_Newton(nls) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNNonlinearSolver), target, intent(inout) :: nls +integer(C_INT) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(nls) +fresult = swigc_FSUNNonlinSolInitialize_Newton(farg1) +swig_result = fresult +end function + +function FSUNNonlinSolSolve_Newton(nls, y0, y, w, tol, calllsetup, mem) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNNonlinearSolver), target, intent(inout) :: nls +type(N_Vector), target, intent(inout) :: y0 +type(N_Vector), target, intent(inout) :: y +type(N_Vector), target, intent(inout) :: w +real(C_DOUBLE), intent(in) :: tol +integer(C_INT), intent(in) :: calllsetup +type(C_PTR) :: mem +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 +type(C_PTR) :: farg4 +real(C_DOUBLE) :: farg5 +integer(C_INT) :: farg6 +type(C_PTR) :: farg7 + +farg1 = c_loc(nls) +farg2 = c_loc(y0) +farg3 = c_loc(y) +farg4 = c_loc(w) +farg5 = tol +farg6 = calllsetup +farg7 = mem +fresult = swigc_FSUNNonlinSolSolve_Newton(farg1, farg2, farg3, farg4, farg5, farg6, farg7) +swig_result = fresult +end function + +function FSUNNonlinSolFree_Newton(nls) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNNonlinearSolver), target, intent(inout) :: nls +integer(C_INT) :: fresult +type(C_PTR) :: farg1 + +farg1 = c_loc(nls) +fresult = swigc_FSUNNonlinSolFree_Newton(farg1) +swig_result = fresult +end function + +function FSUNNonlinSolSetSysFn_Newton(nls, sysfn) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNNonlinearSolver), target, intent(inout) :: nls +type(C_FUNPTR), intent(in), value :: sysfn +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_FUNPTR) :: farg2 + +farg1 = c_loc(nls) +farg2 = sysfn +fresult = swigc_FSUNNonlinSolSetSysFn_Newton(farg1, farg2) +swig_result = fresult +end function + +function FSUNNonlinSolSetLSetupFn_Newton(nls, lsetupfn) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNNonlinearSolver), target, intent(inout) :: nls +type(C_FUNPTR), intent(in), value :: lsetupfn +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_FUNPTR) :: farg2 + +farg1 = c_loc(nls) +farg2 = lsetupfn +fresult = swigc_FSUNNonlinSolSetLSetupFn_Newton(farg1, farg2) +swig_result = fresult +end function + +function FSUNNonlinSolSetLSolveFn_Newton(nls, lsolvefn) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNNonlinearSolver), target, intent(inout) :: nls +type(C_FUNPTR), intent(in), value :: lsolvefn +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_FUNPTR) :: farg2 + +farg1 = c_loc(nls) +farg2 = lsolvefn +fresult = swigc_FSUNNonlinSolSetLSolveFn_Newton(farg1, farg2) +swig_result = fresult +end function + +function FSUNNonlinSolSetConvTestFn_Newton(nls, ctestfn, ctest_data) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNNonlinearSolver), target, intent(inout) :: nls +type(C_FUNPTR), intent(in), value :: ctestfn +type(C_PTR) :: ctest_data +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_FUNPTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = c_loc(nls) +farg2 = ctestfn +farg3 = ctest_data +fresult = swigc_FSUNNonlinSolSetConvTestFn_Newton(farg1, farg2, farg3) +swig_result = fresult +end function + +function FSUNNonlinSolSetMaxIters_Newton(nls, maxiters) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNNonlinearSolver), target, intent(inout) :: nls +integer(C_INT), intent(in) :: maxiters +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 + +farg1 = c_loc(nls) +farg2 = maxiters +fresult = swigc_FSUNNonlinSolSetMaxIters_Newton(farg1, farg2) +swig_result = fresult +end function + +function FSUNNonlinSolGetNumIters_Newton(nls, niters) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNNonlinearSolver), target, intent(inout) :: nls +integer(C_LONG), dimension(*), target, intent(inout) :: niters +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = c_loc(nls) +farg2 = c_loc(niters(1)) +fresult = swigc_FSUNNonlinSolGetNumIters_Newton(farg1, farg2) +swig_result = fresult +end function + +function FSUNNonlinSolGetCurIter_Newton(nls, iter) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNNonlinearSolver), target, intent(inout) :: nls +integer(C_INT), dimension(*), target, intent(inout) :: iter +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = c_loc(nls) +farg2 = c_loc(iter(1)) +fresult = swigc_FSUNNonlinSolGetCurIter_Newton(farg1, farg2) +swig_result = fresult +end function + +function FSUNNonlinSolGetNumConvFails_Newton(nls, nconvfails) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNNonlinearSolver), target, intent(inout) :: nls +integer(C_LONG), dimension(*), target, intent(inout) :: nconvfails +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = c_loc(nls) +farg2 = c_loc(nconvfails(1)) +fresult = swigc_FSUNNonlinSolGetNumConvFails_Newton(farg1, farg2) +swig_result = fresult +end function + +function FSUNNonlinSolGetSysFn_Newton(nls, sysfn) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(SUNNonlinearSolver), target, intent(inout) :: nls +type(C_FUNPTR), target, intent(inout) :: sysfn +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = c_loc(nls) +farg2 = c_loc(sysfn) +fresult = swigc_FSUNNonlinSolGetSysFn_Newton(farg1, farg2) +swig_result = fresult +end function + + +end module diff --git a/swig/Makefile b/swig/Makefile index 7264855297..f8aabe16ba 100644 --- a/swig/Makefile +++ b/swig/Makefile @@ -20,7 +20,7 @@ CVODES=fcvodes_mod IDA=fida_mod IDAS=fidas_mod KINSOL=fkinsol_mod -GENERIC=fsundials_core_mod +CORE=fsundials_core_mod NVECTOR=openmp pthreads serial parallel manyvector mpiplusx SUNMATRIX=band dense sparse SUNLINSOL=band dense lapackdense klu spbcgs spfgmr spgmr sptfqmr pcg @@ -29,90 +29,97 @@ SUNADAPTCONTROLLER=imexgus soderlind INCLUDES=-I../include -.PHONY: generic arkode cvode cvodes ida idas kinsol nvector sunmatrix sunlinsol sunnonlinsol sunadaptcontroller patch +.PHONY: .SETINT64 .SETINT32 all all32 all64 modules core arkode cvode cvodes ida idas kinsol nvector mpimanyvector sunmatrix sunlinsol sunnonlinsol sunadaptcontroller clean -all: generic arkode cvode cvodes ida idas kinsol nvector sunmatrix sunlinsol sunnonlinsol sunadaptcontroller patch +.SETINT32: + $(eval INT_SIZE=32) + +.SETINT64: + $(eval INT_SIZE=64) + +all: all32 all64 + +all32: .SETINT32 modules + +all64: .SETINT64 modules + +modules: core arkode cvode cvodes ida idas kinsol nvector sunmatrix sunlinsol sunnonlinsol sunadaptcontroller + +core: $(CORE:%:sundials/%.i) + @for i in ${CORE} ; do \ + set -x; \ + swig -DGENERATE_INT${INT_SIZE} -fortran -outdir ../src/sundials/fmod_int${INT_SIZE} -o ../src/sundials/fmod_int${INT_SIZE}/$${i}.c ${INCLUDES} sundials/$${i}.i; \ + done arkode: $(ARKODE:%:arkode/%.i) @for i in ${ARKODE} ; do \ - echo "swig -fortran -outdir ../src/arkode/fmod -o ../src/arkode/fmod/$${i}.c ${INCLUDES} arkode/$${i}.i" ; \ - swig -fortran -outdir ../src/arkode/fmod -o ../src/arkode/fmod/$${i}.c ${INCLUDES} arkode/$${i}.i ; \ + set -x; \ + swig -DGENERATE_INT${INT_SIZE} -fortran -outdir ../src/arkode/fmod_int${INT_SIZE} -o ../src/arkode/fmod_int${INT_SIZE}/$${i}.c ${INCLUDES} arkode/$${i}.i; \ done cvode: $(CVODE:%:cvode/%.i) @for i in ${CVODE} ; do \ - echo "swig -fortran -outdir ../src/cvode/fmod -o ../src/cvode/fmod/$${i}.c ${INCLUDES} cvode/$${i}.i" ; \ - swig -fortran -outdir ../src/cvode/fmod -o ../src/cvode/fmod/$${i}.c ${INCLUDES} cvode/$${i}.i ; \ + set -x; \ + swig -DGENERATE_INT${INT_SIZE} -fortran -outdir ../src/cvode/fmod_int${INT_SIZE} -o ../src/cvode/fmod_int${INT_SIZE}/$${i}.c ${INCLUDES} cvode/$${i}.i; \ done cvodes: $(CVODE:%:cvodes/%.i) @for i in ${CVODES} ; do \ - echo "swig -fortran -outdir ../src/cvodes/fmod -o ../src/cvodes/fmod/$${i}.c ${INCLUDES} cvodes/$${i}.i" ; \ - swig -fortran -outdir ../src/cvodes/fmod -o ../src/cvodes/fmod/$${i}.c ${INCLUDES} cvodes/$${i}.i ; \ + set -x; \ + swig -DGENERATE_INT${INT_SIZE} -fortran -outdir ../src/cvodes/fmod_int${INT_SIZE} -o ../src/cvodes/fmod_int${INT_SIZE}/$${i}.c ${INCLUDES} cvodes/$${i}.i; \ done ida: $(IDA:%:ida/%.i) @for i in ${IDA} ; do \ - echo "swig -fortran -outdir ../src/ida/fmod -o ../src/ida/fmod/$${i}.c ${INCLUDES} ida/$${i}.i" ; \ - swig -fortran -outdir ../src/ida/fmod -o ../src/ida/fmod/$${i}.c ${INCLUDES} ida/$${i}.i ; \ + set -x; \ + swig -DGENERATE_INT${INT_SIZE} -fortran -outdir ../src/ida/fmod_int${INT_SIZE} -o ../src/ida/fmod_int${INT_SIZE}/$${i}.c ${INCLUDES} ida/$${i}.i; \ done idas: $(IDAS:%:idas/%.i) @for i in ${IDAS} ; do \ - echo "swig -fortran -outdir ../src/idas/fmod -o ../src/idas/fmod/$${i}.c ${INCLUDES} idas/$${i}.i" ; \ - swig -fortran -outdir ../src/idas/fmod -o ../src/idas/fmod/$${i}.c ${INCLUDES} idas/$${i}.i ; \ + set -x; \ + swig -DGENERATE_INT${INT_SIZE} -fortran -outdir ../src/idas/fmod_int${INT_SIZE} -o ../src/idas/fmod_int${INT_SIZE}/$${i}.c ${INCLUDES} idas/$${i}.i; \ done kinsol: $(KINSOL:%:kinsol/%.i) @for i in ${KINSOL} ; do \ - echo "swig -fortran -outdir ../src/kinsol/fmod -o ../src/kinsol/fmod/$${i}.c ${INCLUDES} kinsol/$${i}" ; \ - swig -fortran -outdir ../src/kinsol/fmod -o ../src/kinsol/fmod/$${i}.c ${INCLUDES} kinsol/$${i}.i ; \ - done - -generic: $(GENERIC:%:sundials/%.i) - @for i in ${GENERIC} ; do \ - echo "swig -fortran -outdir ../src/sundials/fmod -o ../src/sundials/fmod/$${i}.c ${INCLUDES} $${i}" ; \ - swig -fortran -outdir ../src/sundials/fmod -o ../src/sundials/fmod/$${i}.c ${INCLUDES} sundials/$${i}.i ; \ + set -x; \ + swig -DGENERATE_INT${INT_SIZE} -fortran -outdir ../src/kinsol/fmod_int${INT_SIZE} -o ../src/kinsol/fmod_int${INT_SIZE}/$${i}.c ${INCLUDES} kinsol/$${i}.i; \ done nvector: $(NVECTOR:%:nvector/fnvector_%_mod.i) mpimanyvector @for i in ${NVECTOR} ; do \ - echo "swig -fortran -outdir ../src/nvector/$${i}/fmod -o ../src/nvector/$${i}/fmod ${INCLUDES} nvector/fnvector_$${i}_mod.i" ; \ - swig -fortran -outdir ../src/nvector/$${i}/fmod -o ../src/nvector/$${i}/fmod/fnvector_$${i}_mod.c ${INCLUDES} nvector/fnvector_$${i}_mod.i ; \ + set -x; \ + swig -DGENERATE_INT${INT_SIZE} -fortran -outdir ../src/nvector/$${i}/fmod_int${INT_SIZE} -o ../src/nvector/$${i}/fmod_int${INT_SIZE}/fnvector_$${i}_mod.c ${INCLUDES} nvector/fnvector_$${i}_mod.i; \ done mpimanyvector: nvector/fnvector_mpimanyvector_mod.i - @echo "swig -fortran -outdir ../src/nvector/manyvector/fmod -o ../src/nvector/manyvector/fmod ${INCLUDES} nvector/fnvector_mpimanyvector_mod.i" ; \ - swig -fortran -outdir ../src/nvector/manyvector/fmod -o ../src/nvector/manyvector/fmod/fnvector_mpimanyvector_mod.c ${INCLUDES} nvector/fnvector_mpimanyvector_mod.i ; \ + set -x; \ + swig -DGENERATE_INT${INT_SIZE} -fortran -outdir ../src/nvector/manyvector/fmod_int${INT_SIZE} -o ../src/nvector/manyvector/fmod_int${INT_SIZE}/fnvector_mpimanyvector_mod.c ${INCLUDES} nvector/fnvector_mpimanyvector_mod.i; sunmatrix: $(SUNMATRIX:%:sunmatrix/fsunmatrix_%_mod.i) @for i in ${SUNMATRIX} ; do \ - echo "swig -fortran -outdir ../src/sunmatrix/$${i}/fmod -o ../src/sunmatrix/$${i}/fmod ${INCLUDES} sunmatrix/fsunmatrix_$${i}_mod.i" ; \ - swig -fortran -outdir ../src/sunmatrix/$${i}/fmod -o ../src/sunmatrix/$${i}/fmod/fsunmatrix_$${i}_mod.c ${INCLUDES} sunmatrix/fsunmatrix_$${i}_mod.i ; \ + set -x; \ + swig -DGENERATE_INT${INT_SIZE} -fortran -outdir ../src/sunmatrix/$${i}/fmod_int${INT_SIZE} -o ../src/sunmatrix/$${i}/fmod_int${INT_SIZE}/fsunmatrix_$${i}_mod.c ${INCLUDES} sunmatrix/fsunmatrix_$${i}_mod.i; \ done sunlinsol: $(SUNLINSOL:%:sunlinsol/fsunlinsol_%_mod.i) @for i in ${SUNLINSOL} ; do \ - echo "swig -fortran -outdir ../src/sunlinsol/$${i}/fmod -o ../src/sunlinsol/$${i}/fmod ${INCLUDES} sunlinsol/fsunlinsol_$${i}_mod.i" ; \ - swig -fortran -outdir ../src/sunlinsol/$${i}/fmod -o ../src/sunlinsol/$${i}/fmod/fsunlinsol_$${i}_mod.c ${INCLUDES} sunlinsol/fsunlinsol_$${i}_mod.i ; \ + set -x; \ + swig -DGENERATE_INT${INT_SIZE} -fortran -outdir ../src/sunlinsol/$${i}/fmod_int${INT_SIZE} -o ../src/sunlinsol/$${i}/fmod_int${INT_SIZE}/fsunlinsol_$${i}_mod.c ${INCLUDES} sunlinsol/fsunlinsol_$${i}_mod.i; \ done sunnonlinsol: $(SUNNONLINSOL:%:sunnonlinsol/fsunnonlinsol_%_mod.i) @for i in ${SUNNONLINSOL} ; do \ - echo "swig -fortran -outdir ../src/sunnonlinsol/$${i}/fmod -o ../src/sunnonlinsol/$${i}/fmod ${INCLUDES} sunnonlinsol/fsunnonlinsol_$${i}_mod.i" ; \ - swig -fortran -outdir ../src/sunnonlinsol/$${i}/fmod -o ../src/sunnonlinsol/$${i}/fmod/fsunnonlinsol_$${i}_mod.c ${INCLUDES} sunnonlinsol/fsunnonlinsol_$${i}_mod.i ; \ + set -x; \ + swig -DGENERATE_INT${INT_SIZE} -fortran -outdir ../src/sunnonlinsol/$${i}/fmod_int${INT_SIZE} -o ../src/sunnonlinsol/$${i}/fmod_int${INT_SIZE}/fsunnonlinsol_$${i}_mod.c ${INCLUDES} sunnonlinsol/fsunnonlinsol_$${i}_mod.i; \ done sunadaptcontroller: $(SUNADAPTCONTROLLER:%:sunadaptcontroller/fsunadaptcontroller_%_mod.i) @for i in ${SUNADAPTCONTROLLER} ; do \ - echo "swig -fortran -outdir ../src/sunadaptcontroller/$${i}/fmod -o ../src/sunadaptcontroller/$${i}/fmod ${INCLUDES} sunadaptcontroller/fsunadaptcontroller_$${i}_mod.i" ; \ - swig -fortran -outdir ../src/sunadaptcontroller/$${i}/fmod -o ../src/sunadaptcontroller/$${i}/fmod/fsunadaptcontroller_$${i}_mod.c ${INCLUDES} sunadaptcontroller/fsunadaptcontroller_$${i}_mod.i ; \ + set -x; \ + swig -DGENERATE_INT${INT_SIZE} -fortran -outdir ../src/sunadaptcontroller/$${i}/fmod_int${INT_SIZE} -o ../src/sunadaptcontroller/$${i}/fmod_int${INT_SIZE}/fsunadaptcontroller_$${i}_mod.c ${INCLUDES} sunadaptcontroller/fsunadaptcontroller_$${i}_mod.i; \ done -patch: .FORCE - cd ..; - clean: - rm ../src/**/fmod/*.c; rm ../src/**/fmod/*.f90 - -.FORCE: ; + rm ../src/**/fmod*/*.c; rm ../src/**/fmod*/*.f90 diff --git a/swig/README.md b/swig/README.md index ab12b54893..ae3b174264 100644 --- a/swig/README.md +++ b/swig/README.md @@ -52,8 +52,8 @@ $ make install # optional ## How to regenerate the interfaces To regenerate the interfaces that have already been created. Simply run -`make` from the `sunrepo/swig` directory. **This will replace all the -generated files in `sunrepo/src`.** +`make all32 all64` from the `sundials/swig` directory. +**This will replace all the generated files in `sundials/src`.** ## Creating a new interface diff --git a/swig/nvector/fnvector_manyvector_mod.i b/swig/nvector/fnvector_manyvector_mod.i index 9bc07378a4..417197d0ef 100644 --- a/swig/nvector/fnvector_manyvector_mod.i +++ b/swig/nvector/fnvector_manyvector_mod.i @@ -55,7 +55,11 @@ bind(C, name="_wrap_FN_VGetSubvectorArrayPointer_ManyVector") & result(fresult) use, intrinsic :: ISO_C_BINDING type(C_PTR), value :: farg1 +#ifdef SUNDIALS_INT32_T +integer(C_INT32_T), intent(in) :: farg2 +#else integer(C_INT64_T), intent(in) :: farg2 +#endif type(C_PTR) :: fresult end function %} @@ -66,10 +70,18 @@ result(swig_result) use, intrinsic :: ISO_C_BINDING real(C_DOUBLE), dimension(:), pointer :: swig_result type(N_Vector), target, intent(inout) :: v +#ifdef SUNDIALS_INT32_T +integer(C_INT32_T), intent(in) :: vec_num +#else integer(C_INT64_T), intent(in) :: vec_num +#endif type(C_PTR) :: fresult type(C_PTR) :: farg1 +#ifdef SUNDIALS_INT32_T +integer(C_INT32_T) :: farg2 +#else integer(C_INT64_T) :: farg2 +#endif farg1 = c_loc(v) farg2 = vec_num diff --git a/swig/nvector/fnvector_mpimanyvector_mod.i b/swig/nvector/fnvector_mpimanyvector_mod.i index 83bb770d27..71dbe86b05 100644 --- a/swig/nvector/fnvector_mpimanyvector_mod.i +++ b/swig/nvector/fnvector_mpimanyvector_mod.i @@ -55,7 +55,11 @@ bind(C, name="_wrap_FN_VGetSubvectorArrayPointer_MPIManyVector") & result(fresult) use, intrinsic :: ISO_C_BINDING type(C_PTR), value :: farg1 +#ifdef SUNDIALS_INT32_T +integer(C_INT32_T), intent(in) :: farg2 +#else integer(C_INT64_T), intent(in) :: farg2 +#endif type(C_PTR) :: fresult end function %} @@ -66,10 +70,18 @@ result(swig_result) use, intrinsic :: ISO_C_BINDING real(C_DOUBLE), dimension(:), pointer :: swig_result type(N_Vector), target, intent(inout) :: v +#ifdef SUNDIALS_INT32_T +integer(C_INT32_T), intent(in) :: vec_num +#else integer(C_INT64_T), intent(in) :: vec_num +#endif type(C_PTR) :: fresult type(C_PTR) :: farg1 +#ifdef SUNDIALS_INT32_T +integer(C_INT32_T) :: farg2 +#else integer(C_INT64_T) :: farg2 +#endif farg1 = c_loc(v) farg2 = vec_num diff --git a/swig/sundials/fsundials.i b/swig/sundials/fsundials.i index 7f4f6f8b67..7ea007a29c 100644 --- a/swig/sundials/fsundials.i +++ b/swig/sundials/fsundials.i @@ -53,8 +53,11 @@ // Assume sunrealtype* is an array of doubles %apply double[] { sunrealtype* }; -// Assume sunindextype* is an array of long int -%apply long int[] { sunindextype* }; +#ifdef GENERATE_INT32 +%apply int[] { sunindextype* }; +#else +%apply long long[] { sunindextype* }; +#endif // Assume int* is an array of integers %apply int[] { int* }; diff --git a/swig/sundials/fsundials_types.i b/swig/sundials/fsundials_types.i index 5877bf99bb..248ec9d5e7 100644 --- a/swig/sundials/fsundials_types.i +++ b/swig/sundials/fsundials_types.i @@ -17,9 +17,15 @@ %include +#ifdef GENERATE_INT32 +// Inform SWIG of the configure-provided types +#define SUNDIALS_INT32_T +#define SUNDIALS_INDEX_TYPE int32_t +#else // Inform SWIG of the configure-provided types #define SUNDIALS_INT64_T #define SUNDIALS_INDEX_TYPE int64_t +#endif #define SUNDIALS_DOUBLE_PRECISION #define sunbooleantype int @@ -73,10 +79,6 @@ #ifndef SUNDIALS_DOUBLE_PRECISION #error "The Fortran bindings are only targeted at double-precision" #endif - -#ifndef SUNDIALS_INT64_T -#error "The Fortran bindings are only targeted at 64-bit indices" -#endif %} // We insert the binding code for SUN_COMM_NULL ourselves because diff --git a/swig/sunmatrix/fsunmatrix_band_mod.i b/swig/sunmatrix/fsunmatrix_band_mod.i index bc23b646fb..11e468608a 100644 --- a/swig/sunmatrix/fsunmatrix_band_mod.i +++ b/swig/sunmatrix/fsunmatrix_band_mod.i @@ -38,7 +38,7 @@ SWIGEXPORT double * _wrap_FSUNBandMatrix_Data(SUNMatrix farg1) { double * fresult ; SUNMatrix arg1 = (SUNMatrix) 0 ; sunrealtype *result = 0 ; - + arg1 = (SUNMatrix)(farg1); result = (sunrealtype *)SUNBandMatrix_Data(arg1); fresult = result; @@ -50,7 +50,7 @@ SWIGEXPORT double * _wrap_FSUNBandMatrix_Column(SUNMatrix farg1, int64_t const * SUNMatrix arg1 = (SUNMatrix) 0 ; sunindextype arg2 ; sunrealtype *result = 0 ; - + arg1 = (SUNMatrix)(farg1); arg2 = (sunindextype)(*farg2); result = (sunrealtype *)SUNBandMatrix_Column(arg1,arg2); @@ -78,7 +78,11 @@ bind(C, name="_wrap_FSUNBandMatrix_Column") & result(fresult) use, intrinsic :: ISO_C_BINDING type(C_PTR), value :: farg1 +#ifdef SUNDIALS_INT32_T +integer(C_INT32_T), intent(in) :: farg2 +#else integer(C_INT64_T), intent(in) :: farg2 +#endif type(C_PTR) :: fresult end function %} @@ -89,8 +93,8 @@ result(swig_result) use, intrinsic :: ISO_C_BINDING real(C_DOUBLE), dimension(:), pointer :: swig_result type(SUNMatrix), target, intent(inout) :: a -type(C_PTR) :: fresult -type(C_PTR) :: farg1 +type(C_PTR) :: fresult +type(C_PTR) :: farg1 farg1 = c_loc(a) fresult = swigc_FSUNBandMatrix_Data(farg1) @@ -102,15 +106,23 @@ result(swig_result) use, intrinsic :: ISO_C_BINDING real(C_DOUBLE), dimension(:), pointer :: swig_result type(SUNMatrix), target, intent(inout) :: a +#ifdef SUNDIALS_INT32_T +integer(C_INT32_T), intent(in) :: j +#else integer(C_INT64_T), intent(in) :: j -type(C_PTR) :: fresult -type(C_PTR) :: farg1 -integer(C_INT64_T) :: farg2 +#endif +type(C_PTR) :: fresult +type(C_PTR) :: farg1 +#ifdef SUNDIALS_INT32_T +integer(C_INT32_T) :: farg2 +#else +integer(C_INT64_T) :: farg2 +#endif farg1 = c_loc(a) farg2 = j fresult = swigc_FSUNBandMatrix_Column(farg1, farg2) -! We set the array shape to [1] because only the diagonal element +! We set the array shape to [1] because only the diagonal element ! can be accessed through this function from Fortran. call c_f_pointer(fresult, swig_result, [1]) end function diff --git a/swig/sunmatrix/fsunmatrix_dense_mod.i b/swig/sunmatrix/fsunmatrix_dense_mod.i index d2f72e31b4..572922617c 100644 --- a/swig/sunmatrix/fsunmatrix_dense_mod.i +++ b/swig/sunmatrix/fsunmatrix_dense_mod.i @@ -38,7 +38,7 @@ SWIGEXPORT double * _wrap_FSUNDenseMatrix_Data(SUNMatrix farg1) { double * fresult ; SUNMatrix arg1 = (SUNMatrix) 0 ; sunrealtype *result = 0 ; - + arg1 = (SUNMatrix)(farg1); result = (sunrealtype *)SUNDenseMatrix_Data(arg1); fresult = result; @@ -50,7 +50,7 @@ SWIGEXPORT double * _wrap_FSUNDenseMatrix_Column(SUNMatrix farg1, int64_t const SUNMatrix arg1 = (SUNMatrix) 0 ; sunindextype arg2 ; sunrealtype *result = 0 ; - + arg1 = (SUNMatrix)(farg1); arg2 = (sunindextype)(*farg2); result = (sunrealtype *)SUNDenseMatrix_Column(arg1,arg2); @@ -78,7 +78,11 @@ bind(C, name="_wrap_FSUNDenseMatrix_Column") & result(fresult) use, intrinsic :: ISO_C_BINDING type(C_PTR), value :: farg1 +#ifdef SUNDIALS_INT32_T +integer(C_INT32_T), intent(in) :: farg2 +#else integer(C_INT64_T), intent(in) :: farg2 +#endif type(C_PTR) :: fresult end function %} @@ -89,8 +93,8 @@ result(swig_result) use, intrinsic :: ISO_C_BINDING real(C_DOUBLE), dimension(:), pointer :: swig_result type(SUNMatrix), target, intent(inout) :: a -type(C_PTR) :: fresult -type(C_PTR) :: farg1 +type(C_PTR) :: fresult +type(C_PTR) :: farg1 farg1 = c_loc(a) fresult = swigc_FSUNDenseMatrix_Data(farg1) @@ -102,10 +106,18 @@ result(swig_result) use, intrinsic :: ISO_C_BINDING real(C_DOUBLE), dimension(:), pointer :: swig_result type(SUNMatrix), target, intent(inout) :: a +#ifdef SUNDIALS_INT32_T +integer(C_INT32_T), intent(in) :: j +#else integer(C_INT64_T), intent(in) :: j -type(C_PTR) :: fresult -type(C_PTR) :: farg1 -integer(C_INT64_T) :: farg2 +#endif +type(C_PTR) :: fresult +type(C_PTR) :: farg1 +#ifdef SUNDIALS_INT32_T +integer(C_INT32_T) :: farg2 +#else +integer(C_INT64_T) :: farg2 +#endif farg1 = c_loc(a) farg2 = j diff --git a/swig/sunmatrix/fsunmatrix_sparse_mod.i b/swig/sunmatrix/fsunmatrix_sparse_mod.i index 40b3d811eb..36ff430367 100644 --- a/swig/sunmatrix/fsunmatrix_sparse_mod.i +++ b/swig/sunmatrix/fsunmatrix_sparse_mod.i @@ -40,18 +40,41 @@ SWIGEXPORT double * _wrap_FSUNSparseMatrix_Data(SUNMatrix farg1) { double * fresult ; SUNMatrix arg1 = (SUNMatrix) 0 ; sunrealtype *result = 0 ; - + arg1 = (SUNMatrix)(farg1); result = (sunrealtype *)SUNSparseMatrix_Data(arg1); fresult = result; return fresult; } +#if SUNDIALS_INT32_T +SWIGEXPORT int32_t * _wrap_FSUNSparseMatrix_IndexValues(SUNMatrix farg1) { + int32_t * fresult ; + SUNMatrix arg1 = (SUNMatrix) 0 ; + sunindextype *result = 0 ; + + arg1 = (SUNMatrix)(farg1); + result = (sunindextype *)SUNSparseMatrix_IndexValues(arg1); + fresult = result; + return fresult; +} + +SWIGEXPORT int32_t * _wrap_FSUNSparseMatrix_IndexPointers(SUNMatrix farg1) { + int32_t * fresult ; + SUNMatrix arg1 = (SUNMatrix) 0 ; + sunindextype *result = 0 ; + + arg1 = (SUNMatrix)(farg1); + result = (sunindextype *)SUNSparseMatrix_IndexPointers(arg1); + fresult = result; + return fresult; +} +#else SWIGEXPORT int64_t * _wrap_FSUNSparseMatrix_IndexValues(SUNMatrix farg1) { int64_t * fresult ; SUNMatrix arg1 = (SUNMatrix) 0 ; sunindextype *result = 0 ; - + arg1 = (SUNMatrix)(farg1); result = (sunindextype *)SUNSparseMatrix_IndexValues(arg1); fresult = result; @@ -62,12 +85,13 @@ SWIGEXPORT int64_t * _wrap_FSUNSparseMatrix_IndexPointers(SUNMatrix farg1) { int64_t * fresult ; SUNMatrix arg1 = (SUNMatrix) 0 ; sunindextype *result = 0 ; - + arg1 = (SUNMatrix)(farg1); result = (sunindextype *)SUNSparseMatrix_IndexPointers(arg1); fresult = result; return fresult; } +#endif %} %insert("fdecl") %{ @@ -109,8 +133,8 @@ result(swig_result) use, intrinsic :: ISO_C_BINDING real(C_DOUBLE), dimension(:), pointer :: swig_result type(SUNMatrix), target, intent(inout) :: a -type(C_PTR) :: fresult -type(C_PTR) :: farg1 +type(C_PTR) :: fresult +type(C_PTR) :: farg1 farg1 = c_loc(a) fresult = swigc_FSUNSparseMatrix_Data(farg1) @@ -120,10 +144,14 @@ end function function FSUNSparseMatrix_IndexValues(a) & result(swig_result) use, intrinsic :: ISO_C_BINDING +#ifdef SUNDIALS_INT32_T +integer(C_INT32_T), dimension(:), pointer :: swig_result +#else integer(C_INT64_T), dimension(:), pointer :: swig_result +#endif type(SUNMatrix), target, intent(inout) :: a -type(C_PTR) :: fresult -type(C_PTR) :: farg1 +type(C_PTR) :: fresult +type(C_PTR) :: farg1 farg1 = c_loc(a) fresult = swigc_FSUNSparseMatrix_IndexValues(farg1) @@ -133,13 +161,17 @@ end function function FSUNSparseMatrix_IndexPointers(a) & result(swig_result) use, intrinsic :: ISO_C_BINDING +#ifdef SUNDIALS_INT32_T +integer(C_INT32_T), dimension(:), pointer :: swig_result +#else integer(C_INT64_T), dimension(:), pointer :: swig_result +#endif type(SUNMatrix), target, intent(inout) :: a -type(C_PTR) :: fresult -type(C_PTR) :: farg1 +type(C_PTR) :: fresult +type(C_PTR) :: farg1 farg1 = c_loc(a) fresult = swigc_FSUNSparseMatrix_IndexPointers(farg1) call c_f_pointer(fresult, swig_result, [FSUNSparseMatrix_NP(a)+1]) -end function +end function %} diff --git a/test/answers b/test/answers index 96a64d9683..dd4aebcaa5 160000 --- a/test/answers +++ b/test/answers @@ -1 +1 @@ -Subproject commit 96a64d9683fa88ca890c097685e373a1efd3407e +Subproject commit dd4aebcaa5a886746fa281c528d452fdae825cd2 diff --git a/test/env/default.sh b/test/env/default.sh index 6fdf276cf3..4f72c3f7f5 100644 --- a/test/env/default.sh +++ b/test/env/default.sh @@ -181,7 +181,7 @@ export SUNDIALS_KINSOL=ON # Fortran interface status if [ "$compilername" == "gcc" ]; then - if [[ ("$SUNDIALS_PRECISION" == "double") && ("$SUNDIALS_INDEX_SIZE" == "64") ]]; then + if [[ ("$SUNDIALS_PRECISION" == "double") ]]; then export SUNDIALS_FMOD_INTERFACE=ON else export SUNDIALS_FMOD_INTERFACE=OFF diff --git a/test/env/docker.sh b/test/env/docker.sh index 105f5aaedc..361d91646c 100644 --- a/test/env/docker.sh +++ b/test/env/docker.sh @@ -134,7 +134,7 @@ export SUNDIALS_KINSOL=ON # Fortran interface status if [ "$compilername" == "gcc" ]; then - if [[ ("$SUNDIALS_PRECISION" == "double") && ("$SUNDIALS_INDEX_SIZE" == "64") ]]; then + if [[ ("$SUNDIALS_PRECISION" == "double") ]]; then export SUNDIALS_FMOD_INTERFACE=ON else export SUNDIALS_FMOD_INTERFACE=OFF diff --git a/test/env/lassen.sh b/test/env/lassen.sh index 59d26d3b7f..473b7f1522 100644 --- a/test/env/lassen.sh +++ b/test/env/lassen.sh @@ -105,7 +105,7 @@ else fi # Fortran settings -if [[ ("$SUNDIALS_PRECISION" == "double") && ("$indexsize" == "64") ]]; then +if [[ ("$SUNDIALS_PRECISION" == "double") ]]; then export SUNDIALS_FMOD_INTERFACE=${FORTRAN_STATUS} else export SUNDIALS_FMOD_INTERFACE=OFF diff --git a/test/env/quartz.sh b/test/env/quartz.sh index fdafcd3318..e70ea2b512 100644 --- a/test/env/quartz.sh +++ b/test/env/quartz.sh @@ -105,7 +105,7 @@ else fi # Fortran settings -if [[ ("$SUNDIALS_PRECISION" == "double") && ("$indexsize" == "64") ]]; then +if [[ ("$SUNDIALS_PRECISION" == "double") ]]; then export SUNDIALS_FMOD_INTERFACE=${FORTRAN_STATUS} else export SUNDIALS_FMOD_INTERFACE=OFF diff --git a/test/env/summit.sh b/test/env/summit.sh deleted file mode 100644 index 4cfcce6868..0000000000 --- a/test/env/summit.sh +++ /dev/null @@ -1,139 +0,0 @@ -#!/bin/bash -# ------------------------------------------------------------------------------ -# Programmer(s): David J. Gardner @ LLNL -# ------------------------------------------------------------------------------ -# SUNDIALS Copyright Start -# Copyright (c) 2002-2024, Lawrence Livermore National Security -# and Southern Methodist University. -# All rights reserved. -# -# See the top-level LICENSE and NOTICE files for details. -# -# SPDX-License-Identifier: BSD-3-Clause -# SUNDIALS Copyright End -# ------------------------------------------------------------------------------ -# Script that sets up the environment for SUNDIALS testing on Summit. -# -# Usage: source env.summit.sh -# -# Optional Inputs: -# = Compiler to build sundials with: -# e.g., xl@16.1.1-5, gcc@8.1.1, etc. -# = SUNDIALS build type: -# dbg : debug build -# opt : optimized build -# ------------------------------------------------------------------------------ - -echo "./summit.sh $*" | tee -a setup_env.log - -# set defaults for optional inputs -compiler="xl@16.1.1-5" # compiler spec -bldtype="opt" # build type dbg = debug or opt = optimized - -# set optional inputs if provided -if [ "$#" -gt 0 ]; then - compiler=$1 -fi - -if [ "$#" -gt 1 ]; then - bldtype=$2 -fi - -# ------------------------------------------------------------------------------ -# Setup environment -# ------------------------------------------------------------------------------ - -# get compiler name and version from spec -compilername="${compiler%%@*}" -compilerversion="${compiler##*@}" - -# load default cmake module -module load cmake - -# load compiler module -case "$compilername" in - clang) - module load clang/${compilerversion} - if [ $? -ne 0 ]; then return 1; fi - export CC=$(which clang) - export CXX=$(which clang++) - export FC="" - FORTRAN_STATUS=OFF - ;; - gcc) - module load gcc/${compilerversion} - if [ $? -ne 0 ]; then return 1; fi - export CC=$(which gcc) - export CXX=$(which g++) - export FC=$(which gfortran) - FORTRAN_STATUS=ON - ;; - xl) - module load xl/${compilerversion} - if [ $? -ne 0 ]; then return 1; fi - export CC=$(which xlc_r) - export CXX=$(which xlc++_r) - export FC=$(which xlf2003_r) - FORTRAN_STATUS=OFF # Build issues with F2003 interface - ;; - pgi) - module load pgi/${compilerversion} - if [ $? -ne 0 ]; then return 1; fi - export CC=$(which pgcc) - export CXX=$(which pgc++) - export FC=$(which pgfortran) - FORTRAN_STATUS=ON - ;; - *) - echo "ERROR: Invalid compiler option: $compiler" - return 1 - ;; -esac - -# set compiler flags -if [ "$bldtype" == "dbg" ]; then - export CFLAGS="-g -O0" - export CXXFLAGS="-g -O0" - export FFLAGS="-g -O0" -elif [ "$bldtype" == "opt" ]; then - export CFLAGS="-g -O3" - export CXXFLAGS="-g -O3" - export FFLAGS="-g -O3" -else - echo "ERROR: Invalid build type: $bldtype" - return 1 -fi - -# Fortran settings -if [[ ("$SUNDIALS_PRECISION" == "double") && ("$indexsize" == "64") ]]; then - export SUNDIALS_FMOD_INTERFACE=${FORTRAN_STATUS} -else - export SUNDIALS_FMOD_INTERFACE=OFF -fi - -# Sundials monitoring -export SUNDIALS_MONITORING=ON - -# set MPI compiler wrapper -export SUNDIALS_MPI=ON -export MPICC=$(which mpicc) -export MPICXX=$(which mpicxx) -export MPIFC=$(which mpifort) -export MPIEXEC=$(which srun) - -# PThread settings -export SUNDIALS_PTHREAD=ON - -# OpenMP settings -export SUNDIALS_OPENMP=ON -export OMP_NUM_THREADS=20 - -# LAPACK settings -module load essl -export SUNDIALS_LAPACK=ON -export LAPACK_LIBRARIES="${OLCF_ESSL_ROOT}/lib64/libessl.so" - -# CUDA settings -module load cuda -export SUNDIALS_CUDA=ON -export CUDAARCHS=70