      subroutine PetscViewerSAWsOpen(a,b,z)
       import tPetscViewer
       MPI_Comm a ! MPI_Comm
       PetscViewer b ! PetscViewer
       PetscErrorCode z
       end subroutine PetscViewerSAWsOpen
#if defined(PETSC_HAVE_FORTRAN_TYPE_STAR)
      subroutine PetscObjectViewSAWs(a,b,z)
       import tPetscObject,tPetscViewer
       type(*) a ! PetscObject
       PetscViewer b ! PetscViewer
       PetscErrorCode z
       end subroutine PetscObjectViewSAWs
#endif
      subroutine PetscViewerASCIISetTab(a,b,z)
       import tPetscViewer
       PetscViewer a ! PetscViewer
       PetscInt b ! PetscInt
       PetscErrorCode z
       end subroutine PetscViewerASCIISetTab
      subroutine PetscViewerASCIIGetTab(a,b,z)
       import tPetscViewer
       PetscViewer a ! PetscViewer
       PetscInt b ! PetscInt
       PetscErrorCode z
       end subroutine PetscViewerASCIIGetTab
      subroutine PetscViewerASCIIAddTab(a,b,z)
       import tPetscViewer
       PetscViewer a ! PetscViewer
       PetscInt b ! PetscInt
       PetscErrorCode z
       end subroutine PetscViewerASCIIAddTab
      subroutine PetscViewerASCIISubtractTab(a,b,z)
       import tPetscViewer
       PetscViewer a ! PetscViewer
       PetscInt b ! PetscInt
       PetscErrorCode z
       end subroutine PetscViewerASCIISubtractTab
      subroutine PetscViewerASCIIPushSynchronized(a,z)
       import tPetscViewer
       PetscViewer a ! PetscViewer
       PetscErrorCode z
       end subroutine PetscViewerASCIIPushSynchronized
      subroutine PetscViewerASCIIPopSynchronized(a,z)
       import tPetscViewer
       PetscViewer a ! PetscViewer
       PetscErrorCode z
       end subroutine PetscViewerASCIIPopSynchronized
      subroutine PetscViewerASCIIPushTab(a,z)
       import tPetscViewer
       PetscViewer a ! PetscViewer
       PetscErrorCode z
       end subroutine PetscViewerASCIIPushTab
      subroutine PetscViewerASCIIPopTab(a,z)
       import tPetscViewer
       PetscViewer a ! PetscViewer
       PetscErrorCode z
       end subroutine PetscViewerASCIIPopTab
      subroutine PetscViewerASCIIUseTabs(a,b,z)
       import tPetscViewer
       PetscViewer a ! PetscViewer
       PetscBool b ! PetscBool
       PetscErrorCode z
       end subroutine PetscViewerASCIIUseTabs
      subroutine PetscViewerASCIIGetStdout(a,b,z)
       import tPetscViewer
       MPI_Comm a ! MPI_Comm
       PetscViewer b ! PetscViewer
       PetscErrorCode z
       end subroutine PetscViewerASCIIGetStdout
      subroutine PetscViewerFileSetName(a,b,z)
       import tPetscViewer
       PetscViewer a ! PetscViewer
       character(*) b (*) ! char
       PetscErrorCode z
       end subroutine PetscViewerFileSetName
      subroutine PetscViewerASCIIGetStderr(a,b,z)
       import tPetscViewer
       MPI_Comm a ! MPI_Comm
       PetscViewer b ! PetscViewer
       PetscErrorCode z
       end subroutine PetscViewerASCIIGetStderr
      subroutine PetscViewerASCIIOpen(a,b,c,z)
       import tPetscViewer
       MPI_Comm a ! MPI_Comm
       character(*) b (*) ! char
       PetscViewer c ! PetscViewer
       PetscErrorCode z
       end subroutine PetscViewerASCIIOpen
      subroutine PetscViewerBinarySetUseMPIIO(a,b,z)
       import tPetscViewer
       PetscViewer a ! PetscViewer
       PetscBool b ! PetscBool
       PetscErrorCode z
       end subroutine PetscViewerBinarySetUseMPIIO
      subroutine PetscViewerBinaryGetUseMPIIO(a,b,z)
       import tPetscViewer
       PetscViewer a ! PetscViewer
       PetscBool b ! PetscBool
       PetscErrorCode z
       end subroutine PetscViewerBinaryGetUseMPIIO
      subroutine PetscViewerBinarySetFlowControl(a,b,z)
       import tPetscViewer
       PetscViewer a ! PetscViewer
       PetscInt b ! PetscInt
       PetscErrorCode z
       end subroutine PetscViewerBinarySetFlowControl
      subroutine PetscViewerBinaryGetFlowControl(a,b,z)
       import tPetscViewer
       PetscViewer a ! PetscViewer
       PetscInt b ! PetscInt
       PetscErrorCode z
       end subroutine PetscViewerBinaryGetFlowControl
      subroutine PetscViewerBinarySkipInfo(a,z)
       import tPetscViewer
       PetscViewer a ! PetscViewer
       PetscErrorCode z
       end subroutine PetscViewerBinarySkipInfo
      subroutine PetscViewerBinarySetSkipInfo(a,b,z)
       import tPetscViewer
       PetscViewer a ! PetscViewer
       PetscBool b ! PetscBool
       PetscErrorCode z
       end subroutine PetscViewerBinarySetSkipInfo
      subroutine PetscViewerBinaryGetSkipInfo(a,b,z)
       import tPetscViewer
       PetscViewer a ! PetscViewer
       PetscBool b ! PetscBool
       PetscErrorCode z
       end subroutine PetscViewerBinaryGetSkipInfo
      subroutine PetscViewerBinarySetSkipOptions(a,b,z)
       import tPetscViewer
       PetscViewer a ! PetscViewer
       PetscBool b ! PetscBool
       PetscErrorCode z
       end subroutine PetscViewerBinarySetSkipOptions
      subroutine PetscViewerBinaryGetSkipOptions(a,b,z)
       import tPetscViewer
       PetscViewer a ! PetscViewer
       PetscBool b ! PetscBool
       PetscErrorCode z
       end subroutine PetscViewerBinaryGetSkipOptions
      subroutine PetscViewerBinarySetSkipHeader(a,b,z)
       import tPetscViewer
       PetscViewer a ! PetscViewer
       PetscBool b ! PetscBool
       PetscErrorCode z
       end subroutine PetscViewerBinarySetSkipHeader
      subroutine PetscViewerBinaryGetSkipHeader(a,b,z)
       import tPetscViewer
       PetscViewer a ! PetscViewer
       PetscBool b ! PetscBool
       PetscErrorCode z
       end subroutine PetscViewerBinaryGetSkipHeader
      subroutine PetscViewerBinaryOpen(a,b,c,d,z)
       import tPetscViewer
       MPI_Comm a ! MPI_Comm
       character(*) b (*) ! char
       PetscFileMode c ! PetscFileMode
       PetscViewer d ! PetscViewer
       PetscErrorCode z
       end subroutine PetscViewerBinaryOpen
      subroutine PetscViewerFileSetMode(a,b,z)
       import tPetscViewer
       PetscViewer a ! PetscViewer
       PetscFileMode b ! PetscFileMode
       PetscErrorCode z
       end subroutine PetscViewerFileSetMode
      subroutine PetscViewerFileGetMode(a,b,z)
       import tPetscViewer
       PetscViewer a ! PetscViewer
       PetscFileMode b ! PetscFileMode
       PetscErrorCode z
       end subroutine PetscViewerFileGetMode
      subroutine PetscViewerCGNSOpen(a,b,c,d,z)
       import tPetscViewer
       MPI_Comm a ! MPI_Comm
       character(*) b (*) ! char
       PetscFileMode c ! PetscFileMode
       PetscViewer d ! PetscViewer
       PetscErrorCode z
       end subroutine PetscViewerCGNSOpen
      subroutine PetscViewerCGNSSetSolutionIndex(a,b,z)
       import tPetscViewer
       PetscViewer a ! PetscViewer
       PetscInt b ! PetscInt
       PetscErrorCode z
       end subroutine PetscViewerCGNSSetSolutionIndex
      subroutine PetscViewerCGNSGetSolutionIndex(a,b,z)
       import tPetscViewer
       PetscViewer a ! PetscViewer
       PetscInt b ! PetscInt
       PetscErrorCode z
       end subroutine PetscViewerCGNSGetSolutionIndex
      subroutine PetscViewerCGNSGetSolutionTime(a,b,c,z)
       import tPetscViewer
       PetscViewer a ! PetscViewer
       PetscReal b ! PetscReal
       PetscBool c ! PetscBool
       PetscErrorCode z
       end subroutine PetscViewerCGNSGetSolutionTime
      subroutine PetscViewerCGNSGetSolutionName(a,b,z)
       import tPetscViewer
       PetscViewer a ! PetscViewer
       character(*) b (*) ! char
       PetscErrorCode z
       end subroutine PetscViewerCGNSGetSolutionName
      subroutine PetscViewerDrawGetDraw(a,b,c,z)
       import tPetscDraw,tPetscViewer
       PetscViewer a ! PetscViewer
       PetscInt b ! PetscInt
       PetscDraw c ! PetscDraw
       PetscErrorCode z
       end subroutine PetscViewerDrawGetDraw
      subroutine PetscViewerDrawBaseAdd(a,b,z)
       import tPetscViewer
       PetscViewer a ! PetscViewer
       PetscInt b ! PetscInt
       PetscErrorCode z
       end subroutine PetscViewerDrawBaseAdd
      subroutine PetscViewerDrawBaseSet(a,b,z)
       import tPetscViewer
       PetscViewer a ! PetscViewer
       PetscInt b ! PetscInt
       PetscErrorCode z
       end subroutine PetscViewerDrawBaseSet
      subroutine PetscViewerDrawGetDrawLG(a,b,c,z)
       import tPetscViewer,tPetscDrawLG
       PetscViewer a ! PetscViewer
       PetscInt b ! PetscInt
       PetscDrawLG c ! PetscDrawLG
       PetscErrorCode z
       end subroutine PetscViewerDrawGetDrawLG
      subroutine PetscViewerDrawGetDrawAxis(a,b,c,z)
       import tPetscDrawAxis,tPetscViewer
       PetscViewer a ! PetscViewer
       PetscInt b ! PetscInt
       PetscDrawAxis c ! PetscDrawAxis
       PetscErrorCode z
       end subroutine PetscViewerDrawGetDrawAxis
      subroutine PetscViewerDrawOpen(a,b,c,d,e,f,g,h,z)
       import tPetscViewer
       MPI_Comm a ! MPI_Comm
       character(*) b (*) ! char
       character(*) c (*) ! char
       integer d ! int
       integer e ! int
       integer f ! int
       integer g ! int
       PetscViewer h ! PetscViewer
       PetscErrorCode z
       end subroutine PetscViewerDrawOpen
      subroutine PetscViewerDrawClear(a,z)
       import tPetscViewer
       PetscViewer a ! PetscViewer
       PetscErrorCode z
       end subroutine PetscViewerDrawClear
      subroutine PetscViewerDrawGetPause(a,b,z)
       import tPetscViewer
       PetscViewer a ! PetscViewer
       PetscReal b ! PetscReal
       PetscErrorCode z
       end subroutine PetscViewerDrawGetPause
      subroutine PetscViewerDrawSetPause(a,b,z)
       import tPetscViewer
       PetscViewer a ! PetscViewer
       PetscReal b ! PetscReal
       PetscErrorCode z
       end subroutine PetscViewerDrawSetPause
      subroutine PetscViewerDrawSetHold(a,b,z)
       import tPetscViewer
       PetscViewer a ! PetscViewer
       PetscBool b ! PetscBool
       PetscErrorCode z
       end subroutine PetscViewerDrawSetHold
      subroutine PetscViewerDrawGetHold(a,b,z)
       import tPetscViewer
       PetscViewer a ! PetscViewer
       PetscBool b ! PetscBool
       PetscErrorCode z
       end subroutine PetscViewerDrawGetHold
      subroutine PetscViewerDrawSetBounds(a,b,c,z)
       import tPetscViewer
       PetscViewer a ! PetscViewer
       PetscInt b ! PetscInt
       PetscReal c ! PetscReal
       PetscErrorCode z
       end subroutine PetscViewerDrawSetBounds
      subroutine PetscViewerGLVisSetPrecision(a,b,z)
       import tPetscViewer
       PetscViewer a ! PetscViewer
       PetscInt b ! PetscInt
       PetscErrorCode z
       end subroutine PetscViewerGLVisSetPrecision
      subroutine PetscViewerGLVisSetSnapId(a,b,z)
       import tPetscViewer
       PetscViewer a ! PetscViewer
       PetscInt b ! PetscInt
       PetscErrorCode z
       end subroutine PetscViewerGLVisSetSnapId
      subroutine PetscViewerGLVisOpen(a,b,c,d,e,z)
       import tPetscViewer
       MPI_Comm a ! MPI_Comm
       PetscViewerGLVisType b ! PetscViewerGLVisType
       character(*) c (*) ! char
       PetscInt d ! PetscInt
       PetscViewer e ! PetscViewer
       PetscErrorCode z
       end subroutine PetscViewerGLVisOpen
      subroutine PetscViewerHDF5SetBaseDimension2(a,b,z)
       import tPetscViewer
       PetscViewer a ! PetscViewer
       PetscBool b ! PetscBool
       PetscErrorCode z
       end subroutine PetscViewerHDF5SetBaseDimension2
      subroutine PetscViewerHDF5GetBaseDimension2(a,b,z)
       import tPetscViewer
       PetscViewer a ! PetscViewer
       PetscBool b ! PetscBool
       PetscErrorCode z
       end subroutine PetscViewerHDF5GetBaseDimension2
      subroutine PetscViewerHDF5SetSPOutput(a,b,z)
       import tPetscViewer
       PetscViewer a ! PetscViewer
       PetscBool b ! PetscBool
       PetscErrorCode z
       end subroutine PetscViewerHDF5SetSPOutput
      subroutine PetscViewerHDF5GetSPOutput(a,b,z)
       import tPetscViewer
       PetscViewer a ! PetscViewer
       PetscBool b ! PetscBool
       PetscErrorCode z
       end subroutine PetscViewerHDF5GetSPOutput
      subroutine PetscViewerHDF5SetCollective(a,b,z)
       import tPetscViewer
       PetscViewer a ! PetscViewer
       PetscBool b ! PetscBool
       PetscErrorCode z
       end subroutine PetscViewerHDF5SetCollective
      subroutine PetscViewerHDF5GetCollective(a,b,z)
       import tPetscViewer
       PetscViewer a ! PetscViewer
       PetscBool b ! PetscBool
       PetscErrorCode z
       end subroutine PetscViewerHDF5GetCollective
      subroutine PetscViewerHDF5SetDefaultTimestepping(a,b,z)
       import tPetscViewer
       PetscViewer a ! PetscViewer
       PetscBool b ! PetscBool
       PetscErrorCode z
       end subroutine PetscViewerHDF5SetDefaultTimestepping
      subroutine PetscViewerHDF5GetDefaultTimestepping(a,b,z)
       import tPetscViewer
       PetscViewer a ! PetscViewer
       PetscBool b ! PetscBool
       PetscErrorCode z
       end subroutine PetscViewerHDF5GetDefaultTimestepping
      subroutine PetscViewerHDF5PopGroup(a,z)
       import tPetscViewer
       PetscViewer a ! PetscViewer
       PetscErrorCode z
       end subroutine PetscViewerHDF5PopGroup
      subroutine PetscViewerHDF5PushTimestepping(a,z)
       import tPetscViewer
       PetscViewer a ! PetscViewer
       PetscErrorCode z
       end subroutine PetscViewerHDF5PushTimestepping
      subroutine PetscViewerHDF5PopTimestepping(a,z)
       import tPetscViewer
       PetscViewer a ! PetscViewer
       PetscErrorCode z
       end subroutine PetscViewerHDF5PopTimestepping
      subroutine PetscViewerHDF5IsTimestepping(a,b,z)
       import tPetscViewer
       PetscViewer a ! PetscViewer
       PetscBool b ! PetscBool
       PetscErrorCode z
       end subroutine PetscViewerHDF5IsTimestepping
      subroutine PetscViewerHDF5IncrementTimestep(a,z)
       import tPetscViewer
       PetscViewer a ! PetscViewer
       PetscErrorCode z
       end subroutine PetscViewerHDF5IncrementTimestep
      subroutine PetscViewerHDF5SetTimestep(a,b,z)
       import tPetscViewer
       PetscViewer a ! PetscViewer
       PetscInt b ! PetscInt
       PetscErrorCode z
       end subroutine PetscViewerHDF5SetTimestep
      subroutine PetscViewerHDF5GetTimestep(a,b,z)
       import tPetscViewer
       PetscViewer a ! PetscViewer
       PetscInt b ! PetscInt
       PetscErrorCode z
       end subroutine PetscViewerHDF5GetTimestep
