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/grid_points_asymptotic_patch.f90'
00006 include '../Module/weight_midpoint_binary_excision.f90'
00007 include '../Module/radial_green_fn_helmholtz.f90'
00008 include '../Module/radial_green_fn_hrethadv.f90'
00009 include '../Module/radial_green_fn_hrethadv_homosol.f90'
00010 include '../Module/copy_array_3d.f90'
00011 include '../Module/copy_array_4d.f90'
00012 include '../Module/make_char2_array_2d.f90'
00013 include '../Module/make_char1_array_2d.f90'
00014 include '../Module/make_int_array_3d.f90'
00015 
00016 include '../Include_file/include_interface_modulefiles_peos.f90'
00017 include '../Module_interface/interface_error_metric.f90'
00018 include '../Module_interface/interface_error_metric_type0.f90'
00019 include '../Module_interface/interface_grdr_gridpoint_type0.f90'
00020 include '../Module_interface/interface_grdr_gridpoint_type0_nosym.f90'
00021 include '../Module_interface/interface_sourceterm_helmholtz_solver_test.f90'
00022 include '../Module_interface/interface_sourceterm_exsurf_eqm_binary.f90'
00023 include '../Module_interface/interface_sourceterm_outsurf_eqm_binary.f90'
00024 include '../Module_interface/interface_sourceterm_surface_int.f90'
00025 include '../Module_interface/interface_sourceterm_surface_int_homosol.f90'
00026 include '../Module_interface/interface_sourceterm_insurf_asymptotic_patch.f90'
00027 include '../Module_interface/interface_helmholtz_solver_vol_int.f90'
00028 include '../Module_interface/interface_helmholtz_solver_surf_int.f90'
00029 include '../Module_interface/interface_helmholtz_solver_binary.f90'
00030 include '../Module_interface/interface_helmholtz_solver_binary_vol_int.f90'
00031 include '../Module_interface/interface_helmholtz_solver_binary_surf_int.f90'
00032 include '../Module_interface/interface_helmholtz_solver_outer_surf_int.f90'
00033 include '../Module_interface/interface_helmholtz_solver_asymptotic_patch_homosol.f90'
00034 include '../Module_interface/interface_copy_to_bsjy_and_sbsjy.f90'
00035 include '../Module_interface/interface_interpo_binary_to_asymptotic_patch.f90'
00036 
00037 include '../Include_file/include_modulefiles_mpatch.f90'
00038 
00039 include '../Include_file/include_subroutines_peos.f90'
00040 include '../Subroutine/IO_output_poisson_test_3D.f90'
00041 include '../Subroutine/iteration_helmholtz_solver_binary_test.f90'
00042 include '../Subroutine/error_metric.f90'
00043 include '../Subroutine/error_metric_type0.f90'
00044 include '../Subroutine/printout_error_metric.f90'
00045 include '../Subroutine/sourceterm_helmholtz_solver_test.f90'
00046 include '../Subroutine/sourceterm_exsurf_eqm_binary.f90'
00047 include '../Subroutine/sourceterm_outsurf_eqm_binary.f90'
00048 include '../Subroutine/sourceterm_surface_int.f90'
00049 include '../Subroutine/sourceterm_surface_int_homosol.f90'
00050 include '../Subroutine/helmholtz_solver_vol_int.f90'
00051 include '../Subroutine/helmholtz_solver_surf_int.f90'
00052 include '../Subroutine/helmholtz_solver_binary.f90'
00053 include '../Subroutine/helmholtz_solver_binary_vol_int.f90'
00054 include '../Subroutine/helmholtz_solver_binary_surf_int.f90'
00055 include '../Subroutine/helmholtz_solver_outer_surf_int.f90'
00056 include '../Subroutine/helmholtz_solver_asymptotic_patch_homosol.f90'
00057 include '../Subroutine/grdr_gridpoint_type0.f90'
00058 include '../Subroutine/grdr_gridpoint_type0_nosym.f90'
00059 include '../Subroutine/test_source_helical_binary.f90'
00060 include '../Subroutine/allocate_poisson_solver_test.f90'
00061 include '../Subroutine/allocate_metric_and_matter_BHNS_test.f90'
00062 include '../Subroutine/test_analytic_solution.f90'
00063 include '../Subroutine/calc_radial_green_fn_hrethadv.f90'
00064 include '../Subroutine/calc_radial_green_fn_hrethadv_homosol.f90'
00065 include '../Subroutine/interpo_binary_to_asymptotic_patch.f90'
00066 include '../Subroutine/copy_to_bsjy_and_sbsjy.f90'
00067 include '../Subroutine/sphbess.f90'
00068 include '../Subroutine/sphbess_and_dx.f90'
00069 include '../Subroutine/sphbess_dx.f90'
00070 include '../Subroutine/bessjy.f90'
00071 include '../Subroutine/beschb.f90'
00072 include '../Include_file/include_subroutines_mpatch.f90'
00073 include '../Subroutine_mpatch/IO_output_poisson_test_3D_mpt.f90'
00074 include '../Subroutine_mpatch/allocate_metric_and_matter_BHNS_test_mpt.f90'
00075 include '../Subroutine_mpatch/copy_metric_and_matter_BHNS_test_to_mpt.f90'
00076 include '../Subroutine_mpatch/copy_metric_and_matter_BHNS_test_from_mpt.f90'
00077 include '../Subroutine_mpatch/copy_to_mpatch_helmholtz_test.f90'
00078 include '../Subroutine_mpatch/copy_from_mpatch_helmholtz_test.f90'
00079 include '../Subroutine_mpatch/sourceterm_insurf_asymptotic_patch.f90'
00080 include '../Function/chebev.f90'
00081 
00082 
00083 
00084 
00085 PROGRAM Main_helmholtz_binary_test
00086 
00087   use phys_constant, only : nmpt
00088   use grid_parameter, only : indata_type, outdata_type, & 
00089   &                          iter_max
00090   use grid_parameter_binary_excision
00091   use grid_points_binary_excision
00092   use grid_points_asymptotic_patch
00093   use weight_midpoint_grav
00094   use weight_midpoint_fluid
00095   use weight_midpoint_binary_excision
00096   use def_vector_x
00097   use def_vector_phi
00098   use radial_green_fn_helmholtz
00099   use radial_green_fn_hrethadv
00100   use radial_green_fn_hrethadv_homosol
00101   implicit none
00102   integer :: iseq, iter_count, total_iteration, impt, impt_bin
00103 
00104 
00105   call allocate_grid_parameter_mpt
00106   call allocate_grid_parameter_binary_excision_mpt
00107   call read_parameter_mpt(1)
00108   call copy_grid_parameter_to_mpt(1)
00109   call read_parameter_binary_excision_mpt(1)
00110   call copy_grid_parameter_binary_excision_to_mpt(1)
00111 
00112   call read_parameter_mpt(2)
00113   call copy_grid_parameter_to_mpt(2)
00114   call read_parameter_binary_excision_mpt(2)
00115   call copy_grid_parameter_binary_excision_to_mpt(2)
00116 
00117 
00118   call set_allocate_size_mpt
00119 
00120   call allocate_coordinate_patch_kit_grav_mpt
00121   call allocate_grid_points_binary_excision
00122   call allocate_weight_midpoint_grav
00123   call allocate_weight_midpoint_fluid
00124   call allocate_weight_midpoint_binary_excision
00125   call allocate_vector_x
00126   call allocate_vector_phi
00127   call allocate_radial_green_fn_helmholtz
00128   call allocate_radial_green_fn_hrethadv
00129   call allocate_radial_green_fn_hrethadv_homosol
00130   call allocate_metric_and_matter_BHNS_test
00131   call allocate_metric_and_matter_BHNS_test_mpt
00132 
00133   call allocate_mpatch_all_test
00134 
00135   do impt = 1, nmpt
00136     call copy_grid_parameter_from_mpt(impt)
00137     call copy_grid_parameter_binary_excision_from_mpt(impt)
00138     call coordinate_patch_kit_grav_mpt
00139     if (impt.eq.1) then
00140       call calc_parameter_binary_excision
00141       call calc_grid_points_binary_excision
00142       call calc_weight_midpoint_binary_excision
00143       call test_source_helical_binary
00144     end if
00145 
00146     if (impt.eq.2) then
00147       impt_bin = 1
00148       call allocate_grid_points_asymptotic_patch
00149       call calc_parameter_binary_excision
00150       call calc_grid_points_asymptotic_patch(impt_bin,impt)
00151     end if
00152     call calc_vector_x_grav(0)
00153     call calc_vector_x_matter(0)
00154     call calc_vector_phi_grav(0)
00155     call calc_vector_phi_matter(0)
00156     call copy_to_mpatch_helmholtz_test(impt)
00157     call copy_metric_and_matter_BHNS_test_to_mpt(impt)
00158   end do
00159 
00160   call iteration_helmholtz_solver_binary_test(iter_count)
00161   if (total_iteration.ge.iter_max) then
00162     write(6,*)' ** Solution did not converge **'
00163   end if
00164 
00165   do impt = 1, nmpt
00166     call copy_from_mpatch_helmholtz_test(impt)
00167     call copy_metric_and_matter_BHNS_test_from_mpt(impt)
00168     if (outdata_type.eq.'3D') call IO_output_poisson_test_3D_mpt(impt)
00169   end do
00170 
00171 
00172 
00173 
00174 
00175 END PROGRAM Main_helmholtz_binary_test