From 57688aaa5d39a527ea74668a84d371c55f027903 Mon Sep 17 00:00:00 2001 From: Cody Balos Date: Fri, 16 Feb 2024 17:37:34 -0800 Subject: [PATCH 01/70] change space functions to use long int --- include/arkode/arkode_butcher.h | 4 ++-- include/arkode/arkode_mristep.h | 2 +- include/arkode/arkode_sprk.h | 4 ++-- include/nvector/nvector_cuda.h | 4 ++-- include/nvector/nvector_hip.h | 4 ++-- include/nvector/nvector_manyvector.h | 2 +- include/nvector/nvector_mpimanyvector.h | 2 +- include/nvector/nvector_openmp.h | 2 +- include/nvector/nvector_openmpdev.h | 4 ++-- include/nvector/nvector_parallel.h | 2 +- include/nvector/nvector_parhyp.h | 4 ++-- include/nvector/nvector_petsc.h | 4 ++-- include/nvector/nvector_pthreads.h | 2 +- include/nvector/nvector_raja.h | 4 ++-- include/nvector/nvector_serial.h | 2 +- include/nvector/nvector_sycl.h | 4 ++-- include/nvector/nvector_trilinos.h | 4 ++-- include/sundials/sundials_nvector.h | 2 +- src/arkode/arkode_butcher.c | 4 ++-- src/arkode/arkode_mri_tables.c | 4 ++-- src/arkode/arkode_sprk.c | 4 ++-- src/nvector/cuda/nvector_cuda.cu | 2 +- src/nvector/hip/nvector_hip.hip.cpp | 2 +- src/nvector/manyvector/nvector_manyvector.c | 2 +- src/nvector/openmp/nvector_openmp.c | 2 +- src/nvector/openmpdev/nvector_openmpdev.c | 2 +- src/nvector/parallel/nvector_parallel.c | 2 +- src/nvector/parhyp/nvector_parhyp.c | 2 +- src/nvector/petsc/nvector_petsc.c | 2 +- src/nvector/pthreads/nvector_pthreads.c | 2 +- src/nvector/raja/nvector_raja.cpp | 2 +- src/nvector/serial/nvector_serial.c | 2 +- src/nvector/sycl/nvector_sycl.cpp | 2 +- src/nvector/trilinos/nvector_trilinos.cpp | 2 +- src/sundials/sundials_nvector.c | 2 +- 35 files changed, 48 insertions(+), 48 deletions(-) diff --git a/include/arkode/arkode_butcher.h b/include/arkode/arkode_butcher.h index 029b3d1c8d..863d828ace 100644 --- a/include/arkode/arkode_butcher.h +++ b/include/arkode/arkode_butcher.h @@ -50,8 +50,8 @@ SUNDIALS_EXPORT ARKodeButcherTable ARKodeButcherTable_Create(int s, int q, int p sunrealtype* d); SUNDIALS_EXPORT ARKodeButcherTable ARKodeButcherTable_Copy(ARKodeButcherTable B); SUNDIALS_EXPORT void ARKodeButcherTable_Space(ARKodeButcherTable B, - sunindextype* liw, - sunindextype* lrw); + long int* liw, + long int* lrw); SUNDIALS_EXPORT void ARKodeButcherTable_Free(ARKodeButcherTable B); SUNDIALS_EXPORT void ARKodeButcherTable_Write(ARKodeButcherTable B, FILE* outfile); diff --git a/include/arkode/arkode_mristep.h b/include/arkode/arkode_mristep.h index d4451e64c2..78fd6185c2 100644 --- a/include/arkode/arkode_mristep.h +++ b/include/arkode/arkode_mristep.h @@ -113,7 +113,7 @@ SUNDIALS_EXPORT MRIStepCoupling MRIStepCoupling_MIStoMRI(ARKodeButcherTable B, int q, int p); SUNDIALS_EXPORT MRIStepCoupling MRIStepCoupling_Copy(MRIStepCoupling MRIC); SUNDIALS_EXPORT void MRIStepCoupling_Space(MRIStepCoupling MRIC, - sunindextype* liw, sunindextype* lrw); + long int* liw, long int* lrw); SUNDIALS_EXPORT void MRIStepCoupling_Free(MRIStepCoupling MRIC); SUNDIALS_EXPORT void MRIStepCoupling_Write(MRIStepCoupling MRIC, FILE* outfile); diff --git a/include/arkode/arkode_sprk.h b/include/arkode/arkode_sprk.h index 1c6263e828..7f5f148de6 100644 --- a/include/arkode/arkode_sprk.h +++ b/include/arkode/arkode_sprk.h @@ -78,8 +78,8 @@ SUNDIALS_EXPORT void ARKodeSPRKTable_Write(ARKodeSPRKTable sprk_table, FILE* outfile); SUNDIALS_EXPORT -void ARKodeSPRKTable_Space(ARKodeSPRKTable sprk_storage, sunindextype* liw, - sunindextype* lrw); +void ARKodeSPRKTable_Space(ARKodeSPRKTable sprk_storage, long int* liw, + long int* lrw); SUNDIALS_EXPORT void ARKodeSPRKTable_Free(ARKodeSPRKTable sprk_storage); diff --git a/include/nvector/nvector_cuda.h b/include/nvector/nvector_cuda.h index 0c5bc079f3..15b21fdad0 100644 --- a/include/nvector/nvector_cuda.h +++ b/include/nvector/nvector_cuda.h @@ -114,8 +114,8 @@ static inline N_Vector_ID N_VGetVectorID_Cuda(N_Vector /*v*/) SUNDIALS_EXPORT N_Vector N_VCloneEmpty_Cuda(N_Vector w); SUNDIALS_EXPORT N_Vector N_VClone_Cuda(N_Vector w); SUNDIALS_EXPORT void N_VDestroy_Cuda(N_Vector v); -SUNDIALS_EXPORT void N_VSpace_Cuda(N_Vector v, sunindextype* lrw, - sunindextype* liw); +SUNDIALS_EXPORT void N_VSpace_Cuda(N_Vector v, long int* lrw, + long int* liw); /* standard vector operations */ SUNDIALS_EXPORT void N_VLinearSum_Cuda(sunrealtype a, N_Vector x, sunrealtype b, diff --git a/include/nvector/nvector_hip.h b/include/nvector/nvector_hip.h index caed088adb..5b2f3ede52 100644 --- a/include/nvector/nvector_hip.h +++ b/include/nvector/nvector_hip.h @@ -113,8 +113,8 @@ static inline N_Vector_ID N_VGetVectorID_Hip(N_Vector /*v*/) SUNDIALS_EXPORT N_Vector N_VCloneEmpty_Hip(N_Vector w); SUNDIALS_EXPORT N_Vector N_VClone_Hip(N_Vector w); SUNDIALS_EXPORT void N_VDestroy_Hip(N_Vector v); -SUNDIALS_EXPORT void N_VSpace_Hip(N_Vector v, sunindextype* lrw, - sunindextype* liw); +SUNDIALS_EXPORT void N_VSpace_Hip(N_Vector v, long int* lrw, + long int* liw); /* standard vector operations */ SUNDIALS_EXPORT void N_VLinearSum_Hip(sunrealtype a, N_Vector x, sunrealtype b, diff --git a/include/nvector/nvector_manyvector.h b/include/nvector/nvector_manyvector.h index ae0eac152e..a6e47c237b 100644 --- a/include/nvector/nvector_manyvector.h +++ b/include/nvector/nvector_manyvector.h @@ -101,7 +101,7 @@ SUNDIALS_EXPORT void N_VDestroy_ManyVector(N_Vector v); SUNDIALS_EXPORT -void N_VSpace_ManyVector(N_Vector v, sunindextype* lrw, sunindextype* liw); +void N_VSpace_ManyVector(N_Vector v, long int* lrw, long int* liw); SUNDIALS_EXPORT sunindextype N_VGetLength_ManyVector(N_Vector v); diff --git a/include/nvector/nvector_mpimanyvector.h b/include/nvector/nvector_mpimanyvector.h index f25125a0e3..3a9950f91d 100644 --- a/include/nvector/nvector_mpimanyvector.h +++ b/include/nvector/nvector_mpimanyvector.h @@ -108,7 +108,7 @@ SUNDIALS_EXPORT void N_VDestroy_MPIManyVector(N_Vector v); SUNDIALS_EXPORT -void N_VSpace_MPIManyVector(N_Vector v, sunindextype* lrw, sunindextype* liw); +void N_VSpace_MPIManyVector(N_Vector v, long int* lrw, long int* liw); SUNDIALS_EXPORT MPI_Comm N_VGetCommunicator_MPIManyVector(N_Vector v); diff --git a/include/nvector/nvector_openmp.h b/include/nvector/nvector_openmp.h index f52e2274ae..3dac216812 100644 --- a/include/nvector/nvector_openmp.h +++ b/include/nvector/nvector_openmp.h @@ -124,7 +124,7 @@ SUNDIALS_EXPORT void N_VDestroy_OpenMP(N_Vector v); SUNDIALS_EXPORT -void N_VSpace_OpenMP(N_Vector v, sunindextype* lrw, sunindextype* liw); +void N_VSpace_OpenMP(N_Vector v, long int* lrw, long int* liw); SUNDIALS_EXPORT sunrealtype* N_VGetArrayPointer_OpenMP(N_Vector v); diff --git a/include/nvector/nvector_openmpdev.h b/include/nvector/nvector_openmpdev.h index b7b4ae31fb..33c4ad9de8 100644 --- a/include/nvector/nvector_openmpdev.h +++ b/include/nvector/nvector_openmpdev.h @@ -117,8 +117,8 @@ SUNDIALS_EXPORT N_Vector_ID N_VGetVectorID_OpenMPDEV(N_Vector v); SUNDIALS_EXPORT N_Vector N_VCloneEmpty_OpenMPDEV(N_Vector w); SUNDIALS_EXPORT N_Vector N_VClone_OpenMPDEV(N_Vector w); SUNDIALS_EXPORT void N_VDestroy_OpenMPDEV(N_Vector v); -SUNDIALS_EXPORT void N_VSpace_OpenMPDEV(N_Vector v, sunindextype* lrw, - sunindextype* liw); +SUNDIALS_EXPORT void N_VSpace_OpenMPDEV(N_Vector v, long int* lrw, + long int* liw); /* standard vector operations */ SUNDIALS_EXPORT void N_VLinearSum_OpenMPDEV(sunrealtype a, N_Vector x, diff --git a/include/nvector/nvector_parallel.h b/include/nvector/nvector_parallel.h index e05e4c7ef8..b16692bfc5 100644 --- a/include/nvector/nvector_parallel.h +++ b/include/nvector/nvector_parallel.h @@ -132,7 +132,7 @@ SUNDIALS_EXPORT void N_VDestroy_Parallel(N_Vector v); SUNDIALS_EXPORT -void N_VSpace_Parallel(N_Vector v, sunindextype* lrw, sunindextype* liw); +void N_VSpace_Parallel(N_Vector v, long int* lrw, long int* liw); SUNDIALS_EXPORT sunrealtype* N_VGetArrayPointer_Parallel(N_Vector v); diff --git a/include/nvector/nvector_parhyp.h b/include/nvector/nvector_parhyp.h index a7c7ced8a1..87bb95f614 100644 --- a/include/nvector/nvector_parhyp.h +++ b/include/nvector/nvector_parhyp.h @@ -94,8 +94,8 @@ SUNDIALS_EXPORT N_Vector_ID N_VGetVectorID_ParHyp(N_Vector v); SUNDIALS_EXPORT N_Vector N_VCloneEmpty_ParHyp(N_Vector w); SUNDIALS_EXPORT N_Vector N_VClone_ParHyp(N_Vector w); SUNDIALS_EXPORT void N_VDestroy_ParHyp(N_Vector v); -SUNDIALS_EXPORT void N_VSpace_ParHyp(N_Vector v, sunindextype* lrw, - sunindextype* liw); +SUNDIALS_EXPORT void N_VSpace_ParHyp(N_Vector v, long int* lrw, + long int* liw); SUNDIALS_EXPORT sunrealtype* N_VGetArrayPointer_ParHyp(N_Vector v); SUNDIALS_EXPORT void N_VSetArrayPointer_ParHyp(sunrealtype* v_data, N_Vector v); SUNDIALS_EXPORT MPI_Comm N_VGetCommunicator_ParHyp(N_Vector v); diff --git a/include/nvector/nvector_petsc.h b/include/nvector/nvector_petsc.h index 1fa3b536b2..b44ef3d99b 100644 --- a/include/nvector/nvector_petsc.h +++ b/include/nvector/nvector_petsc.h @@ -91,8 +91,8 @@ SUNDIALS_EXPORT N_Vector_ID N_VGetVectorID_Petsc(N_Vector v); SUNDIALS_EXPORT N_Vector N_VCloneEmpty_Petsc(N_Vector w); SUNDIALS_EXPORT N_Vector N_VClone_Petsc(N_Vector w); SUNDIALS_EXPORT void N_VDestroy_Petsc(N_Vector v); -SUNDIALS_EXPORT void N_VSpace_Petsc(N_Vector v, sunindextype* lrw, - sunindextype* liw); +SUNDIALS_EXPORT void N_VSpace_Petsc(N_Vector v, long int* lrw, + long int* liw); SUNDIALS_EXPORT void N_VSetArrayPointer_Petsc(sunrealtype* v_data, N_Vector v); SUNDIALS_EXPORT MPI_Comm N_VGetCommunicator_Petsc(N_Vector v); SUNDIALS_EXPORT sunindextype N_VGetLength_Petsc(N_Vector v); diff --git a/include/nvector/nvector_pthreads.h b/include/nvector/nvector_pthreads.h index 97ae23008f..d6af8024c5 100644 --- a/include/nvector/nvector_pthreads.h +++ b/include/nvector/nvector_pthreads.h @@ -160,7 +160,7 @@ SUNDIALS_EXPORT void N_VDestroy_Pthreads(N_Vector v); SUNDIALS_EXPORT -void N_VSpace_Pthreads(N_Vector v, sunindextype* lrw, sunindextype* liw); +void N_VSpace_Pthreads(N_Vector v, long int* lrw, long int* liw); SUNDIALS_EXPORT sunrealtype* N_VGetArrayPointer_Pthreads(N_Vector v); diff --git a/include/nvector/nvector_raja.h b/include/nvector/nvector_raja.h index 1bcb2a5cc2..c4d86a7b0f 100644 --- a/include/nvector/nvector_raja.h +++ b/include/nvector/nvector_raja.h @@ -111,8 +111,8 @@ static inline N_Vector_ID N_VGetVectorID_Raja(N_Vector v) SUNDIALS_EXPORT N_Vector N_VCloneEmpty_Raja(N_Vector w); SUNDIALS_EXPORT N_Vector N_VClone_Raja(N_Vector w); SUNDIALS_EXPORT void N_VDestroy_Raja(N_Vector v); -SUNDIALS_EXPORT void N_VSpace_Raja(N_Vector v, sunindextype* lrw, - sunindextype* liw); +SUNDIALS_EXPORT void N_VSpace_Raja(N_Vector v, long int* lrw, + long int* liw); SUNDIALS_EXPORT void N_VSetArrayPointer_Raja(sunrealtype* v_data, N_Vector v); /* standard vector operations */ diff --git a/include/nvector/nvector_serial.h b/include/nvector/nvector_serial.h index bcbc995f2e..3003cb62fe 100644 --- a/include/nvector/nvector_serial.h +++ b/include/nvector/nvector_serial.h @@ -117,7 +117,7 @@ SUNDIALS_EXPORT void N_VDestroy_Serial(N_Vector v); SUNDIALS_EXPORT -void N_VSpace_Serial(N_Vector v, sunindextype* lrw, sunindextype* liw); +void N_VSpace_Serial(N_Vector v, long int* lrw, long int* liw); SUNDIALS_EXPORT sunrealtype* N_VGetArrayPointer_Serial(N_Vector v); diff --git a/include/nvector/nvector_sycl.h b/include/nvector/nvector_sycl.h index 82935ccca6..0cfa236fba 100644 --- a/include/nvector/nvector_sycl.h +++ b/include/nvector/nvector_sycl.h @@ -113,8 +113,8 @@ static inline N_Vector_ID N_VGetVectorID_Sycl(N_Vector v) SUNDIALS_EXPORT N_Vector N_VCloneEmpty_Sycl(N_Vector w); SUNDIALS_EXPORT N_Vector N_VClone_Sycl(N_Vector w); SUNDIALS_EXPORT void N_VDestroy_Sycl(N_Vector v); -SUNDIALS_EXPORT void N_VSpace_Sycl(N_Vector v, sunindextype* lrw, - sunindextype* liw); +SUNDIALS_EXPORT void N_VSpace_Sycl(N_Vector v, long int* lrw, + long int* liw); /* standard vector operations */ SUNDIALS_EXPORT void N_VLinearSum_Sycl(sunrealtype a, N_Vector x, sunrealtype b, diff --git a/include/nvector/nvector_trilinos.h b/include/nvector/nvector_trilinos.h index 385cfa0d01..5d6f02c14f 100644 --- a/include/nvector/nvector_trilinos.h +++ b/include/nvector/nvector_trilinos.h @@ -96,8 +96,8 @@ SUNDIALS_EXPORT N_Vector_ID N_VGetVectorID_Trilinos(N_Vector v); SUNDIALS_EXPORT N_Vector N_VCloneEmpty_Trilinos(N_Vector w); SUNDIALS_EXPORT N_Vector N_VClone_Trilinos(N_Vector w); SUNDIALS_EXPORT void N_VDestroy_Trilinos(N_Vector v); -SUNDIALS_EXPORT void N_VSpace_Trilinos(N_Vector v, sunindextype* lrw, - sunindextype* liw); +SUNDIALS_EXPORT void N_VSpace_Trilinos(N_Vector v, long int* lrw, + long int* liw); SUNDIALS_EXPORT SUNComm N_VGetCommunicator_Trilinos(N_Vector v); SUNDIALS_EXPORT sunindextype N_VGetLength_Trilinos(N_Vector v); SUNDIALS_EXPORT void N_VLinearSum_Trilinos(sunrealtype a, N_Vector x, diff --git a/include/sundials/sundials_nvector.h b/include/sundials/sundials_nvector.h index 68ea9340e7..61d966e29e 100644 --- a/include/sundials/sundials_nvector.h +++ b/include/sundials/sundials_nvector.h @@ -217,7 +217,7 @@ SUNDIALS_EXPORT N_Vector_ID N_VGetVectorID(N_Vector w); SUNDIALS_EXPORT N_Vector N_VClone(N_Vector w); SUNDIALS_EXPORT N_Vector N_VCloneEmpty(N_Vector w); SUNDIALS_EXPORT void N_VDestroy(N_Vector v); -SUNDIALS_EXPORT void N_VSpace(N_Vector v, sunindextype* lrw, sunindextype* liw); +SUNDIALS_EXPORT void N_VSpace(N_Vector v, long int* lrw, long int* liw); SUNDIALS_EXPORT sunrealtype* N_VGetArrayPointer(N_Vector v); SUNDIALS_EXPORT sunrealtype* N_VGetDeviceArrayPointer(N_Vector v); SUNDIALS_EXPORT void N_VSetArrayPointer(sunrealtype* v_data, N_Vector v); diff --git a/src/arkode/arkode_butcher.c b/src/arkode/arkode_butcher.c index 0807d05fca..690d620d28 100644 --- a/src/arkode/arkode_butcher.c +++ b/src/arkode/arkode_butcher.c @@ -293,8 +293,8 @@ ARKodeButcherTable ARKodeButcherTable_Copy(ARKodeButcherTable B) /*--------------------------------------------------------------- Routine to query the Butcher table structure workspace size ---------------------------------------------------------------*/ -void ARKodeButcherTable_Space(ARKodeButcherTable B, sunindextype* liw, - sunindextype* lrw) +void ARKodeButcherTable_Space(ARKodeButcherTable B, long int* liw, + long int* lrw) { /* initialize outputs and return if B is not allocated */ *liw = 0; diff --git a/src/arkode/arkode_mri_tables.c b/src/arkode/arkode_mri_tables.c index fa6dd9b256..18da20f595 100644 --- a/src/arkode/arkode_mri_tables.c +++ b/src/arkode/arkode_mri_tables.c @@ -444,8 +444,8 @@ MRIStepCoupling MRIStepCoupling_Copy(MRIStepCoupling MRIC) /*--------------------------------------------------------------- Routine to query the MRIStepCoupling structure workspace size ---------------------------------------------------------------*/ -void MRIStepCoupling_Space(MRIStepCoupling MRIC, sunindextype* liw, - sunindextype* lrw) +void MRIStepCoupling_Space(MRIStepCoupling MRIC, long int* liw, + long int* lrw) { /* initialize outputs and return if MRIC is not allocated */ *liw = 0; diff --git a/src/arkode/arkode_sprk.c b/src/arkode/arkode_sprk.c index 65d1a07069..3bf1bbd7bd 100644 --- a/src/arkode/arkode_sprk.c +++ b/src/arkode/arkode_sprk.c @@ -541,8 +541,8 @@ ARKodeSPRKTable ARKodeSPRKTable_Copy(ARKodeSPRKTable that_sprk_table) return sprk_table; } -void ARKodeSPRKTable_Space(ARKodeSPRKTable sprk_table, sunindextype* liw, - sunindextype* lrw) +void ARKodeSPRKTable_Space(ARKodeSPRKTable sprk_table, long int* liw, + long int* lrw) { *liw = 2; *lrw = sprk_table->stages * 2; diff --git a/src/nvector/cuda/nvector_cuda.cu b/src/nvector/cuda/nvector_cuda.cu index 5acd83c038..5c528b801d 100644 --- a/src/nvector/cuda/nvector_cuda.cu +++ b/src/nvector/cuda/nvector_cuda.cu @@ -750,7 +750,7 @@ void N_VDestroy_Cuda(N_Vector v) return; } -void N_VSpace_Cuda(N_Vector X, sunindextype* lrw, sunindextype* liw) +void N_VSpace_Cuda(N_Vector X, long int* lrw, long int* liw) { *lrw = NVEC_CUDA_CONTENT(X)->length; *liw = 2; diff --git a/src/nvector/hip/nvector_hip.hip.cpp b/src/nvector/hip/nvector_hip.hip.cpp index 95f2d09f25..77546eb890 100644 --- a/src/nvector/hip/nvector_hip.hip.cpp +++ b/src/nvector/hip/nvector_hip.hip.cpp @@ -716,7 +716,7 @@ void N_VDestroy_Hip(N_Vector v) return; } -void N_VSpace_Hip(N_Vector X, sunindextype* lrw, sunindextype* liw) +void N_VSpace_Hip(N_Vector X, long int* lrw, long int* liw) { *lrw = NVEC_HIP_CONTENT(X)->length; *liw = 2; diff --git a/src/nvector/manyvector/nvector_manyvector.c b/src/nvector/manyvector/nvector_manyvector.c index 2785ee7b91..c1b0c031cc 100644 --- a/src/nvector/manyvector/nvector_manyvector.c +++ b/src/nvector/manyvector/nvector_manyvector.c @@ -569,7 +569,7 @@ void MVAPPEND(N_VDestroy)(N_Vector v) /* Returns the space requirements for the ManyVector, by accumulating this information from all subvectors. */ -void MVAPPEND(N_VSpace)(N_Vector v, sunindextype* lrw, sunindextype* liw) +void MVAPPEND(N_VSpace)(N_Vector v, long int* lrw, long int* liw) { SUNFunctionBegin(v->sunctx); sunindextype i, lrw1, liw1; diff --git a/src/nvector/openmp/nvector_openmp.c b/src/nvector/openmp/nvector_openmp.c index 649a27a6df..22f03aff38 100644 --- a/src/nvector/openmp/nvector_openmp.c +++ b/src/nvector/openmp/nvector_openmp.c @@ -386,7 +386,7 @@ void N_VDestroy_OpenMP(N_Vector v) * Get storage requirement for N_Vector */ -void N_VSpace_OpenMP(N_Vector v, sunindextype* lrw, sunindextype* liw) +void N_VSpace_OpenMP(N_Vector v, long int* lrw, long int* liw) { SUNFunctionBegin(v->sunctx); diff --git a/src/nvector/openmpdev/nvector_openmpdev.c b/src/nvector/openmpdev/nvector_openmpdev.c index 773feae94e..03ac83aed3 100644 --- a/src/nvector/openmpdev/nvector_openmpdev.c +++ b/src/nvector/openmpdev/nvector_openmpdev.c @@ -502,7 +502,7 @@ void N_VDestroy_OpenMPDEV(N_Vector v) * Get storage requirement for N_Vector */ -void N_VSpace_OpenMPDEV(N_Vector v, sunindextype* lrw, sunindextype* liw) +void N_VSpace_OpenMPDEV(N_Vector v, long int* lrw, long int* liw) { *lrw = NV_LENGTH_OMPDEV(v); *liw = 1; diff --git a/src/nvector/parallel/nvector_parallel.c b/src/nvector/parallel/nvector_parallel.c index a438b4eb29..341ba757c4 100644 --- a/src/nvector/parallel/nvector_parallel.c +++ b/src/nvector/parallel/nvector_parallel.c @@ -387,7 +387,7 @@ void N_VDestroy_Parallel(N_Vector v) return; } -void N_VSpace_Parallel(N_Vector v, sunindextype* lrw, sunindextype* liw) +void N_VSpace_Parallel(N_Vector v, long int* lrw, long int* liw) { SUNFunctionBegin(v->sunctx); diff --git a/src/nvector/parhyp/nvector_parhyp.c b/src/nvector/parhyp/nvector_parhyp.c index 4e9ef4d50c..51d8988da4 100644 --- a/src/nvector/parhyp/nvector_parhyp.c +++ b/src/nvector/parhyp/nvector_parhyp.c @@ -406,7 +406,7 @@ void N_VDestroy_ParHyp(N_Vector v) return; } -void N_VSpace_ParHyp(N_Vector v, sunindextype* lrw, sunindextype* liw) +void N_VSpace_ParHyp(N_Vector v, long int* lrw, long int* liw) { MPI_Comm comm; int npes; diff --git a/src/nvector/petsc/nvector_petsc.c b/src/nvector/petsc/nvector_petsc.c index 87960d839a..9a782add53 100644 --- a/src/nvector/petsc/nvector_petsc.c +++ b/src/nvector/petsc/nvector_petsc.c @@ -380,7 +380,7 @@ void N_VDestroy_Petsc(N_Vector v) return; } -void N_VSpace_Petsc(N_Vector v, sunindextype* lrw, sunindextype* liw) +void N_VSpace_Petsc(N_Vector v, long int* lrw, long int* liw) { MPI_Comm comm; int npes; diff --git a/src/nvector/pthreads/nvector_pthreads.c b/src/nvector/pthreads/nvector_pthreads.c index 6938934059..d7597f300c 100644 --- a/src/nvector/pthreads/nvector_pthreads.c +++ b/src/nvector/pthreads/nvector_pthreads.c @@ -465,7 +465,7 @@ void N_VDestroy_Pthreads(N_Vector v) * Get storage requirement for vector */ -void N_VSpace_Pthreads(N_Vector v, sunindextype* lrw, sunindextype* liw) +void N_VSpace_Pthreads(N_Vector v, long int* lrw, long int* liw) { SUNFunctionBegin(v->sunctx); diff --git a/src/nvector/raja/nvector_raja.cpp b/src/nvector/raja/nvector_raja.cpp index 5369a06f1a..8c82c55c8e 100644 --- a/src/nvector/raja/nvector_raja.cpp +++ b/src/nvector/raja/nvector_raja.cpp @@ -748,7 +748,7 @@ void N_VDestroy_Raja(N_Vector v) return; } -void N_VSpace_Raja(N_Vector X, sunindextype* lrw, sunindextype* liw) +void N_VSpace_Raja(N_Vector X, long int* lrw, long int* liw) { *lrw = NVEC_RAJA_CONTENT(X)->length; *liw = 2; diff --git a/src/nvector/serial/nvector_serial.c b/src/nvector/serial/nvector_serial.c index a4a1bff95a..006575faa6 100644 --- a/src/nvector/serial/nvector_serial.c +++ b/src/nvector/serial/nvector_serial.c @@ -355,7 +355,7 @@ void N_VDestroy_Serial(N_Vector v) return; } -void N_VSpace_Serial(N_Vector v, sunindextype* lrw, sunindextype* liw) +void N_VSpace_Serial(N_Vector v, long int* lrw, long int* liw) { SUNFunctionBegin(v->sunctx); 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/nvector/trilinos/nvector_trilinos.cpp b/src/nvector/trilinos/nvector_trilinos.cpp index fdb28b7ef5..1032a659dc 100644 --- a/src/nvector/trilinos/nvector_trilinos.cpp +++ b/src/nvector/trilinos/nvector_trilinos.cpp @@ -222,7 +222,7 @@ void N_VDestroy_Trilinos(N_Vector v) return; } -void N_VSpace_Trilinos(N_Vector x, sunindextype* lrw, sunindextype* liw) +void N_VSpace_Trilinos(N_Vector x, long int* lrw, long int* liw) { Teuchos::RCP xv = N_VGetVector_Trilinos(x); const Teuchos::RCP>& comm = xv->getMap()->getComm(); diff --git a/src/sundials/sundials_nvector.c b/src/sundials/sundials_nvector.c index a6549d81b5..926c110371 100644 --- a/src/sundials/sundials_nvector.c +++ b/src/sundials/sundials_nvector.c @@ -327,7 +327,7 @@ void N_VDestroy(N_Vector v) return; } -void N_VSpace(N_Vector v, sunindextype* lrw, sunindextype* liw) +void N_VSpace(N_Vector v, long int* lrw, long int* liw) { v->ops->nvspace(v, lrw, liw); return; From 4489fc291665f2ea0c3cd56bbd975deb17dd86b8 Mon Sep 17 00:00:00 2001 From: Cody Balos Date: Mon, 26 Feb 2024 09:28:30 -0800 Subject: [PATCH 02/70] fix use of Space functions in iterative solvers --- src/kinsol/kinsol.c | 2 +- src/sunlinsol/pcg/sunlinsol_pcg.c | 2 +- src/sunlinsol/spbcgs/sunlinsol_spbcgs.c | 2 +- src/sunlinsol/spfgmr/sunlinsol_spfgmr.c | 2 +- src/sunlinsol/spgmr/sunlinsol_spgmr.c | 2 +- src/sunlinsol/sptfqmr/sunlinsol_sptfqmr.c | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/kinsol/kinsol.c b/src/kinsol/kinsol.c index 205ffbc8f0..d1e19cd140 100644 --- a/src/kinsol/kinsol.c +++ b/src/kinsol/kinsol.c @@ -322,7 +322,7 @@ void* KINCreate(SUNContext sunctx) int KINInit(void* kinmem, KINSysFn func, N_Vector tmpl) { - sunindextype liw1, lrw1; + long int liw1, lrw1; KINMem kin_mem; sunbooleantype allocOK, nvectorOK, dotprodSB; diff --git a/src/sunlinsol/pcg/sunlinsol_pcg.c b/src/sunlinsol/pcg/sunlinsol_pcg.c index 1504a744dc..d795467812 100644 --- a/src/sunlinsol/pcg/sunlinsol_pcg.c +++ b/src/sunlinsol/pcg/sunlinsol_pcg.c @@ -517,7 +517,7 @@ SUNErrCode SUNLinSolSpace_PCG(SUNLinearSolver S, long int* lenrwLS, long int* leniwLS) { SUNFunctionBegin(S->sunctx); - sunindextype liw1, lrw1; + long int liw1, lrw1; N_VSpace(PCG_CONTENT(S)->r, &lrw1, &liw1); SUNCheckLastErr(); *lenrwLS = 1 + lrw1 * 4; diff --git a/src/sunlinsol/spbcgs/sunlinsol_spbcgs.c b/src/sunlinsol/spbcgs/sunlinsol_spbcgs.c index 168e554176..83f5764e9b 100644 --- a/src/sunlinsol/spbcgs/sunlinsol_spbcgs.c +++ b/src/sunlinsol/spbcgs/sunlinsol_spbcgs.c @@ -753,7 +753,7 @@ SUNErrCode SUNLinSolSpace_SPBCGS(SUNLinearSolver S, long int* lenrwLS, long int* leniwLS) { SUNFunctionBegin(S->sunctx); - sunindextype liw1, lrw1; + long int liw1, lrw1; if (SPBCGS_CONTENT(S)->vtemp->ops->nvspace) { N_VSpace(SPBCGS_CONTENT(S)->vtemp, &lrw1, &liw1); diff --git a/src/sunlinsol/spfgmr/sunlinsol_spfgmr.c b/src/sunlinsol/spfgmr/sunlinsol_spfgmr.c index 4e726e2d7e..2718b450c4 100644 --- a/src/sunlinsol/spfgmr/sunlinsol_spfgmr.c +++ b/src/sunlinsol/spfgmr/sunlinsol_spfgmr.c @@ -706,7 +706,7 @@ SUNErrCode SUNLinSolSpace_SPFGMR(SUNLinearSolver S, long int* lenrwLS, { SUNFunctionBegin(S->sunctx); int maxl; - sunindextype liw1, lrw1; + long int liw1, lrw1; maxl = SPFGMR_CONTENT(S)->maxl; if (SPFGMR_CONTENT(S)->vtemp->ops->nvspace) { diff --git a/src/sunlinsol/spgmr/sunlinsol_spgmr.c b/src/sunlinsol/spgmr/sunlinsol_spgmr.c index c1e10b3629..de879a32c0 100644 --- a/src/sunlinsol/spgmr/sunlinsol_spgmr.c +++ b/src/sunlinsol/spgmr/sunlinsol_spgmr.c @@ -783,7 +783,7 @@ SUNErrCode SUNLinSolSpace_SPGMR(SUNLinearSolver S, long int* lenrwLS, { SUNFunctionBegin(S->sunctx); int maxl; - sunindextype liw1, lrw1; + long int liw1, lrw1; maxl = SPGMR_CONTENT(S)->maxl; if (SPGMR_CONTENT(S)->vtemp->ops->nvspace) { diff --git a/src/sunlinsol/sptfqmr/sunlinsol_sptfqmr.c b/src/sunlinsol/sptfqmr/sunlinsol_sptfqmr.c index 6f09ccc1db..8a39fe4b7d 100644 --- a/src/sunlinsol/sptfqmr/sunlinsol_sptfqmr.c +++ b/src/sunlinsol/sptfqmr/sunlinsol_sptfqmr.c @@ -947,7 +947,7 @@ SUNErrCode SUNLinSolSpace_SPTFQMR(SUNLinearSolver S, long int* lenrwLS, long int* leniwLS) { SUNFunctionBegin(S->sunctx); - sunindextype liw1, lrw1; + long int liw1, lrw1; if (SPTFQMR_CONTENT(S)->vtemp1->ops->nvspace) { N_VSpace(SPTFQMR_CONTENT(S)->vtemp1, &lrw1, &liw1); From 4bef21398cd03efbf2b40c98c57ba51406c356a2 Mon Sep 17 00:00:00 2001 From: "Balos, Cody, J" Date: Mon, 26 Feb 2024 11:23:54 -0800 Subject: [PATCH 03/70] fix nvector space op --- include/sundials/sundials_nvector.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/sundials/sundials_nvector.h b/include/sundials/sundials_nvector.h index 61d966e29e..362e7c5e76 100644 --- a/include/sundials/sundials_nvector.h +++ b/include/sundials/sundials_nvector.h @@ -108,7 +108,7 @@ struct _generic_N_Vector_Ops N_Vector (*nvclone)(N_Vector); N_Vector (*nvcloneempty)(N_Vector); void (*nvdestroy)(N_Vector); - void (*nvspace)(N_Vector, sunindextype*, sunindextype*); + void (*nvspace)(N_Vector, long int*, long int*); sunrealtype* (*nvgetarraypointer)(N_Vector); sunrealtype* (*nvgetdevicearraypointer)(N_Vector); void (*nvsetarraypointer)(sunrealtype*, N_Vector); From 37875a7a711fdda28124c7ccb4151c92db80b8e4 Mon Sep 17 00:00:00 2001 From: "Balos, Cody, J" Date: Mon, 26 Feb 2024 11:24:01 -0800 Subject: [PATCH 04/70] regen fortran --- src/arkode/fmod/farkode_mod.c | 20 +++++++++---------- src/arkode/fmod/farkode_mod.f90 | 8 ++++---- src/arkode/fmod/farkode_mristep_mod.c | 10 +++++----- src/arkode/fmod/farkode_mristep_mod.f90 | 4 ++-- .../manyvector/fmod/fnvector_manyvector_mod.c | 10 +++++----- .../fmod/fnvector_manyvector_mod.f90 | 4 ++-- .../fmod/fnvector_mpimanyvector_mod.c | 10 +++++----- .../fmod/fnvector_mpimanyvector_mod.f90 | 4 ++-- src/nvector/openmp/fmod/fnvector_openmp_mod.c | 10 +++++----- .../openmp/fmod/fnvector_openmp_mod.f90 | 4 ++-- .../parallel/fmod/fnvector_parallel_mod.c | 10 +++++----- .../parallel/fmod/fnvector_parallel_mod.f90 | 4 ++-- .../pthreads/fmod/fnvector_pthreads_mod.c | 10 +++++----- .../pthreads/fmod/fnvector_pthreads_mod.f90 | 4 ++-- src/nvector/serial/fmod/fnvector_serial_mod.c | 10 +++++----- .../serial/fmod/fnvector_serial_mod.f90 | 4 ++-- src/sundials/fmod/fsundials_core_mod.c | 10 +++++----- src/sundials/fmod/fsundials_core_mod.f90 | 4 ++-- 18 files changed, 70 insertions(+), 70 deletions(-) diff --git a/src/arkode/fmod/farkode_mod.c b/src/arkode/fmod/farkode_mod.c index a66b1b0dcd..a37c50d95f 100644 --- a/src/arkode/fmod/farkode_mod.c +++ b/src/arkode/fmod/farkode_mod.c @@ -688,14 +688,14 @@ SWIGEXPORT void * _wrap_FARKodeButcherTable_Copy(void *farg1) { } -SWIGEXPORT void _wrap_FARKodeButcherTable_Space(void *farg1, int64_t *farg2, int64_t *farg3) { +SWIGEXPORT void _wrap_FARKodeButcherTable_Space(void *farg1, long *farg2, long *farg3) { ARKodeButcherTable arg1 = (ARKodeButcherTable) 0 ; - sunindextype *arg2 = (sunindextype *) 0 ; - sunindextype *arg3 = (sunindextype *) 0 ; + long *arg2 = (long *) 0 ; + long *arg3 = (long *) 0 ; arg1 = (ARKodeButcherTable)(farg1); - arg2 = (sunindextype *)(farg2); - arg3 = (sunindextype *)(farg3); + arg2 = (long *)(farg2); + arg3 = (long *)(farg3); ARKodeButcherTable_Space(arg1,arg2,arg3); } @@ -1019,14 +1019,14 @@ SWIGEXPORT void _wrap_FARKodeSPRKTable_Write(void *farg1, void *farg2) { } -SWIGEXPORT void _wrap_FARKodeSPRKTable_Space(void *farg1, int64_t *farg2, int64_t *farg3) { +SWIGEXPORT void _wrap_FARKodeSPRKTable_Space(void *farg1, long *farg2, long *farg3) { ARKodeSPRKTable arg1 = (ARKodeSPRKTable) 0 ; - sunindextype *arg2 = (sunindextype *) 0 ; - sunindextype *arg3 = (sunindextype *) 0 ; + long *arg2 = (long *) 0 ; + long *arg3 = (long *) 0 ; arg1 = (ARKodeSPRKTable)(farg1); - arg2 = (sunindextype *)(farg2); - arg3 = (sunindextype *)(farg3); + arg2 = (long *)(farg2); + arg3 = (long *)(farg3); ARKodeSPRKTable_Space(arg1,arg2,arg3); } diff --git a/src/arkode/fmod/farkode_mod.f90 b/src/arkode/fmod/farkode_mod.f90 index 7724193873..4e62dc08f4 100644 --- a/src/arkode/fmod/farkode_mod.f90 +++ b/src/arkode/fmod/farkode_mod.f90 @@ -1229,8 +1229,8 @@ function FARKodeButcherTable_Copy(b) & subroutine FARKodeButcherTable_Space(b, liw, lrw) use, intrinsic :: ISO_C_BINDING type(C_PTR) :: b -integer(C_INT64_T), dimension(*), target, intent(inout) :: liw -integer(C_INT64_T), dimension(*), target, intent(inout) :: lrw +integer(C_LONG), dimension(*), target, intent(inout) :: liw +integer(C_LONG), dimension(*), target, intent(inout) :: lrw type(C_PTR) :: farg1 type(C_PTR) :: farg2 type(C_PTR) :: farg3 @@ -1621,8 +1621,8 @@ subroutine FARKodeSPRKTable_Write(sprk_table, outfile) subroutine FARKodeSPRKTable_Space(sprk_storage, liw, lrw) use, intrinsic :: ISO_C_BINDING type(C_PTR) :: sprk_storage -integer(C_INT64_T), dimension(*), target, intent(inout) :: liw -integer(C_INT64_T), dimension(*), target, intent(inout) :: lrw +integer(C_LONG), dimension(*), target, intent(inout) :: liw +integer(C_LONG), dimension(*), target, intent(inout) :: lrw type(C_PTR) :: farg1 type(C_PTR) :: farg2 type(C_PTR) :: farg3 diff --git a/src/arkode/fmod/farkode_mristep_mod.c b/src/arkode/fmod/farkode_mristep_mod.c index c9fc9edf0c..cac8323310 100644 --- a/src/arkode/fmod/farkode_mristep_mod.c +++ b/src/arkode/fmod/farkode_mristep_mod.c @@ -599,14 +599,14 @@ SWIGEXPORT void * _wrap_FMRIStepCoupling_Copy(void *farg1) { } -SWIGEXPORT void _wrap_FMRIStepCoupling_Space(void *farg1, int64_t *farg2, int64_t *farg3) { +SWIGEXPORT void _wrap_FMRIStepCoupling_Space(void *farg1, long *farg2, long *farg3) { MRIStepCoupling arg1 = (MRIStepCoupling) 0 ; - sunindextype *arg2 = (sunindextype *) 0 ; - sunindextype *arg3 = (sunindextype *) 0 ; + long *arg2 = (long *) 0 ; + long *arg3 = (long *) 0 ; arg1 = (MRIStepCoupling)(farg1); - arg2 = (sunindextype *)(farg2); - arg3 = (sunindextype *)(farg3); + arg2 = (long *)(farg2); + arg3 = (long *)(farg3); MRIStepCoupling_Space(arg1,arg2,arg3); } diff --git a/src/arkode/fmod/farkode_mristep_mod.f90 b/src/arkode/fmod/farkode_mristep_mod.f90 index 163f24f8f8..bb76bee620 100644 --- a/src/arkode/fmod/farkode_mristep_mod.f90 +++ b/src/arkode/fmod/farkode_mristep_mod.f90 @@ -1732,8 +1732,8 @@ function FMRIStepCoupling_Copy(mric) & subroutine FMRIStepCoupling_Space(mric, liw, lrw) use, intrinsic :: ISO_C_BINDING type(C_PTR) :: mric -integer(C_INT64_T), dimension(*), target, intent(inout) :: liw -integer(C_INT64_T), dimension(*), target, intent(inout) :: lrw +integer(C_LONG), dimension(*), target, intent(inout) :: liw +integer(C_LONG), dimension(*), target, intent(inout) :: lrw type(C_PTR) :: farg1 type(C_PTR) :: farg2 type(C_PTR) :: farg3 diff --git a/src/nvector/manyvector/fmod/fnvector_manyvector_mod.c b/src/nvector/manyvector/fmod/fnvector_manyvector_mod.c index 3cd395bf66..7012d29bf1 100644 --- a/src/nvector/manyvector/fmod/fnvector_manyvector_mod.c +++ b/src/nvector/manyvector/fmod/fnvector_manyvector_mod.c @@ -328,14 +328,14 @@ SWIGEXPORT void _wrap_FN_VDestroy_ManyVector(N_Vector farg1) { } -SWIGEXPORT void _wrap_FN_VSpace_ManyVector(N_Vector farg1, int64_t *farg2, int64_t *farg3) { +SWIGEXPORT void _wrap_FN_VSpace_ManyVector(N_Vector farg1, long *farg2, long *farg3) { N_Vector arg1 = (N_Vector) 0 ; - sunindextype *arg2 = (sunindextype *) 0 ; - sunindextype *arg3 = (sunindextype *) 0 ; + long *arg2 = (long *) 0 ; + long *arg3 = (long *) 0 ; arg1 = (N_Vector)(farg1); - arg2 = (sunindextype *)(farg2); - arg3 = (sunindextype *)(farg3); + arg2 = (long *)(farg2); + arg3 = (long *)(farg3); N_VSpace_ManyVector(arg1,arg2,arg3); } diff --git a/src/nvector/manyvector/fmod/fnvector_manyvector_mod.f90 b/src/nvector/manyvector/fmod/fnvector_manyvector_mod.f90 index 1c747bb028..c36042496f 100644 --- a/src/nvector/manyvector/fmod/fnvector_manyvector_mod.f90 +++ b/src/nvector/manyvector/fmod/fnvector_manyvector_mod.f90 @@ -744,8 +744,8 @@ subroutine FN_VDestroy_ManyVector(v) subroutine FN_VSpace_ManyVector(v, lrw, liw) use, intrinsic :: ISO_C_BINDING type(N_Vector), target, intent(inout) :: v -integer(C_INT64_T), dimension(*), target, intent(inout) :: lrw -integer(C_INT64_T), dimension(*), target, intent(inout) :: liw +integer(C_LONG), dimension(*), target, intent(inout) :: lrw +integer(C_LONG), dimension(*), target, intent(inout) :: liw type(C_PTR) :: farg1 type(C_PTR) :: farg2 type(C_PTR) :: farg3 diff --git a/src/nvector/manyvector/fmod/fnvector_mpimanyvector_mod.c b/src/nvector/manyvector/fmod/fnvector_mpimanyvector_mod.c index 2374d9a846..bbf156e18c 100644 --- a/src/nvector/manyvector/fmod/fnvector_mpimanyvector_mod.c +++ b/src/nvector/manyvector/fmod/fnvector_mpimanyvector_mod.c @@ -356,14 +356,14 @@ SWIGEXPORT void _wrap_FN_VDestroy_MPIManyVector(N_Vector farg1) { } -SWIGEXPORT void _wrap_FN_VSpace_MPIManyVector(N_Vector farg1, int64_t *farg2, int64_t *farg3) { +SWIGEXPORT void _wrap_FN_VSpace_MPIManyVector(N_Vector farg1, long *farg2, long *farg3) { N_Vector arg1 = (N_Vector) 0 ; - sunindextype *arg2 = (sunindextype *) 0 ; - sunindextype *arg3 = (sunindextype *) 0 ; + long *arg2 = (long *) 0 ; + long *arg3 = (long *) 0 ; arg1 = (N_Vector)(farg1); - arg2 = (sunindextype *)(farg2); - arg3 = (sunindextype *)(farg3); + arg2 = (long *)(farg2); + arg3 = (long *)(farg3); N_VSpace_MPIManyVector(arg1,arg2,arg3); } diff --git a/src/nvector/manyvector/fmod/fnvector_mpimanyvector_mod.f90 b/src/nvector/manyvector/fmod/fnvector_mpimanyvector_mod.f90 index d214fc462b..a4bb027bcb 100644 --- a/src/nvector/manyvector/fmod/fnvector_mpimanyvector_mod.f90 +++ b/src/nvector/manyvector/fmod/fnvector_mpimanyvector_mod.f90 @@ -866,8 +866,8 @@ subroutine FN_VDestroy_MPIManyVector(v) subroutine FN_VSpace_MPIManyVector(v, lrw, liw) use, intrinsic :: ISO_C_BINDING type(N_Vector), target, intent(inout) :: v -integer(C_INT64_T), dimension(*), target, intent(inout) :: lrw -integer(C_INT64_T), dimension(*), target, intent(inout) :: liw +integer(C_LONG), dimension(*), target, intent(inout) :: lrw +integer(C_LONG), dimension(*), target, intent(inout) :: liw type(C_PTR) :: farg1 type(C_PTR) :: farg2 type(C_PTR) :: farg3 diff --git a/src/nvector/openmp/fmod/fnvector_openmp_mod.c b/src/nvector/openmp/fmod/fnvector_openmp_mod.c index 34f3b918df..d173984a44 100644 --- a/src/nvector/openmp/fmod/fnvector_openmp_mod.c +++ b/src/nvector/openmp/fmod/fnvector_openmp_mod.c @@ -332,14 +332,14 @@ SWIGEXPORT void _wrap_FN_VDestroy_OpenMP(N_Vector farg1) { } -SWIGEXPORT void _wrap_FN_VSpace_OpenMP(N_Vector farg1, int64_t *farg2, int64_t *farg3) { +SWIGEXPORT void _wrap_FN_VSpace_OpenMP(N_Vector farg1, long *farg2, long *farg3) { N_Vector arg1 = (N_Vector) 0 ; - sunindextype *arg2 = (sunindextype *) 0 ; - sunindextype *arg3 = (sunindextype *) 0 ; + long *arg2 = (long *) 0 ; + long *arg3 = (long *) 0 ; arg1 = (N_Vector)(farg1); - arg2 = (sunindextype *)(farg2); - arg3 = (sunindextype *)(farg3); + arg2 = (long *)(farg2); + arg3 = (long *)(farg3); N_VSpace_OpenMP(arg1,arg2,arg3); } diff --git a/src/nvector/openmp/fmod/fnvector_openmp_mod.f90 b/src/nvector/openmp/fmod/fnvector_openmp_mod.f90 index bcdc99e1bf..50a2618282 100644 --- a/src/nvector/openmp/fmod/fnvector_openmp_mod.f90 +++ b/src/nvector/openmp/fmod/fnvector_openmp_mod.f90 @@ -718,8 +718,8 @@ subroutine FN_VDestroy_OpenMP(v) subroutine FN_VSpace_OpenMP(v, lrw, liw) use, intrinsic :: ISO_C_BINDING type(N_Vector), target, intent(inout) :: v -integer(C_INT64_T), dimension(*), target, intent(inout) :: lrw -integer(C_INT64_T), dimension(*), target, intent(inout) :: liw +integer(C_LONG), dimension(*), target, intent(inout) :: lrw +integer(C_LONG), dimension(*), target, intent(inout) :: liw type(C_PTR) :: farg1 type(C_PTR) :: farg2 type(C_PTR) :: farg3 diff --git a/src/nvector/parallel/fmod/fnvector_parallel_mod.c b/src/nvector/parallel/fmod/fnvector_parallel_mod.c index 877640429b..3d0aa44e17 100644 --- a/src/nvector/parallel/fmod/fnvector_parallel_mod.c +++ b/src/nvector/parallel/fmod/fnvector_parallel_mod.c @@ -380,14 +380,14 @@ SWIGEXPORT void _wrap_FN_VDestroy_Parallel(N_Vector farg1) { } -SWIGEXPORT void _wrap_FN_VSpace_Parallel(N_Vector farg1, int64_t *farg2, int64_t *farg3) { +SWIGEXPORT void _wrap_FN_VSpace_Parallel(N_Vector farg1, long *farg2, long *farg3) { N_Vector arg1 = (N_Vector) 0 ; - sunindextype *arg2 = (sunindextype *) 0 ; - sunindextype *arg3 = (sunindextype *) 0 ; + long *arg2 = (long *) 0 ; + long *arg3 = (long *) 0 ; arg1 = (N_Vector)(farg1); - arg2 = (sunindextype *)(farg2); - arg3 = (sunindextype *)(farg3); + arg2 = (long *)(farg2); + arg3 = (long *)(farg3); N_VSpace_Parallel(arg1,arg2,arg3); } diff --git a/src/nvector/parallel/fmod/fnvector_parallel_mod.f90 b/src/nvector/parallel/fmod/fnvector_parallel_mod.f90 index c4a036de7b..715a254c19 100644 --- a/src/nvector/parallel/fmod/fnvector_parallel_mod.f90 +++ b/src/nvector/parallel/fmod/fnvector_parallel_mod.f90 @@ -862,8 +862,8 @@ subroutine FN_VDestroy_Parallel(v) subroutine FN_VSpace_Parallel(v, lrw, liw) use, intrinsic :: ISO_C_BINDING type(N_Vector), target, intent(inout) :: v -integer(C_INT64_T), dimension(*), target, intent(inout) :: lrw -integer(C_INT64_T), dimension(*), target, intent(inout) :: liw +integer(C_LONG), dimension(*), target, intent(inout) :: lrw +integer(C_LONG), dimension(*), target, intent(inout) :: liw type(C_PTR) :: farg1 type(C_PTR) :: farg2 type(C_PTR) :: farg3 diff --git a/src/nvector/pthreads/fmod/fnvector_pthreads_mod.c b/src/nvector/pthreads/fmod/fnvector_pthreads_mod.c index 76af5ca784..31aae83b2b 100644 --- a/src/nvector/pthreads/fmod/fnvector_pthreads_mod.c +++ b/src/nvector/pthreads/fmod/fnvector_pthreads_mod.c @@ -332,14 +332,14 @@ SWIGEXPORT void _wrap_FN_VDestroy_Pthreads(N_Vector farg1) { } -SWIGEXPORT void _wrap_FN_VSpace_Pthreads(N_Vector farg1, int64_t *farg2, int64_t *farg3) { +SWIGEXPORT void _wrap_FN_VSpace_Pthreads(N_Vector farg1, long *farg2, long *farg3) { N_Vector arg1 = (N_Vector) 0 ; - sunindextype *arg2 = (sunindextype *) 0 ; - sunindextype *arg3 = (sunindextype *) 0 ; + long *arg2 = (long *) 0 ; + long *arg3 = (long *) 0 ; arg1 = (N_Vector)(farg1); - arg2 = (sunindextype *)(farg2); - arg3 = (sunindextype *)(farg3); + arg2 = (long *)(farg2); + arg3 = (long *)(farg3); N_VSpace_Pthreads(arg1,arg2,arg3); } diff --git a/src/nvector/pthreads/fmod/fnvector_pthreads_mod.f90 b/src/nvector/pthreads/fmod/fnvector_pthreads_mod.f90 index d3b92e8269..5af51476e6 100644 --- a/src/nvector/pthreads/fmod/fnvector_pthreads_mod.f90 +++ b/src/nvector/pthreads/fmod/fnvector_pthreads_mod.f90 @@ -718,8 +718,8 @@ subroutine FN_VDestroy_Pthreads(v) subroutine FN_VSpace_Pthreads(v, lrw, liw) use, intrinsic :: ISO_C_BINDING type(N_Vector), target, intent(inout) :: v -integer(C_INT64_T), dimension(*), target, intent(inout) :: lrw -integer(C_INT64_T), dimension(*), target, intent(inout) :: liw +integer(C_LONG), dimension(*), target, intent(inout) :: lrw +integer(C_LONG), dimension(*), target, intent(inout) :: liw type(C_PTR) :: farg1 type(C_PTR) :: farg2 type(C_PTR) :: farg3 diff --git a/src/nvector/serial/fmod/fnvector_serial_mod.c b/src/nvector/serial/fmod/fnvector_serial_mod.c index 7611d0b848..191dd35b8c 100644 --- a/src/nvector/serial/fmod/fnvector_serial_mod.c +++ b/src/nvector/serial/fmod/fnvector_serial_mod.c @@ -326,14 +326,14 @@ SWIGEXPORT void _wrap_FN_VDestroy_Serial(N_Vector farg1) { } -SWIGEXPORT void _wrap_FN_VSpace_Serial(N_Vector farg1, int64_t *farg2, int64_t *farg3) { +SWIGEXPORT void _wrap_FN_VSpace_Serial(N_Vector farg1, long *farg2, long *farg3) { N_Vector arg1 = (N_Vector) 0 ; - sunindextype *arg2 = (sunindextype *) 0 ; - sunindextype *arg3 = (sunindextype *) 0 ; + long *arg2 = (long *) 0 ; + long *arg3 = (long *) 0 ; arg1 = (N_Vector)(farg1); - arg2 = (sunindextype *)(farg2); - arg3 = (sunindextype *)(farg3); + arg2 = (long *)(farg2); + arg3 = (long *)(farg3); N_VSpace_Serial(arg1,arg2,arg3); } diff --git a/src/nvector/serial/fmod/fnvector_serial_mod.f90 b/src/nvector/serial/fmod/fnvector_serial_mod.f90 index bbdc76c8b7..f789b7932b 100644 --- a/src/nvector/serial/fmod/fnvector_serial_mod.f90 +++ b/src/nvector/serial/fmod/fnvector_serial_mod.f90 @@ -706,8 +706,8 @@ subroutine FN_VDestroy_Serial(v) subroutine FN_VSpace_Serial(v, lrw, liw) use, intrinsic :: ISO_C_BINDING type(N_Vector), target, intent(inout) :: v -integer(C_INT64_T), dimension(*), target, intent(inout) :: lrw -integer(C_INT64_T), dimension(*), target, intent(inout) :: liw +integer(C_LONG), dimension(*), target, intent(inout) :: lrw +integer(C_LONG), dimension(*), target, intent(inout) :: liw type(C_PTR) :: farg1 type(C_PTR) :: farg2 type(C_PTR) :: farg3 diff --git a/src/sundials/fmod/fsundials_core_mod.c b/src/sundials/fmod/fsundials_core_mod.c index 4af16b91a4..da4a940a20 100644 --- a/src/sundials/fmod/fsundials_core_mod.c +++ b/src/sundials/fmod/fsundials_core_mod.c @@ -906,14 +906,14 @@ SWIGEXPORT void _wrap_FN_VDestroy(N_Vector farg1) { } -SWIGEXPORT void _wrap_FN_VSpace(N_Vector farg1, int64_t *farg2, int64_t *farg3) { +SWIGEXPORT void _wrap_FN_VSpace(N_Vector farg1, long *farg2, long *farg3) { N_Vector arg1 = (N_Vector) 0 ; - sunindextype *arg2 = (sunindextype *) 0 ; - sunindextype *arg3 = (sunindextype *) 0 ; + long *arg2 = (long *) 0 ; + long *arg3 = (long *) 0 ; arg1 = (N_Vector)(farg1); - arg2 = (sunindextype *)(farg2); - arg3 = (sunindextype *)(farg3); + arg2 = (long *)(farg2); + arg3 = (long *)(farg3); N_VSpace(arg1,arg2,arg3); } diff --git a/src/sundials/fmod/fsundials_core_mod.f90 b/src/sundials/fmod/fsundials_core_mod.f90 index 4334dfe0d3..ac4e05c382 100644 --- a/src/sundials/fmod/fsundials_core_mod.f90 +++ b/src/sundials/fmod/fsundials_core_mod.f90 @@ -2743,8 +2743,8 @@ subroutine FN_VDestroy(v) subroutine FN_VSpace(v, lrw, liw) use, intrinsic :: ISO_C_BINDING type(N_Vector), target, intent(inout) :: v -integer(C_INT64_T), dimension(*), target, intent(inout) :: lrw -integer(C_INT64_T), dimension(*), target, intent(inout) :: liw +integer(C_LONG), dimension(*), target, intent(inout) :: lrw +integer(C_LONG), dimension(*), target, intent(inout) :: liw type(C_PTR) :: farg1 type(C_PTR) :: farg2 type(C_PTR) :: farg3 From b6c67fbecf10f55b632f9527458dbbaaee36aee2 Mon Sep 17 00:00:00 2001 From: "Balos, Cody, J" Date: Mon, 26 Feb 2024 11:36:43 -0800 Subject: [PATCH 05/70] update places where Space is called and wrong type of args is used --- src/arkode/arkode.c | 8 ++++---- src/arkode/arkode_arkstep.c | 4 ++-- src/arkode/arkode_arkstep_io.c | 6 +++--- src/arkode/arkode_bandpre.c | 2 +- src/arkode/arkode_erkstep.c | 2 +- src/arkode/arkode_erkstep_io.c | 6 +++--- src/arkode/arkode_impl.h | 4 ++-- src/arkode/arkode_ls.c | 4 ++-- src/arkode/arkode_mristep.c | 4 ++-- src/cvode/cvode.c | 2 +- src/cvode/cvode_bandpre.c | 2 +- src/cvode/cvode_ls.c | 2 +- src/cvodes/cvodes.c | 2 +- src/cvodes/cvodes_bandpre.c | 2 +- src/cvodes/cvodes_ls.c | 2 +- src/ida/ida.c | 2 +- src/ida/ida_ls.c | 2 +- src/idas/idas.c | 2 +- src/idas/idas_ls.c | 2 +- src/kinsol/kinsol_ls.c | 2 +- 20 files changed, 31 insertions(+), 31 deletions(-) diff --git a/src/arkode/arkode.c b/src/arkode/arkode.c index 69ec2d37fe..8adbc77c16 100644 --- a/src/arkode/arkode.c +++ b/src/arkode/arkode.c @@ -228,7 +228,7 @@ int arkResize(ARKodeMem ark_mem, N_Vector y0, sunrealtype hscale, sunrealtype t0, ARKVecResizeFn resize, void* resize_data) { sunbooleantype resizeOK; - sunindextype lrw1, liw1, lrw_diff, liw_diff; + long int lrw1, liw1, lrw_diff, liw_diff; int retval; /* Check ark_mem */ @@ -1329,7 +1329,7 @@ int arkInit(ARKodeMem ark_mem, sunrealtype t0, N_Vector y0, int init_type) { sunbooleantype stepperOK, nvectorOK, allocOK; int retval; - sunindextype lrw1, liw1; + long int lrw1, liw1; /* Check ark_mem */ if (ark_mem == NULL) @@ -1649,7 +1649,7 @@ sunbooleantype arkAllocVec(ARKodeMem ark_mem, N_Vector tmpl, N_Vector* v) } sunbooleantype arkAllocVecArray(int count, N_Vector tmpl, N_Vector** v, - sunindextype lrw1, long int* lrw, + long int lrw1, long int* lrw, sunindextype liw1, long int* liw) { /* allocate the new vector array if necessary */ @@ -1682,7 +1682,7 @@ void arkFreeVec(ARKodeMem ark_mem, N_Vector* v) } } -void arkFreeVecArray(int count, N_Vector** v, sunindextype lrw1, long int* lrw, +void arkFreeVecArray(int count, N_Vector** v, long int lrw1, long int* lrw, sunindextype liw1, long int* liw) { if (*v != NULL) diff --git a/src/arkode/arkode_arkstep.c b/src/arkode/arkode_arkstep.c index 7e4361c516..e8fa748788 100644 --- a/src/arkode/arkode_arkstep.c +++ b/src/arkode/arkode_arkstep.c @@ -240,7 +240,7 @@ int ARKStepResize(void* arkode_mem, N_Vector y0, sunrealtype hscale, ARKodeMem ark_mem; ARKodeARKStepMem step_mem; SUNNonlinearSolver NLS; - sunindextype lrw1, liw1, lrw_diff, liw_diff; + long int lrw1, liw1, lrw_diff, liw_diff; int i, retval; /* access ARKodeARKStepMem structure */ @@ -2243,7 +2243,7 @@ int arkStep_SetButcherTables(ARKodeMem ark_mem) { int etable, itable; ARKodeARKStepMem step_mem; - sunindextype Blrw, Bliw; + long int Blrw, Bliw; /* access ARKodeARKStepMem structure */ if (ark_mem->step_mem == NULL) diff --git a/src/arkode/arkode_arkstep_io.c b/src/arkode/arkode_arkstep_io.c index 58f78862c3..539b5a6747 100644 --- a/src/arkode/arkode_arkstep_io.c +++ b/src/arkode/arkode_arkstep_io.c @@ -1036,7 +1036,7 @@ int ARKStepSetOrder(void* arkode_mem, int ord) { ARKodeMem ark_mem; ARKodeARKStepMem step_mem; - sunindextype Blrw, Bliw; + long int Blrw, Bliw; int retval; /* access ARKodeARKStepMem structure */ @@ -1270,7 +1270,7 @@ int ARKStepSetTables(void* arkode_mem, int q, int p, ARKodeButcherTable Bi, int retval; ARKodeMem ark_mem; ARKodeARKStepMem step_mem; - sunindextype Blrw, Bliw; + long int Blrw, Bliw; /* access ARKodeARKStepMem structure */ retval = arkStep_AccessStepMem(arkode_mem, __func__, &ark_mem, &step_mem); @@ -1436,7 +1436,7 @@ int ARKStepSetTableNum(void* arkode_mem, ARKODE_DIRKTableID itable, int flag, retval; ARKodeMem ark_mem; ARKodeARKStepMem step_mem; - sunindextype Blrw, Bliw; + long int Blrw, Bliw; /* access ARKodeARKStepMem structure */ retval = arkStep_AccessStepMem(arkode_mem, __func__, &ark_mem, &step_mem); diff --git a/src/arkode/arkode_bandpre.c b/src/arkode/arkode_bandpre.c index 6eb5f576da..fd21cbb680 100644 --- a/src/arkode/arkode_bandpre.c +++ b/src/arkode/arkode_bandpre.c @@ -196,7 +196,7 @@ int ARKBandPrecGetWorkSpace(void* arkode_mem, long int* lenrwBP, long int* leniw ARKodeMem ark_mem; ARKLsMem arkls_mem; ARKBandPrecData pdata; - sunindextype lrw1, liw1; + long int lrw1, liw1; long int lrw, liw; int retval; diff --git a/src/arkode/arkode_erkstep.c b/src/arkode/arkode_erkstep.c index 1e80ea0f20..24b2630662 100644 --- a/src/arkode/arkode_erkstep.c +++ b/src/arkode/arkode_erkstep.c @@ -142,7 +142,7 @@ int ERKStepResize(void* arkode_mem, N_Vector y0, sunrealtype hscale, { ARKodeMem ark_mem; ARKodeERKStepMem step_mem; - sunindextype lrw1, liw1, lrw_diff, liw_diff; + long int lrw1, liw1, lrw_diff, liw_diff; int i, retval; /* access ARKodeERKStepMem structure */ diff --git a/src/arkode/arkode_erkstep_io.c b/src/arkode/arkode_erkstep_io.c index 15904203a0..16619fa94b 100644 --- a/src/arkode/arkode_erkstep_io.c +++ b/src/arkode/arkode_erkstep_io.c @@ -486,7 +486,7 @@ int ERKStepSetOrder(void* arkode_mem, int ord) { ARKodeMem ark_mem; ARKodeERKStepMem step_mem; - sunindextype Blrw, Bliw; + long int Blrw, Bliw; int retval; /* access ARKodeERKStepMem structure */ @@ -526,7 +526,7 @@ int ERKStepSetTable(void* arkode_mem, ARKodeButcherTable B) { ARKodeMem ark_mem; ARKodeERKStepMem step_mem; - sunindextype Blrw, Bliw; + long int Blrw, Bliw; int retval; /* access ARKodeERKStepMem structure */ @@ -584,7 +584,7 @@ int ERKStepSetTableNum(void* arkode_mem, ARKODE_ERKTableID etable) { ARKodeMem ark_mem; ARKodeERKStepMem step_mem; - sunindextype Blrw, Bliw; + long int Blrw, Bliw; int retval; /* access ARKodeERKStepMem structure */ diff --git a/src/arkode/arkode_impl.h b/src/arkode/arkode_impl.h index 54065a7fcb..e484bf00c2 100644 --- a/src/arkode/arkode_impl.h +++ b/src/arkode/arkode_impl.h @@ -875,10 +875,10 @@ void arkProcessError(ARKodeMem ark_mem, int error_code, int line, int arkInit(ARKodeMem ark_mem, sunrealtype t0, N_Vector y0, int init_type); sunbooleantype arkAllocVec(ARKodeMem ark_mem, N_Vector tmpl, N_Vector* v); sunbooleantype arkAllocVecArray(int count, N_Vector tmpl, N_Vector** v, - sunindextype lrw1, long int* lrw, + long int lrw1, long int* lrw, sunindextype liw1, long int* liw); void arkFreeVec(ARKodeMem ark_mem, N_Vector* v); -void arkFreeVecArray(int count, N_Vector** v, sunindextype lrw1, long int* lrw, +void arkFreeVecArray(int count, N_Vector** v, long int lrw1, long int* lrw, sunindextype liw1, long int* liw); sunbooleantype arkResizeVec(ARKodeMem ark_mem, ARKVecResizeFn resize, void* resize_data, sunindextype lrw_diff, diff --git a/src/arkode/arkode_ls.c b/src/arkode/arkode_ls.c index bf43998744..53576feb8c 100644 --- a/src/arkode/arkode_ls.c +++ b/src/arkode/arkode_ls.c @@ -944,7 +944,7 @@ int arkLSGetWorkSpace(void* arkode_mem, long int* lenrw, long int* leniw) { ARKodeMem ark_mem; ARKLsMem arkls_mem; - sunindextype lrw1, liw1; + long int lrw1, liw1; long int lrw, liw; int retval; @@ -1367,7 +1367,7 @@ int arkLSGetMassWorkSpace(void* arkode_mem, long int* lenrw, long int* leniw) { ARKodeMem ark_mem; ARKLsMassMem arkls_mem; - sunindextype lrw1, liw1; + long int lrw1, liw1; long int lrw, liw; int retval; diff --git a/src/arkode/arkode_mristep.c b/src/arkode/arkode_mristep.c index 25d1620834..21f700581b 100644 --- a/src/arkode/arkode_mristep.c +++ b/src/arkode/arkode_mristep.c @@ -230,7 +230,7 @@ int MRIStepResize(void* arkode_mem, N_Vector y0, sunrealtype t0, ARKodeMem ark_mem; ARKodeMRIStepMem step_mem; SUNNonlinearSolver NLS; - sunindextype lrw1, liw1, lrw_diff, liw_diff; + long int lrw1, liw1, lrw_diff, liw_diff; int retval; /* access ARKodeMRIStepMem structure */ @@ -2964,7 +2964,7 @@ int mriStepInnerStepper_Reset(MRIStepInnerStepper stepper, sunrealtype tR, int mriStepInnerStepper_AllocVecs(MRIStepInnerStepper stepper, int count, N_Vector tmpl) { - sunindextype lrw1, liw1; + long int lrw1, liw1; if (stepper == NULL) { return ARK_ILL_INPUT; } diff --git a/src/cvode/cvode.c b/src/cvode/cvode.c index 1bb942b264..27dc1c8b68 100644 --- a/src/cvode/cvode.c +++ b/src/cvode/cvode.c @@ -382,7 +382,7 @@ int CVodeInit(void* cvode_mem, CVRhsFn f, sunrealtype t0, N_Vector y0) { CVodeMem cv_mem; sunbooleantype nvectorOK, allocOK; - sunindextype lrw1, liw1; + long int lrw1, liw1; int i, k, retval; SUNNonlinearSolver NLS; diff --git a/src/cvode/cvode_bandpre.c b/src/cvode/cvode_bandpre.c index f421257440..94959121c7 100644 --- a/src/cvode/cvode_bandpre.c +++ b/src/cvode/cvode_bandpre.c @@ -213,7 +213,7 @@ int CVBandPrecGetWorkSpace(void* cvode_mem, long int* lenrwBP, long int* leniwBP CVodeMem cv_mem; CVLsMem cvls_mem; CVBandPrecData pdata; - sunindextype lrw1, liw1; + long int lrw1, liw1; long int lrw, liw; int flag; diff --git a/src/cvode/cvode_ls.c b/src/cvode/cvode_ls.c index a51ef16132..d14ba5343e 100644 --- a/src/cvode/cvode_ls.c +++ b/src/cvode/cvode_ls.c @@ -643,7 +643,7 @@ int CVodeGetLinWorkSpace(void* cvode_mem, long int* lenrwLS, long int* leniwLS) { CVodeMem cv_mem; CVLsMem cvls_mem; - sunindextype lrw1, liw1; + long int lrw1, liw1; long int lrw, liw; int retval; diff --git a/src/cvodes/cvodes.c b/src/cvodes/cvodes.c index d1e994f05d..1fa941f88f 100644 --- a/src/cvodes/cvodes.c +++ b/src/cvodes/cvodes.c @@ -678,7 +678,7 @@ int CVodeInit(void* cvode_mem, CVRhsFn f, sunrealtype t0, N_Vector y0) { CVodeMem cv_mem; sunbooleantype nvectorOK, allocOK; - sunindextype lrw1, liw1; + long int lrw1, liw1; int i, k, retval; SUNNonlinearSolver NLS; diff --git a/src/cvodes/cvodes_bandpre.c b/src/cvodes/cvodes_bandpre.c index 98a9308759..246c2359f9 100644 --- a/src/cvodes/cvodes_bandpre.c +++ b/src/cvodes/cvodes_bandpre.c @@ -216,7 +216,7 @@ int CVBandPrecGetWorkSpace(void* cvode_mem, long int* lenrwBP, long int* leniwBP CVodeMem cv_mem; CVLsMem cvls_mem; CVBandPrecData pdata; - sunindextype lrw1, liw1; + long int lrw1, liw1; long int lrw, liw; int flag; diff --git a/src/cvodes/cvodes_ls.c b/src/cvodes/cvodes_ls.c index 6c7362d74b..bb19933fb0 100644 --- a/src/cvodes/cvodes_ls.c +++ b/src/cvodes/cvodes_ls.c @@ -719,7 +719,7 @@ int CVodeGetLinWorkSpace(void* cvode_mem, long int* lenrwLS, long int* leniwLS) { CVodeMem cv_mem; CVLsMem cvls_mem; - sunindextype lrw1, liw1; + long int lrw1, liw1; long int lrw, liw; int retval; diff --git a/src/ida/ida.c b/src/ida/ida.c index 523675422e..1ee9367632 100644 --- a/src/ida/ida.c +++ b/src/ida/ida.c @@ -377,7 +377,7 @@ int IDAInit(void* ida_mem, IDAResFn res, sunrealtype t0, N_Vector yy0, int retval; IDAMem IDA_mem; sunbooleantype nvectorOK, allocOK; - sunindextype lrw1, liw1; + long int lrw1, liw1; SUNNonlinearSolver NLS; /* Check ida_mem */ diff --git a/src/ida/ida_ls.c b/src/ida/ida_ls.c index c0a0c73649..2a5c10ae6d 100644 --- a/src/ida/ida_ls.c +++ b/src/ida/ida_ls.c @@ -598,7 +598,7 @@ int IDAGetLinWorkSpace(void* ida_mem, long int* lenrwLS, long int* leniwLS) { IDAMem IDA_mem; IDALsMem idals_mem; - sunindextype lrw1, liw1; + long int lrw1, liw1; long int lrw, liw; int retval; diff --git a/src/idas/idas.c b/src/idas/idas.c index d42aebab2c..a0314d086b 100644 --- a/src/idas/idas.c +++ b/src/idas/idas.c @@ -568,7 +568,7 @@ int IDAInit(void* ida_mem, IDAResFn res, sunrealtype t0, N_Vector yy0, int retval; IDAMem IDA_mem; sunbooleantype nvectorOK, allocOK; - sunindextype lrw1, liw1; + long int lrw1, liw1; SUNNonlinearSolver NLS; /* Check ida_mem */ diff --git a/src/idas/idas_ls.c b/src/idas/idas_ls.c index dc0c0bab52..13ee68bc90 100644 --- a/src/idas/idas_ls.c +++ b/src/idas/idas_ls.c @@ -639,7 +639,7 @@ int IDAGetLinWorkSpace(void* ida_mem, long int* lenrwLS, long int* leniwLS) { IDAMem IDA_mem; IDALsMem idals_mem; - sunindextype lrw1, liw1; + long int lrw1, liw1; long int lrw, liw; int retval; diff --git a/src/kinsol/kinsol_ls.c b/src/kinsol/kinsol_ls.c index 684995a069..e1989a8988 100644 --- a/src/kinsol/kinsol_ls.c +++ b/src/kinsol/kinsol_ls.c @@ -414,7 +414,7 @@ int KINGetLinWorkSpace(void* kinmem, long int* lenrwLS, long int* leniwLS) { KINMem kin_mem; KINLsMem kinls_mem; - sunindextype lrw1, liw1; + long int lrw1, liw1; long int lrw, liw; int retval; From ead7727175096a03328eff629c11e7eb9df40bc8 Mon Sep 17 00:00:00 2001 From: "Balos, Cody, J" Date: Mon, 26 Feb 2024 11:43:48 -0800 Subject: [PATCH 06/70] more places where liw lrw dont match --- src/arkode/arkode_bbdpre.c | 3 ++- src/cvode/cvode_bbdpre.c | 4 ++-- src/cvodes/cvodes_bbdpre.c | 4 ++-- src/ida/ida_bbdpre.c | 4 ++-- src/ida/ida_ls.c | 3 +-- src/idas/idas_bbdpre.c | 4 ++-- src/idas/idas_ls.c | 3 +-- src/kinsol/kinsol_bbdpre.c | 4 ++-- src/nvector/manyvector/nvector_manyvector.c | 3 ++- 9 files changed, 16 insertions(+), 16 deletions(-) diff --git a/src/arkode/arkode_bbdpre.c b/src/arkode/arkode_bbdpre.c index 52f2ee29d9..51baa2a437 100644 --- a/src/arkode/arkode_bbdpre.c +++ b/src/arkode/arkode_bbdpre.c @@ -56,7 +56,8 @@ int ARKBBDPrecInit(void* arkode_mem, sunindextype Nlocal, sunindextype mudq, ARKodeMem ark_mem; ARKLsMem arkls_mem; ARKBBDPrecData pdata; - sunindextype muk, mlk, storage_mu, lrw1, liw1; + sunindextype muk, mlk, storage_mu; + long int lrw1, liw1; long int lrw, liw; int retval; diff --git a/src/cvode/cvode_bbdpre.c b/src/cvode/cvode_bbdpre.c index 6c8a28470b..5a73772153 100644 --- a/src/cvode/cvode_bbdpre.c +++ b/src/cvode/cvode_bbdpre.c @@ -60,8 +60,8 @@ int CVBBDPrecInit(void* cvode_mem, sunindextype Nlocal, sunindextype mudq, CVodeMem cv_mem; CVLsMem cvls_mem; CVBBDPrecData pdata; - sunindextype muk, mlk, storage_mu, lrw1, liw1; - long int lrw, liw; + sunindextype muk, mlk, storage_mu; + long int lrw, liw, lrw1, liw1; int flag; if (cvode_mem == NULL) diff --git a/src/cvodes/cvodes_bbdpre.c b/src/cvodes/cvodes_bbdpre.c index af9cba7900..98e3321a29 100644 --- a/src/cvodes/cvodes_bbdpre.c +++ b/src/cvodes/cvodes_bbdpre.c @@ -72,8 +72,8 @@ int CVBBDPrecInit(void* cvode_mem, sunindextype Nlocal, sunindextype mudq, CVodeMem cv_mem; CVLsMem cvls_mem; CVBBDPrecData pdata; - sunindextype muk, mlk, storage_mu, lrw1, liw1; - long int lrw, liw; + sunindextype muk, mlk, storage_mu; + long int lrw, liw, lrw1, liw1;; int flag; if (cvode_mem == NULL) diff --git a/src/ida/ida_bbdpre.c b/src/ida/ida_bbdpre.c index 2352ff3b64..5c96b105bb 100644 --- a/src/ida/ida_bbdpre.c +++ b/src/ida/ida_bbdpre.c @@ -62,8 +62,8 @@ int IDABBDPrecInit(void* ida_mem, sunindextype Nlocal, sunindextype mudq, IDAMem IDA_mem; IDALsMem idals_mem; IBBDPrecData pdata; - sunindextype muk, mlk, storage_mu, lrw1, liw1; - long int lrw, liw; + sunindextype muk, mlk, storage_mu; + long int lrw, liw, lrw1, liw1; int flag; if (ida_mem == NULL) diff --git a/src/ida/ida_ls.c b/src/ida/ida_ls.c index 2a5c10ae6d..78e5cbe983 100644 --- a/src/ida/ida_ls.c +++ b/src/ida/ida_ls.c @@ -598,8 +598,7 @@ int IDAGetLinWorkSpace(void* ida_mem, long int* lenrwLS, long int* leniwLS) { IDAMem IDA_mem; IDALsMem idals_mem; - long int lrw1, liw1; - long int lrw, liw; + long int lrw, liw, lrw1, liw1; int retval; /* access IDALsMem structure */ diff --git a/src/idas/idas_bbdpre.c b/src/idas/idas_bbdpre.c index a584499293..6fc015a2be 100644 --- a/src/idas/idas_bbdpre.c +++ b/src/idas/idas_bbdpre.c @@ -76,8 +76,8 @@ int IDABBDPrecInit(void* ida_mem, sunindextype Nlocal, sunindextype mudq, IDAMem IDA_mem; IDALsMem idals_mem; IBBDPrecData pdata; - sunindextype muk, mlk, storage_mu, lrw1, liw1; - long int lrw, liw; + sunindextype muk, mlk, storage_mu; + long int lrw, liw, lrw1, liw1; int flag; if (ida_mem == NULL) diff --git a/src/idas/idas_ls.c b/src/idas/idas_ls.c index 13ee68bc90..236778dbed 100644 --- a/src/idas/idas_ls.c +++ b/src/idas/idas_ls.c @@ -639,8 +639,7 @@ int IDAGetLinWorkSpace(void* ida_mem, long int* lenrwLS, long int* leniwLS) { IDAMem IDA_mem; IDALsMem idals_mem; - long int lrw1, liw1; - long int lrw, liw; + long int lrw, liw, lrw1, liw1; int retval; /* access IDALsMem structure */ diff --git a/src/kinsol/kinsol_bbdpre.c b/src/kinsol/kinsol_bbdpre.c index 3cd8b78e5f..37d314859c 100644 --- a/src/kinsol/kinsol_bbdpre.c +++ b/src/kinsol/kinsol_bbdpre.c @@ -63,8 +63,8 @@ int KINBBDPrecInit(void* kinmem, sunindextype Nlocal, sunindextype mudq, KINMem kin_mem; KINLsMem kinls_mem; KBBDPrecData pdata; - sunindextype muk, mlk, storage_mu, lrw1, liw1; - long int lrw, liw; + sunindextype muk, mlk, storage_mu; + long int lrw, liw, lrw1, liw1; int flag; if (kinmem == NULL) diff --git a/src/nvector/manyvector/nvector_manyvector.c b/src/nvector/manyvector/nvector_manyvector.c index c1b0c031cc..4c8765b232 100644 --- a/src/nvector/manyvector/nvector_manyvector.c +++ b/src/nvector/manyvector/nvector_manyvector.c @@ -572,7 +572,8 @@ void MVAPPEND(N_VDestroy)(N_Vector v) void MVAPPEND(N_VSpace)(N_Vector v, long int* lrw, long int* liw) { SUNFunctionBegin(v->sunctx); - sunindextype i, lrw1, liw1; + sunindextype i; + long int lrw1, liw1; *lrw = 0; *liw = 0; for (i = 0; i < MANYVECTOR_NUM_SUBVECS(v); i++) From 63b11dae06b17cde149feb61cf3f6a1760302199 Mon Sep 17 00:00:00 2001 From: "Balos, Cody, J" Date: Tue, 26 Mar 2024 14:20:06 -0700 Subject: [PATCH 07/70] update swig generation to be able to produce int32 or int64 sunindextype builds --- swig/Makefile | 60 ++++++++++++++++++--------------- swig/sundials/fsundials.i | 14 ++++++++ swig/sundials/fsundials_types.i | 6 ---- 3 files changed, 46 insertions(+), 34 deletions(-) diff --git a/swig/Makefile b/swig/Makefile index 7264855297..f88b5828e6 100644 --- a/swig/Makefile +++ b/swig/Makefile @@ -29,90 +29,94 @@ SUNADAPTCONTROLLER=imexgus soderlind INCLUDES=-I../include +INT_SIZE:=32 + .PHONY: generic arkode cvode cvodes ida idas kinsol nvector sunmatrix sunlinsol sunnonlinsol sunadaptcontroller patch -all: generic arkode cvode cvodes ida idas kinsol nvector sunmatrix sunlinsol sunnonlinsol sunadaptcontroller patch +all_64: generic arkode cvode cvodes ida idas kinsol nvector sunmatrix sunlinsol sunnonlinsol sunadaptcontroller patch + +all_32: generic arkode cvode cvodes ida idas kinsol nvector sunmatrix sunlinsol sunnonlinsol sunadaptcontroller patch 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 ; \ + echo "swig -DUSE_INT${INT_SIZE} -fortran -outdir ../src/arkode/fmod_int${INT_SIZE} -o ../src/arkode/fmod_int${INT_SIZE}/$${i}.c ${INCLUDES} arkode/$${i}.i" ; \ + swig -DUSE_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 ; \ + echo "swig -DUSE_INT${INT_SIZE} -fortran -outdir ../src/cvode/fmod_int${INT_SIZE} -o ../src/cvode/fmod_int${INT_SIZE}/$${i}.c ${INCLUDES} cvode/$${i}.i" ; \ + swig -DUSE_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 ; \ + echo "swig -DUSE_INT${INT_SIZE} -fortran -outdir ../src/cvodes/fmod_int${INT_SIZE} -o ../src/cvodes/fmod_int${INT_SIZE}/$${i}.c ${INCLUDES} cvodes/$${i}.i" ; \ + swig -DUSE_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 ; \ + echo "swig -DUSE_INT${INT_SIZE} -fortran -outdir ../src/ida/fmod_int${INT_SIZE} -o ../src/ida/fmod_int${INT_SIZE}/$${i}.c ${INCLUDES} ida/$${i}.i" ; \ + swig -DUSE_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 ; \ + echo "swig -DUSE_INT${INT_SIZE} -fortran -outdir ../src/idas/fmod_int${INT_SIZE} -o ../src/idas/fmod_int${INT_SIZE}/$${i}.c ${INCLUDES} idas/$${i}.i" ; \ + swig -DUSE_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 ; \ + echo "swig -DUSE_INT${INT_SIZE} -fortran -outdir ../src/kinsol/fmod_int${INT_SIZE} -o ../src/kinsol/fmod_int${INT_SIZE}/$${i}.c ${INCLUDES} kinsol/$${i}" ; \ + swig -DUSE_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 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 ; \ + echo "swig -DUSE_INT${INT_SIZE} -fortran -outdir ../src/sundials/fmod_int${INT_SIZE} -o ../src/sundials/fmod_int${INT_SIZE}/$${i}.c ${INCLUDES} $${i}" ; \ + swig -DUSE_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 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 ; \ + echo "swig -DUSE_INT${INT_SIZE} -fortran -outdir ../src/nvector/$${i}/fmod_int${INT_SIZE} -o ../src/nvector/$${i}/fmod_int${INT_SIZE} ${INCLUDES} nvector/fnvector_$${i}_mod.i" ; \ + swig -DUSE_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 ; \ + @echo "swig -DUSE_INT${INT_SIZE} -fortran -outdir ../src/nvector/manyvector/fmod_int${INT_SIZE} -o ../src/nvector/manyvector/fmod_int${INT_SIZE} ${INCLUDES} nvector/fnvector_mpimanyvector_mod.i" ; \ + swig -DUSE_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 ; \ + echo "swig -DUSE_INT${INT_SIZE} -fortran -outdir ../src/sunmatrix/$${i}/fmod_int${INT_SIZE} -o ../src/sunmatrix/$${i}/fmod_int${INT_SIZE} ${INCLUDES} sunmatrix/fsunmatrix_$${i}_mod.i" ; \ + swig -DUSE_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 ; \ + echo "swig -DUSE_INT${INT_SIZE} -fortran -outdir ../src/sunlinsol/$${i}/fmod_int${INT_SIZE} -o ../src/sunlinsol/$${i}/fmod_int${INT_SIZE} ${INCLUDES} sunlinsol/fsunlinsol_$${i}_mod.i" ; \ + swig -DUSE_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 ; \ + echo "swig -DUSE_INT${INT_SIZE} -fortran -outdir ../src/sunnonlinsol/$${i}/fmod_int${INT_SIZE} -o ../src/sunnonlinsol/$${i}/fmod_int${INT_SIZE} ${INCLUDES} sunnonlinsol/fsunnonlinsol_$${i}_mod.i" ; \ + swig -DUSE_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 ; \ + echo "swig -DUSE_INT${INT_SIZE} -fortran -outdir ../src/sunadaptcontroller/$${i}/fmod_int${INT_SIZE} -o ../src/sunadaptcontroller/$${i}/fmod_int${INT_SIZE} ${INCLUDES} sunadaptcontroller/fsunadaptcontroller_$${i}_mod.i" ; \ + swig -DUSE_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 + rm ../src/**/fmod_int${INT_SIZE}/*.c; rm ../src/**/fmod_int${INT_SIZE}/*.f90 .FORCE: ; diff --git a/swig/sundials/fsundials.i b/swig/sundials/fsundials.i index 7f4f6f8b67..85388f45fa 100644 --- a/swig/sundials/fsundials.i +++ b/swig/sundials/fsundials.i @@ -23,6 +23,20 @@ #define SUNDIALS_DEPRECATED_EXPORT #define SUNDIALS_DEPRECATED_EXPORT_MSG(msg) +#ifdef GENERATE_INT32 +// Inform SWIG of the configure-provided types +#define SUNDIALS_INT32_T +#define SUNDIALS_INDEX_TYPE int32_t +#define SUNDIALS_DOUBLE_PRECISION +#define sunbooleantype int +#else +// Inform SWIG of the configure-provided types +#define SUNDIALS_INT64_T +#define SUNDIALS_INDEX_TYPE int64_t +#define SUNDIALS_DOUBLE_PRECISION +#define sunbooleantype int +#endif + // Prefix all functions with F // E.g. CVodeCreate -> FCVodeCreate %rename("F%s", %$isfunction) ""; diff --git a/swig/sundials/fsundials_types.i b/swig/sundials/fsundials_types.i index 5877bf99bb..e2fd9b1314 100644 --- a/swig/sundials/fsundials_types.i +++ b/swig/sundials/fsundials_types.i @@ -17,12 +17,6 @@ %include -// Inform SWIG of the configure-provided types -#define SUNDIALS_INT64_T -#define SUNDIALS_INDEX_TYPE int64_t -#define SUNDIALS_DOUBLE_PRECISION -#define sunbooleantype int - // Handle MPI_Comm and SUNComm %include From 469071e55d1e26978623fa059249584314db53c8 Mon Sep 17 00:00:00 2001 From: "Balos, Cody, J" Date: Tue, 26 Mar 2024 14:26:01 -0700 Subject: [PATCH 08/70] fix make --- swig/Makefile | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/swig/Makefile b/swig/Makefile index f88b5828e6..353093998d 100644 --- a/swig/Makefile +++ b/swig/Makefile @@ -29,13 +29,20 @@ SUNADAPTCONTROLLER=imexgus soderlind INCLUDES=-I../include -INT_SIZE:=32 - .PHONY: generic arkode cvode cvodes ida idas kinsol nvector sunmatrix sunlinsol sunnonlinsol sunadaptcontroller patch -all_64: generic arkode cvode cvodes ida idas kinsol nvector sunmatrix sunlinsol sunnonlinsol sunadaptcontroller patch +.SETINT32: + $(eval INT_SIZE=32) + +.SETINT64: + $(eval INT_SIZE=64) + +all_64: .SETINT64 generic arkode cvode cvodes ida idas kinsol nvector sunmatrix sunlinsol sunnonlinsol sunadaptcontroller patch + +all_32: .SETINT32 generic arkode cvode cvodes ida idas kinsol nvector sunmatrix sunlinsol sunnonlinsol sunadaptcontroller patch + +all: all_64 all_32 -all_32: generic arkode cvode cvodes ida idas kinsol nvector sunmatrix sunlinsol sunnonlinsol sunadaptcontroller patch arkode: $(ARKODE:%:arkode/%.i) @for i in ${ARKODE} ; do \ From 489210ca31b0f9b7e51cb4f2af55c9b14f4fd2cb Mon Sep 17 00:00:00 2001 From: "Balos, Cody, J" Date: Tue, 26 Mar 2024 14:29:33 -0700 Subject: [PATCH 09/70] fix typo --- swig/Makefile | 52 +++++++++++++++++++++++++-------------------------- 1 file changed, 26 insertions(+), 26 deletions(-) diff --git a/swig/Makefile b/swig/Makefile index 353093998d..97821ab320 100644 --- a/swig/Makefile +++ b/swig/Makefile @@ -46,78 +46,78 @@ all: all_64 all_32 arkode: $(ARKODE:%:arkode/%.i) @for i in ${ARKODE} ; do \ - echo "swig -DUSE_INT${INT_SIZE} -fortran -outdir ../src/arkode/fmod_int${INT_SIZE} -o ../src/arkode/fmod_int${INT_SIZE}/$${i}.c ${INCLUDES} arkode/$${i}.i" ; \ - swig -DUSE_INT${INT_SIZE} -fortran -outdir ../src/arkode/fmod_int${INT_SIZE} -o ../src/arkode/fmod_int${INT_SIZE}/$${i}.c ${INCLUDES} arkode/$${i}.i ; \ + echo "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" ; \ + 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 -DUSE_INT${INT_SIZE} -fortran -outdir ../src/cvode/fmod_int${INT_SIZE} -o ../src/cvode/fmod_int${INT_SIZE}/$${i}.c ${INCLUDES} cvode/$${i}.i" ; \ - swig -DUSE_INT${INT_SIZE} -fortran -outdir ../src/cvode/fmod_int${INT_SIZE} -o ../src/cvode/fmod_int${INT_SIZE}/$${i}.c ${INCLUDES} cvode/$${i}.i ; \ + echo "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" ; \ + 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 -DUSE_INT${INT_SIZE} -fortran -outdir ../src/cvodes/fmod_int${INT_SIZE} -o ../src/cvodes/fmod_int${INT_SIZE}/$${i}.c ${INCLUDES} cvodes/$${i}.i" ; \ - swig -DUSE_INT${INT_SIZE} -fortran -outdir ../src/cvodes/fmod_int${INT_SIZE} -o ../src/cvodes/fmod_int${INT_SIZE}/$${i}.c ${INCLUDES} cvodes/$${i}.i ; \ + echo "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" ; \ + 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 -DUSE_INT${INT_SIZE} -fortran -outdir ../src/ida/fmod_int${INT_SIZE} -o ../src/ida/fmod_int${INT_SIZE}/$${i}.c ${INCLUDES} ida/$${i}.i" ; \ - swig -DUSE_INT${INT_SIZE} -fortran -outdir ../src/ida/fmod_int${INT_SIZE} -o ../src/ida/fmod_int${INT_SIZE}/$${i}.c ${INCLUDES} ida/$${i}.i ; \ + echo "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" ; \ + 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 -DUSE_INT${INT_SIZE} -fortran -outdir ../src/idas/fmod_int${INT_SIZE} -o ../src/idas/fmod_int${INT_SIZE}/$${i}.c ${INCLUDES} idas/$${i}.i" ; \ - swig -DUSE_INT${INT_SIZE} -fortran -outdir ../src/idas/fmod_int${INT_SIZE} -o ../src/idas/fmod_int${INT_SIZE}/$${i}.c ${INCLUDES} idas/$${i}.i ; \ + echo "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" ; \ + 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 -DUSE_INT${INT_SIZE} -fortran -outdir ../src/kinsol/fmod_int${INT_SIZE} -o ../src/kinsol/fmod_int${INT_SIZE}/$${i}.c ${INCLUDES} kinsol/$${i}" ; \ - swig -DUSE_INT${INT_SIZE} -fortran -outdir ../src/kinsol/fmod_int${INT_SIZE} -o ../src/kinsol/fmod_int${INT_SIZE}/$${i}.c ${INCLUDES} kinsol/$${i}.i ; \ + echo "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}" ; \ + 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 generic: $(GENERIC:%:sundials/%.i) @for i in ${GENERIC} ; do \ - echo "swig -DUSE_INT${INT_SIZE} -fortran -outdir ../src/sundials/fmod_int${INT_SIZE} -o ../src/sundials/fmod_int${INT_SIZE}/$${i}.c ${INCLUDES} $${i}" ; \ - swig -DUSE_INT${INT_SIZE} -fortran -outdir ../src/sundials/fmod_int${INT_SIZE} -o ../src/sundials/fmod_int${INT_SIZE}/$${i}.c ${INCLUDES} sundials/$${i}.i ; \ + echo "swig -DGENERATE_INT${INT_SIZE} -fortran -outdir ../src/sundials/fmod_int${INT_SIZE} -o ../src/sundials/fmod_int${INT_SIZE}/$${i}.c ${INCLUDES} $${i}" ; \ + 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 nvector: $(NVECTOR:%:nvector/fnvector_%_mod.i) mpimanyvector @for i in ${NVECTOR} ; do \ - echo "swig -DUSE_INT${INT_SIZE} -fortran -outdir ../src/nvector/$${i}/fmod_int${INT_SIZE} -o ../src/nvector/$${i}/fmod_int${INT_SIZE} ${INCLUDES} nvector/fnvector_$${i}_mod.i" ; \ - swig -DUSE_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 ; \ + echo "swig -DGENERATE_INT${INT_SIZE} -fortran -outdir ../src/nvector/$${i}/fmod_int${INT_SIZE} -o ../src/nvector/$${i}/fmod_int${INT_SIZE} ${INCLUDES} nvector/fnvector_$${i}_mod.i" ; \ + 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 -DUSE_INT${INT_SIZE} -fortran -outdir ../src/nvector/manyvector/fmod_int${INT_SIZE} -o ../src/nvector/manyvector/fmod_int${INT_SIZE} ${INCLUDES} nvector/fnvector_mpimanyvector_mod.i" ; \ - swig -DUSE_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 ; \ + @echo "swig -DGENERATE_INT${INT_SIZE} -fortran -outdir ../src/nvector/manyvector/fmod_int${INT_SIZE} -o ../src/nvector/manyvector/fmod_int${INT_SIZE} ${INCLUDES} nvector/fnvector_mpimanyvector_mod.i" ; \ + 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 -DUSE_INT${INT_SIZE} -fortran -outdir ../src/sunmatrix/$${i}/fmod_int${INT_SIZE} -o ../src/sunmatrix/$${i}/fmod_int${INT_SIZE} ${INCLUDES} sunmatrix/fsunmatrix_$${i}_mod.i" ; \ - swig -DUSE_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 ; \ + echo "swig -DGENERATE_INT${INT_SIZE} -fortran -outdir ../src/sunmatrix/$${i}/fmod_int${INT_SIZE} -o ../src/sunmatrix/$${i}/fmod_int${INT_SIZE} ${INCLUDES} sunmatrix/fsunmatrix_$${i}_mod.i" ; \ + 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 -DUSE_INT${INT_SIZE} -fortran -outdir ../src/sunlinsol/$${i}/fmod_int${INT_SIZE} -o ../src/sunlinsol/$${i}/fmod_int${INT_SIZE} ${INCLUDES} sunlinsol/fsunlinsol_$${i}_mod.i" ; \ - swig -DUSE_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 ; \ + echo "swig -DGENERATE_INT${INT_SIZE} -fortran -outdir ../src/sunlinsol/$${i}/fmod_int${INT_SIZE} -o ../src/sunlinsol/$${i}/fmod_int${INT_SIZE} ${INCLUDES} sunlinsol/fsunlinsol_$${i}_mod.i" ; \ + 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 -DUSE_INT${INT_SIZE} -fortran -outdir ../src/sunnonlinsol/$${i}/fmod_int${INT_SIZE} -o ../src/sunnonlinsol/$${i}/fmod_int${INT_SIZE} ${INCLUDES} sunnonlinsol/fsunnonlinsol_$${i}_mod.i" ; \ - swig -DUSE_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 ; \ + echo "swig -DGENERATE_INT${INT_SIZE} -fortran -outdir ../src/sunnonlinsol/$${i}/fmod_int${INT_SIZE} -o ../src/sunnonlinsol/$${i}/fmod_int${INT_SIZE} ${INCLUDES} sunnonlinsol/fsunnonlinsol_$${i}_mod.i" ; \ + 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 -DUSE_INT${INT_SIZE} -fortran -outdir ../src/sunadaptcontroller/$${i}/fmod_int${INT_SIZE} -o ../src/sunadaptcontroller/$${i}/fmod_int${INT_SIZE} ${INCLUDES} sunadaptcontroller/fsunadaptcontroller_$${i}_mod.i" ; \ - swig -DUSE_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 ; \ + echo "swig -DGENERATE_INT${INT_SIZE} -fortran -outdir ../src/sunadaptcontroller/$${i}/fmod_int${INT_SIZE} -o ../src/sunadaptcontroller/$${i}/fmod_int${INT_SIZE} ${INCLUDES} sunadaptcontroller/fsunadaptcontroller_$${i}_mod.i" ; \ + 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 From 41cd23ed0cb9369ad025362fb354b0e747058186 Mon Sep 17 00:00:00 2001 From: "Balos, Cody, J" Date: Tue, 26 Mar 2024 14:55:54 -0700 Subject: [PATCH 10/70] fix up swig and swig makefile --- swig/Makefile | 72 +++++++++++++++------------------ swig/sundials/fsundials.i | 19 ++------- swig/sundials/fsundials_types.i | 12 ++++++ 3 files changed, 49 insertions(+), 54 deletions(-) diff --git a/swig/Makefile b/swig/Makefile index 97821ab320..ccfe4f7552 100644 --- a/swig/Makefile +++ b/swig/Makefile @@ -29,101 +29,95 @@ SUNADAPTCONTROLLER=imexgus soderlind INCLUDES=-I../include -.PHONY: generic arkode cvode cvodes ida idas kinsol nvector sunmatrix sunlinsol sunnonlinsol sunadaptcontroller patch +.PHONY: generic arkode cvode cvodes ida idas kinsol nvector sunmatrix sunlinsol sunnonlinsol sunadaptcontroller -.SETINT32: - $(eval INT_SIZE=32) +all: all_64 all_32 + +all_64: .SETINT64 generic arkode cvode cvodes ida idas kinsol nvector sunmatrix sunlinsol sunnonlinsol sunadaptcontroller .SETINT64: $(eval INT_SIZE=64) -all_64: .SETINT64 generic arkode cvode cvodes ida idas kinsol nvector sunmatrix sunlinsol sunnonlinsol sunadaptcontroller patch - -all_32: .SETINT32 generic arkode cvode cvodes ida idas kinsol nvector sunmatrix sunlinsol sunnonlinsol sunadaptcontroller patch - -all: all_64 all_32 +all_32: .SETINT32 generic arkode cvode cvodes ida idas kinsol nvector sunmatrix sunlinsol sunnonlinsol sunadaptcontroller +.SETINT32: + $(eval INT_SIZE=32) arkode: $(ARKODE:%:arkode/%.i) @for i in ${ARKODE} ; do \ - echo "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" ; \ - 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 ; \ + 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 -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" ; \ - 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 ; \ + 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 -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" ; \ - 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 ; \ + 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 -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" ; \ - 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 ; \ + 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 -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" ; \ - 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 ; \ + 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 -DGENERATE_INT${INT_SIZE} -fortran -outdir ../src/kinsol/fmod_int${INT_SIZE} -o ../src/kinsol/fmod_int${INT_SIZE}/$${i}.c ${INCLUDES} kinsol/$${i}" ; \ - 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 ; \ + 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 generic: $(GENERIC:%:sundials/%.i) @for i in ${GENERIC} ; do \ - echo "swig -DGENERATE_INT${INT_SIZE} -fortran -outdir ../src/sundials/fmod_int${INT_SIZE} -o ../src/sundials/fmod_int${INT_SIZE}/$${i}.c ${INCLUDES} $${i}" ; \ - 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 ; \ + 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 nvector: $(NVECTOR:%:nvector/fnvector_%_mod.i) mpimanyvector @for i in ${NVECTOR} ; do \ - echo "swig -DGENERATE_INT${INT_SIZE} -fortran -outdir ../src/nvector/$${i}/fmod_int${INT_SIZE} -o ../src/nvector/$${i}/fmod_int${INT_SIZE} ${INCLUDES} nvector/fnvector_$${i}_mod.i" ; \ - 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 ; \ + 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 -DGENERATE_INT${INT_SIZE} -fortran -outdir ../src/nvector/manyvector/fmod_int${INT_SIZE} -o ../src/nvector/manyvector/fmod_int${INT_SIZE} ${INCLUDES} nvector/fnvector_mpimanyvector_mod.i" ; \ - 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 ; \ + 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 -DGENERATE_INT${INT_SIZE} -fortran -outdir ../src/sunmatrix/$${i}/fmod_int${INT_SIZE} -o ../src/sunmatrix/$${i}/fmod_int${INT_SIZE} ${INCLUDES} sunmatrix/fsunmatrix_$${i}_mod.i" ; \ - 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 ; \ + 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 -DGENERATE_INT${INT_SIZE} -fortran -outdir ../src/sunlinsol/$${i}/fmod_int${INT_SIZE} -o ../src/sunlinsol/$${i}/fmod_int${INT_SIZE} ${INCLUDES} sunlinsol/fsunlinsol_$${i}_mod.i" ; \ - 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 ; \ + 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 -DGENERATE_INT${INT_SIZE} -fortran -outdir ../src/sunnonlinsol/$${i}/fmod_int${INT_SIZE} -o ../src/sunnonlinsol/$${i}/fmod_int${INT_SIZE} ${INCLUDES} sunnonlinsol/fsunnonlinsol_$${i}_mod.i" ; \ - 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 ; \ + 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 -DGENERATE_INT${INT_SIZE} -fortran -outdir ../src/sunadaptcontroller/$${i}/fmod_int${INT_SIZE} -o ../src/sunadaptcontroller/$${i}/fmod_int${INT_SIZE} ${INCLUDES} sunadaptcontroller/fsunadaptcontroller_$${i}_mod.i" ; \ - 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 ; \ + 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_int${INT_SIZE}/*.c; rm ../src/**/fmod_int${INT_SIZE}/*.f90 - -.FORCE: ; diff --git a/swig/sundials/fsundials.i b/swig/sundials/fsundials.i index 85388f45fa..314f77ac0a 100644 --- a/swig/sundials/fsundials.i +++ b/swig/sundials/fsundials.i @@ -23,20 +23,6 @@ #define SUNDIALS_DEPRECATED_EXPORT #define SUNDIALS_DEPRECATED_EXPORT_MSG(msg) -#ifdef GENERATE_INT32 -// Inform SWIG of the configure-provided types -#define SUNDIALS_INT32_T -#define SUNDIALS_INDEX_TYPE int32_t -#define SUNDIALS_DOUBLE_PRECISION -#define sunbooleantype int -#else -// Inform SWIG of the configure-provided types -#define SUNDIALS_INT64_T -#define SUNDIALS_INDEX_TYPE int64_t -#define SUNDIALS_DOUBLE_PRECISION -#define sunbooleantype int -#endif - // Prefix all functions with F // E.g. CVodeCreate -> FCVodeCreate %rename("F%s", %$isfunction) ""; @@ -67,8 +53,11 @@ // Assume sunrealtype* is an array of doubles %apply double[] { sunrealtype* }; -// Assume sunindextype* is an array of long int +#ifdef GENERATE_INT32 +%apply int[] { sunindextype* }; +#else %apply long int[] { 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 e2fd9b1314..c53a44db52 100644 --- a/swig/sundials/fsundials_types.i +++ b/swig/sundials/fsundials_types.i @@ -17,6 +17,18 @@ %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 + // Handle MPI_Comm and SUNComm %include From ab73c56b6b8b79c852479dfe2ddab1d88b8a68e0 Mon Sep 17 00:00:00 2001 From: "Balos, Cody, J" Date: Tue, 26 Mar 2024 14:56:39 -0700 Subject: [PATCH 11/70] generate 32-bit sunindextype fortran --- cmake/SundialsBuildOptionsPre.cmake | 5 - src/arkode/fmod_int32/CMakeLists.txt | 59 + src/arkode/fmod_int32/farkode_arkstep_mod.c | 2660 ++++++ src/arkode/fmod_int32/farkode_arkstep_mod.f90 | 4623 +++++++++++ src/arkode/fmod_int32/farkode_erkstep_mod.c | 1563 ++++ src/arkode/fmod_int32/farkode_erkstep_mod.f90 | 2565 ++++++ src/arkode/fmod_int32/farkode_mod.c | 1058 +++ src/arkode/fmod_int32/farkode_mod.f90 | 1665 ++++ src/arkode/fmod_int32/farkode_mristep_mod.c | 2114 +++++ src/arkode/fmod_int32/farkode_mristep_mod.f90 | 3499 ++++++++ src/arkode/fmod_int32/farkode_sprkstep_mod.c | 741 ++ .../fmod_int32/farkode_sprkstep_mod.f90 | 1033 +++ src/cvode/fmod_int32/CMakeLists.txt | 47 + src/cvode/fmod_int32/fcvode_mod.c | 2020 +++++ src/cvode/fmod_int32/fcvode_mod.f90 | 3436 ++++++++ src/cvodes/fmod_int32/CMakeLists.txt | 46 + src/cvodes/fmod_int32/fcvodes_mod.c | 4040 ++++++++++ src/cvodes/fmod_int32/fcvodes_mod.f90 | 7142 +++++++++++++++++ src/ida/fmod_int32/CMakeLists.txt | 47 + src/ida/fmod_int32/fida_mod.c | 1784 ++++ src/ida/fmod_int32/fida_mod.f90 | 2992 +++++++ src/idas/fmod_int32/CMakeLists.txt | 45 + src/idas/fmod_int32/fidas_mod.c | 3879 +++++++++ src/idas/fmod_int32/fidas_mod.f90 | 6831 ++++++++++++++++ src/kinsol/fmod_int32/CMakeLists.txt | 45 + src/kinsol/fmod_int32/fkinsol_mod.c | 1092 +++ src/kinsol/fmod_int32/fkinsol_mod.f90 | 1696 ++++ .../manyvector/fmod_int32/CMakeLists.txt | 61 + .../fmod_int32/fnvector_manyvector_mod.c | 1007 +++ .../fmod_int32/fnvector_manyvector_mod.f90 | 1545 ++++ .../fmod_int32/fnvector_mpimanyvector_mod.c | 1167 +++ .../fmod_int32/fnvector_mpimanyvector_mod.f90 | 1805 +++++ .../mpiplusx/fmod_int32/CMakeLists.txt | 43 + .../fmod_int32/fnvector_mpiplusx_mod.c | 327 + .../fmod_int32/fnvector_mpiplusx_mod.f90 | 241 + src/nvector/openmp/fmod_int32/CMakeLists.txt | 31 + .../openmp/fmod_int32/fnvector_openmp_mod.c | 961 +++ .../openmp/fmod_int32/fnvector_openmp_mod.f90 | 1461 ++++ .../parallel/fmod_int32/CMakeLists.txt | 49 + .../fmod_int32/fnvector_parallel_mod.c | 1173 +++ .../fmod_int32/fnvector_parallel_mod.f90 | 1781 ++++ .../pthreads/fmod_int32/CMakeLists.txt | 33 + .../fmod_int32/fnvector_pthreads_mod.c | 961 +++ .../fmod_int32/fnvector_pthreads_mod.f90 | 1461 ++++ src/nvector/serial/fmod_int32/CMakeLists.txt | 31 + .../serial/fmod_int32/fnvector_serial_mod.c | 955 +++ .../serial/fmod_int32/fnvector_serial_mod.f90 | 1449 ++++ .../imexgus/fmod_int32/CMakeLists.txt | 26 + .../fsunadaptcontroller_imexgus_mod.c | 359 + .../fsunadaptcontroller_imexgus_mod.f90 | 313 + .../soderlind/fmod_int32/CMakeLists.txt | 26 + .../fsunadaptcontroller_soderlind_mod.c | 501 ++ .../fsunadaptcontroller_soderlind_mod.f90 | 577 ++ src/sundials/fmod_int32/CMakeLists.txt | 27 + src/sundials/fmod_int32/fsundials_core_mod.c | 2647 ++++++ .../fmod_int32/fsundials_core_mod.f90 | 4773 +++++++++++ src/sunlinsol/band/fmod_int32/CMakeLists.txt | 33 + .../band/fmod_int32/fsunlinsol_band_mod.c | 337 + .../band/fmod_int32/fsunlinsol_band_mod.f90 | 271 + src/sunlinsol/dense/fmod_int32/CMakeLists.txt | 32 + .../dense/fmod_int32/fsunlinsol_dense_mod.c | 337 + .../dense/fmod_int32/fsunlinsol_dense_mod.f90 | 271 + src/sunlinsol/klu/fmod_int32/CMakeLists.txt | 33 + .../klu/fmod_int32/fsunlinsol_klu_mod.c | 429 + .../klu/fmod_int32/fsunlinsol_klu_mod.f90 | 420 + .../lapackdense/fmod_int32/CMakeLists.txt | 33 + .../fmod_int32/fsunlinsol_lapackdense_mod.c | 337 + .../fmod_int32/fsunlinsol_lapackdense_mod.f90 | 271 + src/sunlinsol/pcg/fmod_int32/CMakeLists.txt | 31 + .../pcg/fmod_int32/fsunlinsol_pcg_mod.c | 467 ++ .../pcg/fmod_int32/fsunlinsol_pcg_mod.f90 | 514 ++ .../spbcgs/fmod_int32/CMakeLists.txt | 31 + .../spbcgs/fmod_int32/fsunlinsol_spbcgs_mod.c | 467 ++ .../fmod_int32/fsunlinsol_spbcgs_mod.f90 | 514 ++ .../spfgmr/fmod_int32/CMakeLists.txt | 31 + .../spfgmr/fmod_int32/fsunlinsol_spfgmr_mod.c | 481 ++ .../fmod_int32/fsunlinsol_spfgmr_mod.f90 | 541 ++ src/sunlinsol/spgmr/fmod_int32/CMakeLists.txt | 31 + .../spgmr/fmod_int32/fsunlinsol_spgmr_mod.c | 481 ++ .../spgmr/fmod_int32/fsunlinsol_spgmr_mod.f90 | 541 ++ .../sptfqmr/fmod_int32/CMakeLists.txt | 31 + .../fmod_int32/fsunlinsol_sptfqmr_mod.c | 467 ++ .../fmod_int32/fsunlinsol_sptfqmr_mod.f90 | 514 ++ src/sunmatrix/band/fmod_int32/CMakeLists.txt | 31 + .../band/fmod_int32/fsunmatrix_band_mod.c | 500 ++ .../band/fmod_int32/fsunmatrix_band_mod.f90 | 583 ++ src/sunmatrix/dense/fmod_int32/CMakeLists.txt | 31 + .../dense/fmod_int32/fsunmatrix_dense_mod.c | 430 + .../dense/fmod_int32/fsunmatrix_dense_mod.f90 | 451 ++ .../sparse/fmod_int32/CMakeLists.txt | 31 + .../sparse/fmod_int32/fsunmatrix_sparse_mod.c | 541 ++ .../fmod_int32/fsunmatrix_sparse_mod.f90 | 662 ++ .../fixedpoint/fmod_int32/CMakeLists.txt | 32 + .../fmod_int32/fsunnonlinsol_fixedpoint_mod.c | 419 + .../fsunnonlinsol_fixedpoint_mod.f90 | 425 + .../newton/fmod_int32/CMakeLists.txt | 32 + .../fmod_int32/fsunnonlinsol_newton_mod.c | 429 + .../fmod_int32/fsunnonlinsol_newton_mod.f90 | 443 + 98 files changed, 95499 insertions(+), 5 deletions(-) create mode 100644 src/arkode/fmod_int32/CMakeLists.txt create mode 100644 src/arkode/fmod_int32/farkode_arkstep_mod.c create mode 100644 src/arkode/fmod_int32/farkode_arkstep_mod.f90 create mode 100644 src/arkode/fmod_int32/farkode_erkstep_mod.c create mode 100644 src/arkode/fmod_int32/farkode_erkstep_mod.f90 create mode 100644 src/arkode/fmod_int32/farkode_mod.c create mode 100644 src/arkode/fmod_int32/farkode_mod.f90 create mode 100644 src/arkode/fmod_int32/farkode_mristep_mod.c create mode 100644 src/arkode/fmod_int32/farkode_mristep_mod.f90 create mode 100644 src/arkode/fmod_int32/farkode_sprkstep_mod.c create mode 100644 src/arkode/fmod_int32/farkode_sprkstep_mod.f90 create mode 100644 src/cvode/fmod_int32/CMakeLists.txt create mode 100644 src/cvode/fmod_int32/fcvode_mod.c create mode 100644 src/cvode/fmod_int32/fcvode_mod.f90 create mode 100644 src/cvodes/fmod_int32/CMakeLists.txt create mode 100644 src/cvodes/fmod_int32/fcvodes_mod.c create mode 100644 src/cvodes/fmod_int32/fcvodes_mod.f90 create mode 100644 src/ida/fmod_int32/CMakeLists.txt create mode 100644 src/ida/fmod_int32/fida_mod.c create mode 100644 src/ida/fmod_int32/fida_mod.f90 create mode 100644 src/idas/fmod_int32/CMakeLists.txt create mode 100644 src/idas/fmod_int32/fidas_mod.c create mode 100644 src/idas/fmod_int32/fidas_mod.f90 create mode 100644 src/kinsol/fmod_int32/CMakeLists.txt create mode 100644 src/kinsol/fmod_int32/fkinsol_mod.c create mode 100644 src/kinsol/fmod_int32/fkinsol_mod.f90 create mode 100644 src/nvector/manyvector/fmod_int32/CMakeLists.txt create mode 100644 src/nvector/manyvector/fmod_int32/fnvector_manyvector_mod.c create mode 100644 src/nvector/manyvector/fmod_int32/fnvector_manyvector_mod.f90 create mode 100644 src/nvector/manyvector/fmod_int32/fnvector_mpimanyvector_mod.c create mode 100644 src/nvector/manyvector/fmod_int32/fnvector_mpimanyvector_mod.f90 create mode 100644 src/nvector/mpiplusx/fmod_int32/CMakeLists.txt create mode 100644 src/nvector/mpiplusx/fmod_int32/fnvector_mpiplusx_mod.c create mode 100644 src/nvector/mpiplusx/fmod_int32/fnvector_mpiplusx_mod.f90 create mode 100644 src/nvector/openmp/fmod_int32/CMakeLists.txt create mode 100644 src/nvector/openmp/fmod_int32/fnvector_openmp_mod.c create mode 100644 src/nvector/openmp/fmod_int32/fnvector_openmp_mod.f90 create mode 100644 src/nvector/parallel/fmod_int32/CMakeLists.txt create mode 100644 src/nvector/parallel/fmod_int32/fnvector_parallel_mod.c create mode 100644 src/nvector/parallel/fmod_int32/fnvector_parallel_mod.f90 create mode 100644 src/nvector/pthreads/fmod_int32/CMakeLists.txt create mode 100644 src/nvector/pthreads/fmod_int32/fnvector_pthreads_mod.c create mode 100644 src/nvector/pthreads/fmod_int32/fnvector_pthreads_mod.f90 create mode 100644 src/nvector/serial/fmod_int32/CMakeLists.txt create mode 100644 src/nvector/serial/fmod_int32/fnvector_serial_mod.c create mode 100644 src/nvector/serial/fmod_int32/fnvector_serial_mod.f90 create mode 100644 src/sunadaptcontroller/imexgus/fmod_int32/CMakeLists.txt create mode 100644 src/sunadaptcontroller/imexgus/fmod_int32/fsunadaptcontroller_imexgus_mod.c create mode 100644 src/sunadaptcontroller/imexgus/fmod_int32/fsunadaptcontroller_imexgus_mod.f90 create mode 100644 src/sunadaptcontroller/soderlind/fmod_int32/CMakeLists.txt create mode 100644 src/sunadaptcontroller/soderlind/fmod_int32/fsunadaptcontroller_soderlind_mod.c create mode 100644 src/sunadaptcontroller/soderlind/fmod_int32/fsunadaptcontroller_soderlind_mod.f90 create mode 100644 src/sundials/fmod_int32/CMakeLists.txt create mode 100644 src/sundials/fmod_int32/fsundials_core_mod.c create mode 100644 src/sundials/fmod_int32/fsundials_core_mod.f90 create mode 100644 src/sunlinsol/band/fmod_int32/CMakeLists.txt create mode 100644 src/sunlinsol/band/fmod_int32/fsunlinsol_band_mod.c create mode 100644 src/sunlinsol/band/fmod_int32/fsunlinsol_band_mod.f90 create mode 100644 src/sunlinsol/dense/fmod_int32/CMakeLists.txt create mode 100644 src/sunlinsol/dense/fmod_int32/fsunlinsol_dense_mod.c create mode 100644 src/sunlinsol/dense/fmod_int32/fsunlinsol_dense_mod.f90 create mode 100644 src/sunlinsol/klu/fmod_int32/CMakeLists.txt create mode 100644 src/sunlinsol/klu/fmod_int32/fsunlinsol_klu_mod.c create mode 100644 src/sunlinsol/klu/fmod_int32/fsunlinsol_klu_mod.f90 create mode 100644 src/sunlinsol/lapackdense/fmod_int32/CMakeLists.txt create mode 100644 src/sunlinsol/lapackdense/fmod_int32/fsunlinsol_lapackdense_mod.c create mode 100644 src/sunlinsol/lapackdense/fmod_int32/fsunlinsol_lapackdense_mod.f90 create mode 100644 src/sunlinsol/pcg/fmod_int32/CMakeLists.txt create mode 100644 src/sunlinsol/pcg/fmod_int32/fsunlinsol_pcg_mod.c create mode 100644 src/sunlinsol/pcg/fmod_int32/fsunlinsol_pcg_mod.f90 create mode 100644 src/sunlinsol/spbcgs/fmod_int32/CMakeLists.txt create mode 100644 src/sunlinsol/spbcgs/fmod_int32/fsunlinsol_spbcgs_mod.c create mode 100644 src/sunlinsol/spbcgs/fmod_int32/fsunlinsol_spbcgs_mod.f90 create mode 100644 src/sunlinsol/spfgmr/fmod_int32/CMakeLists.txt create mode 100644 src/sunlinsol/spfgmr/fmod_int32/fsunlinsol_spfgmr_mod.c create mode 100644 src/sunlinsol/spfgmr/fmod_int32/fsunlinsol_spfgmr_mod.f90 create mode 100644 src/sunlinsol/spgmr/fmod_int32/CMakeLists.txt create mode 100644 src/sunlinsol/spgmr/fmod_int32/fsunlinsol_spgmr_mod.c create mode 100644 src/sunlinsol/spgmr/fmod_int32/fsunlinsol_spgmr_mod.f90 create mode 100644 src/sunlinsol/sptfqmr/fmod_int32/CMakeLists.txt create mode 100644 src/sunlinsol/sptfqmr/fmod_int32/fsunlinsol_sptfqmr_mod.c create mode 100644 src/sunlinsol/sptfqmr/fmod_int32/fsunlinsol_sptfqmr_mod.f90 create mode 100644 src/sunmatrix/band/fmod_int32/CMakeLists.txt create mode 100644 src/sunmatrix/band/fmod_int32/fsunmatrix_band_mod.c create mode 100644 src/sunmatrix/band/fmod_int32/fsunmatrix_band_mod.f90 create mode 100644 src/sunmatrix/dense/fmod_int32/CMakeLists.txt create mode 100644 src/sunmatrix/dense/fmod_int32/fsunmatrix_dense_mod.c create mode 100644 src/sunmatrix/dense/fmod_int32/fsunmatrix_dense_mod.f90 create mode 100644 src/sunmatrix/sparse/fmod_int32/CMakeLists.txt create mode 100644 src/sunmatrix/sparse/fmod_int32/fsunmatrix_sparse_mod.c create mode 100644 src/sunmatrix/sparse/fmod_int32/fsunmatrix_sparse_mod.f90 create mode 100644 src/sunnonlinsol/fixedpoint/fmod_int32/CMakeLists.txt create mode 100644 src/sunnonlinsol/fixedpoint/fmod_int32/fsunnonlinsol_fixedpoint_mod.c create mode 100644 src/sunnonlinsol/fixedpoint/fmod_int32/fsunnonlinsol_fixedpoint_mod.f90 create mode 100644 src/sunnonlinsol/newton/fmod_int32/CMakeLists.txt create mode 100644 src/sunnonlinsol/newton/fmod_int32/fsunnonlinsol_newton_mod.c create mode 100644 src/sunnonlinsol/newton/fmod_int32/fsunnonlinsol_newton_mod.f90 diff --git a/cmake/SundialsBuildOptionsPre.cmake b/cmake/SundialsBuildOptionsPre.cmake index 56629de067..b2ca93dcce 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/src/arkode/fmod_int32/CMakeLists.txt b/src/arkode/fmod_int32/CMakeLists.txt new file mode 100644 index 0000000000..32e5c935d7 --- /dev/null +++ b/src/arkode/fmod_int32/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_int32/farkode_arkstep_mod.c b/src/arkode/fmod_int32/farkode_arkstep_mod.c new file mode 100644 index 0000000000..8da0515350 --- /dev/null +++ b/src/arkode/fmod_int32/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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_int32/farkode_arkstep_mod.f90 b/src/arkode/fmod_int32/farkode_arkstep_mod.f90 new file mode 100644 index 0000000000..6d065d9f19 --- /dev/null +++ b/src/arkode/fmod_int32/farkode_arkstep_mod.f90 @@ -0,0 +1,4623 @@ +! 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_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_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 :: FARKStepResize + public :: FARKStepReInit + 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 :: FARKStepSetExplicit + public :: FARKStepSetImplicit + public :: FARKStepSetImEx + public :: FARKStepSetDeduceImplicitRhs + 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 :: 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 :: FARKStepGetNumRhsEvals + public :: FARKStepGetNumLinSolvSetups + public :: FARKStepGetNumErrTestFails + public :: FARKStepGetCurrentButcherTables + 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 :: FARKStepGetTimestepperStats + 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 :: FARKStepCreateMRIStepInnerStepper + 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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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_int32/farkode_erkstep_mod.c b/src/arkode/fmod_int32/farkode_erkstep_mod.c new file mode 100644 index 0000000000..c401460048 --- /dev/null +++ b/src/arkode/fmod_int32/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_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_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_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_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_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_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_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_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_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_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_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_int32/farkode_erkstep_mod.f90 b/src/arkode/fmod_int32/farkode_erkstep_mod.f90 new file mode 100644 index 0000000000..98a6a5f817 --- /dev/null +++ b/src/arkode/fmod_int32/farkode_erkstep_mod.f90 @@ -0,0 +1,2565 @@ +! 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_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 :: FERKStepResize + public :: FERKStepReInit + public :: FERKStepReset + public :: FERKStepSStolerances + public :: FERKStepSVtolerances + public :: FERKStepWFtolerances + public :: FERKStepRootInit + public :: FERKStepSetDefaults + public :: FERKStepSetOrder + public :: FERKStepSetInterpolantType + public :: FERKStepSetInterpolantDegree + public :: FERKStepSetDenseOrder + 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 :: 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 :: FERKStepGetNumRhsEvals + public :: FERKStepGetNumErrTestFails + public :: FERKStepGetCurrentButcherTable + 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 :: FERKStepGetTimestepperStats + 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_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_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_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_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_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_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_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_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_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_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_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 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 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 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 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 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 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 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 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 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 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 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_int32/farkode_mod.c b/src/arkode/fmod_int32/farkode_mod.c new file mode 100644 index 0000000000..2c925443a1 --- /dev/null +++ b/src/arkode/fmod_int32/farkode_mod.c @@ -0,0 +1,1058 @@ +/* ---------------------------------------------------------------------------- + * 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" + + +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 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 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 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; +} + + + diff --git a/src/arkode/fmod_int32/farkode_mod.f90 b/src/arkode/fmod_int32/farkode_mod.f90 new file mode 100644 index 0000000000..ec7a023be1 --- /dev/null +++ b/src/arkode/fmod_int32/farkode_mod.f90 @@ -0,0 +1,1665 @@ +! 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_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_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 :: 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_MAX_DIRK_NUM = ARKODE_ARK2_DIRK_3_1_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_MAX_DIRK_NUM + public :: FARKodeButcherTable_LoadDIRK + type, bind(C) :: SwigArrayWrapper + type(C_PTR), public :: data = C_NULL_PTR + integer(C_SIZE_T), public :: size = 0 + end type + public :: FARKodeButcherTable_LoadDIRKByName + ! 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_MAX_ERK_NUM = ARKODE_VERNER_16_8_9 + 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_MAX_ERK_NUM + public :: FARKodeButcherTable_LoadERK + public :: FARKodeButcherTable_LoadERKByName + ! 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 + +! WRAPPER DECLARATIONS +interface +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_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 + +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 + +end interface + + +contains + ! MODULE SUBPROGRAMS +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_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 + +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 + + +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..5656b91a46 --- /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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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); +} + + +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; +} + + + 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..9171ad7488 --- /dev/null +++ b/src/arkode/fmod_int32/farkode_mristep_mod.f90 @@ -0,0 +1,3499 @@ +! 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_MAX_MRI_NUM = ARKODE_IMEX_MRI_GARK4 + 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_MAX_MRI_NUM + integer(C_INT), parameter, public :: MRISTEP_DEFAULT_3 = ARKODE_MIS_KW3 + 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_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_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 :: FMRIStepResize + public :: FMRIStepReInit + 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 :: FMRIStepSetCoupling + public :: FMRIStepSetMaxNumSteps + public :: FMRIStepSetNonlinCRDown + public :: FMRIStepSetNonlinRDiv + public :: FMRIStepSetDeltaGammaMax + public :: FMRIStepSetLSetupFrequency + public :: FMRIStepSetPredictorMethod + public :: FMRIStepSetMaxNonlinIters + public :: FMRIStepSetNonlinConvCoef + public :: FMRIStepSetMaxHnilWarns + public :: FMRIStepSetStopTime + public :: FMRIStepSetInterpolateStopTime + public :: FMRIStepClearStopTime + public :: FMRIStepSetFixedStep + public :: FMRIStepSetRootDirection + public :: FMRIStepSetNoInactiveRootWarn + public :: FMRIStepSetUserData + public :: FMRIStepSetPostprocessStepFn + public :: FMRIStepSetPostprocessStageFn + public :: FMRIStepSetPreInnerFn + public :: FMRIStepSetPostInnerFn + 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 :: FMRIStepGetNumRhsEvals + public :: FMRIStepGetNumLinSolvSetups + public :: FMRIStepGetCurrentCoupling + public :: FMRIStepGetWorkSpace + public :: FMRIStepGetNumSteps + public :: FMRIStepGetLastStep + public :: FMRIStepGetCurrentTime + public :: FMRIStepGetCurrentState + public :: FMRIStepGetCurrentGamma + public :: FMRIStepGetTolScaleFactor + public :: FMRIStepGetErrWeights + public :: FMRIStepGetNumGEvals + public :: FMRIStepGetRootInfo + public :: FMRIStepGetLastInnerStepFlag + 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 + 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 + +! 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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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 + +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 + +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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 + +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 + + +end module diff --git a/src/arkode/fmod_int32/farkode_sprkstep_mod.c b/src/arkode/fmod_int32/farkode_sprkstep_mod.c new file mode 100644 index 0000000000..d5858a372a --- /dev/null +++ b/src/arkode/fmod_int32/farkode_sprkstep_mod.c @@ -0,0 +1,741 @@ +/* ---------------------------------------------------------------------------- + * 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_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_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_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_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_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_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_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_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_int32/farkode_sprkstep_mod.f90 b/src/arkode/fmod_int32/farkode_sprkstep_mod.f90 new file mode 100644 index 0000000000..a6cc16db19 --- /dev/null +++ b/src/arkode/fmod_int32/farkode_sprkstep_mod.f90 @@ -0,0 +1,1033 @@ +! 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 :: FSPRKStepReset + public :: FSPRKStepRootInit + public :: FSPRKStepSetDefaults + 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 :: FSPRKStepSetOrder + public :: FSPRKStepSetInterpolantType + public :: FSPRKStepSetInterpolantDegree + public :: FSPRKStepSetMaxNumSteps + public :: FSPRKStepSetStopTime + public :: FSPRKStepSetFixedStep + public :: FSPRKStepSetUserData + public :: FSPRKStepSetPostprocessStepFn + public :: FSPRKStepSetPostprocessStageFn + public :: FSPRKStepEvolve + public :: FSPRKStepGetDky + public :: FSPRKStepGetReturnFlagName + public :: FSPRKStepGetCurrentMethod + public :: FSPRKStepGetCurrentState + public :: FSPRKStepGetCurrentStep + public :: FSPRKStepGetCurrentTime + public :: FSPRKStepGetLastStep + public :: FSPRKStepGetNumRhsEvals + 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_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_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_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_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_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_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_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_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 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 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 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 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 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 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 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 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/fmod_int32/CMakeLists.txt b/src/cvode/fmod_int32/CMakeLists.txt new file mode 100644 index 0000000000..e27c43ae02 --- /dev/null +++ b/src/cvode/fmod_int32/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_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/cvodes/fmod_int32/CMakeLists.txt b/src/cvodes/fmod_int32/CMakeLists.txt new file mode 100644 index 0000000000..031ac9c6f9 --- /dev/null +++ b/src/cvodes/fmod_int32/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_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/ida/fmod_int32/CMakeLists.txt b/src/ida/fmod_int32/CMakeLists.txt new file mode 100644 index 0000000000..e305f237d0 --- /dev/null +++ b/src/ida/fmod_int32/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_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/idas/fmod_int32/CMakeLists.txt b/src/idas/fmod_int32/CMakeLists.txt new file mode 100644 index 0000000000..a6abe6516b --- /dev/null +++ b/src/idas/fmod_int32/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_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/kinsol/fmod_int32/CMakeLists.txt b/src/kinsol/fmod_int32/CMakeLists.txt new file mode 100644 index 0000000000..a154a8b865 --- /dev/null +++ b/src/kinsol/fmod_int32/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_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/nvector/manyvector/fmod_int32/CMakeLists.txt b/src/nvector/manyvector/fmod_int32/CMakeLists.txt new file mode 100644 index 0000000000..8033da01f7 --- /dev/null +++ b/src/nvector/manyvector/fmod_int32/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_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..0faff2d162 --- /dev/null +++ b/src/nvector/manyvector/fmod_int32/fnvector_manyvector_mod.f90 @@ -0,0 +1,1545 @@ +! 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 +integer(C_INT64_T), intent(in) :: farg2 +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 +integer(C_INT64_T), intent(in) :: vec_num +type(C_PTR) :: fresult +type(C_PTR) :: farg1 +integer(C_INT64_T) :: farg2 + +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..b662f3c9c3 --- /dev/null +++ b/src/nvector/manyvector/fmod_int32/fnvector_mpimanyvector_mod.f90 @@ -0,0 +1,1805 @@ +! 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 +integer(C_INT64_T), intent(in) :: farg2 +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 +integer(C_INT64_T), intent(in) :: vec_num +type(C_PTR) :: fresult +type(C_PTR) :: farg1 +integer(C_INT64_T) :: farg2 + +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/mpiplusx/fmod_int32/CMakeLists.txt b/src/nvector/mpiplusx/fmod_int32/CMakeLists.txt new file mode 100644 index 0000000000..d068b3609f --- /dev/null +++ b/src/nvector/mpiplusx/fmod_int32/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_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/openmp/fmod_int32/CMakeLists.txt b/src/nvector/openmp/fmod_int32/CMakeLists.txt new file mode 100644 index 0000000000..31f4363b84 --- /dev/null +++ b/src/nvector/openmp/fmod_int32/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_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/parallel/fmod_int32/CMakeLists.txt b/src/nvector/parallel/fmod_int32/CMakeLists.txt new file mode 100644 index 0000000000..3b4031b8c9 --- /dev/null +++ b/src/nvector/parallel/fmod_int32/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_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/pthreads/fmod_int32/CMakeLists.txt b/src/nvector/pthreads/fmod_int32/CMakeLists.txt new file mode 100644 index 0000000000..e43ebc9c08 --- /dev/null +++ b/src/nvector/pthreads/fmod_int32/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_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/serial/fmod_int32/CMakeLists.txt b/src/nvector/serial/fmod_int32/CMakeLists.txt new file mode 100644 index 0000000000..293239b9fb --- /dev/null +++ b/src/nvector/serial/fmod_int32/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_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/sunadaptcontroller/imexgus/fmod_int32/CMakeLists.txt b/src/sunadaptcontroller/imexgus/fmod_int32/CMakeLists.txt new file mode 100644 index 0000000000..0c9fd4f2c2 --- /dev/null +++ b/src/sunadaptcontroller/imexgus/fmod_int32/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_int32/fsunadaptcontroller_imexgus_mod.c b/src/sunadaptcontroller/imexgus/fmod_int32/fsunadaptcontroller_imexgus_mod.c new file mode 100644 index 0000000000..1351217e15 --- /dev/null +++ b/src/sunadaptcontroller/imexgus/fmod_int32/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_int32/fsunadaptcontroller_imexgus_mod.f90 b/src/sunadaptcontroller/imexgus/fmod_int32/fsunadaptcontroller_imexgus_mod.f90 new file mode 100644 index 0000000000..29c98ad378 --- /dev/null +++ b/src/sunadaptcontroller/imexgus/fmod_int32/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/fmod_int32/CMakeLists.txt b/src/sunadaptcontroller/soderlind/fmod_int32/CMakeLists.txt new file mode 100644 index 0000000000..44aa8a4922 --- /dev/null +++ b/src/sunadaptcontroller/soderlind/fmod_int32/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_int32/fsunadaptcontroller_soderlind_mod.c b/src/sunadaptcontroller/soderlind/fmod_int32/fsunadaptcontroller_soderlind_mod.c new file mode 100644 index 0000000000..f3da8c259b --- /dev/null +++ b/src/sunadaptcontroller/soderlind/fmod_int32/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_int32/fsunadaptcontroller_soderlind_mod.f90 b/src/sunadaptcontroller/soderlind/fmod_int32/fsunadaptcontroller_soderlind_mod.f90 new file mode 100644 index 0000000000..cd6bc5262a --- /dev/null +++ b/src/sunadaptcontroller/soderlind/fmod_int32/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/fmod_int32/CMakeLists.txt b/src/sundials/fmod_int32/CMakeLists.txt new file mode 100644 index 0000000000..74fe6c96ee --- /dev/null +++ b/src/sundials/fmod_int32/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_int32/fsundials_core_mod.c b/src/sundials/fmod_int32/fsundials_core_mod.c new file mode 100644 index 0000000000..eaccbae9f1 --- /dev/null +++ b/src/sundials/fmod_int32/fsundials_core_mod.c @@ -0,0 +1,2647 @@ +/* ---------------------------------------------------------------------------- + * 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 + +#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" +#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 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..4890566c56 --- /dev/null +++ b/src/sundials/fmod_int32/fsundials_core_mod.f90 @@ -0,0 +1,4773 @@ +! 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_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 + +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 + +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/sunlinsol/band/fmod_int32/CMakeLists.txt b/src/sunlinsol/band/fmod_int32/CMakeLists.txt new file mode 100644 index 0000000000..250f17c914 --- /dev/null +++ b/src/sunlinsol/band/fmod_int32/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_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/dense/fmod_int32/CMakeLists.txt b/src/sunlinsol/dense/fmod_int32/CMakeLists.txt new file mode 100644 index 0000000000..61bdf87108 --- /dev/null +++ b/src/sunlinsol/dense/fmod_int32/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_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/klu/fmod_int32/CMakeLists.txt b/src/sunlinsol/klu/fmod_int32/CMakeLists.txt new file mode 100644 index 0000000000..4a0323d921 --- /dev/null +++ b/src/sunlinsol/klu/fmod_int32/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_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/lapackdense/fmod_int32/CMakeLists.txt b/src/sunlinsol/lapackdense/fmod_int32/CMakeLists.txt new file mode 100644 index 0000000000..12bcb2fae2 --- /dev/null +++ b/src/sunlinsol/lapackdense/fmod_int32/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_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/pcg/fmod_int32/CMakeLists.txt b/src/sunlinsol/pcg/fmod_int32/CMakeLists.txt new file mode 100644 index 0000000000..535741e7d6 --- /dev/null +++ b/src/sunlinsol/pcg/fmod_int32/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_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/spbcgs/fmod_int32/CMakeLists.txt b/src/sunlinsol/spbcgs/fmod_int32/CMakeLists.txt new file mode 100644 index 0000000000..d1b588396f --- /dev/null +++ b/src/sunlinsol/spbcgs/fmod_int32/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_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/spfgmr/fmod_int32/CMakeLists.txt b/src/sunlinsol/spfgmr/fmod_int32/CMakeLists.txt new file mode 100644 index 0000000000..c2cbd50123 --- /dev/null +++ b/src/sunlinsol/spfgmr/fmod_int32/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_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/spgmr/fmod_int32/CMakeLists.txt b/src/sunlinsol/spgmr/fmod_int32/CMakeLists.txt new file mode 100644 index 0000000000..9ea74e0e45 --- /dev/null +++ b/src/sunlinsol/spgmr/fmod_int32/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_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/sptfqmr/fmod_int32/CMakeLists.txt b/src/sunlinsol/sptfqmr/fmod_int32/CMakeLists.txt new file mode 100644 index 0000000000..ff3dc41956 --- /dev/null +++ b/src/sunlinsol/sptfqmr/fmod_int32/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_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/sunmatrix/band/fmod_int32/CMakeLists.txt b/src/sunmatrix/band/fmod_int32/CMakeLists.txt new file mode 100644 index 0000000000..465260d783 --- /dev/null +++ b/src/sunmatrix/band/fmod_int32/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_int32/fsunmatrix_band_mod.c b/src/sunmatrix/band/fmod_int32/fsunmatrix_band_mod.c new file mode 100644 index 0000000000..e5bdcc5e8e --- /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..87c434527b --- /dev/null +++ b/src/sunmatrix/band/fmod_int32/fsunmatrix_band_mod.f90 @@ -0,0 +1,583 @@ +! 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 +integer(C_INT64_T), intent(in) :: farg2 +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 +integer(C_INT64_T), intent(in) :: j +type(C_PTR) :: fresult +type(C_PTR) :: farg1 +integer(C_INT64_T) :: farg2 + +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/dense/fmod_int32/CMakeLists.txt b/src/sunmatrix/dense/fmod_int32/CMakeLists.txt new file mode 100644 index 0000000000..987102b9f6 --- /dev/null +++ b/src/sunmatrix/dense/fmod_int32/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_int32/fsunmatrix_dense_mod.c b/src/sunmatrix/dense/fmod_int32/fsunmatrix_dense_mod.c new file mode 100644 index 0000000000..d39159cec0 --- /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..1e06a30fab --- /dev/null +++ b/src/sunmatrix/dense/fmod_int32/fsunmatrix_dense_mod.f90 @@ -0,0 +1,451 @@ +! 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 +integer(C_INT64_T), intent(in) :: farg2 +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 +integer(C_INT64_T), intent(in) :: j +type(C_PTR) :: fresult +type(C_PTR) :: farg1 +integer(C_INT64_T) :: farg2 + +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/sparse/fmod_int32/CMakeLists.txt b/src/sunmatrix/sparse/fmod_int32/CMakeLists.txt new file mode 100644 index 0000000000..fb0ed79b4c --- /dev/null +++ b/src/sunmatrix/sparse/fmod_int32/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_int32/fsunmatrix_sparse_mod.c b/src/sunmatrix/sparse/fmod_int32/fsunmatrix_sparse_mod.c new file mode 100644 index 0000000000..657accbb8e --- /dev/null +++ b/src/sunmatrix/sparse/fmod_int32/fsunmatrix_sparse_mod.c @@ -0,0 +1,541 @@ +/* ---------------------------------------------------------------------------- + * 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; +} + +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; +} + + 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..19a566b526 --- /dev/null +++ b/src/sunmatrix/sparse/fmod_int32/fsunmatrix_sparse_mod.f90 @@ -0,0 +1,662 @@ +! 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 +integer(C_INT64_T), 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_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 +integer(C_INT64_T), 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_IndexPointers(farg1) +call c_f_pointer(fresult, swig_result, [FSUNSparseMatrix_NP(a)+1]) +end function + + +end module diff --git a/src/sunnonlinsol/fixedpoint/fmod_int32/CMakeLists.txt b/src/sunnonlinsol/fixedpoint/fmod_int32/CMakeLists.txt new file mode 100644 index 0000000000..bb2f0097b6 --- /dev/null +++ b/src/sunnonlinsol/fixedpoint/fmod_int32/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_int32/fsunnonlinsol_fixedpoint_mod.c b/src/sunnonlinsol/fixedpoint/fmod_int32/fsunnonlinsol_fixedpoint_mod.c new file mode 100644 index 0000000000..3911f51201 --- /dev/null +++ b/src/sunnonlinsol/fixedpoint/fmod_int32/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_int32/fsunnonlinsol_fixedpoint_mod.f90 b/src/sunnonlinsol/fixedpoint/fmod_int32/fsunnonlinsol_fixedpoint_mod.f90 new file mode 100644 index 0000000000..763e069388 --- /dev/null +++ b/src/sunnonlinsol/fixedpoint/fmod_int32/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/fmod_int32/CMakeLists.txt b/src/sunnonlinsol/newton/fmod_int32/CMakeLists.txt new file mode 100644 index 0000000000..46be1ab585 --- /dev/null +++ b/src/sunnonlinsol/newton/fmod_int32/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_int32/fsunnonlinsol_newton_mod.c b/src/sunnonlinsol/newton/fmod_int32/fsunnonlinsol_newton_mod.c new file mode 100644 index 0000000000..a7df613d41 --- /dev/null +++ b/src/sunnonlinsol/newton/fmod_int32/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_int32/fsunnonlinsol_newton_mod.f90 b/src/sunnonlinsol/newton/fmod_int32/fsunnonlinsol_newton_mod.f90 new file mode 100644 index 0000000000..53a4bb2bd3 --- /dev/null +++ b/src/sunnonlinsol/newton/fmod_int32/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 From 878933f4f8508c9d2b697bddba2552ef917c2f63 Mon Sep 17 00:00:00 2001 From: "Balos, Cody, J" Date: Tue, 26 Mar 2024 15:55:00 -0700 Subject: [PATCH 12/70] regenerate 32-bit sunindextype and 64, setup separate directories for them --- cmake/macros/SundialsAddLibrary.cmake | 1 + doc/shared/sundials/Fortran.rst | 9 +- .../source/developers/releases/Checklist.rst | 1 + src/arkode/CMakeLists.txt | 2 +- .../{fmod => fmod_int64}/CMakeLists.txt | 0 .../farkode_arkstep_mod.c | 0 .../farkode_arkstep_mod.f90 | 0 .../farkode_erkstep_mod.c | 0 .../farkode_erkstep_mod.f90 | 0 src/arkode/{fmod => fmod_int64}/farkode_mod.c | 0 .../{fmod => fmod_int64}/farkode_mod.f90 | 0 .../farkode_mristep_mod.c | 0 .../farkode_mristep_mod.f90 | 0 .../farkode_sprkstep_mod.c | 0 .../farkode_sprkstep_mod.f90 | 0 src/cvode/CMakeLists.txt | 2 +- src/cvode/{fmod => fmod_int64}/CMakeLists.txt | 0 src/cvode/{fmod => fmod_int64}/fcvode_mod.c | 0 src/cvode/{fmod => fmod_int64}/fcvode_mod.f90 | 0 src/cvodes/CMakeLists.txt | 2 +- .../{fmod => fmod_int64}/CMakeLists.txt | 0 src/cvodes/{fmod => fmod_int64}/fcvodes_mod.c | 0 .../{fmod => fmod_int64}/fcvodes_mod.f90 | 0 src/ida/CMakeLists.txt | 2 +- src/ida/{fmod => fmod_int64}/CMakeLists.txt | 0 src/ida/{fmod => fmod_int64}/fida_mod.c | 0 src/ida/{fmod => fmod_int64}/fida_mod.f90 | 0 src/idas/CMakeLists.txt | 2 +- src/idas/{fmod => fmod_int64}/CMakeLists.txt | 0 src/idas/{fmod => fmod_int64}/fidas_mod.c | 0 src/idas/{fmod => fmod_int64}/fidas_mod.f90 | 0 src/kinsol/CMakeLists.txt | 2 +- .../{fmod => fmod_int64}/CMakeLists.txt | 0 src/kinsol/{fmod => fmod_int64}/fkinsol_mod.c | 0 .../{fmod => fmod_int64}/fkinsol_mod.f90 | 0 src/nvector/manyvector/CMakeLists.txt | 2 +- .../fmod_int32/fnvector_manyvector_mod.f90 | 12 + .../fmod_int32/fnvector_mpimanyvector_mod.f90 | 12 + .../manyvector/fmod_int64/CMakeLists.txt | 61 + .../fmod_int64/fnvector_manyvector_mod.c | 1007 +++++++++ .../fmod_int64/fnvector_manyvector_mod.f90 | 1557 ++++++++++++++ .../fmod_int64/fnvector_mpimanyvector_mod.c | 1167 +++++++++++ .../fmod_int64/fnvector_mpimanyvector_mod.f90 | 1817 +++++++++++++++++ src/nvector/mpiplusx/CMakeLists.txt | 2 +- .../mpiplusx/fmod_int64/CMakeLists.txt | 43 + .../fmod_int64/fnvector_mpiplusx_mod.c | 327 +++ .../fmod_int64/fnvector_mpiplusx_mod.f90 | 241 +++ src/nvector/openmp/CMakeLists.txt | 2 +- src/nvector/openmp/fmod_int64/CMakeLists.txt | 31 + .../openmp/fmod_int64/fnvector_openmp_mod.c | 961 +++++++++ .../openmp/fmod_int64/fnvector_openmp_mod.f90 | 1461 +++++++++++++ src/nvector/parallel/CMakeLists.txt | 2 +- .../parallel/fmod_int64/CMakeLists.txt | 49 + .../fmod_int64/fnvector_parallel_mod.c | 1173 +++++++++++ .../fmod_int64/fnvector_parallel_mod.f90 | 1781 ++++++++++++++++ src/nvector/pthreads/CMakeLists.txt | 2 +- .../pthreads/fmod_int64/CMakeLists.txt | 33 + .../fmod_int64/fnvector_pthreads_mod.c | 961 +++++++++ .../fmod_int64/fnvector_pthreads_mod.f90 | 1461 +++++++++++++ src/nvector/serial/CMakeLists.txt | 2 +- src/nvector/serial/fmod_int64/CMakeLists.txt | 31 + .../serial/fmod_int64/fnvector_serial_mod.c | 955 +++++++++ .../serial/fmod_int64/fnvector_serial_mod.f90 | 1449 +++++++++++++ src/sunadaptcontroller/imexgus/CMakeLists.txt | 2 +- .../imexgus/fmod_int64/CMakeLists.txt | 26 + .../fsunadaptcontroller_imexgus_mod.c | 359 ++++ .../fsunadaptcontroller_imexgus_mod.f90 | 313 +++ .../soderlind/CMakeLists.txt | 2 +- .../soderlind/fmod_int64/CMakeLists.txt | 26 + .../fsunadaptcontroller_soderlind_mod.c | 501 +++++ .../fsunadaptcontroller_soderlind_mod.f90 | 577 ++++++ src/sundials/CMakeLists.txt | 2 +- src/sundials/fmod_int32/fsundials_core_mod.c | 4 - .../{fmod => fmod_int64}/CMakeLists.txt | 0 .../{fmod => fmod_int64}/fsundials_core_mod.c | 4 - .../fsundials_core_mod.f90 | 0 src/sunlinsol/band/CMakeLists.txt | 2 +- src/sunlinsol/band/fmod_int64/CMakeLists.txt | 33 + .../band/fmod_int64/fsunlinsol_band_mod.c | 337 +++ .../band/fmod_int64/fsunlinsol_band_mod.f90 | 271 +++ src/sunlinsol/dense/CMakeLists.txt | 2 +- src/sunlinsol/dense/fmod_int64/CMakeLists.txt | 32 + .../dense/fmod_int64/fsunlinsol_dense_mod.c | 337 +++ .../dense/fmod_int64/fsunlinsol_dense_mod.f90 | 271 +++ src/sunlinsol/klu/CMakeLists.txt | 2 +- src/sunlinsol/klu/fmod_int64/CMakeLists.txt | 33 + .../klu/fmod_int64/fsunlinsol_klu_mod.c | 429 ++++ .../klu/fmod_int64/fsunlinsol_klu_mod.f90 | 420 ++++ src/sunlinsol/lapackdense/CMakeLists.txt | 2 +- .../lapackdense/fmod_int64/CMakeLists.txt | 33 + .../fmod_int64/fsunlinsol_lapackdense_mod.c | 337 +++ .../fmod_int64/fsunlinsol_lapackdense_mod.f90 | 271 +++ src/sunlinsol/pcg/CMakeLists.txt | 2 +- src/sunlinsol/pcg/fmod_int64/CMakeLists.txt | 31 + .../pcg/fmod_int64/fsunlinsol_pcg_mod.c | 467 +++++ .../pcg/fmod_int64/fsunlinsol_pcg_mod.f90 | 514 +++++ src/sunlinsol/spbcgs/CMakeLists.txt | 2 +- .../spbcgs/fmod_int64/CMakeLists.txt | 31 + .../spbcgs/fmod_int64/fsunlinsol_spbcgs_mod.c | 467 +++++ .../fmod_int64/fsunlinsol_spbcgs_mod.f90 | 514 +++++ src/sunlinsol/spfgmr/CMakeLists.txt | 2 +- .../spfgmr/fmod_int64/CMakeLists.txt | 31 + .../spfgmr/fmod_int64/fsunlinsol_spfgmr_mod.c | 481 +++++ .../fmod_int64/fsunlinsol_spfgmr_mod.f90 | 541 +++++ src/sunlinsol/spgmr/CMakeLists.txt | 2 +- src/sunlinsol/spgmr/fmod_int64/CMakeLists.txt | 31 + .../spgmr/fmod_int64/fsunlinsol_spgmr_mod.c | 481 +++++ .../spgmr/fmod_int64/fsunlinsol_spgmr_mod.f90 | 541 +++++ src/sunlinsol/sptfqmr/CMakeLists.txt | 2 +- .../sptfqmr/fmod_int64/CMakeLists.txt | 31 + .../fmod_int64/fsunlinsol_sptfqmr_mod.c | 467 +++++ .../fmod_int64/fsunlinsol_sptfqmr_mod.f90 | 514 +++++ src/sunmatrix/band/CMakeLists.txt | 2 +- .../band/fmod_int32/fsunmatrix_band_mod.c | 4 +- .../band/fmod_int32/fsunmatrix_band_mod.f90 | 24 +- src/sunmatrix/band/fmod_int64/CMakeLists.txt | 31 + .../band/fmod_int64/fsunmatrix_band_mod.c | 500 +++++ .../band/fmod_int64/fsunmatrix_band_mod.f90 | 595 ++++++ src/sunmatrix/dense/CMakeLists.txt | 2 +- .../dense/fmod_int32/fsunmatrix_dense_mod.c | 4 +- .../dense/fmod_int32/fsunmatrix_dense_mod.f90 | 22 +- src/sunmatrix/dense/fmod_int64/CMakeLists.txt | 31 + .../dense/fmod_int64/fsunmatrix_dense_mod.c | 430 ++++ .../dense/fmod_int64/fsunmatrix_dense_mod.f90 | 463 +++++ src/sunmatrix/sparse/CMakeLists.txt | 2 +- .../sparse/fmod_int32/fsunmatrix_sparse_mod.c | 6 +- .../fmod_int32/fsunmatrix_sparse_mod.f90 | 22 +- .../sparse/fmod_int64/CMakeLists.txt | 31 + .../sparse/fmod_int64/fsunmatrix_sparse_mod.c | 541 +++++ .../fmod_int64/fsunmatrix_sparse_mod.f90 | 670 ++++++ src/sunnonlinsol/fixedpoint/CMakeLists.txt | 2 +- .../fixedpoint/fmod_int64/CMakeLists.txt | 32 + .../fmod_int64/fsunnonlinsol_fixedpoint_mod.c | 419 ++++ .../fsunnonlinsol_fixedpoint_mod.f90 | 425 ++++ src/sunnonlinsol/newton/CMakeLists.txt | 2 +- .../newton/fmod_int64/CMakeLists.txt | 32 + .../fmod_int64/fsunnonlinsol_newton_mod.c | 429 ++++ .../fmod_int64/fsunnonlinsol_newton_mod.f90 | 443 ++++ swig/Makefile | 34 +- swig/README.md | 4 +- swig/nvector/fnvector_manyvector_mod.i | 12 + swig/nvector/fnvector_mpimanyvector_mod.i | 12 + swig/sundials/fsundials_types.i | 4 - swig/sunmatrix/fsunmatrix_band_mod.i | 28 +- swig/sunmatrix/fsunmatrix_dense_mod.i | 26 +- swig/sunmatrix/fsunmatrix_sparse_mod.i | 28 +- 146 files changed, 31606 insertions(+), 111 deletions(-) rename src/arkode/{fmod => fmod_int64}/CMakeLists.txt (100%) rename src/arkode/{fmod => fmod_int64}/farkode_arkstep_mod.c (100%) rename src/arkode/{fmod => fmod_int64}/farkode_arkstep_mod.f90 (100%) rename src/arkode/{fmod => fmod_int64}/farkode_erkstep_mod.c (100%) rename src/arkode/{fmod => fmod_int64}/farkode_erkstep_mod.f90 (100%) rename src/arkode/{fmod => fmod_int64}/farkode_mod.c (100%) rename src/arkode/{fmod => fmod_int64}/farkode_mod.f90 (100%) rename src/arkode/{fmod => fmod_int64}/farkode_mristep_mod.c (100%) rename src/arkode/{fmod => fmod_int64}/farkode_mristep_mod.f90 (100%) rename src/arkode/{fmod => fmod_int64}/farkode_sprkstep_mod.c (100%) rename src/arkode/{fmod => fmod_int64}/farkode_sprkstep_mod.f90 (100%) rename src/cvode/{fmod => fmod_int64}/CMakeLists.txt (100%) rename src/cvode/{fmod => fmod_int64}/fcvode_mod.c (100%) rename src/cvode/{fmod => fmod_int64}/fcvode_mod.f90 (100%) rename src/cvodes/{fmod => fmod_int64}/CMakeLists.txt (100%) rename src/cvodes/{fmod => fmod_int64}/fcvodes_mod.c (100%) rename src/cvodes/{fmod => fmod_int64}/fcvodes_mod.f90 (100%) rename src/ida/{fmod => fmod_int64}/CMakeLists.txt (100%) rename src/ida/{fmod => fmod_int64}/fida_mod.c (100%) rename src/ida/{fmod => fmod_int64}/fida_mod.f90 (100%) rename src/idas/{fmod => fmod_int64}/CMakeLists.txt (100%) rename src/idas/{fmod => fmod_int64}/fidas_mod.c (100%) rename src/idas/{fmod => fmod_int64}/fidas_mod.f90 (100%) rename src/kinsol/{fmod => fmod_int64}/CMakeLists.txt (100%) rename src/kinsol/{fmod => fmod_int64}/fkinsol_mod.c (100%) rename src/kinsol/{fmod => fmod_int64}/fkinsol_mod.f90 (100%) create mode 100644 src/nvector/manyvector/fmod_int64/CMakeLists.txt create mode 100644 src/nvector/manyvector/fmod_int64/fnvector_manyvector_mod.c create mode 100644 src/nvector/manyvector/fmod_int64/fnvector_manyvector_mod.f90 create mode 100644 src/nvector/manyvector/fmod_int64/fnvector_mpimanyvector_mod.c create mode 100644 src/nvector/manyvector/fmod_int64/fnvector_mpimanyvector_mod.f90 create mode 100644 src/nvector/mpiplusx/fmod_int64/CMakeLists.txt create mode 100644 src/nvector/mpiplusx/fmod_int64/fnvector_mpiplusx_mod.c create mode 100644 src/nvector/mpiplusx/fmod_int64/fnvector_mpiplusx_mod.f90 create mode 100644 src/nvector/openmp/fmod_int64/CMakeLists.txt create mode 100644 src/nvector/openmp/fmod_int64/fnvector_openmp_mod.c create mode 100644 src/nvector/openmp/fmod_int64/fnvector_openmp_mod.f90 create mode 100644 src/nvector/parallel/fmod_int64/CMakeLists.txt create mode 100644 src/nvector/parallel/fmod_int64/fnvector_parallel_mod.c create mode 100644 src/nvector/parallel/fmod_int64/fnvector_parallel_mod.f90 create mode 100644 src/nvector/pthreads/fmod_int64/CMakeLists.txt create mode 100644 src/nvector/pthreads/fmod_int64/fnvector_pthreads_mod.c create mode 100644 src/nvector/pthreads/fmod_int64/fnvector_pthreads_mod.f90 create mode 100644 src/nvector/serial/fmod_int64/CMakeLists.txt create mode 100644 src/nvector/serial/fmod_int64/fnvector_serial_mod.c create mode 100644 src/nvector/serial/fmod_int64/fnvector_serial_mod.f90 create mode 100644 src/sunadaptcontroller/imexgus/fmod_int64/CMakeLists.txt create mode 100644 src/sunadaptcontroller/imexgus/fmod_int64/fsunadaptcontroller_imexgus_mod.c create mode 100644 src/sunadaptcontroller/imexgus/fmod_int64/fsunadaptcontroller_imexgus_mod.f90 create mode 100644 src/sunadaptcontroller/soderlind/fmod_int64/CMakeLists.txt create mode 100644 src/sunadaptcontroller/soderlind/fmod_int64/fsunadaptcontroller_soderlind_mod.c create mode 100644 src/sunadaptcontroller/soderlind/fmod_int64/fsunadaptcontroller_soderlind_mod.f90 rename src/sundials/{fmod => fmod_int64}/CMakeLists.txt (100%) rename src/sundials/{fmod => fmod_int64}/fsundials_core_mod.c (99%) rename src/sundials/{fmod => fmod_int64}/fsundials_core_mod.f90 (100%) create mode 100644 src/sunlinsol/band/fmod_int64/CMakeLists.txt create mode 100644 src/sunlinsol/band/fmod_int64/fsunlinsol_band_mod.c create mode 100644 src/sunlinsol/band/fmod_int64/fsunlinsol_band_mod.f90 create mode 100644 src/sunlinsol/dense/fmod_int64/CMakeLists.txt create mode 100644 src/sunlinsol/dense/fmod_int64/fsunlinsol_dense_mod.c create mode 100644 src/sunlinsol/dense/fmod_int64/fsunlinsol_dense_mod.f90 create mode 100644 src/sunlinsol/klu/fmod_int64/CMakeLists.txt create mode 100644 src/sunlinsol/klu/fmod_int64/fsunlinsol_klu_mod.c create mode 100644 src/sunlinsol/klu/fmod_int64/fsunlinsol_klu_mod.f90 create mode 100644 src/sunlinsol/lapackdense/fmod_int64/CMakeLists.txt create mode 100644 src/sunlinsol/lapackdense/fmod_int64/fsunlinsol_lapackdense_mod.c create mode 100644 src/sunlinsol/lapackdense/fmod_int64/fsunlinsol_lapackdense_mod.f90 create mode 100644 src/sunlinsol/pcg/fmod_int64/CMakeLists.txt create mode 100644 src/sunlinsol/pcg/fmod_int64/fsunlinsol_pcg_mod.c create mode 100644 src/sunlinsol/pcg/fmod_int64/fsunlinsol_pcg_mod.f90 create mode 100644 src/sunlinsol/spbcgs/fmod_int64/CMakeLists.txt create mode 100644 src/sunlinsol/spbcgs/fmod_int64/fsunlinsol_spbcgs_mod.c create mode 100644 src/sunlinsol/spbcgs/fmod_int64/fsunlinsol_spbcgs_mod.f90 create mode 100644 src/sunlinsol/spfgmr/fmod_int64/CMakeLists.txt create mode 100644 src/sunlinsol/spfgmr/fmod_int64/fsunlinsol_spfgmr_mod.c create mode 100644 src/sunlinsol/spfgmr/fmod_int64/fsunlinsol_spfgmr_mod.f90 create mode 100644 src/sunlinsol/spgmr/fmod_int64/CMakeLists.txt create mode 100644 src/sunlinsol/spgmr/fmod_int64/fsunlinsol_spgmr_mod.c create mode 100644 src/sunlinsol/spgmr/fmod_int64/fsunlinsol_spgmr_mod.f90 create mode 100644 src/sunlinsol/sptfqmr/fmod_int64/CMakeLists.txt create mode 100644 src/sunlinsol/sptfqmr/fmod_int64/fsunlinsol_sptfqmr_mod.c create mode 100644 src/sunlinsol/sptfqmr/fmod_int64/fsunlinsol_sptfqmr_mod.f90 create mode 100644 src/sunmatrix/band/fmod_int64/CMakeLists.txt create mode 100644 src/sunmatrix/band/fmod_int64/fsunmatrix_band_mod.c create mode 100644 src/sunmatrix/band/fmod_int64/fsunmatrix_band_mod.f90 create mode 100644 src/sunmatrix/dense/fmod_int64/CMakeLists.txt create mode 100644 src/sunmatrix/dense/fmod_int64/fsunmatrix_dense_mod.c create mode 100644 src/sunmatrix/dense/fmod_int64/fsunmatrix_dense_mod.f90 create mode 100644 src/sunmatrix/sparse/fmod_int64/CMakeLists.txt create mode 100644 src/sunmatrix/sparse/fmod_int64/fsunmatrix_sparse_mod.c create mode 100644 src/sunmatrix/sparse/fmod_int64/fsunmatrix_sparse_mod.f90 create mode 100644 src/sunnonlinsol/fixedpoint/fmod_int64/CMakeLists.txt create mode 100644 src/sunnonlinsol/fixedpoint/fmod_int64/fsunnonlinsol_fixedpoint_mod.c create mode 100644 src/sunnonlinsol/fixedpoint/fmod_int64/fsunnonlinsol_fixedpoint_mod.f90 create mode 100644 src/sunnonlinsol/newton/fmod_int64/CMakeLists.txt create mode 100644 src/sunnonlinsol/newton/fmod_int64/fsunnonlinsol_newton_mod.c create mode 100644 src/sunnonlinsol/newton/fmod_int64/fsunnonlinsol_newton_mod.f90 diff --git a/cmake/macros/SundialsAddLibrary.cmake b/cmake/macros/SundialsAddLibrary.cmake index ca0d226191..d66cbab23c 100644 --- a/cmake/macros/SundialsAddLibrary.cmake +++ b/cmake/macros/SundialsAddLibrary.cmake @@ -451,6 +451,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/doc/shared/sundials/Fortran.rst b/doc/shared/sundials/Fortran.rst index 39f7fe9937..19fe81485b 100644 --- a/doc/shared/sundials/Fortran.rst +++ b/doc/shared/sundials/Fortran.rst @@ -175,8 +175,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/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/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_int64/CMakeLists.txt similarity index 100% rename from src/arkode/fmod/CMakeLists.txt rename to src/arkode/fmod_int64/CMakeLists.txt diff --git a/src/arkode/fmod/farkode_arkstep_mod.c b/src/arkode/fmod_int64/farkode_arkstep_mod.c similarity index 100% rename from src/arkode/fmod/farkode_arkstep_mod.c rename to src/arkode/fmod_int64/farkode_arkstep_mod.c diff --git a/src/arkode/fmod/farkode_arkstep_mod.f90 b/src/arkode/fmod_int64/farkode_arkstep_mod.f90 similarity index 100% rename from src/arkode/fmod/farkode_arkstep_mod.f90 rename to src/arkode/fmod_int64/farkode_arkstep_mod.f90 diff --git a/src/arkode/fmod/farkode_erkstep_mod.c b/src/arkode/fmod_int64/farkode_erkstep_mod.c similarity index 100% rename from src/arkode/fmod/farkode_erkstep_mod.c rename to src/arkode/fmod_int64/farkode_erkstep_mod.c diff --git a/src/arkode/fmod/farkode_erkstep_mod.f90 b/src/arkode/fmod_int64/farkode_erkstep_mod.f90 similarity index 100% rename from src/arkode/fmod/farkode_erkstep_mod.f90 rename to src/arkode/fmod_int64/farkode_erkstep_mod.f90 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/farkode_sprkstep_mod.c b/src/arkode/fmod_int64/farkode_sprkstep_mod.c similarity index 100% rename from src/arkode/fmod/farkode_sprkstep_mod.c rename to src/arkode/fmod_int64/farkode_sprkstep_mod.c diff --git a/src/arkode/fmod/farkode_sprkstep_mod.f90 b/src/arkode/fmod_int64/farkode_sprkstep_mod.f90 similarity index 100% rename from src/arkode/fmod/farkode_sprkstep_mod.f90 rename to src/arkode/fmod_int64/farkode_sprkstep_mod.f90 diff --git a/src/cvode/CMakeLists.txt b/src/cvode/CMakeLists.txt index 7c30d3538c..94e4e12cb3 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_int64/CMakeLists.txt similarity index 100% rename from src/cvode/fmod/CMakeLists.txt rename to src/cvode/fmod_int64/CMakeLists.txt 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_int64/CMakeLists.txt similarity index 100% rename from src/cvodes/fmod/CMakeLists.txt rename to src/cvodes/fmod_int64/CMakeLists.txt 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_int64/CMakeLists.txt similarity index 100% rename from src/ida/fmod/CMakeLists.txt rename to src/ida/fmod_int64/CMakeLists.txt 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_int64/CMakeLists.txt similarity index 100% rename from src/idas/fmod/CMakeLists.txt rename to src/idas/fmod_int64/CMakeLists.txt 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_int64/CMakeLists.txt similarity index 100% rename from src/kinsol/fmod/CMakeLists.txt rename to src/kinsol/fmod_int64/CMakeLists.txt 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_int32/fnvector_manyvector_mod.f90 b/src/nvector/manyvector/fmod_int32/fnvector_manyvector_mod.f90 index 0faff2d162..a9e0c7ea09 100644 --- a/src/nvector/manyvector/fmod_int32/fnvector_manyvector_mod.f90 +++ b/src/nvector/manyvector/fmod_int32/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_int32/fnvector_mpimanyvector_mod.f90 b/src/nvector/manyvector/fmod_int32/fnvector_mpimanyvector_mod.f90 index b662f3c9c3..2226643c27 100644 --- a/src/nvector/manyvector/fmod_int32/fnvector_mpimanyvector_mod.f90 +++ b/src/nvector/manyvector/fmod_int32/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/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_int64/fnvector_manyvector_mod.c b/src/nvector/manyvector/fmod_int64/fnvector_manyvector_mod.c new file mode 100644 index 0000000000..3cd395bf66 --- /dev/null +++ b/src/nvector/manyvector/fmod_int64/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(int64_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, int64_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, int64_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 int64_t _wrap_FN_VGetNumSubvectors_ManyVector(N_Vector farg1) { + int64_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, int64_t *farg2, int64_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 int64_t _wrap_FN_VGetLength_ManyVector(N_Vector farg1) { + int64_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 int64_t _wrap_FN_VGetSubvectorLocalLength_ManyVector(N_Vector farg1, int64_t const *farg2) { + int64_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, int64_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_int64/fnvector_manyvector_mod.f90 b/src/nvector/manyvector/fmod_int64/fnvector_manyvector_mod.f90 new file mode 100644 index 0000000000..88587dc2f3 --- /dev/null +++ b/src/nvector/manyvector/fmod_int64/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_INT64_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_INT64_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_INT64_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_INT64_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_INT64_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_INT64_T), intent(in) :: farg2 +integer(C_INT64_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_INT64_T), intent(in) :: num_subvectors +type(C_PTR) :: vec_array +type(C_PTR) :: sunctx +type(C_PTR) :: fresult +integer(C_INT64_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_INT64_T), intent(in) :: vec_num +type(C_PTR) :: fresult +type(C_PTR) :: farg1 +integer(C_INT64_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_INT64_T), intent(in) :: vec_num +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +integer(C_INT64_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_INT64_T) :: swig_result +type(N_Vector), target, intent(inout) :: v +integer(C_INT64_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_INT64_T), dimension(*), target, intent(inout) :: lrw +integer(C_INT64_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_INT64_T) :: swig_result +type(N_Vector), target, intent(inout) :: v +integer(C_INT64_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_INT64_T) :: swig_result +type(N_Vector), target, intent(inout) :: v +integer(C_INT64_T), intent(in) :: vec_num +integer(C_INT64_T) :: fresult +type(C_PTR) :: farg1 +integer(C_INT64_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_INT64_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_int64/fnvector_mpimanyvector_mod.c b/src/nvector/manyvector/fmod_int64/fnvector_mpimanyvector_mod.c new file mode 100644 index 0000000000..2374d9a846 --- /dev/null +++ b/src/nvector/manyvector/fmod_int64/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, int64_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(int64_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, int64_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, int64_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 int64_t _wrap_FN_VGetNumSubvectors_MPIManyVector(N_Vector farg1) { + int64_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, int64_t *farg2, int64_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 int64_t _wrap_FN_VGetLength_MPIManyVector(N_Vector farg1) { + int64_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 int64_t _wrap_FN_VGetSubvectorLocalLength_MPIManyVector(N_Vector farg1, int64_t const *farg2) { + int64_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, int64_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_int64/fnvector_mpimanyvector_mod.f90 b/src/nvector/manyvector/fmod_int64/fnvector_mpimanyvector_mod.f90 new file mode 100644 index 0000000000..39d48fa9be --- /dev/null +++ b/src/nvector/manyvector/fmod_int64/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_INT64_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_INT64_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_INT64_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_INT64_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_INT64_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_INT64_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_INT64_T), intent(in) :: farg2 +integer(C_INT64_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_INT64_T), intent(in) :: num_subvectors +type(C_PTR) :: vec_array +type(C_PTR) :: sunctx +type(C_PTR) :: fresult +integer(C_INT) :: farg1 +integer(C_INT64_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_INT64_T), intent(in) :: num_subvectors +type(C_PTR) :: vec_array +type(C_PTR) :: sunctx +type(C_PTR) :: fresult +integer(C_INT64_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_INT64_T), intent(in) :: vec_num +type(C_PTR) :: fresult +type(C_PTR) :: farg1 +integer(C_INT64_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_INT64_T), intent(in) :: vec_num +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +integer(C_INT64_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_INT64_T) :: swig_result +type(N_Vector), target, intent(inout) :: v +integer(C_INT64_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_INT64_T), dimension(*), target, intent(inout) :: lrw +integer(C_INT64_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_INT64_T) :: swig_result +type(N_Vector), target, intent(inout) :: v +integer(C_INT64_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_INT64_T) :: swig_result +type(N_Vector), target, intent(inout) :: v +integer(C_INT64_T), intent(in) :: vec_num +integer(C_INT64_T) :: fresult +type(C_PTR) :: farg1 +integer(C_INT64_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_INT64_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/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_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_int64/fnvector_mpiplusx_mod.c b/src/nvector/mpiplusx/fmod_int64/fnvector_mpiplusx_mod.c new file mode 100644 index 0000000000..7292a6ae2f --- /dev/null +++ b/src/nvector/mpiplusx/fmod_int64/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 int64_t _wrap_FN_VGetLocalLength_MPIPlusX(N_Vector farg1) { + int64_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_int64/fnvector_mpiplusx_mod.f90 b/src/nvector/mpiplusx/fmod_int64/fnvector_mpiplusx_mod.f90 new file mode 100644 index 0000000000..b3fd51a5ca --- /dev/null +++ b/src/nvector/mpiplusx/fmod_int64/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_INT64_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_INT64_T) :: swig_result +type(N_Vector), target, intent(inout) :: v +integer(C_INT64_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/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_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_int64/fnvector_openmp_mod.c b/src/nvector/openmp/fmod_int64/fnvector_openmp_mod.c new file mode 100644 index 0000000000..34f3b918df --- /dev/null +++ b/src/nvector/openmp/fmod_int64/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(int64_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(int64_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(int64_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 int64_t _wrap_FN_VGetLength_OpenMP(N_Vector farg1) { + int64_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, int64_t *farg2, int64_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, int64_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_int64/fnvector_openmp_mod.f90 b/src/nvector/openmp/fmod_int64/fnvector_openmp_mod.f90 new file mode 100644 index 0000000000..bcdc99e1bf --- /dev/null +++ b/src/nvector/openmp/fmod_int64/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_INT64_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_INT64_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_INT64_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_INT64_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_INT64_T), intent(in) :: vec_length +integer(C_INT), intent(in) :: num_threads +type(C_PTR) :: sunctx +type(C_PTR) :: fresult +integer(C_INT64_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_INT64_T), intent(in) :: vec_length +integer(C_INT), intent(in) :: num_threads +type(C_PTR) :: sunctx +type(C_PTR) :: fresult +integer(C_INT64_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_INT64_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_INT64_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_INT64_T) :: swig_result +type(N_Vector), target, intent(inout) :: v +integer(C_INT64_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_INT64_T), dimension(*), target, intent(inout) :: lrw +integer(C_INT64_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_INT64_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/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_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_int64/fnvector_parallel_mod.c b/src/nvector/parallel/fmod_int64/fnvector_parallel_mod.c new file mode 100644 index 0000000000..877640429b --- /dev/null +++ b/src/nvector/parallel/fmod_int64/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, int64_t const *farg2, int64_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, int64_t const *farg2, int64_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, int64_t const *farg2, int64_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 int64_t _wrap_FN_VGetLength_Parallel(N_Vector farg1) { + int64_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 int64_t _wrap_FN_VGetLocalLength_Parallel(N_Vector farg1) { + int64_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, int64_t *farg2, int64_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, int64_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_int64/fnvector_parallel_mod.f90 b/src/nvector/parallel/fmod_int64/fnvector_parallel_mod.f90 new file mode 100644 index 0000000000..c4a036de7b --- /dev/null +++ b/src/nvector/parallel/fmod_int64/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_INT64_T), intent(in) :: farg2 +integer(C_INT64_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_INT64_T), intent(in) :: farg2 +integer(C_INT64_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_INT64_T), intent(in) :: farg2 +integer(C_INT64_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_INT64_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_INT64_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_INT64_T), intent(in) :: local_length +integer(C_INT64_T), intent(in) :: global_length +type(C_PTR) :: sunctx +type(C_PTR) :: fresult +integer(C_INT) :: farg1 +integer(C_INT64_T) :: farg2 +integer(C_INT64_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_INT64_T), intent(in) :: local_length +integer(C_INT64_T), intent(in) :: global_length +type(C_PTR) :: sunctx +type(C_PTR) :: fresult +integer(C_INT) :: farg1 +integer(C_INT64_T) :: farg2 +integer(C_INT64_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_INT64_T), intent(in) :: local_length +integer(C_INT64_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_INT64_T) :: farg2 +integer(C_INT64_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_INT64_T) :: swig_result +type(N_Vector), target, intent(inout) :: v +integer(C_INT64_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_INT64_T) :: swig_result +type(N_Vector), target, intent(inout) :: v +integer(C_INT64_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_INT64_T), dimension(*), target, intent(inout) :: lrw +integer(C_INT64_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_INT64_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/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_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_int64/fnvector_pthreads_mod.c b/src/nvector/pthreads/fmod_int64/fnvector_pthreads_mod.c new file mode 100644 index 0000000000..76af5ca784 --- /dev/null +++ b/src/nvector/pthreads/fmod_int64/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(int64_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(int64_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(int64_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 int64_t _wrap_FN_VGetLength_Pthreads(N_Vector farg1) { + int64_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, int64_t *farg2, int64_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, int64_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_int64/fnvector_pthreads_mod.f90 b/src/nvector/pthreads/fmod_int64/fnvector_pthreads_mod.f90 new file mode 100644 index 0000000000..d3b92e8269 --- /dev/null +++ b/src/nvector/pthreads/fmod_int64/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_INT64_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_INT64_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_INT64_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_INT64_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_INT64_T), intent(in) :: vec_length +integer(C_INT), intent(in) :: n_threads +type(C_PTR) :: sunctx +type(C_PTR) :: fresult +integer(C_INT64_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_INT64_T), intent(in) :: vec_length +integer(C_INT), intent(in) :: n_threads +type(C_PTR) :: sunctx +type(C_PTR) :: fresult +integer(C_INT64_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_INT64_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_INT64_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_INT64_T) :: swig_result +type(N_Vector), target, intent(inout) :: v +integer(C_INT64_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_INT64_T), dimension(*), target, intent(inout) :: lrw +integer(C_INT64_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_INT64_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/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_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_int64/fnvector_serial_mod.c b/src/nvector/serial/fmod_int64/fnvector_serial_mod.c new file mode 100644 index 0000000000..7611d0b848 --- /dev/null +++ b/src/nvector/serial/fmod_int64/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(int64_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(int64_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(int64_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 int64_t _wrap_FN_VGetLength_Serial(N_Vector farg1) { + int64_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, int64_t *farg2, int64_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, int64_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_int64/fnvector_serial_mod.f90 b/src/nvector/serial/fmod_int64/fnvector_serial_mod.f90 new file mode 100644 index 0000000000..bbdc76c8b7 --- /dev/null +++ b/src/nvector/serial/fmod_int64/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_INT64_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_INT64_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_INT64_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_INT64_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_INT64_T), intent(in) :: vec_length +type(C_PTR) :: sunctx +type(C_PTR) :: fresult +integer(C_INT64_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_INT64_T), intent(in) :: vec_length +type(C_PTR) :: sunctx +type(C_PTR) :: fresult +integer(C_INT64_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_INT64_T), intent(in) :: vec_length +real(C_DOUBLE), dimension(*), target, intent(inout) :: v_data +type(C_PTR) :: sunctx +type(C_PTR) :: fresult +integer(C_INT64_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_INT64_T) :: swig_result +type(N_Vector), target, intent(inout) :: v +integer(C_INT64_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_INT64_T), dimension(*), target, intent(inout) :: lrw +integer(C_INT64_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_INT64_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/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_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_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 c7f1f90ee0..93b6c7af4a 100644 --- a/src/sundials/CMakeLists.txt +++ b/src/sundials/CMakeLists.txt @@ -165,5 +165,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_int32/fsundials_core_mod.c b/src/sundials/fmod_int32/fsundials_core_mod.c index eaccbae9f1..4a82a3afd2 100644 --- a/src/sundials/fmod_int32/fsundials_core_mod.c +++ b/src/sundials/fmod_int32/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/CMakeLists.txt b/src/sundials/fmod_int64/CMakeLists.txt similarity index 100% rename from src/sundials/fmod/CMakeLists.txt rename to src/sundials/fmod_int64/CMakeLists.txt 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 4af16b91a4..335bc76dfa 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_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_int64/fsunlinsol_band_mod.c b/src/sunlinsol/band/fmod_int64/fsunlinsol_band_mod.c new file mode 100644 index 0000000000..2d78bb53cc --- /dev/null +++ b/src/sunlinsol/band/fmod_int64/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 int64_t _wrap_FSUNLinSolLastFlag_Band(SUNLinearSolver farg1) { + int64_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_int64/fsunlinsol_band_mod.f90 b/src/sunlinsol/band/fmod_int64/fsunlinsol_band_mod.f90 new file mode 100644 index 0000000000..7ed68c8ac2 --- /dev/null +++ b/src/sunlinsol/band/fmod_int64/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_INT64_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_INT64_T) :: swig_result +type(SUNLinearSolver), target, intent(inout) :: s +integer(C_INT64_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/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_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_int64/fsunlinsol_dense_mod.c b/src/sunlinsol/dense/fmod_int64/fsunlinsol_dense_mod.c new file mode 100644 index 0000000000..c6d6fba9d4 --- /dev/null +++ b/src/sunlinsol/dense/fmod_int64/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 int64_t _wrap_FSUNLinSolLastFlag_Dense(SUNLinearSolver farg1) { + int64_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_int64/fsunlinsol_dense_mod.f90 b/src/sunlinsol/dense/fmod_int64/fsunlinsol_dense_mod.f90 new file mode 100644 index 0000000000..8d8af81057 --- /dev/null +++ b/src/sunlinsol/dense/fmod_int64/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_INT64_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_INT64_T) :: swig_result +type(SUNLinearSolver), target, intent(inout) :: s +integer(C_INT64_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/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_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_int64/fsunlinsol_klu_mod.c b/src/sunlinsol/klu/fmod_int64/fsunlinsol_klu_mod.c new file mode 100644 index 0000000000..6277d00adf --- /dev/null +++ b/src/sunlinsol/klu/fmod_int64/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, int64_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_l_symbolic *result = 0 ; + + arg1 = (SUNLinearSolver)(farg1); + result = (klu_l_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_l_numeric *result = 0 ; + + arg1 = (SUNLinearSolver)(farg1); + result = (klu_l_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_l_common *result = 0 ; + + arg1 = (SUNLinearSolver)(farg1); + result = (klu_l_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 int64_t _wrap_FSUNLinSolLastFlag_KLU(SUNLinearSolver farg1) { + int64_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_int64/fsunlinsol_klu_mod.f90 b/src/sunlinsol/klu/fmod_int64/fsunlinsol_klu_mod.f90 new file mode 100644 index 0000000000..08fc791620 --- /dev/null +++ b/src/sunlinsol/klu/fmod_int64/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_l_symbolic + type(SwigClassWrapper), public :: swigdata + end type + public :: FSUNLinSol_KLUGetSymbolic + type, public :: SWIGTYPE_p_klu_l_numeric + type(SwigClassWrapper), public :: swigdata + end type + public :: FSUNLinSol_KLUGetNumeric + type, public :: SWIGTYPE_p_klu_l_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_INT64_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_INT64_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_INT64_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_INT64_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_l_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_l_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_l_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_INT64_T) :: swig_result +type(SUNLinearSolver), target, intent(inout) :: s +integer(C_INT64_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/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_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_int64/fsunlinsol_lapackdense_mod.c b/src/sunlinsol/lapackdense/fmod_int64/fsunlinsol_lapackdense_mod.c new file mode 100644 index 0000000000..b83ae9f110 --- /dev/null +++ b/src/sunlinsol/lapackdense/fmod_int64/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 int64_t _wrap_FSUNLinSolLastFlag_LapackDense(SUNLinearSolver farg1) { + int64_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_int64/fsunlinsol_lapackdense_mod.f90 b/src/sunlinsol/lapackdense/fmod_int64/fsunlinsol_lapackdense_mod.f90 new file mode 100644 index 0000000000..d42ca5ac96 --- /dev/null +++ b/src/sunlinsol/lapackdense/fmod_int64/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_INT64_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_INT64_T) :: swig_result +type(SUNLinearSolver), target, intent(inout) :: s +integer(C_INT64_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/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_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_int64/fsunlinsol_pcg_mod.c b/src/sunlinsol/pcg/fmod_int64/fsunlinsol_pcg_mod.c new file mode 100644 index 0000000000..4f7f9aa112 --- /dev/null +++ b/src/sunlinsol/pcg/fmod_int64/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 int64_t _wrap_FSUNLinSolLastFlag_PCG(SUNLinearSolver farg1) { + int64_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_int64/fsunlinsol_pcg_mod.f90 b/src/sunlinsol/pcg/fmod_int64/fsunlinsol_pcg_mod.f90 new file mode 100644 index 0000000000..9031eb215d --- /dev/null +++ b/src/sunlinsol/pcg/fmod_int64/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_INT64_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_INT64_T) :: swig_result +type(SUNLinearSolver), target, intent(inout) :: s +integer(C_INT64_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/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_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_int64/fsunlinsol_spbcgs_mod.c b/src/sunlinsol/spbcgs/fmod_int64/fsunlinsol_spbcgs_mod.c new file mode 100644 index 0000000000..9804227b8e --- /dev/null +++ b/src/sunlinsol/spbcgs/fmod_int64/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 int64_t _wrap_FSUNLinSolLastFlag_SPBCGS(SUNLinearSolver farg1) { + int64_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_int64/fsunlinsol_spbcgs_mod.f90 b/src/sunlinsol/spbcgs/fmod_int64/fsunlinsol_spbcgs_mod.f90 new file mode 100644 index 0000000000..feee12ba35 --- /dev/null +++ b/src/sunlinsol/spbcgs/fmod_int64/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_INT64_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_INT64_T) :: swig_result +type(SUNLinearSolver), target, intent(inout) :: s +integer(C_INT64_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/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_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_int64/fsunlinsol_spfgmr_mod.c b/src/sunlinsol/spfgmr/fmod_int64/fsunlinsol_spfgmr_mod.c new file mode 100644 index 0000000000..80b9111179 --- /dev/null +++ b/src/sunlinsol/spfgmr/fmod_int64/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 int64_t _wrap_FSUNLinSolLastFlag_SPFGMR(SUNLinearSolver farg1) { + int64_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_int64/fsunlinsol_spfgmr_mod.f90 b/src/sunlinsol/spfgmr/fmod_int64/fsunlinsol_spfgmr_mod.f90 new file mode 100644 index 0000000000..3b260f1982 --- /dev/null +++ b/src/sunlinsol/spfgmr/fmod_int64/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_INT64_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_INT64_T) :: swig_result +type(SUNLinearSolver), target, intent(inout) :: s +integer(C_INT64_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/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_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_int64/fsunlinsol_spgmr_mod.c b/src/sunlinsol/spgmr/fmod_int64/fsunlinsol_spgmr_mod.c new file mode 100644 index 0000000000..3685bc5d6b --- /dev/null +++ b/src/sunlinsol/spgmr/fmod_int64/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 int64_t _wrap_FSUNLinSolLastFlag_SPGMR(SUNLinearSolver farg1) { + int64_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_int64/fsunlinsol_spgmr_mod.f90 b/src/sunlinsol/spgmr/fmod_int64/fsunlinsol_spgmr_mod.f90 new file mode 100644 index 0000000000..370dda691e --- /dev/null +++ b/src/sunlinsol/spgmr/fmod_int64/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_INT64_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_INT64_T) :: swig_result +type(SUNLinearSolver), target, intent(inout) :: s +integer(C_INT64_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/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_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_int64/fsunlinsol_sptfqmr_mod.c b/src/sunlinsol/sptfqmr/fmod_int64/fsunlinsol_sptfqmr_mod.c new file mode 100644 index 0000000000..1c782e3080 --- /dev/null +++ b/src/sunlinsol/sptfqmr/fmod_int64/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 int64_t _wrap_FSUNLinSolLastFlag_SPTFQMR(SUNLinearSolver farg1) { + int64_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_int64/fsunlinsol_sptfqmr_mod.f90 b/src/sunlinsol/sptfqmr/fmod_int64/fsunlinsol_sptfqmr_mod.f90 new file mode 100644 index 0000000000..0c97277b7f --- /dev/null +++ b/src/sunlinsol/sptfqmr/fmod_int64/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_INT64_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_INT64_T) :: swig_result +type(SUNLinearSolver), target, intent(inout) :: s +integer(C_INT64_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/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_int32/fsunmatrix_band_mod.c b/src/sunmatrix/band/fmod_int32/fsunmatrix_band_mod.c index e5bdcc5e8e..d506997738 100644 --- a/src/sunmatrix/band/fmod_int32/fsunmatrix_band_mod.c +++ b/src/sunmatrix/band/fmod_int32/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_int32/fsunmatrix_band_mod.f90 b/src/sunmatrix/band/fmod_int32/fsunmatrix_band_mod.f90 index 87c434527b..82f10ff03b 100644 --- a/src/sunmatrix/band/fmod_int32/fsunmatrix_band_mod.f90 +++ b/src/sunmatrix/band/fmod_int32/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/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_int64/fsunmatrix_band_mod.c b/src/sunmatrix/band/fmod_int64/fsunmatrix_band_mod.c new file mode 100644 index 0000000000..0a5bac84c8 --- /dev/null +++ b/src/sunmatrix/band/fmod_int64/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(int64_t const *farg1, int64_t const *farg2, int64_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(int64_t const *farg1, int64_t const *farg2, int64_t const *farg3, int64_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 int64_t _wrap_FSUNBandMatrix_Rows(SUNMatrix farg1) { + int64_t fresult ; + SUNMatrix arg1 = (SUNMatrix) 0 ; + sunindextype result; + + arg1 = (SUNMatrix)(farg1); + result = SUNBandMatrix_Rows(arg1); + fresult = (sunindextype)(result); + return fresult; +} + + +SWIGEXPORT int64_t _wrap_FSUNBandMatrix_Columns(SUNMatrix farg1) { + int64_t fresult ; + SUNMatrix arg1 = (SUNMatrix) 0 ; + sunindextype result; + + arg1 = (SUNMatrix)(farg1); + result = SUNBandMatrix_Columns(arg1); + fresult = (sunindextype)(result); + return fresult; +} + + +SWIGEXPORT int64_t _wrap_FSUNBandMatrix_LowerBandwidth(SUNMatrix farg1) { + int64_t fresult ; + SUNMatrix arg1 = (SUNMatrix) 0 ; + sunindextype result; + + arg1 = (SUNMatrix)(farg1); + result = SUNBandMatrix_LowerBandwidth(arg1); + fresult = (sunindextype)(result); + return fresult; +} + + +SWIGEXPORT int64_t _wrap_FSUNBandMatrix_UpperBandwidth(SUNMatrix farg1) { + int64_t fresult ; + SUNMatrix arg1 = (SUNMatrix) 0 ; + sunindextype result; + + arg1 = (SUNMatrix)(farg1); + result = SUNBandMatrix_UpperBandwidth(arg1); + fresult = (sunindextype)(result); + return fresult; +} + + +SWIGEXPORT int64_t _wrap_FSUNBandMatrix_StoredUpperBandwidth(SUNMatrix farg1) { + int64_t fresult ; + SUNMatrix arg1 = (SUNMatrix) 0 ; + sunindextype result; + + arg1 = (SUNMatrix)(farg1); + result = SUNBandMatrix_StoredUpperBandwidth(arg1); + fresult = (sunindextype)(result); + return fresult; +} + + +SWIGEXPORT int64_t _wrap_FSUNBandMatrix_LDim(SUNMatrix farg1) { + int64_t fresult ; + SUNMatrix arg1 = (SUNMatrix) 0 ; + sunindextype result; + + arg1 = (SUNMatrix)(farg1); + result = SUNBandMatrix_LDim(arg1); + fresult = (sunindextype)(result); + return fresult; +} + + +SWIGEXPORT int64_t _wrap_FSUNBandMatrix_LData(SUNMatrix farg1) { + int64_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_int64/fsunmatrix_band_mod.f90 b/src/sunmatrix/band/fmod_int64/fsunmatrix_band_mod.f90 new file mode 100644 index 0000000000..f9b8189f10 --- /dev/null +++ b/src/sunmatrix/band/fmod_int64/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_INT64_T), intent(in) :: farg1 +integer(C_INT64_T), intent(in) :: farg2 +integer(C_INT64_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_INT64_T), intent(in) :: farg1 +integer(C_INT64_T), intent(in) :: farg2 +integer(C_INT64_T), intent(in) :: farg3 +integer(C_INT64_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_INT64_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_INT64_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_INT64_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_INT64_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_INT64_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_INT64_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_INT64_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_INT64_T), intent(in) :: n +integer(C_INT64_T), intent(in) :: mu +integer(C_INT64_T), intent(in) :: ml +type(C_PTR) :: sunctx +type(C_PTR) :: fresult +integer(C_INT64_T) :: farg1 +integer(C_INT64_T) :: farg2 +integer(C_INT64_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_INT64_T), intent(in) :: n +integer(C_INT64_T), intent(in) :: mu +integer(C_INT64_T), intent(in) :: ml +integer(C_INT64_T), intent(in) :: smu +type(C_PTR) :: sunctx +type(C_PTR) :: fresult +integer(C_INT64_T) :: farg1 +integer(C_INT64_T) :: farg2 +integer(C_INT64_T) :: farg3 +integer(C_INT64_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_INT64_T) :: swig_result +type(SUNMatrix), target, intent(inout) :: a +integer(C_INT64_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_INT64_T) :: swig_result +type(SUNMatrix), target, intent(inout) :: a +integer(C_INT64_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_INT64_T) :: swig_result +type(SUNMatrix), target, intent(inout) :: a +integer(C_INT64_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_INT64_T) :: swig_result +type(SUNMatrix), target, intent(inout) :: a +integer(C_INT64_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_INT64_T) :: swig_result +type(SUNMatrix), target, intent(inout) :: a +integer(C_INT64_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_INT64_T) :: swig_result +type(SUNMatrix), target, intent(inout) :: a +integer(C_INT64_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_INT64_T) :: swig_result +type(SUNMatrix), target, intent(inout) :: a +integer(C_INT64_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/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_int32/fsunmatrix_dense_mod.c b/src/sunmatrix/dense/fmod_int32/fsunmatrix_dense_mod.c index d39159cec0..7f6d3a1a4d 100644 --- a/src/sunmatrix/dense/fmod_int32/fsunmatrix_dense_mod.c +++ b/src/sunmatrix/dense/fmod_int32/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_int32/fsunmatrix_dense_mod.f90 b/src/sunmatrix/dense/fmod_int32/fsunmatrix_dense_mod.f90 index 1e06a30fab..23c12b6eba 100644 --- a/src/sunmatrix/dense/fmod_int32/fsunmatrix_dense_mod.f90 +++ b/src/sunmatrix/dense/fmod_int32/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/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_int64/fsunmatrix_dense_mod.c b/src/sunmatrix/dense/fmod_int64/fsunmatrix_dense_mod.c new file mode 100644 index 0000000000..140e8d8d61 --- /dev/null +++ b/src/sunmatrix/dense/fmod_int64/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(int64_t const *farg1, int64_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 int64_t _wrap_FSUNDenseMatrix_Rows(SUNMatrix farg1) { + int64_t fresult ; + SUNMatrix arg1 = (SUNMatrix) 0 ; + sunindextype result; + + arg1 = (SUNMatrix)(farg1); + result = SUNDenseMatrix_Rows(arg1); + fresult = (sunindextype)(result); + return fresult; +} + + +SWIGEXPORT int64_t _wrap_FSUNDenseMatrix_Columns(SUNMatrix farg1) { + int64_t fresult ; + SUNMatrix arg1 = (SUNMatrix) 0 ; + sunindextype result; + + arg1 = (SUNMatrix)(farg1); + result = SUNDenseMatrix_Columns(arg1); + fresult = (sunindextype)(result); + return fresult; +} + + +SWIGEXPORT int64_t _wrap_FSUNDenseMatrix_LData(SUNMatrix farg1) { + int64_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_int64/fsunmatrix_dense_mod.f90 b/src/sunmatrix/dense/fmod_int64/fsunmatrix_dense_mod.f90 new file mode 100644 index 0000000000..7bfb049939 --- /dev/null +++ b/src/sunmatrix/dense/fmod_int64/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_INT64_T), intent(in) :: farg1 +integer(C_INT64_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_INT64_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_INT64_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_INT64_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_INT64_T), intent(in) :: m +integer(C_INT64_T), intent(in) :: n +type(C_PTR) :: sunctx +type(C_PTR) :: fresult +integer(C_INT64_T) :: farg1 +integer(C_INT64_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_INT64_T) :: swig_result +type(SUNMatrix), target, intent(inout) :: a +integer(C_INT64_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_INT64_T) :: swig_result +type(SUNMatrix), target, intent(inout) :: a +integer(C_INT64_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_INT64_T) :: swig_result +type(SUNMatrix), target, intent(inout) :: a +integer(C_INT64_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/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_int32/fsunmatrix_sparse_mod.c b/src/sunmatrix/sparse/fmod_int32/fsunmatrix_sparse_mod.c index 657accbb8e..98b03522b7 100644 --- a/src/sunmatrix/sparse/fmod_int32/fsunmatrix_sparse_mod.c +++ b/src/sunmatrix/sparse/fmod_int32/fsunmatrix_sparse_mod.c @@ -509,7 +509,7 @@ 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; @@ -520,7 +520,7 @@ 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,7 +531,7 @@ 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; diff --git a/src/sunmatrix/sparse/fmod_int32/fsunmatrix_sparse_mod.f90 b/src/sunmatrix/sparse/fmod_int32/fsunmatrix_sparse_mod.f90 index 19a566b526..fa9ff1555a 100644 --- a/src/sunmatrix/sparse/fmod_int32/fsunmatrix_sparse_mod.f90 +++ b/src/sunmatrix/sparse/fmod_int32/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/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_int64/fsunmatrix_sparse_mod.c b/src/sunmatrix/sparse/fmod_int64/fsunmatrix_sparse_mod.c new file mode 100644 index 0000000000..eee8d9d198 --- /dev/null +++ b/src/sunmatrix/sparse/fmod_int64/fsunmatrix_sparse_mod.c @@ -0,0 +1,541 @@ +/* ---------------------------------------------------------------------------- + * 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(int64_t const *farg1, int64_t const *farg2, int64_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, int64_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 int64_t _wrap_FSUNSparseMatrix_Rows(SUNMatrix farg1) { + int64_t fresult ; + SUNMatrix arg1 = (SUNMatrix) 0 ; + sunindextype result; + + arg1 = (SUNMatrix)(farg1); + result = SUNSparseMatrix_Rows(arg1); + fresult = (sunindextype)(result); + return fresult; +} + + +SWIGEXPORT int64_t _wrap_FSUNSparseMatrix_Columns(SUNMatrix farg1) { + int64_t fresult ; + SUNMatrix arg1 = (SUNMatrix) 0 ; + sunindextype result; + + arg1 = (SUNMatrix)(farg1); + result = SUNSparseMatrix_Columns(arg1); + fresult = (sunindextype)(result); + return fresult; +} + + +SWIGEXPORT int64_t _wrap_FSUNSparseMatrix_NNZ(SUNMatrix farg1) { + int64_t fresult ; + SUNMatrix arg1 = (SUNMatrix) 0 ; + sunindextype result; + + arg1 = (SUNMatrix)(farg1); + result = SUNSparseMatrix_NNZ(arg1); + fresult = (sunindextype)(result); + return fresult; +} + + +SWIGEXPORT int64_t _wrap_FSUNSparseMatrix_NP(SUNMatrix farg1) { + int64_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; +} + +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; +} + + diff --git a/src/sunmatrix/sparse/fmod_int64/fsunmatrix_sparse_mod.f90 b/src/sunmatrix/sparse/fmod_int64/fsunmatrix_sparse_mod.f90 new file mode 100644 index 0000000000..eedd562db3 --- /dev/null +++ b/src/sunmatrix/sparse/fmod_int64/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_INT64_T), intent(in) :: farg1 +integer(C_INT64_T), intent(in) :: farg2 +integer(C_INT64_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_INT64_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_INT64_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_INT64_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_INT64_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_INT64_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_INT64_T), intent(in) :: m +integer(C_INT64_T), intent(in) :: n +integer(C_INT64_T), intent(in) :: nnz +integer(C_INT), intent(in) :: sparsetype +type(C_PTR) :: sunctx +type(C_PTR) :: fresult +integer(C_INT64_T) :: farg1 +integer(C_INT64_T) :: farg2 +integer(C_INT64_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_INT64_T), intent(in) :: nnz +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT64_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_INT64_T) :: swig_result +type(SUNMatrix), target, intent(inout) :: a +integer(C_INT64_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_INT64_T) :: swig_result +type(SUNMatrix), target, intent(inout) :: a +integer(C_INT64_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_INT64_T) :: swig_result +type(SUNMatrix), target, intent(inout) :: a +integer(C_INT64_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_INT64_T) :: swig_result +type(SUNMatrix), target, intent(inout) :: a +integer(C_INT64_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/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_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_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 ccfe4f7552..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,19 +29,27 @@ SUNADAPTCONTROLLER=imexgus soderlind INCLUDES=-I../include -.PHONY: generic arkode cvode cvodes ida idas kinsol nvector sunmatrix sunlinsol sunnonlinsol sunadaptcontroller +.PHONY: .SETINT64 .SETINT32 all all32 all64 modules core arkode cvode cvodes ida idas kinsol nvector mpimanyvector sunmatrix sunlinsol sunnonlinsol sunadaptcontroller clean -all: all_64 all_32 - -all_64: .SETINT64 generic arkode cvode cvodes ida idas kinsol nvector sunmatrix sunlinsol sunnonlinsol sunadaptcontroller +.SETINT32: + $(eval INT_SIZE=32) .SETINT64: $(eval INT_SIZE=64) -all_32: .SETINT32 generic arkode cvode cvodes ida idas kinsol nvector sunmatrix sunlinsol sunnonlinsol sunadaptcontroller +all: all32 all64 -.SETINT32: - $(eval INT_SIZE=32) +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 \ @@ -79,12 +87,6 @@ kinsol: $(KINSOL:%:kinsol/%.i) 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 -generic: $(GENERIC:%:sundials/%.i) - @for i in ${GENERIC} ; 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 - nvector: $(NVECTOR:%:nvector/fnvector_%_mod.i) mpimanyvector @for i in ${NVECTOR} ; do \ set -x; \ @@ -93,7 +95,7 @@ nvector: $(NVECTOR:%:nvector/fnvector_%_mod.i) mpimanyvector mpimanyvector: 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; \ + 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 \ @@ -120,4 +122,4 @@ sunadaptcontroller: $(SUNADAPTCONTROLLER:%:sunadaptcontroller/fsunadaptcontrolle done clean: - rm ../src/**/fmod_int${INT_SIZE}/*.c; rm ../src/**/fmod_int${INT_SIZE}/*.f90 + 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_types.i b/swig/sundials/fsundials_types.i index c53a44db52..248ec9d5e7 100644 --- a/swig/sundials/fsundials_types.i +++ b/swig/sundials/fsundials_types.i @@ -79,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..fc616ca557 100644 --- a/swig/sunmatrix/fsunmatrix_sparse_mod.i +++ b/swig/sunmatrix/fsunmatrix_sparse_mod.i @@ -40,7 +40,7 @@ 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; @@ -51,7 +51,7 @@ 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,7 +62,7 @@ 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; @@ -109,8 +109,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 +120,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 +137,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 %} From febfd6c38547b6aee1249c691f85dce9504f6040 Mon Sep 17 00:00:00 2001 From: "Balos, Cody, J" Date: Tue, 26 Mar 2024 15:56:34 -0700 Subject: [PATCH 13/70] test fortran with both sunindextype sizes --- test/env/default.sh | 2 +- test/env/docker.sh | 2 +- test/env/lassen.sh | 2 +- test/env/quartz.sh | 2 +- test/env/summit.sh | 139 -------------------------------------------- 5 files changed, 4 insertions(+), 143 deletions(-) delete mode 100644 test/env/summit.sh diff --git a/test/env/default.sh b/test/env/default.sh index fb6ed34802..d1a928f5a8 100644 --- a/test/env/default.sh +++ b/test/env/default.sh @@ -190,7 +190,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 2ab9b50410..a6b0f31a84 100644 --- a/test/env/docker.sh +++ b/test/env/docker.sh @@ -138,7 +138,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 From ed97953359ff8499a7a6077ebba3334fd3374fb6 Mon Sep 17 00:00:00 2001 From: "Balos, Cody, J" Date: Fri, 29 Mar 2024 15:17:16 -0700 Subject: [PATCH 14/70] update examples --- cmake/SundialsExampleOptions.cmake | 11 +--- examples/arkode/F2003_custom/CMakeLists.txt | 26 +++++---- examples/arkode/F2003_parallel/CMakeLists.txt | 17 +++--- examples/arkode/F2003_serial/CMakeLists.txt | 55 +++++++++--------- .../F2003_serial/ark_analytic_f2003.f90 | 12 +++- examples/cvode/CMakeLists.txt | 4 +- examples/cvode/F2003_parallel/CMakeLists.txt | 2 +- examples/cvode/F2003_serial/CMakeLists.txt | 29 +++++----- .../F2003_serial/cv_advdiff_bnd_f2003.f90 | 22 ++++++-- examples/cvodes/F2003_serial/CMakeLists.txt | 14 +++-- .../F2003_serial/cvs_analytic_fp_f2003.f90 | 13 ++++- examples/ida/F2003_openmp/CMakeLists.txt | 12 ++-- examples/ida/F2003_parallel/CMakeLists.txt | 3 +- examples/ida/F2003_serial/CMakeLists.txt | 8 ++- .../ida/F2003_serial/idaRoberts_dns_f2003.f90 | 14 ++++- examples/idas/F2003_serial/CMakeLists.txt | 10 +++- .../idasAkzoNob_ASAi_dns_f2003.f90 | 15 ++++- examples/kinsol/CMakeLists.txt | 4 +- examples/kinsol/F2003_parallel/CMakeLists.txt | 2 +- examples/kinsol/F2003_serial/CMakeLists.txt | 16 +++--- .../F2003_serial/kinDiagon_kry_f2003.f90 | 12 +++- .../test_fnvector_manyvector_mod.f90 | 45 +++++++++------ .../serial/test_fnvector_serial_mod.f90 | 31 ++++++---- examples/nvector/test_nvector.f90 | 25 +++++---- .../band/test_fsunlinsol_band_mod.f90 | 40 +++++++------ .../dense/test_fsunlinsol_dense_mod.f90 | 30 ++++++---- .../sunlinsol/klu/test_fsunlinsol_klu_mod.f90 | 2 +- .../test_fsunlinsol_lapackdense_mod.f90 | 10 +++- .../serial/test_fsunlinsol_pcg_mod_serial.f90 | 12 +++- .../test_fsunlinsol_spbcgs_mod_serial.f90 | 12 +++- .../test_fsunlinsol_spfgmr_mod_serial.f90 | 16 +++--- .../test_fsunlinsol_spgmr_mod_serial.f90 | 34 +++++------ .../test_fsunlinsol_sptfqmr_mod_serial.f90 | 12 +++- .../band/test_fsunmatrix_band_mod.f90 | 22 +++++--- .../dense/test_fsunmatrix_dense_mod.f90 | 16 +++++- .../sparse/test_fsunmatrix_sparse_mod.f90 | 56 ++++++++++++------- .../test_fsunnonlinsol_fixedpoint_mod.f90 | 8 ++- .../newton/test_fsunnonlinsol_newton_mod.f90 | 11 ++-- 38 files changed, 437 insertions(+), 246 deletions(-) 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/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..11965154c8 100644 --- a/examples/arkode/F2003_parallel/CMakeLists.txt +++ b/examples/arkode/F2003_parallel/CMakeLists.txt @@ -17,13 +17,16 @@ # 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") + +if(SUNDIALS_INDEX_SIZE MATCHES "64") + 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") +endif() # Set-up linker flags and link libraries set(SUNDIALS_LIBS sundials_arkode 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 877d76062b..37853af2e1 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 :: sunindextype = selected_int_kind(8) +#elif defined(SUNDIALS_INT64_T) + integer, parameter :: sunindextype = selected_int_kind(16) +#endif + ! number of equations - integer(c_long), parameter :: neq = 1 + integer(kind=sunindextype), parameter :: neq = 1 ! ODE parameters real(c_double), parameter :: lamda = -100.0d0 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_serial/CMakeLists.txt b/examples/cvode/F2003_serial/CMakeLists.txt index 555ce99c6a..06610d8f4a 100644 --- a/examples/cvode/F2003_serial/CMakeLists.txt +++ b/examples/cvode/F2003_serial/CMakeLists.txt @@ -21,33 +21,33 @@ # 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 + 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" + ) + 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 +62,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..7bf700753b 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 :: sunindextype = selected_int_kind(8) +#elif defined(SUNDIALS_INT64_T) + integer, parameter :: sunindextype = 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=sunindextype), parameter :: mx = 10, my = 5 + integer(kind=sunindextype), parameter :: mxmy = mx*my + integer(kind=sunindextype), 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=sunindextype) :: i, j ! index variables + integer(kind=sunindextype) :: mu, ml ! band preconditioner constants real(c_double) :: x, y ! initialization index variables real(c_double) :: unorm ! solution output variable @@ -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..bdbed1f1a0 100644 --- a/examples/cvodes/F2003_serial/CMakeLists.txt +++ b/examples/cvodes/F2003_serial/CMakeLists.txt @@ -16,13 +16,15 @@ # 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" - ) + "cvs_analytic_fp_f2003\;\;develop") + +if(SUNDIALS_INDEX_SIZE MATCHES "64") + list(APPEND FCVODES_examples + "cvsAdvDiff_FSA_non_f2003\;-sensi stg t\;develop" + "cvsAdvDiff_FSA_non_f2003\;-sensi sim t\;develop" + ) +endif() # Specify libraries to link against set(CVODES_LIB sundials_fcvodes_mod) diff --git a/examples/cvodes/F2003_serial/cvs_analytic_fp_f2003.f90 b/examples/cvodes/F2003_serial/cvs_analytic_fp_f2003.f90 index 705d111a5b..b2c9fb3dd7 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 :: sunindextype = selected_int_kind(8) +#elif defined(SUNDIALS_INT64_T) + integer, parameter :: sunindextype = selected_int_kind(16) +#endif + ! number of equations - integer(c_long), parameter :: neq = 1 + integer(kind=sunindextype), 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_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..8b1214c328 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 :: sunindextype = selected_int_kind(8) +#elif defined(SUNDIALS_INT64_T) + integer, parameter :: sunindextype = selected_int_kind(16) +#endif + + integer(kind=sunindextype), parameter :: neq = 3 + integer(kind=sunindextype), 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..95f0dfaa80 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 :: sunindextype = selected_int_kind(8) +#elif defined(SUNDIALS_INT64_T) + integer, parameter :: sunindextype = selected_int_kind(16) +#endif + ! problem parameters - integer(c_long), parameter :: NEQ = 6 + integer(kind=sunindextype), 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_sunindextype, 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_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..3392e3ec0b 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 :: sunindextype = selected_int_kind(8) +#elif defined(SUNDIALS_INT64_T) + integer, parameter :: sunindextype = selected_int_kind(16) +#endif + + integer(kind=sunindextype), parameter :: neq = 128 integer(c_int) :: ierr, retval integer(c_long) :: i diff --git a/examples/nvector/manyvector/test_fnvector_manyvector_mod.f90 b/examples/nvector/manyvector/test_fnvector_manyvector_mod.f90 index d87b6747b0..da098a9bbc 100644 --- a/examples/nvector/manyvector/test_fnvector_manyvector_mod.f90 +++ b/examples/nvector/manyvector/test_fnvector_manyvector_mod.f90 @@ -23,19 +23,25 @@ module test_nvector_manyvector use test_utilities 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 +#if defined(SUNDIALS_INT32_T) + integer, parameter :: sunindextype = selected_int_kind(8) +#elif defined(SUNDIALS_INT64_T) + integer, parameter :: sunindextype = selected_int_kind(16) +#endif + + integer(kind=sunindextype), parameter :: nsubvecs = 2 + integer(kind=sunindextype), parameter :: N1 = 100 ! individual vector length + integer(kind=sunindextype), parameter :: N2 = 200 ! individual vector length + integer(c_int), parameter :: nv = 3 ! length of vector arrays + integer(kind=sunindextype), parameter :: N = N1 + N2 ! overall manyvector length contains integer function smoke_tests() result(ret) implicit none + integer(kind=sunindextype) :: ival ! integer work value 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 @@ -51,7 +57,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(nsubvecs, subvecs, sunctx) call FN_VConst(ONE, x) y => FN_VClone_ManyVector(x) call FN_VConst(ONE, y) @@ -140,7 +146,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(nsubvecs, subvecs, sunctx) call FN_VConst(ONE, x) !==== tests ==== @@ -157,23 +163,28 @@ 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(:) +#if defined(SUNDIALS_INT32_T) + integer, parameter :: sunindextype = selected_int_kind(8) +#elif defined(SUNDIALS_INT64_T) + integer, parameter :: sunindextype = selected_int_kind(16) +#endif + + real(C_DOUBLE) :: ans + type(N_Vector) :: X + type(N_Vector), pointer :: X0, X1 + integer(kind=sunindextype) :: 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_sunindextype) + X1 => FN_VGetSubvector_ManyVector(X, 1_sunindextype) x0len = FN_VGetLength(X0) x1len = FN_VGetLength(X1) x0data => FN_VGetArrayPointer(X0) diff --git a/examples/nvector/serial/test_fnvector_serial_mod.f90 b/examples/nvector/serial/test_fnvector_serial_mod.f90 index eb958fb6ea..cf6ab809f0 100644 --- a/examples/nvector/serial/test_fnvector_serial_mod.f90 +++ b/examples/nvector/serial/test_fnvector_serial_mod.f90 @@ -22,8 +22,14 @@ 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 +#if defined(SUNDIALS_INT32_T) + integer, parameter :: sunindextype = selected_int_kind(8) +#elif defined(SUNDIALS_INT64_T) + integer, parameter :: sunindextype = selected_int_kind(16) +#endif + + integer(kind=sunindextype), parameter :: N = 100 ! vector length + integer(c_int), parameter :: nv = 3 ! length of vector arrays contains @@ -140,17 +146,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 test_utilities implicit none - real(C_DOUBLE) :: ans - type(N_Vector) :: X - integer(C_LONG) :: local_length, i - real(C_DOUBLE), pointer :: Xdata(:) +#if defined(SUNDIALS_INT32_T) + integer, parameter :: sunindextype = selected_int_kind(8) +#elif defined(SUNDIALS_INT64_T) + integer, parameter :: sunindextype = selected_int_kind(16) +#endif + + integer(kind=sunindextype) :: failure + real(C_DOUBLE) :: ans + type(N_Vector) :: X + integer(kind=sunindextype) :: local_length, i + real(C_DOUBLE), pointer :: Xdata(:) failure = 0 @@ -165,7 +176,6 @@ end function check_ans logical function has_data(X) result(failure) use, intrinsic :: iso_c_binding - use test_utilities implicit none @@ -176,7 +186,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..e8e8e9d0ca 100644 --- a/examples/nvector/test_nvector.f90 +++ b/examples/nvector/test_nvector.f90 @@ -23,10 +23,15 @@ module test_fnvector use, intrinsic :: iso_c_binding - use test_utilities implicit none +#if defined(SUNDIALS_INT32_T) + integer, parameter :: sunindextype = selected_int_kind(8) +#elif defined(SUNDIALS_INT64_T) + integer, parameter :: sunindextype = selected_int_kind(16) +#endif + integer(C_INT), external :: check_ans logical, external :: has_data @@ -38,7 +43,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=sunindextype) :: local_length integer(C_INT) :: myid if (.not. has_data(X)) then @@ -64,7 +69,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=sunindextype) :: local_length integer(C_INT) :: myid ! check vector data @@ -97,13 +102,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=sunindextype) :: 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..5f8102403d 100644 --- a/examples/sunlinsol/band/test_fsunlinsol_band_mod.f90 +++ b/examples/sunlinsol/band/test_fsunlinsol_band_mod.f90 @@ -20,17 +20,20 @@ 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 +#if defined(SUNDIALS_INT32_T) + integer, parameter :: sunindextype = selected_int_kind(8) +#elif defined(SUNDIALS_INT64_T) + integer, parameter :: sunindextype = selected_int_kind(16) +#endif + + integer(kind=sunindextype), parameter :: N = 10 + integer(kind=sunindextype), parameter :: mu = 2 + integer(kind=sunindextype), 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 +42,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=sunindextype) :: j, k + integer(kind=sunindextype) :: smu, kstart, kend, offset + integer(C_INT) :: tmp fails = 0 smu = 0 @@ -121,13 +124,18 @@ 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 + +#if defined(SUNDIALS_INT32_T) + integer, parameter :: sunindextype = selected_int_kind(8) +#elif defined(SUNDIALS_INT64_T) + integer, parameter :: sunindextype = selected_int_kind(16) +#endif + type(N_Vector) :: x, y real(C_DOUBLE) :: tol, maxerr - integer(C_LONG) :: i, xlen, ylen + integer(kind=sunindextype) :: 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..888f3d5ca4 100644 --- a/examples/sunlinsol/dense/test_fsunlinsol_dense_mod.f90 +++ b/examples/sunlinsol/dense/test_fsunlinsol_dense_mod.f90 @@ -20,15 +20,18 @@ module test_fsunlinsol_dense use test_utilities implicit none - integer(C_LONG), private, parameter :: N = 100 +#if defined(SUNDIALS_INT32_T) + integer, parameter :: sunindextype = selected_int_kind(8) +#elif defined(SUNDIALS_INT64_T) + integer, parameter :: sunindextype = selected_int_kind(16) +#endif + + integer(kind=sunindextype), 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 +45,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=sunindextype) :: j, k integer(C_INT) :: tmp fails = 0 @@ -120,14 +123,19 @@ 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(:) + +#if defined(SUNDIALS_INT32_T) + integer, parameter :: sunindextype = selected_int_kind(8) +#elif defined(SUNDIALS_INT64_T) + integer, parameter :: sunindextype = selected_int_kind(16) +#endif + + type(N_Vector) :: x, y + real(C_DOUBLE) :: tol, maxerr + integer(kind=sunindextype) :: 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..d60637276c 100644 --- a/examples/sunlinsol/klu/test_fsunlinsol_klu_mod.f90 +++ b/examples/sunlinsol/klu/test_fsunlinsol_klu_mod.f90 @@ -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=sunindextype) :: 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..2b98c917e0 100644 --- a/examples/sunlinsol/lapackdense/test_fsunlinsol_lapackdense_mod.f90 +++ b/examples/sunlinsol/lapackdense/test_fsunlinsol_lapackdense_mod.f90 @@ -20,7 +20,13 @@ module test_fsunlinsol_lapackdense use test_utilities implicit none - integer(C_LONG), private, parameter :: N = 100 +#if defined(SUNDIALS_INT32_T) + integer, parameter :: sunindextype = selected_int_kind(8) +#elif defined(SUNDIALS_INT64_T) + integer, parameter :: sunindextype = selected_int_kind(16) +#endif + + integer(kind=sunindextype), private, parameter :: N = 100 contains @@ -42,7 +48,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=sunindextype) :: 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..954f95bfc9 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,19 @@ module test_fsunlinsol_pcg_serial use test_utilities implicit none - integer(C_LONG), private, parameter :: N = 100 +#if defined(SUNDIALS_INT32_T) + integer, parameter :: sunindextype = selected_int_kind(8) +#elif defined(SUNDIALS_INT64_T) + integer, parameter :: sunindextype = selected_int_kind(16) +#endif + + integer(kind=sunindextype), 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=sunindextype) :: N type(N_Vector), pointer :: d, s end type @@ -55,7 +61,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=sunindextype) :: 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..65f8a507d8 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,19 @@ module test_fsunlinsol_spbcgs_serial use test_utilities implicit none - integer(C_LONG), private, parameter :: N = 100 +#if defined(SUNDIALS_INT32_T) + integer, parameter :: sunindextype = selected_int_kind(8) +#elif defined(SUNDIALS_INT64_T) + integer, parameter :: sunindextype = selected_int_kind(16) +#endif + + integer(kind=sunindextype), 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=sunindextype) :: N type(N_Vector), pointer :: d, s1, s2 end type @@ -54,7 +60,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=sunindextype) :: 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..b431c5130e 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,23 @@ module test_fsunlinsol_spfgmr_serial use, intrinsic :: iso_c_binding - use test_utilities implicit none - integer(C_LONG), private, parameter :: N = 100 +#if defined(SUNDIALS_INT32_T) + integer, parameter :: sunindextype = selected_int_kind(8) +#elif defined(SUNDIALS_INT64_T) + integer, parameter :: sunindextype = selected_int_kind(16) +#endif + + integer(kind=sunindextype), 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=sunindextype) :: N type(N_Vector), pointer :: d, s1, s2 end type @@ -40,9 +45,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 +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=sunindextype) :: 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..a48d49bdf4 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,23 @@ module test_fsunlinsol_spgmr_serial use, intrinsic :: iso_c_binding - use test_utilities implicit none - integer(C_LONG), private, parameter :: N = 100 +#if defined(SUNDIALS_INT32_T) + integer, parameter :: sunindextype = selected_int_kind(8) +#elif defined(SUNDIALS_INT64_T) + integer, parameter :: sunindextype = selected_int_kind(16) +#endif + + integer(kind=sunindextype), 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=sunindextype) :: N type(N_Vector), pointer :: d, s1, s2 end type @@ -40,9 +45,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 +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=sunindextype) :: j integer(C_INT) :: tmp ! setup @@ -257,13 +259,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=sunindextype) :: i, N call c_f_pointer(udata, probdata) @@ -285,11 +287,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=sunindextype) :: 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..16ec57e89c 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,19 @@ module test_fsunlinsol_sptfqmr_serial use test_utilities implicit none - integer(C_LONG), private, parameter :: N = 100 +#if defined(SUNDIALS_INT32_T) + integer, parameter :: sunindextype = selected_int_kind(8) +#elif defined(SUNDIALS_INT64_T) + integer, parameter :: sunindextype = selected_int_kind(16) +#endif + + integer(kind=sunindextype), 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=sunindextype) :: N type(N_Vector), pointer :: d, s1, s2 end type @@ -54,7 +60,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=sunindextype) :: 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..e5cce6439a 100644 --- a/examples/sunmatrix/band/test_fsunmatrix_band_mod.f90 +++ b/examples/sunmatrix/band/test_fsunmatrix_band_mod.f90 @@ -20,9 +20,15 @@ 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 +#if defined(SUNDIALS_INT32_T) + integer, parameter :: sunindextype = selected_int_kind(8) +#elif defined(SUNDIALS_INT64_T) + integer, parameter :: sunindextype = selected_int_kind(16) +#endif + + integer(kind=sunindextype), parameter :: N = 10 + integer(kind=sunindextype), parameter :: mu = 2 + integer(kind=sunindextype), parameter :: ml = 2 contains @@ -105,15 +111,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=sunindextype) :: 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_sunindextype, 0_sunindextype, sunctx) x => FN_VNew_Serial(N, sunctx) y => FN_VNew_Serial(N, sunctx) diff --git a/examples/sunmatrix/dense/test_fsunmatrix_dense_mod.f90 b/examples/sunmatrix/dense/test_fsunmatrix_dense_mod.f90 index 35ecd897e7..3125ab75d9 100644 --- a/examples/sunmatrix/dense/test_fsunmatrix_dense_mod.f90 +++ b/examples/sunmatrix/dense/test_fsunmatrix_dense_mod.f90 @@ -20,7 +20,13 @@ module test_fsunmatrix_dense use test_utilities implicit none - integer(C_LONG), parameter :: N = 4 +#if defined(SUNDIALS_INT32_T) + integer, parameter :: sunindextype = selected_int_kind(8) +#elif defined(SUNDIALS_INT64_T) + integer, parameter :: sunindextype = selected_int_kind(16) +#endif + + integer(kind=sunindextype), parameter :: N = 4 contains @@ -190,10 +196,16 @@ integer(C_INT) function check_matrix(A, B, tol) result(fails) implicit none +#if defined(SUNDIALS_INT32_T) + integer, parameter :: sunindextype = selected_int_kind(8) +#elif defined(SUNDIALS_INT64_T) + integer, parameter :: sunindextype = selected_int_kind(16) +#endif + type(SUNMatrix) :: A, B real(C_DOUBLE) :: tol real(C_DOUBLE), pointer :: Adata(:), Bdata(:) - integer(C_LONG) :: Aldata, Bldata, i + integer(kind=sunindextype) :: 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..b07049eb37 100644 --- a/examples/sunmatrix/sparse/test_fsunmatrix_sparse_mod.f90 +++ b/examples/sunmatrix/sparse/test_fsunmatrix_sparse_mod.f90 @@ -20,7 +20,13 @@ module test_fsunmatrix_sparse use test_utilities implicit none - integer(C_LONG), parameter :: N = 5 +#if defined(SUNDIALS_INT32_T) + integer, parameter :: sunindextype = selected_int_kind(8) +#elif defined(SUNDIALS_INT64_T) + integer, parameter :: sunindextype = selected_int_kind(16) +#endif + + integer(kind=sunindextype), parameter :: N = 5 contains @@ -37,14 +43,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=sunindextype), 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=sunindextype) :: tmp1 + integer(C_INT) :: tmp2 fails = 0 @@ -206,12 +212,18 @@ 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 +#if defined(SUNDIALS_INT32_T) + integer, parameter :: sunindextype = selected_int_kind(8) +#elif defined(SUNDIALS_INT64_T) + integer, parameter :: sunindextype = selected_int_kind(16) +#endif + + type(SUNMatrix) :: A, B + real(C_DOUBLE) :: tol + real(C_DOUBLE), pointer :: Adata(:), Bdata(:) + integer(kind=sunindextype), pointer :: Aidxvals(:), Bidxvals(:) + integer(kind=sunindextype), pointer :: Aidxptrs(:), Bidxptrs(:) + integer(kind=sunindextype) :: i, np, Annz, Bnnz fails = 0 @@ -292,11 +304,17 @@ 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 +#if defined(SUNDIALS_INT32_T) + integer, parameter :: sunindextype = selected_int_kind(8) +#elif defined(SUNDIALS_INT64_T) + integer, parameter :: sunindextype = selected_int_kind(16) +#endif + + type(SUNMatrix) :: A + real(C_DOUBLE) :: c, tol + real(C_DOUBLE), pointer :: Adata(:) + integer(kind=sunindextype), pointer :: Aidxptrs(:) + integer(kind=sunindextype) :: 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..360ba78680 100644 --- a/examples/sunnonlinsol/fixedpoint/test_fsunnonlinsol_fixedpoint_mod.f90 +++ b/examples/sunnonlinsol/fixedpoint/test_fsunnonlinsol_fixedpoint_mod.f90 @@ -21,7 +21,13 @@ module test_fsunnonlinsol_fixedpoint implicit none - integer(C_LONG), parameter :: NEQ = 3 ! number of equations +#if defined(SUNDIALS_INT32_T) + integer, parameter :: sunindextype = selected_int_kind(8) +#elif defined(SUNDIALS_INT64_T) + integer, parameter :: sunindextype = selected_int_kind(16) +#endif + + integer(kind=sunindextype), 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..95d34b7c2d 100644 --- a/examples/sunnonlinsol/newton/test_fsunnonlinsol_newton_mod.f90 +++ b/examples/sunnonlinsol/newton/test_fsunnonlinsol_newton_mod.f90 @@ -17,14 +17,17 @@ module test_fsunnonlinsol_newton use, intrinsic :: iso_c_binding - - - use test_utilities implicit none - integer(C_LONG), parameter :: NEQ = 3 ! number of equations +#if defined(SUNDIALS_INT32_T) + integer, parameter :: sunindextype = selected_int_kind(8) +#elif defined(SUNDIALS_INT64_T) + integer, parameter :: sunindextype = selected_int_kind(16) +#endif + + integer(kind=sunindextype), 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 From 6f55e27c30521aca4baa03400e3a93658140d77f Mon Sep 17 00:00:00 2001 From: "Balos, Cody, J" Date: Fri, 29 Mar 2024 15:19:46 -0700 Subject: [PATCH 15/70] revert headers of space functions --- include/arkode/arkode_butcher.h | 4 ++-- include/arkode/arkode_mristep.h | 2 +- include/arkode/arkode_sprk.h | 4 ++-- include/nvector/nvector_cuda.h | 4 ++-- include/nvector/nvector_hip.h | 4 ++-- include/nvector/nvector_manyvector.h | 2 +- include/nvector/nvector_mpimanyvector.h | 2 +- include/nvector/nvector_openmp.h | 2 +- include/nvector/nvector_openmpdev.h | 4 ++-- include/nvector/nvector_parallel.h | 2 +- include/nvector/nvector_parhyp.h | 4 ++-- include/nvector/nvector_petsc.h | 4 ++-- include/nvector/nvector_pthreads.h | 2 +- include/nvector/nvector_raja.h | 4 ++-- include/nvector/nvector_serial.h | 2 +- include/nvector/nvector_sycl.h | 4 ++-- include/nvector/nvector_trilinos.h | 4 ++-- include/sundials/sundials_nvector.h | 4 ++-- 18 files changed, 29 insertions(+), 29 deletions(-) diff --git a/include/arkode/arkode_butcher.h b/include/arkode/arkode_butcher.h index 863d828ace..029b3d1c8d 100644 --- a/include/arkode/arkode_butcher.h +++ b/include/arkode/arkode_butcher.h @@ -50,8 +50,8 @@ SUNDIALS_EXPORT ARKodeButcherTable ARKodeButcherTable_Create(int s, int q, int p sunrealtype* d); SUNDIALS_EXPORT ARKodeButcherTable ARKodeButcherTable_Copy(ARKodeButcherTable B); SUNDIALS_EXPORT void ARKodeButcherTable_Space(ARKodeButcherTable B, - long int* liw, - long int* lrw); + sunindextype* liw, + sunindextype* lrw); SUNDIALS_EXPORT void ARKodeButcherTable_Free(ARKodeButcherTable B); SUNDIALS_EXPORT void ARKodeButcherTable_Write(ARKodeButcherTable B, FILE* outfile); diff --git a/include/arkode/arkode_mristep.h b/include/arkode/arkode_mristep.h index 78fd6185c2..d4451e64c2 100644 --- a/include/arkode/arkode_mristep.h +++ b/include/arkode/arkode_mristep.h @@ -113,7 +113,7 @@ SUNDIALS_EXPORT MRIStepCoupling MRIStepCoupling_MIStoMRI(ARKodeButcherTable B, int q, int p); SUNDIALS_EXPORT MRIStepCoupling MRIStepCoupling_Copy(MRIStepCoupling MRIC); SUNDIALS_EXPORT void MRIStepCoupling_Space(MRIStepCoupling MRIC, - long int* liw, long int* lrw); + sunindextype* liw, sunindextype* lrw); SUNDIALS_EXPORT void MRIStepCoupling_Free(MRIStepCoupling MRIC); SUNDIALS_EXPORT void MRIStepCoupling_Write(MRIStepCoupling MRIC, FILE* outfile); diff --git a/include/arkode/arkode_sprk.h b/include/arkode/arkode_sprk.h index 7f5f148de6..1c6263e828 100644 --- a/include/arkode/arkode_sprk.h +++ b/include/arkode/arkode_sprk.h @@ -78,8 +78,8 @@ SUNDIALS_EXPORT void ARKodeSPRKTable_Write(ARKodeSPRKTable sprk_table, FILE* outfile); SUNDIALS_EXPORT -void ARKodeSPRKTable_Space(ARKodeSPRKTable sprk_storage, long int* liw, - long int* lrw); +void ARKodeSPRKTable_Space(ARKodeSPRKTable sprk_storage, sunindextype* liw, + sunindextype* lrw); SUNDIALS_EXPORT void ARKodeSPRKTable_Free(ARKodeSPRKTable sprk_storage); diff --git a/include/nvector/nvector_cuda.h b/include/nvector/nvector_cuda.h index 15b21fdad0..0c5bc079f3 100644 --- a/include/nvector/nvector_cuda.h +++ b/include/nvector/nvector_cuda.h @@ -114,8 +114,8 @@ static inline N_Vector_ID N_VGetVectorID_Cuda(N_Vector /*v*/) SUNDIALS_EXPORT N_Vector N_VCloneEmpty_Cuda(N_Vector w); SUNDIALS_EXPORT N_Vector N_VClone_Cuda(N_Vector w); SUNDIALS_EXPORT void N_VDestroy_Cuda(N_Vector v); -SUNDIALS_EXPORT void N_VSpace_Cuda(N_Vector v, long int* lrw, - long int* liw); +SUNDIALS_EXPORT void N_VSpace_Cuda(N_Vector v, sunindextype* lrw, + sunindextype* liw); /* standard vector operations */ SUNDIALS_EXPORT void N_VLinearSum_Cuda(sunrealtype a, N_Vector x, sunrealtype b, diff --git a/include/nvector/nvector_hip.h b/include/nvector/nvector_hip.h index 5b2f3ede52..caed088adb 100644 --- a/include/nvector/nvector_hip.h +++ b/include/nvector/nvector_hip.h @@ -113,8 +113,8 @@ static inline N_Vector_ID N_VGetVectorID_Hip(N_Vector /*v*/) SUNDIALS_EXPORT N_Vector N_VCloneEmpty_Hip(N_Vector w); SUNDIALS_EXPORT N_Vector N_VClone_Hip(N_Vector w); SUNDIALS_EXPORT void N_VDestroy_Hip(N_Vector v); -SUNDIALS_EXPORT void N_VSpace_Hip(N_Vector v, long int* lrw, - long int* liw); +SUNDIALS_EXPORT void N_VSpace_Hip(N_Vector v, sunindextype* lrw, + sunindextype* liw); /* standard vector operations */ SUNDIALS_EXPORT void N_VLinearSum_Hip(sunrealtype a, N_Vector x, sunrealtype b, diff --git a/include/nvector/nvector_manyvector.h b/include/nvector/nvector_manyvector.h index a6e47c237b..ae0eac152e 100644 --- a/include/nvector/nvector_manyvector.h +++ b/include/nvector/nvector_manyvector.h @@ -101,7 +101,7 @@ SUNDIALS_EXPORT void N_VDestroy_ManyVector(N_Vector v); SUNDIALS_EXPORT -void N_VSpace_ManyVector(N_Vector v, long int* lrw, long int* liw); +void N_VSpace_ManyVector(N_Vector v, sunindextype* lrw, sunindextype* liw); SUNDIALS_EXPORT sunindextype N_VGetLength_ManyVector(N_Vector v); diff --git a/include/nvector/nvector_mpimanyvector.h b/include/nvector/nvector_mpimanyvector.h index 3a9950f91d..f25125a0e3 100644 --- a/include/nvector/nvector_mpimanyvector.h +++ b/include/nvector/nvector_mpimanyvector.h @@ -108,7 +108,7 @@ SUNDIALS_EXPORT void N_VDestroy_MPIManyVector(N_Vector v); SUNDIALS_EXPORT -void N_VSpace_MPIManyVector(N_Vector v, long int* lrw, long int* liw); +void N_VSpace_MPIManyVector(N_Vector v, sunindextype* lrw, sunindextype* liw); SUNDIALS_EXPORT MPI_Comm N_VGetCommunicator_MPIManyVector(N_Vector v); diff --git a/include/nvector/nvector_openmp.h b/include/nvector/nvector_openmp.h index 3dac216812..f52e2274ae 100644 --- a/include/nvector/nvector_openmp.h +++ b/include/nvector/nvector_openmp.h @@ -124,7 +124,7 @@ SUNDIALS_EXPORT void N_VDestroy_OpenMP(N_Vector v); SUNDIALS_EXPORT -void N_VSpace_OpenMP(N_Vector v, long int* lrw, long int* liw); +void N_VSpace_OpenMP(N_Vector v, sunindextype* lrw, sunindextype* liw); SUNDIALS_EXPORT sunrealtype* N_VGetArrayPointer_OpenMP(N_Vector v); diff --git a/include/nvector/nvector_openmpdev.h b/include/nvector/nvector_openmpdev.h index 33c4ad9de8..b7b4ae31fb 100644 --- a/include/nvector/nvector_openmpdev.h +++ b/include/nvector/nvector_openmpdev.h @@ -117,8 +117,8 @@ SUNDIALS_EXPORT N_Vector_ID N_VGetVectorID_OpenMPDEV(N_Vector v); SUNDIALS_EXPORT N_Vector N_VCloneEmpty_OpenMPDEV(N_Vector w); SUNDIALS_EXPORT N_Vector N_VClone_OpenMPDEV(N_Vector w); SUNDIALS_EXPORT void N_VDestroy_OpenMPDEV(N_Vector v); -SUNDIALS_EXPORT void N_VSpace_OpenMPDEV(N_Vector v, long int* lrw, - long int* liw); +SUNDIALS_EXPORT void N_VSpace_OpenMPDEV(N_Vector v, sunindextype* lrw, + sunindextype* liw); /* standard vector operations */ SUNDIALS_EXPORT void N_VLinearSum_OpenMPDEV(sunrealtype a, N_Vector x, diff --git a/include/nvector/nvector_parallel.h b/include/nvector/nvector_parallel.h index b16692bfc5..e05e4c7ef8 100644 --- a/include/nvector/nvector_parallel.h +++ b/include/nvector/nvector_parallel.h @@ -132,7 +132,7 @@ SUNDIALS_EXPORT void N_VDestroy_Parallel(N_Vector v); SUNDIALS_EXPORT -void N_VSpace_Parallel(N_Vector v, long int* lrw, long int* liw); +void N_VSpace_Parallel(N_Vector v, sunindextype* lrw, sunindextype* liw); SUNDIALS_EXPORT sunrealtype* N_VGetArrayPointer_Parallel(N_Vector v); diff --git a/include/nvector/nvector_parhyp.h b/include/nvector/nvector_parhyp.h index 87bb95f614..a7c7ced8a1 100644 --- a/include/nvector/nvector_parhyp.h +++ b/include/nvector/nvector_parhyp.h @@ -94,8 +94,8 @@ SUNDIALS_EXPORT N_Vector_ID N_VGetVectorID_ParHyp(N_Vector v); SUNDIALS_EXPORT N_Vector N_VCloneEmpty_ParHyp(N_Vector w); SUNDIALS_EXPORT N_Vector N_VClone_ParHyp(N_Vector w); SUNDIALS_EXPORT void N_VDestroy_ParHyp(N_Vector v); -SUNDIALS_EXPORT void N_VSpace_ParHyp(N_Vector v, long int* lrw, - long int* liw); +SUNDIALS_EXPORT void N_VSpace_ParHyp(N_Vector v, sunindextype* lrw, + sunindextype* liw); SUNDIALS_EXPORT sunrealtype* N_VGetArrayPointer_ParHyp(N_Vector v); SUNDIALS_EXPORT void N_VSetArrayPointer_ParHyp(sunrealtype* v_data, N_Vector v); SUNDIALS_EXPORT MPI_Comm N_VGetCommunicator_ParHyp(N_Vector v); diff --git a/include/nvector/nvector_petsc.h b/include/nvector/nvector_petsc.h index b44ef3d99b..1fa3b536b2 100644 --- a/include/nvector/nvector_petsc.h +++ b/include/nvector/nvector_petsc.h @@ -91,8 +91,8 @@ SUNDIALS_EXPORT N_Vector_ID N_VGetVectorID_Petsc(N_Vector v); SUNDIALS_EXPORT N_Vector N_VCloneEmpty_Petsc(N_Vector w); SUNDIALS_EXPORT N_Vector N_VClone_Petsc(N_Vector w); SUNDIALS_EXPORT void N_VDestroy_Petsc(N_Vector v); -SUNDIALS_EXPORT void N_VSpace_Petsc(N_Vector v, long int* lrw, - long int* liw); +SUNDIALS_EXPORT void N_VSpace_Petsc(N_Vector v, sunindextype* lrw, + sunindextype* liw); SUNDIALS_EXPORT void N_VSetArrayPointer_Petsc(sunrealtype* v_data, N_Vector v); SUNDIALS_EXPORT MPI_Comm N_VGetCommunicator_Petsc(N_Vector v); SUNDIALS_EXPORT sunindextype N_VGetLength_Petsc(N_Vector v); diff --git a/include/nvector/nvector_pthreads.h b/include/nvector/nvector_pthreads.h index d6af8024c5..97ae23008f 100644 --- a/include/nvector/nvector_pthreads.h +++ b/include/nvector/nvector_pthreads.h @@ -160,7 +160,7 @@ SUNDIALS_EXPORT void N_VDestroy_Pthreads(N_Vector v); SUNDIALS_EXPORT -void N_VSpace_Pthreads(N_Vector v, long int* lrw, long int* liw); +void N_VSpace_Pthreads(N_Vector v, sunindextype* lrw, sunindextype* liw); SUNDIALS_EXPORT sunrealtype* N_VGetArrayPointer_Pthreads(N_Vector v); diff --git a/include/nvector/nvector_raja.h b/include/nvector/nvector_raja.h index c4d86a7b0f..1bcb2a5cc2 100644 --- a/include/nvector/nvector_raja.h +++ b/include/nvector/nvector_raja.h @@ -111,8 +111,8 @@ static inline N_Vector_ID N_VGetVectorID_Raja(N_Vector v) SUNDIALS_EXPORT N_Vector N_VCloneEmpty_Raja(N_Vector w); SUNDIALS_EXPORT N_Vector N_VClone_Raja(N_Vector w); SUNDIALS_EXPORT void N_VDestroy_Raja(N_Vector v); -SUNDIALS_EXPORT void N_VSpace_Raja(N_Vector v, long int* lrw, - long int* liw); +SUNDIALS_EXPORT void N_VSpace_Raja(N_Vector v, sunindextype* lrw, + sunindextype* liw); SUNDIALS_EXPORT void N_VSetArrayPointer_Raja(sunrealtype* v_data, N_Vector v); /* standard vector operations */ diff --git a/include/nvector/nvector_serial.h b/include/nvector/nvector_serial.h index 3003cb62fe..bcbc995f2e 100644 --- a/include/nvector/nvector_serial.h +++ b/include/nvector/nvector_serial.h @@ -117,7 +117,7 @@ SUNDIALS_EXPORT void N_VDestroy_Serial(N_Vector v); SUNDIALS_EXPORT -void N_VSpace_Serial(N_Vector v, long int* lrw, long int* liw); +void N_VSpace_Serial(N_Vector v, sunindextype* lrw, sunindextype* liw); SUNDIALS_EXPORT sunrealtype* N_VGetArrayPointer_Serial(N_Vector v); diff --git a/include/nvector/nvector_sycl.h b/include/nvector/nvector_sycl.h index 0cfa236fba..82935ccca6 100644 --- a/include/nvector/nvector_sycl.h +++ b/include/nvector/nvector_sycl.h @@ -113,8 +113,8 @@ static inline N_Vector_ID N_VGetVectorID_Sycl(N_Vector v) SUNDIALS_EXPORT N_Vector N_VCloneEmpty_Sycl(N_Vector w); SUNDIALS_EXPORT N_Vector N_VClone_Sycl(N_Vector w); SUNDIALS_EXPORT void N_VDestroy_Sycl(N_Vector v); -SUNDIALS_EXPORT void N_VSpace_Sycl(N_Vector v, long int* lrw, - long int* liw); +SUNDIALS_EXPORT void N_VSpace_Sycl(N_Vector v, sunindextype* lrw, + sunindextype* liw); /* standard vector operations */ SUNDIALS_EXPORT void N_VLinearSum_Sycl(sunrealtype a, N_Vector x, sunrealtype b, diff --git a/include/nvector/nvector_trilinos.h b/include/nvector/nvector_trilinos.h index 5d6f02c14f..385cfa0d01 100644 --- a/include/nvector/nvector_trilinos.h +++ b/include/nvector/nvector_trilinos.h @@ -96,8 +96,8 @@ SUNDIALS_EXPORT N_Vector_ID N_VGetVectorID_Trilinos(N_Vector v); SUNDIALS_EXPORT N_Vector N_VCloneEmpty_Trilinos(N_Vector w); SUNDIALS_EXPORT N_Vector N_VClone_Trilinos(N_Vector w); SUNDIALS_EXPORT void N_VDestroy_Trilinos(N_Vector v); -SUNDIALS_EXPORT void N_VSpace_Trilinos(N_Vector v, long int* lrw, - long int* liw); +SUNDIALS_EXPORT void N_VSpace_Trilinos(N_Vector v, sunindextype* lrw, + sunindextype* liw); SUNDIALS_EXPORT SUNComm N_VGetCommunicator_Trilinos(N_Vector v); SUNDIALS_EXPORT sunindextype N_VGetLength_Trilinos(N_Vector v); SUNDIALS_EXPORT void N_VLinearSum_Trilinos(sunrealtype a, N_Vector x, diff --git a/include/sundials/sundials_nvector.h b/include/sundials/sundials_nvector.h index 362e7c5e76..68ea9340e7 100644 --- a/include/sundials/sundials_nvector.h +++ b/include/sundials/sundials_nvector.h @@ -108,7 +108,7 @@ struct _generic_N_Vector_Ops N_Vector (*nvclone)(N_Vector); N_Vector (*nvcloneempty)(N_Vector); void (*nvdestroy)(N_Vector); - void (*nvspace)(N_Vector, long int*, long int*); + void (*nvspace)(N_Vector, sunindextype*, sunindextype*); sunrealtype* (*nvgetarraypointer)(N_Vector); sunrealtype* (*nvgetdevicearraypointer)(N_Vector); void (*nvsetarraypointer)(sunrealtype*, N_Vector); @@ -217,7 +217,7 @@ SUNDIALS_EXPORT N_Vector_ID N_VGetVectorID(N_Vector w); SUNDIALS_EXPORT N_Vector N_VClone(N_Vector w); SUNDIALS_EXPORT N_Vector N_VCloneEmpty(N_Vector w); SUNDIALS_EXPORT void N_VDestroy(N_Vector v); -SUNDIALS_EXPORT void N_VSpace(N_Vector v, long int* lrw, long int* liw); +SUNDIALS_EXPORT void N_VSpace(N_Vector v, sunindextype* lrw, sunindextype* liw); SUNDIALS_EXPORT sunrealtype* N_VGetArrayPointer(N_Vector v); SUNDIALS_EXPORT sunrealtype* N_VGetDeviceArrayPointer(N_Vector v); SUNDIALS_EXPORT void N_VSetArrayPointer(sunrealtype* v_data, N_Vector v); From 4d518cb8fb8f8297b96662a680fb8121d5010301 Mon Sep 17 00:00:00 2001 From: "Balos, Cody, J" Date: Fri, 29 Mar 2024 15:19:53 -0700 Subject: [PATCH 16/70] regen swig --- src/arkode/fmod_int32/farkode_mod.c | 20 +++++++++---------- src/arkode/fmod_int32/farkode_mod.f90 | 8 ++++---- src/arkode/fmod_int32/farkode_mristep_mod.c | 10 +++++----- src/arkode/fmod_int32/farkode_mristep_mod.f90 | 4 ++-- src/arkode/fmod_int64/farkode_mod.c | 20 +++++++++---------- src/arkode/fmod_int64/farkode_mod.f90 | 8 ++++---- src/arkode/fmod_int64/farkode_mristep_mod.c | 10 +++++----- src/arkode/fmod_int64/farkode_mristep_mod.f90 | 4 ++-- .../fmod_int32/fnvector_manyvector_mod.c | 10 +++++----- .../fmod_int32/fnvector_manyvector_mod.f90 | 4 ++-- .../fmod_int32/fnvector_mpimanyvector_mod.c | 10 +++++----- .../fmod_int32/fnvector_mpimanyvector_mod.f90 | 4 ++-- .../openmp/fmod_int32/fnvector_openmp_mod.c | 10 +++++----- .../openmp/fmod_int32/fnvector_openmp_mod.f90 | 4 ++-- .../fmod_int32/fnvector_parallel_mod.c | 10 +++++----- .../fmod_int32/fnvector_parallel_mod.f90 | 4 ++-- .../fmod_int32/fnvector_pthreads_mod.c | 10 +++++----- .../fmod_int32/fnvector_pthreads_mod.f90 | 4 ++-- .../serial/fmod_int32/fnvector_serial_mod.c | 10 +++++----- .../serial/fmod_int32/fnvector_serial_mod.f90 | 4 ++-- src/sundials/fmod_int32/fsundials_core_mod.c | 10 +++++----- .../fmod_int32/fsundials_core_mod.f90 | 4 ++-- .../fmod_int64/fsundials_core_mod.f90 | 4 ++-- src/sundials/sundials_nvector.c | 12 +++++------ 24 files changed, 99 insertions(+), 99 deletions(-) diff --git a/src/arkode/fmod_int32/farkode_mod.c b/src/arkode/fmod_int32/farkode_mod.c index 579b2fa93e..2c925443a1 100644 --- a/src/arkode/fmod_int32/farkode_mod.c +++ b/src/arkode/fmod_int32/farkode_mod.c @@ -688,14 +688,14 @@ SWIGEXPORT void * _wrap_FARKodeButcherTable_Copy(void *farg1) { } -SWIGEXPORT void _wrap_FARKodeButcherTable_Space(void *farg1, long *farg2, long *farg3) { +SWIGEXPORT void _wrap_FARKodeButcherTable_Space(void *farg1, int32_t *farg2, int32_t *farg3) { ARKodeButcherTable arg1 = (ARKodeButcherTable) 0 ; - long *arg2 = (long *) 0 ; - long *arg3 = (long *) 0 ; + sunindextype *arg2 = (sunindextype *) 0 ; + sunindextype *arg3 = (sunindextype *) 0 ; arg1 = (ARKodeButcherTable)(farg1); - arg2 = (long *)(farg2); - arg3 = (long *)(farg3); + arg2 = (sunindextype *)(farg2); + arg3 = (sunindextype *)(farg3); ARKodeButcherTable_Space(arg1,arg2,arg3); } @@ -1019,14 +1019,14 @@ SWIGEXPORT void _wrap_FARKodeSPRKTable_Write(void *farg1, void *farg2) { } -SWIGEXPORT void _wrap_FARKodeSPRKTable_Space(void *farg1, long *farg2, long *farg3) { +SWIGEXPORT void _wrap_FARKodeSPRKTable_Space(void *farg1, int32_t *farg2, int32_t *farg3) { ARKodeSPRKTable arg1 = (ARKodeSPRKTable) 0 ; - long *arg2 = (long *) 0 ; - long *arg3 = (long *) 0 ; + sunindextype *arg2 = (sunindextype *) 0 ; + sunindextype *arg3 = (sunindextype *) 0 ; arg1 = (ARKodeSPRKTable)(farg1); - arg2 = (long *)(farg2); - arg3 = (long *)(farg3); + arg2 = (sunindextype *)(farg2); + arg3 = (sunindextype *)(farg3); ARKodeSPRKTable_Space(arg1,arg2,arg3); } diff --git a/src/arkode/fmod_int32/farkode_mod.f90 b/src/arkode/fmod_int32/farkode_mod.f90 index e91fcddb3a..ec7a023be1 100644 --- a/src/arkode/fmod_int32/farkode_mod.f90 +++ b/src/arkode/fmod_int32/farkode_mod.f90 @@ -1229,8 +1229,8 @@ function FARKodeButcherTable_Copy(b) & subroutine FARKodeButcherTable_Space(b, liw, lrw) use, intrinsic :: ISO_C_BINDING type(C_PTR) :: b -integer(C_LONG), dimension(*), target, intent(inout) :: liw -integer(C_LONG), dimension(*), target, intent(inout) :: lrw +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 @@ -1621,8 +1621,8 @@ subroutine FARKodeSPRKTable_Write(sprk_table, outfile) subroutine FARKodeSPRKTable_Space(sprk_storage, liw, lrw) use, intrinsic :: ISO_C_BINDING type(C_PTR) :: sprk_storage -integer(C_LONG), dimension(*), target, intent(inout) :: liw -integer(C_LONG), dimension(*), target, intent(inout) :: lrw +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 diff --git a/src/arkode/fmod_int32/farkode_mristep_mod.c b/src/arkode/fmod_int32/farkode_mristep_mod.c index cac8323310..5656b91a46 100644 --- a/src/arkode/fmod_int32/farkode_mristep_mod.c +++ b/src/arkode/fmod_int32/farkode_mristep_mod.c @@ -599,14 +599,14 @@ SWIGEXPORT void * _wrap_FMRIStepCoupling_Copy(void *farg1) { } -SWIGEXPORT void _wrap_FMRIStepCoupling_Space(void *farg1, long *farg2, long *farg3) { +SWIGEXPORT void _wrap_FMRIStepCoupling_Space(void *farg1, int32_t *farg2, int32_t *farg3) { MRIStepCoupling arg1 = (MRIStepCoupling) 0 ; - long *arg2 = (long *) 0 ; - long *arg3 = (long *) 0 ; + sunindextype *arg2 = (sunindextype *) 0 ; + sunindextype *arg3 = (sunindextype *) 0 ; arg1 = (MRIStepCoupling)(farg1); - arg2 = (long *)(farg2); - arg3 = (long *)(farg3); + arg2 = (sunindextype *)(farg2); + arg3 = (sunindextype *)(farg3); MRIStepCoupling_Space(arg1,arg2,arg3); } diff --git a/src/arkode/fmod_int32/farkode_mristep_mod.f90 b/src/arkode/fmod_int32/farkode_mristep_mod.f90 index bb76bee620..9171ad7488 100644 --- a/src/arkode/fmod_int32/farkode_mristep_mod.f90 +++ b/src/arkode/fmod_int32/farkode_mristep_mod.f90 @@ -1732,8 +1732,8 @@ function FMRIStepCoupling_Copy(mric) & subroutine FMRIStepCoupling_Space(mric, liw, lrw) use, intrinsic :: ISO_C_BINDING type(C_PTR) :: mric -integer(C_LONG), dimension(*), target, intent(inout) :: liw -integer(C_LONG), dimension(*), target, intent(inout) :: lrw +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 diff --git a/src/arkode/fmod_int64/farkode_mod.c b/src/arkode/fmod_int64/farkode_mod.c index a37c50d95f..a66b1b0dcd 100644 --- a/src/arkode/fmod_int64/farkode_mod.c +++ b/src/arkode/fmod_int64/farkode_mod.c @@ -688,14 +688,14 @@ SWIGEXPORT void * _wrap_FARKodeButcherTable_Copy(void *farg1) { } -SWIGEXPORT void _wrap_FARKodeButcherTable_Space(void *farg1, long *farg2, long *farg3) { +SWIGEXPORT void _wrap_FARKodeButcherTable_Space(void *farg1, int64_t *farg2, int64_t *farg3) { ARKodeButcherTable arg1 = (ARKodeButcherTable) 0 ; - long *arg2 = (long *) 0 ; - long *arg3 = (long *) 0 ; + sunindextype *arg2 = (sunindextype *) 0 ; + sunindextype *arg3 = (sunindextype *) 0 ; arg1 = (ARKodeButcherTable)(farg1); - arg2 = (long *)(farg2); - arg3 = (long *)(farg3); + arg2 = (sunindextype *)(farg2); + arg3 = (sunindextype *)(farg3); ARKodeButcherTable_Space(arg1,arg2,arg3); } @@ -1019,14 +1019,14 @@ SWIGEXPORT void _wrap_FARKodeSPRKTable_Write(void *farg1, void *farg2) { } -SWIGEXPORT void _wrap_FARKodeSPRKTable_Space(void *farg1, long *farg2, long *farg3) { +SWIGEXPORT void _wrap_FARKodeSPRKTable_Space(void *farg1, int64_t *farg2, int64_t *farg3) { ARKodeSPRKTable arg1 = (ARKodeSPRKTable) 0 ; - long *arg2 = (long *) 0 ; - long *arg3 = (long *) 0 ; + sunindextype *arg2 = (sunindextype *) 0 ; + sunindextype *arg3 = (sunindextype *) 0 ; arg1 = (ARKodeSPRKTable)(farg1); - arg2 = (long *)(farg2); - arg3 = (long *)(farg3); + arg2 = (sunindextype *)(farg2); + arg3 = (sunindextype *)(farg3); ARKodeSPRKTable_Space(arg1,arg2,arg3); } diff --git a/src/arkode/fmod_int64/farkode_mod.f90 b/src/arkode/fmod_int64/farkode_mod.f90 index 4e62dc08f4..7724193873 100644 --- a/src/arkode/fmod_int64/farkode_mod.f90 +++ b/src/arkode/fmod_int64/farkode_mod.f90 @@ -1229,8 +1229,8 @@ function FARKodeButcherTable_Copy(b) & subroutine FARKodeButcherTable_Space(b, liw, lrw) use, intrinsic :: ISO_C_BINDING type(C_PTR) :: b -integer(C_LONG), dimension(*), target, intent(inout) :: liw -integer(C_LONG), dimension(*), target, intent(inout) :: lrw +integer(C_INT64_T), dimension(*), target, intent(inout) :: liw +integer(C_INT64_T), dimension(*), target, intent(inout) :: lrw type(C_PTR) :: farg1 type(C_PTR) :: farg2 type(C_PTR) :: farg3 @@ -1621,8 +1621,8 @@ subroutine FARKodeSPRKTable_Write(sprk_table, outfile) subroutine FARKodeSPRKTable_Space(sprk_storage, liw, lrw) use, intrinsic :: ISO_C_BINDING type(C_PTR) :: sprk_storage -integer(C_LONG), dimension(*), target, intent(inout) :: liw -integer(C_LONG), dimension(*), target, intent(inout) :: lrw +integer(C_INT64_T), dimension(*), target, intent(inout) :: liw +integer(C_INT64_T), dimension(*), target, intent(inout) :: lrw type(C_PTR) :: farg1 type(C_PTR) :: farg2 type(C_PTR) :: farg3 diff --git a/src/arkode/fmod_int64/farkode_mristep_mod.c b/src/arkode/fmod_int64/farkode_mristep_mod.c index cac8323310..c9fc9edf0c 100644 --- a/src/arkode/fmod_int64/farkode_mristep_mod.c +++ b/src/arkode/fmod_int64/farkode_mristep_mod.c @@ -599,14 +599,14 @@ SWIGEXPORT void * _wrap_FMRIStepCoupling_Copy(void *farg1) { } -SWIGEXPORT void _wrap_FMRIStepCoupling_Space(void *farg1, long *farg2, long *farg3) { +SWIGEXPORT void _wrap_FMRIStepCoupling_Space(void *farg1, int64_t *farg2, int64_t *farg3) { MRIStepCoupling arg1 = (MRIStepCoupling) 0 ; - long *arg2 = (long *) 0 ; - long *arg3 = (long *) 0 ; + sunindextype *arg2 = (sunindextype *) 0 ; + sunindextype *arg3 = (sunindextype *) 0 ; arg1 = (MRIStepCoupling)(farg1); - arg2 = (long *)(farg2); - arg3 = (long *)(farg3); + arg2 = (sunindextype *)(farg2); + arg3 = (sunindextype *)(farg3); MRIStepCoupling_Space(arg1,arg2,arg3); } diff --git a/src/arkode/fmod_int64/farkode_mristep_mod.f90 b/src/arkode/fmod_int64/farkode_mristep_mod.f90 index bb76bee620..163f24f8f8 100644 --- a/src/arkode/fmod_int64/farkode_mristep_mod.f90 +++ b/src/arkode/fmod_int64/farkode_mristep_mod.f90 @@ -1732,8 +1732,8 @@ function FMRIStepCoupling_Copy(mric) & subroutine FMRIStepCoupling_Space(mric, liw, lrw) use, intrinsic :: ISO_C_BINDING type(C_PTR) :: mric -integer(C_LONG), dimension(*), target, intent(inout) :: liw -integer(C_LONG), dimension(*), target, intent(inout) :: lrw +integer(C_INT64_T), dimension(*), target, intent(inout) :: liw +integer(C_INT64_T), dimension(*), target, intent(inout) :: lrw type(C_PTR) :: farg1 type(C_PTR) :: farg2 type(C_PTR) :: farg3 diff --git a/src/nvector/manyvector/fmod_int32/fnvector_manyvector_mod.c b/src/nvector/manyvector/fmod_int32/fnvector_manyvector_mod.c index 817493fe6f..39cc98fdf7 100644 --- a/src/nvector/manyvector/fmod_int32/fnvector_manyvector_mod.c +++ b/src/nvector/manyvector/fmod_int32/fnvector_manyvector_mod.c @@ -328,14 +328,14 @@ SWIGEXPORT void _wrap_FN_VDestroy_ManyVector(N_Vector farg1) { } -SWIGEXPORT void _wrap_FN_VSpace_ManyVector(N_Vector farg1, long *farg2, long *farg3) { +SWIGEXPORT void _wrap_FN_VSpace_ManyVector(N_Vector farg1, int32_t *farg2, int32_t *farg3) { N_Vector arg1 = (N_Vector) 0 ; - long *arg2 = (long *) 0 ; - long *arg3 = (long *) 0 ; + sunindextype *arg2 = (sunindextype *) 0 ; + sunindextype *arg3 = (sunindextype *) 0 ; arg1 = (N_Vector)(farg1); - arg2 = (long *)(farg2); - arg3 = (long *)(farg3); + arg2 = (sunindextype *)(farg2); + arg3 = (sunindextype *)(farg3); N_VSpace_ManyVector(arg1,arg2,arg3); } diff --git a/src/nvector/manyvector/fmod_int32/fnvector_manyvector_mod.f90 b/src/nvector/manyvector/fmod_int32/fnvector_manyvector_mod.f90 index bb95b47366..a9e0c7ea09 100644 --- a/src/nvector/manyvector/fmod_int32/fnvector_manyvector_mod.f90 +++ b/src/nvector/manyvector/fmod_int32/fnvector_manyvector_mod.f90 @@ -748,8 +748,8 @@ subroutine FN_VDestroy_ManyVector(v) subroutine FN_VSpace_ManyVector(v, lrw, liw) use, intrinsic :: ISO_C_BINDING type(N_Vector), target, intent(inout) :: v -integer(C_LONG), dimension(*), target, intent(inout) :: lrw -integer(C_LONG), dimension(*), target, intent(inout) :: liw +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 diff --git a/src/nvector/manyvector/fmod_int32/fnvector_mpimanyvector_mod.c b/src/nvector/manyvector/fmod_int32/fnvector_mpimanyvector_mod.c index aa0aada90b..b567955a3d 100644 --- a/src/nvector/manyvector/fmod_int32/fnvector_mpimanyvector_mod.c +++ b/src/nvector/manyvector/fmod_int32/fnvector_mpimanyvector_mod.c @@ -356,14 +356,14 @@ SWIGEXPORT void _wrap_FN_VDestroy_MPIManyVector(N_Vector farg1) { } -SWIGEXPORT void _wrap_FN_VSpace_MPIManyVector(N_Vector farg1, long *farg2, long *farg3) { +SWIGEXPORT void _wrap_FN_VSpace_MPIManyVector(N_Vector farg1, int32_t *farg2, int32_t *farg3) { N_Vector arg1 = (N_Vector) 0 ; - long *arg2 = (long *) 0 ; - long *arg3 = (long *) 0 ; + sunindextype *arg2 = (sunindextype *) 0 ; + sunindextype *arg3 = (sunindextype *) 0 ; arg1 = (N_Vector)(farg1); - arg2 = (long *)(farg2); - arg3 = (long *)(farg3); + arg2 = (sunindextype *)(farg2); + arg3 = (sunindextype *)(farg3); N_VSpace_MPIManyVector(arg1,arg2,arg3); } diff --git a/src/nvector/manyvector/fmod_int32/fnvector_mpimanyvector_mod.f90 b/src/nvector/manyvector/fmod_int32/fnvector_mpimanyvector_mod.f90 index 5ff68927de..2226643c27 100644 --- a/src/nvector/manyvector/fmod_int32/fnvector_mpimanyvector_mod.f90 +++ b/src/nvector/manyvector/fmod_int32/fnvector_mpimanyvector_mod.f90 @@ -870,8 +870,8 @@ subroutine FN_VDestroy_MPIManyVector(v) subroutine FN_VSpace_MPIManyVector(v, lrw, liw) use, intrinsic :: ISO_C_BINDING type(N_Vector), target, intent(inout) :: v -integer(C_LONG), dimension(*), target, intent(inout) :: lrw -integer(C_LONG), dimension(*), target, intent(inout) :: liw +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 diff --git a/src/nvector/openmp/fmod_int32/fnvector_openmp_mod.c b/src/nvector/openmp/fmod_int32/fnvector_openmp_mod.c index f3864aceba..ddf0295838 100644 --- a/src/nvector/openmp/fmod_int32/fnvector_openmp_mod.c +++ b/src/nvector/openmp/fmod_int32/fnvector_openmp_mod.c @@ -332,14 +332,14 @@ SWIGEXPORT void _wrap_FN_VDestroy_OpenMP(N_Vector farg1) { } -SWIGEXPORT void _wrap_FN_VSpace_OpenMP(N_Vector farg1, long *farg2, long *farg3) { +SWIGEXPORT void _wrap_FN_VSpace_OpenMP(N_Vector farg1, int32_t *farg2, int32_t *farg3) { N_Vector arg1 = (N_Vector) 0 ; - long *arg2 = (long *) 0 ; - long *arg3 = (long *) 0 ; + sunindextype *arg2 = (sunindextype *) 0 ; + sunindextype *arg3 = (sunindextype *) 0 ; arg1 = (N_Vector)(farg1); - arg2 = (long *)(farg2); - arg3 = (long *)(farg3); + arg2 = (sunindextype *)(farg2); + arg3 = (sunindextype *)(farg3); N_VSpace_OpenMP(arg1,arg2,arg3); } diff --git a/src/nvector/openmp/fmod_int32/fnvector_openmp_mod.f90 b/src/nvector/openmp/fmod_int32/fnvector_openmp_mod.f90 index 26a4daea6a..e5f7cdc3f2 100644 --- a/src/nvector/openmp/fmod_int32/fnvector_openmp_mod.f90 +++ b/src/nvector/openmp/fmod_int32/fnvector_openmp_mod.f90 @@ -718,8 +718,8 @@ subroutine FN_VDestroy_OpenMP(v) subroutine FN_VSpace_OpenMP(v, lrw, liw) use, intrinsic :: ISO_C_BINDING type(N_Vector), target, intent(inout) :: v -integer(C_LONG), dimension(*), target, intent(inout) :: lrw -integer(C_LONG), dimension(*), target, intent(inout) :: liw +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 diff --git a/src/nvector/parallel/fmod_int32/fnvector_parallel_mod.c b/src/nvector/parallel/fmod_int32/fnvector_parallel_mod.c index 938f839b53..cdbd1f87c3 100644 --- a/src/nvector/parallel/fmod_int32/fnvector_parallel_mod.c +++ b/src/nvector/parallel/fmod_int32/fnvector_parallel_mod.c @@ -380,14 +380,14 @@ SWIGEXPORT void _wrap_FN_VDestroy_Parallel(N_Vector farg1) { } -SWIGEXPORT void _wrap_FN_VSpace_Parallel(N_Vector farg1, long *farg2, long *farg3) { +SWIGEXPORT void _wrap_FN_VSpace_Parallel(N_Vector farg1, int32_t *farg2, int32_t *farg3) { N_Vector arg1 = (N_Vector) 0 ; - long *arg2 = (long *) 0 ; - long *arg3 = (long *) 0 ; + sunindextype *arg2 = (sunindextype *) 0 ; + sunindextype *arg3 = (sunindextype *) 0 ; arg1 = (N_Vector)(farg1); - arg2 = (long *)(farg2); - arg3 = (long *)(farg3); + arg2 = (sunindextype *)(farg2); + arg3 = (sunindextype *)(farg3); N_VSpace_Parallel(arg1,arg2,arg3); } diff --git a/src/nvector/parallel/fmod_int32/fnvector_parallel_mod.f90 b/src/nvector/parallel/fmod_int32/fnvector_parallel_mod.f90 index 7ac6ef1a1c..571b01856b 100644 --- a/src/nvector/parallel/fmod_int32/fnvector_parallel_mod.f90 +++ b/src/nvector/parallel/fmod_int32/fnvector_parallel_mod.f90 @@ -862,8 +862,8 @@ subroutine FN_VDestroy_Parallel(v) subroutine FN_VSpace_Parallel(v, lrw, liw) use, intrinsic :: ISO_C_BINDING type(N_Vector), target, intent(inout) :: v -integer(C_LONG), dimension(*), target, intent(inout) :: lrw -integer(C_LONG), dimension(*), target, intent(inout) :: liw +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 diff --git a/src/nvector/pthreads/fmod_int32/fnvector_pthreads_mod.c b/src/nvector/pthreads/fmod_int32/fnvector_pthreads_mod.c index 2cab775ca2..77ac40a163 100644 --- a/src/nvector/pthreads/fmod_int32/fnvector_pthreads_mod.c +++ b/src/nvector/pthreads/fmod_int32/fnvector_pthreads_mod.c @@ -332,14 +332,14 @@ SWIGEXPORT void _wrap_FN_VDestroy_Pthreads(N_Vector farg1) { } -SWIGEXPORT void _wrap_FN_VSpace_Pthreads(N_Vector farg1, long *farg2, long *farg3) { +SWIGEXPORT void _wrap_FN_VSpace_Pthreads(N_Vector farg1, int32_t *farg2, int32_t *farg3) { N_Vector arg1 = (N_Vector) 0 ; - long *arg2 = (long *) 0 ; - long *arg3 = (long *) 0 ; + sunindextype *arg2 = (sunindextype *) 0 ; + sunindextype *arg3 = (sunindextype *) 0 ; arg1 = (N_Vector)(farg1); - arg2 = (long *)(farg2); - arg3 = (long *)(farg3); + arg2 = (sunindextype *)(farg2); + arg3 = (sunindextype *)(farg3); N_VSpace_Pthreads(arg1,arg2,arg3); } diff --git a/src/nvector/pthreads/fmod_int32/fnvector_pthreads_mod.f90 b/src/nvector/pthreads/fmod_int32/fnvector_pthreads_mod.f90 index 5ab77dd3ff..fb2af230a5 100644 --- a/src/nvector/pthreads/fmod_int32/fnvector_pthreads_mod.f90 +++ b/src/nvector/pthreads/fmod_int32/fnvector_pthreads_mod.f90 @@ -718,8 +718,8 @@ subroutine FN_VDestroy_Pthreads(v) subroutine FN_VSpace_Pthreads(v, lrw, liw) use, intrinsic :: ISO_C_BINDING type(N_Vector), target, intent(inout) :: v -integer(C_LONG), dimension(*), target, intent(inout) :: lrw -integer(C_LONG), dimension(*), target, intent(inout) :: liw +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 diff --git a/src/nvector/serial/fmod_int32/fnvector_serial_mod.c b/src/nvector/serial/fmod_int32/fnvector_serial_mod.c index e7217aa1ce..14ddfe38a0 100644 --- a/src/nvector/serial/fmod_int32/fnvector_serial_mod.c +++ b/src/nvector/serial/fmod_int32/fnvector_serial_mod.c @@ -326,14 +326,14 @@ SWIGEXPORT void _wrap_FN_VDestroy_Serial(N_Vector farg1) { } -SWIGEXPORT void _wrap_FN_VSpace_Serial(N_Vector farg1, long *farg2, long *farg3) { +SWIGEXPORT void _wrap_FN_VSpace_Serial(N_Vector farg1, int32_t *farg2, int32_t *farg3) { N_Vector arg1 = (N_Vector) 0 ; - long *arg2 = (long *) 0 ; - long *arg3 = (long *) 0 ; + sunindextype *arg2 = (sunindextype *) 0 ; + sunindextype *arg3 = (sunindextype *) 0 ; arg1 = (N_Vector)(farg1); - arg2 = (long *)(farg2); - arg3 = (long *)(farg3); + arg2 = (sunindextype *)(farg2); + arg3 = (sunindextype *)(farg3); N_VSpace_Serial(arg1,arg2,arg3); } diff --git a/src/nvector/serial/fmod_int32/fnvector_serial_mod.f90 b/src/nvector/serial/fmod_int32/fnvector_serial_mod.f90 index 482c838c25..ac6df66be2 100644 --- a/src/nvector/serial/fmod_int32/fnvector_serial_mod.f90 +++ b/src/nvector/serial/fmod_int32/fnvector_serial_mod.f90 @@ -706,8 +706,8 @@ subroutine FN_VDestroy_Serial(v) subroutine FN_VSpace_Serial(v, lrw, liw) use, intrinsic :: ISO_C_BINDING type(N_Vector), target, intent(inout) :: v -integer(C_LONG), dimension(*), target, intent(inout) :: lrw -integer(C_LONG), dimension(*), target, intent(inout) :: liw +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 diff --git a/src/sundials/fmod_int32/fsundials_core_mod.c b/src/sundials/fmod_int32/fsundials_core_mod.c index 4b422398f8..4a82a3afd2 100644 --- a/src/sundials/fmod_int32/fsundials_core_mod.c +++ b/src/sundials/fmod_int32/fsundials_core_mod.c @@ -902,14 +902,14 @@ SWIGEXPORT void _wrap_FN_VDestroy(N_Vector farg1) { } -SWIGEXPORT void _wrap_FN_VSpace(N_Vector farg1, long *farg2, long *farg3) { +SWIGEXPORT void _wrap_FN_VSpace(N_Vector farg1, int32_t *farg2, int32_t *farg3) { N_Vector arg1 = (N_Vector) 0 ; - long *arg2 = (long *) 0 ; - long *arg3 = (long *) 0 ; + sunindextype *arg2 = (sunindextype *) 0 ; + sunindextype *arg3 = (sunindextype *) 0 ; arg1 = (N_Vector)(farg1); - arg2 = (long *)(farg2); - arg3 = (long *)(farg3); + arg2 = (sunindextype *)(farg2); + arg3 = (sunindextype *)(farg3); N_VSpace(arg1,arg2,arg3); } diff --git a/src/sundials/fmod_int32/fsundials_core_mod.f90 b/src/sundials/fmod_int32/fsundials_core_mod.f90 index b73da131a5..4890566c56 100644 --- a/src/sundials/fmod_int32/fsundials_core_mod.f90 +++ b/src/sundials/fmod_int32/fsundials_core_mod.f90 @@ -2743,8 +2743,8 @@ subroutine FN_VDestroy(v) subroutine FN_VSpace(v, lrw, liw) use, intrinsic :: ISO_C_BINDING type(N_Vector), target, intent(inout) :: v -integer(C_LONG), dimension(*), target, intent(inout) :: lrw -integer(C_LONG), dimension(*), target, intent(inout) :: liw +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 diff --git a/src/sundials/fmod_int64/fsundials_core_mod.f90 b/src/sundials/fmod_int64/fsundials_core_mod.f90 index ac4e05c382..4334dfe0d3 100644 --- a/src/sundials/fmod_int64/fsundials_core_mod.f90 +++ b/src/sundials/fmod_int64/fsundials_core_mod.f90 @@ -2743,8 +2743,8 @@ subroutine FN_VDestroy(v) subroutine FN_VSpace(v, lrw, liw) use, intrinsic :: ISO_C_BINDING type(N_Vector), target, intent(inout) :: v -integer(C_LONG), dimension(*), target, intent(inout) :: lrw -integer(C_LONG), dimension(*), target, intent(inout) :: liw +integer(C_INT64_T), dimension(*), target, intent(inout) :: lrw +integer(C_INT64_T), dimension(*), target, intent(inout) :: liw type(C_PTR) :: farg1 type(C_PTR) :: farg2 type(C_PTR) :: farg3 diff --git a/src/sundials/sundials_nvector.c b/src/sundials/sundials_nvector.c index 926c110371..d1d3ca25ce 100644 --- a/src/sundials/sundials_nvector.c +++ b/src/sundials/sundials_nvector.c @@ -998,7 +998,7 @@ SUNErrCode N_VBufUnpack(N_Vector x, void* buf) * N_VDestroyVectorArray * -----------------------------------------------------------------*/ -N_Vector* N_VNewVectorArray(int count, SUNContext sunctx) +N_Vector* N_VNewVectorArray(sunindextype count, SUNContext sunctx) { SUNFunctionBegin(sunctx); N_Vector* vs = NULL; @@ -1007,7 +1007,7 @@ N_Vector* N_VNewVectorArray(int count, SUNContext sunctx) return vs; } -N_Vector* N_VCloneEmptyVectorArray(int count, N_Vector w) +N_Vector* N_VCloneEmptyVectorArray(sunindextype count, N_Vector w) { SUNFunctionBegin(w->sunctx); N_Vector* vs = NULL; @@ -1032,7 +1032,7 @@ N_Vector* N_VCloneEmptyVectorArray(int count, N_Vector w) return (vs); } -N_Vector* N_VCloneVectorArray(int count, N_Vector w) +N_Vector* N_VCloneVectorArray(sunindextype count, N_Vector w) { SUNFunctionBegin(w->sunctx); int j; @@ -1057,7 +1057,7 @@ N_Vector* N_VCloneVectorArray(int count, N_Vector w) return (vs); } -void N_VDestroyVectorArray(N_Vector* vs, int count) +void N_VDestroyVectorArray(N_Vector* vs, sunindextype count) { int j; @@ -1076,14 +1076,14 @@ void N_VDestroyVectorArray(N_Vector* vs, int count) } /* These function are really only for users of the Fortran interface */ -N_Vector N_VGetVecAtIndexVectorArray(N_Vector* vs, int index) +N_Vector N_VGetVecAtIndexVectorArray(N_Vector* vs, sunindextype index) { SUNFunctionBegin(vs[0]->sunctx); SUNAssertNull(index >= 0, SUN_ERR_ARG_OUTOFRANGE); return vs[index]; } -void N_VSetVecAtIndexVectorArray(N_Vector* vs, int index, N_Vector w) +void N_VSetVecAtIndexVectorArray(N_Vector* vs, sunindextype index, N_Vector w) { SUNFunctionBegin(w->sunctx); SUNAssertVoid(index >= 0, SUN_ERR_ARG_OUTOFRANGE); From 70fdadf815f8e119aaa852dc3672c0a7a44bb1ff Mon Sep 17 00:00:00 2001 From: "Balos, Cody, J" Date: Fri, 29 Mar 2024 15:24:50 -0700 Subject: [PATCH 17/70] revert all source for space functions --- src/arkode/arkode.c | 8 ++++---- src/arkode/arkode_arkstep.c | 4 ++-- src/arkode/arkode_arkstep_io.c | 6 +++--- src/arkode/arkode_bandpre.c | 2 +- src/arkode/arkode_bbdpre.c | 3 +-- src/arkode/arkode_butcher.c | 4 ++-- src/arkode/arkode_erkstep.c | 2 +- src/arkode/arkode_erkstep_io.c | 6 +++--- src/arkode/arkode_ls.c | 4 ++-- src/arkode/arkode_mri_tables.c | 4 ++-- src/arkode/arkode_mristep.c | 4 ++-- src/arkode/arkode_sprk.c | 4 ++-- src/cvode/cvode.c | 2 +- src/cvode/cvode_bandpre.c | 2 +- src/cvode/cvode_bbdpre.c | 4 ++-- src/cvode/cvode_ls.c | 2 +- src/cvodes/cvodes.c | 2 +- src/cvodes/cvodes_bandpre.c | 2 +- src/cvodes/cvodes_bbdpre.c | 4 ++-- src/cvodes/cvodes_ls.c | 2 +- src/ida/ida.c | 2 +- src/ida/ida_bbdpre.c | 4 ++-- src/ida/ida_ls.c | 3 ++- src/idas/idas.c | 2 +- src/idas/idas_bbdpre.c | 4 ++-- src/idas/idas_ls.c | 3 ++- src/kinsol/kinsol.c | 2 +- src/kinsol/kinsol_bbdpre.c | 4 ++-- src/kinsol/kinsol_ls.c | 2 +- src/nvector/manyvector/nvector_manyvector.c | 5 ++--- src/nvector/openmp/nvector_openmp.c | 2 +- src/nvector/openmpdev/nvector_openmpdev.c | 2 +- src/nvector/parallel/nvector_parallel.c | 2 +- src/nvector/parhyp/nvector_parhyp.c | 2 +- src/nvector/petsc/nvector_petsc.c | 2 +- src/nvector/pthreads/nvector_pthreads.c | 2 +- src/nvector/serial/nvector_serial.c | 2 +- src/sundials/sundials_nvector.c | 14 +++++++------- src/sunlinsol/pcg/sunlinsol_pcg.c | 2 +- src/sunlinsol/spbcgs/sunlinsol_spbcgs.c | 2 +- src/sunlinsol/spfgmr/sunlinsol_spfgmr.c | 2 +- src/sunlinsol/spgmr/sunlinsol_spgmr.c | 2 +- src/sunlinsol/sptfqmr/sunlinsol_sptfqmr.c | 2 +- 43 files changed, 70 insertions(+), 70 deletions(-) diff --git a/src/arkode/arkode.c b/src/arkode/arkode.c index 8adbc77c16..69ec2d37fe 100644 --- a/src/arkode/arkode.c +++ b/src/arkode/arkode.c @@ -228,7 +228,7 @@ int arkResize(ARKodeMem ark_mem, N_Vector y0, sunrealtype hscale, sunrealtype t0, ARKVecResizeFn resize, void* resize_data) { sunbooleantype resizeOK; - long int lrw1, liw1, lrw_diff, liw_diff; + sunindextype lrw1, liw1, lrw_diff, liw_diff; int retval; /* Check ark_mem */ @@ -1329,7 +1329,7 @@ int arkInit(ARKodeMem ark_mem, sunrealtype t0, N_Vector y0, int init_type) { sunbooleantype stepperOK, nvectorOK, allocOK; int retval; - long int lrw1, liw1; + sunindextype lrw1, liw1; /* Check ark_mem */ if (ark_mem == NULL) @@ -1649,7 +1649,7 @@ sunbooleantype arkAllocVec(ARKodeMem ark_mem, N_Vector tmpl, N_Vector* v) } sunbooleantype arkAllocVecArray(int count, N_Vector tmpl, N_Vector** v, - long int lrw1, long int* lrw, + sunindextype lrw1, long int* lrw, sunindextype liw1, long int* liw) { /* allocate the new vector array if necessary */ @@ -1682,7 +1682,7 @@ void arkFreeVec(ARKodeMem ark_mem, N_Vector* v) } } -void arkFreeVecArray(int count, N_Vector** v, long int lrw1, long int* lrw, +void arkFreeVecArray(int count, N_Vector** v, sunindextype lrw1, long int* lrw, sunindextype liw1, long int* liw) { if (*v != NULL) diff --git a/src/arkode/arkode_arkstep.c b/src/arkode/arkode_arkstep.c index e8fa748788..7e4361c516 100644 --- a/src/arkode/arkode_arkstep.c +++ b/src/arkode/arkode_arkstep.c @@ -240,7 +240,7 @@ int ARKStepResize(void* arkode_mem, N_Vector y0, sunrealtype hscale, ARKodeMem ark_mem; ARKodeARKStepMem step_mem; SUNNonlinearSolver NLS; - long int lrw1, liw1, lrw_diff, liw_diff; + sunindextype lrw1, liw1, lrw_diff, liw_diff; int i, retval; /* access ARKodeARKStepMem structure */ @@ -2243,7 +2243,7 @@ int arkStep_SetButcherTables(ARKodeMem ark_mem) { int etable, itable; ARKodeARKStepMem step_mem; - long int Blrw, Bliw; + sunindextype Blrw, Bliw; /* access ARKodeARKStepMem structure */ if (ark_mem->step_mem == NULL) diff --git a/src/arkode/arkode_arkstep_io.c b/src/arkode/arkode_arkstep_io.c index 539b5a6747..58f78862c3 100644 --- a/src/arkode/arkode_arkstep_io.c +++ b/src/arkode/arkode_arkstep_io.c @@ -1036,7 +1036,7 @@ int ARKStepSetOrder(void* arkode_mem, int ord) { ARKodeMem ark_mem; ARKodeARKStepMem step_mem; - long int Blrw, Bliw; + sunindextype Blrw, Bliw; int retval; /* access ARKodeARKStepMem structure */ @@ -1270,7 +1270,7 @@ int ARKStepSetTables(void* arkode_mem, int q, int p, ARKodeButcherTable Bi, int retval; ARKodeMem ark_mem; ARKodeARKStepMem step_mem; - long int Blrw, Bliw; + sunindextype Blrw, Bliw; /* access ARKodeARKStepMem structure */ retval = arkStep_AccessStepMem(arkode_mem, __func__, &ark_mem, &step_mem); @@ -1436,7 +1436,7 @@ int ARKStepSetTableNum(void* arkode_mem, ARKODE_DIRKTableID itable, int flag, retval; ARKodeMem ark_mem; ARKodeARKStepMem step_mem; - long int Blrw, Bliw; + sunindextype Blrw, Bliw; /* access ARKodeARKStepMem structure */ retval = arkStep_AccessStepMem(arkode_mem, __func__, &ark_mem, &step_mem); diff --git a/src/arkode/arkode_bandpre.c b/src/arkode/arkode_bandpre.c index fd21cbb680..6eb5f576da 100644 --- a/src/arkode/arkode_bandpre.c +++ b/src/arkode/arkode_bandpre.c @@ -196,7 +196,7 @@ int ARKBandPrecGetWorkSpace(void* arkode_mem, long int* lenrwBP, long int* leniw ARKodeMem ark_mem; ARKLsMem arkls_mem; ARKBandPrecData pdata; - long int lrw1, liw1; + sunindextype lrw1, liw1; long int lrw, liw; int retval; diff --git a/src/arkode/arkode_bbdpre.c b/src/arkode/arkode_bbdpre.c index 51baa2a437..52f2ee29d9 100644 --- a/src/arkode/arkode_bbdpre.c +++ b/src/arkode/arkode_bbdpre.c @@ -56,8 +56,7 @@ int ARKBBDPrecInit(void* arkode_mem, sunindextype Nlocal, sunindextype mudq, ARKodeMem ark_mem; ARKLsMem arkls_mem; ARKBBDPrecData pdata; - sunindextype muk, mlk, storage_mu; - long int lrw1, liw1; + sunindextype muk, mlk, storage_mu, lrw1, liw1; long int lrw, liw; int retval; diff --git a/src/arkode/arkode_butcher.c b/src/arkode/arkode_butcher.c index 690d620d28..0807d05fca 100644 --- a/src/arkode/arkode_butcher.c +++ b/src/arkode/arkode_butcher.c @@ -293,8 +293,8 @@ ARKodeButcherTable ARKodeButcherTable_Copy(ARKodeButcherTable B) /*--------------------------------------------------------------- Routine to query the Butcher table structure workspace size ---------------------------------------------------------------*/ -void ARKodeButcherTable_Space(ARKodeButcherTable B, long int* liw, - long int* lrw) +void ARKodeButcherTable_Space(ARKodeButcherTable B, sunindextype* liw, + sunindextype* lrw) { /* initialize outputs and return if B is not allocated */ *liw = 0; diff --git a/src/arkode/arkode_erkstep.c b/src/arkode/arkode_erkstep.c index 24b2630662..1e80ea0f20 100644 --- a/src/arkode/arkode_erkstep.c +++ b/src/arkode/arkode_erkstep.c @@ -142,7 +142,7 @@ int ERKStepResize(void* arkode_mem, N_Vector y0, sunrealtype hscale, { ARKodeMem ark_mem; ARKodeERKStepMem step_mem; - long int lrw1, liw1, lrw_diff, liw_diff; + sunindextype lrw1, liw1, lrw_diff, liw_diff; int i, retval; /* access ARKodeERKStepMem structure */ diff --git a/src/arkode/arkode_erkstep_io.c b/src/arkode/arkode_erkstep_io.c index 16619fa94b..15904203a0 100644 --- a/src/arkode/arkode_erkstep_io.c +++ b/src/arkode/arkode_erkstep_io.c @@ -486,7 +486,7 @@ int ERKStepSetOrder(void* arkode_mem, int ord) { ARKodeMem ark_mem; ARKodeERKStepMem step_mem; - long int Blrw, Bliw; + sunindextype Blrw, Bliw; int retval; /* access ARKodeERKStepMem structure */ @@ -526,7 +526,7 @@ int ERKStepSetTable(void* arkode_mem, ARKodeButcherTable B) { ARKodeMem ark_mem; ARKodeERKStepMem step_mem; - long int Blrw, Bliw; + sunindextype Blrw, Bliw; int retval; /* access ARKodeERKStepMem structure */ @@ -584,7 +584,7 @@ int ERKStepSetTableNum(void* arkode_mem, ARKODE_ERKTableID etable) { ARKodeMem ark_mem; ARKodeERKStepMem step_mem; - long int Blrw, Bliw; + sunindextype Blrw, Bliw; int retval; /* access ARKodeERKStepMem structure */ diff --git a/src/arkode/arkode_ls.c b/src/arkode/arkode_ls.c index 53576feb8c..bf43998744 100644 --- a/src/arkode/arkode_ls.c +++ b/src/arkode/arkode_ls.c @@ -944,7 +944,7 @@ int arkLSGetWorkSpace(void* arkode_mem, long int* lenrw, long int* leniw) { ARKodeMem ark_mem; ARKLsMem arkls_mem; - long int lrw1, liw1; + sunindextype lrw1, liw1; long int lrw, liw; int retval; @@ -1367,7 +1367,7 @@ int arkLSGetMassWorkSpace(void* arkode_mem, long int* lenrw, long int* leniw) { ARKodeMem ark_mem; ARKLsMassMem arkls_mem; - long int lrw1, liw1; + sunindextype lrw1, liw1; long int lrw, liw; int retval; diff --git a/src/arkode/arkode_mri_tables.c b/src/arkode/arkode_mri_tables.c index 18da20f595..fa6dd9b256 100644 --- a/src/arkode/arkode_mri_tables.c +++ b/src/arkode/arkode_mri_tables.c @@ -444,8 +444,8 @@ MRIStepCoupling MRIStepCoupling_Copy(MRIStepCoupling MRIC) /*--------------------------------------------------------------- Routine to query the MRIStepCoupling structure workspace size ---------------------------------------------------------------*/ -void MRIStepCoupling_Space(MRIStepCoupling MRIC, long int* liw, - long int* lrw) +void MRIStepCoupling_Space(MRIStepCoupling MRIC, sunindextype* liw, + sunindextype* lrw) { /* initialize outputs and return if MRIC is not allocated */ *liw = 0; diff --git a/src/arkode/arkode_mristep.c b/src/arkode/arkode_mristep.c index 21f700581b..25d1620834 100644 --- a/src/arkode/arkode_mristep.c +++ b/src/arkode/arkode_mristep.c @@ -230,7 +230,7 @@ int MRIStepResize(void* arkode_mem, N_Vector y0, sunrealtype t0, ARKodeMem ark_mem; ARKodeMRIStepMem step_mem; SUNNonlinearSolver NLS; - long int lrw1, liw1, lrw_diff, liw_diff; + sunindextype lrw1, liw1, lrw_diff, liw_diff; int retval; /* access ARKodeMRIStepMem structure */ @@ -2964,7 +2964,7 @@ int mriStepInnerStepper_Reset(MRIStepInnerStepper stepper, sunrealtype tR, int mriStepInnerStepper_AllocVecs(MRIStepInnerStepper stepper, int count, N_Vector tmpl) { - long int lrw1, liw1; + sunindextype lrw1, liw1; if (stepper == NULL) { return ARK_ILL_INPUT; } diff --git a/src/arkode/arkode_sprk.c b/src/arkode/arkode_sprk.c index 3bf1bbd7bd..65d1a07069 100644 --- a/src/arkode/arkode_sprk.c +++ b/src/arkode/arkode_sprk.c @@ -541,8 +541,8 @@ ARKodeSPRKTable ARKodeSPRKTable_Copy(ARKodeSPRKTable that_sprk_table) return sprk_table; } -void ARKodeSPRKTable_Space(ARKodeSPRKTable sprk_table, long int* liw, - long int* lrw) +void ARKodeSPRKTable_Space(ARKodeSPRKTable sprk_table, sunindextype* liw, + sunindextype* lrw) { *liw = 2; *lrw = sprk_table->stages * 2; diff --git a/src/cvode/cvode.c b/src/cvode/cvode.c index 27dc1c8b68..1bb942b264 100644 --- a/src/cvode/cvode.c +++ b/src/cvode/cvode.c @@ -382,7 +382,7 @@ int CVodeInit(void* cvode_mem, CVRhsFn f, sunrealtype t0, N_Vector y0) { CVodeMem cv_mem; sunbooleantype nvectorOK, allocOK; - long int lrw1, liw1; + sunindextype lrw1, liw1; int i, k, retval; SUNNonlinearSolver NLS; diff --git a/src/cvode/cvode_bandpre.c b/src/cvode/cvode_bandpre.c index 94959121c7..f421257440 100644 --- a/src/cvode/cvode_bandpre.c +++ b/src/cvode/cvode_bandpre.c @@ -213,7 +213,7 @@ int CVBandPrecGetWorkSpace(void* cvode_mem, long int* lenrwBP, long int* leniwBP CVodeMem cv_mem; CVLsMem cvls_mem; CVBandPrecData pdata; - long int lrw1, liw1; + sunindextype lrw1, liw1; long int lrw, liw; int flag; diff --git a/src/cvode/cvode_bbdpre.c b/src/cvode/cvode_bbdpre.c index 5a73772153..6c8a28470b 100644 --- a/src/cvode/cvode_bbdpre.c +++ b/src/cvode/cvode_bbdpre.c @@ -60,8 +60,8 @@ int CVBBDPrecInit(void* cvode_mem, sunindextype Nlocal, sunindextype mudq, CVodeMem cv_mem; CVLsMem cvls_mem; CVBBDPrecData pdata; - sunindextype muk, mlk, storage_mu; - long int lrw, liw, lrw1, liw1; + sunindextype muk, mlk, storage_mu, lrw1, liw1; + long int lrw, liw; int flag; if (cvode_mem == NULL) diff --git a/src/cvode/cvode_ls.c b/src/cvode/cvode_ls.c index d14ba5343e..a51ef16132 100644 --- a/src/cvode/cvode_ls.c +++ b/src/cvode/cvode_ls.c @@ -643,7 +643,7 @@ int CVodeGetLinWorkSpace(void* cvode_mem, long int* lenrwLS, long int* leniwLS) { CVodeMem cv_mem; CVLsMem cvls_mem; - long int lrw1, liw1; + sunindextype lrw1, liw1; long int lrw, liw; int retval; diff --git a/src/cvodes/cvodes.c b/src/cvodes/cvodes.c index 449c63b7aa..ec31375447 100644 --- a/src/cvodes/cvodes.c +++ b/src/cvodes/cvodes.c @@ -678,7 +678,7 @@ int CVodeInit(void* cvode_mem, CVRhsFn f, sunrealtype t0, N_Vector y0) { CVodeMem cv_mem; sunbooleantype nvectorOK, allocOK; - long int lrw1, liw1; + sunindextype lrw1, liw1; int i, k, retval; SUNNonlinearSolver NLS; diff --git a/src/cvodes/cvodes_bandpre.c b/src/cvodes/cvodes_bandpre.c index 246c2359f9..98a9308759 100644 --- a/src/cvodes/cvodes_bandpre.c +++ b/src/cvodes/cvodes_bandpre.c @@ -216,7 +216,7 @@ int CVBandPrecGetWorkSpace(void* cvode_mem, long int* lenrwBP, long int* leniwBP CVodeMem cv_mem; CVLsMem cvls_mem; CVBandPrecData pdata; - long int lrw1, liw1; + sunindextype lrw1, liw1; long int lrw, liw; int flag; diff --git a/src/cvodes/cvodes_bbdpre.c b/src/cvodes/cvodes_bbdpre.c index 98e3321a29..af9cba7900 100644 --- a/src/cvodes/cvodes_bbdpre.c +++ b/src/cvodes/cvodes_bbdpre.c @@ -72,8 +72,8 @@ int CVBBDPrecInit(void* cvode_mem, sunindextype Nlocal, sunindextype mudq, CVodeMem cv_mem; CVLsMem cvls_mem; CVBBDPrecData pdata; - sunindextype muk, mlk, storage_mu; - long int lrw, liw, lrw1, liw1;; + sunindextype muk, mlk, storage_mu, lrw1, liw1; + long int lrw, liw; int flag; if (cvode_mem == NULL) diff --git a/src/cvodes/cvodes_ls.c b/src/cvodes/cvodes_ls.c index bb19933fb0..6c7362d74b 100644 --- a/src/cvodes/cvodes_ls.c +++ b/src/cvodes/cvodes_ls.c @@ -719,7 +719,7 @@ int CVodeGetLinWorkSpace(void* cvode_mem, long int* lenrwLS, long int* leniwLS) { CVodeMem cv_mem; CVLsMem cvls_mem; - long int lrw1, liw1; + sunindextype lrw1, liw1; long int lrw, liw; int retval; diff --git a/src/ida/ida.c b/src/ida/ida.c index 1ee9367632..523675422e 100644 --- a/src/ida/ida.c +++ b/src/ida/ida.c @@ -377,7 +377,7 @@ int IDAInit(void* ida_mem, IDAResFn res, sunrealtype t0, N_Vector yy0, int retval; IDAMem IDA_mem; sunbooleantype nvectorOK, allocOK; - long int lrw1, liw1; + sunindextype lrw1, liw1; SUNNonlinearSolver NLS; /* Check ida_mem */ diff --git a/src/ida/ida_bbdpre.c b/src/ida/ida_bbdpre.c index 5c96b105bb..2352ff3b64 100644 --- a/src/ida/ida_bbdpre.c +++ b/src/ida/ida_bbdpre.c @@ -62,8 +62,8 @@ int IDABBDPrecInit(void* ida_mem, sunindextype Nlocal, sunindextype mudq, IDAMem IDA_mem; IDALsMem idals_mem; IBBDPrecData pdata; - sunindextype muk, mlk, storage_mu; - long int lrw, liw, lrw1, liw1; + sunindextype muk, mlk, storage_mu, lrw1, liw1; + long int lrw, liw; int flag; if (ida_mem == NULL) diff --git a/src/ida/ida_ls.c b/src/ida/ida_ls.c index 78e5cbe983..c0a0c73649 100644 --- a/src/ida/ida_ls.c +++ b/src/ida/ida_ls.c @@ -598,7 +598,8 @@ int IDAGetLinWorkSpace(void* ida_mem, long int* lenrwLS, long int* leniwLS) { IDAMem IDA_mem; IDALsMem idals_mem; - long int lrw, liw, lrw1, liw1; + sunindextype lrw1, liw1; + long int lrw, liw; int retval; /* access IDALsMem structure */ diff --git a/src/idas/idas.c b/src/idas/idas.c index a0314d086b..d42aebab2c 100644 --- a/src/idas/idas.c +++ b/src/idas/idas.c @@ -568,7 +568,7 @@ int IDAInit(void* ida_mem, IDAResFn res, sunrealtype t0, N_Vector yy0, int retval; IDAMem IDA_mem; sunbooleantype nvectorOK, allocOK; - long int lrw1, liw1; + sunindextype lrw1, liw1; SUNNonlinearSolver NLS; /* Check ida_mem */ diff --git a/src/idas/idas_bbdpre.c b/src/idas/idas_bbdpre.c index 6fc015a2be..a584499293 100644 --- a/src/idas/idas_bbdpre.c +++ b/src/idas/idas_bbdpre.c @@ -76,8 +76,8 @@ int IDABBDPrecInit(void* ida_mem, sunindextype Nlocal, sunindextype mudq, IDAMem IDA_mem; IDALsMem idals_mem; IBBDPrecData pdata; - sunindextype muk, mlk, storage_mu; - long int lrw, liw, lrw1, liw1; + sunindextype muk, mlk, storage_mu, lrw1, liw1; + long int lrw, liw; int flag; if (ida_mem == NULL) diff --git a/src/idas/idas_ls.c b/src/idas/idas_ls.c index 236778dbed..dc0c0bab52 100644 --- a/src/idas/idas_ls.c +++ b/src/idas/idas_ls.c @@ -639,7 +639,8 @@ int IDAGetLinWorkSpace(void* ida_mem, long int* lenrwLS, long int* leniwLS) { IDAMem IDA_mem; IDALsMem idals_mem; - long int lrw, liw, lrw1, liw1; + sunindextype lrw1, liw1; + long int lrw, liw; int retval; /* access IDALsMem structure */ diff --git a/src/kinsol/kinsol.c b/src/kinsol/kinsol.c index d1e19cd140..205ffbc8f0 100644 --- a/src/kinsol/kinsol.c +++ b/src/kinsol/kinsol.c @@ -322,7 +322,7 @@ void* KINCreate(SUNContext sunctx) int KINInit(void* kinmem, KINSysFn func, N_Vector tmpl) { - long int liw1, lrw1; + sunindextype liw1, lrw1; KINMem kin_mem; sunbooleantype allocOK, nvectorOK, dotprodSB; diff --git a/src/kinsol/kinsol_bbdpre.c b/src/kinsol/kinsol_bbdpre.c index 37d314859c..3cd8b78e5f 100644 --- a/src/kinsol/kinsol_bbdpre.c +++ b/src/kinsol/kinsol_bbdpre.c @@ -63,8 +63,8 @@ int KINBBDPrecInit(void* kinmem, sunindextype Nlocal, sunindextype mudq, KINMem kin_mem; KINLsMem kinls_mem; KBBDPrecData pdata; - sunindextype muk, mlk, storage_mu; - long int lrw, liw, lrw1, liw1; + sunindextype muk, mlk, storage_mu, lrw1, liw1; + long int lrw, liw; int flag; if (kinmem == NULL) diff --git a/src/kinsol/kinsol_ls.c b/src/kinsol/kinsol_ls.c index e1989a8988..684995a069 100644 --- a/src/kinsol/kinsol_ls.c +++ b/src/kinsol/kinsol_ls.c @@ -414,7 +414,7 @@ int KINGetLinWorkSpace(void* kinmem, long int* lenrwLS, long int* leniwLS) { KINMem kin_mem; KINLsMem kinls_mem; - long int lrw1, liw1; + sunindextype lrw1, liw1; long int lrw, liw; int retval; diff --git a/src/nvector/manyvector/nvector_manyvector.c b/src/nvector/manyvector/nvector_manyvector.c index 4c8765b232..2785ee7b91 100644 --- a/src/nvector/manyvector/nvector_manyvector.c +++ b/src/nvector/manyvector/nvector_manyvector.c @@ -569,11 +569,10 @@ void MVAPPEND(N_VDestroy)(N_Vector v) /* Returns the space requirements for the ManyVector, by accumulating this information from all subvectors. */ -void MVAPPEND(N_VSpace)(N_Vector v, long int* lrw, long int* liw) +void MVAPPEND(N_VSpace)(N_Vector v, sunindextype* lrw, sunindextype* liw) { SUNFunctionBegin(v->sunctx); - sunindextype i; - long int lrw1, liw1; + sunindextype i, lrw1, liw1; *lrw = 0; *liw = 0; for (i = 0; i < MANYVECTOR_NUM_SUBVECS(v); i++) diff --git a/src/nvector/openmp/nvector_openmp.c b/src/nvector/openmp/nvector_openmp.c index 22f03aff38..649a27a6df 100644 --- a/src/nvector/openmp/nvector_openmp.c +++ b/src/nvector/openmp/nvector_openmp.c @@ -386,7 +386,7 @@ void N_VDestroy_OpenMP(N_Vector v) * Get storage requirement for N_Vector */ -void N_VSpace_OpenMP(N_Vector v, long int* lrw, long int* liw) +void N_VSpace_OpenMP(N_Vector v, sunindextype* lrw, sunindextype* liw) { SUNFunctionBegin(v->sunctx); diff --git a/src/nvector/openmpdev/nvector_openmpdev.c b/src/nvector/openmpdev/nvector_openmpdev.c index 03ac83aed3..773feae94e 100644 --- a/src/nvector/openmpdev/nvector_openmpdev.c +++ b/src/nvector/openmpdev/nvector_openmpdev.c @@ -502,7 +502,7 @@ void N_VDestroy_OpenMPDEV(N_Vector v) * Get storage requirement for N_Vector */ -void N_VSpace_OpenMPDEV(N_Vector v, long int* lrw, long int* liw) +void N_VSpace_OpenMPDEV(N_Vector v, sunindextype* lrw, sunindextype* liw) { *lrw = NV_LENGTH_OMPDEV(v); *liw = 1; diff --git a/src/nvector/parallel/nvector_parallel.c b/src/nvector/parallel/nvector_parallel.c index 341ba757c4..a438b4eb29 100644 --- a/src/nvector/parallel/nvector_parallel.c +++ b/src/nvector/parallel/nvector_parallel.c @@ -387,7 +387,7 @@ void N_VDestroy_Parallel(N_Vector v) return; } -void N_VSpace_Parallel(N_Vector v, long int* lrw, long int* liw) +void N_VSpace_Parallel(N_Vector v, sunindextype* lrw, sunindextype* liw) { SUNFunctionBegin(v->sunctx); diff --git a/src/nvector/parhyp/nvector_parhyp.c b/src/nvector/parhyp/nvector_parhyp.c index 51d8988da4..4e9ef4d50c 100644 --- a/src/nvector/parhyp/nvector_parhyp.c +++ b/src/nvector/parhyp/nvector_parhyp.c @@ -406,7 +406,7 @@ void N_VDestroy_ParHyp(N_Vector v) return; } -void N_VSpace_ParHyp(N_Vector v, long int* lrw, long int* liw) +void N_VSpace_ParHyp(N_Vector v, sunindextype* lrw, sunindextype* liw) { MPI_Comm comm; int npes; diff --git a/src/nvector/petsc/nvector_petsc.c b/src/nvector/petsc/nvector_petsc.c index 9a782add53..87960d839a 100644 --- a/src/nvector/petsc/nvector_petsc.c +++ b/src/nvector/petsc/nvector_petsc.c @@ -380,7 +380,7 @@ void N_VDestroy_Petsc(N_Vector v) return; } -void N_VSpace_Petsc(N_Vector v, long int* lrw, long int* liw) +void N_VSpace_Petsc(N_Vector v, sunindextype* lrw, sunindextype* liw) { MPI_Comm comm; int npes; diff --git a/src/nvector/pthreads/nvector_pthreads.c b/src/nvector/pthreads/nvector_pthreads.c index d7597f300c..6938934059 100644 --- a/src/nvector/pthreads/nvector_pthreads.c +++ b/src/nvector/pthreads/nvector_pthreads.c @@ -465,7 +465,7 @@ void N_VDestroy_Pthreads(N_Vector v) * Get storage requirement for vector */ -void N_VSpace_Pthreads(N_Vector v, long int* lrw, long int* liw) +void N_VSpace_Pthreads(N_Vector v, sunindextype* lrw, sunindextype* liw) { SUNFunctionBegin(v->sunctx); diff --git a/src/nvector/serial/nvector_serial.c b/src/nvector/serial/nvector_serial.c index 006575faa6..a4a1bff95a 100644 --- a/src/nvector/serial/nvector_serial.c +++ b/src/nvector/serial/nvector_serial.c @@ -355,7 +355,7 @@ void N_VDestroy_Serial(N_Vector v) return; } -void N_VSpace_Serial(N_Vector v, long int* lrw, long int* liw) +void N_VSpace_Serial(N_Vector v, sunindextype* lrw, sunindextype* liw) { SUNFunctionBegin(v->sunctx); diff --git a/src/sundials/sundials_nvector.c b/src/sundials/sundials_nvector.c index d1d3ca25ce..a6549d81b5 100644 --- a/src/sundials/sundials_nvector.c +++ b/src/sundials/sundials_nvector.c @@ -327,7 +327,7 @@ void N_VDestroy(N_Vector v) return; } -void N_VSpace(N_Vector v, long int* lrw, long int* liw) +void N_VSpace(N_Vector v, sunindextype* lrw, sunindextype* liw) { v->ops->nvspace(v, lrw, liw); return; @@ -998,7 +998,7 @@ SUNErrCode N_VBufUnpack(N_Vector x, void* buf) * N_VDestroyVectorArray * -----------------------------------------------------------------*/ -N_Vector* N_VNewVectorArray(sunindextype count, SUNContext sunctx) +N_Vector* N_VNewVectorArray(int count, SUNContext sunctx) { SUNFunctionBegin(sunctx); N_Vector* vs = NULL; @@ -1007,7 +1007,7 @@ N_Vector* N_VNewVectorArray(sunindextype count, SUNContext sunctx) return vs; } -N_Vector* N_VCloneEmptyVectorArray(sunindextype count, N_Vector w) +N_Vector* N_VCloneEmptyVectorArray(int count, N_Vector w) { SUNFunctionBegin(w->sunctx); N_Vector* vs = NULL; @@ -1032,7 +1032,7 @@ N_Vector* N_VCloneEmptyVectorArray(sunindextype count, N_Vector w) return (vs); } -N_Vector* N_VCloneVectorArray(sunindextype count, N_Vector w) +N_Vector* N_VCloneVectorArray(int count, N_Vector w) { SUNFunctionBegin(w->sunctx); int j; @@ -1057,7 +1057,7 @@ N_Vector* N_VCloneVectorArray(sunindextype count, N_Vector w) return (vs); } -void N_VDestroyVectorArray(N_Vector* vs, sunindextype count) +void N_VDestroyVectorArray(N_Vector* vs, int count) { int j; @@ -1076,14 +1076,14 @@ void N_VDestroyVectorArray(N_Vector* vs, sunindextype count) } /* These function are really only for users of the Fortran interface */ -N_Vector N_VGetVecAtIndexVectorArray(N_Vector* vs, sunindextype index) +N_Vector N_VGetVecAtIndexVectorArray(N_Vector* vs, int index) { SUNFunctionBegin(vs[0]->sunctx); SUNAssertNull(index >= 0, SUN_ERR_ARG_OUTOFRANGE); return vs[index]; } -void N_VSetVecAtIndexVectorArray(N_Vector* vs, sunindextype index, N_Vector w) +void N_VSetVecAtIndexVectorArray(N_Vector* vs, int index, N_Vector w) { SUNFunctionBegin(w->sunctx); SUNAssertVoid(index >= 0, SUN_ERR_ARG_OUTOFRANGE); diff --git a/src/sunlinsol/pcg/sunlinsol_pcg.c b/src/sunlinsol/pcg/sunlinsol_pcg.c index d795467812..1504a744dc 100644 --- a/src/sunlinsol/pcg/sunlinsol_pcg.c +++ b/src/sunlinsol/pcg/sunlinsol_pcg.c @@ -517,7 +517,7 @@ SUNErrCode SUNLinSolSpace_PCG(SUNLinearSolver S, long int* lenrwLS, long int* leniwLS) { SUNFunctionBegin(S->sunctx); - long int liw1, lrw1; + sunindextype liw1, lrw1; N_VSpace(PCG_CONTENT(S)->r, &lrw1, &liw1); SUNCheckLastErr(); *lenrwLS = 1 + lrw1 * 4; diff --git a/src/sunlinsol/spbcgs/sunlinsol_spbcgs.c b/src/sunlinsol/spbcgs/sunlinsol_spbcgs.c index 83f5764e9b..168e554176 100644 --- a/src/sunlinsol/spbcgs/sunlinsol_spbcgs.c +++ b/src/sunlinsol/spbcgs/sunlinsol_spbcgs.c @@ -753,7 +753,7 @@ SUNErrCode SUNLinSolSpace_SPBCGS(SUNLinearSolver S, long int* lenrwLS, long int* leniwLS) { SUNFunctionBegin(S->sunctx); - long int liw1, lrw1; + sunindextype liw1, lrw1; if (SPBCGS_CONTENT(S)->vtemp->ops->nvspace) { N_VSpace(SPBCGS_CONTENT(S)->vtemp, &lrw1, &liw1); diff --git a/src/sunlinsol/spfgmr/sunlinsol_spfgmr.c b/src/sunlinsol/spfgmr/sunlinsol_spfgmr.c index 2718b450c4..4e726e2d7e 100644 --- a/src/sunlinsol/spfgmr/sunlinsol_spfgmr.c +++ b/src/sunlinsol/spfgmr/sunlinsol_spfgmr.c @@ -706,7 +706,7 @@ SUNErrCode SUNLinSolSpace_SPFGMR(SUNLinearSolver S, long int* lenrwLS, { SUNFunctionBegin(S->sunctx); int maxl; - long int liw1, lrw1; + sunindextype liw1, lrw1; maxl = SPFGMR_CONTENT(S)->maxl; if (SPFGMR_CONTENT(S)->vtemp->ops->nvspace) { diff --git a/src/sunlinsol/spgmr/sunlinsol_spgmr.c b/src/sunlinsol/spgmr/sunlinsol_spgmr.c index de879a32c0..c1e10b3629 100644 --- a/src/sunlinsol/spgmr/sunlinsol_spgmr.c +++ b/src/sunlinsol/spgmr/sunlinsol_spgmr.c @@ -783,7 +783,7 @@ SUNErrCode SUNLinSolSpace_SPGMR(SUNLinearSolver S, long int* lenrwLS, { SUNFunctionBegin(S->sunctx); int maxl; - long int liw1, lrw1; + sunindextype liw1, lrw1; maxl = SPGMR_CONTENT(S)->maxl; if (SPGMR_CONTENT(S)->vtemp->ops->nvspace) { diff --git a/src/sunlinsol/sptfqmr/sunlinsol_sptfqmr.c b/src/sunlinsol/sptfqmr/sunlinsol_sptfqmr.c index 8a39fe4b7d..6f09ccc1db 100644 --- a/src/sunlinsol/sptfqmr/sunlinsol_sptfqmr.c +++ b/src/sunlinsol/sptfqmr/sunlinsol_sptfqmr.c @@ -947,7 +947,7 @@ SUNErrCode SUNLinSolSpace_SPTFQMR(SUNLinearSolver S, long int* lenrwLS, long int* leniwLS) { SUNFunctionBegin(S->sunctx); - long int liw1, lrw1; + sunindextype liw1, lrw1; if (SPTFQMR_CONTENT(S)->vtemp1->ops->nvspace) { N_VSpace(SPTFQMR_CONTENT(S)->vtemp1, &lrw1, &liw1); From 3ab78ff5d46830238828358fbfbc713d206ebced Mon Sep 17 00:00:00 2001 From: "Balos, Cody, J" Date: Fri, 29 Mar 2024 15:34:04 -0700 Subject: [PATCH 18/70] revert arkode impl --- src/arkode/arkode_impl.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/arkode/arkode_impl.h b/src/arkode/arkode_impl.h index e484bf00c2..54065a7fcb 100644 --- a/src/arkode/arkode_impl.h +++ b/src/arkode/arkode_impl.h @@ -875,10 +875,10 @@ void arkProcessError(ARKodeMem ark_mem, int error_code, int line, int arkInit(ARKodeMem ark_mem, sunrealtype t0, N_Vector y0, int init_type); sunbooleantype arkAllocVec(ARKodeMem ark_mem, N_Vector tmpl, N_Vector* v); sunbooleantype arkAllocVecArray(int count, N_Vector tmpl, N_Vector** v, - long int lrw1, long int* lrw, + sunindextype lrw1, long int* lrw, sunindextype liw1, long int* liw); void arkFreeVec(ARKodeMem ark_mem, N_Vector* v); -void arkFreeVecArray(int count, N_Vector** v, long int lrw1, long int* lrw, +void arkFreeVecArray(int count, N_Vector** v, sunindextype lrw1, long int* lrw, sunindextype liw1, long int* liw); sunbooleantype arkResizeVec(ARKodeMem ark_mem, ARKVecResizeFn resize, void* resize_data, sunindextype lrw_diff, From 0e315f2332530110c9868c8f862dd0090323ad24 Mon Sep 17 00:00:00 2001 From: "Balos, Cody, J" Date: Fri, 29 Mar 2024 15:47:57 -0700 Subject: [PATCH 19/70] more fixes for consistency - promote int to sunindextype --- doc/shared/nvectors/NVector_Description.rst | 12 +++---- .../F2003_serial/cvsAdvDiff_FSA_non_f2003.f90 | 10 +++--- .../test_fnvector_manyvector_mod.f90 | 14 ++++---- .../serial/test_fnvector_serial_mod.f90 | 2 +- .../sunnonlinsol/sunnonlinsol_fixedpoint.h | 2 +- src/sundials/fmod_int32/fsundials_core_mod.c | 36 +++++++++---------- .../fmod_int32/fsundials_core_mod.f90 | 36 +++++++++---------- src/sundials/fmod_int64/fsundials_core_mod.c | 36 +++++++++---------- .../fmod_int64/fsundials_core_mod.f90 | 36 +++++++++---------- src/sundials/sundials_nvector.c | 12 +++---- .../fmod_int32/fsunnonlinsol_fixedpoint_mod.c | 6 ++-- .../fsunnonlinsol_fixedpoint_mod.f90 | 6 ++-- .../fmod_int64/fsunnonlinsol_fixedpoint_mod.c | 6 ++-- .../fsunnonlinsol_fixedpoint_mod.f90 | 6 ++-- .../fixedpoint/sunnonlinsol_fixedpoint.c | 2 +- 15 files changed, 111 insertions(+), 111 deletions(-) diff --git a/doc/shared/nvectors/NVector_Description.rst b/doc/shared/nvectors/NVector_Description.rst index 8c197fd7b6..b8d2e7b94b 100644 --- a/doc/shared/nvectors/NVector_Description.rst +++ b/doc/shared/nvectors/NVector_Description.rst @@ -185,7 +185,7 @@ The functions :c:func:`N_VCloneVectorArray` and variables of type :c:type:`N_Vector`, each of the same type as an existing ``N_Vector`` input: -.. c:function:: N_Vector *N_VCloneVectorArray(int count, N_Vector w) +.. c:function:: N_Vector *N_VCloneVectorArray(sunindextype count, N_Vector w) Clones an array of ``count`` ``N_Vector`` objects, allocating their data arrays (similar to :c:func:`N_VClone`). @@ -198,7 +198,7 @@ variables of type :c:type:`N_Vector`, each of the same type as an existing * ``NULL`` pointer on failure. -.. c:function:: N_Vector *N_VCloneVectorArrayEmpty(int count, N_Vector w) +.. c:function:: N_Vector *N_VCloneVectorArrayEmpty(sunindextype count, N_Vector w) Clones an array of ``count`` ``N_Vector`` objects, leaving their data arrays unallocated (similar to :c:func:`N_VCloneEmpty`). @@ -215,7 +215,7 @@ An array of variables of type :c:type:`N_Vector` can be destroyed by calling :c:func:`N_VDestroyVectorArray`: -.. c:function:: void N_VDestroyVectorArray(N_Vector *vs, int count) +.. c:function:: void N_VDestroyVectorArray(N_Vector *vs, sunindextype count) Destroys an array of ``count`` ``N_Vector`` objects. @@ -243,7 +243,7 @@ that are wrapped as ``FN_NewVectorArray``, ``FN_VGetVecAtIndexVectorArray``, and set a vector within this array: -.. c:function:: N_Vector *N_VNewVectorArray(int count, SUNContext sunctx) +.. c:function:: N_Vector *N_VNewVectorArray(sunindextype count, SUNContext sunctx) Creates an array of ``count`` ``N_Vector`` objects, the pointers to each are initialized as ``NULL``. @@ -261,7 +261,7 @@ set a vector within this array: The function signature was updated to add the ``SUNContext`` argument. -.. c:function:: N_Vector *N_VGetVecAtIndexVectorArray(N_Vector* vs, int index) +.. c:function:: N_Vector *N_VGetVecAtIndexVectorArray(N_Vector* vs, sunindextype index) Accesses the ``N_Vector`` at the location ``index`` within the ``N_Vector`` array ``vs``. @@ -279,7 +279,7 @@ set a vector within this array: internally store its allocated length. -.. c:function:: void N_VSetVecAtIndexVectorArray(N_Vector* vs, int index, N_Vector w) +.. c:function:: void N_VSetVecAtIndexVectorArray(N_Vector* vs, sunindextype index, N_Vector w) Sets a pointer to ``w`` at the location ``index`` within the vector array ``vs``. diff --git a/examples/cvodes/F2003_serial/cvsAdvDiff_FSA_non_f2003.f90 b/examples/cvodes/F2003_serial/cvsAdvDiff_FSA_non_f2003.f90 index 8f47e8a72b..502e55ef92 100644 --- a/examples/cvodes/F2003_serial/cvsAdvDiff_FSA_non_f2003.f90 +++ b/examples/cvodes/F2003_serial/cvsAdvDiff_FSA_non_f2003.f90 @@ -67,7 +67,7 @@ module ode_problem real(c_double), parameter :: ATOL = 1e-5 integer(c_int), parameter :: NOUT = 10 integer(c_int), parameter :: NP = 2 - integer(c_int), parameter :: NS = 2 + integer(c_int64_t), parameter :: NS = 2 integer(c_long), parameter :: MX = 10 integer(c_long), parameter :: NEQ = MX @@ -199,7 +199,7 @@ program main type(SUNNonlinearSolver), pointer :: NLSsens => null() integer(c_int) :: iout, retval real(c_double) :: reltol, abstol, tout, t(1) - integer(c_int) :: is + integer(c_int64_t) :: is real(c_double) :: pbar(0:NS-1) integer(c_int) :: plist(0:NS-1) @@ -282,7 +282,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) @@ -499,10 +499,10 @@ subroutine PrintOutputS(uS) type(N_Vector), pointer :: uiS real(c_double) :: norm - uiS => FN_VGetVecAtIndexVectorArray(uS, 0) + uiS => FN_VGetVecAtIndexVectorArray(uS, 0_8) norm = FN_VMaxNorm(uiS) write(*,'(1x,A,es12.4)') " Sensitivity 1 ", norm - uiS => FN_VGetVecAtIndexVectorArray(uS, 1) + uiS => FN_VGetVecAtIndexVectorArray(uS, 1_8) norm = FN_VMaxNorm(uiS) write(*,'(1x,A,es12.4)') " Sensitivity 2 ", norm diff --git a/examples/nvector/manyvector/test_fnvector_manyvector_mod.f90 b/examples/nvector/manyvector/test_fnvector_manyvector_mod.f90 index da098a9bbc..f3fb73836d 100644 --- a/examples/nvector/manyvector/test_fnvector_manyvector_mod.f90 +++ b/examples/nvector/manyvector/test_fnvector_manyvector_mod.f90 @@ -29,11 +29,11 @@ module test_nvector_manyvector integer, parameter :: sunindextype = selected_int_kind(16) #endif - integer(kind=sunindextype), parameter :: nsubvecs = 2 - integer(kind=sunindextype), parameter :: N1 = 100 ! individual vector length - integer(kind=sunindextype), parameter :: N2 = 200 ! individual vector length - integer(c_int), parameter :: nv = 3 ! length of vector arrays - integer(kind=sunindextype), parameter :: N = N1 + N2 ! overall manyvector length + integer(kind=sunindextype), parameter :: nsubvecs = 2 + integer(kind=sunindextype), parameter :: N1 = 100 ! individual vector length + integer(kind=sunindextype), parameter :: N2 = 200 ! individual vector length + integer(kind=sunindextype),, parameter :: nv = 3 ! length of vector arrays + integer(kind=sunindextype), parameter :: N = N1 + N2 ! overall manyvector length contains @@ -140,7 +140,7 @@ integer function unit_tests() result(fails) !===== Setup ==== fails = 0 - subvecs = FN_VNewVectorArray(nsubvecs, sunctx) + subvecs = FN_VNewVectorArray(int(nsubvecs, 4), sunctx) tmp => FN_VMake_Serial(N1, x1data, sunctx) call FN_VSetVecAtIndexVectorArray(subvecs, 0, tmp) tmp => FN_VMake_Serial(N2, x2data, sunctx) @@ -155,7 +155,7 @@ integer function unit_tests() result(fails) fails = Test_FN_VLinearCombination(x, N, 0) !=== cleanup ==== - call FN_VDestroyVectorArray(subvecs, nsubvecs) + call FN_VDestroyVectorArray(subvecs, int(nsubvecs, 4)) call FN_VDestroy_ManyVector(x) end function unit_tests diff --git a/examples/nvector/serial/test_fnvector_serial_mod.f90 b/examples/nvector/serial/test_fnvector_serial_mod.f90 index cf6ab809f0..27652d23d8 100644 --- a/examples/nvector/serial/test_fnvector_serial_mod.f90 +++ b/examples/nvector/serial/test_fnvector_serial_mod.f90 @@ -29,7 +29,7 @@ module test_nvector_serial #endif integer(kind=sunindextype), parameter :: N = 100 ! vector length - integer(c_int), parameter :: nv = 3 ! length of vector arrays + integer(kind=sunindextype), parameter :: nv = 3 ! length of vector arrays contains diff --git a/include/sunnonlinsol/sunnonlinsol_fixedpoint.h b/include/sunnonlinsol/sunnonlinsol_fixedpoint.h index 779538abfa..99f4faa9fc 100644 --- a/include/sunnonlinsol/sunnonlinsol_fixedpoint.h +++ b/include/sunnonlinsol/sunnonlinsol_fixedpoint.h @@ -75,7 +75,7 @@ SUNDIALS_EXPORT SUNNonlinearSolver SUNNonlinSol_FixedPoint(N_Vector y, int m, SUNContext sunctx); SUNDIALS_EXPORT -SUNNonlinearSolver SUNNonlinSol_FixedPointSens(int count, N_Vector y, int m, +SUNNonlinearSolver SUNNonlinSol_FixedPointSens(sunindextype count, N_Vector y, int m, SUNContext sunctx); /* core functions */ diff --git a/src/sundials/fmod_int32/fsundials_core_mod.c b/src/sundials/fmod_int32/fsundials_core_mod.c index 4a82a3afd2..9ba788d178 100644 --- a/src/sundials/fmod_int32/fsundials_core_mod.c +++ b/src/sundials/fmod_int32/fsundials_core_mod.c @@ -1564,13 +1564,13 @@ SWIGEXPORT int _wrap_FN_VBufUnpack(N_Vector farg1, void *farg2) { } -SWIGEXPORT void * _wrap_FN_VNewVectorArray(int const *farg1, void *farg2) { +SWIGEXPORT void * _wrap_FN_VNewVectorArray(int32_t const *farg1, void *farg2) { void * fresult ; - int arg1 ; + sunindextype arg1 ; SUNContext arg2 = (SUNContext) 0 ; N_Vector *result = 0 ; - arg1 = (int)(*farg1); + arg1 = (sunindextype)(*farg1); arg2 = (SUNContext)(farg2); result = (N_Vector *)N_VNewVectorArray(arg1,arg2); fresult = result; @@ -1578,13 +1578,13 @@ SWIGEXPORT void * _wrap_FN_VNewVectorArray(int const *farg1, void *farg2) { } -SWIGEXPORT void * _wrap_FN_VCloneEmptyVectorArray(int const *farg1, N_Vector farg2) { +SWIGEXPORT void * _wrap_FN_VCloneEmptyVectorArray(int32_t const *farg1, N_Vector farg2) { void * fresult ; - int arg1 ; + sunindextype arg1 ; N_Vector arg2 = (N_Vector) 0 ; N_Vector *result = 0 ; - arg1 = (int)(*farg1); + arg1 = (sunindextype)(*farg1); arg2 = (N_Vector)(farg2); result = (N_Vector *)N_VCloneEmptyVectorArray(arg1,arg2); fresult = result; @@ -1592,13 +1592,13 @@ SWIGEXPORT void * _wrap_FN_VCloneEmptyVectorArray(int const *farg1, N_Vector far } -SWIGEXPORT void * _wrap_FN_VCloneVectorArray(int const *farg1, N_Vector farg2) { +SWIGEXPORT void * _wrap_FN_VCloneVectorArray(int32_t const *farg1, N_Vector farg2) { void * fresult ; - int arg1 ; + sunindextype arg1 ; N_Vector arg2 = (N_Vector) 0 ; N_Vector *result = 0 ; - arg1 = (int)(*farg1); + arg1 = (sunindextype)(*farg1); arg2 = (N_Vector)(farg2); result = (N_Vector *)N_VCloneVectorArray(arg1,arg2); fresult = result; @@ -1606,37 +1606,37 @@ SWIGEXPORT void * _wrap_FN_VCloneVectorArray(int const *farg1, N_Vector farg2) { } -SWIGEXPORT void _wrap_FN_VDestroyVectorArray(void *farg1, int const *farg2) { +SWIGEXPORT void _wrap_FN_VDestroyVectorArray(void *farg1, int32_t const *farg2) { N_Vector *arg1 = (N_Vector *) 0 ; - int arg2 ; + sunindextype arg2 ; arg1 = (N_Vector *)(farg1); - arg2 = (int)(*farg2); + arg2 = (sunindextype)(*farg2); N_VDestroyVectorArray(arg1,arg2); } -SWIGEXPORT N_Vector _wrap_FN_VGetVecAtIndexVectorArray(void *farg1, int const *farg2) { +SWIGEXPORT N_Vector _wrap_FN_VGetVecAtIndexVectorArray(void *farg1, int32_t const *farg2) { N_Vector fresult ; N_Vector *arg1 = (N_Vector *) 0 ; - int arg2 ; + sunindextype arg2 ; N_Vector result; arg1 = (N_Vector *)(farg1); - arg2 = (int)(*farg2); + arg2 = (sunindextype)(*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) { +SWIGEXPORT void _wrap_FN_VSetVecAtIndexVectorArray(void *farg1, int32_t const *farg2, N_Vector farg3) { N_Vector *arg1 = (N_Vector *) 0 ; - int arg2 ; + sunindextype arg2 ; N_Vector arg3 = (N_Vector) 0 ; arg1 = (N_Vector *)(farg1); - arg2 = (int)(*farg2); + arg2 = (sunindextype)(*farg2); arg3 = (N_Vector)(farg3); N_VSetVecAtIndexVectorArray(arg1,arg2,arg3); } diff --git a/src/sundials/fmod_int32/fsundials_core_mod.f90 b/src/sundials/fmod_int32/fsundials_core_mod.f90 index 4890566c56..37f1386b71 100644 --- a/src/sundials/fmod_int32/fsundials_core_mod.f90 +++ b/src/sundials/fmod_int32/fsundials_core_mod.f90 @@ -1351,7 +1351,7 @@ 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 +integer(C_INT32_T), intent(in) :: farg1 type(C_PTR), value :: farg2 type(C_PTR) :: fresult end function @@ -1360,7 +1360,7 @@ 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 +integer(C_INT32_T), intent(in) :: farg1 type(C_PTR), value :: farg2 type(C_PTR) :: fresult end function @@ -1369,7 +1369,7 @@ 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 +integer(C_INT32_T), intent(in) :: farg1 type(C_PTR), value :: farg2 type(C_PTR) :: fresult end function @@ -1378,7 +1378,7 @@ 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 +integer(C_INT32_T), intent(in) :: farg2 end subroutine function swigc_FN_VGetVecAtIndexVectorArray(farg1, farg2) & @@ -1386,7 +1386,7 @@ function swigc_FN_VGetVecAtIndexVectorArray(farg1, farg2) & result(fresult) use, intrinsic :: ISO_C_BINDING type(C_PTR), value :: farg1 -integer(C_INT), intent(in) :: farg2 +integer(C_INT32_T), intent(in) :: farg2 type(C_PTR) :: fresult end function @@ -1394,7 +1394,7 @@ 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 +integer(C_INT32_T), intent(in) :: farg2 type(C_PTR), value :: farg3 end subroutine @@ -3514,10 +3514,10 @@ function FN_VNewVectorArray(count, sunctx) & result(swig_result) use, intrinsic :: ISO_C_BINDING type(C_PTR) :: swig_result -integer(C_INT), intent(in) :: count +integer(C_INT32_T), intent(in) :: count type(C_PTR) :: sunctx type(C_PTR) :: fresult -integer(C_INT) :: farg1 +integer(C_INT32_T) :: farg1 type(C_PTR) :: farg2 farg1 = count @@ -3530,10 +3530,10 @@ function FN_VCloneEmptyVectorArray(count, w) & result(swig_result) use, intrinsic :: ISO_C_BINDING type(C_PTR) :: swig_result -integer(C_INT), intent(in) :: count +integer(C_INT32_T), intent(in) :: count type(N_Vector), target, intent(inout) :: w type(C_PTR) :: fresult -integer(C_INT) :: farg1 +integer(C_INT32_T) :: farg1 type(C_PTR) :: farg2 farg1 = count @@ -3546,10 +3546,10 @@ function FN_VCloneVectorArray(count, w) & result(swig_result) use, intrinsic :: ISO_C_BINDING type(C_PTR) :: swig_result -integer(C_INT), intent(in) :: count +integer(C_INT32_T), intent(in) :: count type(N_Vector), target, intent(inout) :: w type(C_PTR) :: fresult -integer(C_INT) :: farg1 +integer(C_INT32_T) :: farg1 type(C_PTR) :: farg2 farg1 = count @@ -3561,9 +3561,9 @@ function FN_VCloneVectorArray(count, w) & subroutine FN_VDestroyVectorArray(vs, count) use, intrinsic :: ISO_C_BINDING type(C_PTR) :: vs -integer(C_INT), intent(in) :: count +integer(C_INT32_T), intent(in) :: count type(C_PTR) :: farg1 -integer(C_INT) :: farg2 +integer(C_INT32_T) :: farg2 farg1 = vs farg2 = count @@ -3575,10 +3575,10 @@ function FN_VGetVecAtIndexVectorArray(vs, index) & use, intrinsic :: ISO_C_BINDING type(N_Vector), pointer :: swig_result type(C_PTR) :: vs -integer(C_INT), intent(in) :: index +integer(C_INT32_T), intent(in) :: index type(C_PTR) :: fresult type(C_PTR) :: farg1 -integer(C_INT) :: farg2 +integer(C_INT32_T) :: farg2 farg1 = vs farg2 = index @@ -3589,10 +3589,10 @@ function FN_VGetVecAtIndexVectorArray(vs, index) & subroutine FN_VSetVecAtIndexVectorArray(vs, index, w) use, intrinsic :: ISO_C_BINDING type(C_PTR) :: vs -integer(C_INT), intent(in) :: index +integer(C_INT32_T), intent(in) :: index type(N_Vector), target, intent(inout) :: w type(C_PTR) :: farg1 -integer(C_INT) :: farg2 +integer(C_INT32_T) :: farg2 type(C_PTR) :: farg3 farg1 = vs diff --git a/src/sundials/fmod_int64/fsundials_core_mod.c b/src/sundials/fmod_int64/fsundials_core_mod.c index 335bc76dfa..e16fe92bae 100644 --- a/src/sundials/fmod_int64/fsundials_core_mod.c +++ b/src/sundials/fmod_int64/fsundials_core_mod.c @@ -1564,13 +1564,13 @@ SWIGEXPORT int _wrap_FN_VBufUnpack(N_Vector farg1, void *farg2) { } -SWIGEXPORT void * _wrap_FN_VNewVectorArray(int const *farg1, void *farg2) { +SWIGEXPORT void * _wrap_FN_VNewVectorArray(int64_t const *farg1, void *farg2) { void * fresult ; - int arg1 ; + sunindextype arg1 ; SUNContext arg2 = (SUNContext) 0 ; N_Vector *result = 0 ; - arg1 = (int)(*farg1); + arg1 = (sunindextype)(*farg1); arg2 = (SUNContext)(farg2); result = (N_Vector *)N_VNewVectorArray(arg1,arg2); fresult = result; @@ -1578,13 +1578,13 @@ SWIGEXPORT void * _wrap_FN_VNewVectorArray(int const *farg1, void *farg2) { } -SWIGEXPORT void * _wrap_FN_VCloneEmptyVectorArray(int const *farg1, N_Vector farg2) { +SWIGEXPORT void * _wrap_FN_VCloneEmptyVectorArray(int64_t const *farg1, N_Vector farg2) { void * fresult ; - int arg1 ; + sunindextype arg1 ; N_Vector arg2 = (N_Vector) 0 ; N_Vector *result = 0 ; - arg1 = (int)(*farg1); + arg1 = (sunindextype)(*farg1); arg2 = (N_Vector)(farg2); result = (N_Vector *)N_VCloneEmptyVectorArray(arg1,arg2); fresult = result; @@ -1592,13 +1592,13 @@ SWIGEXPORT void * _wrap_FN_VCloneEmptyVectorArray(int const *farg1, N_Vector far } -SWIGEXPORT void * _wrap_FN_VCloneVectorArray(int const *farg1, N_Vector farg2) { +SWIGEXPORT void * _wrap_FN_VCloneVectorArray(int64_t const *farg1, N_Vector farg2) { void * fresult ; - int arg1 ; + sunindextype arg1 ; N_Vector arg2 = (N_Vector) 0 ; N_Vector *result = 0 ; - arg1 = (int)(*farg1); + arg1 = (sunindextype)(*farg1); arg2 = (N_Vector)(farg2); result = (N_Vector *)N_VCloneVectorArray(arg1,arg2); fresult = result; @@ -1606,37 +1606,37 @@ SWIGEXPORT void * _wrap_FN_VCloneVectorArray(int const *farg1, N_Vector farg2) { } -SWIGEXPORT void _wrap_FN_VDestroyVectorArray(void *farg1, int const *farg2) { +SWIGEXPORT void _wrap_FN_VDestroyVectorArray(void *farg1, int64_t const *farg2) { N_Vector *arg1 = (N_Vector *) 0 ; - int arg2 ; + sunindextype arg2 ; arg1 = (N_Vector *)(farg1); - arg2 = (int)(*farg2); + arg2 = (sunindextype)(*farg2); N_VDestroyVectorArray(arg1,arg2); } -SWIGEXPORT N_Vector _wrap_FN_VGetVecAtIndexVectorArray(void *farg1, int const *farg2) { +SWIGEXPORT N_Vector _wrap_FN_VGetVecAtIndexVectorArray(void *farg1, int64_t const *farg2) { N_Vector fresult ; N_Vector *arg1 = (N_Vector *) 0 ; - int arg2 ; + sunindextype arg2 ; N_Vector result; arg1 = (N_Vector *)(farg1); - arg2 = (int)(*farg2); + arg2 = (sunindextype)(*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) { +SWIGEXPORT void _wrap_FN_VSetVecAtIndexVectorArray(void *farg1, int64_t const *farg2, N_Vector farg3) { N_Vector *arg1 = (N_Vector *) 0 ; - int arg2 ; + sunindextype arg2 ; N_Vector arg3 = (N_Vector) 0 ; arg1 = (N_Vector *)(farg1); - arg2 = (int)(*farg2); + arg2 = (sunindextype)(*farg2); arg3 = (N_Vector)(farg3); N_VSetVecAtIndexVectorArray(arg1,arg2,arg3); } diff --git a/src/sundials/fmod_int64/fsundials_core_mod.f90 b/src/sundials/fmod_int64/fsundials_core_mod.f90 index 4334dfe0d3..2a63c7b1ea 100644 --- a/src/sundials/fmod_int64/fsundials_core_mod.f90 +++ b/src/sundials/fmod_int64/fsundials_core_mod.f90 @@ -1351,7 +1351,7 @@ 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 +integer(C_INT64_T), intent(in) :: farg1 type(C_PTR), value :: farg2 type(C_PTR) :: fresult end function @@ -1360,7 +1360,7 @@ 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 +integer(C_INT64_T), intent(in) :: farg1 type(C_PTR), value :: farg2 type(C_PTR) :: fresult end function @@ -1369,7 +1369,7 @@ 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 +integer(C_INT64_T), intent(in) :: farg1 type(C_PTR), value :: farg2 type(C_PTR) :: fresult end function @@ -1378,7 +1378,7 @@ 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 +integer(C_INT64_T), intent(in) :: farg2 end subroutine function swigc_FN_VGetVecAtIndexVectorArray(farg1, farg2) & @@ -1386,7 +1386,7 @@ function swigc_FN_VGetVecAtIndexVectorArray(farg1, farg2) & result(fresult) use, intrinsic :: ISO_C_BINDING type(C_PTR), value :: farg1 -integer(C_INT), intent(in) :: farg2 +integer(C_INT64_T), intent(in) :: farg2 type(C_PTR) :: fresult end function @@ -1394,7 +1394,7 @@ 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 +integer(C_INT64_T), intent(in) :: farg2 type(C_PTR), value :: farg3 end subroutine @@ -3514,10 +3514,10 @@ function FN_VNewVectorArray(count, sunctx) & result(swig_result) use, intrinsic :: ISO_C_BINDING type(C_PTR) :: swig_result -integer(C_INT), intent(in) :: count +integer(C_INT64_T), intent(in) :: count type(C_PTR) :: sunctx type(C_PTR) :: fresult -integer(C_INT) :: farg1 +integer(C_INT64_T) :: farg1 type(C_PTR) :: farg2 farg1 = count @@ -3530,10 +3530,10 @@ function FN_VCloneEmptyVectorArray(count, w) & result(swig_result) use, intrinsic :: ISO_C_BINDING type(C_PTR) :: swig_result -integer(C_INT), intent(in) :: count +integer(C_INT64_T), intent(in) :: count type(N_Vector), target, intent(inout) :: w type(C_PTR) :: fresult -integer(C_INT) :: farg1 +integer(C_INT64_T) :: farg1 type(C_PTR) :: farg2 farg1 = count @@ -3546,10 +3546,10 @@ function FN_VCloneVectorArray(count, w) & result(swig_result) use, intrinsic :: ISO_C_BINDING type(C_PTR) :: swig_result -integer(C_INT), intent(in) :: count +integer(C_INT64_T), intent(in) :: count type(N_Vector), target, intent(inout) :: w type(C_PTR) :: fresult -integer(C_INT) :: farg1 +integer(C_INT64_T) :: farg1 type(C_PTR) :: farg2 farg1 = count @@ -3561,9 +3561,9 @@ function FN_VCloneVectorArray(count, w) & subroutine FN_VDestroyVectorArray(vs, count) use, intrinsic :: ISO_C_BINDING type(C_PTR) :: vs -integer(C_INT), intent(in) :: count +integer(C_INT64_T), intent(in) :: count type(C_PTR) :: farg1 -integer(C_INT) :: farg2 +integer(C_INT64_T) :: farg2 farg1 = vs farg2 = count @@ -3575,10 +3575,10 @@ function FN_VGetVecAtIndexVectorArray(vs, index) & use, intrinsic :: ISO_C_BINDING type(N_Vector), pointer :: swig_result type(C_PTR) :: vs -integer(C_INT), intent(in) :: index +integer(C_INT64_T), intent(in) :: index type(C_PTR) :: fresult type(C_PTR) :: farg1 -integer(C_INT) :: farg2 +integer(C_INT64_T) :: farg2 farg1 = vs farg2 = index @@ -3589,10 +3589,10 @@ function FN_VGetVecAtIndexVectorArray(vs, index) & subroutine FN_VSetVecAtIndexVectorArray(vs, index, w) use, intrinsic :: ISO_C_BINDING type(C_PTR) :: vs -integer(C_INT), intent(in) :: index +integer(C_INT64_T), intent(in) :: index type(N_Vector), target, intent(inout) :: w type(C_PTR) :: farg1 -integer(C_INT) :: farg2 +integer(C_INT64_T) :: farg2 type(C_PTR) :: farg3 farg1 = vs diff --git a/src/sundials/sundials_nvector.c b/src/sundials/sundials_nvector.c index a6549d81b5..5b6cf7ff24 100644 --- a/src/sundials/sundials_nvector.c +++ b/src/sundials/sundials_nvector.c @@ -998,7 +998,7 @@ SUNErrCode N_VBufUnpack(N_Vector x, void* buf) * N_VDestroyVectorArray * -----------------------------------------------------------------*/ -N_Vector* N_VNewVectorArray(int count, SUNContext sunctx) +N_Vector* N_VNewVectorArray(sunindextype count, SUNContext sunctx) { SUNFunctionBegin(sunctx); N_Vector* vs = NULL; @@ -1007,7 +1007,7 @@ N_Vector* N_VNewVectorArray(int count, SUNContext sunctx) return vs; } -N_Vector* N_VCloneEmptyVectorArray(int count, N_Vector w) +N_Vector* N_VCloneEmptyVectorArray(sunindextype count, N_Vector w) { SUNFunctionBegin(w->sunctx); N_Vector* vs = NULL; @@ -1032,7 +1032,7 @@ N_Vector* N_VCloneEmptyVectorArray(int count, N_Vector w) return (vs); } -N_Vector* N_VCloneVectorArray(int count, N_Vector w) +N_Vector* N_VCloneVectorArray(sunindextype count, N_Vector w) { SUNFunctionBegin(w->sunctx); int j; @@ -1057,7 +1057,7 @@ N_Vector* N_VCloneVectorArray(int count, N_Vector w) return (vs); } -void N_VDestroyVectorArray(N_Vector* vs, int count) +void N_VDestroyVectorArray(N_Vector* vs, sunindextype count) { int j; @@ -1076,14 +1076,14 @@ void N_VDestroyVectorArray(N_Vector* vs, int count) } /* These function are really only for users of the Fortran interface */ -N_Vector N_VGetVecAtIndexVectorArray(N_Vector* vs, int index) +N_Vector N_VGetVecAtIndexVectorArray(N_Vector* vs, sunindextype index) { SUNFunctionBegin(vs[0]->sunctx); SUNAssertNull(index >= 0, SUN_ERR_ARG_OUTOFRANGE); return vs[index]; } -void N_VSetVecAtIndexVectorArray(N_Vector* vs, int index, N_Vector w) +void N_VSetVecAtIndexVectorArray(N_Vector* vs, sunindextype index, N_Vector w) { SUNFunctionBegin(w->sunctx); SUNAssertVoid(index >= 0, SUN_ERR_ARG_OUTOFRANGE); diff --git a/src/sunnonlinsol/fixedpoint/fmod_int32/fsunnonlinsol_fixedpoint_mod.c b/src/sunnonlinsol/fixedpoint/fmod_int32/fsunnonlinsol_fixedpoint_mod.c index 3911f51201..351b019071 100644 --- a/src/sunnonlinsol/fixedpoint/fmod_int32/fsunnonlinsol_fixedpoint_mod.c +++ b/src/sunnonlinsol/fixedpoint/fmod_int32/fsunnonlinsol_fixedpoint_mod.c @@ -224,15 +224,15 @@ SWIGEXPORT SUNNonlinearSolver _wrap_FSUNNonlinSol_FixedPoint(N_Vector farg1, int } -SWIGEXPORT SUNNonlinearSolver _wrap_FSUNNonlinSol_FixedPointSens(int const *farg1, N_Vector farg2, int const *farg3, void *farg4) { +SWIGEXPORT SUNNonlinearSolver _wrap_FSUNNonlinSol_FixedPointSens(int32_t const *farg1, N_Vector farg2, int const *farg3, void *farg4) { SUNNonlinearSolver fresult ; - int arg1 ; + sunindextype arg1 ; N_Vector arg2 = (N_Vector) 0 ; int arg3 ; SUNContext arg4 = (SUNContext) 0 ; SUNNonlinearSolver result; - arg1 = (int)(*farg1); + arg1 = (sunindextype)(*farg1); arg2 = (N_Vector)(farg2); arg3 = (int)(*farg3); arg4 = (SUNContext)(farg4); diff --git a/src/sunnonlinsol/fixedpoint/fmod_int32/fsunnonlinsol_fixedpoint_mod.f90 b/src/sunnonlinsol/fixedpoint/fmod_int32/fsunnonlinsol_fixedpoint_mod.f90 index 763e069388..06648fc81a 100644 --- a/src/sunnonlinsol/fixedpoint/fmod_int32/fsunnonlinsol_fixedpoint_mod.f90 +++ b/src/sunnonlinsol/fixedpoint/fmod_int32/fsunnonlinsol_fixedpoint_mod.f90 @@ -56,7 +56,7 @@ 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 +integer(C_INT32_T), intent(in) :: farg1 type(C_PTR), value :: farg2 integer(C_INT), intent(in) :: farg3 type(C_PTR), value :: farg4 @@ -202,12 +202,12 @@ 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 +integer(C_INT32_T), 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 +integer(C_INT32_T) :: farg1 type(C_PTR) :: farg2 integer(C_INT) :: farg3 type(C_PTR) :: farg4 diff --git a/src/sunnonlinsol/fixedpoint/fmod_int64/fsunnonlinsol_fixedpoint_mod.c b/src/sunnonlinsol/fixedpoint/fmod_int64/fsunnonlinsol_fixedpoint_mod.c index 3911f51201..214652302e 100644 --- a/src/sunnonlinsol/fixedpoint/fmod_int64/fsunnonlinsol_fixedpoint_mod.c +++ b/src/sunnonlinsol/fixedpoint/fmod_int64/fsunnonlinsol_fixedpoint_mod.c @@ -224,15 +224,15 @@ SWIGEXPORT SUNNonlinearSolver _wrap_FSUNNonlinSol_FixedPoint(N_Vector farg1, int } -SWIGEXPORT SUNNonlinearSolver _wrap_FSUNNonlinSol_FixedPointSens(int const *farg1, N_Vector farg2, int const *farg3, void *farg4) { +SWIGEXPORT SUNNonlinearSolver _wrap_FSUNNonlinSol_FixedPointSens(int64_t const *farg1, N_Vector farg2, int const *farg3, void *farg4) { SUNNonlinearSolver fresult ; - int arg1 ; + sunindextype arg1 ; N_Vector arg2 = (N_Vector) 0 ; int arg3 ; SUNContext arg4 = (SUNContext) 0 ; SUNNonlinearSolver result; - arg1 = (int)(*farg1); + arg1 = (sunindextype)(*farg1); arg2 = (N_Vector)(farg2); arg3 = (int)(*farg3); arg4 = (SUNContext)(farg4); diff --git a/src/sunnonlinsol/fixedpoint/fmod_int64/fsunnonlinsol_fixedpoint_mod.f90 b/src/sunnonlinsol/fixedpoint/fmod_int64/fsunnonlinsol_fixedpoint_mod.f90 index 763e069388..241fb96c26 100644 --- a/src/sunnonlinsol/fixedpoint/fmod_int64/fsunnonlinsol_fixedpoint_mod.f90 +++ b/src/sunnonlinsol/fixedpoint/fmod_int64/fsunnonlinsol_fixedpoint_mod.f90 @@ -56,7 +56,7 @@ 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 +integer(C_INT64_T), intent(in) :: farg1 type(C_PTR), value :: farg2 integer(C_INT), intent(in) :: farg3 type(C_PTR), value :: farg4 @@ -202,12 +202,12 @@ 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 +integer(C_INT64_T), 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 +integer(C_INT64_T) :: farg1 type(C_PTR) :: farg2 integer(C_INT) :: farg3 type(C_PTR) :: farg4 diff --git a/src/sunnonlinsol/fixedpoint/sunnonlinsol_fixedpoint.c b/src/sunnonlinsol/fixedpoint/sunnonlinsol_fixedpoint.c index 1ec228965e..c3a13f3374 100644 --- a/src/sunnonlinsol/fixedpoint/sunnonlinsol_fixedpoint.c +++ b/src/sunnonlinsol/fixedpoint/sunnonlinsol_fixedpoint.c @@ -102,7 +102,7 @@ SUNNonlinearSolver SUNNonlinSol_FixedPoint(N_Vector y, int m, SUNContext sunctx) Constructor wrapper to create a new fixed point solver for sensitivity solvers ============================================================================*/ -SUNNonlinearSolver SUNNonlinSol_FixedPointSens(int count, N_Vector y, int m, +SUNNonlinearSolver SUNNonlinSol_FixedPointSens(sunindextype count, N_Vector y, int m, SUNContext sunctx) { SUNFunctionBegin(sunctx); From 7db6c2c290da5645335a7a0bca14f557da9b3b21 Mon Sep 17 00:00:00 2001 From: "Balos, Cody, J" Date: Fri, 29 Mar 2024 16:13:30 -0700 Subject: [PATCH 20/70] fix more examples and definitions with wrong int type --- CHANGELOG.md | 2 ++ doc/shared/RecentChanges.rst | 2 ++ .../developers/style_guide/SourceCode.rst | 14 ++++++++++ .../F2003_serial/test_ark_butcher_f2003.f90 | 12 ++++++--- .../test_fnvector_manyvector_mod.f90 | 24 ++++++++--------- .../serial/test_fnvector_serial_mod.f90 | 26 +++++++++---------- include/sundials/sundials_nvector.h | 12 ++++----- 7 files changed, 58 insertions(+), 34 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 62512bb8b0..a3a937e8a2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -17,6 +17,8 @@ Fixed a bug in some Fortran examples where `c_null_ptr` was passed as an argumen to a function pointer instead of `c_null_funptr`. This caused compilation issues with the Cray Fortran compiler. +Enabled the Fortran interfaces to build with 32-bit `sunindextype`. + ## Changes to SUNDIALS in release v7.0.0 ### Major Feature diff --git a/doc/shared/RecentChanges.rst b/doc/shared/RecentChanges.rst index 7dc83fc3a4..fc88cc521a 100644 --- a/doc/shared/RecentChanges.rst +++ b/doc/shared/RecentChanges.rst @@ -16,3 +16,5 @@ instead of ``SameMajorVersion``. This fixes the issue seen Fixed a bug in some Fortran examples where ``c_null_ptr`` was passed as an argument to a function pointer instead of ``c_null_funptr``. This caused compilation issues with the Cray Fortran compiler. + +Enabled the Fortran interfaces to build with 32-bit ``sunindextype``. diff --git a/doc/superbuild/source/developers/style_guide/SourceCode.rst b/doc/superbuild/source/developers/style_guide/SourceCode.rst index 28e6196c47..c51873b0c9 100644 --- a/doc/superbuild/source/developers/style_guide/SourceCode.rst +++ b/doc/superbuild/source/developers/style_guide/SourceCode.rst @@ -171,6 +171,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 @@ -332,6 +335,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, dimensions of a matrix, or for the number of vectors. + 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. + .. _Style.Formatting: diff --git a/examples/arkode/F2003_serial/test_ark_butcher_f2003.f90 b/examples/arkode/F2003_serial/test_ark_butcher_f2003.f90 index a6132d9df6..d25b776a48 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 :: sunindextype = selected_int_kind(8) +#elif defined(SUNDIALS_INT64_T) + integer, parameter :: sunindextype = 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=sunindextype) :: liw(1), lrw(1) + real(C_DOUBLE) :: b(2), c(2), d(2), A(4) !===== Setup ==== diff --git a/examples/nvector/manyvector/test_fnvector_manyvector_mod.f90 b/examples/nvector/manyvector/test_fnvector_manyvector_mod.f90 index f3fb73836d..7cb2fd667f 100644 --- a/examples/nvector/manyvector/test_fnvector_manyvector_mod.f90 +++ b/examples/nvector/manyvector/test_fnvector_manyvector_mod.f90 @@ -32,7 +32,7 @@ module test_nvector_manyvector integer(kind=sunindextype), parameter :: nsubvecs = 2 integer(kind=sunindextype), parameter :: N1 = 100 ! individual vector length integer(kind=sunindextype), parameter :: N2 = 200 ! individual vector length - integer(kind=sunindextype),, parameter :: nv = 3 ! length of vector arrays + integer(c_int), parameter :: nv = 3 ! length of vector arrays integer(kind=sunindextype), parameter :: N = N1 + N2 ! overall manyvector length contains @@ -41,7 +41,7 @@ integer function smoke_tests() result(ret) implicit none integer(kind=sunindextype) :: ival ! integer work value - integer(c_long) :: lenrw(1), leniw(1) ! real and int work space size + integer(kind=sunindextype) :: 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 @@ -53,9 +53,9 @@ integer function smoke_tests() result(ret) !===== Setup ==== subvecs = FN_VNewVectorArray(nsubvecs, sunctx) tmp => FN_VMake_Serial(N1, x1data, sunctx) - call FN_VSetVecAtIndexVectorArray(subvecs, 0, tmp) + call FN_VSetVecAtIndexVectorArray(subvecs, 0_sunindextype, tmp) tmp => FN_VMake_Serial(N2, x2data, sunctx) - call FN_VSetVecAtIndexVectorArray(subvecs, 1, tmp) + call FN_VSetVecAtIndexVectorArray(subvecs, 1_sunindextype, tmp) x => FN_VNew_ManyVector(nsubvecs, subvecs, sunctx) call FN_VConst(ONE, x) @@ -64,8 +64,8 @@ integer function smoke_tests() result(ret) z => FN_VClone_ManyVector(x) call FN_VConst(ONE, z) - xvecs = FN_VCloneVectorArray(nv, x) - zvecs = FN_VCloneVectorArray(nv, z) + xvecs = FN_VCloneVectorArray(int(nv,sunindextype), x) + zvecs = FN_VCloneVectorArray(int(nv,sunindextype), z) nvarr = (/ ONE, ONE, ONE /) !===== Test ===== @@ -121,8 +121,8 @@ integer function smoke_tests() result(ret) call FN_VDestroy_ManyVector(x) call FN_VDestroy_ManyVector(y) call FN_VDestroy_ManyVector(z) - call FN_VDestroyVectorArray(xvecs, nv) - call FN_VDestroyVectorArray(zvecs, nv) + call FN_VDestroyVectorArray(xvecs, int(nv,sunindextype)) + call FN_VDestroyVectorArray(zvecs, int(nv,sunindextype)) ret = 0 @@ -140,11 +140,11 @@ integer function unit_tests() result(fails) !===== Setup ==== fails = 0 - subvecs = FN_VNewVectorArray(int(nsubvecs, 4), sunctx) + subvecs = FN_VNewVectorArray(nsubvecs, sunctx) tmp => FN_VMake_Serial(N1, x1data, sunctx) - call FN_VSetVecAtIndexVectorArray(subvecs, 0, tmp) + call FN_VSetVecAtIndexVectorArray(subvecs, 0_sunindextype, tmp) tmp => FN_VMake_Serial(N2, x2data, sunctx) - call FN_VSetVecAtIndexVectorArray(subvecs, 1, tmp) + call FN_VSetVecAtIndexVectorArray(subvecs, 1_sunindextype, tmp) x => FN_VNew_ManyVector(nsubvecs, subvecs, sunctx) call FN_VConst(ONE, x) @@ -155,7 +155,7 @@ integer function unit_tests() result(fails) fails = Test_FN_VLinearCombination(x, N, 0) !=== cleanup ==== - call FN_VDestroyVectorArray(subvecs, int(nsubvecs, 4)) + call FN_VDestroyVectorArray(subvecs, nsubvecs) call FN_VDestroy_ManyVector(x) end function unit_tests diff --git a/examples/nvector/serial/test_fnvector_serial_mod.f90 b/examples/nvector/serial/test_fnvector_serial_mod.f90 index 27652d23d8..eed4e4d4b2 100644 --- a/examples/nvector/serial/test_fnvector_serial_mod.f90 +++ b/examples/nvector/serial/test_fnvector_serial_mod.f90 @@ -29,21 +29,21 @@ module test_nvector_serial #endif integer(kind=sunindextype), parameter :: N = 100 ! vector length - integer(kind=sunindextype), parameter :: nv = 3 ! length 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(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=sunindextype) :: 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) @@ -53,8 +53,8 @@ integer function smoke_tests() result(ret) z => FN_VClone_Serial(x) call FN_VConst(ONE, z) - xvecs = FN_VCloneVectorArray(nv, x) - zvecs = FN_VCloneVectorArray(nv, z) + xvecs = FN_VCloneVectorArray(int(nv,sunindextype), x) + zvecs = FN_VCloneVectorArray(int(nv,sunindextype), z) nvarr = (/ ONE, ONE, ONE /) !===== Test ===== @@ -114,8 +114,8 @@ integer function smoke_tests() result(ret) call FN_VDestroy_Serial(x) call FN_VDestroy_Serial(y) call FN_VDestroy_Serial(z) - call FN_VDestroyVectorArray(xvecs, nv) - call FN_VDestroyVectorArray(zvecs, nv) + call FN_VDestroyVectorArray(xvecs, int(nv,sunindextype)) + call FN_VDestroyVectorArray(zvecs, int(nv,sunindextype)) ret = 0 diff --git a/include/sundials/sundials_nvector.h b/include/sundials/sundials_nvector.h index 68ea9340e7..b05ece8159 100644 --- a/include/sundials/sundials_nvector.h +++ b/include/sundials/sundials_nvector.h @@ -324,14 +324,14 @@ SUNDIALS_EXPORT SUNErrCode N_VBufUnpack(N_Vector x, void* buf); * Additional functions exported by NVECTOR module * ----------------------------------------------------------------- */ -SUNDIALS_EXPORT N_Vector* N_VNewVectorArray(int count, SUNContext sunctx); -SUNDIALS_EXPORT N_Vector* N_VCloneEmptyVectorArray(int count, N_Vector w); -SUNDIALS_EXPORT N_Vector* N_VCloneVectorArray(int count, N_Vector w); -SUNDIALS_EXPORT void N_VDestroyVectorArray(N_Vector* vs, int count); +SUNDIALS_EXPORT N_Vector* N_VNewVectorArray(sunindextype count, SUNContext sunctx); +SUNDIALS_EXPORT N_Vector* N_VCloneEmptyVectorArray(sunindextype count, N_Vector w); +SUNDIALS_EXPORT N_Vector* N_VCloneVectorArray(sunindextype count, N_Vector w); +SUNDIALS_EXPORT void N_VDestroyVectorArray(N_Vector* vs, sunindextype count); /* These function are really only for users of the Fortran interface */ -SUNDIALS_EXPORT N_Vector N_VGetVecAtIndexVectorArray(N_Vector* vs, int index); -SUNDIALS_EXPORT void N_VSetVecAtIndexVectorArray(N_Vector* vs, int index, +SUNDIALS_EXPORT N_Vector N_VGetVecAtIndexVectorArray(N_Vector* vs, sunindextype index); +SUNDIALS_EXPORT void N_VSetVecAtIndexVectorArray(N_Vector* vs, sunindextype index, N_Vector w); /* ----------------------------------------------------------------- From 4ca18779e457e15869d4777ca8017af9a5e00575 Mon Sep 17 00:00:00 2001 From: "Balos, Cody, J" Date: Fri, 29 Mar 2024 16:17:33 -0700 Subject: [PATCH 21/70] use long long --- swig/sundials/fsundials.i | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/swig/sundials/fsundials.i b/swig/sundials/fsundials.i index 314f77ac0a..7ea007a29c 100644 --- a/swig/sundials/fsundials.i +++ b/swig/sundials/fsundials.i @@ -56,7 +56,7 @@ #ifdef GENERATE_INT32 %apply int[] { sunindextype* }; #else -%apply long int[] { sunindextype* }; +%apply long long[] { sunindextype* }; #endif // Assume int* is an array of integers From 8c93b9dfe10620ebc71075f0012972b392d2d533 Mon Sep 17 00:00:00 2001 From: "Balos, Cody, J" Date: Fri, 29 Mar 2024 16:22:16 -0700 Subject: [PATCH 22/70] remove old fmod directories --- src/nvector/manyvector/fmod/CMakeLists.txt | 61 - .../manyvector/fmod/fnvector_manyvector_mod.c | 1007 --------- .../fmod/fnvector_manyvector_mod.f90 | 1545 -------------- .../fmod/fnvector_mpimanyvector_mod.c | 1167 ----------- .../fmod/fnvector_mpimanyvector_mod.f90 | 1805 ----------------- src/nvector/mpiplusx/fmod/CMakeLists.txt | 43 - .../mpiplusx/fmod/fnvector_mpiplusx_mod.c | 327 --- .../mpiplusx/fmod/fnvector_mpiplusx_mod.f90 | 241 --- src/nvector/openmp/fmod/CMakeLists.txt | 31 - src/nvector/openmp/fmod/fnvector_openmp_mod.c | 961 --------- .../openmp/fmod/fnvector_openmp_mod.f90 | 1461 ------------- src/nvector/parallel/fmod/CMakeLists.txt | 49 - .../parallel/fmod/fnvector_parallel_mod.c | 1173 ----------- .../parallel/fmod/fnvector_parallel_mod.f90 | 1781 ---------------- src/nvector/pthreads/fmod/CMakeLists.txt | 33 - .../pthreads/fmod/fnvector_pthreads_mod.c | 961 --------- .../pthreads/fmod/fnvector_pthreads_mod.f90 | 1461 ------------- src/nvector/serial/fmod/CMakeLists.txt | 31 - src/nvector/serial/fmod/fnvector_serial_mod.c | 955 --------- .../serial/fmod/fnvector_serial_mod.f90 | 1449 ------------- .../imexgus/fmod/CMakeLists.txt | 26 - .../fmod/fsunadaptcontroller_imexgus_mod.c | 359 ---- .../fmod/fsunadaptcontroller_imexgus_mod.f90 | 313 --- .../soderlind/fmod/CMakeLists.txt | 26 - .../fmod/fsunadaptcontroller_soderlind_mod.c | 501 ----- .../fsunadaptcontroller_soderlind_mod.f90 | 577 ------ src/sunlinsol/band/fmod/CMakeLists.txt | 33 - src/sunlinsol/band/fmod/fsunlinsol_band_mod.c | 337 --- .../band/fmod/fsunlinsol_band_mod.f90 | 271 --- src/sunlinsol/dense/fmod/CMakeLists.txt | 32 - .../dense/fmod/fsunlinsol_dense_mod.c | 337 --- .../dense/fmod/fsunlinsol_dense_mod.f90 | 271 --- src/sunlinsol/klu/fmod/CMakeLists.txt | 33 - src/sunlinsol/klu/fmod/fsunlinsol_klu_mod.c | 429 ---- src/sunlinsol/klu/fmod/fsunlinsol_klu_mod.f90 | 420 ---- src/sunlinsol/lapackdense/fmod/CMakeLists.txt | 33 - .../fmod/fsunlinsol_lapackdense_mod.c | 337 --- .../fmod/fsunlinsol_lapackdense_mod.f90 | 271 --- src/sunlinsol/pcg/fmod/CMakeLists.txt | 31 - src/sunlinsol/pcg/fmod/fsunlinsol_pcg_mod.c | 467 ----- src/sunlinsol/pcg/fmod/fsunlinsol_pcg_mod.f90 | 514 ----- src/sunlinsol/spbcgs/fmod/CMakeLists.txt | 31 - .../spbcgs/fmod/fsunlinsol_spbcgs_mod.c | 467 ----- .../spbcgs/fmod/fsunlinsol_spbcgs_mod.f90 | 514 ----- src/sunlinsol/spfgmr/fmod/CMakeLists.txt | 31 - .../spfgmr/fmod/fsunlinsol_spfgmr_mod.c | 481 ----- .../spfgmr/fmod/fsunlinsol_spfgmr_mod.f90 | 541 ----- src/sunlinsol/spgmr/fmod/CMakeLists.txt | 31 - .../spgmr/fmod/fsunlinsol_spgmr_mod.c | 481 ----- .../spgmr/fmod/fsunlinsol_spgmr_mod.f90 | 541 ----- src/sunlinsol/sptfqmr/fmod/CMakeLists.txt | 31 - .../sptfqmr/fmod/fsunlinsol_sptfqmr_mod.c | 467 ----- .../sptfqmr/fmod/fsunlinsol_sptfqmr_mod.f90 | 514 ----- src/sunmatrix/band/fmod/CMakeLists.txt | 31 - src/sunmatrix/band/fmod/fsunmatrix_band_mod.c | 500 ----- .../band/fmod/fsunmatrix_band_mod.f90 | 583 ------ src/sunmatrix/dense/fmod/CMakeLists.txt | 31 - .../dense/fmod/fsunmatrix_dense_mod.c | 430 ---- .../dense/fmod/fsunmatrix_dense_mod.f90 | 451 ---- src/sunmatrix/sparse/fmod/CMakeLists.txt | 31 - .../sparse/fmod/fsunmatrix_sparse_mod.c | 541 ----- .../sparse/fmod/fsunmatrix_sparse_mod.f90 | 662 ------ .../fixedpoint/fmod/CMakeLists.txt | 32 - .../fmod/fsunnonlinsol_fixedpoint_mod.c | 419 ---- .../fmod/fsunnonlinsol_fixedpoint_mod.f90 | 425 ---- src/sunnonlinsol/newton/fmod/CMakeLists.txt | 32 - .../newton/fmod/fsunnonlinsol_newton_mod.c | 429 ---- .../newton/fmod/fsunnonlinsol_newton_mod.f90 | 443 ---- 68 files changed, 31330 deletions(-) delete mode 100644 src/nvector/manyvector/fmod/CMakeLists.txt delete mode 100644 src/nvector/manyvector/fmod/fnvector_manyvector_mod.c delete mode 100644 src/nvector/manyvector/fmod/fnvector_manyvector_mod.f90 delete mode 100644 src/nvector/manyvector/fmod/fnvector_mpimanyvector_mod.c delete mode 100644 src/nvector/manyvector/fmod/fnvector_mpimanyvector_mod.f90 delete mode 100644 src/nvector/mpiplusx/fmod/CMakeLists.txt delete mode 100644 src/nvector/mpiplusx/fmod/fnvector_mpiplusx_mod.c delete mode 100644 src/nvector/mpiplusx/fmod/fnvector_mpiplusx_mod.f90 delete mode 100644 src/nvector/openmp/fmod/CMakeLists.txt delete mode 100644 src/nvector/openmp/fmod/fnvector_openmp_mod.c delete mode 100644 src/nvector/openmp/fmod/fnvector_openmp_mod.f90 delete mode 100644 src/nvector/parallel/fmod/CMakeLists.txt delete mode 100644 src/nvector/parallel/fmod/fnvector_parallel_mod.c delete mode 100644 src/nvector/parallel/fmod/fnvector_parallel_mod.f90 delete mode 100644 src/nvector/pthreads/fmod/CMakeLists.txt delete mode 100644 src/nvector/pthreads/fmod/fnvector_pthreads_mod.c delete mode 100644 src/nvector/pthreads/fmod/fnvector_pthreads_mod.f90 delete mode 100644 src/nvector/serial/fmod/CMakeLists.txt delete mode 100644 src/nvector/serial/fmod/fnvector_serial_mod.c delete mode 100644 src/nvector/serial/fmod/fnvector_serial_mod.f90 delete mode 100644 src/sunadaptcontroller/imexgus/fmod/CMakeLists.txt delete mode 100644 src/sunadaptcontroller/imexgus/fmod/fsunadaptcontroller_imexgus_mod.c delete mode 100644 src/sunadaptcontroller/imexgus/fmod/fsunadaptcontroller_imexgus_mod.f90 delete mode 100644 src/sunadaptcontroller/soderlind/fmod/CMakeLists.txt delete mode 100644 src/sunadaptcontroller/soderlind/fmod/fsunadaptcontroller_soderlind_mod.c delete mode 100644 src/sunadaptcontroller/soderlind/fmod/fsunadaptcontroller_soderlind_mod.f90 delete mode 100644 src/sunlinsol/band/fmod/CMakeLists.txt delete mode 100644 src/sunlinsol/band/fmod/fsunlinsol_band_mod.c delete mode 100644 src/sunlinsol/band/fmod/fsunlinsol_band_mod.f90 delete mode 100644 src/sunlinsol/dense/fmod/CMakeLists.txt delete mode 100644 src/sunlinsol/dense/fmod/fsunlinsol_dense_mod.c delete mode 100644 src/sunlinsol/dense/fmod/fsunlinsol_dense_mod.f90 delete mode 100644 src/sunlinsol/klu/fmod/CMakeLists.txt delete mode 100644 src/sunlinsol/klu/fmod/fsunlinsol_klu_mod.c delete mode 100644 src/sunlinsol/klu/fmod/fsunlinsol_klu_mod.f90 delete mode 100644 src/sunlinsol/lapackdense/fmod/CMakeLists.txt delete mode 100644 src/sunlinsol/lapackdense/fmod/fsunlinsol_lapackdense_mod.c delete mode 100644 src/sunlinsol/lapackdense/fmod/fsunlinsol_lapackdense_mod.f90 delete mode 100644 src/sunlinsol/pcg/fmod/CMakeLists.txt delete mode 100644 src/sunlinsol/pcg/fmod/fsunlinsol_pcg_mod.c delete mode 100644 src/sunlinsol/pcg/fmod/fsunlinsol_pcg_mod.f90 delete mode 100644 src/sunlinsol/spbcgs/fmod/CMakeLists.txt delete mode 100644 src/sunlinsol/spbcgs/fmod/fsunlinsol_spbcgs_mod.c delete mode 100644 src/sunlinsol/spbcgs/fmod/fsunlinsol_spbcgs_mod.f90 delete mode 100644 src/sunlinsol/spfgmr/fmod/CMakeLists.txt delete mode 100644 src/sunlinsol/spfgmr/fmod/fsunlinsol_spfgmr_mod.c delete mode 100644 src/sunlinsol/spfgmr/fmod/fsunlinsol_spfgmr_mod.f90 delete mode 100644 src/sunlinsol/spgmr/fmod/CMakeLists.txt delete mode 100644 src/sunlinsol/spgmr/fmod/fsunlinsol_spgmr_mod.c delete mode 100644 src/sunlinsol/spgmr/fmod/fsunlinsol_spgmr_mod.f90 delete mode 100644 src/sunlinsol/sptfqmr/fmod/CMakeLists.txt delete mode 100644 src/sunlinsol/sptfqmr/fmod/fsunlinsol_sptfqmr_mod.c delete mode 100644 src/sunlinsol/sptfqmr/fmod/fsunlinsol_sptfqmr_mod.f90 delete mode 100644 src/sunmatrix/band/fmod/CMakeLists.txt delete mode 100644 src/sunmatrix/band/fmod/fsunmatrix_band_mod.c delete mode 100644 src/sunmatrix/band/fmod/fsunmatrix_band_mod.f90 delete mode 100644 src/sunmatrix/dense/fmod/CMakeLists.txt delete mode 100644 src/sunmatrix/dense/fmod/fsunmatrix_dense_mod.c delete mode 100644 src/sunmatrix/dense/fmod/fsunmatrix_dense_mod.f90 delete mode 100644 src/sunmatrix/sparse/fmod/CMakeLists.txt delete mode 100644 src/sunmatrix/sparse/fmod/fsunmatrix_sparse_mod.c delete mode 100644 src/sunmatrix/sparse/fmod/fsunmatrix_sparse_mod.f90 delete mode 100644 src/sunnonlinsol/fixedpoint/fmod/CMakeLists.txt delete mode 100644 src/sunnonlinsol/fixedpoint/fmod/fsunnonlinsol_fixedpoint_mod.c delete mode 100644 src/sunnonlinsol/fixedpoint/fmod/fsunnonlinsol_fixedpoint_mod.f90 delete mode 100644 src/sunnonlinsol/newton/fmod/CMakeLists.txt delete mode 100644 src/sunnonlinsol/newton/fmod/fsunnonlinsol_newton_mod.c delete mode 100644 src/sunnonlinsol/newton/fmod/fsunnonlinsol_newton_mod.f90 diff --git a/src/nvector/manyvector/fmod/CMakeLists.txt b/src/nvector/manyvector/fmod/CMakeLists.txt deleted file mode 100644 index 8033da01f7..0000000000 --- a/src/nvector/manyvector/fmod/CMakeLists.txt +++ /dev/null @@ -1,61 +0,0 @@ -# --------------------------------------------------------------- -# 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/fnvector_manyvector_mod.c deleted file mode 100644 index 7012d29bf1..0000000000 --- a/src/nvector/manyvector/fmod/fnvector_manyvector_mod.c +++ /dev/null @@ -1,1007 +0,0 @@ -/* ---------------------------------------------------------------------------- - * 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(int64_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, int64_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, int64_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 int64_t _wrap_FN_VGetNumSubvectors_ManyVector(N_Vector farg1) { - int64_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, long *farg2, long *farg3) { - N_Vector arg1 = (N_Vector) 0 ; - long *arg2 = (long *) 0 ; - long *arg3 = (long *) 0 ; - - arg1 = (N_Vector)(farg1); - arg2 = (long *)(farg2); - arg3 = (long *)(farg3); - N_VSpace_ManyVector(arg1,arg2,arg3); -} - - -SWIGEXPORT int64_t _wrap_FN_VGetLength_ManyVector(N_Vector farg1) { - int64_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 int64_t _wrap_FN_VGetSubvectorLocalLength_ManyVector(N_Vector farg1, int64_t const *farg2) { - int64_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, int64_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/fnvector_manyvector_mod.f90 b/src/nvector/manyvector/fmod/fnvector_manyvector_mod.f90 deleted file mode 100644 index c36042496f..0000000000 --- a/src/nvector/manyvector/fmod/fnvector_manyvector_mod.f90 +++ /dev/null @@ -1,1545 +0,0 @@ -! 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_INT64_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_INT64_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_INT64_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_INT64_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_INT64_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_INT64_T), intent(in) :: farg2 -integer(C_INT64_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 -integer(C_INT64_T), intent(in) :: farg2 -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_INT64_T), intent(in) :: num_subvectors -type(C_PTR) :: vec_array -type(C_PTR) :: sunctx -type(C_PTR) :: fresult -integer(C_INT64_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_INT64_T), intent(in) :: vec_num -type(C_PTR) :: fresult -type(C_PTR) :: farg1 -integer(C_INT64_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_INT64_T), intent(in) :: vec_num -integer(C_INT) :: fresult -type(C_PTR) :: farg1 -type(C_PTR) :: farg2 -integer(C_INT64_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_INT64_T) :: swig_result -type(N_Vector), target, intent(inout) :: v -integer(C_INT64_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_LONG), dimension(*), target, intent(inout) :: lrw -integer(C_LONG), 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_INT64_T) :: swig_result -type(N_Vector), target, intent(inout) :: v -integer(C_INT64_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_INT64_T) :: swig_result -type(N_Vector), target, intent(inout) :: v -integer(C_INT64_T), intent(in) :: vec_num -integer(C_INT64_T) :: fresult -type(C_PTR) :: farg1 -integer(C_INT64_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_INT64_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 -integer(C_INT64_T), intent(in) :: vec_num -type(C_PTR) :: fresult -type(C_PTR) :: farg1 -integer(C_INT64_T) :: farg2 - -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/fnvector_mpimanyvector_mod.c b/src/nvector/manyvector/fmod/fnvector_mpimanyvector_mod.c deleted file mode 100644 index bbf156e18c..0000000000 --- a/src/nvector/manyvector/fmod/fnvector_mpimanyvector_mod.c +++ /dev/null @@ -1,1167 +0,0 @@ -/* ---------------------------------------------------------------------------- - * 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, int64_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(int64_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, int64_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, int64_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 int64_t _wrap_FN_VGetNumSubvectors_MPIManyVector(N_Vector farg1) { - int64_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, long *farg2, long *farg3) { - N_Vector arg1 = (N_Vector) 0 ; - long *arg2 = (long *) 0 ; - long *arg3 = (long *) 0 ; - - arg1 = (N_Vector)(farg1); - arg2 = (long *)(farg2); - arg3 = (long *)(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 int64_t _wrap_FN_VGetLength_MPIManyVector(N_Vector farg1) { - int64_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 int64_t _wrap_FN_VGetSubvectorLocalLength_MPIManyVector(N_Vector farg1, int64_t const *farg2) { - int64_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, int64_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/fnvector_mpimanyvector_mod.f90 b/src/nvector/manyvector/fmod/fnvector_mpimanyvector_mod.f90 deleted file mode 100644 index a4bb027bcb..0000000000 --- a/src/nvector/manyvector/fmod/fnvector_mpimanyvector_mod.f90 +++ /dev/null @@ -1,1805 +0,0 @@ -! 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_INT64_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_INT64_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_INT64_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_INT64_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_INT64_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_INT64_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_INT64_T), intent(in) :: farg2 -integer(C_INT64_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 -integer(C_INT64_T), intent(in) :: farg2 -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_INT64_T), intent(in) :: num_subvectors -type(C_PTR) :: vec_array -type(C_PTR) :: sunctx -type(C_PTR) :: fresult -integer(C_INT) :: farg1 -integer(C_INT64_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_INT64_T), intent(in) :: num_subvectors -type(C_PTR) :: vec_array -type(C_PTR) :: sunctx -type(C_PTR) :: fresult -integer(C_INT64_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_INT64_T), intent(in) :: vec_num -type(C_PTR) :: fresult -type(C_PTR) :: farg1 -integer(C_INT64_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_INT64_T), intent(in) :: vec_num -integer(C_INT) :: fresult -type(C_PTR) :: farg1 -type(C_PTR) :: farg2 -integer(C_INT64_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_INT64_T) :: swig_result -type(N_Vector), target, intent(inout) :: v -integer(C_INT64_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_LONG), dimension(*), target, intent(inout) :: lrw -integer(C_LONG), 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_INT64_T) :: swig_result -type(N_Vector), target, intent(inout) :: v -integer(C_INT64_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_INT64_T) :: swig_result -type(N_Vector), target, intent(inout) :: v -integer(C_INT64_T), intent(in) :: vec_num -integer(C_INT64_T) :: fresult -type(C_PTR) :: farg1 -integer(C_INT64_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_INT64_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 -integer(C_INT64_T), intent(in) :: vec_num -type(C_PTR) :: fresult -type(C_PTR) :: farg1 -integer(C_INT64_T) :: farg2 - -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/mpiplusx/fmod/CMakeLists.txt b/src/nvector/mpiplusx/fmod/CMakeLists.txt deleted file mode 100644 index d068b3609f..0000000000 --- a/src/nvector/mpiplusx/fmod/CMakeLists.txt +++ /dev/null @@ -1,43 +0,0 @@ -# --------------------------------------------------------------- -# 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/fnvector_mpiplusx_mod.c deleted file mode 100644 index 7292a6ae2f..0000000000 --- a/src/nvector/mpiplusx/fmod/fnvector_mpiplusx_mod.c +++ /dev/null @@ -1,327 +0,0 @@ -/* ---------------------------------------------------------------------------- - * 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 int64_t _wrap_FN_VGetLocalLength_MPIPlusX(N_Vector farg1) { - int64_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/fnvector_mpiplusx_mod.f90 b/src/nvector/mpiplusx/fmod/fnvector_mpiplusx_mod.f90 deleted file mode 100644 index b3fd51a5ca..0000000000 --- a/src/nvector/mpiplusx/fmod/fnvector_mpiplusx_mod.f90 +++ /dev/null @@ -1,241 +0,0 @@ -! 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_INT64_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_INT64_T) :: swig_result -type(N_Vector), target, intent(inout) :: v -integer(C_INT64_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/openmp/fmod/CMakeLists.txt b/src/nvector/openmp/fmod/CMakeLists.txt deleted file mode 100644 index 31f4363b84..0000000000 --- a/src/nvector/openmp/fmod/CMakeLists.txt +++ /dev/null @@ -1,31 +0,0 @@ -# --------------------------------------------------------------- -# 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/fnvector_openmp_mod.c deleted file mode 100644 index d173984a44..0000000000 --- a/src/nvector/openmp/fmod/fnvector_openmp_mod.c +++ /dev/null @@ -1,961 +0,0 @@ -/* ---------------------------------------------------------------------------- - * 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(int64_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(int64_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(int64_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 int64_t _wrap_FN_VGetLength_OpenMP(N_Vector farg1) { - int64_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, long *farg2, long *farg3) { - N_Vector arg1 = (N_Vector) 0 ; - long *arg2 = (long *) 0 ; - long *arg3 = (long *) 0 ; - - arg1 = (N_Vector)(farg1); - arg2 = (long *)(farg2); - arg3 = (long *)(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, int64_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/fnvector_openmp_mod.f90 b/src/nvector/openmp/fmod/fnvector_openmp_mod.f90 deleted file mode 100644 index 50a2618282..0000000000 --- a/src/nvector/openmp/fmod/fnvector_openmp_mod.f90 +++ /dev/null @@ -1,1461 +0,0 @@ -! 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_INT64_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_INT64_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_INT64_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_INT64_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_INT64_T), intent(in) :: vec_length -integer(C_INT), intent(in) :: num_threads -type(C_PTR) :: sunctx -type(C_PTR) :: fresult -integer(C_INT64_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_INT64_T), intent(in) :: vec_length -integer(C_INT), intent(in) :: num_threads -type(C_PTR) :: sunctx -type(C_PTR) :: fresult -integer(C_INT64_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_INT64_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_INT64_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_INT64_T) :: swig_result -type(N_Vector), target, intent(inout) :: v -integer(C_INT64_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_LONG), dimension(*), target, intent(inout) :: lrw -integer(C_LONG), 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_INT64_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/parallel/fmod/CMakeLists.txt b/src/nvector/parallel/fmod/CMakeLists.txt deleted file mode 100644 index 3b4031b8c9..0000000000 --- a/src/nvector/parallel/fmod/CMakeLists.txt +++ /dev/null @@ -1,49 +0,0 @@ -# --------------------------------------------------------------- -# 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/fnvector_parallel_mod.c deleted file mode 100644 index 3d0aa44e17..0000000000 --- a/src/nvector/parallel/fmod/fnvector_parallel_mod.c +++ /dev/null @@ -1,1173 +0,0 @@ -/* ---------------------------------------------------------------------------- - * 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, int64_t const *farg2, int64_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, int64_t const *farg2, int64_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, int64_t const *farg2, int64_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 int64_t _wrap_FN_VGetLength_Parallel(N_Vector farg1) { - int64_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 int64_t _wrap_FN_VGetLocalLength_Parallel(N_Vector farg1) { - int64_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, long *farg2, long *farg3) { - N_Vector arg1 = (N_Vector) 0 ; - long *arg2 = (long *) 0 ; - long *arg3 = (long *) 0 ; - - arg1 = (N_Vector)(farg1); - arg2 = (long *)(farg2); - arg3 = (long *)(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, int64_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/fnvector_parallel_mod.f90 b/src/nvector/parallel/fmod/fnvector_parallel_mod.f90 deleted file mode 100644 index 715a254c19..0000000000 --- a/src/nvector/parallel/fmod/fnvector_parallel_mod.f90 +++ /dev/null @@ -1,1781 +0,0 @@ -! 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_INT64_T), intent(in) :: farg2 -integer(C_INT64_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_INT64_T), intent(in) :: farg2 -integer(C_INT64_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_INT64_T), intent(in) :: farg2 -integer(C_INT64_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_INT64_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_INT64_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_INT64_T), intent(in) :: local_length -integer(C_INT64_T), intent(in) :: global_length -type(C_PTR) :: sunctx -type(C_PTR) :: fresult -integer(C_INT) :: farg1 -integer(C_INT64_T) :: farg2 -integer(C_INT64_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_INT64_T), intent(in) :: local_length -integer(C_INT64_T), intent(in) :: global_length -type(C_PTR) :: sunctx -type(C_PTR) :: fresult -integer(C_INT) :: farg1 -integer(C_INT64_T) :: farg2 -integer(C_INT64_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_INT64_T), intent(in) :: local_length -integer(C_INT64_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_INT64_T) :: farg2 -integer(C_INT64_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_INT64_T) :: swig_result -type(N_Vector), target, intent(inout) :: v -integer(C_INT64_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_INT64_T) :: swig_result -type(N_Vector), target, intent(inout) :: v -integer(C_INT64_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_LONG), dimension(*), target, intent(inout) :: lrw -integer(C_LONG), 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_INT64_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/pthreads/fmod/CMakeLists.txt b/src/nvector/pthreads/fmod/CMakeLists.txt deleted file mode 100644 index e43ebc9c08..0000000000 --- a/src/nvector/pthreads/fmod/CMakeLists.txt +++ /dev/null @@ -1,33 +0,0 @@ -# --------------------------------------------------------------- -# 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/fnvector_pthreads_mod.c deleted file mode 100644 index 31aae83b2b..0000000000 --- a/src/nvector/pthreads/fmod/fnvector_pthreads_mod.c +++ /dev/null @@ -1,961 +0,0 @@ -/* ---------------------------------------------------------------------------- - * 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(int64_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(int64_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(int64_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 int64_t _wrap_FN_VGetLength_Pthreads(N_Vector farg1) { - int64_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, long *farg2, long *farg3) { - N_Vector arg1 = (N_Vector) 0 ; - long *arg2 = (long *) 0 ; - long *arg3 = (long *) 0 ; - - arg1 = (N_Vector)(farg1); - arg2 = (long *)(farg2); - arg3 = (long *)(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, int64_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/fnvector_pthreads_mod.f90 b/src/nvector/pthreads/fmod/fnvector_pthreads_mod.f90 deleted file mode 100644 index 5af51476e6..0000000000 --- a/src/nvector/pthreads/fmod/fnvector_pthreads_mod.f90 +++ /dev/null @@ -1,1461 +0,0 @@ -! 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_INT64_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_INT64_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_INT64_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_INT64_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_INT64_T), intent(in) :: vec_length -integer(C_INT), intent(in) :: n_threads -type(C_PTR) :: sunctx -type(C_PTR) :: fresult -integer(C_INT64_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_INT64_T), intent(in) :: vec_length -integer(C_INT), intent(in) :: n_threads -type(C_PTR) :: sunctx -type(C_PTR) :: fresult -integer(C_INT64_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_INT64_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_INT64_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_INT64_T) :: swig_result -type(N_Vector), target, intent(inout) :: v -integer(C_INT64_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_LONG), dimension(*), target, intent(inout) :: lrw -integer(C_LONG), 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_INT64_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/serial/fmod/CMakeLists.txt b/src/nvector/serial/fmod/CMakeLists.txt deleted file mode 100644 index 293239b9fb..0000000000 --- a/src/nvector/serial/fmod/CMakeLists.txt +++ /dev/null @@ -1,31 +0,0 @@ -# --------------------------------------------------------------- -# 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/fnvector_serial_mod.c deleted file mode 100644 index 191dd35b8c..0000000000 --- a/src/nvector/serial/fmod/fnvector_serial_mod.c +++ /dev/null @@ -1,955 +0,0 @@ -/* ---------------------------------------------------------------------------- - * 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(int64_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(int64_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(int64_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 int64_t _wrap_FN_VGetLength_Serial(N_Vector farg1) { - int64_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, long *farg2, long *farg3) { - N_Vector arg1 = (N_Vector) 0 ; - long *arg2 = (long *) 0 ; - long *arg3 = (long *) 0 ; - - arg1 = (N_Vector)(farg1); - arg2 = (long *)(farg2); - arg3 = (long *)(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, int64_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/fnvector_serial_mod.f90 b/src/nvector/serial/fmod/fnvector_serial_mod.f90 deleted file mode 100644 index f789b7932b..0000000000 --- a/src/nvector/serial/fmod/fnvector_serial_mod.f90 +++ /dev/null @@ -1,1449 +0,0 @@ -! 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_INT64_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_INT64_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_INT64_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_INT64_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_INT64_T), intent(in) :: vec_length -type(C_PTR) :: sunctx -type(C_PTR) :: fresult -integer(C_INT64_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_INT64_T), intent(in) :: vec_length -type(C_PTR) :: sunctx -type(C_PTR) :: fresult -integer(C_INT64_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_INT64_T), intent(in) :: vec_length -real(C_DOUBLE), dimension(*), target, intent(inout) :: v_data -type(C_PTR) :: sunctx -type(C_PTR) :: fresult -integer(C_INT64_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_INT64_T) :: swig_result -type(N_Vector), target, intent(inout) :: v -integer(C_INT64_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_LONG), dimension(*), target, intent(inout) :: lrw -integer(C_LONG), 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_INT64_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/sunadaptcontroller/imexgus/fmod/CMakeLists.txt b/src/sunadaptcontroller/imexgus/fmod/CMakeLists.txt deleted file mode 100644 index 0c9fd4f2c2..0000000000 --- a/src/sunadaptcontroller/imexgus/fmod/CMakeLists.txt +++ /dev/null @@ -1,26 +0,0 @@ -# --------------------------------------------------------------- -# 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/fsunadaptcontroller_imexgus_mod.c b/src/sunadaptcontroller/imexgus/fmod/fsunadaptcontroller_imexgus_mod.c deleted file mode 100644 index 1351217e15..0000000000 --- a/src/sunadaptcontroller/imexgus/fmod/fsunadaptcontroller_imexgus_mod.c +++ /dev/null @@ -1,359 +0,0 @@ -/* ---------------------------------------------------------------------------- - * 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/fsunadaptcontroller_imexgus_mod.f90 b/src/sunadaptcontroller/imexgus/fmod/fsunadaptcontroller_imexgus_mod.f90 deleted file mode 100644 index 29c98ad378..0000000000 --- a/src/sunadaptcontroller/imexgus/fmod/fsunadaptcontroller_imexgus_mod.f90 +++ /dev/null @@ -1,313 +0,0 @@ -! 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/fmod/CMakeLists.txt b/src/sunadaptcontroller/soderlind/fmod/CMakeLists.txt deleted file mode 100644 index 44aa8a4922..0000000000 --- a/src/sunadaptcontroller/soderlind/fmod/CMakeLists.txt +++ /dev/null @@ -1,26 +0,0 @@ -# --------------------------------------------------------------- -# 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/fsunadaptcontroller_soderlind_mod.c b/src/sunadaptcontroller/soderlind/fmod/fsunadaptcontroller_soderlind_mod.c deleted file mode 100644 index f3da8c259b..0000000000 --- a/src/sunadaptcontroller/soderlind/fmod/fsunadaptcontroller_soderlind_mod.c +++ /dev/null @@ -1,501 +0,0 @@ -/* ---------------------------------------------------------------------------- - * 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/fsunadaptcontroller_soderlind_mod.f90 b/src/sunadaptcontroller/soderlind/fmod/fsunadaptcontroller_soderlind_mod.f90 deleted file mode 100644 index cd6bc5262a..0000000000 --- a/src/sunadaptcontroller/soderlind/fmod/fsunadaptcontroller_soderlind_mod.f90 +++ /dev/null @@ -1,577 +0,0 @@ -! 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/sunlinsol/band/fmod/CMakeLists.txt b/src/sunlinsol/band/fmod/CMakeLists.txt deleted file mode 100644 index 250f17c914..0000000000 --- a/src/sunlinsol/band/fmod/CMakeLists.txt +++ /dev/null @@ -1,33 +0,0 @@ -# ---------------------------------------------------------------------- -# 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/fsunlinsol_band_mod.c deleted file mode 100644 index 2d78bb53cc..0000000000 --- a/src/sunlinsol/band/fmod/fsunlinsol_band_mod.c +++ /dev/null @@ -1,337 +0,0 @@ -/* ---------------------------------------------------------------------------- - * 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 int64_t _wrap_FSUNLinSolLastFlag_Band(SUNLinearSolver farg1) { - int64_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/fsunlinsol_band_mod.f90 b/src/sunlinsol/band/fmod/fsunlinsol_band_mod.f90 deleted file mode 100644 index 7ed68c8ac2..0000000000 --- a/src/sunlinsol/band/fmod/fsunlinsol_band_mod.f90 +++ /dev/null @@ -1,271 +0,0 @@ -! 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_INT64_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_INT64_T) :: swig_result -type(SUNLinearSolver), target, intent(inout) :: s -integer(C_INT64_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/dense/fmod/CMakeLists.txt b/src/sunlinsol/dense/fmod/CMakeLists.txt deleted file mode 100644 index 61bdf87108..0000000000 --- a/src/sunlinsol/dense/fmod/CMakeLists.txt +++ /dev/null @@ -1,32 +0,0 @@ -# ---------------------------------------------------------------------- -# 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/fsunlinsol_dense_mod.c deleted file mode 100644 index c6d6fba9d4..0000000000 --- a/src/sunlinsol/dense/fmod/fsunlinsol_dense_mod.c +++ /dev/null @@ -1,337 +0,0 @@ -/* ---------------------------------------------------------------------------- - * 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 int64_t _wrap_FSUNLinSolLastFlag_Dense(SUNLinearSolver farg1) { - int64_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/fsunlinsol_dense_mod.f90 b/src/sunlinsol/dense/fmod/fsunlinsol_dense_mod.f90 deleted file mode 100644 index 8d8af81057..0000000000 --- a/src/sunlinsol/dense/fmod/fsunlinsol_dense_mod.f90 +++ /dev/null @@ -1,271 +0,0 @@ -! 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_INT64_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_INT64_T) :: swig_result -type(SUNLinearSolver), target, intent(inout) :: s -integer(C_INT64_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/klu/fmod/CMakeLists.txt b/src/sunlinsol/klu/fmod/CMakeLists.txt deleted file mode 100644 index 4a0323d921..0000000000 --- a/src/sunlinsol/klu/fmod/CMakeLists.txt +++ /dev/null @@ -1,33 +0,0 @@ -# --------------------------------------------------------------- -# 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/fsunlinsol_klu_mod.c deleted file mode 100644 index 6277d00adf..0000000000 --- a/src/sunlinsol/klu/fmod/fsunlinsol_klu_mod.c +++ /dev/null @@ -1,429 +0,0 @@ -/* ---------------------------------------------------------------------------- - * 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, int64_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_l_symbolic *result = 0 ; - - arg1 = (SUNLinearSolver)(farg1); - result = (klu_l_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_l_numeric *result = 0 ; - - arg1 = (SUNLinearSolver)(farg1); - result = (klu_l_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_l_common *result = 0 ; - - arg1 = (SUNLinearSolver)(farg1); - result = (klu_l_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 int64_t _wrap_FSUNLinSolLastFlag_KLU(SUNLinearSolver farg1) { - int64_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/fsunlinsol_klu_mod.f90 b/src/sunlinsol/klu/fmod/fsunlinsol_klu_mod.f90 deleted file mode 100644 index 08fc791620..0000000000 --- a/src/sunlinsol/klu/fmod/fsunlinsol_klu_mod.f90 +++ /dev/null @@ -1,420 +0,0 @@ -! 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_l_symbolic - type(SwigClassWrapper), public :: swigdata - end type - public :: FSUNLinSol_KLUGetSymbolic - type, public :: SWIGTYPE_p_klu_l_numeric - type(SwigClassWrapper), public :: swigdata - end type - public :: FSUNLinSol_KLUGetNumeric - type, public :: SWIGTYPE_p_klu_l_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_INT64_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_INT64_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_INT64_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_INT64_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_l_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_l_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_l_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_INT64_T) :: swig_result -type(SUNLinearSolver), target, intent(inout) :: s -integer(C_INT64_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/lapackdense/fmod/CMakeLists.txt b/src/sunlinsol/lapackdense/fmod/CMakeLists.txt deleted file mode 100644 index 12bcb2fae2..0000000000 --- a/src/sunlinsol/lapackdense/fmod/CMakeLists.txt +++ /dev/null @@ -1,33 +0,0 @@ -# ---------------------------------------------------------------------- -# 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/fsunlinsol_lapackdense_mod.c deleted file mode 100644 index b83ae9f110..0000000000 --- a/src/sunlinsol/lapackdense/fmod/fsunlinsol_lapackdense_mod.c +++ /dev/null @@ -1,337 +0,0 @@ -/* ---------------------------------------------------------------------------- - * 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 int64_t _wrap_FSUNLinSolLastFlag_LapackDense(SUNLinearSolver farg1) { - int64_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/fsunlinsol_lapackdense_mod.f90 b/src/sunlinsol/lapackdense/fmod/fsunlinsol_lapackdense_mod.f90 deleted file mode 100644 index d42ca5ac96..0000000000 --- a/src/sunlinsol/lapackdense/fmod/fsunlinsol_lapackdense_mod.f90 +++ /dev/null @@ -1,271 +0,0 @@ -! 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_INT64_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_INT64_T) :: swig_result -type(SUNLinearSolver), target, intent(inout) :: s -integer(C_INT64_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/pcg/fmod/CMakeLists.txt b/src/sunlinsol/pcg/fmod/CMakeLists.txt deleted file mode 100644 index 535741e7d6..0000000000 --- a/src/sunlinsol/pcg/fmod/CMakeLists.txt +++ /dev/null @@ -1,31 +0,0 @@ -# --------------------------------------------------------------- -# 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/fsunlinsol_pcg_mod.c deleted file mode 100644 index 4f7f9aa112..0000000000 --- a/src/sunlinsol/pcg/fmod/fsunlinsol_pcg_mod.c +++ /dev/null @@ -1,467 +0,0 @@ -/* ---------------------------------------------------------------------------- - * 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 int64_t _wrap_FSUNLinSolLastFlag_PCG(SUNLinearSolver farg1) { - int64_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/fsunlinsol_pcg_mod.f90 b/src/sunlinsol/pcg/fmod/fsunlinsol_pcg_mod.f90 deleted file mode 100644 index 9031eb215d..0000000000 --- a/src/sunlinsol/pcg/fmod/fsunlinsol_pcg_mod.f90 +++ /dev/null @@ -1,514 +0,0 @@ -! 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_INT64_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_INT64_T) :: swig_result -type(SUNLinearSolver), target, intent(inout) :: s -integer(C_INT64_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/spbcgs/fmod/CMakeLists.txt b/src/sunlinsol/spbcgs/fmod/CMakeLists.txt deleted file mode 100644 index d1b588396f..0000000000 --- a/src/sunlinsol/spbcgs/fmod/CMakeLists.txt +++ /dev/null @@ -1,31 +0,0 @@ -# --------------------------------------------------------------- -# 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/fsunlinsol_spbcgs_mod.c deleted file mode 100644 index 9804227b8e..0000000000 --- a/src/sunlinsol/spbcgs/fmod/fsunlinsol_spbcgs_mod.c +++ /dev/null @@ -1,467 +0,0 @@ -/* ---------------------------------------------------------------------------- - * 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 int64_t _wrap_FSUNLinSolLastFlag_SPBCGS(SUNLinearSolver farg1) { - int64_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/fsunlinsol_spbcgs_mod.f90 b/src/sunlinsol/spbcgs/fmod/fsunlinsol_spbcgs_mod.f90 deleted file mode 100644 index feee12ba35..0000000000 --- a/src/sunlinsol/spbcgs/fmod/fsunlinsol_spbcgs_mod.f90 +++ /dev/null @@ -1,514 +0,0 @@ -! 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_INT64_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_INT64_T) :: swig_result -type(SUNLinearSolver), target, intent(inout) :: s -integer(C_INT64_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/spfgmr/fmod/CMakeLists.txt b/src/sunlinsol/spfgmr/fmod/CMakeLists.txt deleted file mode 100644 index c2cbd50123..0000000000 --- a/src/sunlinsol/spfgmr/fmod/CMakeLists.txt +++ /dev/null @@ -1,31 +0,0 @@ -# ------------------------------------------------------------------------ -# 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/fsunlinsol_spfgmr_mod.c deleted file mode 100644 index 80b9111179..0000000000 --- a/src/sunlinsol/spfgmr/fmod/fsunlinsol_spfgmr_mod.c +++ /dev/null @@ -1,481 +0,0 @@ -/* ---------------------------------------------------------------------------- - * 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 int64_t _wrap_FSUNLinSolLastFlag_SPFGMR(SUNLinearSolver farg1) { - int64_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/fsunlinsol_spfgmr_mod.f90 b/src/sunlinsol/spfgmr/fmod/fsunlinsol_spfgmr_mod.f90 deleted file mode 100644 index 3b260f1982..0000000000 --- a/src/sunlinsol/spfgmr/fmod/fsunlinsol_spfgmr_mod.f90 +++ /dev/null @@ -1,541 +0,0 @@ -! 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_INT64_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_INT64_T) :: swig_result -type(SUNLinearSolver), target, intent(inout) :: s -integer(C_INT64_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/spgmr/fmod/CMakeLists.txt b/src/sunlinsol/spgmr/fmod/CMakeLists.txt deleted file mode 100644 index 9ea74e0e45..0000000000 --- a/src/sunlinsol/spgmr/fmod/CMakeLists.txt +++ /dev/null @@ -1,31 +0,0 @@ -# ------------------------------------------------------------------------ -# 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/fsunlinsol_spgmr_mod.c deleted file mode 100644 index 3685bc5d6b..0000000000 --- a/src/sunlinsol/spgmr/fmod/fsunlinsol_spgmr_mod.c +++ /dev/null @@ -1,481 +0,0 @@ -/* ---------------------------------------------------------------------------- - * 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 int64_t _wrap_FSUNLinSolLastFlag_SPGMR(SUNLinearSolver farg1) { - int64_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/fsunlinsol_spgmr_mod.f90 b/src/sunlinsol/spgmr/fmod/fsunlinsol_spgmr_mod.f90 deleted file mode 100644 index 370dda691e..0000000000 --- a/src/sunlinsol/spgmr/fmod/fsunlinsol_spgmr_mod.f90 +++ /dev/null @@ -1,541 +0,0 @@ -! 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_INT64_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_INT64_T) :: swig_result -type(SUNLinearSolver), target, intent(inout) :: s -integer(C_INT64_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/sptfqmr/fmod/CMakeLists.txt b/src/sunlinsol/sptfqmr/fmod/CMakeLists.txt deleted file mode 100644 index ff3dc41956..0000000000 --- a/src/sunlinsol/sptfqmr/fmod/CMakeLists.txt +++ /dev/null @@ -1,31 +0,0 @@ -# ------------------------------------------------------------------------ -# 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/fsunlinsol_sptfqmr_mod.c deleted file mode 100644 index 1c782e3080..0000000000 --- a/src/sunlinsol/sptfqmr/fmod/fsunlinsol_sptfqmr_mod.c +++ /dev/null @@ -1,467 +0,0 @@ -/* ---------------------------------------------------------------------------- - * 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 int64_t _wrap_FSUNLinSolLastFlag_SPTFQMR(SUNLinearSolver farg1) { - int64_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/fsunlinsol_sptfqmr_mod.f90 b/src/sunlinsol/sptfqmr/fmod/fsunlinsol_sptfqmr_mod.f90 deleted file mode 100644 index 0c97277b7f..0000000000 --- a/src/sunlinsol/sptfqmr/fmod/fsunlinsol_sptfqmr_mod.f90 +++ /dev/null @@ -1,514 +0,0 @@ -! 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_INT64_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_INT64_T) :: swig_result -type(SUNLinearSolver), target, intent(inout) :: s -integer(C_INT64_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/sunmatrix/band/fmod/CMakeLists.txt b/src/sunmatrix/band/fmod/CMakeLists.txt deleted file mode 100644 index 465260d783..0000000000 --- a/src/sunmatrix/band/fmod/CMakeLists.txt +++ /dev/null @@ -1,31 +0,0 @@ -# --------------------------------------------------------------- -# 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/fsunmatrix_band_mod.c deleted file mode 100644 index dda3324003..0000000000 --- a/src/sunmatrix/band/fmod/fsunmatrix_band_mod.c +++ /dev/null @@ -1,500 +0,0 @@ -/* ---------------------------------------------------------------------------- - * 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(int64_t const *farg1, int64_t const *farg2, int64_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(int64_t const *farg1, int64_t const *farg2, int64_t const *farg3, int64_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 int64_t _wrap_FSUNBandMatrix_Rows(SUNMatrix farg1) { - int64_t fresult ; - SUNMatrix arg1 = (SUNMatrix) 0 ; - sunindextype result; - - arg1 = (SUNMatrix)(farg1); - result = SUNBandMatrix_Rows(arg1); - fresult = (sunindextype)(result); - return fresult; -} - - -SWIGEXPORT int64_t _wrap_FSUNBandMatrix_Columns(SUNMatrix farg1) { - int64_t fresult ; - SUNMatrix arg1 = (SUNMatrix) 0 ; - sunindextype result; - - arg1 = (SUNMatrix)(farg1); - result = SUNBandMatrix_Columns(arg1); - fresult = (sunindextype)(result); - return fresult; -} - - -SWIGEXPORT int64_t _wrap_FSUNBandMatrix_LowerBandwidth(SUNMatrix farg1) { - int64_t fresult ; - SUNMatrix arg1 = (SUNMatrix) 0 ; - sunindextype result; - - arg1 = (SUNMatrix)(farg1); - result = SUNBandMatrix_LowerBandwidth(arg1); - fresult = (sunindextype)(result); - return fresult; -} - - -SWIGEXPORT int64_t _wrap_FSUNBandMatrix_UpperBandwidth(SUNMatrix farg1) { - int64_t fresult ; - SUNMatrix arg1 = (SUNMatrix) 0 ; - sunindextype result; - - arg1 = (SUNMatrix)(farg1); - result = SUNBandMatrix_UpperBandwidth(arg1); - fresult = (sunindextype)(result); - return fresult; -} - - -SWIGEXPORT int64_t _wrap_FSUNBandMatrix_StoredUpperBandwidth(SUNMatrix farg1) { - int64_t fresult ; - SUNMatrix arg1 = (SUNMatrix) 0 ; - sunindextype result; - - arg1 = (SUNMatrix)(farg1); - result = SUNBandMatrix_StoredUpperBandwidth(arg1); - fresult = (sunindextype)(result); - return fresult; -} - - -SWIGEXPORT int64_t _wrap_FSUNBandMatrix_LDim(SUNMatrix farg1) { - int64_t fresult ; - SUNMatrix arg1 = (SUNMatrix) 0 ; - sunindextype result; - - arg1 = (SUNMatrix)(farg1); - result = SUNBandMatrix_LDim(arg1); - fresult = (sunindextype)(result); - return fresult; -} - - -SWIGEXPORT int64_t _wrap_FSUNBandMatrix_LData(SUNMatrix farg1) { - int64_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/fsunmatrix_band_mod.f90 b/src/sunmatrix/band/fmod/fsunmatrix_band_mod.f90 deleted file mode 100644 index 4ebf3a229e..0000000000 --- a/src/sunmatrix/band/fmod/fsunmatrix_band_mod.f90 +++ /dev/null @@ -1,583 +0,0 @@ -! 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_INT64_T), intent(in) :: farg1 -integer(C_INT64_T), intent(in) :: farg2 -integer(C_INT64_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_INT64_T), intent(in) :: farg1 -integer(C_INT64_T), intent(in) :: farg2 -integer(C_INT64_T), intent(in) :: farg3 -integer(C_INT64_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_INT64_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_INT64_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_INT64_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_INT64_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_INT64_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_INT64_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_INT64_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 -integer(C_INT64_T), intent(in) :: farg2 -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_INT64_T), intent(in) :: n -integer(C_INT64_T), intent(in) :: mu -integer(C_INT64_T), intent(in) :: ml -type(C_PTR) :: sunctx -type(C_PTR) :: fresult -integer(C_INT64_T) :: farg1 -integer(C_INT64_T) :: farg2 -integer(C_INT64_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_INT64_T), intent(in) :: n -integer(C_INT64_T), intent(in) :: mu -integer(C_INT64_T), intent(in) :: ml -integer(C_INT64_T), intent(in) :: smu -type(C_PTR) :: sunctx -type(C_PTR) :: fresult -integer(C_INT64_T) :: farg1 -integer(C_INT64_T) :: farg2 -integer(C_INT64_T) :: farg3 -integer(C_INT64_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_INT64_T) :: swig_result -type(SUNMatrix), target, intent(inout) :: a -integer(C_INT64_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_INT64_T) :: swig_result -type(SUNMatrix), target, intent(inout) :: a -integer(C_INT64_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_INT64_T) :: swig_result -type(SUNMatrix), target, intent(inout) :: a -integer(C_INT64_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_INT64_T) :: swig_result -type(SUNMatrix), target, intent(inout) :: a -integer(C_INT64_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_INT64_T) :: swig_result -type(SUNMatrix), target, intent(inout) :: a -integer(C_INT64_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_INT64_T) :: swig_result -type(SUNMatrix), target, intent(inout) :: a -integer(C_INT64_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_INT64_T) :: swig_result -type(SUNMatrix), target, intent(inout) :: a -integer(C_INT64_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 -integer(C_INT64_T), intent(in) :: j -type(C_PTR) :: fresult -type(C_PTR) :: farg1 -integer(C_INT64_T) :: farg2 - -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/dense/fmod/CMakeLists.txt b/src/sunmatrix/dense/fmod/CMakeLists.txt deleted file mode 100644 index 987102b9f6..0000000000 --- a/src/sunmatrix/dense/fmod/CMakeLists.txt +++ /dev/null @@ -1,31 +0,0 @@ -# --------------------------------------------------------------- -# 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/fsunmatrix_dense_mod.c deleted file mode 100644 index 8709e95887..0000000000 --- a/src/sunmatrix/dense/fmod/fsunmatrix_dense_mod.c +++ /dev/null @@ -1,430 +0,0 @@ -/* ---------------------------------------------------------------------------- - * 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(int64_t const *farg1, int64_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 int64_t _wrap_FSUNDenseMatrix_Rows(SUNMatrix farg1) { - int64_t fresult ; - SUNMatrix arg1 = (SUNMatrix) 0 ; - sunindextype result; - - arg1 = (SUNMatrix)(farg1); - result = SUNDenseMatrix_Rows(arg1); - fresult = (sunindextype)(result); - return fresult; -} - - -SWIGEXPORT int64_t _wrap_FSUNDenseMatrix_Columns(SUNMatrix farg1) { - int64_t fresult ; - SUNMatrix arg1 = (SUNMatrix) 0 ; - sunindextype result; - - arg1 = (SUNMatrix)(farg1); - result = SUNDenseMatrix_Columns(arg1); - fresult = (sunindextype)(result); - return fresult; -} - - -SWIGEXPORT int64_t _wrap_FSUNDenseMatrix_LData(SUNMatrix farg1) { - int64_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/fsunmatrix_dense_mod.f90 b/src/sunmatrix/dense/fmod/fsunmatrix_dense_mod.f90 deleted file mode 100644 index 3f1b68e2bd..0000000000 --- a/src/sunmatrix/dense/fmod/fsunmatrix_dense_mod.f90 +++ /dev/null @@ -1,451 +0,0 @@ -! 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_INT64_T), intent(in) :: farg1 -integer(C_INT64_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_INT64_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_INT64_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_INT64_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 -integer(C_INT64_T), intent(in) :: farg2 -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_INT64_T), intent(in) :: m -integer(C_INT64_T), intent(in) :: n -type(C_PTR) :: sunctx -type(C_PTR) :: fresult -integer(C_INT64_T) :: farg1 -integer(C_INT64_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_INT64_T) :: swig_result -type(SUNMatrix), target, intent(inout) :: a -integer(C_INT64_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_INT64_T) :: swig_result -type(SUNMatrix), target, intent(inout) :: a -integer(C_INT64_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_INT64_T) :: swig_result -type(SUNMatrix), target, intent(inout) :: a -integer(C_INT64_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 -integer(C_INT64_T), intent(in) :: j -type(C_PTR) :: fresult -type(C_PTR) :: farg1 -integer(C_INT64_T) :: farg2 - -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/sparse/fmod/CMakeLists.txt b/src/sunmatrix/sparse/fmod/CMakeLists.txt deleted file mode 100644 index fb0ed79b4c..0000000000 --- a/src/sunmatrix/sparse/fmod/CMakeLists.txt +++ /dev/null @@ -1,31 +0,0 @@ -# --------------------------------------------------------------- -# 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/fsunmatrix_sparse_mod.c deleted file mode 100644 index b49bdc9945..0000000000 --- a/src/sunmatrix/sparse/fmod/fsunmatrix_sparse_mod.c +++ /dev/null @@ -1,541 +0,0 @@ -/* ---------------------------------------------------------------------------- - * 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(int64_t const *farg1, int64_t const *farg2, int64_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, int64_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 int64_t _wrap_FSUNSparseMatrix_Rows(SUNMatrix farg1) { - int64_t fresult ; - SUNMatrix arg1 = (SUNMatrix) 0 ; - sunindextype result; - - arg1 = (SUNMatrix)(farg1); - result = SUNSparseMatrix_Rows(arg1); - fresult = (sunindextype)(result); - return fresult; -} - - -SWIGEXPORT int64_t _wrap_FSUNSparseMatrix_Columns(SUNMatrix farg1) { - int64_t fresult ; - SUNMatrix arg1 = (SUNMatrix) 0 ; - sunindextype result; - - arg1 = (SUNMatrix)(farg1); - result = SUNSparseMatrix_Columns(arg1); - fresult = (sunindextype)(result); - return fresult; -} - - -SWIGEXPORT int64_t _wrap_FSUNSparseMatrix_NNZ(SUNMatrix farg1) { - int64_t fresult ; - SUNMatrix arg1 = (SUNMatrix) 0 ; - sunindextype result; - - arg1 = (SUNMatrix)(farg1); - result = SUNSparseMatrix_NNZ(arg1); - fresult = (sunindextype)(result); - return fresult; -} - - -SWIGEXPORT int64_t _wrap_FSUNSparseMatrix_NP(SUNMatrix farg1) { - int64_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; -} - -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; -} - - diff --git a/src/sunmatrix/sparse/fmod/fsunmatrix_sparse_mod.f90 b/src/sunmatrix/sparse/fmod/fsunmatrix_sparse_mod.f90 deleted file mode 100644 index f128403e93..0000000000 --- a/src/sunmatrix/sparse/fmod/fsunmatrix_sparse_mod.f90 +++ /dev/null @@ -1,662 +0,0 @@ -! 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_INT64_T), intent(in) :: farg1 -integer(C_INT64_T), intent(in) :: farg2 -integer(C_INT64_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_INT64_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_INT64_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_INT64_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_INT64_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_INT64_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_INT64_T), intent(in) :: m -integer(C_INT64_T), intent(in) :: n -integer(C_INT64_T), intent(in) :: nnz -integer(C_INT), intent(in) :: sparsetype -type(C_PTR) :: sunctx -type(C_PTR) :: fresult -integer(C_INT64_T) :: farg1 -integer(C_INT64_T) :: farg2 -integer(C_INT64_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_INT64_T), intent(in) :: nnz -integer(C_INT) :: fresult -type(C_PTR) :: farg1 -integer(C_INT64_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_INT64_T) :: swig_result -type(SUNMatrix), target, intent(inout) :: a -integer(C_INT64_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_INT64_T) :: swig_result -type(SUNMatrix), target, intent(inout) :: a -integer(C_INT64_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_INT64_T) :: swig_result -type(SUNMatrix), target, intent(inout) :: a -integer(C_INT64_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_INT64_T) :: swig_result -type(SUNMatrix), target, intent(inout) :: a -integer(C_INT64_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 -integer(C_INT64_T), 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_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 -integer(C_INT64_T), 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_IndexPointers(farg1) -call c_f_pointer(fresult, swig_result, [FSUNSparseMatrix_NP(a)+1]) -end function - - -end module diff --git a/src/sunnonlinsol/fixedpoint/fmod/CMakeLists.txt b/src/sunnonlinsol/fixedpoint/fmod/CMakeLists.txt deleted file mode 100644 index bb2f0097b6..0000000000 --- a/src/sunnonlinsol/fixedpoint/fmod/CMakeLists.txt +++ /dev/null @@ -1,32 +0,0 @@ -# --------------------------------------------------------------- -# 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/fsunnonlinsol_fixedpoint_mod.c b/src/sunnonlinsol/fixedpoint/fmod/fsunnonlinsol_fixedpoint_mod.c deleted file mode 100644 index 3911f51201..0000000000 --- a/src/sunnonlinsol/fixedpoint/fmod/fsunnonlinsol_fixedpoint_mod.c +++ /dev/null @@ -1,419 +0,0 @@ -/* ---------------------------------------------------------------------------- - * 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/fsunnonlinsol_fixedpoint_mod.f90 b/src/sunnonlinsol/fixedpoint/fmod/fsunnonlinsol_fixedpoint_mod.f90 deleted file mode 100644 index 763e069388..0000000000 --- a/src/sunnonlinsol/fixedpoint/fmod/fsunnonlinsol_fixedpoint_mod.f90 +++ /dev/null @@ -1,425 +0,0 @@ -! 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/fmod/CMakeLists.txt b/src/sunnonlinsol/newton/fmod/CMakeLists.txt deleted file mode 100644 index 46be1ab585..0000000000 --- a/src/sunnonlinsol/newton/fmod/CMakeLists.txt +++ /dev/null @@ -1,32 +0,0 @@ -# --------------------------------------------------------------- -# 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/fsunnonlinsol_newton_mod.c b/src/sunnonlinsol/newton/fmod/fsunnonlinsol_newton_mod.c deleted file mode 100644 index a7df613d41..0000000000 --- a/src/sunnonlinsol/newton/fmod/fsunnonlinsol_newton_mod.c +++ /dev/null @@ -1,429 +0,0 @@ -/* ---------------------------------------------------------------------------- - * 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/fsunnonlinsol_newton_mod.f90 b/src/sunnonlinsol/newton/fmod/fsunnonlinsol_newton_mod.f90 deleted file mode 100644 index 53a4bb2bd3..0000000000 --- a/src/sunnonlinsol/newton/fmod/fsunnonlinsol_newton_mod.f90 +++ /dev/null @@ -1,443 +0,0 @@ -! 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 From a07187adb20ccf30d933a6b0a1c27e3fc6ec154e Mon Sep 17 00:00:00 2001 From: "Balos, Cody, J" Date: Fri, 29 Mar 2024 16:23:34 -0700 Subject: [PATCH 23/70] revert files that should not have been changed --- src/nvector/cuda/nvector_cuda.cu | 2 +- src/nvector/hip/nvector_hip.hip.cpp | 2 +- src/nvector/raja/nvector_raja.cpp | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/nvector/cuda/nvector_cuda.cu b/src/nvector/cuda/nvector_cuda.cu index 5c528b801d..5acd83c038 100644 --- a/src/nvector/cuda/nvector_cuda.cu +++ b/src/nvector/cuda/nvector_cuda.cu @@ -750,7 +750,7 @@ void N_VDestroy_Cuda(N_Vector v) return; } -void N_VSpace_Cuda(N_Vector X, long int* lrw, long int* liw) +void N_VSpace_Cuda(N_Vector X, sunindextype* lrw, sunindextype* liw) { *lrw = NVEC_CUDA_CONTENT(X)->length; *liw = 2; diff --git a/src/nvector/hip/nvector_hip.hip.cpp b/src/nvector/hip/nvector_hip.hip.cpp index 77546eb890..95f2d09f25 100644 --- a/src/nvector/hip/nvector_hip.hip.cpp +++ b/src/nvector/hip/nvector_hip.hip.cpp @@ -716,7 +716,7 @@ void N_VDestroy_Hip(N_Vector v) return; } -void N_VSpace_Hip(N_Vector X, long int* lrw, long int* liw) +void N_VSpace_Hip(N_Vector X, sunindextype* lrw, sunindextype* liw) { *lrw = NVEC_HIP_CONTENT(X)->length; *liw = 2; diff --git a/src/nvector/raja/nvector_raja.cpp b/src/nvector/raja/nvector_raja.cpp index 8c82c55c8e..5369a06f1a 100644 --- a/src/nvector/raja/nvector_raja.cpp +++ b/src/nvector/raja/nvector_raja.cpp @@ -748,7 +748,7 @@ void N_VDestroy_Raja(N_Vector v) return; } -void N_VSpace_Raja(N_Vector X, long int* lrw, long int* liw) +void N_VSpace_Raja(N_Vector X, sunindextype* lrw, sunindextype* liw) { *lrw = NVEC_RAJA_CONTENT(X)->length; *liw = 2; From 63ad76a59d490b802d3ef8734e184b62d0e1fdbe Mon Sep 17 00:00:00 2001 From: "Balos, Cody, J" Date: Fri, 29 Mar 2024 16:27:50 -0700 Subject: [PATCH 24/70] format --- include/sundials/sundials_nvector.h | 13 ++++++++----- include/sunnonlinsol/sunnonlinsol_fixedpoint.h | 4 ++-- .../fixedpoint/sunnonlinsol_fixedpoint.c | 4 ++-- 3 files changed, 12 insertions(+), 9 deletions(-) diff --git a/include/sundials/sundials_nvector.h b/include/sundials/sundials_nvector.h index b05ece8159..a376c6496d 100644 --- a/include/sundials/sundials_nvector.h +++ b/include/sundials/sundials_nvector.h @@ -324,15 +324,18 @@ SUNDIALS_EXPORT SUNErrCode N_VBufUnpack(N_Vector x, void* buf); * Additional functions exported by NVECTOR module * ----------------------------------------------------------------- */ -SUNDIALS_EXPORT N_Vector* N_VNewVectorArray(sunindextype count, SUNContext sunctx); -SUNDIALS_EXPORT N_Vector* N_VCloneEmptyVectorArray(sunindextype count, N_Vector w); +SUNDIALS_EXPORT N_Vector* N_VNewVectorArray(sunindextype count, + SUNContext sunctx); +SUNDIALS_EXPORT N_Vector* N_VCloneEmptyVectorArray(sunindextype count, + N_Vector w); SUNDIALS_EXPORT N_Vector* N_VCloneVectorArray(sunindextype count, N_Vector w); SUNDIALS_EXPORT void N_VDestroyVectorArray(N_Vector* vs, sunindextype count); /* These function are really only for users of the Fortran interface */ -SUNDIALS_EXPORT N_Vector N_VGetVecAtIndexVectorArray(N_Vector* vs, sunindextype index); -SUNDIALS_EXPORT void N_VSetVecAtIndexVectorArray(N_Vector* vs, sunindextype index, - N_Vector w); +SUNDIALS_EXPORT N_Vector N_VGetVecAtIndexVectorArray(N_Vector* vs, + sunindextype index); +SUNDIALS_EXPORT void N_VSetVecAtIndexVectorArray(N_Vector* vs, + sunindextype index, N_Vector w); /* ----------------------------------------------------------------- * Debugging functions diff --git a/include/sunnonlinsol/sunnonlinsol_fixedpoint.h b/include/sunnonlinsol/sunnonlinsol_fixedpoint.h index 99f4faa9fc..80d9b0c026 100644 --- a/include/sunnonlinsol/sunnonlinsol_fixedpoint.h +++ b/include/sunnonlinsol/sunnonlinsol_fixedpoint.h @@ -75,8 +75,8 @@ SUNDIALS_EXPORT SUNNonlinearSolver SUNNonlinSol_FixedPoint(N_Vector y, int m, SUNContext sunctx); SUNDIALS_EXPORT -SUNNonlinearSolver SUNNonlinSol_FixedPointSens(sunindextype count, N_Vector y, int m, - SUNContext sunctx); +SUNNonlinearSolver SUNNonlinSol_FixedPointSens(sunindextype count, N_Vector y, + int m, SUNContext sunctx); /* core functions */ SUNDIALS_EXPORT diff --git a/src/sunnonlinsol/fixedpoint/sunnonlinsol_fixedpoint.c b/src/sunnonlinsol/fixedpoint/sunnonlinsol_fixedpoint.c index c3a13f3374..ba34949267 100644 --- a/src/sunnonlinsol/fixedpoint/sunnonlinsol_fixedpoint.c +++ b/src/sunnonlinsol/fixedpoint/sunnonlinsol_fixedpoint.c @@ -102,8 +102,8 @@ SUNNonlinearSolver SUNNonlinSol_FixedPoint(N_Vector y, int m, SUNContext sunctx) Constructor wrapper to create a new fixed point solver for sensitivity solvers ============================================================================*/ -SUNNonlinearSolver SUNNonlinSol_FixedPointSens(sunindextype count, N_Vector y, int m, - SUNContext sunctx) +SUNNonlinearSolver SUNNonlinSol_FixedPointSens(sunindextype count, N_Vector y, + int m, SUNContext sunctx) { SUNFunctionBegin(sunctx); SUNNonlinearSolver NLS = NULL; From 7edab46c1bd2c8b367df88b8eaa566dae79165b6 Mon Sep 17 00:00:00 2001 From: "Balos, Cody, J" Date: Tue, 2 Apr 2024 15:41:32 -0700 Subject: [PATCH 25/70] change sunindextype to myindextype in examples --- examples/arkode/F2003_serial/ark_analytic_f2003.f90 | 4 ++-- .../arkode/F2003_serial/test_ark_butcher_f2003.f90 | 4 ++-- examples/cvode/F2003_serial/cv_advdiff_bnd_f2003.f90 | 4 ++-- .../cvodes/F2003_serial/cvs_analytic_fp_f2003.f90 | 4 ++-- examples/ida/F2003_serial/idaRoberts_dns_f2003.f90 | 4 ++-- .../idas/F2003_serial/idasAkzoNob_ASAi_dns_f2003.f90 | 4 ++-- examples/kinsol/F2003_serial/kinDiagon_kry_f2003.f90 | 4 ++-- .../manyvector/test_fnvector_manyvector_mod.f90 | 8 ++++---- examples/nvector/serial/test_fnvector_serial_mod.f90 | 8 ++++---- examples/nvector/test_nvector.f90 | 4 ++-- examples/sunlinsol/band/test_fsunlinsol_band_mod.f90 | 8 ++++---- .../sunlinsol/dense/test_fsunlinsol_dense_mod.f90 | 8 ++++---- .../lapackdense/test_fsunlinsol_lapackdense_mod.f90 | 4 ++-- .../pcg/serial/test_fsunlinsol_pcg_mod_serial.f90 | 4 ++-- .../serial/test_fsunlinsol_spbcgs_mod_serial.f90 | 4 ++-- .../serial/test_fsunlinsol_spfgmr_mod_serial.f90 | 4 ++-- .../serial/test_fsunlinsol_spgmr_mod_serial.f90 | 4 ++-- .../serial/test_fsunlinsol_sptfqmr_mod_serial.f90 | 4 ++-- examples/sunmatrix/band/test_fsunmatrix_band_mod.f90 | 4 ++-- .../sunmatrix/dense/test_fsunmatrix_dense_mod.f90 | 8 ++++---- .../sunmatrix/sparse/test_fsunmatrix_sparse_mod.f90 | 12 ++++++------ .../fixedpoint/test_fsunnonlinsol_fixedpoint_mod.f90 | 4 ++-- .../newton/test_fsunnonlinsol_newton_mod.f90 | 4 ++-- 23 files changed, 60 insertions(+), 60 deletions(-) diff --git a/examples/arkode/F2003_serial/ark_analytic_f2003.f90 b/examples/arkode/F2003_serial/ark_analytic_f2003.f90 index 37853af2e1..0e36c7fcb9 100644 --- a/examples/arkode/F2003_serial/ark_analytic_f2003.f90 +++ b/examples/arkode/F2003_serial/ark_analytic_f2003.f90 @@ -39,9 +39,9 @@ module analytic_mod ! 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 :: sunindextype = selected_int_kind(8) + integer, parameter :: myindextype = selected_int_kind(8) #elif defined(SUNDIALS_INT64_T) - integer, parameter :: sunindextype = selected_int_kind(16) + integer, parameter :: myindextype = selected_int_kind(16) #endif ! number of equations diff --git a/examples/arkode/F2003_serial/test_ark_butcher_f2003.f90 b/examples/arkode/F2003_serial/test_ark_butcher_f2003.f90 index d25b776a48..98906bab4a 100644 --- a/examples/arkode/F2003_serial/test_ark_butcher_f2003.f90 +++ b/examples/arkode/F2003_serial/test_ark_butcher_f2003.f90 @@ -17,9 +17,9 @@ module test_arkode_butcher_table #if defined(SUNDIALS_INT32_T) - integer, parameter :: sunindextype = selected_int_kind(8) + integer, parameter :: myindextype = selected_int_kind(8) #elif defined(SUNDIALS_INT64_T) - integer, parameter :: sunindextype = selected_int_kind(16) + integer, parameter :: myindextype = selected_int_kind(16) #endif contains diff --git a/examples/cvode/F2003_serial/cv_advdiff_bnd_f2003.f90 b/examples/cvode/F2003_serial/cv_advdiff_bnd_f2003.f90 index 7bf700753b..95cc5505e0 100644 --- a/examples/cvode/F2003_serial/cv_advdiff_bnd_f2003.f90 +++ b/examples/cvode/F2003_serial/cv_advdiff_bnd_f2003.f90 @@ -47,9 +47,9 @@ module advdiff_mod ! 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 :: sunindextype = selected_int_kind(8) + integer, parameter :: myindextype = selected_int_kind(8) #elif defined(SUNDIALS_INT64_T) - integer, parameter :: sunindextype = selected_int_kind(16) + integer, parameter :: myindextype = selected_int_kind(16) #endif ! setup and number of equations diff --git a/examples/cvodes/F2003_serial/cvs_analytic_fp_f2003.f90 b/examples/cvodes/F2003_serial/cvs_analytic_fp_f2003.f90 index b2c9fb3dd7..bf69db5039 100644 --- a/examples/cvodes/F2003_serial/cvs_analytic_fp_f2003.f90 +++ b/examples/cvodes/F2003_serial/cvs_analytic_fp_f2003.f90 @@ -39,9 +39,9 @@ module ode_mod ! 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 :: sunindextype = selected_int_kind(8) + integer, parameter :: myindextype = selected_int_kind(8) #elif defined(SUNDIALS_INT64_T) - integer, parameter :: sunindextype = selected_int_kind(16) + integer, parameter :: myindextype = selected_int_kind(16) #endif ! number of equations diff --git a/examples/ida/F2003_serial/idaRoberts_dns_f2003.f90 b/examples/ida/F2003_serial/idaRoberts_dns_f2003.f90 index 8b1214c328..523fbc28d7 100644 --- a/examples/ida/F2003_serial/idaRoberts_dns_f2003.f90 +++ b/examples/ida/F2003_serial/idaRoberts_dns_f2003.f90 @@ -45,9 +45,9 @@ module dae_mod ! 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 :: sunindextype = selected_int_kind(8) + integer, parameter :: myindextype = selected_int_kind(8) #elif defined(SUNDIALS_INT64_T) - integer, parameter :: sunindextype = selected_int_kind(16) + integer, parameter :: myindextype = selected_int_kind(16) #endif integer(kind=sunindextype), parameter :: neq = 3 diff --git a/examples/idas/F2003_serial/idasAkzoNob_ASAi_dns_f2003.f90 b/examples/idas/F2003_serial/idasAkzoNob_ASAi_dns_f2003.f90 index 95f0dfaa80..ad428100c9 100644 --- a/examples/idas/F2003_serial/idasAkzoNob_ASAi_dns_f2003.f90 +++ b/examples/idas/F2003_serial/idasAkzoNob_ASAi_dns_f2003.f90 @@ -39,9 +39,9 @@ module dae_mod ! 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 :: sunindextype = selected_int_kind(8) + integer, parameter :: myindextype = selected_int_kind(8) #elif defined(SUNDIALS_INT64_T) - integer, parameter :: sunindextype = selected_int_kind(16) + integer, parameter :: myindextype = selected_int_kind(16) #endif ! problem parameters diff --git a/examples/kinsol/F2003_serial/kinDiagon_kry_f2003.f90 b/examples/kinsol/F2003_serial/kinDiagon_kry_f2003.f90 index 3392e3ec0b..bb52aeb7ea 100644 --- a/examples/kinsol/F2003_serial/kinDiagon_kry_f2003.f90 +++ b/examples/kinsol/F2003_serial/kinDiagon_kry_f2003.f90 @@ -39,9 +39,9 @@ module kinDiagonKry_mod ! 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 :: sunindextype = selected_int_kind(8) + integer, parameter :: myindextype = selected_int_kind(8) #elif defined(SUNDIALS_INT64_T) - integer, parameter :: sunindextype = selected_int_kind(16) + integer, parameter :: myindextype = selected_int_kind(16) #endif integer(kind=sunindextype), parameter :: neq = 128 diff --git a/examples/nvector/manyvector/test_fnvector_manyvector_mod.f90 b/examples/nvector/manyvector/test_fnvector_manyvector_mod.f90 index 7cb2fd667f..bdceb70bf6 100644 --- a/examples/nvector/manyvector/test_fnvector_manyvector_mod.f90 +++ b/examples/nvector/manyvector/test_fnvector_manyvector_mod.f90 @@ -24,9 +24,9 @@ module test_nvector_manyvector implicit none #if defined(SUNDIALS_INT32_T) - integer, parameter :: sunindextype = selected_int_kind(8) + integer, parameter :: myindextype = selected_int_kind(8) #elif defined(SUNDIALS_INT64_T) - integer, parameter :: sunindextype = selected_int_kind(16) + integer, parameter :: myindextype = selected_int_kind(16) #endif integer(kind=sunindextype), parameter :: nsubvecs = 2 @@ -170,9 +170,9 @@ function check_ans(ans, X, local_length) result(failure) implicit none #if defined(SUNDIALS_INT32_T) - integer, parameter :: sunindextype = selected_int_kind(8) + integer, parameter :: myindextype = selected_int_kind(8) #elif defined(SUNDIALS_INT64_T) - integer, parameter :: sunindextype = selected_int_kind(16) + integer, parameter :: myindextype = selected_int_kind(16) #endif real(C_DOUBLE) :: ans diff --git a/examples/nvector/serial/test_fnvector_serial_mod.f90 b/examples/nvector/serial/test_fnvector_serial_mod.f90 index eed4e4d4b2..8df31ec13f 100644 --- a/examples/nvector/serial/test_fnvector_serial_mod.f90 +++ b/examples/nvector/serial/test_fnvector_serial_mod.f90 @@ -23,9 +23,9 @@ module test_nvector_serial implicit none #if defined(SUNDIALS_INT32_T) - integer, parameter :: sunindextype = selected_int_kind(8) + integer, parameter :: myindextype = selected_int_kind(8) #elif defined(SUNDIALS_INT64_T) - integer, parameter :: sunindextype = selected_int_kind(16) + integer, parameter :: myindextype = selected_int_kind(16) #endif integer(kind=sunindextype), parameter :: N = 100 ! vector length @@ -152,9 +152,9 @@ function check_ans(ans, X, local_length) result(failure) implicit none #if defined(SUNDIALS_INT32_T) - integer, parameter :: sunindextype = selected_int_kind(8) + integer, parameter :: myindextype = selected_int_kind(8) #elif defined(SUNDIALS_INT64_T) - integer, parameter :: sunindextype = selected_int_kind(16) + integer, parameter :: myindextype = selected_int_kind(16) #endif integer(kind=sunindextype) :: failure diff --git a/examples/nvector/test_nvector.f90 b/examples/nvector/test_nvector.f90 index e8e8e9d0ca..bdb29ded69 100644 --- a/examples/nvector/test_nvector.f90 +++ b/examples/nvector/test_nvector.f90 @@ -27,9 +27,9 @@ module test_fnvector implicit none #if defined(SUNDIALS_INT32_T) - integer, parameter :: sunindextype = selected_int_kind(8) + integer, parameter :: myindextype = selected_int_kind(8) #elif defined(SUNDIALS_INT64_T) - integer, parameter :: sunindextype = selected_int_kind(16) + integer, parameter :: myindextype = selected_int_kind(16) #endif integer(C_INT), external :: check_ans diff --git a/examples/sunlinsol/band/test_fsunlinsol_band_mod.f90 b/examples/sunlinsol/band/test_fsunlinsol_band_mod.f90 index 5f8102403d..ec05537920 100644 --- a/examples/sunlinsol/band/test_fsunlinsol_band_mod.f90 +++ b/examples/sunlinsol/band/test_fsunlinsol_band_mod.f90 @@ -21,9 +21,9 @@ module test_fsunlinsol_band implicit none #if defined(SUNDIALS_INT32_T) - integer, parameter :: sunindextype = selected_int_kind(8) + integer, parameter :: myindextype = selected_int_kind(8) #elif defined(SUNDIALS_INT64_T) - integer, parameter :: sunindextype = selected_int_kind(16) + integer, parameter :: myindextype = selected_int_kind(16) #endif integer(kind=sunindextype), parameter :: N = 10 @@ -128,9 +128,9 @@ integer(C_INT) function check_vector(X, Y, tol) result(failure) implicit none #if defined(SUNDIALS_INT32_T) - integer, parameter :: sunindextype = selected_int_kind(8) + integer, parameter :: myindextype = selected_int_kind(8) #elif defined(SUNDIALS_INT64_T) - integer, parameter :: sunindextype = selected_int_kind(16) + integer, parameter :: myindextype = selected_int_kind(16) #endif type(N_Vector) :: x, y diff --git a/examples/sunlinsol/dense/test_fsunlinsol_dense_mod.f90 b/examples/sunlinsol/dense/test_fsunlinsol_dense_mod.f90 index 888f3d5ca4..bb3ad54bf1 100644 --- a/examples/sunlinsol/dense/test_fsunlinsol_dense_mod.f90 +++ b/examples/sunlinsol/dense/test_fsunlinsol_dense_mod.f90 @@ -21,9 +21,9 @@ module test_fsunlinsol_dense implicit none #if defined(SUNDIALS_INT32_T) - integer, parameter :: sunindextype = selected_int_kind(8) + integer, parameter :: myindextype = selected_int_kind(8) #elif defined(SUNDIALS_INT64_T) - integer, parameter :: sunindextype = selected_int_kind(16) + integer, parameter :: myindextype = selected_int_kind(16) #endif integer(kind=sunindextype), private, parameter :: N = 100 @@ -127,9 +127,9 @@ integer(C_INT) function check_vector(X, Y, tol) result(failure) implicit none #if defined(SUNDIALS_INT32_T) - integer, parameter :: sunindextype = selected_int_kind(8) + integer, parameter :: myindextype = selected_int_kind(8) #elif defined(SUNDIALS_INT64_T) - integer, parameter :: sunindextype = selected_int_kind(16) + integer, parameter :: myindextype = selected_int_kind(16) #endif type(N_Vector) :: x, y diff --git a/examples/sunlinsol/lapackdense/test_fsunlinsol_lapackdense_mod.f90 b/examples/sunlinsol/lapackdense/test_fsunlinsol_lapackdense_mod.f90 index 2b98c917e0..b948a0ea44 100644 --- a/examples/sunlinsol/lapackdense/test_fsunlinsol_lapackdense_mod.f90 +++ b/examples/sunlinsol/lapackdense/test_fsunlinsol_lapackdense_mod.f90 @@ -21,9 +21,9 @@ module test_fsunlinsol_lapackdense implicit none #if defined(SUNDIALS_INT32_T) - integer, parameter :: sunindextype = selected_int_kind(8) + integer, parameter :: myindextype = selected_int_kind(8) #elif defined(SUNDIALS_INT64_T) - integer, parameter :: sunindextype = selected_int_kind(16) + integer, parameter :: myindextype = selected_int_kind(16) #endif integer(kind=sunindextype), private, parameter :: N = 100 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 954f95bfc9..acddb18498 100644 --- a/examples/sunlinsol/pcg/serial/test_fsunlinsol_pcg_mod_serial.f90 +++ b/examples/sunlinsol/pcg/serial/test_fsunlinsol_pcg_mod_serial.f90 @@ -26,9 +26,9 @@ module test_fsunlinsol_pcg_serial implicit none #if defined(SUNDIALS_INT32_T) - integer, parameter :: sunindextype = selected_int_kind(8) + integer, parameter :: myindextype = selected_int_kind(8) #elif defined(SUNDIALS_INT64_T) - integer, parameter :: sunindextype = selected_int_kind(16) + integer, parameter :: myindextype = selected_int_kind(16) #endif integer(kind=sunindextype), private, parameter :: N = 100 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 65f8a507d8..0ee0bc0a34 100644 --- a/examples/sunlinsol/spbcgs/serial/test_fsunlinsol_spbcgs_mod_serial.f90 +++ b/examples/sunlinsol/spbcgs/serial/test_fsunlinsol_spbcgs_mod_serial.f90 @@ -26,9 +26,9 @@ module test_fsunlinsol_spbcgs_serial implicit none #if defined(SUNDIALS_INT32_T) - integer, parameter :: sunindextype = selected_int_kind(8) + integer, parameter :: myindextype = selected_int_kind(8) #elif defined(SUNDIALS_INT64_T) - integer, parameter :: sunindextype = selected_int_kind(16) + integer, parameter :: myindextype = selected_int_kind(16) #endif integer(kind=sunindextype), private, parameter :: N = 100 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 b431c5130e..65e920eb2f 100644 --- a/examples/sunlinsol/spfgmr/serial/test_fsunlinsol_spfgmr_mod_serial.f90 +++ b/examples/sunlinsol/spfgmr/serial/test_fsunlinsol_spfgmr_mod_serial.f90 @@ -25,9 +25,9 @@ module test_fsunlinsol_spfgmr_serial implicit none #if defined(SUNDIALS_INT32_T) - integer, parameter :: sunindextype = selected_int_kind(8) + integer, parameter :: myindextype = selected_int_kind(8) #elif defined(SUNDIALS_INT64_T) - integer, parameter :: sunindextype = selected_int_kind(16) + integer, parameter :: myindextype = selected_int_kind(16) #endif integer(kind=sunindextype), private, parameter :: N = 100 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 a48d49bdf4..bfcd311b2c 100644 --- a/examples/sunlinsol/spgmr/serial/test_fsunlinsol_spgmr_mod_serial.f90 +++ b/examples/sunlinsol/spgmr/serial/test_fsunlinsol_spgmr_mod_serial.f90 @@ -25,9 +25,9 @@ module test_fsunlinsol_spgmr_serial implicit none #if defined(SUNDIALS_INT32_T) - integer, parameter :: sunindextype = selected_int_kind(8) + integer, parameter :: myindextype = selected_int_kind(8) #elif defined(SUNDIALS_INT64_T) - integer, parameter :: sunindextype = selected_int_kind(16) + integer, parameter :: myindextype = selected_int_kind(16) #endif integer(kind=sunindextype), private, parameter :: N = 100 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 16ec57e89c..b5fd55cf2e 100644 --- a/examples/sunlinsol/sptfqmr/serial/test_fsunlinsol_sptfqmr_mod_serial.f90 +++ b/examples/sunlinsol/sptfqmr/serial/test_fsunlinsol_sptfqmr_mod_serial.f90 @@ -26,9 +26,9 @@ module test_fsunlinsol_sptfqmr_serial implicit none #if defined(SUNDIALS_INT32_T) - integer, parameter :: sunindextype = selected_int_kind(8) + integer, parameter :: myindextype = selected_int_kind(8) #elif defined(SUNDIALS_INT64_T) - integer, parameter :: sunindextype = selected_int_kind(16) + integer, parameter :: myindextype = selected_int_kind(16) #endif integer(kind=sunindextype), private, parameter :: N = 100 diff --git a/examples/sunmatrix/band/test_fsunmatrix_band_mod.f90 b/examples/sunmatrix/band/test_fsunmatrix_band_mod.f90 index e5cce6439a..78e209a1b1 100644 --- a/examples/sunmatrix/band/test_fsunmatrix_band_mod.f90 +++ b/examples/sunmatrix/band/test_fsunmatrix_band_mod.f90 @@ -21,9 +21,9 @@ module test_fsunmatrix_band implicit none #if defined(SUNDIALS_INT32_T) - integer, parameter :: sunindextype = selected_int_kind(8) + integer, parameter :: myindextype = selected_int_kind(8) #elif defined(SUNDIALS_INT64_T) - integer, parameter :: sunindextype = selected_int_kind(16) + integer, parameter :: myindextype = selected_int_kind(16) #endif integer(kind=sunindextype), parameter :: N = 10 diff --git a/examples/sunmatrix/dense/test_fsunmatrix_dense_mod.f90 b/examples/sunmatrix/dense/test_fsunmatrix_dense_mod.f90 index 3125ab75d9..6e77779684 100644 --- a/examples/sunmatrix/dense/test_fsunmatrix_dense_mod.f90 +++ b/examples/sunmatrix/dense/test_fsunmatrix_dense_mod.f90 @@ -21,9 +21,9 @@ module test_fsunmatrix_dense implicit none #if defined(SUNDIALS_INT32_T) - integer, parameter :: sunindextype = selected_int_kind(8) + integer, parameter :: myindextype = selected_int_kind(8) #elif defined(SUNDIALS_INT64_T) - integer, parameter :: sunindextype = selected_int_kind(16) + integer, parameter :: myindextype = selected_int_kind(16) #endif integer(kind=sunindextype), parameter :: N = 4 @@ -197,9 +197,9 @@ integer(C_INT) function check_matrix(A, B, tol) result(fails) implicit none #if defined(SUNDIALS_INT32_T) - integer, parameter :: sunindextype = selected_int_kind(8) + integer, parameter :: myindextype = selected_int_kind(8) #elif defined(SUNDIALS_INT64_T) - integer, parameter :: sunindextype = selected_int_kind(16) + integer, parameter :: myindextype = selected_int_kind(16) #endif type(SUNMatrix) :: A, B diff --git a/examples/sunmatrix/sparse/test_fsunmatrix_sparse_mod.f90 b/examples/sunmatrix/sparse/test_fsunmatrix_sparse_mod.f90 index b07049eb37..85c592f23a 100644 --- a/examples/sunmatrix/sparse/test_fsunmatrix_sparse_mod.f90 +++ b/examples/sunmatrix/sparse/test_fsunmatrix_sparse_mod.f90 @@ -21,9 +21,9 @@ module test_fsunmatrix_sparse implicit none #if defined(SUNDIALS_INT32_T) - integer, parameter :: sunindextype = selected_int_kind(8) + integer, parameter :: myindextype = selected_int_kind(8) #elif defined(SUNDIALS_INT64_T) - integer, parameter :: sunindextype = selected_int_kind(16) + integer, parameter :: myindextype = selected_int_kind(16) #endif integer(kind=sunindextype), parameter :: N = 5 @@ -213,9 +213,9 @@ integer(C_INT) function check_matrix(A, B, tol) result(fails) implicit none #if defined(SUNDIALS_INT32_T) - integer, parameter :: sunindextype = selected_int_kind(8) + integer, parameter :: myindextype = selected_int_kind(8) #elif defined(SUNDIALS_INT64_T) - integer, parameter :: sunindextype = selected_int_kind(16) + integer, parameter :: myindextype = selected_int_kind(16) #endif type(SUNMatrix) :: A, B @@ -305,9 +305,9 @@ integer(C_INT) function check_matrix_entry(A, c, tol) result(fails) implicit none #if defined(SUNDIALS_INT32_T) - integer, parameter :: sunindextype = selected_int_kind(8) + integer, parameter :: myindextype = selected_int_kind(8) #elif defined(SUNDIALS_INT64_T) - integer, parameter :: sunindextype = selected_int_kind(16) + integer, parameter :: myindextype = selected_int_kind(16) #endif type(SUNMatrix) :: A diff --git a/examples/sunnonlinsol/fixedpoint/test_fsunnonlinsol_fixedpoint_mod.f90 b/examples/sunnonlinsol/fixedpoint/test_fsunnonlinsol_fixedpoint_mod.f90 index 360ba78680..ec10fb325e 100644 --- a/examples/sunnonlinsol/fixedpoint/test_fsunnonlinsol_fixedpoint_mod.f90 +++ b/examples/sunnonlinsol/fixedpoint/test_fsunnonlinsol_fixedpoint_mod.f90 @@ -22,9 +22,9 @@ module test_fsunnonlinsol_fixedpoint implicit none #if defined(SUNDIALS_INT32_T) - integer, parameter :: sunindextype = selected_int_kind(8) + integer, parameter :: myindextype = selected_int_kind(8) #elif defined(SUNDIALS_INT64_T) - integer, parameter :: sunindextype = selected_int_kind(16) + integer, parameter :: myindextype = selected_int_kind(16) #endif integer(kind=sunindextype), parameter :: NEQ = 3 ! number of equations diff --git a/examples/sunnonlinsol/newton/test_fsunnonlinsol_newton_mod.f90 b/examples/sunnonlinsol/newton/test_fsunnonlinsol_newton_mod.f90 index 95d34b7c2d..ed806d60db 100644 --- a/examples/sunnonlinsol/newton/test_fsunnonlinsol_newton_mod.f90 +++ b/examples/sunnonlinsol/newton/test_fsunnonlinsol_newton_mod.f90 @@ -22,9 +22,9 @@ module test_fsunnonlinsol_newton implicit none #if defined(SUNDIALS_INT32_T) - integer, parameter :: sunindextype = selected_int_kind(8) + integer, parameter :: myindextype = selected_int_kind(8) #elif defined(SUNDIALS_INT64_T) - integer, parameter :: sunindextype = selected_int_kind(16) + integer, parameter :: myindextype = selected_int_kind(16) #endif integer(kind=sunindextype), parameter :: NEQ = 3 ! number of equations From bda901679e2c121bc15c940d8ba4412779ff3cdc Mon Sep 17 00:00:00 2001 From: "Balos, Cody, J" Date: Tue, 2 Apr 2024 16:19:35 -0700 Subject: [PATCH 26/70] fix sparse sunmatrix custom fortran functions --- .../sparse/fmod_int32/fsunmatrix_sparse_mod.c | 24 +++++++++++++++++++ swig/sunmatrix/fsunmatrix_sparse_mod.i | 24 +++++++++++++++++++ 2 files changed, 48 insertions(+) diff --git a/src/sunmatrix/sparse/fmod_int32/fsunmatrix_sparse_mod.c b/src/sunmatrix/sparse/fmod_int32/fsunmatrix_sparse_mod.c index 98b03522b7..c329b1edde 100644 --- a/src/sunmatrix/sparse/fmod_int32/fsunmatrix_sparse_mod.c +++ b/src/sunmatrix/sparse/fmod_int32/fsunmatrix_sparse_mod.c @@ -516,6 +516,29 @@ SWIGEXPORT double * _wrap_FSUNSparseMatrix_Data(SUNMatrix farg1) { 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 ; @@ -537,5 +560,6 @@ SWIGEXPORT int64_t * _wrap_FSUNSparseMatrix_IndexPointers(SUNMatrix farg1) { fresult = result; return fresult; } +#endif diff --git a/swig/sunmatrix/fsunmatrix_sparse_mod.i b/swig/sunmatrix/fsunmatrix_sparse_mod.i index fc616ca557..36ff430367 100644 --- a/swig/sunmatrix/fsunmatrix_sparse_mod.i +++ b/swig/sunmatrix/fsunmatrix_sparse_mod.i @@ -47,6 +47,29 @@ SWIGEXPORT double * _wrap_FSUNSparseMatrix_Data(SUNMatrix farg1) { 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 ; @@ -68,6 +91,7 @@ SWIGEXPORT int64_t * _wrap_FSUNSparseMatrix_IndexPointers(SUNMatrix farg1) { fresult = result; return fresult; } +#endif %} %insert("fdecl") %{ From da44cea52f660316694efaecccf55c7082208e34 Mon Sep 17 00:00:00 2001 From: "Balos, Cody, J" Date: Tue, 2 Apr 2024 16:21:59 -0700 Subject: [PATCH 27/70] missed kind sunindextype --> myindextype --- .../F2003_serial/ark_analytic_f2003.f90 | 2 +- .../F2003_serial/test_ark_butcher_f2003.f90 | 2 +- .../F2003_serial/cv_advdiff_bnd_f2003.f90 | 10 +++--- .../F2003_serial/cvs_analytic_fp_f2003.f90 | 2 +- .../ida/F2003_serial/idaRoberts_dns_f2003.f90 | 4 +-- .../idasAkzoNob_ASAi_dns_f2003.f90 | 4 +-- .../F2003_serial/kinDiagon_kry_f2003.f90 | 2 +- .../test_fnvector_manyvector_mod.f90 | 34 +++++++++---------- .../serial/test_fnvector_serial_mod.f90 | 16 ++++----- examples/nvector/test_nvector.f90 | 6 ++-- .../band/test_fsunlinsol_band_mod.f90 | 12 +++---- .../dense/test_fsunlinsol_dense_mod.f90 | 6 ++-- .../sunlinsol/klu/test_fsunlinsol_klu_mod.f90 | 2 +- .../test_fsunlinsol_lapackdense_mod.f90 | 4 +-- .../serial/test_fsunlinsol_pcg_mod_serial.f90 | 6 ++-- .../test_fsunlinsol_spbcgs_mod_serial.f90 | 6 ++-- .../test_fsunlinsol_spfgmr_mod_serial.f90 | 6 ++-- .../test_fsunlinsol_spgmr_mod_serial.f90 | 10 +++--- .../test_fsunlinsol_sptfqmr_mod_serial.f90 | 6 ++-- .../band/test_fsunmatrix_band_mod.f90 | 12 +++---- .../dense/test_fsunmatrix_dense_mod.f90 | 4 +-- .../sparse/test_fsunmatrix_sparse_mod.f90 | 16 ++++----- .../test_fsunnonlinsol_fixedpoint_mod.f90 | 2 +- .../newton/test_fsunnonlinsol_newton_mod.f90 | 2 +- 24 files changed, 88 insertions(+), 88 deletions(-) diff --git a/examples/arkode/F2003_serial/ark_analytic_f2003.f90 b/examples/arkode/F2003_serial/ark_analytic_f2003.f90 index 0e36c7fcb9..ca9a6172eb 100644 --- a/examples/arkode/F2003_serial/ark_analytic_f2003.f90 +++ b/examples/arkode/F2003_serial/ark_analytic_f2003.f90 @@ -45,7 +45,7 @@ module analytic_mod #endif ! number of equations - integer(kind=sunindextype), 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 98906bab4a..0bc1bafdfa 100644 --- a/examples/arkode/F2003_serial/test_ark_butcher_f2003.f90 +++ b/examples/arkode/F2003_serial/test_ark_butcher_f2003.f90 @@ -34,7 +34,7 @@ integer function smoke_tests() result(ret) implicit none type(c_ptr) :: ERK, DIRK integer(C_INT) :: ierr, q(1), p(1) - integer(kind=sunindextype) :: liw(1), lrw(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/F2003_serial/cv_advdiff_bnd_f2003.f90 b/examples/cvode/F2003_serial/cv_advdiff_bnd_f2003.f90 index 95cc5505e0..c9676ac3c7 100644 --- a/examples/cvode/F2003_serial/cv_advdiff_bnd_f2003.f90 +++ b/examples/cvode/F2003_serial/cv_advdiff_bnd_f2003.f90 @@ -53,9 +53,9 @@ module advdiff_mod #endif ! setup and number of equations - integer(kind=sunindextype), parameter :: mx = 10, my = 5 - integer(kind=sunindextype), parameter :: mxmy = mx*my - integer(kind=sunindextype), 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 @@ -71,8 +71,8 @@ module advdiff_mod real(c_double), parameter :: atol = 1.0d-5 ! ODE non-constant parameters - integer(kind=sunindextype) :: i, j ! index variables - integer(kind=sunindextype) :: 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 diff --git a/examples/cvodes/F2003_serial/cvs_analytic_fp_f2003.f90 b/examples/cvodes/F2003_serial/cvs_analytic_fp_f2003.f90 index bf69db5039..1c147387af 100644 --- a/examples/cvodes/F2003_serial/cvs_analytic_fp_f2003.f90 +++ b/examples/cvodes/F2003_serial/cvs_analytic_fp_f2003.f90 @@ -45,7 +45,7 @@ module ode_mod #endif ! number of equations - integer(kind=sunindextype), parameter :: neq = 1 + integer(kind=myindextype), parameter :: neq = 1 ! ODE parameters double precision, parameter :: lamda = -100.0d0 diff --git a/examples/ida/F2003_serial/idaRoberts_dns_f2003.f90 b/examples/ida/F2003_serial/idaRoberts_dns_f2003.f90 index 523fbc28d7..63a7807eec 100644 --- a/examples/ida/F2003_serial/idaRoberts_dns_f2003.f90 +++ b/examples/ida/F2003_serial/idaRoberts_dns_f2003.f90 @@ -50,8 +50,8 @@ module dae_mod integer, parameter :: myindextype = selected_int_kind(16) #endif - integer(kind=sunindextype), parameter :: neq = 3 - integer(kind=sunindextype), parameter :: nout = 12 + integer(kind=myindextype), parameter :: neq = 3 + integer(kind=myindextype), parameter :: nout = 12 contains diff --git a/examples/idas/F2003_serial/idasAkzoNob_ASAi_dns_f2003.f90 b/examples/idas/F2003_serial/idasAkzoNob_ASAi_dns_f2003.f90 index ad428100c9..debacbf91a 100644 --- a/examples/idas/F2003_serial/idasAkzoNob_ASAi_dns_f2003.f90 +++ b/examples/idas/F2003_serial/idasAkzoNob_ASAi_dns_f2003.f90 @@ -45,7 +45,7 @@ module dae_mod #endif ! problem parameters - integer(kind=sunindextype), 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 @@ -319,7 +319,7 @@ program main call FN_VDestroy(nv_rr) ! Create and initialize q0 for quadratures. - nv_q => FN_VNew_Serial(1_sunindextype, 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/F2003_serial/kinDiagon_kry_f2003.f90 b/examples/kinsol/F2003_serial/kinDiagon_kry_f2003.f90 index bb52aeb7ea..a69564fe1f 100644 --- a/examples/kinsol/F2003_serial/kinDiagon_kry_f2003.f90 +++ b/examples/kinsol/F2003_serial/kinDiagon_kry_f2003.f90 @@ -44,7 +44,7 @@ module kinDiagonKry_mod integer, parameter :: myindextype = selected_int_kind(16) #endif - integer(kind=sunindextype), parameter :: neq = 128 + integer(kind=myindextype), parameter :: neq = 128 integer(c_int) :: ierr, retval integer(c_long) :: i diff --git a/examples/nvector/manyvector/test_fnvector_manyvector_mod.f90 b/examples/nvector/manyvector/test_fnvector_manyvector_mod.f90 index bdceb70bf6..a6f1485b75 100644 --- a/examples/nvector/manyvector/test_fnvector_manyvector_mod.f90 +++ b/examples/nvector/manyvector/test_fnvector_manyvector_mod.f90 @@ -29,19 +29,19 @@ module test_nvector_manyvector integer, parameter :: myindextype = selected_int_kind(16) #endif - integer(kind=sunindextype), parameter :: nsubvecs = 2 - integer(kind=sunindextype), parameter :: N1 = 100 ! individual vector length - integer(kind=sunindextype), parameter :: N2 = 200 ! individual vector length + integer(kind=myindextype), parameter :: nsubvecs = 2 + integer(kind=myindextype), parameter :: N1 = 100 ! individual vector length + integer(kind=myindextype), parameter :: N2 = 200 ! individual vector length integer(c_int), parameter :: nv = 3 ! length of vector arrays - integer(kind=sunindextype), parameter :: N = N1 + N2 ! overall manyvector length + integer(kind=myindextype), parameter :: N = N1 + N2 ! overall manyvector length contains integer function smoke_tests() result(ret) implicit none - integer(kind=sunindextype) :: ival ! integer work value - integer(kind=sunindextype) :: lenrw(1), leniw(1) ! real and int work space size + 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 @@ -53,9 +53,9 @@ integer function smoke_tests() result(ret) !===== Setup ==== subvecs = FN_VNewVectorArray(nsubvecs, sunctx) tmp => FN_VMake_Serial(N1, x1data, sunctx) - call FN_VSetVecAtIndexVectorArray(subvecs, 0_sunindextype, tmp) + call FN_VSetVecAtIndexVectorArray(subvecs, 0_myindextype, tmp) tmp => FN_VMake_Serial(N2, x2data, sunctx) - call FN_VSetVecAtIndexVectorArray(subvecs, 1_sunindextype, tmp) + call FN_VSetVecAtIndexVectorArray(subvecs, 1_myindextype, tmp) x => FN_VNew_ManyVector(nsubvecs, subvecs, sunctx) call FN_VConst(ONE, x) @@ -64,8 +64,8 @@ integer function smoke_tests() result(ret) z => FN_VClone_ManyVector(x) call FN_VConst(ONE, z) - xvecs = FN_VCloneVectorArray(int(nv,sunindextype), x) - zvecs = FN_VCloneVectorArray(int(nv,sunindextype), z) + xvecs = FN_VCloneVectorArray(int(nv,myindextype), x) + zvecs = FN_VCloneVectorArray(int(nv,myindextype), z) nvarr = (/ ONE, ONE, ONE /) !===== Test ===== @@ -121,8 +121,8 @@ integer function smoke_tests() result(ret) call FN_VDestroy_ManyVector(x) call FN_VDestroy_ManyVector(y) call FN_VDestroy_ManyVector(z) - call FN_VDestroyVectorArray(xvecs, int(nv,sunindextype)) - call FN_VDestroyVectorArray(zvecs, int(nv,sunindextype)) + call FN_VDestroyVectorArray(xvecs, int(nv,myindextype)) + call FN_VDestroyVectorArray(zvecs, int(nv,myindextype)) ret = 0 @@ -142,9 +142,9 @@ integer function unit_tests() result(fails) subvecs = FN_VNewVectorArray(nsubvecs, sunctx) tmp => FN_VMake_Serial(N1, x1data, sunctx) - call FN_VSetVecAtIndexVectorArray(subvecs, 0_sunindextype, tmp) + call FN_VSetVecAtIndexVectorArray(subvecs, 0_myindextype, tmp) tmp => FN_VMake_Serial(N2, x2data, sunctx) - call FN_VSetVecAtIndexVectorArray(subvecs, 1_sunindextype, tmp) + call FN_VSetVecAtIndexVectorArray(subvecs, 1_myindextype, tmp) x => FN_VNew_ManyVector(nsubvecs, subvecs, sunctx) call FN_VConst(ONE, x) @@ -178,13 +178,13 @@ function check_ans(ans, X, local_length) result(failure) real(C_DOUBLE) :: ans type(N_Vector) :: X type(N_Vector), pointer :: X0, X1 - integer(kind=sunindextype) :: failure, local_length, i, x0len, x1len + integer(kind=myindextype) :: failure, local_length, i, x0len, x1len real(C_DOUBLE), pointer :: x0data(:), x1data(:) failure = 0 - X0 => FN_VGetSubvector_ManyVector(X, 0_sunindextype) - X1 => FN_VGetSubvector_ManyVector(X, 1_sunindextype) + 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/serial/test_fnvector_serial_mod.f90 b/examples/nvector/serial/test_fnvector_serial_mod.f90 index 8df31ec13f..8bca2bd266 100644 --- a/examples/nvector/serial/test_fnvector_serial_mod.f90 +++ b/examples/nvector/serial/test_fnvector_serial_mod.f90 @@ -28,7 +28,7 @@ module test_nvector_serial integer, parameter :: myindextype = selected_int_kind(16) #endif - integer(kind=sunindextype), parameter :: N = 100 ! vector length + integer(kind=myindextype), parameter :: N = 100 ! vector length integer(c_int), parameter :: nv = 3 ! length of vector arrays contains @@ -36,7 +36,7 @@ module test_nvector_serial integer function smoke_tests() result(ret) implicit none - integer(kind=sunindextype) :: 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 @@ -53,8 +53,8 @@ integer function smoke_tests() result(ret) z => FN_VClone_Serial(x) call FN_VConst(ONE, z) - xvecs = FN_VCloneVectorArray(int(nv,sunindextype), x) - zvecs = FN_VCloneVectorArray(int(nv,sunindextype), z) + xvecs = FN_VCloneVectorArray(int(nv,myindextype), x) + zvecs = FN_VCloneVectorArray(int(nv,myindextype), z) nvarr = (/ ONE, ONE, ONE /) !===== Test ===== @@ -114,8 +114,8 @@ integer function smoke_tests() result(ret) call FN_VDestroy_Serial(x) call FN_VDestroy_Serial(y) call FN_VDestroy_Serial(z) - call FN_VDestroyVectorArray(xvecs, int(nv,sunindextype)) - call FN_VDestroyVectorArray(zvecs, int(nv,sunindextype)) + call FN_VDestroyVectorArray(xvecs, int(nv,myindextype)) + call FN_VDestroyVectorArray(zvecs, int(nv,myindextype)) ret = 0 @@ -157,10 +157,10 @@ function check_ans(ans, X, local_length) result(failure) integer, parameter :: myindextype = selected_int_kind(16) #endif - integer(kind=sunindextype) :: failure + integer(kind=myindextype) :: failure real(C_DOUBLE) :: ans type(N_Vector) :: X - integer(kind=sunindextype) :: local_length, i + integer(kind=myindextype) :: local_length, i real(C_DOUBLE), pointer :: Xdata(:) failure = 0 diff --git a/examples/nvector/test_nvector.f90 b/examples/nvector/test_nvector.f90 index bdb29ded69..4a99a0e22c 100644 --- a/examples/nvector/test_nvector.f90 +++ b/examples/nvector/test_nvector.f90 @@ -43,7 +43,7 @@ integer(C_INT) function Test_FN_VMake(X, local_length, myid) & implicit none type(N_Vector) :: X - integer(kind=sunindextype) :: local_length + integer(kind=myindextype) :: local_length integer(C_INT) :: myid if (.not. has_data(X)) then @@ -69,7 +69,7 @@ integer(C_INT) function Test_FN_VGetArrayPointer(W, local_length, myid) & implicit none type(N_Vector) :: W - integer(kind=sunindextype) :: local_length + integer(kind=myindextype) :: local_length integer(C_INT) :: myid ! check vector data @@ -103,7 +103,7 @@ integer(C_INT) function Test_FN_VLinearCombination(X, local_length, myid) & result(failure) type(N_Vector) :: X - integer(kind=sunindextype) :: local_length + integer(kind=myindextype) :: local_length integer(C_INT) :: myid, ierr type(N_Vector), pointer :: Y1, Y2, Y3 type(c_ptr), target :: V(3) diff --git a/examples/sunlinsol/band/test_fsunlinsol_band_mod.f90 b/examples/sunlinsol/band/test_fsunlinsol_band_mod.f90 index ec05537920..ea5751513a 100644 --- a/examples/sunlinsol/band/test_fsunlinsol_band_mod.f90 +++ b/examples/sunlinsol/band/test_fsunlinsol_band_mod.f90 @@ -26,9 +26,9 @@ module test_fsunlinsol_band integer, parameter :: myindextype = selected_int_kind(16) #endif - integer(kind=sunindextype), parameter :: N = 10 - integer(kind=sunindextype), parameter :: mu = 2 - integer(kind=sunindextype), parameter :: ml = 3 + integer(kind=myindextype), parameter :: N = 10 + integer(kind=myindextype), parameter :: mu = 2 + integer(kind=myindextype), parameter :: ml = 3 contains @@ -46,8 +46,8 @@ integer(C_INT) function unit_tests() result(fails) 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=sunindextype) :: j, k - integer(kind=sunindextype) :: smu, kstart, kend, offset + integer(kind=myindextype) :: j, k + integer(kind=myindextype) :: smu, kstart, kend, offset integer(C_INT) :: tmp fails = 0 @@ -135,7 +135,7 @@ integer(C_INT) function check_vector(X, Y, tol) result(failure) type(N_Vector) :: x, y real(C_DOUBLE) :: tol, maxerr - integer(kind=sunindextype) :: 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 bb3ad54bf1..8dd014b2f9 100644 --- a/examples/sunlinsol/dense/test_fsunlinsol_dense_mod.f90 +++ b/examples/sunlinsol/dense/test_fsunlinsol_dense_mod.f90 @@ -26,7 +26,7 @@ module test_fsunlinsol_dense integer, parameter :: myindextype = selected_int_kind(16) #endif - integer(kind=sunindextype), private, parameter :: N = 100 + integer(kind=myindextype), private, parameter :: N = 100 contains @@ -45,7 +45,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(kind=sunindextype) :: j, k + integer(kind=myindextype) :: j, k integer(C_INT) :: tmp fails = 0 @@ -134,7 +134,7 @@ integer(C_INT) function check_vector(X, Y, tol) result(failure) type(N_Vector) :: x, y real(C_DOUBLE) :: tol, maxerr - integer(kind=sunindextype) :: i, xlen, ylen + 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 d60637276c..8d2af5e73b 100644 --- a/examples/sunlinsol/klu/test_fsunlinsol_klu_mod.f90 +++ b/examples/sunlinsol/klu/test_fsunlinsol_klu_mod.f90 @@ -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(kind=sunindextype) :: 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 b948a0ea44..07f601867a 100644 --- a/examples/sunlinsol/lapackdense/test_fsunlinsol_lapackdense_mod.f90 +++ b/examples/sunlinsol/lapackdense/test_fsunlinsol_lapackdense_mod.f90 @@ -26,7 +26,7 @@ module test_fsunlinsol_lapackdense integer, parameter :: myindextype = selected_int_kind(16) #endif - integer(kind=sunindextype), private, parameter :: N = 100 + integer(kind=myindextype), private, parameter :: N = 100 contains @@ -48,7 +48,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(kind=sunindextype) :: 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 acddb18498..78c45b9c75 100644 --- a/examples/sunlinsol/pcg/serial/test_fsunlinsol_pcg_mod_serial.f90 +++ b/examples/sunlinsol/pcg/serial/test_fsunlinsol_pcg_mod_serial.f90 @@ -31,13 +31,13 @@ module test_fsunlinsol_pcg_serial integer, parameter :: myindextype = selected_int_kind(16) #endif - integer(kind=sunindextype), 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(kind=sunindextype) :: N + integer(kind=myindextype) :: N type(N_Vector), pointer :: d, s end type @@ -61,7 +61,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(kind=sunindextype) :: 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 0ee0bc0a34..7b7d3223e8 100644 --- a/examples/sunlinsol/spbcgs/serial/test_fsunlinsol_spbcgs_mod_serial.f90 +++ b/examples/sunlinsol/spbcgs/serial/test_fsunlinsol_spbcgs_mod_serial.f90 @@ -31,13 +31,13 @@ module test_fsunlinsol_spbcgs_serial integer, parameter :: myindextype = selected_int_kind(16) #endif - integer(kind=sunindextype), 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(kind=sunindextype) :: N + integer(kind=myindextype) :: N type(N_Vector), pointer :: d, s1, s2 end type @@ -60,7 +60,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(kind=sunindextype) :: 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 65e920eb2f..1062a47c86 100644 --- a/examples/sunlinsol/spfgmr/serial/test_fsunlinsol_spfgmr_mod_serial.f90 +++ b/examples/sunlinsol/spfgmr/serial/test_fsunlinsol_spfgmr_mod_serial.f90 @@ -30,14 +30,14 @@ module test_fsunlinsol_spfgmr_serial integer, parameter :: myindextype = selected_int_kind(16) #endif - integer(kind=sunindextype), 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(kind=sunindextype) :: N + integer(kind=myindextype) :: N type(N_Vector), pointer :: d, s1, s2 end type @@ -57,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(kind=sunindextype) :: 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 bfcd311b2c..73d65f11e1 100644 --- a/examples/sunlinsol/spgmr/serial/test_fsunlinsol_spgmr_mod_serial.f90 +++ b/examples/sunlinsol/spgmr/serial/test_fsunlinsol_spgmr_mod_serial.f90 @@ -30,14 +30,14 @@ module test_fsunlinsol_spgmr_serial integer, parameter :: myindextype = selected_int_kind(16) #endif - integer(kind=sunindextype), 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(kind=sunindextype) :: N + integer(kind=myindextype) :: N type(N_Vector), pointer :: d, s1, s2 end type @@ -57,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(kind=sunindextype) :: j + integer(kind=myindextype) :: j integer(C_INT) :: tmp ! setup @@ -265,7 +265,7 @@ integer(C_INT) function PSolve(udata, rvec, zvec, tol, lr) & integer(C_INT) :: lr type(UserData), pointer :: probdata real(C_DOUBLE), pointer :: r(:), z(:), d(:) - integer(kind=sunindextype) :: i, N + integer(kind=myindextype) :: i, N call c_f_pointer(udata, probdata) @@ -291,7 +291,7 @@ integer(C_INT) function check_vector(X, Y, tol) result(failure) type(N_Vector) :: x, y real(C_DOUBLE) :: tol, maxerr - integer(kind=sunindextype) :: 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 b5fd55cf2e..a558b499f5 100644 --- a/examples/sunlinsol/sptfqmr/serial/test_fsunlinsol_sptfqmr_mod_serial.f90 +++ b/examples/sunlinsol/sptfqmr/serial/test_fsunlinsol_sptfqmr_mod_serial.f90 @@ -31,13 +31,13 @@ module test_fsunlinsol_sptfqmr_serial integer, parameter :: myindextype = selected_int_kind(16) #endif - integer(kind=sunindextype), 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(kind=sunindextype) :: N + integer(kind=myindextype) :: N type(N_Vector), pointer :: d, s1, s2 end type @@ -60,7 +60,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(kind=sunindextype) :: 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 78e209a1b1..a9ed801746 100644 --- a/examples/sunmatrix/band/test_fsunmatrix_band_mod.f90 +++ b/examples/sunmatrix/band/test_fsunmatrix_band_mod.f90 @@ -26,9 +26,9 @@ module test_fsunmatrix_band integer, parameter :: myindextype = selected_int_kind(16) #endif - integer(kind=sunindextype), parameter :: N = 10 - integer(kind=sunindextype), parameter :: mu = 2 - integer(kind=sunindextype), parameter :: ml = 2 + integer(kind=myindextype), parameter :: N = 10 + integer(kind=myindextype), parameter :: mu = 2 + integer(kind=myindextype), parameter :: ml = 2 contains @@ -114,12 +114,12 @@ integer(C_INT) function unit_tests() result(fails) type(SUNMatrix), pointer :: A, I type(N_Vector), pointer :: x, y real(C_DOUBLE), pointer :: Adata(:), Idata(:), xdata(:), ydata(:) - integer(kind=sunindextype) :: ii, jj, smu, istart, iend, offset + integer(kind=myindextype) :: ii, jj, smu, istart, iend, offset fails = 0 A => FSUNBandMatrix(N, mu, ml, sunctx) - I => FSUNBandMatrix(N, 0_sunindextype, 0_sunindextype, sunctx) + I => FSUNBandMatrix(N, 0_myindextype, 0_myindextype, sunctx) x => FN_VNew_Serial(N, sunctx) y => FN_VNew_Serial(N, sunctx) @@ -150,7 +150,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 6e77779684..1e51262932 100644 --- a/examples/sunmatrix/dense/test_fsunmatrix_dense_mod.f90 +++ b/examples/sunmatrix/dense/test_fsunmatrix_dense_mod.f90 @@ -26,7 +26,7 @@ module test_fsunmatrix_dense integer, parameter :: myindextype = selected_int_kind(16) #endif - integer(kind=sunindextype), parameter :: N = 4 + integer(kind=myindextype), parameter :: N = 4 contains @@ -205,7 +205,7 @@ integer(C_INT) function check_matrix(A, B, tol) result(fails) type(SUNMatrix) :: A, B real(C_DOUBLE) :: tol real(C_DOUBLE), pointer :: Adata(:), Bdata(:) - integer(kind=sunindextype) :: 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 85c592f23a..31dcdf0e89 100644 --- a/examples/sunmatrix/sparse/test_fsunmatrix_sparse_mod.f90 +++ b/examples/sunmatrix/sparse/test_fsunmatrix_sparse_mod.f90 @@ -26,7 +26,7 @@ module test_fsunmatrix_sparse integer, parameter :: myindextype = selected_int_kind(16) #endif - integer(kind=sunindextype), parameter :: N = 5 + integer(kind=myindextype), parameter :: N = 5 contains @@ -46,10 +46,10 @@ integer(C_INT) function smoke_tests() result(fails) type(SUNMatrix), pointer :: A, B ! SUNMatrix type(N_Vector), pointer :: x, y ! NVectors real(C_DOUBLE), pointer :: matdat(:) ! matrix data pointer - integer(kind=sunindextype), pointer :: inddat(:) ! indices pointer + integer(kind=myindextype), pointer :: inddat(:) ! indices pointer integer(C_LONG) :: lenrw(1), leniw(1) ! matrix real and int work space size - integer(kind=sunindextype) :: tmp1 + integer(kind=myindextype) :: tmp1 integer(C_INT) :: tmp2 fails = 0 @@ -221,9 +221,9 @@ integer(C_INT) function check_matrix(A, B, tol) result(fails) type(SUNMatrix) :: A, B real(C_DOUBLE) :: tol real(C_DOUBLE), pointer :: Adata(:), Bdata(:) - integer(kind=sunindextype), pointer :: Aidxvals(:), Bidxvals(:) - integer(kind=sunindextype), pointer :: Aidxptrs(:), Bidxptrs(:) - integer(kind=sunindextype) :: i, np, Annz, Bnnz + integer(kind=myindextype), pointer :: Aidxvals(:), Bidxvals(:) + integer(kind=myindextype), pointer :: Aidxptrs(:), Bidxptrs(:) + integer(kind=myindextype) :: i, np, Annz, Bnnz fails = 0 @@ -313,8 +313,8 @@ integer(C_INT) function check_matrix_entry(A, c, tol) result(fails) type(SUNMatrix) :: A real(C_DOUBLE) :: c, tol real(C_DOUBLE), pointer :: Adata(:) - integer(kind=sunindextype), pointer :: Aidxptrs(:) - integer(kind=sunindextype) :: i, np + 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 ec10fb325e..b7e9bc1785 100644 --- a/examples/sunnonlinsol/fixedpoint/test_fsunnonlinsol_fixedpoint_mod.f90 +++ b/examples/sunnonlinsol/fixedpoint/test_fsunnonlinsol_fixedpoint_mod.f90 @@ -27,7 +27,7 @@ module test_fsunnonlinsol_fixedpoint integer, parameter :: myindextype = selected_int_kind(16) #endif - integer(kind=sunindextype), 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 ed806d60db..e6b32b8be8 100644 --- a/examples/sunnonlinsol/newton/test_fsunnonlinsol_newton_mod.f90 +++ b/examples/sunnonlinsol/newton/test_fsunnonlinsol_newton_mod.f90 @@ -27,7 +27,7 @@ module test_fsunnonlinsol_newton integer, parameter :: myindextype = selected_int_kind(16) #endif - integer(kind=sunindextype), 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 From 226dd22481d0396ae6106e4736811f0ef69fa7fe Mon Sep 17 00:00:00 2001 From: "Balos, Cody, J" Date: Wed, 3 Apr 2024 10:19:30 -0700 Subject: [PATCH 28/70] fix mismatched integer size --- examples/cvode/F2003_serial/cv_advdiff_bnd_f2003.f90 | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/examples/cvode/F2003_serial/cv_advdiff_bnd_f2003.f90 b/examples/cvode/F2003_serial/cv_advdiff_bnd_f2003.f90 index c9676ac3c7..423ef44f12 100644 --- a/examples/cvode/F2003_serial/cv_advdiff_bnd_f2003.f90 +++ b/examples/cvode/F2003_serial/cv_advdiff_bnd_f2003.f90 @@ -176,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) From f418e5ac008c4c8660b9e32516d1930be8925daa Mon Sep 17 00:00:00 2001 From: "Balos, Cody, J" Date: Thu, 4 Apr 2024 08:43:13 -0700 Subject: [PATCH 29/70] fix another integer mismatch --- examples/cvodes/F2003_serial/cvsAdvDiff_FSA_non_f2003.f90 | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/examples/cvodes/F2003_serial/cvsAdvDiff_FSA_non_f2003.f90 b/examples/cvodes/F2003_serial/cvsAdvDiff_FSA_non_f2003.f90 index 502e55ef92..b01b5200fb 100644 --- a/examples/cvodes/F2003_serial/cvsAdvDiff_FSA_non_f2003.f90 +++ b/examples/cvodes/F2003_serial/cvsAdvDiff_FSA_non_f2003.f90 @@ -199,9 +199,8 @@ program main type(SUNNonlinearSolver), pointer :: NLSsens => null() integer(c_int) :: iout, retval real(c_double) :: reltol, abstol, tout, t(1) - integer(c_int64_t) :: is + integer(c_int64_t) :: is, plist(0:NS-1) real(c_double) :: pbar(0:NS-1) - integer(c_int) :: plist(0:NS-1) ! Command line arguments integer(c_int) :: sensi, err_con From 41dd60184eaafe3b608469ff22c837259a4772cf Mon Sep 17 00:00:00 2001 From: "Balos, Cody, J" Date: Thu, 4 Apr 2024 08:47:12 -0700 Subject: [PATCH 30/70] fix trilinos vector --- src/nvector/trilinos/nvector_trilinos.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/nvector/trilinos/nvector_trilinos.cpp b/src/nvector/trilinos/nvector_trilinos.cpp index 1032a659dc..fdb28b7ef5 100644 --- a/src/nvector/trilinos/nvector_trilinos.cpp +++ b/src/nvector/trilinos/nvector_trilinos.cpp @@ -222,7 +222,7 @@ void N_VDestroy_Trilinos(N_Vector v) return; } -void N_VSpace_Trilinos(N_Vector x, long int* lrw, long int* liw) +void N_VSpace_Trilinos(N_Vector x, sunindextype* lrw, sunindextype* liw) { Teuchos::RCP xv = N_VGetVector_Trilinos(x); const Teuchos::RCP>& comm = xv->getMap()->getComm(); From 7f3187b592bf2b7896bd5658d2a5fa7cde9e6691 Mon Sep 17 00:00:00 2001 From: Cody Balos Date: Thu, 25 Apr 2024 11:53:39 -0700 Subject: [PATCH 31/70] update parallel examples to use proper integer kind --- ...ark_brusselator1D_task_local_nls_f2003.f90 | 38 +++++++----- .../F2003_parallel/cv_diag_kry_bbd_f2003.f90 | 16 ++--- .../F2003_parallel/cv_diag_kry_f2003.f90 | 14 ++--- .../F2003_parallel/cv_diag_non_p_f2003.f90 | 11 +--- .../F2003_serial/cvsAdvDiff_FSA_non_f2003.f90 | 14 ++++- .../ida_heat2D_kry_bbd_f2003.f90 | 21 +++---- .../F2003_parallel/kin_diagon_kry_f2003.f90 | 13 ++-- .../test_fnvector_mpimanyvector_mod.f90 | 60 +++++++++++-------- .../parallel/test_fnvector_parallel_mod.f90 | 32 ++++++---- 9 files changed, 115 insertions(+), 104 deletions(-) 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 5e83ff44c7..17e6bf0ae1 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,6 +69,16 @@ 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 @@ -548,7 +558,7 @@ integer(c_int) function TaskLocalNlsResidual(sunvec_zcor, sunvec_F, arkode_mem) use farkode_arkstep_mod - use ode_mod, only : Neq, Reaction + use ode_mod, only : Neq, Reaction, myindextype !======= Declarations ========= implicit none @@ -593,10 +603,10 @@ integer(c_int) function TaskLocalNlsResidual(sunvec_zcor, sunvec_F, arkode_mem) end if ! get vectors from pointers - sunvec_zpred => FN_VGetVecAtIndexVectorArray(zpred_ptr, 0) - sunvec_z => FN_VGetVecAtIndexVectorArray(z_ptr, 0) - sunvec_Fi => FN_VGetVecAtIndexVectorArray(Fi_ptr, 0) - sunvec_sdata => FN_VGetVecAtIndexVectorArray(sdata_ptr, 0) + sunvec_zpred => FN_VGetVecAtIndexVectorArray(zpred_ptr, 0_myindextype) + sunvec_z => FN_VGetVecAtIndexVectorArray(z_ptr, 0_myindextype) + sunvec_Fi => FN_VGetVecAtIndexVectorArray(Fi_ptr, 0_myindextype) + sunvec_sdata => FN_VGetVecAtIndexVectorArray(sdata_ptr, 0_myindextype) ! get vector data arrays ycor_data => FN_VGetArrayPointer(sunvec_zcor) @@ -640,12 +650,8 @@ integer(c_int) function TaskLocalLSolve(sunvec_delta, arkode_mem) & !======= Inclusions =========== use, intrinsic :: iso_c_binding 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 @@ -682,7 +688,7 @@ integer(c_int) function TaskLocalLSolve(sunvec_delta, arkode_mem) & end if ! get vectors from pointers - sunvec_z => FN_VGetVecAtIndexVectorArray(z_ptr, 0) + sunvec_z => FN_VGetVecAtIndexVectorArray(z_ptr, 0_myindextype) ! get data arrays b_data => FN_VGetArrayPointer(sunvec_delta) @@ -985,7 +991,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 @@ -1027,10 +1033,10 @@ function TaskLocalNewton(arkode_mem, sunvec_y) result(sunnls) sunnls_LOC => FSUNNonlinSol_Newton(sunvec_y, sunctx) ! Create vector pointers to receive residual data - zpred_ptr = FN_VNewVectorArray(1, sunctx) - z_ptr = FN_VNewVectorArray(1, sunctx) - Fi_ptr = FN_VNewVectorArray(1, sunctx) - sdata_ptr = FN_VNewVectorArray(1, sunctx) + zpred_ptr = FN_VNewVectorArray(1_myindextype, sunctx) + z_ptr = FN_VNewVectorArray(1_myindextype, sunctx) + Fi_ptr = FN_VNewVectorArray(1_myindextype, sunctx) + sdata_ptr = FN_VNewVectorArray(1_myindextype, sunctx) sunvec_bnode => FN_VNew_Serial(int(Nvar, c_long), sunctx) sunmat_Jnode => FSUNDenseMatrix(int(Nvar, c_long), int(Nvar, c_long), sunctx) 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..3f0e3d232f 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 diff --git a/examples/cvode/F2003_parallel/cv_diag_kry_f2003.f90 b/examples/cvode/F2003_parallel/cv_diag_kry_f2003.f90 index 9061936dfa..b81f5e8329 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 @@ -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 ========= 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..c5ea45daf4 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 @@ -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 diff --git a/examples/cvodes/F2003_serial/cvsAdvDiff_FSA_non_f2003.f90 b/examples/cvodes/F2003_serial/cvsAdvDiff_FSA_non_f2003.f90 index b01b5200fb..1ad117e749 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 @@ -199,7 +210,8 @@ program main type(SUNNonlinearSolver), pointer :: NLSsens => null() integer(c_int) :: iout, retval real(c_double) :: reltol, abstol, tout, t(1) - integer(c_int64_t) :: is, plist(0:NS-1) + integer(c_int) :: plist(0:NS-1) + integer(kind=myindextype) :: is real(c_double) :: pbar(0:NS-1) ! Command line arguments 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..9a7bb93e21 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,7 +258,7 @@ 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 ! Create solution vector, point at its data, and set initial condition N = nxl*nyl @@ -312,7 +311,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 +392,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 +433,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 +638,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 +733,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 ========= diff --git a/examples/kinsol/F2003_parallel/kin_diagon_kry_f2003.f90 b/examples/kinsol/F2003_parallel/kin_diagon_kry_f2003.f90 index dcc6b09bbb..358110ee43 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,13 +247,10 @@ 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 ========= diff --git a/examples/nvector/mpimanyvector/test_fnvector_mpimanyvector_mod.f90 b/examples/nvector/mpimanyvector/test_fnvector_mpimanyvector_mod.f90 index 0e9f02f6aa..80bb0cc44d 100644 --- a/examples/nvector/mpimanyvector/test_fnvector_mpimanyvector_mod.f90 +++ b/examples/nvector/mpimanyvector/test_fnvector_mpimanyvector_mod.f90 @@ -25,13 +25,23 @@ 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 + ! 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 :: nsubvecs = 2 + integer(kind=myindextype), parameter :: N1 = 100 ! individual vector length + integer(kind=myindextype), parameter :: N2 = 200 ! individual vector length + integer(kind=myindextype), parameter :: nv = 3 ! length of vector arrays + 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 @@ -51,11 +61,11 @@ integer function smoke_tests() result(ret) !===== Setup ==== subvecs = FN_VNewVectorArray(nsubvecs, sunctx) tmp => FN_VMake_Serial(N1, x1data, sunctx) - call FN_VSetVecAtIndexVectorArray(subvecs, 0, tmp) + call FN_VSetVecAtIndexVectorArray(subvecs, 0_myindextype, tmp) tmp => FN_VMake_Serial(N2, x2data, sunctx) - call FN_VSetVecAtIndexVectorArray(subvecs, 1, tmp) + call FN_VSetVecAtIndexVectorArray(subvecs, 1_myindextype, tmp) - x => FN_VMake_MPIManyVector(comm, int(nsubvecs,8), subvecs, sunctx) + x => FN_VMake_MPIManyVector(comm, nsubvecs, subvecs, sunctx) call FN_VConst(ONE, x) y => FN_VClone_MPIManyVector(x) call FN_VConst(ONE, y) @@ -96,16 +106,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) @@ -115,9 +125,9 @@ integer function smoke_tests() result(ret) tmp => FN_VGetSubvector_MPIManyVector(x, ival-1) !==== Cleanup ===== - tmp => FN_VGetVecAtIndexVectorArray(subvecs, 0) + tmp => FN_VGetVecAtIndexVectorArray(subvecs, 0_myindextype) call FN_VDestroy(tmp) - tmp => FN_VGetVecAtIndexVectorArray(subvecs, 1) + tmp => FN_VGetVecAtIndexVectorArray(subvecs, 1_myindextype) call FN_VDestroy(tmp) call FN_VDestroy_MPIManyVector(x) call FN_VDestroy_MPIManyVector(y) @@ -150,11 +160,11 @@ integer function unit_tests() result(fails) subvecs = FN_VNewVectorArray(nsubvecs, sunctx) tmp => FN_VMake_Serial(N1, x1data, sunctx) - call FN_VSetVecAtIndexVectorArray(subvecs, 0, tmp) + call FN_VSetVecAtIndexVectorArray(subvecs, 0_myindextype, tmp) tmp => FN_VMake_Serial(N2, x2data, sunctx) - call FN_VSetVecAtIndexVectorArray(subvecs, 1, tmp) + call FN_VSetVecAtIndexVectorArray(subvecs, 1_myindextype, tmp) - x => FN_VMake_MPIManyVector(comm, int(nsubvecs,8), subvecs, sunctx) + x => FN_VMake_MPIManyVector(comm, nsubvecs, subvecs, sunctx) call FN_VConst(ONE, x) !==== tests ==== @@ -163,9 +173,9 @@ integer function unit_tests() result(fails) fails = Test_FN_VLinearCombination(x, N, myid) !=== cleanup ==== - tmp => FN_VGetVecAtIndexVectorArray(subvecs, 0) + tmp => FN_VGetVecAtIndexVectorArray(subvecs, 0_myindextype) call FN_VDestroy(tmp) - tmp => FN_VGetVecAtIndexVectorArray(subvecs, 1) + tmp => FN_VGetVecAtIndexVectorArray(subvecs, 1_myindextype) call FN_VDestroy(tmp) call FN_VDestroy_MPIManyVector(x) diff --git a/examples/nvector/parallel/test_fnvector_parallel_mod.f90 b/examples/nvector/parallel/test_fnvector_parallel_mod.f90 index 59f4d16968..9c264bac85 100644 --- a/examples/nvector/parallel/test_fnvector_parallel_mod.f90 +++ b/examples/nvector/parallel/test_fnvector_parallel_mod.f90 @@ -23,9 +23,19 @@ 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 + ! 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 :: local_length = 100 ! vector local length + integer(kind=myindextype), 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 @@ -98,16 +108,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) From d0b34977393363df85df1ebde72e6b8047ea331d Mon Sep 17 00:00:00 2001 From: Cody Balos Date: Thu, 25 Apr 2024 12:10:05 -0700 Subject: [PATCH 32/70] a few more fixes to make consistent use of myindextype --- ...ark_brusselator1D_task_local_nls_f2003.f90 | 11 ------ .../test_fnvector_manyvector_mod.f90 | 12 ------- .../test_fnvector_mpimanyvector_mod.f90 | 35 +++++++----------- .../mpiplusx/test_fnvector_mpiplusx_mod.f90 | 2 +- .../parallel/test_fnvector_parallel_mod.f90 | 36 +++++++------------ .../serial/test_fnvector_serial_mod.f90 | 12 ------- examples/nvector/test_nvector.f90 | 9 +---- .../band/test_fsunlinsol_band_mod.f90 | 12 +------ .../dense/test_fsunlinsol_dense_mod.f90 | 12 ++----- .../test_fsunlinsol_lapackdense_mod.f90 | 6 +--- .../serial/test_fsunlinsol_pcg_mod_serial.f90 | 6 +--- .../test_fsunlinsol_spbcgs_mod_serial.f90 | 6 +--- .../test_fsunlinsol_spfgmr_mod_serial.f90 | 6 +--- .../test_fsunlinsol_spgmr_mod_serial.f90 | 6 +--- .../test_fsunlinsol_sptfqmr_mod_serial.f90 | 6 +--- .../band/test_fsunmatrix_band_mod.f90 | 6 +--- .../dense/test_fsunmatrix_dense_mod.f90 | 12 +------ .../sparse/test_fsunmatrix_sparse_mod.f90 | 17 --------- .../test_fsunnonlinsol_fixedpoint_mod.f90 | 6 ---- .../newton/test_fsunnonlinsol_newton_mod.f90 | 6 ---- examples/utilities/test_utilities.f90 | 10 ++++++ 21 files changed, 48 insertions(+), 186 deletions(-) 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 17e6bf0ae1..0c5cba12a7 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 @@ -365,7 +365,6 @@ 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 !======= Declarations ========= @@ -472,7 +471,6 @@ integer(c_int) function PSolve(t, sunvec_y, sunvec_f, sunvec_r, sunvec_z, & !======= Inclusions =========== use, intrinsic :: iso_c_binding - use fnvector_mpiplusx_mod !======= Declarations ========= @@ -556,8 +554,6 @@ integer(c_int) function TaskLocalNlsResidual(sunvec_zcor, sunvec_F, arkode_mem) !======= Inclusions =========== use, intrinsic :: iso_c_binding use farkode_arkstep_mod - - use ode_mod, only : Neq, Reaction, myindextype !======= Declarations ========= @@ -825,10 +821,7 @@ 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 ========= @@ -888,10 +881,6 @@ integer(c_int) function TaskLocalNewton_Free(sunnls) & !======= Inclusions =========== use, intrinsic :: iso_c_binding - - - - !======= Declarations ========= implicit none diff --git a/examples/nvector/manyvector/test_fnvector_manyvector_mod.f90 b/examples/nvector/manyvector/test_fnvector_manyvector_mod.f90 index a6f1485b75..3919ea2c00 100644 --- a/examples/nvector/manyvector/test_fnvector_manyvector_mod.f90 +++ b/examples/nvector/manyvector/test_fnvector_manyvector_mod.f90 @@ -23,12 +23,6 @@ module test_nvector_manyvector use test_utilities implicit none -#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 :: nsubvecs = 2 integer(kind=myindextype), parameter :: N1 = 100 ! individual vector length integer(kind=myindextype), parameter :: N2 = 200 ! individual vector length @@ -169,12 +163,6 @@ function check_ans(ans, X, local_length) result(failure) use test_utilities implicit none -#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) :: ans type(N_Vector) :: X type(N_Vector), pointer :: X0, X1 diff --git a/examples/nvector/mpimanyvector/test_fnvector_mpimanyvector_mod.f90 b/examples/nvector/mpimanyvector/test_fnvector_mpimanyvector_mod.f90 index 80bb0cc44d..541ba29ef5 100644 --- a/examples/nvector/mpimanyvector/test_fnvector_mpimanyvector_mod.f90 +++ b/examples/nvector/mpimanyvector/test_fnvector_mpimanyvector_mod.f90 @@ -25,16 +25,6 @@ module test_nvector_mpimanyvector implicit none include "mpif.h" - ! 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 :: nsubvecs = 2 integer(kind=myindextype), parameter :: N1 = 100 ! individual vector length integer(kind=myindextype), parameter :: N2 = 200 ! individual vector length @@ -48,15 +38,15 @@ module test_nvector_mpimanyvector 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) @@ -187,8 +177,7 @@ 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 @@ -199,8 +188,8 @@ integer(C_INT) function check_ans(ans, X, local_length) result(failure) 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..76f3f6f25b 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 diff --git a/examples/nvector/parallel/test_fnvector_parallel_mod.f90 b/examples/nvector/parallel/test_fnvector_parallel_mod.f90 index 9c264bac85..fbf493cc16 100644 --- a/examples/nvector/parallel/test_fnvector_parallel_mod.f90 +++ b/examples/nvector/parallel/test_fnvector_parallel_mod.f90 @@ -23,36 +23,26 @@ module test_nvector_parallel implicit none include "mpif.h" - ! 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 :: local_length = 100 ! vector local length - integer(kind=myindextype), parameter :: nv = 3 ! length of vector arrays - integer(c_int), parameter :: ns = 2 ! number of vector arrays + integer(kind=myindextype), 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) diff --git a/examples/nvector/serial/test_fnvector_serial_mod.f90 b/examples/nvector/serial/test_fnvector_serial_mod.f90 index 8bca2bd266..899c033ff4 100644 --- a/examples/nvector/serial/test_fnvector_serial_mod.f90 +++ b/examples/nvector/serial/test_fnvector_serial_mod.f90 @@ -22,12 +22,6 @@ module test_nvector_serial use test_utilities implicit none -#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 :: N = 100 ! vector length integer(c_int), parameter :: nv = 3 ! length of vector arrays @@ -151,12 +145,6 @@ function check_ans(ans, X, local_length) result(failure) use test_utilities implicit none -#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) :: failure real(C_DOUBLE) :: ans type(N_Vector) :: X diff --git a/examples/nvector/test_nvector.f90 b/examples/nvector/test_nvector.f90 index 4a99a0e22c..adc4d8cf61 100644 --- a/examples/nvector/test_nvector.f90 +++ b/examples/nvector/test_nvector.f90 @@ -18,20 +18,13 @@ ! to an NVECTOR module implementation. It does not test every ! function. It tests the N_VMake constructor, one standard vector ! operation (N_VConst), N_VGetArrayPointer, and one fused operation. -! ----------------------------------------------------------------- +! -----------------------------------------------------------------c module test_fnvector use, intrinsic :: iso_c_binding - use test_utilities implicit none -#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(C_INT), external :: check_ans logical, external :: has_data diff --git a/examples/sunlinsol/band/test_fsunlinsol_band_mod.f90 b/examples/sunlinsol/band/test_fsunlinsol_band_mod.f90 index ea5751513a..8e6e755762 100644 --- a/examples/sunlinsol/band/test_fsunlinsol_band_mod.f90 +++ b/examples/sunlinsol/band/test_fsunlinsol_band_mod.f90 @@ -20,12 +20,6 @@ module test_fsunlinsol_band use test_utilities implicit none -#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 :: N = 10 integer(kind=myindextype), parameter :: mu = 2 integer(kind=myindextype), parameter :: ml = 3 @@ -127,11 +121,7 @@ integer(C_INT) function check_vector(X, Y, tol) result(failure) use test_utilities implicit none -#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(N_Vector) :: x, y real(C_DOUBLE) :: tol, maxerr diff --git a/examples/sunlinsol/dense/test_fsunlinsol_dense_mod.f90 b/examples/sunlinsol/dense/test_fsunlinsol_dense_mod.f90 index 8dd014b2f9..34da2d20a3 100644 --- a/examples/sunlinsol/dense/test_fsunlinsol_dense_mod.f90 +++ b/examples/sunlinsol/dense/test_fsunlinsol_dense_mod.f90 @@ -20,11 +20,7 @@ module test_fsunlinsol_dense use test_utilities implicit none -#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), private, parameter :: N = 100 @@ -126,11 +122,7 @@ integer(C_INT) function check_vector(X, Y, tol) result(failure) use test_utilities implicit none -#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(N_Vector) :: x, y real(C_DOUBLE) :: tol, maxerr diff --git a/examples/sunlinsol/lapackdense/test_fsunlinsol_lapackdense_mod.f90 b/examples/sunlinsol/lapackdense/test_fsunlinsol_lapackdense_mod.f90 index 07f601867a..387a126399 100644 --- a/examples/sunlinsol/lapackdense/test_fsunlinsol_lapackdense_mod.f90 +++ b/examples/sunlinsol/lapackdense/test_fsunlinsol_lapackdense_mod.f90 @@ -20,11 +20,7 @@ module test_fsunlinsol_lapackdense use test_utilities implicit none -#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), private, parameter :: N = 100 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 78c45b9c75..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,11 +25,7 @@ module test_fsunlinsol_pcg_serial use test_utilities implicit none -#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), private, parameter :: N = 100 integer(C_INT), private, parameter :: pretype = 1 ! Preconditioning type (1 or 2) 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 7b7d3223e8..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,11 +25,7 @@ module test_fsunlinsol_spbcgs_serial use test_utilities implicit none -#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), private, parameter :: N = 100 integer(C_INT), private, parameter :: pretype = 1 ! Preconditioning type (1 or 2) 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 1062a47c86..aa5066aed7 100644 --- a/examples/sunlinsol/spfgmr/serial/test_fsunlinsol_spfgmr_mod_serial.f90 +++ b/examples/sunlinsol/spfgmr/serial/test_fsunlinsol_spfgmr_mod_serial.f90 @@ -24,11 +24,7 @@ module test_fsunlinsol_spfgmr_serial use test_utilities implicit none -#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), private, parameter :: N = 100 integer(C_INT), private, parameter :: pretype = 1 ! Preconditioning type (1 or 2) 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 73d65f11e1..9f72112a41 100644 --- a/examples/sunlinsol/spgmr/serial/test_fsunlinsol_spgmr_mod_serial.f90 +++ b/examples/sunlinsol/spgmr/serial/test_fsunlinsol_spgmr_mod_serial.f90 @@ -24,11 +24,7 @@ module test_fsunlinsol_spgmr_serial use test_utilities implicit none -#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), private, parameter :: N = 100 integer(C_INT), private, parameter :: pretype = 1 ! Preconditioning type (1 or 2) 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 a558b499f5..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,11 +25,7 @@ module test_fsunlinsol_sptfqmr_serial use test_utilities implicit none -#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), private, parameter :: N = 100 integer(C_INT), private, parameter :: pretype = 1 ! Preconditioning type (1 or 2) diff --git a/examples/sunmatrix/band/test_fsunmatrix_band_mod.f90 b/examples/sunmatrix/band/test_fsunmatrix_band_mod.f90 index a9ed801746..3fc4bff7a4 100644 --- a/examples/sunmatrix/band/test_fsunmatrix_band_mod.f90 +++ b/examples/sunmatrix/band/test_fsunmatrix_band_mod.f90 @@ -20,11 +20,7 @@ module test_fsunmatrix_band use test_utilities implicit none -#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 :: N = 10 integer(kind=myindextype), parameter :: mu = 2 diff --git a/examples/sunmatrix/dense/test_fsunmatrix_dense_mod.f90 b/examples/sunmatrix/dense/test_fsunmatrix_dense_mod.f90 index 1e51262932..87cac2dff5 100644 --- a/examples/sunmatrix/dense/test_fsunmatrix_dense_mod.f90 +++ b/examples/sunmatrix/dense/test_fsunmatrix_dense_mod.f90 @@ -20,12 +20,6 @@ module test_fsunmatrix_dense use test_utilities implicit none -#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 :: N = 4 contains @@ -196,11 +190,7 @@ integer(C_INT) function check_matrix(A, B, tol) result(fails) implicit none -#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(SUNMatrix) :: A, B real(C_DOUBLE) :: tol diff --git a/examples/sunmatrix/sparse/test_fsunmatrix_sparse_mod.f90 b/examples/sunmatrix/sparse/test_fsunmatrix_sparse_mod.f90 index 31dcdf0e89..3283cd637e 100644 --- a/examples/sunmatrix/sparse/test_fsunmatrix_sparse_mod.f90 +++ b/examples/sunmatrix/sparse/test_fsunmatrix_sparse_mod.f90 @@ -20,12 +20,6 @@ module test_fsunmatrix_sparse use test_utilities implicit none -#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 :: N = 5 contains @@ -212,11 +206,6 @@ integer(C_INT) function check_matrix(A, B, tol) result(fails) implicit none -#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(SUNMatrix) :: A, B real(C_DOUBLE) :: tol @@ -304,12 +293,6 @@ integer(C_INT) function check_matrix_entry(A, c, tol) result(fails) implicit none -#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(SUNMatrix) :: A real(C_DOUBLE) :: c, tol real(C_DOUBLE), pointer :: Adata(:) diff --git a/examples/sunnonlinsol/fixedpoint/test_fsunnonlinsol_fixedpoint_mod.f90 b/examples/sunnonlinsol/fixedpoint/test_fsunnonlinsol_fixedpoint_mod.f90 index b7e9bc1785..90213440af 100644 --- a/examples/sunnonlinsol/fixedpoint/test_fsunnonlinsol_fixedpoint_mod.f90 +++ b/examples/sunnonlinsol/fixedpoint/test_fsunnonlinsol_fixedpoint_mod.f90 @@ -21,12 +21,6 @@ module test_fsunnonlinsol_fixedpoint implicit none -#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 ! 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 e6b32b8be8..9308fa902f 100644 --- a/examples/sunnonlinsol/newton/test_fsunnonlinsol_newton_mod.f90 +++ b/examples/sunnonlinsol/newton/test_fsunnonlinsol_newton_mod.f90 @@ -21,12 +21,6 @@ module test_fsunnonlinsol_newton implicit none -#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 ! 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/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 From 53432669b449cb05afbccb9c7271a03da8ecb9d5 Mon Sep 17 00:00:00 2001 From: Cody Balos Date: Thu, 25 Apr 2024 13:18:03 -0700 Subject: [PATCH 33/70] fixes in openmp and pthreads vectors --- .../C_openmp/test_fnvector_openmp_mod.f90 | 24 +++++++++--------- .../pthreads/test_fnvector_pthreads_mod.f90 | 25 +++++++++---------- 2 files changed, 24 insertions(+), 25 deletions(-) diff --git a/examples/nvector/C_openmp/test_fnvector_openmp_mod.f90 b/examples/nvector/C_openmp/test_fnvector_openmp_mod.f90 index a4b7648839..ec4a9ae3d1 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 :: nv = 3 ! length of vector arrays + integer(kind=myindextype), parameter :: ns = 2 ! number 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) diff --git a/examples/nvector/pthreads/test_fnvector_pthreads_mod.f90 b/examples/nvector/pthreads/test_fnvector_pthreads_mod.f90 index 13b3429927..dc59ef439f 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 :: nv = 3 ! length of vector arrays + integer(kind=myindextype), parameter :: ns = 2 ! number 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) From 540f7eb22c7ef0d5f68cf98c096d0e38e1980677 Mon Sep 17 00:00:00 2001 From: Cody Balos Date: Thu, 25 Apr 2024 15:47:24 -0700 Subject: [PATCH 34/70] fix klu example --- cmake/tpl/FindKLU.cmake | 4 ++++ examples/sunlinsol/klu/test_fsunlinsol_klu_mod.f90 | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/cmake/tpl/FindKLU.cmake b/cmake/tpl/FindKLU.cmake index 96b9d7343b..e3d626f1a4 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/examples/sunlinsol/klu/test_fsunlinsol_klu_mod.f90 b/examples/sunlinsol/klu/test_fsunlinsol_klu_mod.f90 index 8d2af5e73b..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 From 60697cf25a623e3ffdb045c4635972028201d1ab Mon Sep 17 00:00:00 2001 From: Cody Balos Date: Thu, 25 Apr 2024 16:47:54 -0700 Subject: [PATCH 35/70] fix index size in check_ans --- examples/nvector/C_openmp/test_fnvector_openmp_mod.f90 | 8 ++++---- .../mpimanyvector/test_fnvector_mpimanyvector_mod.f90 | 10 +++++----- .../nvector/mpiplusx/test_fnvector_mpiplusx_mod.f90 | 10 +++++----- .../nvector/pthreads/test_fnvector_pthreads_mod.f90 | 8 ++++---- 4 files changed, 18 insertions(+), 18 deletions(-) diff --git a/examples/nvector/C_openmp/test_fnvector_openmp_mod.f90 b/examples/nvector/C_openmp/test_fnvector_openmp_mod.f90 index ec4a9ae3d1..b722f5c4fe 100644 --- a/examples/nvector/C_openmp/test_fnvector_openmp_mod.f90 +++ b/examples/nvector/C_openmp/test_fnvector_openmp_mod.f90 @@ -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/mpimanyvector/test_fnvector_mpimanyvector_mod.f90 b/examples/nvector/mpimanyvector/test_fnvector_mpimanyvector_mod.f90 index 541ba29ef5..d4fc8a1297 100644 --- a/examples/nvector/mpimanyvector/test_fnvector_mpimanyvector_mod.f90 +++ b/examples/nvector/mpimanyvector/test_fnvector_mpimanyvector_mod.f90 @@ -180,11 +180,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, 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 diff --git a/examples/nvector/mpiplusx/test_fnvector_mpiplusx_mod.f90 b/examples/nvector/mpiplusx/test_fnvector_mpiplusx_mod.f90 index 76f3f6f25b..180944377d 100644 --- a/examples/nvector/mpiplusx/test_fnvector_mpiplusx_mod.f90 +++ b/examples/nvector/mpiplusx/test_fnvector_mpiplusx_mod.f90 @@ -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/pthreads/test_fnvector_pthreads_mod.f90 b/examples/nvector/pthreads/test_fnvector_pthreads_mod.f90 index dc59ef439f..ce93825dd5 100644 --- a/examples/nvector/pthreads/test_fnvector_pthreads_mod.f90 +++ b/examples/nvector/pthreads/test_fnvector_pthreads_mod.f90 @@ -147,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 From 179e512c5026be10bf29ddb3c6e097ce83c86bff Mon Sep 17 00:00:00 2001 From: Cody Balos Date: Thu, 25 Apr 2024 16:48:52 -0700 Subject: [PATCH 36/70] fix parallel vector too --- .../nvector/parallel/test_fnvector_parallel_mod.f90 | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/examples/nvector/parallel/test_fnvector_parallel_mod.f90 b/examples/nvector/parallel/test_fnvector_parallel_mod.f90 index fbf493cc16..ec9e17fc97 100644 --- a/examples/nvector/parallel/test_fnvector_parallel_mod.f90 +++ b/examples/nvector/parallel/test_fnvector_parallel_mod.f90 @@ -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 From 35dc697f7c231a6101228db1cf848803d3c00d8b Mon Sep 17 00:00:00 2001 From: Cody Balos Date: Mon, 29 Apr 2024 16:21:56 -0700 Subject: [PATCH 37/70] fix fortran make and cmake templates --- examples/templates/cmakelists_openmp_F2003_ex.in | 5 +++++ examples/templates/cmakelists_serial_F2003_ex.in | 7 +++++++ examples/templates/makefile_openmp_F2003_ex.in | 2 +- examples/templates/makefile_parallel_F2003_ex.in | 2 +- examples/templates/makefile_serial_F2003_ex.in | 2 +- 5 files changed, 15 insertions(+), 3 deletions(-) diff --git a/examples/templates/cmakelists_openmp_F2003_ex.in b/examples/templates/cmakelists_openmp_F2003_ex.in index cf351be2a7..79e54b3bae 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} 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_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@ # ------------------------------------------------------------------------------ From db69de04e2120e8a3ae89e873d7a9488d1480669 Mon Sep 17 00:00:00 2001 From: Cody Balos Date: Mon, 6 May 2024 08:45:38 -0700 Subject: [PATCH 38/70] add a swig workflow --- .github/workflows/check-clang-format.yml | 8 ++-- .github/workflows/check-swig.yml | 56 ++++++++++++++++++++++++ include/cvodes/cvodes.h | 2 +- 3 files changed, 61 insertions(+), 5 deletions(-) create mode 100644 .github/workflows/check-swig.yml diff --git a/.github/workflows/check-clang-format.yml b/.github/workflows/check-clang-format.yml index 8da2ebd3f9..33b7d78c11 100644 --- a/.github/workflows/check-clang-format.yml +++ b/.github/workflows/check-clang-format.yml @@ -36,12 +36,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..12e8f8f068 --- /dev/null +++ b/.github/workflows/check-swig.yml @@ -0,0 +1,56 @@ +name: Checks - swig + +on: + push: + pull_request: + workflow_dispatch: + +jobs: + clang_format_check: + runs-on: ubuntu-latest + # container: + # image: ghcr.io/llnl/sundials_spack_cache:llvm-17.0.4-h4lflucc3v2vage45opbo2didtcuigsn.spack + steps: + - name: Install git + run: | + apt update + apt install -y git + + - name: Install swig + run: | + git clone https://github.com/sundials-codes/swig + cd swig + ./autogen.sh + ./configure --prefix=/usr/bin + make + 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/include/cvodes/cvodes.h b/include/cvodes/cvodes.h index 813ded3c7f..9a6c15c0c5 100644 --- a/include/cvodes/cvodes.h +++ b/include/cvodes/cvodes.h @@ -373,7 +373,7 @@ SUNDIALS_EXPORT int CVodeSetSensDQMethod(void* cvode_mem, int DQtype, SUNDIALS_EXPORT int CVodeSetSensErrCon(void* cvode_mem, sunbooleantype errconS); SUNDIALS_EXPORT int CVodeSetSensMaxNonlinIters(void* cvode_mem, int maxcorS); SUNDIALS_EXPORT int CVodeSetSensParams(void* cvode_mem, sunrealtype* p, - sunrealtype* pbar, int* plist); + sunrealtype* pbar, sunindextype* plist); /* Integrator nonlinear solver specification functions */ SUNDIALS_EXPORT int CVodeSetNonlinearSolverSensSim(void* cvode_mem, From 678cbdd3baedb71bf10797b8c354a3f5db495797 Mon Sep 17 00:00:00 2001 From: Cody Balos Date: Mon, 6 May 2024 08:46:30 -0700 Subject: [PATCH 39/70] rename job --- .github/workflows/check-swig.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/check-swig.yml b/.github/workflows/check-swig.yml index 12e8f8f068..3a5a34e5ef 100644 --- a/.github/workflows/check-swig.yml +++ b/.github/workflows/check-swig.yml @@ -6,7 +6,7 @@ on: workflow_dispatch: jobs: - clang_format_check: + swig: runs-on: ubuntu-latest # container: # image: ghcr.io/llnl/sundials_spack_cache:llvm-17.0.4-h4lflucc3v2vage45opbo2didtcuigsn.spack From c21eb5aa6f413c6b73f9969fe6d9f8a42f320675 Mon Sep 17 00:00:00 2001 From: Cody Balos Date: Mon, 6 May 2024 08:48:21 -0700 Subject: [PATCH 40/70] remove containers line, only run on prs --- .github/workflows/check-swig.yml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/.github/workflows/check-swig.yml b/.github/workflows/check-swig.yml index 3a5a34e5ef..b374027cee 100644 --- a/.github/workflows/check-swig.yml +++ b/.github/workflows/check-swig.yml @@ -1,15 +1,13 @@ name: Checks - swig on: - push: pull_request: workflow_dispatch: jobs: swig: runs-on: ubuntu-latest - # container: - # image: ghcr.io/llnl/sundials_spack_cache:llvm-17.0.4-h4lflucc3v2vage45opbo2didtcuigsn.spack + steps: - name: Install git run: | From a5a64231c5f79bf48540d785f33221f549784c7c Mon Sep 17 00:00:00 2001 From: Cody Balos Date: Mon, 6 May 2024 08:49:07 -0700 Subject: [PATCH 41/70] remove git install line --- .github/workflows/check-swig.yml | 5 ----- 1 file changed, 5 deletions(-) diff --git a/.github/workflows/check-swig.yml b/.github/workflows/check-swig.yml index b374027cee..9a537474d6 100644 --- a/.github/workflows/check-swig.yml +++ b/.github/workflows/check-swig.yml @@ -9,11 +9,6 @@ jobs: runs-on: ubuntu-latest steps: - - name: Install git - run: | - apt update - apt install -y git - - name: Install swig run: | git clone https://github.com/sundials-codes/swig From 045ac4d154b5e0df495efb75f83e35955d18553c Mon Sep 17 00:00:00 2001 From: Cody Balos Date: Mon, 6 May 2024 08:51:06 -0700 Subject: [PATCH 42/70] only run clang format on PRs and by request --- .github/workflows/check-clang-format.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/check-clang-format.yml b/.github/workflows/check-clang-format.yml index 33b7d78c11..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: From 1d7a8087538e508d95837c1268d47c02684cf847 Mon Sep 17 00:00:00 2001 From: Cody Balos Date: Mon, 6 May 2024 08:55:02 -0700 Subject: [PATCH 43/70] fix swig build --- .github/workflows/check-swig.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/check-swig.yml b/.github/workflows/check-swig.yml index 9a537474d6..5846f73811 100644 --- a/.github/workflows/check-swig.yml +++ b/.github/workflows/check-swig.yml @@ -14,9 +14,9 @@ jobs: git clone https://github.com/sundials-codes/swig cd swig ./autogen.sh - ./configure --prefix=/usr/bin + ./configure --prefix=/usr/ make - make install + sudo make install swig --version - name: Check out repository code From 1e404f4b9ccbadef5afa38b1e05250af6fb28f27 Mon Sep 17 00:00:00 2001 From: Cody Balos Date: Mon, 6 May 2024 09:07:23 -0700 Subject: [PATCH 44/70] a couple doc notes --- .../developers/getting_started/Checklist.rst | 26 +++++++++---------- .../developers/style_guide/SourceCode.rst | 11 ++++++++ 2 files changed, 23 insertions(+), 14 deletions(-) diff --git a/doc/superbuild/source/developers/getting_started/Checklist.rst b/doc/superbuild/source/developers/getting_started/Checklist.rst index c39432f85c..f036a8b3de 100644 --- a/doc/superbuild/source/developers/getting_started/Checklist.rst +++ b/doc/superbuild/source/developers/getting_started/Checklist.rst @@ -27,10 +27,9 @@ 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. #. Configure your build with a minimal set of configuration options enabled (serial). Run ``make``, ``make test``, ``make install``, and @@ -52,8 +51,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 +66,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 was infact changes that required updates + to the Fortran). diff --git a/doc/superbuild/source/developers/style_guide/SourceCode.rst b/doc/superbuild/source/developers/style_guide/SourceCode.rst index b7ee3c4dee..4d41487199 100644 --- a/doc/superbuild/source/developers/style_guide/SourceCode.rst +++ b/doc/superbuild/source/developers/style_guide/SourceCode.rst @@ -367,6 +367,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: @@ -422,3 +432,4 @@ There are other scenarios (e.g., a function call with a lot of parameters) where .. }; .. See the clang-tidy documentation for more details. + From 5560026a94d43a2501318f799f2c890a7806f100 Mon Sep 17 00:00:00 2001 From: Cody Balos Date: Mon, 6 May 2024 09:08:28 -0700 Subject: [PATCH 45/70] fix swig version command --- .github/workflows/check-swig.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/check-swig.yml b/.github/workflows/check-swig.yml index 5846f73811..2a4193a239 100644 --- a/.github/workflows/check-swig.yml +++ b/.github/workflows/check-swig.yml @@ -17,7 +17,7 @@ jobs: ./configure --prefix=/usr/ make sudo make install - swig --version + swig -version - name: Check out repository code uses: actions/checkout@v4 From 7a0241cf17303176ac23dc79fa742c0f74eb2166 Mon Sep 17 00:00:00 2001 From: Cody Balos Date: Mon, 6 May 2024 09:34:01 -0700 Subject: [PATCH 46/70] change CVodeSetSensParams back --- include/cvodes/cvodes.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/cvodes/cvodes.h b/include/cvodes/cvodes.h index 9a6c15c0c5..813ded3c7f 100644 --- a/include/cvodes/cvodes.h +++ b/include/cvodes/cvodes.h @@ -373,7 +373,7 @@ SUNDIALS_EXPORT int CVodeSetSensDQMethod(void* cvode_mem, int DQtype, SUNDIALS_EXPORT int CVodeSetSensErrCon(void* cvode_mem, sunbooleantype errconS); SUNDIALS_EXPORT int CVodeSetSensMaxNonlinIters(void* cvode_mem, int maxcorS); SUNDIALS_EXPORT int CVodeSetSensParams(void* cvode_mem, sunrealtype* p, - sunrealtype* pbar, sunindextype* plist); + sunrealtype* pbar, int* plist); /* Integrator nonlinear solver specification functions */ SUNDIALS_EXPORT int CVodeSetNonlinearSolverSensSim(void* cvode_mem, From 5fa2eb1af8cad21f558438d86a791480c79bee40 Mon Sep 17 00:00:00 2001 From: Cody Balos Date: Mon, 6 May 2024 09:34:39 -0700 Subject: [PATCH 47/70] plist must be int of size 4 --- examples/cvodes/F2003_serial/cvsAdvDiff_FSA_non_f2003.f90 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/cvodes/F2003_serial/cvsAdvDiff_FSA_non_f2003.f90 b/examples/cvodes/F2003_serial/cvsAdvDiff_FSA_non_f2003.f90 index 1ad117e749..cc0d6d44dc 100644 --- a/examples/cvodes/F2003_serial/cvsAdvDiff_FSA_non_f2003.f90 +++ b/examples/cvodes/F2003_serial/cvsAdvDiff_FSA_non_f2003.f90 @@ -278,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 From febac512c441b4fe1781f0a95455620ba0ad8b53 Mon Sep 17 00:00:00 2001 From: Cody Balos Date: Mon, 6 May 2024 15:54:51 -0700 Subject: [PATCH 48/70] werror fixes --- examples/cvode/F2003_parallel/cv_diag_kry_bbd_f2003.f90 | 1 - examples/cvode/F2003_parallel/cv_diag_kry_f2003.f90 | 2 +- examples/cvode/F2003_parallel/cv_diag_non_p_f2003.f90 | 3 +-- 3 files changed, 2 insertions(+), 4 deletions(-) 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 3f0e3d232f..685d60784c 100644 --- a/examples/cvode/F2003_parallel/cv_diag_kry_bbd_f2003.f90 +++ b/examples/cvode/F2003_parallel/cv_diag_kry_bbd_f2003.f90 @@ -172,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 b81f5e8329..5e8f866375 100644 --- a/examples/cvode/F2003_parallel/cv_diag_kry_f2003.f90 +++ b/examples/cvode/F2003_parallel/cv_diag_kry_f2003.f90 @@ -135,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(kind=myindextype) :: i, ibase, istart real(c_double) :: psubi, pj !======= Internals ============ 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 c5ea45daf4..39b8abf5dc 100644 --- a/examples/cvode/F2003_parallel/cv_diag_non_p_f2003.f90 +++ b/examples/cvode/F2003_parallel/cv_diag_non_p_f2003.f90 @@ -75,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 ============ @@ -131,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 From bc8207da3e4979282d072e3f63f45fe2124a1575 Mon Sep 17 00:00:00 2001 From: Cody Balos Date: Mon, 6 May 2024 15:55:21 -0700 Subject: [PATCH 49/70] regen swig --- .../sparse/fmod_int64/fsunmatrix_sparse_mod.c | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/src/sunmatrix/sparse/fmod_int64/fsunmatrix_sparse_mod.c b/src/sunmatrix/sparse/fmod_int64/fsunmatrix_sparse_mod.c index eee8d9d198..3f97241d5f 100644 --- a/src/sunmatrix/sparse/fmod_int64/fsunmatrix_sparse_mod.c +++ b/src/sunmatrix/sparse/fmod_int64/fsunmatrix_sparse_mod.c @@ -516,6 +516,29 @@ SWIGEXPORT double * _wrap_FSUNSparseMatrix_Data(SUNMatrix farg1) { 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 ; @@ -537,5 +560,6 @@ SWIGEXPORT int64_t * _wrap_FSUNSparseMatrix_IndexPointers(SUNMatrix farg1) { fresult = result; return fresult; } +#endif From a1d2e5ce924567c70128299b5c99d4a121b184c6 Mon Sep 17 00:00:00 2001 From: Cody Balos Date: Mon, 6 May 2024 16:01:10 -0700 Subject: [PATCH 50/70] bump answers --- test/answers | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/answers b/test/answers index 1ab057ec30..021f5ffe0c 160000 --- a/test/answers +++ b/test/answers @@ -1 +1 @@ -Subproject commit 1ab057ec30477fd531d4cc16c6b9bb0cd55ebd45 +Subproject commit 021f5ffe0c7fd134cb1285a6fdeae74201513541 From 6aa852feaca620b3f1bdc12483b905fe740a1cad Mon Sep 17 00:00:00 2001 From: Cody Balos Date: Mon, 6 May 2024 16:03:44 -0700 Subject: [PATCH 51/70] bump answers --- test/answers | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/answers b/test/answers index 021f5ffe0c..f250453f3c 160000 --- a/test/answers +++ b/test/answers @@ -1 +1 @@ -Subproject commit 021f5ffe0c7fd134cb1285a6fdeae74201513541 +Subproject commit f250453f3c954f791390a3c7d28975f801539955 From 6ab3a0d733be7f06db84715858008a0f005c65a9 Mon Sep 17 00:00:00 2001 From: "Balos, Cody, J" Date: Tue, 7 May 2024 11:59:53 -0700 Subject: [PATCH 52/70] swig update --- src/arkode/fmod_int32/farkode_erkstep_mod.c | 8 +- src/arkode/fmod_int32/farkode_erkstep_mod.f90 | 26 +- src/arkode/fmod_int32/farkode_mod.c | 2248 +++++++- src/arkode/fmod_int32/farkode_mod.f90 | 4614 +++++++++++++++-- 4 files changed, 6533 insertions(+), 363 deletions(-) diff --git a/src/arkode/fmod_int32/farkode_erkstep_mod.c b/src/arkode/fmod_int32/farkode_erkstep_mod.c index c401460048..fab7db1d84 100644 --- a/src/arkode/fmod_int32/farkode_erkstep_mod.c +++ b/src/arkode/fmod_int32/farkode_erkstep_mod.c @@ -1001,7 +1001,7 @@ SWIGEXPORT int _wrap_FERKStepGetNumStepAttempts(void *farg1, long *farg2) { } -SWIGEXPORT int _wrap_FERKStepGetNumRhsEvals(void *farg1, long *farg2) { +SWIGEXPORT int _wrap_FERKStepGetNumErrTestFails(void *farg1, long *farg2) { int fresult ; void *arg1 = (void *) 0 ; long *arg2 = (long *) 0 ; @@ -1009,13 +1009,13 @@ SWIGEXPORT int _wrap_FERKStepGetNumRhsEvals(void *farg1, long *farg2) { arg1 = (void *)(farg1); arg2 = (long *)(farg2); - result = (int)ERKStepGetNumRhsEvals(arg1,arg2); + result = (int)ERKStepGetNumErrTestFails(arg1,arg2); fresult = (int)(result); return fresult; } -SWIGEXPORT int _wrap_FERKStepGetNumErrTestFails(void *farg1, long *farg2) { +SWIGEXPORT int _wrap_FERKStepGetNumRhsEvals(void *farg1, long *farg2) { int fresult ; void *arg1 = (void *) 0 ; long *arg2 = (long *) 0 ; @@ -1023,7 +1023,7 @@ SWIGEXPORT int _wrap_FERKStepGetNumErrTestFails(void *farg1, long *farg2) { arg1 = (void *)(farg1); arg2 = (long *)(farg2); - result = (int)ERKStepGetNumErrTestFails(arg1,arg2); + result = (int)ERKStepGetNumRhsEvals(arg1,arg2); fresult = (int)(result); return fresult; } diff --git a/src/arkode/fmod_int32/farkode_erkstep_mod.f90 b/src/arkode/fmod_int32/farkode_erkstep_mod.f90 index 98a6a5f817..e75d960ae4 100644 --- a/src/arkode/fmod_int32/farkode_erkstep_mod.f90 +++ b/src/arkode/fmod_int32/farkode_erkstep_mod.f90 @@ -90,8 +90,8 @@ module farkode_erkstep_mod public :: FERKStepGetNumExpSteps public :: FERKStepGetNumAccSteps public :: FERKStepGetNumStepAttempts - public :: FERKStepGetNumRhsEvals public :: FERKStepGetNumErrTestFails + public :: FERKStepGetNumRhsEvals public :: FERKStepGetCurrentButcherTable public :: FERKStepGetEstLocalErrors public :: FERKStepGetWorkSpace @@ -621,8 +621,8 @@ function swigc_FERKStepGetNumStepAttempts(farg1, farg2) & integer(C_INT) :: fresult end function -function swigc_FERKStepGetNumRhsEvals(farg1, farg2) & -bind(C, name="_wrap_FERKStepGetNumRhsEvals") & +function swigc_FERKStepGetNumErrTestFails(farg1, farg2) & +bind(C, name="_wrap_FERKStepGetNumErrTestFails") & result(fresult) use, intrinsic :: ISO_C_BINDING type(C_PTR), value :: farg1 @@ -630,8 +630,8 @@ function swigc_FERKStepGetNumRhsEvals(farg1, farg2) & integer(C_INT) :: fresult end function -function swigc_FERKStepGetNumErrTestFails(farg1, farg2) & -bind(C, name="_wrap_FERKStepGetNumErrTestFails") & +function swigc_FERKStepGetNumRhsEvals(farg1, farg2) & +bind(C, name="_wrap_FERKStepGetNumRhsEvals") & result(fresult) use, intrinsic :: ISO_C_BINDING type(C_PTR), value :: farg1 @@ -1900,35 +1900,35 @@ function FERKStepGetNumStepAttempts(arkode_mem, step_attempts) & swig_result = fresult end function -function FERKStepGetNumRhsEvals(arkode_mem, nfevals) & +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) :: nfevals +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(nfevals(1)) -fresult = swigc_FERKStepGetNumRhsEvals(farg1, farg2) +farg2 = c_loc(netfails(1)) +fresult = swigc_FERKStepGetNumErrTestFails(farg1, farg2) swig_result = fresult end function -function FERKStepGetNumErrTestFails(arkode_mem, netfails) & +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) :: netfails +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(netfails(1)) -fresult = swigc_FERKStepGetNumErrTestFails(farg1, farg2) +farg2 = c_loc(nfevals(1)) +fresult = swigc_FERKStepGetNumRhsEvals(farg1, farg2) swig_result = fresult end function diff --git a/src/arkode/fmod_int32/farkode_mod.c b/src/arkode/fmod_int32/farkode_mod.c index 2c925443a1..5cd107b291 100644 --- a/src/arkode/fmod_int32/farkode_mod.c +++ b/src/arkode/fmod_int32/farkode_mod.c @@ -242,6 +242,34 @@ enum { #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; @@ -256,65 +284,1945 @@ SWIGINTERN SwigClassWrapper SwigClassWrapper_uninitialized() { } -#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; + } + } +} + +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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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 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 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 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; +} -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_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; } -typedef struct { - void* data; - size_t size; -} SwigArrayWrapper; +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; +} -SWIGINTERN SwigArrayWrapper SwigArrayWrapper_uninitialized() { - SwigArrayWrapper result; - result.data = NULL; - result.size = 0; - return result; +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 ; @@ -1055,4 +2963,244 @@ SWIGEXPORT int _wrap_FARKodeSPRKTable_ToButcher(void *farg1, void *farg2, void * } +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 index ec7a023be1..e537f32abf 100644 --- a/src/arkode/fmod_int32/farkode_mod.f90 +++ b/src/arkode/fmod_int32/farkode_mod.f90 @@ -92,6 +92,7 @@ module farkode_mod 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) @@ -100,6 +101,143 @@ module farkode_mod 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 :: FARKodeSetNonlinearSolver + public :: FARKodeSetLinear + public :: FARKodeSetNonlinear + public :: FARKodeSetNlsRhsFn + public :: FARKodeSetDeduceImplicitRhs + 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 :: FARKodeSetNonlinCRDown + public :: FARKodeSetNonlinRDiv + public :: FARKodeSetDeltaGammaMax + public :: FARKodeSetLSetupFrequency + public :: FARKodeSetPredictorMethod + public :: FARKodeSetStabilityFn + public :: FARKodeSetMaxErrTestFails + public :: FARKodeSetMaxNonlinIters + public :: FARKodeSetMaxConvFails + public :: FARKodeSetNonlinConvCoef + public :: FARKodeSetConstraints + public :: FARKodeSetMaxNumSteps + public :: FARKodeSetMaxHnilWarns + public :: FARKodeSetInitStep + public :: FARKodeSetMinStep + public :: FARKodeSetMaxStep + public :: FARKodeSetInterpolateStopTime + public :: FARKodeSetStopTime + public :: FARKodeClearStopTime + public :: FARKodeSetFixedStep + public :: FARKodeSetMaxNumConstrFails + public :: FARKodeSetUserData + public :: FARKodeSetPostprocessStepFn + public :: FARKodeSetPostprocessStageFn + public :: FARKodeSetStagePredictFn + public :: FARKodeEvolve + public :: FARKodeGetDky + public :: FARKodeComputeState + public :: FARKodeGetNumExpSteps + public :: FARKodeGetNumAccSteps + public :: FARKodeGetNumStepAttempts + public :: FARKodeGetNumLinSolvSetups + public :: FARKodeGetNumErrTestFails + public :: FARKodeGetEstLocalErrors + public :: FARKodeGetWorkSpace + public :: FARKodeGetNumSteps + public :: FARKodeGetActualInitStep + public :: FARKodeGetLastStep + public :: FARKodeGetCurrentStep + public :: FARKodeGetCurrentTime + public :: FARKodeGetCurrentState + public :: FARKodeGetCurrentGamma + public :: FARKodeGetCurrentMassMatrix + public :: FARKodeGetTolScaleFactor + public :: FARKodeGetErrWeights + public :: FARKodeGetResWeights + public :: FARKodeGetNumGEvals + public :: FARKodeGetRootInfo + public :: FARKodeGetNumConstrFails + 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 :: FARKodeGetStepStats + 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 :: FARKodeGetMassWorkSpace + public :: FARKodeGetNumMassSetups + public :: FARKodeGetNumMassMultSetups + public :: FARKodeGetNumMassMult + public :: FARKodeGetNumMassSolves + public :: FARKodeGetNumMassPrecEvals + public :: FARKodeGetNumMassPrecSolves + public :: FARKodeGetNumMassIters + public :: FARKodeGetNumMassConvFails + public :: FARKodeGetNumMTSetups + public :: FARKodeGetLastMassFlag + public :: FARKodeGetLinReturnFlagName + 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 @@ -188,10 +326,6 @@ module farkode_mod ARKODE_ESDIRK437L2SA_7_3_4, ARKODE_ESDIRK547L2SA_7_4_5, ARKODE_ESDIRK547L2SA2_7_4_5, ARKODE_ARK2_DIRK_3_1_2, & ARKODE_MAX_DIRK_NUM public :: FARKodeButcherTable_LoadDIRK - type, bind(C) :: SwigArrayWrapper - type(C_PTR), public :: data = C_NULL_PTR - integer(C_SIZE_T), public :: size = 0 - end type public :: FARKodeButcherTable_LoadDIRKByName ! typedef enum ARKODE_ERKTableID enum, bind(c) @@ -294,78 +428,88 @@ module farkode_mod 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_FARKBandPrecInit(farg1, farg2, farg3, farg4) & -bind(C, name="_wrap_FARKBandPrecInit") & +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 -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 :: 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_FARKBandPrecGetWorkSpace(farg1, farg2, farg3) & -bind(C, name="_wrap_FARKBandPrecGetWorkSpace") & +function swigc_FARKodeReset(farg1, farg2, farg3) & +bind(C, name="_wrap_FARKodeReset") & result(fresult) use, intrinsic :: ISO_C_BINDING type(C_PTR), value :: farg1 -type(C_PTR), value :: farg2 +real(C_DOUBLE), intent(in) :: farg2 type(C_PTR), value :: farg3 integer(C_INT) :: fresult end function -function swigc_FARKBandPrecGetNumRhsEvals(farg1, farg2) & -bind(C, name="_wrap_FARKBandPrecGetNumRhsEvals") & +function swigc_FARKodeSStolerances(farg1, farg2, farg3) & +bind(C, name="_wrap_FARKodeSStolerances") & result(fresult) use, intrinsic :: ISO_C_BINDING type(C_PTR), value :: farg1 -type(C_PTR), value :: farg2 +real(C_DOUBLE), intent(in) :: farg2 +real(C_DOUBLE), intent(in) :: farg3 integer(C_INT) :: fresult end function -function swigc_FARKBBDPrecInit(farg1, farg2, farg3, farg4, farg5, farg6, farg7, farg8, farg9) & -bind(C, name="_wrap_FARKBBDPrecInit") & +function swigc_FARKodeSVtolerances(farg1, farg2, farg3) & +bind(C, name="_wrap_FARKodeSVtolerances") & 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 +real(C_DOUBLE), intent(in) :: farg2 +type(C_PTR), value :: farg3 integer(C_INT) :: fresult end function -function swigc_FARKBBDPrecReInit(farg1, farg2, farg3, farg4) & -bind(C, name="_wrap_FARKBBDPrecReInit") & +function swigc_FARKodeWFtolerances(farg1, farg2) & +bind(C, name="_wrap_FARKodeWFtolerances") & 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 +type(C_FUNPTR), value :: farg2 integer(C_INT) :: fresult end function -function swigc_FARKBBDPrecGetWorkSpace(farg1, farg2, farg3) & -bind(C, name="_wrap_FARKBBDPrecGetWorkSpace") & +function swigc_FARKodeResStolerance(farg1, farg2) & +bind(C, name="_wrap_FARKodeResStolerance") & 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), intent(in) :: farg2 integer(C_INT) :: fresult end function -function swigc_FARKBBDPrecGetNumGfnEvals(farg1, farg2) & -bind(C, name="_wrap_FARKBBDPrecGetNumGfnEvals") & +function swigc_FARKodeResVtolerance(farg1, farg2) & +bind(C, name="_wrap_FARKodeResVtolerance") & result(fresult) use, intrinsic :: ISO_C_BINDING type(C_PTR), value :: farg1 @@ -373,436 +517,4034 @@ function swigc_FARKBBDPrecGetNumGfnEvals(farg1, 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") & +function swigc_FARKodeResFtolerance(farg1, farg2) & +bind(C, name="_wrap_FARKodeResFtolerance") & result(fresult) use, intrinsic :: ISO_C_BINDING -import :: swigclasswrapper -type(SwigClassWrapper) :: farg1 +type(C_PTR), value :: farg1 +type(C_FUNPTR), value :: farg2 integer(C_INT) :: fresult end function -subroutine swigc_ARKodeButcherTableMem_p_set(farg1, farg2) & -bind(C, name="_wrap_ARKodeButcherTableMem_p_set") +function swigc_FARKodeRootInit(farg1, farg2, farg3) & +bind(C, name="_wrap_FARKodeRootInit") & +result(fresult) use, intrinsic :: ISO_C_BINDING -import :: swigclasswrapper -type(SwigClassWrapper) :: farg1 +type(C_PTR), value :: farg1 integer(C_INT), intent(in) :: farg2 -end subroutine +type(C_FUNPTR), value :: farg3 +integer(C_INT) :: fresult +end function -function swigc_ARKodeButcherTableMem_p_get(farg1) & -bind(C, name="_wrap_ARKodeButcherTableMem_p_get") & +function swigc_FARKodeSetRootDirection(farg1, farg2) & +bind(C, name="_wrap_FARKodeSetRootDirection") & result(fresult) use, intrinsic :: ISO_C_BINDING -import :: swigclasswrapper -type(SwigClassWrapper) :: farg1 +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 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") & +function swigc_FARKodeSetNoInactiveRootWarn(farg1) & +bind(C, name="_wrap_FARKodeSetNoInactiveRootWarn") & result(fresult) use, intrinsic :: ISO_C_BINDING -import :: swigclasswrapper -type(SwigClassWrapper) :: farg1 +type(C_PTR), value :: 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") & +function swigc_FARKodeSetDefaults(farg1) & +bind(C, name="_wrap_FARKodeSetDefaults") & result(fresult) use, intrinsic :: ISO_C_BINDING -import :: swigclasswrapper -type(SwigClassWrapper) :: farg1 -type(C_PTR) :: fresult +type(C_PTR), value :: farg1 +integer(C_INT) :: 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") & +function swigc_FARKodeSetOrder(farg1, farg2) & +bind(C, name="_wrap_FARKodeSetOrder") & result(fresult) use, intrinsic :: ISO_C_BINDING -import :: swigclasswrapper -type(SwigClassWrapper) :: farg1 -type(C_PTR) :: fresult +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult end function -subroutine swigc_ARKodeButcherTableMem_b_set(farg1, farg2) & -bind(C, name="_wrap_ARKodeButcherTableMem_b_set") +function swigc_FARKodeSetInterpolantType(farg1, farg2) & +bind(C, name="_wrap_FARKodeSetInterpolantType") & +result(fresult) use, intrinsic :: ISO_C_BINDING -import :: swigclasswrapper -type(SwigClassWrapper) :: farg1 -type(C_PTR), value :: farg2 -end subroutine +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function -function swigc_ARKodeButcherTableMem_b_get(farg1) & -bind(C, name="_wrap_ARKodeButcherTableMem_b_get") & +function swigc_FARKodeSetInterpolantDegree(farg1, farg2) & +bind(C, name="_wrap_FARKodeSetInterpolantDegree") & result(fresult) use, intrinsic :: ISO_C_BINDING -import :: swigclasswrapper -type(SwigClassWrapper) :: farg1 -type(C_PTR) :: fresult +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult end function -subroutine swigc_ARKodeButcherTableMem_d_set(farg1, farg2) & -bind(C, name="_wrap_ARKodeButcherTableMem_d_set") +function swigc_FARKodeSetNonlinearSolver(farg1, farg2) & +bind(C, name="_wrap_FARKodeSetNonlinearSolver") & +result(fresult) use, intrinsic :: ISO_C_BINDING -import :: swigclasswrapper -type(SwigClassWrapper) :: farg1 +type(C_PTR), value :: farg1 type(C_PTR), value :: farg2 -end subroutine +integer(C_INT) :: fresult +end function -function swigc_ARKodeButcherTableMem_d_get(farg1) & -bind(C, name="_wrap_ARKodeButcherTableMem_d_get") & +function swigc_FARKodeSetLinear(farg1, farg2) & +bind(C, name="_wrap_FARKodeSetLinear") & result(fresult) use, intrinsic :: ISO_C_BINDING -import :: swigclasswrapper -type(SwigClassWrapper) :: farg1 -type(C_PTR) :: fresult +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult end function -function swigc_new_ARKodeButcherTableMem() & -bind(C, name="_wrap_new_ARKodeButcherTableMem") & +function swigc_FARKodeSetNonlinear(farg1) & +bind(C, name="_wrap_FARKodeSetNonlinear") & result(fresult) use, intrinsic :: ISO_C_BINDING -import :: swigclasswrapper -type(SwigClassWrapper) :: fresult +type(C_PTR), value :: farg1 +integer(C_INT) :: 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__") +function swigc_FARKodeSetNlsRhsFn(farg1, farg2) & +bind(C, name="_wrap_FARKodeSetNlsRhsFn") & +result(fresult) use, intrinsic :: ISO_C_BINDING -import :: swigclasswrapper -type(SwigClassWrapper), intent(inout) :: farg1 -type(SwigClassWrapper) :: farg2 -end subroutine +type(C_PTR), value :: farg1 +type(C_FUNPTR), value :: farg2 +integer(C_INT) :: fresult +end function -function swigc_FARKodeButcherTable_Alloc(farg1, farg2) & -bind(C, name="_wrap_FARKodeButcherTable_Alloc") & +function swigc_FARKodeSetDeduceImplicitRhs(farg1, farg2) & +bind(C, name="_wrap_FARKodeSetDeduceImplicitRhs") & result(fresult) use, intrinsic :: ISO_C_BINDING -integer(C_INT), intent(in) :: farg1 +type(C_PTR), value :: farg1 integer(C_INT), intent(in) :: farg2 -type(C_PTR) :: fresult +integer(C_INT) :: fresult end function -function swigc_FARKodeButcherTable_Create(farg1, farg2, farg3, farg4, farg5, farg6, farg7) & -bind(C, name="_wrap_FARKodeButcherTable_Create") & +function swigc_FARKodeSetAdaptController(farg1, farg2) & +bind(C, name="_wrap_FARKodeSetAdaptController") & 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 +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult end function -function swigc_FARKodeButcherTable_Copy(farg1) & -bind(C, name="_wrap_FARKodeButcherTable_Copy") & +function swigc_FARKodeSetAdaptivityAdjustment(farg1, farg2) & +bind(C, name="_wrap_FARKodeSetAdaptivityAdjustment") & result(fresult) use, intrinsic :: ISO_C_BINDING type(C_PTR), value :: farg1 -type(C_PTR) :: fresult +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult end function -subroutine swigc_FARKodeButcherTable_Space(farg1, farg2, farg3) & -bind(C, name="_wrap_FARKodeButcherTable_Space") +function swigc_FARKodeSetCFLFraction(farg1, farg2) & +bind(C, name="_wrap_FARKodeSetCFLFraction") & +result(fresult) use, intrinsic :: ISO_C_BINDING type(C_PTR), value :: farg1 -type(C_PTR), value :: farg2 -type(C_PTR), value :: farg3 -end subroutine +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT) :: fresult +end function -subroutine swigc_FARKodeButcherTable_Free(farg1) & -bind(C, name="_wrap_FARKodeButcherTable_Free") +function swigc_FARKodeSetErrorBias(farg1, farg2) & +bind(C, name="_wrap_FARKodeSetErrorBias") & +result(fresult) use, intrinsic :: ISO_C_BINDING type(C_PTR), value :: farg1 -end subroutine +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT) :: fresult +end function -subroutine swigc_FARKodeButcherTable_Write(farg1, farg2) & -bind(C, name="_wrap_FARKodeButcherTable_Write") +function swigc_FARKodeSetSafetyFactor(farg1, farg2) & +bind(C, name="_wrap_FARKodeSetSafetyFactor") & +result(fresult) use, intrinsic :: ISO_C_BINDING type(C_PTR), value :: farg1 -type(C_PTR), value :: farg2 -end subroutine +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT) :: fresult +end function -function swigc_FARKodeButcherTable_IsStifflyAccurate(farg1) & -bind(C, name="_wrap_FARKodeButcherTable_IsStifflyAccurate") & +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_FARKodeButcherTable_CheckOrder(farg1, farg2, farg3, farg4) & -bind(C, name="_wrap_FARKodeButcherTable_CheckOrder") & +function swigc_FARKodeSetMinReduction(farg1, farg2) & +bind(C, name="_wrap_FARKodeSetMinReduction") & 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) :: farg2 integer(C_INT) :: fresult end function -function swigc_FARKodeButcherTable_CheckARKOrder(farg1, farg2, farg3, farg4, farg5) & -bind(C, name="_wrap_FARKodeButcherTable_CheckARKOrder") & +function swigc_FARKodeSetFixedStepBounds(farg1, farg2, farg3) & +bind(C, name="_wrap_FARKodeSetFixedStepBounds") & 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 +real(C_DOUBLE), intent(in) :: farg2 +real(C_DOUBLE), intent(in) :: farg3 integer(C_INT) :: fresult end function -function swigc_FARKodeButcherTable_LoadDIRK(farg1) & -bind(C, name="_wrap_FARKodeButcherTable_LoadDIRK") & +function swigc_FARKodeSetMaxFirstGrowth(farg1, farg2) & +bind(C, name="_wrap_FARKodeSetMaxFirstGrowth") & result(fresult) use, intrinsic :: ISO_C_BINDING -integer(C_INT), intent(in) :: farg1 -type(C_PTR) :: fresult +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT) :: fresult end function -function swigc_FARKodeButcherTable_LoadDIRKByName(farg1) & -bind(C, name="_wrap_FARKodeButcherTable_LoadDIRKByName") & +function swigc_FARKodeSetMaxEFailGrowth(farg1, farg2) & +bind(C, name="_wrap_FARKodeSetMaxEFailGrowth") & result(fresult) use, intrinsic :: ISO_C_BINDING -import :: swigarraywrapper -type(SwigArrayWrapper) :: farg1 -type(C_PTR) :: fresult +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT) :: fresult end function -function swigc_FARKodeButcherTable_LoadERK(farg1) & -bind(C, name="_wrap_FARKodeButcherTable_LoadERK") & +function swigc_FARKodeSetSmallNumEFails(farg1, farg2) & +bind(C, name="_wrap_FARKodeSetSmallNumEFails") & result(fresult) use, intrinsic :: ISO_C_BINDING -integer(C_INT), intent(in) :: farg1 -type(C_PTR) :: fresult +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult end function -function swigc_FARKodeButcherTable_LoadERKByName(farg1) & -bind(C, name="_wrap_FARKodeButcherTable_LoadERKByName") & +function swigc_FARKodeSetMaxCFailGrowth(farg1, farg2) & +bind(C, name="_wrap_FARKodeSetMaxCFailGrowth") & result(fresult) use, intrinsic :: ISO_C_BINDING -import :: swigarraywrapper -type(SwigArrayWrapper) :: farg1 -type(C_PTR) :: fresult +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT) :: fresult end function -subroutine swigc_ARKodeSPRKTableMem_q_set(farg1, farg2) & -bind(C, name="_wrap_ARKodeSPRKTableMem_q_set") +function swigc_FARKodeSetNonlinCRDown(farg1, farg2) & +bind(C, name="_wrap_FARKodeSetNonlinCRDown") & +result(fresult) use, intrinsic :: ISO_C_BINDING -import :: swigclasswrapper -type(SwigClassWrapper) :: farg1 +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 -end subroutine +integer(C_INT) :: fresult +end function -function swigc_ARKodeSPRKTableMem_q_get(farg1) & -bind(C, name="_wrap_ARKodeSPRKTableMem_q_get") & +function swigc_FARKodeSetPredictorMethod(farg1, farg2) & +bind(C, name="_wrap_FARKodeSetPredictorMethod") & result(fresult) use, intrinsic :: ISO_C_BINDING -import :: swigclasswrapper -type(SwigClassWrapper) :: farg1 +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 integer(C_INT) :: fresult end function -subroutine swigc_ARKodeSPRKTableMem_stages_set(farg1, farg2) & -bind(C, name="_wrap_ARKodeSPRKTableMem_stages_set") +function swigc_FARKodeSetStabilityFn(farg1, farg2, farg3) & +bind(C, name="_wrap_FARKodeSetStabilityFn") & +result(fresult) use, intrinsic :: ISO_C_BINDING -import :: swigclasswrapper -type(SwigClassWrapper) :: farg1 +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 -end subroutine +integer(C_INT) :: fresult +end function -function swigc_ARKodeSPRKTableMem_stages_get(farg1) & -bind(C, name="_wrap_ARKodeSPRKTableMem_stages_get") & +function swigc_FARKodeSetMaxNonlinIters(farg1, farg2) & +bind(C, name="_wrap_FARKodeSetMaxNonlinIters") & result(fresult) use, intrinsic :: ISO_C_BINDING -import :: swigclasswrapper -type(SwigClassWrapper) :: farg1 +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 integer(C_INT) :: fresult end function -subroutine swigc_ARKodeSPRKTableMem_a_set(farg1, farg2) & -bind(C, name="_wrap_ARKodeSPRKTableMem_a_set") +function swigc_FARKodeSetMaxConvFails(farg1, farg2) & +bind(C, name="_wrap_FARKodeSetMaxConvFails") & +result(fresult) use, intrinsic :: ISO_C_BINDING -import :: swigclasswrapper -type(SwigClassWrapper) :: farg1 -type(C_PTR), value :: farg2 -end subroutine +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult +end function -function swigc_ARKodeSPRKTableMem_a_get(farg1) & -bind(C, name="_wrap_ARKodeSPRKTableMem_a_get") & +function swigc_FARKodeSetNonlinConvCoef(farg1, farg2) & +bind(C, name="_wrap_FARKodeSetNonlinConvCoef") & result(fresult) use, intrinsic :: ISO_C_BINDING -import :: swigclasswrapper -type(SwigClassWrapper) :: farg1 -type(C_PTR) :: fresult +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT) :: fresult end function -subroutine swigc_ARKodeSPRKTableMem_ahat_set(farg1, farg2) & -bind(C, name="_wrap_ARKodeSPRKTableMem_ahat_set") +function swigc_FARKodeSetConstraints(farg1, farg2) & +bind(C, name="_wrap_FARKodeSetConstraints") & +result(fresult) use, intrinsic :: ISO_C_BINDING -import :: swigclasswrapper -type(SwigClassWrapper) :: farg1 +type(C_PTR), value :: farg1 type(C_PTR), value :: farg2 -end subroutine +integer(C_INT) :: fresult +end function -function swigc_ARKodeSPRKTableMem_ahat_get(farg1) & -bind(C, name="_wrap_ARKodeSPRKTableMem_ahat_get") & +function swigc_FARKodeSetMaxNumSteps(farg1, farg2) & +bind(C, name="_wrap_FARKodeSetMaxNumSteps") & result(fresult) use, intrinsic :: ISO_C_BINDING -import :: swigclasswrapper -type(SwigClassWrapper) :: farg1 -type(C_PTR) :: fresult +type(C_PTR), value :: farg1 +integer(C_LONG), intent(in) :: farg2 +integer(C_INT) :: fresult end function -function swigc_new_ARKodeSPRKTableMem() & -bind(C, name="_wrap_new_ARKodeSPRKTableMem") & +function swigc_FARKodeSetMaxHnilWarns(farg1, farg2) & +bind(C, name="_wrap_FARKodeSetMaxHnilWarns") & result(fresult) use, intrinsic :: ISO_C_BINDING -import :: swigclasswrapper -type(SwigClassWrapper) :: fresult +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +integer(C_INT) :: fresult end function -subroutine swigc_delete_ARKodeSPRKTableMem(farg1) & -bind(C, name="_wrap_delete_ARKodeSPRKTableMem") +function swigc_FARKodeSetInitStep(farg1, farg2) & +bind(C, name="_wrap_FARKodeSetInitStep") & +result(fresult) use, intrinsic :: ISO_C_BINDING -import :: swigclasswrapper -type(SwigClassWrapper), intent(inout) :: farg1 -end subroutine +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT) :: fresult +end function -subroutine swigc_ARKodeSPRKTableMem_op_assign__(farg1, farg2) & -bind(C, name="_wrap_ARKodeSPRKTableMem_op_assign__") +function swigc_FARKodeSetMinStep(farg1, farg2) & +bind(C, name="_wrap_FARKodeSetMinStep") & +result(fresult) use, intrinsic :: ISO_C_BINDING -import :: swigclasswrapper -type(SwigClassWrapper), intent(inout) :: farg1 -type(SwigClassWrapper) :: farg2 -end subroutine +type(C_PTR), value :: farg1 +real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT) :: fresult +end function -function swigc_FARKodeSPRKTable_Create(farg1, farg2, farg3, farg4) & -bind(C, name="_wrap_FARKodeSPRKTable_Create") & +function swigc_FARKodeSetMaxStep(farg1, farg2) & +bind(C, name="_wrap_FARKodeSetMaxStep") & result(fresult) use, intrinsic :: ISO_C_BINDING -integer(C_INT), intent(in) :: farg1 +type(C_PTR), value :: farg1 +real(C_DOUBLE), 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_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_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_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_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 -type(C_PTR) :: fresult +integer(C_INT), intent(in) :: farg5 +integer(C_INT) :: fresult end function -function swigc_FARKodeSPRKTable_Alloc(farg1) & -bind(C, name="_wrap_FARKodeSPRKTable_Alloc") & +function swigc_FARKodeGetDky(farg1, farg2, farg3, farg4) & +bind(C, name="_wrap_FARKodeGetDky") & result(fresult) use, intrinsic :: ISO_C_BINDING -integer(C_INT), intent(in) :: farg1 -type(C_PTR) :: fresult +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_FARKodeSPRKTable_Load(farg1) & -bind(C, name="_wrap_FARKodeSPRKTable_Load") & +function swigc_FARKodeComputeState(farg1, farg2, farg3) & +bind(C, name="_wrap_FARKodeComputeState") & result(fresult) use, intrinsic :: ISO_C_BINDING -integer(C_INT), intent(in) :: farg1 -type(C_PTR) :: fresult +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult end function -function swigc_FARKodeSPRKTable_LoadByName(farg1) & -bind(C, name="_wrap_FARKodeSPRKTable_LoadByName") & +function swigc_FARKodeGetNumExpSteps(farg1, farg2) & +bind(C, name="_wrap_FARKodeGetNumExpSteps") & result(fresult) use, intrinsic :: ISO_C_BINDING -import :: swigarraywrapper -type(SwigArrayWrapper) :: farg1 -type(C_PTR) :: fresult +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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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 + +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 + +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_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 + +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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 + +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 + +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 swigc_FARKodeSPRKTable_Copy(farg1) & -bind(C, name="_wrap_FARKodeSPRKTable_Copy") & -result(fresult) +function FARKodeGetNumRelaxFails(arkode_mem, relax_fails) & +result(swig_result) use, intrinsic :: ISO_C_BINDING -type(C_PTR), value :: farg1 -type(C_PTR) :: fresult +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 -subroutine swigc_FARKodeSPRKTable_Write(farg1, farg2) & -bind(C, name="_wrap_FARKodeSPRKTable_Write") +function FARKodeGetNumRelaxBoundFails(arkode_mem, fails) & +result(swig_result) use, intrinsic :: ISO_C_BINDING -type(C_PTR), value :: farg1 -type(C_PTR), value :: farg2 -end subroutine +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 -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 +farg1 = arkode_mem +farg2 = c_loc(fails(1)) +fresult = swigc_FARKodeGetNumRelaxBoundFails(farg1, farg2) +swig_result = fresult +end function -subroutine swigc_FARKodeSPRKTable_Free(farg1) & -bind(C, name="_wrap_FARKodeSPRKTable_Free") +function FARKodeGetNumRelaxSolveFails(arkode_mem, fails) & +result(swig_result) use, intrinsic :: ISO_C_BINDING -type(C_PTR), value :: farg1 -end subroutine +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 -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 +farg1 = arkode_mem +farg2 = c_loc(fails(1)) +fresult = swigc_FARKodeGetNumRelaxSolveFails(farg1, farg2) +swig_result = fresult end function -end interface +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 -contains - ! MODULE SUBPROGRAMS function FARKBandPrecInit(arkode_mem, n, mu, ml) & result(swig_result) use, intrinsic :: ISO_C_BINDING @@ -1661,5 +5403,285 @@ function FARKodeSPRKTable_ToButcher(sprk_storage, a_ptr, b_ptr) & 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 From 467b08c83ea7b7be8a3e4b842fbb7e9542288c23 Mon Sep 17 00:00:00 2001 From: Cody Balos Date: Thu, 9 May 2024 09:22:47 -0700 Subject: [PATCH 53/70] fix warnings --- .../ark_brusselator1D_task_local_nls_f2003.f90 | 4 ++++ examples/cvode/F2003_parallel/cv_diag_kry_f2003.f90 | 5 ++--- examples/ida/F2003_parallel/ida_heat2D_kry_bbd_f2003.f90 | 8 +++++--- examples/kinsol/F2003_parallel/kin_diagon_kry_f2003.f90 | 2 +- 4 files changed, 12 insertions(+), 7 deletions(-) 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 904dccaa78..71d84228c7 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 @@ -1227,6 +1227,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) diff --git a/examples/cvode/F2003_parallel/cv_diag_kry_f2003.f90 b/examples/cvode/F2003_parallel/cv_diag_kry_f2003.f90 index 5e8f866375..e1266fb522 100644 --- a/examples/cvode/F2003_parallel/cv_diag_kry_f2003.f90 +++ b/examples/cvode/F2003_parallel/cv_diag_kry_f2003.f90 @@ -135,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(kind=myindextype) :: i, ibase, istart + integer(c_int64_t) :: i, ibase, istart real(c_double) :: psubi, pj !======= Internals ============ @@ -149,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 @@ -195,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/ida/F2003_parallel/ida_heat2D_kry_bbd_f2003.f90 b/examples/ida/F2003_parallel/ida_heat2D_kry_bbd_f2003.f90 index 9a7bb93e21..b718674c52 100644 --- a/examples/ida/F2003_parallel/ida_heat2D_kry_bbd_f2003.f90 +++ b/examples/ida/F2003_parallel/ida_heat2D_kry_bbd_f2003.f90 @@ -260,6 +260,9 @@ subroutine InitProfile(sunvec_y, sunvec_ydot, sunvec_id, & integer(c_int) :: retval 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 @@ -761,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/kinsol/F2003_parallel/kin_diagon_kry_f2003.f90 b/examples/kinsol/F2003_parallel/kin_diagon_kry_f2003.f90 index 358110ee43..9c00556e7d 100644 --- a/examples/kinsol/F2003_parallel/kin_diagon_kry_f2003.f90 +++ b/examples/kinsol/F2003_parallel/kin_diagon_kry_f2003.f90 @@ -257,7 +257,7 @@ program main 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 From 11f8ab3f63ecaebe817f3251063cd37be9864461 Mon Sep 17 00:00:00 2001 From: Cody Balos Date: Thu, 9 May 2024 15:14:42 -0700 Subject: [PATCH 54/70] update missed cmake template --- examples/templates/cmakelists_parallel_F2003_ex.in | 2 ++ 1 file changed, 2 insertions(+) diff --git a/examples/templates/cmakelists_parallel_F2003_ex.in b/examples/templates/cmakelists_parallel_F2003_ex.in index 1d5670752f..71e11bfe31 100644 --- a/examples/templates/cmakelists_parallel_F2003_ex.in +++ b/examples/templates/cmakelists_parallel_F2003_ex.in @@ -106,6 +106,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}) From e03d8d34d343d58a042012241c69cc10aba68659 Mon Sep 17 00:00:00 2001 From: Cody Balos Date: Thu, 9 May 2024 15:30:25 -0700 Subject: [PATCH 55/70] correct / add answer files for examples that were not enabled before --- .../F2003_parallel/cv_diag_kry_f2003.out | 56 +++++++-------- .../F2003_parallel/cv_diag_non_p_f2003.out | 2 +- .../ida_heat2D_kry_bbd_f2003.out | 68 +++++++++++++++++++ .../F2003_parallel/kin_diagon_kry_f2003.out | 48 +++++++++++++ 4 files changed, 145 insertions(+), 29 deletions(-) create mode 100644 examples/ida/F2003_parallel/ida_heat2D_kry_bbd_f2003.out create mode 100644 examples/kinsol/F2003_parallel/kin_diagon_kry_f2003.out 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.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/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/kinsol/F2003_parallel/kin_diagon_kry_f2003.out b/examples/kinsol/F2003_parallel/kin_diagon_kry_f2003.out new file mode 100644 index 0000000000..2c12bbce41 --- /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 + + Final Statistics.. + 125 125.000000 126.000000 127.000000 128.000000 + +nni = 7 nli = 21 +nfe = 8 npe = 2 +nps = 28 nlcf = 0 From 5f2fbf51f8845809b40697ad7c0c975cddd3d1aa Mon Sep 17 00:00:00 2001 From: Cody Balos Date: Mon, 13 May 2024 07:55:12 -0700 Subject: [PATCH 56/70] fix cmake templates --- examples/templates/cmakelists_openmp_F2003_ex.in | 2 +- examples/templates/cmakelists_parallel_F2003_ex.in | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/examples/templates/cmakelists_openmp_F2003_ex.in b/examples/templates/cmakelists_openmp_F2003_ex.in index 79e54b3bae..f8c099048c 100644 --- a/examples/templates/cmakelists_openmp_F2003_ex.in +++ b/examples/templates/cmakelists_openmp_F2003_ex.in @@ -150,7 +150,7 @@ foreach(example ${examples}) # libraries to link against target_link_libraries(${example_target} ${SUNDIALS_LIBRARIES}) - target_compile_definitions(${example} PRIVATE SUNDIALS_INT@SUNDIALS_INDEX_SIZE@_T) + 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 71e11bfe31..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@" From 2e827693343fc9dc2fb01c7aec9485e51cefda49 Mon Sep 17 00:00:00 2001 From: Cody Balos Date: Mon, 13 May 2024 09:28:56 -0700 Subject: [PATCH 57/70] update fortran interface --- src/arkode/fmod_int32/farkode_arkstep_mod.c | 356 ++--- src/arkode/fmod_int32/farkode_arkstep_mod.f90 | 738 +++++----- src/arkode/fmod_int32/farkode_erkstep_mod.c | 216 +-- src/arkode/fmod_int32/farkode_erkstep_mod.f90 | 457 +++--- src/arkode/fmod_int32/farkode_mod.c | 622 ++++---- src/arkode/fmod_int32/farkode_mod.f90 | 1275 +++++++++-------- src/arkode/fmod_int32/farkode_mristep_mod.c | 492 +++---- src/arkode/fmod_int32/farkode_mristep_mod.f90 | 941 ++++++------ src/arkode/fmod_int32/farkode_sprkstep_mod.c | 134 +- .../fmod_int32/farkode_sprkstep_mod.f90 | 296 ++-- src/arkode/fmod_int64/farkode_arkstep_mod.f90 | 2 + src/arkode/fmod_int64/farkode_erkstep_mod.f90 | 1 + 12 files changed, 2817 insertions(+), 2713 deletions(-) diff --git a/src/arkode/fmod_int32/farkode_arkstep_mod.c b/src/arkode/fmod_int32/farkode_arkstep_mod.c index 8da0515350..4791bedcdc 100644 --- a/src/arkode/fmod_int32/farkode_arkstep_mod.c +++ b/src/arkode/fmod_int32/farkode_arkstep_mod.c @@ -253,43 +253,203 @@ SWIGEXPORT void * _wrap_FARKStepCreate(ARKRhsFn farg1, ARKRhsFn farg2, double co } -SWIGEXPORT int _wrap_FARKStepResize(void *farg1, N_Vector farg2, double const *farg3, double const *farg4, ARKVecResizeFn farg5, void *farg6) { +SWIGEXPORT int _wrap_FARKStepReInit(void *farg1, ARKRhsFn farg2, ARKRhsFn farg3, double const *farg4, N_Vector farg5) { int fresult ; void *arg1 = (void *) 0 ; - N_Vector arg2 = (N_Vector) 0 ; - sunrealtype arg3 ; + ARKRhsFn arg2 = (ARKRhsFn) 0 ; + ARKRhsFn arg3 = (ARKRhsFn) 0 ; sunrealtype arg4 ; - ARKVecResizeFn arg5 = (ARKVecResizeFn) 0 ; - void *arg6 = (void *) 0 ; + N_Vector arg5 = (N_Vector) 0 ; int result; arg1 = (void *)(farg1); - arg2 = (N_Vector)(farg2); - arg3 = (sunrealtype)(*farg3); + arg2 = (ARKRhsFn)(farg2); + arg3 = (ARKRhsFn)(farg3); arg4 = (sunrealtype)(*farg4); - arg5 = (ARKVecResizeFn)(farg5); - arg6 = (void *)(farg6); - result = (int)ARKStepResize(arg1,arg2,arg3,arg4,arg5,arg6); + arg5 = (N_Vector)(farg5); + result = (int)ARKStepReInit(arg1,arg2,arg3,arg4,arg5); fresult = (int)(result); return fresult; } -SWIGEXPORT int _wrap_FARKStepReInit(void *farg1, ARKRhsFn farg2, ARKRhsFn farg3, double const *farg4, N_Vector farg5) { +SWIGEXPORT int _wrap_FARKStepSetExplicit(void *farg1) { int fresult ; void *arg1 = (void *) 0 ; - ARKRhsFn arg2 = (ARKRhsFn) 0 ; - ARKRhsFn arg3 = (ARKRhsFn) 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 ; - N_Vector arg5 = (N_Vector) 0 ; + ARKVecResizeFn arg5 = (ARKVecResizeFn) 0 ; + void *arg6 = (void *) 0 ; int result; arg1 = (void *)(farg1); - arg2 = (ARKRhsFn)(farg2); - arg3 = (ARKRhsFn)(farg3); + arg2 = (N_Vector)(farg2); + arg3 = (sunrealtype)(*farg3); arg4 = (sunrealtype)(*farg4); - arg5 = (N_Vector)(farg5); - result = (int)ARKStepReInit(arg1,arg2,arg3,arg4,arg5); + arg5 = (ARKVecResizeFn)(farg5); + arg6 = (void *)(farg6); + result = (int)ARKStepResize(arg1,arg2,arg3,arg4,arg5,arg6); fresult = (int)(result); return fresult; } @@ -583,42 +743,6 @@ SWIGEXPORT int _wrap_FARKStepSetNonlinear(void *farg1) { } -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_FARKStepSetDeduceImplicitRhs(void *farg1, int const *farg2) { int fresult ; void *arg1 = (void *) 0 ; @@ -633,58 +757,6 @@ SWIGEXPORT int _wrap_FARKStepSetDeduceImplicitRhs(void *farg1, int const *farg2) } -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_FARKStepSetAdaptController(void *farg1, SUNAdaptController farg2) { int fresult ; void *arg1 = (void *) 0 ; @@ -1569,22 +1641,6 @@ SWIGEXPORT int _wrap_FARKStepGetNumStepAttempts(void *farg1, long *farg2) { } -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_FARKStepGetNumLinSolvSetups(void *farg1, long *farg2) { int fresult ; void *arg1 = (void *) 0 ; @@ -1613,22 +1669,6 @@ SWIGEXPORT int _wrap_FARKStepGetNumErrTestFails(void *farg1, long *farg2) { } -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_FARKStepGetEstLocalErrors(void *farg1, N_Vector farg2) { int fresult ; void *arg1 = (void *) 0 ; @@ -1926,32 +1966,6 @@ SWIGEXPORT int _wrap_FARKStepWriteButcher(void *farg1, void *farg2) { } -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_FARKStepGetStepStats(void *farg1, long *farg2, double *farg3, double *farg4, double *farg5, double *farg6) { int fresult ; void *arg1 = (void *) 0 ; @@ -2429,20 +2443,6 @@ SWIGEXPORT void _wrap_FARKStepPrintMem(void *farg1, void *farg2) { } -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_FARKStepSetRelaxFn(void *farg1, ARKRelaxFn farg2, ARKRelaxJacFn farg3) { int fresult ; void *arg1 = (void *) 0 ; diff --git a/src/arkode/fmod_int32/farkode_arkstep_mod.f90 b/src/arkode/fmod_int32/farkode_arkstep_mod.f90 index 6d065d9f19..cc0373f1eb 100644 --- a/src/arkode/fmod_int32/farkode_arkstep_mod.f90 +++ b/src/arkode/fmod_int32/farkode_arkstep_mod.f90 @@ -26,6 +26,7 @@ module farkode_arkstep_mod 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 @@ -34,6 +35,7 @@ module farkode_arkstep_mod 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 @@ -47,8 +49,22 @@ module farkode_arkstep_mod 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 :: FARKStepResize 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 @@ -69,17 +85,7 @@ module farkode_arkstep_mod public :: FARKStepSetNlsRhsFn public :: FARKStepSetLinear public :: FARKStepSetNonlinear - public :: FARKStepSetExplicit - public :: FARKStepSetImplicit - public :: FARKStepSetImEx public :: FARKStepSetDeduceImplicitRhs - 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 :: FARKStepSetAdaptController public :: FARKStepSetAdaptivityAdjustment public :: FARKStepSetCFLFraction @@ -141,10 +147,8 @@ module farkode_arkstep_mod public :: FARKStepGetNumExpSteps public :: FARKStepGetNumAccSteps public :: FARKStepGetNumStepAttempts - public :: FARKStepGetNumRhsEvals public :: FARKStepGetNumLinSolvSetups public :: FARKStepGetNumErrTestFails - public :: FARKStepGetCurrentButcherTables public :: FARKStepGetEstLocalErrors public :: FARKStepGetWorkSpace public :: FARKStepGetNumSteps @@ -166,7 +170,6 @@ module farkode_arkstep_mod public :: FARKStepGetReturnFlagName public :: FARKStepWriteParameters public :: FARKStepWriteButcher - public :: FARKStepGetTimestepperStats public :: FARKStepGetStepStats public :: FARKStepGetNonlinearSystemData public :: FARKStepGetNumNonlinSolvIters @@ -200,7 +203,6 @@ module farkode_arkstep_mod public :: FARKStepGetLinReturnFlagName public :: FARKStepFree public :: FARKStepPrintMem - public :: FARKStepCreateMRIStepInnerStepper public :: FARKStepSetRelaxFn public :: FARKStepSetRelaxEtaFail public :: FARKStepSetRelaxLowerBound @@ -231,28 +233,129 @@ function swigc_FARKStepCreate(farg1, farg2, farg3, farg4, farg5) & type(C_PTR) :: fresult end function -function swigc_FARKStepResize(farg1, farg2, farg3, farg4, farg5, farg6) & -bind(C, name="_wrap_FARKStepResize") & +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_PTR), value :: farg2 -real(C_DOUBLE), intent(in) :: farg3 +type(C_FUNPTR), value :: farg2 +type(C_FUNPTR), value :: farg3 real(C_DOUBLE), intent(in) :: farg4 -type(C_FUNPTR), value :: farg5 +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_FARKStepReInit(farg1, farg2, farg3, farg4, farg5) & -bind(C, name="_wrap_FARKStepReInit") & +function swigc_FARKStepCreateMRIStepInnerStepper(farg1, farg2) & +bind(C, name="_wrap_FARKStepCreateMRIStepInnerStepper") & 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 :: 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_PTR), value :: farg5 +type(C_FUNPTR), value :: farg5 +type(C_PTR), value :: farg6 integer(C_INT) :: fresult end function @@ -440,30 +543,6 @@ function swigc_FARKStepSetNonlinear(farg1) & 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_FARKStepSetDeduceImplicitRhs(farg1, farg2) & bind(C, name="_wrap_FARKStepSetDeduceImplicitRhs") & result(fresult) @@ -473,39 +552,6 @@ function swigc_FARKStepSetDeduceImplicitRhs(farg1, farg2) & 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_FARKStepSetAdaptController(farg1, farg2) & bind(C, name="_wrap_FARKStepSetAdaptController") & result(fresult) @@ -1070,16 +1116,6 @@ function swigc_FARKStepGetNumStepAttempts(farg1, farg2) & 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_FARKStepGetNumLinSolvSetups(farg1, farg2) & bind(C, name="_wrap_FARKStepGetNumLinSolvSetups") & result(fresult) @@ -1098,16 +1134,6 @@ function swigc_FARKStepGetNumErrTestFails(farg1, farg2) & 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_FARKStepGetEstLocalErrors(farg1, farg2) & bind(C, name="_wrap_FARKStepGetEstLocalErrors") & result(fresult) @@ -1304,21 +1330,6 @@ function swigc_FARKStepWriteButcher(farg1, farg2) & 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_FARKStepGetStepStats(farg1, farg2, farg3, farg4, farg5, farg6) & bind(C, name="_wrap_FARKStepGetStepStats") & result(fresult) @@ -1624,15 +1635,6 @@ subroutine swigc_FARKStepPrintMem(farg1, farg2) & type(C_PTR), value :: farg2 end subroutine -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_FARKStepSetRelaxFn(farg1, farg2, farg3) & bind(C, name="_wrap_FARKStepSetRelaxFn") & result(fresult) @@ -1791,12 +1793,248 @@ function FARKStepCreate(fe, fi, t0, y0, sunctx) & 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) +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 @@ -1828,31 +2066,6 @@ function FARKStepResize(arkode_mem, ynew, hscale, t0, resize, resize_data) & 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 FARKStepReset(arkode_mem, tr, yr) & result(swig_result) use, intrinsic :: ISO_C_BINDING @@ -2185,45 +2398,6 @@ function FARKStepSetNonlinear(arkode_mem) & 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 FARKStepSetDeduceImplicitRhs(arkode_mem, deduce) & result(swig_result) use, intrinsic :: ISO_C_BINDING @@ -2240,89 +2414,6 @@ function FARKStepSetDeduceImplicitRhs(arkode_mem, deduce) & 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 FARKStepSetAdaptController(arkode_mem, c) & result(swig_result) use, intrinsic :: ISO_C_BINDING @@ -3344,25 +3435,6 @@ function FARKStepGetNumStepAttempts(arkode_mem, step_attempts) & 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 FARKStepGetNumLinSolvSetups(arkode_mem, nlinsetups) & result(swig_result) use, intrinsic :: ISO_C_BINDING @@ -3395,25 +3467,6 @@ function FARKStepGetNumErrTestFails(arkode_mem, netfails) & 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 FARKStepGetEstLocalErrors(arkode_mem, ele) & result(swig_result) use, intrinsic :: ISO_C_BINDING @@ -3768,41 +3821,6 @@ function FARKStepWriteButcher(arkode_mem, fp) & 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 FARKStepGetStepStats(arkode_mem, nsteps, hinused, hlast, hcur, tcur) & result(swig_result) use, intrinsic :: ISO_C_BINDING @@ -4357,22 +4375,6 @@ subroutine FARKStepPrintMem(arkode_mem, outfile) call swigc_FARKStepPrintMem(farg1, farg2) end subroutine -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 FARKStepSetRelaxFn(arkode_mem, rfn, rjac) & result(swig_result) use, intrinsic :: ISO_C_BINDING diff --git a/src/arkode/fmod_int32/farkode_erkstep_mod.c b/src/arkode/fmod_int32/farkode_erkstep_mod.c index fab7db1d84..5def57befc 100644 --- a/src/arkode/fmod_int32/farkode_erkstep_mod.c +++ b/src/arkode/fmod_int32/farkode_erkstep_mod.c @@ -251,41 +251,133 @@ SWIGEXPORT void * _wrap_FERKStepCreate(ARKRhsFn farg1, double const *farg2, N_Ve } -SWIGEXPORT int _wrap_FERKStepResize(void *farg1, N_Vector farg2, double const *farg3, double const *farg4, ARKVecResizeFn farg5, void *farg6) { +SWIGEXPORT int _wrap_FERKStepReInit(void *farg1, ARKRhsFn farg2, double const *farg3, N_Vector farg4) { int fresult ; void *arg1 = (void *) 0 ; - N_Vector arg2 = (N_Vector) 0 ; + ARKRhsFn arg2 = (ARKRhsFn) 0 ; sunrealtype arg3 ; - sunrealtype arg4 ; - ARKVecResizeFn arg5 = (ARKVecResizeFn) 0 ; - void *arg6 = (void *) 0 ; + N_Vector arg4 = (N_Vector) 0 ; int result; arg1 = (void *)(farg1); - arg2 = (N_Vector)(farg2); + arg2 = (ARKRhsFn)(farg2); arg3 = (sunrealtype)(*farg3); - arg4 = (sunrealtype)(*farg4); - arg5 = (ARKVecResizeFn)(farg5); - arg6 = (void *)(farg6); - result = (int)ERKStepResize(arg1,arg2,arg3,arg4,arg5,arg6); + arg4 = (N_Vector)(farg4); + result = (int)ERKStepReInit(arg1,arg2,arg3,arg4); fresult = (int)(result); return fresult; } -SWIGEXPORT int _wrap_FERKStepReInit(void *farg1, ARKRhsFn farg2, double const *farg3, N_Vector farg4) { +SWIGEXPORT int _wrap_FERKStepSetTable(void *farg1, void *farg2) { int fresult ; void *arg1 = (void *) 0 ; - ARKRhsFn arg2 = (ARKRhsFn) 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 ; - N_Vector arg4 = (N_Vector) 0 ; + sunrealtype arg4 ; + ARKVecResizeFn arg5 = (ARKVecResizeFn) 0 ; + void *arg6 = (void *) 0 ; int result; arg1 = (void *)(farg1); - arg2 = (ARKRhsFn)(farg2); + arg2 = (N_Vector)(farg2); arg3 = (sunrealtype)(*farg3); - arg4 = (N_Vector)(farg4); - result = (int)ERKStepReInit(arg1,arg2,arg3,arg4); + arg4 = (sunrealtype)(*farg4); + arg5 = (ARKVecResizeFn)(farg5); + arg6 = (void *)(farg6); + result = (int)ERKStepResize(arg1,arg2,arg3,arg4,arg5,arg6); fresult = (int)(result); return fresult; } @@ -437,48 +529,6 @@ SWIGEXPORT int _wrap_FERKStepSetDenseOrder(void *farg1, int const *farg2) { } -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_FERKStepSetAdaptController(void *farg1, SUNAdaptController farg2) { int fresult ; void *arg1 = (void *) 0 ; @@ -1015,34 +1065,6 @@ SWIGEXPORT int _wrap_FERKStepGetNumErrTestFails(void *farg1, long *farg2) { } -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_FERKStepGetEstLocalErrors(void *farg1, N_Vector farg2) { int fresult ; void *arg1 = (void *) 0 ; @@ -1284,28 +1306,6 @@ SWIGEXPORT int _wrap_FERKStepWriteButcher(void *farg1, void *farg2) { } -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_FERKStepGetStepStats(void *farg1, long *farg2, double *farg3, double *farg4, double *farg5, double *farg6) { int fresult ; void *arg1 = (void *) 0 ; diff --git a/src/arkode/fmod_int32/farkode_erkstep_mod.f90 b/src/arkode/fmod_int32/farkode_erkstep_mod.f90 index e75d960ae4..291dc643d5 100644 --- a/src/arkode/fmod_int32/farkode_erkstep_mod.f90 +++ b/src/arkode/fmod_int32/farkode_erkstep_mod.f90 @@ -26,6 +26,7 @@ module farkode_erkstep_mod 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 @@ -35,8 +36,18 @@ module farkode_erkstep_mod 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 :: FERKStepResize 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 @@ -47,13 +58,6 @@ module farkode_erkstep_mod public :: FERKStepSetInterpolantType public :: FERKStepSetInterpolantDegree public :: FERKStepSetDenseOrder - 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 :: FERKStepSetAdaptController public :: FERKStepSetAdaptivityAdjustment public :: FERKStepSetCFLFraction @@ -91,8 +95,6 @@ module farkode_erkstep_mod public :: FERKStepGetNumAccSteps public :: FERKStepGetNumStepAttempts public :: FERKStepGetNumErrTestFails - public :: FERKStepGetNumRhsEvals - public :: FERKStepGetCurrentButcherTable public :: FERKStepGetEstLocalErrors public :: FERKStepGetWorkSpace public :: FERKStepGetNumSteps @@ -110,7 +112,6 @@ module farkode_erkstep_mod public :: FERKStepGetReturnFlagName public :: FERKStepWriteParameters public :: FERKStepWriteButcher - public :: FERKStepGetTimestepperStats public :: FERKStepGetStepStats public :: FERKStepFree public :: FERKStepPrintMem @@ -143,27 +144,86 @@ function swigc_FERKStepCreate(farg1, farg2, farg3, farg4) & type(C_PTR) :: fresult end function -function swigc_FERKStepResize(farg1, farg2, farg3, farg4, farg5, farg6) & -bind(C, name="_wrap_FERKStepResize") & +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_PTR), value :: farg2 +type(C_FUNPTR), value :: farg2 real(C_DOUBLE), intent(in) :: farg3 -real(C_DOUBLE), intent(in) :: farg4 -type(C_FUNPTR), value :: farg5 +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_FERKStepReInit(farg1, farg2, farg3, farg4) & -bind(C, name="_wrap_FERKStepReInit") & +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_FUNPTR), value :: farg2 +type(C_PTR), value :: farg2 real(C_DOUBLE), intent(in) :: farg3 -type(C_PTR), value :: farg4 +real(C_DOUBLE), intent(in) :: farg4 +type(C_FUNPTR), value :: farg5 +type(C_PTR), value :: farg6 integer(C_INT) :: fresult end function @@ -260,34 +320,6 @@ function swigc_FERKStepSetDenseOrder(farg1, farg2) & 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_FERKStepSetAdaptController(farg1, farg2) & bind(C, name="_wrap_FERKStepSetAdaptController") & result(fresult) @@ -630,24 +662,6 @@ function swigc_FERKStepGetNumErrTestFails(farg1, 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_FERKStepGetEstLocalErrors(farg1, farg2) & bind(C, name="_wrap_FERKStepGetEstLocalErrors") & result(fresult) @@ -808,19 +822,6 @@ function swigc_FERKStepWriteButcher(farg1, 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_FERKStepGetStepStats(farg1, farg2, farg3, farg4, farg5, farg6) & bind(C, name="_wrap_FERKStepGetStepStats") & result(fresult) @@ -1011,6 +1012,155 @@ function FERKStepCreate(f, t0, y0, sunctx) & 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 @@ -1039,28 +1189,6 @@ function FERKStepResize(arkode_mem, ynew, hscale, t0, resize, resize_data) & 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 FERKStepReset(arkode_mem, tr, yr) & result(swig_result) use, intrinsic :: ISO_C_BINDING @@ -1230,73 +1358,6 @@ function FERKStepSetDenseOrder(arkode_mem, dord) & 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 FERKStepSetAdaptController(arkode_mem, c) & result(swig_result) use, intrinsic :: ISO_C_BINDING @@ -1916,38 +1977,6 @@ function FERKStepGetNumErrTestFails(arkode_mem, netfails) & 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 FERKStepGetEstLocalErrors(arkode_mem, ele) & result(swig_result) use, intrinsic :: ISO_C_BINDING @@ -2238,34 +2267,6 @@ function FERKStepWriteButcher(arkode_mem, fp) & 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 FERKStepGetStepStats(arkode_mem, nsteps, hinused, hlast, hcur, tcur) & result(swig_result) use, intrinsic :: ISO_C_BINDING diff --git a/src/arkode/fmod_int32/farkode_mod.c b/src/arkode/fmod_int32/farkode_mod.c index 5cd107b291..c4fc17a0d9 100644 --- a/src/arkode/fmod_int32/farkode_mod.c +++ b/src/arkode/fmod_int32/farkode_mod.c @@ -537,61 +537,21 @@ SWIGEXPORT int _wrap_FARKodeSetInterpolantDegree(void *farg1, int const *farg2) } -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_FARKodeSetNlsRhsFn(void *farg1, ARKRhsFn farg2) { +SWIGEXPORT int _wrap_FARKodeSetMaxNumSteps(void *farg1, long const *farg2) { int fresult ; void *arg1 = (void *) 0 ; - ARKRhsFn arg2 = (ARKRhsFn) 0 ; + long arg2 ; int result; arg1 = (void *)(farg1); - arg2 = (ARKRhsFn)(farg2); - result = (int)ARKodeSetNlsRhsFn(arg1,arg2); + arg2 = (long)(*farg2); + result = (int)ARKodeSetMaxNumSteps(arg1,arg2); fresult = (int)(result); return fresult; } -SWIGEXPORT int _wrap_FARKodeSetDeduceImplicitRhs(void *farg1, int const *farg2) { +SWIGEXPORT int _wrap_FARKodeSetInterpolateStopTime(void *farg1, int const *farg2) { int fresult ; void *arg1 = (void *) 0 ; int arg2 ; @@ -599,41 +559,39 @@ SWIGEXPORT int _wrap_FARKodeSetDeduceImplicitRhs(void *farg1, int const *farg2) arg1 = (void *)(farg1); arg2 = (int)(*farg2); - result = (int)ARKodeSetDeduceImplicitRhs(arg1,arg2); + result = (int)ARKodeSetInterpolateStopTime(arg1,arg2); fresult = (int)(result); return fresult; } -SWIGEXPORT int _wrap_FARKodeSetAdaptController(void *farg1, SUNAdaptController farg2) { +SWIGEXPORT int _wrap_FARKodeSetStopTime(void *farg1, double const *farg2) { int fresult ; void *arg1 = (void *) 0 ; - SUNAdaptController arg2 = (SUNAdaptController) 0 ; + sunrealtype arg2 ; int result; arg1 = (void *)(farg1); - arg2 = (SUNAdaptController)(farg2); - result = (int)ARKodeSetAdaptController(arg1,arg2); + arg2 = (sunrealtype)(*farg2); + result = (int)ARKodeSetStopTime(arg1,arg2); fresult = (int)(result); return fresult; } -SWIGEXPORT int _wrap_FARKodeSetAdaptivityAdjustment(void *farg1, int const *farg2) { +SWIGEXPORT int _wrap_FARKodeClearStopTime(void *farg1) { int fresult ; void *arg1 = (void *) 0 ; - int arg2 ; int result; arg1 = (void *)(farg1); - arg2 = (int)(*farg2); - result = (int)ARKodeSetAdaptivityAdjustment(arg1,arg2); + result = (int)ARKodeClearStopTime(arg1); fresult = (int)(result); return fresult; } -SWIGEXPORT int _wrap_FARKodeSetCFLFraction(void *farg1, double const *farg2) { +SWIGEXPORT int _wrap_FARKodeSetFixedStep(void *farg1, double const *farg2) { int fresult ; void *arg1 = (void *) 0 ; sunrealtype arg2 ; @@ -641,113 +599,109 @@ SWIGEXPORT int _wrap_FARKodeSetCFLFraction(void *farg1, double const *farg2) { arg1 = (void *)(farg1); arg2 = (sunrealtype)(*farg2); - result = (int)ARKodeSetCFLFraction(arg1,arg2); + result = (int)ARKodeSetFixedStep(arg1,arg2); fresult = (int)(result); return fresult; } -SWIGEXPORT int _wrap_FARKodeSetErrorBias(void *farg1, double const *farg2) { +SWIGEXPORT int _wrap_FARKodeSetUserData(void *farg1, void *farg2) { int fresult ; void *arg1 = (void *) 0 ; - sunrealtype arg2 ; + void *arg2 = (void *) 0 ; int result; arg1 = (void *)(farg1); - arg2 = (sunrealtype)(*farg2); - result = (int)ARKodeSetErrorBias(arg1,arg2); + arg2 = (void *)(farg2); + result = (int)ARKodeSetUserData(arg1,arg2); fresult = (int)(result); return fresult; } -SWIGEXPORT int _wrap_FARKodeSetSafetyFactor(void *farg1, double const *farg2) { +SWIGEXPORT int _wrap_FARKodeSetPostprocessStepFn(void *farg1, ARKPostProcessFn farg2) { int fresult ; void *arg1 = (void *) 0 ; - sunrealtype arg2 ; + ARKPostProcessFn arg2 = (ARKPostProcessFn) 0 ; int result; arg1 = (void *)(farg1); - arg2 = (sunrealtype)(*farg2); - result = (int)ARKodeSetSafetyFactor(arg1,arg2); + arg2 = (ARKPostProcessFn)(farg2); + result = (int)ARKodeSetPostprocessStepFn(arg1,arg2); fresult = (int)(result); return fresult; } -SWIGEXPORT int _wrap_FARKodeSetMaxGrowth(void *farg1, double const *farg2) { +SWIGEXPORT int _wrap_FARKodeSetPostprocessStageFn(void *farg1, ARKPostProcessFn farg2) { int fresult ; void *arg1 = (void *) 0 ; - sunrealtype arg2 ; + ARKPostProcessFn arg2 = (ARKPostProcessFn) 0 ; int result; arg1 = (void *)(farg1); - arg2 = (sunrealtype)(*farg2); - result = (int)ARKodeSetMaxGrowth(arg1,arg2); + arg2 = (ARKPostProcessFn)(farg2); + result = (int)ARKodeSetPostprocessStageFn(arg1,arg2); fresult = (int)(result); return fresult; } -SWIGEXPORT int _wrap_FARKodeSetMinReduction(void *farg1, double const *farg2) { +SWIGEXPORT int _wrap_FARKodeSetNonlinearSolver(void *farg1, SUNNonlinearSolver farg2) { int fresult ; void *arg1 = (void *) 0 ; - sunrealtype arg2 ; + SUNNonlinearSolver arg2 = (SUNNonlinearSolver) 0 ; int result; arg1 = (void *)(farg1); - arg2 = (sunrealtype)(*farg2); - result = (int)ARKodeSetMinReduction(arg1,arg2); + arg2 = (SUNNonlinearSolver)(farg2); + result = (int)ARKodeSetNonlinearSolver(arg1,arg2); fresult = (int)(result); return fresult; } -SWIGEXPORT int _wrap_FARKodeSetFixedStepBounds(void *farg1, double const *farg2, double const *farg3) { +SWIGEXPORT int _wrap_FARKodeSetLinear(void *farg1, int const *farg2) { int fresult ; void *arg1 = (void *) 0 ; - sunrealtype arg2 ; - sunrealtype arg3 ; + int arg2 ; int result; arg1 = (void *)(farg1); - arg2 = (sunrealtype)(*farg2); - arg3 = (sunrealtype)(*farg3); - result = (int)ARKodeSetFixedStepBounds(arg1,arg2,arg3); + arg2 = (int)(*farg2); + result = (int)ARKodeSetLinear(arg1,arg2); fresult = (int)(result); return fresult; } -SWIGEXPORT int _wrap_FARKodeSetMaxFirstGrowth(void *farg1, double const *farg2) { +SWIGEXPORT int _wrap_FARKodeSetNonlinear(void *farg1) { int fresult ; void *arg1 = (void *) 0 ; - sunrealtype arg2 ; int result; arg1 = (void *)(farg1); - arg2 = (sunrealtype)(*farg2); - result = (int)ARKodeSetMaxFirstGrowth(arg1,arg2); + result = (int)ARKodeSetNonlinear(arg1); fresult = (int)(result); return fresult; } -SWIGEXPORT int _wrap_FARKodeSetMaxEFailGrowth(void *farg1, double const *farg2) { +SWIGEXPORT int _wrap_FARKodeSetNlsRhsFn(void *farg1, ARKRhsFn farg2) { int fresult ; void *arg1 = (void *) 0 ; - sunrealtype arg2 ; + ARKRhsFn arg2 = (ARKRhsFn) 0 ; int result; arg1 = (void *)(farg1); - arg2 = (sunrealtype)(*farg2); - result = (int)ARKodeSetMaxEFailGrowth(arg1,arg2); + arg2 = (ARKRhsFn)(farg2); + result = (int)ARKodeSetNlsRhsFn(arg1,arg2); fresult = (int)(result); return fresult; } -SWIGEXPORT int _wrap_FARKodeSetSmallNumEFails(void *farg1, int const *farg2) { +SWIGEXPORT int _wrap_FARKodeSetDeduceImplicitRhs(void *farg1, int const *farg2) { int fresult ; void *arg1 = (void *) 0 ; int arg2 ; @@ -755,21 +709,7 @@ SWIGEXPORT int _wrap_FARKodeSetSmallNumEFails(void *farg1, int const *farg2) { 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); + result = (int)ARKodeSetDeduceImplicitRhs(arg1,arg2); fresult = (int)(result); return fresult; } @@ -845,36 +785,6 @@ SWIGEXPORT int _wrap_FARKodeSetPredictorMethod(void *farg1, int const *farg2) { } -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_FARKodeSetMaxNonlinIters(void *farg1, int const *farg2) { int fresult ; void *arg1 = (void *) 0 ; @@ -917,35 +827,35 @@ SWIGEXPORT int _wrap_FARKodeSetNonlinConvCoef(void *farg1, double const *farg2) } -SWIGEXPORT int _wrap_FARKodeSetConstraints(void *farg1, N_Vector farg2) { +SWIGEXPORT int _wrap_FARKodeSetStagePredictFn(void *farg1, ARKStagePredictFn farg2) { int fresult ; void *arg1 = (void *) 0 ; - N_Vector arg2 = (N_Vector) 0 ; + ARKStagePredictFn arg2 = (ARKStagePredictFn) 0 ; int result; arg1 = (void *)(farg1); - arg2 = (N_Vector)(farg2); - result = (int)ARKodeSetConstraints(arg1,arg2); + arg2 = (ARKStagePredictFn)(farg2); + result = (int)ARKodeSetStagePredictFn(arg1,arg2); fresult = (int)(result); return fresult; } -SWIGEXPORT int _wrap_FARKodeSetMaxNumSteps(void *farg1, long const *farg2) { +SWIGEXPORT int _wrap_FARKodeSetAdaptController(void *farg1, SUNAdaptController farg2) { int fresult ; void *arg1 = (void *) 0 ; - long arg2 ; + SUNAdaptController arg2 = (SUNAdaptController) 0 ; int result; arg1 = (void *)(farg1); - arg2 = (long)(*farg2); - result = (int)ARKodeSetMaxNumSteps(arg1,arg2); + arg2 = (SUNAdaptController)(farg2); + result = (int)ARKodeSetAdaptController(arg1,arg2); fresult = (int)(result); return fresult; } -SWIGEXPORT int _wrap_FARKodeSetMaxHnilWarns(void *farg1, int const *farg2) { +SWIGEXPORT int _wrap_FARKodeSetAdaptivityAdjustment(void *farg1, int const *farg2) { int fresult ; void *arg1 = (void *) 0 ; int arg2 ; @@ -953,13 +863,13 @@ SWIGEXPORT int _wrap_FARKodeSetMaxHnilWarns(void *farg1, int const *farg2) { arg1 = (void *)(farg1); arg2 = (int)(*farg2); - result = (int)ARKodeSetMaxHnilWarns(arg1,arg2); + result = (int)ARKodeSetAdaptivityAdjustment(arg1,arg2); fresult = (int)(result); return fresult; } -SWIGEXPORT int _wrap_FARKodeSetInitStep(void *farg1, double const *farg2) { +SWIGEXPORT int _wrap_FARKodeSetCFLFraction(void *farg1, double const *farg2) { int fresult ; void *arg1 = (void *) 0 ; sunrealtype arg2 ; @@ -967,13 +877,13 @@ SWIGEXPORT int _wrap_FARKodeSetInitStep(void *farg1, double const *farg2) { arg1 = (void *)(farg1); arg2 = (sunrealtype)(*farg2); - result = (int)ARKodeSetInitStep(arg1,arg2); + result = (int)ARKodeSetCFLFraction(arg1,arg2); fresult = (int)(result); return fresult; } -SWIGEXPORT int _wrap_FARKodeSetMinStep(void *farg1, double const *farg2) { +SWIGEXPORT int _wrap_FARKodeSetErrorBias(void *farg1, double const *farg2) { int fresult ; void *arg1 = (void *) 0 ; sunrealtype arg2 ; @@ -981,13 +891,13 @@ SWIGEXPORT int _wrap_FARKodeSetMinStep(void *farg1, double const *farg2) { arg1 = (void *)(farg1); arg2 = (sunrealtype)(*farg2); - result = (int)ARKodeSetMinStep(arg1,arg2); + result = (int)ARKodeSetErrorBias(arg1,arg2); fresult = (int)(result); return fresult; } -SWIGEXPORT int _wrap_FARKodeSetMaxStep(void *farg1, double const *farg2) { +SWIGEXPORT int _wrap_FARKodeSetSafetyFactor(void *farg1, double const *farg2) { int fresult ; void *arg1 = (void *) 0 ; sunrealtype arg2 ; @@ -995,27 +905,27 @@ SWIGEXPORT int _wrap_FARKodeSetMaxStep(void *farg1, double const *farg2) { arg1 = (void *)(farg1); arg2 = (sunrealtype)(*farg2); - result = (int)ARKodeSetMaxStep(arg1,arg2); + result = (int)ARKodeSetSafetyFactor(arg1,arg2); fresult = (int)(result); return fresult; } -SWIGEXPORT int _wrap_FARKodeSetInterpolateStopTime(void *farg1, int const *farg2) { +SWIGEXPORT int _wrap_FARKodeSetMaxGrowth(void *farg1, double const *farg2) { int fresult ; void *arg1 = (void *) 0 ; - int arg2 ; + sunrealtype arg2 ; int result; arg1 = (void *)(farg1); - arg2 = (int)(*farg2); - result = (int)ARKodeSetInterpolateStopTime(arg1,arg2); + arg2 = (sunrealtype)(*farg2); + result = (int)ARKodeSetMaxGrowth(arg1,arg2); fresult = (int)(result); return fresult; } -SWIGEXPORT int _wrap_FARKodeSetStopTime(void *farg1, double const *farg2) { +SWIGEXPORT int _wrap_FARKodeSetMinReduction(void *farg1, double const *farg2) { int fresult ; void *arg1 = (void *) 0 ; sunrealtype arg2 ; @@ -1023,25 +933,29 @@ SWIGEXPORT int _wrap_FARKodeSetStopTime(void *farg1, double const *farg2) { arg1 = (void *)(farg1); arg2 = (sunrealtype)(*farg2); - result = (int)ARKodeSetStopTime(arg1,arg2); + result = (int)ARKodeSetMinReduction(arg1,arg2); fresult = (int)(result); return fresult; } -SWIGEXPORT int _wrap_FARKodeClearStopTime(void *farg1) { +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); - result = (int)ARKodeClearStopTime(arg1); + arg2 = (sunrealtype)(*farg2); + arg3 = (sunrealtype)(*farg3); + result = (int)ARKodeSetFixedStepBounds(arg1,arg2,arg3); fresult = (int)(result); return fresult; } -SWIGEXPORT int _wrap_FARKodeSetFixedStep(void *farg1, double const *farg2) { +SWIGEXPORT int _wrap_FARKodeSetMaxFirstGrowth(void *farg1, double const *farg2) { int fresult ; void *arg1 = (void *) 0 ; sunrealtype arg2 ; @@ -1049,13 +963,27 @@ SWIGEXPORT int _wrap_FARKodeSetFixedStep(void *farg1, double const *farg2) { arg1 = (void *)(farg1); arg2 = (sunrealtype)(*farg2); - result = (int)ARKodeSetFixedStep(arg1,arg2); + result = (int)ARKodeSetMaxFirstGrowth(arg1,arg2); fresult = (int)(result); return fresult; } -SWIGEXPORT int _wrap_FARKodeSetMaxNumConstrFails(void *farg1, int const *farg2) { +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 ; @@ -1063,201 +991,203 @@ SWIGEXPORT int _wrap_FARKodeSetMaxNumConstrFails(void *farg1, int const *farg2) arg1 = (void *)(farg1); arg2 = (int)(*farg2); - result = (int)ARKodeSetMaxNumConstrFails(arg1,arg2); + result = (int)ARKodeSetSmallNumEFails(arg1,arg2); fresult = (int)(result); return fresult; } -SWIGEXPORT int _wrap_FARKodeSetUserData(void *farg1, void *farg2) { +SWIGEXPORT int _wrap_FARKodeSetMaxCFailGrowth(void *farg1, double const *farg2) { int fresult ; void *arg1 = (void *) 0 ; - void *arg2 = (void *) 0 ; + sunrealtype arg2 ; int result; arg1 = (void *)(farg1); - arg2 = (void *)(farg2); - result = (int)ARKodeSetUserData(arg1,arg2); + arg2 = (sunrealtype)(*farg2); + result = (int)ARKodeSetMaxCFailGrowth(arg1,arg2); fresult = (int)(result); return fresult; } -SWIGEXPORT int _wrap_FARKodeSetPostprocessStepFn(void *farg1, ARKPostProcessFn farg2) { +SWIGEXPORT int _wrap_FARKodeSetStabilityFn(void *farg1, ARKExpStabFn farg2, void *farg3) { int fresult ; void *arg1 = (void *) 0 ; - ARKPostProcessFn arg2 = (ARKPostProcessFn) 0 ; + ARKExpStabFn arg2 = (ARKExpStabFn) 0 ; + void *arg3 = (void *) 0 ; int result; arg1 = (void *)(farg1); - arg2 = (ARKPostProcessFn)(farg2); - result = (int)ARKodeSetPostprocessStepFn(arg1,arg2); + arg2 = (ARKExpStabFn)(farg2); + arg3 = (void *)(farg3); + result = (int)ARKodeSetStabilityFn(arg1,arg2,arg3); fresult = (int)(result); return fresult; } -SWIGEXPORT int _wrap_FARKodeSetPostprocessStageFn(void *farg1, ARKPostProcessFn farg2) { +SWIGEXPORT int _wrap_FARKodeSetMaxErrTestFails(void *farg1, int const *farg2) { int fresult ; void *arg1 = (void *) 0 ; - ARKPostProcessFn arg2 = (ARKPostProcessFn) 0 ; + int arg2 ; int result; arg1 = (void *)(farg1); - arg2 = (ARKPostProcessFn)(farg2); - result = (int)ARKodeSetPostprocessStageFn(arg1,arg2); + arg2 = (int)(*farg2); + result = (int)ARKodeSetMaxErrTestFails(arg1,arg2); fresult = (int)(result); return fresult; } -SWIGEXPORT int _wrap_FARKodeSetStagePredictFn(void *farg1, ARKStagePredictFn farg2) { +SWIGEXPORT int _wrap_FARKodeSetConstraints(void *farg1, N_Vector farg2) { int fresult ; void *arg1 = (void *) 0 ; - ARKStagePredictFn arg2 = (ARKStagePredictFn) 0 ; + N_Vector arg2 = (N_Vector) 0 ; int result; arg1 = (void *)(farg1); - arg2 = (ARKStagePredictFn)(farg2); - result = (int)ARKodeSetStagePredictFn(arg1,arg2); + arg2 = (N_Vector)(farg2); + result = (int)ARKodeSetConstraints(arg1,arg2); fresult = (int)(result); return fresult; } -SWIGEXPORT int _wrap_FARKodeEvolve(void *farg1, double const *farg2, N_Vector farg3, double *farg4, int const *farg5) { +SWIGEXPORT int _wrap_FARKodeSetMaxHnilWarns(void *farg1, int const *farg2) { int fresult ; void *arg1 = (void *) 0 ; - sunrealtype arg2 ; - N_Vector arg3 = (N_Vector) 0 ; - sunrealtype *arg4 = (sunrealtype *) 0 ; - int arg5 ; + int arg2 ; 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); + arg2 = (int)(*farg2); + result = (int)ARKodeSetMaxHnilWarns(arg1,arg2); fresult = (int)(result); return fresult; } -SWIGEXPORT int _wrap_FARKodeGetDky(void *farg1, double const *farg2, int const *farg3, N_Vector farg4) { +SWIGEXPORT int _wrap_FARKodeSetInitStep(void *farg1, double const *farg2) { 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); + result = (int)ARKodeSetInitStep(arg1,arg2); fresult = (int)(result); return fresult; } -SWIGEXPORT int _wrap_FARKodeComputeState(void *farg1, N_Vector farg2, N_Vector farg3) { +SWIGEXPORT int _wrap_FARKodeSetMinStep(void *farg1, double const *farg2) { int fresult ; void *arg1 = (void *) 0 ; - N_Vector arg2 = (N_Vector) 0 ; - N_Vector arg3 = (N_Vector) 0 ; + sunrealtype arg2 ; int result; arg1 = (void *)(farg1); - arg2 = (N_Vector)(farg2); - arg3 = (N_Vector)(farg3); - result = (int)ARKodeComputeState(arg1,arg2,arg3); + arg2 = (sunrealtype)(*farg2); + result = (int)ARKodeSetMinStep(arg1,arg2); fresult = (int)(result); return fresult; } -SWIGEXPORT int _wrap_FARKodeGetNumExpSteps(void *farg1, long *farg2) { +SWIGEXPORT int _wrap_FARKodeSetMaxStep(void *farg1, double const *farg2) { int fresult ; void *arg1 = (void *) 0 ; - long *arg2 = (long *) 0 ; + sunrealtype arg2 ; int result; arg1 = (void *)(farg1); - arg2 = (long *)(farg2); - result = (int)ARKodeGetNumExpSteps(arg1,arg2); + arg2 = (sunrealtype)(*farg2); + result = (int)ARKodeSetMaxStep(arg1,arg2); fresult = (int)(result); return fresult; } -SWIGEXPORT int _wrap_FARKodeGetNumAccSteps(void *farg1, long *farg2) { +SWIGEXPORT int _wrap_FARKodeSetMaxNumConstrFails(void *farg1, int const *farg2) { int fresult ; void *arg1 = (void *) 0 ; - long *arg2 = (long *) 0 ; + int arg2 ; int result; arg1 = (void *)(farg1); - arg2 = (long *)(farg2); - result = (int)ARKodeGetNumAccSteps(arg1,arg2); + arg2 = (int)(*farg2); + result = (int)ARKodeSetMaxNumConstrFails(arg1,arg2); fresult = (int)(result); return fresult; } -SWIGEXPORT int _wrap_FARKodeGetNumStepAttempts(void *farg1, long *farg2) { +SWIGEXPORT int _wrap_FARKodeEvolve(void *farg1, double const *farg2, N_Vector farg3, double *farg4, int const *farg5) { int fresult ; void *arg1 = (void *) 0 ; - long *arg2 = (long *) 0 ; + sunrealtype arg2 ; + N_Vector arg3 = (N_Vector) 0 ; + sunrealtype *arg4 = (sunrealtype *) 0 ; + int arg5 ; int result; arg1 = (void *)(farg1); - arg2 = (long *)(farg2); - result = (int)ARKodeGetNumStepAttempts(arg1,arg2); + 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_FARKodeGetNumLinSolvSetups(void *farg1, long *farg2) { +SWIGEXPORT int _wrap_FARKodeGetDky(void *farg1, double const *farg2, int const *farg3, N_Vector farg4) { int fresult ; void *arg1 = (void *) 0 ; - long *arg2 = (long *) 0 ; + sunrealtype arg2 ; + int arg3 ; + N_Vector arg4 = (N_Vector) 0 ; int result; arg1 = (void *)(farg1); - arg2 = (long *)(farg2); - result = (int)ARKodeGetNumLinSolvSetups(arg1,arg2); + 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_FARKodeGetNumErrTestFails(void *farg1, long *farg2) { +SWIGEXPORT int _wrap_FARKodeComputeState(void *farg1, N_Vector farg2, N_Vector farg3) { int fresult ; void *arg1 = (void *) 0 ; - long *arg2 = (long *) 0 ; + N_Vector arg2 = (N_Vector) 0 ; + N_Vector arg3 = (N_Vector) 0 ; int result; arg1 = (void *)(farg1); - arg2 = (long *)(farg2); - result = (int)ARKodeGetNumErrTestFails(arg1,arg2); + arg2 = (N_Vector)(farg2); + arg3 = (N_Vector)(farg3); + result = (int)ARKodeComputeState(arg1,arg2,arg3); fresult = (int)(result); return fresult; } -SWIGEXPORT int _wrap_FARKodeGetEstLocalErrors(void *farg1, N_Vector farg2) { +SWIGEXPORT int _wrap_FARKodeGetNumStepAttempts(void *farg1, long *farg2) { int fresult ; void *arg1 = (void *) 0 ; - N_Vector arg2 = (N_Vector) 0 ; + long *arg2 = (long *) 0 ; int result; arg1 = (void *)(farg1); - arg2 = (N_Vector)(farg2); - result = (int)ARKodeGetEstLocalErrors(arg1,arg2); + arg2 = (long *)(farg2); + result = (int)ARKodeGetNumStepAttempts(arg1,arg2); fresult = (int)(result); return fresult; } @@ -1293,7 +1223,7 @@ SWIGEXPORT int _wrap_FARKodeGetNumSteps(void *farg1, long *farg2) { } -SWIGEXPORT int _wrap_FARKodeGetActualInitStep(void *farg1, double *farg2) { +SWIGEXPORT int _wrap_FARKodeGetLastStep(void *farg1, double *farg2) { int fresult ; void *arg1 = (void *) 0 ; sunrealtype *arg2 = (sunrealtype *) 0 ; @@ -1301,13 +1231,13 @@ SWIGEXPORT int _wrap_FARKodeGetActualInitStep(void *farg1, double *farg2) { arg1 = (void *)(farg1); arg2 = (sunrealtype *)(farg2); - result = (int)ARKodeGetActualInitStep(arg1,arg2); + result = (int)ARKodeGetLastStep(arg1,arg2); fresult = (int)(result); return fresult; } -SWIGEXPORT int _wrap_FARKodeGetLastStep(void *farg1, double *farg2) { +SWIGEXPORT int _wrap_FARKodeGetCurrentStep(void *farg1, double *farg2) { int fresult ; void *arg1 = (void *) 0 ; sunrealtype *arg2 = (sunrealtype *) 0 ; @@ -1315,125 +1245,140 @@ SWIGEXPORT int _wrap_FARKodeGetLastStep(void *farg1, double *farg2) { arg1 = (void *)(farg1); arg2 = (sunrealtype *)(farg2); - result = (int)ARKodeGetLastStep(arg1,arg2); + result = (int)ARKodeGetCurrentStep(arg1,arg2); fresult = (int)(result); return fresult; } -SWIGEXPORT int _wrap_FARKodeGetCurrentStep(void *farg1, double *farg2) { +SWIGEXPORT int _wrap_FARKodeGetErrWeights(void *farg1, N_Vector farg2) { int fresult ; void *arg1 = (void *) 0 ; - sunrealtype *arg2 = (sunrealtype *) 0 ; + N_Vector arg2 = (N_Vector) 0 ; int result; arg1 = (void *)(farg1); - arg2 = (sunrealtype *)(farg2); - result = (int)ARKodeGetCurrentStep(arg1,arg2); + arg2 = (N_Vector)(farg2); + result = (int)ARKodeGetErrWeights(arg1,arg2); fresult = (int)(result); return fresult; } -SWIGEXPORT int _wrap_FARKodeGetCurrentTime(void *farg1, double *farg2) { +SWIGEXPORT int _wrap_FARKodeGetNumGEvals(void *farg1, long *farg2) { int fresult ; void *arg1 = (void *) 0 ; - sunrealtype *arg2 = (sunrealtype *) 0 ; + long *arg2 = (long *) 0 ; int result; arg1 = (void *)(farg1); - arg2 = (sunrealtype *)(farg2); - result = (int)ARKodeGetCurrentTime(arg1,arg2); + arg2 = (long *)(farg2); + result = (int)ARKodeGetNumGEvals(arg1,arg2); fresult = (int)(result); return fresult; } -SWIGEXPORT int _wrap_FARKodeGetCurrentState(void *farg1, void *farg2) { +SWIGEXPORT int _wrap_FARKodeGetRootInfo(void *farg1, int *farg2) { int fresult ; void *arg1 = (void *) 0 ; - N_Vector *arg2 = (N_Vector *) 0 ; + int *arg2 = (int *) 0 ; int result; arg1 = (void *)(farg1); - arg2 = (N_Vector *)(farg2); - result = (int)ARKodeGetCurrentState(arg1,arg2); + arg2 = (int *)(farg2); + result = (int)ARKodeGetRootInfo(arg1,arg2); fresult = (int)(result); return fresult; } -SWIGEXPORT int _wrap_FARKodeGetCurrentGamma(void *farg1, double *farg2) { +SWIGEXPORT int _wrap_FARKodeGetUserData(void *farg1, void *farg2) { int fresult ; void *arg1 = (void *) 0 ; - sunrealtype *arg2 = (sunrealtype *) 0 ; + void **arg2 = (void **) 0 ; int result; arg1 = (void *)(farg1); - arg2 = (sunrealtype *)(farg2); - result = (int)ARKodeGetCurrentGamma(arg1,arg2); + arg2 = (void **)(farg2); + result = (int)ARKodeGetUserData(arg1,arg2); fresult = (int)(result); return fresult; } -SWIGEXPORT int _wrap_FARKodeGetCurrentMassMatrix(void *farg1, void *farg2) { +SWIGEXPORT int _wrap_FARKodePrintAllStats(void *farg1, void *farg2, int const *farg3) { int fresult ; void *arg1 = (void *) 0 ; - SUNMatrix *arg2 = (SUNMatrix *) 0 ; + FILE *arg2 = (FILE *) 0 ; + SUNOutputFormat arg3 ; int result; arg1 = (void *)(farg1); - arg2 = (SUNMatrix *)(farg2); - result = (int)ARKodeGetCurrentMassMatrix(arg1,arg2); + arg2 = (FILE *)(farg2); + arg3 = (SUNOutputFormat)(*farg3); + result = (int)ARKodePrintAllStats(arg1,arg2,arg3); fresult = (int)(result); return fresult; } -SWIGEXPORT int _wrap_FARKodeGetTolScaleFactor(void *farg1, double *farg2) { +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 ; - sunrealtype *arg2 = (sunrealtype *) 0 ; + FILE *arg2 = (FILE *) 0 ; int result; arg1 = (void *)(farg1); - arg2 = (sunrealtype *)(farg2); - result = (int)ARKodeGetTolScaleFactor(arg1,arg2); + arg2 = (FILE *)(farg2); + result = (int)ARKodeWriteParameters(arg1,arg2); fresult = (int)(result); return fresult; } -SWIGEXPORT int _wrap_FARKodeGetErrWeights(void *farg1, N_Vector farg2) { +SWIGEXPORT int _wrap_FARKodeGetNumExpSteps(void *farg1, long *farg2) { int fresult ; void *arg1 = (void *) 0 ; - N_Vector arg2 = (N_Vector) 0 ; + long *arg2 = (long *) 0 ; int result; arg1 = (void *)(farg1); - arg2 = (N_Vector)(farg2); - result = (int)ARKodeGetErrWeights(arg1,arg2); + arg2 = (long *)(farg2); + result = (int)ARKodeGetNumExpSteps(arg1,arg2); fresult = (int)(result); return fresult; } -SWIGEXPORT int _wrap_FARKodeGetResWeights(void *farg1, N_Vector farg2) { +SWIGEXPORT int _wrap_FARKodeGetNumAccSteps(void *farg1, long *farg2) { int fresult ; void *arg1 = (void *) 0 ; - N_Vector arg2 = (N_Vector) 0 ; + long *arg2 = (long *) 0 ; int result; arg1 = (void *)(farg1); - arg2 = (N_Vector)(farg2); - result = (int)ARKodeGetResWeights(arg1,arg2); + arg2 = (long *)(farg2); + result = (int)ARKodeGetNumAccSteps(arg1,arg2); fresult = (int)(result); return fresult; } -SWIGEXPORT int _wrap_FARKodeGetNumGEvals(void *farg1, long *farg2) { +SWIGEXPORT int _wrap_FARKodeGetNumErrTestFails(void *farg1, long *farg2) { int fresult ; void *arg1 = (void *) 0 ; long *arg2 = (long *) 0 ; @@ -1441,21 +1386,49 @@ SWIGEXPORT int _wrap_FARKodeGetNumGEvals(void *farg1, long *farg2) { arg1 = (void *)(farg1); arg2 = (long *)(farg2); - result = (int)ARKodeGetNumGEvals(arg1,arg2); + result = (int)ARKodeGetNumErrTestFails(arg1,arg2); fresult = (int)(result); return fresult; } -SWIGEXPORT int _wrap_FARKodeGetRootInfo(void *farg1, int *farg2) { +SWIGEXPORT int _wrap_FARKodeGetEstLocalErrors(void *farg1, N_Vector farg2) { int fresult ; void *arg1 = (void *) 0 ; - int *arg2 = (int *) 0 ; + N_Vector arg2 = (N_Vector) 0 ; int result; arg1 = (void *)(farg1); - arg2 = (int *)(farg2); - result = (int)ARKodeGetRootInfo(arg1,arg2); + 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; } @@ -1475,80 +1448,79 @@ SWIGEXPORT int _wrap_FARKodeGetNumConstrFails(void *farg1, long *farg2) { } -SWIGEXPORT int _wrap_FARKodeGetUserData(void *farg1, void *farg2) { +SWIGEXPORT int _wrap_FARKodeGetStepStats(void *farg1, long *farg2, double *farg3, double *farg4, double *farg5, double *farg6) { int fresult ; void *arg1 = (void *) 0 ; - void **arg2 = (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 = (void **)(farg2); - result = (int)ARKodeGetUserData(arg1,arg2); + 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_FARKodePrintAllStats(void *farg1, void *farg2, int const *farg3) { +SWIGEXPORT int _wrap_FARKodeGetNumLinSolvSetups(void *farg1, long *farg2) { int fresult ; void *arg1 = (void *) 0 ; - FILE *arg2 = (FILE *) 0 ; - SUNOutputFormat arg3 ; + long *arg2 = (long *) 0 ; int result; arg1 = (void *)(farg1); - arg2 = (FILE *)(farg2); - arg3 = (SUNOutputFormat)(*farg3); - result = (int)ARKodePrintAllStats(arg1,arg2,arg3); + arg2 = (long *)(farg2); + result = (int)ARKodeGetNumLinSolvSetups(arg1,arg2); fresult = (int)(result); return fresult; } -SWIGEXPORT SwigArrayWrapper _wrap_FARKodeGetReturnFlagName(long const *farg1) { - SwigArrayWrapper fresult ; - long arg1 ; - char *result = 0 ; +SWIGEXPORT int _wrap_FARKodeGetCurrentTime(void *farg1, double *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + sunrealtype *arg2 = (sunrealtype *) 0 ; + int result; - arg1 = (long)(*farg1); - result = (char *)ARKodeGetReturnFlagName(arg1); - fresult.size = strlen((const char*)(result)); - fresult.data = (char *)(result); + arg1 = (void *)(farg1); + arg2 = (sunrealtype *)(farg2); + result = (int)ARKodeGetCurrentTime(arg1,arg2); + fresult = (int)(result); return fresult; } -SWIGEXPORT int _wrap_FARKodeWriteParameters(void *farg1, void *farg2) { +SWIGEXPORT int _wrap_FARKodeGetCurrentState(void *farg1, void *farg2) { int fresult ; void *arg1 = (void *) 0 ; - FILE *arg2 = (FILE *) 0 ; + N_Vector *arg2 = (N_Vector *) 0 ; int result; arg1 = (void *)(farg1); - arg2 = (FILE *)(farg2); - result = (int)ARKodeWriteParameters(arg1,arg2); + arg2 = (N_Vector *)(farg2); + result = (int)ARKodeGetCurrentState(arg1,arg2); fresult = (int)(result); return fresult; } -SWIGEXPORT int _wrap_FARKodeGetStepStats(void *farg1, long *farg2, double *farg3, double *farg4, double *farg5, double *farg6) { +SWIGEXPORT int _wrap_FARKodeGetCurrentGamma(void *farg1, double *farg2) { 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 ; + sunrealtype *arg2 = (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); + arg2 = (sunrealtype *)(farg2); + result = (int)ARKodeGetCurrentGamma(arg1,arg2); fresult = (int)(result); return fresult; } @@ -1822,6 +1794,47 @@ SWIGEXPORT int _wrap_FARKodeGetLastLinFlag(void *farg1, long *farg2) { } +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 ; @@ -1978,19 +1991,6 @@ SWIGEXPORT int _wrap_FARKodeGetLastMassFlag(void *farg1, long *farg2) { } -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 void _wrap_FARKodeFree(void *farg1) { void **arg1 = (void **) 0 ; diff --git a/src/arkode/fmod_int32/farkode_mod.f90 b/src/arkode/fmod_int32/farkode_mod.f90 index e537f32abf..74072cc11a 100644 --- a/src/arkode/fmod_int32/farkode_mod.f90 +++ b/src/arkode/fmod_int32/farkode_mod.f90 @@ -116,11 +116,28 @@ module farkode_mod 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 :: 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 @@ -133,55 +150,25 @@ module farkode_mod public :: FARKodeSetMaxEFailGrowth public :: FARKodeSetSmallNumEFails public :: FARKodeSetMaxCFailGrowth - public :: FARKodeSetNonlinCRDown - public :: FARKodeSetNonlinRDiv - public :: FARKodeSetDeltaGammaMax - public :: FARKodeSetLSetupFrequency - public :: FARKodeSetPredictorMethod public :: FARKodeSetStabilityFn public :: FARKodeSetMaxErrTestFails - public :: FARKodeSetMaxNonlinIters - public :: FARKodeSetMaxConvFails - public :: FARKodeSetNonlinConvCoef public :: FARKodeSetConstraints - public :: FARKodeSetMaxNumSteps public :: FARKodeSetMaxHnilWarns public :: FARKodeSetInitStep public :: FARKodeSetMinStep public :: FARKodeSetMaxStep - public :: FARKodeSetInterpolateStopTime - public :: FARKodeSetStopTime - public :: FARKodeClearStopTime - public :: FARKodeSetFixedStep public :: FARKodeSetMaxNumConstrFails - public :: FARKodeSetUserData - public :: FARKodeSetPostprocessStepFn - public :: FARKodeSetPostprocessStageFn - public :: FARKodeSetStagePredictFn public :: FARKodeEvolve public :: FARKodeGetDky public :: FARKodeComputeState - public :: FARKodeGetNumExpSteps - public :: FARKodeGetNumAccSteps public :: FARKodeGetNumStepAttempts - public :: FARKodeGetNumLinSolvSetups - public :: FARKodeGetNumErrTestFails - public :: FARKodeGetEstLocalErrors public :: FARKodeGetWorkSpace public :: FARKodeGetNumSteps - public :: FARKodeGetActualInitStep public :: FARKodeGetLastStep public :: FARKodeGetCurrentStep - public :: FARKodeGetCurrentTime - public :: FARKodeGetCurrentState - public :: FARKodeGetCurrentGamma - public :: FARKodeGetCurrentMassMatrix - public :: FARKodeGetTolScaleFactor public :: FARKodeGetErrWeights - public :: FARKodeGetResWeights public :: FARKodeGetNumGEvals public :: FARKodeGetRootInfo - public :: FARKodeGetNumConstrFails public :: FARKodeGetUserData public :: FARKodePrintAllStats type, bind(C) :: SwigArrayWrapper @@ -190,7 +177,18 @@ module farkode_mod 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 @@ -209,6 +207,9 @@ module farkode_mod public :: FARKodeGetNumJtimesEvals public :: FARKodeGetNumLinRhsEvals public :: FARKodeGetLastLinFlag + public :: FARKodeGetLinReturnFlagName + public :: FARKodeGetCurrentMassMatrix + public :: FARKodeGetResWeights public :: FARKodeGetMassWorkSpace public :: FARKodeGetNumMassSetups public :: FARKodeGetNumMassMultSetups @@ -220,7 +221,6 @@ module farkode_mod public :: FARKodeGetNumMassConvFails public :: FARKodeGetNumMTSetups public :: FARKodeGetLastMassFlag - public :: FARKodeGetLinReturnFlagName public :: FARKodeFree public :: FARKodePrintMem public :: FARKodeSetRelaxFn @@ -315,7 +315,10 @@ module farkode_mod enumerator :: ARKODE_ESDIRK547L2SA_7_4_5 enumerator :: ARKODE_ESDIRK547L2SA2_7_4_5 enumerator :: ARKODE_ARK2_DIRK_3_1_2 - enumerator :: ARKODE_MAX_DIRK_NUM = 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, & @@ -324,7 +327,7 @@ module farkode_mod 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_MAX_DIRK_NUM + 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 ! typedef enum ARKODE_ERKTableID @@ -353,7 +356,10 @@ module farkode_mod enumerator :: ARKODE_VERNER_10_6_7 enumerator :: ARKODE_VERNER_13_7_8 enumerator :: ARKODE_VERNER_16_8_9 - enumerator :: ARKODE_MAX_ERK_NUM = 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, & @@ -361,7 +367,8 @@ module farkode_mod 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_MAX_ERK_NUM + 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 ! typedef enum ARKODE_SPRKMethodID @@ -588,43 +595,17 @@ function swigc_FARKodeSetInterpolantDegree(farg1, 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_FARKodeSetNlsRhsFn(farg1, farg2) & -bind(C, name="_wrap_FARKodeSetNlsRhsFn") & +function swigc_FARKodeSetMaxNumSteps(farg1, farg2) & +bind(C, name="_wrap_FARKodeSetMaxNumSteps") & result(fresult) use, intrinsic :: ISO_C_BINDING type(C_PTR), value :: farg1 -type(C_FUNPTR), value :: farg2 +integer(C_LONG), intent(in) :: farg2 integer(C_INT) :: fresult end function -function swigc_FARKodeSetDeduceImplicitRhs(farg1, farg2) & -bind(C, name="_wrap_FARKodeSetDeduceImplicitRhs") & +function swigc_FARKodeSetInterpolateStopTime(farg1, farg2) & +bind(C, name="_wrap_FARKodeSetInterpolateStopTime") & result(fresult) use, intrinsic :: ISO_C_BINDING type(C_PTR), value :: farg1 @@ -632,26 +613,25 @@ function swigc_FARKodeSetDeduceImplicitRhs(farg1, farg2) & integer(C_INT) :: fresult end function -function swigc_FARKodeSetAdaptController(farg1, farg2) & -bind(C, name="_wrap_FARKodeSetAdaptController") & +function swigc_FARKodeSetStopTime(farg1, farg2) & +bind(C, name="_wrap_FARKodeSetStopTime") & result(fresult) use, intrinsic :: ISO_C_BINDING type(C_PTR), value :: farg1 -type(C_PTR), value :: farg2 +real(C_DOUBLE), intent(in) :: farg2 integer(C_INT) :: fresult end function -function swigc_FARKodeSetAdaptivityAdjustment(farg1, farg2) & -bind(C, name="_wrap_FARKodeSetAdaptivityAdjustment") & +function swigc_FARKodeClearStopTime(farg1) & +bind(C, name="_wrap_FARKodeClearStopTime") & 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") & +function swigc_FARKodeSetFixedStep(farg1, farg2) & +bind(C, name="_wrap_FARKodeSetFixedStep") & result(fresult) use, intrinsic :: ISO_C_BINDING type(C_PTR), value :: farg1 @@ -659,72 +639,70 @@ function swigc_FARKodeSetCFLFraction(farg1, farg2) & integer(C_INT) :: fresult end function -function swigc_FARKodeSetErrorBias(farg1, farg2) & -bind(C, name="_wrap_FARKodeSetErrorBias") & +function swigc_FARKodeSetUserData(farg1, farg2) & +bind(C, name="_wrap_FARKodeSetUserData") & result(fresult) use, intrinsic :: ISO_C_BINDING type(C_PTR), value :: farg1 -real(C_DOUBLE), intent(in) :: farg2 +type(C_PTR), value :: farg2 integer(C_INT) :: fresult end function -function swigc_FARKodeSetSafetyFactor(farg1, farg2) & -bind(C, name="_wrap_FARKodeSetSafetyFactor") & +function swigc_FARKodeSetPostprocessStepFn(farg1, farg2) & +bind(C, name="_wrap_FARKodeSetPostprocessStepFn") & result(fresult) use, intrinsic :: ISO_C_BINDING type(C_PTR), value :: farg1 -real(C_DOUBLE), intent(in) :: farg2 +type(C_FUNPTR), value :: farg2 integer(C_INT) :: fresult end function -function swigc_FARKodeSetMaxGrowth(farg1, farg2) & -bind(C, name="_wrap_FARKodeSetMaxGrowth") & +function swigc_FARKodeSetPostprocessStageFn(farg1, farg2) & +bind(C, name="_wrap_FARKodeSetPostprocessStageFn") & result(fresult) use, intrinsic :: ISO_C_BINDING type(C_PTR), value :: farg1 -real(C_DOUBLE), intent(in) :: farg2 +type(C_FUNPTR), value :: farg2 integer(C_INT) :: fresult end function -function swigc_FARKodeSetMinReduction(farg1, farg2) & -bind(C, name="_wrap_FARKodeSetMinReduction") & +function swigc_FARKodeSetNonlinearSolver(farg1, farg2) & +bind(C, name="_wrap_FARKodeSetNonlinearSolver") & result(fresult) use, intrinsic :: ISO_C_BINDING type(C_PTR), value :: farg1 -real(C_DOUBLE), intent(in) :: farg2 +type(C_PTR), value :: farg2 integer(C_INT) :: fresult end function -function swigc_FARKodeSetFixedStepBounds(farg1, farg2, farg3) & -bind(C, name="_wrap_FARKodeSetFixedStepBounds") & +function swigc_FARKodeSetLinear(farg1, farg2) & +bind(C, name="_wrap_FARKodeSetLinear") & 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), intent(in) :: farg2 integer(C_INT) :: fresult end function -function swigc_FARKodeSetMaxFirstGrowth(farg1, farg2) & -bind(C, name="_wrap_FARKodeSetMaxFirstGrowth") & +function swigc_FARKodeSetNonlinear(farg1) & +bind(C, name="_wrap_FARKodeSetNonlinear") & 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") & +function swigc_FARKodeSetNlsRhsFn(farg1, farg2) & +bind(C, name="_wrap_FARKodeSetNlsRhsFn") & result(fresult) use, intrinsic :: ISO_C_BINDING type(C_PTR), value :: farg1 -real(C_DOUBLE), intent(in) :: farg2 +type(C_FUNPTR), value :: farg2 integer(C_INT) :: fresult end function -function swigc_FARKodeSetSmallNumEFails(farg1, farg2) & -bind(C, name="_wrap_FARKodeSetSmallNumEFails") & +function swigc_FARKodeSetDeduceImplicitRhs(farg1, farg2) & +bind(C, name="_wrap_FARKodeSetDeduceImplicitRhs") & result(fresult) use, intrinsic :: ISO_C_BINDING type(C_PTR), value :: farg1 @@ -732,15 +710,6 @@ function swigc_FARKodeSetSmallNumEFails(farg1, 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_FARKodeSetNonlinCRDown(farg1, farg2) & bind(C, name="_wrap_FARKodeSetNonlinCRDown") & result(fresult) @@ -786,25 +755,6 @@ function swigc_FARKodeSetPredictorMethod(farg1, 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_FARKodeSetMaxNonlinIters(farg1, farg2) & bind(C, name="_wrap_FARKodeSetMaxNonlinIters") & result(fresult) @@ -832,26 +782,26 @@ function swigc_FARKodeSetNonlinConvCoef(farg1, farg2) & integer(C_INT) :: fresult end function -function swigc_FARKodeSetConstraints(farg1, farg2) & -bind(C, name="_wrap_FARKodeSetConstraints") & +function swigc_FARKodeSetStagePredictFn(farg1, farg2) & +bind(C, name="_wrap_FARKodeSetStagePredictFn") & result(fresult) use, intrinsic :: ISO_C_BINDING type(C_PTR), value :: farg1 -type(C_PTR), value :: farg2 +type(C_FUNPTR), value :: farg2 integer(C_INT) :: fresult end function -function swigc_FARKodeSetMaxNumSteps(farg1, farg2) & -bind(C, name="_wrap_FARKodeSetMaxNumSteps") & +function swigc_FARKodeSetAdaptController(farg1, farg2) & +bind(C, name="_wrap_FARKodeSetAdaptController") & result(fresult) use, intrinsic :: ISO_C_BINDING type(C_PTR), value :: farg1 -integer(C_LONG), intent(in) :: farg2 +type(C_PTR), value :: farg2 integer(C_INT) :: fresult end function -function swigc_FARKodeSetMaxHnilWarns(farg1, farg2) & -bind(C, name="_wrap_FARKodeSetMaxHnilWarns") & +function swigc_FARKodeSetAdaptivityAdjustment(farg1, farg2) & +bind(C, name="_wrap_FARKodeSetAdaptivityAdjustment") & result(fresult) use, intrinsic :: ISO_C_BINDING type(C_PTR), value :: farg1 @@ -859,8 +809,8 @@ function swigc_FARKodeSetMaxHnilWarns(farg1, farg2) & integer(C_INT) :: fresult end function -function swigc_FARKodeSetInitStep(farg1, farg2) & -bind(C, name="_wrap_FARKodeSetInitStep") & +function swigc_FARKodeSetCFLFraction(farg1, farg2) & +bind(C, name="_wrap_FARKodeSetCFLFraction") & result(fresult) use, intrinsic :: ISO_C_BINDING type(C_PTR), value :: farg1 @@ -868,8 +818,8 @@ function swigc_FARKodeSetInitStep(farg1, farg2) & integer(C_INT) :: fresult end function -function swigc_FARKodeSetMinStep(farg1, farg2) & -bind(C, name="_wrap_FARKodeSetMinStep") & +function swigc_FARKodeSetErrorBias(farg1, farg2) & +bind(C, name="_wrap_FARKodeSetErrorBias") & result(fresult) use, intrinsic :: ISO_C_BINDING type(C_PTR), value :: farg1 @@ -877,8 +827,8 @@ function swigc_FARKodeSetMinStep(farg1, farg2) & integer(C_INT) :: fresult end function -function swigc_FARKodeSetMaxStep(farg1, farg2) & -bind(C, name="_wrap_FARKodeSetMaxStep") & +function swigc_FARKodeSetSafetyFactor(farg1, farg2) & +bind(C, name="_wrap_FARKodeSetSafetyFactor") & result(fresult) use, intrinsic :: ISO_C_BINDING type(C_PTR), value :: farg1 @@ -886,17 +836,17 @@ function swigc_FARKodeSetMaxStep(farg1, farg2) & integer(C_INT) :: fresult end function -function swigc_FARKodeSetInterpolateStopTime(farg1, farg2) & -bind(C, name="_wrap_FARKodeSetInterpolateStopTime") & +function swigc_FARKodeSetMaxGrowth(farg1, farg2) & +bind(C, name="_wrap_FARKodeSetMaxGrowth") & result(fresult) use, intrinsic :: ISO_C_BINDING type(C_PTR), value :: farg1 -integer(C_INT), intent(in) :: farg2 +real(C_DOUBLE), intent(in) :: farg2 integer(C_INT) :: fresult end function -function swigc_FARKodeSetStopTime(farg1, farg2) & -bind(C, name="_wrap_FARKodeSetStopTime") & +function swigc_FARKodeSetMinReduction(farg1, farg2) & +bind(C, name="_wrap_FARKodeSetMinReduction") & result(fresult) use, intrinsic :: ISO_C_BINDING type(C_PTR), value :: farg1 @@ -904,16 +854,18 @@ function swigc_FARKodeSetStopTime(farg1, farg2) & integer(C_INT) :: fresult end function -function swigc_FARKodeClearStopTime(farg1) & -bind(C, name="_wrap_FARKodeClearStopTime") & +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_FARKodeSetFixedStep(farg1, farg2) & -bind(C, name="_wrap_FARKodeSetFixedStep") & +function swigc_FARKodeSetMaxFirstGrowth(farg1, farg2) & +bind(C, name="_wrap_FARKodeSetMaxFirstGrowth") & result(fresult) use, intrinsic :: ISO_C_BINDING type(C_PTR), value :: farg1 @@ -921,131 +873,141 @@ function swigc_FARKodeSetFixedStep(farg1, farg2) & integer(C_INT) :: fresult end function -function swigc_FARKodeSetMaxNumConstrFails(farg1, farg2) & -bind(C, name="_wrap_FARKodeSetMaxNumConstrFails") & +function swigc_FARKodeSetMaxEFailGrowth(farg1, farg2) & +bind(C, name="_wrap_FARKodeSetMaxEFailGrowth") & result(fresult) use, intrinsic :: ISO_C_BINDING type(C_PTR), value :: farg1 -integer(C_INT), intent(in) :: farg2 +real(C_DOUBLE), intent(in) :: farg2 integer(C_INT) :: fresult end function -function swigc_FARKodeSetUserData(farg1, farg2) & -bind(C, name="_wrap_FARKodeSetUserData") & +function swigc_FARKodeSetSmallNumEFails(farg1, farg2) & +bind(C, name="_wrap_FARKodeSetSmallNumEFails") & result(fresult) use, intrinsic :: ISO_C_BINDING type(C_PTR), value :: farg1 -type(C_PTR), value :: farg2 +integer(C_INT), intent(in) :: farg2 integer(C_INT) :: fresult end function -function swigc_FARKodeSetPostprocessStepFn(farg1, farg2) & -bind(C, name="_wrap_FARKodeSetPostprocessStepFn") & +function swigc_FARKodeSetMaxCFailGrowth(farg1, farg2) & +bind(C, name="_wrap_FARKodeSetMaxCFailGrowth") & result(fresult) use, intrinsic :: ISO_C_BINDING type(C_PTR), value :: farg1 -type(C_FUNPTR), value :: farg2 +real(C_DOUBLE), intent(in) :: farg2 integer(C_INT) :: fresult end function -function swigc_FARKodeSetPostprocessStageFn(farg1, farg2) & -bind(C, name="_wrap_FARKodeSetPostprocessStageFn") & -result(fresult) +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_FARKodeSetStagePredictFn(farg1, farg2) & -bind(C, name="_wrap_FARKodeSetStagePredictFn") & +function swigc_FARKodeSetMaxErrTestFails(farg1, farg2) & +bind(C, name="_wrap_FARKodeSetMaxErrTestFails") & result(fresult) use, intrinsic :: ISO_C_BINDING type(C_PTR), value :: farg1 -type(C_FUNPTR), value :: farg2 +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") & +function swigc_FARKodeSetConstraints(farg1, farg2) & +bind(C, name="_wrap_FARKodeSetConstraints") & 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 :: farg2 integer(C_INT) :: fresult end function -function swigc_FARKodeGetDky(farg1, farg2, farg3, farg4) & -bind(C, name="_wrap_FARKodeGetDky") & +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), 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") & +function swigc_FARKodeSetMinStep(farg1, farg2) & +bind(C, name="_wrap_FARKodeSetMinStep") & 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), intent(in) :: farg2 integer(C_INT) :: fresult end function -function swigc_FARKodeGetNumExpSteps(farg1, farg2) & -bind(C, name="_wrap_FARKodeGetNumExpSteps") & +function swigc_FARKodeSetMaxStep(farg1, farg2) & +bind(C, name="_wrap_FARKodeSetMaxStep") & result(fresult) use, intrinsic :: ISO_C_BINDING type(C_PTR), value :: farg1 -type(C_PTR), value :: farg2 +real(C_DOUBLE), intent(in) :: farg2 integer(C_INT) :: fresult end function -function swigc_FARKodeGetNumAccSteps(farg1, farg2) & -bind(C, name="_wrap_FARKodeGetNumAccSteps") & +function swigc_FARKodeSetMaxNumConstrFails(farg1, farg2) & +bind(C, name="_wrap_FARKodeSetMaxNumConstrFails") & result(fresult) use, intrinsic :: ISO_C_BINDING type(C_PTR), value :: farg1 -type(C_PTR), value :: farg2 +integer(C_INT), intent(in) :: farg2 integer(C_INT) :: fresult end function -function swigc_FARKodeGetNumStepAttempts(farg1, farg2) & -bind(C, name="_wrap_FARKodeGetNumStepAttempts") & +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 -type(C_PTR), value :: farg2 +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_FARKodeGetNumLinSolvSetups(farg1, farg2) & -bind(C, name="_wrap_FARKodeGetNumLinSolvSetups") & +function swigc_FARKodeGetDky(farg1, farg2, farg3, farg4) & +bind(C, name="_wrap_FARKodeGetDky") & result(fresult) use, intrinsic :: ISO_C_BINDING type(C_PTR), value :: farg1 -type(C_PTR), value :: farg2 +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_FARKodeGetNumErrTestFails(farg1, farg2) & -bind(C, name="_wrap_FARKodeGetNumErrTestFails") & +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_FARKodeGetEstLocalErrors(farg1, farg2) & -bind(C, name="_wrap_FARKodeGetEstLocalErrors") & +function swigc_FARKodeGetNumStepAttempts(farg1, farg2) & +bind(C, name="_wrap_FARKodeGetNumStepAttempts") & result(fresult) use, intrinsic :: ISO_C_BINDING type(C_PTR), value :: farg1 @@ -1072,8 +1034,8 @@ function swigc_FARKodeGetNumSteps(farg1, farg2) & integer(C_INT) :: fresult end function -function swigc_FARKodeGetActualInitStep(farg1, farg2) & -bind(C, name="_wrap_FARKodeGetActualInitStep") & +function swigc_FARKodeGetLastStep(farg1, farg2) & +bind(C, name="_wrap_FARKodeGetLastStep") & result(fresult) use, intrinsic :: ISO_C_BINDING type(C_PTR), value :: farg1 @@ -1081,8 +1043,8 @@ function swigc_FARKodeGetActualInitStep(farg1, farg2) & integer(C_INT) :: fresult end function -function swigc_FARKodeGetLastStep(farg1, farg2) & -bind(C, name="_wrap_FARKodeGetLastStep") & +function swigc_FARKodeGetCurrentStep(farg1, farg2) & +bind(C, name="_wrap_FARKodeGetCurrentStep") & result(fresult) use, intrinsic :: ISO_C_BINDING type(C_PTR), value :: farg1 @@ -1090,8 +1052,8 @@ function swigc_FARKodeGetLastStep(farg1, farg2) & integer(C_INT) :: fresult end function -function swigc_FARKodeGetCurrentStep(farg1, farg2) & -bind(C, name="_wrap_FARKodeGetCurrentStep") & +function swigc_FARKodeGetErrWeights(farg1, farg2) & +bind(C, name="_wrap_FARKodeGetErrWeights") & result(fresult) use, intrinsic :: ISO_C_BINDING type(C_PTR), value :: farg1 @@ -1099,8 +1061,8 @@ function swigc_FARKodeGetCurrentStep(farg1, farg2) & integer(C_INT) :: fresult end function -function swigc_FARKodeGetCurrentTime(farg1, farg2) & -bind(C, name="_wrap_FARKodeGetCurrentTime") & +function swigc_FARKodeGetNumGEvals(farg1, farg2) & +bind(C, name="_wrap_FARKodeGetNumGEvals") & result(fresult) use, intrinsic :: ISO_C_BINDING type(C_PTR), value :: farg1 @@ -1108,8 +1070,8 @@ function swigc_FARKodeGetCurrentTime(farg1, farg2) & integer(C_INT) :: fresult end function -function swigc_FARKodeGetCurrentState(farg1, farg2) & -bind(C, name="_wrap_FARKodeGetCurrentState") & +function swigc_FARKodeGetRootInfo(farg1, farg2) & +bind(C, name="_wrap_FARKodeGetRootInfo") & result(fresult) use, intrinsic :: ISO_C_BINDING type(C_PTR), value :: farg1 @@ -1117,8 +1079,8 @@ function swigc_FARKodeGetCurrentState(farg1, farg2) & integer(C_INT) :: fresult end function -function swigc_FARKodeGetCurrentGamma(farg1, farg2) & -bind(C, name="_wrap_FARKodeGetCurrentGamma") & +function swigc_FARKodeGetUserData(farg1, farg2) & +bind(C, name="_wrap_FARKodeGetUserData") & result(fresult) use, intrinsic :: ISO_C_BINDING type(C_PTR), value :: farg1 @@ -1126,17 +1088,32 @@ function swigc_FARKodeGetCurrentGamma(farg1, farg2) & integer(C_INT) :: fresult end function -function swigc_FARKodeGetCurrentMassMatrix(farg1, farg2) & -bind(C, name="_wrap_FARKodeGetCurrentMassMatrix") & +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 -function swigc_FARKodeGetTolScaleFactor(farg1, farg2) & -bind(C, name="_wrap_FARKodeGetTolScaleFactor") & + 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 @@ -1144,8 +1121,8 @@ function swigc_FARKodeGetTolScaleFactor(farg1, farg2) & integer(C_INT) :: fresult end function -function swigc_FARKodeGetErrWeights(farg1, farg2) & -bind(C, name="_wrap_FARKodeGetErrWeights") & +function swigc_FARKodeGetNumExpSteps(farg1, farg2) & +bind(C, name="_wrap_FARKodeGetNumExpSteps") & result(fresult) use, intrinsic :: ISO_C_BINDING type(C_PTR), value :: farg1 @@ -1153,8 +1130,8 @@ function swigc_FARKodeGetErrWeights(farg1, farg2) & integer(C_INT) :: fresult end function -function swigc_FARKodeGetResWeights(farg1, farg2) & -bind(C, name="_wrap_FARKodeGetResWeights") & +function swigc_FARKodeGetNumAccSteps(farg1, farg2) & +bind(C, name="_wrap_FARKodeGetNumAccSteps") & result(fresult) use, intrinsic :: ISO_C_BINDING type(C_PTR), value :: farg1 @@ -1162,8 +1139,8 @@ function swigc_FARKodeGetResWeights(farg1, farg2) & integer(C_INT) :: fresult end function -function swigc_FARKodeGetNumGEvals(farg1, farg2) & -bind(C, name="_wrap_FARKodeGetNumGEvals") & +function swigc_FARKodeGetNumErrTestFails(farg1, farg2) & +bind(C, name="_wrap_FARKodeGetNumErrTestFails") & result(fresult) use, intrinsic :: ISO_C_BINDING type(C_PTR), value :: farg1 @@ -1171,8 +1148,26 @@ function swigc_FARKodeGetNumGEvals(farg1, farg2) & integer(C_INT) :: fresult end function -function swigc_FARKodeGetRootInfo(farg1, farg2) & -bind(C, name="_wrap_FARKodeGetRootInfo") & +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 @@ -1189,41 +1184,39 @@ function swigc_FARKodeGetNumConstrFails(farg1, farg2) & integer(C_INT) :: fresult end function -function swigc_FARKodeGetUserData(farg1, farg2) & -bind(C, name="_wrap_FARKodeGetUserData") & +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_FARKodePrintAllStats(farg1, farg2, farg3) & -bind(C, name="_wrap_FARKodePrintAllStats") & +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), 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") & +function swigc_FARKodeGetCurrentTime(farg1, farg2) & +bind(C, name="_wrap_FARKodeGetCurrentTime") & result(fresult) use, intrinsic :: ISO_C_BINDING -import :: swigarraywrapper -integer(C_LONG), intent(in) :: farg1 -type(SwigArrayWrapper) :: fresult +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult end function -function swigc_FARKodeWriteParameters(farg1, farg2) & -bind(C, name="_wrap_FARKodeWriteParameters") & +function swigc_FARKodeGetCurrentState(farg1, farg2) & +bind(C, name="_wrap_FARKodeGetCurrentState") & result(fresult) use, intrinsic :: ISO_C_BINDING type(C_PTR), value :: farg1 @@ -1231,16 +1224,12 @@ function swigc_FARKodeWriteParameters(farg1, farg2) & integer(C_INT) :: fresult end function -function swigc_FARKodeGetStepStats(farg1, farg2, farg3, farg4, farg5, farg6) & -bind(C, name="_wrap_FARKodeGetStepStats") & +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 -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 @@ -1414,6 +1403,33 @@ function swigc_FARKodeGetLastLinFlag(farg1, 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) @@ -1514,15 +1530,6 @@ function swigc_FARKodeGetLastMassFlag(farg1, 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 - subroutine swigc_FARKodeFree(farg1) & bind(C, name="_wrap_FARKodeFree") use, intrinsic :: ISO_C_BINDING @@ -2589,675 +2596,675 @@ function FARKodeSetInterpolantDegree(arkode_mem, degree) & swig_result = fresult end function -function FARKodeSetNonlinearSolver(arkode_mem, nls) & +function FARKodeSetMaxNumSteps(arkode_mem, mxsteps) & 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_LONG), intent(in) :: mxsteps integer(C_INT) :: fresult type(C_PTR) :: farg1 -type(C_PTR) :: farg2 +integer(C_LONG) :: farg2 farg1 = arkode_mem -farg2 = c_loc(nls) -fresult = swigc_FARKodeSetNonlinearSolver(farg1, farg2) +farg2 = mxsteps +fresult = swigc_FARKodeSetMaxNumSteps(farg1, farg2) swig_result = fresult end function -function FARKodeSetLinear(arkode_mem, timedepend) & +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) :: timedepend +integer(C_INT), intent(in) :: interp integer(C_INT) :: fresult type(C_PTR) :: farg1 integer(C_INT) :: farg2 farg1 = arkode_mem -farg2 = timedepend -fresult = swigc_FARKodeSetLinear(farg1, farg2) +farg2 = interp +fresult = swigc_FARKodeSetInterpolateStopTime(farg1, farg2) swig_result = fresult end function -function FARKodeSetNonlinear(arkode_mem) & +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 -fresult = swigc_FARKodeSetNonlinear(farg1) +farg2 = tstop +fresult = swigc_FARKodeSetStopTime(farg1, farg2) swig_result = fresult end function -function FARKodeSetNlsRhsFn(arkode_mem, nls_fi) & +function FARKodeClearStopTime(arkode_mem) & 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) +fresult = swigc_FARKodeClearStopTime(farg1) swig_result = fresult end function -function FARKodeSetDeduceImplicitRhs(arkode_mem, deduce) & +function FARKodeSetFixedStep(arkode_mem, hfixed) & result(swig_result) use, intrinsic :: ISO_C_BINDING integer(C_INT) :: swig_result type(C_PTR) :: arkode_mem -integer(C_INT), intent(in) :: deduce +real(C_DOUBLE), intent(in) :: hfixed integer(C_INT) :: fresult type(C_PTR) :: farg1 -integer(C_INT) :: farg2 +real(C_DOUBLE) :: farg2 farg1 = arkode_mem -farg2 = deduce -fresult = swigc_FARKodeSetDeduceImplicitRhs(farg1, farg2) +farg2 = hfixed +fresult = swigc_FARKodeSetFixedStep(farg1, farg2) swig_result = fresult end function -function FARKodeSetAdaptController(arkode_mem, c) & +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(SUNAdaptController), target, intent(inout) :: c +type(C_PTR) :: user_data integer(C_INT) :: fresult type(C_PTR) :: farg1 type(C_PTR) :: farg2 farg1 = arkode_mem -farg2 = c_loc(c) -fresult = swigc_FARKodeSetAdaptController(farg1, farg2) +farg2 = user_data +fresult = swigc_FARKodeSetUserData(farg1, farg2) swig_result = fresult end function -function FARKodeSetAdaptivityAdjustment(arkode_mem, adjust) & +function FARKodeSetPostprocessStepFn(arkode_mem, processstep) & result(swig_result) use, intrinsic :: ISO_C_BINDING integer(C_INT) :: swig_result type(C_PTR) :: arkode_mem -integer(C_INT), intent(in) :: adjust +type(C_FUNPTR), intent(in), value :: processstep integer(C_INT) :: fresult type(C_PTR) :: farg1 -integer(C_INT) :: farg2 +type(C_FUNPTR) :: farg2 farg1 = arkode_mem -farg2 = adjust -fresult = swigc_FARKodeSetAdaptivityAdjustment(farg1, farg2) +farg2 = processstep +fresult = swigc_FARKodeSetPostprocessStepFn(farg1, farg2) swig_result = fresult end function -function FARKodeSetCFLFraction(arkode_mem, cfl_frac) & +function FARKodeSetPostprocessStageFn(arkode_mem, processstage) & 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 +type(C_FUNPTR), intent(in), value :: processstage integer(C_INT) :: fresult type(C_PTR) :: farg1 -real(C_DOUBLE) :: farg2 +type(C_FUNPTR) :: farg2 farg1 = arkode_mem -farg2 = cfl_frac -fresult = swigc_FARKodeSetCFLFraction(farg1, farg2) +farg2 = processstage +fresult = swigc_FARKodeSetPostprocessStageFn(farg1, farg2) swig_result = fresult end function -function FARKodeSetErrorBias(arkode_mem, bias) & +function FARKodeSetNonlinearSolver(arkode_mem, nls) & result(swig_result) use, intrinsic :: ISO_C_BINDING integer(C_INT) :: swig_result type(C_PTR) :: arkode_mem -real(C_DOUBLE), intent(in) :: bias +type(SUNNonlinearSolver), target, intent(inout) :: nls integer(C_INT) :: fresult type(C_PTR) :: farg1 -real(C_DOUBLE) :: farg2 +type(C_PTR) :: farg2 farg1 = arkode_mem -farg2 = bias -fresult = swigc_FARKodeSetErrorBias(farg1, farg2) +farg2 = c_loc(nls) +fresult = swigc_FARKodeSetNonlinearSolver(farg1, farg2) swig_result = fresult end function -function FARKodeSetSafetyFactor(arkode_mem, safety) & +function FARKodeSetLinear(arkode_mem, timedepend) & 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), intent(in) :: timedepend integer(C_INT) :: fresult type(C_PTR) :: farg1 -real(C_DOUBLE) :: farg2 +integer(C_INT) :: farg2 farg1 = arkode_mem -farg2 = safety -fresult = swigc_FARKodeSetSafetyFactor(farg1, farg2) +farg2 = timedepend +fresult = swigc_FARKodeSetLinear(farg1, farg2) swig_result = fresult end function -function FARKodeSetMaxGrowth(arkode_mem, mx_growth) & +function FARKodeSetNonlinear(arkode_mem) & 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) +fresult = swigc_FARKodeSetNonlinear(farg1) swig_result = fresult end function -function FARKodeSetMinReduction(arkode_mem, eta_min) & +function FARKodeSetNlsRhsFn(arkode_mem, nls_fi) & 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 +type(C_FUNPTR), intent(in), value :: nls_fi integer(C_INT) :: fresult type(C_PTR) :: farg1 -real(C_DOUBLE) :: farg2 +type(C_FUNPTR) :: farg2 farg1 = arkode_mem -farg2 = eta_min -fresult = swigc_FARKodeSetMinReduction(farg1, farg2) +farg2 = nls_fi +fresult = swigc_FARKodeSetNlsRhsFn(farg1, farg2) swig_result = fresult end function -function FARKodeSetFixedStepBounds(arkode_mem, lb, ub) & +function FARKodeSetDeduceImplicitRhs(arkode_mem, deduce) & 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), intent(in) :: deduce integer(C_INT) :: fresult type(C_PTR) :: farg1 -real(C_DOUBLE) :: farg2 -real(C_DOUBLE) :: farg3 +integer(C_INT) :: farg2 farg1 = arkode_mem -farg2 = lb -farg3 = ub -fresult = swigc_FARKodeSetFixedStepBounds(farg1, farg2, farg3) +farg2 = deduce +fresult = swigc_FARKodeSetDeduceImplicitRhs(farg1, farg2) swig_result = fresult end function -function FARKodeSetMaxFirstGrowth(arkode_mem, etamx1) & +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) :: etamx1 +real(C_DOUBLE), intent(in) :: crdown integer(C_INT) :: fresult type(C_PTR) :: farg1 real(C_DOUBLE) :: farg2 farg1 = arkode_mem -farg2 = etamx1 -fresult = swigc_FARKodeSetMaxFirstGrowth(farg1, farg2) +farg2 = crdown +fresult = swigc_FARKodeSetNonlinCRDown(farg1, farg2) swig_result = fresult end function -function FARKodeSetMaxEFailGrowth(arkode_mem, etamxf) & +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) :: etamxf +real(C_DOUBLE), intent(in) :: rdiv integer(C_INT) :: fresult type(C_PTR) :: farg1 real(C_DOUBLE) :: farg2 farg1 = arkode_mem -farg2 = etamxf -fresult = swigc_FARKodeSetMaxEFailGrowth(farg1, farg2) +farg2 = rdiv +fresult = swigc_FARKodeSetNonlinRDiv(farg1, farg2) swig_result = fresult end function -function FARKodeSetSmallNumEFails(arkode_mem, small_nef) & +function FARKodeSetDeltaGammaMax(arkode_mem, dgmax) & 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 +real(C_DOUBLE), intent(in) :: dgmax integer(C_INT) :: fresult type(C_PTR) :: farg1 -integer(C_INT) :: farg2 +real(C_DOUBLE) :: farg2 farg1 = arkode_mem -farg2 = small_nef -fresult = swigc_FARKodeSetSmallNumEFails(farg1, farg2) +farg2 = dgmax +fresult = swigc_FARKodeSetDeltaGammaMax(farg1, farg2) swig_result = fresult end function -function FARKodeSetMaxCFailGrowth(arkode_mem, etacf) & +function FARKodeSetLSetupFrequency(arkode_mem, msbp) & 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), intent(in) :: msbp integer(C_INT) :: fresult type(C_PTR) :: farg1 -real(C_DOUBLE) :: farg2 +integer(C_INT) :: farg2 farg1 = arkode_mem -farg2 = etacf -fresult = swigc_FARKodeSetMaxCFailGrowth(farg1, farg2) +farg2 = msbp +fresult = swigc_FARKodeSetLSetupFrequency(farg1, farg2) swig_result = fresult end function -function FARKodeSetNonlinCRDown(arkode_mem, crdown) & +function FARKodeSetPredictorMethod(arkode_mem, method) & 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), intent(in) :: method integer(C_INT) :: fresult type(C_PTR) :: farg1 -real(C_DOUBLE) :: farg2 +integer(C_INT) :: farg2 farg1 = arkode_mem -farg2 = crdown -fresult = swigc_FARKodeSetNonlinCRDown(farg1, farg2) +farg2 = method +fresult = swigc_FARKodeSetPredictorMethod(farg1, farg2) swig_result = fresult end function -function FARKodeSetNonlinRDiv(arkode_mem, rdiv) & +function FARKodeSetMaxNonlinIters(arkode_mem, maxcor) & 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), intent(in) :: maxcor integer(C_INT) :: fresult type(C_PTR) :: farg1 -real(C_DOUBLE) :: farg2 +integer(C_INT) :: farg2 farg1 = arkode_mem -farg2 = rdiv -fresult = swigc_FARKodeSetNonlinRDiv(farg1, farg2) +farg2 = maxcor +fresult = swigc_FARKodeSetMaxNonlinIters(farg1, farg2) swig_result = fresult end function -function FARKodeSetDeltaGammaMax(arkode_mem, dgmax) & +function FARKodeSetMaxConvFails(arkode_mem, maxncf) & 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), intent(in) :: maxncf integer(C_INT) :: fresult type(C_PTR) :: farg1 -real(C_DOUBLE) :: farg2 +integer(C_INT) :: farg2 farg1 = arkode_mem -farg2 = dgmax -fresult = swigc_FARKodeSetDeltaGammaMax(farg1, farg2) +farg2 = maxncf +fresult = swigc_FARKodeSetMaxConvFails(farg1, farg2) swig_result = fresult end function -function FARKodeSetLSetupFrequency(arkode_mem, msbp) & +function FARKodeSetNonlinConvCoef(arkode_mem, nlscoef) & result(swig_result) use, intrinsic :: ISO_C_BINDING integer(C_INT) :: swig_result type(C_PTR) :: arkode_mem -integer(C_INT), intent(in) :: msbp +real(C_DOUBLE), intent(in) :: nlscoef integer(C_INT) :: fresult type(C_PTR) :: farg1 -integer(C_INT) :: farg2 +real(C_DOUBLE) :: farg2 farg1 = arkode_mem -farg2 = msbp -fresult = swigc_FARKodeSetLSetupFrequency(farg1, farg2) +farg2 = nlscoef +fresult = swigc_FARKodeSetNonlinConvCoef(farg1, farg2) swig_result = fresult end function -function FARKodeSetPredictorMethod(arkode_mem, method) & +function FARKodeSetStagePredictFn(arkode_mem, predictstage) & result(swig_result) use, intrinsic :: ISO_C_BINDING integer(C_INT) :: swig_result type(C_PTR) :: arkode_mem -integer(C_INT), intent(in) :: method +type(C_FUNPTR), intent(in), value :: predictstage integer(C_INT) :: fresult type(C_PTR) :: farg1 -integer(C_INT) :: farg2 +type(C_FUNPTR) :: farg2 farg1 = arkode_mem -farg2 = method -fresult = swigc_FARKodeSetPredictorMethod(farg1, farg2) +farg2 = predictstage +fresult = swigc_FARKodeSetStagePredictFn(farg1, farg2) swig_result = fresult end function -function FARKodeSetStabilityFn(arkode_mem, estab, estab_data) & +function FARKodeSetAdaptController(arkode_mem, c) & 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 +type(SUNAdaptController), target, intent(inout) :: c integer(C_INT) :: fresult type(C_PTR) :: farg1 -type(C_FUNPTR) :: farg2 -type(C_PTR) :: farg3 +type(C_PTR) :: farg2 farg1 = arkode_mem -farg2 = estab -farg3 = estab_data -fresult = swigc_FARKodeSetStabilityFn(farg1, farg2, farg3) +farg2 = c_loc(c) +fresult = swigc_FARKodeSetAdaptController(farg1, farg2) swig_result = fresult end function -function FARKodeSetMaxErrTestFails(arkode_mem, maxnef) & +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) :: maxnef +integer(C_INT), intent(in) :: adjust integer(C_INT) :: fresult type(C_PTR) :: farg1 integer(C_INT) :: farg2 farg1 = arkode_mem -farg2 = maxnef -fresult = swigc_FARKodeSetMaxErrTestFails(farg1, farg2) +farg2 = adjust +fresult = swigc_FARKodeSetAdaptivityAdjustment(farg1, farg2) swig_result = fresult end function -function FARKodeSetMaxNonlinIters(arkode_mem, maxcor) & +function FARKodeSetCFLFraction(arkode_mem, cfl_frac) & result(swig_result) use, intrinsic :: ISO_C_BINDING integer(C_INT) :: swig_result type(C_PTR) :: arkode_mem -integer(C_INT), intent(in) :: maxcor +real(C_DOUBLE), intent(in) :: cfl_frac integer(C_INT) :: fresult type(C_PTR) :: farg1 -integer(C_INT) :: farg2 +real(C_DOUBLE) :: farg2 farg1 = arkode_mem -farg2 = maxcor -fresult = swigc_FARKodeSetMaxNonlinIters(farg1, farg2) +farg2 = cfl_frac +fresult = swigc_FARKodeSetCFLFraction(farg1, farg2) swig_result = fresult end function -function FARKodeSetMaxConvFails(arkode_mem, maxncf) & +function FARKodeSetErrorBias(arkode_mem, bias) & result(swig_result) use, intrinsic :: ISO_C_BINDING integer(C_INT) :: swig_result type(C_PTR) :: arkode_mem -integer(C_INT), intent(in) :: maxncf +real(C_DOUBLE), intent(in) :: bias integer(C_INT) :: fresult type(C_PTR) :: farg1 -integer(C_INT) :: farg2 +real(C_DOUBLE) :: farg2 farg1 = arkode_mem -farg2 = maxncf -fresult = swigc_FARKodeSetMaxConvFails(farg1, farg2) +farg2 = bias +fresult = swigc_FARKodeSetErrorBias(farg1, farg2) swig_result = fresult end function -function FARKodeSetNonlinConvCoef(arkode_mem, nlscoef) & +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) :: nlscoef +real(C_DOUBLE), intent(in) :: safety integer(C_INT) :: fresult type(C_PTR) :: farg1 real(C_DOUBLE) :: farg2 farg1 = arkode_mem -farg2 = nlscoef -fresult = swigc_FARKodeSetNonlinConvCoef(farg1, farg2) +farg2 = safety +fresult = swigc_FARKodeSetSafetyFactor(farg1, farg2) swig_result = fresult end function -function FARKodeSetConstraints(arkode_mem, constraints) & +function FARKodeSetMaxGrowth(arkode_mem, mx_growth) & 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 +real(C_DOUBLE), intent(in) :: mx_growth integer(C_INT) :: fresult type(C_PTR) :: farg1 -type(C_PTR) :: farg2 +real(C_DOUBLE) :: farg2 farg1 = arkode_mem -farg2 = c_loc(constraints) -fresult = swigc_FARKodeSetConstraints(farg1, farg2) +farg2 = mx_growth +fresult = swigc_FARKodeSetMaxGrowth(farg1, farg2) swig_result = fresult end function -function FARKodeSetMaxNumSteps(arkode_mem, mxsteps) & +function FARKodeSetMinReduction(arkode_mem, eta_min) & result(swig_result) use, intrinsic :: ISO_C_BINDING integer(C_INT) :: swig_result type(C_PTR) :: arkode_mem -integer(C_LONG), intent(in) :: mxsteps +real(C_DOUBLE), intent(in) :: eta_min integer(C_INT) :: fresult type(C_PTR) :: farg1 -integer(C_LONG) :: farg2 +real(C_DOUBLE) :: farg2 farg1 = arkode_mem -farg2 = mxsteps -fresult = swigc_FARKodeSetMaxNumSteps(farg1, farg2) +farg2 = eta_min +fresult = swigc_FARKodeSetMinReduction(farg1, farg2) swig_result = fresult end function -function FARKodeSetMaxHnilWarns(arkode_mem, mxhnil) & +function FARKodeSetFixedStepBounds(arkode_mem, lb, ub) & result(swig_result) use, intrinsic :: ISO_C_BINDING integer(C_INT) :: swig_result type(C_PTR) :: arkode_mem -integer(C_INT), intent(in) :: mxhnil +real(C_DOUBLE), intent(in) :: lb +real(C_DOUBLE), intent(in) :: ub integer(C_INT) :: fresult type(C_PTR) :: farg1 -integer(C_INT) :: farg2 +real(C_DOUBLE) :: farg2 +real(C_DOUBLE) :: farg3 farg1 = arkode_mem -farg2 = mxhnil -fresult = swigc_FARKodeSetMaxHnilWarns(farg1, farg2) +farg2 = lb +farg3 = ub +fresult = swigc_FARKodeSetFixedStepBounds(farg1, farg2, farg3) swig_result = fresult end function -function FARKodeSetInitStep(arkode_mem, hin) & +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) :: hin +real(C_DOUBLE), intent(in) :: etamx1 integer(C_INT) :: fresult type(C_PTR) :: farg1 real(C_DOUBLE) :: farg2 farg1 = arkode_mem -farg2 = hin -fresult = swigc_FARKodeSetInitStep(farg1, farg2) +farg2 = etamx1 +fresult = swigc_FARKodeSetMaxFirstGrowth(farg1, farg2) swig_result = fresult end function -function FARKodeSetMinStep(arkode_mem, hmin) & +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) :: hmin +real(C_DOUBLE), intent(in) :: etamxf integer(C_INT) :: fresult type(C_PTR) :: farg1 real(C_DOUBLE) :: farg2 farg1 = arkode_mem -farg2 = hmin -fresult = swigc_FARKodeSetMinStep(farg1, farg2) +farg2 = etamxf +fresult = swigc_FARKodeSetMaxEFailGrowth(farg1, farg2) swig_result = fresult end function -function FARKodeSetMaxStep(arkode_mem, hmax) & +function FARKodeSetSmallNumEFails(arkode_mem, small_nef) & 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), intent(in) :: small_nef integer(C_INT) :: fresult type(C_PTR) :: farg1 -real(C_DOUBLE) :: farg2 +integer(C_INT) :: farg2 farg1 = arkode_mem -farg2 = hmax -fresult = swigc_FARKodeSetMaxStep(farg1, farg2) +farg2 = small_nef +fresult = swigc_FARKodeSetSmallNumEFails(farg1, farg2) swig_result = fresult end function -function FARKodeSetInterpolateStopTime(arkode_mem, interp) & +function FARKodeSetMaxCFailGrowth(arkode_mem, etacf) & result(swig_result) use, intrinsic :: ISO_C_BINDING integer(C_INT) :: swig_result type(C_PTR) :: arkode_mem -integer(C_INT), intent(in) :: interp +real(C_DOUBLE), intent(in) :: etacf integer(C_INT) :: fresult type(C_PTR) :: farg1 -integer(C_INT) :: farg2 +real(C_DOUBLE) :: farg2 farg1 = arkode_mem -farg2 = interp -fresult = swigc_FARKodeSetInterpolateStopTime(farg1, farg2) +farg2 = etacf +fresult = swigc_FARKodeSetMaxCFailGrowth(farg1, farg2) swig_result = fresult end function -function FARKodeSetStopTime(arkode_mem, tstop) & +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 -real(C_DOUBLE), intent(in) :: tstop +type(C_FUNPTR), intent(in), value :: estab +type(C_PTR) :: estab_data integer(C_INT) :: fresult type(C_PTR) :: farg1 -real(C_DOUBLE) :: farg2 +type(C_FUNPTR) :: farg2 +type(C_PTR) :: farg3 farg1 = arkode_mem -farg2 = tstop -fresult = swigc_FARKodeSetStopTime(farg1, farg2) +farg2 = estab +farg3 = estab_data +fresult = swigc_FARKodeSetStabilityFn(farg1, farg2, farg3) swig_result = fresult end function -function FARKodeClearStopTime(arkode_mem) & +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 -fresult = swigc_FARKodeClearStopTime(farg1) +farg2 = maxnef +fresult = swigc_FARKodeSetMaxErrTestFails(farg1, farg2) swig_result = fresult end function -function FARKodeSetFixedStep(arkode_mem, hfixed) & +function FARKodeSetConstraints(arkode_mem, constraints) & result(swig_result) use, intrinsic :: ISO_C_BINDING integer(C_INT) :: swig_result type(C_PTR) :: arkode_mem -real(C_DOUBLE), intent(in) :: hfixed +type(N_Vector), target, intent(inout) :: constraints integer(C_INT) :: fresult type(C_PTR) :: farg1 -real(C_DOUBLE) :: farg2 +type(C_PTR) :: farg2 farg1 = arkode_mem -farg2 = hfixed -fresult = swigc_FARKodeSetFixedStep(farg1, farg2) +farg2 = c_loc(constraints) +fresult = swigc_FARKodeSetConstraints(farg1, farg2) swig_result = fresult end function -function FARKodeSetMaxNumConstrFails(arkode_mem, maxfails) & +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) :: maxfails +integer(C_INT), intent(in) :: mxhnil integer(C_INT) :: fresult type(C_PTR) :: farg1 integer(C_INT) :: farg2 farg1 = arkode_mem -farg2 = maxfails -fresult = swigc_FARKodeSetMaxNumConstrFails(farg1, farg2) +farg2 = mxhnil +fresult = swigc_FARKodeSetMaxHnilWarns(farg1, farg2) swig_result = fresult end function -function FARKodeSetUserData(arkode_mem, user_data) & +function FARKodeSetInitStep(arkode_mem, hin) & result(swig_result) use, intrinsic :: ISO_C_BINDING integer(C_INT) :: swig_result type(C_PTR) :: arkode_mem -type(C_PTR) :: user_data +real(C_DOUBLE), intent(in) :: hin integer(C_INT) :: fresult type(C_PTR) :: farg1 -type(C_PTR) :: farg2 +real(C_DOUBLE) :: farg2 farg1 = arkode_mem -farg2 = user_data -fresult = swigc_FARKodeSetUserData(farg1, farg2) +farg2 = hin +fresult = swigc_FARKodeSetInitStep(farg1, farg2) swig_result = fresult end function -function FARKodeSetPostprocessStepFn(arkode_mem, processstep) & +function FARKodeSetMinStep(arkode_mem, hmin) & 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 +real(C_DOUBLE), intent(in) :: hmin integer(C_INT) :: fresult type(C_PTR) :: farg1 -type(C_FUNPTR) :: farg2 +real(C_DOUBLE) :: farg2 farg1 = arkode_mem -farg2 = processstep -fresult = swigc_FARKodeSetPostprocessStepFn(farg1, farg2) +farg2 = hmin +fresult = swigc_FARKodeSetMinStep(farg1, farg2) swig_result = fresult end function -function FARKodeSetPostprocessStageFn(arkode_mem, processstage) & +function FARKodeSetMaxStep(arkode_mem, hmax) & 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 +real(C_DOUBLE), intent(in) :: hmax integer(C_INT) :: fresult type(C_PTR) :: farg1 -type(C_FUNPTR) :: farg2 +real(C_DOUBLE) :: farg2 farg1 = arkode_mem -farg2 = processstage -fresult = swigc_FARKodeSetPostprocessStageFn(farg1, farg2) +farg2 = hmax +fresult = swigc_FARKodeSetMaxStep(farg1, farg2) swig_result = fresult end function -function FARKodeSetStagePredictFn(arkode_mem, predictstage) & +function FARKodeSetMaxNumConstrFails(arkode_mem, maxfails) & 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), intent(in) :: maxfails integer(C_INT) :: fresult type(C_PTR) :: farg1 -type(C_FUNPTR) :: farg2 +integer(C_INT) :: farg2 farg1 = arkode_mem -farg2 = predictstage -fresult = swigc_FARKodeSetStagePredictFn(farg1, farg2) +farg2 = maxfails +fresult = swigc_FARKodeSetMaxNumConstrFails(farg1, farg2) swig_result = fresult end function @@ -3327,38 +3334,6 @@ function FARKodeComputeState(arkode_mem, zcor, z) & 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 FARKodeGetNumStepAttempts(arkode_mem, step_attempts) & result(swig_result) use, intrinsic :: ISO_C_BINDING @@ -3375,278 +3350,293 @@ function FARKodeGetNumStepAttempts(arkode_mem, step_attempts) & 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 FARKodeGetNumErrTestFails(arkode_mem, netfails) & +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) :: netfails +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(netfails(1)) -fresult = swigc_FARKodeGetNumErrTestFails(farg1, farg2) +farg2 = c_loc(lenrw(1)) +farg3 = c_loc(leniw(1)) +fresult = swigc_FARKodeGetWorkSpace(farg1, farg2, farg3) swig_result = fresult end function -function FARKodeGetEstLocalErrors(arkode_mem, ele) & +function FARKodeGetNumSteps(arkode_mem, nsteps) & 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_LONG), dimension(*), target, intent(inout) :: nsteps integer(C_INT) :: fresult type(C_PTR) :: farg1 type(C_PTR) :: farg2 farg1 = arkode_mem -farg2 = c_loc(ele) -fresult = swigc_FARKodeGetEstLocalErrors(farg1, farg2) +farg2 = c_loc(nsteps(1)) +fresult = swigc_FARKodeGetNumSteps(farg1, farg2) swig_result = fresult end function -function FARKodeGetWorkSpace(arkode_mem, lenrw, leniw) & +function FARKodeGetLastStep(arkode_mem, hlast) & 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 +real(C_DOUBLE), dimension(*), target, intent(inout) :: hlast 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) +farg2 = c_loc(hlast(1)) +fresult = swigc_FARKodeGetLastStep(farg1, farg2) swig_result = fresult end function -function FARKodeGetNumSteps(arkode_mem, nsteps) & +function FARKodeGetCurrentStep(arkode_mem, hcur) & 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) :: hcur 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) +farg2 = c_loc(hcur(1)) +fresult = swigc_FARKodeGetCurrentStep(farg1, farg2) swig_result = fresult end function -function FARKodeGetActualInitStep(arkode_mem, hinused) & +function FARKodeGetErrWeights(arkode_mem, eweight) & 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 +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(hinused(1)) -fresult = swigc_FARKodeGetActualInitStep(farg1, farg2) +farg2 = c_loc(eweight) +fresult = swigc_FARKodeGetErrWeights(farg1, farg2) swig_result = fresult end function -function FARKodeGetLastStep(arkode_mem, hlast) & +function FARKodeGetNumGEvals(arkode_mem, ngevals) & 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_LONG), dimension(*), target, intent(inout) :: ngevals 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) +farg2 = c_loc(ngevals(1)) +fresult = swigc_FARKodeGetNumGEvals(farg1, farg2) swig_result = fresult end function -function FARKodeGetCurrentStep(arkode_mem, hcur) & +function FARKodeGetRootInfo(arkode_mem, rootsfound) & 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), dimension(*), target, intent(inout) :: rootsfound 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) +farg2 = c_loc(rootsfound(1)) +fresult = swigc_FARKodeGetRootInfo(farg1, farg2) swig_result = fresult end function -function FARKodeGetCurrentTime(arkode_mem, tcur) & +function FARKodeGetUserData(arkode_mem, 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), target, intent(inout) :: user_data 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) +farg2 = c_loc(user_data) +fresult = swigc_FARKodeGetUserData(farg1, farg2) swig_result = fresult end function -function FARKodeGetCurrentState(arkode_mem, state) & +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) :: state +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 = state -fresult = swigc_FARKodeGetCurrentState(farg1, farg2) +farg2 = outfile +farg3 = fmt +fresult = swigc_FARKodePrintAllStats(farg1, farg2, farg3) swig_result = fresult end function -function FARKodeGetCurrentGamma(arkode_mem, gamma) & + +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 -real(C_DOUBLE), dimension(*), target, intent(inout) :: gamma +type(C_PTR) :: fp 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) +farg2 = fp +fresult = swigc_FARKodeWriteParameters(farg1, farg2) swig_result = fresult end function -function FARKodeGetCurrentMassMatrix(arkode_mem, m) & +function FARKodeGetNumExpSteps(arkode_mem, expsteps) & 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_LONG), dimension(*), target, intent(inout) :: expsteps integer(C_INT) :: fresult type(C_PTR) :: farg1 type(C_PTR) :: farg2 farg1 = arkode_mem -farg2 = c_loc(m) -fresult = swigc_FARKodeGetCurrentMassMatrix(farg1, farg2) +farg2 = c_loc(expsteps(1)) +fresult = swigc_FARKodeGetNumExpSteps(farg1, farg2) swig_result = fresult end function -function FARKodeGetTolScaleFactor(arkode_mem, tolsfac) & +function FARKodeGetNumAccSteps(arkode_mem, accsteps) & 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_LONG), dimension(*), target, intent(inout) :: accsteps 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) +farg2 = c_loc(accsteps(1)) +fresult = swigc_FARKodeGetNumAccSteps(farg1, farg2) swig_result = fresult end function -function FARKodeGetErrWeights(arkode_mem, eweight) & +function FARKodeGetNumErrTestFails(arkode_mem, netfails) & 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_LONG), dimension(*), target, intent(inout) :: netfails integer(C_INT) :: fresult type(C_PTR) :: farg1 type(C_PTR) :: farg2 farg1 = arkode_mem -farg2 = c_loc(eweight) -fresult = swigc_FARKodeGetErrWeights(farg1, farg2) +farg2 = c_loc(netfails(1)) +fresult = swigc_FARKodeGetNumErrTestFails(farg1, farg2) swig_result = fresult end function -function FARKodeGetResWeights(arkode_mem, rweight) & +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) :: rweight +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(rweight) -fresult = swigc_FARKodeGetResWeights(farg1, farg2) +farg2 = c_loc(ele) +fresult = swigc_FARKodeGetEstLocalErrors(farg1, farg2) swig_result = fresult end function -function FARKodeGetNumGEvals(arkode_mem, ngevals) & +function FARKodeGetActualInitStep(arkode_mem, hinused) & 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 +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(ngevals(1)) -fresult = swigc_FARKodeGetNumGEvals(farg1, farg2) +farg2 = c_loc(hinused(1)) +fresult = swigc_FARKodeGetActualInitStep(farg1, farg2) swig_result = fresult end function -function FARKodeGetRootInfo(arkode_mem, rootsfound) & +function FARKodeGetTolScaleFactor(arkode_mem, tolsfac) & 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 +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(rootsfound(1)) -fresult = swigc_FARKodeGetRootInfo(farg1, farg2) +farg2 = c_loc(tolsfac(1)) +fresult = swigc_FARKodeGetTolScaleFactor(farg1, farg2) swig_result = fresult end function @@ -3666,110 +3656,95 @@ function FARKodeGetNumConstrFails(arkode_mem, nconstrfails) & swig_result = fresult end function -function FARKodeGetUserData(arkode_mem, user_data) & +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 -type(C_PTR), target, intent(inout) :: user_data +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(user_data) -fresult = swigc_FARKodeGetUserData(farg1, farg2) +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 FARKodePrintAllStats(arkode_mem, outfile, fmt) & +function FARKodeGetNumLinSolvSetups(arkode_mem, nlinsetups) & 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_LONG), dimension(*), target, intent(inout) :: nlinsetups 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) +farg2 = c_loc(nlinsetups(1)) +fresult = swigc_FARKodeGetNumLinSolvSetups(farg1, farg2) 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) & +function FARKodeGetCurrentTime(arkode_mem, tcur) & 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 +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 = flag -fresult = swigc_FARKodeGetReturnFlagName(farg1) -call SWIG_chararray_to_string(fresult, swig_result) -if (.false.) call SWIG_free(fresult%data) +farg1 = arkode_mem +farg2 = c_loc(tcur(1)) +fresult = swigc_FARKodeGetCurrentTime(farg1, farg2) +swig_result = fresult end function -function FARKodeWriteParameters(arkode_mem, fp) & +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) :: fp +type(C_PTR) :: state integer(C_INT) :: fresult type(C_PTR) :: farg1 type(C_PTR) :: farg2 farg1 = arkode_mem -farg2 = fp -fresult = swigc_FARKodeWriteParameters(farg1, farg2) +farg2 = state +fresult = swigc_FARKodeGetCurrentState(farg1, farg2) swig_result = fresult end function -function FARKodeGetStepStats(arkode_mem, nsteps, hinused, hlast, hcur, tcur) & +function FARKodeGetCurrentGamma(arkode_mem, gamma) & 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 +real(C_DOUBLE), dimension(*), target, intent(inout) :: gamma 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) +farg2 = c_loc(gamma(1)) +fresult = swigc_FARKodeGetCurrentGamma(farg1, farg2) swig_result = fresult end function @@ -4085,6 +4060,52 @@ function FARKodeGetLastLinFlag(arkode_mem, flag) & 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 @@ -4264,20 +4285,6 @@ function FARKodeGetLastMassFlag(arkode_mem, flag) & 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 - subroutine FARKodeFree(arkode_mem) use, intrinsic :: ISO_C_BINDING type(C_PTR), target, intent(inout) :: arkode_mem diff --git a/src/arkode/fmod_int32/farkode_mristep_mod.c b/src/arkode/fmod_int32/farkode_mristep_mod.c index 5656b91a46..35721938c4 100644 --- a/src/arkode/fmod_int32/farkode_mristep_mod.c +++ b/src/arkode/fmod_int32/farkode_mristep_mod.c @@ -651,26 +651,6 @@ SWIGEXPORT void * _wrap_FMRIStepCreate(ARKRhsFn farg1, ARKRhsFn farg2, double co } -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_FMRIStepReInit(void *farg1, ARKRhsFn farg2, ARKRhsFn farg3, double const *farg4, N_Vector farg5) { int fresult ; void *arg1 = (void *) 0 ; @@ -691,6 +671,244 @@ SWIGEXPORT int _wrap_FMRIStepReInit(void *farg1, ARKRhsFn farg2, ARKRhsFn farg3, } +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 ; @@ -907,20 +1125,6 @@ SWIGEXPORT int _wrap_FMRIStepSetNonlinear(void *farg1) { } -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_FMRIStepSetMaxNumSteps(void *farg1, long const *farg2) { int fresult ; void *arg1 = (void *) 0 ; @@ -1047,29 +1251,29 @@ SWIGEXPORT int _wrap_FMRIStepSetMaxHnilWarns(void *farg1, int const *farg2) { } -SWIGEXPORT int _wrap_FMRIStepSetStopTime(void *farg1, double const *farg2) { +SWIGEXPORT int _wrap_FMRIStepSetInterpolateStopTime(void *farg1, int const *farg2) { int fresult ; void *arg1 = (void *) 0 ; - sunrealtype arg2 ; + int arg2 ; int result; arg1 = (void *)(farg1); - arg2 = (sunrealtype)(*farg2); - result = (int)MRIStepSetStopTime(arg1,arg2); + arg2 = (int)(*farg2); + result = (int)MRIStepSetInterpolateStopTime(arg1,arg2); fresult = (int)(result); return fresult; } -SWIGEXPORT int _wrap_FMRIStepSetInterpolateStopTime(void *farg1, int const *farg2) { +SWIGEXPORT int _wrap_FMRIStepSetStopTime(void *farg1, double const *farg2) { int fresult ; void *arg1 = (void *) 0 ; - int arg2 ; + sunrealtype arg2 ; int result; arg1 = (void *)(farg1); - arg2 = (int)(*farg2); - result = (int)MRIStepSetInterpolateStopTime(arg1,arg2); + arg2 = (sunrealtype)(*farg2); + result = (int)MRIStepSetStopTime(arg1,arg2); fresult = (int)(result); return fresult; } @@ -1169,34 +1373,6 @@ SWIGEXPORT int _wrap_FMRIStepSetPostprocessStageFn(void *farg1, ARKPostProcessFn } -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_FMRIStepSetStagePredictFn(void *farg1, ARKStagePredictFn farg2) { int fresult ; void *arg1 = (void *) 0 ; @@ -1409,22 +1585,6 @@ SWIGEXPORT int _wrap_FMRIStepComputeState(void *farg1, N_Vector farg2, N_Vector } -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_FMRIStepGetNumLinSolvSetups(void *farg1, long *farg2) { int fresult ; void *arg1 = (void *) 0 ; @@ -1439,20 +1599,6 @@ SWIGEXPORT int _wrap_FMRIStepGetNumLinSolvSetups(void *farg1, long *farg2) { } -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_FMRIStepGetWorkSpace(void *farg1, long *farg2, long *farg3) { int fresult ; void *arg1 = (void *) 0 ; @@ -1595,20 +1741,6 @@ SWIGEXPORT int _wrap_FMRIStepGetRootInfo(void *farg1, int *farg2) { } -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_FMRIStepGetUserData(void *farg1, void *farg2) { int fresult ; void *arg1 = (void *) 0 ; @@ -1979,136 +2111,4 @@ SWIGEXPORT void _wrap_FMRIStepPrintMem(void *farg1, void *farg2) { } -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; -} - - diff --git a/src/arkode/fmod_int32/farkode_mristep_mod.f90 b/src/arkode/fmod_int32/farkode_mristep_mod.f90 index 9171ad7488..74a3de5637 100644 --- a/src/arkode/fmod_int32/farkode_mristep_mod.f90 +++ b/src/arkode/fmod_int32/farkode_mristep_mod.f90 @@ -47,18 +47,35 @@ module farkode_mristep_mod enumerator :: ARKODE_IMEX_MRI_GARK3a enumerator :: ARKODE_IMEX_MRI_GARK3b enumerator :: ARKODE_IMEX_MRI_GARK4 - enumerator :: ARKODE_MAX_MRI_NUM = 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_MAX_MRI_NUM - integer(C_INT), parameter, public :: MRISTEP_DEFAULT_3 = ARKODE_MIS_KW3 + 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 @@ -108,8 +125,23 @@ module farkode_mristep_mod public :: FMRIStepCoupling_Free public :: FMRIStepCoupling_Write public :: FMRIStepCreate - public :: FMRIStepResize 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 @@ -125,7 +157,6 @@ module farkode_mristep_mod public :: FMRIStepSetNlsRhsFn public :: FMRIStepSetLinear public :: FMRIStepSetNonlinear - public :: FMRIStepSetCoupling public :: FMRIStepSetMaxNumSteps public :: FMRIStepSetNonlinCRDown public :: FMRIStepSetNonlinRDiv @@ -135,8 +166,8 @@ module farkode_mristep_mod public :: FMRIStepSetMaxNonlinIters public :: FMRIStepSetNonlinConvCoef public :: FMRIStepSetMaxHnilWarns - public :: FMRIStepSetStopTime public :: FMRIStepSetInterpolateStopTime + public :: FMRIStepSetStopTime public :: FMRIStepClearStopTime public :: FMRIStepSetFixedStep public :: FMRIStepSetRootDirection @@ -144,8 +175,6 @@ module farkode_mristep_mod public :: FMRIStepSetUserData public :: FMRIStepSetPostprocessStepFn public :: FMRIStepSetPostprocessStageFn - public :: FMRIStepSetPreInnerFn - public :: FMRIStepSetPostInnerFn public :: FMRIStepSetStagePredictFn public :: FMRIStepSetDeduceImplicitRhs public :: FMRIStepSetJacFn @@ -160,9 +189,7 @@ module farkode_mristep_mod public :: FMRIStepEvolve public :: FMRIStepGetDky public :: FMRIStepComputeState - public :: FMRIStepGetNumRhsEvals public :: FMRIStepGetNumLinSolvSetups - public :: FMRIStepGetCurrentCoupling public :: FMRIStepGetWorkSpace public :: FMRIStepGetNumSteps public :: FMRIStepGetLastStep @@ -173,7 +200,6 @@ module farkode_mristep_mod public :: FMRIStepGetErrWeights public :: FMRIStepGetNumGEvals public :: FMRIStepGetRootInfo - public :: FMRIStepGetLastInnerStepFlag public :: FMRIStepGetUserData public :: FMRIStepPrintAllStats public :: FMRIStepGetReturnFlagName @@ -200,15 +226,6 @@ module farkode_mristep_mod public :: FMRIStepGetLinReturnFlagName public :: FMRIStepFree public :: FMRIStepPrintMem - 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 ! WRAPPER DECLARATIONS interface @@ -447,26 +464,165 @@ function swigc_FMRIStepCreate(farg1, farg2, farg3, farg4, farg5, farg6) & type(C_PTR) :: fresult end function -function swigc_FMRIStepResize(farg1, farg2, farg3, farg4, farg5) & -bind(C, name="_wrap_FMRIStepResize") & +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_PTR), value :: farg2 -real(C_DOUBLE), intent(in) :: farg3 -type(C_FUNPTR), value :: farg4 +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_FMRIStepReInit(farg1, farg2, farg3, farg4, farg5) & -bind(C, name="_wrap_FMRIStepReInit") & +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 -type(C_FUNPTR), value :: farg3 -real(C_DOUBLE), intent(in) :: farg4 +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 @@ -609,15 +765,6 @@ function swigc_FMRIStepSetNonlinear(farg1) & 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_FMRIStepSetMaxNumSteps(farg1, farg2) & bind(C, name="_wrap_FMRIStepSetMaxNumSteps") & result(fresult) @@ -699,21 +846,21 @@ function swigc_FMRIStepSetMaxHnilWarns(farg1, farg2) & integer(C_INT) :: fresult end function -function swigc_FMRIStepSetStopTime(farg1, farg2) & -bind(C, name="_wrap_FMRIStepSetStopTime") & +function swigc_FMRIStepSetInterpolateStopTime(farg1, farg2) & +bind(C, name="_wrap_FMRIStepSetInterpolateStopTime") & result(fresult) use, intrinsic :: ISO_C_BINDING type(C_PTR), value :: farg1 -real(C_DOUBLE), intent(in) :: farg2 +integer(C_INT), intent(in) :: farg2 integer(C_INT) :: fresult end function -function swigc_FMRIStepSetInterpolateStopTime(farg1, farg2) & -bind(C, name="_wrap_FMRIStepSetInterpolateStopTime") & +function swigc_FMRIStepSetStopTime(farg1, farg2) & +bind(C, name="_wrap_FMRIStepSetStopTime") & result(fresult) use, intrinsic :: ISO_C_BINDING type(C_PTR), value :: farg1 -integer(C_INT), intent(in) :: farg2 +real(C_DOUBLE), intent(in) :: farg2 integer(C_INT) :: fresult end function @@ -778,24 +925,6 @@ function swigc_FMRIStepSetPostprocessStageFn(farg1, 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_FMRIStepSetStagePredictFn(farg1, farg2) & bind(C, name="_wrap_FMRIStepSetStagePredictFn") & result(fresult) @@ -930,16 +1059,6 @@ function swigc_FMRIStepComputeState(farg1, farg2, farg3) & 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_FMRIStepGetNumLinSolvSetups(farg1, farg2) & bind(C, name="_wrap_FMRIStepGetNumLinSolvSetups") & result(fresult) @@ -949,15 +1068,6 @@ function swigc_FMRIStepGetNumLinSolvSetups(farg1, farg2) & 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_FMRIStepGetWorkSpace(farg1, farg2, farg3) & bind(C, name="_wrap_FMRIStepGetWorkSpace") & result(fresult) @@ -1049,17 +1159,8 @@ function swigc_FMRIStepGetRootInfo(farg1, 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_FMRIStepGetUserData(farg1, farg2) & -bind(C, name="_wrap_FMRIStepGetUserData") & +function swigc_FMRIStepGetUserData(farg1, farg2) & +bind(C, name="_wrap_FMRIStepGetUserData") & result(fresult) use, intrinsic :: ISO_C_BINDING type(C_PTR), value :: farg1 @@ -1301,90 +1402,6 @@ subroutine swigc_FMRIStepPrintMem(farg1, farg2) & type(C_PTR), value :: farg2 end subroutine -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 - end interface @@ -1793,53 +1810,305 @@ function FMRIStepCreate(fse, fsi, t0, y0, stepper, sunctx) & swig_result = fresult end function -function FMRIStepResize(arkode_mem, ynew, t0, resize, resize_data) & +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(N_Vector), target, intent(inout) :: ynew +type(C_FUNPTR), intent(in), value :: fse +type(C_FUNPTR), intent(in), value :: fsi real(C_DOUBLE), intent(in) :: t0 -type(C_FUNPTR), intent(in), value :: resize -type(C_PTR) :: resize_data +type(N_Vector), target, intent(inout) :: y0 integer(C_INT) :: fresult type(C_PTR) :: farg1 -type(C_PTR) :: farg2 -real(C_DOUBLE) :: farg3 -type(C_FUNPTR) :: farg4 +type(C_FUNPTR) :: farg2 +type(C_FUNPTR) :: farg3 +real(C_DOUBLE) :: 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) +farg2 = fse +farg3 = fsi +farg4 = t0 +farg5 = c_loc(y0) +fresult = swigc_FMRIStepReInit(farg1, farg2, farg3, farg4, farg5) swig_result = fresult end function -function FMRIStepReInit(arkode_mem, fse, fsi, t0, y0) & +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_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) :: 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 -type(C_FUNPTR) :: farg3 -real(C_DOUBLE) :: farg4 + +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 = fse -farg3 = fsi -farg4 = t0 -farg5 = c_loc(y0) -fresult = swigc_FMRIStepReInit(farg1, farg2, farg3, farg4, farg5) +farg2 = c_loc(ynew) +farg3 = t0 +farg4 = resize +farg5 = resize_data +fresult = swigc_FMRIStepResize(farg1, farg2, farg3, farg4, farg5) swig_result = fresult end function @@ -2092,22 +2361,6 @@ function FMRIStepSetNonlinear(arkode_mem) & 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 FMRIStepSetMaxNumSteps(arkode_mem, mxsteps) & result(swig_result) use, intrinsic :: ISO_C_BINDING @@ -2252,35 +2505,35 @@ function FMRIStepSetMaxHnilWarns(arkode_mem, mxhnil) & swig_result = fresult end function -function FMRIStepSetStopTime(arkode_mem, tstop) & +function FMRIStepSetInterpolateStopTime(arkode_mem, interp) & 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), intent(in) :: interp integer(C_INT) :: fresult type(C_PTR) :: farg1 -real(C_DOUBLE) :: farg2 +integer(C_INT) :: farg2 farg1 = arkode_mem -farg2 = tstop -fresult = swigc_FMRIStepSetStopTime(farg1, farg2) +farg2 = interp +fresult = swigc_FMRIStepSetInterpolateStopTime(farg1, farg2) swig_result = fresult end function -function FMRIStepSetInterpolateStopTime(arkode_mem, interp) & +function FMRIStepSetStopTime(arkode_mem, tstop) & result(swig_result) use, intrinsic :: ISO_C_BINDING integer(C_INT) :: swig_result type(C_PTR) :: arkode_mem -integer(C_INT), intent(in) :: interp +real(C_DOUBLE), intent(in) :: tstop integer(C_INT) :: fresult type(C_PTR) :: farg1 -integer(C_INT) :: farg2 +real(C_DOUBLE) :: farg2 farg1 = arkode_mem -farg2 = interp -fresult = swigc_FMRIStepSetInterpolateStopTime(farg1, farg2) +farg2 = tstop +fresult = swigc_FMRIStepSetStopTime(farg1, farg2) swig_result = fresult end function @@ -2390,38 +2643,6 @@ function FMRIStepSetPostprocessStageFn(arkode_mem, processstage) & 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 FMRIStepSetStagePredictFn(arkode_mem, predictstage) & result(swig_result) use, intrinsic :: ISO_C_BINDING @@ -2670,25 +2891,6 @@ function FMRIStepComputeState(arkode_mem, zcor, z) & 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 FMRIStepGetNumLinSolvSetups(arkode_mem, nlinsetups) & result(swig_result) use, intrinsic :: ISO_C_BINDING @@ -2705,22 +2907,6 @@ function FMRIStepGetNumLinSolvSetups(arkode_mem, nlinsetups) & 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 FMRIStepGetWorkSpace(arkode_mem, lenrw, leniw) & result(swig_result) use, intrinsic :: ISO_C_BINDING @@ -2884,22 +3070,6 @@ function FMRIStepGetRootInfo(arkode_mem, rootsfound) & 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 FMRIStepGetUserData(arkode_mem, user_data) & result(swig_result) use, intrinsic :: ISO_C_BINDING @@ -3342,158 +3512,5 @@ subroutine FMRIStepPrintMem(arkode_mem, outfile) call swigc_FMRIStepPrintMem(farg1, farg2) end subroutine -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 - end module diff --git a/src/arkode/fmod_int32/farkode_sprkstep_mod.c b/src/arkode/fmod_int32/farkode_sprkstep_mod.c index d5858a372a..28cfb297d4 100644 --- a/src/arkode/fmod_int32/farkode_sprkstep_mod.c +++ b/src/arkode/fmod_int32/farkode_sprkstep_mod.c @@ -273,87 +273,143 @@ SWIGEXPORT int _wrap_FSPRKStepReInit(void *farg1, ARKRhsFn farg2, ARKRhsFn farg3 } -SWIGEXPORT int _wrap_FSPRKStepReset(void *farg1, double const *farg2, N_Vector farg3) { +SWIGEXPORT int _wrap_FSPRKStepSetUseCompensatedSums(void *farg1, int const *farg2) { int fresult ; void *arg1 = (void *) 0 ; - sunrealtype arg2 ; - N_Vector arg3 = (N_Vector) 0 ; + int arg2 ; int result; arg1 = (void *)(farg1); - arg2 = (sunrealtype)(*farg2); - arg3 = (N_Vector)(farg3); - result = (int)SPRKStepReset(arg1,arg2,arg3); + arg2 = (int)(*farg2); + result = (int)SPRKStepSetUseCompensatedSums(arg1,arg2); fresult = (int)(result); return fresult; } -SWIGEXPORT int _wrap_FSPRKStepRootInit(void *farg1, int const *farg2, ARKRootFn farg3) { +SWIGEXPORT int _wrap_FSPRKStepSetMethod(void *farg1, void *farg2) { int fresult ; void *arg1 = (void *) 0 ; - int arg2 ; - ARKRootFn arg3 = (ARKRootFn) 0 ; + ARKodeSPRKTable arg2 = (ARKodeSPRKTable) 0 ; int result; arg1 = (void *)(farg1); - arg2 = (int)(*farg2); - arg3 = (ARKRootFn)(farg3); - result = (int)SPRKStepRootInit(arg1,arg2,arg3); + arg2 = (ARKodeSPRKTable)(farg2); + result = (int)SPRKStepSetMethod(arg1,arg2); fresult = (int)(result); return fresult; } -SWIGEXPORT int _wrap_FSPRKStepSetDefaults(void *farg1) { +SWIGEXPORT int _wrap_FSPRKStepSetMethodName(void *farg1, SwigArrayWrapper *farg2) { int fresult ; void *arg1 = (void *) 0 ; + char *arg2 = (char *) 0 ; int result; arg1 = (void *)(farg1); - result = (int)SPRKStepSetDefaults(arg1); + arg2 = (char *)(farg2->data); + result = (int)SPRKStepSetMethodName(arg1,(char const *)arg2); fresult = (int)(result); return fresult; } -SWIGEXPORT int _wrap_FSPRKStepSetUseCompensatedSums(void *farg1, int const *farg2) { +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); - result = (int)SPRKStepSetUseCompensatedSums(arg1,arg2); + arg3 = (ARKRootFn)(farg3); + result = (int)SPRKStepRootInit(arg1,arg2,arg3); fresult = (int)(result); return fresult; } -SWIGEXPORT int _wrap_FSPRKStepSetMethod(void *farg1, void *farg2) { +SWIGEXPORT int _wrap_FSPRKStepSetRootDirection(void *farg1, int *farg2) { int fresult ; void *arg1 = (void *) 0 ; - ARKodeSPRKTable arg2 = (ARKodeSPRKTable) 0 ; + int *arg2 = (int *) 0 ; int result; arg1 = (void *)(farg1); - arg2 = (ARKodeSPRKTable)(farg2); - result = (int)SPRKStepSetMethod(arg1,arg2); + arg2 = (int *)(farg2); + result = (int)SPRKStepSetRootDirection(arg1,arg2); fresult = (int)(result); return fresult; } -SWIGEXPORT int _wrap_FSPRKStepSetMethodName(void *farg1, SwigArrayWrapper *farg2) { +SWIGEXPORT int _wrap_FSPRKStepSetNoInactiveRootWarn(void *farg1) { 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); + 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; } @@ -536,20 +592,6 @@ SWIGEXPORT SwigArrayWrapper _wrap_FSPRKStepGetReturnFlagName(long const *farg1) } -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_FSPRKStepGetCurrentState(void *farg1, void *farg2) { int fresult ; void *arg1 = (void *) 0 ; @@ -606,22 +648,6 @@ SWIGEXPORT int _wrap_FSPRKStepGetLastStep(void *farg1, double *farg2) { } -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_FSPRKStepGetNumStepAttempts(void *farg1, long *farg2) { int fresult ; void *arg1 = (void *) 0 ; diff --git a/src/arkode/fmod_int32/farkode_sprkstep_mod.f90 b/src/arkode/fmod_int32/farkode_sprkstep_mod.f90 index a6cc16db19..82217e7b1b 100644 --- a/src/arkode/fmod_int32/farkode_sprkstep_mod.f90 +++ b/src/arkode/fmod_int32/farkode_sprkstep_mod.f90 @@ -36,9 +36,6 @@ module farkode_sprkstep_mod integer(C_INT), parameter, public :: SPRKSTEP_DEFAULT_10 = ARKODE_SPRK_SOFRONIOU_10_36 public :: FSPRKStepCreate public :: FSPRKStepReInit - public :: FSPRKStepReset - public :: FSPRKStepRootInit - public :: FSPRKStepSetDefaults public :: FSPRKStepSetUseCompensatedSums public :: FSPRKStepSetMethod type, bind(C) :: SwigArrayWrapper @@ -46,6 +43,13 @@ module farkode_sprkstep_mod 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 @@ -58,12 +62,10 @@ module farkode_sprkstep_mod public :: FSPRKStepEvolve public :: FSPRKStepGetDky public :: FSPRKStepGetReturnFlagName - public :: FSPRKStepGetCurrentMethod public :: FSPRKStepGetCurrentState public :: FSPRKStepGetCurrentStep public :: FSPRKStepGetCurrentTime public :: FSPRKStepGetLastStep - public :: FSPRKStepGetNumRhsEvals public :: FSPRKStepGetNumStepAttempts public :: FSPRKStepGetNumSteps public :: FSPRKStepGetRootInfo @@ -99,45 +101,75 @@ function swigc_FSPRKStepReInit(farg1, farg2, farg3, farg4, farg5) & integer(C_INT) :: fresult end function -function swigc_FSPRKStepReset(farg1, farg2, farg3) & -bind(C, name="_wrap_FSPRKStepReset") & +function swigc_FSPRKStepSetUseCompensatedSums(farg1, farg2) & +bind(C, name="_wrap_FSPRKStepSetUseCompensatedSums") & 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), intent(in) :: farg2 integer(C_INT) :: fresult end function -function swigc_FSPRKStepRootInit(farg1, farg2, farg3) & -bind(C, name="_wrap_FSPRKStepRootInit") & +function swigc_FSPRKStepSetMethod(farg1, farg2) & +bind(C, name="_wrap_FSPRKStepSetMethod") & 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 :: farg2 integer(C_INT) :: fresult end function -function swigc_FSPRKStepSetDefaults(farg1) & -bind(C, name="_wrap_FSPRKStepSetDefaults") & +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_FSPRKStepSetUseCompensatedSums(farg1, farg2) & -bind(C, name="_wrap_FSPRKStepSetUseCompensatedSums") & +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_FSPRKStepSetMethod(farg1, farg2) & -bind(C, name="_wrap_FSPRKStepSetMethod") & +function swigc_FSPRKStepSetRootDirection(farg1, farg2) & +bind(C, name="_wrap_FSPRKStepSetRootDirection") & result(fresult) use, intrinsic :: ISO_C_BINDING type(C_PTR), value :: farg1 @@ -145,13 +177,19 @@ function swigc_FSPRKStepSetMethod(farg1, farg2) & integer(C_INT) :: fresult end function -function swigc_FSPRKStepSetMethodName(farg1, farg2) & -bind(C, name="_wrap_FSPRKStepSetMethodName") & +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 -import :: swigarraywrapper type(C_PTR), value :: farg1 -type(SwigArrayWrapper) :: farg2 integer(C_INT) :: fresult end function @@ -273,15 +311,6 @@ function swigc_FSPRKStepGetReturnFlagName(farg1) & type(SwigArrayWrapper) :: 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_FSPRKStepGetCurrentState(farg1, farg2) & bind(C, name="_wrap_FSPRKStepGetCurrentState") & result(fresult) @@ -318,16 +347,6 @@ function swigc_FSPRKStepGetLastStep(farg1, 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_FSPRKStepGetNumStepAttempts(farg1, farg2) & bind(C, name="_wrap_FSPRKStepGetNumStepAttempts") & result(fresult) @@ -457,6 +476,108 @@ function FSPRKStepReInit(arkode_mem, f1, f2, t0, y0) & 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 @@ -495,83 +616,45 @@ function FSPRKStepRootInit(arkode_mem, nrtfn, g) & 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 FSPRKStepSetUseCompensatedSums(arkode_mem, onoff) & +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), intent(in) :: onoff +integer(C_INT), dimension(*), target, intent(inout) :: rootdir integer(C_INT) :: fresult type(C_PTR) :: farg1 -integer(C_INT) :: farg2 +type(C_PTR) :: farg2 farg1 = arkode_mem -farg2 = onoff -fresult = swigc_FSPRKStepSetUseCompensatedSums(farg1, farg2) +farg2 = c_loc(rootdir(1)) +fresult = swigc_FSPRKStepSetRootDirection(farg1, farg2) swig_result = fresult end function -function FSPRKStepSetMethod(arkode_mem, sprk_storage) & +function FSPRKStepSetNoInactiveRootWarn(arkode_mem) & 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) +fresult = swigc_FSPRKStepSetNoInactiveRootWarn(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 FSPRKStepSetMethodName(arkode_mem, method) & +function FSPRKStepSetDefaults(arkode_mem) & 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) +fresult = swigc_FSPRKStepSetDefaults(farg1) swig_result = fresult end function @@ -794,22 +877,6 @@ function FSPRKStepGetReturnFlagName(flag) & if (.false.) call SWIG_free(fresult%data) 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 FSPRKStepGetCurrentState(arkode_mem, state) & result(swig_result) use, intrinsic :: ISO_C_BINDING @@ -874,25 +941,6 @@ function FSPRKStepGetLastStep(arkode_mem, hlast) & 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 FSPRKStepGetNumStepAttempts(arkode_mem, step_attempts) & result(swig_result) use, intrinsic :: ISO_C_BINDING diff --git a/src/arkode/fmod_int64/farkode_arkstep_mod.f90 b/src/arkode/fmod_int64/farkode_arkstep_mod.f90 index 165149355b..cc0373f1eb 100644 --- a/src/arkode/fmod_int64/farkode_arkstep_mod.f90 +++ b/src/arkode/fmod_int64/farkode_arkstep_mod.f90 @@ -26,6 +26,7 @@ module farkode_arkstep_mod 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 @@ -34,6 +35,7 @@ module farkode_arkstep_mod 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 diff --git a/src/arkode/fmod_int64/farkode_erkstep_mod.f90 b/src/arkode/fmod_int64/farkode_erkstep_mod.f90 index 797d0ca9ff..291dc643d5 100644 --- a/src/arkode/fmod_int64/farkode_erkstep_mod.f90 +++ b/src/arkode/fmod_int64/farkode_erkstep_mod.f90 @@ -26,6 +26,7 @@ module farkode_erkstep_mod 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 From 5873dd7360a729de7ce76d6513f4eab8a10c02b7 Mon Sep 17 00:00:00 2001 From: Cody Balos Date: Mon, 13 May 2024 09:30:27 -0700 Subject: [PATCH 58/70] update out --- examples/kinsol/F2003_parallel/kin_diagon_kry_f2003.out | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/kinsol/F2003_parallel/kin_diagon_kry_f2003.out b/examples/kinsol/F2003_parallel/kin_diagon_kry_f2003.out index 2c12bbce41..0eb25a14dc 100644 --- a/examples/kinsol/F2003_parallel/kin_diagon_kry_f2003.out +++ b/examples/kinsol/F2003_parallel/kin_diagon_kry_f2003.out @@ -39,9 +39,9 @@ Number of procs: nprocs = 4 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.. - 125 125.000000 126.000000 127.000000 128.000000 nni = 7 nli = 21 nfe = 8 npe = 2 From 36e9514ea1034b12927225596a8a035b9a5c8070 Mon Sep 17 00:00:00 2001 From: Cody Balos Date: Mon, 13 May 2024 13:39:10 -0700 Subject: [PATCH 59/70] Update doc/superbuild/source/developers/getting_started/Checklist.rst Co-authored-by: Daniel R. Reynolds --- doc/superbuild/source/developers/getting_started/Checklist.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/superbuild/source/developers/getting_started/Checklist.rst b/doc/superbuild/source/developers/getting_started/Checklist.rst index f036a8b3de..206eb8732c 100644 --- a/doc/superbuild/source/developers/getting_started/Checklist.rst +++ b/doc/superbuild/source/developers/getting_started/Checklist.rst @@ -81,5 +81,5 @@ system, etc. developers should adhere to the following checklist. 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 was infact changes that required updates + under the job artifacts (if there were in fact changes that required updates to the Fortran). From d6af78bb74f03022ec32c487f41381a93a001d06 Mon Sep 17 00:00:00 2001 From: Cody Balos Date: Thu, 23 May 2024 08:10:57 -0700 Subject: [PATCH 60/70] change back vector array indexes to int --- ...ark_brusselator1D_task_local_nls_f2003.f90 | 18 +++++----- .../F2003_serial/cvsAdvDiff_FSA_non_f2003.f90 | 8 ++--- .../C_openmp/test_fnvector_openmp_mod.f90 | 2 +- .../test_fnvector_manyvector_mod.f90 | 24 ++++++------- .../test_fnvector_mpimanyvector_mod.f90 | 24 ++++++------- .../parallel/test_fnvector_parallel_mod.f90 | 4 +-- .../pthreads/test_fnvector_pthreads_mod.f90 | 2 +- .../serial/test_fnvector_serial_mod.f90 | 8 ++--- include/sundials/sundials_nvector.h | 17 ++++----- .../sunnonlinsol/sunnonlinsol_fixedpoint.h | 4 +-- src/sundials/fmod_int32/fsundials_core_mod.c | 36 +++++++++---------- .../fmod_int32/fsundials_core_mod.f90 | 36 +++++++++---------- src/sundials/fmod_int64/fsundials_core_mod.c | 36 +++++++++---------- .../fmod_int64/fsundials_core_mod.f90 | 36 +++++++++---------- src/sundials/sundials_nvector.c | 12 +++---- .../fmod_int32/fsunnonlinsol_fixedpoint_mod.c | 6 ++-- .../fsunnonlinsol_fixedpoint_mod.f90 | 6 ++-- .../fmod_int64/fsunnonlinsol_fixedpoint_mod.c | 6 ++-- .../fsunnonlinsol_fixedpoint_mod.f90 | 6 ++-- .../fixedpoint/sunnonlinsol_fixedpoint.c | 4 +-- 20 files changed, 146 insertions(+), 149 deletions(-) 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 71d84228c7..9af05b5f10 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 @@ -600,10 +600,10 @@ integer(c_int) function TaskLocalNlsResidual(sunvec_zcor, sunvec_F, arkode_mem) end if ! get vectors from pointers - sunvec_zpred => FN_VGetVecAtIndexVectorArray(zpred_ptr, 0_myindextype) - sunvec_z => FN_VGetVecAtIndexVectorArray(z_ptr, 0_myindextype) - sunvec_Fi => FN_VGetVecAtIndexVectorArray(Fi_ptr, 0_myindextype) - sunvec_sdata => FN_VGetVecAtIndexVectorArray(sdata_ptr, 0_myindextype) + sunvec_zpred => FN_VGetVecAtIndexVectorArray(zpred_ptr, 0) + sunvec_z => FN_VGetVecAtIndexVectorArray(z_ptr, 0) + sunvec_Fi => FN_VGetVecAtIndexVectorArray(Fi_ptr, 0) + sunvec_sdata => FN_VGetVecAtIndexVectorArray(sdata_ptr, 0) ! get vector data arrays ycor_data => FN_VGetArrayPointer(sunvec_zcor) @@ -686,7 +686,7 @@ integer(c_int) function TaskLocalLSolve(sunvec_delta, arkode_mem) & end if ! get vectors from pointers - sunvec_z => FN_VGetVecAtIndexVectorArray(z_ptr, 0_myindextype) + sunvec_z => FN_VGetVecAtIndexVectorArray(z_ptr, 0) ! get data arrays b_data => FN_VGetArrayPointer(sunvec_delta) @@ -1024,10 +1024,10 @@ function TaskLocalNewton(arkode_mem, sunvec_y) result(sunnls) sunnls_LOC => FSUNNonlinSol_Newton(sunvec_y, sunctx) ! Create vector pointers to receive residual data - zpred_ptr = FN_VNewVectorArray(1_myindextype, sunctx) - z_ptr = FN_VNewVectorArray(1_myindextype, sunctx) - Fi_ptr = FN_VNewVectorArray(1_myindextype, sunctx) - sdata_ptr = FN_VNewVectorArray(1_myindextype, sunctx) + zpred_ptr = FN_VNewVectorArray(1, sunctx) + z_ptr = FN_VNewVectorArray(1, sunctx) + 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) diff --git a/examples/cvodes/F2003_serial/cvsAdvDiff_FSA_non_f2003.f90 b/examples/cvodes/F2003_serial/cvsAdvDiff_FSA_non_f2003.f90 index cc0d6d44dc..fba84d62cf 100644 --- a/examples/cvodes/F2003_serial/cvsAdvDiff_FSA_non_f2003.f90 +++ b/examples/cvodes/F2003_serial/cvsAdvDiff_FSA_non_f2003.f90 @@ -78,7 +78,7 @@ module ode_problem real(c_double), parameter :: ATOL = 1e-5 integer(c_int), parameter :: NOUT = 10 integer(c_int), parameter :: NP = 2 - integer(c_int64_t), parameter :: NS = 2 + integer(c_int), parameter :: NS = 2 integer(c_long), parameter :: MX = 10 integer(c_long), parameter :: NEQ = MX @@ -211,7 +211,7 @@ program main integer(c_int) :: iout, retval real(c_double) :: reltol, abstol, tout, t(1) integer(c_int) :: plist(0:NS-1) - integer(kind=myindextype) :: is + integer(c_int) :: is real(c_double) :: pbar(0:NS-1) ! Command line arguments @@ -510,10 +510,10 @@ subroutine PrintOutputS(uS) type(N_Vector), pointer :: uiS real(c_double) :: norm - uiS => FN_VGetVecAtIndexVectorArray(uS, 0_8) + uiS => FN_VGetVecAtIndexVectorArray(uS, 0) norm = FN_VMaxNorm(uiS) write(*,'(1x,A,es12.4)') " Sensitivity 1 ", norm - uiS => FN_VGetVecAtIndexVectorArray(uS, 1_8) + uiS => FN_VGetVecAtIndexVectorArray(uS, 1) norm = FN_VMaxNorm(uiS) write(*,'(1x,A,es12.4)') " Sensitivity 2 ", norm diff --git a/examples/nvector/C_openmp/test_fnvector_openmp_mod.f90 b/examples/nvector/C_openmp/test_fnvector_openmp_mod.f90 index b722f5c4fe..afa1157fef 100644 --- a/examples/nvector/C_openmp/test_fnvector_openmp_mod.f90 +++ b/examples/nvector/C_openmp/test_fnvector_openmp_mod.f90 @@ -23,8 +23,8 @@ module test_nvector_openmp implicit none integer(kind=myindextype), parameter :: N = 100 ! vector length - integer(kind=myindextype), parameter :: nv = 3 ! length of vector arrays integer(kind=myindextype), parameter :: ns = 2 ! number of vector arrays + integer(c_int), parameter :: nv = 3 ! length of vector arrays contains diff --git a/examples/nvector/manyvector/test_fnvector_manyvector_mod.f90 b/examples/nvector/manyvector/test_fnvector_manyvector_mod.f90 index 3919ea2c00..cf12181129 100644 --- a/examples/nvector/manyvector/test_fnvector_manyvector_mod.f90 +++ b/examples/nvector/manyvector/test_fnvector_manyvector_mod.f90 @@ -23,10 +23,10 @@ module test_nvector_manyvector use test_utilities implicit none - integer(kind=myindextype), parameter :: nsubvecs = 2 + 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(c_int), parameter :: nv = 3 ! length of vector arrays integer(kind=myindextype), parameter :: N = N1 + N2 ! overall manyvector length contains @@ -47,19 +47,19 @@ integer function smoke_tests() result(ret) !===== Setup ==== subvecs = FN_VNewVectorArray(nsubvecs, sunctx) tmp => FN_VMake_Serial(N1, x1data, sunctx) - call FN_VSetVecAtIndexVectorArray(subvecs, 0_myindextype, tmp) + call FN_VSetVecAtIndexVectorArray(subvecs, 0, tmp) tmp => FN_VMake_Serial(N2, x2data, sunctx) - call FN_VSetVecAtIndexVectorArray(subvecs, 1_myindextype, tmp) + call FN_VSetVecAtIndexVectorArray(subvecs, 1, tmp) - x => FN_VNew_ManyVector(nsubvecs, 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) z => FN_VClone_ManyVector(x) call FN_VConst(ONE, z) - xvecs = FN_VCloneVectorArray(int(nv,myindextype), x) - zvecs = FN_VCloneVectorArray(int(nv,myindextype), z) + xvecs = FN_VCloneVectorArray(nv, x) + zvecs = FN_VCloneVectorArray(nv, z) nvarr = (/ ONE, ONE, ONE /) !===== Test ===== @@ -115,8 +115,8 @@ integer function smoke_tests() result(ret) call FN_VDestroy_ManyVector(x) call FN_VDestroy_ManyVector(y) call FN_VDestroy_ManyVector(z) - call FN_VDestroyVectorArray(xvecs, int(nv,myindextype)) - call FN_VDestroyVectorArray(zvecs, int(nv,myindextype)) + call FN_VDestroyVectorArray(xvecs, nv) + call FN_VDestroyVectorArray(zvecs, nv) ret = 0 @@ -136,11 +136,11 @@ integer function unit_tests() result(fails) subvecs = FN_VNewVectorArray(nsubvecs, sunctx) tmp => FN_VMake_Serial(N1, x1data, sunctx) - call FN_VSetVecAtIndexVectorArray(subvecs, 0_myindextype, tmp) + call FN_VSetVecAtIndexVectorArray(subvecs, 0, tmp) tmp => FN_VMake_Serial(N2, x2data, sunctx) - call FN_VSetVecAtIndexVectorArray(subvecs, 1_myindextype, tmp) + call FN_VSetVecAtIndexVectorArray(subvecs, 1, tmp) - x => FN_VNew_ManyVector(nsubvecs, subvecs, sunctx) + x => FN_VNew_ManyVector(int(nsubvecs, myindextype), subvecs, sunctx) call FN_VConst(ONE, x) !==== tests ==== diff --git a/examples/nvector/mpimanyvector/test_fnvector_mpimanyvector_mod.f90 b/examples/nvector/mpimanyvector/test_fnvector_mpimanyvector_mod.f90 index d4fc8a1297..1b25a3f139 100644 --- a/examples/nvector/mpimanyvector/test_fnvector_mpimanyvector_mod.f90 +++ b/examples/nvector/mpimanyvector/test_fnvector_mpimanyvector_mod.f90 @@ -25,10 +25,10 @@ module test_nvector_mpimanyvector implicit none include "mpif.h" - integer(kind=myindextype), parameter :: nsubvecs = 2 + 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 :: nv = 3 ! length of vector arrays 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 @@ -51,11 +51,11 @@ integer function smoke_tests() result(ret) !===== Setup ==== subvecs = FN_VNewVectorArray(nsubvecs, sunctx) tmp => FN_VMake_Serial(N1, x1data, sunctx) - call FN_VSetVecAtIndexVectorArray(subvecs, 0_myindextype, tmp) + call FN_VSetVecAtIndexVectorArray(subvecs, 0, tmp) tmp => FN_VMake_Serial(N2, x2data, sunctx) - call FN_VSetVecAtIndexVectorArray(subvecs, 1_myindextype, tmp) + call FN_VSetVecAtIndexVectorArray(subvecs, 1, tmp) - x => FN_VMake_MPIManyVector(comm, nsubvecs, 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) @@ -115,9 +115,9 @@ integer function smoke_tests() result(ret) tmp => FN_VGetSubvector_MPIManyVector(x, ival-1) !==== Cleanup ===== - tmp => FN_VGetVecAtIndexVectorArray(subvecs, 0_myindextype) + tmp => FN_VGetVecAtIndexVectorArray(subvecs, 0) call FN_VDestroy(tmp) - tmp => FN_VGetVecAtIndexVectorArray(subvecs, 1_myindextype) + tmp => FN_VGetVecAtIndexVectorArray(subvecs, 1) call FN_VDestroy(tmp) call FN_VDestroy_MPIManyVector(x) call FN_VDestroy_MPIManyVector(y) @@ -150,11 +150,11 @@ integer function unit_tests() result(fails) subvecs = FN_VNewVectorArray(nsubvecs, sunctx) tmp => FN_VMake_Serial(N1, x1data, sunctx) - call FN_VSetVecAtIndexVectorArray(subvecs, 0_myindextype, tmp) + call FN_VSetVecAtIndexVectorArray(subvecs, 0, tmp) tmp => FN_VMake_Serial(N2, x2data, sunctx) - call FN_VSetVecAtIndexVectorArray(subvecs, 1_myindextype, tmp) + call FN_VSetVecAtIndexVectorArray(subvecs, 1, tmp) - x => FN_VMake_MPIManyVector(comm, nsubvecs, subvecs, sunctx) + x => FN_VMake_MPIManyVector(comm, int(nsubvecs, myindextype), subvecs, sunctx) call FN_VConst(ONE, x) !==== tests ==== @@ -163,9 +163,9 @@ integer function unit_tests() result(fails) fails = Test_FN_VLinearCombination(x, N, myid) !=== cleanup ==== - tmp => FN_VGetVecAtIndexVectorArray(subvecs, 0_myindextype) + tmp => FN_VGetVecAtIndexVectorArray(subvecs, 0) call FN_VDestroy(tmp) - tmp => FN_VGetVecAtIndexVectorArray(subvecs, 1_myindextype) + tmp => FN_VGetVecAtIndexVectorArray(subvecs, 1) call FN_VDestroy(tmp) call FN_VDestroy_MPIManyVector(x) diff --git a/examples/nvector/parallel/test_fnvector_parallel_mod.f90 b/examples/nvector/parallel/test_fnvector_parallel_mod.f90 index ec9e17fc97..8ca51a39ba 100644 --- a/examples/nvector/parallel/test_fnvector_parallel_mod.f90 +++ b/examples/nvector/parallel/test_fnvector_parallel_mod.f90 @@ -24,8 +24,8 @@ module test_nvector_parallel include "mpif.h" integer(kind=myindextype), parameter :: local_length = 100 ! vector local length - integer(kind=myindextype), parameter :: nv = 3 ! length of vector arrays - integer(c_int), parameter :: ns = 2 ! number of vector arrays + 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(kind=myindextype) :: global_length ! vector global_length diff --git a/examples/nvector/pthreads/test_fnvector_pthreads_mod.f90 b/examples/nvector/pthreads/test_fnvector_pthreads_mod.f90 index ce93825dd5..96db87411a 100644 --- a/examples/nvector/pthreads/test_fnvector_pthreads_mod.f90 +++ b/examples/nvector/pthreads/test_fnvector_pthreads_mod.f90 @@ -22,8 +22,8 @@ module test_nvector_pthreads implicit none integer(kind=myindextype), parameter :: N = 100 ! vector length - integer(kind=myindextype), parameter :: nv = 3 ! length of vector arrays integer(kind=myindextype), parameter :: ns = 2 ! number of vector arrays + integer(c_int), parameter :: nv = 3 ! length of vector arrays contains diff --git a/examples/nvector/serial/test_fnvector_serial_mod.f90 b/examples/nvector/serial/test_fnvector_serial_mod.f90 index 899c033ff4..8c725b6207 100644 --- a/examples/nvector/serial/test_fnvector_serial_mod.f90 +++ b/examples/nvector/serial/test_fnvector_serial_mod.f90 @@ -47,8 +47,8 @@ integer function smoke_tests() result(ret) z => FN_VClone_Serial(x) call FN_VConst(ONE, z) - xvecs = FN_VCloneVectorArray(int(nv,myindextype), x) - zvecs = FN_VCloneVectorArray(int(nv,myindextype), z) + xvecs = FN_VCloneVectorArray(nv, x) + zvecs = FN_VCloneVectorArray(nv, z) nvarr = (/ ONE, ONE, ONE /) !===== Test ===== @@ -108,8 +108,8 @@ integer function smoke_tests() result(ret) call FN_VDestroy_Serial(x) call FN_VDestroy_Serial(y) call FN_VDestroy_Serial(z) - call FN_VDestroyVectorArray(xvecs, int(nv,myindextype)) - call FN_VDestroyVectorArray(zvecs, int(nv,myindextype)) + call FN_VDestroyVectorArray(xvecs, nv) + call FN_VDestroyVectorArray(zvecs, nv) ret = 0 diff --git a/include/sundials/sundials_nvector.h b/include/sundials/sundials_nvector.h index a376c6496d..68ea9340e7 100644 --- a/include/sundials/sundials_nvector.h +++ b/include/sundials/sundials_nvector.h @@ -324,18 +324,15 @@ SUNDIALS_EXPORT SUNErrCode N_VBufUnpack(N_Vector x, void* buf); * Additional functions exported by NVECTOR module * ----------------------------------------------------------------- */ -SUNDIALS_EXPORT N_Vector* N_VNewVectorArray(sunindextype count, - SUNContext sunctx); -SUNDIALS_EXPORT N_Vector* N_VCloneEmptyVectorArray(sunindextype count, - N_Vector w); -SUNDIALS_EXPORT N_Vector* N_VCloneVectorArray(sunindextype count, N_Vector w); -SUNDIALS_EXPORT void N_VDestroyVectorArray(N_Vector* vs, sunindextype count); +SUNDIALS_EXPORT N_Vector* N_VNewVectorArray(int count, SUNContext sunctx); +SUNDIALS_EXPORT N_Vector* N_VCloneEmptyVectorArray(int count, N_Vector w); +SUNDIALS_EXPORT N_Vector* N_VCloneVectorArray(int count, N_Vector w); +SUNDIALS_EXPORT void N_VDestroyVectorArray(N_Vector* vs, int count); /* These function are really only for users of the Fortran interface */ -SUNDIALS_EXPORT N_Vector N_VGetVecAtIndexVectorArray(N_Vector* vs, - sunindextype index); -SUNDIALS_EXPORT void N_VSetVecAtIndexVectorArray(N_Vector* vs, - sunindextype index, N_Vector w); +SUNDIALS_EXPORT N_Vector N_VGetVecAtIndexVectorArray(N_Vector* vs, int index); +SUNDIALS_EXPORT void N_VSetVecAtIndexVectorArray(N_Vector* vs, int index, + N_Vector w); /* ----------------------------------------------------------------- * Debugging functions diff --git a/include/sunnonlinsol/sunnonlinsol_fixedpoint.h b/include/sunnonlinsol/sunnonlinsol_fixedpoint.h index 80d9b0c026..779538abfa 100644 --- a/include/sunnonlinsol/sunnonlinsol_fixedpoint.h +++ b/include/sunnonlinsol/sunnonlinsol_fixedpoint.h @@ -75,8 +75,8 @@ SUNDIALS_EXPORT SUNNonlinearSolver SUNNonlinSol_FixedPoint(N_Vector y, int m, SUNContext sunctx); SUNDIALS_EXPORT -SUNNonlinearSolver SUNNonlinSol_FixedPointSens(sunindextype count, N_Vector y, - int m, SUNContext sunctx); +SUNNonlinearSolver SUNNonlinSol_FixedPointSens(int count, N_Vector y, int m, + SUNContext sunctx); /* core functions */ SUNDIALS_EXPORT diff --git a/src/sundials/fmod_int32/fsundials_core_mod.c b/src/sundials/fmod_int32/fsundials_core_mod.c index 9ba788d178..4a82a3afd2 100644 --- a/src/sundials/fmod_int32/fsundials_core_mod.c +++ b/src/sundials/fmod_int32/fsundials_core_mod.c @@ -1564,13 +1564,13 @@ SWIGEXPORT int _wrap_FN_VBufUnpack(N_Vector farg1, void *farg2) { } -SWIGEXPORT void * _wrap_FN_VNewVectorArray(int32_t const *farg1, void *farg2) { +SWIGEXPORT void * _wrap_FN_VNewVectorArray(int const *farg1, void *farg2) { void * fresult ; - sunindextype arg1 ; + int arg1 ; SUNContext arg2 = (SUNContext) 0 ; N_Vector *result = 0 ; - arg1 = (sunindextype)(*farg1); + arg1 = (int)(*farg1); arg2 = (SUNContext)(farg2); result = (N_Vector *)N_VNewVectorArray(arg1,arg2); fresult = result; @@ -1578,13 +1578,13 @@ SWIGEXPORT void * _wrap_FN_VNewVectorArray(int32_t const *farg1, void *farg2) { } -SWIGEXPORT void * _wrap_FN_VCloneEmptyVectorArray(int32_t const *farg1, N_Vector farg2) { +SWIGEXPORT void * _wrap_FN_VCloneEmptyVectorArray(int const *farg1, N_Vector farg2) { void * fresult ; - sunindextype arg1 ; + int arg1 ; N_Vector arg2 = (N_Vector) 0 ; N_Vector *result = 0 ; - arg1 = (sunindextype)(*farg1); + arg1 = (int)(*farg1); arg2 = (N_Vector)(farg2); result = (N_Vector *)N_VCloneEmptyVectorArray(arg1,arg2); fresult = result; @@ -1592,13 +1592,13 @@ SWIGEXPORT void * _wrap_FN_VCloneEmptyVectorArray(int32_t const *farg1, N_Vector } -SWIGEXPORT void * _wrap_FN_VCloneVectorArray(int32_t const *farg1, N_Vector farg2) { +SWIGEXPORT void * _wrap_FN_VCloneVectorArray(int const *farg1, N_Vector farg2) { void * fresult ; - sunindextype arg1 ; + int arg1 ; N_Vector arg2 = (N_Vector) 0 ; N_Vector *result = 0 ; - arg1 = (sunindextype)(*farg1); + arg1 = (int)(*farg1); arg2 = (N_Vector)(farg2); result = (N_Vector *)N_VCloneVectorArray(arg1,arg2); fresult = result; @@ -1606,37 +1606,37 @@ SWIGEXPORT void * _wrap_FN_VCloneVectorArray(int32_t const *farg1, N_Vector farg } -SWIGEXPORT void _wrap_FN_VDestroyVectorArray(void *farg1, int32_t const *farg2) { +SWIGEXPORT void _wrap_FN_VDestroyVectorArray(void *farg1, int const *farg2) { N_Vector *arg1 = (N_Vector *) 0 ; - sunindextype arg2 ; + int arg2 ; arg1 = (N_Vector *)(farg1); - arg2 = (sunindextype)(*farg2); + arg2 = (int)(*farg2); N_VDestroyVectorArray(arg1,arg2); } -SWIGEXPORT N_Vector _wrap_FN_VGetVecAtIndexVectorArray(void *farg1, int32_t const *farg2) { +SWIGEXPORT N_Vector _wrap_FN_VGetVecAtIndexVectorArray(void *farg1, int const *farg2) { N_Vector fresult ; N_Vector *arg1 = (N_Vector *) 0 ; - sunindextype arg2 ; + int arg2 ; N_Vector result; arg1 = (N_Vector *)(farg1); - arg2 = (sunindextype)(*farg2); + arg2 = (int)(*farg2); result = (N_Vector)N_VGetVecAtIndexVectorArray(arg1,arg2); fresult = result; return fresult; } -SWIGEXPORT void _wrap_FN_VSetVecAtIndexVectorArray(void *farg1, int32_t const *farg2, N_Vector farg3) { +SWIGEXPORT void _wrap_FN_VSetVecAtIndexVectorArray(void *farg1, int const *farg2, N_Vector farg3) { N_Vector *arg1 = (N_Vector *) 0 ; - sunindextype arg2 ; + int arg2 ; N_Vector arg3 = (N_Vector) 0 ; arg1 = (N_Vector *)(farg1); - arg2 = (sunindextype)(*farg2); + arg2 = (int)(*farg2); arg3 = (N_Vector)(farg3); N_VSetVecAtIndexVectorArray(arg1,arg2,arg3); } diff --git a/src/sundials/fmod_int32/fsundials_core_mod.f90 b/src/sundials/fmod_int32/fsundials_core_mod.f90 index 37f1386b71..4890566c56 100644 --- a/src/sundials/fmod_int32/fsundials_core_mod.f90 +++ b/src/sundials/fmod_int32/fsundials_core_mod.f90 @@ -1351,7 +1351,7 @@ function swigc_FN_VNewVectorArray(farg1, farg2) & bind(C, name="_wrap_FN_VNewVectorArray") & result(fresult) use, intrinsic :: ISO_C_BINDING -integer(C_INT32_T), intent(in) :: farg1 +integer(C_INT), intent(in) :: farg1 type(C_PTR), value :: farg2 type(C_PTR) :: fresult end function @@ -1360,7 +1360,7 @@ function swigc_FN_VCloneEmptyVectorArray(farg1, farg2) & bind(C, name="_wrap_FN_VCloneEmptyVectorArray") & result(fresult) use, intrinsic :: ISO_C_BINDING -integer(C_INT32_T), intent(in) :: farg1 +integer(C_INT), intent(in) :: farg1 type(C_PTR), value :: farg2 type(C_PTR) :: fresult end function @@ -1369,7 +1369,7 @@ function swigc_FN_VCloneVectorArray(farg1, farg2) & bind(C, name="_wrap_FN_VCloneVectorArray") & result(fresult) use, intrinsic :: ISO_C_BINDING -integer(C_INT32_T), intent(in) :: farg1 +integer(C_INT), intent(in) :: farg1 type(C_PTR), value :: farg2 type(C_PTR) :: fresult end function @@ -1378,7 +1378,7 @@ subroutine swigc_FN_VDestroyVectorArray(farg1, farg2) & bind(C, name="_wrap_FN_VDestroyVectorArray") use, intrinsic :: ISO_C_BINDING type(C_PTR), value :: farg1 -integer(C_INT32_T), intent(in) :: farg2 +integer(C_INT), intent(in) :: farg2 end subroutine function swigc_FN_VGetVecAtIndexVectorArray(farg1, farg2) & @@ -1386,7 +1386,7 @@ function swigc_FN_VGetVecAtIndexVectorArray(farg1, farg2) & result(fresult) use, intrinsic :: ISO_C_BINDING type(C_PTR), value :: farg1 -integer(C_INT32_T), intent(in) :: farg2 +integer(C_INT), intent(in) :: farg2 type(C_PTR) :: fresult end function @@ -1394,7 +1394,7 @@ 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_INT32_T), intent(in) :: farg2 +integer(C_INT), intent(in) :: farg2 type(C_PTR), value :: farg3 end subroutine @@ -3514,10 +3514,10 @@ function FN_VNewVectorArray(count, sunctx) & result(swig_result) use, intrinsic :: ISO_C_BINDING type(C_PTR) :: swig_result -integer(C_INT32_T), intent(in) :: count +integer(C_INT), intent(in) :: count type(C_PTR) :: sunctx type(C_PTR) :: fresult -integer(C_INT32_T) :: farg1 +integer(C_INT) :: farg1 type(C_PTR) :: farg2 farg1 = count @@ -3530,10 +3530,10 @@ function FN_VCloneEmptyVectorArray(count, w) & result(swig_result) use, intrinsic :: ISO_C_BINDING type(C_PTR) :: swig_result -integer(C_INT32_T), intent(in) :: count +integer(C_INT), intent(in) :: count type(N_Vector), target, intent(inout) :: w type(C_PTR) :: fresult -integer(C_INT32_T) :: farg1 +integer(C_INT) :: farg1 type(C_PTR) :: farg2 farg1 = count @@ -3546,10 +3546,10 @@ function FN_VCloneVectorArray(count, w) & result(swig_result) use, intrinsic :: ISO_C_BINDING type(C_PTR) :: swig_result -integer(C_INT32_T), intent(in) :: count +integer(C_INT), intent(in) :: count type(N_Vector), target, intent(inout) :: w type(C_PTR) :: fresult -integer(C_INT32_T) :: farg1 +integer(C_INT) :: farg1 type(C_PTR) :: farg2 farg1 = count @@ -3561,9 +3561,9 @@ function FN_VCloneVectorArray(count, w) & subroutine FN_VDestroyVectorArray(vs, count) use, intrinsic :: ISO_C_BINDING type(C_PTR) :: vs -integer(C_INT32_T), intent(in) :: count +integer(C_INT), intent(in) :: count type(C_PTR) :: farg1 -integer(C_INT32_T) :: farg2 +integer(C_INT) :: farg2 farg1 = vs farg2 = count @@ -3575,10 +3575,10 @@ function FN_VGetVecAtIndexVectorArray(vs, index) & use, intrinsic :: ISO_C_BINDING type(N_Vector), pointer :: swig_result type(C_PTR) :: vs -integer(C_INT32_T), intent(in) :: index +integer(C_INT), intent(in) :: index type(C_PTR) :: fresult type(C_PTR) :: farg1 -integer(C_INT32_T) :: farg2 +integer(C_INT) :: farg2 farg1 = vs farg2 = index @@ -3589,10 +3589,10 @@ function FN_VGetVecAtIndexVectorArray(vs, index) & subroutine FN_VSetVecAtIndexVectorArray(vs, index, w) use, intrinsic :: ISO_C_BINDING type(C_PTR) :: vs -integer(C_INT32_T), intent(in) :: index +integer(C_INT), intent(in) :: index type(N_Vector), target, intent(inout) :: w type(C_PTR) :: farg1 -integer(C_INT32_T) :: farg2 +integer(C_INT) :: farg2 type(C_PTR) :: farg3 farg1 = vs diff --git a/src/sundials/fmod_int64/fsundials_core_mod.c b/src/sundials/fmod_int64/fsundials_core_mod.c index e16fe92bae..335bc76dfa 100644 --- a/src/sundials/fmod_int64/fsundials_core_mod.c +++ b/src/sundials/fmod_int64/fsundials_core_mod.c @@ -1564,13 +1564,13 @@ SWIGEXPORT int _wrap_FN_VBufUnpack(N_Vector farg1, void *farg2) { } -SWIGEXPORT void * _wrap_FN_VNewVectorArray(int64_t const *farg1, void *farg2) { +SWIGEXPORT void * _wrap_FN_VNewVectorArray(int const *farg1, void *farg2) { void * fresult ; - sunindextype arg1 ; + int arg1 ; SUNContext arg2 = (SUNContext) 0 ; N_Vector *result = 0 ; - arg1 = (sunindextype)(*farg1); + arg1 = (int)(*farg1); arg2 = (SUNContext)(farg2); result = (N_Vector *)N_VNewVectorArray(arg1,arg2); fresult = result; @@ -1578,13 +1578,13 @@ SWIGEXPORT void * _wrap_FN_VNewVectorArray(int64_t const *farg1, void *farg2) { } -SWIGEXPORT void * _wrap_FN_VCloneEmptyVectorArray(int64_t const *farg1, N_Vector farg2) { +SWIGEXPORT void * _wrap_FN_VCloneEmptyVectorArray(int const *farg1, N_Vector farg2) { void * fresult ; - sunindextype arg1 ; + int arg1 ; N_Vector arg2 = (N_Vector) 0 ; N_Vector *result = 0 ; - arg1 = (sunindextype)(*farg1); + arg1 = (int)(*farg1); arg2 = (N_Vector)(farg2); result = (N_Vector *)N_VCloneEmptyVectorArray(arg1,arg2); fresult = result; @@ -1592,13 +1592,13 @@ SWIGEXPORT void * _wrap_FN_VCloneEmptyVectorArray(int64_t const *farg1, N_Vector } -SWIGEXPORT void * _wrap_FN_VCloneVectorArray(int64_t const *farg1, N_Vector farg2) { +SWIGEXPORT void * _wrap_FN_VCloneVectorArray(int const *farg1, N_Vector farg2) { void * fresult ; - sunindextype arg1 ; + int arg1 ; N_Vector arg2 = (N_Vector) 0 ; N_Vector *result = 0 ; - arg1 = (sunindextype)(*farg1); + arg1 = (int)(*farg1); arg2 = (N_Vector)(farg2); result = (N_Vector *)N_VCloneVectorArray(arg1,arg2); fresult = result; @@ -1606,37 +1606,37 @@ SWIGEXPORT void * _wrap_FN_VCloneVectorArray(int64_t const *farg1, N_Vector farg } -SWIGEXPORT void _wrap_FN_VDestroyVectorArray(void *farg1, int64_t const *farg2) { +SWIGEXPORT void _wrap_FN_VDestroyVectorArray(void *farg1, int const *farg2) { N_Vector *arg1 = (N_Vector *) 0 ; - sunindextype arg2 ; + int arg2 ; arg1 = (N_Vector *)(farg1); - arg2 = (sunindextype)(*farg2); + arg2 = (int)(*farg2); N_VDestroyVectorArray(arg1,arg2); } -SWIGEXPORT N_Vector _wrap_FN_VGetVecAtIndexVectorArray(void *farg1, int64_t const *farg2) { +SWIGEXPORT N_Vector _wrap_FN_VGetVecAtIndexVectorArray(void *farg1, int const *farg2) { N_Vector fresult ; N_Vector *arg1 = (N_Vector *) 0 ; - sunindextype arg2 ; + int arg2 ; N_Vector result; arg1 = (N_Vector *)(farg1); - arg2 = (sunindextype)(*farg2); + arg2 = (int)(*farg2); result = (N_Vector)N_VGetVecAtIndexVectorArray(arg1,arg2); fresult = result; return fresult; } -SWIGEXPORT void _wrap_FN_VSetVecAtIndexVectorArray(void *farg1, int64_t const *farg2, N_Vector farg3) { +SWIGEXPORT void _wrap_FN_VSetVecAtIndexVectorArray(void *farg1, int const *farg2, N_Vector farg3) { N_Vector *arg1 = (N_Vector *) 0 ; - sunindextype arg2 ; + int arg2 ; N_Vector arg3 = (N_Vector) 0 ; arg1 = (N_Vector *)(farg1); - arg2 = (sunindextype)(*farg2); + arg2 = (int)(*farg2); arg3 = (N_Vector)(farg3); N_VSetVecAtIndexVectorArray(arg1,arg2,arg3); } diff --git a/src/sundials/fmod_int64/fsundials_core_mod.f90 b/src/sundials/fmod_int64/fsundials_core_mod.f90 index 2a63c7b1ea..4334dfe0d3 100644 --- a/src/sundials/fmod_int64/fsundials_core_mod.f90 +++ b/src/sundials/fmod_int64/fsundials_core_mod.f90 @@ -1351,7 +1351,7 @@ function swigc_FN_VNewVectorArray(farg1, farg2) & bind(C, name="_wrap_FN_VNewVectorArray") & result(fresult) use, intrinsic :: ISO_C_BINDING -integer(C_INT64_T), intent(in) :: farg1 +integer(C_INT), intent(in) :: farg1 type(C_PTR), value :: farg2 type(C_PTR) :: fresult end function @@ -1360,7 +1360,7 @@ function swigc_FN_VCloneEmptyVectorArray(farg1, farg2) & bind(C, name="_wrap_FN_VCloneEmptyVectorArray") & result(fresult) use, intrinsic :: ISO_C_BINDING -integer(C_INT64_T), intent(in) :: farg1 +integer(C_INT), intent(in) :: farg1 type(C_PTR), value :: farg2 type(C_PTR) :: fresult end function @@ -1369,7 +1369,7 @@ function swigc_FN_VCloneVectorArray(farg1, farg2) & bind(C, name="_wrap_FN_VCloneVectorArray") & result(fresult) use, intrinsic :: ISO_C_BINDING -integer(C_INT64_T), intent(in) :: farg1 +integer(C_INT), intent(in) :: farg1 type(C_PTR), value :: farg2 type(C_PTR) :: fresult end function @@ -1378,7 +1378,7 @@ subroutine swigc_FN_VDestroyVectorArray(farg1, farg2) & bind(C, name="_wrap_FN_VDestroyVectorArray") use, intrinsic :: ISO_C_BINDING type(C_PTR), value :: farg1 -integer(C_INT64_T), intent(in) :: farg2 +integer(C_INT), intent(in) :: farg2 end subroutine function swigc_FN_VGetVecAtIndexVectorArray(farg1, farg2) & @@ -1386,7 +1386,7 @@ function swigc_FN_VGetVecAtIndexVectorArray(farg1, farg2) & result(fresult) use, intrinsic :: ISO_C_BINDING type(C_PTR), value :: farg1 -integer(C_INT64_T), intent(in) :: farg2 +integer(C_INT), intent(in) :: farg2 type(C_PTR) :: fresult end function @@ -1394,7 +1394,7 @@ 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_INT64_T), intent(in) :: farg2 +integer(C_INT), intent(in) :: farg2 type(C_PTR), value :: farg3 end subroutine @@ -3514,10 +3514,10 @@ function FN_VNewVectorArray(count, sunctx) & result(swig_result) use, intrinsic :: ISO_C_BINDING type(C_PTR) :: swig_result -integer(C_INT64_T), intent(in) :: count +integer(C_INT), intent(in) :: count type(C_PTR) :: sunctx type(C_PTR) :: fresult -integer(C_INT64_T) :: farg1 +integer(C_INT) :: farg1 type(C_PTR) :: farg2 farg1 = count @@ -3530,10 +3530,10 @@ function FN_VCloneEmptyVectorArray(count, w) & result(swig_result) use, intrinsic :: ISO_C_BINDING type(C_PTR) :: swig_result -integer(C_INT64_T), intent(in) :: count +integer(C_INT), intent(in) :: count type(N_Vector), target, intent(inout) :: w type(C_PTR) :: fresult -integer(C_INT64_T) :: farg1 +integer(C_INT) :: farg1 type(C_PTR) :: farg2 farg1 = count @@ -3546,10 +3546,10 @@ function FN_VCloneVectorArray(count, w) & result(swig_result) use, intrinsic :: ISO_C_BINDING type(C_PTR) :: swig_result -integer(C_INT64_T), intent(in) :: count +integer(C_INT), intent(in) :: count type(N_Vector), target, intent(inout) :: w type(C_PTR) :: fresult -integer(C_INT64_T) :: farg1 +integer(C_INT) :: farg1 type(C_PTR) :: farg2 farg1 = count @@ -3561,9 +3561,9 @@ function FN_VCloneVectorArray(count, w) & subroutine FN_VDestroyVectorArray(vs, count) use, intrinsic :: ISO_C_BINDING type(C_PTR) :: vs -integer(C_INT64_T), intent(in) :: count +integer(C_INT), intent(in) :: count type(C_PTR) :: farg1 -integer(C_INT64_T) :: farg2 +integer(C_INT) :: farg2 farg1 = vs farg2 = count @@ -3575,10 +3575,10 @@ function FN_VGetVecAtIndexVectorArray(vs, index) & use, intrinsic :: ISO_C_BINDING type(N_Vector), pointer :: swig_result type(C_PTR) :: vs -integer(C_INT64_T), intent(in) :: index +integer(C_INT), intent(in) :: index type(C_PTR) :: fresult type(C_PTR) :: farg1 -integer(C_INT64_T) :: farg2 +integer(C_INT) :: farg2 farg1 = vs farg2 = index @@ -3589,10 +3589,10 @@ function FN_VGetVecAtIndexVectorArray(vs, index) & subroutine FN_VSetVecAtIndexVectorArray(vs, index, w) use, intrinsic :: ISO_C_BINDING type(C_PTR) :: vs -integer(C_INT64_T), intent(in) :: index +integer(C_INT), intent(in) :: index type(N_Vector), target, intent(inout) :: w type(C_PTR) :: farg1 -integer(C_INT64_T) :: farg2 +integer(C_INT) :: farg2 type(C_PTR) :: farg3 farg1 = vs diff --git a/src/sundials/sundials_nvector.c b/src/sundials/sundials_nvector.c index 5b6cf7ff24..a6549d81b5 100644 --- a/src/sundials/sundials_nvector.c +++ b/src/sundials/sundials_nvector.c @@ -998,7 +998,7 @@ SUNErrCode N_VBufUnpack(N_Vector x, void* buf) * N_VDestroyVectorArray * -----------------------------------------------------------------*/ -N_Vector* N_VNewVectorArray(sunindextype count, SUNContext sunctx) +N_Vector* N_VNewVectorArray(int count, SUNContext sunctx) { SUNFunctionBegin(sunctx); N_Vector* vs = NULL; @@ -1007,7 +1007,7 @@ N_Vector* N_VNewVectorArray(sunindextype count, SUNContext sunctx) return vs; } -N_Vector* N_VCloneEmptyVectorArray(sunindextype count, N_Vector w) +N_Vector* N_VCloneEmptyVectorArray(int count, N_Vector w) { SUNFunctionBegin(w->sunctx); N_Vector* vs = NULL; @@ -1032,7 +1032,7 @@ N_Vector* N_VCloneEmptyVectorArray(sunindextype count, N_Vector w) return (vs); } -N_Vector* N_VCloneVectorArray(sunindextype count, N_Vector w) +N_Vector* N_VCloneVectorArray(int count, N_Vector w) { SUNFunctionBegin(w->sunctx); int j; @@ -1057,7 +1057,7 @@ N_Vector* N_VCloneVectorArray(sunindextype count, N_Vector w) return (vs); } -void N_VDestroyVectorArray(N_Vector* vs, sunindextype count) +void N_VDestroyVectorArray(N_Vector* vs, int count) { int j; @@ -1076,14 +1076,14 @@ void N_VDestroyVectorArray(N_Vector* vs, sunindextype count) } /* These function are really only for users of the Fortran interface */ -N_Vector N_VGetVecAtIndexVectorArray(N_Vector* vs, sunindextype index) +N_Vector N_VGetVecAtIndexVectorArray(N_Vector* vs, int index) { SUNFunctionBegin(vs[0]->sunctx); SUNAssertNull(index >= 0, SUN_ERR_ARG_OUTOFRANGE); return vs[index]; } -void N_VSetVecAtIndexVectorArray(N_Vector* vs, sunindextype index, N_Vector w) +void N_VSetVecAtIndexVectorArray(N_Vector* vs, int index, N_Vector w) { SUNFunctionBegin(w->sunctx); SUNAssertVoid(index >= 0, SUN_ERR_ARG_OUTOFRANGE); diff --git a/src/sunnonlinsol/fixedpoint/fmod_int32/fsunnonlinsol_fixedpoint_mod.c b/src/sunnonlinsol/fixedpoint/fmod_int32/fsunnonlinsol_fixedpoint_mod.c index 351b019071..3911f51201 100644 --- a/src/sunnonlinsol/fixedpoint/fmod_int32/fsunnonlinsol_fixedpoint_mod.c +++ b/src/sunnonlinsol/fixedpoint/fmod_int32/fsunnonlinsol_fixedpoint_mod.c @@ -224,15 +224,15 @@ SWIGEXPORT SUNNonlinearSolver _wrap_FSUNNonlinSol_FixedPoint(N_Vector farg1, int } -SWIGEXPORT SUNNonlinearSolver _wrap_FSUNNonlinSol_FixedPointSens(int32_t const *farg1, N_Vector farg2, int const *farg3, void *farg4) { +SWIGEXPORT SUNNonlinearSolver _wrap_FSUNNonlinSol_FixedPointSens(int const *farg1, N_Vector farg2, int const *farg3, void *farg4) { SUNNonlinearSolver fresult ; - sunindextype arg1 ; + int arg1 ; N_Vector arg2 = (N_Vector) 0 ; int arg3 ; SUNContext arg4 = (SUNContext) 0 ; SUNNonlinearSolver result; - arg1 = (sunindextype)(*farg1); + arg1 = (int)(*farg1); arg2 = (N_Vector)(farg2); arg3 = (int)(*farg3); arg4 = (SUNContext)(farg4); diff --git a/src/sunnonlinsol/fixedpoint/fmod_int32/fsunnonlinsol_fixedpoint_mod.f90 b/src/sunnonlinsol/fixedpoint/fmod_int32/fsunnonlinsol_fixedpoint_mod.f90 index 06648fc81a..763e069388 100644 --- a/src/sunnonlinsol/fixedpoint/fmod_int32/fsunnonlinsol_fixedpoint_mod.f90 +++ b/src/sunnonlinsol/fixedpoint/fmod_int32/fsunnonlinsol_fixedpoint_mod.f90 @@ -56,7 +56,7 @@ function swigc_FSUNNonlinSol_FixedPointSens(farg1, farg2, farg3, farg4) & bind(C, name="_wrap_FSUNNonlinSol_FixedPointSens") & result(fresult) use, intrinsic :: ISO_C_BINDING -integer(C_INT32_T), intent(in) :: farg1 +integer(C_INT), intent(in) :: farg1 type(C_PTR), value :: farg2 integer(C_INT), intent(in) :: farg3 type(C_PTR), value :: farg4 @@ -202,12 +202,12 @@ function FSUNNonlinSol_FixedPointSens(count, y, m, sunctx) & result(swig_result) use, intrinsic :: ISO_C_BINDING type(SUNNonlinearSolver), pointer :: swig_result -integer(C_INT32_T), intent(in) :: count +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_INT32_T) :: farg1 +integer(C_INT) :: farg1 type(C_PTR) :: farg2 integer(C_INT) :: farg3 type(C_PTR) :: farg4 diff --git a/src/sunnonlinsol/fixedpoint/fmod_int64/fsunnonlinsol_fixedpoint_mod.c b/src/sunnonlinsol/fixedpoint/fmod_int64/fsunnonlinsol_fixedpoint_mod.c index 214652302e..3911f51201 100644 --- a/src/sunnonlinsol/fixedpoint/fmod_int64/fsunnonlinsol_fixedpoint_mod.c +++ b/src/sunnonlinsol/fixedpoint/fmod_int64/fsunnonlinsol_fixedpoint_mod.c @@ -224,15 +224,15 @@ SWIGEXPORT SUNNonlinearSolver _wrap_FSUNNonlinSol_FixedPoint(N_Vector farg1, int } -SWIGEXPORT SUNNonlinearSolver _wrap_FSUNNonlinSol_FixedPointSens(int64_t const *farg1, N_Vector farg2, int const *farg3, void *farg4) { +SWIGEXPORT SUNNonlinearSolver _wrap_FSUNNonlinSol_FixedPointSens(int const *farg1, N_Vector farg2, int const *farg3, void *farg4) { SUNNonlinearSolver fresult ; - sunindextype arg1 ; + int arg1 ; N_Vector arg2 = (N_Vector) 0 ; int arg3 ; SUNContext arg4 = (SUNContext) 0 ; SUNNonlinearSolver result; - arg1 = (sunindextype)(*farg1); + arg1 = (int)(*farg1); arg2 = (N_Vector)(farg2); arg3 = (int)(*farg3); arg4 = (SUNContext)(farg4); diff --git a/src/sunnonlinsol/fixedpoint/fmod_int64/fsunnonlinsol_fixedpoint_mod.f90 b/src/sunnonlinsol/fixedpoint/fmod_int64/fsunnonlinsol_fixedpoint_mod.f90 index 241fb96c26..763e069388 100644 --- a/src/sunnonlinsol/fixedpoint/fmod_int64/fsunnonlinsol_fixedpoint_mod.f90 +++ b/src/sunnonlinsol/fixedpoint/fmod_int64/fsunnonlinsol_fixedpoint_mod.f90 @@ -56,7 +56,7 @@ function swigc_FSUNNonlinSol_FixedPointSens(farg1, farg2, farg3, farg4) & bind(C, name="_wrap_FSUNNonlinSol_FixedPointSens") & result(fresult) use, intrinsic :: ISO_C_BINDING -integer(C_INT64_T), intent(in) :: farg1 +integer(C_INT), intent(in) :: farg1 type(C_PTR), value :: farg2 integer(C_INT), intent(in) :: farg3 type(C_PTR), value :: farg4 @@ -202,12 +202,12 @@ function FSUNNonlinSol_FixedPointSens(count, y, m, sunctx) & result(swig_result) use, intrinsic :: ISO_C_BINDING type(SUNNonlinearSolver), pointer :: swig_result -integer(C_INT64_T), intent(in) :: count +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_INT64_T) :: farg1 +integer(C_INT) :: farg1 type(C_PTR) :: farg2 integer(C_INT) :: farg3 type(C_PTR) :: farg4 diff --git a/src/sunnonlinsol/fixedpoint/sunnonlinsol_fixedpoint.c b/src/sunnonlinsol/fixedpoint/sunnonlinsol_fixedpoint.c index ba34949267..1ec228965e 100644 --- a/src/sunnonlinsol/fixedpoint/sunnonlinsol_fixedpoint.c +++ b/src/sunnonlinsol/fixedpoint/sunnonlinsol_fixedpoint.c @@ -102,8 +102,8 @@ SUNNonlinearSolver SUNNonlinSol_FixedPoint(N_Vector y, int m, SUNContext sunctx) Constructor wrapper to create a new fixed point solver for sensitivity solvers ============================================================================*/ -SUNNonlinearSolver SUNNonlinSol_FixedPointSens(sunindextype count, N_Vector y, - int m, SUNContext sunctx) +SUNNonlinearSolver SUNNonlinSol_FixedPointSens(int count, N_Vector y, int m, + SUNContext sunctx) { SUNFunctionBegin(sunctx); SUNNonlinearSolver NLS = NULL; From 5b359079f88a6c1b6fc14c6df967544dc1f4218b Mon Sep 17 00:00:00 2001 From: Cody Balos Date: Thu, 23 May 2024 08:15:27 -0700 Subject: [PATCH 61/70] regen fortran --- src/sundials/fmod_int32/fsundials_core_mod.f90 | 16 ++++++++++++++++ src/sundials/fmod_int64/fsundials_core_mod.c | 8 ++++++++ 2 files changed, 24 insertions(+) diff --git a/src/sundials/fmod_int32/fsundials_core_mod.f90 b/src/sundials/fmod_int32/fsundials_core_mod.f90 index 4890566c56..f47a3141f2 100644 --- a/src/sundials/fmod_int32/fsundials_core_mod.f90 +++ b/src/sundials/fmod_int32/fsundials_core_mod.f90 @@ -536,6 +536,7 @@ module fsundials_core_mod type(C_PTR), public :: sunctx end type SUNAdaptController public :: FSUNAdaptController_NewEmpty + public :: FSUNAdaptController_DestroyEmpty public :: FSUNAdaptController_GetType public :: FSUNAdaptController_Destroy public :: FSUNAdaptController_EstimateStep @@ -1955,6 +1956,12 @@ function swigc_FSUNAdaptController_NewEmpty(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) @@ -4622,6 +4629,15 @@ function FSUNAdaptController_NewEmpty(sunctx) & 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 diff --git a/src/sundials/fmod_int64/fsundials_core_mod.c b/src/sundials/fmod_int64/fsundials_core_mod.c index 335bc76dfa..9fa73f722b 100644 --- a/src/sundials/fmod_int64/fsundials_core_mod.c +++ b/src/sundials/fmod_int64/fsundials_core_mod.c @@ -2512,6 +2512,14 @@ SWIGEXPORT SUNAdaptController _wrap_FSUNAdaptController_NewEmpty(void *farg1) { } +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 ; From f4545375693a494903c29fc173cc514359678c90 Mon Sep 17 00:00:00 2001 From: Cody Balos Date: Thu, 23 May 2024 15:44:13 -0700 Subject: [PATCH 62/70] Apply suggestions from code review Co-authored-by: David Gardner --- .../source/developers/getting_started/Checklist.rst | 6 ++++-- examples/nvector/test_nvector.f90 | 2 +- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/doc/superbuild/source/developers/getting_started/Checklist.rst b/doc/superbuild/source/developers/getting_started/Checklist.rst index 206eb8732c..3b9366fd95 100644 --- a/doc/superbuild/source/developers/getting_started/Checklist.rst +++ b/doc/superbuild/source/developers/getting_started/Checklist.rst @@ -29,7 +29,9 @@ system, etc. developers should adhere to the following checklist. #. 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. + 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 @@ -80,6 +82,6 @@ system, etc. developers should adhere to the following checklist. #. 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 + 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/examples/nvector/test_nvector.f90 b/examples/nvector/test_nvector.f90 index adc4d8cf61..b97f65b3ca 100644 --- a/examples/nvector/test_nvector.f90 +++ b/examples/nvector/test_nvector.f90 @@ -18,7 +18,7 @@ ! to an NVECTOR module implementation. It does not test every ! function. It tests the N_VMake constructor, one standard vector ! operation (N_VConst), N_VGetArrayPointer, and one fused operation. -! -----------------------------------------------------------------c +! ----------------------------------------------------------------- module test_fnvector use, intrinsic :: iso_c_binding From 158a5badc18f481972803c8a915854dafcab852b Mon Sep 17 00:00:00 2001 From: "Balos, Cody, J" Date: Fri, 24 May 2024 09:12:46 -0700 Subject: [PATCH 63/70] update swig --- src/arkode/fmod_int32/farkode_mod.c | 26 ++++++++++++++ src/arkode/fmod_int32/farkode_mod.f90 | 49 +++++++++++++++++++++++++++ src/arkode/fmod_int64/farkode_mod.c | 26 ++++++++++++++ src/arkode/fmod_int64/farkode_mod.f90 | 48 ++++++++++++++++++++++++++ 4 files changed, 149 insertions(+) diff --git a/src/arkode/fmod_int32/farkode_mod.c b/src/arkode/fmod_int32/farkode_mod.c index c4fc17a0d9..e03e2400c3 100644 --- a/src/arkode/fmod_int32/farkode_mod.c +++ b/src/arkode/fmod_int32/farkode_mod.c @@ -2700,6 +2700,19 @@ SWIGEXPORT void * _wrap_FARKodeButcherTable_LoadDIRKByName(SwigArrayWrapper *far } +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 ; @@ -2724,6 +2737,19 @@ SWIGEXPORT void * _wrap_FARKodeButcherTable_LoadERKByName(SwigArrayWrapper *farg } +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 ; diff --git a/src/arkode/fmod_int32/farkode_mod.f90 b/src/arkode/fmod_int32/farkode_mod.f90 index 74072cc11a..9cce933be3 100644 --- a/src/arkode/fmod_int32/farkode_mod.f90 +++ b/src/arkode/fmod_int32/farkode_mod.f90 @@ -38,6 +38,7 @@ module farkode_mod 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 @@ -330,6 +331,7 @@ module farkode_mod 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 @@ -371,6 +373,7 @@ module farkode_mod 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 @@ -1998,6 +2001,15 @@ function swigc_FARKodeButcherTable_LoadDIRKByName(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) @@ -2015,6 +2027,15 @@ function swigc_FARKodeButcherTable_LoadERKByName(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 @@ -5116,6 +5137,20 @@ function FARKodeButcherTable_LoadDIRKByName(imethod) & 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 @@ -5143,6 +5178,20 @@ function FARKodeButcherTable_LoadERKByName(emethod) & 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 diff --git a/src/arkode/fmod_int64/farkode_mod.c b/src/arkode/fmod_int64/farkode_mod.c index 61db05f83e..7cdfce3d3d 100644 --- a/src/arkode/fmod_int64/farkode_mod.c +++ b/src/arkode/fmod_int64/farkode_mod.c @@ -2700,6 +2700,19 @@ SWIGEXPORT void * _wrap_FARKodeButcherTable_LoadDIRKByName(SwigArrayWrapper *far } +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 ; @@ -2724,6 +2737,19 @@ SWIGEXPORT void * _wrap_FARKodeButcherTable_LoadERKByName(SwigArrayWrapper *farg } +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 ; diff --git a/src/arkode/fmod_int64/farkode_mod.f90 b/src/arkode/fmod_int64/farkode_mod.f90 index 182cf7fe2f..937e0be438 100644 --- a/src/arkode/fmod_int64/farkode_mod.f90 +++ b/src/arkode/fmod_int64/farkode_mod.f90 @@ -331,6 +331,7 @@ module farkode_mod 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 @@ -372,6 +373,7 @@ module farkode_mod 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 @@ -1999,6 +2001,15 @@ function swigc_FARKodeButcherTable_LoadDIRKByName(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) @@ -2016,6 +2027,15 @@ function swigc_FARKodeButcherTable_LoadERKByName(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 @@ -5117,6 +5137,20 @@ function FARKodeButcherTable_LoadDIRKByName(imethod) & 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 @@ -5144,6 +5178,20 @@ function FARKodeButcherTable_LoadERKByName(emethod) & 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 From fe2e1bff29a26fa3d8196bc2c99c271a21c1c930 Mon Sep 17 00:00:00 2001 From: "Balos, Cody, J" Date: Fri, 24 May 2024 09:14:11 -0700 Subject: [PATCH 64/70] fix answers commit --- test/answers | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/answers b/test/answers index a7784dcea1..3e91e1350a 160000 --- a/test/answers +++ b/test/answers @@ -1 +1 @@ -Subproject commit a7784dcea101f2240e883d26a0691998324beda4 +Subproject commit 3e91e1350a7d0495e2d5b8cdd614ecba809b4ebf From ebf3ff57c59d9bc2085fc6bef06d2d674fb248bc Mon Sep 17 00:00:00 2001 From: "Balos, Cody, J" Date: Thu, 30 May 2024 09:53:00 -0700 Subject: [PATCH 65/70] make requested changes in PR review --- CHANGELOG.md | 4 ++-- doc/shared/RecentChanges.rst | 4 ++-- doc/shared/nvectors/NVector_Description.rst | 12 ++++++------ .../source/developers/style_guide/SourceCode.rst | 4 ++-- 4 files changed, 12 insertions(+), 12 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e76ef81506..e386b2fd91 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -53,6 +53,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 @@ -94,8 +96,6 @@ Fixed a bug that caused error messages to be cut off in some cases. Fixes Fixed a memory leak when an error handler was added to a `SUNContext`. Fixes [GitHub Issue #466](https://github.com/LLNL/sundials/issues/466). -Enabled the Fortran interfaces to build with 32-bit `sunindextype`. - Fixed a bug where `MRIStepEvolve` would not handle a recoverable error produced from evolving the inner stepper. diff --git a/doc/shared/RecentChanges.rst b/doc/shared/RecentChanges.rst index 689a8644aa..9e63e69e8f 100644 --- a/doc/shared/RecentChanges.rst +++ b/doc/shared/RecentChanges.rst @@ -51,6 +51,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 @@ -93,8 +95,6 @@ Fixed a memory leak when an error handler was added to a :c:type:`SUNContext`. Fixes `GitHub Issue #466 `_. -Enabled the Fortran interfaces to build with 32-bit ``sunindextype``. - Fixed a bug where :c:func:`MRIStepEvolve` would not handle a recoverable error produced from evolving the inner stepper. diff --git a/doc/shared/nvectors/NVector_Description.rst b/doc/shared/nvectors/NVector_Description.rst index 12763adc04..f9ca95f18c 100644 --- a/doc/shared/nvectors/NVector_Description.rst +++ b/doc/shared/nvectors/NVector_Description.rst @@ -185,7 +185,7 @@ The functions :c:func:`N_VCloneVectorArray` and variables of type :c:type:`N_Vector`, each of the same type as an existing ``N_Vector`` input: -.. c:function:: N_Vector *N_VCloneVectorArray(sunindextype count, N_Vector w) +.. c:function:: N_Vector *N_VCloneVectorArray(int count, N_Vector w) Clones an array of ``count`` ``N_Vector`` objects, allocating their data arrays (similar to :c:func:`N_VClone`). @@ -198,7 +198,7 @@ variables of type :c:type:`N_Vector`, each of the same type as an existing * ``NULL`` pointer on failure. -.. c:function:: N_Vector *N_VCloneVectorArrayEmpty(sunindextype count, N_Vector w) +.. c:function:: N_Vector *N_VCloneVectorArrayEmpty(int count, N_Vector w) Clones an array of ``count`` ``N_Vector`` objects, leaving their data arrays unallocated (similar to :c:func:`N_VCloneEmpty`). @@ -215,7 +215,7 @@ An array of variables of type :c:type:`N_Vector` can be destroyed by calling :c:func:`N_VDestroyVectorArray`: -.. c:function:: void N_VDestroyVectorArray(N_Vector *vs, sunindextype count) +.. c:function:: void N_VDestroyVectorArray(N_Vector *vs, int count) Destroys an array of ``count`` ``N_Vector`` objects. @@ -243,7 +243,7 @@ that are wrapped as ``FN_NewVectorArray``, ``FN_VGetVecAtIndexVectorArray``, and set a vector within this array: -.. c:function:: N_Vector *N_VNewVectorArray(sunindextype count, SUNContext sunctx) +.. c:function:: N_Vector *N_VNewVectorArray(int count, SUNContext sunctx) Creates an array of ``count`` ``N_Vector`` objects, the pointers to each are initialized as ``NULL``. @@ -261,7 +261,7 @@ set a vector within this array: The function signature was updated to add the ``SUNContext`` argument. -.. c:function:: N_Vector *N_VGetVecAtIndexVectorArray(N_Vector* vs, sunindextype index) +.. c:function:: N_Vector *N_VGetVecAtIndexVectorArray(N_Vector* vs, int index) Accesses the ``N_Vector`` at the location ``index`` within the ``N_Vector`` array ``vs``. @@ -279,7 +279,7 @@ set a vector within this array: internally store its allocated length. -.. c:function:: void N_VSetVecAtIndexVectorArray(N_Vector* vs, sunindextype index, N_Vector w) +.. c:function:: void N_VSetVecAtIndexVectorArray(N_Vector* vs, int index, N_Vector w) Sets a pointer to ``w`` at the location ``index`` within the vector array ``vs``. diff --git a/doc/superbuild/source/developers/style_guide/SourceCode.rst b/doc/superbuild/source/developers/style_guide/SourceCode.rst index 4d41487199..8785f9065a 100644 --- a/doc/superbuild/source/developers/style_guide/SourceCode.rst +++ b/doc/superbuild/source/developers/style_guide/SourceCode.rst @@ -342,7 +342,7 @@ not adhere to all of these rules. uses ``return(x);``. #. Always use ``sunindextype`` for variables that are related to problem dimensions. - E.g., use it for the length of a vector, dimensions of a matrix, or for the number of vectors. + 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. @@ -374,7 +374,7 @@ for the tools respectively. To apply clang-format you can run: 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`. + (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, From 240a56362757b251752cd041bc8f19ad35c35f8d Mon Sep 17 00:00:00 2001 From: "Balos, Cody, J" Date: Thu, 30 May 2024 10:02:04 -0700 Subject: [PATCH 66/70] enable other examples that may work with 32-bit indices --- examples/arkode/F2003_parallel/CMakeLists.txt | 10 ++++++---- examples/cvode/F2003_serial/CMakeLists.txt | 3 +-- examples/cvodes/F2003_serial/CMakeLists.txt | 11 +++-------- 3 files changed, 10 insertions(+), 14 deletions(-) diff --git a/examples/arkode/F2003_parallel/CMakeLists.txt b/examples/arkode/F2003_parallel/CMakeLists.txt index 11965154c8..63c87909cf 100644 --- a/examples/arkode/F2003_parallel/CMakeLists.txt +++ b/examples/arkode/F2003_parallel/CMakeLists.txt @@ -17,12 +17,14 @@ # 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" +) if(SUNDIALS_INDEX_SIZE MATCHES "64") - 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" + 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") diff --git a/examples/cvode/F2003_serial/CMakeLists.txt b/examples/cvode/F2003_serial/CMakeLists.txt index 06610d8f4a..1a0458a11e 100644 --- a/examples/cvode/F2003_serial/CMakeLists.txt +++ b/examples/cvode/F2003_serial/CMakeLists.txt @@ -26,8 +26,7 @@ set(FCVODE_examples if(SUNDIALS_INDEX_SIZE MATCHES "64") # Examples using SUNDIALS linear solvers - set(FCVODE_examples - "cv_advdiff_bnd_f2003\;develop" + list(APPEND FCVODE_examples "cv_analytic_fp_f2003\;develop" "cv_analytic_sys_dns_f2003\;develop" "cv_analytic_sys_dns_jac_f2003\;develop" diff --git a/examples/cvodes/F2003_serial/CMakeLists.txt b/examples/cvodes/F2003_serial/CMakeLists.txt index bdbed1f1a0..667a6260c6 100644 --- a/examples/cvodes/F2003_serial/CMakeLists.txt +++ b/examples/cvodes/F2003_serial/CMakeLists.txt @@ -17,14 +17,9 @@ # Example lists are tuples "name\;args\;type" where the type is # 'develop' for examples excluded from 'make test' in releases set(FCVODES_examples - "cvs_analytic_fp_f2003\;\;develop") - -if(SUNDIALS_INDEX_SIZE MATCHES "64") - list(APPEND FCVODES_examples - "cvsAdvDiff_FSA_non_f2003\;-sensi stg t\;develop" - "cvsAdvDiff_FSA_non_f2003\;-sensi sim t\;develop" - ) -endif() + "cvs_analytic_fp_f2003\;\;develop" + "cvsAdvDiff_FSA_non_f2003\;-sensi stg t\;develop" + "cvsAdvDiff_FSA_non_f2003\;-sensi sim t\;develop") # Specify libraries to link against set(CVODES_LIB sundials_fcvodes_mod) From 2566b4d13280ba975ee23b58d0fb2831bb57d891 Mon Sep 17 00:00:00 2001 From: "Balos, Cody, J" Date: Wed, 12 Jun 2024 10:34:19 -0700 Subject: [PATCH 67/70] fix index type in two examples --- .../ark_brusselator1D_task_local_nls_f2003.f90 | 18 +++++++++--------- .../F2003_serial/cvsAdvDiff_FSA_non_f2003.f90 | 6 +++--- 2 files changed, 12 insertions(+), 12 deletions(-) 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 55fc1ecbb3..5bfe5c1db6 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 @@ -83,7 +83,7 @@ module ode_mod 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 @@ -97,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 @@ -1021,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 @@ -1113,7 +1113,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 @@ -1296,7 +1296,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 @@ -2152,7 +2152,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/cvodes/F2003_serial/cvsAdvDiff_FSA_non_f2003.f90 b/examples/cvodes/F2003_serial/cvsAdvDiff_FSA_non_f2003.f90 index fba84d62cf..25e75a14c5 100644 --- a/examples/cvodes/F2003_serial/cvsAdvDiff_FSA_non_f2003.f90 +++ b/examples/cvodes/F2003_serial/cvsAdvDiff_FSA_non_f2003.f90 @@ -78,9 +78,9 @@ module ode_problem real(c_double), parameter :: ATOL = 1e-5 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(c_int), parameter :: NS = 2 + integer(kind=myindextype), parameter :: MX = 10 + integer(kind=myindextype), parameter :: NEQ = MX ! problem constants real(c_double) :: ZERO = 0.d0 From 6368aa87530073f9934801f2ff89f610a5dce58b Mon Sep 17 00:00:00 2001 From: "Balos, Cody, J" Date: Wed, 12 Jun 2024 12:18:22 -0700 Subject: [PATCH 68/70] fix warning --- .../F2003_parallel/ark_brusselator1D_task_local_nls_f2003.f90 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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 5bfe5c1db6..d536e79a77 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 @@ -364,7 +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 : myindextype, Nvar, Npts, Neq, k2, k3, k4, k6 !======= Declarations ========= implicit none @@ -383,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 ============ From d6fa0de358746ae3ba73481b4b2e31874fd4f14c Mon Sep 17 00:00:00 2001 From: "Balos, Cody, J" Date: Wed, 12 Jun 2024 13:45:58 -0700 Subject: [PATCH 69/70] fix more warnings --- ...ark_brusselator1D_task_local_nls_f2003.f90 | 92 ++++++++++--------- 1 file changed, 47 insertions(+), 45 deletions(-) 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 d536e79a77..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 @@ -160,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 ============ @@ -247,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 ============ @@ -364,7 +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 : myindextype, Nvar, Npts, Neq, k2, k3, k4, k6 + use ode_mod, only : Nvar, Npts, Neq, k2, k3, k4, k6, myindextype !======= Declarations ========= implicit none @@ -586,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 ============ @@ -672,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 ============ @@ -1043,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 @@ -1051,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 @@ -1638,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 @@ -1649,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 @@ -1717,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 @@ -1731,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 ============ @@ -1995,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 ============ @@ -2053,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 @@ -2074,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. @@ -2115,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() @@ -2138,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 From ddf5e2aa357bdeac7abefb95816fa1a02cc7a2e5 Mon Sep 17 00:00:00 2001 From: "David J. Gardner" Date: Wed, 12 Jun 2024 15:23:45 -0700 Subject: [PATCH 70/70] update answers commit --- test/answers | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/answers b/test/answers index 710556f1e5..dd4aebcaa5 160000 --- a/test/answers +++ b/test/answers @@ -1 +1 @@ -Subproject commit 710556f1e509c5b520acdc0f303d33fef6afb996 +Subproject commit dd4aebcaa5a886746fa281c528d452fdae825cd2