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