00001 !______________________________________________ 00002 include '../Include_file/include_modulefiles_pBH.f90' 00003 include '../Include_file/include_interface_modulefiles_pBH.f90' 00004 include '../Include_file/include_subroutines_pBH.f90' 00005 include '../Include_file/include_functions.f90' 00006 !______________________________________________ 00007 ! 00008 ! Main Program 00009 !______________________________________________ 00010 PROGRAM Main_pBH_CF 00011 ! 00012 use grid_parameter, only : indata_type, outdata_type, iter_max 00013 use radial_green_fn_grav 00014 use radial_green_fn_grav_bhex_nb 00015 use radial_green_fn_grav_bhex_dd 00016 use radial_green_fn_grav_bhex_nd 00017 use radial_green_fn_grav_bhex_sd 00018 use interface_copy_to_hgfn_and_gfnsf 00019 implicit none 00020 integer :: iseq, iter_count, total_iteration 00021 ! 00022 call read_parameter_pbh 00023 call coordinate_patch_kit_bhex 00024 call allocate_hgfn_bhex 00025 call allocate_hgfn_bhex_dd 00026 call calc_hgfn_bhex_dd 00027 call allocate_hgfn_bhex_nd 00028 call calc_hgfn_bhex_nd 00029 call allocate_hgfn_bhex_sd 00030 call calc_hgfn_bhex_sd 00031 ! -- No boundary Green's fn 00032 call allocate_hgfn_bhex_nb 00033 call calc_hgfn_bhex_nb 00034 call copy_to_hgfn_and_gfnsf(hgfn_nb,gfnsf_nb) 00035 ! -- 00036 call allocate_BBH_CF 00037 call allocate_pBH_CF 00038 if (indata_type.eq.'IN') call initial_metric_CF_pBH 00039 if (indata_type.eq.'3D') call IO_input_initial_3D 00040 ! 00041 call iteration_pBH_CF(iter_count) 00042 if (total_iteration.ge.iter_max) then 00043 write(6,*)' ** Solution did not converge **' 00044 end if 00045 if (outdata_type.eq.'3D') call IO_output_solution_3D 00046 ! 00047 call allocate_horizon 00048 call initial_AHfinder 00049 call excurve_TrpBH 00050 call excurve_TrpBH_gridpoint 00051 call copy_Aij_pBH_to_tfkij 00052 call iteration_AHfinder(iter_count) 00053 if (total_iteration.ge.iter_max) then 00054 write(6,*)' ** Solution did not converge AH finder **' 00055 end if 00056 call copy_Aij_pBH_to_tfkij 00057 call calc_AHarea_AHfinder 00058 call IO_output_AHfinder 00059 call IO_output_AHfinder_gnuplot 00060 ! 00061 iseq = 1 00062 call calc_physical_quantities_BH 00063 call printout_physq_BH(iseq) 00064 call IO_output_plot_xyz_pBH_CF 00065 ! 00066 END PROGRAM Main_pBH_CF