
function Zf90_Set_First_Border_Obj_Fn0f(zz,fn_ptr)
integer(Zoltan_INT) :: Zf90_Set_First_Border_Obj_Fn0f
type(Zoltan_Struct) , intent(in) :: zz
interface
  function fn_ptr(dummy, num_gid_entries, num_lid_entries, nbor_proc, &
    global_id, local_id, &
    wdim, objwgts, ierr)
  use zoltan_types
  integer(Zoltan_INT) :: fn_ptr
  integer(Zoltan_INT), intent(in)  :: dummy(*)
  integer(Zoltan_INT), intent(in)  :: num_gid_entries, num_lid_entries
  integer(Zoltan_INT), intent(in)  :: nbor_proc
  integer(Zoltan_INT), intent(out) :: global_id(*), local_id(*)
  integer(Zoltan_INT), intent(in)  :: wdim
  real(Zoltan_FLOAT),  intent(out) :: objwgts(*)
  integer(Zoltan_INT), intent(out) :: ierr
  end function fn_ptr
end interface
integer(Zoltan_INT), dimension(Zoltan_PTR_LENGTH) :: zz_addr
integer(Zoltan_INT) :: nbytes, i
nbytes = Zoltan_PTR_LENGTH
do i=1,nbytes
   zz_addr(i) = ichar(zz%addr%addr(i:i))
end do
Zf90_Set_First_Border_Obj_Fn0f = Zfw_Set_Fn0f(zz_addr,nbytes,ZOLTAN_FIRST_BORDER_OBJ_FN_TYPE%choice,fn_ptr)
end function Zf90_Set_First_Border_Obj_Fn0f


function Zf90_Set_First_Border_Obj_Fn1f(zz,fn_ptr,data)
integer(Zoltan_INT) :: Zf90_Set_First_Border_Obj_Fn1f
type(Zoltan_Struct) , intent(in) :: zz
interface
  function fn_ptr(data, num_gid_entries, num_lid_entries, nbor_proc, &
    global_id, local_id, &
    wdim, objwgts, ierr)
  use zoltan_types
  integer(Zoltan_INT) :: fn_ptr
  integer(Zoltan_INT) , intent(in) :: data(*)
  integer(Zoltan_INT), intent(in)  :: num_gid_entries, num_lid_entries
  integer(Zoltan_INT), intent(in)  :: nbor_proc
  integer(Zoltan_INT), intent(out) :: global_id(*), local_id(*)
  integer(Zoltan_INT), intent(in)  :: wdim
  real(Zoltan_FLOAT),  intent(out) :: objwgts(*)
  integer(Zoltan_INT), intent(out) :: ierr
  end function fn_ptr
end interface
integer(Zoltan_INT) , intent(in) :: data(*)
integer(Zoltan_INT), dimension(Zoltan_PTR_LENGTH) :: zz_addr
integer(Zoltan_INT) :: nbytes, i
nbytes = Zoltan_PTR_LENGTH
do i=1,nbytes
   zz_addr(i) = ichar(zz%addr%addr(i:i))
end do
Zf90_Set_First_Border_Obj_Fn1f = Zfw_Set_Fn1f(zz_addr,nbytes,ZOLTAN_FIRST_BORDER_OBJ_FN_TYPE%choice,fn_ptr,data)
end function Zf90_Set_First_Border_Obj_Fn1f


function Zf90_Set_First_Border_Obj_Fn2f(zz,fn_ptr,data)
integer(Zoltan_INT) :: Zf90_Set_First_Border_Obj_Fn2f
type(Zoltan_Struct) , intent(in) :: zz
interface
  function fn_ptr(data, num_gid_entries, num_lid_entries, nbor_proc, &
    global_id, local_id, &
    wdim, objwgts, ierr)
  use zoltan_types
  integer(Zoltan_INT) :: fn_ptr
  real(Zoltan_FLOAT) , intent(in) :: data(*)
  integer(Zoltan_INT), intent(in)  :: num_gid_entries, num_lid_entries
  integer(Zoltan_INT), intent(in)  :: nbor_proc
  integer(Zoltan_INT), intent(out) :: global_id(*), local_id(*)
  integer(Zoltan_INT), intent(in)  :: wdim
  real(Zoltan_FLOAT),  intent(out) :: objwgts(*)
  integer(Zoltan_INT), intent(out) :: ierr
  end function fn_ptr
end interface
real(Zoltan_FLOAT) , intent(in) :: data(*)
integer(Zoltan_INT), dimension(Zoltan_PTR_LENGTH) :: zz_addr
integer(Zoltan_INT) :: nbytes, i
nbytes = Zoltan_PTR_LENGTH
do i=1,nbytes
   zz_addr(i) = ichar(zz%addr%addr(i:i))
