
function Zf90_Set_Post_Migrate_Fn0s(zz,fn_ptr)
integer(Zoltan_INT) :: Zf90_Set_Post_Migrate_Fn0s
type(Zoltan_Struct) , intent(in) :: zz
interface
  subroutine fn_ptr(dummy, num_gid_entries, num_lid_entries, &
    num_import, imp_gids, imp_lids, imp_procs, &
    num_export, exp_gids, exp_lids, exp_procs, ierr)
  use zoltan_types
  integer(Zoltan_INT), intent(in)  :: dummy(*)
  integer(Zoltan_INT), intent(in)  :: num_gid_entries, num_lid_entries
  integer(Zoltan_INT), intent(in)  :: num_import, num_export
  integer(Zoltan_INT), intent(in)  :: imp_gids(*), imp_lids(*), imp_procs(*)
  integer(Zoltan_INT), intent(in)  :: exp_gids(*), exp_lids(*), exp_procs(*)
  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_Post_Migrate_Fn0s = Zfw_Set_Fn0s(zz_addr,nbytes,ZOLTAN_POST_MIGRATE_FN_TYPE%choice,fn_ptr)
end function Zf90_Set_Post_Migrate_Fn0s


function Zf90_Set_Post_Migrate_Fn1s(zz,fn_ptr,data)
integer(Zoltan_INT) :: Zf90_Set_Post_Migrate_Fn1s
type(Zoltan_Struct) , intent(in) :: zz
interface
  subroutine fn_ptr(data, num_gid_entries, num_lid_entries, &
    num_import, imp_gids, imp_lids, imp_procs, &
    num_export, exp_gids, exp_lids, exp_procs, ierr)
  use zoltan_types
  integer(Zoltan_INT) , intent(in) :: data(*)
  integer(Zoltan_INT), intent(in)  :: num_gid_entries, num_lid_entries
  integer(Zoltan_INT), intent(in)  :: num_import, num_export
  integer(Zoltan_INT), intent(in)  :: imp_gids(*), imp_lids(*), imp_procs(*)
  integer(Zoltan_INT), intent(in)  :: exp_gids(*), exp_lids(*), exp_procs(*)
  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_Post_Migrate_Fn1s = Zfw_Set_Fn1s(zz_addr,nbytes,ZOLTAN_POST_MIGRATE_FN_TYPE%choice,fn_ptr,data)
end function Zf90_Set_Post_Migrate_Fn1s


function Zf90_Set_Post_Migrate_Fn2s(zz,fn_ptr,data)
integer(Zoltan_INT) :: Zf90_Set_Post_Migrate_Fn2s
type(Zoltan_Struct) , intent(in) :: zz
interface
  subroutine fn_ptr(data, num_gid_entries, num_lid_entries, &
    num_import, imp_gids, imp_lids, imp_procs, &
    num_export, exp_gids, exp_lids, exp_procs, ierr)
  use zoltan_types
  real(Zoltan_FLOAT) , intent(in) :: data(*)
  integer(Zoltan_INT), intent(in)  :: num_gid_entries, num_lid_entries
  integer(Zoltan_INT), intent(in)  :: num_import, num_export
  integer(Zoltan_INT), intent(in)  :: imp_gids(*), imp_lids(*), imp_procs(*)
  integer(Zoltan_INT), intent(in)  :: exp_gids(*), exp_lids(*), exp_procs(*)
  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_Post_Migrate_Fn2s = Zfw_Set_Fn2s(zz_addr,nbytes,ZOLTAN_POST_MIGRATE_FN_TYPE%choice,fn_ptr,data)
end function Zf90_Set_Post_Migrate_Fn2s


function Zf90_Set_Post_Migrate_Fn3s(zz,fn_ptr,data)
integer(Zoltan_INT) :: Zf90_Set_Post_Migrate_Fn3s
type(Zoltan_Struct) , intent(in) :: zz
interface
  subroutine fn_ptr(data, num_gid_entries, num_lid_entries, &
    num_import, imp_gids, imp_lids, imp_procs, &
    num_export, exp_gids, exp_lids, exp_procs, ierr)
  use zoltan_types
  real(Zoltan_DOUBLE) , intent(in) :: data(*)
  integer(Zoltan_INT), intent(in)  :: num_gid_entries, num_lid_entries
  integer(Zoltan_INT), intent(in)  :: num_import, num_export
  integer(Zoltan_INT), intent(in)  :: imp_gids(*), imp_lids(*), imp_procs(*)
  integer(Zoltan_INT), intent(in)  :: exp_gids(*), exp_lids(*), exp_procs(*)
  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_Post_Migrate_Fn3s = Zfw_Set_Fn3s(zz_addr,nbytes,ZOLTAN_POST_MIGRATE_FN_TYPE%choice,fn_ptr,data)