#if defined(PETSC_HAVE_FORTRAN_TYPE_STAR)
      subroutine PetscViewerHDF5HasObject(a,b,c,z)
       import tPetscObject,tPetscViewer
       PetscViewer a ! PetscViewer
       type(*) b ! PetscObject
       PetscBool c ! PetscBool
       PetscErrorCode z
       end subroutine PetscViewerHDF5HasObject
#endif
      subroutine PetscViewerMathematicaOpen(a,b,c,d,e,z)
       import tPetscViewer
       MPI_Comm a ! MPI_Comm
       integer b ! int
       character(*) c (*) ! char
       character(*) d (*) ! char
       PetscViewer e ! PetscViewer
       PetscErrorCode z
       end subroutine PetscViewerMathematicaOpen
      subroutine PetscViewerMathematicaClearName(a,z)
       import tPetscViewer
       PetscViewer a ! PetscViewer
       PetscErrorCode z
       end subroutine PetscViewerMathematicaClearName
      subroutine PetscViewerMathematicaGetVector(a,b,z)
       import tVec,tPetscViewer
       PetscViewer a ! PetscViewer
       Vec b ! Vec
       PetscErrorCode z
       end subroutine PetscViewerMathematicaGetVector
      subroutine PetscViewerMathematicaPutVector(a,b,z)
       import tVec,tPetscViewer
       PetscViewer a ! PetscViewer
       Vec b ! Vec
       PetscErrorCode z
       end subroutine PetscViewerMathematicaPutVector
      subroutine PetscOpenSocket(a,b,c,z)
       character(*) a (*) ! char
       integer b ! int
       integer c ! int
       PetscErrorCode z
       end subroutine PetscOpenSocket
      subroutine PetscViewerSocketOpen(a,b,c,d,z)
       import tPetscViewer
       MPI_Comm a ! MPI_Comm
       character(*) b (*) ! char
       integer c ! int
       PetscViewer d ! PetscViewer
       PetscErrorCode z
       end subroutine PetscViewerSocketOpen
      subroutine PetscViewerSocketSetConnection(a,b,c,z)
       import tPetscViewer
       PetscViewer a ! PetscViewer
       character(*) b (*) ! char
       integer c ! int
       PetscErrorCode z
       end subroutine PetscViewerSocketSetConnection
      subroutine PetscViewerStringSetOwnString(a,z)
       import tPetscViewer
       PetscViewer a ! PetscViewer
       PetscErrorCode z
       end subroutine PetscViewerStringSetOwnString
