!C
!C***
!C*** hpcmw_solver
!C***
!C
      subroutine hpcmw_eps_fvm_solver

      use hpcmw_eps_fvm_all
      implicit REAL*8 (A-H,O-Z)

      EPS = 1.d-8

      ITR = intNODE_tot
      call hpcmw_eps_fvm_allreduce_I (ITR, hpcmw_max)
      ITR = PETOT * ITR

      S_TIME= MPI_WTIME()
      call hpcmw_eps_fvm_solver_CG                                      &
     &    ( intNODE_tot, NODE_tot, NPLU, D, BFORCE, DELPHI, EPS,        &
     &      ITR,  IER, index, item, AMAT, COMMtime)
      E_TIME= MPI_WTIME()
      ISET= ISET + 1

      if (my_rank.eq.0) then
        WALLtime= E_TIME-S_TIME
        ratio   = 100.d0 * (1.d0-COMMtime/WALLtime)
        write (*,'(a, 1pe16.6)') '### solver time', WALLtime
        write (*,'(a, 1pe16.6)') '### comm.  time', COMMtime
        write (*,'(a, 1pe16.6)') '### work ratio ', ratio
      endif

      end subroutine hpcmw_eps_fvm_solver