  type tPetscBag
    PetscFortranAddr:: v = PETSC_FORTRAN_TYPE_INITIALIZE
  end type tPetscBag
  PetscBag, parameter :: PETSC_NULL_BAG = tPetscBag(0)
  PetscBag, target :: PETSC_NULL_BAG_ARRAY(1) = [tPetscBag(0)]
  PetscBag, pointer :: PETSC_NULL_BAG_POINTER(:) => PETSC_NULL_BAG_ARRAY
#if defined(_WIN32) && defined(PETSC_USE_SHARED_LIBRARIES)
!DEC$ ATTRIBUTES DLLEXPORT::PETSC_NULL_BAG
!DEC$ ATTRIBUTES DLLEXPORT::PETSC_NULL_BAG_ARRAY
!DEC$ ATTRIBUTES DLLEXPORT::PETSC_NULL_BAG_POINTER
#endif

  type tPetscBagItem
    PetscFortranAddr:: v = PETSC_FORTRAN_TYPE_INITIALIZE
  end type tPetscBagItem
  PetscBagItem, parameter :: PETSC_NULL_BAGITEM = tPetscBagItem(0)
  PetscBagItem, target :: PETSC_NULL_BAGITEM_ARRAY(1) = [tPetscBagItem(0)]
  PetscBagItem, pointer :: PETSC_NULL_BAGITEM_POINTER(:) => PETSC_NULL_BAGITEM_ARRAY
#if defined(_WIN32) && defined(PETSC_USE_SHARED_LIBRARIES)
!DEC$ ATTRIBUTES DLLEXPORT::PETSC_NULL_BAGITEM
!DEC$ ATTRIBUTES DLLEXPORT::PETSC_NULL_BAGITEM_ARRAY
!DEC$ ATTRIBUTES DLLEXPORT::PETSC_NULL_BAGITEM_POINTER
#endif