#if defined(PETSC_HAVE_FORTRAN_TYPE_STAR)
      subroutine PetscViewerVTKGetDM(a,b,z)
       import tPetscObject,tPetscViewer
       PetscViewer a ! PetscViewer
       type(*) b ! PetscObject
       PetscErrorCode z
       end subroutine PetscViewerVTKGetDM
#endif
      subroutine PetscViewerVTKOpen(a,b,c,d,z)
       import tPetscViewer
       MPI_Comm a ! MPI_Comm
       character(*) b (*) ! char
       PetscFileMode c ! PetscFileMode
       PetscViewer d ! PetscViewer
       PetscErrorCode z
       end subroutine PetscViewerVTKOpen
      subroutine PetscViewerGetSubViewer(a,b,c,z)
       import tPetscViewer
       PetscViewer a ! PetscViewer
       integer b ! MPI_Comm
       PetscViewer c ! PetscViewer
       PetscErrorCode z
       end subroutine PetscViewerGetSubViewer
      subroutine PetscViewerRestoreSubViewer(a,b,c,z)
       import tPetscViewer
       PetscViewer a ! PetscViewer
       integer b ! MPI_Comm
       PetscViewer c ! PetscViewer
       PetscErrorCode z
       end subroutine PetscViewerRestoreSubViewer
      subroutine PetscViewerFlush(a,z)
       import tPetscViewer
       PetscViewer a ! PetscViewer
       PetscErrorCode z
       end subroutine PetscViewerFlush
      subroutine PetscViewerDestroy(a,z)
       import tPetscViewer
       PetscViewer a ! PetscViewer
       PetscErrorCode z
       end subroutine PetscViewerDestroy
      subroutine PetscViewerGetType(a,b,z)
       import tPetscViewer
       PetscViewer a ! PetscViewer
       character(*) b ! PetscViewerType
       PetscErrorCode z
       end subroutine PetscViewerGetType
      subroutine PetscViewerSetOptionsPrefix(a,b,z)
       import tPetscViewer
       PetscViewer a ! PetscViewer
       character(*) b (*) ! char
       PetscErrorCode z
       end subroutine PetscViewerSetOptionsPrefix
      subroutine PetscViewerAppendOptionsPrefix(a,b,z)
       import tPetscViewer
       PetscViewer a ! PetscViewer
       character(*) b (*) ! char
       PetscErrorCode z
       end subroutine PetscViewerAppendOptionsPrefix
      subroutine PetscViewerGetOptionsPrefix(a,b,z)
       import tPetscViewer
       PetscViewer a ! PetscViewer
       character(*) b (*) ! char
       PetscErrorCode z
       end subroutine PetscViewerGetOptionsPrefix
      subroutine PetscViewerSetUp(a,z)
       import tPetscViewer
       PetscViewer a ! PetscViewer
       PetscErrorCode z
       end subroutine PetscViewerSetUp