end do
Zf90_Set_First_Border_Obj_Fn2f = Zfw_Set_Fn2f(zz_addr,nbytes,ZOLTAN_FIRST_BORDER_OBJ_FN_TYPE%choice,fn_ptr,data)
end function Zf90_Set_First_Border_Obj_Fn2f


function Zf90_Set_First_Border_Obj_Fn3f(zz,fn_ptr,data)
integer(Zoltan_INT) :: Zf90_Set_First_Border_Obj_Fn3f
type(Zoltan_Struct) , intent(in) :: zz
interface
  function fn_ptr(data, num_gid_entries, num_lid_entries, nbor_proc, &
    global_id, local_id, &
    wdim, objwgts, ierr)
  use zoltan_types
  integer(Zoltan_INT) :: fn_ptr
  real(Zoltan_DOUBLE) , intent(in) :: data(*)
  integer(Zoltan_INT), intent(in)  :: num_gid_entries, num_lid_entries
  integer(Zoltan_INT), intent(in)  :: nbor_proc
  integer(Zoltan_INT), intent(out) :: global_id(*), local_id(*)
  integer(Zoltan_INT), intent(in)  :: wdim
  real(Zoltan_FLOAT),  intent(out) :: objwgts(*)
  integer(Zoltan_INT), intent(out) :: ierr
  end function fn_ptr
end interface
real(Zoltan_DOUBLE) , intent(in) :: data(*)
integer(Zoltan_INT), dimension(Zoltan_PTR_LENGTH) :: zz_addr
integer(Zoltan_INT) :: nbytes, i
nbytes = Zoltan_PTR_LENGTH
do i=1,nbytes
   zz_addr(i) = ichar(zz%addr%addr(i:i))
end do
Zf90_Set_First_Border_Obj_Fn3f = Zfw_Set_Fn3f(zz_addr,nbytes,ZOLTAN_FIRST_BORDER_OBJ_FN_TYPE%choice,fn_ptr,data)
end function Zf90_Set_First_Border_Obj_Fn3f


function Zf90_Set_First_Border_Obj_Fn4f(zz,fn_ptr,data)
integer(Zoltan_INT) :: Zf90_Set_First_Border_Obj_Fn4f
type(Zoltan_Struct) , intent(in) :: zz
interface
  function fn_ptr(data, num_gid_entries, num_lid_entries, nbor_proc, &
    global_id, local_id, &
    wdim, objwgts, ierr)
  use zoltan_types
  use zoltan_user_data
  integer(Zoltan_INT) :: fn_ptr
  type(Zoltan_User_Data_1) , intent(in) :: data
  integer(Zoltan_INT), intent(in)  :: num_gid_entries, num_lid_entries
  integer(Zoltan_INT), intent(in)  :: nbor_proc
  integer(Zoltan_INT), intent(out) :: global_id(*), local_id(*)
  integer(Zoltan_INT), intent(in)  :: wdim
  real(Zoltan_FLOAT),  intent(out) :: objwgts(*)
  integer(Zoltan_INT), intent(out) :: ierr
  end function fn_ptr
end interface
type(Zoltan_User_Data_1) , intent(in) :: data
integer(Zoltan_INT), dimension(Zoltan_PTR_LENGTH) :: zz_addr
integer(Zoltan_INT) :: nbytes, i
nbytes = Zoltan_PTR_LENGTH
do i=1,nbytes
   zz_addr(i) = ichar(zz%addr%addr(i:i))
end do
Zf90_Set_First_Border_Obj_Fn4f = Zfw_Set_Fn4f(zz_addr,nbytes,ZOLTAN_FIRST_BORDER_OBJ_FN_TYPE%choice,fn_ptr,data)
end function Zf90_Set_First_Border_Obj_Fn4f


function Zf90_Set_First_Border_Obj_Fn5f(zz,fn_ptr,data)
integer(Zoltan_INT) :: Zf90_Set_First_Border_Obj_Fn5f
type(Zoltan_Struct) , intent(in) :: zz
interface
  function fn_ptr(data, num_gid_entries, num_lid_entries, nbor_proc, &
    global_id, local_id, &
    wdim, objwgts, ierr)
  use zoltan_types
  use zoltan_user_data
  integer(Zoltan_INT) :: fn_ptr
  type(Zoltan_User_Data_2) , intent(in) :: data
  integer(Zoltan_INT), intent(in)  :: num_gid_entries, num_lid_entries
  integer(Zoltan_INT), intent(in)  :: nbor_proc
  integer(Zoltan_INT), intent(out) :: global_id(*), local_id(*)
  integer(Zoltan_INT), intent(in)  :: wdim
  real(Zoltan_FLOAT),  intent(out) :: objwgts(*)
  integer(Zoltan_INT), intent(out) :: ierr
  end function fn_ptr
