00001 
00002 include '../Include_file/include_modulefiles_peos.f90'
00003 include '../Module/grid_parameter_binary_excision.f90'
00004 include '../Module/grid_points_binary_excision.f90'
00005 include '../Module/weight_midpoint_binary_excision.f90'
00006 include '../Module/radial_green_fn_grav_bhex_di.f90'
00007 include '../Module/radial_green_fn_grav_bhex_nb.f90'
00008 include '../Module/copy_array_3d.f90'
00009 include '../Module/make_char2_array_2d.f90'
00010 include '../Module/make_char1_array_2d.f90'
00011 include '../Module/make_int_array_3d.f90'
00012 
00013 include '../Include_file/include_interface_modulefiles_peos.f90'
00014 include '../Module_interface/interface_error_metric.f90'
00015 include '../Module_interface/interface_grdr_gridpoint_type0.f90'
00016 include '../Module_interface/interface_grdr_gridpoint_type0_nosym.f90'
00017 include '../Module_interface/interface_sourceterm_poisson_solver_test.f90'
00018 include '../Module_interface/interface_sourceterm_exsurf_eqm_binary.f90'
00019 include '../Module_interface/interface_sourceterm_surface_int.f90'
00020 include '../Module_interface/interface_poisson_solver_binary.f90'
00021 
00022 include '../Module_interface/interface_poisson_solver_binary_surf_int.f90'
00023 include '../Module_interface/interface_poisson_solver_binary_vol_int.f90'
00024 
00025 include '../Module_interface/interface_copy_to_hgfn_and_gfnsf.f90'
00026 include '../Include_file/include_modulefiles_mpatch.f90'
00027 
00028 include '../Include_file/include_subroutines_peos.f90'
00029 include '../Subroutine/IO_output_poisson_test_3D.f90'
00030 
00031 include '../Subroutine/error_metric.f90'
00032 include '../Subroutine/printout_error_metric.f90'
00033 include '../Subroutine/coordinate_patch_kit_bhex.f90'
00034 include '../Subroutine/copy_hgfn_di_to_hgfn.f90'
00035 include '../Subroutine/copy_to_hgfn_and_gfnsf.f90'
00036 include '../Subroutine/sourceterm_poisson_solver_test.f90'
00037 include '../Subroutine/sourceterm_exsurf_eqm_binary.f90'
00038 include '../Subroutine/sourceterm_surface_int.f90'
00039 include '../Subroutine/poisson_solver_binary.f90'
00040 
00041 include '../Subroutine/poisson_solver_binary_vol_int.f90'
00042 include '../Subroutine/poisson_solver_binary_surf_int.f90'
00043 
00044 include '../Subroutine/grdr_gridpoint_type0.f90'
00045 include '../Subroutine/grdr_gridpoint_type0_nosym.f90'
00046 include '../Subroutine/reset_bh_boundary.f90'
00047 include '../Subroutine/test_source.f90'
00048 include '../Subroutine/allocate_poisson_solver_test.f90'
00049 include '../Subroutine/test_analytic_solution.f90'
00050 include '../Subroutine_mpatch/test_source_mpt.f90'
00051 include '../Subroutine_mpatch/iteration_poisson_solver_test_mpt.f90'
00052 include '../Subroutine_mpatch/IO_output_poisson_test_3D_mpt.f90'
00053 
00054 include '../Include_file/include_subroutines_mpatch.f90'
00055 
00056 
00057 
00058 
00059 
00060 
00061 
00062 
00063 
00064 
00065 PROGRAM Main_poisson_binary_test_mpt
00066 
00067   use phys_constant, only : nmpt
00068   use grid_parameter, only : indata_type, outdata_type, iter_max
00069 
00070   use grid_parameter_binary_excision
00071   use grid_points_binary_excision
00072   use weight_midpoint_binary_excision
00073   use radial_green_fn_grav
00074   use radial_green_fn_grav_bhex_nb
00075   use interface_copy_to_hgfn_and_gfnsf
00076 
00077 
00078   implicit none
00079   integer :: impt, itg
00080   integer :: iseq, iter_count, total_iteration
00081   
00082 
00083   call allocate_grid_parameter_mpt
00084   call allocate_grid_parameter_binary_excision_mpt
00085   call read_parameter_mpt(1)
00086   call copy_grid_parameter_to_mpt(1)
00087   call read_parameter_binary_excision_mpt(1)
00088   call copy_grid_parameter_binary_excision_to_mpt(1)
00089 
00090   call read_parameter_mpt(2)
00091   call copy_grid_parameter_to_mpt(2)
00092   call read_parameter_binary_excision_mpt(2)
00093   call copy_grid_parameter_binary_excision_to_mpt(2)
00094 
00095 
00096   call set_allocate_size_mpt
00097 
00098   call allocate_coordinate_patch_kit_grav_mpt
00099   call allocate_grid_points_binary_excision
00100   call allocate_weight_midpoint_binary_excision
00101   call allocate_hgfn_bhex
00102   call allocate_hgfn_bhex_nb
00103   call allocate_poisson_solver_test
00104   call allocate_poisson_solver_test_mpt
00105 
00106   call allocate_mpatch_all_test
00107 
00108   do impt = 1, nmpt
00109     call copy_grid_parameter_from_mpt(impt)
00110     call copy_grid_parameter_binary_excision_from_mpt(impt)
00111     call coordinate_patch_kit_grav_mpt
00112     call calc_parameter_binary_excision
00113     call calc_grid_points_binary_excision
00114     call calc_weight_midpoint_binary_excision
00115     call calc_hgfn_bhex_nb
00116     call copy_to_hgfn_and_gfnsf(hgfn_nb,gfnsf_nb)
00117     call calc_vector_x_grav(0)
00118     call calc_vector_x_matter(0)
00119     call calc_vector_phi_grav(0)
00120     call calc_vector_phi_matter(0)
00121     call copy_to_mpatch_all_test(impt)
00122     call test_source_mpt(impt)
00123     call copy_poisson_solver_test_to_mpt(impt)
00124   end do
00125 
00126 
00127 
00128 
00129 
00130    call iteration_poisson_solver_test_mpt(iter_count)
00131   if (total_iteration.ge.iter_max) then
00132     write(6,*)' ** Solution did not converge **'
00133   end if
00134 
00135     do impt = 1, nmpt
00136       call copy_from_mpatch_all_test(impt)
00137       call copy_poisson_solver_test_from_mpt(impt)
00138       if (outdata_type.eq.'3D') call IO_output_poisson_test_3D_mpt(impt)
00139     end do
00140 
00141 
00142  
00143   
00144 
00145 
00146 
00147 
00148 
00149 
00150 
00151 
00152   
00153   
00154   
00155   
00156   
00157 
00158 END PROGRAM Main_poisson_binary_test_mpt