00001 subroutine initial_metric_BH_WL
00002 use phys_constant, only : long, pi
00003 use grid_parameter, only : nrg, ntg, npg
00004 use coordinate_grav_r, only : rg
00005 use def_metric
00006 use def_metric_hij
00007 use def_matter, only : omeg
00008 use def_metric_excurve_grid, only : trk_grid
00009 use def_vector_x, only : vec_xg, hvec_xg
00010 implicit none
00011 real(long) :: psi_kerr, alph_kerr, bvu_kerr(3), bvd_kerr(3),
00012 hijd_kerr(3,3), hiju_kerr(3,3), x, y, z, traceK
00013 integer :: irg, itg, ipg
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037 call calc_vector_x_grav(1)
00038 do ipg = 0, npg
00039 do itg = 0, ntg
00040 do irg = 0, nrg
00041 x = vec_xg(irg,itg,ipg,1)
00042 y = vec_xg(irg,itg,ipg,2)
00043 z = vec_xg(irg,itg,ipg,3)
00044 call kerr_schild_metric_3plus1(x,y,z,psi_kerr,alph_kerr, &
00045 & bvu_kerr,bvd_kerr,hijd_kerr,hiju_kerr)
00046 psi(irg,itg,ipg) = psi_kerr
00047 alph(irg,itg,ipg) = alph_kerr
00048 alps(irg,itg,ipg) = psi_kerr*alph_kerr
00049 bvxu(irg,itg,ipg) = bvu_kerr(1)
00050 bvyu(irg,itg,ipg) = bvu_kerr(2)
00051 bvzu(irg,itg,ipg) = bvu_kerr(3)
00052 bvxd(irg,itg,ipg) = bvd_kerr(1)
00053 bvyd(irg,itg,ipg) = bvd_kerr(2)
00054 bvzd(irg,itg,ipg) = bvd_kerr(3)
00055 hxxd(irg,itg,ipg) = hijd_kerr(1,1)
00056 hxyd(irg,itg,ipg) = hijd_kerr(1,2)
00057 hxzd(irg,itg,ipg) = hijd_kerr(1,3)
00058 hyyd(irg,itg,ipg) = hijd_kerr(2,2)
00059 hyzd(irg,itg,ipg) = hijd_kerr(2,3)
00060 hzzd(irg,itg,ipg) = hijd_kerr(3,3)
00061 hxxu(irg,itg,ipg) = hiju_kerr(1,1)
00062 hxyu(irg,itg,ipg) = hiju_kerr(1,2)
00063 hxzu(irg,itg,ipg) = hiju_kerr(1,3)
00064 hyyu(irg,itg,ipg) = hiju_kerr(2,2)
00065 hyzu(irg,itg,ipg) = hiju_kerr(2,3)
00066 hzzu(irg,itg,ipg) = hiju_kerr(3,3)
00067 call kerr_schild_traceK(x,y,z,traceK)
00068 trk_grid(irg,itg,ipg) = traceK
00069 if (irg.ne.0.and.itg.ne.0.and.ipg.ne.0) then
00070 x = hvec_xg(irg,itg,ipg,1)
00071 y = hvec_xg(irg,itg,ipg,2)
00072 z = hvec_xg(irg,itg,ipg,3)
00073 call kerr_schild_traceK(x,y,z,traceK)
00074 trk(irg,itg,ipg) = traceK
00075 end if
00076 end do
00077 end do
00078 end do
00079 omeg(0:nrg,0:ntg,0:npg) = 0.0d0
00080
00081 itg = ntg/2-2; ipg = npg/2-2
00082 open(16,file='test_vec0',status='unknown')
00083 do irg = 0, nrg
00084 write(16,'(1p,13e20.12)') rg(irg), psi(irg,itg,ipg) &
00085 & , alph(irg,itg,ipg) &
00086 & , bvxd(irg,itg,ipg) &
00087 & , bvyd(irg,itg,ipg) &
00088 & , bvzd(irg,itg,ipg) &
00089 & , hxxd(irg,itg,ipg) &
00090 & , hxyd(irg,itg,ipg) &
00091 & , hxzd(irg,itg,ipg) &
00092 & , hyyd(irg,itg,ipg) &
00093 & , hyzd(irg,itg,ipg) &
00094 & , hzzd(irg,itg,ipg) &
00095 & , trk_grid(irg,itg,ipg)
00096 end do
00097 close(16)
00098
00099 end subroutine initial_metric_BH_WL