end interface
type(Zoltan_User_Data_2) , intent(in) :: data
integer(Zoltan_INT), dimension(Zoltan_PTR_LENGTH) :: zz_addr
integer(Zoltan_INT) :: nbytes, i
nbytes = Zoltan_PTR_LENGTH
do i=1,nbytes
   zz_addr(i) = ichar(zz%addr%addr(i:i))
end do
Zf90_Set_First_Border_Obj_Fn5f = Zfw_Set_Fn5f(zz_addr,nbytes,ZOLTAN_FIRST_BORDER_OBJ_FN_TYPE%choice,fn_ptr,data)
end function Zf90_Set_First_Border_Obj_Fn5f


function Zf90_Set_First_Border_Obj_Fn6f(zz,fn_ptr,data)
integer(Zoltan_INT) :: Zf90_Set_First_Border_Obj_Fn6f
type(Zoltan_Struct) , intent(in) :: zz
interface
  function fn_ptr(data, num_gid_entries, num_lid_entries, nbor_proc, &
    global_id, local_id, &
    wdim, objwgts, ierr)
  use zoltan_types
  use zoltan_user_data
  integer(Zoltan_INT) :: fn_ptr
  type(Zoltan_User_Data_3) , intent(in) :: data
  integer(Zoltan_INT), intent(in)  :: num_gid_entries, num_lid_entries
  integer(Zoltan_INT), intent(in)  :: nbor_proc
  integer(Zoltan_INT), intent(out) :: global_id(*), local_id(*)
  integer(Zoltan_INT), intent(in)  :: wdim
  real(Zoltan_FLOAT),  intent(out) :: objwgts(*)
  integer(Zoltan_INT), intent(out) :: ierr
  end function fn_ptr
end interface
type(Zoltan_User_Data_3) , intent(in) :: data
integer(Zoltan_INT), dimension(Zoltan_PTR_LENGTH) :: zz_addr
integer(Zoltan_INT) :: nbytes, i
nbytes = Zoltan_PTR_LENGTH
do i=1,nbytes
   zz_addr(i) = ichar(zz%addr%addr(i:i))
end do
Zf90_Set_First_Border_Obj_Fn6f = Zfw_Set_Fn6f(zz_addr,nbytes,ZOLTAN_FIRST_BORDER_OBJ_FN_TYPE%choice,fn_ptr,data)
end function Zf90_Set_First_Border_Obj_Fn6f


function Zf90_Set_First_Border_Obj_Fn7f(zz,fn_ptr,data)
integer(Zoltan_INT) :: Zf90_Set_First_Border_Obj_Fn7f
type(Zoltan_Struct) , intent(in) :: zz
interface
  function fn_ptr(data, num_gid_entries, num_lid_entries, nbor_proc, &
    global_id, local_id, &
    wdim, objwgts, ierr)
  use zoltan_types
  use zoltan_user_data
  integer(Zoltan_INT) :: fn_ptr
  type(Zoltan_User_Data_4) , intent(in) :: data
  integer(Zoltan_INT), intent(in)  :: num_gid_entries, num_lid_entries
  integer(Zoltan_INT), intent(in)  :: nbor_proc
  integer(Zoltan_INT), intent(out) :: global_id(*), local_id(*)
  integer(Zoltan_INT), intent(in)  :: wdim
  real(Zoltan_FLOAT),  intent(out) :: objwgts(*)
  integer(Zoltan_INT), intent(out) :: ierr
  end function fn_ptr
end interface
type(Zoltan_User_Data_4) , intent(in) :: data
integer(Zoltan_INT), dimension(Zoltan_PTR_LENGTH) :: zz_addr
integer(Zoltan_INT) :: nbytes, i
nbytes = Zoltan_PTR_LENGTH
do i=1,nbytes
   zz_addr(i) = ichar(zz%addr%addr(i:i))
end do
Zf90_Set_First_Border_Obj_Fn7f = Zfw_Set_Fn7f(zz_addr,nbytes,ZOLTAN_FIRST_BORDER_OBJ_FN_TYPE%choice,fn_ptr,data)
end function Zf90_Set_First_Border_Obj_Fn7f


