hypre/test/fsstruct_ls.f
2007-11-15 18:40:21 +00:00

2426 lines
65 KiB
Fortran

cBHEADER**********************************************************************
c Copyright (c) 2007, Lawrence Livermore National Laboratory, LLC.
c Produced at the Lawrence Livermore National Laboratory.
c Written by the HYPRE team. UCRL-CODE-222953.
c All rights reserved.
c
c This file is part of HYPRE (see http://www.llnl.gov/CASC/hypre/).
c Please see the COPYRIGHT_and_LICENSE file for the copyright notice,
c disclaimer, contact information and the GNU Lesser General Public License.
c
c HYPRE is free software; you can redistribute it and/or modify it under the
c terms of the GNU General Public License (as published by the Free Software
c Foundation) version 2.1 dated February 1999.
c
c HYPRE is distributed in the hope that it will be useful, but WITHOUT ANY
c WARRANTY; without even the IMPLIED WARRANTY OF MERCHANTABILITY or FITNESS
c FOR A PARTICULAR PURPOSE. See the terms and conditions of the GNU General
c Public License for more details.
c
c You should have received a copy of the GNU Lesser General Public License
c along with this program; if not, write to the Free Software Foundation,
c Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
c
c $Revision$
cEHEADER**********************************************************************
c****************************************************************************
c HYPRE_SStruct_ls fortran interface routines
c****************************************************************************
c****************************************************************************
c HYPRE_SStructBiCGSTAB routines
c****************************************************************************
c--------------------------------------------------------------------------
c HYPRE_SStructBiCGSTABCreate
c--------------------------------------------------------------------------
subroutine fhypre_sstructbicgstabcreate(fcomm, fsolver)
integer ierr
integer*8 fcomm
integer*8 fsolver
call HYPRE_SStructBiCGSTABCreate(fcomm, fsolver, ierr)
if(ierr .ne. 0) then
print *, 'fhypre_sstructbicgstabcreate error = ', ierr
endif
return
end
c--------------------------------------------------------------------------
c HYPRE_SStructBiCGSTABDestroy
c--------------------------------------------------------------------------
subroutine fhypre_sstructbicgstabdestroy(fsolver)
integer ierr
integer*8 fsolver
call HYPRE_SStructBiCGSTABDestroy(fsolver, ierr)
if(ierr .ne. 0) then
print *, 'fhypre_sstructbicgstabdestroy error = ', ierr
endif
return
end
c--------------------------------------------------------------------------
c HYPRE_SStructBiCGSTABSetup
c--------------------------------------------------------------------------
subroutine fhypre_sstructbicgstabsetup(fsolver, fA, fb, fx)
integer ierr
integer*8 fsolver
integer*8 fA
integer*8 fb
integer*8 fx
call HYPRE_SStructBiCGSTABSetup(fsolver, fA, fb, fx, ierr)
if(ierr .ne. 0) then
print *, 'fhypre_sstructbicgstabsetup error = ', ierr
endif
return
end
c--------------------------------------------------------------------------
c HYPRE_SStructBiCGSTABSolve
c--------------------------------------------------------------------------
subroutine fhypre_sstructbicgstabsolve(fsolver, fA, fb, fx)
integer ierr
integer*8 fsolver
integer*8 fA
integer*8 fb
integer*8 fx
call HYPRE_SStructBiCGSTABSolve(fsolver, fA, fb, fx, ierr)
if(ierr .ne. 0) then
print *, 'fhypre_sstructbicgstabsolve error = ', ierr
endif
return
end
c--------------------------------------------------------------------------
c HYPRE_SStructBiCGSTABSetTol
c--------------------------------------------------------------------------
subroutine fhypre_sstructbicgstabsettol(fsolver, ftol)
integer ierr
integer*8 fsolver
double precision ftol
call HYPRE_SStructBiCGSTABSetTol(fsolver, ftol, ierr)
if(ierr .ne. 0) then
print *, 'fhypre_sstructbicgstabsettol error = ', ierr
endif
return
end
c--------------------------------------------------------------------------
c HYPRE_SStructBiCGSTABSetMinIter
c--------------------------------------------------------------------------
subroutine fhypre_sstructbicgstabsetminite(fsolver, fmin_iter)
integer ierr
integer fmin_iter
integer*8 fsolver
call HYPRE_SStructBiCGSTABSetMinIter(fsolver, fmin_iter, ierr)
if(ierr .ne. 0) then
print *, 'fhypre_sstructbicgstabsetminiter error = ', ierr
endif
return
end
c--------------------------------------------------------------------------
c HYPRE_SStructBiCGSTABSetMaxIter
c--------------------------------------------------------------------------
subroutine fhypre_sstructbicgstabsetmaxite(fsolver, fmax_iter)
integer ierr
integer fmax_iter
integer*8 fsolver
call HYPRE_SStructBiCGSTABSetMaxIter(fsolver, fmax_iter, ierr)
if(ierr .ne. 0) then
print *, 'fhypre_sstructbicgstabsetmaxiter error = ', ierr
endif
return
end
c--------------------------------------------------------------------------
c HYPRE_SStructBiCGSTABSetStopCrit
c--------------------------------------------------------------------------
subroutine fhypre_sstructbicgstabsetstopcr(fsolver, fstop_crit)
integer ierr
integer fstop_crit
integer*8 fsolver
call HYPRE_SStructBiCGSTABSetStopCri(fsolver, fstop_crit, ierr)
if(ierr .ne. 0) then
print *, 'fhypre_sstructbicgstabsetstopcrit error = ', ierr
endif
return
end
c--------------------------------------------------------------------------
c HYPRE_SStructBiCGSTABSetPrecond
c--------------------------------------------------------------------------
subroutine fhypre_sstructbicgstabsetprecon(fsolver, fprecond_id,
1 fprecond)
integer ierr
integer fprecond_id
integer*8 fsolver
integer*8 fprecond
call HYPRE_SStructBiCGSTABSetPrecond(fsolver, fprecond_id,
1 fprecond, ierr)
if(ierr .ne. 0) then
print *, 'fhypre_sstructbicgstabsetprecond error = ', ierr
endif
return
end
c--------------------------------------------------------------------------
c HYPRE_SStructBiCGSTABSetLogging
c--------------------------------------------------------------------------
subroutine fhypre_sstructbicgstabsetloggin(fsolver, flog)
integer ierr
integer flog
integer*8 fsolver
call HYPRE_SStructBiCGSTABSetLogging(fsolver, flog, ierr)
if(ierr .ne. 0) then
print *, 'fhypre_sstructbicgstabsetlogging error = ', ierr
endif
return
end
c--------------------------------------------------------------------------
c HYPRE_SStructBiCGSTABSetPrintLevel
c--------------------------------------------------------------------------
subroutine fhypre_sstructbicgstabsetprintl(fsolver, fprint)
integer ierr
integer fprint
integer*8 fsolver
call HYPRE_SStructBiCGSTABSetPrintLe(fsolver, fprint, ierr)
if(ierr .ne. 0) then
print *, 'fhypre_sstructbicgstabsetprintlevel error = ', ierr
endif
return
end
c--------------------------------------------------------------------------
c HYPRE_SStructBiCGSTABGetNumIterations
c--------------------------------------------------------------------------
subroutine fhypre_sstructbicgstabgetnumite(fsolver, fnumiter)
integer ierr
integer fnumiter
integer*8 fsolver
call HYPRE_SStructBiCGSTABGetNumIter(fsolver, fnumiter,
1 ierr)
if(ierr .ne. 0) then
print *, 'fhypre_sstructbicgstabgetnumiterations error = ',
1 ierr
endif
return
end
c--------------------------------------------------------------------------
c HYPRE_SStructBiCGSTABGetFinalRelativeResidualNorm
c--------------------------------------------------------------------------
subroutine fhypre_sstructbicgstabgetfinalr(fsolver, fnorm)
integer ierr
integer*8 fsolver
double precision fnorm
call HYPRE_SStructBiCGSTABGetFinalRe(fsolver, fnorm, ierr)
if(ierr .ne. 0) then
print *, 'fhypre_sstructbicgstabgetfinalrelative error = ',
1 ierr
endif
return
end
c--------------------------------------------------------------------------
c HYPRE_SStructBiCGSTABGetResidual
c--------------------------------------------------------------------------
subroutine fhypre_sstructbicgstabgetresidu(fsolver, fresidual)
integer ierr
integer*8 fsolver
integer*8 fresidual
call HYPRE_SStructBiCGSTABGetResidua(fsolver, fresidual, ierr)
if(ierr .ne. 0) then
print *, 'fhypre_sstructbicgstabgetresidual error = ', ierr
endif
return
end
c****************************************************************************
c HYPRE_SStructGMRES routines
c****************************************************************************
c--------------------------------------------------------------------------
c HYPRE_SStructGMRESCreate
c--------------------------------------------------------------------------
subroutine fhypre_sstructgmrescreate(fcomm, fsolver)
integer ierr
integer*8 fcomm
integer*8 fsolver
call HYPRE_SStructGMRESCreate(fcomm, fsolver, ierr)
if(ierr .ne. 0) then
print *, 'fhypre_sstructgmrescreate error = ', ierr
endif
return
end
c--------------------------------------------------------------------------
c HYPRE_SStructGMRESDestroy
c--------------------------------------------------------------------------
subroutine fhypre_sstructgmresdestroy(fsolver)
integer ierr
integer*8 fsolver
call HYPRE_SStructGMRESDestroy(fsolver, ierr)
if(ierr .ne. 0) then
print *, 'fhypre_sstructgmresdestroy error = ', ierr
endif
return
end
c--------------------------------------------------------------------------
c HYPRE_SStructGMRESSetup
c--------------------------------------------------------------------------
subroutine fhypre_sstructgmressetup(fsolver, fA, fb, fx)
integer ierr
integer*8 fsolver
integer*8 fA
integer*8 fb
integer*8 fx
call HYPRE_SStructGMRESSetup(fsolver, fA, fb, fx, ierr)
if(ierr .ne. 0) then
print *, 'fhypre_sstructgmressetup error = ', ierr
endif
return
end
c--------------------------------------------------------------------------
c HYPRE_SStructGMRESSolve
c--------------------------------------------------------------------------
subroutine fhypre_sstructgmressolve(fsolver, fA, fb, fx)
integer ierr
integer*8 fsolver
integer*8 fA
integer*8 fb
integer*8 fx
call HYPRE_SStructGMRESSolve(fsolver, fA, fb, fx, ierr)
if(ierr .ne. 0) then
print *, 'fhypre_sstructgmressolve error = ', ierr
endif
return
end
c--------------------------------------------------------------------------
c HYPRE_SStructGMRESSetKDim
c--------------------------------------------------------------------------
subroutine fhypre_sstructgmressetkdim(fsolver, fkdim)
integer ierr
integer fkdim
integer*8 fsolver
call HYPRE_SStructGMRESSetKDim(fsolver, fkdim, ierr)
if(ierr .ne. 0) then
print *, 'fhypre_sstructgmressetkdim error = ', ierr
endif
return
end
c--------------------------------------------------------------------------
c HYPRE_SStructGMRESSetTol
c--------------------------------------------------------------------------
subroutine fhypre_sstructgmressettol(fsolver, ftol)
integer ierr
integer*8 fsolver
double precision ftol
call HYPRE_SStructGMRESSetTol(fsolver, ftol, ierr)
if(ierr .ne. 0) then
print *, 'fhypre_sstructgmressettol error = ', ierr
endif
return
end
c--------------------------------------------------------------------------
c HYPRE_SStructGMRESSetMinIter
c--------------------------------------------------------------------------
subroutine fhypre_sstructgmressetminiter(fsolver, fmin_iter)
integer ierr
integer fmin_iter
integer*8 fsolver
call HYPRE_SStructGMRESSetMinIter(fsolver, fmin_iter, ierr)
if(ierr .ne. 0) then
print *, 'fhypre_sstructgmressetminiter error = ', ierr
endif
return
end
c--------------------------------------------------------------------------
c HYPRE_SStructGMRESSetMaxIter
c--------------------------------------------------------------------------
subroutine fhypre_sstructgmressetmaxiter(fsolver, fmax_iter)
integer ierr
integer fmax_iter
integer*8 fsolver
call HYPRE_SStructGMRESSetMaxIter(fsolver, fmax_iter, ierr)
if(ierr .ne. 0) then
print *, 'fhypre_sstructgmressetmaxiter error = ', ierr
endif
return
end
c--------------------------------------------------------------------------
c HYPRE_SStructGMRESSetStopCrit
c--------------------------------------------------------------------------
subroutine fhypre_sstructgmressetstopcrit(fsolver, fstop_crit)
integer ierr
integer fstop_crit
integer*8 fsolver
call HYPRE_SStructGMRESSetStopCrit(fsolver, fstop_crit, ierr)
if(ierr .ne. 0) then
print *, 'fhypre_sstructgmressetstopcrit error = ', ierr
endif
return
end
c--------------------------------------------------------------------------
c HYPRE_SStructGMRESSetPrecond
c--------------------------------------------------------------------------
subroutine fhypre_sstructgmressetprecond(fsolver, fprecond_id,
1 fprecond)
integer ierr
integer fprecond_id
integer*8 fsolver
integer*8 fprecond
call HYPRE_SStructGMRESSetPrecond(fsolver, fprecond_id, fprecond,
1 ierr)
if(ierr .ne. 0) then
print *, 'fhypre_sstructgmressetprecond error = ', ierr
endif
return
end
c--------------------------------------------------------------------------
c HYPRE_SStructGMRESSetLogging
c--------------------------------------------------------------------------
subroutine fhypre_sstructgmressetlogging(fsolver, flog)
integer ierr
integer flog
integer*8 fsolver
call HYPRE_SStructGMRESSetLogging(fsolver, flog, ierr)
if(ierr .ne. 0) then
print *, 'fhypre_sstructgmressetlogging error = ', ierr
endif
return
end
c--------------------------------------------------------------------------
c HYPRE_SStructGMRESSetPrintLevel
c--------------------------------------------------------------------------
subroutine fhypre_sstructgmressetprintleve(fsolver, flevel)
integer ierr
integer flevel
integer*8 fsolver
call HYPRE_SStructGMRESSetPrintLevel(fsolver, flevel, ierr)
if(ierr .ne. 0) then
print *, 'fhypre_sstructgmressetprintlevel error = ', ierr
endif
return
end
c--------------------------------------------------------------------------
c HYPRE_SStructGMRESGetNumIterations
c--------------------------------------------------------------------------
subroutine fhypre_sstructgmresgetnumiterat(fsolver, fnumiter)
integer ierr
integer fnumiter
integer*8 fsolver
call HYPRE_SStructGMRESGetNumIterati(fsolver, fnumiter, ierr)
if(ierr .ne. 0) then
print *, 'fhypre_sstructgmresgetnumiteration error = ', ierr
endif
return
end
c--------------------------------------------------------------------------
c HYPRE_SStructGMRESGetFinalRelativeResidualNorm
c--------------------------------------------------------------------------
subroutine fhypre_sstructgmresgetfinalrela(fsolver, fnorm)
integer ierr
integer*8 fsolver
double precision fnorm
call HYPRE_SStructGMRESGetFinalRelat(fsolver, fnorm, ierr)
if(ierr .ne. 0) then
print *, 'fhypre_sstructgmresgetfinalrelative error = ', ierr
endif
return
end
c--------------------------------------------------------------------------
c HYPRE_SStructGMRESGetResidual
c--------------------------------------------------------------------------
subroutine fhypre_sstructgmresgetresidual(fsolver, fresidual)
integer ierr
integer*8 fsolver
integer*8 fresidual
call HYPRE_SStructGMRESGetResidual(fsolver, fresidual, ierr)
if(ierr .ne. 0) then
print *, 'fhypre_sstructgmresgetresidual error = ', ierr
endif
return
end
c****************************************************************************
c HYPRE_SStructInterpreter routines
c****************************************************************************
c--------------------------------------------------------------------------
c HYPRE_SStructPVectorSetRandomValues
c--------------------------------------------------------------------------
subroutine fhypre_sstructpvectorsetrandomv(fsolver, fseed)
integer ierr
integer*8 fsolver
integer*8 fseed
call HYPRE_SStructPVectorSetRandomVa(fsolver, fseed, ierr)
if(ierr .ne. 0) then
print *, 'fhypre_sstructpvectorsetrandomvalues error = ', ierr
endif
return
end
c--------------------------------------------------------------------------
c HYPRE_SStructVectorSetRandomValues
c--------------------------------------------------------------------------
subroutine fhypre_sstructvectorsetrandomva(fsolver, fseed)
integer ierr
integer*8 fsolver
integer*8 fseed
call HYPRE_SStructVectorSetRandomVal(fsolver, fseed, ierr)
if(ierr .ne. 0) then
print *, 'fhypre_sstructvectorsetrandomvalues error = ', ierr
endif
return
end
c--------------------------------------------------------------------------
c HYPRE_SStructSetRandomValues
c--------------------------------------------------------------------------
subroutine fhypre_sstructsetrandomvalues(fsolver, fseed)
integer ierr
integer*8 fsolver
integer*8 fseed
call HYPRE_SStructSetRandomValues(fsolver, fseed, ierr)
if(ierr .ne. 0) then
print *, 'fhypre_sstructsetrandomvalues error = ', ierr
endif
return
end
c--------------------------------------------------------------------------
c HYPRE_SStructSetupInterpreter
c--------------------------------------------------------------------------
subroutine fhypre_sstructsetupinterpreter(fsolver)
integer ierr
integer*8 fsolver
call HYPRE_SStructSetupInterpreter(fsolver, ierr)
if(ierr .ne. 0) then
print *, 'fhypre_sstructsetupinterpreter error = ', ierr
endif
return
end
c--------------------------------------------------------------------------
c HYPRE_SStructSetupMatvec
c--------------------------------------------------------------------------
subroutine fhypre_sstructsetupmatvec(fsolver)
integer ierr
integer*8 fsolver
call HYPRE_SStructSetupMatvec(fsolver, ierr)
if(ierr .ne. 0) then
print *, 'fhypre_sstructsetupmatvec error = ', ierr
endif
return
end
c****************************************************************************
c HYPRE_SStructFAC routines
c****************************************************************************
c--------------------------------------------------------------------------
c HYPRE_SStructFACCreate
c--------------------------------------------------------------------------
subroutine fhypre_sstructfaccreate(fcomm, fsolver)
integer ierr
integer*8 fcomm
integer*8 fsolver
call HYPRE_SStructFACCreate(fcomm, fsolver, ierr)
if(ierr .ne. 0) then
print *, 'fhypre_sstructfaccreate error = ', ierr
endif
return
end
c--------------------------------------------------------------------------
c HYPRE_SStructFACDestroy2
c--------------------------------------------------------------------------
subroutine fhypre_sstructfacdestroy2(fsolver)
integer ierr
integer*8 fsolver
call HYPRE_SStructFACDestroy2(fsolver, ierr)
if(ierr .ne. 0) then
print *, 'fhypre_sstructfacdestroy2 error = ', ierr
endif
return
end
c--------------------------------------------------------------------------
c HYPRE_SStructFACSetup2
c--------------------------------------------------------------------------
subroutine fhypre_sstructfacsetup2(fsolver, fA, fb, fx)
integer ierr
integer*8 fsolver
integer*8 fA
integer*8 fb
integer*8 fx
call HYPRE_SStructFACSetup2(fsolver, fA, fb, fx, ierr)
if(ierr .ne. 0) then
print *, 'fhypre_sstructfacsetup2 error = ', ierr
endif
return
end
c--------------------------------------------------------------------------
c HYPRE_SStructFACSolve3
c--------------------------------------------------------------------------
subroutine fhypre_sstructfacsolve3(fsolver, fA, fb, fx)
integer ierr
integer*8 fsolver
integer*8 fA
integer*8 fb
integer*8 fx
call HYPRE_SStructFACSolve3(fsolver, fA, fb, fx, ierr)
if(ierr .ne. 0) then
print *, 'fhypre_sstructfacsolve3 error = ', ierr
endif
return
end
c--------------------------------------------------------------------------
c HYPRE_SStructFACSetTol
c--------------------------------------------------------------------------
subroutine fhypre_sstructfacsettol(fsolver, ftol)
integer ierr
integer*8 fsolver
integer*8 ftol
call HYPRE_SStructFACSetTol(fsolver, ftol, ierr)
if(ierr .ne. 0) then
print *, 'fhypre_sstructfacsettol error = ', ierr
endif
return
end
c--------------------------------------------------------------------------
c HYPRE_SStructFACSetPLevels
c--------------------------------------------------------------------------
subroutine fhypre_sstructfacsetplevels(fsolver, fnparts, fplevels)
integer ierr
integer*8 fsolver
integer*8 fnparts
integer*8 fplevels
call HYPRE_SStructFACSetPLevels(fsolver, fnparts, fplevels, ierr)
if(ierr .ne. 0) then
print *, 'fhypre_sstructfacsetplevels error = ', ierr
endif
return
end
c--------------------------------------------------------------------------
c HYPRE_SStructFACSetPRefinements
c--------------------------------------------------------------------------
subroutine fhypre_sstructfacsetprefinement(fsolver, fnparts,
1 frfactors)
integer ierr
integer*8 fsolver
integer*8 fnparts
integer*8 frfactors(3)
call HYPRE_SStructFACSetPRefinements(fsolver, fnparts, frfactors,
1 ierr)
if(ierr .ne. 0) then
print *, 'fhypre_sstructfacsetprefinements error = ', ierr
endif
return
end
c--------------------------------------------------------------------------
c HYPRE_SStructFACSetMaxLevels
c--------------------------------------------------------------------------
subroutine fhypre_sstructfacsetmaxlevels(fsolver, fmaxlevels)
integer ierr
integer*8 fsolver
integer*8 fmaxlevels
call HYPRE_SStructFACSetMaxLevels(fsolver, fmaxlevels, ierr)
if(ierr .ne. 0) then
print *, 'fhypre_sstructfacsetmaxlevels error = ', ierr
endif
return
end
c--------------------------------------------------------------------------
c HYPRE_SStructFACSetMaxIter
c--------------------------------------------------------------------------
subroutine fhypre_sstructfacsetmaxiter(fsolver, fmaxiter)
integer ierr
integer*8 fsolver
integer*8 fmaxiter
call HYPRE_SStructFACSetMaxIter(fsolver, fmaxiter, ierr)
if(ierr .ne. 0) then
print *, 'fhypre_sstructfacsetmaxiter error = ', ierr
endif
return
end
c--------------------------------------------------------------------------
c HYPRE_SStructFACSetRelChange
c--------------------------------------------------------------------------
subroutine fhypre_sstructfacsetrelchange(fsolver, frelchange)
integer ierr
integer*8 fsolver
integer*8 frelchange
call HYPRE_SStructFACSetRelChange(fsolver, frelchange, ierr)
if(ierr .ne. 0) then
print *, 'fhypre_sstructfacsetrelchange error = ', ierr
endif
return
end
c--------------------------------------------------------------------------
c HYPRE_SStructFACSetZeroGuess
c--------------------------------------------------------------------------
subroutine fhypre_sstructfacsetzeroguess(fsolver)
integer ierr
integer*8 fsolver
call HYPRE_SStructFACSetZeroGuess(fsolver, ierr)
if(ierr .ne. 0) then
print *, 'fhypre_sstructfacsetzeroguess error = ', ierr
endif
return
end
c--------------------------------------------------------------------------
c HYPRE_SStructFACSetNonZeroGuess
c--------------------------------------------------------------------------
subroutine fhypre_sstructfacsetnonzerogues(fsolver)
integer ierr
integer*8 fsolver
call HYPRE_SStructFACSetNonZeroGuess(fsolver, ierr)
if(ierr .ne. 0) then
print *, 'fhypre_sstructfacsetnonzeroguess error = ', ierr
endif
return
end
c--------------------------------------------------------------------------
c HYPRE_SStructFACSetRelaxType
c--------------------------------------------------------------------------
subroutine fhypre_sstructfacsetrelaxtype(fsolver, frelaxtype)
integer ierr
integer*8 fsolver
integer*8 frelaxtype
call HYPRE_SStructFACSetRelaxType(fsolver, frelaxtype, ierr)
if(ierr .ne. 0) then
print *, 'fhypre_sstructfacsetrelaxtype error = ', ierr
endif
return
end
c--------------------------------------------------------------------------
c HYPRE_SStructFACSetNumPreRelax
c--------------------------------------------------------------------------
subroutine fhypre_sstructfacsetnumprerelax(fsolver, fnumprerelax)
integer ierr
integer*8 fsolver
integer*8 fnumprerelax
call HYPRE_SStructFACSetNumPreRelax(fsolver, fnumprerelax, ierr)
if(ierr .ne. 0) then
print *, 'fhypre_sstructfacsetnumprerelax error = ', ierr
endif
return
end
c--------------------------------------------------------------------------
c HYPRE_SStructFACSetNumPostRelax
c--------------------------------------------------------------------------
subroutine fhypre_sstructfacsetnumpostrela(fsolver,
1 fnumpostrelax)
integer ierr
integer*8 fsolver
integer*8 fnumpostrelax
call HYPRE_SStructFACSetNumPostRelax(fsolver, fnumpostrelax, ierr)
if(ierr .ne. 0) then
print *, 'fhypre_sstructfacsetnumpostrelax error = ', ierr
endif
return
end
c--------------------------------------------------------------------------
c HYPRE_SStructFACSetCoarseSolverType
c--------------------------------------------------------------------------
subroutine fhypre_sstructfacsetcoarsesolve(fsolver,
1 fcsolvertype)
integer ierr
integer*8 fsolver
integer*8 fcsolvertype
call HYPRE_SStructFACSetCoarseSolver(fsolver, fcsolvertype,
1 ierr)
if(ierr .ne. 0) then
print *, 'fhypre_sstructfacsetcoarsesolvertype error = ', ierr
endif
return
end
c--------------------------------------------------------------------------
c HYPRE_SStructFACSetLogging
c--------------------------------------------------------------------------
subroutine fhypre_sstructfacsetlogging(fsolver, flog)
integer ierr
integer flog
integer*8 fsolver
call HYPRE_SStructFACSetLogging(fsolver, flog, ierr)
if(ierr .ne. 0) then
print *, 'fhypre_sstructfacsetlogging error = ', ierr
endif
return
end
c--------------------------------------------------------------------------
c HYPRE_SStructFACGetNumIterations
c--------------------------------------------------------------------------
subroutine fhypre_sstructfacgetnumiteratio(fsolver, fnumiter)
integer ierr
integer fnumiter
integer*8 fsolver
call HYPRE_SStructFACGetNumIteration(fsolver, fnumiter, ierr)
if(ierr .ne. 0) then
print *, 'fhypre_sstructfacgetnumiteration error = ', ierr
endif
return
end
c--------------------------------------------------------------------------
c HYPRE_SStructFACGetFinalRelativeResidualNorm
c--------------------------------------------------------------------------
subroutine fhypre_sstructfacgetfinalrelati(fsolver, fnorm)
integer ierr
integer*8 fsolver
double precision fnorm
call HYPRE_SStructFACGetFinalRelativ(fsolver, fnorm, ierr)
if(ierr .ne. 0) then
print *, 'fhypre_sstructfacgetfinalrelative error = ', ierr
endif
return
end
c****************************************************************************
c HYPRE_SStructPCG routines
c****************************************************************************
c--------------------------------------------------------------------------
c HYPRE_SStructPCGCreate
c--------------------------------------------------------------------------
subroutine fhypre_sstructpcgcreate(fcomm, fsolver)
integer ierr
integer*8 fcomm
integer*8 fsolver
call HYPRE_SStructPCGCreate(fcomm, fsolver, ierr)
if(ierr .ne. 0) then
print *, 'fhypre_sstructpcgcreate error = ', ierr
endif
return
end
c--------------------------------------------------------------------------
c HYPRE_SStructPCGDestroy
c--------------------------------------------------------------------------
subroutine fhypre_sstructpcgdestroy(fsolver)
integer ierr
integer*8 fsolver
call HYPRE_SStructPCGDestroy(fsolver, ierr)
if(ierr .ne. 0) then
print *, 'fhypre_sstructpcgdestroy error = ', ierr
endif
return
end
c--------------------------------------------------------------------------
c HYPRE_SStructPCGSetup
c--------------------------------------------------------------------------
subroutine fhypre_sstructpcgsetup(fsolver, fA, fb, fx)
integer ierr
integer*8 fsolver
integer*8 fA
integer*8 fb
integer*8 fx
call HYPRE_SStructPCGSetup(fsolver, fA, fb, fx, ierr)
if(ierr .ne. 0) then
print *, 'fhypre_sstructpcgsetup error = ', ierr
endif
return
end
c--------------------------------------------------------------------------
c HYPRE_SStructPCGSolve
c--------------------------------------------------------------------------
subroutine fhypre_sstructpcgsolve(fsolver, fA, fb, fx)
integer ierr
integer*8 fsolver
integer*8 fA
integer*8 fb
integer*8 fx
call HYPRE_SStructPCGSolve(fsolver, fA, fb, fx, ierr)
if(ierr .ne. 0) then
print *, 'fhypre_sstructpcgsolve error = ', ierr
endif
return
end
c--------------------------------------------------------------------------
c HYPRE_SStructPCGSetTol
c--------------------------------------------------------------------------
subroutine fhypre_sstructpcgsettol(fsolver, ftol)
integer ierr
integer*8 fsolver
double precision ftol
call HYPRE_SStructPCGSetTol(fsolver, ftol, ierr)
if(ierr .ne. 0) then
print *, 'fhypre_sstructpcgsettol error = ', ierr
endif
return
end
c--------------------------------------------------------------------------
c HYPRE_SStructPCGSetMaxIter
c--------------------------------------------------------------------------
subroutine fhypre_sstructpcgsetmaxiter(fsolver, fmax_iter)
integer ierr
integer fmax_iter
integer*8 fsolver
call HYPRE_SStructPCGSetMaxIter(fsolver, fmax_iter, ierr)
if(ierr .ne. 0) then
print *, 'fhypre_sstructpcgsetmaxiter error = ', ierr
endif
return
end
c--------------------------------------------------------------------------
c HYPRE_SStructPCGSetTwoNorm
c--------------------------------------------------------------------------
subroutine fhypre_sstructpcgsettwonorm(fsolver, ftwo_norm)
integer ierr
integer ftwo_norm
integer*8 fsolver
call HYPRE_SStructPCGSetTwoNorm(fsolver, ftwo_norm, ierr)
if(ierr .ne. 0) then
print *, 'fhypre_sstructpcgsettwonorm error = ', ierr
endif
return
end
c--------------------------------------------------------------------------
c HYPRE_SStructPCGSetRelChange
c--------------------------------------------------------------------------
subroutine fhypre_sstructpcgsetrelchange(fsolver, frel_change)
integer ierr
integer frel_change
integer*8 fsolver
call HYPRE_SStructPCGSetRelChange(fsolver, frel_change, ierr)
if(ierr .ne. 0) then
print *, 'fhypre_sstructpcgsetrelchange error = ', ierr
endif
return
end
c--------------------------------------------------------------------------
c HYPRE_SStructPCGSetPrecond
c--------------------------------------------------------------------------
subroutine fhypre_sstructpcgsetprecond(fsolver, fprecond_id,
1 fprecond)
integer ierr
integer fprecond_id
integer*8 fsolver
integer*8 fprecond
call HYPRE_SStructPCGSetPrecond(fsolver, fprecond_id, fprecond,
1 ierr)
if(ierr .ne. 0) then
print *, 'fhypre_sstructpcgsetprecond error = ', ierr
endif
return
end
c--------------------------------------------------------------------------
c HYPRE_SStructPCGSetLogging
c--------------------------------------------------------------------------
subroutine fhypre_sstructpcgsetlogging(fsolver, flog)
integer ierr
integer flog
integer*8 fsolver
call HYPRE_SStructPCGSetLogging(fsolver, flog, ierr)
if(ierr .ne. 0) then
print *, 'fhypre_sstructpcgsetlogging error = ', ierr
endif
return
end
c--------------------------------------------------------------------------
c HYPRE_SStructPCGSetPrintLevel
c--------------------------------------------------------------------------
subroutine fhypre_sstructpcgsetprintlevel(fsolver, flevel)
integer ierr
integer flevel
integer*8 fsolver
call HYPRE_SStructPCGSetPrintLevel(fsolver, flevel, ierr)
if(ierr .ne. 0) then
print *, 'fhypre_sstructpcgsetprintlevel error = ', ierr
endif
return
end
c--------------------------------------------------------------------------
c HYPRE_SStructPCGGetNumIterations
c--------------------------------------------------------------------------
subroutine fhypre_sstructpcggetnumiteratio(fsolver, fnumiter)
integer ierr
integer fnumiter
integer*8 fsolver
call HYPRE_SStructPCGGetNumIteration(fsolver, fnumiter, ierr)
if(ierr .ne. 0) then
print *, 'fhypre_sstructpcggetnumiteration error = ', ierr
endif
return
end
c--------------------------------------------------------------------------
c HYPRE_SStructPCGGetFinalRelativeResidualNorm
c--------------------------------------------------------------------------
subroutine fhypre_sstructpcggetfinalrelati(fsolver, fnorm)
integer ierr
integer*8 fsolver
double precision fnorm
call HYPRE_SStructPCGGetFinalRelativ(fsolver, fnorm, ierr)
if(ierr .ne. 0) then
print *, 'fhypre_sstructpcggetfinalrelative error = ', ierr
endif
return
end
c--------------------------------------------------------------------------
c HYPRE_SStructPCGGetResidual
c--------------------------------------------------------------------------
subroutine fhypre_sstructpcggetresidual(fsolver, fresidual)
integer ierr
integer*8 fsolver
integer*8 fresidual
call HYPRE_SStructPCGGetResidual(fsolver, fresidual, ierr)
if(ierr .ne. 0) then
print *, 'fhypre_sstructpcggetresidual error = ', ierr
endif
return
end
c--------------------------------------------------------------------------
c HYPRE_SStructDiagScaleSetup
c--------------------------------------------------------------------------
subroutine fhypre_sstructdiagscalesetup(fsolver, fA, fy, fx)
integer ierr
integer*8 fsolver
integer*8 fA
integer*8 fy
integer*8 fx
call HYPRE_SStructDiagScaleSetup(fsolver, fA, fy, fx, ierr)
if(ierr .ne. 0) then
print *, 'fhypre_sstructdiagscalesetup error = ', ierr
endif
return
end
c--------------------------------------------------------------------------
c HYPRE_SStructDiagScale
c--------------------------------------------------------------------------
subroutine fhypre_sstructdiagscale(fsolver, fA, fy, fx)
integer ierr
integer*8 fsolver
integer*8 fA
integer*8 fy
integer*8 fx
call HYPRE_SStructDiagScale(fsolver, fA, fy, fx, ierr)
if(ierr .ne. 0) then
print *, 'fhypre_sstructdiagscale error = ', ierr
endif
return
end
c****************************************************************************
c HYPRE_SStructSplit routines
c****************************************************************************
c--------------------------------------------------------------------------
c HYPRE_SStructSplitCreate
c--------------------------------------------------------------------------
subroutine fhypre_sstructsplitcreate(fcomm, fsolver)
integer ierr
integer*8 fcomm
integer*8 fsolver
call HYPRE_SStructSplitCreate(fcomm, fsolver, ierr)
if(ierr .ne. 0) then
print *, 'fhypre_sstructsplitcreate error = ', ierr
endif
return
end
c--------------------------------------------------------------------------
c HYPRE_SStructSplitDestroy
c--------------------------------------------------------------------------
subroutine fhypre_sstructsplitdestroy(fsolver)
integer ierr
integer*8 fsolver
call HYPRE_SStructSplitDestroy(fsolver, ierr)
if(ierr .ne. 0) then
print *, 'fhypre_sstructsplitdestroy error = ', ierr
endif
return
end
c--------------------------------------------------------------------------
c HYPRE_SStructSplitSetup
c--------------------------------------------------------------------------
subroutine fhypre_sstructsplitsetup(fsolver, fA, fb, fx)
integer ierr
integer*8 fsolver
integer*8 fA
integer*8 fb
integer*8 fx
call HYPRE_SStructSplitSetup(fsolver, fA, fb, fx, ierr)
if(ierr .ne. 0) then
print *, 'fhypre_sstructsplitsetup error = ', ierr
endif
return
end
c--------------------------------------------------------------------------
c HYPRE_SStructSplitSolve
c--------------------------------------------------------------------------
subroutine fhypre_sstructsplitsolve(fsolver, fA, fb, fx)
integer ierr
integer*8 fsolver
integer*8 fA
integer*8 fb
integer*8 fx
call HYPRE_SStructSplitSolve(fsolver, fA, fb, fx, ierr)
if(ierr .ne. 0) then
print *, 'fhypre_sstructsplitsolve error = ', ierr
endif
return
end
c--------------------------------------------------------------------------
c HYPRE_SStructSplitSetTol
c--------------------------------------------------------------------------
subroutine fhypre_sstructsplitsettol(fsolver, ftol)
integer ierr
integer*8 fsolver
double precision ftol
call HYPRE_SStructSplitSetTol(fsolver, ftol, ierr)
if(ierr .ne. 0) then
print *, 'fhypre_sstructsplitsettol error = ', ierr
endif
return
end
c--------------------------------------------------------------------------
c HYPRE_SStructSplitSetMaxIter
c--------------------------------------------------------------------------
subroutine fhypre_sstructsplitsetmaxiter(fsolver, fmax_iter)
integer ierr
integer fmax_iter
integer*8 fsolver
call HYPRE_SStructSplitSetMaxIter(fsolver, fmax_iter, ierr)
if(ierr .ne. 0) then
print *, 'fhypre_sstructsplitsetmaxiter error = ', ierr
endif
return
end
c--------------------------------------------------------------------------
c HYPRE_SStructSplitSetZeroGuess
c--------------------------------------------------------------------------
subroutine fhypre_sstructsplitsetzeroguess(fsolver)
integer ierr
integer*8 fsolver
call HYPRE_SStructSplitSetZeroGuess(fsolver, ierr)
if(ierr .ne. 0) then
print *, 'fhypre_sstructsplitsetzeroguess error = ', ierr
endif
return
end
c--------------------------------------------------------------------------
c HYPRE_SStructSplitSetNonZeroGuess
c--------------------------------------------------------------------------
subroutine fhypre_sstructsplitsetnonzerogu(fsolver)
integer ierr
integer*8 fsolver
call HYPRE_SStructSplitSetNonZeroGue(fsolver, ierr)
if(ierr .ne. 0) then
print *, 'fhypre_sstructsplitsetnonzeroguess error = ', ierr
endif
return
end
c--------------------------------------------------------------------------
c HYPRE_SStructSplitSetStructSolver
c--------------------------------------------------------------------------
subroutine fhypre_sstructsplitsetstructsol(fsolver, fssolver)
integer ierr
integer fssolver
integer*8 fsolver
call HYPRE_SStructSplitSetStructSolv(fsolver, fssolver, ierr)
if(ierr .ne. 0) then
print *, 'fhypre_sstructsplitsetstructsolve error = ', ierr
endif
return
end
c--------------------------------------------------------------------------
c HYPRE_SStructSplitGetNumIterations
c--------------------------------------------------------------------------
subroutine fhypre_sstructsplitgetnumiterat(fsolver, fnumiter)
integer ierr
integer fnumiter
integer*8 fsolver
call HYPRE_SStructSplitGetNumIterati(fsolver, fnumiter, ierr)
if(ierr .ne. 0) then
print *, 'fhypre_sstructsplitgetnumiteration error = ', ierr
endif
return
end
c--------------------------------------------------------------------------
c HYPRE_SStructSplitGetFinalRelativeResidualNorm
c--------------------------------------------------------------------------
subroutine fhypre_sstructsplitgetfinalrela(fsolver, fnorm)
integer ierr
integer*8 fsolver
double precision fnorm
call HYPRE_SStructSplitGetFinalRelat(fsolver, fnorm, ierr)
if(ierr .ne. 0) then
print *, 'fhypre_sstructsplitgetfinalrelative error = ', ierr
endif
return
end
c****************************************************************************
c HYPRE_SStructSYSPFMG routines
c****************************************************************************
c--------------------------------------------------------------------------
c HYPRE_SStructSysPFMGCreate
c--------------------------------------------------------------------------
subroutine fhypre_sstructsyspfmgcreate(fcomm, fsolver)
integer ierr
integer*8 fcomm
integer*8 fsolver
call HYPRE_SStructSysPFMGCreate(fcomm, fsolver, ierr)
if(ierr .ne. 0) then
print *, 'fhypre_sstructsyspfmgcreate error = ', ierr
endif
return
end
c--------------------------------------------------------------------------
c HYPRE_SStructSysPFMGDestroy
c--------------------------------------------------------------------------
subroutine fhypre_sstructsyspfmgdestroy(fsolver)
integer ierr
integer*8 fsolver
call HYPRE_SStructSysPFMGDestroy(fsolver, ierr)
if(ierr .ne. 0) then
print *, 'fhypre_sstructsyspfmgdestroy error = ', ierr
endif
return
end
c--------------------------------------------------------------------------
c HYPRE_SStructSysPFMGSetup
c--------------------------------------------------------------------------
subroutine fhypre_sstructsyspfmgsetup(fsolver, fA, fb, fx)
integer ierr
integer*8 fsolver
integer*8 fA
integer*8 fb
integer*8 fx
call HYPRE_SStructSysPFMGSetup(fsolver, fA, fb, fx, ierr)
if(ierr .ne. 0) then
print *, 'fhypre_sstructsyspfmgsetup error = ', ierr
endif
return
end
c--------------------------------------------------------------------------
c HYPRE_SStructSysPFMGSolve
c--------------------------------------------------------------------------
subroutine fhypre_sstructsyspfmgsolve(fsolver, fA, fb, fx)
integer ierr
integer*8 fsolver
integer*8 fA
integer*8 fb
integer*8 fx
call HYPRE_SStructSysPFMGSolve(fsolver, fA, fb, fx, ierr)
if(ierr .ne. 0) then
print *, 'fhypre_sstructsyspfmgsolve error = ', ierr
endif
return
end
c--------------------------------------------------------------------------
c HYPRE_SStructSysPFMGSetTol
c--------------------------------------------------------------------------
subroutine fhypre_sstructsyspfmgsettol(fsolver, ftol)
integer ierr
integer*8 fsolver
double precision ftol
call HYPRE_SStructSysPFMGSetTol(fsolver, ftol, ierr)
if(ierr .ne. 0) then
print *, 'fhypre_sstructsyspfmgsettol error = ', ierr
endif
return
end
c--------------------------------------------------------------------------
c HYPRE_SStructSysPFMGSetMaxIter
c--------------------------------------------------------------------------
subroutine fhypre_sstructsyspfmgsetmaxiter(fsolver, fmax_iter)
integer ierr
integer fmax_iter
integer*8 fsolver
call HYPRE_SStructSysPFMGSetMaxIter(fsolver, fmax_iter, ierr)
if(ierr .ne. 0) then
print *, 'fhypre_sstructsyspfmgsetmaxiter error = ', ierr
endif
return
end
c--------------------------------------------------------------------------
c HYPRE_SStructSysPFMGSetRelChange
c--------------------------------------------------------------------------
subroutine fhypre_sstructsyspfmgsetrelchang(fsolver, frel_change)
integer ierr
integer frel_change
integer*8 fsolver
call HYPRE_SStructSysPFMGSetRelChang(fsolver, frel_change, ierr)
if(ierr .ne. 0) then
print *, 'fhypre_sstructsyspfmgsetrelchange error = ', ierr
endif
return
end
c--------------------------------------------------------------------------
c HYPRE_SStructSysPFMGSetZeroGuess
c--------------------------------------------------------------------------
subroutine fhypre_sstructsyspfmgsetzerogue(fsolver)
integer ierr
integer*8 fsolver
call HYPRE_SStructSysPFMGSetZeroGues(fsolver, ierr)
if(ierr .ne. 0) then
print *, 'fhypre_sstructsyspfmgsetzeroguess error = ', ierr
endif
return
end
c--------------------------------------------------------------------------
c HYPRE_SStructSysPFMGSetNonZeroGuess
c--------------------------------------------------------------------------
subroutine fhypre_sstructsyspfmgsetnonzero(fsolver)
integer ierr
integer*8 fsolver
call HYPRE_SStructSysPFMGSetNonZeroG(fsolver, ierr)
if(ierr .ne. 0) then
print *, 'fhypre_sstructsyspfmgsetnonzeroguess error = ', ierr
endif
return
end
c--------------------------------------------------------------------------
c HYPRE_SStructSysPFMGSetRelaxType
c--------------------------------------------------------------------------
subroutine fhypre_sstructsyspfmgsetrelaxty(fsolver, frelax_type)
integer ierr
integer frelax_type
integer*8 fsolver
call HYPRE_SStructSysPFMGSetRelaxTyp(fsolver, frelax_type, ierr)
if(ierr .ne. 0) then
print *, 'fhypre_sstructsyspfmgsetrelaxtype error = ', ierr
endif
return
end
c--------------------------------------------------------------------------
c HYPRE_SStructSysPFMGSetNumPreRelax
c--------------------------------------------------------------------------
subroutine fhypre_sstructsyspfmgsetnumprer(fsolver,
1 fnum_pre_relax)
integer ierr
integer fnum_pre_relax
integer*8 fsolver
call HYPRE_SStructSysPFMGSetNumPreRe(fsolver, fnum_pre_relax,
1 ierr)
if(ierr .ne. 0) then
print *, 'fhypre_sstructsyspfmgsetnumprerelax error = ', ierr
endif
return
end
c--------------------------------------------------------------------------
c HYPRE_SStructSysPFMGSetNumPostRelax
c--------------------------------------------------------------------------
subroutine fhypre_sstructsyspfmgsetnumpost(fsolver,
1 fnum_post_relax)
integer ierr
integer fnum_post_relax
integer*8 fsolver
call HYPRE_SStructSysPFMGSetNumPostR(fsolver, fnum_post_relax,
1 ierr)
if(ierr .ne. 0) then
print *, 'fhypre_sstructsyspfmgsetnumpostrelax error = ', ierr
endif
return
end
c--------------------------------------------------------------------------
c HYPRE_SStructSysPFMGSetSkipRelax
c--------------------------------------------------------------------------
subroutine fhypre_sstructsyspfmgsetskiprel(fsolver, fskip_relax)
integer ierr
integer fskip_relax
integer*8 fsolver
call HYPRE_SStructSysPFMGSetSkipRela(fsolver, fskip_relax, ierr)
if(ierr .ne. 0) then
print *, 'fhypre_sstructsyspfmgsetskiprelax error = ', ierr
endif
return
end
c--------------------------------------------------------------------------
c HYPRE_SStructSysPFMGSetDxyz
c--------------------------------------------------------------------------
subroutine fhypre_sstructsyspfmgsetdxyz(fsolver, fdxyz)
integer ierr
integer*8 fsolver
double precision fdxyz
call HYPRE_SStructSysPFMGSetDxyz(fsolver, fdxyz, ierr)
if(ierr .ne. 0) then
print *, 'fhypre_sstructsyspfmgsetdxyz error = ', ierr
endif
return
end
c--------------------------------------------------------------------------
c HYPRE_SStructSysPFMGSetLogging
c--------------------------------------------------------------------------
subroutine fhypre_sstructsyspfmgsetlogging(fsolver, flog)
integer ierr
integer flog
integer*8 fsolver
call HYPRE_SStructSysPFMGSetLogging(fsolver, flog, ierr)
if(ierr .ne. 0) then
print *, 'fhypre_sstructsyspfmgsetlogging error = ', ierr
endif
return
end
c--------------------------------------------------------------------------
c HYPRE_SStructSysPFMGSetPrintLevel
c--------------------------------------------------------------------------
subroutine fhypre_sstructsyspfmgsetprintle(fsolver, fprint_level)
integer ierr
integer fprint_level
integer*8 fsolver
call HYPRE_SStructSysPFMGSetPrintLev(fsolver, fprint_level,
1 ierr)
if(ierr .ne. 0) then
print *, 'fhypre_sstructsyspfmgsetprintlevel error = ', ierr
endif
return
end
c--------------------------------------------------------------------------
c HYPRE_SStructSysPFMGGetNumIterations
c--------------------------------------------------------------------------
subroutine fhypre_sstructsyspfmggetnumiter(fsolver, fnumiter)
integer ierr
integer fnumiter
integer*8 fsolver
call HYPRE_SStructSysPFMGGetNumItera(fsolver, fnumiter, ierr)
if(ierr .ne. 0) then
print *, 'fhypre_sstructsyspfmggetnumiteration error = ', ierr
endif
return
end
c--------------------------------------------------------------------------
c HYPRE_SStructSysPFMGGetFinalRelativeResidualNorm
c--------------------------------------------------------------------------
subroutine fhypre_sstructsyspfmggetfinalre(fsolver, fnorm)
integer ierr
integer*8 fsolver
double precision fnorm
call HYPRE_SStructSysPFMGGetFinalRel(fsolver, fnorm, ierr)
if(ierr .ne. 0) then
print *, 'fhypre_sstructsyspfmggetfinalrelative error = ', ierr
endif
return
end
c*****************************************************************************
c*
c* HYPRE_SStructMaxwell interface
c*
c*****************************************************************************
c*--------------------------------------------------------------------------
c* HYPRE_SStructMaxwellCreate
c*--------------------------------------------------------------------------
subroutine fhypre_sstructmaxwellcreate(fcomm, fsolver)
integer ierr
integer*8 fcomm
integer*8 fsolver
call HYPRE_SStructMaxwellCreate(fcomm, fsolver, ierr)
if(ierr .ne. 0) then
print *, 'fhypre_sstructmaxwellcreate = ', ierr
endif
return
end
c*--------------------------------------------------------------------------
c* HYPRE_SStructMaxwellDestroy
c*--------------------------------------------------------------------------
subroutine fhypre_sstructmaxwelldestroy(fsolver)
integer ierr
integer*8 fsolver
call HYPRE_SStructMaxwellDestroy(fsolver, ierr)
if(ierr .ne. 0) then
print *, 'fhypre_sstructmaxwelldestroy = ', ierr
endif
return
end
c*--------------------------------------------------------------------------
c* HYPRE_SStructMaxwellSetup
c*--------------------------------------------------------------------------
subroutine fhypre_sstructmaxwellsetup (fsolver, fA, fb, fx)
integer ierr
integer*8 fsolver
integer*8 fA
integer*8 fb
integer*8 fx
call HYPRE_SStructMaxwellSetup(fsolver, fA, fb, fx, ierr)
if(ierr .ne. 0) then
print *, 'fhypre_sstructmaxwellsetup = ', ierr
endif
return
end
c*--------------------------------------------------------------------------
c* HYPRE_SStructMaxwellSolve
c*--------------------------------------------------------------------------
subroutine fhypre_sstructmaxwellsolve (fsolver, fA, fb, fx)
integer ierr
integer*8 fsolver
integer*8 fA
integer*8 fb
integer*8 fx
call HYPRE_SStructMaxwellSolve(fsolver, fA, fb, fx, ierr)
if(ierr .ne. 0) then
print *, 'fhypre_sstructmaxwellsolve = ', ierr
endif
return
end
c*--------------------------------------------------------------------------
c* HYPRE_SStructMaxwellSolve2
c*--------------------------------------------------------------------------
subroutine fhypre_sstructmaxwellsolve2(fsolver, fA, fb, fx)
integer ierr
integer*8 fsolver
integer*8 fA
integer*8 fb
integer*8 fx
call HYPRE_SStructMaxwellSolve2(fsolver, fA, fb, fx, ierr)
if(ierr .ne. 0) then
print *, 'fhypre_sstructmaxwellsolve2 = ', ierr
endif
return
end
c*--------------------------------------------------------------------------
c* HYPRE_MaxwellGrad
c*--------------------------------------------------------------------------
subroutine fhypre_maxwellgrad (fgrid, fT)
integer ierr
integer*8 fgrid
integer*8 fT
call HYPRE_MaxwellGrad(fgrid, fT, ierr)
if(ierr .ne. 0) then
print *, 'fhypre_sstructmaxwellgrad = ', ierr
endif
return
end
c*--------------------------------------------------------------------------
c* HYPRE_SStructMaxwellSetGrad
c*--------------------------------------------------------------------------
subroutine fhypre_sstructmaxwellsetgrad (fsolver, fT)
integer ierr
integer*8 fsolver
integer*8 fT
call HYPRE_SStructMaxwellSetGrad(fsolver, fT, ierr)
if(ierr .ne. 0) then
print *, 'fhypre_sstructmaxwellsetgrad = ', ierr
endif
return
end
c*--------------------------------------------------------------------------
c* HYPRE_SStructMaxwellSetRfactors
c*--------------------------------------------------------------------------
subroutine fhypre_sstructmaxwellsetrfactor (fsolver,frfactors)
integer ierr
integer*8 fsolver
integer*8 frfactors(3)
call HYPRE_SStructMaxwellSetRfactors(fsolver, frfactors, ierr)
if(ierr .ne. 0) then
print *, 'fhypre_sstructmaxwellsetrfactors = ', ierr
endif
return
end
c*--------------------------------------------------------------------------
c* HYPRE_SStructMaxwellSetTol
c*--------------------------------------------------------------------------
subroutine fhypre_sstructmaxwellsettol (fsolver, ftol)
integer ierr
integer*8 fsolver
double precision ftol
call HYPRE_SStructMaxwellSetTol(fsolver, ftol, ierr)
if(ierr .ne. 0) then
print *, 'fhypre_sstructmaxwellsettol = ', ierr
endif
return
end
c*--------------------------------------------------------------------------
c* HYPRE_SStructMaxwellSetConstantCoef
c*--------------------------------------------------------------------------
subroutine fhypre_sstructmaxwellsetconstan (fsolver,
1 fconstant_coef)
integer ierr
integer*8 fsolver
integer fconstant_coef
call HYPRE_SStructMaxwellSetConstant(fsolver, fconstant_coef,
1 ierr)
if(ierr .ne. 0) then
print *, 'fhypre_sstructmaxwellsetconstantcoef = ', ierr
endif
return
end
c*--------------------------------------------------------------------------
c* HYPRE_SStructMaxwellSetMaxIter
c*--------------------------------------------------------------------------
subroutine fhypre_sstructmaxwellsetmaxiter (fsolver, fmax_iter)
integer ierr
integer*8 fsolver
integer fmax_iter
call HYPRE_SStructMaxwellSetMaxIter(fsolver, fmax_iter, ierr)
if(ierr .ne. 0) then
print *, 'fhypre_sstructmaxwellsetmaxiter = ', ierr
endif
return
end
c*--------------------------------------------------------------------------
c* HYPRE_SStructMaxwellSetRelChange
c*--------------------------------------------------------------------------
subroutine fhypre_sstructmaxwellsetrelchan (fsolver, frel_change)
integer ierr
integer*8 fsolver
integer frel_change
call HYPRE_SStructMaxwellSetRelChang(fsolver, frel_change, ierr)
if(ierr .ne. 0) then
print *, 'fhypre_sstructmaxwellsetrelchange = ', ierr
endif
return
end
c*--------------------------------------------------------------------------
c* HYPRE_SStructMaxwellSetNumPreRelax
c*--------------------------------------------------------------------------
subroutine fhypre_sstructmaxwellsetnumprer (fsolver,
1 fnum_pre_relax)
integer ierr
integer*8 fsolver
integer fnum_pre_relax
call HYPRE_SStructMaxwellSetNumPreRe(fsolver, fnum_pre_relax,
1 ierr)
if(ierr .ne. 0) then
print *, 'fhypre_sstructmaxwellsetnumprerelax = ', ierr
endif
return
end
c*--------------------------------------------------------------------------
c* HYPRE_SStructMaxwellSetNumPostRelax
c*--------------------------------------------------------------------------
subroutine fhypre_sstructmaxwellsetnumpost (fsolver,
1 fnum_post_relax)
integer ierr
integer*8 fsolver
integer fnum_post_relax
call HYPRE_SStructMaxwellSetNumPostR(fsolver, fnum_post_relax,
1 ierr)
if(ierr .ne. 0) then
print *, 'fhypre_sstructmaxwellsetnumpostrelax = ', ierr
endif
return
end
c*--------------------------------------------------------------------------
c* HYPRE_SStructMaxwellSetLogging
c*--------------------------------------------------------------------------
subroutine fhypre_sstructmaxwellsetlogging (fsolver, flogging)
integer ierr
integer*8 fsolver
integer flogging
call HYPRE_SStructMaxwellSetLogging(fsolver, flogging, ierr)
if(ierr .ne. 0) then
print *, 'fhypre_sstructmaxwellsetlogging = ', ierr
endif
return
end
c*--------------------------------------------------------------------------
c* HYPRE_SStructMaxwellSetPrintLevel
c*--------------------------------------------------------------------------
subroutine fhypre_sstructmaxwellsetprintle (fsolver, fprint_level)
integer ierr
integer*8 fsolver
integer flogging
call HYPRE_SStructMaxwellSetPrintLev(fsolver, fprint_level,
1 ierr)
if(ierr .ne. 0) then
print *, 'fhypre_sstructmaxwellsetprintlevel = ', ierr
endif
return
end
c*--------------------------------------------------------------------------
c* HYPRE_SStructMaxwellPrintLogging
c*--------------------------------------------------------------------------
subroutine fhypre_sstructmaxwellprintloggi (fsolver, fmyid)
integer ierr
integer*8 fsolver
integer flogging
call HYPRE_SStructMaxwellPrintLoggin(fsolver, fmyid, ierr)
if(ierr .ne. 0) then
print *, 'fhypre_sstructmaxwellprintlogging = ', ierr
endif
return
end
c*--------------------------------------------------------------------------
c* HYPRE_SStructMaxwellGetNumIterations
c*--------------------------------------------------------------------------
subroutine fhypre_sstructmaxwellgetnumiter (fsolver,
1 fnum_iterations)
integer ierr
integer*8 fsolver
integer fnum_iterations
call HYPRE_SStructMaxwellGetNumItera(fsolver,
1 fnum_iterations, ierr)
if(ierr .ne. 0) then
print *, 'fhypre_sstructmaxwellgetnumiterations = ', ierr
endif
return
end
c*--------------------------------------------------------------------------
c* HYPRE_SStructMaxwellGetFinalRelativeResidualNorm
c*--------------------------------------------------------------------------
subroutine fhypre_sstructmaxwellgetfinalre (fsolver, fnorm)
integer ierr
integer*8 fsolver
double precision fnorm
call HYPRE_SStructMaxwellGetFinalRel(fsolver, fnorm, ierr)
if(ierr .ne. 0) then
print *,
1 'fhypre_sstructmaxwellgetfinalrelativeresidualnorm = ', ierr
endif
return
end
c*--------------------------------------------------------------------------
c* HYPRE_SStructMaxwellPhysBdy
c*--------------------------------------------------------------------------
subroutine fhypre_sstructmaxwellphysbdy (fgrid_l, fnum_levels,
1 frfactors,
2 fBdryRanks_ptr,
3 fBdryRanksCnt_ptr)
integer ierr
integer*8 fgrid_l
integer*8 frfactors
integer*8 fBdryRanks_ptr
integer*8 fBdryRanksCnt_ptr
integer fnum_levels
call HYPRE_SStructMaxwellPhysBdy(fgrid_l, fnum_levels, frfactors,
1 fBdryRanks_ptr,
2 fBdryRanksCnt_ptr, ierr)
if(ierr .ne. 0) then
print *, 'fhypre_sstructmaxwellphysbdy = ', ierr
endif
return
end
c*--------------------------------------------------------------------------
c* HYPRE_SStructMaxwellEliminateRowsCols
c*--------------------------------------------------------------------------
subroutine fhypre_sstructmaxwelleliminater (fparA, fnrows, frows)
integer ierr
integer*8 fparA
integer*8 frows
integer*8 fnrows
call HYPRE_SStructMaxwellEliminateRo(fparA, fnrows, frows,
1 ierr)
if(ierr .ne. 0) then
print *, 'fhypre_sstructmaxwelleliminaterows = ', ierr
endif
return
end
c*--------------------------------------------------------------------------
c* HYPRE_SStructMaxwellZeroVector
c*--------------------------------------------------------------------------
subroutine fhypre_sstructmaxwellzerovector (fb, frows, fnrows)
integer ierr
integer*8 fb
integer*8 frows
integer*8 fnrows
call HYPRE_SStructMaxwellZeroVector(fb, frows, fnrows, ierr)
if(ierr .ne. 0) then
print *, 'fhypre_sstructmaxwellzerovector = ', ierr
endif
return
end