      subroutine FNRationalSetNumerator(a,b,c,z)
       import tFN
       FN a ! FN
       PetscInt b ! PetscInt
       PetscScalar c (*) ! PetscScalar
       PetscErrorCode z
       end subroutine FNRationalSetNumerator
      subroutine FNRationalSetDenominator(a,b,c,z)
       import tFN
       FN a ! FN
       PetscInt b ! PetscInt
       PetscScalar c (*) ! PetscScalar
       PetscErrorCode z
       end subroutine FNRationalSetDenominator
      subroutine FNPhiSetIndex(a,b,z)
       import tFN
       FN a ! FN
       PetscInt b ! PetscInt
       PetscErrorCode z
       end subroutine FNPhiSetIndex
      subroutine FNPhiGetIndex(a,b,z)
       import tFN
       FN a ! FN
       PetscInt b ! PetscInt
       PetscErrorCode z
       end subroutine FNPhiGetIndex
      subroutine FNCreate(a,b,z)
       import tFN
       MPI_Comm a ! MPI_Comm
       FN b ! FN
       PetscErrorCode z
       end subroutine FNCreate
      subroutine FNSetOptionsPrefix(a,b,z)
       import tFN
       FN a ! FN
       character(*) b ! char
       PetscErrorCode z
       end subroutine FNSetOptionsPrefix
      subroutine FNAppendOptionsPrefix(a,b,z)
       import tFN
       FN a ! FN
       character(*) b ! char
       PetscErrorCode z
       end subroutine FNAppendOptionsPrefix
      subroutine FNGetOptionsPrefix(a,b,z)
       import tFN
       FN a ! FN
       character(*) b (*) ! char
       PetscErrorCode z
       end subroutine FNGetOptionsPrefix
      subroutine FNSetType(a,b,z)
       import tFN
       FN a ! FN
       character(*) b ! FNType
       PetscErrorCode z
       end subroutine FNSetType
      subroutine FNGetType(a,b,z)
       import tFN
       FN a ! FN
       character(*) b ! FNType
       PetscErrorCode z
       end subroutine FNGetType
      subroutine FNSetScale(a,b,c,z)
       import tFN
       FN a ! FN
       PetscScalar b ! PetscScalar
       PetscScalar c ! PetscScalar
       PetscErrorCode z
       end subroutine FNSetScale
      subroutine FNGetScale(a,b,c,z)
       import tFN
       FN a ! FN
       PetscScalar b ! PetscScalar
       PetscScalar c ! PetscScalar
       PetscErrorCode z
       end subroutine FNGetScale
      subroutine FNSetMethod(a,b,z)
       import tFN
       FN a ! FN
       PetscInt b ! PetscInt
       PetscErrorCode z
       end subroutine FNSetMethod
      subroutine FNGetMethod(a,b,z)
       import tFN
       FN a ! FN
       PetscInt b ! PetscInt
       PetscErrorCode z
       end subroutine FNGetMethod
      subroutine FNSetParallel(a,b,z)
       import tFN
       FN a ! FN
       FNParallelType b ! FNParallelType
       PetscErrorCode z
       end subroutine FNSetParallel
      subroutine FNGetParallel(a,b,z)
       import tFN
       FN a ! FN
       FNParallelType b ! FNParallelType
       PetscErrorCode z
       end subroutine FNGetParallel
      subroutine FNEvaluateFunction(a,b,c,z)
       import tFN
       FN a ! FN
       PetscScalar b ! PetscScalar
       PetscScalar c ! PetscScalar
       PetscErrorCode z
       end subroutine FNEvaluateFunction
      subroutine FNEvaluateDerivative(a,b,c,z)
       import tFN
       FN a ! FN
       PetscScalar b ! PetscScalar
       PetscScalar c ! PetscScalar
       PetscErrorCode z
       end subroutine FNEvaluateDerivative
      subroutine FNEvaluateFunctionMat(a,b,c,z)
       import tMat,tFN
       FN a ! FN
       Mat b ! Mat
       Mat c ! Mat
       PetscErrorCode z
       end subroutine FNEvaluateFunctionMat
      subroutine FNEvaluateFunctionMatVec(a,b,c,z)
       import tVec,tMat,tFN
       FN a ! FN
       Mat b ! Mat
       Vec c ! Vec
       PetscErrorCode z
       end subroutine FNEvaluateFunctionMatVec
      subroutine FNSetFromOptions(a,z)
       import tFN
       FN a ! FN
       PetscErrorCode z
       end subroutine FNSetFromOptions
      subroutine FNView(a,b,z)
       import tPetscViewer,tFN
       FN a ! FN
       PetscViewer b ! PetscViewer
       PetscErrorCode z
       end subroutine FNView
#if defined(PETSC_HAVE_FORTRAN_TYPE_STAR)
      subroutine FNViewFromOptions(a,b,c,z)
       import tPetscObject,tFN
       FN a ! FN
       type(*) b ! PetscObject
       character(*) c (*) ! char
       PetscErrorCode z
       end subroutine FNViewFromOptions
#endif
      subroutine FNDuplicate(a,b,c,z)
       import tFN
       FN a ! FN
       integer b ! MPI_Comm
       FN c ! FN
       PetscErrorCode z
       end subroutine FNDuplicate
      subroutine FNDestroy(a,z)
       import tFN
       FN a ! FN
       PetscErrorCode z
       end subroutine FNDestroy
      subroutine FNCombineSetChildren(a,b,c,d,z)
       import tFN
       FN a ! FN
       FNCombineType b ! FNCombineType
       FN c ! FN
       FN d ! FN
       PetscErrorCode z
       end subroutine FNCombineSetChildren
      subroutine FNCombineGetChildren(a,b,c,d,z)
       import tFN
       FN a ! FN
       FNCombineType b ! FNCombineType
       FN c ! FN
       FN d ! FN
       PetscErrorCode z
       end subroutine FNCombineGetChildren
