
function Zf90_Set_Pack_Obj_Multi_Fn0s(zz,fn_ptr)
integer(Zoltan_INT) :: Zf90_Set_Pack_Obj_Multi_Fn0s
type(Zoltan_Struct) , intent(in) :: zz
interface
  subroutine fn_ptr(dummy, num_gid_entries, num_lid_entries, num_ids, &
    global_id, local_id, dest_proc, size, idx, buf, ierr)
  use zoltan_types
  integer(Zoltan_INT), intent(in)  :: dummy(*)
  integer(Zoltan_INT), intent(in) :: num_gid_entries, num_lid_entries, num_ids
  integer(Zoltan_INT), intent(in) :: global_id(*), local_id(*)
  integer(Zoltan_INT), intent(in) :: dest_proc(*), size(*), idx(*)
  integer(Zoltan_INT), intent(out) :: buf(*)
  integer(Zoltan_INT), intent(out) :: ierr
  end subroutine 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_Pack_Obj_Multi_Fn0s = Zfw_Set_Fn0s(zz_addr,nbytes,ZOLTAN_PACK_OBJ_MULTI_FN_TYPE%choice,fn_ptr)
end function Zf90_Set_Pack_Obj_Multi_Fn0s


function Zf90_Set_Pack_Obj_Multi_Fn1s(zz,fn_ptr,data)
integer(Zoltan_INT) :: Zf90_Set_Pack_Obj_Multi_Fn1s
type(Zoltan_Struct) , intent(in) :: zz
interface
  subroutine fn_ptr(data, num_gid_entries, num_lid_entries, num_ids, &
    global_id, local_id, dest_proc, size, idx, buf, ierr)
  use zoltan_types
  integer(Zoltan_INT) , intent(in) :: data(*)
  integer(Zoltan_INT), intent(in) :: num_gid_entries, num_lid_entries, num_ids
  integer(Zoltan_INT), intent(in) :: global_id(*), local_id(*)
  integer(Zoltan_INT), intent(in) :: dest_proc(*), size(*), idx(*)
  integer(Zoltan_INT), intent(out) :: buf(*)
  integer(Zoltan_INT), intent(out) :: ierr
  end subroutine 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_Pack_Obj_Multi_Fn1s = Zfw_Set_Fn1s(zz_addr,nbytes,ZOLTAN_PACK_OBJ_MULTI_FN_TYPE%choice,fn_ptr,data)
end function Zf90_Set_Pack_Obj_Multi_Fn1s


function Zf90_Set_Pack_Obj_Multi_Fn2s(zz,fn_ptr,data)
integer(Zoltan_INT) :: Zf90_Set_Pack_Obj_Multi_Fn2s
type(Zoltan_Struct) , intent(in) :: zz
interface
  subroutine fn_ptr(data, num_gid_entries, num_lid_entries, num_ids, &
    global_id, local_id, dest_proc, size, idx, buf, ierr)
  use zoltan_types
  real(Zoltan_FLOAT) , intent(in) :: data(*)
  integer(Zoltan_INT), intent(in) :: num_gid_entries, num_lid_entries, num_ids
  integer(Zoltan_INT), intent(in) :: global_id(*), local_id(*)
  integer(Zoltan_INT), intent(in) :: dest_proc(*), size(*), idx(*)
  integer(Zoltan_INT), intent(out) :: buf(*)
  integer(Zoltan_INT), intent(out) :: ierr
  end subroutine 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_Pack_Obj_Multi_Fn2s = Zfw_Set_Fn2s(zz_addr,nbytes,ZOLTAN_PACK_OBJ_MULTI_FN_TYPE%choice,fn_ptr,data)
end function Zf90_Set_Pack_Obj_Multi_Fn2s


function Zf90_Set_Pack_Obj_Multi_Fn3s(zz,fn_ptr,data)
integer(Zoltan_INT) :: Zf90_Set_Pack_Obj_Multi_Fn3s
type(Zoltan_Struct) , intent(in) :: zz
interface
  subroutine fn_ptr(data, num_gid_entries, num_lid_entries, num_ids, &
    global_id, local_id, dest_proc, size, idx, buf, ierr)
  use zoltan_types
  real(Zoltan_DOUBLE) , intent(in) :: data(*)
  integer(Zoltan_INT), intent(in) :: num_gid_entries, num_lid_entries, num_ids
  integer(Zoltan_INT), intent(in) :: global_id(*), local_id(*)
  integer(Zoltan_INT), intent(in) :: dest_proc(*), size(*), idx(*)
  integer(Zoltan_INT), intent(out) :: buf(*)
  integer(Zoltan_INT), intent(out) :: ierr
  end subroutine 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_Pack_Obj_Multi_Fn3s = Zfw_Set_Fn3s(zz_addr,nbytes,ZOLTAN_PACK_OBJ_MULTI_FN_TYPE%choice,fn_ptr,data)
end function Zf90_Set_Pack_Obj_Multi_Fn3s


