00001 subroutine IO_output_cartesian_planes
00002 use phys_constant, only : long
00003 use def_metric, only : bvxd, bvyd, bvzd
00004 use grid_parameter_cartesian, only : nx, ny, nz, nx_mid
00005 use coordinate_grav_xyz, only : x, y, z
00006 use def_binary_parameter, only : sepa, dis
00007 use grid_parameter, only : rgin
00008 use interface_modules_cartesian
00009 implicit none
00010 real(long) :: small = 1.0d-20
00011 real(long) :: psic, alphc, bvxdc, bvydc, bvzdc
00012 integer :: ix, iy, iz, ii, nnx,nny
00013 integer :: ix0, iy0, iz0
00014 real(long) :: rz0,r1,r2, xc,yc,zc,x1,x2,y1,y2,dx,dy
00015 real(long) :: px(1:12),py(1:12)
00016
00017 x1 = -5.0d0*dis
00018 x2 = 5.0d0*dis
00019 y1 = -5.0d0*dis
00020 y2 = 5.0d0*dis
00021 dx = 0.5
00022 dy = 0.5
00023 nnx = (x2-x1)/dx
00024 nny = (y2-y1)/dy
00025
00026 open(14,file='BBH_xy_vf.dat',status='unknown')
00027 zc = 0.0d0
00028 do iy = 1, nny+1
00029 yc = y1 + (iy-1)*dy
00030 write(14,*) ' '
00031 do ix = 1, nnx+1
00032 xc = x1 + (ix-1)*dx
00033 r1 = sqrt(xc**2 + yc**2 + zc**2)
00034 r2 = sqrt((xc-sepa)**2 + yc**2 + zc**2)
00035 if (r1.ge.rgin.and.r2.ge.rgin) then
00036 call interpo_gr2cgr_4th(bvxd,bvxdc,xc,yc,zc)
00037 call interpo_gr2cgr_4th(bvyd,bvydc,xc,yc,zc)
00038 call interpo_gr2cgr_4th(bvzd,bvzdc,xc,yc,zc)
00039 if (dabs(bvxdc).le.small) bvxdc = 0.0d0
00040 if (dabs(bvydc).le.small) bvydc = 0.0d0
00041 if (dabs(bvzdc).le.small) bvzdc = 0.0d0
00042 write(14,'(20es14.6)') xc, yc, zc, bvxdc, bvydc, bvzdc
00043 else
00044 write(14,'(20es14.6)') xc, yc, zc, 0.0, 0.0, 0.0
00045 endif
00046 end do
00047 end do
00048 close(14)
00049
00050 open(14,file='BBH_z1_vf.dat',status='unknown')
00051 zc = 0.5d0*rgin
00052 do iy = 1, nny+1
00053 yc = y1 + (iy-1)*dy
00054 write(14,*) ' '
00055 do ix = 1, nnx
00056 xc = x1 + (ix-1)*dx
00057 r1 = sqrt(xc**2 + yc**2 + zc**2)
00058 r2 = sqrt((xc-sepa)**2 + yc**2 + zc**2)
00059 if (r1.ge.rgin.and.r2.ge.rgin) then
00060 call interpo_gr2cgr_4th(bvxd,bvxdc,xc,yc,zc)
00061 call interpo_gr2cgr_4th(bvyd,bvydc,xc,yc,zc)
00062 call interpo_gr2cgr_4th(bvzd,bvzdc,xc,yc,zc)
00063 if (dabs(bvxdc).le.small) bvxdc = 0.0d0
00064 if (dabs(bvydc).le.small) bvydc = 0.0d0
00065 if (dabs(bvzdc).le.small) bvzdc = 0.0d0
00066 write(14,'(20es14.6)') xc, yc, zc, bvxdc, bvydc, bvzdc
00067 else
00068 write(14,'(20es14.6)') xc, yc, zc, 0.0, 0.0, 0.0
00069 endif
00070 end do
00071 end do
00072 close(14)
00073
00074 px(1) = -2.0d0*rgin
00075 py(1) = -2.0d0*rgin
00076
00077 px(2) = 0.0d0
00078 py(2) = py(1)
00079
00080 px(3) = 0.5d0*sepa
00081 py(3) = py(1)
00082
00083 px(4) = sepa
00084 py(4) = py(1)
00085
00086 px(5) = sepa + 2.0d0*rgin
00087 py(5) = py(1)
00088
00089 px(6) = px(5)
00090 py(6) = 0.0d0
00091
00092 px(7) = px(5)
00093 py(7) = 2.0d0*rgin
00094
00095 px(8) = px(4)
00096 py(8) = py(7)
00097
00098 px(9) = px(3)
00099 py(9) = py(7)
00100
00101 px(10)= px(2)
00102 py(10)= py(7)
00103
00104 px(11)= px(1)
00105 py(11)= py(7)
00106
00107 px(12)= px(1)
00108 py(12)= 0.0d0
00109
00110 open(14,file='BBH_plane_z0.dat',status='unknown')
00111 zc = 0.0d0
00112 do ii = 1, 12
00113 xc = px(ii)
00114 yc = py(ii)
00115 call interpo_gr2cgr_4th(bvxd,bvxdc,xc,yc,zc)
00116 call interpo_gr2cgr_4th(bvyd,bvydc,xc,yc,zc)
00117 call interpo_gr2cgr_4th(bvzd,bvzdc,xc,yc,zc)
00118 if (dabs(bvxdc).le.small) bvxdc = 0.0d0
00119 if (dabs(bvydc).le.small) bvydc = 0.0d0
00120 if (dabs(bvzdc).le.small) bvzdc = 0.0d0
00121 write(14,'(20es14.6)') xc, yc, zc, bvxdc, bvydc, bvzdc
00122 write(14,'(20es14.6)') xc, yc, zc, bvxdc, bvydc, 0.0d0
00123 write(14,'(20es14.6)') xc, yc, zc, 0.0d0, 0.0d0, bvzdc
00124 end do
00125 close(14)
00126
00127
00128
00129 end subroutine IO_output_cartesian_planes