
module M3GTools

  using DelimitedFiles
  using FortranFiles
  using PDBTools # from https://github.com/m3g/PDBTools

  include("./Atom.jl")
  export Atom

  include("./Bond.jl")
  export Bond

  include("./Angle.jl")
  export Angle

  include("./Dihedral.jl")
  export Dihedral

  include("./Improper.jl")
  export Improper

  include("./readpsf.jl") 
  export readpsf

  include("./readprm.jl") 
  export readprm!

  include("./getpdbcoords.jl")
  export getpdbcoords!

  include("./coulomb.jl")
  export coulomb

  include("./vdw.jl")
  export vdw

  include("./nhbonds.jl")
  export nhbonds

  include("./Simulation.jl")

  include("./init.jl")

  include("./select.jl")
  include("./dcdio.jl")

  include("./cm.jl")
  include("./pbc.jl")
  include("./distance.jl")
  include("./tcf.jl")
  include("./procrustes.jl")

  include("./gmdget.jl")

  include("./density.jl")
  export density
  include("./movingaverage.jl")
  export movingaverage 

  include("./version.jl")
 
  # For gmd3D
  include("./GMD3DGrid.jl")
  include("./gmd3D_setgrid.jl")
  include("./gmd3D.jl")
  include("./gmd3D_write.jl")
  export gmd3D, gmd3D_write

  # time correlation functions
  include("./tcorr.jl")

  # compute interpolated data 
  include("./sample_interpolation.jl")

end

