00001 module grid_parameter_binary_excision
00002   use phys_constant, only : long
00003   implicit none
00004   integer :: ex_nrg, ex_ndis 
00005   real(long) :: ex_radius, ex_rgin, ex_rgmid, ex_rgout
00006 contains
00007 subroutine read_parameter_binary_excision
00008   use grid_parameter, only : nrf
00009   implicit none
00010   open(1,file='bin_ex_par.dat',status='old')
00011   read(1,'(2i5)') ex_nrg, ex_ndis
00012   close(1)
00013 
00014   if (nrf.ge.ex_nrg) write(6,*) '** Warning ** nrf > ex_nrg '
00015   if (nrf.ge.ex_nrg) write(6,*) 'nrf = ', nrf, '  ex_nrg = ', ex_nrg
00016   if (ex_nrg.eq.0)   write(6,*) ' No binary excision '
00017 end subroutine read_parameter_binary_excision
00018 
00019 subroutine calc_parameter_binary_excision
00020   use grid_parameter, only : nrf, nrg
00021   use coordinate_grav_r, only : rg, drg
00022   use coordinate_grav_theta
00023   use coordinate_grav_phi
00024   use def_binary_parameter, only : sepa, dis
00025   implicit none
00026   integer :: irg
00027   sepa = 2.0d0*rg(ex_nrg + ex_ndis)
00028   dis  =       rg(ex_nrg + ex_ndis)
00029   ex_radius = rg(ex_nrg)
00030   ex_rgin   = dis + dis - rg(ex_nrg)
00031   ex_rgmid  = sepa
00032   ex_rgout  = sepa + rg(ex_nrg)
00033   if (ex_nrg.eq.0) then 
00034     sepa = 0.0d0
00035     dis  = 0.0d0
00036     ex_radius = 0.0d0
00037     ex_rgin   = 0.0d0
00038     ex_rgmid  = 0.0d0
00039     ex_rgout  = 0.0d0
00040   end if
00041 
00042 end subroutine calc_parameter_binary_excision
00043 
00044 subroutine IO_printout_grid_data
00045   use grid_parameter, only : nrf, nrg
00046   use coordinate_grav_r, only : rg, drg
00047   use coordinate_grav_theta
00048   use coordinate_grav_phi
00049   use def_binary_parameter, only : sepa, dis
00050   implicit none
00051   integer :: irg
00052   open(1,file='grid_data.dat',status='unknown')
00053 
00054 
00055 
00056 
00057 
00058 
00059 
00060   write(1,'(a4,i3,a10,1p,e20.12)') 'ntg=', ntg, '     dthg=', dthg
00061   write(1,'(a4,i3,a10,1p,e20.12)') 'npg=', npg, '     dphg=', dphig
00062   write(1,'(a100)') '           ex_radius<                dis<            ex_rgin<               sepa<           ex_rgout'
00063   write(1,'(1p,6e20.12)') ex_radius,dis,ex_rgin,sepa,ex_rgout
00064 
00065   write(1,'(a37,i3,a2,1p,e20.12)') '..................................rg(',0,')=', rg(0)
00066 
00067   do irg=1,ex_nrg-1
00068     write(1,'(a4,i3,a2,1p,e20.12,a5,a3,i3,a2,1p,e20.12)') 'drg(',irg,')=',drg(irg),'     ','rg(',irg,')=',rg(irg)
00069   end do
00070 
00071   write(1,'(a4,i3,a2,1p,e20.12,a5,a3,i3,a2,1p,e20.12,a24)') 'drg(',ex_nrg,')=',drg(ex_nrg),'     ','rg(',irg,')=',&
00072       &  rg(ex_nrg), '    ex_radius=rg(ex_nrg)' 
00073 
00074   do irg=ex_nrg+1,(ex_nrg+ex_ndis-1)
00075     write(1,'(a4,i3,a2,1p,e20.12,a5,a3,i3,a2,1p,e20.12)') 'drg(',irg,')=',drg(irg),'     ','rg(',irg,')=',rg(irg)
00076   end do
00077 
00078   irg=ex_nrg+ex_ndis
00079 
00080   write(1,'(a4,i3,a2,1p,e20.12,a5,a3,i3,a2,1p,e20.12,a24)') 'drg(',irg,')=',drg(irg),'     ','rg(',irg,')=',rg(irg) &
00081     &   , '  rg(ex_nrg+ex_ndis)=dis'
00082 
00083   do irg=(ex_nrg+ex_ndis+1),nrg
00084     write(1,'(a4,i3,a2,1p,e20.12,a5,a3,i3,a2,1p,e20.12)') 'drg(',irg,')=',drg(irg),'     ','rg(',irg,')=',rg(irg)
00085   end do   
00086 
00087   close(1)
00088 
00089 end subroutine IO_printout_grid_data
00090 end module grid_parameter_binary_excision