function Zf90_Set_Pack_Obj_Multi_Fn4s(zz,fn_ptr,data)
integer(Zoltan_INT) :: Zf90_Set_Pack_Obj_Multi_Fn4s
type(Zoltan_Struct) , intent(in) :: zz
interface
  subroutine fn_ptr(data, num_gid_entries, num_lid_entries, num_ids, &
    global_id, local_id, dest_proc, size, idx, buf, ierr)
  use zoltan_types
  use zoltan_user_data
  type(Zoltan_User_Data_1) , intent(in) :: data
  integer(Zoltan_INT), intent(in) :: num_gid_entries, num_lid_entries, num_ids
  integer(Zoltan_INT), intent(in) :: global_id(*), local_id(*)
  integer(Zoltan_INT), intent(in) :: dest_proc(*), size(*), idx(*)
  integer(Zoltan_INT), intent(out) :: buf(*)
  integer(Zoltan_INT), intent(out) :: ierr
  end subroutine 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_Pack_Obj_Multi_Fn4s = Zfw_Set_Fn4s(zz_addr,nbytes,ZOLTAN_PACK_OBJ_MULTI_FN_TYPE%choice,fn_ptr,data)
end function Zf90_Set_Pack_Obj_Multi_Fn4s


function Zf90_Set_Pack_Obj_Multi_Fn5s(zz,fn_ptr,data)
integer(Zoltan_INT) :: Zf90_Set_Pack_Obj_Multi_Fn5s
type(Zoltan_Struct) , intent(in) :: zz
interface
  subroutine fn_ptr(data, num_gid_entries, num_lid_entries, num_ids, &
    global_id, local_id, dest_proc, size, idx, buf, ierr)
  use zoltan_types
  use zoltan_user_data
  type(Zoltan_User_Data_2) , intent(in) :: data
  integer(Zoltan_INT), intent(in) :: num_gid_entries, num_lid_entries, num_ids
  integer(Zoltan_INT), intent(in) :: global_id(*), local_id(*)
  integer(Zoltan_INT), intent(in) :: dest_proc(*), size(*), idx(*)
  integer(Zoltan_INT), intent(out) :: buf(*)
  integer(Zoltan_INT), intent(out) :: ierr
  end subroutine 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_Pack_Obj_Multi_Fn5s = Zfw_Set_Fn5s(zz_addr,nbytes,ZOLTAN_PACK_OBJ_MULTI_FN_TYPE%choice,fn_ptr,data)
end function Zf90_Set_Pack_Obj_Multi_Fn5s


function Zf90_Set_Pack_Obj_Multi_Fn6s(zz,fn_ptr,data)
integer(Zoltan_INT) :: Zf90_Set_Pack_Obj_Multi_Fn6s
type(Zoltan_Struct) , intent(in) :: zz
interface
  subroutine fn_ptr(data, num_gid_entries, num_lid_entries, num_ids, &
    global_id, local_id, dest_proc, size, idx, buf, ierr)
  use zoltan_types
  use zoltan_user_data
  type(Zoltan_User_Data_3) , intent(in) :: data
  integer(Zoltan_INT), intent(in) :: num_gid_entries, num_lid_entries, num_ids
  integer(Zoltan_INT), intent(in) :: global_id(*), local_id(*)
  integer(Zoltan_INT), intent(in) :: dest_proc(*), size(*), idx(*)
  integer(Zoltan_INT), intent(out) :: buf(*)
  integer(Zoltan_INT), intent(out) :: ierr
  end subroutine 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_Pack_Obj_Multi_Fn6s = Zfw_Set_Fn6s(zz_addr,nbytes,ZOLTAN_PACK_OBJ_MULTI_FN_TYPE%choice,fn_ptr,data)
end function Zf90_Set_Pack_Obj_Multi_Fn6s


function Zf90_Set_Pack_Obj_Multi_Fn7s(zz,fn_ptr,data)
integer(Zoltan_INT) :: Zf90_Set_Pack_Obj_Multi_Fn7s
type(Zoltan_Struct) , intent(in) :: zz
interface
  subroutine fn_ptr(data, num_gid_entries, num_lid_entries, num_ids, &
    global_id, local_id, dest_proc, size, idx, buf, ierr)
  use zoltan_types
  use zoltan_user_data
  type(Zoltan_User_Data_4) , intent(in) :: data
  integer(Zoltan_INT), intent(in) :: num_gid_entries, num_lid_entries, num_ids
  integer(Zoltan_INT), intent(in) :: global_id(*), local_id(*)
  integer(Zoltan_INT), intent(in) :: dest_proc(*), size(*), idx(*)
  integer(Zoltan_INT), intent(out) :: buf(*)
  integer(Zoltan_INT), intent(out) :: ierr
  end subroutine 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_Pack_Obj_Multi_Fn7s = Zfw_Set_Fn7s(zz_addr,nbytes,ZOLTAN_PACK_OBJ_MULTI_FN_TYPE%choice,fn_ptr,data)
end function Zf90_Set_Pack_Obj_Multi_Fn7s


