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 wall clock, CPU time, 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
-
man-page archives for use on GNU/Linux, Unix and CygWin platforms:
-
CHANGELOG provides a history of significant changes
- The code was run through ford(1) to produce a developers' document.
- github action status
Each man-page includes a working example program. These and additional examples are included in the example/ directory.