end function Zf90_Set_Post_Migrate_Fn3s


function Zf90_Set_Post_Migrate_Fn4s(zz,fn_ptr,data)
integer(Zoltan_INT) :: Zf90_Set_Post_Migrate_Fn4s
type(Zoltan_Struct) , intent(in) :: zz
interface
  subroutine fn_ptr(data, num_gid_entries, num_lid_entries, &
    num_import, imp_gids, imp_lids, imp_procs, &
    num_export, exp_gids, exp_lids, exp_procs, 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
  integer(Zoltan_INT), intent(in)  :: num_import, num_export
  integer(Zoltan_INT), intent(in)  :: imp_gids(*), imp_lids(*), imp_procs(*)
  integer(Zoltan_INT), intent(in)  :: exp_gids(*), exp_lids(*), exp_procs(*)
  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_Post_Migrate_Fn4s = Zfw_Set_Fn4s(zz_addr,nbytes,ZOLTAN_POST_MIGRATE_FN_TYPE%choice,fn_ptr,data)
end function Zf90_Set_Post_Migrate_Fn4s


function Zf90_Set_Post_Migrate_Fn5s(zz,fn_ptr,data)
integer(Zoltan_INT) :: Zf90_Set_Post_Migrate_Fn5s
type(Zoltan_Struct) , intent(in) :: zz
interface
  subroutine fn_ptr(data, num_gid_entries, num_lid_entries, &
    num_import, imp_gids, imp_lids, imp_procs, &
    num_export, exp_gids, exp_lids, exp_procs, 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
  integer(Zoltan_INT), intent(in)  :: num_import, num_export
  integer(Zoltan_INT), intent(in)  :: imp_gids(*), imp_lids(*), imp_procs(*)
  integer(Zoltan_INT), intent(in)  :: exp_gids(*), exp_lids(*), exp_procs(*)
  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_Post_Migrate_Fn5s = Zfw_Set_Fn5s(zz_addr,nbytes,ZOLTAN_POST_MIGRATE_FN_TYPE%choice,fn_ptr,data)
end function Zf90_Set_Post_Migrate_Fn5s


function Zf90_Set_Post_Migrate_Fn6s(zz,fn_ptr,data)
integer(Zoltan_INT) :: Zf90_Set_Post_Migrate_Fn6s
type(Zoltan_Struct) , intent(in) :: zz
interface
  subroutine fn_ptr(data, num_gid_entries, num_lid_entries, &
    num_import, imp_gids, imp_lids, imp_procs, &
    num_export, exp_gids, exp_lids, exp_procs, 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
  integer(Zoltan_INT), intent(in)  :: num_import, num_export
  integer(Zoltan_INT), intent(in)  :: imp_gids(*), imp_lids(*), imp_procs(*)
  integer(Zoltan_INT), intent(in)  :: exp_gids(*), exp_lids(*), exp_procs(*)
  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_Post_Migrate_Fn6s = Zfw_Set_Fn6s(zz_addr,nbytes,ZOLTAN_POST_MIGRATE_FN_TYPE%choice,fn_ptr,data)
end function Zf90_Set_Post_Migrate_Fn6s


function Zf90_Set_Post_Migrate_Fn7s(zz,fn_ptr,data)
integer(Zoltan_INT) :: Zf90_Set_Post_Migrate_Fn7s
type(Zoltan_Struct) , intent(in) :: zz
interface
  subroutine fn_ptr(data, num_gid_entries, num_lid_entries, &
    num_import, imp_gids, imp_lids, imp_procs, &
    num_export, exp_gids, exp_lids, exp_procs, 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
  integer(Zoltan_INT), intent(in)  :: num_import, num_export
  integer(Zoltan_INT), intent(in)  :: imp_gids(*), imp_lids(*), imp_procs(*)
  integer(Zoltan_INT), intent(in)  :: exp_gids(*), exp_lids(*), exp_procs(*)
  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_Post_Migrate_Fn7s = Zfw_Set_Fn7s(zz_addr,nbytes,ZOLTAN_POST_MIGRATE_FN_TYPE%choice,fn_ptr,data)
end function Zf90_Set_Post_Migrate_Fn7s


