c ilucg_wrapper.F77 -- wrapper routines for [sd]ilucg() c $Header$ c c These subroutines are wrappers around the [sd]ilucg() functions. c These subroutines take only integer/real/double precision arguments, c avoiding problems with C/C++ --> Fortran handling of the logical c result returned by [sd]ilucg(). c c Arguments: c istatus = (out) This is the "IE" return value from [sd]ilucg() c ierror = (out) This is returned as 0 for a normal return, c nonzero for an error return. c #include "config.h" #ifdef HAVE_ROW_SPARSE_JACOBIAN__ILUCG #ifdef FP_IS_FLOAT subroutine silucg_wrapper(n, $ ia, ja, a, $ b, x, $ itemp, rtemp, $ eps, iter, $ istatus, ierror) integer n integer ia(*), ja(*) real a(*), b(*), x(*) integer itemp(*) real rtemp(*) real eps integer iter, istatus, ierror c logical silucg c ierror = 0 if (silucg(n, $ ia, ja, a, $ b, x, $ itemp, rtemp, $ eps, iter, $ istatus)) ierror = 1 return end #endif /* FP_IS_FLOAT */ #endif /* HAVE_ROW_SPARSE_JACOBIAN__ILUCG */ #ifdef HAVE_ROW_SPARSE_JACOBIAN__ILUCG #ifdef FP_IS_DOUBLE subroutine dilucg_wrapper(n, $ ia, ja, a, $ b, x, $ itemp, rtemp, $ eps, iter, $ istatus, ierror) integer n integer ia(*), ja(*) double precision a(*), b(*), x(*) integer itemp(*) double precision rtemp(*) double precision eps integer iter, istatus, ierror c logical dilucg c ierror = 0 if (dilucg(n, $ ia, ja, a, $ b, x, $ itemp, rtemp, $ eps, iter, $ istatus)) ierror = 1 return end #endif /* FP_IS_DOUBLE */ #endif /* HAVE_ROW_SPARSE_JACOBIAN__ILUCG */