Skip to content

szaghi/FITTER

Repository files navigation

FITTER GitHub tag Join the chat at https://gitter.im/szaghi/FITTER

License License License License

Status Build Status Coverage Status

FITTER, Fortran tIc Tic TimER

A KISS pure Fortran Library for easy timing code snippets.

  • FITTER is a pure Fortran (KISS) library;
  • FITTER is Fortran 2008+ standard compliant;
  • FITTER is OOP designed;
  • FITTER is a Free, Open Source Project.

A taste of FITTER

use fitter
type(timer) :: chronos ! The timer.
integer     :: s       ! Counter.

call chronos%tic(name='foo')
call foo
call chronos%toc

do s=1, 4
  call chronos%tic(name='bar')
  call bar
  call chronos%toc
enddo

call chronos%tic(name='foo')
call foo
call chronos%toc

call chronos%print(statistics=.true.)

! output:

! Elapsed time into "foo": 0.603904970000000E-001 [s]
! Elapsed time into "bar": 0.103229564000000E+000 [s]
! Number of snippets tracked: 2
! Total elapsed time: 0.163620061000000E+000 [s]
! Average (snippet) elapsed time: 0.818100305000000E-001 [s]
! Relative elapsed time into each snippet:
!   + foo: 36.909%
!     Number of snippet hits: 2
!     Total elapsed time: 0.603904970000000E-001 [s]
!     Average elapsed time: 0.301952485000000E-001 [s]
!     Relative elapsed time into each hit:
!       + 001: 70.932%
!       + 002: 29.068%
!   + bar: 63.091%
!     Number of snippet hits: 4
!     Total elapsed time: 0.103229564000000E+000 [s]
!     Average elapsed time: 0.258073910000000E-001 [s]
!     Relative elapsed time into each hit:
!       + 001: 23.667%
!       + 002: 25.264%
!       + 003: 25.527%
!       + 004: 25.542%

Issues

GitHub issues Ready in backlog In Progress Open bugs

Compiler Support

Compiler Compiler Compiler Compiler Compiler Compiler


What is FITTER? | Main features | Copyrights | Download | Compilation | Documentation | References


What is FITTER?

FITTER is KISS pure Fortran library exposing a friendly class for timing code: the timer class is a tic-toc timer that easily track the time spent into parts of your codes, no more no less.

Main features

FITTER is a one-single-class library exposing the timer object that

  • handle (automatically store) new timing for each snippet timed:
    • handle (automatically store) multiple timing for each snippet timed, namely allow multiple-hits tracking of snippets:
  • easy print statistics;
  • easy retrieve timings;
  • Test Driven Developed (TDD);
  • collaborative developed;
  • well documented;
  • free!

Any feature request is welcome.

Go to Top

Copyrights

FITTER is a Free and Open Source Software (FOSS), it is distributed under a very permissive multi-licensing system: selectable licenses are GPLv3, BSD2-Clause, BSD3-Clause and MIT, feel free to select the license that best matches your workflow.

Anyone is interest to use, to develop or to contribute to FITTER is welcome.

More details can be found on wiki.

Go to Top

Download

To be written.

Go to Top

Compilation

FITTER is a modern Fortran project thus a modern Fortran compiler is need to compile the project. The project is modular, namely it exploits Fortran modules. As a consequence, there is compilation-cascade hierarchy to build the project. To correctly build the project the following approaches are supported

The FoBiS building support is the most complete, as it is the one used for the developing FITTER.

Build by means of FoBiS

A fobos file is provided to build the project by means of the Fortran Building System FoBiS.py.

Build all programs

Type

FoBiS.py build -mode tests-gnu

After (a successful) building a directory ./exe is created containing all the compiled programs found recursively in the tree project.

Build by means of GNU Make

To be implemented.

Build by means of CMake

To be implemented.

Go to Top


Documentation

Besides this README file the FITTER documentation is contained into its own wiki. Detailed documentation of the API is contained into the GitHub Pages that can also be created locally by means of ford tool.

To be completed.

Go to Top