
M_stopwatch - package for measuring cpu and wall clock execution time (LICENSE:PD) based on StopWatch
M_StopWatch is a Fortran 90 module for measuring execution time of program segments. M_StopWatch is designed to be a portable, easy-to-use means of measuring execution time. It supports the wall clock, CPU clock, and a breakdown of the CPU clock into user and system times. It returns all times in seconds. It provides a simple means of determining which clocks are available, and the precision of those clocks.
M_StopWatch is used by instrumenting your code with subroutine calls that mimic the operation of a stop watch. The primary routines are start_watch, stop_watch, reset_watch, read_watch, and print_watch. M_StopWatch supports multiple watches, and provides the concept of watch groups to allow functions to operate on multiple watches simultaneously.

Just download the github repository, enter the src/ directory and run make:
 git clone https://github.com/urbanjost/M_stopwatch.git
 cd M_stopwatch/src
 # change Makefile if not using one of the listed compilers
 # for gfortran
 make clean
 make F90=gfortran gfortran
 # for ifort
 make clean
 make F90=ifort ifort
 # for nvfortran
 make clean
 make F90=nvfortran nvfortran
 # optionally
 make test # run the unit tests
 make run  # run all the demo programs from the man-pages
 make help # see other developer options
This will compile the M_stopwatch(3f) module and optionally build all the example programs from the document pages in the example/ sub-directory and run the unit tests.

Alternatively, download the github repository and build it with fpm ( as described at Fortran Package Manager )
     git clone https://github.com/urbanjost/M_stopwatch.git
     cd M_stopwatch
     fpm build
     fpm test  # run unit tests
or just list it as a dependency in your fpm.toml project file.
     [dependencies]
     M_stopwatch        = { git = "https://github.com/urbanjost/M_stopwatch.git" ,tag="v1.0.1"}
Note that M_stopwatch.f90 is registered at the fpm(1) registry


+ [manpages.tgz](https://urbanjost.github.io/M_stopwatch/manpages.tgz)
+ [CHANGELOG](docs/CHANGELOG.md) provides a history of significant changes

Each man-page includes a working example program. These and additional examples are included in the example/ directory.