#if defined(PETSC_HAVE_FORTRAN_TYPE_STAR)
      subroutine PetscViewerViewFromOptions(a,b,c,z)
       import tPetscObject,tPetscViewer
       PetscViewer a ! PetscViewer
       type(*) b ! PetscObject
       character(*) c (*) ! char
       PetscErrorCode z
       end subroutine PetscViewerViewFromOptions
#endif
      subroutine PetscViewerView(a,b,z)
       import tPetscViewer
       PetscViewer a ! PetscViewer
       PetscViewer b ! PetscViewer
       PetscErrorCode z
       end subroutine PetscViewerView
      subroutine PetscViewerReadable(a,b,z)
       import tPetscViewer
       PetscViewer a ! PetscViewer
       PetscBool b ! PetscBool
       PetscErrorCode z
       end subroutine PetscViewerReadable
      subroutine PetscViewerWritable(a,b,z)
       import tPetscViewer
       PetscViewer a ! PetscViewer
       PetscBool b ! PetscBool
       PetscErrorCode z
       end subroutine PetscViewerWritable
      subroutine PetscViewerCheckReadable(a,z)
       import tPetscViewer
       PetscViewer a ! PetscViewer
       PetscErrorCode z
       end subroutine PetscViewerCheckReadable
      subroutine PetscViewerCheckWritable(a,z)
       import tPetscViewer
       PetscViewer a ! PetscViewer
       PetscErrorCode z
       end subroutine PetscViewerCheckWritable
      subroutine PetscViewerPushFormat(a,b,z)
       import tPetscViewer
       PetscViewer a ! PetscViewer
       PetscViewerFormat b ! PetscViewerFormat
       PetscErrorCode z
       end subroutine PetscViewerPushFormat
      subroutine PetscViewerPopFormat(a,z)
       import tPetscViewer
       PetscViewer a ! PetscViewer
       PetscErrorCode z
       end subroutine PetscViewerPopFormat
      subroutine PetscViewerGetFormat(a,b,z)
       import tPetscViewer
       PetscViewer a ! PetscViewer
       PetscViewerFormat b ! PetscViewerFormat
       PetscErrorCode z
       end subroutine PetscViewerGetFormat
      subroutine PetscOptionsPushCreateViewerOff(a,z)
       PetscBool a ! PetscBool
       PetscErrorCode z
       end subroutine PetscOptionsPushCreateViewerOff
      subroutine PetscOptionsPopCreateViewerOff(z)
       PetscErrorCode z
       end subroutine PetscOptionsPopCreateViewerOff
      subroutine PetscOptionsGetCreateViewerOff(a,z)
       PetscBool a ! PetscBool
       PetscErrorCode z
       end subroutine PetscOptionsGetCreateViewerOff
      subroutine PetscViewerCreate(a,b,z)
       import tPetscViewer
       MPI_Comm a ! MPI_Comm
       PetscViewer b ! PetscViewer
       PetscErrorCode z
       end subroutine PetscViewerCreate
      subroutine PetscViewerSetType(a,b,z)
       import tPetscViewer
       PetscViewer a ! PetscViewer
       character(*) b ! PetscViewerType
       PetscErrorCode z
       end subroutine PetscViewerSetType
