00001 subroutine average_error
00002 use phys_constant, only : long
00003 use def_metric, only : psi, alph, bvxd, bvyd
00004 use coordinate_grav_r, only : rg
00005 use grid_parameter, only : nrg, ntg, npg
00006 use grid_points_binary_excision, only : rb
00007 use grid_parameter_binary_excision, only :ex_radius
00008 implicit none
00009 integer :: irg, itg, ipg, np
00010 real(long) :: error_psi = 0.0d0, error_alph = 0.0d0
00011
00012 open(12,file='average_error_x.dat',status='unknown')
00013 do irg = 0, nrg
00014 error_psi = 0.0d0
00015 error_alph = 0.0d0
00016 np = 0
00017 do itg = 0, ntg
00018 do ipg = 0, npg
00019 if (rb(irg,itg,ipg).ge.ex_radius) then
00020 np = np + 1
00021 error_psi = error_psi + 100*dabs(psi(irg,itg,ipg)-bvxd(irg,itg,ipg))/dabs(bvxd(irg,itg,ipg))
00022 error_alph = error_alph + 100*dabs(alph(irg,itg,ipg)-bvyd(irg,itg,ipg))/dabs(bvyd(irg,itg,ipg))
00023 end if
00024 end do
00025 end do
00026 error_psi = error_psi/dble(np)
00027 error_alph = error_alph/dble(np)
00028 write(12,'(1p,6e20.12)') rg(irg), error_psi, error_alph
00029 end do
00030 close(12)
00031
00032 end subroutine average_error