00001 subroutine error_surface(pot,pot_bak,error,flag)
00002   use phys_constant,  only : long
00003   use grid_parameter, only : nrg, ntg, npg, eps
00004   implicit none
00005   real(long), pointer :: pot(:,:), pot_bak(:,:)
00006   real(long), intent(out) :: error
00007   integer,    intent(out) :: flag
00008   real(long) :: error_pot = 0.0d0, small = 1.0d-14
00009   integer    :: itg, ipg
00010 
00011   error = 0.0d0
00012   flag = 0
00013   do itg = 0, ntg
00014     do ipg = 0, npg
00015       error_pot = 2.0d0*dabs(pot(itg,ipg) -     pot_bak(itg,ipg)) &
00016     &                 /(dabs(pot(itg,ipg))+dabs(pot_bak(itg,ipg))+small)
00017       if (error_pot > eps) flag = 1
00018       error = dmax1(error,error_pot)
00019     end do
00020   end do
00021 end subroutine error_surface