!===============================================================================
!
! module_hmc_forces.F90
!
!-------------------------------------------------------------------------------
!
! Copyright (C) 2006 Hinnerk Stueben 
!               2007-2010 Yoshifumi Nakamura
!
! This file is part of BQCD -- Berlin Quantum ChromoDynamics program
!
! BQCD is free software: you can redistribute it and/or modify
! it under the terms of the GNU General Public License as published by
! the Free Software Foundation, either version 3 of the License, or
! (at your option) any later version.
!
! BQCD is distributed in the hope that it will be useful,
! but WITHOUT ANY WARRANTY; without even the implied warranty of
! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
! GNU General Public License for more details.
!
! You should have received a copy of the GNU General Public License
! along with BQCD.  If not, see <http://www.gnu.org/licenses/>.
!
!-------------------------------------------------------------------------------
# include "defs.h"

!-------------------------------------------------------------------------------
module module_hmc_forces

  P_GENERATOR_FIELD, save :: p_old
  integer, save :: n_force

  integer, parameter :: i_sg  = 1
  integer, parameter :: i_sig = 2
  integer, parameter :: i_sd  = 3
  integer, parameter :: i_sf1 = 4
  integer, parameter :: i_sf2 = 5
  integer, parameter :: i_sf3 = 6
  integer, parameter :: i_sf4 = 7
  integer, parameter :: i_sf5 = 8
  integer, parameter :: i_sf6 = 9
  integer, parameter :: i_sf7 = 10
  integer, parameter :: i_sf8 = 11
  integer, parameter :: i_sf9 = 12

  REAL, save :: f_count(12)
  REAL, save :: f_avg(12)
  REAL, save :: f_max(12)
  REAL, save :: f_rat(12)
end

!-------------------------------------------------------------------------------
module module_rhmc_forces

  P_GENERATOR_FIELD, save :: p_old
  integer,save :: nset=0
  integer, dimension(10,2), save :: set=0

  !! upto 40 fraction, 10 fermion type and parameter set
  !!
  REAL, save :: f_count(40,10)
  REAL, save :: f_avg(40,10)
  REAL, save :: f_max(40,10)
  REAL, save :: f_iter(40,10)
end

!===============================================================================
